IA -64 - IA-64

Architektura Intel Itanium
Návrhář HP a Intel
Bity 64bitové
Představeno 2001
Design EPICKÉ
Typ Registrace-registrace
Kódování Pevný
Větvení Registrace stavu
Endianness Volitelné
Registry
Obecný účel 128 (64 bitů plus 1 trap bit ; 32 je statických, 96 používá registrová okna ); 64 1bitových predikátových registrů
Plovoucí bod 128
Architektura Intel Itanium

IA-64 ( Intel Itanium architektura ) je instrukční sady architektury (ISA) z Itanium rodiny 64bitových Intel mikroprocesorech . Základní specifikace ISA pochází od společnosti Hewlett-Packard (HP) a byla vyvinuta a poté implementována do nové procesorové mikroarchitektury společností Intel s pokračujícím partnerstvím a odbornými znalostmi HP o základních konceptech návrhu EPIC. Aby společnost Intel zjistila, co bylo jejich prvním novým ISA za posledních 20 let, a uvedla na trh zcela novou produktovou řadu, investovala obrovské investice do definice produktů, designu, nástrojů pro vývoj softwaru, OS, partnerství softwarového průmyslu a marketingu. Na podporu této snahy vytvořil Intel největší designérský tým ve své historii a nový marketingový a průmyslový tým, který je zcela oddělený od x86. První procesor Itanium s kódovým označením Merced byl uveden na trh v roce 2001.

Architektura Itanium je založena na explicitním paralelismu na úrovni instrukcí , ve kterém kompilátor rozhoduje, které instrukce bude provádět paralelně. To je v kontrastu se superskalárními architekturami, které závisejí na procesoru pro správu závislostí instrukcí za běhu. Ve všech modelech Itanium, až do Tukwila včetně , jádra provádějí až šest instrukcí za hodinový cyklus .

V roce 2008 byla Itanium čtvrtou nejrozšířenější mikroprocesorovou architekturou pro systémy podnikové třídy , hned za x86-64 , Power ISA a SPARC .

Dějiny

Vývoj: 1989–2000

V roce 1989 se společnost HP začala obávat, že se architektury redukované výpočetní sady instrukcí (RISC) blíží limitu zpracování v jedné instrukci za cyklus . Výzkumníci společnosti Intel i HP zkoumali možnosti počítačové architektury pro budoucí návrhy a samostatně začali zkoumat nový koncept známý jako velmi dlouhé instrukční slovo (VLIW), který vyšel z výzkumu Yale University na začátku 80. let minulého století. VLIW je koncept počítačové architektury (jako RISC a CISC), kde jedno instrukční slovo obsahuje více instrukcí zakódovaných v jednom velmi dlouhém instrukčním slovu, aby procesor usnadnil provádění více instrukcí v každém hodinovém cyklu. Typické implementace VLIW se do značné míry spoléhají na sofistikované kompilátory, které v době kompilace určí, které instrukce lze provést současně, a správné naplánování provádění těchto instrukcí a také pomůže předvídat směr operací poboček. Hodnota tohoto přístupu spočívá v odvedení užitečnější práce v menším počtu hodinových cyklů a zjednodušení plánování instrukcí procesoru a hardwarových požadavků na predikci větví s penalizací za zvýšenou složitost procesoru, náklady a spotřebu energie výměnou za rychlejší provedení.

Výroba

Během této doby začala společnost HP věřit, že vývoj vlastních patentovaných mikroprocesorů pro jednotlivé společnosti podnikových systémů, jako je ona sama, již není nákladově efektivní. Společnost Intel také zkoumala několik architektonických možností, které by šly nad rámec standardu x86 ISA a řešily požadavky na špičkové podnikové servery a vysoce výkonné výpočetní technologie (HPC). Intel a HP se proto v roce 1994 spojily s vývojem IA-64 ISA pomocí variace návrhových konceptů VLIW, které Intel pojmenoval výslovně paralelní instrukční výpočet (EPIC). Cílem společnosti Intel bylo využít odborné znalosti, které společnost HP vyvinula při své rané práci v oblasti VLIW, spolu s vlastními, a vyvinout tak objemovou produktovou řadu zaměřenou na servery špičkové podnikové třídy a vysoce výkonné výpočetní systémy (HPC), které by bylo možné prodat všem původním výrobcům zařízení. (OEM), zatímco společnost HP si přála mít možnost zakoupit běžné procesory postavené na objemové výrobě a špičkové technologické technologii společnosti Intel, které byly vyšší výkon a cenově výhodnější než jejich současné procesory PA-RISC. Protože výsledné produkty by patřily společnosti Intel (HP by byl jedním z mnoha zákazníků) a aby se dosáhlo objemů nezbytných pro úspěšnou produktovou řadu, bylo by zapotřebí, aby produkty Itanium splňovaly potřeby širší zákaznické základny a softwarových aplikací, OS a pro tyto zákazníky budou k dispozici vývojové nástroje. To vyžadovalo, aby produkty Itanium byly navrhovány, dokumentovány a vyráběny a aby kvalita a podpora odpovídaly ostatním produktům společnosti Intel. Intel se proto ujal vedení v oblasti návrhu mikroarchitektury, produktizace (balení, testování a všechny další kroky), průmyslového softwaru a operačního systému umožňujícího (Linux a Windows NT) a marketingu. Jako součást definice a marketingového procesu společnosti Intel zapojili širokou škálu dodavatelů podnikových OEM, softwaru a operačních systémů, jakož i koncových zákazníků, aby porozuměli jejich požadavkům a zajistili, že se promítnou do produktové řady tak, aby splňovaly potřeby široká škála zákazníků a koncových uživatelů. Společnost HP významně přispěla k definici ISA, mikroarchitektuře Merced/Itanium a Itanium 2, ale odpovědnost za produktivitu měla společnost Intel. Původním cílem dodávat první produkt z rodiny Itanium (s kódovým označením Merced) byl rok 1998.

Marketing

Snahy společnosti Intel o marketing produktů a zapojení průmyslu byly značné a dosáhly vítězných návrhů u většiny OEM podnikových serverů včetně těch, které byly v té době založeny na procesorech RISC, analytici z oboru předpovídali, že IA-64 bude dominovat na serverech, pracovních stanicích a špičkových stolních počítačích, a případně nahradí architektury RISC a CISC ( Complex Instruction Set Computing ) pro všechny aplikace pro všeobecné účely. Společnosti Compaq a Silicon Graphics se rozhodly upustit od dalšího vývoje architektury Alpha a MIPS ve prospěch migrace na IA-64.

V roce 1997 bylo zřejmé, že implementace architektury IA-64 a kompilátoru je mnohem obtížnější, než se původně předpokládalo, a dodávka Itanium začala klouzat. Protože Itanium byl vůbec prvním procesorem EPIC, vývojové úsilí narazilo na více neočekávaných problémů, než na jaké byl tým zvyklý. Koncept EPIC navíc závisí na schopnostech kompilátoru, které nikdy předtím nebyly implementovány, takže byl zapotřebí další výzkum.

Několik skupin vyvinulo operační systémy pro architekturu, včetně Microsoft Windows a Unix a unixovým systémům, jako jsou Linux , HP-UX , FreeBSD , Solaris , Tru64 UNIX a Monterey/64 (poslední tři byly zrušeny, než se dostaly na trh). V roce 1999 Intel vedl vytvoření konsorcia s otevřeným zdrojovým kódem pro přenos Linuxu na IA-64 s názvem „Trillium“ (a později přejmenovaný na „Trillian“ kvůli problému s ochrannou známkou), který vedl Intel a zahrnoval Caldera Systems , CERN , Cygnus Solutions , Hewlett-Packard, IBM, Red Hat , SGI , SuSE , TurboLinux a VA Linux Systems . Výsledkem bylo, že funkční IA-64 Linux byl dodán s předstihem a byl prvním operačním systémem, který běžel na nových procesorech Itanium.

Intel oznámil oficiální název procesoru Itanium 4. října 1999. Během několika hodin byl název Itanic vytvořen na diskusní skupině Usenet jako slovní hříčka názvu Titanic , „nepotopitelné“ zaoceánské lodi, která se potopila při své první plavbě v roce 1912.

Itanium (Merced): 2001

Itanium (Merced)
KL Intel Itanium ES.jpg
Procesor Itanium
Obecná informace
Spuštěno Červen 2001
Přerušeno Červen 2002
Běžní výrobci
Výkon
Max. Taktovací frekvence CPU 733 MHz až 800 MHz
Rychlost FSB 266 MT/s
Mezipaměti
Mezipaměť L2 96 kB
Mezipaměť L3 2 nebo 4 MB
Architektura a klasifikace
Instrukční sada Itanium
Fyzické specifikace
Jádra
Zásuvka
Produkty, modely, varianty
Základní jména

V době, kdy byl Itanium vydán v červnu 2001, jeho výkon nebyl lepší než u konkurenčních procesorů RISC a CISC.

Společnost Intel si uvědomila, že nedostatek softwaru může být vážným problémem do budoucna, a proto tisíce těchto raných systémů zpřístupnil nezávislým prodejcům softwaru (ISV), aby stimuloval vývoj. Společnosti HP a Intel uvedly procesor Itanium 2 příští generace na trh o rok později.

Itanium 2: 2002–2010

Itanium 2 (McKinley)
KL Intel Itanium2.jpg
Procesor Itanium 2
Obecná informace
Spuštěno 2002
Přerušeno současnost, dárek
Navrhl Intel
Běžní výrobci
Výkon
Max. Taktovací frekvence CPU 733 MHz až 2,66 GHz
Mezipaměti
Mezipaměť L2 256 KB na Itanium2
256 KB (D) + 1 MB (I) nebo 512 KB (I) na (řada Itanium2 9x00)
Mezipaměť L3 1,5–32 MB
Architektura a klasifikace
Instrukční sada Itanium
Fyzické specifikace
Jádra
Zásuvka
Produkty, modely, varianty
Základní jména
Itanium 2 v roce 2003

Itanium 2 Procesor byl propuštěn v roce 2002. To ulevilo mnoho problémů s výkonem původního procesoru Itanium, které byly většinou způsobeny neefektivní paměťového subsystému.

V roce 2003 AMD vydala Opteron , který implementoval vlastní 64bitovou architekturu ( x86-64 ). Opteron získal rychlé přijetí v prostoru podnikového serveru, protože poskytoval snadný upgrade z x86 . Společnost Intel odpověděla implementací x86-64 (jako Em64t ) ve svých mikroprocesorech Xeon v roce 2004.

V listopadu 2005 se hlavní výrobci serverů Itanium spojili se společností Intel a řadou prodejců softwaru, aby vytvořili alianci Itanium Solutions Alliance za účelem podpory architektury a zrychlení přenesení softwaru.

V roce 2006 Intel dodal Montecito (prodávaný jako řada Itanium 2 9000 ), dvoujádrový procesor, který zhruba zdvojnásobil výkon a snížil spotřebu energie asi o 20 procent.

Itanium 9300 (Tukwila): 2010

Itanium 9300 procesorů řady s kódovým označením Tukwila , byl propuštěn dne 8. února 2010 s výkonem větším a paměťovou kapacitu. Tukwila měla původně vyjít v roce 2007.

Zařízení využívá 65nm proces, obsahuje dvě až čtyři jádra, až 24  MB mezipaměti on-die, technologii Hyper-Threading a integrované řadiče paměti. Implementuje opravu dat dvojitého zařízení (DDDC), která pomáhá opravit chyby paměti. Tukwila také implementuje Intel QuickPath Interconnect (QPI), který nahradí architekturu založenou na sběrnici Itanium. Má špičkovou meziprocesorovou šířku pásma 96 GB/s a špičkovou šířku pásma paměti 34 GB/s. Díky aplikaci QuickPath má procesor integrované řadiče paměti a přímo propojuje paměť pomocí rozhraní QPI pro přímé připojení k jiným procesorům a I/O hubům. QuickPath se také používá na procesorech Intel využívajících mikroarchitekturu Nehalem , takže je pravděpodobné, že Tukwila a Nehalem budou moci používat stejné čipové sady. Tukwila obsahuje čtyři paměťové řadiče, z nichž každý podporuje více DDR3 DIMM prostřednictvím samostatného paměťového řadiče, podobně jako procesor Xeon s kódovým názvem Beckton na bázi Nehalemu .

Itanium 9500 (Poulson): 2012

Procesor řady Itanium 9500 s kódovým označením Poulson je pokračovatelem procesoru Tukwila s osmi jádry, architekturou s 12 problémy, vícevláknovými vylepšeními a novými pokyny, které využívají výhody paralelismu, zejména ve virtualizaci. Velikost mezipaměti Poulson L3 je 32 MB. Velikost mezipaměti L2 je 6 MB, 512 I  KB , 256 D KB na jádro. Velikost matrice je 544 mm², což je méně než u předchůdce Tukwila (698,75 mm²).

Na ISSCC 2011 společnost Intel představila dokument nazvaný „32nm 3,1 miliardy tranzistorových 12-širokoúhlých procesorů Itanium pro servery kritické mise“. Vzhledem k historii společnosti Intel v odhalování podrobností o mikroprocesorech Itanium na ISSCC se tento článek nejspíše týká Poulsona. Analytik David Kanter spekuluje, že Poulson bude používat novou mikroarchitekturu s pokročilejší formou vícevláknových vláken, která využívá až dvě vlákna, aby zlepšila výkon pro pracovní zátěže s jedním vláknem a více vlákny. Na konferenci Hotchips byly zveřejněny některé nové informace . Nové informace představují vylepšení multithreadingu, vylepšení odolnosti (Instruction Replay RAS) a několik nových instrukcí (priorita vlákna, celočíselné instrukce, předběžné načítání mezipaměti, rady pro přístup k datům).

Itanium 9700 (Kittson): 2017

Kittson je stejný jako 9500 Poulson, ale o něco výše.

Konec životnosti: 2021

V lednu 2019 společnost Intel oznámila, že Kittson bude ukončen s posledním datem objednávky v lednu 2020 a posledním datem dodání v červenci 2021.

Neexistuje žádný plánovaný nástupce.

Architektura

Intel rozsáhle zdokumentoval instrukční sadu Itanium a technický tisk poskytl přehledy. Architektura byla během své historie několikrát přejmenována. Společnost HP ji původně nazvala PA-WideWord . Intel později nazval IA-64 , pak Itanium Processor Architecture (IPA), než se usadil na Intel Itanium Architecture , ale stále je široce označován jako IA-64 .

Jedná se o 64bitovou výslovně paralelní architekturu bohatou na registry. Základní datové slovo je 64 bitů, adresovatelné podle bajtů. Adresa logický prostor 2 64 bajtů. Architektura implementuje predikci , spekulaci a predikci větví . K předávání parametrů používá okno registru s proměnnou velikostí. Stejný mechanismus se také používá k povolení paralelního provádění smyček. Spekulace, predikce, predikce a přejmenování jsou pod kontrolou překladače: každé instrukční slovo k tomu obsahuje další bity. Tento přístup je charakteristickou vlastností architektury.

Architektura implementuje velký počet registrů:

  • Ke spekulativnímu provádění se používá 128 obecných celočíselných registrů , které jsou 64bitové plus jeden bit bitů („NaT“, což znamená „není to věc“) . 32 z nich je statických, dalších 96 je naskládáno pomocí registračních oken s proměnnou velikostí nebo otáčením pro smyčky s potrubím. vždy čte 0.gr0
  • 128 registrů s plovoucí desetinnou čárkou . Registry s pohyblivou řádovou čárkou jsou dlouhé 82 bitů, aby byla zachována přesnost pro mezivýsledky. Namísto vyhrazeného bitu „NaT“ jako celočíselné registry mají registry s plovoucí desetinnou čárkou hodnotu pasti nazvanou „NaTVal“ („Not a Thing Value“), podobnou (ale odlišnou od) NaN . Ty také mají 32 statických registrů a 96 okenních nebo otočných registrů. vždy čte +0,0 a vždy čte +1,0.fr0fr1
  • 64 jednobitových predikátových registrů. Ty mají také 32 statických registrů a 96 okenních nebo otočných registrů. vždy čte 1 (true).pr0
  • 8 pobočkových registrů pro adresy nepřímých skoků. je nastavena na zpáteční adresu, když je funkce volána pomocí .br0br.call
  • 128 registrů pro zvláštní účely (neboli „aplikace“), které jsou většinou zajímavé pro jádro a ne pro běžné aplikace. Například jeden registr nazvaný bspukazuje na druhý zásobník, kde hardware automaticky vysype registry, když se okno registru obalí.

Každé 128bitové instrukční slovo se nazývá svazek a obsahuje tři sloty, z nichž každý obsahuje 41bitovou instrukci , plus 5bitovou šablonu udávající, jaký typ instrukce je v každém slotu. Těmito typy jsou jednotka M (instrukce paměti), jednotka I (celočíselná ALU, jiné číslo než ALU nebo dlouhé okamžité rozšířené instrukce), jednotka F (instrukce s plovoucí desetinnou čárkou) nebo jednotka B (rozšířená větev nebo dlouhá větev instrukce). Šablona také kóduje zastávky, které indikují, že mezi daty před a po zastavení existuje závislost na datech. Všechny instrukce mezi dvojicí zastávek tvoří skupinu instrukcí , bez ohledu na jejich svazkování, a musí být prosté mnoha typů datových závislostí; tyto znalosti umožňují procesoru provádět souběžně instrukce, aniž by musel provádět vlastní komplikovanou analýzu dat, protože tato analýza již byla provedena při psaní pokynů.

V každém slotu jsou predikovány všechny instrukce kromě několika, které určují predikátový registr, jehož hodnota (true nebo false) určí, zda je instrukce provedena. Predikované instrukce, které by měly být vždy provedeny, jsou predikovány na , což vždy zní jako pravdivé. pr0

Jazyk a formát instrukcí IA-64 byl záměrně navržen tak, aby je psal hlavně překladač, nikoli člověk. Pokyny musí být seskupeny do svazků po třech a zajistit, aby tyto tři pokyny odpovídaly povolené šabloně. Pokyny musí vydávat zastávky mezi určitými typy závislostí na datech a zastávky lze také použít pouze na omezených místech podle povolených šablon.

Provedení instrukce

Mechanismus načítání může z mezipaměti L1 načíst až dva svazky za hodiny do kanálu. Když kompilátor toho může maximálně využít, může procesor provést šest instrukcí za hodinový cyklus. Procesor má třicet funkčních prováděcích jednotek v jedenácti skupinách. Každá jednotka může vykonávat konkrétní podmnožinu sady instrukcí a každá jednotka provádí rychlostí jedné instrukce za cyklus, pokud provádění nezastaví čekání na data. I když ne všechny jednotky ve skupině provádějí identické podmnožiny instrukční sady, běžné instrukce lze provádět ve více jednotkách.

Skupiny prováděcích jednotek zahrnují:

  • Šest ALU pro všeobecné použití, dvě celočíselné jednotky, jedna směnná jednotka
  • Čtyři jednotky mezipaměti dat
  • Šest multimediálních jednotek, dvě jednotky paralelního posunu, jedna paralelní násobení, jeden počet obyvatel
  • Dvě 82bitové jednotky násobení – akumulace s pohyblivou řádovou čárkou , dvě jednotky SIMD s násobením – čárkou s akumulací-dvě (každá 32bitová operace)
  • Tři větve

V ideálním případě může kompilátor často seskupovat pokyny do sad po šesti, které lze spustit současně. Protože jednotky s plovoucí desetinnou čárkou implementují operaci násobení a akumulace , může jedna instrukce s plovoucí desetinnou čárkou vykonávat práci dvou instrukcí, když aplikace vyžaduje násobení následované přidáním: to je ve vědeckém zpracování velmi běžné. Když k tomu dojde, procesor může provést čtyři FLOPy za cyklus. Například Itanium 800 MHz mělo teoretické hodnocení 3,2 G FLOPS a nejrychlejší Itanium 2 s frekvencí 1,67 GHz 6,67 GFLOPS.

V praxi může být procesor často nedostatečně využíván, přičemž ne všechny sloty jsou naplněny užitečnými pokyny kvůli např. Závislostem na datech nebo omezením dostupných šablon balíků. Nejhustší možný kód vyžaduje 42,6 bitů na instrukci, ve srovnání s 32 bitů na instrukci na tradičních RISC procesorech té doby, a ne-operace kvůli zbytečným slotům dále snižují hustotu kódu. Dodatečné pokyny pro spekulativní zatížení a rady pro větve a mezipaměť je obtížné optimálně generovat, a to i u moderních překladačů.

Architektura paměti

Od roku 2002 do roku 2006 sdílely procesory Itanium 2 společnou hierarchii mezipaměti. Měli 16 kB mezipaměti instrukcí úrovně 1 a 16 kB mezipaměti dat úrovně 1. Mezipaměť L2 byla sjednocena (instrukce i data) a má 256 kB. Rovněž byla sjednocena mezipaměť úrovně 3 a měla různou velikost od 1,5 MB do 24 MB. Mezipaměť 256 kB L2 obsahuje dostatečnou logiku pro zpracování semaforových operací bez narušení hlavní aritmetické logické jednotky (ALU).

Hlavní paměť je přístupná přes sběrnici do čipové sady mimo čip . Autobus Itanium 2 byl původně nazýván autobusem McKinley, ale nyní je obvykle označován jako autobus Itanium. S novými verzemi procesorů se rychlost sběrnice neustále zvyšuje. Sběrnice přenáší 2 × 128 bitů za hodinový cyklus, takže sběrnice McKinley 200 MHz přenášela 6,4 GB/ s a ​​sběrnice Montecito 533 MHz přenáší 17,056 GB/ s

Architektonické změny

Procesory Itanium vydané před rokem 2006 měly hardwarovou podporu pro architekturu IA-32, která umožňovala podporu starších serverových aplikací, ale výkon pro kód IA-32 byl mnohem horší než pro nativní kód a také horší než výkon současných procesorů x86. V roce 2005 společnost Intel vyvinula IA-32 Execution Layer (IA-32 EL), softwarový emulátor, který poskytuje lepší výkon. S Montecitem proto Intel odstranil hardwarovou podporu pro kód IA-32.

V roce 2006, s vydáním programu Montecito , Intel provedl řadu vylepšení základní architektury procesorů, včetně:

  • Hardware s více vlákny: Každé jádro procesoru udržuje kontext pro dvě vlákna provádění. Když se jedno vlákno zastaví během přístupu do paměti, může se spustit druhé vlákno. Intel tomu říká „hrubé vícevláknové“, aby jej odlišil od „ technologie hypervláknových “, integrovaných do některých mikroprocesorů x86 a x86-64 .
  • Hardwarová podpora virtualizace : Intel přidal Intel Virtualization Technology (Intel VT-i), která poskytuje hardwarové asistence pro základní funkce virtualizace. Virtualizace umožňuje softwarovému „ hypervisoru “ spouštět na procesoru souběžně více instancí operačního systému.
  • Vylepšení mezipaměti: Montecito přidalo rozdělenou mezipaměť L2, která obsahovala vyhrazenou mezipaměť L2 1 MB pro pokyny. Původní 256 kB mezipaměť L2 byla převedena na vyhrazenou mezipaměť dat. Montecito také obsahovalo až 12 MB mezipaměti L3 on-die.

Viz Chipsety ... Jiné trhy .

Viz také

Reference

externí odkazy