Intel Data Streaming Accelerator: vad det är och hur det fungerar på CPU

Framtiden för relationerna mellan CPU och minnet sker i den universella adresseringen, vilket kräver nya typer av enheter för dem inom processorn, såsom Data Streaming Accelerator. Men vad är det och hur förbättrar det processorprestanda?

Intel Data Streaming Accelerator

På senare tid har en av de framsteg som mest undersöks har att göra med rörelsen av data inom en arkitektur. Något som vid en första anblick kan tyckas helt löst under lång tid, men som på senare år har blivit en avgörande punkt för att kunna öka prestanda hos CPU:erna.

Det finns två anledningar till att rörelsen av data har blivit en besatthet av arkitekter när de designar ny hårdvara. Det första har att göra med energiförbrukning och det andra med latens, vilket är den tid det tar att utföra en minnesoperation, och det är på denna andra punkt som vi måste göra förhållandet mellan latens och bredd väldigt tydligt. band.

Bandbredd är lika med latens?

Movimientos Datos

Nej, de är inte lika, latens är tiden i klockcykler som det tar att lösa en begäran till minnet och detta har en serie steg som alltid måste utföras. Problemet är att även om minnesgränssnittet kan vara mycket snabbt, kanske minneskontrollern inte är det och det slutar med att det här eller MMU av CPU:n blir mättad och alla minnesbegäranden fördröjs.

Tja, oavsett hur snabbt gränssnittet är, om minnesbegäran blockeras så blockeras resten av kön och ingen data överförs. Och detta kan hända om vi slutar mätta ett stort antal förfrågningar till RAM. Det värsta är att detta till och med kan låta processorn vänta länge på att få data för nästa instruktion att köra.

Bandbredden är istället helt enkelt överföringshastigheten. Till exempel kan du ha 100 förfrågningar på 1 GB / eller 1 begäran vid 100 GB / s, men det måste tas med i beräkningen att processorns minneskontroller som ansvarar för att hantera åtkomster till den kommer att ha större svårigheter med det första fallet. än med den andra.

Datarörelseenheter

Portada-CPU-Genérica-Placa-Base

Ta vilken ISA som helst, det spelar ingen roll vad det är och ta en titt på det, i det kommer du att se instruktioner som inte utför en aritmetisk-logisk operation, inte heller är de ansvariga för att utföra ett hopp eller ett skepp, utan är i ansvar för att utföra datarörelser som involverar förflyttning till minnet.

Många av dessa instruktioner är gammaldags och har en specifik klockcykellatens. Tänk om vi lade till en supportprocessor för att fungera som en budbärare och kunde lösa dessa förfrågningar till RAM eller något annat minne inom samma adress med lägre latens? Tja, processorns prestanda skulle öka och tillåta den att fokusera klockcyklerna som vanligtvis väntar på att lösa nya instruktioner.

Tja, Intel Data Streaming Accelerator är baserad på denna princip och den är en av nycklarna till att förbättra prestanda hos de olika processorerna.

Intel Data Streaming Accelerator

Diagram Dataströmningsaccelerator

Som namnet indikerar är det en accelerator, det vill säga en enhet som utför en specifik uppgift, vilket i det här fallet är utsläpp av data på kortare tid än vad CPU skulle göra. Det speciella med DSA är att den är designad för en av de egenskaper som Compute Express Link för med sig över PCI Express 5.0, vilket är att ge koherent åtkomst till RAM-minnet till all kringutrustning som är ansluten till PCI Express-porten, det vill säga, de delar samma minnesadresser.

Därför används den för att utföra följande operationer:

  • Du kan flytta data från CPU till RAM och vice versa.
  • För att komma åt icke-koherenta minnesutrymmen, med annan minnesadressering, kan man utföra adresskonverteringen automatiskt, så tekniskt sett står vi inför en uppdaterad DMA-enhet.
  • Den har också tillgång till beständiga eller icke-flyktiga minnen, så den kan också komma åt NVMe SSD, Intel Optane-moduler, NVDIMM etc ...
  • Genom NTB och i en servermiljö ger den dig tillgång till annat RAM eller icke-flyktigt minne från ett annat kort i datacentret eller servern.
  • Den har inbyggda funktioner för att applicera ovanstående punkter på virtuella maskiner.

Som många av er kanske har dragit slutsatsen är det en typ av enhet som är designad speciellt för serverprocessorer, även om det inte är en fast funktionsenhet som fungerar automatiskt.

Intel DSA-instruktioner

Dataströmningsacceleratorn är inte en fast funktionsenhet eftersom den inte alltid tillämpar samma program på data som kommer in i den, utan stöder snarare en serie instruktioner, så det är vad vi kallar en domänprocessorspecifik. Bland de operationer du kan utföra är:

  • Flytta: de klassiska x86-dataflyttningsinstruktionerna vet de som har skrivit assembler. Om processorn har en eller flera Intel Data Streaming Acceleratorer kommer den att exekveras av dessa och inte av CPU-kärnorna.
  • DIF: det är ansvarig för att utföra processen för att verifiera integriteten av informationen i minnet.
  • CRC Generation: Genererar CRC-kontrollsumman på de överförda data.
  • Fylla: Det är ansvarigt för att fylla en del av minnet med en specifik data upprepade gånger, det är idealiskt att radera innehållet i en del av minnet, eftersom det tillåter oss att ställa in alla bitar till 0.
  • Jämföra: Den används för att jämföra två minnesblock och kontrollera om de är identiska.
  • Skapa deltapost: Utför en kontroll och generera en ny dataström med skillnaden mellan de två.

Dataströmningsacceleratorn kan också styra flera lagringsenheter samtidigt:

  • Aktivera inaktivera : låter dig ansluta eller koppla bort en minnesenhet, antingen RAM eller icke-flyktig lagring.
  • Avbryta: avbryt alla minnesbegäranden till RAM eller annan minnesenhet.
  • Dränera: begär att alla förfrågningar görs till en minnesenhet samtidigt.

Listan med instruktioner är mycket större, men det är så att du har en ungefärlig uppfattning om hur denna nya enhet fungerar som Intel har integrerat i sina processorer. Fördelarna är tydliga och förväntas förbättras ytterligare hos Sapphire Rapids.