Klassificering av parallella datorsystem

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 december 2015; kontroller kräver 16 redigeringar .

Flynns klassificering av parallella arkitekturer

Flynn klassificering
  Enkel instruktionsström
Flera instruktionsströmmar
Enskild dataström
(enskild data)
SISD
(OKOD)
MISD
(MISD)
Flera dataströmmar
SIMD
(JMD)
MIMD
(MKMD)

En allmän klassificering av datorarkitekturer baserad på närvaron av parallellism i kommando- och dataflöden föreslogs av Michael Flynn 1966 [1] och utökades 1972 [2] . Hela variationen av datorarkitekturer i denna taxonomi är reducerad till fyra klasser:

Typiska representanter för SIMD är vektorarkitekturer. Ett antal forskare inkluderar transportbandsdatorer till MISD- klassen , men detta har inte hittat slutgiltigt erkännande, så vi kan anta att riktiga system - representanter för denna klass inte existerar. MIMD - klassen inkluderar multiprocessorsystem där processorer bearbetar flera dataströmmar.

Förhållandet mellan specifika maskiner och en specifik klass är starkt beroende av forskarens synvinkel. Så, transportörmaskiner kan tilldelas till SISD- klassen (pipeline - en enda processor) och till SIMD -klassen (vektordataström med en pipeline-processor) och till MISD-klassen (många pipelineprocessorer behandlar en dataström sekventiellt), och till MIMD -klassen  - som exekvering av en sekvens av olika kommandon (operationer av pipeline-steg) på en multipel skalär dataström (vektor).

Superscalar- och VLIW- maskiner

Det finns två typer av maskiner (processorer) som utför flera instruktioner i en maskincykel:

Superskalära maskiner kan exekvera ett variabelt antal instruktioner per klockcykel, och deras pipelines kan schemaläggas antingen statiskt av kompilatorn eller av dynamisk optimeringshårdvara. Superskalära maskiner utnyttjar parallellism på instruktionsnivå genom att skicka flera instruktioner från en normal instruktionsström till flera funktionella enheter.

Dessutom, för att ta bort restriktioner för sekventiell exekvering av kommandon, använder dessa maskiner mekanismerna för oordning utfärdande och utförande av kommandon i oordning ( engelska  OoO, Out of Order execution ), grenprediktion ( engelska.  Branch prediction ) , cacher för måladresser för övergångar och villkorliga (genom antagande) exekveringskommandon.

Till skillnad från superskalära maskiner, exekverar en VLIW-maskin ett fast antal instruktioner per maskincykel, som antingen är formaterade som en stor instruktion eller som en sats av instruktioner med fast format. Schemaläggningen av VLIW-maskinen görs alltid av kompilatorn. I en typisk superskalär maskin kan hårdvaran ge från en till åtta instruktioner per klockcykel. Typiskt måste dessa instruktioner vara oberoende och föremål för vissa restriktioner, såsom att inte mer än en minnesåtkomstinstruktion kan utfärdas per klockcykel. Om något kommando i den körbara kommandoströmmen är logiskt beroende eller inte uppfyller utfärdandekriterierna, kommer endast de kommandon som föregår det givna att utfärdas för exekvering. Därför är hastigheten för att utfärda instruktioner i superskalära maskiner variabel. Detta skiljer dem från VLIW-maskiner, där kompilatorn (och därmed kompilatorprogrammeraren) är ensam ansvarig för att generera en grupp instruktioner som kan utfärdas samtidigt, och hårdvaran inte dynamiskt fattar några beslut om att utfärda flera instruktioner.

Användningen av VLIW leder i de flesta fall till snabb fyllning av en liten mängd on-chip-minne med NOP-kommandon (ingen operation), som är avsedda för de enheter som inte kommer att vara involverade i den aktuella cykeln. En stor brist hittades i de befintliga VLIW-arkitekturerna, som eliminerades genom att dela upp långa ord i mindre som skickas till varje enhet parallellt. Behandlingen av många instruktioner av oberoende enheter samtidigt är huvuddraget i den superskalära processorarkitekturen.

Hockney-klassificering (Roger W. Hockney)

Klassificering av MIMD-arkitekturmaskiner:

Klassen av pipelined arkitekturer (enligt Hockney) inkluderar maskiner med en pipelined bearbetningsenhet som arbetar i tidsdelningsläget för separata trådar. Maskiner där varje tråd bearbetas av sin egen enhet, Hockney kallad switchable. Klassen av switchade maskiner inkluderar maskiner där varje processor kan kommunicera med var och en, implementerad med hjälp av switchar - maskiner med distribuerat minne. Om minnet är en delad resurs kallas maskinen delat minne. När man övervägde maskiner med nätverksstruktur, trodde Hockney att de alla har distribuerat minne. Han utförde ytterligare klassificering i enlighet med nätverkstopologin.

Fengs klassificering

1972 föreslog Feng (T. Feng) att klassificera datorsystem baserat på två enkla egenskaper. Den första är antalet n bitar i ett maskinord som bearbetas parallellt vid exekvering av maskininstruktioner. I nästan alla moderna datorer är detta nummer samma som längden på ett maskinord . Den andra egenskapen är lika med antalet ord m som behandlas samtidigt av denna CS. Med en liten förändring i terminologin kan CS:s funktion representeras som parallell bearbetning av n bitlager, på vilka m bitar konverteras oberoende av varandra. Varje datorsystem kan beskrivas med ett par tal (n, m). Produkten P = nxm bestämmer den integrerade egenskapen för parallellitetspotentialen för arkitekturen, som Feng kallade den maximala graden av CS-parallellism.

Handlarens klassificering

Klassificeringen baseras på V. Hendlers uttryckliga beskrivning av möjligheterna för parallell- och pipelinebehandling av information i ett datorsystem. Den föreslagna klassificeringen är baserad på skillnaden mellan tre nivåer av databehandling under programexekveringen:

Ett sådant utjämningsschema förutsätter att datorsystemet inkluderar ett visst antal processorer, var och en med sin egen styrenhet. Om vi ​​under en tid inte överväger möjligheten till pipelining, kommer antalet styrenheter k, antalet aritmetiska logiska enheter d i varje styrenhet och antalet elementära logiska kretsar w i varje ALU att utgöra en trippel för att beskriva detta datorsystem C: t(C) = (k, d, w).

Schneiders klassificering

1988 föreslog L. Snyder ett nytt tillvägagångssätt för att beskriva arkitekturerna för parallella datorsystem som faller inom SIMD-klassen i Flynns systematik. Huvudidén är att lyfta fram stadierna av sampling och direkt exekvering i kommandon och dataflöden.

Skillicorns klassificering

Skillicorn-klassificeringen (1989) var en annan förlängning av Flynns klassificering. Arkitekturen för vilken dator som helst i Skillicorns klassificering betraktas som en kombination av fyra abstrakta komponenter: instruktionsprocessorer (instruktionsprocessor - kommandotolk, kanske inte finns i systemet), dataprocessorer (dataprocessor - dataomvandlare), minneshierarki (instruktion Minne, Dataminne - programminne och data), switchar (ansluter processorer och minne). Switchar är av fyra typer - "1-1" (anslut ett par enheter), "nn" (ansluter varje enhet från en uppsättning enheter med motsvarande enhet från en annan uppsättning, det vill säga fixar en paranslutning), "1 -n" (omkopplaren ansluter en dedikerad enhet med alla funktionella enheter från någon uppsättning), "nxn" (anslutning av vilken enhet som helst i en uppsättning med vilken enhet som helst i en annan uppsättning). Klassificeringen av Skillicorn är baserad på följande åtta egenskaper:

Se även

Anteckningar

  1. Flynn MJ (1966) Datorer med mycket hög hastighet. Proc IEEE 54:1901–1901
  2. MJ Flynn. Vissa datororganisationer och deras effektivitet. IEEE Transactions on Computers, 21(9): 948–960, 1972

Länkar