Intel iAPX 432

az Intel 1981-ben bevezetett új, többchipes processzor-architektúrája

Az iAPX 432 az Intel 1981-ben bevezetett új, többcsipes 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.

Intel iAPX 432
Az Intel Corporation logója, 1968–2005
Az Intel Corporation logója, 1968–2005

Gyártás1981 – 1984/1985[1]
TervezőIntel
GyártóIntel
Max CPU órajel5 MHz – 8 MHz
A Wikimédia Commons tartalmaz Intel iAPX 432 témájú médiaállományokat.

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,[2] a 8 MHz-es processzor csúcsteljesítménye 2 millió utasítás volt másodpercenként.[3]

Az iAPX 432-es kialakítása teljes mértékben a magas szintű programozási nyelveken való programozhatóságot szolgálta,[4] 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; e mellé 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.

Intel SBC 432/100 kártya

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.[5] 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,[6] 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

 
General Data Processor 43201
 
General Data Processor 43202

A fejlesztés szerkesztés

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 nagyszá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. A várakozások szerint ez az architektúra egy évtizedre kielégítette volna az Intel vásárlóit.[7] 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.[7]

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 az á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 gyorsított 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

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

Architektúra szerkesztés

Objektumorientált memória és lehetőségek szerkesztés

Az iAPX 432 hardveresen és mikrokóddal támogatja az objektumorientált programozást és a képességalapú címzést (capability-based addressing).[8] 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

A 432-es rendszeren futó szoftverek nem tudják explicit módon felszabadítani a már nem használt objektumokat. A rendszerben ez automatikusan, hardveres támogatással történik, egy mark-and-sweep típusú, futás közbeni párhuzamos szemétgyűjtő algoritmust alkalmazva. A szemétgyűjtő algoritmus objektum-jelölő részét a mikrokódban valósították meg.[9] Az algoritmus a rendszerobjektum-tábla bejegyzéseiben tartja nyilván az objektumok foglaltságának (fehér, fekete vagy szürke) jelöléseit. Az objektumok felszabadítását kizárólag az iMAX 432 operációs rendszer végzi, a futó processzeket nem zavarva.[10]

Többfeladatos működés és folyamatközi kommunikáció szerkesztés

(multitasking, interprocess communication)

Több résztvevős feldolgozás szerkesztés

(multiprocesszálás, multiprocessing)

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

Hibatűrés szerkesztés

(fault tolerance)

I/O szerkesztés

Jegyzetek szerkesztés

  1. „It’s believed that it was given up on after 1984 although supplies of the chipset may have still been available as late as 1993.” (Úgy vélik, hogy 1984 után lemondtak róla, bár a chipkészlet még 1993-ban is kapható volt.) Whatever Happened to The iAPX432 — Intel’s Dream Chip, John C. Dvorak, 2006-11-25
  2. Intel iAPX-432 Micromainframe
  3. Archivált másolat. [2008. augusztus 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. december 27.)
  4. Intel Corporation. Introduction to the iAPX 432 Architecture [archivált változat], iii. o. (1981). Hozzáférés ideje: 2012. május 17. [archiválás ideje: 2011. október 13.]  Archivált másolat. [2011. október 13-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. december 27.)
  5. 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 1988. Online at http://www.princeton.edu/~rblee/ELE572Papers/Fall04Readings/I432.pdf
  6. http://www.dvorak.org/blog/whatever-happened-to-the-intel-iapx432
  7. a b David King, Liang Zhou, Jon Bryson, David Dickson: Intel iAPX 432 – Computer Science 460 – Final Project – INTRODUCTION (angol nyelven), 1999. április 15. (Hozzáférés: 2012) CS 460 Final Project report, online
  8. Henry M Levy, chapter 9 of Capability-Based Computer Systems, Digital Press 1984, online: http://www.cs.washington.edu/homes/levy/capabook/Chapter9.pdf
  9. (1978. november 1.) „On-the-fly garbage collection: an exercise in cooperation”. Communications of the ACM 21 (11), 966–975. o. DOI:10.1145/359642.359655.  
  10. iMAX 432 Reference Manual. Intel, 1982. május 1.

Források szerkesztés

Kapcsolódó szócikkek szerkesztés

További információk szerkesztés