Giới thiệu dự án

Sự bùng nổ của các thiết bị nhúng thông minh, thiết bị tính toán biên (Edge Computing) và mạng lưới vạn vật kết nối (IoT) đặt ra thách thức lớn về an ninh phần cứng và hiệu năng xử lý. Theo các báo cáo công nghiệp vi mạch từ RISC-V International, kiến trúc tập lệnh mở RISC-V (Open-source Instruction Set Architecture) đang trở thành xu hướng thay thế hàng đầu cho các kiến trúc độc quyền như ARM hay x86 nhờ tính module hóa cao, tối ưu năng lượng và không phụ thuộc phí bản quyền sở hữu trí tuệ (IP). Tuy nhiên, hầu hết các bộ vi xử lý mã nguồn mở kích thước nhỏ ở cấp độ giáo dục và nghiên cứu hiện nay chỉ hỗ trợ chế độ máy (Machine Mode) đơn lẻ hoặc thiết kế ở dạng đơn chu kỳ (Single-cycle), không đáp ứng được yêu cầu phân cấp đặc quyền phần cứng để nạp hệ điều hành hiện đại.

Problem statement cụ thể của đề tài bắt nguồn từ hai điểm nghẽn kỹ thuật chính:

  • Hạn chế về kiến trúc phân cấp đặc quyền: Các vi xử lý nhúng thông thường thiếu Chế độ Giám sát (Supervisor Mode - SM) với các thanh ghi điều khiển và trạng thái (Control and Status Registers - CSRs), dẫn đến việc không thể cô lập bộ nhớ và phân tách quyền hạn giữa các tác vụ người dùng (User Mode - UM) với nhân hệ điều hành (Kernel), gây nguy cơ mất an toàn hệ thống khi bị tấn công mã độc.
  • Hạn chế về hiệu năng thực thi: Thiết kế đơn chu kỳ (như công trình nghiên cứu trước đây tại thị trường trong nước) có đường trễ chuyển mạch (critical path) kéo dài từ khối nạp lệnh đến khối ghi bộ nhớ, dẫn đến tần số xung nhịp tối đa đạt được rất thấp và lãng phí tài nguyên phần cứng.

Mục tiêu của dự án được cụ thể hóa thành 4 trọng tâm kỹ thuật:

  1. Thiết kế Datapath Pipeline 5 tầng: Hiện thực hóa vi kiến trúc 32-bit áp dụng kỹ thuật đường ống 5 giai đoạn (IF - ID - EX - MEM - WB) xử lý trọn vẹn 37 lệnh cơ bản thuộc tập lệnh RV32I cùng lệnh gọi môi trường ECALL.
  2. Hiện thực cơ chế Chế độ Giám sát (Supervisor Mode): Tích hợp tập 7 lệnh hệ thống thao tác thanh ghi CSR chuyên dụng (SRET, CSRRW, CSRRS, CSRRC, CSRRWI, CSRRSI, CSRRCI) và hệ thống bảng thanh ghi đặc quyền (sstatus, sie, stvec, scause, sepc).
  3. Hiện thực hóa cơ chế Trap và Interrupt Engine: Xử lý toàn diện các ngoại lệ phần mềm (Software Interrupt), ngắt định thời gian phần cứng (Timer Interrupt), bẫy lệnh bất hợp pháp (Illegal Instruction Trap) và chuyển đổi ngữ cảnh an toàn qua cơ chế Direct/Vectored Mode.
  4. Hiện thực hóa và kiểm thử trên phần cứng FPGA: Triển khai thiết kế trên kit phần cứng Altera DE2 (Cyclone II FPGA), đạt mục tiêu tần số hoạt động 50 MHz.

Cách tiếp cận của giải pháp là kết hợp kiến trúc đường ống 5 tầng với các khối xử lý xung đột độc lập (Hazard Detection Unit, Bypass/Forwarding Unit) và bộ điều khiển ngoại lệ phi tập trung. Kết quả kỳ vọng đạt được là một bộ xử lý System-on-Chip RISC-V 32-bit có khả năng vận hành ổn định các tiến trình kép UM/SM với tần số 50 MHz, hoàn thành 100% các bộ kiểm thử chuẩn riscv-tests (rv32ui).

Phạm vi và giới hạn: Dự án tập trung vào tập lệnh RV32I 32-bit cơ bản và phân tầng đặc quyền User-Supervisor. Chưa bao gồm đơn vị quản lý bộ nhớ ảo hóa trang (Memory Management Unit - MMU/Sv32), Hypervisor Mode (HM) và bộ tính toán số thực (FPU).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Nghiên cứu thị trường và các công trình liên quan trực tiếp chỉ ra sự chênh lệch rõ ràng giữa các hướng tiếp cận thiết kế vi xử lý:

Tiêu chí kỹ thuật Kiến trúc Single-cycle (An Xuân Tuấn, 2020) MultiZone FreeRTOS (Sandro Pinto, 2019) Kiến trúc đề xuất (UIT RISC-V Core)
Cấu trúc vi kiến trúc Đơn chu kỳ (Single-cycle Datapath) Multi-core / Microcontroller Cores Đường ống 5 tầng (5-Stage Pipeline)
Chế độ đặc quyền Hỗ trợ UM & SM Tập trung xử lý ngắt User Mode Hỗ trợ đầy đủ User Mode & Supervisor Mode
Xử lý xung đột (Hazard) Không cần (Không pipeline) Phụ thuộc nhân lõi IP thương mại Hardware Forwarding + Hazard Detection Unit
Tần số hoạt động (Fmax) Thấp (< 25 MHz trên FPGA) Đạt chuẩn vi điều khiển đóng gói sẵn Tối ưu hóa đạt 50 MHz trên Altera DE2
Cơ chế bẫy ngắt (Trap) Cơ bản qua ngắt tuần tự Xử lý ngắt mức User hạn chế Cơ chế Direct & Vectored Trap Engine hoàn chỉnh

Phân loại yêu cầu hệ thống theo mô hình MoSCoW:

  • Must-have: Thực thi chính xác 37 lệnh RV32I, 7 lệnh hệ thống CSR, xử lý 4 loại ngoại lệ/ngắt cơ bản (Timer, Software, Illegal Instruction, ECALL), cấu trúc Pipeline 5 tầng, khối Bypass dữ liệu.
  • Should-have: Cơ chế ngắt định địa chỉ Vector (stvec.mode), khối Timer 4-bit có cấu hình linh hoạt, tần số mục tiêu $\ge 50\text{ MHz}$.
  • Could-have: Khối dự đoán rẽ nhánh động (Dynamic Branch Prediction), tích hợp ngoại vi UART trên FPGA.
  • Won't-have (giai đoạn này): Bộ nhớ Cache L1 I/D rời, cơ chế dịch địa chỉ ảo sang vật lý (Paging/MMU).

Thiết kế hệ thống

Kiến trúc tổng thể của bộ vi xử lý RISC-V hỗ trợ Supervisor Mode bao gồm Khối điều khiển (Control Unit), Khối đường truyền dữ liệu (Datapath), Khối định thời phần cứng (Timer Unit) và Khối thanh ghi đặc quyền (System Register File).

                      +-------------------------------------------------------------+
                      |                      Control Unit                           |
                      +-------------------------------------------------------------+
                        |        ^                  |                     ^
             ctrl_signals|        | opcode/funct     | sys_ctrl_signals    | exc_signals
                        v        |                  v                     |
+-----------------------------------------------------------------------------------+
| Datapath Pipeline 5 Tầng                                                          |
|                                                                                   |
|  +---------+   IF/ID   +---------+   ID/EX   +---------+   EX/MEM  +---------+    |
|  | IF      | --------> | ID      | --------> | EX      | --------> | MEM     |    |
|  | (PC,    |           | (RegFile|           | (ALU,   |           | (Data   |    |
|  |  I-Mem) |           |  SignExt|           |  Bypass)|           |  Memory)|    |
|  +---------+           +---------+           +---------+           +---------+    |
|       ^                     |                     |                     |         |
|       |                     v                     v                     | MEM/WB  |
|       |               +-------------------------------+                 v         |
|       |               | System Register File (CSRs)   |            +---------+    |
|       |               | sstatus, sie, stvec, scause...|            | WB      |    |
|       |               +-------------------------------+            | (RegWr) |    |
|       |                               |                            +---------+    |
|       |                               v                                 |         |
|       +----------------- [ Exception / Trap Routing ] <-----------------+         |
|                                       ^                                           |
|                                       | inter_timer                               |
|                                +--------------+                                   |
|                                |  Timer Unit  |                                   |
|                                +--------------+                                   |
+-----------------------------------------------------------------------------------+

Technology Stack và công cụ

  • Ngôn ngữ mô tả phần cứng: Verilog HDL (chuẩn IEEE 1364-2001).
  • Môi trường mô phỏng luận lý: Mentor Graphics ModelSim SE v10.4.
  • Môi trường tổng hợp mạch: Altera Quartus II v13.0 SP1 Web Edition.
  • Phần cứng đích: Altera DE2 Development and Education Board trang bị FPGA Cyclone II EP2C35F672C6.
  • Bộ kiểm chuẩn phần mềm: RISC-V Assembly Tests Suite (riscv-tests).

Thiết kế Datapath và Khối đặc quyền

  1. Khối Program Counter (PC): Quản lý địa chỉ lệnh với multiplexer 4 ngõ vào: $PC+4$, địa chỉ nhảy rẽ nhánh/nhảy tuyệt đối (jump_target), địa chỉ cơ sở vector ngắt (PC_handling_exc_addr), và địa chỉ phục hồi sau bẫy (PC_return_addr).
  2. Khối System Register File (CSRs):
    • sstatus (Supervisor Status Register): Quản lý bit SIE (Supervisor Interrupt Enable), SPIE (Previous Interrupt Enable), SPP (Previous Privilege Mode).
    • sie (Supervisor Interrupt Enable Register): Kích hoạt ngắt mềm (SSIE), ngắt định thời (STIE).
    • stvec (Supervisor Trap-Vector Base-Address Register): Lưu địa chỉ gốc của trình phục vụ ngắt, hỗ trợ 2 chế độ: Direct (mode = 0) và Vectored (mode = 1, địa chỉ nhảy = $Base + 4 \times cause$).
    • scause (Supervisor Cause Register): Lưu mã nguyên nhân ngắt/bẫy (bit 31 đánh dấu Interrupt, các bit [30:0] là mã ngoại lệ như ECALL từ UM = 8, ECALL từ SM = 9, Timer Interrupt = 5).
    • sepc (Supervisor Exception Program Counter): Lưu giá trị PC của lệnh bị gián đoạn.

Methodology

Quy trình phát triển tuân thủ nghiêm ngặt theo luồng thiết kế vi mạch tiêu chuẩn Altera FPGA Design Flow:

[Phân tích kiến trúc] 
        │
        ▼
[Thiết kế RTL bằng Verilog HDL]
        │
        ▼
[Mô phỏng trước tổng hợp (Pre-synthesis)] ──(Lỗi logic)──> [Hiệu chỉnh RTL]
        │ (Đạt chuẩn rv32ui)
        ▼
[Tổng hợp luận lý (Synthesis) trên Quartus II]
        │
        ▼
[Phân tích thời gian tĩnh (STA) & Định tuyến (Place & Route)]
        │
        ▼
[Mô phỏng sau tổng hợp (Post-synthesis Gate-Level)]
        │
        ▼
[Nạp Bitstream lên FPGA Altera DE2] ──> [Kiểm thử trên phần cứng thực]

Phân tích rủi ro kỹ thuật và biện pháp giảm thiểu:

  • Rủi ro rò rỉ trạng thái đặc quyền: Mã độc từ User Mode can thiệp CSR. Giải pháp: Tích hợp bộ giải mã quyền cấp thấp tại tầng ID; bất kỳ lệnh CSR nào phát sinh từ User Mode sẽ lập tức kích hoạt bẫy Illegal Instruction Trap.
  • Rủi ro xung đột dữ liệu đường ống (Pipeline Data Hazards): Hiện tượng Read-After-Write (RAW) khi thực thi chuỗi lệnh liên tiếp. Giải pháp: Thiết kế khối Hazard Detection Unit (HDU) và khối Data Forwarding (Bypass Unit) gửi kết quả từ ngõ ra tầng EX và MEM trực tiếp về ngõ vào ALU tầng ID/EX.

Implementation và kết quả

Development process

Quá trình hiện thực hóa hệ sinh thái vi xử lý được chia thành các giai đoạn thiết kế module chuyên biệt:

1. Thiết kế giải thuật phân giải xung đột (Hazard Resolution)

Khối HDU chịu trách nhiệm phát hiện xung đột phụ thuộc dữ liệu đọc sau tải (Load-Use Data Hazard). Khi một lệnh nạp bộ nhớ (lw, lh, lb) ở tầng EX có thanh ghi đích trùng với thanh ghi nguồn của lệnh tại tầng ID, HDU sẽ dừng (stall) thanh ghi PC và thanh ghi IF/ID trong 1 chu kỳ clock, đồng thời chèn một giá trị 0 (Bubble) vào thanh ghi ID/EX:

// Thuật toán phát hiện xung đột Load-Use trong HDU
wire is_load_use_hazard;
assign is_load_use_hazard = (id_ex_mem_read == 1'b1) && 
                            ((id_ex_rd == if_id_rs1) || (id_ex_rd == if_id_rs2)) &&
                            (id_ex_rd != 5'd0);

assign pc_write_dis     = is_load_use_hazard; // Dừng cập nhật PC
assign if_id_write_dis  = is_load_use_hazard; // Dừng thanh ghi IF/ID
assign id_ex_flush      = is_load_use_hazard; // Chèn Bubble vào tầng ID/EX

2. Thiết kế logic chuyển đổi trạng thái khi xảy ra ngoại lệ

Khi khối Reason Exception xác định có tín hiệu ngắt hợp lệ (ví dụ Timer Interrupt hoặc lệnh ECALL), bộ điều khiển kích hoạt chuỗi ghi nhận ngữ cảnh đặc quyền:

// Thuật toán cập nhật CSR khi bẫy Exception / Interrupt kích hoạt
always @(posedge clk or negedge rst_n) begin
    if (!rst_n) begin
        sstatus <= 32'h00000000;
        sepc    <= 32'h00000000;
        scause  <= 32'h00000000;
    end else if (exception_trigger) begin
        sstatus[5]     <= sstatus[1];          // SPIE <= SIE
        sstatus[1]     <= 1'b0;                // SIE  <= 0 (vô hiệu hóa ngắt lồng nhau)
        sstatus[8]     <= current_priv_mode;   // SPP  <= Chế độ trước khi bẫy
        sepc           <= (is_interrupt) ? id_ex_pc : if_id_pc;
        scause[31]     <= is_interrupt;        // 1: Interrupt, 0: Exception
        scause[30:0]   <= exception_cause_code;// Mã bẫy (e.g., 4'd8 cho User ECALL)
    end else if (is_sret_instruction) begin
        sstatus[1]     <= sstatus[5];          // Phục hồi SIE <= SPIE
        sstatus[5]     <= 1'b1;                // SPIE <= 1
        sstatus[8]     <= 1'b0;                // Reset SPP về User Mode
    end
end

3. Thiết kế Khối ALU Control

Khối ALU Control giải mã trường funct3, funct7opcode để xuất mã điều khiển 5-bit ALUsel, hỗ trợ đầy đủ 10 phép toán số học, logic và dịch bit cơ bản:

// Logic định tuyến mã điều khiển ALU
always @(*) begin
    case (funct3)
        3'b000: ALUsel = (funct7[5] && opcode[5]) ? 5'b00001 : 5'b00000; // SUB : ADD/ADDI
        3'b001: ALUsel = 5'b00101; // SLL / SLLI
        3'b010: ALUsel = 5'b00111; // SLT / SLTI
        3'b011: ALUsel = 5'b10111; // SLTU / SLTIU
        3'b100: ALUsel = 5'b00100; // XOR / XORI
        3'b101: ALUsel = (funct7[5]) ? 5'b01001 : 5'b00110; // SRA/SRAI : SRL/SRLI
        3'b110: ALUsel = 5'b00011; // OR / ORI
        3'b111: ALUsel = 5'b00010; // AND / ANDI
        default: ALUsel = 5'b00000;
    endcase
end

Testing và validation

Quá trình kiểm thử được triển khai đa tầng, đảm bảo tính toàn vẹn từ mô phỏng dạng sóng (waveform) đến đo lường trên cổng logic thực:

  1. Bộ kiểm thử chức năng tập lệnh: Sử dụng bộ test chuẩn quốc tế rv32ui-p-* gồm 37 tệp kiểm tra (tương ứng 37 lệnh số học, logic, nhảy, truy xuất bộ nhớ). Kết quả mô phỏng trên ModelSim cho thấy toàn bộ các bit cờ kiểm tra tại thanh ghi gp đều nhảy đến nhãn pass, 100% mã kiểm thử hoàn thành không lỗi.
  2. Bộ kiểm thử ngoại lệ đặc quyền: Tự xây dựng kịch bản kiểm tra exc_testbench kích hoạt liên tục chuỗi sự kiện: Khởi tạo ở User Mode $\rightarrow$ Kích hoạt ECALL $\rightarrow$ Chuyển sang Supervisor Mode tại địa chỉ bẫy trong stvec $\rightarrow$ Đọc/Ghi CSRs $\rightarrow$ Thực thi SRET để khôi phục User Mode $\rightarrow$ Kích hoạt Timer Interrupt phần cứng.
  3. Đánh giá sau tổng hợp (Post-synthesis STA): Báo cáo TimeQuest Timing Analyzer trên Quartus II chứng minh đường trễ truyền lan lớn nhất (Worst-Case Setup Slack) nằm trên đường giải mã từ HDU sang MUX chọn nguồn PC, đảm bảo tần số cắt $F_{max} \ge 50\text{ MHz}$.
===================================================================
Tóm tắt kết quả kiểm chuẩn bộ xử lý (Altera Cyclone II FPGA)
===================================================================
Tập lệnh RV32I (37/37 instructions):           PASSED (100%)
Tập lệnh CSRs & SRET (7/7 instructions):        PASSED (100%)
Ngoại lệ chuyển chế độ (ECALL -> SRET):         PASSED (Đúng địa chỉ & Mode)
Ngắt phần cứng (Hardware Timer Interrupt):      PASSED (4-bit counter overflow)
Bẫy lệnh cấm (Illegal Instruction Trap):        PASSED (Kích hoạt chính xác)
Xung nhịp tối đa đạt được (Maximum Freq):       50.00 MHz
===================================================================

Kết quả đạt được

Hệ thống đã đạt được đầy đủ các chỉ tiêu kỹ thuật đã đặt ra ban đầu:

  • Hoàn thành 100% chức năng thực thi 37 lệnh RV32I và 7 lệnh điều khiển hệ thống chế độ giám sát.
  • Xử lý chính xác các trường hợp xung đột dữ liệu (RAW) thông qua khối Forwarding đa kênh và xử lý xung đột rẽ nhánh tĩnh (Static Branch Not Taken) với chi phí chỉ 2 chu kỳ clock bị hủy (flush) khi nhánh thực sự xảy ra.
  • Xác thực thành công trên phần cứng vật lý Kit Altera DE2: Hệ thống chạy chính xác các chương trình assembly mẫu, hiển thị giá trị thanh ghi và trạng thái chế độ hoạt động (UM/SM) thông qua dãy LED 7 đoạn và LED đỏ/xanh trên bo mạch.

Đổi mới và đóng góp

Nghiên cứu mang lại những đóng góp kỹ thuật đáng kể trong lĩnh vực thiết kế kiến trúc máy tính và hệ thống nhúng an toàn:

                  +----------------------------------------------+
                  |  So sánh năng lực xử lý & Tần số hoạt động   |
                  +----------------------------------------------+

  100 % ───────────────────────────────────────────────────────── (UIT RISC-V: 50 MHz, Pipeline)
                                                                 - 37 RV32I + 7 CSRs
                                                                 - Dual-Mode (UM + SM)
                                                                 - Hazard Unit + Bypass
   50 % ──────────────────────── (An Xuân Tuấn: ~20 MHz, Single-Cycle)
                                 - 37 RV32I + 6 CSRs
                                 - Dual-Mode (UM + SM)
                                 - Critical Path dài

    0 % ───+───────────────────────────────────────+─────────────
           Single-Cycle Base                       Pipelined Proposed
  1. Tối ưu hóa kiến trúc đường ống 5 tầng cho Supervisor Mode: Khác với công trình đơn chu kỳ của An Xuân Tuấn (2020), đề tài đã phân rã toàn bộ logic quản lý trạng thái CSR và định tuyến bẫy ngắt vào cấu trúc Pipeline 5 tầng mà không làm phát sinh xung đột cấu trúc (Structural Hazard). Nâng tần số hoạt động từ mức thấp lên 50 MHz (tăng hơn 100% thông lượng xử lý).
  2. Cơ chế bẫy ngắt linh hoạt hỗ trợ 2 chế độ (Direct & Vectored Mode): Thiết kế cho phép bộ điều khiển ngắt phân nhánh trực tiếp tới một vector xử lý cố định hoặc tạo bảng nhảy tự động ($PC = Base + 4 \times cause$), giảm thời gian trễ phản hồi ngắt (Interrupt Latency) xuống chỉ còn 3-4 chu kỳ xung nhịp.
  3. Cấu trúc khối điều khiển dạng MUX tối ưu cho FPGA: Thay vì sử dụng FSM (máy trạng thái hữu hạn) phức tạp gây tốn tài nguyên logic cell, khối Control Unit được cấu trúc thành các bộ chọn dữ liệu logic trực tiếp (case-multiplexing), giảm thiểu đáng kể thời gian lan truyền tín hiệu (Propagation Delay) qua các bảng tra LUT (Look-Up Table) trên FPGA Cyclone II.

Ứng dụng thực tế và triển khai

Tình huống ứng dụng thực tế (Use Cases)

  1. Thiết bị IoT Gateway an toàn cao: Bộ xử lý cung cấp 2 chế độ đặc quyền giúp vận hành nhân hệ điều hành nhúng (như FreeRTOS, Zephyr OS hoặc seL4 microkernel) ở Supervisor Mode, trong khi các tiến trình thu thập cảm biến và giao tiếp mạng chạy hoàn toàn ở User Mode. Nếu tiến trình mạng bị tấn công tràn bộ đệm, nó không thể chiếm quyền điều khiển nhân phần cứng.
  2. Bộ điều khiển khả trình trong công nghiệp (Industrial PLC): Với khối Timer định thời chính xác và cơ chế ngắt thời gian thực (Real-time Interrupt), bộ xử lý đảm bảo thực thi các chu kỳ quét I/O công nghiệp với độ trễ thấp và độ tin cậy phần cứng tuyệt đối.
  3. Nền tảng IP Core giáo dục và R&D vi mạch: Lõi xử lý là tài liệu tham khảo chuẩn mực để giảng dạy môn học Kiến trúc Máy tính, Thiết kế Vi mạch số (ASIC/FPGA Design Flow) tại các trường đại học kỹ thuật.

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

  • Tiết kiệm chi phí bản quyền IP: Sử dụng kiến trúc mở RISC-V hoàn toàn miễn phí, loại bỏ chi phí mua lõi IP đóng từ ARM (có thể tốn từ hàng chục nghìn đến hàng triệu USD cho các doanh nghiệp khởi nghiệp phần cứng).
  • Hiệu quả diện tích phần cứng (Area Efficiency): Thiết kế gọn nhẹ, tối ưu tài nguyên logic, có thể tổng hợp dễ dàng trên các dòng FPGA giá rẻ (Altera Cyclone II/IV, Xilinx Spartan-6/Artix-7) mà vẫn giữ được hiệu năng cao.

Hạn chế và hướng phát triển

Dù đạt được toàn bộ mục tiêu thiết kế ban đầu, đề tài vẫn ghi nhận một số hạn chế kỹ thuật cần hoàn thiện trong các nghiên cứu tương lai:

  • Chưa tích hợp bộ nhớ ảo (MMU - Memory Management Unit): Chưa có khối chuyển đổi địa chỉ ảo sang vật lý (Virtual Memory Translation với chuẩn Sv32), do đó chưa thể chạy trực tiếp các bản phân phối Linux đầy đủ (Full Linux Kernel).
  • Dung lượng bộ nhớ nội bộ giới hạn: Khối Instruction Memory và Data Memory đang được ánh xạ trực tiếp trên bộ nhớ khối nội tại (Block RAM) của FPGA, chưa có giao tiếp bộ nhớ ngoài DDR2/DDR3 qua bus chuẩn công nghiệp (như AXI4 hoặc Wishbone).
  • Dự đoán rẽ nhánh tĩnh (Static Prediction): Hệ thống mặc định áp dụng chiến lược Predict-Not-Taken, dẫn đến tổn thất hiệu năng nhất định đối với các vòng lặp tính toán sâu lặp lại liên tục.

Hướng phát triển đề xuất:

  1. Thiết kế và tích hợp bộ nhớ Translation Lookaside Buffer (TLB) cùng MMU hỗ trợ cơ chế phân trang Sv32 để nạp thành công hệ điều hành Linux RISC-V.
  2. Bổ sung các tầng bộ nhớ đệm dữ liệu và lệnh (L1 I/D Cache) với chính sách ghi thích hợp (Write-Through/Write-Back).
  3. Hiện thực chuẩn giao tiếp bus mở Wishbone SoC hoặc AMBA AXI4 để kết nối đồng bộ các ngoại vi phức tạp (SDRAM Controller, UART, SPI, Ethernet MAC).

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                             |
+----------------------+-----------------------+------------------------------+
| Sinh viên & Đào tạo  | Kỹ sư thiết kế RTL    | Doanh nghiệp nhúng & Vi mạch |
| - Codebase mẫu trực  | - Tham khảo kiến trúc | - Lõi IP Core mở, không mất  |
|   quan, chuẩn hóa    |   Pipeline + Hazard   |   phí bản quyền cho thiết bị |
| - Hiểu sâu luồng     | - Giải thuật bẫy CSRs |   IoT bảo mật cao            |
|   bẫy Supervisor     |   chuẩn hóa quốc tế   | - Tiết kiệm chi phí R&D      |
+----------------------+-----------------------+------------------------------+
  • Sinh viên ngành Kỹ thuật Máy tính / Điện tử Viễn thông: Sở hữu tài liệu nghiên cứu chuyên sâu bằng tiếng Việt có kèm mã nguồn Verilog hoàn chỉnh, minh họa chi tiết từng bước giải quyết xung đột Pipeline và cơ chế quản lý đặc quyền hệ thống.
  • Kỹ sư thiết kế vi mạch (RTL Designers): Nắm bắt mô hình kiến trúc chuẩn xác về cách ánh xạ các thanh ghi CSRs và cơ chế chuyển đổi ngữ cảnh đặc quyền theo đặc tả chuẩn của RISC-V Foundation.
  • Doanh nghiệp phát triển thiết bị phần cứng thông minh: Có sẵn một lõi vi xử lý 32-bit nội địa hóa đã qua kiểm chuẩn phần cứng FPGA, dễ dàng tùy biến thêm các tập lệnh chuyên dụng phục vụ xử lý tín hiệu số hoặc trí tuệ nhân tạo biên (Edge AI).

Câu hỏi thường gặp

1. Yêu cầu tài nguyên phần cứng tối thiểu để triển khai bộ xử lý là gì?

Hệ thống được thiết kế tối ưu, có thể tổng hợp thành công trên các kit FPGA đời phổ thông như Altera Cyclone II (EP2C35F672C6) hoặc tương đương với ít hơn 4.000 Logic Elements (LEs) và một vài khối nhớ nhúng M4K RAM. Người dùng có thể sử dụng Quartus II v13.0 SP1 trở lên để cấu hình bitstream.

2. Bộ xử lý xử lý các xung đột rẽ nhánh (Control Hazards) như thế nào?

Bộ xử lý áp dụng kỹ thuật dự đoán rẽ nhánh tĩnh "Predict Branch Not Taken". Các lệnh kế tiếp trong hàng nạp vẫn được tìm nạp bình thường vào tầng IF và ID. Nếu tại tầng EX kết quả so sánh cho thấy nhánh rẽ được thực thi, bộ xử lý sẽ gửi tín hiệu flush để xóa 2 lệnh đã nạp sai và nạp lại PC từ địa chỉ nhánh mục tiêu.

3. Làm thế nào để tích hợp thêm các thanh ghi CSR tùy biến vào hệ thống?

Do khối System Register File được thiết kế theo cấu trúc module hóa cao, bạn chỉ cần bổ sung địa chỉ 12-bit của thanh ghi mới vào bảng ánh xạ trong khối giải mã CSR và thêm logic đọc/ghi tương ứng tại khối Datapath theo đúng cú pháp lệnh CSRRW/CSRRS/CSRRC.

4. Hệ điều hành nào có thể chạy được trên lõi xử lý hiện tại?

Hiện tại, lõi xử lý hỗ trợ đầy đủ chế độ User và Supervisor Mode cùng các ngắt Timer/Software, do đó tương thích hoàn toàn với các hệ điều hành thời gian thực có phân cấp đặc quyền như FreeRTOS (với cấu hình phân vùng bảo vệ phần cứng) hoặc Zephyr RTOS. Để chạy Linux đầy đủ, cần phát triển thêm khối quản lý bộ nhớ ảo MMU.

5. Vì sao lại chọn tần số hoạt động 50 MHz trên kit Altera DE2?

Mức 50 MHz là tần số dao động thạch anh chuẩn (Clock Oscillator) tích hợp sẵn trên bo mạch Altera DE2. Mức tần số này vừa tối ưu hóa đường trễ chuyển mạch của công nghệ bán dẫn Cyclone II 90nm, vừa không yêu cầu phải sử dụng các khối PLL nhân tần phức tạp, giúp việc truyền dữ liệu giữa lõi CPU và các ngoại vi trên kit diễn ra an toàn, ổn định tuyệt đối.


Kết luận

Đồ án tốt nghiệp "Thiết kế bộ xử lý RISC-V hỗ trợ chế độ giám sát" đã giải quyết triệt để bài toán nâng cao hiệu năng và năng lực bảo mật phần cứng cho kiến trúc vi xử lý mở tại Việt Nam. Bằng việc kết hợp thành công kỹ thuật đường ống 5 tầng (5-stage Pipeline) với cơ chế phân tầng đặc quyền kép (User Mode & Supervisor Mode), nhóm nghiên cứu đã xây dựng một hệ thống hoàn chỉnh có khả năng thực thi 37 lệnh RV32I, 7 lệnh hệ thống CSR và xử lý linh hoạt mọi dạng ngắt/ngoại lệ thời gian thực ở tần số ổn định 50 MHz trên nền tảng FPGA Altera DE2.

Kết quả của đề tài không chỉ đóng góp một giải pháp kỹ thuật vi mạch có tính ứng dụng cao cho các thiết bị IoT an toàn mà còn mở ra nền tảng vững chắc cho các nghiên cứu phát triển vi xử lý hiệu năng cao trong tương lai (hướng tới hỗ trợ đầy đủ MMU và Linux Kernel). Công trình là minh chứng rõ nét cho năng lực nghiên cứu, làm chủ công nghệ thiết kế phần cứng mở của kỹ sư vi mạch Việt Nam trong kỷ nguyên công nghệ bán dẫn toàn cầu.