Poweri arhitektuur

**Poweri arhitektuur** on termin, mis hõlmab selliste ettevõtete nagu IBM, Freescale, AMCC, Tundra ja P.A. Semi väljatöötatud ja toodetud sarnaseid RISC-käsustikke mikroprotsessoritele. Seda haldab power.org, kuhu kuulub üle 40 ettevõtte ja organisatsiooni.

Mõistet "Poweri arhitektuur" ei tohi segi ajada eri põlvkondade "POWER-arhitektuuridega", kus viimane tähistab tooteid, mis põhinevad POWER-i, PowerPC ja Celli arhitektuuridel. Poweri arhitektuur kirjeldab protsessori arhitektuuri, tarkvara, tööriistakette, kommuuni ja lõpp-kasutaja rakendusi ega ole konkreetseid tehnoloogiaid või tooteid kirjeldavad terminid.

## Mõisteid

**POWER-i**, **[[PowerPC]]** ja **Poweri arhitektuuri** mõisted võivad tekitada segadust. Siin on toodud väike mõistete loend koos iga mõiste lühikirjeldusega.

## Ajalugu

Poweri arhitektuur sai alguse 1980. aastate lõpul IBM-is, kui firma tahtis tippjõudlusega RISC-arhitektuuri oma keskastme tööjaamade ja serverite tarbeks. Tulemuseks oli POWER-arhitektuur. Selle esimest implementatsiooni kasutasid RS/6000 arvutid, mis tulid välja 1990. aastal. See oli 10-kiibiline RIOS-1 protsessor, mida hiljem kutsuti POWER1. RIOS-1-st arendati hiljem välja RISC Üksik Kiip (RSC) protsessor.

1992. aastal lõid Apple, IBM ja Motorola AIM alliansi, et arendada POWER protsessorist massturu versiooni. Selle tulemusena loodi PowerPC arhitektuur. See on modifitseeritud variant POWER arhitektuurist. Esimeseks PowerPC implementatsiooniks oli PowerPC 601, mis valmistati 1993. aastal. See oli suures osas loodud RSC-l ja leidis kiiresti tee Apple’i Power Mac arvutitesse ja IBM RS/6000 süsteemidesse.

IBM laiendas oma POWER arhitektuuri nende RS/6000 süsteemi jaoks, mille tulemuseks oli 8-kiibiline POWER2 protsessor 1993. aastal ja ühe kiibiline versioon nimega P2SC ehk POWER2 Superkiip (inglise *Super Chip*) 1996. aastal.

1990. aastate algul otsis IBM võimalust vahetada CISC-disainil põhinevad AS/400 miniarvutid RISC-arhitektuuri vastu. Uue arhitektuuri arenduse koodnimi oli Amazon. Insenerid, kes selle kallal töötasid, andsid arhitektuurile nimeks PowerPC-AS ('täiustatud seeria' või 'Amazono seeria'). PowerPC-AS sai RSC-l põhinevaks mitme protsessoriga serveri platvormiks. Arenduse jätkudes laiendas IBM-i uurimislabor RSC-d, et toetada 64-protsessori sidumist ja lisada AS/400-le spetsiifilisi omadusi. Selleks tulid juurde RS/6000 arendaja ning lisasid mõned POWER2 omadused. Kogu arendus lõppes sellega, et 1995. aastal tuldi välja 64-bitiste A10 ja A30 protsessoritega ning hiljem lisandus RS64 liin, mida kasutasid nii AS/400 kui RS/6000 süsteemid.

AIM Allians jätkas PowerPC arendamist 1997. aastani, tuues välja PowerPC protsessorite teise põlvkonna: PowerPC 602 TV-bokside ja mängukonsoolide tarbeks; PowerPC 603, mis oli suunatud kandearvutitele; PowerPC 604 lauaarvutite jaoks; ja PowerPC 620, mis kujutas endast 64-bitist tippklassi protsessorit serveritele. 602 ja 620 ei leidnud küll kunagi laialdast kasutust, kuid 603 ja 604 ning nende järeltulijad said omal alal väga populaarseiks. Motorola ja IBM tegid ka PowerPC "Book E" laienduse, mida kasutati sisseehitatud lahendustes: Motorola PowerQUICC protsessorites ja IBM-i PowerPC perekonnas.

AIM Alliansi viimane ponnistus oli kolmanda põlvkonna PowerPC 750 1997. aastal. Motorola ja IBM läksid pärast seda PowerPC arhitektuuri arendamisel eri teid. Nii arvuti kui ka sisseehitatud süsteemide turul leidsid "G3" protsessorid laialdast kasutust ja IBM jätkas järgmistel aastatel 750 perekonna arendust. Motorola seevastu valis sihtrühmaks sisseehitatud süsteemide turu, rõhudes PowerPC SoC disainile ja PowerPC 7400-le, mida nad kutsusid PowerPC neljandaks põlvkonnaks. See protsessor sisaldas Altiveci (SIMD üksus). PowerPC G4 tuli välja 1999. aastal ning seda kasutati lisaks Apple’i tööjaamadele ja sülearvutitele ka erinevates telekomi ettevõtetes.

1998. aastal tuli välja POWER3, mis ühendas PowerPC ja POWER2 arhitektuurid, kuid seda kasutati vaid IBM-i RS/6000 serverites.

2000. aastal nägi ilmavalgust PowerPC-AS viimane implementatsioon RS64-IV, mida kasutati AS/400 ja RS/6000, ümbernimetatuna vastavalt eServer iSeeria ja eServer pSeeria. IBM tootis ka Nintendo GameCube mängukonsoolides kasutatavat Gekko protsessorit. See põhines protsessoril PowerPC 750CXe. IBM-i toodetud eksperimentaalsest 64-bitisest PowerPC protsessorist Rivina sai esimene 1&nbsp;GHz piiri ületanud mikroprotsessor.

2001. aastal tutvustas IBM POWER4 ülesehitust, milles olid ühendatud PowerPC-AS- ja POWER3-arhitektuurid.

2002. aastal vajas Apple hädasti uut tippklassi PowerPC osa ja lasi IBM-l teha 64-bitise PowerPC 970. Apple kirjeldas seda kui viienda põlvkonna PowerPC-d nn "G5". PowerPC 970 baseerus POWER4-l. Sellelt puudusid mõned serveritele suunatud omadused kuid AltiVec üksus jäi alles. 970 ja selle eelkäijaid kasutasid Apple, IBM ja mõned tippklassi sisseehitatud rakendused.

2003. aastal ostis Tundra Motorolalt PowerPC 100 mikrokontrollerite perekonna. Samal ajal litsentsis Culturecom IBM-lt PowerPC tehnoloogia oma V-Dragon protsessori tarvis.

Motorola asutas 2004. aastal oma pooljuhtide osakonna asemele firma Freescale Semiconductor. Sel ajal tuli IBM välja POWER4 edasiarenguga POWER5. See tõstis PowerPC spetsifikatsiooni versioonini v.2.01 ja edasi 2005. aastal POWER5+ arhitektuuriga versioonini v.2.02. 
2004. aasta vältel litsentsis AMCC seoses PowerPC 400 perekonnaga IBM-lt intellektuaalse omandi ja töötajad. Motorola/Freescale nimetas oma PowerPC perekonnad ümber vastavalt: e200, e300, e500 ja e600 ning kuulutas välja tuleva 64-bitise e700. Samal aastal asutas IBM koos 15 ettevõttega organisatsiooni Power.org, mille eesmärgiks on arendada Poweri arhitektuuril põhinevaid tooteid.

2005. aastal kinnitati Celli protsessori spetsifikatsioon, mida olid IBM, Sony ja Toshiba neli aastat koos arendanud. Peamiselt kasutatakse seda Sony PlayStation 3-s. Cell protsessor kasutab üksikut 64-bitise Poweri arhitektuuri tuuma, millele on lisatud 8 iseseisvat SIMD tuuma, mida kutsutakse SPE-deks. IBM avaldas ka Xenoni protsessori, mis Microsofti Xbox 360 tarbeks loodud kolmetuumaline 64-bitine protsessor. Kuna Nintendol oli plaanis oma Wii mängukonsoolis kasutada 32-bitisel PowerPC arhitektuuril põhinevat Broadway protsessorit, oli IBM-l õnnestunud panna Poweri arhitektuuriga protsessorid kolme peamisse seitsmenda generatsiooni mängukonsooli.

P.A. Semi litsentsis IBM-lt Poweri arhitektuuri tehnoloogia oma PWRficienti protsessorite tarvis.

Freescale ühines Power.org-iga 2006. aastal ja IBM tegi PowerPC 405 spetsifikatsiooni uurimisrühmadele ja akadeemiale vabalt kättesaadavaks.

Power.org väljastas 2006. aasta septembris Power ISA versiooni 2.03. Kõik varasemad PowerPC spetsifikatsioonid jäävad 64-bitise Power ISA-ga ühilduvaks. Lisaks kõigele muule lisab see spetsifikatsiooni VMX, virtualisatsiooni ja vahelduva pikkusega kodeerimistehnoloogia (VLE).

2006. aasta neljandas kvartalis andis Power.org välja Poweri arhitektuuriplatvormi juhendi. See pani aluse Linuxi operatsioonisüsteemi jaoks loodud Poweri arhitektuuriga arvutite loomisele.

Aprillis 2007 avasid Freescale ja IPextreme litsentsimisprogrammi Freescale’i PowerPC e200 tuuma jaoks. Mais 2007 laskis IBM välja oma tippklassi mikroprotsessori POWER6, mis jooksis kiirustel kuni 5,0&nbsp;GHz ja oli seega eelmise põlvkonna POWER5 protsessorist kaks korda kiirem. POWER6 lisas POWER-sarja AltiVeci kümnendaritmeetikat toetava FPU. AMCC kuulutas samal ajal välja oma tippklassi sisseehitatud protsessori Titan, mis saavutas kiiruse kuni 2&nbsp;GHz, kulutades selleks väga vähe energiat. See kasutab Intrinsity välja töötatud innovaatilist loogikadisaini ning on saadaval alates 2008. aastast.

2007. aasta juunis said Power.org-i liikmed valmis Power ISA v.2.04 spetsifikatsiooni. Edasiminekud olid suunatud peamiselt serverirakendustesse ning virtualisatsiooni. 2007. aasta septembris näidati Poweri arhitektuuri arendajate konverentsil Power ISA v.2.05 ja ePAPR spetsifikatsioone. Samuti avaldati seal PowerPC 970MP-l
baseeruv Linuxi-põhine disain. Power ISA v.2.05 spetsifikatsioon avaldati 2007 aasta detsembris.

2008. aasta aprillis muutis IBM oma Poweri arhitektuuril põhineva riistvara, System p ja System i tootemarki. Neid hakati nüüd kutsuma Power Systemsiteks. Samal ajal muutsid nad tootemarki ka i5/OS operatsiooni süsteemil millest sai IBM i. 25. mail 2008 oli IBM esimene, kes purustas 1 Petaflopi barjääri oma Roadrunner superarvutiga. 2008. aasta juunis võttis see maailma kiireimate arvutite Top500 nimistus esikoha, tõugates sellega troonilt seda kohta alates 2004. aasta novembrist hoidnud BlueGene/L nime kandva superarvuti. 16. juunil 2008 avalikustas Freescale QorlQ perekonnad: P1, P2, P3, P4 ja P5. Need olid PowerQUICC edasiarendused milles sisaldus kaheksatuumaline P4080.

2008. aasta septembris anti roheline tuli POWER7-l põhineva superarvuti Blue Waters loomiseks. Selle maksumuseks määrati 208 miljonit dollarit ja see peaks sisaldama 200 000 protsessorit, pakkudes 2010–2011 aastal mitme petaflopilist võimsust. 2008. aasta detsembris saadi valmis ePAPR v.1.0 spetsifikatsiooniga sisseehitatud Poweri arhitektuuril põhinevate arvutite jaoks.

Power ISA v.2.06 spetsifikatsioon väljastati 2009. aasta veebruaris.

Alates 2009. aasta juulist võimaldab Mentor Graphics kasutada Freescale’i QorlQ ja PowerQUICC III platvormidel mobiilset operatsioonisüsteemi Android.

ISSCC 2010 konverentsil 2010. aasta veebruaris lansseeris IBM POWER/ protsessori ja avalikustas PowerPC A2 protsessori. Mõlemad on mitmetuumalised ja mitmelõimelised serveritele suunatud protsessorid, sisaldades igaüks enam kui miljard transistorit. Juunis kuulutas Freescale välja oma esimese 64-bitise tuuma e5500, mis on kasutusel QorlQ P5 perekonna protsessorites.

2008. aasta juuni seisuga on TOP500 nimekirjas maailmas kiiruselt kolmas ja kuues superarvuti ning 50 kiireimast superarvutist 22 kasutavad Poweri arhitektuuril põhinevaid IBM-i tehnoloogiaid. Esikümnesse kuulujatest 5 kasutab Poweri arhitektuuri protsessoreid arvutuselementidena ja üks kasutab neid kommunikatsiooniprotsessoritena.

## Kirjeldus
 
Käsustiku arhitektuur on jagatud mitmesse eri kategooriasse ja iga komponent on kirjeldatud kui osa kategooriast. Iga kategooria omakorda asetub konkreetsesse raamatusse. Protsessorid implementeerivad neid kategooriaid. Mingite kindlate kategooriate implementeerimiseks on vaja erinevaid protsessorite klasse. Näiteks serveriklassiga protsessorid kasutavad kategooriaid nagu "server", "baas", "ujukoma", "64-bitine" jne. Kõik protsessorid kasutavad kategooriat "baas".

Power on RISC laadi/talleta arhitektuur. Sel on mitu komplekti registreid:
* Kolmkümmend kaks 32-bitist või 64-bitist üldkasutatavat registrit (GPR-i) integraaloperatsioonideks.
* Kuuskümmend neli 128-bitist Vektor Skalaar registrit (VSR-i) vektor-operatsioonideks ja ujukomaoperatsioonideks.
** Kolmkümmend kaks 64-bitist ujukomaregistit (FPR-i) VSR-i osana ujukomaoperatsioonideks.
** Kolmkümmend kaks 128-bitist Vektor registrit (VR-i) VSR-i osana vektoroperatsioonideks.
* Kaheksa 4-bitist Tingimus registri välja (CR-i) võrdluseks ja voo kontrolliks.
* Spetsiaalsed registrid: Loendur-register (CTR), Viidaregister (LR), Ajabaas (TBU, TBL), Alternatiivne Ajabaas (ATBU, ATBL), Akumulaator (ACC), Olekuregistrid (XER, FPSCR, VSCR, SPEFSCR).

Üldiselt on käsud 32 biti pikkused, erandiks on vaid VLE (vahelduva pikkusega kodeering) alamkäsustik, mis võimaldab suuremat kooditihedust madalama astme sisseehitatud rakendustel. Enamus käske on kolmeste rühmadena, st nad sisaldavad kahte lähteoperaatorit ja ühte sihtkohta. Toetatud on üksik ja topelttäpsusega ujukoma-operatsioonid, kaasa arvatud FMA ja kümnend ujukoma käsud. Integraal ja ujukoma andmetele on ühes käsus kuni 16 elemendini olemas SIMD operatsioonide sätted.

Olemas on tugi nii Harvardi vahemälule, st poolitatud andmete ja käskude vahemälule, kui ka ühendatud vahemälude tugi. Mäluoperatsioonid on rangelt lae/talleta, kuid lubavad ka järjekorravälist täitmist. Toetatud on nii jämedaotsaline (big endian) kui peeneotsaline (little endian) adresseerimine koos eraldi kategooriatega mooditud ja lehekülje põhise otsalisuse jaoks. Toetatud on 32-bitine ja 64-bitine adresseerimine.

## Kasutusvaldkonnad
Mõned näited, kus Poweri arhitektuuri kasutatakse.

### Protsessorid
* MPC5000, PowerQUICC ja QorIQ Freescale’i protsessorid
* BlueGene/L ja BlueGene/P IBM-i superarvutite protsessorid
* Virtex FPGA-d Xilinx-lt
* V-Dragon CPU (Culturecom)
* SeaStar, SeaStar2 and SeaStar+ kommunikatsiooniprotsessorid Cray XT3, Cray XT4 ja Cray XT5 superarvutites

### Süsteemid
* IBM System i ja System p serverid ning BlueGene superarvutid
* PowerMac, iMac (enne Inteli protsessoreid), iBook]] and PowerBook (Apple)
* Bandai Pippin mängukonsool Bandailt (riistvara ja operatsioonisüsteemi töötas välja Apple)
* Pegasos/Open Desktop Workstation ja EFIKA PowerPC-l põhinevad arvutid Genesilt
* Sam440ep emaplaadid (ACube Systems)
* TiVo series 1 DVR
* Cell BE ja PowerPC baasil arvutid (Mercury Computer Systems)
* GameCube ja Wii mängukonsoolid (Nintendo)
* Xbox 360 (Microsoft)
* PlayStation 3 ja ZEGO (Sony)
* Cisco marsruuterid

### Operatsioonisüsteemid
* Linux
**Yellow Dog Linux Terra Softilt, mis on tehtud spetsiaalselt Poweri arhitektuuriga riistvarale
* NetBSD, OpenBSD, FreeBSD ja OpenDarwin
* Classic Mac OS ning Mac OS X (Apple Inc.)
* OS/2, AIX ja i5/OS (IBM)
* Solaris (Sun Microsystems, nüüd Oracle) ja OpenSolaris
* Windows NT (Microsoft)
* Plan 9 (Bell Labs)
* BeOS (Be Inc.)
* OS-9 (RadiSys)
* eCos avatud lähtekoodiga RTOS
* INTEGRITY (Green Hills Software)
* uC/OS-II (Micrium)
* VxWorks (Wind River Systems)
* QNX
* LynxOS (LynuxWorks)
* OSE (ENEA)
* MorphOS (MorphOS Team)
* AmigaOS 4 (Hyperion Entertainment)

## Viited


}}

## Välislingid
* Power.org
* IBM-i Poweri arhitektuur
* Freescale’i Poweri arhitektuur
* AMCC PowerPC lehekülg
* Mercury Cell BE lehekülg
* Tundra koduleht
* P.A. Semi koduleht
* Culturecom V-Dragoni lehekülg
* Genesi koduleht
* Linux/PPC koduleht