150 likes | 286 Views
Il livello Microarchitetturale. Lezione 4_0 Microarchitettura e Datapath. Agenda. Significato del livello Caratteristiche del Data Path Microistruzioni Ciclo completo di Data Path. Il livello Microarchitettura. Esiste un programma ISA, composto da istruzioni ISA
E N D
Il livello Microarchitetturale Lezione 4_0 Microarchitettura e Datapath
Agenda • Significato del livello • Caratteristiche del Data Path • Microistruzioni • Ciclo completo di Data Path
Il livello Microarchitettura • Esiste un programma ISA, composto da istruzioni ISA • La microarchitettura compie il ciclo: • Fetch: legge l’istruzione ISA • Decode: interpreta in una(nelle) istruzioni microarchitettura • Execute: esegue la (le) istruzioni di microarchitettura
Data Path • ALU, Shifter e diversi registri • 6 linee di controllo ALU • Altre 18 linee per altri componenti
Un ciclo di data path (execute) • Sincronizzazione del data path • 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 ? • 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) • MAR, memory address register, indica un indirizzo di memoria dove si trova il contenuto di: • MDR, memory data register • lettura e scrittura dati ISA (parole)
Interazioni con la memoria (Fetch) • PC, program counter, indica un indirizzo di memoria (cache) dove si trova il contenuto di: • MBR, memory branch register • lettura istruzione ISA (byte)
Decode ? • Ma MBR materializza l’istruzione ISA ! • Come la interpreto in una istruzione di microprogramma ? • E cos’è, ovvero, a cosa serve una (micro)istruzione ?
Microistruzioni • 9 segnali per il bus C • 4 segnali per il bus B • 8 segnali per ALU e Shifter • 2 per R/W per memoria • 1 per R su PC/MBR
Microistruzioni • 24 segnali pilotano il ciclo di data path …….. e la prossima istruzione ?? • NEXT-ADDRESS e JAM • N-A, indirizzo della microistruzione successiva • J, come selezionare la microistruzione successiva • Totale 36 segnali (bit)
Control Store • Figura 4.6 • E’ la memoria (ROM) che contiene le microistruzioni • 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 • 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 • 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 • 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, copia N-A su MPC (fetch)