Intel iAPX 432

A Wikipédiából, a szabad enciklopédiából
Intel iAPX 432
Intel Logo.svg
Az Intel Corporation logója, 1968–2005

Gyártás 1981
Gyártó Intel
Max CPU órajel 5 MHz – 8 MHz

Az iAPX 432 az Intel 1981-ben bevezetett új, többchipes processzor-architektúrája volt, egyben az Intel első 32 bites processzora. A cégnek nagy tervei voltak az új processzorral: ez váltotta volna fel az x86 architektúrát és ezt vált volna az Intel fő termékvonalának alapjává az 1980-as években. A tervek nem váltak valóra, a processzor elviselhetetlen lassúsága miatt.

Több fejlett többfeladatos működést és memóriakezelést támogató tulajdonságot hardveresen valósítottak meg ebben a kialakításban, emiatt mikro-nagyszámítógép (micromainframe) néven is emlegették. Az "iAPX" jelölés az angol intel Advanced Processor architecture (Intel fejlett processzor-architektúra) kifejezésből alkotott betűszó.

Eredetileg legfeljebb 10 MHz-es órajelen való működésre tervezték, a ténylegesen eladott processzorok ill. csipkészletek 4 MHz, 5 MHz, 7 MHz és 8 MHz-es órajeleken működtek,[1] a 8 MHz-es processzor csúcsteljesítménye 2 millió utasítás volt másodpercenként.[2]

Az iAPX 432-es kialakítása teljes mértékben a magasrendű programozási nyelveken való programozhatóságot szolgálta,[3] elsősorban az Ada programnyelv támogatása volt a fő cél. A 432-es hardveresen támogatta sokféle adatstruktúra kezelését, abból a célból, hogy a 432 számára írt modern operációs rendszerek sokkal kevesebb programkóddal készülhessenek, kevesebb kódot tartalmazzanak, mint más, rendes processzorok esetén; emellé járult az objektumorientált programozás közvetlen támogatása és a hardveres szemétgyűjtés (garbage collection, a memóriakezelés egy formája, amely felszabadítja a memóriában a nem használt objektumok memóriaterületeit). Ezen technikák megvalósítása sokkal bonyolultabb hardvert és mikrokódot eredményezett, és az elkészült processzor sokkal komplexebb lett, mint a korabeli többi processzor.

Az iAPX 432 rendszerek igen drágák és lassúak voltak. 1982-ben egyszerű sebességtesztek az iAPX 432 rendszereken kb. 4-szer lassabban futottak, mint az azonos órajelfrekvencián futtatott hagyományos 80286 processzoros rendszeren. Az iAPX 432-t nem sikerült egyetlen lapkán megvalósítani, így az gyakorlatilag egy csipkészlet (lapkakészlet, chipset) formájában készült el. A csipkészlet egy piaci bukás volt. Az Intel kibocsátotta a konstrukció második generációját is, amelyben sok javítást végeztek az elsőhöz képest, de még ez a készlet sem volt praktikusan használható, továbbra is hatalmas túlzásokat tartalmazott a teljesítőképesség és az utasításkészlet terén.[4] Az Intel végül feladta a tervet, hogy az iAPX 432 típussal váltsa fel a 8086-os, később x86 architektúraként ismertté vált vonalat.

Az iAPX 432 tervezet akkora üzleti bukás volt az Intel számára,[5] hogy a cég weboldalain még a projekt vagy a termék létére sincs semmilyen utalás. Az Intel annak az x86-os vonalnak a fejlesztését folytatta, amelyet az iAPX 432 architektúra volt hivatott felváltani, ebben viszont hatalmas sikereket ért el.

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

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

Az Intel 432-es projektjét 1975-ben kezdték el, egy évvel a 8 bites Intel 8080 elkészülte után és egy évvel a 16 bites 8086-os processzor fejlesztésének kezdete előtt. A 432-es tervezet neve kezdetben 8800 volt, amely a már meglévő Intel 8008 és 8080 processzorok utáni következő lépésre utalt.

Ez egy hatalmas lépés volt a 8 bites processzorokhoz képest, amelyek utasításkészletét túl primitívnek vélték a nagyobb szoftverrendszerek és fordítóprogramok számára. Az Intel egy olyan bonyolult és kifinomult teljes rendszer építését célozta meg néhány LSI csipen, amely funkcionálisan egyenlő volt vagy még jobb is, mint a legjobb 32 bites mini és nagszámítógépek, amelyek egységeiben szekrényeket foglaltak el a kevésbé korszerű csipek. A tervezett rendszer megcélzott tulajdonságai: multiprocesszoros működés, moduláris bővíthetőség, hibatűrés, fejlett operációs rendszerek és fejlett programozási nyelvek támogatása, nagyon nagy alkalmazások, végletekig menő megbízhatóság és biztonság. Várhatóan ez az architektúra egy évtizedre kielégíti majd az Intel vásárlóit.[6] A célok más megfogalmazásban: nagymértékű (a nagyszámítógépekével összemérhető) számítási teljesítmény, növelhető teljesítő képesség, a legnagyobb mértékben megbízható hardver és szoftver, valamint megnövelt programozói termelékenység.[6]

Hamarosan nyilvánvalóvá vált, hogy a kitűzött céloknak megfelelő rendszer tervezése évekig fog tartani és mérnökök sokasága szükséges hozzá. A Moore-törvény is azt mutatta, hogy a tervezett célok néhány integrált áramkörön való megvalósításhoz a áramkörgyártás több éves fejlődése szükséges. Eközben az Intelnek égető szüksége volt egy egyszerűbb átmeneti termékre, amivel válaszolni tud a konkurens cégek, a Motorola, Zilog és National Semiconductor kihívásaira. Így tehát az Intel elindított egy sietős tervezetet, külön tervezőcsoporttal, a 8086-os processzor elkészítésére, ami biztosította a kockázatmentes továbblépést a 8080-as processzortól. A 8086-os piacra került 1978-ban, és elég jó volt ahhoz, hogy elindítsa az IBM PC forradalmat.

A 8086-os binárisan ugyan nem, de assembly forráskód szintjén felülről kompatibilis volt a meglévő 8080 DOS szoftverrel. Ezzel ellentétben a 432-re nem volt semmiféle kompatibilitási vagy migrációs megkötés: a tervezők szabad kezet kaptak az új rendszer tervezésében, az alapoktól kezdve, olyan technikákat használhattak, amelyeket a legjobbnak gondoltak a nagyméretű rendszerek és hozzávaló szoftverek működésében. A tervezők felhasználták az akkoriban legfelkapottabb egyetemi számítástechnikai koncepciókat, nevezetesen a következőket: képességalapú gépek (capability-based addressing, memóriahasználati módszer), objektumorientált programozás, magas szintű CISC gépek, az Ada nyelv, és sűrű utasításkódolás. Az újszerű tulajdonságok halmaza természetesen bonyolultabbá tette a kialakítást és késleltette a megjelenést (és végül végzetesen lassította a működést).

A kialakítás magja a General Data Processor (GDP) elnevezésű fő processzor volt, ezt két csippel valósították meg: az egyik a 43201 jelű, az utasításlehívó és dekódoló (fetch and decode) egység, a másik a 43202 jelű pedig az utasításvégrehajtó egység. A legtöbb konstrukció tartalmazott egy harmadik csipet is, ez volt a 43203 jelű interfész feldolgozóegység (Interface Processor, IP), azaz a ki- és bemenetek kezelését végző csatornavezérlő.

A többcsipes processzor nagyobb tranzisztorszámmal járt: a kétcsipes GDP körülbelül 97 000, az IP csip körülbelül 49 000 tranzisztort tartalmaz. Összehasonlításul, az 1979-ben megjelent Motorola 68000 processzor kb. 40 000 tranzisztorból áll. Ez is jelzi a kialakítás bonyolultságát.

1983-ban az Intel kibocsátott még két kiegészítő integrált áramkört, ami az iAPX 432 Interconnect Architecture, az összekapcsolási architektúra támogatását szolgálta: ezek a 43204 sínkezelő (Bus Interface Unit, BIU), és a 43205 memóriavezérlő (Memory Control Unit, MCU) egység. Ezek az áramkörök lehetővé tették a multiprocesszoros rendszerek szinte járulékos elemek nélküli felépítését, azokban legfeljebb 64 node – feldolgozó csomópont – csatlakoztatását.

A tervezet hibái[szerkesztés | forrásszöveg szerkesztése]

Az iAPX 432 innovatív funkciói összességükben rossz hatással voltak a teljesítményre, együttesen lassúbb működést eredményeztek: a 432-es processzor többször lassabban működött, mint a korabeli konvencionális processzorok, pl. a Motorola 68010 vagy az Intel 80286. Az egyik probléma az volt, hogy a GDP kétcsipes kialakításában a processzorsebességet az alaplapi elektromos összeköttetés sebessége korlátozta. Egy másik, nagyobb probléma volt, hogy a teljesítményorientált architektúra hatékony működéséhez nagyméretű asszociatív gyorsítótárakra lett volna szükség, de ilyeneknek egyszerűen nem maradt hely a csipeken. Az utasításkészlet bithatárra igazított változó hosszúságú utasításkódokból áll (ellentétben a hagyományos processzorfelépítések többségénél alkalmazott bájt- vagy szóhatárra igazított részben rögzített hosszúságú utasításkód-formátumokkal). Az utasításdekódolás így sokkal bonyolultabb, mint a többi kialakításnál. Ráadásul a BIU (busz-interfész) hibatűrő rendszerek támogatására volt tervezve, és emiatt jobban leterhelte a rendszersínt (vagy -buszt), a várakoztatási állapotok akár a buszhozzáférési idő 40%-át is felemészthették.

A problémák további jelentős forrása a tökéletlen Ada fordító volt, amely minden esetben költséges objektumorientált utasításokat alkalmazott az adott esetben használható, gyorsabb skaláris utasítások helyett, amikor csak tehette. Például a fordító minden eljáráshíváshoz az iAPX 432-ben rendelkezésre álló modulok közti eljáráshívás utasítást (inter-module procedure call) alkalmazta, még akkor is, amikor a sokkal gyorsabb branch and link utasításokat használhatta volna. Egy másik nagyon lassú hívás volt az enter_environment, amely a memóriavédelem beállítása. A fordító minden egyes változó esetén használta ezt, még akkor is, ha a változók egy meglévő környezet belsejében fordultak elő és nem kell azokat ellenőrizni vagy védeni. Tovább ront a helyzeten, hogy az eljárások paraméterei és visszatérő értékei érték helyett mindig hivatkozással voltak átadva, ami gyakran hatalmas memóriaterületek másolásával járt.

Hatása a hasonló szerkezetű processzorok terveire[szerkesztés | forrásszöveg szerkesztése]

Architektúra[szerkesztés | forrásszöveg szerkesztése]

Objektumorientált memória és lehetőségek[szerkesztés | forrásszöveg szerkesztése]

Az iAPX 432 hardveresen és mikrokóddal támogatja az objektumorientált programozást és az képességalapú címzést (capability-based addressing).[7] A rendszer szegmentált memóriát használ, amelyben a szegmensek száma legfeljebb 224, a szegmensek maximális mérete 64 KiB lehet, amely 240 bájtos címezhető virtuális memóriaterületet jelent. A fizikai címtér 224 bájt (16 MiB).

Szemétgyűjtés[szerkesztés | forrásszöveg szerkesztése]

(garbage collection)

Többfeladatos működés és folyamatközi kommunikáció[szerkesztés | forrásszöveg szerkesztése]

(multitasking, interprocess communication)

Több résztvevős feldolgozás[szerkesztés | forrásszöveg szerkesztése]

(multiprocesszálás, multiprocessing)

Az iAPX 432 rendelkezik hardveres támogatással a többproceszoros rendszerek kialakításához (multiprocessing), amelyben maximum 64 processzor (GDP és IP kombináció) vehet részt.

Hibatűrés[szerkesztés | forrásszöveg szerkesztése]

(fault tolerance)

I/O[szerkesztés | forrásszöveg szerkesztése]

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

  1. Intel iAPX-432 Micromainframe
  2. [1]
  3. Intel Corporation. Introduction to the iAPX 432 Architecture, iii. o (1981) 
  4. Performance Effects of Architectural Complexity in the Intel 432, Robert P Colwell, Edward F Gehringer, E Douglas Jensen, ACM Trans. Computer Systems, Vol 6 No 3, August 1966. Online at http://www.princeton.edu/~rblee/ELE572Papers/Fall04Readings/I432.pdf
  5. http://www.dvorak.org/blog/whatever-happened-to-the-intel-iapx432
  6. ^ a b David King, Liang Zhou, Jon Bryson, David Dickson: Intel iAPX 432 – Computer Science 460 – Final Project – INTRODUCTION (angol nyelven), 1999. április 15 CS 460 Final Project report, online
  7. Henry M Levy, chapter 9 of Capability-Based Computer Systems, Digital Press 1984, online: http://www.cs.washington.edu/homes/levy/capabook/Chapter9.pdf

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

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

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