Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Massimo VIOLANTE
Politecnico di Torino Dipartimento di Automatica e Informatica
Sommario
Unit aritmentica/logica Unit di controllo.
M. Violante
1.1
Unit aritmetica/logica
Contiene tutti i circuiti necessari per lesecuzione di operazioni artimetiche e logiche. ALU ALU fixed-point FPU floating-point unit
Fixed-point unit
Dati di input/output
AC
DR
SR
Istruzione da eseguire.
ALU e Control Unit
Sommatore parallelo: ADD: AC <= AC+DR SUB: AC <= AC-DR MUL: AC <= AC*DR DIV: AC <= AC/DR Operatori logici: AND: AC <= AC&DR OR : AC <= AC+DR XOR: AC <= ACDR NOT: AC <= #AC
M. Violante
1.2
SR
Istruzione da eseguire.
ALU e Control Unit
Floating-point unit
Due possibilit: la FPU integrata nel processore la FPU risiede nel coprocessore matematico.
M. Violante
1.3
Coprocessore matematico
Esegue istruzioni in virgola mobile; un modulo separato dalla CPU; Nella famiglia Intel, fino allintroduzione dell80486 il coprocessore era fisicamente staccato dalla CPU e connesso al bus di sistema; Per ogni CPU era disponibile un coprocessore adhoc: 8086/8087; 80386/80387.
ALU e Control Unit 7
Schema concettuale
Decoder
CPU
Coprocessore
Bus di sistema
ALU e Control Unit 8
M. Violante
1.4
Formato istruzioni
Le istruzioni del coprocessore matematico fanno parte dellinsieme di istruzioni della CPU; Sono composte da: identificatore di istruzione per il coprocessore; indirizzo coprocessore; tipo di istruzione; operandi.
Interazione CPU/coprocessore
Meccanismo 1: la CPU riconosce coprocessore; una istruzione per il
programma il coprocessore; si mette in attesa finch il coprocessore non segnala di aver terminato loperazione; Meccanismo 2: il coprocessore decodifica tutte le istruzioni ed esegue solo le sue; CPU e coprocessore lavorano in parallelo.
ALU e Control Unit 10
M. Violante
1.5
Unit di controllo
lunit che si occupa di controllare tutti i moduli della CPU ALU attraverso segnali di controllo. AC DR SR CPU
Memoria
AR
PC SP
IR
Control Unit
11
12
M. Violante
1.6
Instruction sequencing
Lindirizzo della prossima istruzione da prelevare memorizzato in PC; La control unit: normale funzionamento: incrementa il PC salto/chiamata a procedura: carica un nuovo valore nel PC.
13
PC
Memoria ADX DR
UP LOAD
ALU
AC Control Unit
AR
PC SP
IR
14
M. Violante
1.7
Instruction interpretation
La control unit analizza il contenuto di IR; La control unit attiva i segnali di controllo necessari per eseguire: fetch cycle execution cycle Esistono segnali di controllo per: i registri che compongono la CPU; i moduli interni (ALU) ed esterni (Memoria); i collegamenti tra i moduli della CPU.
ALU e Control Unit 15
Segnali di controllo
C11 C12 C13 C7 C20 C14
ALU
C18 C9 C10 C15
SR
C5
Memoria
DR
C3 C8
AC
AR
C19
PC
C16
IR
C21
Control Unit
SP
C0 C1 C2
ALU e Control Unit
C4C6 C23
C17 C22
C0 - C23
16
M. Violante
1.8
17
M. Violante
1.9
19
Attenzione
L'instruction cycle e' composto da una sequenza di micro-operazioni Ogni micro-operazione viene eseguita in un colpo di clock.
20
M. Violante
1.10
C4, C19 C1, C20 C10, C21 C16 C4, C19 C1, C20 C3, C19 C1, C20 C11, C12, C13, C18 C16
21
Esempio: PUSH PC
AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR DR <= PC SP <= SP+1 AR <= SP M[AR] <= DR C14, C20 C22 C6, C19 C0 C4, C19 C1, C20 C10, C21 C16
22
M. Violante
1.11
Osservazione
Istruzioni diverse hanno in generale instruction cycle diversi; Istruzione ADD AC, adx: fetch cycle: 4 colpi di clock; execution cycle: 7 colpi di clock; Istruzione PUSH PC: fetch cycle: 4 colpi di clock; execution cycle: 6 colpi di clock.
23
24
M. Violante
1.12
Controllo hardwired
C10 C19 C20 C21 C16 C1 C4
S0 S1 S2 S3
SR IR Comb
C0 - C23
0000100000000000000100000
Fetch cycle
0100000000000000000010000
0000000000100000000001000
FF
0000000000000000100000000
25
Controllo microprogrammato
Unistruzione composta da una sequenza di micro operazioni; Ad ogni micro operazione corrisponde configurazione dei segnali di controllo; una
La configurazione dei segnali di controllo si chiama microistruzione; Ogni istruzione corrisponde ad una sequenza di microistruzioni: microprogramma.
26
M. Violante
1.13
27
Principio di funzionamento
Ad ogni istruzione I associato un indirizzo nella control memory corrispondente alla prima microistruzione del microprogramma per I; Ogni microistruzione contiene il valore dei segnali di controllo e lindirizzo della microistruzione successiva; provenienti dallesterno possono Segnali condizionare la scelta della microistruzione successiva.
28
M. Violante
1.14
Formato microistruzione
Tre campi: Condition Select: specifica quali segnali esterni (di condizione) considerare; Branch Address: indirizzo a cui saltare se la condizione selezionata soddisfatta; Control Fields: segnali di controllo da attivare.
29
Architettura
Branch Address Load Condizioni Esterne Indirizzo iniziale Increment
PC
Condition Select
IR
Control Fields C0 - C23
ALU e Control Unit 30
M. Violante
1.15
Architettura (cont.)
PC: contiene lindirizzo nella control memory della prossima microistruzione da eseguire IR: contiene la microistruzione corrente, composta dai segnali di controllo verso il resto della CPU e dal indirizzo della prossima microistruzione da eseguire Vantaggio: flessibilit; Svantaggio: ridotta velocit; alto costo.
ALU e Control Unit 32
M. Violante
1.16
Flessibilit
Il set delle istruzioni facilmente modificabile; Modificare una istruzione significa modificare il contenuto della control memory; Aggiungere una istruzione significa aggiungere un microprogramma In ogni caso non mai necessario modificare il circuito che realizza la control unit.
33
Velocit
Ogni microistruzione deve essere letta dalla control memory; Accedere alla control memory una operazione lenta; velocit di una unit di controllo La microprogrammata minore rispetto ad una unit hardwired.
34
M. Violante
1.17
Costo
La control memory un dispositivo costoso; La control memory necessit di una logica accessoria che ne permette il funzionamento; Il costo hardware di una unit di controllo microprogrammata generalmente maggiore rispetto ad una unit hardwired.
35
Codifica microistruzioni
Stabilisce cosa scrivere nella control memory; Due possibilit: Microistruzioni orizzontali; Microistruzioni verticali.
36
M. Violante
1.18
Microistruzioni orizzontali
Nella microistruzione viene espresso in modo esplicito il valore di ogni segnale di controllo; Ad ogni segnale di controllo corrisponde un bit nella microistruzione;
37
Esempio
Fetch istruzione: microistruzione: PC <= PC + 1
000000000000000010000000
38
M. Violante
1.19
Analisi
Vantaggi: massimo parallelismo: possono essere attivate contemporaneamente tutte le funzioni desiderate; massima velocit: non necessario interpretare le microistruzioni per produrre i segnali di controllo; Svantaggi: occupazione di memoria: molti controllo richiedono molti bit.
ALU e Control Unit
segnali
di
39
Osservazione
Non tutte le configurazione dei bit di controllo sono valide. 2 configurazioni C1 C7 C20 valide su 8! AC
C7 C1
Memoria
C20
DR
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
40
M. Violante
1.20
Microistruzioni verticali
Per ridurre la dimensione della control memory si codificano li microistruzioni: ad ogni configurazione dei segnali di controllo associato un codice nella control memory sono memorizzati i codici associati ad ogni microistruzione ogni codice deve essere decodificato per ottenere la corrispondente configurazione dei segnali di controllo.
41
Microistruzioni (cont.)
Vantaggio: richiesto un minore numero di bit per ogni microistruzione; Svantaggi: richiesto un circuito per decodificare le microistruzioni e generare i segnali di controllo; si riduce il parallelismo.
42
M. Violante
1.21
Architettura
Branch Address Load Condizioni Esterne Indirizzo iniziale Increment
PC
Condition Select
IR Decoder
ALU e Control Unit
C0 - C23
43
Alternativa
Microistruzioni ibride: i segnali di controllo sono codificati a gruppi; Si coniugano parallelismo e minimizzazione della control memory.
44
M. Violante
1.22
Osservazione
Per ridurre il costo dellunit di controllo si opera su: lunghezza delle microistruzioni: W; numero di microistruzioni: N.
45
Nanoprogrammazione
I microprogrammi necessari per realizzare un set di istruzioni hanno delle componenti comuni.
AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= AC + DR PC <= PC + 1 AR <= PC DR <= M[AR] IR <= DR PC <= PC+1 decodifica IR AR <= PC DR <= M[AR] AR <= DR DR <= M[AR] AC <= DR PC <= PC + 1
46
M. Violante
1.23
Nanoprogrammazione (cont.)
Per non ripetere le componenti comuni si utilizza una memoria di nanoprogramma; La memoria di nanoprogramma istruzioni elementari: nanoistruzioni; contiene le
47
Architettura
Memoria di programma
nPC
PC
IR
48
M. Violante
nIR
1.24
Alcuni numeri
Hm = numero di istruzioni; Hn = numero di nanoistruzioni; N = numero di segnai di controllo; S1 = dimensione memoria di una unit di controllo microprogrammata; S2 = dimensione memoria di una unit di controllo nanoprogrammata.
49
50
M. Violante
1.25
51
M. Violante
1.26