User:Sagabona/PPCtest

A Wikipédiából, a szabad lexikonból.

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

Tartalomjegyzék

[szerkesztés] Történet

A PowerPC története a szintén 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, amely képes lesz kiszolgálni a tervezett RS/6000 családot a belépő színtű 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 nagyteljesí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 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.


However, the 88000 was already in production, and Apple (among others) already had machines running on it. If the new POWER single-chip solution could be made somewhat comparable at a hardware level with the 88000, that would allow both Apple and Motorola to bring machines to market much faster.

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 az IBM hírnevének köszönhetően komoly sajtóvisszhangot
  • 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

[szerkesztés] Tervezési alapelvek

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ábbiakkal módosítja:

  • Támogatja a Big-Endian és a Little-Endian üzemmódot 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

[szerkesztés] Little-Endian és Big-Endian üzemmódók

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ójában is lehetséges alkalmazást futtatni az egyik módban, míg kivételkezelőket (exception handler), pl. 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 cimre 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.

[szerkesztés] Megvalósítás

A terv legelső megvalósulása az MPC601 volt, amely az 1992-ben kibocsájtott 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álható volt 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 az a döntés született, hogy a teljes OS/2-t portolják a PowerPC platformra. Az Apple, akinek szintén szüksége volt egy PowerPC-n működő operációs rendszerre, 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 8K elsőszintű gyorsítótár (L1 cache) elégtelen volt. A 680x0 emulátor nem fért bele 8K-ba, ami drasztikusan lelassította a működést. A problémát a 603e chip oldotta meg, amely már 16K 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 a PowerPC architektúra egy módosulata. Változatai az RS/6000 és az AS/400 szterverekben ü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 egyetlen chip végzhette.

PowerPC processzorot használ az Apple Macintosh, az IBM RS/6000, a Pegasos, az Amiga gyorsítókártyák, a Nintendo GameCube és sok egyéb beágyazott rendszer, pl. a TiVo. A Sonnet Technologies és a Daystar PowerPC alapú bővítéseket gyártanak a Macintosh-hoz. Valamint a tervek szerint a Microsoft 2005/2006-ban esedékes újgenerációs Xbox konzoljában is PowerPC chipet fog használni.

[szerkesztés] Általános célú PowerPC processzorok

PowerPC processors bring the processor's local bus to the chip's surface, and connect to a bridge chip that translate this into other on-board device buses that attach to RAM, PCI, and other devices.

  • 601: MPC601 50 és 66 MHz
  • 602: consumer products (multiplexed data/address bus)
  • 603: notebooks
  • 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, 740, 745, 755
  • 7400 (PowerPC G4) (1999) 350 MHz
  • 7410: uses AltiVec, a SIMD extension of the original PPC specs
  • 750FX: announced by IBM in 2001 and available early 2002 at 1 GHz
  • 7450 mikroarchitektúra-család
  • 970 (PowerPC G5) (2003) 64-bit implementation derived from the IBM POWER4 enhanced with VMX (AltiVec compatible SIMD extensions), at speeds 1.4 GHz, 1.6 GHz, 1.8 GHz, 2.0 GHz and 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ád processzora

[szerkesztés] Beágyazott PowerPC mikrokontrollerek

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 (), 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.

[szerkesztés] IBM

  • 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

[szerkesztés] Motorola

  • 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 nagyteljesí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

[szerkesztés] References

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

[szerkesztés] Külső hivatkozások