ELETTRONICA DIGITALE (2^ Parte)
(9)
10/1/2011
Struttura del processore
Elettronica Digitale (2^ Parte)
10-11_9
1
Struttura del Processore
Modello Generale
Elettronica Digitale (2^ Parte)
10-11_9
2
Modello di Processore
Elettronica Digitale (2^ Parte)
10-11_9
3
Modello di Processore
• È il modello di processore sincrono, basato sulla
distinzione tra unità di calcolo e di controllo.
• È uno schema di base ed essenziale, in generale non è
il più efficiente possibile, ma in linea di principio è adatto
a eseguire qualunque insieme di istruzioni macchina
• Può eseguire una sola istruzione macchina per volta
(è un modello sequenziale, non parallelo).
• In generale, per eseguire un’istruzione macchina
impiega uno o (spesso) più cicli di clock, secondo:
– Numero di parole dell’istruzione macchina
– la complessità computazionale dell’istruzione macchina
– la potenza computazionale dell’unità di calcolo
Elettronica Digitale (2^ Parte)
10-11_9
4
Unità Componenti
• Unità di Calcolo (o data path)
– esegue l’istruzione macchina e i calcoli in essa contenuti
– prepara gli indirizzi di memoria (o di I / O) e legge o scrive dati
da o in memoria (o da o su porta di I / O)
• Unità di Controllo (o control path)
– esamina e interpreta l’istruzione macchina
– pilota l’unità di calcolo e l’interfaccia di bus
– riceve dall’unità di calcolo o dall’interfaccia di bus segnali
di condizione vari, indicanti situazioni specifiche
• Interfaccia di Bus
– interagisce con il bus esterno e il resto del calcolatore
– svincola le unità di calcolo e controllo dai dettagli
del protocollo di bus del calcolatore
– (volendo, l’interfaccia di bus sarebbe riassorbibile nelle altre due
Elettronica Digitale (2^ Parte)
10-11_9
5
Comunicazione tra Unità
• Da unità di controllo a unità di calcolo:
– ordini: comandi per eseguire l’istruzione macchina
• Da unità di controllo a interfaccia di bus:
– ordini: comandi di bus implicati dall’istruzione macchina
(lettura da memoria, scrittura in memoria, ecc)
– riscontri: segnalazioni di bus relative all’andamento dell’operazione di
memoria (attesa, ecc)
• Da unità di calcolo a unità di controllo:
– istruzione macchina: codice operativo dell’istruzione macchina ed
eventualmente altri elementi dell’istruzione stessa necessari per
interpretarla compiutamente
– esiti (codici di condizione): bit di esito e altri segnali utili per determinare
il modo di esecuzione dell’istruzione macchina
• Da unità di calcolo a interfaccia di bus:
– Indirizzi e scambio dati con I/O e memorie
Elettronica Digitale (2^ Parte)
10-11_9
6
Struttura del Processore
Unità di Calcolo
Elettronica Digitale (2^ Parte)
10-11_9
7
Unità di Calcolo e Controllo a un Bus Interno
• Si fa riferimento a una CPU generica e a una memoria
centrale con parole da 32 bit (ma con
pochi cambiamenti tutto vale anche per 16 bit).
• Registri interni dell’unità di calcolo:
–
–
–
–
–
–
–
PC
(contatore di programma)
MAR
(indirizzo di accesso a memoria o porta di I / O)
MDR
(lettura e scrittura in memoria o porta di I / O)
IR
(contiene l’istruzione macchina in esecuzione)
R0, …, Rn1
(banco dei registri di uso generale)
TEMP, V, Z
(registri ausiliari, non visibili esternamente)
(volendo si può aggiungere il registro SP, e altri ancora)
• Unità di controllo:
– cablata (o dedicata)
– microprogrammata
Elettronica Digitale (2^ Parte)
10-11_9
8
Unità di Calcolo a un Bus Interno
È la struttura base di unità
di calcolo e trova ampio uso
in numerosi processori.
Con meno di così sarebbe
difficile svolgere i compiti
essenziali di solito richiesti
al processore.
Ammette varianti strutturali
e versioni più efficienti, ma
in ogni caso è un oggetto
fondamentale, che va
conosciuto e ricordato.
Elettronica Digitale (2^ Parte)
10-11_9
9
Operazioni elementari
• Leggere un registro e scrivere il contenuto in un
altro registro o all’ALU
• Calcolare un’operazione logica/aritmetica con
l’ALU e scrivere il risultato in un registro
• Leggere una posizione di memoria e scrivere il
contenuto in un registro interno
• Scrivere in una posizione di memoria il
contenuto di un registro interno
Elettronica Digitale (2^ Parte)
10-11_9
10
Sequenza di Controllo (1)
• La sequenza di controllo per eseguire un’istruzione
macchina è composta da uno o più passi di controllo,
uno per ogni ciclo di clock del processore.
• L’esecuzione complessiva dell’istruzione macchina si
divide in tre fasi, a loro volta costituite da una sottosequenza di passi di controllo:
– prelievo
(fetch)
– decodifica o interpretazione (decode)
– esecuzione e sequenziamento
(execute)
• A ogni passo di controllo vengono generati gli ordini
(attivi in parallelo) che pilotano l’unità di calcolo.
• L’effetto complessivo degli ordini è quello di svolgere
per intero l’istruzione macchina.
Elettronica Digitale (2^ Parte)
10-11_9
11
Sequenza di Controllo (2)
• Esempi di ordini:
–
–
–
–
lettura di un registro (dal registro al bus interno): R0out
scrittura su un registro (dal bus interno al registro): R1in
operazione della ALU: add, sub, and, or, cmp, …
lettura e scrittura su memoria (o su I / O): read, write
• Ordini mutuamente esclusivi:
– lettura da registro: il contenuto di un solo registro alla volta può
essere portato sul bus interno
– operazione di ALU ...... c’è una sola ALU !
• Ecco un esempio semplice. Con prelievo già fatto,
si consideri l’istruzione macchina seguente (a 32 bit):
– MOVE.L R0, R1
(interpretazione RTL: R1  R0)
– per eseguirla, gli ordini da dare sono: R0out, R1in
Elettronica Digitale (2^ Parte)
10-11_9
12
Sequenza di Controllo Completa
• Si consideri l’istruzione macchina seguente (somma contenuti R0 e
R1, risultato in R1):
– ADD R0, R1
-- R1  R0  R1
• Fase di prelievo (è identica per tutte le istruzioni):
– PCout, MARin, read, select 4, Zin add
-- Z  PC  4, leggi mem.
– Zout, PCin, Vin, WMFC (Wait for Mem Funct Compl) -- PC e V  Z, attendi fine
– MDRout, IRin
-- IR  MDR
• Fase di decodifica o interpretazione:
– decodifica l’istruzione macchina (non occorrono ordini, la decodifica è automatica
non appena la parola di opcode viene scritta in IR)
– se l’istruzione macchina è codificata su più parole, leggi anche
le parole di memoria aggiuntive e riaggiorna il PC (qui ev. ordini)
• Fase di esecuzione:
– R0out, Vin
– R1out, add, Zin
– Zout, R1in, end
-- V  R0
-- Z  R1  V
-- R1  Z, e poi torna a fase di prelievo
Elettronica Digitale (2^ Parte)
10-11_9
13
Collegamento tra Registri e
Bus
Attenzione: dato che il
bus interno è unico,
solo un dato può
essere trasferito in un
passo di controllo.
Per trasferire più dati,
occorrono più passi.
Idem, una sola
operazione aritmeticalogica per passo.
Elettronica Digitale (2^ Parte)
10-11_9
14
Struttura di un Registro
Interno
singolo flip-flop, con porta di lettura e scrittura verso il bus interno
un generico registro interno, dotato di porta di lettura e scrittura, è una
schiera di flip-flop come quello mostrato sopra, pilotati in parallelo
Elettronica Digitale (2^ Parte)
10-11_9
15
Registro MDR
gli ordini MDRoutE e MDRinE sono implicati dagli ordini write e read,
rispettivamente, e pertanto si possono omettere
Elettronica Digitale (2^ Parte)
10-11_9
16
Accesso a Mem. o a Unità di I / O
• Segnale MFC (Memory Function Completion), Riscontro di
completamento dell’operazione, è attivato dall’unità slave (qui
la memoria) e indica il completamento dell’operazione:
– per esempio in lettura indica che la memoria ha emesso il
dato e che questo, tramite il bus esterno, ha raggiunto
MDR
• Ordine WMFC (Wait for MFC): esso “blocca” l’avanzamento
dei passi di controllo finché il processore non ha ricevuto
MFC.
• Lettura da memoria: si può usare il registro MDR solo a
partire dal passo successivo a quello associato a WMFC.
In generale dunque l’ordine WFMC va dato nel passo
precedente a quello dove si utilizza il registro MDR.
• Scrittura in memoria: in generale l’ordine WMFC va dato
nello stesso passo dove si dà l’ordine di write.
• Idem per accedere a unità di I / O (interfaccia periferica).
Elettronica Digitale (2^ Parte)
10-11_9
17
Clock e Temporizzazione (1)
• Si suppone che il passo di controllo duri un ciclo di clock
(salvo eccezioni, si veda di seguito).
• Il passaggio da un ciclo di clock a quello successivo è
demarcato dal fronte di salita del clock (dunque idem per il
passo).
• L’unità di controllo dà gli ordini all’inizio del passo di controllo.
• Gli ordini si propagano durante il passo e vengono attuati
dall’unità di calcolo e dall’interfaccia di bus.
• Eventualmente l’unità di calcolo o l’interfaccia di bus mandano
all’unità di controllo, durante il passo, segnali di esito o
riscontri di bus, che l’unità di controllo interpreta per
condizionare l’esecuzione del passo di controllo stesso, o di
quelli successivi.
• I risultati prodotti dalle operazioni svolte durante il passo
raggiungono la rispettiva destinazione, e vengono quivi
memorizzati, verso la fine del passo.
Elettronica Digitale (2^ Parte)
10-11_9
18
Clock e Temporizzazione (2)
• L’emissione del contenuto corrente di un registro (sul bus interno o
esterno) avviene all’inizio del passo.
• La memorizzazione di un nuovo contenuto in un registro
avviene alla fine del passo.
• L’idea è che:
– all’inizio del passo si leggono valori dai registri sorgente
– durante il passo questi si propagano, eventualmente passano per la
ALU e quivi vengono elaborati
– e alla fine del passo si scrivono i risultati nei registri destinazione
• L’ordine WMFC prolunga il passo corrente di uno o più cicli di clock,
fino a quando non sia arrivato il segnale MFC.
• Il passo prolungato è come congelato e viene portato a compimento
nel ciclo di clock in cui arriva il segnale MFC.
Elettronica Digitale (2^ Parte)
10-11_9
19
Clock e Temporizzazione (3)
diagramma temporale
prolungamento del passo 2
Operazione di lettura
da memoria:
1) …, MARin, read
2) MDRoutE, WMFC
3) MDRout, …
Nota: l’ordine MDRoutE
si può omettere
(è implicato da read).
Si suppone che MFC
tardi di due cicli.
memoria tarda
di due cicli
Diagramma temporale
simile per la scrittura.
Elettronica Digitale (2^ Parte)
10-11_9
20
Esempi di altre Istruzioni Macchina
(supponendo di avere già prelevato e scritto in IR la parola
di codice operativo – la parola aggiuntiva, se c’è, va gestita)
MOVE (R0), R1
– R0out, MARin, read
– WMFC
– MDRout, R1in, end
(istruzione codificata su una sola parola)
-- MAR  R0, leggi mem.
-- attendi fine lettura
-- R1  MDR, e poi torna a prelievo
MOVE #VALORE, R1 (istruzione codificata su due parole)
– PCout, MARin, read, select 4, add, Zin
– Zout, PCin, WMFC
– MDRout, R1in, end
BRA ETICHETTA
–
–
–
–
(lungo – istruzione codificata su due parole)
PCout, MARin, read, select 4, add, Zin
Zout, PCin, Vin ,WMFC
MDRout, select V, add, Zin
Zout, PCin, end
Elettronica Digitale (2^ Parte)
10-11_9
21
Salto Condizionato
Prelievo della parola di opcode (comune a tutte le istruzioni):
– PCout, MARin, read, select 4, Zin add
– Zout, PCin, Vin,WMFC
– MDRout, IRIN
BRA ETICHETTA
(lungo – istruzione codificata su 2 parole)
– PCout, MARin, read, select 4, add, Zin
– Zout, PCin, Vin ,WMFC
– MDRout, select V, add, Zin
– Zout, PCin, end
Bcc < 0 ETICHETTA
(lungo – istruzione codificata su 2 parole)
– PCout, MARin, read, select 4, add, Zin
– Zout, PCin, Vin ,WMFC, if bit N  0 end
-- ordine
condizionale
– MDRout, select V, add, Zin
– Zout, PCin, end
Elettronica Digitale (2^ Parte)
10-11_9
22
Esempio di Istruzione
Completa
Istruzione Aritmetica
ADD (R3), R1 -- codificata su una sola parola
potrebbe servire
se fosse salto
interpretazione RTL: R1  R3  R1
Elettronica Digitale (2^ Parte)
10-11_9
23
Esempio di Istruzione
Completa
Salto Incondizionato (relativo a PC)
BRA ETICHETTA
serve per il salto
(che avrà luogo)
-- codificata su una sola parola
interpretazione RTL: PC  dist. salto  PC
attenzione: esempio (volutamente) un po’ diverso da quello di prima,
dove l’istruzione macchina era codificata su due parole
Elettronica Digitale (2^ Parte)
10-11_9
24
Esempio di Istruzione
Completa
Salto Condizionato (relativo a PC)
Bcc  0 ETICHETTA
serve per il salto
(se avrà luogo)
-- codificata su una sola parola
interpretazione RTL: se esito negativo PC  dist. salto  PC
attenzione: esempio (volutamente) un po’ diverso da quello di prima,
dove l’istruzione macchina era codificata su due parole
Elettronica Digitale (2^ Parte)
10-11_9
25
Unità di Calcolo a tre Bus Interni
bus R
si può anticipare
La presenza di tre bus interni
permette di avere parallelismo
maggiore di trasferimento di dato,
e dunque consente di ridurre il
numero di passi ( cicli di clock)
necessari per eseguire
l’istruzione, almeno fino a un certo
punto.
Elettronica Digitale (2^ Parte)
10-11_9
26
Ancora un po’ di Parallelismo
Op. di lettura da memoria R2 R1 in numero minimo
di cicli di clock (n  2).
procede in parallelo alle altre
op. interne del processore
Op. di lettura da memoria R2  R1 in n  2 cicli di clock.
Si possono mettere in parallelo all’operazione di memoria
(lettura o scrittura), o di I / O, operazioni puramente interne
al processore. È una forma (limitata) di parallelismo.
Elettronica Digitale (2^ Parte)
10-11_9
27
Struttura del Processore
Unità di Controllo
Elettronica Digitale (2^ Parte)
10-11_9
28
Unità di Controllo
• L’unità di controllo emette i segnali (ordini) che regolano il
funzionamento dell’unità di calcolo.
• L’unità di controllo può avere struttura:
– cablata (o dedicata): è costruita ad-hoc e si basa su
• decodificatore di istruzioni (che utilizza il registro IR)
• contatore (per scandire la successione dei passi di
controllo)
• bit di esito e segnali esterni, per istruzioni condizionate
• rete combinatoria per generare ordini a ogni passo di
controllo
– micro-programmata: decodifica l’istruzione macchina
e legge in una memoria di controllo (control store), tramite
un registro micro-PC, una micro-parola contenente i segnali
di controllo da emettere per eseguire l’istruzione
• Entrambe le strutture di UC sono usate, ma quella cablata oggi
è più comune giacché è più efficiente, benché sia meno
flessibile.
Elettronica Digitale (2^ Parte)
10-11_9
29
Unità di Controllo Cablata
Elettronica Digitale (2^ Parte)
10-11_9
30
Come Funziona
• Enumera i passi di controllo tramite il registro contatore.
• Riceve il codice operativo (più eventuali campi aggiuntivi, se
necessario) dell’istruzione macchina corrente (che si trova nel
registro IR) e lo interpreta estraendone l’operazione.
• Riceve eventuali bit di esito e segnali esterni, quando il passo
di controllo è di tipo condizionato (istr. di salto cond., ecc).
• Fonde le informazioni di numero di passo, operazione ed
eventuale esito / segnale esterno, e così passo per passo
genera gli ordini da mandare all’unità di calcolo e all’interfaccia
di bus.
• Pertanto realizza la sequenza di passi di controllo, specifica per
ciascuna istruzione macchina del programma.
• Lavora ciclicamente, e quando termina la sequenza di controllo
corrente preleva la nuova istruzione macchina e parte con la
nuova sequenza di passi corrispondente, e così via.
Elettronica Digitale (2^ Parte)
10-11_9
31
Rete Comb. Generatrice di Ordini
attivo
alto
gli istanti di tempo e i segnali che concorrono ad attivare l’ordine Zin
si deducono dalle sequenze di passi di controllo di ciascuna istruzione
Elettronica Digitale (2^ Parte)
10-11_9
32
Come progettare la Rete
Comb.
add
Nota bene: l’ordine Zin si
attiva nel primo passo
(fase di prelievo) comune
a tutte le istruzioni
macchina (colore rosso).
branch
Le attivazioni rimanenti di
Zin (colori rosa e verde)
dipendono da quale
istruzione sia in corso di
esecuzione.
Elettronica Digitale (2^ Parte)
10-11_9
33
Rete Comb. Generatrice di Ordini
attivo
alto
gli istanti di tempo e i segnali che concorrono ad attivare l’ordine end
si deducono dalle sequenze di passi di controllo di ciascuna istruzione
Elettronica Digitale (2^ Parte)
10-11_9
34
add
branch
branch  0
Come progettare la Rete
Comb.
Nel caso dell’istruzione
macchina “branch  0”
(cioè salto condizionato),
l’attivazione dell’ordine
end (colori verde e
arancio) dipende anche
dal valore corrente del bit
di esito N (che segnala
risultato negativo prodotto
da un’operazione
aritmetica precedente).
Elettronica Digitale (2^ Parte)
10-11_9
35
Rete Seq. Generatrice di Ordini
all’unità
di controllo
L’ordine run, che permette (se run  1) o blocca (se run  0) la transizione al
passo di controllo successivo, è speciale e va generato
in modo sequenziale (una rete combinatoria non basterebbe), in quanto è
legato all’andamento del tempo di funzioni , per esempio, quali read e write
Elettronica Digitale (2^ Parte)
10-11_9
36
Elettronica Digitale (2^ Parte)
10-11_9
37
Struttura del Processore
Unità di controllo
microprogrammata
Elettronica Digitale (2^ Parte)
10-11_9
38
Unità di Controllo -Programmata
• Il comportamento dell’unità di controllo di tipo
-programmato dipende solo dal contenuto della
memoria di -programma (o control store).
• I segnali di controllo (cioè gli ordini) di ogni passo sono
contenuti in una parola della memoria di -programma (o
-memoria).
• Ogni parola di -memoria viene chiamata -istruzione.
• La sequenza di -istruzioni corrispondenti ai passi di
controllo per l’esecuzione di un’istruzione macchina
costituisce una -routine.
• L’insieme di -routine costituisce il - programma
Elettronica Digitale (2^ Parte)
10-11_9
39
Memoria di -Programma

Istruzione macchina ADD (R3), R1 microprogrammata
Gli ordini (qui si chiamano -ordini) sono di tipo attivo alto. Ogni istruzione specifica i -ordini da attivare in parallelo durante il passo
di controllo corrente.
Elettronica Digitale (2^ Parte)
10-11_9
40
cablata
Elettronica Digitale (2^ Parte)
10-11_9
41
Struttura di UC Programmata
Struttura base:
• preleva l’istruzione
macchina
• decodifica il
codice operativo
• salta alla -routine
appropriata
• ne esegue le istruzioni
Elettronica Digitale (2^ Parte)
10-11_9
42
Esempio di -Routine
Salto Condizionato (relativo a PC)
Bcc  0 ETICHTTA -- codificata su una sola parola
1. PCout, MARin, read, select 4, Zin add
2. Zout, PCin, Vin,WMFC
3. MDRout, IRin
4. salta al -indirizzo della -routine appropriata
5. .................. (altre -routine)
25. PCout, MARin, read, select 4, add, Zin
26. Zout, PCin, Vin ,WMFC, if bit N  0 end (goto -istr. 1)
27. MDRout, select V, add, Zin
28. Zout, PCin, end (goto -istr. 1)
Elettronica Digitale (2^ Parte)
10-11_9
43
Formato di -Istruzione
La -istruzione è
suddivisa in campi,
ciascuno dei quali pilota
un solo elemento
funzionale del
processore:
-istr. orizzontale
oppure pilota un gruppo
di elementi funzionali
attivabili in mutua
esclusione:
-istr. verticale
Elettronica Digitale (2^ Parte)
10-11_9
44
Calcolo del -Indirizzo
• Per ottimizzare la struttura del -programma:
– riuso di parti di -codice per scrivere le differenti
-routine associate alle fasi di esecuzione delle varie
istruzioni macchina
• È utile per esempio per gestire:
– i vari modi di indirizzamento
– parti comuni a diversi modi di indirizzamento
• Tecnica: mascheratura di -indirizzo
• Il -indirizzo “generale” (o base) viene modificato
(ritoccato) mascherandone alcuni bit per generare
gli indirizzi corretti (vedi la struttura di UC mostrata prima),
verso dove si vuole effettivamente spostare
il flusso di controllo di -programma.
• La -istruzione che effettua la mascheratura di -indirizzo
costituisce a tutti gli effetti un -salto.
Elettronica Digitale (2^ Parte)
10-11_9
45
Struttura di UC
-Programmata
La -istruzione incorpora
il -indirizzo della prossima
-istruzione da eseguire.
Di solito il -ind. incorporato
punta alla -istr. consecutiva.
Ma il -ind. incorporato viene
ritoccato con mascheratura
quando occorre effettuare un
-salto condizionato, a due o
più vie (destinazioni di salto).
Elettronica Digitale (2^ Parte)
10-11_9
46
Formato di -Istruzione (2)
Come prima, ma ora ci
sono anche campi
appositi per controllare
la mascheratura.
Il procedimento di
mascheratura richiede
una pianificazione
attenta dei -indirizzi.
Si veda il testo per i
dettagli.
Elettronica Digitale (2^ Parte)
10-11_9
47
Struttura di UC -Programmata
Struttura completa di UC programmata:
• -indirizzo incorporato
• circuito di mascheratura
• interpreta il codice operativo
e -salta alla -routine appropriata
• interpreta i campi che codificano
i numeri dei registri sorgente
e destinazione
Elettronica Digitale (2^ Parte)
10-11_9
48
Struttura del Processore
Notazione Simbolica per
microprogrammazione
Elettronica Digitale (2^ Parte)
10-11_9
49
Perché la Notazione
Simbolica
• La -istruzione può essere tediosa da scrivere per esteso,
giacché è molto dettagliata nei particolari.
• La tecnica di mascheratura del -indirizzo è efficace ed
efficiente, ma richiede un’attenta pianificazione dei valori
numerici da dare ai -indirizzi di -salto.
• È opportuno denotare la -routine e il -programma completo
in modo puramente simbolico, così evitando di specificare il indirizzo in forma numerica, specialmente per quanto attiene
il -salto condizionato e incondizionato.
• Si ricorre invece al -indirizzo simbolico, o - etichetta
(proprio come in linguaggio macchina).
• Segue tabella con semplice notazione simbolica.
• Torna molto utile in sede di esercitazione.
Elettronica Digitale (2^ Parte)
10-11_9
50
Notazione per -Istruzione
Elettronica Digitale (2^ Parte)
10-11_9
51
Esempio di -Routine
Simbolica
Elettronica Digitale (2^ Parte)
10-11_9
52
Struttura del Processore
Considerazioni Conclusive
Elettronica Digitale (2^ Parte)
10-11_9
53
Generalità del Modello
• Il modello di processore sequenziale qui introdotto e
illustrato con una certa ampiezza di particolari è del tutto
generale in senso concettuale, ma quanto a efficienza (
tempo per eseguire un’istruzione macchina) è molto
migliorabile.
• È comunque un modello usatissimo per processori che
non abbiano grandi pretese di potenza ed efficienza.
• È un modello ragionevole e proponibile per eseguire il
linguaggio macchina Motorola, per processore 68000
(ma non per i successivi modelli 680X0, con X  2, 4, 6),
perché 68000 è semplice e lineare.
• È invece decisamente meno proponibile per la famiglia di
processori Intel 32 (IA-32), il cui linguaggio macchina è
molto articolato e ha una codifica numerica assai
raffinata.
Elettronica Digitale (2^ Parte)
10-11_9
54
Prestazione del Processore
• In termini generali, la prestazione è il tempo che il processore
impiega per eseguire un programma assegnato.
• Chiaramente essa è proporzionale al numero (medio) di
istruzioni macchina eseguibili nell’unità di tempo (un secondo).
• Se il processore è sequenziale, cioè se può eseguire una sola
istruzione macchina per volta, la prestazione dipende:
– dal numero medio di passi richiesti dall’istruzione
– e dalla durata del passo (ovvero del ciclo di clock)
• La prestazione media è difficile da calcolare in modo analitico
(cioè con formule esatte), perché dipende da molti fattori,
spesso in opposizione.
• Si può stimare sperimentalmente (tramite programma di
collaudo o benchmark), ma allora dipende dai programmi di
collaudo scelti.
• Ci sono comunque suite (collezioni) di benchmark standard,
più o meno accettate a livello generale (SPEC, Linpack, ecc).
Elettronica Digitale (2^ Parte)
10-11_9
55
Costo e Prestazione
• La definizione della struttura del processore
(microarchitettura) dipende da un compromesso
tra costo e prestazione.
• L’aumento della prestazione è determinato da:
– tecnologia microelettronica digitale (VLSI)
– organizzazione e complessità circuitale del processore
• I costi però sono difficili da definire:
– progetto del processore (può durare anni)
– dimensioni del componente integrato ospitante
il processore (chip grosso  molto costoso)
– costo di produzione del componente integrato
– resa del processo di produzione (sempre  100 %)
– e altro ancora …
Elettronica Digitale (2^ Parte)
10-11_9
56
Come Aumentare la Prestazione
• Affidarsi al progresso della tecnologia microelettronica VLSI
(miniaturizzazione del transistore), senza però modificare la
struttura circuitale del processore e del suo insieme di istruzioni
macchina (ISA).
• Approccio strutturale (o microarchitetturale) per migliorare la
prestazione del processore. Tenendo fissa la tecnologia
microelettronica e lo ISA, si può:
– ridurre il numero di cicli di clock richiesti per l’esecuzione
di ogni istruzione macchina, o almeno di alcune di esse
– ridurre il durata del ciclo di clock semplificando
l’organizzazione del processore
– sovrapporre l’esecuzione delle istruzioni macchina: pipelining,
superscalarità, calcolo vettoriale, parallelismo a livello di
istruzione, ecc – cioè passare a un modello di processore
progressivamente più parallelo di quello visto finora
Elettronica Digitale (2^ Parte)
10-11_9
57
Qualche Spunto
…
• Per ridurre il numero di cicli di clock richiesti per l’esecuzione
dell’istruzione macchina:
– aumenta il numero di ALU (ma non sempre si ha lavoro utile
da dare loro, e dunque le ALU possono restare inutilizzate)
– aumenta il numero di bus interni (p. es. 3 bus, gia visto)
(ma oltre un certo limite, anche i bus restano inutilizzati)
• Per ridurre la durata del ciclo di clock:
– in parte, ci pensa già la tecnologia VLSI …
– oppure, semplifica i circuiti (se possibile però …)
• Modello di processore più parallelo:
– usa la metodologia di pipelining (e derivati …)
– (questo è un cambiamento molto più radicale dei precedenti,
e porta molto lontano … verso i processori più potenti e
avanzati, come sono concepiti oggi) – vedi cap. 11
Elettronica Digitale (2^ Parte)
10-11_9
58
Scarica

eldig2_9_10-11_Struttura_processore