# Stepping (microprocessori)

Il termine stepping in informatica viene utilizzato per indicare una specifica "revisione" nell'hardware di un microprocessore, che non coinvolge cambiamenti significativi nella sua architettura.
Si tratta di un concetto utilizzato soprattutto dai maggiori produttori mondiali di microprocessori, Intel e AMD, per indicare quanto il design di uno specifico processore è avanzato rispetto al suo design originale, e viene generalmente indicato da una combinazione di una lettera ed un numero.

## Premessa

Quando un produttore sviluppa un nuovo processore, esso passa attraverso una serie di "stadi di sviluppo" prima di poter essere pronto per il mercato. Gli ultimi stadi di questo lungo processo comprendono processori che potrebbero già teoricamente essere commercializzati, ma il continuo test di queste soluzioni ne evidenzia alcuni limiti (soprattutto bug) che vengono sistematicamente risolti grazie proprio a nuovi stadi, o "passi", di sviluppo, da qui il termine "Stepping".
I produttori cercano di immettere sul mercato prodotti il più possibile esenti da bug, altrimenti rischierebbero grosse campagne di richiamo di prodotti difettosi con conseguenti grossi esborsi di denaro, come è successo a Intel nel 1993 con il famoso bug del primo Pentium (che divenne noto con il nome di Pentium FDIV bug) che la costrinse a richiamare tutti i modelli già venduti e sostituirli con nuove versioni basate appunto su un nuovo Stepping che ne risolveva il problema.
Sebbene quindi si cerchi di immettere sul mercato prodotti "perfetti", questo solo raramente accade, e proprio la prova in massa degli utilizzatori finali mette spesso in luce alcuni limiti dello stepping corrente, più o meno gravi; di conseguenza, anche dopo l'uscita sul mercato, spesso alcuni prodotti vengono aggiornati a nuovi stepping che risolvono o migliorano alcuni aspetti della produzione.

## Obiettivi dei vari Stepping

In genere attraverso nuovi Stepping, i produttori integrano nuove funzionalità hardware o altri miglioramenti. Per quanto riguarda la prima categoria, si possono fare diversi esempi: tra questi si può ricordare quando Intel aggiunse (solo in un secondo tempo, e grazie a 2 nuovi stepping) ai suoi processori Pentium 4 Prescott le istruzioni EM64T per l'elaborazione di codice a 64 bit e il supporto alla tecnologia di sicurezza XD-bit. Per quanto riguarda invece gli altri miglioramenti essi sono, come detto, principalmente rivolti alla risoluzione di bug tecnici (a volte di lieve entità, altre volte di grande rilevanza, come è successo ad AMD a fine 2007 con il bug della cache L3 dei nuovi processori Phenom), ma a volte possono semplicemente migliorare alcuni aspetti che non compromettono minimamente il normale funzionamento del processore, come per esempio una maggiore tolleranza all'overclock o la riduzione del consumo massimo, come è successo per i Core 2 Quad Kentsfield di Intel, che nelle prime versioni consumavano fino a 105 W e che in un secondo tempo grazie ad un nuovo stepping sono passati a 95 W.
Generalmente la prima versione di un processore viene indicata come Stepping "A0"; le successive revisioni verranno indicate da variazioni della lettera e/o del numero. Cambiamenti nel numero (per esempio "A3") indicano cambiamenti minori nel design, mentre modifiche più radicali comportano cambiamenti sia nella lettera sia nel numero (per esempio "B2").

## Stepping e Die shrink

A volte si tende a confondere lo "Stepping" (o meglio gli scopi dello Stepping) con il Die shrink. Quest'ultimo è in sostanza un "ridimensionamento" o "scalatura" di un processore mediante un processo produttivo più sofisticato. Generalmente il Die shrink dovrebbe essere solo questo, ovvero produrre processori formalmente identici nell'architettura e nel design interno, semplicemente sfruttando diversi processi produttivi, ma a volte i produttori approfittano di un Die Shrink per integrare nuove funzionalità o maggiori quantitativi di cache eseguendo di conseguenza anche un cambio di Stepping.
Un esempio di Die shrink "puro" fu il passaggio dal core Prescott (costruito a 90 nm) al core Cedar Mill (costruito a 65 nm) per i Pentium 4; le caratteristiche erano rimaste pressoché le stesse, compreso il quantitativo di cache. In tempi più recenti, a fine 2007, il passaggio dai 65 nm ai 45 nm operato sempre da Intel con i processori basati sull'architettura "Core" ha portato anche all'aumento del 50% della cache L2 oltre all'aggiunta delle istruzioni SSE4 e altre migliorie generali all'intera architettura. Questo Die shrink "impuro" (accompagnato cioè anche da un cambio di Stepping) è stato poi seguito da un successivo cambio di Stepping avvenuto a marzo 2008 per i processori quad core (basati sul nuovo core Yorkfield) che nella loro prima revisione soffrivano di un bug ad alte frequenze di clock che poteva portare al blocco del sistema.

## Individuazione dello Stepping di un processore

Microsoft Windows non fornisce informazioni riguardanti lo Stepping del processore installato nel sistema, dando per scontato che si tratti di informazioni che non interessano la maggioranza degli utenti. Per poter conoscere su quale Stepping è basato uno specifico processore, si può operare su due fronti: il più semplice è quello di installare applicazioni di diagnostica hardware (ad esempio CPU-Z o Everest) che fornisce in una sola schermata tutte le informazioni desiderate sul processore installato nel sistema; si tratta di un metodo molto veloce ma che può ovviamente essere utilizzato solo per processori già acquistati e installati nel proprio sistema. In alternativa, chi al momento dell'acquisto volesse conoscere lo Stepping del processore dovrebbe leggere il numero seriale serigrafato sul componente stesso e sulla confezione; lo stepping non viene evidenziato esplicitamente all'interno del numero seriale, ma una successiva verifica sul sito del produttore consentirà di scoprire a quale specifico processore (modello, clock e stepping) si riferisce tale numero seriale.
Un altro metodo (anche questo solo per processori già installati nel proprio sistema) può essere quello di eseguire, all'avvio del computer, una versione "live" di Linux (per esempio un CD di installazione di Ubuntu), senza cioè doverlo necessariamente installare. Poi, aprendo un terminale (finestra di comandi) e digitando il comando:
si ottengono numerose informazioni sulla CPU in uso, compreso lo stepping e altre caratteristiche supportate. Il metodo può essere usato anche su computer Mac, sia Intel che PowerPC (naturalmente usando la versione di Linux corrispondente al tipo di CPU).