Egyetlen utasításfolyam |
Több utasításfolyam | |
---|---|---|
Egyetlen adatfolyam (egyetlen adat) |
SISD (OKOD) |
MISD (MISD) |
Több adatfolyam |
SIMD (JMD) |
MIMD (MKMD) |
Michael Flynn 1966- ban javasolta a számítógépes architektúrák általános osztályozását, amely a parancs- és adatfolyamok párhuzamosságán alapul [1] , és 1972-ben kibővítette [2] . Ebben a taxonómiában a számítógépes architektúrák sokfélesége négy osztályra redukálódik:
A SIMD tipikus képviselői a vektorarchitektúrák . Számos kutató szállítószalagos számítógépeket is beépített a MISD osztályba , de ez nem talált végleges felismerésre, így feltételezhetjük, hogy valódi rendszerek - ennek az osztálynak a képviselői nem léteznek. A MIMD osztály többprocesszoros rendszereket foglal magában, ahol a processzorok több adatfolyamot dolgoznak fel.
Az egyes gépek egy adott osztályhoz viszonyított aránya nagymértékben függ a kutató nézőpontjától. Tehát a szállítószalagos gépek hozzárendelhetők a SISD osztályhoz (csővezeték - egyetlen processzor), és a SIMD osztályhoz (vektor adatfolyam csővezetékes processzorral), valamint a MISD osztályhoz (sok csővezeték processzor egy adatfolyamot dolgoz fel egymás után), és a MIMD osztályba - mint különböző parancsok sorozatának végrehajtása (folyamatszakaszok műveletei) többszörös skaláris adatfolyamon (vektoron).
Kétféle gép (processzor) létezik, amelyek több utasítást hajtanak végre egy gépi ciklusban:
A szuperskaláris gépek órajelenként változó számú utasítást tudnak végrehajtani, és folyamataikat statikusan ütemezheti a fordító, vagy dinamikus optimalizáló hardver. A szuperskaláris gépek az utasításszintű párhuzamosságot használják ki azáltal, hogy egy normál utasításfolyamból több utasítást küldenek több funkcionális egységnek.
Ezen túlmenően, a parancsok szekvenciális végrehajtására vonatkozó korlátozások megszüntetése érdekében ezek a gépek a parancsok soron kívüli kibocsátásának és soron kívüli befejezésének ( angol OoO, Out of Order execution ), elágazás előrejelzésének ( angol. Branch predikciós ) mechanizmusait használják. , az átmenetek és feltételes (feltételezett) végrehajtási parancsok célcímeinek gyorsítótárai.
A szuperskaláris gépekkel ellentétben a VLIW gépek meghatározott számú utasítást hajtanak végre gépi ciklusonként, amelyek vagy egyetlen nagy utasításként, vagy rögzített formátumú utasítások kötegként vannak formázva. A VLIW gép ütemezését mindig a fordító végzi el. Egy tipikus szuperskaláris gépben a hardver órajelenként egy-nyolc utasítást tud kiadni. Ezeknek az utasításoknak általában függetleneknek kell lenniük, és bizonyos korlátozásoknak kell alávetni, például hogy óraciklusonként legfeljebb egy memória-hozzáférési utasítás adható ki. Ha a végrehajtható parancsfolyamban bármely parancs logikailag függő, vagy nem felel meg a kibocsátási feltételeknek, akkor csak az adott parancsot megelőző parancsok kerülnek végrehajtásra. Ezért a szuperskaláris gépekben az utasítások kiadásának sebessége változó. Ez különbözteti meg őket a VLIW gépektől, ahol a fordító (és így a fordítóprogramozó) kizárólagos felelőssége egy köteg utasítások generálása, amelyek egyidejűleg kiadhatók, és a hardver nem hoz dinamikus döntéseket több utasítás kiadásáról.
A VLIW használata a legtöbb esetben kis mennyiségű chip-memória gyors feltöltéséhez vezet NOP (no operation) parancsokkal, amelyek azokra az eszközökre szolgálnak, amelyek nem vesznek részt az aktuális ciklusban. A meglévő VLIW architektúrákban nagy hibát találtak, amit úgy küszöböltek ki, hogy a hosszú szavakat kisebbekre osztottuk, amelyeket párhuzamosan küldtek minden eszközre. A szuperskaláris processzorarchitektúra fő jellemzője, hogy egyidejűleg sok utasítást dolgoznak fel egymástól független eszközök.
A MIMD architektúrájú gépek osztályozása:
A csővezetékes architektúrák osztályába (Hockney szerint) azok a gépek tartoznak, amelyek egy csővezetékes feldolgozó egységgel rendelkeznek, amely időmegosztásos módban működik külön szálak számára. Gépek, amelyekben minden szálat a saját eszköze dolgoz fel, Hockney átkapcsolható. A kapcsolt gépek osztályába tartoznak azok a gépek, amelyekben minden processzor kommunikálni tud mindegyikkel, kapcsolók segítségével megvalósítva - elosztott memóriával rendelkező gépek. Ha a memória megosztott erőforrás, akkor a gépet megosztott memóriának nevezik. Amikor a hálózati szerkezettel rendelkező gépeket fontolgatta, Hockney úgy gondolta, hogy mindegyik rendelkezik elosztott memóriával. További osztályozást végzett a hálózati topológiának megfelelően.
1972-ben Feng (T. Feng) javasolta a számítástechnikai rendszerek osztályozását két egyszerű jellemző alapján. Az első a gépi szóban lévő n bitek száma, amelyek párhuzamosan kerülnek feldolgozásra a gépi utasítások végrehajtása során. Szinte minden modern számítógépen ez a szám megegyezik egy gépszó hosszával . A második jellemző megegyezik a CS által egyidejűleg feldolgozott m szavak számával. A terminológia kis változtatásával a CS működése n bitréteg párhuzamos feldolgozásaként ábrázolható, amelyek mindegyikén m bitet függetlenül konvertálnak. Minden számítási rendszer leírható egy számpárral (n, m). A P = nxm szorzat határozza meg az architektúra párhuzamossági potenciáljának integrál karakterisztikáját, amelyet Feng a CS párhuzamosság maximális fokának nevezett.
Az osztályozás V. Hendler explicit leírásán alapul az információ számítógépes rendszer általi párhuzamos és csővezetékes feldolgozásának lehetőségeiről. A javasolt besorolás a program végrehajtása során az adatfeldolgozás három szintje közötti különbségen alapul:
Egy ilyen szintezési séma feltételezi, hogy a számítógépes rendszer bizonyos számú processzort tartalmaz, amelyek mindegyike saját vezérlőegységgel rendelkezik. Ha egy ideig nem fontolgatjuk a csővezetékezés lehetőségét, akkor a k vezérlőeszközök száma, az egyes vezérlőeszközökben lévő d aritmetikai logikai egységek száma és az egyes ALU-kban lévő w elemi logikai áramkörök száma egy hármast tesz ki a leíráshoz. ez a számítógépes rendszer C: t(C) = (k, d, w).
1988-ban L. Snyder új megközelítést javasolt a párhuzamos számítási rendszerek architektúrájának leírására, amelyek Flynn szisztematika SIMD osztályába tartoznak. A fő ötlet az, hogy kiemeljük a mintavételezés és a közvetlen végrehajtás szakaszait a parancsokban és az adatfolyamokban.
A Skillicorn osztályozás (1989) Flynn osztályozásának egy másik kiterjesztése volt. A Skillicorn besorolása szerint bármely számítógép architektúráját négy absztrakt komponens kombinációjának tekintjük: utasításfeldolgozók (Instruction Processor – parancsértelmező, esetleg nincs jelen a rendszerben), adatfeldolgozók (Data Processor – adatkonvertáló), memóriahierarchia (utasítás). Memória, adatmemória - programmemória és adatok, kapcsolók (processzorok és memória csatlakoztatása). A kapcsolóknak négy típusa van: "1-1" (egy pár eszköz csatlakoztatása), "nn" (egy eszközkészlet minden eszközét összeköti a másik készlet megfelelő eszközével, azaz rögzíti a párkapcsolatot), "1 -n" (a kapcsoló egy dedikált eszközt kapcsol össze egy készlet összes funkcionális eszközével), "nxn" (egy készlet bármely eszközének csatlakoztatása egy másik készlet bármely eszközéhez). A Skillicorn osztályozása a következő nyolc jellemzőn alapul:
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |