A barrel processzor – magyarul körülírva kb. forgótáras processzor, vagy gyorstüzelő processzor, de a többkontextusú processzor kifejezés is jól leírja a fogalmat – egy olyan CPU, amelyik minden egyes utasításciklusban egy következő végrehajtási szálra vált, körkörös rendszerben. A szálak száma egy előre rögzített szám, pl. 10, és a processzor minden órajelciklusban a következő szál soron következő utasítását kezdi el (vagy folytatja), és a 11. órajelciklusban visszatér az első szál soron következő végrehajtandó műveletéhez. Ez a CPU-tervezési technika más néven „átlapolt / összefésült” vagy „finomszemcsés” temporális többszálú működésként is ismert; a processzort pedig nevezik még többkontextusú processzornak is. A modern szuperskalár architektúrák szimultán többszálas végrehajtásával ellentétben ez a technika általában nem engedi meg egy ciklus alatt több utasítás végrehajtását.

A preemptív többfeladatos működéshez hasonlóan, a barrel processzorban minden végrehajtási szálhoz saját külön programszámláló és hardver-regiszterek tartoznak, ezek alkotják a szál architekturális állapotát. A barrel processzor képes garantálni, hogy n ciklus alatt minden szál végrehajt egy utasítást, nem úgy, mint a preemptív többfeladatos működés esetében, ahol a szálak jellemzően több száz vagy több ezer ciklust átfogó időben futnak és ezalatt a többi szál várakozik, hogy sorra kerüljön.

Az egyfeladatos processzorkialakításokból a C-slowing nevű technikával lehetséges az annak megfelelő barrel processzor-kialakítás automatikus generálása. Egy ilyen módon előállított n-utas barrel processzor úgy működik, mint az eredeti egyfeladatos processzor n különálló többfeladatos másolata, amelyek mind az eredeti sebesség 1/n-ed részéhez közeli sebességen futnak.

Történet szerkesztés

A barrel processzor legkorábbi példáinak egyike a CDC 6000 sorozat szuperszámítógépeinek be-/kimeneti feldolgozórendszere volt. Ez egyetlen kiépített processzorhardver segítségével 10 külön virtuális processzor működését valósította meg, a fent említett módon: a valódi processzor minden egyes órajelütem alatt a soron következő virtuális processzor egy utasítását hajtja végre (vagy az utasítás egy részét, mivel néhány utasítás végrehajtása több órajelciklust igényel), míg a végrehajtás a 10-ik órajelütem után visszatér az első processzorhoz. Ezek a virtuális processzorok a CDC 6000-esben a periferiális processzor nevet kapták, feladatuk után.[1]

Barrel processzor technikával nagyméretű központi processzorokat is készítettek. A Tera MTA (1988) központi egysége egy ilyen nagyméretű barrel processzor kialakítás, magonként 128 végrehajtási szállal.[2][3] Az MTA architektúra fejlesztését a rákövetkező termékekben is folytatták, ilyen például a 2012-ben bemutatott YarcData uRiKA platform, amit adatbányászati alkalmazások futtatására használnak.[4]

A barrel processzorok a hardverköltségek csökkentésére is alkalmasak. A Xerox Alto (1973) mikrokódját egy barrel processzor futtatja, amely két CPU-t, egy videocsatolót, Ethernet vezérlőket, egy lemezvezérlő egységet, és más bemeneti/kimeneti egységeket szolgál ki, ugyanazzal a mikrogéppel és regiszterkészlettel.[5] (Az Alto központi egysége bitszelet-technikával készült, 74181 MSI integrált áramkörökkel épült fel[6]).

A barrel processzorok beágyazott rendszerekben is megtalálhatóak, ahol különösen hasznosak determinisztikus valós idejű szál-sebességük miatt. Erre egy példa az XMOS XCore XS1 (2007), amelyben egy négyfokozatú barrel processzor működik, magonként nyolc szállal. Az XS1 Ethernet, USB, audio és egyéb vezérlőeszközökben található, és olyan alkalmazásokban, ahol a bemeneti/kimeneti teljesítmény kritikus. A barrel processzorokat használják még olyan speciális eszközökben is, mint például a nyolcszálas Ubicom IP3023 hálózati bemeneti/kimeneti processzor (2004).

Előnyei az egyszálas processzorokkal szemben szerkesztés

Az egyfeladatos processzor sok időt tölt tétlenül, semmilyen hasznos tevékenységet nem végezve, mikor gyorsítótár-tévesztés vagy futószalag-leállás (elakadás) lép fel. A barrel processzorok használatának előnyei az egyfeladatos processzorokkal szemben a következők:

  • Képes hasznos munkát végezni az alatt is, mikor egy vagy több szál leállt és várakozik.
  • Egy n-utas barrel processzor tervezése n-fokozatú utasítás-futószalagokkal sokkal egyszerűbb, mint egy egyfeladatos processzor tervezése, mert a barrel processzornál soha nem jelentkezik futószalag-leállás (elakadás) és nincs szüksége előrecsatoló áramkörökre.
  • A valós idejű alkalmazásokban a barrel processzor képes garantálni egy „valós idejű” szál végrehajtásának pontos időzítését, függetlenül attól, hogy mi történik más szálakon, még akkor is, ha egy másik szál valamilyen ok miatt lefagy (pl. végtelen ciklusba kerül), vagy futását folyamatosan megszakítások akasztják meg.

Hátrányai az egyszálas processzorokkal szemben szerkesztés

A barrel processzoroknak van néhány hátrányuk is.

  • Minden szál állapotát a lapkán kell nyilvántartani, jellemzően regiszterekben, ezzel elkerülve a költséges csipen kívüli kontextusváltásokat. Így sokkal több regisztert kell kialakítani, mint a tipikus processzorokban.
  • Vagy az összes szálnak megosztva kell használnia a ugyanazt a gyorsítótárat, ami lelassítja rendszer összteljesítményét, vagy minden végrehajtási szálon kell lennie egy gyorsítótár-egységnek, ami viszont jelentősen megnövelheti a tranzisztorszámot, ezáltal az ilyen CPU gyártási költségeit. (A szigorú valós idejű beágyazott rendszerekben, amelyekben gyakran találhatók barrel processzorok, a memóriahozzáférési költségeket jellemzően a gyorsítótár viselkedésének legrosszabb esetét feltételezve kalkulálják, így ez csak egy jelentéktelen kérdés. Emellett néhány barrel processzor, mint például az XMOS XS1, nem is használ gyorsítótárat.)

Jegyzetek szerkesztés

  1. CDC Cyber 170 Computer Systems; Models 720, 730, 750, and 760; Model 176 (Level B); CPU Instruction Set; PPU Instruction Set Archiválva 2016. március 3-i dátummal a Wayback Machine-ben -- Lásd a 2-44 lapot a forgó "tár" illusztrálására
  2. Archivált másolat. [2012. február 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. augusztus 11.)
  3. Archivált másolat. [2014. július 12-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. augusztus 19.)
  4. Archivált másolat. [2012. augusztus 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. augusztus 11.)
  5. PARC, Xerox: Alto Hardware Manual. BitSevers. (Hozzáférés: 2014. január 10.)
  6. a.: Before the PC, Before Apple, was the Xerox Alto (angol nyelven). CPU Shack, 2010. október 18. (Hozzáférés: 2014) „The Alto was powered by a custom16-bit bit-slice processor consisting of 4 TTL 74181 ALU’s ...”

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Barrel processor című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Források szerkesztés

További információk szerkesztés

Kapcsolódó szócikkek szerkesztés