Orali prima sessione 14/01/2021.
Il prof chiede spesso di guardare i circuiti dei processori single/multi/pipeline dal libro, impiega una ventina di minuti a persona o poco di piu se si va lenti. Aiuta abbastanza. Se non è stato consegnato (o non era sufficiente) uno dei compitini sicuramente chiede quella parte in almeno una delle tre domande. Se manca quella di ASM fa scrivere un piccolo codice sul momento. La difficoltà delle domande dipende un po dal voto con cui si arriva. Più è alto più chiede per alzare il voto.
1) Logica Combinatoria: cosa si può fare con la rete sequenziale rispetto a quella combinatoria? + esempio
2) Microarchitettura: tra single cycle, multi cycle e pipeline che differenze ci sono a livello di microarchitettura? Dal punto di vista del funzionamento di una singola istruzione? Tempi per istruzione e di completamento?
3) Memoria: come si traduce un ind virtuale in fisico?
===
1) Memoria: come funziona il compromesso del metodo associativo su insiemi? Si trova tutto su un modulo di memoria? Cosa torna meglio se uso una memoria modulare?
2) ASM: Come avviene l'esecuzione di un istruzione condizionale (es ADDEQ R0, R1, R2..) in single cycle ?
3) Verilog: che differenza c'è tra simulazione e sintesi (concettualmente) ?
===
1) Processore pipeline con controllo (figura 7.47 ): a cosa serve la cond unit?
2) Memoria: come funziona il meccanismo di paginazione dinamica?
3) Logica condizionale: Quanti livelli di porte AND e OR per un decoder sapendo il numero di ingressi?
===
1) Salto condizionale nel processore pipeline: conseguenze sul flusso di esecuzione.
2) Memoria: come funziona la TLB?
3) ASM ARM, istruzioni di memoria: come funzionano e che tipi di indirizzamento si usa?
15/01/2021:
1) ASM: compilazione if-then-else. Esempio codice
2) Come si gestisce un fault in una memoria ad ind. diretto?
3) Come si compongono moduli da 1k parole da 1 byte per ottenere un modulo da 1 parola (32 bit)?
===
1) Cache: differenza località spaziale e temporale. Meccanismi cache che favoricono l'uso di località spaziale. Svantaggi di avere troppe parole per linea di cache
2) Processore single cycle (fig 7.14): perché logica e decoder sono divisi in due parti?
3) ASM: convenzioni per passaggio registri e controllo quando si chiama una funzione. Supponendo una funzione con 3 parametri in ingresso e 1 in uscita. Come si fa?
===
1) Come si usano le mappe di karnaugh per minimizzare una rete?
2) Loop che copia un area di memoria in un'altra (es.
). Scrivere in ASM e dire quali indirizzi genera.
===
1) Reti logiche modellate in verilog: almeno 2 modi diversi per descrivere reti logiche (ad alto livello, no codice). Esempio: Due ingressi, tramite un ingresso di controllo determino l'uscita. Mux 4 ingressi, con bit di controllo da 2 bit. Differenza tra tempi di tabella di verità vs albero invertito. (differenza tra due livelli di mux da due ingressi e due livelli di porte AND e OR)
2) Microarchitettura (fig 7.13): data path può eseguire un numero limitato di istruzioni. Come si può adattare per fare una store? Esempio: STR R0, [R1, R2]
Risp: Aggiunta di un uscita ulteriore RD3 al register file.
3) Interruzioni: differenza tra interrupt e fast interrupt?
===
1) Single cycle: come si determina il tempo del ciclo di clock sapendo i ritardi dei componenti?
2) Operazioni di shift per semplificare le potenze di 2 in ALU: come si implementa uno shift con le porte logiche?
3) ASM ARM: diversi modi per esprimere gli operandi, tra cui uno per fare lo shift dei registri. In cosa consiste questo metodo di indirizzamento?
4) Alcuni indirizzi di memoria fisica potrebbero essere dedicati agli I/O. Che meccanismi sono previsti per questo? Come fa un dispositivo a riconoscere che un indirizzo è suo?
===
1) Che cos'è la paginazione dinamica? Caratteristiche TLB?
2) Cosa sono le dipenze logiche e che impatto hanno sul pipeline? Come si puo agire sul codice?
3) Differenza tra rete sequenziale di mealy e di moore? Quale più veloce?
Risp: Un ciclo di clock in meno in quella di mealy
===
1) Che cos'è un processore superscalare?
Un proc è superscalare se c'è replicazione di risorse e se si possono eseguire le stesse operazioni in parallelo
Cosa si aggunge per prelevare due istruzioni dalla memoria contemporaneamente?
Risp: Memoria a due moduli interlacciata, se sequenziali servono due tempi di accesso di memoria
Processore pipeline con qualche dipendenza e qualche NOP per allontanarle, che cosa cambia se fosse anche superscalare?
Risp: Bisogna guardare le istruzioni a due a due se ci sono dipendenze
Esempio: LDR R0 […] ADD R1, R2, R3 ADD R4, R0, R5 BL f
2) Componenti: perché conviene avere un segnale di clock che stabilizza gli stati (registri)? A che servono i sincronizzatori davanti agli ingressi? Garantisce che non cambino gli ingressi mentre la rete sta lavorando o che gli ingressi siano giusti?
3) Microarchitettura: predizione salti. Cosa si guadagna cercando di anticipare la conoscenza del punto di salto? Salto condizionale quasi mai preso, o un salto condizionale preso quasi sempre: quale conviene di più dal punto di vista dell'esecuzione?
Risp: Salto non preso conviene di piu perché non si scartano le successive già iniziate nel pipeline
===
1) Scrivere in ASM ciclo che scorre due array e controlla che ogni elemento i-esimo sia diverso nei due array, se trova una corrispondenza esce con false.
Codice:
Codice: Seleziona tutto
vero = 1;
for(i = 0; i<N i++)
if(a[i] == b[i]) {
vero = 0;
break;
}
Com'è rappresentata una ADD (del codice) in 32 bit? + Applicazione dei vari bit in uscita verso la ALU
2) Come cambia il processore single cycle (rispetto alle figure viste a lezione) se si considera la memoria esterna?
3) Come si verifica se un componente funziona o meno usando il verilog? Avendo un modulo di logica combinatoria, quanti ingressi bisogna produrre per vedere se funziona?
===
1) Domanda su paginazione
2) Cause dipendenze logiche: salti. Che grado di dipendenza causano?
3) Cosa si semplifica a livello di linguaggio macchina (rappresentazione delle istruzioni) se si eliminano i bit di condizione nelle istruzioni operative?
===
1) Con cosa si implementa una rete sequenziale di mealy?
Risp: Un registro + due reti combinatorie di cui una che calcola le uscite (Z) e una calcola il prossimo stato (S).
Cosa c'è dentro le reti S e Z (con un automa di esempio dato)?
2) Quanti sono i registri in ARM v7 e che uso se ne fa?
Microarchitetture: cosa sono i segnali che entrano nel register file e come funziona?