Nghiên cứu Khoa học

Thiết kế khối giải mã lệnh (ID) của bộ xử lý RISC-V trên FPGA

  • 09/06/2025
  • Nghiên cứu Khoa học

Mô-đun giải mã lệnh là mô-đun tiếp nhận lệnh hiện tại từ bộ nhớ lệnh và giải mã thông tin được mã hóa trong lệnh cần thiết để thực thi lệnh đó. Hình 3.2. sẽ trình bày thiết kế của mô-đun giải mã lệnh là gì.

 

 

 undefined

 

 Hình 1. Thế kế module giải mã lệnh ID

Giải thích các chân của thiết kế ID

­       instruction: Là lệnh 32 bit đến từ bộ nhớ lệnh.

­       opcode: Là tín hiệu này là mã định danh duy nhất cho loại lệnh đang được thực thi, tức là tải, lưu trữ, nhảy.

­       f3: Là tín hiệu này là mã chức năng xác định chức năng chính xác nào sẽ được thực thi trong một loại lệnh, ví dụ như phép cộng, phép trừ, AND, OR, v.v.

­       f7: Làtín hiệu này là mã chức năng phụ trợ được sử dụng trong các lệnh cộng/trừ để xác định lệnh đó là lệnh cộng hay lệnh trừ, vì cả hai đều sử dụng cùng một mã “f3”.

­       rs1: Là tín hiệu này là địa chỉ của thanh ghi nguồn đầu tiên, có trong Ngân hàng thanh ghi, sẽ được sử dụng trong quá trình tính toán.

­       rs2: Là tín hiệu này là địa chỉ của thanh ghi nguồn thứ hai, có trong Ngân hàng thanh ghi, sẽ được sử dụng trong quá trình tính toán và lưu trữ hướng dẫn.

­       rd: Là tín hiệu này là địa chỉ của thanh ghi đích, nơi sẽ lưu trữ kết quả tính toán hoặc dữ liệu lấy từ bộ nhớ.

­       immediate: Là tín hiệu này là giá trị tức thời được mã hóa trong một số lệnh RISC-V được mở rộng dấu thành 32 bit.

Như đã đề cập ở chương 2 về tập lệnh của RISC-V thì ở phần thiết kế module giải mã này sẽ chỉ rõ ra chức năng cụ thể của từng lệnh làm công việc gì.

­       Lệnh R là định dạng này được sử dụng cho các lệnh sử dụng hai thanh ghi làm toán hạng hoặc nguồn dữ liệu để tính toán.

­       Lệnh I là định dạng này được sử dụng cho các lệnh sử dụng một thanh ghi và một giá trị tức thời làm toán hạng hoặc nguồn dữ liệu để tính toán.

­       Lệnh S là định dạng này được sử dụng cho hướng dẫn lưu trữ.

­       Lệnh B là định dạng này được sử dụng cho lệnh nhảy hoặc lệnh rẽ nhánh.

­       Lệnh U làđịnh dạng này được sử dụng cho các hướng dẫn yêu cầu giá trị tức thời lớn.

­       Lệnh
 J là định dạng này được sử dụng cho lệnh JAL (Jump and Link). Lệnh này thêm giá trị tức thời lớn vào bộ đếm chương trình để tạo địa chỉ lệnh tiếp theo và sau đó lưu địa chỉ lệnh tuần tự tiếp theo (Bộ đếm chương trình + 4) vào thanh ghi đích.

undefined

Hình 2. Định dạng lệnh RISC-V 32-bit

 

Ví dụ: đối với định dạng lệnh "I-type", giá trị tức thời được mã hóa là 12 bit tức là imm[11:0]. Giá trị này được khai thác từ lệnh và đặt vào một từ 32 bit. Tuy nhiên, bit quan trọng nhất tức là bit 11, được sao chép vào các bit 31 xuống 12 của từ 32 bit mới này, do đó mở rộng dấu giá trị tức thời.

Các tin khác