Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE...

58
Elettronica Digitale (2^ Parte) 10-11_ 9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte) (9)

Transcript of Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE...

Page 1: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

1

10/1/2011

Struttura del processore

ELETTRONICA DIGITALE (2^ Parte) (9)

Page 2: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

2

Struttura del Processore

Modello Generale

Page 3: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

3

Modello di Processore

Page 4: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

4

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

Page 5: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

5

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

Page 6: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

6

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

Page 7: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

7

Struttura del Processore

Unità di Calcolo

Page 8: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

8

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 conpochi 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, …, Rn1 (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

Page 9: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

9

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.

Page 10: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

10

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

Page 11: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

11

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 sotto-sequenza 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.

Page 12: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

12

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

Page 13: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

13

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 -- V R0– R1out, add, Zin -- Z R1 V – Zout, R1in, end -- R1 Z, e poi torna a fase di prelievo

Page 14: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

14

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 aritmetica-logica per passo.

Page 15: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

15

Struttura di un Registro Interno

un generico registro interno, dotato di porta di lettura e scrittura, è una schiera di flip-flop come quello mostrato sopra, pilotati in parallelo

singolo flip-flop, con porta di lettura e scrittura verso il bus interno

Page 16: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

16

Registro MDR

gli ordini MDRoutE e MDRinE sono implicati dagli ordini write e read, rispettivamente, e pertanto si possono omettere

Page 17: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

17

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).

Page 18: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

18

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.

Page 19: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

19

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.

Page 20: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

20

Clock e Temporizzazione (3)

Operazione di letturada 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.

Diagramma temporale simile per la scrittura.

diagramma temporale prolungamento del passo 2

memoria tardadi due cicli

Page 21: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

21

Esempi di altre Istruzioni Macchina (supponendo di avere già prelevato e scritto in IR la paroladi codice operativo – la parola aggiuntiva, se c’è, va gestita)

MOVE (R0), R1 (istruzione codificata su una sola parola)– R0out, MARin, read -- MAR R0, leggi mem.– WMFC -- attendi fine lettura– MDRout, R1in, end -- 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

Page 22: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

22

Salto CondizionatoPrelievo 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

Page 23: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

23

Esempio di Istruzione Completa

Istruzione Aritmetica

ADD (R3), R1 -- codificata su una sola parola

interpretazione RTL: R1 R3 R1

potrebbe servirese fosse salto

Page 24: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

24

Esempio di Istruzione Completa

Salto Incondizionato (relativo a PC)

BRA ETICHETTA -- codificata su una sola parola

interpretazione RTL: PC dist. salto PC

serve per il salto(che avrà luogo)

attenzione: esempio (volutamente) un po’ diverso da quello di prima,dove l’istruzione macchina era codificata su due parole

Page 25: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

25

Esempio di Istruzione Completa

Salto Condizionato (relativo a PC)

Bcc 0 ETICHETTA -- 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

serve per il salto(se avrà luogo)

Page 26: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

26

Unità di Calcolo a tre Bus Interni

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.

si può anticipare

bus R

Page 27: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

27

Ancora un po’ di ParallelismoOp. di lettura da memoria R2 R1 in numero minimodi cicli di clock (n 2).

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 interneal processore. È una forma (limitata) di parallelismo.

procede in parallelo alle altre op. interne del processore

Page 28: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

28

Struttura del Processore

Unità di Controllo

Page 29: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

29

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.

Page 30: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

30

Unità di Controllo Cablata

Page 31: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

31

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 passodi 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.

Page 32: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

32

Rete Comb. Generatrice di Ordini

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

attivoalto

Page 33: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

33

Come progettare la Rete Comb.

add

branch

Nota bene: l’ordine Zin si attiva nel primo passo (fase di prelievo) comune a tutte le istruzioni macchina (colore rosso).

Le attivazioni rimanenti di Zin (colori rosa e verde) dipendono da quale istruzione sia in corso di esecuzione.

Page 34: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

34

Rete Comb. Generatrice di Ordini

gli istanti di tempo e i segnali che concorrono ad attivare l’ordine endsi deducono dalle sequenze di passi di controllo di ciascuna istruzione

attivoalto

Page 35: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

35

Come progettare la Rete Comb.add

branch

branch 0

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).

Page 36: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

36

Rete Seq. Generatrice di Ordini

L’ordine run, che permette (se run 1) o blocca (se run 0) la transizione al passo di controllo successivo, è speciale e va generatoin modo sequenziale (una rete combinatoria non basterebbe), in quanto è legato all’andamento del tempo di funzioni , per esempio, quali read e write

all’unitàdi controllo

Page 37: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

37

Page 38: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

38

Struttura del Processore

Unità di controllo microprogrammata

Page 39: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

39

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

Page 40: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

40

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.

Page 41: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

41

cablata

Page 42: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

42

Struttura di UC -Programmata

Struttura base:

• preleva l’istruzione macchina

• decodifica il codice operativo

• salta alla -routine appropriata

• ne esegue le - istruzioni

Page 43: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

43

Esempio di -Routine

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)

Salto Condizionato (relativo a PC)

Bcc 0 ETICHTTA -- codificata su una sola parola

Page 44: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

44

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

Page 45: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

45

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 generaregli indirizzi corretti (vedi la struttura di UC mostrata prima), verso dove si vuole effettivamente spostareil flusso di controllo di -programma.

• La -istruzione che effettua la mascheratura di -indirizzo costituisce a tutti gli effetti un -salto.

Page 46: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

46

Struttura di UC -Programmata

La -istruzione incorporail -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).

Page 47: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

47

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.

Page 48: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

48

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

Page 49: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

49

Struttura del Processore

Notazione Simbolica per microprogrammazione

Page 50: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

50

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 completoin modo puramente simbolico, così evitando di specificare il -indirizzo in forma numerica, specialmente per quanto attieneil -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.

Page 51: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

51

Notazione per -Istruzione

Page 52: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

52

Esempio di -Routine Simbolica

Page 53: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

53

Struttura del Processore

Considerazioni Conclusive

Page 54: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

54

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.

Page 55: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

55

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).

Page 56: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

56

Costo e Prestazione

• La definizione della struttura del processore (microarchitettura) dipende da un compromessotra 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 …

Page 57: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

57

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

Page 58: Elettronica Digitale (2^ Parte) 10-11_9 1 10/1/2011 Struttura del processore ELETTRONICA DIGITALE (2^ Parte ) (9)

Elettronica Digitale (2^ Parte) 10-11_9

58

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 eavanzati, come sono concepiti oggi) – vedi cap. 11