Apollo PRISM

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

A PRISM – mint az angol Parallel Reduced Instruction Set Machine rövidítése – az Apollo Computer 1988-ban elkészült nagyteljesítményű processzora, amelyet a DN10000 sorozatú munkaállomásaikba építettek. A processzorok A88k néven is ismertek, emiatt gyakran összetévesztik a Motorola 88000 processzorokkal, amitől pedig gyökeresen különböznek. (Ennek a Motorola 88000 processzorok M88k rövidítése lehet az oka, és az, hogy az Apollo DN számítógépcsaládjának korábbi tagjai mind Motorola 68k típusú processzorokat tartalmaztak). A PRISM processzor egy rövid ideig megszerezte a leggyorsabb processzor címet, mivel a Cray-1 szuperszámítógépét megközelítő teljesítményt nyújtott egy egyszerű munkaállomásban. A Hewlett Packard 1989-ben felvásárolta az Apollo-t, és ezután meg is szüntette a PRISM fejlesztését, bár a PRISM-ben megvalósított ideák egy részét később felhasználták a HP saját HP-PA (RISC) és Itanium processzoraiban.

A PRISM a manapság VLIW néven ismert tervezési elven alapul, miközben a vele egykorú, újabb tervezésű processzorok többsége a „tiszta” RISC megközelítésen alapult. A korai RISC tervekben a központi processzort annyira leegyszerűsítették, amennyire csak lehetséges volt, abból a célból, hogy az értékes csipterület minél nagyobb részét a processzor regisztereinek kiépítésére fordíthassák és minél könnyebben lehessen utasítás-futószalagot hozzáadni a processzorokhoz.

A fordítóprogramok szerepe[szerkesztés | forrásszöveg szerkesztése]

A rendszerekben használt fordítóprogramoktól elvárták, hogy a fordítás folyamata során mind több időt fordítsanak a regiszterek hatékony használatára és az adott architektúrában optimális utasítássorozat előállítására. Amennyiben az utasítás-ütemezést a fordítóprogram végzi el, akkor egyszerűbb lehet a processzor utasítás-ütemező hardvere, mivel megkerülik az utasítás-ütemezés szuperskalár kialakításokban, pl. a DEC Alpha és hasonló processzorokban, jelentkező bonyolult feladatait, mint a kölcsönös függőségek feloldása az átmeneti értékekben, az utasítások kibocsátási sorrendjének megállapítása és azok továbbítása a különböző funkcionális egységekhez.

Bizonyos tekintetben a VLIW kialakítás elég rizikós, mivel az utasításkiválasztási folyamatot a hardverből a megelőző programfordítási fázisba teszi át. A VLIW típusú rendszerekben a fordítóprogram megviszgálja a kódot és kiválasztja a „biztonságos” utasításokat, ezután az utasításokat hosszabb utasításszavakba csomagolja. Például egy olyan két funkcionális egységgel bíró CPU esetén, mint a PRISM, a fordítóprogram biztonságosan végrehajtható utasítás-párokat keres és egyetlen nagyobb utasításszóba foglalja azokat. A CPU-n belül az utasítások újra szétválnak és a megfelelő végrehajtó egységekhez lesznek továbbítva.

Ez a rendszer minimalizálja a CPU-ban végrehajtandó döntéseket, mivel ezeket már a fordítóprogram előzetesen elvégzi, a CPU-ban található funkcionális egységek számának és logikai kapcsolatainak megfelelően. Ennek azonban hátrányai is vannak, mégpedig az, hogy ez a fajta programgenerálás a lefordított tárgykódot igen szorosan hozzáköti a processzor fizikai kialakításához; ha pl. egy újabb generációjú CPU-ban újabb funkcionális egységek jelennek meg vagy valamilyen egységből több kerül be, akkor a korábbi konfigurációhoz fordított programok az újabb kialakításon jó esetben is rossz hatásfokkal, rosszabb esetben pedig egyáltalán nem fognak futni, tehát az összes programot újra kell fordítani – hogy a fordítóprogram újrarendezhesse az utasításokat, mondjuk, négyesével, az előző kettes egységek helyett. Összehasonlításképpen, egy tradicionálisabb kialakítás, mint a PowerPC, drámai belső változásokon ment keresztül, mégis az első PowerPC-kre írt kód változtatás nélkül futtatható a későbbi vagy akár a legújabb változatokon is.

Az Apollo fordítóprogramjai voltak az első kereskedelmi fordítók, amelyek az adafolyam-analízist és az statikus egyszeri értékadás (static single assignment, SSA) technikáit alkalmazták, amivel jelentősen leegyszerűsíthetők egyes optimalizálási feladatok.

A felépítés jellemzői[szerkesztés | forrásszöveg szerkesztése]

A PRISM egy „tiszta” 32 bites kialakítás, 32 db. 32 bites egész (fixpontos) regisztert és szintén 32 db. 64 bites lebegőpontos regisztert tartalmaz. A lebegőpontos regiszterek 64 db. 32 bites regiszterként is elérhetők és használhatók. A PRISM képes egy egyedüli egész utasítás vagy egy egész és egy lebegőpontos utasítás egyidejű megkezdésére (párhuzamos végrehajtására) órajelciklusonként. A lebegőpontos utasítás lehet egy lebegőpontos művelet, vagy kombinált lebegőpontos összeadás és szorzás, egyetlen utasításban. A fordítóprogram megkísérli az utasításokat párokba vagy hármasokba szervezni, a funkcionális egységek maximális kihasználása érdekében, azonban ha nem talál biztonságos párt, akkor az utasítást egy egytagú egész- (integer) utasításba helyezi. A PRISM volt az egyik első olyan rendszer, amelyben egyetlen (öt operandusú) műveletben implementálták az szorzás és összeadás/kivonás/csonkolás műveletet (a szorzás-kivonás is szorzás-összeadás műveletnek tekinthető), emiatt gyakran hármas kibocsátású CPU-nak írják le.

A DN10000 munkaállomásba épített PRISM processzor fizikai megjelenése egy többcsipes processzorkártya.[1] A kártyára szerelt csipek gyártója a Bipolar Integrated Technology (BIT) volt, maguk a csipek ECL technológiájú integrált áramkörök, amelyek a BIT lebegőpontos vezérlőjét, a regisztertömböt, szorzót, ALU-t és az egyéb támogató áramköröket tartalmazták – a BIT az Apollo-n kívül hasonló csipeket szállított a Sun számára a SPARC processzorokhoz és a HP-nek is.[2]

A processzor órajele 18,18 MHz[3] volt, teljesítménye 15–34 MIPS/CPU volt,[4] avagy 36 megaflops,[5] mindez 1989-ben. A processzor külön 128 KiB utasítás- és 64 KiB adat-gyorsítótárat tartalmaz, processzoronként, rendszersíne 64 bites, sebessége 150 MiB/s. Osztott virtuális memóriát használ a többprocesszoros feldolgozásnál, a támogatott fő memória maximális mérete 128 MiB.[6]

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

Az első PRISM változat 1988-ban jelent meg, az egytől négy processzorig skálázható[3] Apollo DN10000 munkaállomásokban. A „DN” jelentése a névben „Domain Node”, Domain csomópont, mivel az Apollo gépek operációs rendszere a Unix-szerű Domain/OS volt. Megjegyzendő, hogy a PRISM egy többcsipes processzor, amely egy processzorkártyára van szerelve, nem pedig egyetlen mikroprocesszor; ez a kialakítás elég elterjedt volt a nagyteljesítményű CPU-k között ebben az időben.

DN10000-es típusú munkaállomásból kb. 1000 darabot adtak el összesen.

A PRISM II változat kétszeres órajelen futott, bár a megjelenése sokat késett, különböző (félvezető-)gyártási problémák miatt, és végül gyártását leállították a HP felvásárlás után. Ennek ellenére a PRISM tervezet számos jellemzőjét a HP felhasználta és alkalmazta a későbbi HP-PA architektúrában, míg a VLIW konceoció két legfőbb támogatója, az Intel és a HP, később együttműködött az Itanium proceszor kifejlesztésében.

Rövid élettartama alatt a PRISM volt a legyorsabb működésű processzortípus, konkurensei az 1980-as évek végén az első generációs RISC processzorok voltak. Ezekkel összehasonlítva látható, hogy a PRISM tulajdonképpen nem más, mint két CPU egyben, és emiatt a teljesítménye is körülbelül kétszerese volt az azonos órajelen működő korabeli RISC processzorokénak.

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

Habár az 1989-ben megjelent Intel i860 processzor is VLIW elvet alkalmazó processzor (mindkét processzornál inkább a LIWlong instruction word, hosszú utasításszó – lenne a helyesebb kifejezés, mivel az utasításaik nem nagyon hosszúak), teljesítményt kinyerni ebből a processzorból hírhedten nehéz feladat volt, és a gyakorlatban a PRISM jóval gyorsabbnak bizonyult.

Volt egy másik PRISM elnevezésű processzor is, a Digital Equipment Corporation által tervezett DEC PRISM RISC processzor, de ennek a fejlesztését 1987-ben beszüntették és nem került termelésbe.

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

  1. The CPU / in: The Series 10000 Personal Supercomputer Apollo Computer Inc. (angol nyelven). Apollo, 1988
  2. Michael Slater. 8 / First ECL Microprocessor, A GUIDE TO RISC MICROPROCESSORS (google) (angol nyelven), San Diego, Calif.: Academic Press Inc., 63–64. o. ISBN 0-12-649140-2 [1992] „BIT has been selling similar floating-point chips for use in a variety of high-performance CPUs, including Apollo's PRISM and HP's Precision Architecture” 
  3. ^ a b kolya: Apollo CPUs (angol nyelven). Zepa.net, 1997. március 30
  4. HP-APOLLO PRODUCTS CONFIGURATION GUIDE / Domain Series 10000 Personal Supercomputers (angol nyelven) (PDF) pp. A-12, D-133. HP, 1989. december 1
  5. Mark Smotherman: Who are the Computer Architects? (angol nyelven). Clemson.edu, 2013. április 1
  6. Apollo DN10000 Press Releases, 1988 (angol nyelven) (PDF) pp. 2, 1988

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

Ez a szócikk részben vagy egészben az Apollo PRISM című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

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

További információk[szerkesztés | forrásszöveg szerkesztése]

  • Jim Rees: The Apollo Archive (angol nyelven), 1990, 1991, 2012 – összegyűjtött információk az Apollo munkaállomásokról
  • Jim Rees: Marketing Materials (angol nyelven), 1990, 1991, 2012 – összegyűjtött információk és marketinganyag az Apollo dn10000 munkaállomásról

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]