Intel Data Streaming Accelerator: hva det er og hvordan det fungerer på CPU

Fremtiden for forholdet mellom prosessor og minnet skjer i den universelle adresseringen, som krever nye typer enheter for dem i prosessoren, for eksempel Data Streaming Accelerator. Men hva er det og hvordan forbedrer det prosessorytelsen?

Intel Data Streaming Accelerator

I nyere tid har en av fremskrittene der det blir undersøkt mest, å gjøre med bevegelse av data innenfor en arkitektur. Noe som ved første øyekast kan virke fullstendig løst lenge, men som de siste årene har blitt et avgjørende punkt for å øke ytelsen til CPU-ene.

Det er to grunner til at bevegelse av data har blitt en besettelse av arkitekter når de designer ny maskinvare. Den første har å gjøre med energiforbruk og den andre med latens, som er tiden det tar å utføre en minneoperasjon, og det er på dette andre punktet vi må gjøre forholdet mellom latens og bredde veldig tydelig. bånd.

Båndbredde er lik ventetid?

Movimientos Datos

Nei, de er ikke de samme, latens er tiden i klokkesykluser som det tar å løse en forespørsel til minnet, og dette har en rekke trinn som alltid må utføres. Problemet er at selv om minnegrensesnittet kan være veldig raskt, kan det hende at minnekontrolleren ikke er det, og det ender opp med at dette eller MMU av CPU-en blir mettet og alle minneforespørsler er forsinket.

Vel, uansett hvor raskt grensesnittet er, hvis minneforespørselen er blokkert, blir resten av køen blokkert og ingen data blir overført. Og dette kan skje hvis vi ender opp med å mette et stort antall forespørsler til RAM. Det verste er at dette til og med kan la CPU-en vente lenge på å få dataene til neste instruksjon som skal utføres.

Båndbredden er i stedet ganske enkelt overføringshastigheten. For eksempel kan du ha 100 forespørsler på 1 GB / eller 1 forespørsel på 100 GB / s, men det må tas i betraktning at prosessorens minnekontroller som er ansvarlig for å administrere tilganger til den vil ha større problemer med det første tilfellet. enn med den andre.

Databevegelsesenheter

Portada-CPU-Genérica-Placa-Base

Ta en hvilken som helst ISA, det spiller ingen rolle hva det er og ta en titt på den, i den vil du se instruksjoner som ikke utfører en aritmetisk-logisk operasjon, og som heller ikke er ansvarlig for å utføre et hopp eller et skip, men som er i ansvar for å utføre databevegelser som involverer bevegelse til minnet.

Mange av disse instruksjonene er gammeldagse og har en spesifikk klokkesyklusforsinkelse. Hva om vi la til en støtteprosessor for å fungere som en messenger og kunne løse disse forespørslene til RAM eller et hvilket som helst minne innenfor samme adresse med lavere ventetid? Vel, ytelsen til prosessoren vil øke og tillate den å fokusere klokkesyklusene som vanligvis venter på å løse nye instruksjoner.

Vel, Intel Data Streaming Accelerator er basert på dette prinsippet, og det er en av nøklene til å forbedre ytelsen til de forskjellige prosessorene.

Intel Data Streaming Accelerator

Diagram Data Streaming Accelerator

Som navnet indikerer, er det en akselerator, det vil si en enhet som utfører en spesifikk oppgave, som i dette tilfellet er utslipp av data på kortere tid enn CPU-en ville gjort. Det spesielle med DSA er at den er designet for en av egenskapene som Compute Express Link bringer med seg over PCI Express 5.0, som er å gi koherent tilgang til RAM-minnet til alle eksterne enheter koblet til PCI Express-porten, det vil si, de deler de samme minneadressene.

Derfor brukes den til å utføre følgende operasjoner:

  • Du kan flytte data fra CPU til RAM og omvendt.
  • For å få tilgang til ikke-koherente minneplasser, med en annen minneadressering, kan du utføre adressekonverteringen automatisk, så teknisk sett står vi overfor en oppdatert DMA-enhet.
  • Den har også tilgang til vedvarende eller ikke-flyktige minner, så den kan også få tilgang til NVMe SSD-er, Intel Optane-moduler, NVDIMM-er etc ...
  • Gjennom NTB og i et servermiljø gir den deg tilgang til annen RAM eller ikke-flyktig minne fra et annet kort i datasenteret eller serveren.
  • Den har innebygde funksjoner for å bruke punktene ovenfor på virtuelle maskiner.

Som mange av dere kanskje har utledet, er det en type enhet som er designet spesielt for serverprosessorer, selv om det ikke er en fast funksjonsenhet som fungerer automatisk.

Intel DSA-instruksjoner

Data Streaming Accelerator er ikke en fast funksjonsenhet siden den ikke alltid bruker det samme programmet på dataene som kommer inn i den, men snarere støtter en rekke instruksjoner, så det er det vi kaller en domeneprosessorspesifikk. Blant operasjonene du kan utføre er:

  • Bevege seg: de klassiske x86-dataflytningsinstruksjonene vil de som har skrevet assembler vite. Hvis prosessoren har en eller flere Intel Data Streaming Accelerators, vil den bli utført av disse og ikke av CPU-kjernene.
  • DIF: det har ansvaret for å utføre prosessen med å verifisere integriteten til informasjonen i minnet.
  • CRC generasjon: Genererer CRC-sjekksummen på de overførte dataene.
  • Fyll: Det er ansvarlig for å fylle en del av minnet med en spesifikk data gjentatte ganger, det er ideelt å slette innholdet i en del av minnet, siden det lar oss sette alle bitene til 0.
  • Sammenligne: Den brukes til å sammenligne to minneblokker og sjekke om de er identiske.
  • Delta Record Create: Utfør en sjekk og generer en ny datastrøm med forskjellen mellom de to.

Datastreaming-akseleratoren kan også kontrollere flere lagringsenheter samtidig:

  • På av : lar deg koble til eller fra en minneenhet, enten RAM eller ikke-flyktig lagring.
  • Avbryte: avbryt alle minneforespørsler til RAM eller annen minneenhet.
  • Avløp: ber om at alle forespørsler sendes til en minneenhet samtidig.

Listen over instruksjoner er mye større, men det er slik at du har en grov ide om hvordan denne nye enheten fungerer som Intel har integrert i sine prosessorer. Fordelene er klare og forventes å bli ytterligere forbedret hos Sapphire Rapids.