Il livello Microarchitetturale Lezione 40 Microarchitettura e Datapath

  • Slides: 15
Download presentation
Il livello Microarchitetturale Lezione 4_0 Microarchitettura e Datapath

Il livello Microarchitetturale Lezione 4_0 Microarchitettura e Datapath

Agenda n n Significato del livello Caratteristiche del Data Path Microistruzioni Ciclo completo di

Agenda n n Significato del livello Caratteristiche del Data Path Microistruzioni Ciclo completo di Data Path

Il livello Microarchitettura n n Esiste un programma ISA, composto da istruzioni ISA La

Il livello Microarchitettura n n Esiste un programma ISA, composto da istruzioni ISA La microarchitettura compie il ciclo: n n n Fetch: legge l’istruzione ISA Decode: interpreta in una(nelle) istruzioni microarchitettura Execute: esegue la (le) istruzioni di microarchitettura

Data Path n ALU, Shifter e diversi registri n n 6 linee di controllo

Data Path n ALU, Shifter e diversi registri n n 6 linee di controllo ALU Altre 18 linee per altri componenti

Un ciclo di data path (execute) n Sincronizzazione del data path n n n

Un ciclo di data path (execute) n Sincronizzazione del data path n n n segnali di controllo si stabilizzano registri vengono scritti sul bus B ALU e shifter calcolano segnali risultato su bus C memorizzazione sui registri

Ciclo di DP: e la memoria ? n n MAR e PC vengono caricati

Ciclo di DP: e la memoria ? n n MAR e PC vengono caricati comunque sul fronte di salita, quindi alla fine del ciclo Se va bene (PC) il nuovo MBR è disponibile al ciclo successivo (ovvero al prossimo edge in salita)

Interazioni con la memoria (R/W) n MAR, memory address register, indica un indirizzo di

Interazioni con la memoria (R/W) n MAR, memory address register, indica un indirizzo di memoria dove si trova il contenuto di: n MDR, memory data register n lettura e scrittura dati ISA (parole)

Interazioni con la memoria (Fetch) n PC, program counter, indica un indirizzo di memoria

Interazioni con la memoria (Fetch) n PC, program counter, indica un indirizzo di memoria (cache) dove si trova il contenuto di: n MBR, memory branch register n lettura istruzione ISA (byte)

Decode ? n n n Ma MBR materializza l’istruzione ISA ! Come la interpreto

Decode ? n n n Ma MBR materializza l’istruzione ISA ! Come la interpreto in una istruzione di microprogramma ? E cos’è, ovvero, a cosa serve una (micro)istruzione ?

Microistruzioni n n n 9 4 8 2 1 segnali per il bus C

Microistruzioni n n n 9 4 8 2 1 segnali per il bus C segnali per il bus B segnali per ALU e Shifter per R/W per memoria per R su PC/MBR

Microistruzioni n 24 segnali pilotano il ciclo di data path ……. . e la

Microistruzioni n 24 segnali pilotano il ciclo di data path ……. . e la prossima istruzione ? ? n NEXT-ADDRESS e JAM n n N-A, indirizzo della microistruzione successiva J, come selezionare la microistruzione successiva n Totale 36 segnali (bit)

Control Store n n Figura 4. 6 E’ la memoria (ROM) che contiene le

Control Store n n Figura 4. 6 E’ la memoria (ROM) che contiene le microistruzioni n n suo registro dati è MIR, che contiene la microistruzione indicata da MPC suo registro indirizzi è MPC viene valorizzato o con N-A o con MBR a seconda del valore che ha un bit di JAM

Istruzione successiva n n n Se JAMC = 1, allora prendo il contenuto di

Istruzione successiva n n n Se JAMC = 1, allora prendo il contenuto di MBR (branch) Se JAMC e/o JAMN = 1 allora viene messo a 1 msb di N-A Se JAMs = 0 allora N-A come si presenta

Ciclo completo data path n n n 1, discesa, carica in MIR ciò che

Ciclo completo data path n n n 1, discesa, carica in MIR ciò che c’è in MPC (decode) 2, carico in B registro selezionato (execute) 3, elaborazione ALU e shifter (execute) 4, propagazione su bus C (execute) 5, salita, carica i dati nei registri, in MBR e MDR, Flip-Flop N e Z (execute R/W e/o Fetch) 6, quando MBR disponibile, carica MPC, il clock è alto (fetch)

…. . ciclo completo: oppure n 1, discesa, carica in MIR ciò che c’è

…. . ciclo completo: oppure n 1, discesa, carica in MIR ciò che c’è in MPC (decode) n n n 2, carico in B registro selezionato (execute) 3, elaborazione ALU e shifter (execute) 4, propagazione su bus C (execute) 5, salita, carica i dati nei registri, in MBR e MDR, Flip-Flop N e Z (execute R/W e/o fetch) 6, copia N-A su MPC (fetch)