Barrel processzor
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
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.

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. 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.

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. (Az Alto központi egysége bitszelet-technikával készült, 74181 MSI integrált áramkörökkel épült fel).

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
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
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

Fordítás

Források

További információk 
Soft peripherals Az Ubicom IP3023 processzorának ismertetője, Embedded.com
An Evaluation of the Design of the Gamma 60 / A Gamma 60 kialakítás értékelése
Histoire et architecture du Gamma 60 (franciául és angolul)

Kapcsolódó szócikkek 
Szuperszálasság
Többfeladatosság
Szimultán többszálas végrehajtás (SMT)
HyperThreading
Heterogeneous Element Processor

Mikroprocesszorok
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. és a processzor minden órajelciklusban a következő szál soron következő utasítását kezdi el ( vagy folytatja ) , és a ó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égn-ed részéhez közeli sebességen futnak . Történet A barrel processzor legkorábbi példáinak egyike a CDCsorozat szuperszámítógépeinek be-/kimeneti feldolgozórendszere volt . Ez egyetlen kiépített processzorhardver segítségévelkü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 aik órajelütem után visszatér az első processzorhoz . Ezek a virtuális processzorok a CDCesben a periferiális processzor nevet kapták , feladatuk után . Barrel processzor technikával nagyméretű központi processzorokat is készítettek . A Tera MTAközponti egysége egy ilyen nagyméretű barrel processzor kialakítás , magonkéntvégrehajtási szállal . Az MTA architektúra fejlesztését a rákövetkező termékekben is folytatták , ilyen például aben bemutatott YarcData uRiKA platform , amit adatbányászati alkalmazások futtatására használnak . A barrel processzorok a hardverköltségek csökkentésére is alkalmasak . A Xerox Altomikrokó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 . ( Az Alto központi egysége bitszelet-technikával készült , MSI integrált áramkörökkel épült fel ) . 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 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 Előnyei az egyszálas processzorokkal szemben 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 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 Fordítás Források További információk Soft peripherals Az Ubicom IP3023 processzorának ismertetője , Embedded.com An Evaluation of the Design of the Gamma / A Gammakialakítás értékelése Histoire et architecture du Gamma( franciául és angolul ) Kapcsolódó szócikkek Szuperszálasság Többfeladatosság Szimultán többszálas végrehajtás ( SMT ) HyperThreading Heterogeneous Element Processor Mikroprocesszorok