# Banias

Banias è stato il primo processore specificamente sviluppato da Intel per i sistemi mobile composto da ben 77 milioni di transistor; nel 2003 infatti, anno di uscita sul mercato di Banias, non si erano ancora visti processori così "densi" all'infuori del mercato server, basti pensare che il Pentium 4 dell'epoca con core Northwood costruito anch'esso con processo litografico di 0.13 micron (130 nm), ne conteneva poco più di 55 milioni.

## Comincia a prendere forma la prima piattaforma Centrino

La vocazione di questa CPU all'elaborazione in ambiente mobile risulta subito evidente: infatti con esso, viene proposta un'architettura estremamente funzionale ed attenta alle esigenze di un contesto difficile come quello dei PC portatili. Finalmente i possessori di notebook potevano avere un computer dotato di un microprocessore che consumava poco (circa 24 W) scaldava pochissimo (basti pensare che in molti momenti del normale utilizzo del portatile la ventola di raffreddamento di Banias si ferma, una cosa mai avvenuta nella controparte Pentium 4) e le prestazioni sono allineate a quelle del più blasonato "fratello maggiore" con molti MHz in più a sua disposizione.
Banias, nato sulle ceneri del progetto Timna nella sede israeliana di Haifa della Intel, rappresenta il primo esemplare di Pentium M adottato nella piattaforma Centrino, e il suo design è basato su quello del Pentium III, con alcune sostanziali modifiche che gli hanno dato il soprannome di "Pentium III con il bus di un Pentium 4". Esso infatti utilizza un bus quad pumped, al pari dei Pentium 4, per aumentare la quantità di dati gestibili contemporaneamente (fino a quattro contemporaneamente). A questo indirizzo è possibile conoscere i passi intermedi e le vicende che hanno portato, prima allo sviluppo, e poi alla effettiva realizzazione di questo progetto.

## Caratteristiche tecniche
### Design, frequenze e scelte strategiche
#### Obiettivi principali

Nella progettazione del primo core della piattaforma Centrino (il processore Banias, appunto) gli ingegneri del team di Haifa hanno compiuto alcune scelte che necessitano di una trattazione approfondita. Come è possibile evincere dall'articolo citato anche prima (Storia del Pentium M), alla base del design di Banias c'è la volontà di ridurre drasticamente il consumo energetico in primis e, quindi, ottimizzare l'impiego delle risorse a disposizione della CPU. Entrambi gli obiettivi sono stati raggiunti attraverso una certosina opera di bilanciamento e distribuzione della potenza.

#### La scelta oculata del punto di partenza

Al team israeliano era chiaro che progettare un processore seguendo la filosofia dell'architettura NetBurst del Pentium 4 sarebbe stato un suicidio. Per definizione, infatti, l'architettura su cui si basano i processori della famiglia Pentium 4 non è pensata per l'effettiva "valorizzazione" delle risorse della CPU. È questo il motivo per cui i primi core Willamette del progetto P4, nel 2001, rimanevano meno efficienti a parità di clock, nel confronto con i fratelli maggiori basati sull'architettura P6 del Pentium III. Una pipeline troppo lunga avrebbe sicuramente comportato ingenti sprechi di cicli di clock e, soprattutto, di preziosa energia (sempre nell'ottica del risparmio). Subito abbandonata l'idea di implementare 20 stadi di pipeline (come accadeva invece nel Pentium 4), agli ingegneri Intel non rimase che valutare quale fosse l'opzione migliore per il nuovo processore. La scelta ricadde su un numero di stadi intermedio tra quelli dell'architettura P6 e quelli della NetBurst. Scelta del resto giustificabile semplicemente considerando che se i 20 stadi di pipeline dei P4 (che sarebbero poi saliti fino a 31 con l'avvento del core Prescott) risultavano troppo poco conformi al principio di "power saving", i 10 stadi dell'architettura P6, d'altra parte, non consentivano di raggiungere frequenze che giustificassero l'introduzione di un nuovo processore mobile. La profondità della pipeline dei Pentium M non è stata resa nota da Intel, si pensa, comunque ad un numero compreso tra 13 e 16.

### Architettura

Le scelte architetturali alla base del progetto "Pentium M", soprattutto nella sua versione originaria Banias, rappresentano una delle più significative evoluzioni del concetto di "Mobile Computing". Di fatto i processori Pentium M adottano un approccio all'elaborazione che risulta innovativo sotto vari punti di vista. In quest'ottica, l'attenzione degli ingegneri israeliani per alcuni degli aspetti più "delicati" caratterizzanti il segmento "notebook" ha sicuramente contribuito a rendere il progetto nato dalle ceneri di Timna uno dei design più interessanti degli ultimi anni. Fin dall'introduzione del primo core Banias, la ricerca di un "numero finito" di innovazioni potenzialmente determinanti nel core originario dei Pentium M si è rivelata impresa assai ardua. Possiamo comunque evidenziarne qui alcune:
* La nuova pipeline: via di mezzo tra P6 e NetBurst;
* Approccio alla gestione delle risorse;
* Branch Prediction: il Loop Detector e l'Indirect Branch Predictor
* Micro-Ops Fusion
* Stack Manager dedicato
Ognuna di queste caratteristiche ha contribuito in maniera significativa al successo del progetto Pentium M. Se infatti la scelta di implementare una pipeline più lunga rispetto a quella presente nei Pentium III, ma meno profonda di quella dei Pentium 4, consente di mantenere un buon margine di scalabilità (evitando sprechi di preziosi cicli di clock), le nuove unità a supporto della predizione di salti consentono di migliorare l'"hit rate" delle predizioni, permettendo, così, un significativo aumento dei cicli di clock "utili". La fusione delle micro-ops, d'altro canto, consente di mantenere la pipeline costantemente riempita di "micro-operazioni impacchettate" permettendo di razionalizzare ed accorpare l'esecuzione di alcune istruzioni e la gestione della operazioni con la memoria. Lo Stack Manager dedicato, infine, libera le unità di esecuzione dell'aggiornamento dei registri che mantengono informazioni riguardanti lo "stato dell'elaborazione" (Program Counter e Stack Pointers, per esempio) consentendo un incremento della velocità di esecuzione, dato che vengono eliminate le interruzioni tipiche delle architetture esistenti fino a quel momento.

#### La scalabilità dell'architettura

Grazie ad un'attenta opera di ottimizzazione e verifica, i progettisti sono riusciti ad eliminare tutti quei percorsi (path) che, sparsi nelle varie unità, viaggiavano ad una velocità maggiore del target (consumando, di conseguenza, un maggior quantitativo di energia). Altra importante innovazione introdotta con il nuovo design è la gestione degli stati di sleep delle unità. La filosofia costruttiva alla base di Banias è significativamente diversa da quella adottata per il progetto dei precedenti Pentium 4-M (cioè la versione mobile dei Pentium 4). Se questi ultimi, infatti, si avviano facendo partire tutte le unità e disabilitando, man mano, quelle che risultano inutilizzate, Banias, (e anche il suo successore Dothan), parte in "sleep mode" e "risveglia" esclusivamente le unità di cui necessita non appena esse diventano indispensabili al processamento delle informazioni. Sebbene questo approccio allunghi i tempi di attesa perché le singole unità diventino utilizzabili, ciò consente un importante risparmio di energia, con evidenti conseguenze sull'autonomia del dispositivo portatile. Il risultato di questa serie di modifiche è un core assai funzionale, progettato per impiegare al meglio tutte le unità ed il cui limite fisico è stimato attorno ai 2 GHz per Banias (3 GHz per le versioni più mature dell'evoluzione Dothan). In realtà definire quale sia il limite alla scalabilità di questi processori è impresa assai ardua. Gli ingegneri Intel, infatti, hanno progettato tali processori in modo che essi possano trarre grande giovamento dall'impiego di tecniche e tecnologie costruttive avanzate. In buona sostanza appena si raggiunge il "limite fisico" si può far ricorso alle ultime tecniche di packaging disponibili per superare il problema. In altre parole, dato che la frequenza massima dipende anche dal calore dissipato durante il funzionamento del processore, utilizzando tecniche litografiche più moderne si può costruire lo stesso chip sfruttando alcuni affinamenti nel processo costruttivo e tra questi uno dei miglioramenti più efficaci è la riduzione della dimensione dei transistor (più propriamente, la riduzione delle dimensioni dei gate dei transistor), modifica che, diminuendo la distanza tra i componenti, riduce la dissipazione termica.

### Linee guida seguite nella progettazione di Banias

Gran parte dell'opera di controllo sui dettagli del progetto è stata condotta con l'intento di minimizzare la presenza di "percorsi" per i quali le informazioni potevano viaggiare più velocemente della frequenza-target. Dietro questa scelta c'è la consapevolezza del fatto che, a questi livelli, "più veloce" coincide troppo spesso con "più esoso" in termini di alimentazione e, quindi, di potenza consumata. Se, però, ciò porta a considerevoli vantaggi in termini di autonomia del sistema, l'altra faccia della medaglia ci presenta un risvolto decisamente negativo: per limiti strettamente legati al design, e quindi non alla tecnologia produttiva, questi processori non possono superare una certa "frequenza di soglia" che per le CPU Banias si pensa possa attestarsi intorno ai 2 GHz, come abbiamo anche detto sopra. In ogni caso, Intel ha poi dimostrato con Dothan, che una tale limitazione progettuale può essere agevolmente bypassata con l'introduzione di nuove tecnologie produttive capaci di abbreviare fisicamente le distanze all'interno delle unità consentendo, in questo modo, la riduzione dei tempi di trasmissione dei segnali nel core.

#### Gestione del consumo energetico

Un'altra importante scelta progettuale alla base della piattaforma Pentium M si traduce nella gestione dell'energia. In questo caso il team israeliano, come abbiamo detto anche prima, ha abbracciato una filosofia diametralmente opposta a quella impiegata per lo sviluppo delle versioni M dei Pentium 4. Se, infatti, queste partono fornendo alimentazione a tutte le unità, per poi metterle in "sleep mode" man mano che se ne verifichi l'inattività, i nuovi processori Intel Mobile fanno l'esatto contrario: tutto il processore parte in "sleep mode" all'avvio, per poi "risvegliare" le singole unità non appena esse si rendano necessarie. La versione della tecnologia Intel SpeedStep utilizzata nel Banias è la "Enhanced SpeedStep", che sfruttando un maggior numero di "passi" (la precedente versione consentiva solo 2 livelli di funzionamento) permette di ottimizzare il funzionamento del dispositivo in funzione delle reali esigenze richieste dalle applicazioni. Pertanto il processore può variare la propria frequenza di funzionamento su un numero maggiore di intervalli di clock tra la frequenza massima, quella di default del processore, e quella minima, la frequenza alla quale si ottiene il più basso consumo possibile. Non varia, ovviamente, la sola frequenza di clock ma anche il voltaggio di alimentazione: diminuendo la frequenza di clock della cpu, infatti, il processore richiede un voltaggio di alimentazione inferiore per operare correttamente. Essendo questo un elemento che incide parecchio sul consumo complessivo del processore, la sua diminuzione in funzione della frequenza di clock utilizzata permette di aumentare ulteriormente l'autonomia di funzionamento. Ovviamente anche questa scelta, sebbene assai interessante, non risulta priva di rischi. Con l'impiego di un simile approccio, infatti, i tempi necessari ad ottenere la disponibilità di una certa unità (le cosiddette "latenze") risultano allungati a causa della "transizione" da uno stato all'altro. Dopo una serie di verifiche, tuttavia, gli ingegneri Intel sembrano aver constatato che tali aumenti nelle latenze sono ampiamente "mascherati" dall'incremento generale di prestazioni, garantito dalla nuova architettura.

### Altre tecnologie implementate

Oltre alla già citata tecnologia di risparmio energetico SpeedStep, Banias includeva tutte le altre tecnologie che Intel aveva già sviluppato per gli altri processori, e tra queste è possibile ricordare il supporto alle istruzioni MMX, SSE ed SSE2.

## Le prestazioni

Per far chiarezza nell'ambito prestazionale confrontando differenti architetture con differenti frequenze operative, Intel ha deciso di impiegare il Processor number cui si faceva riferimento in precedenza. Il nuovo sistema tiene conto di una serie di fattori, tra cui: l'architettura del processore, l'FSB, la memoria cache, l'implementazione di tecnologie proprietarie e la velocità. Significativa la scelta da parte di Intel, di inserire l'evoluzione del Banias, Dothan nella fascia più alta (contraddistinta dalla cifra 7 seguita da altri due numeri) insieme al Pentium 4 Extreme Edition che altro non è se non un Gallatin (nome in codice di una versione di Xeon, processore per il mercato server). Nelle fasce più basse troviamo Pentium 4 (Prescott) e Pentium 4-M per la 5xx e Celeron D e Celeron M per la 3xx.

## Modelli arrivati sul mercato

La tabella seguente mostra i modelli di Pentium M, basati sul core Banias, arrivati sul mercato. Molti di questi condividono caratteristiche comuni pur essendo basati su core diversi; per questo motivo, allo scopo di rendere maggiormente evidente tali affinità e "alleggerire" la visualizzazione alcune colonne mostrano un valore comune a più righe. Di seguito anche una legenda dei termini (alcuni abbreviati) usati per l'intestazione delle colonne:
* Nome Commerciale: si intende il nome con cui è stato immesso in commercio quel particolare esemplare.
* Data: si intende la data di immissione sul mercato di quel particolare esemplare
* Socket: lo zoccolo della scheda madre in cui viene inserito il processore. In questo caso il numero rappresenta oltre al nome anche il numero dei pin di contatto.
* Clock: la frequenza di funzionamento del processore.
* Molt.: sta per "Moltiplicatore" ovvero il fattore di moltiplicazione per il quale bisogna moltiplicare la frequenza di bus per ottenere la frequenza del processore.
* Pr.Prod.: sta per "Processo produttivo" e indica tipicamente la dimensione dei gate dei transistors (180 nm, 130 nm, 90 nm).
* Voltag.: sta per "voltaggio" e indica la tensione di alimentazione del processore.
* Watt: si intende il consumo massimo di quel particolare esemplare.
* Bus: frequenza del bus di sistema.
* Cache: dimensione delle cache di 1° e 2°.
* XD: sta per XD-bit e indica l'implementazione della tecnologia di sicurezza che evita l'esecuzione di codice malevolo sul computer.
* EM64T: implementazione della tecnologia a 64 bit di Intel.
* HT: sta per "Hyper-Threading" e indica l'implementazione della esclusiva tecnologia Intel che consente al sistema operativo di vedere 2 core logici.
* EIST: sta per "Enhanced SpeedStep Technology" ovvero la tecnologia di risparmio energetico sviluppata da Intel e inserita negli ultimi Pentium M per contenere il consumo massimo.
* VT: sta per "Vanderpool Technology", la tecnologia di virtualizzazione che rende possibile l'esecuzione simultanea di più sistemi operativi differenti contemporaneamente.
| Nome Commerciale | Data | Socket | Clock | Molt. | Pr.Prod. | Voltag. | Watt | Bus | Cache | XD | EM64T | HT | EIST | VT |
| Pentium M 1,1 GHz | 12/mar/2003 | 479 | 1.1 GHz | 11x | 130 nm 77 mil. | 1,39 V 0,96 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,2 GHz | 12/mar/2003 | 479 | 1.2 GHz | 12x | 130 nm 77 mil. | 1,39 V 0,96 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,3 GHz | 12/mar/2003 | 479 | 1.3 GHz | 13x | 130 nm 77 mil. | 1,39 V 0,96 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,4 GHz | 12/mar/2003 | 479 | 1.4 GHz | 14x | 130 nm 77 mil. | 1,484 V 0,956 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,5 GHz | 12/mar/2003 | 479 | 1.5 GHz | 15x | 130 nm 77 mil. | 1,484 V 0,956 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,6 GHz | 12/mar/2003 | 479 | 1.6 GHz | 16x | 130 nm 77 mil. | 1,484 V 0,956 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,7 GHz | 2/giu/2003 | 479 | 1.7 GHz | 17x | 130 nm 77 mil. | 1,484 V 0,956 V | 24,5 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 1,8 GHz | N.A. | 479 | 1.8 GHz | 18x | 130 nm 77 mil. | N.A. | N.A. | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 2 GHz | N.A. | 479 | 2.0 GHz | 20x | 130 nm 77 mil. | N.A. | N.A. | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M 705 | 16/lug/2004 | 479 | 1.5 GHz | 15x | 130 nm 77 mil. | N.A. | N.A. | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M LV 1,1 GHz | 12/mar/2003 | 479 | 1.1 GHz | 11x | 130 nm 77 mil. | 1,180 V 0,956 V | 12 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M LV 1,20 GHz | 2/giu/2003 | 479 | 1.2 GHz | 12x | 130 nm 77 mil. | 1,180 V 0,956 V | 12 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M LV 718 | 7/apr/2004 | 479 | 1.3 GHz | 13x | 130 nm 77 mil. | 1,180 V 0,956 V | 12 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M ULV 900 MHz | 12/mar/2003 | 479 | 0.9 GHz | 9x | 130 nm 77 mil. | 1,004 V 0,844 V | 7 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M ULV 1,0 GHz | 2/giu/2003 | 479 | 1.0 GHz | 10x | 130 nm 77 mil. | 1,004 V 0,844 V | 7 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
| Pentium M ULV 713 | 7/apr/2004 | 479 | 1.1 GHz | 11x | 130 nm 77 mil. | 1,004 V 0,844 V | 7 W | 400 MHz | L1=64KB L2=1MB | No | No | No | Sì | No |
Nota: la tabella soprastante è un estratto di quella completa contenuta nella pagina del Pentium M.

## Il successore

Come già anticipato prima, il successore di Banias è stato Dothan, che non ha introdotto novità rivoluzionarie, ma ha affinato ulteriormente alcune caratteristiche per migliorare ulteriormente le prestazioni senza aumentare il consumo massimo e quindi la relativa durata della batteria di un sistema portatile. Dothan è una sorta di Banias costruito a 90 nm con una cache L2 raddoppiata, portata quindi a 2 MB e un BUS più veloce a 533 MHz. Il nuovo processo produttivo ha permesso inoltre di aumentare ulteriormente il clock del processore fino a superare i 2 GHz.

## Roadmap

V · D · MRoadmap dei processori Intel da NetBurst a Tiger Lake :
NetBurst :
| Willamette | Willamette | Northwood | Northwood | Prescott | Prescott | Tejas | Tejas | Nehalem (NetBurst) | Nehalem (NetBurst) |
| | | | | | | ⤷ | ⤷ | Cedar Mill (Tejas) | Cedar Mill (Tejas) |
| | | | | | ⤷ | Prescott-2M | Prescott-2M | Cedar Mill | Cedar Mill |
| | | | | | | Smithfield | Smithfield | Presler | Presler |
| P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | Core | Core | Core | Core | Nehalem | Nehalem | Nehalem | Nehalem | Sandy Bridge | Sandy Bridge | Sandy Bridge | Sandy Bridge | Haswell | Haswell | Haswell | Haswell | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Palm Cove | Palm Cove | Sunny Cove | Sunny Cove | Willow Cove | Willow Cove | Cypress Cove | Cypress Cove | Golden Cove | Golden Cove | Raptor Cove | Raptor Cove |
| Coppermine | Coppermine | Tualatin | Tualatin | Banias | Banias | Dothan | Dothan | Yonah | Yonah | Core | Core | Penryn | Penryn | Nehalem | Nehalem | Westmere | Westmere | Sandy Bridge | Sandy Bridge | Ivy Bridge | Ivy Bridge | Haswell | Haswell | Broadwell | Broadwell | Skylake | Skylake | Kaby Lake | Kaby Lake | Coffee Lake | Coffee Lake | Whiskey Lake | Whiskey Lake | Amber Lake | Amber Lake | Comet Lake | Comet Lake | Cannon Lake | Cannon Lake | Ice Lake | Ice Lake | Tiger Lake | Tiger Lake | Rocket Lake | Rocket Lake | Alder Lake (P-core) | Alder Lake (P-core) | Raptor Lake (P-core) | Raptor Lake (P-core) |
| 180 nm | 180 nm | 130 nm | 130 nm | 130 nm | 130 nm | 90 nm | 90 nm | 65 nm | 65 nm | 65 nm | 65 nm | 45 nm | 45 nm | 45 nm | 45 nm | 32 nm | 32 nm | 32 nm | 32 nm | 22 nm | 22 nm | 22 nm | 22 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 10 nm | 10 nm | 10 nm | 10 nm | 10 nm | 10 nm | 14 nm | 14 nm | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 |
| | | | | | | | | | | | | Bonnell | Bonnell | Bonnell | Bonnell | Saltwell | Saltwell | Saltwell | Saltwell | Silvermont | Silvermont | Silvermont | Silvermont | Airmont | Airmont | Goldmont | Goldmont | Goldmont | Goldmont | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Lakefield | Lakefield | Lakefield | Lakefield | Jasper Lake | Jasper Lake | | | Alder Lake (E-core) | Alder Lake (E-core) | Raptor Lake (E-core) | Raptor Lake (E-core) |
| | | | | Bonnell | Bonnell | Bonnell | Bonnell | Silvermont | Silvermont | Silvermont | Silvermont | Goldmont | Goldmont | Goldmont | Goldmont | Tremont | Tremont | Tremont | Tremont | | | Gracemont | Gracemont | Gracemont | Gracemont |