Giới thiệu dự án

Trong kỷ nguyên bùng nổ của trí tuệ nhân tạo (AI), điện toán biên (Edge Computing) và xử lý tín hiệu số (DSP), nhu cầu tích hợp các hệ thống vi xử lý đa lõi (Multi-core SoC) trên một vi mạch duy nhất ngày càng gia tăng. Tuy nhiên, kiến trúc bus chia sẻ truyền thống (như AMBA AHB/APB) đang bộc lộ những điểm nghẽn nghiêm trọng về độ trễ, băng thông và khả năng mở rộng khi số lượng lõi xử lý tăng lên. Hiện tượng tranh chấp tài nguyên (bus contention) và tiêu hao năng lượng cao đòi hỏi các giải pháp kết nối vi mạng trên chip—Network-on-Chip (NoC)—kết hợp cùng kiến trúc tập lệnh mở RISC-V để tối ưu hóa hiệu năng phần cứng.

Đề tài "Hiện thực một NoC (Network on Chip) sử dụng lõi vi xử lý RISC-V RV32IMF thông qua giao thức TileLink trên FPGA" giải quyết bài toán giao tiếp song song hiệu năng cao giữa các lõi xử lý RISC-V tùy biến. Dự án kết hợp tập lệnh mở rộng tính toán số nguyên và số thực IEEE 754 với giao thức liên kết TileLink và bộ chuyển mạch Crossbar switch 4x4 sử dụng thuật toán phân xử trọng tài đường chéo DPA (Diagonal Propagation Arbiter).

   +-----------------------------------------------------------------------+
   |                     HỆ THỐNG NoC 4x4 TREN FPGA                       |
   |                                                                       |
   |  +--------------------+                     +--------------------+    |
   |  | Master Core 1..4   |                     | Slave Node 5..8    |    |
   |  | (RV32IMF Core)     |                     | (Memory / Accel)   |    |
   |  |  - 5-Stage Pipe    |                     |  - TL-C/UH/UL Agent|    |
   |  |  - FPU / Mul / Div |                     |  - Backing Memory  |    |
   |  |  - 4-Way L1 Cache  |                     |  - Coherence Node  |    |
   |  +---------+----------+                     +----------^---------+    |
   |            |                                           |              |
   |     TileLink Agent (A,B,C,D,E)                  TileLink Agent        |
   |            |                                           |              |
   |  +---------v-------------------------------------------+----------+   |
   |  |              CROSSBAR SWITCH 4x4 (DPA ARBITER)                 |   |
   |  |     - Ma trận phân xử đường chéo O(1)                          |   |
   |  |     - Băng thông song song 100MHz trên Xilinx VC707 FPGA       |   |
   |  +----------------------------------------------------------------+   |
   +-----------------------------------------------------------------------+

Mục tiêu dự án

  1. Hiện thực lõi vi xử lý RISC-V RV32IMF cấu trúc Pipeline 5 tầng hỗ trợ đầy đủ tập lệnh RV32I, mở rộng nhân chia nguyên RV32M và đơn vị xử lý số thực RV32F chuẩn IEEE 754 đơn độ chính xác (Single Precision 32-bit).
  2. Tích hợp bộ nhớ đệm 4-Way Set Associative dung lượng 512 Bytes (L1 Cache) cho cả lệnh (I-Cache) và dữ liệu (D-Cache), áp dụng giải thuật thay thế Least Recently Used (LRU) và bộ dự đoán rẽ nhánh động (Dynamic Branch Prediction) Gshare + BTB + PHT.
  3. Hiện thực giao thức liên kết hiệu năng cao TileLink hỗ trợ cả 3 cấp độ: TL-UL (Uncached Lightweight), TL-UH (Uncached Heavyweight) và TL-C (Cached) với cấu trúc 5 kênh độc lập (Channel A, B, C, D, E).
  4. Thiết kế bộ chuyển mạch Crossbar 4x4 tích hợp giải thuật phân xử ưu tiên Diagonal Propagation Arbiter (DPA) nhằm loại bỏ nguy cơ deadlock và giảm thiểu độ trễ chọn kênh.
  5. Kiểm thử, tổng hợp và nạp thực thi hệ thống NoC trên kit FPGA Xilinx Virtex-7 VC707 ở tần số hoạt động 100 MHz.

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

  • Lõi RV32IMF chưa hỗ trợ lệnh gọi hệ thống ECALL, điểm dừng EBREAK và thanh ghi điều khiển trạng thái (CSR) cho mở rộng F.
  • Giao thức TileLink tập trung vào cơ chế chuyển quyền dữ liệu (Acquire/Grant/Probe/Release) với Master truy cập Slave; dung lượng L1 Cache được giới hạn ở 512 Bytes để tối ưu tài nguyên logic slices trên FPGA.

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

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

Truyền thông vi mạch truyền thống dựa trên kiến trúc Single-bus hoặc Hierarchical Bus phân cấp thường bị nghẽn cổ chai khi nhiều Master cùng truy cập đồng thời vào các Slave ngoại vi hoặc khối nhớ.

Tiêu chí so sánh Shared Bus truyền thống (AMBA AHB) Mạng chuyển mạch NoC TileLink + Crossbar DPA Giao thức điểm-điểm (Point-to-Point)
Cơ chế truyền thông Chia sẻ bus dùng chung Kênh chuyển mạch ma trận song song 4x4 Đấu dây trực tiếp từng cặp node
Băng thông tổng thể Thấp (giới hạn bởi 1 giao dịch/thời điểm) Rất cao (đa giao dịch song song đồng thời) Rất cao
Độ trễ phân xử Tăng tuyến tính $O(N)$ theo số master Cố định cực thấp thông qua DPA ma trận chéo Gần như bằng 0
Khả năng mở rộng (Scalability) Kém, giới hạn dưới 4 masters Cao, dễ dàng mở rộng cấu trúc lưới $N \times N$ Kém (chi phí tài nguyên dây tăng $O(N^2)$)
Hỗ trợ Cache Coherency Phức tạp, cần bus snooping rời Tích hợp sẵn chuẩn TL-C 5 kênh độc lập Không hỗ trợ chuẩn hóa

Ma trận ưu tiên yêu cầu kỹ thuật (MoSCoW)

  • Must Have: Pipeline 5 tầng cho RV32IMF, FPU IEEE 754, TileLink TL-UL/TL-UH/TL-C, Crossbar 4x4 DPA, hoạt động chính xác ở 100 MHz.
  • Should Have: Dynamic Branch Prediction (Gshare + PHT 2-bit), Cache 4-Way Set Associative với LRU replacement, thuật toán nhân Radix-4 Booth tối ưu chu kỳ.
  • Could Have: Bộ giải thuật tính căn bậc hai số thực rút gọn số tầng pipeline (14-15 tầng).
  • Won't Have: Phân cấp bộ nhớ L2/L3 mở rộng, hỗ trợ phân quyền Machine/Supervisor/User mode hoàn chỉnh.

Thiết kế hệ thống

+------------------------------------------------------------------------------------+
|                           KIẾN TRÚC LÕI RV32IMF PIPELINE                           |
|                                                                                    |
|  [IF Stage]       [ID Stage]         [EX Stage]          [MEM Stage]    [WB Stage] |
|  +---------+     +------------+     +---------------+     +---------+   +--------+ |
|  | PC Gen  | --> | RegFile 32 | --> | ALU / Radix-4 | --> | D-Cache |-->| MUX WB | |
|  | I-Cache |     | F-RegFile  |     | FPU IEEE 754  |     | (TL-C)  |   | to RF  | |
|  | + BRU   |     | Decoder    |     | Forward Unit  |     +---------+   +--------+ |
|  +---------+     +------------+     +---------------+                              |
+------------------------------------------------------------------------------------+

1. Kiến trúc Pipeline 5 tầng và Xử lý xung đột

  • Tầng Fetch (IF): Chứa thanh ghi Program Counter (PC), khối L1 I-Cache và khối dự đoán rẽ nhánh động (Branch Target Buffer - BTB kết hợp Pattern History Table - PHT 2-bit counter và thanh ghi Gshare).
  • Tầng Decode (ID): Tập thanh ghi số nguyên $x0-x31$, tập thanh ghi số thực $f0-f31$, khối Immediate Extend.
  • Tầng Execute (EX):
    • Đơn vị số học logic (ALU) cho các lệnh cơ bản.
    • Bộ nhân Radix-4 Booth (Booth's Multiplication) hoàn thành phép nhân 32-bit trong 17 chu kỳ (có dấu) và 18 chu kỳ (không dấu).
    • Bộ chia Non-Restoring Divider 32-bit hoàn thành trong 33–34 chu kỳ.
    • Đơn vị dấu phẩy động (FPU single-precision 32-bit) hỗ trợ cộng, trừ, nhân, chia, căn bậc hai chuẩn IEEE 754.
  • Tầng Memory (MEM): L1 D-Cache thực thi Load/Store với chính sách Write-Back.
  • Tầng WriteBack (WB): Chọn lọc dữ liệu trả về ghi vào Register File qua MUX.
  • Xử lý Hazard: Forwarding Unit chuyển tiếp dữ liệu trực tiếp giữa các tầng EX/MEM/WB nhằm giảm stall; Load Hazard Detection Unit tự động chèn bubble khi xảy ra phụ thuộc dữ liệu Load-Use.

2. Kiến trúc bộ nhớ đệm L1 4-Way Set Associative

Dung lượng cache: $\text{32 Lines} \times \text{4 Blocks/Line} \times \text{32 bits/Block} = 4096 \text{ bits} = 512 \text{ Bytes}$. Địa chỉ 32-bit được phân tách thành:

  • Tag (25 bits): $[31:7]$ dùng so sánh khối nhớ tương ứng trong Set.
  • Set/Index (5 bits): $[6:2]$ ánh xạ vào 32 dòng (Lines).
  • Word Offset (2 bits): $[1:0]$ chọn byte trong word.

Chính sách thay thế: Least Recently Used (LRU) với bộ đếm trạng thái 2-bit trên mỗi block để theo dõi mức độ ưu tiên truy cập.

3. Giao thức TileLink và 5 kênh độc lập

TileLink duy trì thứ tự giao dịch nghiêm ngặt thông qua 5 kênh liên kết độc lập nhằm tránh deadlock:

  • Kênh A (Out to In): Gửi thông điệp yêu cầu bộ nhớ (Get, PutFullData, PutPartialData, ArithmeticData, LogicalData, Acquire).
  • Kênh B (In to Out): Gửi thông điệp thăm dò quyền truy cập từ Slave đến Master (Probe).
  • Kênh C (Out to In): Phản hồi giải phóng/hạ quyền cache hoặc trả lời Probe từ Master (ProbeAck, ProbeAckData, Release, ReleaseData).
  • Kênh D (In to Out): Phản hồi dữ liệu/xác nhận từ Slave (AccessAck, AccessAckData, Grant, GrantData, ReleaseAck).
  • Kênh E (Out to In): Master xác nhận hoàn tất chu trình chuyển quyền bộ nhớ (GrantAck).

Methodology

Dự án áp dụng quy trình thiết kế vi mạch số RTL chuẩn công nghiệp:

  1. Đặc tả kiến trúc (Architecture Specification): Xây dựng tập thanh ghi, cấu trúc kênh TileLink và tập lệnh RV32IMF.
  2. Mô hình hóa RTL (Verilog HDL): Viết mã nguồn synthesizable cho các module Datapath, Controller, FPU, Cache Controller, TileLink Adapters và Crossbar Switch.
  3. Mô phỏng chức năng (Functional Verification): Kiểm thử trên môi trường Vivado Simulator với các bộ testbench bao quát toàn bộ opcodes, kiểm tra corner cases của chuẩn IEEE 754 và xung đột truyền thông trên Crossbar.
  4. Tổng hợp và Tối ưu thời gian (Synthesis & Static Timing Analysis - STA): Tối ưu critical path trên bộ FPU và ma trận phân xử DPA đạt tần số định thời $F_{max} = 100 \text{ MHz}$.
  5. Implementation & FPGA Prototyping: Thực hiện Place & Route và nạp bitstream lên kit FPGA Xilinx Virtex-7 VC707 (XC7VX485T).

Implementation và kết quả

Development process

1. Thuật toán nhân Radix-4 Booth Multiplier

Thay vì dịch và cộng 32 lần (32 chu kỳ), giải thuật Radix-4 Booth quét nhóm 3 bit $(x_{2i+1}, x_{2i}, x_{2i-1})$ cùng 1 bit mở rộng $Lostbit$ để sinh bội số: $0, +1A, -1A, +2A, -2A$.

// Trich doan ma hoa Radix-4 Booth RTL
always @(*) begin
    case ({multiplicand_window})
        3'b000, 3'b111: partial_prod = 64'd0;
        3'b001, 3'b010: partial_prod = {{32{A[31]}}, A};           // +1A
        3'b011:         partial_prod = {{31{A[31]}}, A, 1'b0};     // +2A
        3'b100:         partial_prod = ~({{31{A[31]}}, A, 1'b0}) + 1'b1; // -2A
        3'b101, 3'b110: partial_prod = ~({{32{A[31]}}, A}) + 1'b1;       // -1A
        default:        partial_prod = 64'd0;
    endcase
end

2. Tối ưu Pipeline cho giải thuật Căn bậc hai số thực (FPU Sqrt)

Giải thuật Non-Restoring Sqrt thông thường đòi hỏi 24–25 chu kỳ tính toán (mỗi clock sinh 1 bit thương $Q$). Để tối ưu hóa critical path và latency trên FPGA, thiết kế đã rút ngắn còn 14–15 tầng pipeline:

  • Tầng 1: Tính toán đồng thời 6 bit đầu tiên ($Q_{23-18}$) do số bit của bộ trừ ở các chu kỳ đầu nhỏ, không làm suy giảm tần số hoạt động.
  • Tầng 2: Tính toán 3 bit tiếp theo ($Q_{17-15}$).
  • Tầng 3 & 4: Mỗi tầng tính 2 bit ($Q_{14-13}$ và $Q_{12-11}$).
  • Các tầng còn lại: Mỗi tầng tính 1 bit ($Q_{10-0}$) nhằm giữ vững timing constraint tại tần số cao.

3. Bộ phân xử trọng tài đường chéo DPA (Diagonal Propagation Arbiter)

Giải thuật DPA trong Crossbar 4x4 loại bỏ việc đánh giá ưu tiên tuần tự bằng cách truyền tín hiệu phân xử song song theo đường chéo của ma trận request $4 \times 4$.

Bảng chân lý của 1 ô (cell) trong ma trận DPA:
+-----------+---------+---------+-----------+------------+------------+
| Request_i | Grant_x | Grant_y | Grant_out | Propagate_x| Propagate_y|
+-----------+---------+---------+-----------+------------+------------+
|     0     |    0    |    0    |     0     |     0      |     0      |
|     1     |    0    |    0    |     1     |     1      |     1      |
|     X     |    1    |    X    |     0     |     1      |     0      |
|     X     |    X    |    1    |     0     |     0      |     1      |
+-----------+---------+---------+-----------+------------+------------+
// RTL mot o phan xu DPA Arbiter
module dpa_cell (
    input  wire req,
    input  wire north_in,
    input  wire west_in,
    output wire grant,
    output wire south_out,
    output wire east_out
);
    assign grant     = req & (~north_in) & (~west_in);
    assign south_out = north_in | grant;
    assign east_out  = west_in  | grant;
endmodule

Testing và validation

1. Kiểm thử đơn vị tính toán số thực FPU (IEEE 754)

Các phép toán số thực trên lõi RV32IMF được đối sánh tự động với kết quả tính toán phần mềm viết bằng C/Python trên hơn 100,000 vectors mẫu ngẫu nhiên:

Phép toán Tỷ lệ chính xác Thời gian thực thi (Chu kỳ) Trạng thái xử lý ngoại lệ (NaN, Inf, Zero)
FADD / FSUB 100% 3 clock cycles Đầy đủ cờ báo tràn số/NaN theo IEEE 754
FMUL 100% 4 clock cycles Chuẩn hóa động với Guard, Round, Sticky bits
FDIV 100% 33 clock cycles Bù dấu tự động, Non-restoring mantissa divider
FSQRT 100% 14–15 clock cycles Tối ưu hóa pipeline đa tầng gộp

2. Kiểm thử thông điệp TileLink và Phân xử Crossbar 4x4

  • Kịch bản tranh chấp Crossbar: 4 Master đồng thời gửi yêu cầu truy cập cùng 1 Slave Node (Port Collision). Kết quả mô phỏng trên Vivado cho thấy giải thuật DPA kết hợp Round-Robin đã cấp quyền chính xác, không xảy ra tình trạng đói tài nguyên (starvation) hay deadlock.
  • Kịch bản giao thức TileLink:
    • TL-UL: Thực thi chính xác các chuỗi beat GetPutFullData với tín hiệu xác nhận AccessAckDataAccessAck.
    • TL-UH: Thực thi chính xác các toán tử nguyên tử ArithmeticData (ADD, MIN, MAX) và LogicalData (AND, OR, XOR).
    • TL-C: Kiểm thử thành công chuỗi thông điệp Acquire $\rightarrow$ GrantData $\rightarrow$ GrantAck và cơ chế thu hồi quyền Probe $\rightarrow$ ProbeAckData.

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

Hệ thống NoC 4x4 tích hợp lõi RV32IMF đã được hiện thực hóa và kiểm chứng trên kit FPGA Xilinx Virtex-7 VC707 với các chỉ số tài nguyên:

+--------------------------------------------------------------------+
|               BÁO CÁO TỔNG HỢP TÀI NGUYÊN TRÊN XILINX VC707        |
+----------------------+--------------------+------------------------+
| Loại tài nguyên      | Sử dụng (Lõi NoC)  | Tỷ lệ khả dụng (%)     |
+----------------------+--------------------+------------------------+
| LUT (Look-Up Tables) | 28,450             | 9.36% (Tổng 303,600)   |
| FF (Flip-Flops)      | 19,210             | 3.16% (Tổng 607,200)   |
| BRAM (Block RAM 36Kb)| 16                 | 1.55% (Tổng 1,030)     |
| DSP48E1 Slices       | 24                 | 0.85% (Tổng 2,800)     |
| Tần số tối đa (Fmax) | 100.00 MHz         | Đạt chuẩn định thời    |
| Công suất tiêu thụ   | 0.485 W            | Rất tiết kiệm năng lượng|
+----------------------+--------------------+------------------------+

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

  1. Kiến trúc Pipeline Sqrt FPU thu gọn: Cải tiến thuật toán căn bậc hai Non-Restoring từ 24 chu kỳ tuần tự xuống cấu trúc pipeline 14–15 tầng với phương pháp gộp bit thông minh ở giai đoạn đầu, nâng cao thông lượng tính toán số thực lên 41.6% mà không làm tăng critical path delay.
  2. Triển khai DPA Arbiter trên Crossbar 4x4: Ứng dụng thành công giải thuật phân xử đường chéo DPA vào hệ thống NoC, giảm độ trễ phân xử từ $O(N)$ xuống $O(1)$ đối với mỗi cell chuyển mạch, giải quyết triệt để bài toán tranh chấp bus.
  3. Hiện thực hoàn chỉnh 3 cấp độ TileLink từ đầu (From Scratch): Thiết kế hoàn toàn bằng Verilog HDL thuần túy các module Adapter cho TL-UL, TL-UH và TL-C mà không phụ thuộc vào các IP Core đóng gói sẵn, tạo tiền đề linh hoạt cho việc nghiên cứu kiến trúc mạch tích hợp tùy biến.
  4. Tích hợp phần cứng cân bằng hiệu năng - diện tích: Lõi vi xử lý RV32IMF hoàn chỉnh với FPU và Cache 4-Way chỉ chiếm chưa đầy 10% tài nguyên LUTs của kit Virtex-7, mở ra khả năng mở rộng thành mạng lưới NoC quy mô lớn ($8 \times 8$ hoặc $16 \times 16$).

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

Kịch bản ứng dụng (Use Cases)

  • Hệ thống nhúng xử lý tín hiệu thông minh (Edge DSP/AI Accelerator): Xử lý các thuật toán biến đổi Fourier (FFT), bộ lọc Kalman và tính toán ma trận số thực trên các thiết bị biên, camera an ninh thông minh hoặc thiết bị đo đạc công nghiệp.
  • Bộ điều khiển trung tâm trong Robot và Xe tự hành (Automotive ECU): Đòi hỏi khả năng tính toán số học chính xác cao kết hợp kiến trúc liên kết đa lõi an toàn, ngăn chặn xung đột dữ liệu giữa các luồng điều khiển cảm biến LiDAR/Radar.

Hướng dẫn triển khai trên FPGA

  1. Yêu cầu hệ thống:
    • Phần mềm: Xilinx Vivado Design Suite phiên bản 2020.2 hoặc mới hơn.
    • Phần cứng: Kit phát triển Xilinx Virtex-7 FPGA VC707 (XC7VX485T-2FFG1761C), cáp nạp micro-USB JTAG, nguồn DC 12V.
  2. Quy trình tổng hợp và nạp bitstream:
    # 1. Mo Vivado o che do Batch mode va khoi tao Project
    vivado -mode batch -source build_noc_project.tcl
    
    # 2. Chay tong hop (Synthesis) va thuc thi (Implementation)
    vivado -mode tcl
    open_project ./noc_rv32imf/noc_rv32imf.xpr
    launch_runs impl_1 -to_step write_bitstream -jobs 8
    wait_on_run impl_1
    
    # 3. Nap Bitstream xuong kit VC707 qua Hardware Manager
    open_hw_manager
    connect_hw_server
    open_hw_target
    set_property PROGRAM.FILE {./noc_rv32imf.runs/impl_1/noc_top.bit} [current_hw_device]
    program_hw_devices [current_hw_device]
    

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

Hạn chế kỹ thuật

  • Dung lượng Cache L1: Bộ nhớ đệm 512 Bytes chỉ đáp ứng các tập dữ liệu nhỏ; với các chương trình phức tạp, tỷ lệ Cache Miss sẽ tăng cao nếu không có bộ nhớ L2 chia sẻ.
  • Cache Coherency phần cứng: Chưa tích hợp bộ điều khiển thư mục (Directory-based Controller) đầy đủ cho phép đa Master tự động đồng bộ dòng cache khi cùng ghi vào một địa chỉ chia sẻ.
  • Tập lệnh đặc quyền: Chưa bổ sung các chế độ bảo vệ Machine/User mode để chạy các hệ điều hành thời gian thực (FreeRTOS) hoặc Linux.

Hướng nghiên cứu tiếp theo

  • Mở rộng kiến trúc lên cấu trúc lưới 2D Mesh NoC kích thước $4 \times 4$ hoặc $8 \times 8$ sử dụng Router định tuyến thích nghi (Adaptive XY Routing).
  • Nâng cấp vi xử lý lên kiến trúc 64-bit RISC-V RV64GC hỗ trợ tập lệnh mở rộng Vector (RVV) phục vụ tăng tốc mô hình Deep Learning.
  • Bổ sung tầng bộ nhớ đệm dùng chung Shared L2 Cache có cơ chế Directory-based Coherence hoàn chỉnh theo chuẩn TileLink TL-C.

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

  • Sinh viên & Học viên cao học: Tiếp cận nguồn tài liệu mẫu chi tiết về thiết kế vi xử lý RISC-V Pipeline, thuật toán tính toán FPU IEEE 754 và giao thức TileLink bằng Verilog HDL.
  • Kỹ sư thiết kế RTL (RTL Designers): Nắm bắt kiến trúc bộ phân xử DPA không nghẽn và mô hình kết nối Crossbar ứng dụng trực tiếp trong các dự án SoC công nghiệp.
  • Doanh nghiệp bán dẫn & Vi mạch: Giải pháp tham khảo tối ưu để xây dựng các dòng chip nhúng chuyên dụng (ASIC/SoC) tùy biến trên nền tảng miễn phí bản quyền RISC-V, giúp cắt giảm hàng triệu USD chi phí license so với kiến trúc độc quyền ARM.
  • Nhà nghiên cứu học thuật: Nền tảng mở (Open hardware platform) để phát triển các thuật toán định tuyến NoC mới và kỹ thuật tối ưu hóa công suất tiêu thụ trên chip.

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

1. Yêu cầu phần cứng tối thiểu để tổng hợp và chạy hệ thống NoC này là gì?

Hệ thống yêu cầu công cụ Xilinx Vivado (từ bản 2020.1 trở lên) và kit FPGA dòng Xilinx 7-Series trở lên. Thiết kế hiện tại chiếm khoảng 28,450 LUTs, hoàn toàn có thể vừa vặn trên các kit tầm trung như Kintex-7 (KC705) hoặc Zynq-7000 (ZC706), tuy nhiên khuyến nghị sử dụng Virtex-7 VC707 để đảm bảo đủ chân kết nối ngoại vi và timing budget 100MHz.

2. Sự khác biệt cốt lõi giữa giao thức TileLink và ARM AMBA AXI4 là gì?

TileLink là giao thức mở phi bản quyền được tối ưu riêng cho hệ sinh thái RISC-V. Khác với AXI4 đòi hỏi các kênh mở rộng phức tạp cho cache coherence (như ACE), TileLink định nghĩa sẵn chuẩn TL-C với 5 kênh độc lập $(A, B, C, D, E)$ hỗ trợ cơ chế cấp/thu hồi quyền truy cập bộ nhớ trực tiếp, cấu trúc tinh gọn và dễ ánh xạ vào phần cứng hơn.

3. Bộ phân xử DPA xử lý như thế nào khi có 4 Master cùng gửi yêu cầu đến 1 Slave?

Khi xảy ra xung đột (Port Collision), ma trận DPA sẽ đánh giá ma trận yêu cầu $4 \times 4$ và lan truyền tín hiệu từ chối theo đường chéo, chỉ 1 Master duy nhất có mức ưu tiên cao nhất trong chu kỳ đó được nhận Grant. Kết hợp cùng bộ lập lịch Round-Robin, quyền ưu tiên sẽ xoay vòng ở chu kỳ tiếp theo, đảm bảo không có Master nào bị nghẽn vô hạn định.

4. Tại sao lại chọn cấu trúc Cache 4-Way Set Associative thay vì Direct-Mapped?

Direct-Mapped Cache dễ thiết kế nhưng có tỷ lệ xung đột dòng nhớ (Conflict Miss) rất cao khi chương trình truy cập các địa chỉ có cùng index. 4-Way Set Associative mang lại sự cân bằng tối ưu giữa tỷ lệ Cache Hit cao và chi phí phần cứng phần so sánh Tag (chỉ cần 4 bộ so sánh 25-bit song song cho mỗi lần truy cập).

5. Làm thế nào để mở rộng hệ thống lên 16 lõi xử lý?

Để mở rộng lên 16 lõi ($16 \times 16$), thiết kế Crossbar đơn lẻ sẽ tốn nhiều tài nguyên dây dẫn ($O(N^2)$). Khi đó, kiến trúc nên được chuyển đổi sang dạng 2D Mesh NoC, trong đó mỗi nút mạng (Node) chứa 1 lõi RV32IMF kết hợp 1 bộ TileLink Router 5 cổng (North, South, East, West, Local) sử dụng giải thuật định tuyến Dimension-Order Routing (DOR-XY).


Kết luận

Đồ án "Hiện thực một NoC (Network on Chip) sử dụng lõi vi xử lý RISC-V RV32IMF thông qua giao thức TileLink trên FPGA" đã nghiên cứu và hiện thực thành công một hệ sinh thái phần cứng tích hợp hoàn chỉnh từ lõi vi xử lý Pipeline 5 tầng, bộ tính toán số thực FPU IEEE 754 tối ưu, bộ nhớ đệm L1 Cache 4-Way Set Associative đến mạng liên kết NoC dựa trên giao thức TileLink và chuyển mạch Crossbar 4x4 DPA. Hệ thống hoạt động chính xác ở tần số 100 MHz trên kit FPGA Xilinx Virtex-7 VC707, chứng minh tính khả thi, độ tin cậy và khả năng mở rộng cao của kiến trúc mã nguồn mở RISC-V trong việc thay thế các giải pháp vi xử lý độc quyền cho các ứng dụng tính toán hiệu năng cao trong tương lai.