PowerPC

A Wikipédiából, a szabad enciklopédiából

A PowerPC az Apple, az IBM és a Motorola összefogásából született RISC processzor architektúra. A PowerPC CPU az eredetileg tervezett AIM platform egyetlen ma is (2004. november) létező eleme.

Történet[szerkesztés | forrásszöveg szerkesztése]

A PowerPC története az IBM által kifejlesztett POWER architektúrával kezdődött, mely az 1990-ben bejelentett RS/6000 családdal debütált. A PowerPC ötletét korábbi RISC processzorok, például az IBM 801, és a MIPS architektúra inspirálta. Az eredeti POWER mikroprocesszor volt az egyik első szuperskalár RISC implementáció, kellően nagy teljesítménnyel és többchipes felépítéssel. Az IBM hamar rájött, hogy sürgősen szüksége lesz egy egychipes változatra is, amely képes lesz kiszolgálni a tervezett RS/6000 családot a belépő szintű munkaállomásoktól a legnagyobb vállalati kiszolgálókig. 1991-ben az is látható vált, hogy a PowerPC architektúra, illetve chip, hamarosan komoly piaci szerephez juthat.

Az IBM ekkor felkereste a Motorola-t azzal a céllal, hogy működjenek együtt egy, az IBM POWER architektúráján alapuló egychipes mikroprocesszor kifejlesztésén. Hamarosan az Apple is csatlakozott a csapathoz. A háromoldalú együttműködést később a résztvevők neveinek kezdőbetűjéből alkotott betűszóval AIM-nek keresztelték.

A Motorola számára a POWER architektúra megszerzése remek üzlet volt. Lehetővé tette, hogy egy kipróbált és nagy teljesítményű RISC processzort dobjon piacra kis anyagi befektetés árán. Az sem volt mellékes, hogy az új processzorral szorosabbra fűzhette kapcsolatait az Apple-lel, s elkerülhette, hogy az saját processzort fejlesszen ki.

Ekkorra a Motorola már rendelkezett egy saját RISC architektúrájú processzorral, az üzletileg nem túl sikeres 88000-essel. A 88000 rossz szereplésének okai közt első helyen állt a híres és az Apple Macintosh-ban is felhasznált 68000-essel való kompatibilitás hiánya. A sikertelenség ellenére a 88000-es processzor már gyártásban volt és az Apple pedig fel is használta. Számukra igen kedvező lett volna, ha az új egychipes processzor hardveresen jobban közelít a 88000-hez, mert így sokkal gyorsabban dobhatta volna piacra új termékeit.

A különféle követelmények eredőjeként megszületett a PowerPC (Performance Computing) specifikáció. Mindenki jól járt:

  • Az IBM szinte ingyen megkapta az egychipes CPU-t
  • Az Apple megkapta a piac legnagyobb teljesítményű RISC processzorát és komoly sajtóvisszhangot az IBM hírnevének köszönhetően
  • A Motorola megszerezte a legmodernebb RISC chipet, melyet potenciálisan eladhatott számos gyártónak, többek között az IBM-nek és az Apple-nek is

Tervezési alapelvek[szerkesztés | forrásszöveg szerkesztése]

A PowerPC alapvetően a RISC architektúrára épít oly módon, hogy megvalósítható legyen a szuperskalár felépítés. Mind 32, mind pedig 64 bites változat létezik. Az eredeti POWER architektúrát a PowerPC az alábbiakban módosítja:

  • Támogatja a big-endian és a little-endian bájtsorrendű üzemmódkat is; a PowerPC futásidőben képes e módok között átkapcsolni
  • Néhány lebegőpontos műveletet egyszeres és kétszeres pontosságú változatban is megvalósítottak
  • Az Apple kérésére néhány plusz lebegőpontos műveletet is beépítettek
  • Teljes 64 bites megvalósítás, mely lefelé kompatibilis a 32 bites változattal
  • Megszüntettek néhány egzotikusabb műveletet az eredeti POWER utasításkészletből, melyeket, ha szükséges, az operációs rendszer könnyen emulálhat

Little-endian és big-endian üzemmódok[szerkesztés | forrásszöveg szerkesztése]

Little-endian módban a valós címek három legalacsonyabb helyiértékű bitjén logikai kizáró-vagy (XOR) művelet végződik el egy, az operandus hosszától függő hárombites értékkel. Ez nem igazán a valódi little-endian működés és problémákat is okozhat a külső eszközökkel való kommunikációban.

Elméletben a processzor bájtsorrendje futásidőben úgy kapcsolható át, hogy egyszerre tudjon futtatni big-endian és little-endian programokat egyaránt. És valóban lehetséges alkalmazást futtatni az egyik módban, míg kivételkezelőket (exception handler), például operációs rendszert, a másikban. A gyakorlatban ez azonban problémás volna a perifériákkal való kommunikációban, mert azoknak meghatározott bájtsorrendjük van.

Ezen implementáció egyik érdekes jelensége, hogy egy program egy A címre eltárol egy 64 bites értéket az egyik fajta bájtsorrenddel, majd üzemmódot vált és az értéket ugyanarról az A címről visszaolvassa, a két érték megegyezik, holott a processzor most látszólag az ellenkező bájtsorrend-üzemmódban van.

Megvalósítás[szerkesztés | forrásszöveg szerkesztése]

A terv legelső megvalósulása az MPC601 volt, amely az 1992-ben kibocsátott POWER1 és PowerPC specifikációk kereszteződéséből jött létre. Az IBM számára ez azt jelentette, hogy felhasználhatta a már meglévő POWER1 platformhoz, de egy kis nehézséget is okozott a második generációs, immár "tiszta" PowerPC architektúrára való áttéréskor. Az Apple tovább dolgozott az MPC601-en alapuló új Macintosh fejlesztésén, amit 1994. március 14-én piacra is dobott Power Macintosh néven.

Az IBM ekkor már rendelkezett egy sor PowerPC-n alapuló asztali géppel, azonban nem volt a gépekhez megfelelő operációs rendszere. Ekkor úgy döntöttek, hogy a teljes OS/2 operációs rendszert portolják a PowerPC platformra. Az Apple-nek szintén szüksége volt egy PowerPC-n működő operációs rendszerre. Ők más utat választott. Újraírták rendszerük legfontosabb részeit és csatoltak hozzá egy 680x0 emulátort, amely futtathatta az OS többi részét és a 68K-ra írott alkalmazásokat. Az IBM-nek két évébe került az OS/2 portolása, s mire kész lett, már késő volt. Az IBM sosem dobott piacra PowerPC alapú asztali gépet. A Byte Magazin 1994. áprilisi száma nagy terjedelemben tárgyalta az IBM és az Apple PowerPC-n alapuló asztali gépeit.

A második generációt a már "tiszta", alsókategóriás 603 és a felsőkategóriás 604 alkotta. A 603 rendkívül alacsony árával és kis energiafogyasztásával tűnt ki. A Motorola azzal a határozott céllal tervezte ilyennek, hogy alapjául szolgáljon minden további PowerPC chipnek. Az Apple megpróbálkozott a 603 felhasználásával egy hordozható gép (laptop) tervezésével, de nem járt sikerrel, mert a 8 kilobájt elsőszintű gyorsítótár (L1 cache) elégtelen volt. A 680x0 emulátor nem fért bele 8 kilobájtba, és ez drasztikusan lelassította a működést. A problémát a 603e chip oldotta meg, amely már 16 kilobájt elsőszintű gyorsítótárral rendelkezett, ez már elegendő volt az emulátor hatékony működéséhez.

Az első 64 bites implementáció a nem túl sikeres 620-as volt. Sajnos nem jött időben és lassabb is volt a vártnál. Az IBM is inkább saját POWER3-as architektúráját használta RS/6000-es szervereiben, és 2002 végéig – a PowerPC 970 megjelenéséig – nem is dobott piacra alsókategóriás 64 bites szervert. A 970-es valójában a POWER4 processzor módosulata. Létrehozásához a POWER4 magot úgy alakították át, hogy visszafelé kompatibilis legyen a 32 bites PowerPC processzorokkal, továbbá hozáadtak még egy vektoregységet is (hasonlóan a Motorola 74xx AltiVec egységéhez).

Az RS64 processzorcsalád is a PowerPC architektúra egy módosulata. Változatai az RS/6000 és az AS/400 szerverekben üzemelnek.

Számszerűen a legtöbb PowerPC chip gépkocsikban található. Erre a szerepre a Motorola a 603-as modell több változatát is megalkotta. Többek között olyan hardvermódosításokat is végrehajtott, melyek eredményeképpen az I/O-t is az maga a chip végzhette.

PowerPC processzort használ az Apple Macintosh, az IBM RS/6000, a Pegasos, az Amiga gyorsítókártyák, a Nintendo GameCube, a Nintendo Wii, a Nintendo Wii U és sok egyéb beágyazott rendszer, például a TiVo. A Sonnet Technologies és a Daystar PowerPC alapú bővítéseket gyártanak a Macintosh-hoz. Valamint Microsoft újgenerációs Xbox konzoljában is PowerPC chipet használ.

Általános célú PowerPC processzorok[szerkesztés | forrásszöveg szerkesztése]

  • 601: az MPC601 50 és 66 MHz órajellel
  • 602: fogyasztási cikkekhez (multiplexelt adat/cím busszal)
  • 603: kéziszámítógépekhez
  • 603e
  • 604
  • 604e
  • 620: az első 64 bites implementáció
  • x704 BiCOMOS: az Exponential Technologies PowerPC implementációja
  • 750: (PowerPC G3) (1997) 233 MHz és 266 MHz órajellel, 740, 745, 755
  • 7400: (PowerPC G4) (1999) 350 MHz órajellel
  • 7410: AltiVec kiegészítéssel
  • 750FX: az IBM 2001-ben jelentette be, órajele 1GHz
  • 7450 mikroarchitektúra-család
  • 970: (PowerPC G5) (2003) a POWER4-ből átalakított 64 bites implementáció, órajele 1,4 GHz, 1,6 GHz, 1,8 GHz, 2,0 GHz és 2,5 GHz
  • Gekko 485 MHz: a Nintendo gameCube processzora
  • POWER4+: az IBM Regatta sorozatú szervereinek (RS/6000 és pSeries) processzora, órajele 1–1,9 GHz
  • POWER5: az IBM i5 és a p5 szervercsaládjainak processzora
  • POWER6: kétmagos processzor, órajele 3,5 GHz, 4,2 GHz, 4,7 GHz, megjelenés: 2006 február
  • POWER6+: órajel 5 GHz, megjelenés: 2008 október
  • POWER7: 2–6–8 mag processzoronként és maximum 2 processzor modulonként, órajel 3–4,14 GHz megjelenés: 2010 február 8

Beágyazott PowerPC mikrokontrollerek[szerkesztés | forrásszöveg szerkesztése]

A beágyazott rendszerek tervezőinek nagy kedvence a 32 bites PowerPC. A nagysorozatban előállított egységek költségeinek minimalizálása érdekében a CPU magot egy komplett rendszert tartalmazó chipbe integrálták (system-on-chip, SOC), mely a magon kívül tartalmazta a gyorsítótárat (cache), a processzor saját adatterületét, az órajelgenerátort, időzítőket, memóriát (SDRAM), perifériákat (hálózat, soros I/O) és buszvezérlőket (PCI, PCI-X, ROM/Flash busz, I2C). Új fejlemény a BookE PowerPC specifikáció, melyet az IBM és a Motorola is elfogadott és amely néhány beágyazott kiegészítéssel bővíti a PowerPC programozási modellt.

IBM[szerkesztés | forrásszöveg szerkesztése]

  • 401
  • 403: a legfejlettebb változata, a 403GCX, MMU-val bővített
  • 405: MMU-val, ethernet-tel, soros vezérlővel, PCI vezérlővel, SRAM- és SDRAM-kezeléssel bővített változat
  • NPe405: több hálózati eszközt kezelni képes változat
  • 440GP: (BookE) MMU-val, több ethernet-tel, soros vezérlővel, PCI-X vezérlővel, SRAM- és SDRAM-kezeléssel bővített változat
  • 440GX: nagyobb SRAM/L2 gyorsítótár

Motorola[szerkesztés | forrásszöveg szerkesztése]

  • MPC 860/8xx (PowerQUICC): hálózati és telekommunikációs vezérlővel bővített változat
  • MPC 550/5xx család: (8xx mag) járművekbe és ipari területekre kifejlesztett változat
  • MPC 8260/82xx (PowerQUICC II) 603-as mag, hálózati és telekommunikációs vezérlővel és nagy teljesítményű kapcsolt busszal ellátott változat
  • MPC 8560/85xx (PowerQUICC III) BookE mag, hálózati és telekommunikációs vezérlővel és a 82xx változaténál is nagyobb teljesítményű kapcsolt busszal ellátott változat

Források angol nyelven[szerkesztés | forrásszöveg szerkesztése]

  • May, Cathy (editor) et.al. (1994). The PowerPC Architecture: A Specification for A New Family of RISC Processors. Morgan Kaufmann Publishers. ISBN 1-55860-316-6 (2nd ed.).
  • Hoxey, Steve (editor) et.al. The PowerPC Compiler Writer's Guide. Warthman Associates. ISBN 0-9649654-0-2.
  • Motorola. Programming Environments Manual for 32-bit Implementations of the PowerPC Architecture. P/N MPCFPE32B/AD .
  • IBM (2000). Book E: Enhanced PowerPC™ Architecture (3rd ed.)

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]