1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo học phần kiến trúc máy tính bài tập về nhà số 1 and instruction

11 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Học Phần: Kiến Trúc Máy Tính
Tác giả Hoàng Tiến Đạt, Hoàng Thế Dương, Vũ Minh Đức
Người hướng dẫn TS. Đào Thành Chung
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Khoa Toán - Tin
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 686,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mở đầu Trong kiến trúc máy tính, các lệnh cơ bản như lệnh "AND" đóng vai trò quan trọng trong việc xử lý dữ liệu và thực hiện các phép toán luận lý giữa các bit.. Lệnh "AND" là một trong

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA TOÁN - TIN

BÁO CÁO HỌC PHẦN: KIẾN TRÚC MÁY TÍNH

NHÓM 10

Hoàng Tiến Đạt : 20227012 Hoàng Thế Dương : 20227100

Vũ Minh Đức : 20227097

Mã lớp học : 155351 GVHD : TS Đào Thành Chung

Hà Nội, 11/2024

Trang 2

Mở đầu

Trong kiến trúc máy tính, các lệnh cơ bản như lệnh "AND" đóng vai trò quan trọng trong việc xử lý dữ liệu và thực hiện các phép toán luận lý giữa các bit Lệnh "AND" là một trong những lệnh bitwise cơ bản, thường được sử dụng trong các phép toán thao tác với bit, điều khiển luồng chương trình, và các tác vụ yêu cầu xử lý dữ liệu ở mức thấp

Lệnh "AND" thực hiện phép toán "AND" giữa hai thanh ghi nguồn (rs và rt) và lưu trữ kết quả vào thanh ghi đích (rd) Phép toán "AND" giữa hai bit chỉ trả về giá trị

1 khi cả hai bit đều là 1, ngược lại, kết quả sẽ là 0 Điều này giúp trong việc kiểm tra và thao tác với các bit của dữ liệu, như khi cần kiểm tra hoặc xóa các bit cụ thể trong một thanh ghi

Trang 3

Bài tập về nhà số 1

AND instruction

Tổng quan về lệnh AND

- Mục đích: Thực hiện phép AND bit giữa nội dung của thanh ghi nguồn thứ nhất (rs) và thanh ghi nguồn thứ hai (rt), và lưu kết quả vào thanh ghi đích (rd)

- Cú pháp:

AND $destination_register, $first_source_register, $second_source_register

Câu 1: Chọn 1 lệnh tại đường dẫn bên dưới và giải thích cụ thể từ bước xảy ra

trên hình vẽ minh hoạ

a) Các thành phần

1 PC (Program Counter):

PC (ô màu xanh lá) cung cấp địa chỉ 00000108H cho Instruction Memory

(IM)

Đây là địa chỉ của lệnh AND trong bộ nhớ lệnh

2 Instruction Memory (IM):

IM (ô màu tím) sẽ tải lệnh tại địa chỉ 00000108H

Lệnh AND có định dạng R-type, gồm:

o rs: Thanh ghi nguồn 1

o rt: Thanh ghi nguồn 2

o rd: Thanh ghi đích (nơi kết quả được lưu)

o Opcode: Xác định đây là lệnh AND

Lệnh này sẽ được gửi đến Control Unit (CU) và Register File (RF)

3 Control Unit (CU):

CU (hình oval đỏ) giải mã opcode của lệnh AND và tạo ra các tín hiệu điều

khiển

Tín hiệu điều khiển chính:

o RegDst = 1: Chọn thanh ghi đích rd

o ALUOp = 0000: Thực hiện phép toán AND

o RegWrite = 1: Cho phép ghi kết quả vào thanh ghi đích

Trang 4

4 Register File (RF):

RF (khối tím-xanh) đọc giá trị từ hai thanh ghi nguồn:

o Read Addr 1: Địa chỉ thanh ghi rs

o Read Addr 2: Địa chỉ thanh ghi rt

Giá trị từ rs và rt sẽ được gửi tới ALU để thực hiện phép toán

5 ALU (Arithmetic Logic Unit):

ALU (khối màu hồng) nhận hai giá trị đầu vào từ thanh ghi rs và rt

ALU Control sẽ chỉ thị thực hiện phép toán AND (bitwise)

o Phép toán: Result = rs AND rt

Kết quả sẽ được lưu vào ALU Result

6 Ghi kết quả (Write Back):

Kết quả từ ALU được gửi trở lại Register File

Thanh ghi đích (rd) sẽ được cập nhật với kết quả của phép toán AND

7 Adder (Cộng PC + 4):

Đồng thời với quá trình thực thi lệnh AND, Adder tính toán địa chỉ của lệnh

tiếp theo:

o PC + 4 = 00000108H + 4 = 0000010CH

Địa chỉ mới sẽ được nạp vào PC để chuẩn bị cho chu kỳ lệnh tiếp theo

Trang 5

b) Giải thích các bước chạy

Bước 1: Fetch (Lấy lệnh từ Instruction Memory)

1 PC (Program Counter):

o PC chứa địa chỉ 00000108H, đây là vị trí của lệnh AND trong bộ nhớ

lệnh

o PC gửi địa chỉ này đến Instruction Memory (IM)

2 Instruction Memory (IM):

o IM đọc lệnh từ địa chỉ 00000108H và tải lệnh:

Opcode: 000000B (R-type) rs: $7 (00111B)

rt: $4 (00100B) rd: $10 (01010B) Function: 100100B (AND)

o Đồng thời, Adder tính PC + 4 = 00000108H + 4 = 0000010CH để

chuẩn bị cập nhật PC sau này

Tóm tắt bước 1:

PC → IM nạp lệnh → Adder tính PC+4

Trang 6

Bước 2: Decode (Giải mã lệnh và đọc thanh ghi)

1 Control Unit (CU):

o CU giải mã opcode 000000B, xác định đây là lệnh R-type

o CU tạo các tín hiệu điều khiển:

RegDst = 1: Chọn thanh ghi đích là rd

ALUOp = 10: Yêu cầu ALU thực hiện phép toán logic (AND)

RegWrite = 1: Cho phép ghi kết quả vào thanh ghi đích

2 Register File (RF):

o RF đọc giá trị từ hai thanh ghi nguồn:

rs = $7: Giá trị 00111B

rt = $4: Giá trị 00100B

o Hai giá trị này được gửi đến ALU để chuẩn bị thực hiện phép toán

AND

Tóm tắt bước 2:

CU giải mã lệnh → Tạo tín hiệu điều khiển → RF đọc dữ liệu từ $7 và $4

Trang 7

Bước 3: Execute (Thực hiện phép toán AND)

1 ALU Control:

o CU gửi tín hiệu ALUOp = 10 và kết hợp với Function Bits = 100100B

o ALU Control xác định phép toán cần thực hiện là AND

2 ALU:

o Thực hiện phép toán bitwise AND giữa hai giá trị từ thanh ghi nguồn:

bash Input 1: 00111B (giá trị từ $7) Input 2: 00100B (giá trị từ $4) Result: 00100B

o Kết quả 00100B được gửi ra từ ALU

Tóm tắt bước 3:

ALU Control xác định phép toán → ALU thực hiện phép toán AND → Kết quả là

00100B

Trang 8

Bước 4: Write Back (Ghi kết quả vào thanh ghi đích)

1 Register File (RF):

o Kết quả 00100B từ ALU được ghi vào thanh ghi đích rd = $10

(01010B)

o CU kích hoạt tín hiệu RegWrite = 1 để cho phép ghi kết quả

2 PC Update:

o Adder đã tính PC + 4 = 0000010CH ở bước trước

o MUX chọn giá trị PC + 4 làm địa chỉ mới cho PC, vì đây không phải

lệnh nhảy

o PC được cập nhật thành 0000010CH, trỏ đến lệnh tiếp theo

Tóm tắt bước 4:

Kết quả 00100B được ghi vào thanh ghi đích $10 → PC được cập nhật thành

0000010CH

Trang 9

Tổng kết toàn bộ quá trình lệnh AND:

1 Fetch: PC gửi địa chỉ 00000108H → IM nạp lệnh AND → Adder tính PC + 4

2 Decode: CU giải mã lệnh → RF đọc giá trị từ thanh ghi $7 và $4

3 Execute: ALU thực hiện phép toán AND giữa hai giá trị → Kết quả là 00100B

4 Write Back: Kết quả 00100B được ghi vào thanh ghi $10 → PC cập nhật

thành 0000010CH

Kết quả cuối cùng:

Thanh ghi $10: Chứa giá trị 00100B

PC: Được cập nhật thành 0000010CH để chuẩn bị cho lệnh tiếp theo

Trang 10

Câu 2: Giải thích lệnh đã chọn ở câu (1) theo format ở trang web sau:

AND

Format:

AND rd, rs, rt [R-type] MIPS Architecture Extension: MIPS I AND $10, $7, $4

Mục đích:

Thực hiện phép toán AND logic từng bit

Mô tả:

rd <- rs AND rt

Nội dung của GPR rs được kết hợp với nội dung của GPR rt trong phép toán AND logic từng bit Kết quả được đặt vào GPR rd

Hạn chế:

Không có

Hoạt động:

GPR[rd] <- GPR[rs] và GPR[rt]

Ngoại lệ:

Không có

Trang 11

Kết luận Trong kiến trúc máy tính, lệnh AND là một lệnh R-type cơ bản và quan trọng

trong bộ lệnh MIPS Thông qua quá trình thực thi lệnh, từ giai đoạn Fetch (lấy lệnh)

đến Write Back (ghi kết quả), lệnh AND đã thực hiện phép toán bitwise AND giữa

hai thanh ghi nguồn và lưu kết quả vào thanh ghi đích

Qua bài này, chúng ta có thể thấy rõ cách thức hoạt động của lệnh AND trong

kiến trúc MIPS cũng như vai trò quan trọng của các phép toán logic trong xử lý dữ

liệu ở mức thấp Việc nắm vững lệnh AND không chỉ giúp hiểu sâu hơn về các phép

toán bitwise mà còn là nền tảng quan trọng để tiếp cận các lệnh khác trong bộ lệnh

MIPS và kiến trúc máy tính nói chung

Ngày đăng: 10/01/2025, 15:23

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w