PowerPC

architektura mikroprocesorów typu RISC

PowerPCarchitektura mikroprocesorów typu RISC oraz nazwa handlowa mikroprocesorów zgodnych z tą architekturą.

Mikroprocesor PowerPC 604e firmy Motorola

Architektura mikroprocesora PowerPC została stworzona przez konsorcjum firm Apple-IBM-Motorola znane pod skrótem AIM. Z początku mikroprocesory tej architektury przeznaczone były na rynek komputerów osobistych, z czasem stały się często używanymi w zastosowaniach serwerowych, klastrowych oraz w systemach wbudowanych. Mikroprocesor stał się podstawą opublikowanych przez AIM specyfikacji platform referencyjnych PReP oraz CHRP. Popularność przyniósł mu wybór na CPU komputerów osobistych Macintosh produkowanych przez firmę Apple w latach 1994–2006.

Mikroprocesor stosowany jest także w komputerach Pegasos, AmigaOne (uprzednio w kartach procesorowych dla komputera Amiga), również w kilku projektach komputerów zgodnych Atari Falcon. Na bazie mikroprocesora PowerPC oraz jego sieciowej wersji PowerQUICC zaprojektowano niektóre serie urządzeń sieciowych firmy Cisco. Stosowany jest chętnie w systemach wbudowanych, gdzie używana jest specjalna, nieznacznie różniąca się od oryginalnej w zakresie specyfikacji mikroarchitektury, wersja mikroprocesora.

Historia

edytuj
 
Mikroprocesor PowerPC 601 firmy IBM

Historia PowerPC zaczęła się od prototypowego układu IBM 801, który implementował pomysły uważanego przez wielu za ojca mikroarchitektury RISCJohna Cocke’a. Pochodne układu IBM 801 stosowane były w systemach wbudowanych produkowanych przez IBM. Niewystarczająca wydajność mikroprocesorów wytwarzanych przez IBM skłoniła firmę do uruchomienia projektu budowy najszybszego procesora na rynku. W rezultacie prac otrzymano architekturę POWER wprowadzoną po raz pierwszy do użytku na początku lat 90. XX wieku w systemach RISC System/6000.

Oryginalny mikroprocesor POWER, jedna z pierwszych implementacji superskalarnego procesora RISC, był konstrukcją wieloukładową. Inżynierowie firmy IBM szybko doszli do wniosku, że warto skupić się na budowie jednostki jednoukładowej przy jednoczesnej rezygnacji z kilku nadmiarowych instrukcji procesora.

AIM Alliance

edytuj

Niedługo potem firma Apple została włączona do projektu rozwoju rodziny jednoukładowego mikroprocesora opartego na mikroarchitekturze POWER. Apple, jako jeden z największych klientów firmy Motorola zaprosił ją do wspólnych rozmów nad rozwojem mikroarchitektury POWER, co było podyktowane uprzednią, długą współpracą obydwu firm. Powstałe konsorcjum nazwano AIM od początkowych liter nazw Apple-IBM-Motorola.

W tym czasie Motorola posiadała własną architekturę RISC w postaci serii 88000, która jednak nie zdobyła uznania na rynku. Z drugiej strony mikroprocesory serii 88000 były już w produkcji; Data General(inne języki) dostarczał komputery z 88k a Apple posiadał prototypowe wersje maszyn pracujących na bazie tego mikroprocesora.

W rezultacie prac nad architekturą nowego procesora stworzono specyfikację PowerPC (Performance Computing), dzięki której:

  • IBM uzyskał wiarygodnego i doświadczonego producenta układów,
  • Apple zdobyło dla swoich komputerów jeden z najszybszych procesorów RISC na rynku i wsparcie marketingowe ze względu na światową znajomość marki IBM,
  • Motorola uzyskała nowoczesną architekturę procesora RISC i pomoc technologiczną ze strony IBM

Pierwsze urządzenia oparte na PowerPC zostały przyjęte przez rynek z entuzjazmem. Oprócz komputerów Apple Macintosh, zarówno Motorola, jak i IBM dostarczały systemy zbudowane na jego podstawie. Microsoft stworzył wersję Windows NT przeznaczoną dla architektury PowerPC, który był sprzedawany w zestawie z serwerami produkowanymi przez Motorolę, zaś Sun Microsystems wprowadził do sprzedaży przeznaczoną pod ten procesor wersję swojego sztandarowego systemu Solaris OS. IBM przeportował swój system AIX i planował wydać działającą na komputerach z zainstalowanym procesorem PowerPC wersję OS/2. W połowie lat 90. wyniki benchmarków odnoszących się do procesorów architektury PowerPC dawały lepsze rezultaty niż te przeprowadzane dla najszybszych procesorów architektury IA-32.

Zapotrzebowanie na mikroprocesory nowej architektury na maszynach desktopowych nigdy nie osiągnęło spodziewanego poziomu. Po krótkiej obecności na rynku zniknęły napisane pod PowerPC wersje systemów: Windows NT, Solaris OS, OS/2. Fakt ten był spowodowany brakiem dostępności aplikacji możliwych do uruchomienia przy użyciu nowej architektury procesora. Jedynie komputery Macintosh produkowane przez Apple pozostawały wierne mikroprocesorom PowerPC.

W 2004 roku Motorola zaprzestała produkcji układów mikroprocesorowych, przenosząc dział rozwoju i produkcji do wydzielonej spółki pod nazwą Freescale Semiconductor. W tym samym czasie IBM zaprzestał całkowicie produkcji komputerów osobistych (opartych na procesorach architektury IA-32) na rzecz chińskiego producenta Lenovo. IBM skupił się na przeprojektowaniu układu PowerPC zgodnie z oczekiwaniami producentów konsoli do gier, takich jak: Sony PlayStation 3, Nintendo Wii oraz Xbox 360 produkcji Microsoftu.

Na konferencji WWDC 6 czerwca 2005 roku Apple zapowiedziało, że w następnych wersjach komputerów Macintosh będą stosowane jedynie procesory marki Intel w architekturze IA-32. Przejście rozpoczęło się 12 stycznia roku 2006 wraz z ukazaniem się pierwszych iMaców i MacBooków Pro z procesorami Intel Core Duo, a zakończyło się wydaniem systemu 10.6 Snow Leopard w sierpniu 2009, który jako ostatni obsługuje programy dla procesorów PowerPC przy użyciu narzędzia Rosetta.

Charakterystyka

edytuj

PowerPC został zaprojektowany zgodnie z filozofią RISC. Mikroarchitektura procesora pozwoliła na zastosowanie superskalarności. Obecnie w użyciu znajdują się zarówno wersje 64-bitowe, jak i 32-bitowe procesora. W stosunku do architektury POWER w PowerPC wprowadzono:

  • Obsługa trybów Big Endian oraz Little Endian, które mogą być przełączane w trakcie pracy procesora. Obsługa ta została zarzucona w PowerPC G5,
  • Uzupełnienie operacji na danych zmiennoprzecinkowych podwójnej precyzji o operacje na danych zmiennoprzecinkowych pojedynczej precyzji,
  • Kompletna specyfikacja 64-bitowej architektury,
  • Usunięcie niektórych, rzadko używanych, instrukcji procesora POWER.

Big endian/Little endian

edytuj

Niektóre z układów PowerPC produkcji IBM przeznaczonych na rynek systemów wbudowanych posiadają bit kolejności bajtowej dla każdej obsługiwanej strony pamięci. Poniższy opis nie odnosi się do tych układów.

Większość z dostępnych układów PowerPC może przełączać tryb kolejności bajtów pamięci (ang. endianess) za pomocą bitu w rejestrze MSR. Osobny bit w tym rejestrze odpowiada za kolejność bajtów w przypadku pracy procesora w trybie nadzorcy. Procesor po inicjalizacji startuje w trybie big endian, a tablica stron pamięci dla TLB zawsze przechowuje dane w trybie big endian.

Systemy komputerowe firm Matrox oraz Mercury Computer Systems wykorzystują PowerPC działający w trybie little endian. Wynika to z faktu, że układ PowerPC pracuje w tych systemach jako koprocesor na szynie PCI i współdzieli dane z głównym procesorem zgodnym z mikroarchitekturą IA-32. Zarówno systemy Sun Solaris, jak i Windows NT w wersji dla układów PowerPC używały tego procesora w trybie little endian.

Rejestry wewnętrzne

edytuj

Poniższa tabela prezentuje rejestry jednostki stałopozycyjnej mikroprocesora PowerPC (wspólne dla wszystkich wersji)

Nazwa rejestru Opis rejestru Uwagi
r0 Rejestr ogólnego przeznaczenia Specjalny tryb użycia dla niektórych dyrektyw asemblera
r1 Rejestr ogólnego przeznaczenia. W niektórych ABI wykorzystywany jako wskaźnik stosu
r2-r31 Rejestry ogólnego przeznaczenia ABI definiuje sposób ich użycia
CR (Condition Register) Obsługa dyrektyw warunkowych Dostępny jako 8 niezależnych, 4-bitowych pól
CTR (CounTer Register) Licznik Używany w pętlach
LR (Link Register) Obsługa powrotu z procedury
XER (eXcEption Register) Wykrywanie sytuacji wyjątkowych związanych z operacjami algebraicznymi (przepełnienie, przeniesienie)
MSR (Machine State Register) Kontrola stanu mikroprocesora. Obsługa stanu translacji pamięci, przerwań itp. Dostępny z poziomu nadzorcy
SRR0-SRR1 (Save/Restore Register) Obsługa wyjątków Dostępny z poziomu nadzorcy
SPRG0-SPRG3 (Special Purpose ReGister) Przeznaczone do użycia przez system operacyjny Dostępny z poziomu nadzorcy
PVR (Processor Version Register) Udostępnia informację o wersji mikroprocesora Dostępny z poziomu nadzorcy
DAR (Data Address Register) Obsługa wyjątków Tylko dla wyjątków DSI (Data Store Interrupt) oraz ALI (Alignment Interrupt). Dostępny z poziomu nadzorcy
DSISR (Data Storage Interrupt Status Register) Obsługa wyjątków Tylko dla wyjątków DSI (Data Store Interrupt) oraz ALI (Alignment Interrupt). Dostępny z poziomu nadzorcy
TBR (Time Base Register) Licznik cykli procesora (zwiększający swoją zawartość) Dostępny z poziomu nadzorcy
DEC (Decrementer Register) Kontrolowany przez nadzorcę licznik cykli procesora (zmniejszający swoją zawartość) Wywołuje wyjątek DEC przy osiągnięciu wartości 0. Dostępny z poziomu nadzorcy.
IBAT0-IBAT3 (Instruction Block Address Translation) Obsługa translacji pamięci dla instrukcji Dostępny z poziomu nadzorcy
DBAT0-DBAT3 (Data Block Address Translation) Obsługa translacji pamięci dla danych Dostępny z poziomu nadzorcy

Licencjobiorcy

edytuj

Firmy, które produkowały lub wykorzystywały na licencji układy zgodne z architekturą PowerPC.

i inni.

Procesory ogólnego przeznaczenia

edytuj
  • PowerPC G1
  • PowerPC G2
  • x704 implementacja w technologii BiCMOS(inne języki) zaprojektowana przez Exponential Technologies
  • PowerPC G3
    • 740
    • 745
    • 750 (1997) 233 MHz oraz 266 MHz
    • 755
    • 750CX, 750CXe (2000) 366 MHz – 600 MHz
    • 750FX (2002) 600 MHz – 900 MHz
    • 750GX (2003) 733 MHz – 1,1 GHz
    • 750CL (2006) 400 MHz – 1 GHz, energooszczędna wersja 750GX, według plotek jest to procesor zastosowany w Wii
  • PowerPC G4
    • 7400/7410 (PowerPC G4) (1999) do 550 MHz, wyposażona w układ AltiVec, rozszerzenie typu SIMD oryginalnej specyfikacji PowerPC
    • 7450 rodzina procesorów z zegarem do 1,5 GHz i 256 KiB Cache L2 oraz z ulepszonym układem AltiVec (PowerPC G4)
    • 7447/7457 rodzina procesorów z zegarem do 1,8 GHz oraz 512 KiB Cache L2 (PowerPC G4)
    • 7448 rodzina procesorów produkowana w technologii 90nm z 1 MiB Cache L2 (PowerPC G4)
    • 8641S i 8641D jedno- i dwurdzeniowe procesory zbudowane na bazie jądra e600, użytego wcześniej w 7448.
  • PowerPC G5
     
    Płyta główna komputera AmigaOne X1000 z zainstalowanym procesorem PA Semi PA6T-1682M
    • 970 (2003) 64-bitowa implementacja oparta na mikroprocesorze IBM POWER4 rozszerzona o jednostkę VMX (kompatybilna z AltiVec jednostka wykonawcza typu SIMD) z 512 KiB Cache L2 z zegarami pracującymi z częstotliwościami 1,4 GHz, 1,6 GHz, 1,8 GHz, 1,9 GHz, 2,0 GHz, 2,1 GHz, 2,3 GHz, 2,5 GHz oraz 2,7 GHz wykonana w technologii 130 nm.
    • 970FX (2001) 512 KiB Cache L2, produkowany w technologii 90 nm.
    • 970GX (2003) 1 MiB Cache L2, nigdy nie wydany.
    • 970MP (2005) z zegarem 1,6–2,5 GHz z 1 MiB Cache L2, pierwszy dwurdzeniowy procesor PowerPC ogólnego przeznaczenia
  • Gekko 485 MHz (używany w Nintendo GameCube)
  • PA6T-1682M (PWRficient) dwurdzeniowa jednostka pracująca z zegarem 2 GHz

Nowa generacja procesorów PowerPC, o planowanej nazwie POWER6, jest projektowana do pracy z zegarami z zakresu 4–5 GHz oraz udostępni funkcjonalność Simultaneous MultiThreading.

Procesory dla systemów wbudowanych

edytuj
 
PowerPC IBM 970
  • RAD750: wersja do celów militarnych i misji kosmicznych, oparta na mikroprocesorze PowerPC 750 ze zwiększoną odpornością na promieniowanie elektromagnetyczne
  • MPC 860/8xx (PowerQUICC): kontrolery sieciowe i telekomunikacyjne
  • MPC 550/5xx (rdzeń 8xx): kontrolery przemysłowe
  • MPC 5200/5200B (rdzeń 603e): kontrolery przemysłowe
  • MPC 8260/82xx (PowerQUICC II) rdzeń 603, kontrolery sieciowe i telekomunikacyjne z wbudowaną w układ wysokowydajną, przełączaną szyną danych.
  • MPC 8560/85xx (PowerQUICC III) rdzeń procesora PowerPC Book E, kontrolery sieciowe i telekomunikacyjne z wbudowaną w układ wysokowydajną, przełączaną szyną danych.
  • PA6T-1682M (PWRficient): dwurdzeniowa jednostka pracująca z częstotliwością zegara 2 GHz (nigdy nie wprowadzona do sprzedaży)

Zobacz też

edytuj

Linki zewnętrzne

edytuj