« Architettura dell'Xbox (index)

Architettura dell'Xbox

Chapter 3: La CPU


Sommario

  1. Informazioni tecniche
    1. Marchio
    2. L'ISA
    3. La Microarchitettura
    4. CISC o RISC
    5. Il Core
  2. P6 e la fine dei Pentium numerati
  3. Architettura della scheda madre
  4. Struttura della memoria

Il processore utilizzato nell'Xbox è una versione leggermente modificata dell'Intel Pentium III (una CPU commerciale per computer) a una frequenza di 733 MHz. Basta questo per ipotizzare che la console possa essere un PC sotto mentite spoglie: senza che vi risponda io, vi garantisco che alla fine dell'articolo sarete perfettamente in grado di farvi un'idea.

Image
Il pacchetto Intel Pentium III sulla scheda madre dell'Xbox.

Ad ogni modo, al tempo i Pentium, assieme ad altre linee di CPU sviluppate e prodotte da Intel, erano incredibilmente popolari nel mercato dei computer. La quota di mercato di Intel era talmente vasta che le loro CPU erano leader di fatto in termini di qualità: quando l'utente tipico voleva un buon computer e aveva a disposizione un certo budget, gli bastava una qualsiasi macchina con una CPU Intel. Oggi sappiamo tutti che in realtà i fattori coinvolti sono molti di più, ma questa era l'immagine che, all'epoca, l'ufficio marketing di Intel riusciva a proiettare verso il pubblico.

Informazioni tecniche

Ora che conosciamo in che posizione era Intel, torniamo a parlare della console. Durante le mie ricerche, speravo di trovare documenti tecnici tanto dettagliati quanto quelli disponibili per altre CPU (MIPS, SuperH, ARM ecc.); al contrario, mi sono imbattuto in un diluvio di definizioni da reparto marketing che è riuscito solo a ostacolarmi. Quindi, in questo articolo strutturerò a modo mio tutte le informazioni necessarie a comprendere il funzionamento della CPU. Proverò anche a introdurre alcuni dei termini usati da Intel nelle comunicazioni riguardanti questo processore.

Iniziamo:

Marchio

Image
Come è organizzata quest'analisi.

Partiamo dalle basi: la CPU dell'Xbox è identificata come Pentium III. Che vuol dire? All'inizio del terzo millennio, la serie Pentium rappresentava una nuova generazione di CPU. Il marchio identificava i nuovi processori "di alto livello", con tutte le scintillanti innovazioni in grado di rendere i computer superveloci, e aiutava gli acquirenti a scegliere cosa comprare se volevano solo il meglio.

I Pentium III sostituivano i Pentium II, che a loro volta sostituirono i primi Pentium. E non finisce qui: il primo processore Pentium andò a sostituire il precedente 80486, che altro non era che il sostituto dell'80386... insomma, avete capito. "Pentium" è principalmente un marchio commerciale e non è direttamente ricollegabile al funzionamento interno della CPU. Come in Inception: dobbiamo andare più a fondo!

Per evitare di perderci, ho organizzato le informazioni salienti in tre sezioni che, considerate integralmente, descrivono l'intero chip. Inizieremo con l'Instruction Set Architecture o "ISA" (l'insieme di istruzioni macchina utilizzate per far funzionare la CPU), quindi passeremo alla microarchitettura (il modo in cui l'ISA è implementato a livello hardware) e finiremo con il core (i componenti utilizzati per impacchettare la microarchitettura e formare uno specifico modello di CPU).

L'ISA

Era solo questione di tempo prima di introdurre il famoso instruction set x86.

La prima versione di x86 venne introdotta nel 1978 insieme all'Intel 8086, una CPU a 16 bit. Le CPU Intel rilasciate in seguito (la 80186, la 80286 e così via) servirono come occasioni per espandere costantemente le capacità di questa ISA con nuove istruzioni. Di conseguenza, la progressiva introduzione di nuove funzionalità (come la "modalità protetta" e la "modalità lunga") portò x86 a frammentarsi. Per risolvere questo problema, generalmente le applicazioni x86 moderne sono progettate per avere come punto di partenza l'ISA 80386 (nota anche come IA-32 o i386), che, tra le altre cose, si basa su un'architettura a 32 bit.

In seguito, Intel potenziò IA-32 tramite delle estensioni, ossia nuove funzionalità che potevano essere incluse nelle CPU che utilizzavano IA-32 come instruction set; sarebbero poi stati i programmi a verificare se nella CPU era presente una determinata estensione. La CPU dell'Xbox include due estensioni:

La buona notizia per gli sviluppatori è che poiché la CPU nella console sarebbe rimasta sempre la stessa, era possibile ottimizzare il codice per sfruttare appieno queste due estensioni in quanto sarebbero state sempre presenti.

La Microarchitettura

Nello sviluppare circuiti per proprie CPU in grado di interpretare le istruzioni x86, Intel ha ideato moltissimi design diversi. Alcuni erano riservati per le nuove versioni della serie Pentium (ad esempio, Pentium 4), mentre altri venivano utilizzati nelle versioni "potenziate" dei processori Pentium (ad esempio, il "Pentium Pro"). Ad ogni modo, sin dal rilascio del primo Pentium, il modello della CPU e la microarchitettura non utilizzano più lo stesso nome. Un esempio pratico: l'80486 utilizza la microarchitettura 80486 (e solo quella), mentre la microarchitettura del primo Pentium si chiama "P5".

La CPU dell'Xbox, così come tutti gli altri processori Pentium III, utilizza la microarchitettura P6 (nota anche come "i686"). Si tratta di un'architettura di sesta generazione (la prima risale all'8086) caratterizzata da:

Chiariti questi punti, è il caso di osservarli più attentamente. Si tratta di caratteristiche molto simili a quelle contenute nelle console che abbiamo analizzato in precedenza, per quanto le loro CPU siano molto diverse, in termini di design, dalle CPU Intel. Considerato sia il contesto storico che il design di x86, sarebbe stato molto difficile immaginare che Intel avrebbe mai potuto presentare, ad esempio, una CPU con pipeline. Eppure, ci sono riusciti; ecco come hanno fatto.

CISC o RISC

La concorrenza include CPU progettate secondo le linee guida RISC, mentre la x86 di Intel no, essendo classificata come CISC. Le CPU RISC sono note per il loro set di istruzioni semplificato rispetto a quello delle CPU CISC. Ciò include, ad esempio, l'implementazione di un'architettura load-store, che fornisce solo istruzioni che operano su valori dai registri (anziché operare direttamente dalla memoria).

Uno dei vantaggi dei processori RISC è che il loro approccio semplificato consente alle CPU di essere progettate in modo modulare, potenzialmente migliorando le prestazioni grazie a tecniche di elaborazione parallela. È proprio per questo che nelle CPU basate sulle architetture MIPS e PowerPC abbiamo visto il debutto di pipeline a stadi, design superscalari, esecuzione fuori ordine, predizione delle diramazioni e altro ancora. Al contrario, i processori CISC esistono da molto tempo prima dei processori RISC e sono stati sviluppati per venire incontro a necessità diverse. Di conseguenza, i loro design non sono flessibili come quelli dei processori RISC.

Torniamo alla nostra microarchitettura P6: il motivo di tanto interesse per il suo design è che anche se questa CPU comprende solo un set di istruzioni CISC (x86), un sottoinsieme dei suoi codici operativi viene interpretato usando microcodice. La cosa più importante è che l'unità che esegue il microcodice è costruita attorno al modello load-store . Questo perché l'architettura P6 è stata progettata dai precedenti ingegneri del Intel i960 (una CPU RISC di Intel che un tempo prometteva molto). Tutto sommato, questo ha permesso a Intel di ottenere vantaggi simili ai processori RISC senza perdere la compatibilità con la storica ISA x86. È giusto dire che col passare del tempo, termini come 'CISC' e 'RISC' sono diventati troppo ambigui per classificare qualsiasi CPU moderna.

Per quanto sia incorporato a livello hardware, il microcodice rimane programmabile: ciò permette a Intel di rilasciare correzioni per le proprie CPU anche dopo la produzione, ad esempio quando viene scoperto un bug o una vulnerabilità di sicurezza. Se avete letto gli articoli precedenti (ossia quelli sull'N64 o sulla PS2), tenete presente che il microcodice di Intel non è accessibile pubblicamente (men che meno documentato) e Intel è la sola responsabile della sua gestione.

Il Core

Image
Il design di Coppermine.

Intel ha distribuito numerosi chip che implementavano la microarchitettura P6. Nello specifico, l'Xbox ne include un modello denominato Coppermine. Si tratta della seconda revisione del Pentium III, commercializzata in sostituzione del core 'Katmai' e dotata delle specifiche seguenti:

Inoltre, Coppermine migliora l'implementazione originale della cache L2 aggiungendo la Advanced Transfer Cache e l'Advanced System Buffering: La cache L2 è all'interno del chip e la larghezza di banda dei bus è maggiore, per ridurre i colli di bottiglia del front-side bus.

Infine, il chip è connesso alla scheda madre tramite il socket "Micro-PGA2", anche se al contrario di quanto accade nelle altre console, la saldatura è realizzata con la tecnica "ball grid array" o BGA.

P6 e la fine dei Pentium numerati

È il momento di un'altra pillola di storia. È il momento di un'altra pillola di storia. Dopo l'era P6, i piani di Intel prevedevano come erede la microarchitettura "Netburst", effettivamente utilizzata nel Pentium IV. Tuttavia, la linea di successione è terminata lì. Anche se NetBurst ha implementato molte tecniche contemporanee , ha anche sofferto di un eccessivo consumo di energia, emissione di calore (una media di 85 W ) e problemi di scalabilità, tutti fattori che hanno impedito il proseguire del design.

Di conseguenza, questo ha spinto un team Intel in Israele a rispolverare la CPU P6 a basso consumo - il 'Pentium M' - e sviluppare un successore più potente. Il primo risultato è stato il core Yonah, un leggero miglioramento del design P6 marchiato come Core Solo o Core Duo. Con esso, la dissipazione di energia è scesa a numeri ragionevoli (tra 27 W e 31 W , a seconda della variante). Alcuni mesi dopo, la successiva microarchitettura Core divenne il successore di punta della P6 (e di NetBurst) e, abbastanza confusamente, raggiunse gli scaffali sotto forma della linea di CPU Core 2. Negli anni successivi, le microarchitetture seguenti migliorarono sotto molti aspetti, ma riuscirono anche a re-incorporare elementi dimenticati di NetBurst senza ripetere gli stessi errori.

Come curiosità, mi chiedo se il nome del core Yonah sia inteso come una metafora per il Libro di Giona, in particolare collegando l'evento in cui il profeta, alla fine, riuscì a correggere il suo percorso per salvare la città di Ninive. Anche se è possibile che io stia overthinking.

Architettura della scheda madre

A un certo punto della storia del PC, la complessità delle schede madri è arrivata a livelli tali da rendere necessario lo sviluppo ex-novo di design in grado di soddisfare in maniera efficiente i bisogni emergenti.

Image
Diagramma della scheda madre dell'Xbox.

Il nuovo standard ruotava attorno a due chip impiegati nella gestione della maggior parte delle funzioni della scheda madre. Si tratta di:

Questi chip prendono il nome collettivo di chipset e la loro importanza è tale da condizionare le funzionalità e le prestazioni di una scheda madre. Data la sua prossimità ai PC, anche la scheda madre dell'Xbox include due chip: NV2A, che combina northbridge e GPU, e MCPX, che gestisce il resto del sistema I/O.

Ambedue i chip sono interconnessi mediante un bus dedicato, chiamato HyperTransport. Vale la pena sottolineare come anche alcune schede madri per PC impiegano la stessa tecnologia, anche se con una denominazione diversa (nForce MCP-D).

Struttura della memoria

L'Xbox include un totale di 64 MiB di SDRAM DDR, un tipo di RAM molto più veloce rispetto a quanto offerto dalla concorrenza. Tuttavia, si tratta di RAM condivisa tra tutti i componenti del sistema. Si parla pertanto, ancora una volta, di una memoria ad accesso uniforme, o di architettura "UMA" (dall'inglese "unified memory architecture").

Image
Una rappresentazione dello switching network. La GPU usa due banchi mentre la CPU ne usa uno diverso, riducendo così la contesa nel processo.

Abbiamo già visto quanto, a volte, questo design possa creare problemi. I programmi possono provare a risolvere questi problemi distribuendo i dati in diversi banchi di memoria. A tale scopo, il chip NV2A utilizza uno switching network per consentire alle varie unità (CPU, GPU ecc.) di accedere contemporaneamente ai banchi di memoria .

Inoltre, la console dispone di un disco rigido interno che, guarda caso, contiene tre partizioni da 750 MiB ciascuna riservate all'archiviazione temporanea. In questo spazio la CPU può allocare alcuni dati provenienti dalla RAM principale allo scopo di alleggerirla, per poi ricaricarli quando vengono richiesti. Questo procedimento è manuale e non ha nulla a che vedere con la RAM virtuale.


Previous: 2. Breve introduzione

Next: 4. La grafica


Rodrigo Copetti © 2026 RSS Feed

Passa alla versione moderna

Inizio · Articoli · Supporta · Informazioni sull'autore · Informazioni sul sito