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
© Copyright 2024 Paperzz