CORSO BASE DI
“TECNICO RIPARATORE HARDWARE”
“CPU”
Docente:
Dott. Ing. Antonio Pagano
DEFINIZIONE
L'unità di elaborazione centrale o CPU è una tipologia di
processore digitale general purpose la quale si contraddistingue per
sovraintendere tutte le funzionalità del computer digitale basato
sull'architettura di von Neumann o sull'architettura Harvard. In
particolare l'unità di elaborazione centrale è una tipologia di
processore estremamente diffusa in quanto i moderni computer
general purpose normalmente sono digitali e basati sull'architettura di
von Neumann. Il compito della CPU è quello di eseguire le istruzioni
di un programma presente in memoria. Durante l'esecuzione del
programma la CPU legge o scrive dati in memoria. Il risultato
dell'esecuzione dipende dal dato su cui si opera e dallo stato interno
in cui la CPU stessa si trova, e può mantenere la traccia delle
operazioni passate. Attualmente la CPU è implementata come
microprocessore.
STRUTTURA 1/3
Una generica CPU contiene:
un'unità di controllo (anche nota con l'acronimo "CU") che legge
dalla memoria le istruzioni, se occorre legge anche i dati per
l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è,
scrivendolo in memoria o in un registro della CPU.
un'unità aritmetica e logica (anche nota con l'acronimo "ALU")
che si occupa di eseguire le operazioni logiche e aritmetiche;
dei registri, speciali locazioni di memoria interne alla CPU, molto
veloci, a cui è possibile accedere molto più rapidamente che alla
memoria: il valore complessivo di tutti i registri della CPU
costituisce lo stato in cui essa si trova attualmente.
STRUTTURA 2/3
Due registri sempre presenti sono:
il registro IP (Instruction Pointer) o PC (Program Counter), che
contiene l'indirizzo in memoria della prossima istruzione da
eseguire;
il registro dei flag: questo registro non contiene valori numerici
convenzionali, ma è piuttosto un insieme di bit, detti appunto flag,
che segnalano stati particolari della CPU e alcune informazioni sul
risultato dell'ultima operazione eseguita. I flag più importanti
sono:
Flag di stato;
Flag di controllo.
STRUTTURA 3/3
Una generica CPU deve eseguire i suoi compiti sincronizzandoli con
il resto del sistema
sistema:: perciò è dotata, oltre a quanto sopra elencato,
anche di uno o più bus interni che si occupano di collegare registri,
ALU, unità di controllo e memoria:
memoria: inoltre all'unità di controllo
interna della CPU fanno capo una serie di segnali elettrici esterni che
si occupano di tenere la CPU al corrente dello stato del resto del
sistema e di agire su di esso
esso.. Il tipo e il numero di segnali esterni
gestiti possono variare ma alcuni, come il RESET
RESET,, le linee di IRQ e il
CLOCK sono sempre presenti
presenti.. Una CPU è un circuito digitale
sincrono:: vale a dire che il suo stato cambia ogni volta che riceve un
sincrono
impulso da un segnale di sincronismo detto clock, che ne determina
di conseguenza la velocità operativa, detta velocità di clock
clock:: quindi il
tempo di esecuzione di una istruzione si misura in cicli di clock, cioè
in quanti impulsi di clock sono necessari perché la CPU la completi
completi..
SET DI ISTRUZIONI MACCHINA 1/2
Le istruzioni di una CPU (instruction set) sono semplicemente dei
numeri, detti opcode o codici operativi: in base al loro valore l'unità
di controllo intraprende delle azioni predefinite, come per esempio
leggere la successiva locazione di memoria per caricare un dato,
oppure attivare la ALU per eseguire un calcolo, oppure scrivere il
contenuto di un registro in una certa locazione di memoria o in un
altro registro, oppure una combinazione di queste.
Per una persona, stendere programmi scrivendo direttamente gli
opcode è estremamente noioso e prono all'errore. Per questo motivo
si utilizza l'assembly, che associa un simbolo mnemonico ad ogni
istruzione della CPU e introduce una sintassi che permette di
esprimere i vari metodi di indirizzamento in modo più intuitivo.
SET DI ISTRUZIONI MACCHINA 2/2
Una caratteristica importante dell'insieme (set) delle istruzioni di una
CPU è la sua ortogonalità
ortogonalità:: vale a dire, il fatto che ogni istruzione che
usi i registri possa usarli tutti indifferentemente (tranne quelli
"speciali" come l'IP) e che nessun registro sia in qualche modo
privilegiato rispetto agli altri perché su di esso si possono compiere
operazioni particolari
particolari:: è stato dimostrato che un set di istruzioni
ortogonali, a parità di tempo di esecuzione delle istruzioni e di
numero dei registri, è più efficiente di uno non ortogonale
ortogonale..
FAMIGLIE DI CPU 1/2
In base all'organizzazione della memoria si possono distinguere le
seguenti due famiglie di CPU:
con architettura di von Neumann, in cui i dati e le istruzioni
risiedono nella stessa memoria. Questa architettura è la più
comune, perché è molto semplice e flessibile.
FAMIGLIE DI CPU 2/2
con architettura Harvard, in cui i dati e le istruzioni risiedono in
due memorie separate. Questa architettura può garantire
prestazioni migliori poiché le due memorie possono lavorare in
parallelo riducendo le alee strutturali, ma è ovviamente molto più
complessa da gestire. È tipicamente utilizzata nei DSP.
ARCHITETTURA CISC 1/2
Quando i transistor disponibili su un solo chip erano pochi e i
calcolatori venivano spesso programmati in assembly, era naturale
sfruttarli in modo tale da avere CPU con istruzioni potenti, evolute e
complesse: più queste erano vicine alle istruzioni dei linguaggi di
programmazione ad alto livello più il computer sarebbe stato facile da
programmare, e i programmi avrebbero occupato poco spazio in
memoria (anch'essa poca e preziosa). Le CPU progettate secondo
questo approccio sono dette CISC ed avevano unità di controllo
complesse capaci di sfruttare al meglio pochi registri e i cui
programmi erano di dimensioni relativamente piccole. CISC è
l'acronimo di Complex Instruction Set Computer: tipicamente un
processore di questo tipo implementa un numero relativamente scarso
(una decina) di registri di uso generale. ha una unità di controllo
microprogrammata: la logica del programma è memorizzata in una
ARCHITETTURA CISC 2/2
Ha una unità di controllo microprogrammata: la logica del
programma è memorizzata in una memoria veloce situata nella parte
di controllo, invece di essere espressa tramite una rete combinatoria.
Il set di istruzioni associato a CPU di tipo CISC è molto esteso e
composto in genere di alcune centinaia di codici operativi diversi che
svolgono funzioni anche molto complesse, fra cui sono caratteristici i
trasferimenti memoria-memoria, assenti nei RISC; le istruzioni hanno
lunghezza variabile e possono presentarsi in formati diversi, e sono
necessari due o più (a volte molti di più) cicli di clock per completare
una istruzione; è possibile specificare la posizione dei dati necessari
alle istruzioni usando molti metodi di indirizzamento diversi. Il
ridotto numero di registri interni obbliga questi processori a scrivere
in memoria ogni volta che si verifica una chiamata di funzione, che si
verifica un context switch o che viene salvato un registro nello stack.
ARCHITETTURA RISC 1/2
A cavallo fra gli anni '70 e gli '80 la situazione però cambiò
rapidamente: la RAM divenne più economica e comparvero i primi
compilatori moderni, ottimizzanti, in grado di generare linguaggio
macchina molto efficiente: per questo si iniziò a pensare ad un nuovo
modo di progettare le CPU, prendendo in esame la possibilità di usare
i transistor disponibili per avere invece molti registri e un set di
istruzioni elementare, molto ridotto, che delegasse al compilatore il
lavoro di tradurre le istruzioni complesse in serie di istruzioni più
semplici, permettendo così di avere unità di controllo particolarmente
semplici e veloci. Attualmente la distinzione fra queste due classi di
architetture è venuta in gran parte meno: il numero di transistor
disponibili su un solo chip è aumentato tanto da poter gestire molti
registri ed anche set di istruzioni complesse.
ARCHITETTURA RISC 2/2
RISC (Reduced Instruction Set Computer). Il tipico set di istruzioni
RISC è molto piccolo, circa sessanta/settanta istruzioni molto
elementari (logiche, aritmetiche e istruzioni di trasferimento
memoria-registro e registro-registro): hanno tutte lo stesso formato e
la stessa lunghezza, e molte vengono eseguite in un solo ciclo di
clock. I processori RISC posseggono una unità di controllo semplice
e a bassa latenza, riservando invece molto spazio per i registri interni:
una CPU RISC ha di solito da un minimo di un centinaio ad alcune
migliaia di registri interni generici, organizzati in un file di registri. Il
fatto di avere un formato unico di istruzione permette di strutturare
l'unità di controllo come una pipeline, cioè una catena di montaggio a
più stadi: questa innovazione ha il grosso vantaggio di ridurre il
critical path interno alla CPU e consente ai RISC di raggiungere
frequenze di clock più alte rispetto agli analoghi CISC.
IL MICROPROCESSORE
In elettronica, un microprocessore (abbreviazione "µP") è un
processore interamente contenuto in un circuito integrato.
Attualmente la tendenza è di inserire anche più processori nel
medesimo circuito integrato. In particolare, da una decina d'anni, la
tendenza è di inserire, nel medesimo circuito integrato, molteplici
CPU tutte identiche ("multicore"). Solo da qualche anno inoltre è in
atto la tendenza ad inserire, nel medesimo circuito integrato, oltre che
molteplici CPU, anche una GPU.
Il microprocessore è attualmente l'implementazione fisica della CPU
più comune, utilizzato dalla quasi totalità dei computer e in altri
dispositivi digitali (come ad esempio telefoni cellulari, stampanti,
scanner). Può essere in grado di leggere, elaborare e scrivere
informazioni in una memoria o verso altri dispositivi digitali.
Microprocessori
Per approfondimenti si rimanda al seguente link:
http://it.wikipedia.org/wiki/Microprocessore
Grazie