Il Processore

 

 

Il processore o più precisamente microprocessore inizialmente era un componente facente parte della scheda madre. Infatti, sui primi elaboratori veniva saldato al momento della fabbricazione, mentre oggi è possibile rimuovere il processore danneggiato o lento ed aggiornare la propria macchina con un nuovo componente, a patto che sia compatibile.
Il processore è chiamato CPU (Central Processing Unit), cioè unità centrale di elaborazione.
Esso è formato da:

 

 

La frequenza di clock

La frequenza del clock (clock = orologio), espressa in MegaHertz, descrive il numero di operazioni elaborate in un secondo. I circuiti elettronici impiegano un certo tempo per compiere le operazioni e, per quanto piccolo, questo non è mai zero. Se un circuito è più lento di un altro si possono verificare perdite di dati in quanto il circuito più veloce ne invia più di quelli che il circuito più lento è in grado di raccogliere. Serve allora un meccanismo per la sincronizzazione e questo è il compito del clock. Il segnale di clock è calcolato in base al componente più lento.
Se per elaborare un’istruzione, per esempio, un componente impiega mezzo secondo, vuol dire che in un secondo esso può compiere due operazioni. Quindi un computer che ha una frequenza di clock di 133 MHz compie 133 milioni di operazioni al secondo e, conseguentemente, per compiere un’operazione impiega un centotrentatremilionesimo di secondo, ossia 7,5 nS (nanosecondi).

Esistono comunque due tipi di clock: interno ed esterno. Il clock interno è quello che regola la velocità della CPU e del bus interno, mentre quello esterno regola la velocità del bus dati sulla scheda madre ed è sempre minore rispetto a quello interno. Infatti, sulle scheda madre è possibile selezionare un’appropriata velocità per il bus dati (detto clock del bus) ed un moltiplicatore, per ottenere la velocità della CPU. Così un Pentium 133 MHz si ottiene utilizzando 66 MHz sul bus con il moltiplicatore impostato a 2. Infatti, 66x2=132, circa 133 MHz.

Oggi è nota la tecnica dell’overclocking (over = sopra), ossia l’impostare un clock più alto di quello prescritto dal costruttore. Ciò si può fare sia sul bus sia sulla CPU tramite il moltiplicatore, ma comporta comunque dei rischi. Infatti, il passaggio di corrente a velocità più elevate provoca un aumento del calore ed in alcuni casi bisogna potenziare il sistema di raffreddamento tramite pasta elettroconduttiva (e quindi anche termoconduttiva), dissipatori di calore, ventole di aerazione. Normalmente la CPU è corredata di ventola per prevenire rischi da surriscaldamento (Figura). Bisogna cercare di non esagerare, perché anche i circuiti hanno i loro limiti e, anche se la CPU non fonde, può provocare errori inaspettati.

Attenzione all’overclocking: si perde la garanzia del prodotto.

 

 

Sottosistema di controllo 

Il sottosistema di controllo (SCO) regola il flusso di dati da e verso le varie parti della CPU. Per esempio si occupa della gestione del buffer, della cache, del bus interno e della coda di istruzioni. Questa parte interna del processore coopera in modo diretto con il controllore di dati presente sulla scheda madre, il quale è costituito da una serie di chip (integrati) detto appunto insieme di chip (chipset).

 

 

Il buffer e la coda

Quando un processore elabora le informazioni ad una velocità diversa da quella delle varie periferiche si verifica il fenomeno chiamato “collo di bottiglia”, cioè la sua esecuzione viene rallentata finché il sistema non ha ricevuto il dato che sta elaborando al momento. Accade però, anche il contrario, cioè che il processore finisca il lavoro molto prima che giunga l’istruzione successiva. In questo modo “girerebbe a vuoto" per diversi cicli di clock. Per ovviare a questi due inconvenienti sono stati introdotti il buffer e la coda di istruzioni (chiamata anche di pre-fetch).
Il buffer libera rapidamente la CPU perché immagazzina i risultati delle istruzioni già eseguite. A questo punto, mentre le periferiche prelevano questi dati, la CPU ne sta elaborando altri. Si è così ridotto il “collo di bottiglia“.
La coda di pre-fetch, invece, è una lista di istruzioni inviate dall’esterno al processore e raccolta in uno spazio di memoria temporanea, in modo da poter essere sempre disponibili per il processore mentre la parte restante del sistema trasferisce il resto dei dati (per esempio quelli in uscita).
Mettendo in cooperazione la coda ed il buffer si ottiene un lavoro continuo ed omogeneo da parte della CPU verso il bus dati.

 

 

I registri del processore

Per gestire le operazioni sui dati il processore ha bisogno di uno spazio da cui prelevare i dati e di uno spazio in cui memorizzarli. Questi piccoli spazi sono chiamati registri. Dopo che un’istruzione ha inviato al sottosistema di controllo la richiesta dei dati, questi vengono letti dalla memoria centrale e copiati nei registri del processore, a cui hanno diretto accesso le istruzioni vere e proprie. Il risultato dell’istruzione eseguita viene posto in un ultimo registro prima di essere trasmesso (sempre tramite il sottosistema di controllo) alla memoria centrale.

Così, per esempio, per eseguire  5 + 3 = 8   l’iter che il processore segue è questo:

1. Richiesta al sottosistema di controllo di esecuzione dell’addizione;
2. Porre nel registro A il valore 5 copiandolo dalla memoria centrale;
3. Porre nel registro B il valore 3 copiandolo dalla memoria centrale;
4. Inviare l’istruzione ADD (somma), che eseguirà A+B=C;
5. Porre nella memoria centrale il valore 8 copiandolo dal registro C.

I registri sono numerosi e dipendono dall’architettura del processore. Per fare un esempio un processore 80386 dotato di bus a 32 bit contiene i seguenti registri:
AL:AH (AX), BL:BH (BX), CL:CH (CX), DL:DH (DX), CS:IP, DS:SI, SS:SP, BP, DI, ES, Flags.

 

 

Pipeline ed architetture superscalari

Come si può notare dal paragrafo precedente il processore sfrutta 4 cicli per compiere un’operazione. Poiché le fasi 2 e 3 possono essere riassunte in un’unica fase chiamata estrazione dei dati dalla memoria, otteniamo:

1. IF (Istruction Fetch): prelievo dell’istruzione dalla memoria;
2. ID (Istruction Decode): decodifica dell’istruzione per il prelievo dei dati dalla memoria;
3. EX (Execute): esecuzione dell’istruzione;
4. WB (Write Back): fase di scrittura in memoria del risultato.

Tutto questo lavoro può essere velocizzato tramite il sistema Pipeline. Questo sistema può essere tradotto come catena di montaggio. Ciò vuol dire che le fasi di esecuzione di un’istruzione vengono ridistribuite in modo non lineare, e precisamente incolonnate, in modo che per ogni ciclo avvenga un’operazione di WB (a parte la prima istruzione che dovrà in ogni caso attendere il 4° ciclo).

Qui sotto è illustrato il caso in cui manca la pipeline e, per ottenere il risultato di tre istruzioni, ci vogliono ben 12 cicli di clock, mentre si nota nella figura successiva come, con una struttura a pipeline, per eseguire le stesse tre istruzioni bastino 6 cicli.

 

 

 

 

Questo è possibile perché i quattro circuiti interessati alle quattro fasi di elaborazione sono stati resi indipendenti. In assenza di pipeline, rimarrebbero inattivi per ¾ del tempo.
Le architetture superscalari non sono altro che l’implementazione di più pipeline. Per esempio l’80386 era dotato di una pipeline, quindi non era un processore superscalare, mentre sin dalla prima serie di Pentium si parla di pipeline superscalari.

 

 

Branch Prediction
 

Branch Prediction (predizione del ramo) è una particolarità dei Pentium Pro, Pentium II, III e successivi. Consiste nell’esame, da parte di un determinato circuito della CPU, della coda di pre-fetch, in modo da individuare i rami (le istruzioni) che devono attendere i dati da altre istruzioni. Poiché tali operazioni “bloccano” momentaneamente l’esecuzione del programma, il circuito di Branch Prediction interpreta in che modo è meglio riorganizzare la coda spostando le varie istruzioni. Tutto questo lavoro dovrebbe farlo il programmatore durante la fase di progetto, ma richiederebbe una minuziosa conoscenza di ogni istruzione e l’attenzione posta per questa ottimizzazione spesso andrebbe a discapito delle funzionalità del programma. In passato è già successo che abbiano scritto codice ottimizzato (per codice s’intendono i programmi), ma poco funzionale. Attraverso il Branch Prediction tutto ciò è svolto in tempo reale dal processore.

 

 

Tecnologia MMX

L’elaborazione di suoni, immagini, disegni tridimensionali, filmati si chiama multimedialità. Questo tipo di elaborazione richiede l’esecuzione di calcoli complicati molto velocemente (in tempo reale). Le operazioni da eseguire sui disegni 3D e sui filmati sono di tipo floating point (in virgola mobile) e vengono svolti dal coprocessore matematico. Per aumentare le performance è stata realizzata una tecnologia chiamata MMX (MultiMedia eXtension), con la quale si sono aggiunte al set del coprocessore matematico 15 istruzioni multimediali ed i relativi circuiti per eseguirle. La tecnologia MMX è in continua espansione e presto avremo un set di istruzioni multimediali molto più ricco. Per esempio, dal pentium III sono state aggiunte le istruzioni chiamate SSE, con funzioni anch'esse multimediali.

 

 

La famiglia 80x86

I microprocessori prodotti dalla Intel si sono imposti sul mercato fin dai primi modelli perché vantavano il pregio di essere tutti compatibili. Per poter garantire la compatibilità, il set di istruzioni del processore successivo doveva essere formato da quello precedente, espanso con nuove istruzioni. Questo tipo di compatibilità è chiamata verso il basso, perché un programma che funziona con un determinato modello può funzionare anche con i successivi, ma non viceversa.

I diversi modelli realizzati nella famiglia 80x86 sono i seguenti:

- 8088, con architettura a 8 bit, realizzato negli anni ’70 circa ed utilizzato fino al 1986-87 circa. Frequenza di lavoro 8 MHz circa;
- 8086, sempre a 8 bit, poco utilizzato. Frequenza di lavoro 10 MHz circa;
- 80186, con architettura a 16 bit, mai commercializzato. Frequenza di lavoro 12 MHz circa;
- 80286, sempre a 16 bit. Frequenza di lavoro fino a 16 MHz circa;
- 80386, funzionante a 32 bit con cache interna di 4 Kb ed una struttura con pipeline. Frequenze di lavoro fino a 40 MHz circa;
- 80486, a 32 bit, con 8 Kb di cache, coprocessore matematico integrato e doppia pipeline. Frequenze di lavoro fino a 100 MHz circa;
- Pentium serie I. Si sarebbe dovuto chiamare 80586, con architettura a 64 bit, pipeline superscalare e cache interna maggiorata. Frequenze di lavoro fino a 200 MHz circa;
- Pentium MMX, che raggiunge frequenze di lavoro fino a 266 MHz circa;
- Pentium II e III, che incapsulano anche la cache di secondo livello (prima risiedeva sulla scheda madre). Raggiungono frequenze di lavoro fino a 600 MHz circa ed hanno uno zoccolo particolare chiamato Slot 1, perché, a differenza dei precedenti processori che utilizzavano il Soket 7, essi hanno una forma che ricorda quella di una cartuccia;
- Pentium III FC-PGA (Flip Chip - Pin Grid Array), derivati dai Pentium III a cartuccia, ma con la forma classica del vecchio Pentium I, con la sola differenza che lo zoccolo (Slot A) ha un numero molto maggiore di piedini (anche nella parte centrale). Questi processori lavorano fino a 850 MHz circa.
- Pentium 4, sempre in tecnologia FCPGA, conservano tutte le caratteristiche del Pentium III supportando nuovi standard hardware e software ed in grado di lavorare a frequenze molto più alte: da 1 GHz a 2 GHz (1GHz = 1000MHz). Necessitano anche una alimentazione maggiore perché dissipano più potenza elettrica.

 

 

Concorrenti della Intel

Ciryx e AMD (Advanced Micro Devices Inc) sono i marchi più famosi sempre stati antagonisti della Intel per la produzione di microprocessori compatibili, ma mentre la prima di queste due case ha praticamente chiuso i battenti, la seconda continua a produrre processori che hanno raggiunto le potenzialità dei processori Intel ed anche la compatibilità (che fino a qualche tempo fa sfiorava l'80%). Ma c'é di più: con i nuovi processori Thunderbird e XP l'AMD si è conquistata il mercato dei processori affermando uno standard sicuro, veloce ed anche economico (rispetto ad Intel), tanto che la nota casa produttrice di software Microsoft da deciso di supportare pienamente i nuovi processori AMD Athlon XP nel nuovo sistema operativo. Ed i risultati sono impressionanti: i nuovi Athlon XP 1600 MHz superano in prestazioni i Pentium 4 - 2 GHz.

 

 

Torna alla Home page        Torna a Nozioni di base        Torna a Hardware