PowerPC
Power Architektúra |
---|
NXP (volt Freescale és Motorola) |
PowerPC e sorozat (2006) (
e200
• e300
• e500
• e600
• e5500
• e6500 )
|
IBM |
POWER ISA (1990)
• POWER sorozat (1990)
|
IBM-Nintendo együttműködés |
Egyéb |
Titan • PWRficient • Cell • Xenon • X704 |
Kapcsolódó hivatkozások |
OpenPOWER Alapítvány
• AIM alliance
• RISC
• Blue Gene
• Power.org
• PAPR
• PReP
• CHRP
• AltiVec
• tovább...
|
A PowerPC az Apple, az IBM és a Motorola összefogásából született RISC elvű processzor-architektúra. A PowerPC CPU az eredetileg tervezett AIM platform egyetlen, napjainkban is (2004. november) létező eleme.
Történet
[szerkesztés]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 megvalósítás, kellően nagy teljesítménnyel és többcsipes felépítéssel. Az IBM hamar rájött, hogy sürgősen szüksége lesz egy egycsipes 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á vált, hogy a PowerPC architektúra, illetve csip, hamarosan komoly piaci szerephez juthat.
Az IBM ekkor felkereste a Motorolát azzal a céllal, hogy működjenek együtt egy az IBM POWER architektúráján alapuló egycsipes 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 ehhez nem kellett újabb processzort kifejlesztenie.
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 az elterjedt és az Apple számítógépekben 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 egycsipes 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 egycsipes 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 csipet, 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]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áltozata létezik. Az eredeti POWER architektúrát a PowerPC az alábbiakban módosítja:[1]
- 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]Little-endian módban a valós címek három legalacsonyabb helyiértékű bitjén logikai kizáró-vagy (XOR) művelet történik 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]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álasztottak. Újraírták rendszerük legfontosabb részeit és csatoltak hozzá egy 680x0 emulátort, amely futtathatta az Classic Mac 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 MPC603 és a felső kategóriás MPC604 alkotta. Az MPC603 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 csipnek. Az Apple megpróbálkozott az MPC603 felhasználásával egy hordozható gép tervezésével, de nem járt sikerrel, mert a 8 KiB első szintű (L1) 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 az MPC603e chip oldotta meg, amely már 16 KiB 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 MPC620-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á hozzáadtak még egy vektoros egységet is (hasonlóan a Motorola 74xx AltiVec egységéhez).
Az RS64 processzorcsalád is a PowerPC architektúra egy változata, melyek 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 az MPC603-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 maga a chip végezhette.
PowerPC processzort használt az Apple, 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ártottak a Macintosh-hoz. Valamint Microsoft Xbox konzoljában is PowerPC csipet használt.
Általános célú PowerPC processzorok
[szerkesztés]- 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: az Exponential Technology BiCMOS technológiával gyártott, nagy teljesítményű 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 1 GHz
- 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]A beágyazott rendszerek tervezőinek nagy kedvence a 32 bites PowerPC. A nagy sorozatban előállított egységek költségeinek minimalizálása érdekében a CPU magot egy komplett rendszert tartalmazó csipbe 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 órajel-generá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 sín, 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]- 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]- 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
Jegyzetek
[szerkesztés]- ↑ Cserny 1995 231. o.
Források
[szerkesztés]- 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.). (angolul)
- 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.)
- ↑ Cserny 1995: Cserny László. 5. PowerPC processzorok, RISC processzorok, lektor: Szittya Ottó, 1. (magyar nyelven), Budapest: LSI Oktatóközpont, 231-318 / 404. o. (1995). ISBN 963-577-155-X
További információk
[szerkesztés]- A developer's guide to the PowerPC architecture – IBM Developerworks (angol nyelvű)