IA-64 (Intel Architecture, 64-bit) je 64bitová architektura počítačových procesorů vyvinutá firmami Intel a Hewlett-Packard a implementovaná v procesorech Itanium a Itanium 2. Cílem IA-64 bylo vyvinout post-RISC architekturu, která by vyřešila mnohé z problémů, kterým čelily starší architektury.

Nová architektura byla vystavěna okolo počítačového modelu zvaného Explicitly Parallel Instruction Computing (EPIC). EPIC byl navržen tak, aby zvýšil schopnost mikroprocesorů vykonávat paralelně více instrukcí, a to spíš pomocí softwarového kompilátoru, než pomocí komplexních logických obvodů na procesoru. S tímto přístupem se podařilo zvýšit počet vykonaných instrukcí za jeden takt procesoru a tím zvýšit i celkový výkon procesoru.

Každý procesor architektury IA-64 musí implementovat nejméně 128 obecných (přirozeně 64 bitů širokých) registrů. Pokud jich implementuje více, jsou tyto díky mechanismu RSE posouvány v cyklickém bufferu tak, že programátor vždy vidí 32 nepohybujících se registrů a okno do zmíněního bufferu 96 registrů široké. (Pokud by procesor implementoval pouze 96 pohyblivých registrů, budou tyto pouze rotovat.) Toto umožňuje efektivně předávat parametry funkcím téměř výhradně pomocí registrů oproti předávání zásobníkem. Pokud již nemohou být splněny požadavky na alokaci prázdných registrů z cyklického bufferu, zajistí RSE jejich odložení do předem připraveného bufferu v paměti.

Podmíněný výpočet probíhá v případě IA-64 odlišně než u většiny ostatních architektur. Registr flags je nahrazen sadou jednobitových predikátových registrů, které jsou v příslušných (porovnávacích) instrukcích nastavovány dle potřeby programátora. Každá taková instrukce nastavuje dva z těchto registrů – jeden podle pravdivostní hodnoty porovnání, druhý podle její negace. Provádění většiny instrukcí je potom přímo v jejich operačním kódu možné podmínit nastavením libovolného z predikátových registrů. Takto lze bez nutnosti větvení vypustit celé bloky za daných podmínek nežádoucích instrukcí.

Dřívější procesory Itanium obsahovaly podporu i pro vykonávání instrukcí IA-32. Výkon však byl v porovnání s nativní IA-64 nižší a dosahoval přibližně 50 % výkonu serverů postavených na architektuře IA-32.

Související články

editovat

Externí odkazy

editovat