Intel Data Streaming Accelerator: cos'è e come funziona su CPU

Il futuro dei rapporti tra i CPU e la memoria avviene nell'indirizzamento universale, che richiede nuovi tipi di unità per loro all'interno del processore come il Data Streaming Accelerator. Ma cos'è e come migliora le prestazioni del processore?

Acceleratore di streaming di dati Intel

Negli ultimi tempi, uno dei progressi su cui si sta maggiormente indagando ha a che fare con il movimento dei dati all'interno di un'architettura. Qualcosa che a prima vista può sembrare del tutto risolto da tempo, ma che negli ultimi anni è diventato un punto cruciale per poter aumentare le prestazioni delle CPU.

Ci sono due ragioni per cui il movimento dei dati è diventato l'ossessione degli architetti durante la progettazione di nuovo hardware. Il primo ha a che fare con il consumo di energia e il secondo con la latenza, che è il tempo necessario per eseguire un'operazione di memoria, ed è su questo secondo punto che dobbiamo chiarire molto bene il rapporto tra latenza e larghezza. gruppo musicale.

Larghezza di banda uguale a latenza?

Movimenti dati

No, non sono la stessa cosa, la latenza è il tempo in cicli di clock che serve per risolvere una richiesta in memoria e questo ha una serie di passaggi che devono essere sempre eseguiti. Il problema è che sebbene l'interfaccia di memoria possa essere molto veloce, il controller di memoria potrebbe non esserlo e finisce per succedere che questo o il MMU della CPU si satura e tutte le richieste di memoria vengono ritardate.

Bene, non importa quanto sia veloce l'interfaccia, se la richiesta di memoria viene bloccata, il resto della coda viene bloccato e nessun dato viene trasmesso. E questo può succedere se finiamo per saturare un gran numero di richieste al RAM. La cosa peggiore è che questo può anche lasciare la CPU in attesa di molto tempo per ottenere i dati per l'esecuzione dell'istruzione successiva.

La larghezza di banda invece è semplicemente la velocità di trasferimento. Ad esempio si possono avere 100 richieste a 1 GB/s o 1 richiesta a 100 GB/s, ma bisogna tener conto che il controller di memoria del processore che si occupa di gestire gli accessi ad essa avrà maggiori difficoltà con il primo caso. che con il secondo.

Unità di movimento dati

Portada-CPU-Generica-Placa-Base

Prendi un qualsiasi ISA, non importa cosa sia e dai un'occhiata, in esso vedrai istruzioni che non eseguono un'operazione aritmetico-logica, né sono incaricate di eseguire un salto o una nave, ma sono in incaricato di eseguire movimenti di dati che comportano il movimento in memoria.

Molte di queste istruzioni sono antiquate e hanno una latenza del ciclo di clock specifica. E se aggiungessimo un processore di supporto per fungere da messenger e potessimo risolvere quelle richieste alla RAM o a qualsiasi memoria all'interno dello stesso indirizzo con una latenza inferiore? Ebbene, le prestazioni del processore aumenterebbero e gli consentirebbero di focalizzare i cicli di clock che di solito sono in attesa di risolvere nuove istruzioni.

Ebbene, il Intel Data Streaming Accelerator si basa su questo principio ed è una delle chiavi per migliorare le prestazioni dei diversi processori.

Acceleratore di streaming di dati Intel

Diagrama Acceleratore di streaming di dati

Come indica il nome, è un acceleratore, cioè un'unità che svolge un compito specifico, che in questo caso è l'emissione di dati in meno tempo rispetto alla CPU. La particolarità del DSA è che è progettato per una delle caratteristiche che Compute Express Link porta con sé su PCI Express 5.0, ovvero garantire un accesso coerente alla memoria RAM a tutte le periferiche collegate alla porta PCI Express, ovvero, condividono gli stessi indirizzi di memoria.

Pertanto, viene utilizzato per eseguire le seguenti operazioni:

  • Puoi spostare i dati dalla CPU alla RAM e viceversa.
  • Per poter accedere a spazi di memoria non coerenti, con un altro indirizzamento di memoria, è possibile effettuare la conversione dell'indirizzo in automatico, quindi tecnicamente siamo di fronte ad un'unità DMA aggiornata.
  • Ha anche accesso a memorie persistenti o non volatili, quindi può accedere anche a SSD NVMe, moduli Intel Optane, NVDIMM ecc…
  • Tramite NTB e in ambiente server ti dà accesso ad altra RAM o memoria non volatile da un'altra scheda del data center o del server.
  • Ha funzioni integrate per applicare i punti di cui sopra alle macchine virtuali.

Come molti di voi avranno dedotto, si tratta di un tipo di unità progettata appositamente per i processori server, sebbene non sia un'unità a funzione fissa che funziona automaticamente.

Istruzioni Intel DSA

Il Data Streaming Accelerator non è un'unità di funzione fissa poiché non applica sempre lo stesso programma sui dati che lo immettono, ma supporta piuttosto una serie di istruzioni, quindi è ciò che chiamiamo un processore di dominio specifico. Tra le operazioni che puoi eseguire ci sono:

  • Mossa: le classiche istruzioni di spostamento dati x86, chi ha scritto assembler lo saprà. Se il processore ha uno o più Intel Data Streaming Accelerator, verrà eseguito da questi e non dai core della CPU.
  • DIF: è è incaricato di svolgere il processo di verifica dell'integrità delle informazioni in memoria.
  • Generazione CRC: Genera il Checksum CRC sui dati trasmessi.
  • Fill: È responsabile del riempimento ripetuto di una sezione di memoria con un dato specifico, è l'ideale per cancellare il contenuto di una parte della memoria, poiché ci consente di impostare tutti i bit a 0.
  • Confronta: Viene utilizzato per confrontare due blocchi di memoria e verificare se sono identici.
  • Creazione record delta: Eseguire un controllo e generare un nuovo flusso di dati con la differenza tra i due.

Il Data Streaming Accelerator può anche controllare più dispositivi di archiviazione contemporaneamente:

  • Abilita / Disabilita : consente di connettere o disconnettere un dispositivo di memoria, RAM o memoria non volatile.
  • Interrompi: annulla tutte le richieste di memoria alla RAM o ad altro dispositivo di memoria.
  • Scolare: richiede che tutte le richieste vengano effettuate contemporaneamente a un dispositivo di memoria.

L'elenco delle istruzioni è molto più ampio, ma è così che hai un'idea approssimativa di quale sia il funzionamento di questa nuova unità che Intel ha integrato nei suoi processori. I vantaggi sono evidenti e dovrebbero essere ulteriormente migliorati a Sapphire Rapids.