Un server RISC-V richiede più di core compatibili: il SoC e la piattaforma devono gestire timer, interrupt, accesso ai dispositivi, PCIe, affidabilità, gestione e sicurezza. La specifica Server SoC Requirements v1.0 di RISC-V International definisce questi requisiti distinguendo tra disposizioni obbligatorie, raccomandazioni e condizioni.

Che cosa definisce la specifica

La specifica riguarda il system-on-chip (SoC) nel suo insieme e il comportamento che espone al software. Nei requisiti, MUST indica un obbligo; SHOULD segnala una raccomandazione. Alcune disposizioni diventano obbligatorie solo se il progetto implementa una determinata interfaccia o funzione.

AreaDisposizioneForza prevista
Timer e interruptRequisiti per il contatore time, AIA, MSI e IMSICObbligatoria
IOMMU e PCIeProtezione dell’accesso dei dispositivi e regole per i componenti interessati del root complexObbligatoria, con eccezioni e condizioni specificate
RASFunzioni di gestione e segnalazione degli erroriIn gran parte raccomandata o condizionale
QoS, gestione e monitoraggioIsolamento dei carichi, interfacce di gestione e contatori di prestazioneIn genere raccomandata o condizionale
SicurezzaRadice di fiducia hardware; ulteriori funzioni di protezioneObbligatoria per la radice di fiducia, raccomandata per altre funzioni

Il testo ufficiale è consultabile nella specifica Server SoC Requirements v1.0. Per il contesto più ampio dell’ecosistema, il RISC-V Summit China 2026 a Shenzhen si è svolto dal 18 al 20 ottobre.

Timer e interrupt: le soglie da rispettare

Il registro di controllo e stato time deve avanzare in unità da 1 nanosecondo, con una frequenza di aggiornamento di almeno 100 MHz. Deve inoltre apparire sempre attivo e conservare il conteggio durante gli stati di inattività a basso consumo degli hart, cioè le unità hardware di esecuzione, con eccezioni per stati di alimentazione del sistema come G3, S3 e S4.

Per gli interrupt, il SoC deve supportare la RISC-V Advanced Interrupt Architecture (AIA) e consegnare gli interrupt esterni tramite MSI, ossia interrupt segnalati con messaggi. L’IMSIC deve prevedere almeno un file S-mode e cinque file VS-mode per hart. Ogni file deve supportare almeno 255 identità di interrupt in S-mode e 63 in VS-mode.

Se il SoC usa dispositivi con interrupt segnalati su linea, deve implementare un APLIC per convertirli in MSI, secondo le condizioni previste dalla specifica. I requisiti incidono quindi sul modo in cui il sistema operativo e gli ambienti virtualizzati ricevono e gestiscono gli interrupt.

IOMMU e PCIe: controllare l’accesso ai dispositivi

Le periferiche capaci di DMA, cioè di trasferire dati direttamente da o verso la memoria, e le porte root PCIe accessibili via software devono essere sottoposte al controllo di una IOMMU. Il testo prevede eccezioni per controller di interrupt, IOMMU, alcuni blocchi del modulo di debug e controller di gestione che accedono a risorse riservate al proprio uso.

Per i componenti software-visible pertinenti del root complex, la specifica richiede il rispetto delle regole applicabili della PCIe Specification 6.0. Le porte root devono supportare MSI e i controlli AER, DPC e RP PIO; la segnalazione degli interrupt PCIe tramite INTx virtual-wire non è supportata dai requisiti.

Affidabilità, qualità del servizio e gestione

La specifica non fissa un unico livello RAS, cioè di affidabilità, disponibilità e manutenibilità. Raccomanda invece capacità come generare, conservare e inoltrare dati contrassegnati come corrotti, oltre al supporto dell’interfaccia RERI per i registri degli errori. La correzione degli errori in memorie e cache rilevanti, l’ECC a singolo simbolo nei controller DRAM e la pulizia periodica della memoria sono anch’essi raccomandati. Se viene implementato RERI, si applicano ulteriori requisiti di segnalazione e registrazione.

Per la QoS, il SoC dovrebbe ridurre le interferenze ingiustificate tra carichi di lavoro che condividono cache e memoria di sistema. La specifica raccomanda CBQRI e controlli correlati per la capacità della cache e la banda di memoria; l’implementazione di CBQRI comporta ulteriori obblighi.

Anche le funzioni di gestione e monitoraggio sono descritte soprattutto come raccomandazioni. Tra gli standard e i protocolli indicati figurano Redfish, PLDM, MCTP e il supporto relativo a SPDM. Per il collegamento a un BMC, la specifica raccomanda una linea PCIe x1, preferibilmente Gen 5 e almeno Gen 3, oltre a IPMI SSIF su I2C e a una console di debug UART. Raccomanda inoltre contatori HPM per cache rilevanti, controller di memoria e porte PCIe, nonché il monitoraggio della latenza media delle richieste di memoria. Nei sistemi NUMA è raccomandato distinguere gli accessi locali da quelli remoti.

Sicurezza: che cosa è obbligatorio

Il SoC deve avere una radice di fiducia hardware come radice di fiducia primaria. La specifica raccomanda inoltre PCIe IDE, la cifratura della DRAM esterna al chip con una chiave transitoria di almeno 256 bit e un’interfaccia per un TPM conforme a TPM 2.0.

Per valutare una piattaforma concreta, il numero di core non basta: occorre confrontarne l’implementazione con i requisiti di sistema, le eccezioni e le condizioni pertinenti della specifica.