Heterogen databehandling - Heterogeneous computing

Heterogen beräkning avser system som använder mer än en typ av processor eller kärnor . Dessa system får prestanda eller energieffektivitet inte bara genom att lägga till samma typ av processorer, utan genom att lägga till olika coprocessorer , som vanligtvis innehåller specialiserade bearbetningsmöjligheter för att hantera särskilda uppgifter.

Heterogenitet

Vanligtvis heter heterogenitet i datorsammanhang till olika instruktionsuppsättningsarkitekturer (ISA), där huvudprocessorn har en och andra processorer har en annan - vanligtvis en helt annan - arkitektur (kanske mer än en), inte bara en annan mikroarkitektur ( flytande punkt nummerbehandlings är ett specialfall av detta - oftast inte kallad heterogen).

Tidigare innebar heterogen beräkning att olika ISA måste hanteras annorlunda, medan i ett modernt exempel eliminerar Heterogenous System Architecture (HSA) -skillnaderna (för användaren) när man använder flera processortyper (vanligtvis CPU: er och GPU: er ), vanligtvis på samma integrerade krets , för att ge det bästa av två världar: allmän GPU-bearbetning (förutom GPU: s välkända 3D-grafikåtergivningsmöjligheter kan den också utföra matematiskt intensiva beräkningar på mycket stora datamängder), medan processorer kan köra operativsystemet och utföra traditionella serieuppgifter.

Nivån av heterogenitet i moderna datorsystem ökar gradvis eftersom ytterligare skalning av tillverkningsteknologi gör det möjligt för tidigare diskreta komponenter att bli integrerade delar av ett system-on-chip eller SoC. Till exempel innehåller många nya processorer nu inbyggd logik för gränssnitt med andra enheter ( SATA , PCI , Ethernet , USB , RFID , radio , UART och minneskontroller ), samt programmerbara funktionella enheter och hårdvaruacceleratorer ( GPU , kryptografi samprocessorer , programmerbara nätverksprocessorer, A/V-kodare/avkodare, etc.).

Nya fynd visar att en heterogen ISA-chip-multiprocessor som utnyttjar mångfald som erbjuds av flera ISA kan överträffa den bästa homogena ISA-arkitekturen med hela 21% med 23% energibesparingar och en minskning med 32% i Energy Delay Product (EDP) . AMDs meddelande från 2014 om sin pin-kompatibla ARM och x86 SoCs, kodnamnet Project Skybridge, föreslog en heterogen-ISA (ARM+x86) chip-multiprocessor i färd.

Heterogen CPU -topologi

Ett system med heterogen CPU -topologi är ett system där samma ISA används, men själva kärnorna har olika hastighet. Installationen liknar mer en symmetrisk multiprocessor . (Även om sådana system är tekniskt asymmetriska multiprocessorer skiljer sig inte kärnorna i roller eller åtkomst till enheter.) Det finns vanligtvis två typer av kärnor: en kärna med högre prestanda, vanligtvis känd som den "stora" eller P-kärnan och en mer energieffektiv kärna vanligtvis känd som den "lilla" eller E-kärnan.

En vanlig användning av sådan topologi är att ge bättre energieffektivitet i mobila SoC.

  • ARM big.LITTLE (efterföljs av DynamIQ) är det prototypiska fallet, där snabbare högeffektkärnor kombineras med långsammare lågeffektkärnor.
  • Apple har tillverkat Apple kisel ARM -kärnor med liknande organisation.
  • Intel har också producerat hybrid x86-64-kärnor med kodnamnet Lakefield , men inte utan större begränsningar i stöd för instruktionsuppsättningar. Den nyare Aldersjön minskar uppoffringen genom att lägga till mer instruktionsuppsättningar till den "lilla" kärnan.

Utmaningar

Heterogena datorsystem presenterar nya utmaningar som inte finns i typiska homogena system. Förekomsten av flera bearbetningselement väcker alla frågor som rör homogena parallella bearbetningssystem, medan graden av heterogenitet i systemet kan införa icke-enhetlighet i systemutveckling, programmeringsmetoder och övergripande systemkapacitet. Områden med heterogenitet kan innefatta:

ISA eller instruktionsuppsatt arkitektur
Datorelement kan ha olika instruktionsuppsättningsarkitekturer, vilket leder till binär inkompatibilitet.
ABI eller binärt gränssnitt för applikationer
Datorelement kan tolka minnet på olika sätt. Detta kan inkludera både slutlighet , samtalskonvention och minneslayout, och beror på både arkitekturen och kompilatorn som används.
API- eller applikationsprogrammeringsgränssnitt
Bibliotek- och operativsystemstjänster kanske inte är enhetligt tillgängliga för alla beräkningselement.
Lågnivåimplementering av språkfunktioner
Språkfunktioner som funktioner och trådar implementeras ofta med hjälp av funktionspekare , en mekanism som kräver ytterligare översättning eller abstraktion när den används i heterogena miljöer.
Minnesgränssnitt och hierarki
Datorelement kan ha olika cachestrukturer , cachekoherensprotokoll och minnesåtkomst kan vara enhetlig eller icke-enhetlig minnesåtkomst ( NUMA ). Skillnader kan också hittas i möjligheten att läsa godtyckliga datalängder eftersom vissa processorer/enheter endast kan utföra byte-, ord- eller burst-åtkomst.
Koppla ihop
Datorelement kan ha olika typer av sammankopplingar bortsett från grundläggande minnes-/bussgränssnitt. Detta kan inkludera dedikerade nätverksgränssnitt, DMA- enheter ( Direct Memory Access ), brevlådor, FIFO-skivor och skrapmattor , etc. Dessutom kan vissa delar av ett heterogent system vara cachekoherent, medan andra kan kräva uttryckligt programvaruinblandning för att upprätthålla konsistens och sammanhang.
Prestanda
Ett heterogent system kan ha processorer som är identiska med avseende på arkitektur, men som har underliggande mikroarkitektoniska skillnader som leder till olika prestandanivåer och strömförbrukning. Asymmetri i kapacitet i kombination med ogenomskinliga programmeringsmodeller och operativsystemabstraktioner kan ibland leda till prestandaförutsägbarhetsproblem, särskilt med blandad arbetsbelastning.
Datadelning
Även om uppdelning av data på homogena plattformar ofta är trivialt har det visat sig att för det allmänna heterogena fallet är problemet NP-Complete. För ett litet antal partitioner har optimala partitioner som perfekt balanserar belastning och minimerar kommunikationsvolymen visat sig existera.

Exempel på hårdvara

Heterogen databehandlingshårdvara finns inom alla databaser-från avancerade servrar och högpresterande datormaskiner ända ner till inbyggda enheter med låg effekt inklusive mobiltelefoner och surfplattor.

Se även

Referenser