Főmenü megnyitása

A POWER1 egy többcsipes CPU típus, amelyet az IBM fejlesztett ki és gyártott az 1990-es években. A POWER1 processzorok az IBM POWER utasításkészlet-architektúráját (ISA) implementálják. A processzortípus eredetileg a „RISC System/6000 CPU” megnevezést kapta, amit rövidítve „RS/6000 CPU” alakban is használtak, egészen addig, amíg a rákövetkező modellek elnevezése miatt az eredeti nevét is meg kellett változtatni, olyanra, ami illeszkedik az akkorra már kialakult POWERn alakú elnevezési sémába, tehát így kapta ez a család visszamenőlegesen a POWER1 nevet.

TörténetSzerkesztés

A POWER1 1990-ben jelent meg, egy időben az IBM RS/6000 POWERserver szerverekkel és a POWERstation munkaállomásokkal, amelyekben már 20, 25 vagy 30 MHz órajelű POWER1 processzorok üzemeltek. A POWER1 két frissítést/javítást (upgrade) kapott, az elsőt 1991-ben, ekkor jelent meg a POWER1+ verzió, a másikat 1992-ben, a POWER1++ megjelenésével. A feljavított verziók az eredeti POWER1 processzorokénál magasabb órajelen működtek, amit a félvezetőgyártó folyamatok tökéletesítése tett lehetővé. A POWER1+ csak kicsivel nagyobb órajelen működött, mint az eredeti POWER1, tehát 25, 33 és 41 MHz-es frekvencián, míg a POWER1++ változatban a mikroarchitektúra elérte a legmagasabb órajelét, a 25, 33, 41,6, 45, 50 és 62,5 MHz-et. 1993 szeptemberében a POWER1-et és változatait felváltotta a POWER2 (másként „RIOS2”), a POWER1 mikroarchitektúra továbbfejlesztett változata.

A POWER1 közvetlen származéka volt a RISC Single Chip (RSC), egy csökkentett képességekkel rendelkező egycsipes, belépő-szintű RS/6000 rendszerek számára készített változat, valamint a RAD6000, az RSC egy sugárzás ellen védett változata, amelyet a világűrben való használatra terveztek. A POWER1 közvetett leszármazottja a PowerPC 601 processzortípus is, ami az RSC csökkentett képességű, fogyasztói alkalmazásra szánt változata.

A POWER1 azért is nevezetes, mert több területen is első helyet szerzett, mind az IBM-nél, mind a számítástechnika egészét tekintve is. Ez volt az IBM első, felsőkategóriás termékekbe szánt RISC processzora (a ROMP processzort üzleti kudarcnak tekintették és nem alkalmazták a csúcskategóriás munkaállomásokban), ez volt az első processzor, amelyben az új POWER utasításkészlet-architektúrát megvalósították, és egyébként ez volt az IBM első sikeres RISC processzora, bár ez a tény csak később vált nyilvánvalóvá. Ami a számítástechnikát illeti, a POWER1 arról vált ismertté, hogy ez volt az első CPU, amelyben bizonyos mértékig megvalósították a regiszter-átnevezés (register renaming) és a soron kívüli végrehajtás (out-of-order execution) egy formáját, amely technikák megnövelik a szuperskalár processzorok teljesítményét, de eddig kizárólag a nagyszámítógépes architektúrák számára voltak fenntartva (csak azokban alkalmazták ezeket).

A POWER1 volt az őse több igen sikeres processzorcsaládnak, mint például a POWER, PowerPC és Power architektúrájú processzorok, amelyek különböző megvalósítások százaiban jelentek meg.

A nyílt forrású GCC compiler fordítóprogramban a 4.5-ös kiadástól kezdve megszüntették a POWER1 (RIOS) és POWER2 (RIOS2) támogatást.[1]

MikroarchitektúraSzerkesztés

A POWER1 egy 32 bites kétutas szuperskalár CPU. Három fő végrehajtó egységet tartalmaz, egy fixpontos egységet (fixed-point unit, FXU) – más néven egészértékű számítóegység, IU –, egy elágazás-előrejelző egységet (branch predictor unit, BPU) és egy lebegőpontos egységet (FPU). Bár a POWER1 egy 32 bites CPU, 32 bites fizikai címekkel, a benne használt virtuális cím 52 bit hosszú. A nagyobb virtuális címtér kialakítása javította az alkalmazások teljesítményét, lehetővé téve az alkalmazásoknak a 4 GiB-os címterjedelem kihasználását.

A POWER1 big-endian bájtsorrendű CPU, benne Harvard-stílusú hierarchikus CPU-gyorsítótárakat alkalmaznak, külön utasítás- és adat-gyorsítótárakkal. Az utasítás-gyorsítótár, amelyre az IBM irodalomban „I-cache”-ként hivatkoznak, 8 KiB méretű és kétutas csoport-asszociatív elrendezésű, 64 bájtos sorhosszal. Az I-cache az ICU csipen található (instruction-cache unit, egy a fenti három egységgel és a belső sínnel kapcsolatban álló egység, amely az utasítások dekódolásában és szétosztásában működik közre) Az adat-gyorsítótár – IBM-terminológiával „D-cache” – mérete 32 KiB a RIOS.9 konfigurációkban és 64 KiB a RIOS-1 konfigurációkban. A D-cache négyutas csoport-asszociatív tároló, sorhossza 128 bájt. A D-cache a visszaírásos módszert (store-back scheme) alkalmazza, amelyben a (store utasításokkal) kiírt adat a gyorsítótárba kerül a memória helyett, a memóriába való írások számának csökkentése céljából. A store-back módszer arra is használatos, hogy megakadályozza a CPU-t a memória hozzáférések kisajátításában.

Bár a POWER1 egy felső kategóriás kialakítás, mégsem képes a többprocesszoros működésre (multiprocessing), ebből kifolyólag hátrányos helyzetű volt, mivel a teljesítménye fokozásának egyetlen módja az órajel növelése maradt, ami viszont egy ilyen nagyméretű, többcsipes kialakításban igen nehézkes és bonyolult. Az IBM a klaszterezést alkalmazta a POWER1 rendszerek hátrányainak kiküszöbölésére, amellyel olyan hatékony működést értek el, mintha azok multiprocesszoros rendszerek lennének, ezt a koncepciót az SP1 szuperszámítógépek népszerűsége is bizonyítja, amelyek szintén POWER1 processzorokkal épültek fel. A POWER1 szolgált alapul a POWER2 és P2SC mikroprocesszorok kialakításához, és a multiprocesszálási lehetőséget a tervezők az eljövendő POWER processzorgenerációkra hagyták. A multiprocesszálás, többprocesszoros működés csak az 1998-ban kibocsátott POWER3 típusban jelent meg.

Felépítés, szerkezetSzerkesztés

 
8 csipes RIOS.9 POWER CPU-kártya egy belépő szintű asztali RS/6000 32H munkaállomásból
 
A RIOS-1 processzor csipjeinek vázlata. Minden nyíl egy 32 bites buszt jelöl
 
A RIOS.9 processzor csipjeinek vázlata. Minden nyíl egy 32 bites buszt jelöl

A POWER1 egy többcsipes CPU, amelynek egységeit különálló csipekkel valósították meg és ezeket sínek (buszok) kapcsolják össze. A POWER1 processzor a következő egységekből áll: utasítás-gyorsítótár (instruction-cache unit, ICU), egy fixpontos számítási egység (fixed-point unit, FXU) – az ALU szerepében –, egy lebegőpontos egység (floating point unit, FPU), több adat-gyorsítótár egység (data-cache units DCU), egy tárvezérlő egység (storage-control unit, SCU) és egy ki- és bemeneti (I/O) egység. A moduláris kialakításnak köszönhetően az IBM rögtön két processzor-konfigurációt készített, csupán a DCU egységek számát változtatva; ezek a RIOS-1 és a RIOS.9 változatok. A RIOS-1 konfigurációban négy DCU található, ez a teljes kiépítésű egység, órajele 40 MHz, míg a RIOS.9 CPU csak két DCU-t tartalmaz és az órajele alacsonyabb.

A csipeket az ún. „CPU-síkra” szerelték (CPU planar), ami nem más, mint egy többrétegű, furatfémezett nyomtatott áramköri panel. A csipek nagy száma és az azokat összekötő széles sínek miatt a NYÁK vezetékezése nyolc rétegű, amelyekből négyen a tápfeszültség és a földvezetékek, másik négyen pedig a jeleket továbbító vezetékek futnak. A panel mindkét oldalára két jeltovábbító sík került, a tápfeszültség és föld rétegei középen vannak.

A POWER1-et alkotó csipek 1,0 µm-es CMOS technológiával készültek, három kapcsolódási réteggel. A csipek CPGA (ceramic pin grid array) tokozásba kerültek, mindegyik 300 kivezetéssel rendelkezik, legnagyobb hőtermelésük 4 W (egyenként). Az egyes csipek átlagosan 800 000 tranzisztort tartalmaznak.[2] A POWER1 felépítésben a RIOS-1 konfiguráció esetén a tranzisztorok száma összesen 6,9 millió, amelyből a logika 2,04 milliót, a tárolás pedig 4,86 milliót foglal el. Az teljes összeadott lapkafelület 1284 mm². A kivezetések száma összesen 1464.

A csipekSzerkesztés

Utasítás-gyorsítótár (ICU)Szerkesztés

Az ICU tartalmazza az utasítás-gyorsítótárat, amire „I-cache” néven hivatkoznak az angol instruction cache szavakból, és az elágazás-feldolgozó egységet (branch processing unit, BPU). A BPU tartalmazza a programszámlálót, az elágazáskód-regisztert és a ciklusregisztert (loop register), ami egy ciklusszámláló. Az ICU 0,75 millió tranzisztort tartalmaz, ebből 0,2 milliót használ a logika, 0,55 milliót a SRAM. Az ICU lapka felülete kb. 160 mm² (12.7 × 12.7 mm).

A BPU osztja szét az utasításokat a fixpontos és lebegőpontos egységek felé, miközben ezzel egyidőben programvezérlési utasításokat dolgoz fel: egyszerre legfeljebb négy szimultán utasítást kezelhet, sorrenden kívül (out of order). A spekulatív elágazásokat is támogatja, erre egy előrejelző bitet használ az elágazási utasításokban, amelyben az elvetett eredményt tárolja, ha az elágazás nem következik be. Az alternatív utasítást puffereli és elveti, ha az elágazás bekövetkezik. Ebből kifolyólag a szubrutinhívásokat és a megszakításokat úgy képes kezelni, hogy nincsenek az elágazások kezeléséből adódó késedelmek.

A feltételregiszter nyolc csoportra (mezőre) van osztva, az első két csoport a fixpontos és a lebegőpontos utasítások számára van fenntartva, a hetedik csoportot később a vektoros utasítások, a fennmaradó mezőket egyéb utasítások használják. A ciklusregisztert a „csökkentés és ugrás nullánál” típusú ciklusokban használják, ekkor az ugrások elágazásbüntetés nélkül történhetnek meg. Ez hasonlít néhány DSP-ben, pl. a TMS320C30-ban alkalmazott megoldáshoz.

Fixpontos egység (FXU)Szerkesztés

Az FXU végzi az összes fixpontos művelet dekódolását és végrehajtását, valamint ez hajtja végre a lebegőpontos betöltő és tárolóutasításokat (load és store) is. Ebben az egységben található a fixpontos regiszterfájl, emellett egy aritmetikai-logikai egység (ALU) az általános utasításokhoz és egy dedikált fixpontos szorzó-osztó egység. Tartalmaz még utasításpuffereket, amelyek fogadják az ICU-tól érkező fixpontos és lebegőpontos utasításokat és a lebegőpontos utasításokat az FPU-hoz továbbítják, emellett egy 128 bejegyzéses kétutas asszociatív D-TLB-t (translation lookaside buffer) a címfordításhoz. Az FXU körülbelül 0,5 millió tranzisztorból áll, ebből 0,25 a logika és 0,25 a tárolás céljaira szolgál, közelítőleg 160 mm² lapkafelületen.

Lebegőpontos egység (FPU)Szerkesztés

A POWER1 lebegőpontos egysége hajtja végre az ICU által kibocsátott lebegőpontos utasításokat. Az FPU egy futószalagos, egyszeres pontosságú (32 bites) és kétszeres pontosságú (duplapontos, 64 bites) adattípusokon operáló utasításokat tud végrehajtani. Képes az összeolvasztott szorzás-összeadás műveletre is (multiply–accumulate vagy multiply-add), amely nagyban hozzájárult a POWER1 magas lebegőpontos teljesítményéhez. A legtöbb processzorban egy szorzás és egy összeadás, amelyek a lebegőpontos kódban igen gyakori műveletek a tudományos vagy mérnöki számítások során, nem végezhető el egyetlen órajelciklus alatt, mint a POWER1 processzorban. Az egy utasításba összevont szorzás-összeadás művelet azt is jelenti, hogy kerekítés csak egyszer történik a művelet során, ami növeli a számítások pontosságát.

A lebegőpontos regiszterfájl szintén az FPU csipben található. Ez 32 db. 64 bites lebegőpontos regisztert, hat átnevezőregisztert és további két, az osztó utasítások által használt regisztert tartalmaz.

Adat-gyorsítótár (DCU)Szerkesztés

A POWER1 processzornak egy 64 KiB-os adat-gyorsítótára van, amelyet négy egyforma, egyenként 16 KiB kapacitású adat-gyorsítótár egységgel (DCU) alakítottak ki. A gyorsítótár és a DCU-t a többi csiphez kapcsoló sínek ECC-vel védettek (ECC: error-correcting code, hibajavító kód). A DCU-k szolgálnak interfészként a memória felé. Két DCU használata mellett (mint a RIOS.9 konfigurációban) a memóriasín 64 bit széles, négy DCU használatával (RIOS-1 konfiguráció) a memóriasín 128 bit széles. A DCU-k memóriainterfész részének három fő jellemzője van, amely növeli a memória megbízhatóságát és rendelkezésre állását: a memory scrubbing (kb. memóriasikálás,[3] memóriakefélés; a bithibák felismerését és javítását célzó módszer) a hibajavító kód (ECC) és a bit steering (kb. bitkormányzás, a dinamikus memóriahibák jelentkezését detektáló módszer).

Minden egyes DCU körülbelül 1,125 millió tranzisztort tartalmaz, amelyből 0,175 milliót használ a logika és 0,95 milliót az SRAM, közel 130 mm²-es (11.3 × 11.3 mm) lapkafelületen.

Tárvezérlő egység (SCU)Szerkesztés

A POWER1-es processzort az SCU csip vezérli. Minden kommunikációt az ICU, FXU és DCU csipek, valamint a memória és I/O eszközök között az SCU bírál el. Habár a memóriasikáláshoz szükséges eszközöket a DCU-k biztosítja, az SCU vezérli magát a folyamatot.

Az SCU kb. 0,23 millió tranzisztort tartalmaz, ez mind a logika céljaira szolgál; a lapka felülete kb. 130 mm².

Ki- és bemeneti egységSzerkesztés

A POWER1 ki- és bemeneti interfészeit az I/O egység tartalmazza, ez látja el az I/O feladatokat. Az egység tartalmaz egy I/O csatornavezérlőt (I/O channel controller, IOCC) és két soros csatlakozó adaptert (serial link adapter, SLA). Az IOCC valósítja meg Micro Channel interfészt és vezérli mind a ki- és bemeneti műveleteket, mind a DMA tranzakciókat a Micro Channel adapterek és a rendszermemória között. A két SLA külön-külön egy, az RS/6000-es rendszerek egymáshoz kapcsolását lehetővé tevő száloptikai összeköttetést valósít meg. Az optikai összeköttetés az első RS/6000-esek megjelenése idején még nem volt támogatott. A I/O egység megközelítőleg 0,5 millió tranzisztort tartalmaz, amelyből 0,3 milliót a logika, 0,2 milliót a memória használ, kb. 160 mm² méretű lapkán.

JegyzetekSzerkesztés

  1. http://gcc.gnu.org/gcc-4.5/changes.html
  2. Power Architecture editors: POWER to the people – A history of chipmaking at IBM (angol nyelven). IBM developerWorks, 2005. december 15. (Hozzáférés: 2013)
  3. Kis Balázs: A SZAK Kiadó szótára (magyar nyelven). SZAK Kiadó, 2011. (Hozzáférés: 2013)

FordításSzerkesztés

Ez a szócikk részben vagy egészben a POWER1 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.

ForrásokSzerkesztés

További információkSzerkesztés

  • Blaise Barney: IBM POWER Systems Overview (angol nyelven). Lawrence Livermore National Laboratory, 2011. augusztus 24. (Hozzáférés: 2013) – Az IBM POWER rendszerek áttekintése

Kapcsolódó szócikkekSzerkesztés