Per suggerire risposte migliori: astromoodle@gmail.com CIRCUITI SEQUENZIALI 01) Discutere peculiarità e utilizzo dei circuiti sequenziali. I circuiti sequenziali calcolano funzioni che dipendono da valori memorizzati in elementi di memoria interni al circuito stesso, detti stato, nel momento in cui la funzione viene calcolata. In base alla sequenza temporale dei valori che riceve in input, lo stato del circuito cambia e di conseguenza cambia anche il risultato della funzione calcolata. 02) Disegnare un S-R-latch e spiegarne il funzionamento. L'S-R-latch è un circuito sequenziale con due input S ed R ed un output Q, lo stesso output esce anche negato ~Q. Set: S,R = 1,0 dà come output 1 a prescindere dallo stato Reset: S,R = 0,1 dà come output 0 a prescindere dallo stato Stato di riposo: S,R = 0,0 dà come output il valore dello stato, ovvero l'output resta invariato S,R = 1,1 non si usa perché dà come risultato la contraddizione Q = ~Q = 0 03) Disegnare il circuito del D-latch clockato e descriverne le caratteristiche principali. Cosa si intende con il termine trasparenza del D-latch? Il D-latch è un S-R-latch in cui i valori S,R sono calcolati sulla base di un circuito combinatorio tra gli input D e C = clock. Set: D = 1 C = 1 Reset: D = 0 C = 1 Stato di riposo: D = X C = 0 Con trasparenza del D-latch si intende che nel momento in cui C = 1, il valore di D si propaga istantaneamente a Q senza memorizzare l'output in modo permanente. Quindi se D subisce variazioni durante lo stesso ciclo di clock, anche Q cambia di conseguenza tante volte quante cambia D. 04) Disegnare il circuito e descrivere il funzionamento del flip-flop semplice Il flip-flop semplice è formato da un D-latch nel quale il clock è calcolato da un generatore di impulsi. Nell'istante in cui C diventa 1, quindi nel fronte di salita (metodologia di timing rising triggered), nella porta AND entra C = 1 e ~C = 1, perché ~C = 0 con un leggero ritardo rispetto a C dovuto all'attraversamento di C della porta NOT. Il risultato è un segnale di clock istantaneo. 05) Disegnare il circuito e descrivere il funzionamento del D flip-flop. Il D flip-flop è formato da due D-latch usati come input-output durante uno stesso ciclo di clock, detti master e slave. È un flip-flop di tipo failing triggered perché l'output Q (cioè l'output di slave) cambia sul fronte di discesa di C. C = 1: D si propaga in Q' perché master è aperto da C = 1, ma non in Q perché slave è bloccato da ~C = 0. C = 0 (Q cambia): D riceve il valore di Q e Q' si propaga in Q perché slave è aperto da ~C = 1, ma D non si propaga in Q' perché master è bloccato da C = 0. 06) Che differenza c'è tra un latch clockato ed un flip-flop? Che problema potremmo avere ad usare un latch clockato in un circuito sequenziale sincrono? Nel flip-flop il clock è istantaneo, nel latch clockato no. Il problema è che se C è troppo lungo, i valori memorizzati nel registro di stato del circuito, che devono entrare come input nel ciclo di clock successivo, entrano come input nello stesso ciclo di clock, modificando così i valori dell'output che dipende proprio dallo stato. 07) Disegnare lo schema di un circuito sequenziale sincrono. Quali tipi di elementi di memoria vengono utilizzati per realizzare un registro di stato e con quale metodologia di timing? I registri di stato sono realizzati da flip-flop con metodologia failing triggered, infatti il dato può essere prima letto e poi scritto, sul fronte di discesa, in uno stesso ciclo di clock. 08) Automi di Mealy e di Moore, descrivere le etichette nei nodi e sugli archi. Moore etichetta sull'arco: input, da input dipende next-state etichetta nel nodo: output, output dipende solo dallo stato Mealy etichette sull'arco: input / output, da input dipendono sia next-state che output 09) Cos'è il Register file? Descrivere brevemente le sue caratteristiche e funzionalità. È la componente del datapath del processore formata dai registri che memorizzano gli operandi delle istruzioni aritmetico-logiche. Dato che le istruzioni possono avere al massimo due input ed un output, il Register file permette di leggere il valore di due registri e di scrivere il valore di un registro. Ciascun registro è formato da n flip-flop. La lettura del Register file avviene attraverso un multiplexer, la scrittura attraverso un decoder. MEMORIE SRAM E DRAM 10) Cosa si intende per SRAM e DRAM? Descrivere brevemente le loro caratteristiche. SRAM Static RAM: Memoria veloce, di dimensioni ridotte. Realizzata da una matrice di latch. Es. memoria cache DRAM Dynamic RAM: Memoria più lenta della SRAM ma più capiente. Realizzata da condensatori che mantengono il valore per pochi ms, quindi è necessario il refresh delle righe della memoria ad intervalli prefissati con conseguente dispendio di tempo. Es. Memoria principale 11) Perché, per l'accesso a memorie grandi, gli indirizzi delle locazioni sono suddivisi in due parti, denominate indirizzi di riga e di colonna? Perché se ciascun bit venisse identificato con un preciso indirizzo il numero di porte di decoder e multiplexer sarebbe troppo alto, pari a quello dei bit totali. Localizzando i bit per riga e colonna si riducono il numero delle porte del circuito perché una stessa porta di decoder e multiplexer, combinate tra loro, permettono di raggiungere bit diversi. CPU SINGOLO CICLO 12) Nel progetto della CPU a ciclo singolo la memoria viene replicata. In che modo e perché? Quali sono le altre componenti replicate del datapath? La memoria viene divisa in due: l'Instruction Memory, dove viene letto il tipo di istruzione e la Data Memory, dove si memorizza o da cui si legge un dato. Viene replicata perché è impossibile accedere sia in lettura che in scrittura alla memoria in uno stesso ciclo di clock. Le altre risorse replicate sono due addizionatori che si aggiungono alla ALU. (vedi sotto) 13) Nel datapath della CPU a ciclo singolo vista a lezione, oltre alla ALU sono stati inseriti addizionatori aggiuntivi. Quanti sono e a cosa servono esattamente? Sono PC+4 e Calcolo del Branch. PC+4 incrementa PC di 4 bit perché 1 bit equivale a spostarsi di una riga nella memoria e ciascuna istruzione occupa esattamente 4 righe (32 bit disposti in 8 bit per riga). Calcolo del Branch somma alla costante immediata di 16 bit (già estesa a 32 bit con shift a sx di 2) il valore del PC+4 per tornare a PC il valore dell'istruzione a cui saltare con il branch. 14) Nel datapath della CPU a ciclo singolo vista a lezione sono stati inseriti addizionatori aggiuntivi (oltre alla ALU), per riuscire ad interpretare le istruzioni in un solo ciclo. Discutere come sono impiegati la ALU e gli addizionatori aggiuntivi rispetto alle istruzioni di lw, add e beq. ALU restituisce il valore Zero che entra nel multiplexer consecutivo al Calcolo del Branch. Nel caso di beq taken (Zero = 1) il datapath scrive in PC il valore dell'addizionatore che calcola il branch, nei casi lw e sw scrive PC+4. 15) Quali gli svantaggi della CPU a singolo ciclo? Come si può ovviare? Replicazione di risorse che non possono svolgere la stessa operazione nello stesso ciclo di clock e sincronizzazione del tempo di clock sulla base del tempo impiegato dall'istruzione più lunga, ovvero lw, 8 ms. Si può ovviare ... (vedi multi ciclo) CPU MULTI CICLO 16) Descrivere brevemente il principio della CPU multi ciclo. Nella cpu multi ciclo si divide un tipo di istruzione in più fasi, cioè in diversi cicli di clock, quindi istruzioni diverse impiegano tempi diversi a seconda del numero di fasi in cui sono strutturate. Alcune istruzioni sono più brevi rispetto al processore singolo ciclo. Una stessa risorsa può essere usata più volte per calcolare un'istruzione purché in fasi diverse. Necessita di registri interni che memorizzano i valori intermedi da usare nei cicli successivi di una stessa istruzione. Necessita di un circuito di controllo sequenziale perché l'output del circuito dipende dalla fase dell'istruzione in cui ci si trova. 17) Quali registri addizionali servono per il corretto funzionamento della CPU multi ciclo vista a lezione? IR (Instruction Register): memorizza il tipo di istruzione che si sta eseguendo MDR (Memory Data Register): memorizza un dato che proviene dalla memoria principale, usato da lw A: memorizza dato 1° operando B: memorizza dato 2° operando ALUOUT: memorizza il risultato di un'operazione della ALU 18) Quali sono i passi di esecuzione delle istruzioni nella CPU multi-ciclo? 1) Fetch dell'istruzione e incremento PC Tutte le istruzioni ALU (PC+4) Memoria (istruzione che viene posta in IR) 2) Decodifica istruzione, ovvero lettura registri rs rt e calcolo indirizzo del branch. Tutte le istruzioni Register File (lettura registri) ALU (per il calcolo del branch) Si combinano assieme queste due operazioni perché utilizzano risorse diverse. 3) Dipende: R-type exe / Completa Branch / Completa Jump termina le istruzioni beq e jump ALU 4) Dipende: Accesso alla memoria / Completa R-type Per sw (MemWrite = 1), per lw (MemRead = 1) finiscono le istruzioni R-type e sw 5) Write Back Scrive il registro memorizza in MDR solo per lw (MemtoReg = 1) 19) Quanti cicli sono impiegati per l'esecuzione di questo frammento di codice MIPS nella CPU multi-ciclo vista a lezione? lw $t0, 0($s0) 10 + add $t0, $t0, $t1 8 + sw $t0, 0($s1) 8 + add $s0, $s0, $s2 8 + beq $t2, $t3, Label 6 40 cicli 20) Perché, considerando il codice dell'esercizio precedente, sembra non ci sia un effettivo miglioramento delle prestazioni tra l'esecuzione su di una CPU a multi ciclo rispetto ad una a singolo ciclo? Considerate il numero di cicli di clock utilizzati per l'esecuzione e la durata effettiva del ciclo di clock (singolo ciclo 8ms, multi ciclo 2 ms). Perché la CPU multi ciclo risulta vantaggiosa solo con codice che contiene almeno un istruzione beq o jump e comunque più istruzioni beq e jump che non lw. Questo perché beq e jump impiegano 3 cicli (6 ms) mentre lw impiega 5 cicli (10 ms), più di un'istruzione a singolo ciclo. Il codice proposto contiene un'istruzione beq ed una lw quindi impiega verosimilmente lo stesso tempo se eseguito su una CPU singolo ciclo piuttosto che su una multi ciclo. 21) La CPU multi-ciclo vista a lezione impiega 3 cicli per completare una beq. Per cosa viene impiegata l'ALU in ognuno dei 3 cicli? 1 - ALU PC+4 2 - ALU calcola indirizzo del branch 3 - ALU esegue la sottrazione A-B ed effettua il salto al valore calcolato in precedenza da ALU, cioè ALUOUT. Se Zero = 1 allora ALUOUT viene scritto in PC. 22) Quali sono le differenze tra le due parti di controllo dei due tipi di processore visti a lezione (singolo ciclo e multi ciclo)? Nel caso del processore multiciclo nel realizzare il controllo si deve tener conto della fase di istruzione in cui si è, quindi si adotta un circuito sequenziale in cui si memorizza lo stato del circuito nelle varie fasi. Nel processore singolo ciclo invece è sufficiente adottare un circuito combinatorio che tenga conto solo dell'istruzione che si sta svolgendo, dato che l'istruzione termina in un solo ciclo di clock.