Duy Nguyen Hoang A fully enthusiastic boy

MIPS Architecture Series – Phần 1: Datapath?

3 min read

mips architecture

MIPS (Microprocessor without Interlocked Pipeline Stages) là một kiến trúc tập lệnh phổ biến trong lĩnh vực thiết kế vi xử lý.

Ghi chú nhỏ: Hế lu, lại là Hoàng Duy đây. Bạn có thể đọc thêm bài viết về MIPS tôi đã viết trước đây: Đọc ngay: Chuyển đổi hợp ngữ MIPS sang mã máy

Giới thiệu

Máy tính và kiến trúc máy tính là hai thuật ngữ quen thuộc trong lĩnh vực công nghệ thông tin. Máy tính là một thiết bị có khả năng thực hiện các phép tính và xử lý thông tin theo các chỉ dẫn được cung cấp. Trong khi đó, kiến trúc máy tính là cách mà các thành phần của máy tính được kết hợp và tổ chức để hoạt động hiệu quả.

Lệnh, Tập lệnh và Kiến trúc tập lệnh

Trong kiến trúc máy tính, lệnh là một tín hiệu hoặc một nhóm tín hiệu được máy tính nhận diện và thực hiện để thực hiện một hoạt động cụ thể. Tập lệnh là tập hợp các lệnh mà máy tính có thể hiểu và thực hiện. Mỗi kiến trúc máy tính có một tập lệnh riêng, được xác định bởi kiến trúc tập lệnh.

Giới thiệu về kiến trúc tập lệnh MIPS

MIPS (Microprocessor without Interlocked Pipeline Stages) là một kiến trúc tập lệnh phổ biến trong lĩnh vực thiết kế vi xử lý. Kiến trúc tập lệnh MIPS được phát triển bởi công ty MIPS Computer Systems và đã trở thành một trong những kiến trúc quan trọng trong ngành công nghiệp vi xử lý.

Datapath trong tập lệnh MIPS

Datapath trong kiến trúc tập lệnh MIPS là nơi thực hiện các phép tính và xử lý dữ liệu. Nó bao gồm các thành phần chính như bộ nhớ, bộ nhớ đệm, bộ xử lý trung tâm (Central Processing Unit – CPU), và các đường dẫn (pathways) để truyền dữ liệu giữa các thành phần này.

Bảng 1: Mô tả ngõ ra của các cổng trong khối Control:

CổngChức năng
RegDstChọn thanh ghi đích
BranchĐiều khiển nhảy
MemReadĐọc từ bộ nhớ
MemtoRegĐưa dữ liệu từ bộ nhớ vào thanh ghi
ALUOPChọn phép tính của ALU
MemWriteGhi vào bộ nhớ
ALUSrcChọn nguồn dữ liệu đầu vào cho ALU
RegWriteGhi vào thanh ghi

Bảng 2: Bảng chân trị khối Control

opcodeRegWriteALUSrcALUOpMemWriteMemReadMemtoRegBranch
lw11000110
sw010010X0
beq000100X1
Loại R10100000

Bảng 3: Mô tả ngõ ra của ALU Control theo đầu vào ALUOp:

opcodeALUOpLệnhfunctPhép toán ALUALU control
lw00Nạp word______Cộng0010
sw00Lưu word______Cộng0010
beq01Nhảy nếu bằng______Trừ0110
Loại R10Cộng100000Cộng0010
Trừ100010Trừ0110
AND100100AND0000
OR100101OR0001
Thiết lập nếu nhỏ hơn101010Thiết lập nếu nhỏ hơn0111

Chu kỳ thực thi lệnh

Chu kỳ thực thi lệnh trong kiến trúc tập lệnh MIPS bao gồm các bước sau:

  1. Fetch (Nạp lệnh): Lệnh được lấy từ bộ nhớ lệnh và đưa vào bộ nhớ đệm lệnh (Instruction Cache).
  2. Decode (Giải mã): Lệnh được giải mã để xác định loại lệnh và các toán hạng liên quan.
  3. Execute (Thực thi): Thực hiện các phép tính và xử lý dữ liệu theo lệnh đã được giải mã.
  4. Memory Access (Truy cập bộ nhớ): Nếu có, truy cập và xử lý dữ liệu trong bộ nhớ.
  5. Write Back (Ghi lại): Kết quả của lệnh được ghi lại vào thanh ghi hoặc bộ nhớ.

Kết luận

Trên đây là một giới thiệu sơ lược về máy tính, kiến trúc máy tính, lệnh và tập lệnh, cũng như giới thiệu về kiến trúc tập lệnh MIPS. Datapath và các thành phần quan trọng của nó đã được mô tả. Bạn muốn đọc thêm các bài viết với chủ đề tương tự? Hãy bấm theo dõi tôi ngay.

References:

Tài liệu môn Kiến trúc máy tính – Khoa KTMT trường Đại học Công Nghệ Thông tin: https://www.cit.ctu.edu.vn/~dtnghi/cod/ch5.pdf

Avatar photo
Duy Nguyen Hoang A fully enthusiastic boy

Clean Code: Nguyên tắc viết hàm trong lập trình…

Trong quá trình phát triển phần mềm, việc viết mã nguồn dễ đọc, dễ hiểu là yếu tố then chốt để đảm bảo code...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc comment trong lập trình

Trong lập trình, code không chỉ là một tập hợp các câu lệnh để máy tính thực thi, mà còn là một hình thức...
Avatar photo Dat Tran Thanh
3 min read

Clean Code: Nguyên tắc xử lý lỗi (Error Handling)

Trong quá trình phát triển phần mềm, việc xử lý lỗi không chỉ là một phần quan trọng mà còn ảnh hưởng trực tiếp...
Avatar photo Dat Tran Thanh
4 min read

Leave a Reply

Your email address will not be published. Required fields are marked *