# IA-64

IA-64 (Arquitectura d'Intel Itanium) és l'arquitectura de conjunt d'instruccions (ISA) de la família de microprocessadors Intel de 64 bits Itanium descontinuada. L'especificació bàsica ISA es va originar a Hewlett-Packard (HP) i va ser implementada posteriorment per Intel en col·laboració amb HP. El primer processador Itanium, amb el nom en clau Merced, es va llançar l'any 2001.
L'arquitectura Itanium es basa en un paral·lelisme explícit a nivell d'instruccions, en què el compilador decideix quines instruccions executar en paral·lel. Això contrasta amb les arquitectures superescalars, que depenen del processador per gestionar les dependències de les instruccions en temps d'execució. En tots els models Itanium, fins i tot Tukwila inclòs, els nuclis executen fins a sis instruccions per cicle de rellotge.
El 2008, Itanium va ser la quarta arquitectura de microprocessador més desplegada per a sistemes de classe empresarial, darrere de x86-64, Power ISA i SPARC.
El 2019, Intel va anunciar la interrupció de l'última de les CPU que admetien l'arquitectura IA-64.

## Història
### Desenvolupament

El 1989, HP va començar a preocupar-se que les arquitectures de computació de conjunts d'instruccions reduïts (RISC) s'acostaven al límit de processament d'una instrucció per cicle. Tant els investigadors d'Intel com d'HP havien estat explorant opcions d'arquitectura d'ordinadors per a dissenys futurs i per separat van començar a investigar un nou concepte conegut com a paraula d'instrucció molt llarga (VLIW) que va sorgir de la investigació de la Universitat Yale a principis dels anys vuitanta.
VLIW és un concepte d'arquitectura informàtica (com RISC i CISC) on una sola paraula d'instrucció conté múltiples instruccions codificades en una paraula d'instrucció molt llarga per facilitar que el processador executi múltiples instruccions en cada cicle de rellotge. Les implementacions típiques de VLIW depenen molt de compiladors sofisticats per determinar en temps de compilació quines instruccions es poden executar al mateix temps i la programació adequada d'aquestes instruccions per a l'execució i també per ajudar a predir la direcció de les operacions de la branca. El valor d'aquest enfocament és fer un treball més útil en menys cicles de rellotge i simplificar la programació d'instruccions del processador i els requisits de maquinari de predicció de branques, amb una penalització en l'augment de la complexitat del processador, el cost i el consum d'energia a canvi d'una execució més ràpida.

### Producció

Durant aquest temps, HP havia començat a creure que ja no era rendible per a empreses de sistemes empresarials individuals com ella desenvolupar microprocessadors propietaris. Intel també havia estat investigant diverses opcions arquitectòniques per anar més enllà de l'ISA x86 per abordar els requisits de servidors empresarials de gamma alta i informàtica d'alt rendiment (HPC).

### Màrqueting

Els esforços de màrqueting de productes i implicació de la indústria d'Intel van ser substancials i van aconseguir guanys de disseny amb la majoria dels OEM de servidors empresarials, inclosos els basats en processadors RISC en aquell moment. Els analistes del sector van predir que IA-64 dominaria en servidors, estacions de treball i ordinadors de sobretaula de gamma alta i, finalment, substituiria les arquitectures RISC i CISC per a totes les aplicacions de propòsit general. Compaq i Silicon Graphics van decidir abandonar el desenvolupament posterior de les arquitectures Alpha i MIPS respectivament a favor de migrar a IA-64.

## Arquitectura

Intel ha documentat àmpliament el conjunt d'instruccions Itanium i la premsa tècnica n'ha proporcionat una descripció general.
L'arquitectura ha estat rebatejada diverses vegades al llarg de la seva història. HP originalment el va anomenar PA-WideWord. Intel més tard el va anomenar IA-64, aleshores Itanium Processor Architecture (IPA), abans d'establir-se per Intel Itanium Architecture, però encara es coneix àmpliament com IA-64.
És una arquitectura explícitament paral·lela rica en registres de 64 bits. La paraula de dades base és de 64 bits, adreçable per byte. L'espai d'adreces lògiques és de $^{264}$ bytes. L'arquitectura implementa predicció, especulació i predicció de branques. Utilitza finestres de registre de mida variable per passar paràmetres. El mateix mecanisme també s'utilitza per permetre l'execució paral·lela de bucles. L'especulació, la predicció, la predicció i el canvi de nom estan sota el control del compilador: cada paraula d'instrucció inclou bits addicionals per a això. Aquest enfocament és la característica distintiva de l'arquitectura.
L'arquitectura implementa un gran nombre de registres:
* 128 registres enters generals, que són de 64 bits més un bit de trampa ("NaT", que significa "no una cosa") utilitzats per a l'execució especulativa. 32 d'aquests són estàtics, els altres 96 s'apilen utilitzant finestres de registre de mida variable o girant per a bucles canalitzats. gr $_0$ sempre diu 0.
* 128 registres de coma flotant. Els registres de coma flotant tenen 82 bits de llarg per preservar la precisió dels resultats intermedis. En lloc d'un bit de trampa dedicat "NaT" com els registres d'enters, els registres de coma flotant tenen un valor de trampa anomenat "NaTVal" ("Not a Thing Value"), similar (però diferent de) NaN. Aquests també tenen 32 registres estàtics i 96 registres amb finestra o rotatius. fr $_0$ sempre llegeix +0,0 i fr $_1$ sempre llegeix +1,0.
* 64 registres de predicats d'un bit. Aquests tenen 16 registres estàtics i 48 registres amb finestra o rotatius. pr $_0$ sempre diu 1 (cert).
* 8 registres de branca, per a les adreces de salts indirectes. br $_0$ s'estableix a l'adreça de retorn quan es crida una funció amb br.call.
* 128 registres de propòsit especial (o "aplicació"), que són sobretot d'interès per al nucli i no per a aplicacions ordinàries. Per exemple, un registre anomenat bsp apunta a la segona pila, que és on el maquinari esborrarà automàticament els registres quan la finestra de registre s'embolica.

## Referències

* ↑ Morgan, Timothy. «The Server Biz Enjoys the X64 Upgrade Cycle in Q1» (en anglès). IT Jungle, 27-05-2008. Arxivat de l'original el 2016-03-03. [Consulta: 29 octubre 2008].
* ↑ «Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture» (en anglès). HP Labs, 01-06-2001. Arxivat de l'original el 2012-03-04. [Consulta: 23 març 2007].
* ↑ De Gelas, Johan. «Itanium–Is there light at the end of the tunnel?» (en anglès). AnandTech, 09-11-2005. Arxivat de l'original el 2012-05-03. [Consulta: 23 març 2007].
* ↑ Takahashi, Dean. «Exit interview: Retiring Intel chairman Craig Barrett on the industry's unfinished business» (en anglès). VentureBeat, 08-05-2009. Arxivat de l'original el 2018-04-21. [Consulta: 17 maig 2009].
* ↑ «Itanium: A cautionary tale» (en anglès). Tech News on ZDNet, 07-12-2005. Arxivat de l'original el 2008-02-09. [Consulta: 1r novembre 2007].
* ↑ «Intel Itanium Architecture Software Developer's Manual» (en anglès). Arxivat de l'original el 2019-04-08. [Consulta: 8 abril 2019].
* ↑ De Gelas, Johan. «Itanium–Is there light at the end of the tunnel?» (en anglès). AnandTech, 09-11-2005. Arxivat de l'original el 2012-05-03. [Consulta: 23 març 2007].
* ↑ Shankland, Stephen. «Intel's Merced chip may slip further» (en anglès). CNET News, 08-07-1999. Arxivat de l'original el 2012-10-24. [Consulta: 16 octubre 2008].
* ↑ «HPWorks Newsletter» (en anglès), 01-09-2001. Arxivat de l'original el 2008-11-20. [Consulta: 24 gener 2008].
* ↑ Chen, Raymond. «The Itanium processor, part 1: Warming up» (en anglès), 27-07-2015. Arxivat de l'original el 2018-11-01. [Consulta: 31 octubre 2018].
* ↑ Chen, Raymond. «The Itanium processor, part 2: Instruction encoding, templates, and stops» (en anglès), 28-07-2015. Arxivat de l'original el 2018-11-01. [Consulta: 31 octubre 2018].
* ↑ Chen, Raymond. «The Itanium processor, part 3: The Windows calling convention, how parameters are passed» (en anglès), 29-07-2015. Arxivat de l'original el 2018-11-01. [Consulta: 31 octubre 2018].