RISC-V Server SoC Specification¶
Tổng quan¶
RISC-V Server SoC Specification (v1.0, ratified, ngày 21/02/2025) quy định các khả năng phần cứng tối thiểu mà một SoC server phải cung cấp cho phần mềm chạy dưới M-mode, để một image OS duy nhất chạy được trên mọi SoC tuân thủ.
- Phạm vi: giao diện và khả năng phần cứng mà SoC trao cho OS và hypervisor. Firmware ở M-mode nằm ngoài spec, do từng SoC tùy biến (ví dụ khởi tạo address decoder, memory controller).
- Đối tượng: server đa dụng, với yêu cầu cao hơn về RAS, bảo mật, hiệu năng và QoS.
- Conformance: SoC phải đáp ứng mọi rule MUST và hỗ trợ đúng các phiên bản spec được liệt kê. Hãng vẫn được thêm tính năng chuẩn hoặc riêng. Từ khóa theo RFC 2119, chỉ có nghĩa khi viết hoa.
- Giấy phép và thay đổi: CC BY 4.0. Spec đã ratified nên thay đổi phải qua extension mới, không sửa bản cũ.
- Version: trang docs.riscv.org đánh dấu v1.0 là không phải bản mới nhất, nên kiểm tra thư viện spec trước khi trích dẫn.
Mỗi rule có ID dạng IIC_010, IOM_020. Technote dùng các ID này để tiện tra cứu.
Vị trí trong bộ chuẩn server RISC-V¶
Server SoC Spec chỉ lo phần phần cứng của SoC. Theo trang giới thiệu, một server platform RISC-V gồm bốn phần: SoC hardware, platform firmware, boot/runtime services và security services.
| Thành phần | Nội dung | Ghi chú |
|---|---|---|
| Server SoC Specification | Khả năng phần cứng của SoC cho phần mềm dưới M-mode | Tài liệu của technote này |
| Firmware ở M-mode | Khởi tạo phần cứng riêng của từng SoC | Ngoài phạm vi, tùy từng SoC |
| Boot and Runtime Services (BRS) | Boot và runtime chuẩn hóa, dựa trên UEFI và ACPI | Phía firmware của platform |
| Server Platform Specification | Tầng platform của server | SpacemiT nhắc tới trong thông cáo V100; chưa đọc nội dung, cần kiểm tra riêng |
| RISC-V Security Model | Debug authorization, secure/measured boot, firmware update, confidential computing | Spec tham chiếu cho nhóm Security |
Xem thêm phần ISA và các profile (RVA23) ở trang RISC-V.
Các nhóm yêu cầu¶
Bắt buộc tập trung ở timer, interrupt, IOMMU, PCIe và hardware Root of Trust. Phần lớn rule về RAS, QoS, manageability và performance monitoring chỉ ở mức SHOULD.
| Nhóm | Rule chính |
|---|---|
| Clocks và Timers | MUST time CSR tăng đều theo đơn vị 1 ns, tốc độ cập nhật ít nhất 100MHz (CTI_010). Counter luôn bật, không mất khi hart vào low-power idle (CTI_020). |
| Interrupt controller | MUST AIA (IIC_010). Ngắt ngoài đến hart dưới dạng MSI (IIC_020). IMSIC có S-mode file với ít nhất 255 interrupt identity và ít nhất 5 VS-mode file, mỗi file ít nhất 63 identity (IIC_030 đến IIC_060). APLIC bắt buộc nếu có thiết bị wire-signaled (IIC_080). |
| IOMMU | MUST theo RISC-V IOMMU spec (IOM_010). Mọi thiết bị DMA-capable và root port truy cập được từ phần mềm phải do IOMMU quản lý (IOM_020). Device ID của root-port IOMMU ít nhất 16 bit (IOM_030). MSI cho ngắt do IOMMU sinh ra (IOM_130). Little-endian trong bộ nhớ (IOM_140). PASID nếu có thì 20 bit (IOM_160). SHOULD ATS ở root port (IOM_090), HPM (IOM_180), DBG (IOM_220). |
| PCIe | MUST root complex theo PCIe 6.0 (RCI_010). ECAM không treo khi lỗi (ECM_090, ECM_100). ACS trên root port và downstream switch port (ACS_010). MSI/MSI-X, cấm INTx (MSI_010, MSI_020). AER, DPC, RP PIO trên root port (AER_010 đến AER_030). SHOULD link PCIe x1 tới BMC (MNG_010). |
| RAS | MUST thành phần không xử lý được poison phải báo critical uncorrected error (RAS_030). SHOULD data poisoning (RAS_020) và RISC-V RERI (RAS_040). Nếu có RERI thì enable theo từng mức nghiêm trọng là bắt buộc (RAS_050). Mức RAS không được quy định (RAS_010). |
| QoS | SHOULD CBQRI trên shared cache và memory controller (QOS_010, QOS_020). Nếu có CBQRI, hart MUST có srmcfg với ít nhất 16 RCID và 32 MCID (QOS_030). |
| Manageability | SHOULD IPMI SSIF qua I2C (MNG_020) và UART tới BMC (MNG_030). Redfish, PLDM, MCTP, SPDM được khuyến nghị, không bắt buộc. |
| Performance monitoring | Toàn bộ SHOULD (SPM_010 đến SPM_060): HPM cho cache, băng thông memory controller và PCIe, độ trễ đọc trung bình. |
| Security | MUST hardware Root of Trust (SEC_010). SHOULD PCIe IDE ở root port (SEC_020), mã hóa DRAM ngoài chip với transient key ít nhất 256 bit (SEC_030), module crypto theo chuẩn quốc gia như FIPS 140-3 (SEC_040), giao diện TPM 2.0 (SEC_050). |
Ba điểm ảnh hưởng nhiều nhất tới phần mềm¶
- Interrupt: AIA và MSI là mặc định. Ngắt ngoài đến hart dưới dạng MSI qua IMSIC, và INTx bị cấm với PCIe. Thiết bị wire-signaled vẫn dùng được nếu SoC có APLIC chuyển chúng thành MSI. Với driver, thiết bị cần hỗ trợ MSI hoặc MSI-X thay vì dựa vào INTx.
- IOMMU phủ mọi thiết bị DMA. IOM_020 buộc mọi thiết bị DMA-capable và root port truy cập được từ phần mềm đi qua IOMMU. Ngoại lệ gồm APLIC, chính các IOMMU, debug system-bus access và management controller dùng tài nguyên riêng của chúng. Host bridge còn kiểm tra PMA và PMP cho truy cập của IOMMU (IOM_260). Suy ra: phần mềm có thể dựa vào IOMMU để bảo vệ DMA và gán thiết bị cho VM trên mọi SoC tuân thủ.
- PCIe không được treo hệ thống khi lỗi, còn coherency chỉ là SHOULD. Đọc ECAM hoặc memory space vào function không tồn tại, bus chưa map hay link inactive phải trả về toàn bit 1. Ghi thì bị bỏ, không treo (ECM_090, ECM_100, MMS_040, MMS_050). Poison được chuyển tiếp hoặc thay bằng toàn bit 1 (ECM_110). Hardware coherency nên được thực thi bất kể cờ No Snoop (CCS_040, SHOULD). Nếu SoC không làm vậy, phần mềm phải tự xử lý bằng NC PMA, Svpbmt hoặc flush Zicbom.
Spec không quy định gì¶
Spec không đặt yêu cầu về ISA profile hay SBI, và không có chương riêng về memory hay coherency ngoài các rule liên quan PCIe và PMA. Debug chỉ xuất hiện trong phạm vi IOMMU (IOM_220). Các phần này thuộc spec khác như RVA23 cho ISA profile hay BRS cho boot.
Liên hệ với SpacemiT V100: ảnh thông số của hãng liệt kê riêng RVA23 Profiles, Server SoC, Server Platform và BRS, đều ở V1.0. Vì vậy "tuân thủ Server SoC Spec" không đồng nghĩa với có RVA23 hay SBI v3.0.
Phần lớn rule về RAS, QoS và performance monitoring là SHOULD, nên tuân thủ không đảm bảo chip có RERI, CBQRI hay HPM. Các nguồn đã đọc không nói V100 triển khai những mục này hay không, và tuyên bố tuân thủ của hãng chưa được kiểm chứng độc lập.
Checklist khi đánh giá một SoC tuyên bố tuân thủ¶
Các mục MUST kiểm tra được trên phần cứng thật hoặc qua tài liệu của hãng.
-
timeCSR đếm 1 ns mỗi tick, ít nhất 100MHz, không dừng khi hart idle (CTI_010, CTI_020) - AIA có IMSIC với đủ interrupt file, và APLIC nếu có thiết bị wire-signaled (IIC_040, IIC_080)
- Mọi DMA master nằm sau IOMMU, device ID ít nhất 16 bit (IOM_020, IOM_030)
- PCIe dùng MSI hoặc MSI-X, không có INTx (MSI_010, MSI_020)
- Đọc ECAM vào thiết bị không tồn tại trả toàn bit 1 và không treo (ECM_090)
- Root port có AER và DPC (AER_010, AER_020)
- Có hardware Root of Trust (SEC_010)
- Ghi lại các mục SHOULD thực sự được triển khai: RERI, CBQRI, HPM, IDE, TPM 2.0
Nguồn tham khảo¶
Tra cứu ngày 22/10/2026.