Intel Data Streaming Accelerator: wat het is en hoe het werkt op CPU

De toekomst van de relaties tussen de CPU en het geheugen vindt plaats in de universele adressering, waarvoor nieuwe soorten eenheden binnen de processor nodig zijn, zoals de Data Streaming Accelerator. Maar wat is het en hoe verbetert het de processorprestaties?

Intel Data Streaming Accelerator

Een van de ontwikkelingen waarin de laatste tijd het meest wordt onderzocht, heeft te maken met de verplaatsing van gegevens binnen een architectuur. Iets dat op het eerste gezicht misschien lange tijd volledig opgelost lijkt, maar de afgelopen jaren een cruciaal punt is geworden om de prestaties van de CPU's te verhogen.

Er zijn twee redenen waarom het verplaatsen van gegevens de obsessie is geworden van architecten bij het ontwerpen van nieuwe hardware. De eerste heeft te maken met energieverbruik en de tweede met latency, de tijd die nodig is om een ​​geheugenbewerking uit te voeren, en het is op dit tweede punt dat we de relatie tussen latency en breedte heel duidelijk moeten maken. band.

Bandbreedte is gelijk aan latentie?

Bewegende gegevens

Nee, ze zijn niet hetzelfde, latentie is de tijd in klokcycli die nodig is om een ​​verzoek in het geheugen op te lossen en dit heeft een reeks stappen die altijd moeten worden uitgevoerd. Het probleem is dat hoewel de geheugeninterface erg snel kan zijn, de geheugencontroller dat misschien niet is en het uiteindelijk gebeurt dat deze of de MMU van de CPU verzadigd raakt en alle geheugenverzoeken worden vertraagd.

Welnu, hoe snel de interface ook is, als het geheugenverzoek wordt geblokkeerd, wordt de rest van de wachtrij geblokkeerd en worden er geen gegevens verzonden. En dit kan gebeuren als we een groot aantal verzoeken aan de . verzadigen RAM. Het ergste is dat hierdoor de CPU zelfs lang kan wachten om de gegevens te verkrijgen voor de volgende instructie die moet worden uitgevoerd.

De bandbreedte is in plaats daarvan gewoon de overdrachtssnelheid. U kunt bijvoorbeeld 100 verzoeken hebben bij 1 GB / of 1 verzoek bij 100 GB / s, maar er moet rekening mee worden gehouden dat de processorgeheugencontroller die verantwoordelijk is voor het beheren van de toegangen, in het eerste geval grotere problemen zal hebben. dan bij de tweede.

Gegevensverplaatsingseenheden

Portada-CPU-Genérica-Placa-Base

Neem een ​​willekeurige ISA, het maakt niet uit wat het is en kijk er eens naar, daarin zie je instructies die geen rekenkundig-logische bewerking uitvoeren, noch zijn ze verantwoordelijk voor het uitvoeren van een sprong of een schip, maar zijn in belast met het uitvoeren van gegevensbewegingen waarbij verplaatsing naar het geheugen plaatsvindt.

Veel van deze instructies zijn ouderwets en hebben een specifieke klokcycluslatentie. Wat als we een ondersteunende processor zouden toevoegen om als boodschapper te fungeren en die verzoeken naar RAM of elk geheugen binnen hetzelfde adres met een lagere latentie zouden kunnen oplossen? Welnu, de prestaties van de processor zouden toenemen en hem in staat stellen de klokcycli te focussen die gewoonlijk wachten om nieuwe instructies op te lossen.

Nou, de Intel Data Streaming Accelerator is gebaseerd op dit principe en het is een van de sleutels tot het verbeteren van de prestaties van de verschillende processors.

Intel Data Streaming Accelerator

Diagrama Datastreamingversneller

Zoals de naam al aangeeft, is het een versneller, dat wil zeggen een eenheid die een specifieke taak uitvoert, in dit geval de emissie van gegevens in minder tijd dan de CPU zou doen. De bijzonderheid van de DSA is dat deze is ontworpen voor een van de kenmerken die Compute Express Link met zich meebrengt via PCI Express 5.0, namelijk het verlenen van coherente toegang tot het RAM-geheugen aan alle randapparatuur die op de PCI Express-poort is aangesloten, dat wil zeggen, ze delen dezelfde geheugenadressen.

Daarom wordt het gebruikt om de volgende bewerkingen uit te voeren:

  • U kunt gegevens van CPU naar RAM verplaatsen en vice versa.
  • Om toegang te krijgen tot niet-coherente geheugenruimten, met een andere geheugenadressering, kunt u de adresconversie automatisch uitvoeren, dus technisch gezien worden we geconfronteerd met een bijgewerkte DMA-eenheid.
  • Het heeft ook toegang tot persistente of niet-vluchtige geheugens, dus het heeft ook toegang tot NVMe SSD's, Intel Optane-modules, NVDIMM's enz ...
  • Via NTB en in een serveromgeving geeft het je toegang tot ander RAM-geheugen of niet-vluchtig geheugen van een ander bord in het datacenter of de server.
  • Het heeft ingebouwde functies om de bovenstaande punten toe te passen op virtuele machines.

Zoals velen van jullie misschien hebben afgeleid, is het een type eenheid dat speciaal is ontworpen voor serverprocessors, hoewel het geen vaste functie-eenheid is die automatisch werkt.

Intel DSA-instructies

De Data Streaming Accelerator is geen vaste functie-eenheid omdat het niet altijd hetzelfde programma toepast op de gegevens die het binnenkomt, maar eerder een reeks instructies ondersteunt, dus het is wat we een domeinprocessor-specifiek noemen. Onder de bewerkingen die u kunt uitvoeren zijn:

  • Actie: de klassieke x86-instructies voor het verplaatsen van gegevens, degenen die assembler hebben geschreven, zullen het weten. Als de processor een of meer Intel Data Streaming Accelerators heeft, wordt deze door deze uitgevoerd en niet door de CPU-kernen.
  • DIF: het is verantwoordelijk voor het uitvoeren van het proces van het verifiëren van de integriteit van de informatie in het geheugen.
  • CRC-generatie: Genereert de CRC Checksum op de verzonden gegevens.
  • in te vullen: Het is verantwoordelijk voor het herhaaldelijk vullen van een gedeelte van het geheugen met specifieke gegevens, het is ideaal om de inhoud van een deel van het geheugen te wissen, omdat het ons in staat stelt om alle bits op 0 te zetten.
  • Vergelijken: Het wordt gebruikt om twee geheugenblokken te vergelijken en te controleren of ze identiek zijn.
  • Delta-record maken: Voer een controle uit en genereer een nieuwe datastroom met het verschil tussen beide.

De Data Streaming Accelerator kan ook meerdere opslagapparaten tegelijk aansturen:

  • Inschakelen / uitschakelen : hiermee kunt u een geheugenapparaat aansluiten of loskoppelen, RAM of niet-vluchtige opslag.
  • Afbreken: breek alle geheugenverzoeken naar RAM of een ander geheugenapparaat af.
  • Afvoer: verzoekt dat alle verzoeken tegelijkertijd aan een geheugenapparaat worden gedaan.

De lijst met instructies is veel groter, maar het is zo dat je een globaal idee hebt van wat de werking is van dit nieuwe apparaat dat Intel in zijn processors heeft geïntegreerd. De voordelen zijn duidelijk en zullen naar verwachting verder worden verbeterd bij Sapphire Rapids.