Modulo ALU - DEI, UniPD

Testo di rif.to:
[Congiu] - 3.3-3.6 (pg. 94-112)
Il processore PD32
01.e
Modulo di controllo
Modulo ALU
Interfacce di I/O
Le istruzioni del PD32
Modulo di controllo
1
1 - FETCH:
24
PC → MAR
L[MAR] → MBR
MBR → IR
PC+4 → PC
2 – DECODE
3 - EXECUTE
Architettura degli Elaboratori
© 2013
Modulo ALU
2
24
Architettura degli Elaboratori
Condition Codes (CC)
© 2013
3
I più comuni sono i seguenti.
24
• C (carry): bit di riporto;
• N (negative): N=1 indica che il risultato è negativo
secondo la convenzione del complemento a 2;
• Z (zero): Z=1 indica che il risultato è nullo;
• V (overflow): V=1 indica che il risultato è affetto da
overflow nell’aritmetica con numeri interi (signed);
• P (parity): P=1 indica che il risultato contiene un
numero pari di bit uguali a 1.
Architettura degli Elaboratori
© 2013
Operazioni col Modulo ALU
4
24
Esempi di esecuzione di alcune operazioni
Architettura degli Elaboratori
Modulo ALU
© 2013
5
OP1+OP2→RES
S1=0, S2=0, XCI=0, OP=0,
XCO=0, WC=1
24
OP1-OP2→RES
S1=0, S2=1, XCI=1, OP=0,
XCO=0, WC=1
-OP1→RES
S1=1, S2=2, XCI=1, OP=0,
OP1-1→RES
S1=0, S2=3, XCI=0, OP=0,
XCO=0, WC=1
Architettura degli Elaboratori
© 2013
Accesso ai registri dell’ALU
6
24
© 2013
Architettura degli Elaboratori
Interfaccia di un dispositivo di input
7
24
PROTOCOLLO:
READY[DISP] = ?
0: aspetta e riesamina
1: START[DISP] = 1
.
.
.
READY[DISP] = ?
0: aspetta e riesamina
1: IORD[DISP] = 1
Architettura degli Elaboratori
© 2013
Protocollo di input
CPU
8
segnali
DISP
READY[DISP] = ?
24
0: aspetta e riesamina
1: START[DISP] = 1
.
.
.
READY[DISP] = ?
0: aspetta e riesamina
1: IORD[DISP] = 1
STARD = 1
0 → STATUS
avvia l’operazione
.
.
.
COMPLETE = 1
Dato → DATA BUFFER
1 → STATUS
DATA BUFFER → linee dati
© 2013
Architettura degli Elaboratori
Interfaccia di un dispositivo di output
9
24
PROTOCOLLO:
READY[DISP] = ?
0: aspetta e riesamina
1: IOWR[DISP] = 1
START[DISP] = 1
READY[DISP] = ?
0: aspetta e riesamina
1: output completato
Architettura degli Elaboratori
© 2013
Struttura del processore PD32
10
24
© 2013
Architettura degli Elaboratori
Realizzazione della fase di FETCH
PC → MAR
11
RPC=1, MA=1
24
L[MAR] → MBR → IR
Z=2, MRD=1, WIR=1
PC+4 → PC
X2=1, S1=6, S2=0, XCI=0,
OP=0, RA=1, WPC=1
Le operazioni indicate a sinistra si ottengono con le
sequenze di segnali di controllo riportate a destra.
In queste sequenze, per semplicità, non sono specificate
le relazioni temporali tra i segnali:
● per quanto tempo ciascun segnale conserva il valore,
● quali valori possono essere assunti in parallelo,
● quali valori devono essere assunti in serie.
Architettura degli Elaboratori
© 2013
Struttura del processore PD32
12
24
PC → MAR
RPC=1, MA=1
L[MAR] → MBR → IR
Z=2, MRD=1, WIR=1
PC+4 → PC
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
Architettura degli Elaboratori
Modulo ALU
© 2013
13
24
PC → MAR
RPC=1, MA=1
L[MAR] → MBR → IR
Z=2, MRD=1, WIR=1
PC+4 → PC
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
Architettura degli Elaboratori
© 2013
Codifica di una istruzione nel PD32
14
24
MOVL R0, R1 ⇒ 20002001
Architettura degli Elaboratori
Esecuzione delle istruzioni
© 2013
15
Istruzione di un linguaggio di alto livello:
Z := X + Y
24
(nel linguaggio assembly i nomi delle variabili X, Y, Z
possono essere usati per rappresentare indirizzi di
memoria)
Il PD32 non è in grado di sommare due operandi in
memoria (almeno uno deve essere in un registro dell’ALU).
L’istruzione di assegnazione va quindi espansa nella
sequenza di istruzioni macchina:
MOVL
X, R0
ADDL
Y, R0
MOVL
R0, Z
Architettura degli Elaboratori
© 2013
Codifica delle istruzioni nel PD32
16
24
Organizzazione dei dati e
delle istruzioni in memoria
Architettura degli Elaboratori
© 2013
Esecuzione delle istruzioni nel PD32 - 1
17
24
Architettura degli Elaboratori
© 2013
Struttura del processore PD32
MOVL X, R0
fetch:
RPC=1, MA=1,
Z=2, MRD=1, WIR=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
18
24
indirizzo di X:
RPC=1, MA=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1,
Z=2, MRD=1
trasferimento in R0:
MA=1,
Z=2, MRD=1, XR=1 , d0=1, W=1
Architettura degli Elaboratori
Struttura del processore PD32
MOVL X, R0
fetch:
RPC=1, MA=1,
Z=2, MRD=1, WIR=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
© 2013
19
24
indirizzo di X:
RPC=1, MA=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1,
Z=2, MRD=1
trasferimento in R0:
MA=1,
Z=2, MRD=1, XR=1 , d0=1, W=1
Architettura degli Elaboratori
© 2013
Esecuzione delle istruzioni nel PD32 - 2
20
24
Architettura degli Elaboratori
Struttura del processore PD32
ADDL Y, R0
fetch:
RPC=1, MA=1,
Z=2, MRD=1, WIR=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
© 2013
21
24
indirizzo di Y:
RPC=1, MA=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1,
Z=2, MRD=1
somma di Y con R0:
MA=1,
Z=2, MRD=1, X1=0,
Z=2, R2=1 , d0=1, X2=0,
S1=0, S2=0, XCI=0, OP=0, XCO=0,
WC=1, XS=1, WSR=1, XR=0, W=1
Architettura degli Elaboratori
© 2013
Esecuzione delle istruzioni nel PD32 - 3
22
24
Architettura degli Elaboratori
Struttura del processore PD32
MOVL R0, Z
fetch:
RPC=1, MA=1,
Z=2, MRD=1, WIR=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
© 2013
23
24
indirizzo di Z:
RPC=1, MA=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1,
Z=2, MRD=1
scrittura di Z:
Z=2, MA=1, R1=1,
s0=1, RR=1, MWR=1
Architettura degli Elaboratori
© 2013
Struttura del processore PD32
24
MOVL R0, Z
fetch:
RPC=1, MA=1,
Z=2, MRD=1, WIR=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1
24
indirizzo di Z:
RPC=1, MA=1,
X2=1, S1=6, S2=0, XCI=0, OP=0,
RA=1, WPC=1,
Z=2, MRD=1
scrittura di Z:
Z=2, MA=1, R1=1,
s0=1, RR=1, MWR=1
Architettura degli Elaboratori
© 2013
Fine
01.e
Il processore PD32