DEC Alpha - DEC Alpha
Návrhář | Digital Equipment Corporation |
---|---|
Bity | 64bitové |
Představeno | 1992 |
Design | RISC |
Typ | Registrace-registrace |
Kódování | Pevný |
Endianness | Bi |
Rozšíření | Byte/Word Extension (BWX), Square-root a Floating-Point Convert Extension (FIX), Count Extension (CIX), Motion Video Instructions (MVI) |
Otevřeno | Ano |
Registry | |
Obecný účel | 31 plus vždy nula R31 |
Plovoucí bod | 31 plus vždy -0,0 F31 |
Alpha , původně známá jako Alpha AXP , je 64-bit s redukovanou instrukční sadou (RISC) architektury sad instrukcí (ISA), vyvinutý společností Digital Equipment Corporation (DEC). Alpha byla navržena tak, aby nahradila 32bitový počítač s komplexními instrukčními sadami VAX (CISC) a byla vysoce konkurenčním procesorem RISC pro pracovní stanice Unix a podobné trhy.
Alpha je implementována v sérii mikroprocesorů původně vyvinutých a vyrobených DEC. Tyto mikroprocesory jsou nejvýrazněji používány v různých pracovních stanicích a serverech DEC, které nakonec vytvořily základ pro téměř všechny jejich sestavy střední a vyšší úrovně. Několik dodavatelů třetích stran také vyrábělo systémy Alpha, včetně základních desek pro PC .
Mezi operační systémy, které podporují Alpha, patří OpenVMS (dříve známý jako OpenVMS AXP), Tru64 UNIX (dříve známý jako DEC OSF/1 AXP a Digital UNIX), Windows NT (ukončen po NT 4.0 ; a předběžné vydání Windows 2000 RC2 ), Linux ( Debian , SUSE , Gentoo a Red Hat ), BSD UNIX ( NetBSD , OpenBSD a FreeBSD až 6.x), Plan 9 od Bell Labs a také jádro L4Ka :: Pistachio .
Architektura Alpha byla prodána, spolu s většinou částí DEC, společnosti Compaq v roce 1998. Compaq, již zákazník společnosti Intel , vyřadil Alphu ve prospěch nadcházející architektury Hewlett-Packard /Intel Itanium a prodal veškeré duševní vlastnictví Alpha společnosti Intel v 2001, čímž byl produkt účinně zabit. Hewlett-Packard koupil Compaq později ten stejný rok, pokračující vývoj stávající produktové řady až do roku 2004 a prodej systémů založených na Alpha, převážně do stávající zákaznické základny, do dubna 2007.
Dějiny
HRANOL
Alpha se zrodil z dřívějšího projektu RISC pojmenovaný PRISM ( P arallel R educed I nstruction S et M achine), samotný produkt několika dřívějších projektů. PRISM byl zamýšlen jako flexibilní design, podporující po menším převodu jak unixové aplikace, tak i stávající software VAX/VMS společnosti Digital . Nový operační systém známý jako MICA by podporoval rozhraní ULTRIX i VAX/VMS nad běžným jádrem, což umožňuje software pro obě platformy snadno portovat do architektury PRISM.
Zahájen v roce 1985, design PRISM se během vývoje neustále měnil v reakci na změny na počítačovém trhu, což vedlo ke zdlouhavému zavádění jeho zavedení. Teprve v létě 1987 bylo rozhodnuto, že to bude 64bitový design, mezi nejranější takové návrhy ve formátu mikroprocesoru . V říjnu 1987 společnost Sun Microsystems představila Sun-4 , svoji první pracovní stanici využívající nový procesor SPARC . Sun-4 běží přibližně třikrát až čtyřikrát rychleji než jejich nejnovější modely Sun-3 pomocí Motorola 68020 , stejně jako jakékoli unixové nabídky od DEC. Plány se opět změnily; PRISM byl znovu sladěn jako 32bitová část a zaměřen přímo na unixový trh. To dále oddálilo design.
Tým v kanceláři Palo Alto, který sledoval, jak datum dodání PRISM stále sklouzává, a čelí možnosti dalších zpoždění, se rozhodl navrhnout vlastní pracovní stanici pomocí jiného procesoru RISC. Po due diligence vybrali MIPS R2000 a vybudovali pracovní pracovní stanici se systémem Ultrix v období 90 dnů. To vyvolalo prudkou debatu uvnitř společnosti, která vyvrcholila na schůzce managementu v červenci 1988. PRISM se zdálo být rychlejší než R2000, ale stroje R2000 mohly být na trhu do ledna 1989, tedy o rok dříve než PRISM. Když byl tento návrh přijat, jedna ze dvou původních rolí PRISM zmizela. Rozhodnutí vytvořit VMS PRISM již skončilo v tomto bodě, takže nezbyla žádná role. PRISM byl na schůzce zrušen.
RIZIKO VAX
Když se schůzka rozpadla, Boba Supnika oslovil Ken Olsen , který uvedl, že čipy RISC se zdají být budoucí hrozbou pro jejich řadu VAX. Požádal Supnik, aby zvážil, co by se dalo udělat s VAX, aby byla konkurenceschopná vůči budoucím systémům RISC.
To vedlo ke vzniku týmu „RISCy VAX“. Původně zvažovali tři koncepty. Jedním z nich byla zkrácená verze architektury sady instrukcí VAX (ISA), která poběží na systému podobném RISC a ponechá složitější instrukce VAX systémovým podprogramům. Dalším konceptem byl čistý systém RISC, který by za provozu překládal stávající kód VAX do vlastního ISA a ukládal jej do mezipaměti CPU . Nakonec tu stále byla možnost mnohem rychlejšího procesoru CISC s kompletním VAX ISA. Všechny tyto přístupy bohužel zavedly režijní náklady a nebyly by konkurenceschopné s počítačem čistě RISC, který provozuje nativní kód RISC.
Skupina poté považovala hybridní systémy, které kombinovaly jedno ze svých stávajících jednočipových řešení VAX a také čip RISC za koprocesor používaný pro potřeby vysokého výkonu. Tyto studie naznačovaly, že systém bude nevyhnutelně ochromen částí s nižším výkonem a nenabídne žádnou přesvědčivou výhodu. V tomto okamžiku Nancy Kronenberg poukázala na to, že lidé provozují VMS, nikoli VAX, a že VMS má jen několik hardwarových závislostí na základě modelování přerušení a stránkování paměti. Zdálo se, že neexistuje žádný pádný důvod, proč by VMS nemohlo být přeneseno na čip RISC, pokud by byly zachovány tyto malé bity modelu. Další práce na tomto konceptu naznačila, že to byl proveditelný přístup.
Supnik vzal výslednou zprávu do Strategy Task Force v únoru 1989. Byly vzneseny dvě otázky: mohl by výsledný design RISC být také lídrem v oblasti výkonu na unixovém trhu a měl by být stroj otevřeným standardem? A s tím bylo rozhodnuto přijmout architekturu PRISM s příslušnými úpravami. Tím se stal koncept „EVAX“, který navazuje na úspěšnou implementaci CMOS CVAX . Když vedení přijalo zjištění, rozhodlo se dát projektu neutrálnější název, odstranilo „VAX“ a nakonec se usadilo na Alpha. Brzy poté byly zahájeny práce na portu VMS pro novou architekturu .
Alfa
Nový design využívá většinu základních konceptů PRISM, ale byl přepracován tak, aby umožňoval běh programů VMS a VMS přiměřenou rychlostí bez jakékoli konverze. Primární architekti instrukční sady Alpha byli Richard L. Sites a Richard T. Witek. PRICM Epicode byl vyvinut do Alpha PALcode , který poskytuje abstrahované rozhraní pro funkce specifické pro implementaci platformy a procesoru.
Hlavním přínosem Alphy v mikroprocesorovém průmyslu a hlavním důvodem jejího výkonu není ani tak architektura, jako spíše její implementace. V té době (jako je tomu nyní) dominovaly mikročipovému průmyslu automatizované nástroje pro návrh a rozvržení. Designéři čipů ve společnosti Digital pokračovali v náročném návrhu ručního obvodu, aby se vypořádali se složitou architekturou VAX. Čipy Alpha ukazují, že ruční návrh obvodu aplikovaný na jednodušší a čistší architekturu umožňuje mnohem vyšší pracovní frekvence než ty, které jsou možné u automatizovanějších návrhových systémů. Tyto čipy způsobily renesanci vlastního návrhu obvodů v komunitě návrhářů mikroprocesorů.
Původně byly procesory Alpha označeny řadou DECchip 21x64 , přičemž „DECchip“ byl v polovině 90. let nahrazen výrazem „Alpha“. První dvě číslice „21“ znamenají 21. století a poslední dvě číslice „64“ znamenají 64 bitů. Alpha byla od začátku navržena jako 64bitová a neexistuje 32bitová verze. Prostřední číslice odpovídá generaci architektury Alpha. Interně byly procesory Alpha také identifikovány čísly EV , EV oficiálně znamená „Extended VAX“, ale s alternativním humorným významem „Electric Vlasic “, což je poctou experimentu Electric Pickle ve společnosti Western Research Lab.
Vylepšené modely
Prvních pár generací čipů Alpha patřilo k nejinovativnějším ve své době.
- První verze, Alpha 21064 nebo EV4 , je prvním mikroprocesorem CMOS, jehož pracovní frekvence soupeřila s výkonnějšími minipočítači a sálovými počítači ECL .
- Druhý, 21164 nebo EV5 , je prvním mikroprocesorem, který na čip umístil velkou sekundární mezipaměť.
- Třetí, 21264 nebo EV6 , je prvním mikroprocesorem, který kombinuje jak vysokou pracovní frekvenci, tak složitější mikroarchitekturu mimo provoz .
- 21364 nebo EV7 je první vysoce výkonný procesor mít on-chip řadič paměti .
- Neprodukované 21464 nebo EV8 by byly první, které zahrnovaly simultánní multithreading , ale tato verze byla zrušena po prodeji DEC společnosti Compaq . Tarantula výzkumný projekt, který s největší pravděpodobností by byli povoláni EV9 by byli první Alpha procesor mají vektorovou jednotku .
Trvalá zpráva přisuzovaná zasvěcencům DEC naznačuje, že výběr tagu AXP pro procesor provedlo právní oddělení DEC, které stále vycházelo z fiaska s ochrannou známkou VAX . Po dlouhém hledání byl tag „AXP“ shledán zcela nezatíženým. V počítačovém průmyslu začal vtip, že zkratka AXP znamená „Téměř eXactly PRISM“.
Zásady návrhu
Architektura Alpha měla být vysoce výkonným designem. Digital zamýšlel architekturu podporovat tisícinásobný nárůst výkonu za pětadvacet let. Aby to bylo zajištěno, byly odstraněny všechny architektonické funkce, které bránily problémům s více instrukcemi, taktovací frekvencí nebo vícenásobným zpracováním. V důsledku toho Alpha nemá:
- Sloty pro zpoždění větví
- Potlačené pokyny
- Byte načíst nebo uložit pokyny (později přidáno s Byte Word Extensions (BWX))
Kódy podmínek
Alpha nemá kódy podmínek pro celočíselné pokyny k odstranění potenciálního zúžení v registru stavu. Pokyny vedoucí k přetečení, jako je přidání dvou čísel, jejichž výsledek se nevejde do 64 bitů, zapisují 32 nebo 64 nejméně významných bitů do cílového registru. Přenos je generován provedením nepodepsaného porovnání výsledku s kterýmkoli operandem, aby se zjistilo, zda je výsledek menší než kterýkoli z operandů. Pokud byl test pravdivý, hodnota jedna se zapíše do nejméně významného bitu cílového registru, aby se indikovala podmínka.
Registry
|
Architektura definuje sadu 32 celočíselných registrů a sadu 32 registrů s plovoucí desetinnou čárkou kromě čítače programu , dvou registrů zámku a řídicího registru s plovoucí desetinnou čárkou (FPCR). Rovněž definuje registry, které byly volitelné, implementované pouze v případě, že to implementace vyžadovala. Nakonec jsou definovány registry pro PALcode .
Celočíselné registry jsou označeny R0 až R31 a registry s plovoucí desetinnou čárkou jsou označeny F0 až F31. Registry R31 a F31 jsou pevně zapojeny na nulu a zápisy do těchto registrů podle pokynů jsou ignorovány. Digital zvažoval použití kombinovaného registrového souboru, ale soubor s rozděleným registrem byl určen jako lepší, protože umožňuje dvoučipovým implementacím mít registrový soubor umístěný na každém čipu a celočíselné implementace vynechat soubor registru s plovoucí desetinnou čárkou obsahující registry s plovoucí desetinnou čárkou. Soubor rozděleného registru byl také určen jako vhodnější pro problém s více instrukcemi kvůli sníženému počtu portů pro čtení a zápis. Uvažovalo se také o počtu registrů na soubor registru, přičemž uchazeči byli 32 a 64. Digital dospěl k závěru, že 32 registrů bylo vhodnější, protože vyžadovalo menší prostor matrice , což zlepšuje hodinové frekvence. Tento počet registrů nebyl považován za hlavní problém, pokud jde o výkon a budoucí růst, protože třicet dva registrů by mohlo podporovat vydání alespoň osmicestných instrukcí.
Pult programu je 64-bitový registr, který obsahuje virtuální bajt adresy longword zarovnaný, to znamená, že nízké dva bity čítače programu jsou vždy nulové. Když je instrukce dekódována, počítač se zvýší o čtyři na adresu další instrukce. Příkaz lock a registr uzamčené fyzické adresy jsou používány instrukcemi typu load-locked a store-conditional pro podporu více procesorů. Řídicí registr s plovoucí desetinnou čárkou (FPCR) je 64bitový registr definovaný architekturou určenou pro použití implementacemi Alpha s hardwarem s pohyblivou řádovou čárkou vyhovujícím IEEE 754 .
Typy dat
V architektuře Alpha je bajt definován jako 8bitový datum (oktet), slovo jako 16bitový datum, dlouhé slovo jako 32bitový datum, čtyřúhelník jako 64bitový datum a oktaword jako 128-bit datum.
Architektura Alpha původně definovala šest datových typů:
- Čtyřčíselné (64bitové) celé číslo
- Celé číslo s dlouhým slovem (32bitové)
- IEEE T s plovoucí desetinnou čárkou (dvojitá přesnost, 64bitová)
- IEEE S s plovoucí desetinnou čárkou (jednoduchá přesnost, 32bitová)
Aby byla zachována úroveň kompatibility s VAX , 32bitovou architekturou, která Alpha předcházela, jsou zahrnuty dva další datové typy s plovoucí desetinnou čárkou:
- VAX G s plovoucí desetinnou čárkou (dvojitá přesnost, 64bitová)
- VAX F s pohyblivou řádovou čárkou (jednoduchá přesnost, 32bitová)
- VAX H-plovoucí desetinná čárka (čtyřnásobná přesnost, 128bitová) nebyla podporována, ale na Alpha je k dispozici další 128bitová možnost s plovoucí desetinnou čárkou, X-floating point, ale ne VAX.
H a X byly popsány jako podobné, ale ne identické. Softwarová emulace pro H-floating je k dispozici od DEC, stejně jako převodník úrovně zdrojového kódu s názvem DECmigrate.
Paměť
Alpha má 64bitový lineární virtuální adresní prostor bez segmentace paměti. Implementace mohou implementovat menší virtuální adresní prostor s minimální velikostí 43 bitů. Ačkoli nepoužité bity nebyly implementovány v hardwaru, jako jsou TLB , architektura vyžadovala implementace ke kontrole, zda jsou nulové, aby byla zajištěna kompatibilita softwaru s implementacemi s větším (nebo plným) virtuálním adresním prostorem.
Formáty instrukcí
Alpha ISA má pevnou délku instrukce 32 bitů. Má šest formátů instrukcí.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Typ |
Opcode | Ra | Rb | Nepoužitý | 0 | Funkce | RC | Celočíselné ovládání | |||||||||||||||||||||||||
Opcode | Ra | Doslovný | 1 | Funkce | RC | Celočíselný provoz, doslovný | ||||||||||||||||||||||||||
Opcode | Ra | Rb | Funkce | RC | Operace s plovoucí desetinnou čárkou | |||||||||||||||||||||||||||
Opcode | Ra | Rb | Přemístění | Formát paměti | ||||||||||||||||||||||||||||
Opcode | Ra | Přemístění | Formát pobočky | |||||||||||||||||||||||||||||
Opcode | Funkce | Formát CALL_PAL |
Celočíselný provozní formát je používán celočíselnými instrukcemi. Obsahuje pole 6bitového operačního kódu, za ním následuje pole Ra, které určuje registr obsahující první operand a pole Rb, určuje registr obsahující druhý operand. Další je 3bitové pole, které je nepoužité a vyhrazené. 1bitové pole obsahuje „0“, které odlišuje tento formát od formátu celočíselného literálu. Následuje pole 7bitové funkce, které se používá ve spojení s operačním kódem k určení operace. Poslední pole je pole RC, které určuje registr, do kterého má být zapsán výsledek výpočtu. Pole registru jsou dlouhá 5 bitů, potřebných k adresování 32 unikátních míst, 32 celočíselných registrů.
Celočíselný literální formát používají celočíselné instrukce, které používají literál jako jeden z operandů. Formát je stejný jako celočíselný operační formát s výjimkou nahrazení 5bitového pole Rb a 3 bitů nevyužitého prostoru 8bitovým doslovným polem, které je nulově rozšířeno na 64bitový operand.
Operační formát s plovoucí desetinnou čárkou používají pokyny s plovoucí desetinnou čárkou. Je podobný formátu s celočíselným provozem, ale má 11bitové funkční pole umožněné pomocí doslovných a nepoužitých bitů, které jsou vyhrazeny pro celočíselný pracovní formát.
Formát paměti se používá většinou k načítání a ukládání pokynů. Má 6bitové pole opcode, 5bitové pole Ra, 5bitové pole Rb a 16bitové pole posunutí.
Pokyny větve mají 6bitové pole opcode, 5bitové pole Ra a 21bitové pole posunutí. Pole Ra určuje registr, který má být testován instrukcí podmíněné větve, a pokud je podmínka splněna, čítač programu se aktualizuje přidáním obsahu pole posunutí s čítačem programu. Pole posunutí obsahuje celé číslo se znaménkem a je -li hodnota celého čísla kladná, je -li braní přijato, čítač programu se zvýší. Pokud je hodnota celého čísla záporná, pak se programový čítač sníží, pokud je převzata větev. Rozsah větve je tedy ± 1 Mi instrukce, nebo ± 4 MiB. Architektura Alpha byla navržena s velkým rozsahem jako součást výhledu architektury do budoucnosti.
Formát CALL_PAL používá CALL_PAL
instrukce, která slouží k volání podprogramů PALcode . Formát zachovává pole opcode, ale nahrazuje ostatní 26bitovým funkčním polem, které obsahuje celé číslo určující podprogram PAL.
Instrukční sada
Pokyny k ovládání
Tyto řídicí instrukce skládají z podmíněných a nepodmíněných větví a skoky. Podmíněné a bezpodmínečné větvící instrukce používají formát instrukce větve, zatímco skokové instrukce používají formát instrukcí paměti.
Podmíněné větve otestují, zda je nejméně významný bit registru nastaven nebo vymazán, nebo porovnají registr jako podepsané čtyřslovné slovo s nulou a větví, pokud je zadaná podmínka pravdivá. Podmínky, které jsou k dispozici pro porovnávání registru s nulou, jsou rovnost, nerovnost, menší než, menší nebo rovna, větší nebo rovná a větší než. Nová adresa se vypočítá zarovnáním dlouhého slova a znaménkem prodlužujícím 21bitový posun a přidáním na adresu instrukce za podmíněnou větví.
Bezpodmínečné větve aktualizují čítač programu o novou adresu vypočítanou stejným způsobem jako podmíněné větve. Rovněž uloží adresu instrukce následující bezpodmínečné větve do registru. Existují dva takové pokyny a liší se pouze v nápovědách uvedených pro hardware predikce větví.
Existují čtyři instrukce ke skoku. Všichni provádějí stejnou operaci, ukládají adresu instrukce po skoku a poskytují čítači programu novou adresu z registru. Liší se radami poskytovanými hardwaru predikce větví. K tomu slouží pole nevyužitého posunutí.
Celočíselná aritmetika
Celočíselné aritmetické instrukce provádějí sčítání, násobení a odčítání u dlouhých a čtyř hesel; a srovnání na čtveřicích. Pro rozdělení neexistují žádné pokyny, protože architekti považovali implementaci rozdělení v hardwaru za nepříznivou pro jednoduchost. Kromě standardních pokynů pro sčítání a odčítání existují ještě zmenšené verze. Tyto verze před přidáním nebo odečtením posunou druhý operand doleva o dva nebo tři bity. Pokyny Multiply Longword a Multiply Quadword zapisují do cílového registru nejméně 32 nebo 64 bitů 64- nebo 128bitového výsledku. Protože je užitečné získat nejvýznamnější polovinu, je k dispozici instrukce Unsigned Multiply Quadword High (UMULH). UMULH se používá k implementaci více přesných aritmetických a dělících algoritmů. Koncept samostatné instrukce pro násobení, která vrací nejvýznamnější polovinu výsledku, byl převzat z PRISM .
Pokyny, které fungují na dlouhých slovech, ignorují nejvýznamnější polovinu registru a 32bitový výsledek se před zápisem do cílového registru rozšíří o znaménko. Ve výchozím nastavení pokyny pro sčítání, násobení a odčítání, s výjimkou UMULH a zmenšených verzí pro sčítání a odčítání, nezachytávají při přetečení. Pokud je taková funkce vyžadována, jsou k dispozici verze těchto pokynů, které provádějí detekci přetečení a zachycení při přetečení.
Porovnávací pokyny porovnávají dva registry nebo registr a doslovný zápis a do cílového registru zapisují „1“, pokud je zadaná podmínka pravdivá, nebo „0“, pokud ne. Podmínky jsou rovnost, nerovnost, menší nebo rovna a menší než. S výjimkou pokynů, které specifikují předchozí dvě podmínky, existují verze, které provádějí porovnávání podepsaných a nepodepsaných.
Celočíselné aritmetické instrukce používají celé instrukční formáty obsluhy.
Logické a posunové
Logické instrukce se skládají z těch, které provádějí bitové logické operace a podmíněné pohyby v celočíselných registrech. Bitové logické instrukce provádějí AND , NAND , NOR , OR , XNOR a XOR mezi dvěma registry nebo registrem a literálem. Pokyny k podmíněnému přesunu testují registr jako podepsané čtyřslovné slovo na nulu a přesouvají se, pokud je zadaná podmínka pravdivá. Uvedené podmínky jsou rovnost, nerovnost, menší nebo rovna, menší než, větší nebo rovná a větší než. Pokyny k řazení provádějí aritmetický posun doprava a logické posunutí doleva a doprava . Částka posunu je dána registrem nebo doslovně. Logické a směnové instrukce používají celé instrukční formáty.
Rozšíření
Byte-Word Extensions (BWX)
Pozdější Alphas zahrnují rozšíření o bajtová slova, sadu instrukcí pro manipulaci s 8bitovými a 16bitovými datovými typy. Tyto pokyny byly poprvé zavedeny v mikroprocesoru 21164A (EV56) a jsou přítomny ve všech následujících implementacích. Tyto pokyny provádějí operace, které dříve vyžadovaly implementaci více pokynů, což zlepšuje hustotu kódu a výkon určitých aplikací. BWX také usnadňuje emulaci strojového kódu x86 a psaní ovladačů zařízení .
Mnemotechnická pomůcka | Návod |
---|---|
LDBU
|
Načtěte nulově rozšířený bajt z paměti a zaregistrujte se |
LDWU
|
Načtěte z paměti slovo s nulovým rozšířením a zaregistrujte se |
SEXTB
|
Sign Extend Byte |
SEXTW
|
Podepsat Prodloužit slovo |
STB
|
Uložit bajt od registrace do paměti |
STW
|
Uložte slovo z registru do paměti |
Motion Video Instructions (MVI)
Motion Video Instructions (MVI) bylo rozšíření sady instrukcí k Alpha ISA, které přidalo pokyny pro operace s jednou instrukcí a více dat (SIMD). Alpha implementace, které implementují MVI, v chronologickém pořadí, jsou Alpha 21164PC (PCA56 a PCA57), Alpha 21264 (EV6) a Alpha 21364 (EV7). Na rozdíl od většiny ostatních SIMD instrukční sady stejného období, jako MIPS ' MDMX nebo SPARC ' s Visual Instruction Set , ale jako PA-RISC je multimediální zrychlení Extensions (MAX-1, MAX-2), MVI byla jednoduchá instrukční sada složený z několika instrukcí, které fungují na celočíselných datových typech uložených ve stávajících celočíselných registrech.
Jednoduchost MVI je dána dvěma důvody. Za prvé, Digital určil, že Alpha 21164 již byla schopná provádět dekódování DVD pomocí softwaru, takže pro tento účel nevyžaduje hardwarová opatření, ale byla neúčinná v kódování MPEG-2 . Druhým důvodem je požadavek na zachování rychlých cyklů implementací. Přidání mnoha instrukcí by komplikovalo a rozšířilo logiku dekódování instrukcí, což by snížilo frekvenci hodin implementace.
MVI se skládá ze 13 pokynů:
Mnemotechnická pomůcka | Návod |
---|---|
MAXSB8
|
Maximální počet podepsaných bytů ve vektoru |
MAXSW4
|
Maximálně podepsané slovo vektor |
MAXUB8
|
Maximální počet vektorů bez znaménka |
MAXUW4
|
Maximální počet vektorů bez znaménka |
MINSB8
|
Minimum vektoru podepsaného bajtu |
MINSW4
|
Minimum podepsaného slova vektor |
MINUB8
|
Minimum vektoru bez znaménka |
MINUW4
|
Minimum vektoru nepodepsaného slova |
PERR
|
Chyba pixelu |
PKLB
|
Zabalte dlouhá slova na bajty |
PKWB
|
Zabalte slova do bajtů |
UNPKBL
|
Rozbalte bajty na dlouhá slova |
UNPKBW
|
Rozbalte bajty na slova |
Rozšíření s pohyblivou řádovou čárkou (FIX)
Rozšíření s plovoucí desetinnou čárkou (FIX) jsou rozšířením architektury Alpha. Představuje devět instrukcí pro odmocninu s plovoucí desetinnou čárkou a pro přenos dat do az celočíselných registrů a registrů s plovoucí desetinnou čárkou. Alpha 21264 (EV6) je první mikroprocesor pro provádění těchto pokynů.
Mnemotechnická pomůcka | Návod |
---|---|
FTOIS
|
Plovoucí desetinná čárka na celé číslo Přesunout, S_floating |
FTOIT
|
Plovoucí desetinná čárka na celé číslo Move, T_floating |
ITOFF
|
Celé číslo s pohyblivou čárkou Register Move, F_floating |
ITOFS
|
Celé číslo s pohyblivou čárkou Register Move, S_floating |
ITOFT
|
Celé číslo s pohyblivou čárkou Register Move, T_floating |
SQRTF
|
Druhá odmocnina F_floating |
SQRTG
|
Druhá odmocnina G_floating |
SQRTS
|
Druhá odmocnina S_floating |
SQRTT
|
Druhá odmocnina T_floating |
Count Extensions (CIX)
Count Extensions (CIX) je rozšíření architektury, které zavádí tři instrukce pro počítání bitů. Tyto instrukce jsou kategorizovány jako celočíselné aritmetické instrukce. Poprvé byly implementovány na Alpha 21264A ( EV67 ).
Mnemotechnická pomůcka | Návod |
---|---|
CTLZ
|
Počítat nulu |
CTPOP
|
Počet obyvatel |
CTTZ
|
Count Trailing Zero |
Implementace
V době svého oznámení byla Alpha ohlašována jako architektura na dalších 25 let. Ačkoli to nemělo být, Alpha má přesto přiměřeně dlouhý život. První verze, Alpha 21064 (jinak známá jako EV4 ) byla představena v listopadu 1992 s frekvencí až 192 MHz; mírné zmenšení matrice ( EV4S , zmenšené z 0,75 µm na 0,675 µm) proběhlo na 200 MHz o několik měsíců později. 64bitový procesor byl superpipelinovaný a superskalární design, stejně jako ostatní designy RISC, ale přesto je všechny překonal a DEC to nabídlo jako nejrychlejší procesor na světě. Pečlivá pozornost věnovaná návrhu obvodů, charakteristickému znaku konstrukčního týmu Hudson, jim jako obrovské centralizované hodinové obvody umožňovala provozovat CPU vyššími rychlostmi, přestože mikroarchitektura byla dosti podobná ostatním čipům RISC. Pro srovnání, levnější Intel Pentium běžel na 66 MHz, když byl spuštěn následující jaro.
Alpha 21164 nebo EV5 byly k dispozici v roce 1995 na procesoru frekvencích až do 333 MHz. V červenci 1996 byla trať naražena na 500 MHz, v březnu 1998 na 666 MHz. Také v roce 1998 byl Alpha 21264 ( EV6 ) vydán na frekvenci 450 MHz, nakonec dosáhl (v roce 2001 s 21264C / EV68CB ) 1,25 GHz. V roce 2003 byla uvedena na trh Alpha 21364 nebo EV7 Marvel , v podstatě jádro EV68 se čtyřmi meziprocesorovými komunikačními spoji 1,6 GB/s pro lepší výkon víceprocesorového systému, běžící na frekvenci 1 nebo 1,15 GHz.
V roce 1996 byla výroba čipů Alpha licencována společnosti Samsung Electronics Company . Po koupi Digital od Compaq byla většina produktů Alpha umístěna u API NetWorks, Inc. (dříve Alpha Processor Inc.), soukromé společnosti financované společnostmi Samsung a Compaq. V říjnu 2001 se společnost Microway stala výhradním poskytovatelem prodeje a služeb produktové řady Alpha založené na API NetWorks.
Dne 25. června 2001, Compaq oznámil, že Alpha bude vyřazen v roce 2004 ve prospěch společnosti Intel ‚s Itanium , zrušil plánovanou EV8 čip, a prodal veškerý Alpha duševní vlastnictví společnosti Intel . Společnost HP, nový vlastník Compaqu později téhož roku, oznámila, že vývoj řady Alpha bude pokračovat ještě několik let, včetně vydání varianty EV7 1,3 GHz s názvem EV7z . To by byla konečná iterace Alpha, 0,13 µm EV79 by byl také zrušen.
Alpha je také implementována do Piranha , prototypu výzkumu vyvinutého skupinami Compaq pro firemní výzkum a nonstop vývoj hardwaru v Western Research Laboratory and Systems Research Center. Piranha je vícejádrový design pro úlohy zpracování transakcí, který obsahuje osm jednoduchých jader. Bylo to popsáno na 27. výročním mezinárodním sympoziu o počítačové architektuře v červnu 2000.
Historie modelu
Modelka | Modelové číslo | Rok | Frekvence [MHz] | Proces [µm] | Tranzistory [miliony] | Velikost zápustky [mm 2 ] | IO piny | Výkon [W] | Napětí | Dcache [KB] | Icache [KB] | Scache | Bcache | JE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EV4 | 21064 | 1992 | 100–200 | 0,75 | 1,68 | 234 | 290 | 30 | 3.3 | 8 | 8 | - | 128 kB - 16 MB | ||
EV4S | 21064 | 1993 | 100–200 | 0,675 | 1,68 | 186 | 290 | 27 | 3.3 | 8 | 8 | - | 128 kB - 16 MB | ||
EV45 | 21064A | 1994 | 200–300 | 0,5 | 2,85 | 164 | 33 | 3.3 | 16 | 16 | - | 256 kB - 16 MB | |||
LCA4 | 21066 | 1993 | 100–166 | 0,675 | 1,75 | 209 | 21 | 3.3 | 8 | 8 | - | ||||
LCA4 | 21068 | 1994 | 66 | 0,675 | 1,75 | 209 | 9 | 3.3 | 8 | 8 | - | ||||
LCA45 | 21066A | 1994 | 100–266 | 0,5 | 1,8 | 161 | 23 | 3.3 | 8 | 8 | - | ||||
LCA45 | 21068A | 1994 | 100 | 0,5 | 1,8 | 161 | 3.3 | 8 | 8 | - | |||||
EV5 | 21164 | 1995 | 266–500 | 0,5 | 9.3 | 299 | 296 | 56 | 3,3/2,5 | 8 | 8 | 96 kB | Až 64 MB | R. | |
EV56 | 21164A | 1996 | 366–666 | 0,35 | 9,66 | 209 | 31–55 | 3,3/2,5 | 8 | 8 | 96 kB | Až 64 MB | R, B. | ||
PCA56 | 21164PC | 1997 | 400–533 | 0,35 | 3.5 | 141 | 264 | 26–35 | 3,3/2,5 | 8 | 16 | - | 512 kB - 4 MB | R, B, M | |
PCA57 | 21164PC | 600–666 | 0,28 | 5.7 | 101 | 283 | 18–23 | 2,5/2,0 | 16 | 32 | - | 512 kB - 4 MB | R, B, M | ||
EV6 | 21264 | 1998 | 450–600 | 0,35 | 15.2 | 314 | 389 | 73 | 2.0 | 64 | 64 | - | 2–8 MB | R, B, M, F | |
EV67 | 21264A | 1999 | 600–750 | 0,25 | 15.2 | 210 | 389 | 2.0 | 64 | 64 | - | 2–8 MB | R, B, M, F, C. | ||
EV68AL | 21264B | 2001 | 800–833 | 0,18 | 15.2 | 125 | 1.7 | 64 | 64 | - | 2–8 MB | R, B, M, F, C, T | |||
EV68CB | 21264C | 2001 | 1000–1250 | 0,18 | 15.2 | 125 | 65–75 | 1,65 | 64 | 64 | - | 2–8 MB | R, B, M, F, C, T | ||
EV68CX | 21264D | 1,65 | 64 | 64 | - | 2–8 MB | R, B, M, F, C, T | ||||||||
EV7 | 21364 | 2003 | 1000–1150 | 0,18 | 130 | 397 | 125 | 1.5 | 64 | 64 | 1,75 MB | - | R, B, M, F, C, T | ||
EV7z | 21364 | 2004 | 1300 | 0,18 | 130 | 397 | 125 | 1.5 | 64 | 64 | 1,75 MB | - | R, B, M, F, C, T | ||
Zrušeno | |||||||||||||||
EV78/EV79 | 21364A | V plánu pro rok 2004 | 1700 | 0,13 | 152 | 300 | 120 | 1.2 | 64 | 64 | 1,75 MB | - | R, B, M, F, C, T | ||
EV8 | 21464 | Plánováno na rok 2003 | 1200–2 000 | 0,125 | 250 | 420 | 1800 | ?? | 1.2 | 64 | 64 | 3 MB | - | R, B, M, F, C, T | |
Modelka | Modelové číslo | Rok | Frekvence [MHz] | Proces [µm] | Tranzistory [miliony] | Velikost zápustky [mm²] | IO piny | Výkon [W] | Napětí | Dcache [KB] | Icache [KB] | Scache | Bcache | JE |
- Rozšíření ISA
- R - Hardwarová podpora zaokrouhlování na nekonečno a záporné nekonečno.
- B- BWX, „Byte/Word Extension“, přidání instrukcí umožňujících 8- a 16bitové operace z paměti a I/O
- M - MVI, „multimediální“ instrukce
- F - FIX, instrukce pro přesun dat mezi celočíselnými a plovoucí desetinnými čárkami a pro odmocninu
- C - CIX, instrukce pro počítání a hledání bitů
- T - podpora předběžného načtení s úmyslem upravit, aby se zlepšil výkon prvního pokusu o získání zámku
Výkon
Pro ilustraci srovnávacího výkonu systémů založených na Alpha jsou níže uvedena některá čísla výkonu SPEC (SPECint95, SPECfp95). Výsledky SPEC tvrdí, že hlásí naměřený výkon celého počítačového systému (CPU, sběrnice, paměť, optimalizátor kompilátoru), nejen CPU. Mějte také na paměti, že měřítko a měřítko se změnily od roku 1992 do roku 1995. Čísla však poskytují hrubý dojem o výkonu architektury Alpha (64bitová) ve srovnání se současnými nabídkami HP (64bitové) a Intel ( 32bitové). Snad nejzjevnějším trendem je, že zatímco Intel se vždy mohl rozumně přiblížit Alpha v celočíselném výkonu, ve výkonu s pohyblivou řádovou čárkou byl rozdíl značný. Na druhé straně je HP ( PA-RISC ) také poměrně blízko Alpha, ale tyto CPU běží na výrazně nižších taktech (MHz). V tabulkách chybí dvě důležité hodnoty: spotřeba energie a cena CPU.
|
|
Alfa systémy
První generace systémů založených na DEC Alpha zahrnuje pracovní stanice řady DEC 3000 AXP a servery nižší třídy, servery střední třídy řady DEC 4000 AXP a servery DEC řady 7000 AXP a 10 000 AXP . Systémy DEC 3000 AXP používají stejnou sběrnici TURBOchannel jako předchozí modely DECstation založené na MIPS , zatímco 4000 je založen na FutureBus+ a 7000/10000 sdílí architekturu s odpovídajícími modely VAX .
DEC také produkoval PC -jako Alpha pracovní stanice s EISA sběrnicí, DECpc AXP 150 (kódové označení „Jensen“, také známý jako DEC 2000 AXP). Toto je první systém Alpha, který podporuje Windows NT . DEC později produkoval Alpha verze jejich Celebris XL a Digital Personal Workstation PC linek, s 21164 procesory.
Digital také vyráběl jednodeskové počítače založené na VMEbus pro vestavěné a průmyslové použití. První generace zahrnuje 21068 AXPvme 64 a AXPvme 64LC a 21066 AXPvme 160. Ty byly představeny 1. března 1994. Pozdější modely jako AXPvme 100, AXPvme 166 a AXPvme 230 jsou založeny na procesoru 21066A , zatímco Alpha VME 4/224 a Alpha VME 4/288 jsou založeny na procesoru 21064A. Poslední modely, Alpha VME 5/352 a Alpha VME 5/480, jsou založeny na procesoru 21164.
Čip 21066 je použit v kompaktní pracovní stanici DEC Multia VX40/41/42 a notebooku ALPHAbook 1 od Tadpole Technology.
V roce 1994 uvedla společnost DEC na trh novou řadu systémů AlphaStation a AlphaServer . Ty používají procesory 21064 nebo 21164 a zavedly sběrnici PCI , rámcové vyrovnávací paměti kompatibilní s VGA a klávesnice a myši ve stylu PS/2 . Řada AlphaServer 8000 nahrazuje DEC 7000/10000 AXP a také využívá autobusy XMI a FutureBus+.
AlphaStation XP1000 je první pracovní stanice založená na procesoru 21264. Pozdější modely AlphaServer/Station založené na 21264 jsou kategorizovány do rodin DS (serverový server), ES (podnikový server) nebo GS (globální server).
Konečný čip 21364 je použit v modelech AlphaServer ES47, ES80 a GS1280 a AlphaStation ES47.
Řada OEM základních desek byla vyrobena společností DEC, například 2106 a 21068 na bázi AXPpci 33 „NoName“, která byla součástí významného posunu na trh OEM společností, AlphaPC 164 se sídlem 21164 a AlphaPC 164LX, AlphaPC 164SX na bázi 21164PC a AlphaPC 164RX a AlphaPC 264DP na bázi 21264. Několik třetích stran, jako jsou Samsung a API, také vyrábělo základní desky OEM, jako jsou API UP1000 a UP2000.
Aby společnost DEC pomohla třetím stranám při vývoji hardwaru a softwaru pro tuto platformu, vyrobila zkušební desky, jako jsou EB64+ a EB164 pro mikroprocesory Alpha 21064A a 21164.
Procesory 21164 a 21264 používala společnost NetApp v různých síťových úložných systémech, zatímco procesory 21064 a 21164 používal Cray ve svých masivně paralelních superpočítačích T3D a T3E .
Superpočítače
Nejrychlejší superpočítač založený na procesorech Alpha je ASCI Q v Los Alamos National Laboratory. Stroj byl postaven jako klastr HP AlphaServer SC45/GS. To mělo 4096 Alpha (21264 EV-68, 1,25 GHz) CPU, a dosáhl R max o 7.727 TFLOPS .
Poznámky
Reference
externí odkazy
- Příručka architektury Alpha, verze 4
- Příručka architektury Alpha, verze 3
- Digital Technical Journal, Volume 4, Number 4, Special Issue 1992 Alpha AXP Architecture and Systems Toto vydání obsahuje několik článků od Alpha's Architects
- Archivovaná knihovna technické dokumentace Tento odkaz obsahuje referenční příručky k hardwaru a datové listy pro mikroprocesory Alpha, čipové sady a základní desky OEM. Obsahuje Alpha Architecture Handbook a různé programovací manuály.
- Rozhovor s Danem Dobberpuhlem (1. října 2003)
- Přednášky Dr. Bruce Huttona o počítačové architektuře