Intel iAPX 432 - Intel iAPX 432

Intel iAPX 432
Logo Intel (1968). Svg
Logo Intel Corporation, 1968–2006
Obecná informace
Spuštěno koncem roku 1981
Přerušeno asi 1985
Společný výrobce
Výkon
Max. Taktovací frekvence CPU 5 MHz až 8 MHz

IAPX 432 ( Intel Advanced Performance Architecture ) je přerušeno architektura počítače představen v roce 1981. To bylo Intel je první 32-bitový procesor designu. Hlavní procesor architektury, obecný datový procesor , je kvůli technickým omezením v té době implementován jako sada dvou samostatných integrovaných obvodů. Ačkoli některé starší systémy a příručky založené na 8086, 80186 a 80286 také používaly předponu iAPX z marketingových důvodů, řady procesorů iAPX 432 a 8086 jsou zcela samostatná provedení se zcela odlišnými instrukčními sadami.

Projekt začal v roce 1975 jako 8800 (po 8008 a 8080 ) a měl být hlavním designem společnosti Intel pro 80. léta. Na rozdíl od modelu 8086 , který byl navržen v následujícím roce jako nástupce modelu 8080, byl iAPX 432 radikálním odklonem od předchozích návrhů společnosti Intel určených pro jinou mezeru na trhu a zcela nesouvisel s produktovými řadami 8080 nebo x86 .

Projekt iAPX 432 je považován za komerční selhání společnosti Intel a byl ukončen v roce 1986.

Popis

Model iAPX 432 byl označován jako „mikromainframe“, navržený k úplnému programování v jazycích vyšší úrovně. Architektura instrukční sady byla také zcela nová a došlo k významnému odklonu od předchozích procesorů Intel 8008 a 8080, protože programovací model iAPX 432 je zásobníkový stroj bez viditelných univerzálních registrů . Podporuje objektově orientované programování , uvolňování paměti a multitasking i běžnější správu paměti přímo v hardwaru a mikrokódu . Přímá podpora různých datových struktur má také umožnit implementaci moderních operačních systémů s použitím mnohem méně programového kódu než u běžných procesorů. Intel iMAX 432 je ukončený operační systém pro 432, napsaný výhradně v Ada , a Ada byl také zamýšleným primárním jazykem pro programování aplikací. V některých aspektech jej lze považovat za počítačovou architekturu na vysoké úrovni .

Tyto vlastnosti a funkce vyústily v design hardwaru a mikrokódu, který byl složitější než většina procesorů té doby, zejména mikroprocesory. Interní a externí sběrnice však (většinou) nejsou širší než 16 bitů a stejně jako v jiných 32bitových mikroprocesorech doby (například 68000 nebo 32016 ) jsou 32bitové aritmetické instrukce implementovány 16 -bit ALU, prostřednictvím náhodné logiky a mikrokódu nebo jiných druhů sekvenční logiky . Zvětšený adresní prostor iAPX 432 nad 8080 byl také omezen skutečností, že lineární adresování dat mohlo stále používat pouze 16bitové posuny, něco podobného prvním designům založeným na Intel 8086 , včetně současných 80286 (nový 32bitový segment kompenzace architektury 80386 byla veřejně podrobně popsána v roce 1984).

S využitím polovodičové technologie své doby nebyli inženýři společnosti Intel schopni převést design do velmi efektivní první implementace. Spolu s nedostatkem optimalizace v předčasném kompilátoru Ada to přispělo k poměrně pomalým, ale nákladným počítačovým systémům, které prováděly typické měřítka při zhruba 1/4 rychlosti nového čipu 80286 při stejné hodinové frekvenci (počátkem roku 1982). Tato počáteční mezera ve výkonu na poměrně nízkoprofilovou a levnou linku 8086 byla pravděpodobně hlavním důvodem, proč selhal plán společnosti Intel nahradit druhou (později známou jako x86 ) iAPX 432. Ačkoli inženýři viděli způsoby, jak vylepšit design nové generace, architektura schopností iAPX 432 se nyní začala považovat spíše za režii implementace než za zjednodušující podporu, kterou měla být.

Původně navržené pro taktovací frekvence až 10 MHz byly skutečné prodávané zařízení specifikovány pro maximální taktovací rychlosti 4 MHz, 5 MHz, 7 MHz a 8 MHz se špičkovým výkonem 2 miliony instrukcí za sekundu při 8 MHz.

Dějiny

Rozvoj

Projekt Intel 432 byl zahájen v roce 1976, rok poté, co byl dokončen 8bitový procesor Intel 8080 a rok před zahájením jejich 16bitového projektu 8086 . Projekt 432 byl původně pojmenován 8800 , jako jejich další krok nad rámec stávajících mikroprocesorů Intel 8008 a 8080 . To se stalo velmi velkým krokem. Sady instrukcí těchto 8bitových procesorů nebyly příliš vhodné pro typické kompilované jazyky podobné Algolu . Hlavním problémem však byly jejich malé nativní adresovací rozsahy, jen 16 kB pro 8008 a 64 kB pro 8080, příliš malé pro mnoho složitých softwarových systémů bez použití jakéhokoli přepínání bank , segmentace paměti nebo podobného mechanismu (který byl zabudován do 8086 , o několik let později). Společnost Intel se nyní zaměřila na vybudování propracovaného kompletního systému v několika čipech LSI, který byl funkčně stejný nebo lepší než nejlepší 32bitové minipočítače a sálové počítače vyžadující celé skříně starších čipů. Tento systém by podporoval více procesorů, modulární expanzi, odolnost proti chybám, pokročilé operační systémy, pokročilé programovací jazyky, velmi velké aplikace, extrémní spolehlivost a extrémní zabezpečení. Jeho architektura by řešila potřeby zákazníků Intelu po celé desetiletí.

Vývojový tým iAPX 432 řídil Bill Lattin s vedoucím inženýrem Justinem Rattnerem (ačkoli jeden zdroj uvádí, že vedoucím technikem byl Fred Pollack ). (Rattner by se později stal technickým ředitelem společnosti Intel.) Zpočátku tým pracoval od Santa Clary, ale v březnu 1977 se Lattin a jeho tým 17 inženýrů přestěhovali do nového sídla společnosti Intel v Portlandu. Pollack se později specializoval na superscalaritu a stal se hlavním architektem čipu i686 Intel Pentium Pro .

Brzy se ukázalo, že to všechno bude trvat několik let a mnoho inženýrů. A podobně by trvalo několik let dalšího pokroku v Mooreově zákoně , než by se zlepšená výroba čipů mohla vejít do několika hustých čipů. Intel mezitím naléhavě potřeboval jednodušší dočasný produkt, aby vyhověl okamžité konkurenci společností Motorola , Zilog a National Semiconductor . Intel tedy zahájil spěšný projekt, který navrhl model 8086 jako nízkorizikový přírůstkový vývoj od modelu 8080, a to pomocí samostatného konstrukčního týmu. Masový trh 8086 byl dodán v roce 1978.

8086 byl navržen tak, aby byl zpětně kompatibilní s 8080 v tom smyslu, že montážní jazyk 8080 lze mapovat na architekturu 8086 pomocí speciálního assembleru . Stávající zdrojový kód sestavy 8080 (i když bez spustitelného kódu ) byl proto do určité míry kompatibilní s novou verzí 8086. Naproti tomu 432 neměl žádné požadavky na kompatibilitu softwaru nebo migraci. Architekti měli úplnou svobodu dělat nový design od nuly, a to pomocí jakýchkoli technik, o nichž si mysleli, že by bylo nejlepší pro rozsáhlé systémy a software. Aplikovali módní koncepty počítačových věd z univerzit, zejména stroje schopností , objektově orientované programování, stroje CISC na vysoké úrovni, Ada a hustě zakódované instrukce. Díky této ambiciózní kombinaci nových funkcí byl čip větší a složitější. Složitost čipu omezila rychlost hodin a prodloužila harmonogram návrhu.

Jádro designu - hlavní procesor - bylo nazváno General Data Processor ( GDP ) a bylo postaveno jako dva integrované obvody : jeden (43201) pro načítání a dekódování instrukcí, druhý (43202) pro jejich provádění. Většina systémů by také zahrnovala procesor 43203 Interface ( IP ), který fungoval jako řadič kanálu pro I / O , a Attached Processor ( AP ), konvenční procesor Intel 8086, který poskytoval „výpočetní výkon v I / O subsystému“.

Byly to jedny z největších návrhů éry. Dvoučipový GDP měl kombinovaný počet přibližně 97 000  tranzistorů, zatímco IP s jedním čipem měl přibližně 49 000. Pro srovnání, Motorola 68000 (představená v roce 1979) měla přibližně 40 000 tranzistorů.

V roce 1983 společnost Intel vydala dva další integrované obvody pro architekturu iAPX 432 Interconnect Architecture: jednotku 43204 Bus Interface Unit ( BIU ) a 43205 Memory Control Unit ( MCU ). Tyto čipy umožňovaly téměř bezlepkové multiprocesorové systémy s až 63 uzly.

Selhání projektu

Některé z inovativních funkcí iAPX 432 byly na újmu dobrého výkonu. V mnoha případech měl iAPX 432 výrazně pomalejší propustnost instrukcí než běžné mikroprocesory té doby, jako jsou National Semiconductor 32016 , Motorola 68010 a Intel 80286 . Jedním problémem bylo, že dvoučipová implementace GDP ji omezila na rychlost elektrického vedení základní desky. Větší problém spočíval v tom, že architektura schopností potřebovala k efektivnímu fungování velké asociativní mezipaměti, ale čipy na to neměly prostor. Sada instrukcí také používala bitově zarovnané instrukce s proměnnou délkou namísto obvyklých částečně fixovaných bajtů nebo formátů zarovnaných podle slov používaných ve většině návrhů počítačů. Dekódování instrukcí bylo proto složitější než v jiných provedeních. I když to samo o sobě nebránilo výkonu, použilo další tranzistory (hlavně pro velké řadicí páky ) v designu , kterému již chyběl prostor a tranzistory pro mezipaměti, širší autobusy a další výkonově orientované funkce. Kromě toho byla jednotka BIU navržena tak, aby podporovala systémy odolné proti chybám, a přitom bylo až 40% času sběrnice zadrženo ve stavu čekání .

Dalším velkým problémem byl jeho nezralý a nevyladěný překladač Ada . V každém případě použila nákladné objektově orientované instrukce, místo rychlejších skalárních instrukcí, kde by to mělo smysl. Například iAPX 432 obsahoval velmi nákladnou mezimodulovou instrukci volání procedury , kterou kompilátor použil pro všechna volání, a to navzdory existenci mnohem rychlejších instrukcí pro větvení a propojení. Další velmi pomalý hovor byl enter_environment, který nastavil ochranu paměti. Kompilátor to spustil pro každou proměnnou v systému, i když byly proměnné použity v existujícím prostředí a nebylo nutné je kontrolovat. Aby toho nebylo málo , data předávaná do a z procedur byla vždy předávána spíše návratem hodnoty než odkazem. Při spuštění srovnávacího testu Dhrystone trvalo předávání parametrů desetkrát déle než všechny ostatní výpočty dohromady.

Podle New York Times „i432 běžel 5 až 10krát pomaleji než jeho konkurent Motorola 68000“.

Impact a podobné designy

IAPX 432 byl jedním z prvních systémů, které implementovaly nový standard IEEE-754 pro aritmetiku s plovoucí desetinnou čárkou.

Výsledkem selhání 432 bylo, že návrháři mikroprocesorů dospěli k závěru, že podpora objektů v čipu vede ke složitému designu, který bude vždy běžet pomalu, a 432 byl často uváděn jako protiklad od navrhovatelů návrhů RISC . Někteří si však myslí, že podpora OO nebyla primárním problémem 432 a že výše zmíněné nedostatky v implementaci (zejména v kompilátoru) by zpomalily jakýkoli návrh CPU. Od verze iAPX 432 došlo pouze k jednomu dalšímu pokusu o podobný design, procesoru Rekursiv , i když podpora procesu INMOS Transputer byla podobná - a velmi rychlá.

Intel na 432 strávil značný čas, peníze a sdílení mysli , věnoval mu zkušený tým a nebyl ochotný ho po svém neúspěchu na trhu úplně opustit. Byl přiveden nový architekt - Glenford Myers -, který vytvořil zcela novou architekturu a implementaci pro základní procesor, která by byla postavena ve společném projektu Intel / Siemens (později BiiN ), což by mělo za následek procesory řady i960 . Podskupina i960 RISC se stala na trhu integrovaných procesorů nějakou dobu populární, ale špičkové modely 960MC a 960MX se značkovou pamětí se prodávaly pouze pro vojenské aplikace.

Podle New York Times byla spolupráce společnosti Intel se společností HP na procesoru Merced (později známém jako Itanium) pokusem společnosti o comeback pro velmi špičkový trh.

Architektura

Pokyny iAPX 432 mají proměnnou délku mezi 6 a 321 bitů. Neobvykle nejsou zarovnány po bajtech, to znamená, že mohou obsahovat lichý počet bitů a přímo na sebe navazovat bez ohledu na hranice bajtů.

Objektově orientovaná paměť a možnosti

IAPX 432 má podporu hardwaru a mikrokódu pro objektově orientované programování a adresování podle schopností . Systém využívá segmentovanou paměť s až 2 24 segmenty o velikosti až 64  KB , což poskytuje celkový virtuální adresní prostor 2 40 bajtů. Fyzický adresní prostor je 2 24 bajtů (16  MB ).

Programy nejsou schopny odkazovat na data nebo pokyny podle adresy; místo toho musí určit segment a posun v rámci segmentu. Na segmenty odkazují deskriptory přístupu (AD) , které poskytují index do tabulky systémových objektů a sadu práv ( schopností ) upravujících přístupy k tomuto segmentu. Segmenty mohou být „přístupové segmenty“, které mohou obsahovat pouze deskriptory přístupu, nebo „datové segmenty“, které nemohou obsahovat reklamy. Hardware a mikrokód přísně prosazují rozdíl mezi datovými a přístupovými segmenty a neumožní softwaru zacházet s daty jako s deskriptory přístupu nebo naopak.

Systémově definované objekty se skládají buď z jednoho přístupového segmentu, nebo přístupového segmentu a datového segmentu. Systémově definované segmenty obsahují data nebo deskriptory přístupu pro systémově definovaná data v určených kompenzacích, ačkoli operační systém nebo uživatelský software je mohou rozšířit o další data. Každý systémový objekt má pole typu, které je kontrolováno mikrokódem, takže nelze použít portový objekt tam, kde je potřeba Carrier Object. Uživatelské programy mohou definovat nové typy objektů, které získají plnou výhodu kontroly typu hardwaru prostřednictvím použití typů řízení objektů (TCO) .

Ve verzi 1 architektury iAPX 432 se systémově definovaný objekt obvykle skládal z přístupového segmentu a volitelně (v závislosti na typu objektu) datového segmentu určeného deskriptorem přístupu při pevném posunutí v přístupovém segmentu.

Ve verzi 3 architektury byly za účelem zlepšení výkonu spojeny přístupové segmenty a datové segmenty do jednotlivých segmentů do 128 kB, které byly rozděleny na přístupovou část a datovou část o velikosti 0–64 kB. To dramaticky snížilo počet vyhledávání v tabulce objektů a zdvojnásobilo maximální prostor virtuálních adres.

IAPX432 rozpoznává čtrnáct typů předdefinovaných systémových objektů :

  • instrukční objekt obsahuje spustitelné instrukce
  • objekt domény představuje programový modul a obsahuje odkazy na podprogramy a data
  • kontextový objekt představuje kontext procesu při provádění
  • objekt definice typu představuje softwarově definovaný typ objektu
  • objekt ovládání typu představuje privilegium specifické pro daný typ
  • tabulka objektů identifikuje systémovou kolekci aktivních deskriptorů objektů
  • objekt prostředku úložiště představuje bezplatný fond úložiště
  • fyzický objekt úložiště identifikuje volné úložné bloky v paměti
  • objekt deklarace úložiště omezuje úložiště, které mohou přidělit všechny přidružené objekty prostředků úložiště
  • objekt procesu identifikuje běžící proces
  • port objekt představuje port a frontu zpráv pro komunikaci mezi procesy
  • dopravce Dopravci přenášejí zprávy do az přístavů
  • procesor obsahuje informace o stavu jednoho procesoru v systému
  • objekt komunikace procesoru se používá pro komunikaci mezi procesory

Sběr odpadu

Software běžící na 432 nemusí explicitně přidělovat objekty, které již nejsou potřeba. Místo toho mikrokód implementuje část značkovací části algoritmu paralelního sběru odpadu Edsgera Dijkstra za chodu ( sběratel stylů značky a zametání ). Položky v tabulce systémových objektů obsahují bity používané k označení každého objektu jako bílého, černého nebo šedého podle potřeby kolektoru. Imax 432 operační systém obsahuje softwarovou část garbage collector.

Formát instrukce

Spustitelné instrukce jsou obsaženy v systémovém „objektu instrukce“. Vzhledem k tomu, že instrukce jsou bitově zarovnány, umožňuje 16bitové posunutí bitů do objektu instrukce, aby objekt obsahoval až 8192 bajtů instrukcí (65 536 bitů).

Pokyny se skládají z operátoru , který se skládá z třídy a operačního kódu , a od nuly do tří odkazů na operandy . Msgstr "Pole jsou uspořádána tak, aby poskytovala informace procesoru v pořadí požadovaném pro dekódování". Častěji používané operátory jsou kódovány pomocí méně bitů. Instrukce začíná polem třídy 4 nebo 6 bitů, které udává počet operandů nazývaných pořadí instrukcí a délku každého operandu. Toto je volitelně následováno polem formátu 0 až 4 bitů, které popisuje operandy (pokud neexistují žádné operandy, formát není k dispozici). Pak přijde nula až tři operandy, jak je popsáno ve formátu. Instrukce je ukončena 0 až 5bitovým operačním kódem, pokud existuje (některé třídy obsahují pouze jednu instrukci, a proto nemají žádný operační kód). „Pole Formát umožňuje, aby se HDP programátorovi zobrazilo jako architektura s nulovou, jednou, dvěma nebo třemi adresami.“ Pole formátu označuje, že operand je datový odkaz nebo prvek top nebo next-to-top zásobníku operandů.

Viz také

  • iAPX , pro název iAPX

Poznámky

Reference

externí odkazy