Intel Itanium, il supporto all'architettura interamente a 64 bit rimosso dal kernel Linux
Il supporto alla IA-64 di Itanium non è più presente nel kernel Linux 6.7, il che segna la definitiva dipartita di un progetto di Intel e HP che non ha mai trovato il successo per molteplici ragioni, dalla compatibilità con i software alla concorrenza di AMD.
di Manolo De Agostini pubblicata il 03 Novembre 2023, alle 08:51 nel canale ProcessoriItaniumIntel
Il supporto alla IA-64 (Intel Architecture-64) è stato rimosso dal kernel Linux 6.7, in altre parole dal kernel è sparito il codice necessario a far funzionare Intel Itanium, il microprocessore per server e applicazioni mission critical frutto della cooperazione tra Intel e Hewlett-Packard.
Itanium, arrivato sul mercato nel 2001 in forte ritardo rispetto ai piani originari, puntava a fare concorrenza ai processori RISC DEC Alpha. Inoltre, trattandosi di un progetto a 64 bit contro i 32 bit dell'x86 delle CPU consumer, era visto da Intel come una possibile evoluzione futura per il comparto.
Il problema di Itanium fu sostanzialmente la mancanza di un supporto software adeguato. Non solo il progetto, molto complesso per l'epoca, ebbe numerosi ritardi, ma poi vi era un'intrinseca difficoltà nel creare software e tool compatibili.
L'architettura IA-64 dei processori Itanium era differente rispetto alla x86: con ben 128 registri general purpose (contro gli 8 di x86 e i 16 di x86-64) e uno spazio di memoria di 64 bit offriva molta più flessibilità, almeno teoricamente. L'architettura era pensata per utilizzare istruzioni esplicitamente parallele (seguendo il modello EPIC, Esplicitly Parallel Instructions Computing) e richiedeva che fossero i compilatori a prendersi cura dell'ottimizzazione del codice e dell'ordinamento delle istruzioni in quanto non era un'architettura con esecuzione delle istruzioni out of order.
Il fatto che dovesse essere il compilatore a ottimizzare il codice e che la compatibilità con il software precedente non era presente, in entrambi i casi con problemi prestazionali, segnò il destino dell'architettura Itanium.
La "mazzata" al progetto, se ci passate il termine, la diede AMD con l'arrivo delle soluzioni AMD x86-64 (Opteron), un'estensione a 64 bit del progetto x86 a 32 bit che era perfettamente retrocompatibile e "pronta all'uso". Il vantaggio sul fronte del software e dei costi indusse Intel ad alzare bandiera bianca: non le restò che annunciare il supporto a AMD x86-64, implementato a partire dai processori Xeon "Nocona".
Ciononostante, va detto che Intel ha continuato, anche per supportare i clienti esistenti, a rilasciare processori Itanium per molti anni, l'ultimo dei quali annunciato nel 2017 come Itanium 9700 "Kitson": si trattava di un chip a 32 nm fino a 8 core e 16 thread, prodotto a 32 nm e molto simile alla precedente gamma Itanium 9500 "Poulson". La casa di Santa Clara ha concluso le consegne dei processori Itanium nel 2021.
Ricordiamo, in chiusura, che Intel sta lavorando su x86S, un'architettura totalmente a 64 bit priva di alcune funzionalità per il supporto al codice a 16 e 32 bit.
8 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoazz, dovevano essere clienti importantissimi per essere -pochi- e supportati per 16 anni
Più che altro c'era un contratto ferreo con HP che vincolava Intel a supportare gli Itanium oppure avrebbe pagato penali devastanti.
Infatti da un certo punto in poi Intel ha dedicato ad Itanium solo le risorse strettamente necessarie per non venire sventrata in tribunale da HP.
A parte questo, Itanium é un caso da manuale di EPIC fail a livello di management di un progetto "too big to fail".
In origine quello che divenne Itanium era un progetto di HP finalizzato a realizzare il successore della loro architettura RISC (PA-RISC) e poi si evolse in uno sviluppo congiunto tra HP ed Intel.
HP voleva sganciarsi dalla produzione di cpu per server e workstation di fascia alta senza dover dipendere da un concorrente.
Intel cercava un partner per riuscire a lanciare una nuova architettura che nel tempo sostituisse gli x86 e di cui non ci fossero concorrenti con licenze per la produzione di cpu compatibili (principalmente AMD e VIA).
L'architettura EPIC originale sembrava destinata ad essere il futuro, in pratica era un evoluzione delle cpu VLIW senza i difetti principali delle precedenti architetture VLIW.
Mi ricordo di aver letto sulla rivista Byte il primo articolo su quello che allora era solo EPIC, con una prima descrizione abbastanza dettagliata; sembrava predestinato a far fuori tutte le altre cpu di fascia alta (POWER, MIPS, UltraSparc, ecc. ) e poi "scendendo in basso" avrebbe spazzato via x86.
Il problema principale fu che il progetto originale molto snello ed orientato agli utilizzi "da server/supercomputer" poi con l'entrata in gioco di Intel cominciò a diventare qualcosa di sempre più pieno di fronzoli e di requisiti di retrocompatibilità con gli x86.
Ad esempio, i primi sistemi Itanium dovevano essere in grado di fare il boot di un S.O. per x86 e far girare i relativi software applicativi.
Inoltre mentre per HP le prestazioni nell'aritmetica floating point a 32 o 64 bit erano fondamentali (software di simulazione, applicativi di elaborazione di dati scientifici ed altra roba "pesante" a livello di calcoli in floating point), per la maggioranza del codice sorgente in origine scritto per x86 da portare su Itanium erano invece le prestazioni nell'aritmetica intera a 16 o 32 bit ad essere dominanti (su una cpu ottimizzata per lavorare su interi a 64bit).
Per questo le cpu Alpha (ancora sul mercati ma già di fatto "morte" da quando da DEC erano finite in mano a Compaq e poi ad HP) avevano prestazioni superiori alla prima generazione di Itanium; erano più equilibrate e non erano appesantite da fronzoli vari e requisiti di retrocompatibilità con x86.
Più che altro c'era un contratto ferreo con HP che vincolava Intel a supportare gli Itanium oppure avrebbe pagato penali devastanti.
Infatti da un certo punto in poi Intel ha dedicato ad Itanium solo le risorse strettamente necessarie per non venire sventrata in tribunale da HP ... bla bla blòa ...
Si infatti la sfortuna del processore Itanium è stata fortemente influenzata dal connubio contrattuale Intel-HP
Moltissimi clienti di "elevato spessore" utilizzavano server basati su Itanium, il problema è che questi server erano forniti solo ed esclusivamente da HP che ne deteneva il monopolio e non permetteva ad altri brand di produrre e commercializzare server basati appunto su Itanium.
Ѐ un vero peccato, Itanium meritava parecchio, era un processore multicore fortemente votato all'elaborazione parallela e l'unica debolezza che aveva era di non disporre di unità di calcolo adibite al riordino delle istruzioni proprio per massimizzare l'elaborazione parallela, ma questo non era assolutamente un problema grave, Intel aveva rilasciato l'assemblatore/compilatore specifico per Itanium che provvedeva al riordino delle istruzioni del codice e all'ottimizzazione di questo e forse anche sull'assemblatore/compilatore HP aveva il diritto di veto ...
Moltissimi clienti di "elevato spessore" utilizzavano server basati su Itanium, il problema è che questi server erano forniti solo ed esclusivamente da HP che ne deteneva il monopolio e non permetteva ad altri brand di produrre e commercializzare server basati appunto su Itanium.
Ѐ un vero peccato, Itanium meritava parecchio, era un processore multicore fortemente votato all'elaborazione parallela e l'unica debolezza che aveva era di non disporre di unità di calcolo adibite al riordino delle istruzioni proprio per massimizzare l'elaborazione parallela, ma questo non era assolutamente un problema grave, Intel aveva rilasciato l'assemblatore/compilatore specifico per Itanium che provvedeva al riordino delle istruzioni del codice e all'ottimizzazione di questo e forse anche sull'assemblatore/compilatore HP aveva il diritto di veto ...
Scusa, ma non é assolutamente così.
Intel vendeva Itanium a chiunque, inizialmente molti produttori pensavano che il successo di Itanium fosse "inevitabile", Silicon Graphics abbandonò i MIPS a 64bit per passare ad Itanium, anche IBM commercializzò dei sistemi basati su di esso. Solo Sun snobbò gli Itanium fin dal principio.
Solo che dopo l'uscita di Merced (la prima generazione di Itanium) furono subito evidenti le differenze tra quanto promesso anni prima e quello che che arrivò sul mercato.
Silicon Graphics nel frattempo fallì e tutti i produttori eccetto HP abbandonarono Itanium non appena possibile.
Solo HP continuò a produrre sistemi Itanium perché su di esso girava VMS ed erano quindi l'unica alternativa per chi doveva far girare software su VMS (HP aveva acquisito Compaq che a sue volta aveva acquisito quel che restava di DEC, quindi tutto il parco di clienti che usavano VMS).
Il contratto ferreo tra HP ed Intel garantiva la fornitura di Itanium per parecchi anni (usati da HP per fare con calma un ulteriore porting di VMS da Itanium ad x86-64).
Ovvio che Intel non era proprio contenta di produrre nuove generazioni di Itanium una volta chiaro il flop commerciale, ma nel caso di HP era obbligata a farlo, nel caso di altri invece poteva rifiutarsi di farlo.
Per quel che riguarda la toolchain, Itanium fu la dimostrazione pratica che demandare tutto il riordino delle istruzioni al compilatore non é proprio la strategia migliore per eseguire codice "generico", specialmente su un architettura con un sacco di feature che "sprecavano" il risparmio ottenuto eliminando la circuiteria di riordino microistruzioni.
Paradossalmente alla fine "ha vinto MIPS" nel senso che con le tecnologie attuali (ed i sorgenti attuali da conpilare) l'equilibrio ottimale nell'avere simultaneamente un compilatore che riordina le istruzioni e circuiteria di riordino nella pipeline consiste nell'avere un set di 32 registri per tipologia di dato (tipo 32 interi, 32 floating point, 32 vettoriali).
Con max. 32 registri per set di registri ci sono abbastanza registri affinché il programmatore o il compilatore facciano un riordino "ad alto livello" delle istruzioni (senza preoccuparsi di quante unità di esecuzione ci sono) mentre al tempo stesso la circuiteria di riordino può ulteriormente ottimizzare/riordinare le istruzioni/micro-op ragionando principalmente solo il termini di dipendenze tra registri ed unità di esecuzione.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".