Il processore


Architettura

schema CPU

Comunicazione con la memoria RAM

MAR - Memory Address Register

MDR - Memory Data Register (a volte detto anche MBR - Memory Buffer Register)

Questi due registri comunicano con la memoria attraverso il Data Bus e l'Address Bus (che si trovano sulla scheda madre). Il primo comunica alla mamoria l'indirizzo della cella da selezionare, e il secondo il dato da leggere o scrivere.

Ciclo del processore

Il ciclo del processore consiste nell'indirizzamento (addressing), prelevamento (fetching), decodifica (decoding) ed esecuzione (executing) di istruzioni dalla memoria.
Per gestire il ciclo vengono usati due registri:

PC - Program Counter

IR - Instruction Register

Questi due registri servono a gestire l'avanzamento del programma. Il primo tiene traccia dell'indirizzo della prossima istruzione  da eseguire,  il secondo contiene l'istruzione corrente.

Stato del processore 

Ad ogni istruzione lo stato del processore può cambiare, a seconda del risultato dell'istruzione stessa. Memorizzare lo stato del processore può influenzare l'esito dell'istruzione successiva.

SR - Status Register

Il Registro di stato contiene dei bit che indicano lo stato del processore, e vengono impostati di volta in volta secondo il risultato dell' ultima operazione compiuta.

Alcuni bit registrano il risultato delle operazioni eseguite dalla ALU:
Zero BIT - risultato nullo
Negative BIT - risultato negativo
Overflow BIT- risultato troppo grande
Carry BIT - risultato con riporto
Parity BIT - numero di bit =1 pari

Altri invece vengono impostati dal programmatore:
Interrupt BIT - interrompibile
Direction BIT - direzione di lettura della memoria
Trap BIT - controllo errori e interruzioni

Operazioni, dati e variabili

Le operazioni metematiche vengono eseguite dall' ALU, usando i registri R1, R2, ecc ... : si tratta di registri generici per  contenere dati e indirizzi. Il primo di questi registri era previsto già dal modello di von Neumann e vien ancora chiamato registro accumulatore

Caratteristiche tecniche

Velocità

La velocità del processore dipende dalla frequenza di funzionamento: più alta è la frequenza, cioè maggiore il numero di cicli al secondo, maggiore è la velocità. Attualmente la frequenza di funzionamento di un processore si misura in GHZ (GigaHertZ), cioè miliardi di cicli al secondo.

Una unità di misura alternativa sono i MIPS (Milioni di Istruzioni Per Secondo); dato che la velocità di esecuzione di un'istruzione è variabile (dipende dalla sua complessità), questa è una misura statistica.

Parallelismo e pipelining

Una tecnica per velocizzare il ciclo di CPU è quella di fare in modo che mentre viene eseguita una fase,  si dia inizio già alla fase precedente per l'istruzione successiva.
Quindi per esempio quando l'istruzione è in fase di decoding, la successiva è già in fase di fetching e quella dopo in fase di addressing. Questo richiede che alcuni registri interni (IR, PC) vengano duplicati per poter gestire i serie istruzioni diverse.

Negli ultimi anni i produttori di mcroprocessori sono addirittura riusciti a inserire in un unico chip due, quattro o addirittura 8 CPU, dando origine ai cosiddetti processori dual-core, quad-core, 8-core.

Ampiezza registri

Un' altra caratteristiche che influenza la velocità del processore è l'ampiezza dai suoi registri dati, e di conseguenza l'ampiezza del bus dati; infatti se posso trasferire e trattare più bit contemporaneamente, aumento la velocità delle operazioni.  I nuovi processoria 64 bit  hanno quindi a parità di clock una velocità superiore a quelli a 32 bit.

Cache

Per velocizzare le operazioni di trasferimento dati dalla memoria i moderni processori sono anche dotati di una memoria interna (cache di 1 livello) dove vengono trasferite le istruzioni contigue a quella richiesta, in modo che siano direttamente disponibili per i cicli successivi.

Principali marche di processori

INTEL - processori per PC e schede grafiche

AMD (Advanced Micro Devices) - processori compatibil Intel e per schede grafiche(AMD Radeon)

NVIDIA - processori per schede grafiche

SPARC - processori ad alta scalabilità a tecnologia non propretaria

MOTOROLA - processori per elettronica di consumo



Avanti