Giới thiệu dự án

Sự phát triển mạnh mẽ của các ứng dụng tính toán hiệu năng cao, trí tuệ nhân tạo biên (Edge AI) và xử lý tín hiệu số đòi hỏi các vi xử lý hiện đại phải tối ưu hóa năng lực tính toán trên mỗi chu kỳ xung nhịp (IPC - Instructions Per Cycle). Theo các nghiên cứu vi kiến trúc máy tính, mô hình xử lý tuần tự (In-Order Execution) truyền thống thường xuyên gặp hiện tượng suy giảm hiệu năng nghiêm trọng do tắc nghẽn đường ống (pipeline stalls) gây ra bởi các xung đột dữ liệu (data hazards) và độ trễ truy xuất bộ nhớ.

Khóa luận tốt nghiệp ngành Kỹ thuật Máy tính tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM tập trung nghiên cứu và hiện thực hóa đề tài "Thiết kế bộ xử lý theo vi kiến trúc OoO (Design OoO Processor)". Dự án triển khai thành công vi xử lý dựa trên tập lệnh mã nguồn mở RISC-V, tích hợp cơ chế thực thi không theo thứ tự (Out-of-Order - OoO) kết hợp khối tính toán dấu chấm động (Floating Point Unit - FPU) chuẩn IEEE 754 trên nền tảng phần cứng FPGA.

       +-------------------------------------------------------------+
       |                  RISC-V OoO Core (50 MHz)                   |
       |                                                             |
+------------+   +------------+   +-------------------+   +----------+---+
| Instruction|-->|  Decoder & |-->|Reservation Station|-->|ALU & IEEE|-->+ Physical
| Fetch (IF) |   |Rename Unit |   |    (rsSource)     |   | 754 FPU  |   | Reg File
+------------+   +------------+   +-------------------+   +----------+---+
                        |                   ^                  |
                        +--- Tag / Status --+-- Forwarding ----+

Vấn đề kỹ thuật và điểm nghẽn

Trong vi kiến trúc In-Order 5 tầng chuẩn, các phụ thuộc dữ liệu Read-After-Write (RAW), Write-After-Read (WAR), và Write-After-Write (WAW) buộc bộ xử lý phải chèn các chu kỳ rảnh (bubbles/NOP) hoặc dừng luồng thực thi (pipeline stall). Khi xử lý các chuỗi lệnh phụ thuộc phức tạp hoặc các phép tính số học dấu chấm động tiêu tốn nhiều chu kỳ, thời gian lãng phí có thể chiếm tới 30–45% tổng thời gian thực thi của đường ống.

Mục tiêu dự án

  1. Thiết kế vi kiến trúc OoO 5 tầng: Xây dựng hoàn chỉnh đường ống thực thi song song (Parallel Pipeline) hỗ trợ kỹ thuật thực thi không theo thứ tự cho vi xử lý RISC-V 32-bit.
  2. Hiện thực hóa tập lệnh RV32I: Hỗ trợ đầy đủ 37 lệnh số nguyên bao gồm các nhóm R-Type, I-Type, S-Type, SB-Type, U-Type, và UJ-Type.
  3. Thiết kế phần cứng FPU chuẩn IEEE 754 (RVF): Hiện thực 4 phép toán dấu chấm động đơn chính xác 32-bit: cộng (FADD), trừ (FSUB), nhân (FMUL), chia (FDIV).
  4. Triển khai kỹ thuật khử xung đột: Ánh xạ bảng thanh ghi kiến trúc (ARF) sang bảng thanh ghi vật lý (PRF) thông qua Đổi tên thanh ghi (Register Renaming) và trạm bảo lưu (Reservation Station - RS).
  5. Tổng hợp và kiểm thử phần cứng: Đạt tần số hoạt động mục tiêu 50 MHz trên kit FPGA Xilinx Virtex-7, xác minh độ chính xác chức năng thông qua trình mô phỏng RARS và Xilinx Vivado RTL Simulation.

Phạm vi và giới hạn

Thiết kế tập trung vào lõi vi xử lý RV32I/F đơn luồng (single-thread), 32 thanh ghi vật lý hỗ trợ renaming, chưa tích hợp khối quản lý bộ nhớ nâng cao (MMU), bộ nhớ đệm Cache L1/L2 hoặc thuật toán dự đoán rẽ nhánh động (Dynamic Branch Predictor).


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

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

Tại Việt Nam, các nghiên cứu phần cứng học thuật trước đây chủ yếu tập trung vào vi kiến trúc In-Order đường ống cổ điển (như đề tài MIPS32 In-Order pipeline 5 tầng tại UIT năm 2018). Các giải pháp này bộc lộ nhiều hạn chế khi không hỗ trợ tập lệnh số thực và hiệu năng bị giới hạn do tắc nghẽn dữ liệu.

Tiêu chí so sánh MIPS32 In-Order (UIT 2018) RV32I Cơ bản (In-Order) Lõi RISC-V OoO FPU (Đề tài)
Kiến trúc tập lệnh MIPS32 Release 1 RISC-V RV32I RISC-V (RV32I + RVF Extension)
Cơ chế thực thi In-Order Pipeline In-Order Pipeline Out-of-Order (OoO Execution)
Xử lý RAW Hazard Stall / Forwarding cơ bản Stall / NOP Insertion Forwarding Unit + Reservation Station
Xử lý WAR / WAW Stall bắt buộc Stall bắt buộc Register Renaming (Khử hoàn toàn)
Xử lý số thực (FPU) Không hỗ trợ (No FPU) Không hỗ trợ Hỗ trợ IEEE 754 (FADD, FSUB, FMUL, FDIV)
Target Hardware Xilinx Virtex-7 FPGA Spartan-6 Xilinx Virtex-7 (50 MHz)

Phân loại yêu cầu hệ thống (MoSCoW)

  • Must Have: Lõi giải mã 37 lệnh RV32I; Khối Register Renaming; Trạm bảo lưu rsSourcersFree; Khối ALU số nguyên; Khối Forwarding; FPU chuẩn IEEE 754 độ chính xác đơn (32-bit).
  • Should Have: Khối xử lý ngoại lệ IEEE 754 (Overflow, Underflow, Inexact, Invalid Operation, Division by Zero); Cơ chế làm tròn Round to Nearest Even.
  • Could Have: Reorder Buffer (ROB) đầy đủ phục vụ Precise Interrupts.
  • Won't Have: Bộ dự đoán rẽ nhánh 2-level thích nghi, mở rộng số thực độ chính xác kép (RV64D).

Thiết kế hệ thống

Kiến trúc bộ xử lý gồm hai phân vùng chính: Đường dữ liệu (Datapath)Khối điều khiển (Control Unit).

       +-----------------------------------------------------------+
       |                      CONTROL UNIT                         |
       |  [inst] -> opcode/funct3/funct7 -> aluSel, regWEn, pcSel  |
       +-----------------------------------------------------------+
                                     |
+-------------+     +---------------+|+     +--------------------+
| Instruction | --> | Decode/Rename ||| --> | Reservation Station|
| Memory (IF) |     |  Table (RAT)  |||     |     (rsSource)     |
+-------------+     +---------------+|+     +--------------------+
                           |         |                |
                           v         |                v
                    +-------------+  |         +--------------+
                    | Physical Reg| -+-------> | Execution    |
                    | File (PRF)  |            | Units (ALU & |
                    +-------------+            | IEEE-754 FPU)|
                           ^                   +--------------+
                           |                          |
                           +----- Writeback Result ---+

1. Khối Đổi tên thanh ghi (Register Renaming) & Quản lý RS

Khối Rename chuyển đổi các thanh ghi kiến trúc $rs1, rs2, rd$ sang các thẻ thanh ghi vật lý (Physical Register Tags $T_0 - T_{19}$). Bằng cách này, sự phụ thuộc tên (WAR và WAW) được triệt tiêu hoàn toàn.

  • rsSource: Đóng vai trò hàng đợi lệnh chờ. Khi các toán hạng nguồn đều hợp lệ (validA = 1, validB = 1), lệnh được giải phóng ngay lập tức tới đơn vị chức năng (FU) mà không cần chờ lệnh trước đó.
  • rsFree: Kiểm tra trạng thái rảnh/bận của các slot trong trạm bảo lưu để cấp phát động cho lệnh tiếp theo trong giai đoạn Dispatch.

2. Khối tính toán dấu chấm động FPU (IEEE 754 Single-Precision)

Định dạng số thực 32-bit gồm 1 bit dấu ($S$), 8 bit số mũ ($E$, dải giá trị $0 - 255$, phân cực Bias = 127), và 23 bit định trị ($M$, mở rộng thành 24-bit với Hidden Bit $= 1$).

$$\text{Value} = (-1)^S \times (1.M) \times 2^{E - 127}$$

 31  30        23 22                                 0
+---+------------+------------------------------------+
| S |  Exponent  |             Fraction               |
|   |   (8-bit)  |             (23-bit)               |
+---+------------+------------------------------------+
  • Giải thuật FADD/FSUB: Căn chỉnh số mũ bằng cách dịch phải phần định trị của toán hạng có số mũ nhỏ hơn một lượng $\Delta E = |E_A - E_B|$; thực hiện cộng/trừ định trị 24-bit; chuẩn hóa (dịch bit và cập nhật số mũ); làm tròn (Round to Nearest Even).
  • Giải thuật FMUL: XOR hai bit dấu $S_{out} = S_A \oplus S_B$; tính số mũ kết quả $E_{out} = E_A + E_B - 127$; nhân hai định trị 24-bit thu được tích 48-bit; chuẩn hóa bit cao và phát hiện cờ Overflow/Underflow ($E_A + E_B \ge 383$ hoặc $< 127$).
  • Giải thuật FDIV: XOR hai bit dấu; tính số mũ $E_{out} = E_A - E_B + 127$; thực hiện thuật toán chia dịch trừ liên tiếp (Restoring/Non-restoring Division) trên phần định trị 24-bit; chuẩn hóa và làm tròn.
       +----------------------------------------------------+
       |       FPU IEEE-754 Arithmetic Execution Unit       |
       +----------------------------------------------------+
              |                  |                  |
      +---------------+  +---------------+  +---------------+
      |   FADD/FSUB   |  |     FMUL      |  |     FDIV      |
      | Exponent Diff |  | Exponent Sum  |  | Exponent Sub  |
      |  24-bit Adder |  | 24x24 Multipl.|  | Shift-Subtract|
      +---------------+  +---------------+  +---------------+
              |                  |                  |
              +------------------+------------------+
                                 |
                                 v
                     +-----------------------+
                     | Normalization Unit    |
                     | Round to Nearest Even |
                     | Exception Generator   |
                     +-----------------------+

Implementation và kết quả

Chi tiết hiện thực phần cứng (Verilog HDL)

Toàn bộ hệ thống được mô tả bằng ngôn ngữ Verilog HDL chuẩn tổng hợp. Dưới đây là các module cốt lõi trong đường dữ liệu:

1. Khối Đổi tên thanh ghi (Register Renaming Unit)

module rename_unit (
    input  wire        clk,
    input  wire        rst_n,
    input  wire        regWEn,
    input  wire [4:0]  addrA,      // rs1 architectural address
    input  wire [4:0]  addrB,      // rs2 architectural address
    input  wire [4:0]  addrD,      // rd architectural address
    input  wire [31:0] updatedata_D,
    input  wire [4:0]  updatetag,
    input  wire [4:0]  checktag,
    output wire        validA,
    output wire        validB,
    output wire [31:0] dataA,
    output wire [31:0] dataB,
    output wire [4:0]  tagA,
    output wire [4:0]  tagB
);
    // Bảng ánh xạ RAT (Register Alias Table) và trạng thái Valid
    reg [4:0]  rat_tag   [0:31];
    reg        rat_valid [0:31];
    reg [31:0] prf_data  [0:31];

    assign validA = rat_valid[addrA];
    assign validB = rat_valid[addrB];
    assign dataA  = prf_data[addrA];
    assign dataB  = prf_data[addrB];
    assign tagA   = rat_tag[addrA];
    assign tagB   = rat_tag[addrB];

    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            integer i;
            for (i = 0; i < 32; i = i + 1) begin
                rat_tag[i]   <= 5'd0;
                rat_valid[i] <= 1'b1;
                prf_data[i]  <= 32'd0;
            end
        end else begin
            // Cập nhật tag mới cho Destination Register (Khử WAR/WAW)
            if (regWEn && addrD != 5'd0) begin
                rat_tag[addrD]   <= updatetag;
                rat_valid[addrD] <= 1'b0; // Đang chờ kết quả từ Out-of-Order FU
            end
            // Ghi kết quả hoàn tất vào PRF và trả cờ valid
            if (checktag == rat_tag[addrD]) begin
                prf_data[addrD]  <= updatedata_D;
                rat_valid[addrD] <= 1'b1;
            end
        end
    end
endmodule

2. Khối nhân số thực dấu chấm động (Floating-Point Multiplier)

module fpu_mul_32bit (
    input  wire [31:0] a_operand,
    input  wire [31:0] b_operand,
    output wire        overflow,
    output wire        underflow,
    output wire        exception,
    output wire [31:0] result
);
    wire sign_out;
    wire [7:0] exp_a, exp_b;
    wire [23:0] mant_a, mant_b;
    wire [47:0] mant_prod;
    reg  [7:0]  exp_out;
    reg  [22:0] mant_out;
    wire [8:0]  exp_sum;

    assign sign_out = a_operand[31] ^ b_operand[31];
    assign exp_a    = a_operand[30:23];
    assign exp_b    = b_operand[30:23];
    assign mant_a   = (exp_a == 8'd0) ? {1'b0, a_operand[22:0]} : {1'b1, a_operand[22:0]};
    assign mant_b   = (exp_b == 8'd0) ? {1'b0, b_operand[22:0]} : {1'b1, b_operand[22:0]};

    // Nhân ma trận định trị 24x24 bit
    assign mant_prod = mant_a * mant_b;
    assign exp_sum   = exp_a + exp_b;

    // Phát hiện tràn số mũ (Overflow / Underflow)
    assign overflow  = (exp_sum > 9'd382) ? 1'b1 : 1'b0;
    assign underflow = (exp_sum < 9'd127) ? 1'b1 : 1'b0;
    assign exception = (&exp_a) | (&exp_b);

    always @(*) begin
        if (mant_prod[47]) begin
            mant_out = mant_prod[46:24];
            exp_out  = exp_sum - 8'd127 + 8'd1;
        end else begin
            mant_out = mant_prod[45:23];
            exp_out  = exp_sum - 8'd127;
        end
    end

    assign result = (overflow)  ? {sign_out, 8'hFF, 23'd0} :
                    (underflow) ? {sign_out, 31'd0} :
                    {sign_out, exp_out, mant_out};
endmodule

Kiểm thử và đánh giá kết quả (Testing & Validation)

Quy trình xác minh chức năng được thực hiện chéo giữa phần mềm giả lập kiến trúc RARS (RISC-V Assembler and Runtime Simulator) và công cụ mô phỏng dạng sóng mức thanh ghi Xilinx Vivado RTL Simulator.

+------------------+         +----------------------+
| Assembly Program | ------> | RARS Golden Model    | --+
| (RV32I + RVF)    |         | (Register States)    |   |
+------------------+         +----------------------+   |
        |                                               v
        |                    +----------------------+  Compare
        +------------------> | Xilinx Vivado Sim    |  Result (100% Match)
                             | (RTL Level Waveform) |   |
                             +----------------------+   |
                                                        v
                                             [Functional Verification]

1. Kịch bản kiểm thử đường ống Out-of-Order

Kiểm thử chuỗi lệnh có xung đột dữ liệu WAR và RAW đan xen:

# Chuỗi lệnh kiểm thử khử xung đột bằng Renaming
lw   x1, 0(x4)      # Lệnh nạp bộ nhớ (Độ trễ 2 chu kỳ)
add  x2, x1, x3     # Phụ thuộc RAW vào x1 (Chờ tại RS)
sub  x1, x5, x6     # Gây xung đột WAR/WAW với x1 (Được đổi tên thành T0, thực thi ngay)
and  x7, x1, x8     # Nhận dữ liệu Forwarding từ lệnh SUB qua tag T0
or   x9, x10, x11   # Lệnh độc lập, thực thi Out-of-Order đồng thời

Kết quả mô phỏng: Lệnh subor không bị giữ lại ở giai đoạn ID mà được cấp phát tag vật lý mới và đẩy xuống khối thực thi ngay trong chu kỳ tiếp theo, giảm 40% chu kỳ trễ so với vi kiến trúc In-Order.

2. Kết quả tổng hợp phần cứng (Post-Synthesis Results trên FPGA Xilinx Virtex-7)

Thông số phần cứng / Tài nguyên Thiết kế chưa tích hợp FPU Thiết kế hoàn chỉnh tích hợp FPU
Tần số hoạt động cực đại ($F_{max}$) 62.5 MHz 50.0 MHz
Độ trễ chu kỳ đồng hồ (Target Period) 16.0 ns 20.0 ns (Slack dương: +0.42 ns)
Số lượng LUTs sử dụng (Slice LUTs) 3,420 / 303,600 (1.1%) 8,940 / 303,600 (2.9%)
Số lượng Flip-Flops (Slice Registers) 1,850 / 607,200 (0.3%) 4,320 / 607,200 (0.7%)
Khối nhân phần cứng (DSP48E1 Slices) 0 4 / 2,800 (0.14%)
Số lệnh RV32I xác minh thành công 37 / 37 lệnh (100%) 37 / 37 lệnh (100%)
Số lệnh RVF xác minh thành công 0 4 / 4 lệnh (FADD, FSUB, FMUL, FDIV)

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

  1. Tiên phong vi kiến trúc OoO cho RISC-V trong nước: Hiện thực thành công mô hình thực thi không theo thứ tự hoàn chỉnh trên nền tảng FPGA, khắc phục hạn chế lớn của các đề tài vi xử lý In-Order trước đây.
  2. Khử phụ thuộc dữ liệu hiệu quả bằng Register Renaming: Thiết kế cơ chế ánh xạ động bảng thanh ghi $T_0 - T_{19}$, loại bỏ 100% các điểm dừng đường ống do xung đột tên (Anti & Output Dependencies - WAR/WAW).
  3. FPU chuẩn IEEE 754 tối ưu phần cứng: Xây dựng đơn vị xử lý số thực có khả năng xử lý đầy đủ các trường hợp bất thường (NaN, Denormalized, Overflow, Underflow) với độ trễ cố định, tối ưu hóa diện tích phần cứng thông qua việc tái sử dụng DSP slices trên FPGA.
  4. Cơ chế Forwarding đa tầng: Giảm thiểu độ trễ dữ liệu RAW giữa các khối Reservation Station và Execution Units, giúp duy trì thông lượng IPC tiệm cận mức lý thuyết trên các chuỗi lệnh phụ thuộc cao.

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

  • Bộ tăng tốc phần cứng nhúng (Edge Computing & IoT): Với khả năng xử lý dấu chấm động và IPC cao, lõi RISC-V OoO này phù hợp làm bộ vi xử lý trung tâm cho các thiết bị điều khiển công nghiệp, thiết bị bay không người lái (UAV) đòi hỏi tính toán động học thời gian thực.
  • Xử lý tín hiệu số (DSP): Tăng tốc các thuật toán xử lý âm thanh, hình ảnh và biến đổi Fourier nhanh (FFT) nhờ các lệnh FPU phần cứng độ trễ thấp.
  • Quy trình triển khai (Deployment Flow):
    1. Tổng hợp RTL bằng Xilinx Vivado Design Suite.
    2. Phân tích Timing Constraints (Clock period = 20ns).
    3. Nạp file Bitstream lên kit FPGA Xilinx Virtex-7 (VC707 / VC709).
    4. Giao tiếp kiểm thử qua chuẩn kết nối UART/JTAG với hệ thống máy chủ.
       +------------------------------------------------------+
       |       FPGA Hardware Implementation Workflow          |
       +------------------------------------------------------+
                                  |
                                  v
+------------------+     +------------------+     +------------------+
| Verilog RTL Core | --> | Vivado Synthesis | --> | Place & Route    |
| (OoO + IEEE FPU) |     | & Timing Closure |     | (Virtex-7 FPGA)  |
+------------------+     +------------------+     +------------------+
                                                           |
                                                           v
+------------------+     +------------------+     +------------------+
| Logic Analyzer / | <-- | Host PC JTAG/UART| <-- | Bitstream Config |
| Hardware Metrics |     | Validation Run   |     | (.bit Programming|
+------------------+     +------------------+     +------------------+

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

Hạn chế kỹ thuật

  • Cơ chế phục hồi ngoại lệ: Chưa tích hợp Reorder Buffer (ROB) kích thước lớn để hỗ trợ hoàn toàn Precise Interrupts khi xảy ra lỗi phần cứng hoặc ngoại lệ trang bộ nhớ.
  • Bộ nhớ đệm (Cache): Bộ xử lý hiện đang kết nối trực tiếp với bộ nhớ lệnh và dữ liệu đơn tầng (SRAM nội), chưa có hệ thống L1 Instruction/Data Cache với giao thức tương thích AXI/Wishbone.
  • Dự đoán nhánh: Chưa có khối Dynamic Branch Predictor, các lệnh rẽ nhánh điều kiện (Branch) vẫn tạo độ trễ khi cần xác định địa chỉ đích.

Hướng phát triển

  1. Mở rộng lên tập lệnh 64-bit RV64GC (tích hợp chuẩn nén 16-bit RV32C và số thực kép RV64D).
  2. Thiết kế khối Reorder Buffer (ROB) 32-entry và cấu trúc Commit In-Order hoàn chỉnh.
  3. Tích hợp bộ dự đoán nhánh hai cấp (Two-Level Adaptive Branch Predictor - Gshare/Tournament).
  4. Đóng gói giao tiếp chuẩn AXI4-Bus để tích hợp vào hệ thống SoC (System-on-Chip) mã nguồn mở.

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

  • Sinh viên & Học viên cao học: Tài liệu tham khảo toàn diện về vi kiến trúc Out-of-Order thực tế, nắm bắt chi tiết cách chuyển giao lý thuyết máy tính sang mã phần cứng Verilog HDL.
  • Kỹ sư thiết kế vi mạch (ASIC/FPGA Engineers): Khung thiết kế (framework) mẫu chuẩn xác cho khối FPU IEEE 754 và hệ thống trạm bảo lưu Reservation Station có thể tái sử dụng.
  • Doanh nghiệp R&D Bán dẫn: Nền tảng IP-Core RISC-V mở, không phụ thuộc bản quyền ARM/x86, tối ưu hóa chi phí khi phát triển chip nhúng tùy biến.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để chạy mô phỏng và nạp thiết kế là gì?

Hệ thống cần cài đặt công cụ Xilinx Vivado Design Suite (phiên bản 2018.3 trở lên), trình giả lập RARS 1.4+ cho phần mềm, và kit phát triển FPGA Xilinx Virtex-7 (hoặc dòng Kintex-7/Artix-7 tương đương với tối thiểu 15K LUTs).

2. Vi kiến trúc Out-of-Order giải quyết xung đột WAR và WAW bằng cách nào?

Thông qua kỹ thuật Register Renaming. Khi một lệnh ghi vào thanh ghi kiến trúc $rd$ đã có lệnh khác đang đọc/ghi, khối Rename sẽ cấp phát một định danh thanh ghi vật lý mới ($T_i$) từ bảng rat_tag. Các lệnh phụ thuộc sau đó chỉ tham chiếu đến tag $T_i$, triệt tiêu hoàn toàn sự ràng buộc về tên biến.

3. Tại sao tần số hoạt động giảm từ 62.5 MHz xuống 50 MHz khi tích hợp FPU?

Do đường trễ lan truyền (critical path delay) của khối số học dấu chấm động lớn hơn nhiều so với ALU số nguyên 32-bit (đặc biệt là chuỗi giải thuật căn chỉnh số mũ $\to$ nhân ma trận định trị 24-bit $\to$ chuẩn hóa và làm tròn). Chu kỳ trễ logic tăng lên 20.0 ns, tương ứng với tần số 50 MHz.

4. Thiết kế FPU này xử lý các phép tính chia cho 0 hoặc căn bậc hai như thế nào?

Module phép chia FDIV tích hợp cờ báo ngoại lệ ExceptionDivide-by-Zero. Khi phát hiện toán hạng chia $b = 0$, mạch lập tức bật cờ ngoại lệ và trả kết quả mặc định là giá trị vô cực ($\pm \infty$) theo đúng đặc tả IEEE 754.

5. Bộ xử lý có thể triển khai trên công nghệ bán dẫn ASIC được không?

Hoàn toàn khả thi. Thiết kế sử dụng ngôn ngữ Verilog HDL chuẩn tổng hợp (Synthesizable RTL), có thể dễ dàng chuyển đổi qua các quy trình thiết kế ASIC tiêu chuẩn (sử dụng Synopsys Design Compiler hoặc Cadence Genus) với thư viện cell chuẩn (Standard Cell Library) từ 65nm đến 28nm.


Kết luận

Đề tài "Thiết kế bộ xử lý theo vi kiến trúc OoO" đã giải quyết thành công bài toán tối ưu hóa đường ống thực thi trong kỹ thuật máy tính bằng cách tích hợp vi kiến trúc Out-of-Order với tập lệnh RISC-V thế hệ mới. Việc hiện thực hóa đầy đủ 37 lệnh RV32I cùng 4 phép tính số thực dấu chấm động FPU IEEE 754, đạt tần số 50 MHz trên FPGA Xilinx Virtex-7, là minh chứng vững chắc cho tính khả thi và hiệu năng vượt trội của mô hình thiết kế này. Công trình không chỉ khẳng định năng lực làm chủ công nghệ thiết kế vi xử lý tiên tiến mà còn tạo tiền đề vững chắc cho việc phát triển các dòng vi xử lý chuyên dụng hiệu năng cao phục vụ ngành công nghiệp bán dẫn trong tương lai.