Salta al contenuto
Note per Studenti Esercizio 24 · quiz su CMOS, memorie, microprocessore, pipeline, cache e input-output (temi d'esame 2022-2026)

Esercizio 24quiz su CMOS, memorie, microprocessore, pipeline, cache e input-output (temi d'esame 2022-2026)

Esame
In questa pagina 7

Testo (domande a risposta multipla dei temi d'esame giugno 2022, luglio 2022, settembre 2022, febbraio 2023, settembre 2025 e giugno 2026 sulla parte finale del programma: tecnologie, logica programmabile, memorie, registri, microprocessore, pipeline, cache e interfacce di I/O). Sono circa un terzo dei venti quiz di ogni prova. Per ogni domanda: risposta e motivo. Le risposte sono ricavate dalla teoria del corso.


Teoria usata: Porte CMOS e parametri tecnologici dei circuiti integratiNei circuiti integrati digitali (CMOS) i MOSFET si modellano come interruttori: nMOS chiuso se il gate vale 1, pMOS chiuso se il gate vale 0. Una porta CMOS ha una rete di pull-up (PUN, solo pMOS) verso Vdd e una di pull-down (PDN, solo nMOS) verso massa, duali: una è ON e l'altra OFF. NAND: nMOS in serie e pMOS in parallelo; NOR: nMOS in parallelo e pMOS in serie; una porta a $n$ ingressi ha $2n$ transistor. Parametri: fan-in, fan-out, margine di rumore, ritardo di propagazione ($t_{pHL}$, $t_{pLH}$, limita la frequenza di clock), dissipazione di potenza, costo (area di silicio; costi NRE e di produzione).Porte CMOS e parametri tecnologici dei circuiti integrati →, Logica programmabile - ROM, PLA, PAL e FPGAI dispositivi logici programmabili (PLD) hanno strutture logiche configurabili dal costruttore o dall'utente (configurazione $\ne$ programmazione software): ROM ($2^k$ parole da $n$ bit: decoder + OR programmabili), PLA (AND e OR programmabili, termini prodotto condivisi tra le uscite), PAL (AND programmabili, OR fisse, niente condivisione), FPGA (blocchi logici con LUT e flip-flop, interconnessioni e I/O programmabili, memoria di configurazione volatile o no). La programmazione può essere irreversibile (fuse/anti-fuse, mask) o riconfigurabile (SRAM, gate flottante).Logica programmabile - ROM, PLA, PAL e FPGA →, Memorie ROM e RAM - SRAM, DRAM e organizzazione dei chipUna memoria è un insieme di celle (word da più bit) con circuiteria di controllo. Classificazioni: sola lettura (ROM) o lettura/scrittura; ad accesso casuale (RAM), seriale (SAM) o ibrido (Flash); volatile (SRAM, DRAM) o non volatile. Una RAM $2^k\times n$ ha $k$ bit di indirizzo (indipendenti da $n$), $n$ bit dati, read/write e chip select. SRAM: cella bistabile (latch), veloce, senza refresh; DRAM: condensatore, più densa, con refresh. Organizzazione: decoder di riga e colonna (coincident selection), uscite tri-state, array di chip (più chip per più parole, più bit per più linee dati).Memorie ROM e RAM - SRAM, DRAM e organizzazione dei chip →, Registri a scorrimento e contatoriPiù sorgenti per un registro di destinazione si gestiscono con un MUX che sceglie la sorgente (e un encoder se i segnali di controllo sono 1-hot) più il Load. Lo shift register è una catena di FF con uscita di ognuno collegata all'ingresso del successivo: ingresso e uscita seriali, caricamento parallelo (Shift ha priorità su Load), versione bidirezionale con un MUX 4-to-1 per stadio (S1S0: 00 hold, 01 shift left, 10 shift right, 11 load). Usi: conversione serie/parallelo, interfacce, linee di ritardo, generatori pseudo-casuali. Contatori: ripple (asincrono, il clock di ogni FF è l'uscita del precedente, ritardo crescente) e sincrono (stesso clock, più veloce; EN e CO per la cascata).Registri a scorrimento e contatori →, Datapath e unità di controllo - un sistema digitale non programmabileUna cella di registro è un flip-flop con la logica per le microoperazioni; un registro a $n$ bit ha $n$ celle e logica di controllo condivisa. Un sistema programmabile (CPU) ha un'unità di controllo che esegue istruzioni lette da una memoria (PC); in un sistema non programmabile la unità di controllo decide le microoperazioni solo da ingressi e segnali di stato del datapath. Esempio completo: sommare cinque valori consecutivi con start, res, busy; datapath con ACC_REG, OUT_REG, CNT_REG (decrementer, MUX, segnale di stato zero); microoperazioni (op_acc_idle/clr/acc/upd_out, op_cnt_idle/cnt/reload); unità di controllo a 3 stati (ready, acc, init), macchina di Mealy.Datapath e unità di controllo - un sistema digitale non programmabile →, Un semplice microprocessore - istruzioni, ciclo singolo e cicli multipliIstruzioni a 16 bit: opcode (7 bit) + DR, SA, SB/OP (3 bit ciascuno) oppure formato di salto con offset a 6 bit (AD sinistro + AD destro, relativo al PC e con estensione di segno). Insieme di istruzioni load/store (solo LD e ST accedono ai dati): MOVA, INC, ADD, SUB, ..., LDI, ADI, LD, ST, BRZ, BRN, JMP. Nel computer a ciclo singolo (due memorie separate) il decoder combinatorio ricava MB, MD, RW, MW, PL, JB, BC dai bit 15, 14, 13, 9 dell'istruzione e $FS$ dai bit 12–9; il periodo di clock è la somma dei ritardi lungo il cammino peggiore (9,8 ns nell'esempio). Nel computer a cicli multipli (memoria unica) servono IR, registri interni R8–R15 e un decoder sequenziale: fetch (INF) + uno o più stati di esecuzione.Un semplice microprocessore - istruzioni, ciclo singolo e cicli multipli →, Pipeline, hazard e architetture RISC e CISCLa pipeline divide l'esecuzione in stadi separati da registri (IF, DOF, EX, WB) che lavorano in parallelo su istruzioni diverse: la latenza di una istruzione non cambia, il throughput aumenta di un fattore minore del numero di stadi (ritardo dei FF, stadio più lento). Con $k$ stadi e $N$ istruzioni servono $k+N-1$ cicli (riempimento e svuotamento). Gli hazard bloccano la pipeline: di dato (operando non ancora scritto: rimedi NOP, stall, forwarding) e di controllo (salti: bolle, branch prediction). RISC: istruzioni semplici, load/store, formato unico, 32 registri con R0$=0$; CISC: istruzioni complesse, più modi di indirizzamento, formato variabile, controllo microprogrammato.Pipeline, hazard e architetture RISC e CISC →, Cache e memoria virtuale - mappatura e tabelle delle pagineLe memorie sono in gerarchia (SRAM piccole e veloci, DRAM più grandi e lente, dischi enormi e lenti) perché la CPU riutilizza dati vicini nel tempo e nello spazio (località). Cache hit/miss, hit rate; mappatura diretta (indice = bit meno significativi, tag = bit alti), completamente associativa (tag = indirizzo intero, confronto in parallelo con memoria associativa), a $k$ vie (un blocco può stare in $k$ locazioni di un solo insieme). La memoria virtuale espone a ogni programma l'intera memoria con una traduzione indirizzo virtuale $\to$ fisico a pagine (tabella delle pagine con bit valid, dirty, used); il TLB accelera la traduzione; page fault = pagina da recuperare dal disco.Cache e memoria virtuale - mappatura e tabelle delle pagine →, Interfacce di input-output - strobing, handshaking, interrupt e DMALe periferiche (tastiera, disco, display) hanno velocità, codici e funzionamento diversi dalla CPU: servono interfacce che sincronizzano e adattano i dati. Un unico bus collega più periferiche, ognuna con un decoder di indirizzo (memory-mapped: indirizzi comuni con la memoria; isolated: linee di controllo separate). Controllo asincrono con strobing (senza conferma) o handshaking (con conferma, più robusto). Trasmissione seriale (meno linee) o parallela; simplex, half e full duplex; USB a pacchetti con codifica NRZI. Modi di trasferimento: I/O programmato (busy-wait, spreca la CPU), interrupt (priorità: daisy chain, parallela con maschera), DMA (il controllore prende il bus con BR/BG e trasferisce senza CPU).Interfacce di input-output - strobing, handshaking, interrupt e DMA →.

Tecnologia, logica programmabile e memorie

tema domanda risposta motivo
set 2025 (9) La struttura di una porta CMOS è basata su: una rete di pull-up formata da soli pMOS PUN (solo pMOS) verso VddV_{dd} e PDN (solo nMOS) verso massa sono duali: per ogni ingresso una è ON e l'altra OFF, mai entrambe (altrimenti ci sarebbe un corto tra alimentazione e massa)
set 2025 (10) Struttura tipica di una PAL: matrice di AND programmabile e, in cascata, matrice di OR fissa nel PLA sono programmabili entrambe, nella ROM è fisso l'AND (il decoder) e programmabile l'OR
set 2025 (11) Per indirizzare una RAM 4×44\times4 sono usati: 2 decoder 2-to-4 1616 celle in matrice 4×44\times4: un decoder di riga (2 bit) e uno di colonna (2 bit), la cella è all'intersezione (coincident selection); un solo decoder sarebbe 4-to-16
set 2022 (16), feb 2023 (16) Una memoria ROM è: un circuito combinatorio è una tabella di verità (decoder + OR programmabili), l'uscita dipende solo dall'indirizzo: nessuno stato
giu 2022 (16), giu 2026 (16) Una memoria ad accesso sequenziale: permette di accedere a indirizzi consecutivi più velocemente che a indirizzi arbitrari l'opposto dell'accesso casuale (RAM), dove il tempo non dipende dall'indirizzo

Registri e datapath

tema domanda risposta motivo
set 2025 (12) Shift register a 4 bit con caricamento parallelo: se Shift:Q←sr QShift: Q\leftarrow sr\,Q vale 1 i bit scorrono da sinistra a destra, indipendentemente da LoadLoad lo scorrimento ha priorità sul caricamento: con Shift=1Shift=1 il valore di LoadLoad non conta; srsr = shift right, verso il LSB
set 2025 (13) Nel datapath non programmabile visto a lezione, quale microoperazione memorizza la somma nel registro dedicato? op_acc_upd_out con out_load =1=1 si ha OUT←ACCOUT\leftarrow ACC; op_acc_acc aggiorna l'accumulatore, op_acc_clr lo azzera, op_cnt_* riguardano il contatore

Microprocessore

tema domanda risposta motivo
giu 2022 (17) L'instruction register contiene: l'istruzione in corso di esecuzione l'indirizzo della prossima è nel PC
lug 2022 (17) Il program counter: (sempre PC+1PC+1 / nessuna delle altre / opcode) nessuna delle altre non è sempre PC+1PC+1: nei salti si carica un altro indirizzo (PL=1PL=1); l'opcode è nell'istruzione, non nel PC
feb 2023 (17) L'indirizzo della prossima istruzione è contenuto: nel program counter per definizione del PC
set 2025 (14) Nel microprocessore a ciclo singolo gli indirizzi delle parole di memoria dati sono i valori del segnale: AA (il bus AA) in LD RD,RA e ST RA,RB l'indirizzo è il contenuto del registro R[SA]R[SA] sul bus AA; DADA, AAAA, BABA sono gli indirizzi dei registri
giu 2022 (18), set 2022 (17) Decodifica microprogrammata: permette istruzioni che richiedono più cicli di clock il controllo è una macchina a stati (ROM con il microprogramma): un'istruzione complessa è una sequenza di microistruzioni, non un solo ciclo

Pipeline

tema domanda risposta motivo
giu 2022 (19), feb 2023 (20) Sequenza degli stadi di una pipeline a 4 stadi: IF, DOF, EX, WB fetch, lettura degli operandi, esecuzione, scrittura del risultato
lug 2022 (19), feb 2023 (19) Senza salti condizionali, una pipeline a 4 stadi esegue: al massimo 4 istruzioni per ciclo (in volo) a regime ne completa 1 per ciclo, ma 4 sono contemporaneamente in lavorazione (una per stadio), mai di più; non "sempre" perché durante il riempimento sono meno
set 2022 (19) Con data forwarding, una pipeline a 4 stadi esegue: al massimo 4 istruzioni per ciclo il forwarding evita i cicli sprecati per i data hazard, ma non aumenta il numero di stadi
giu 2026 (19) Pipeline a 6 stadi, programma di una sola istruzione: cicli minimi 6 la latenza di una istruzione non cambia: attraversa tutti gli stadi. Con NN istruzioni e kk stadi servono k+N−1k+N-1 cicli: 6+1−1=66+1-1=6
set 2025 (15) R5←R1+R2R_5\leftarrow R_1+R_2; R4←R3R_4\leftarrow R_3; R6←R4+R5R_6\leftarrow R_4+R_5: data hazard? solo in clk4 l'istruzione 3 legge R4R_4 e R5R_5 nel DOF, al ciclo 4. R5R_5 è scritto nella prima metà del ciclo 4 e letto nella seconda: disponibile. R4R_4 è scritto dall'istruzione 2 nel suo WB, al ciclo 5: al ciclo 4 si legge il valore vecchio
set 2025 (16) Branch prediction in una pipeline RISC: permette di evitare i control hazard si assume il salto non preso e si annullano le istruzioni già caricate se invece è preso; non riguarda i data hazard e non cambia il clock

Cache

tema domanda risposta motivo
lug 2022 (20) Cache parzialmente associativa a 2 vie, word da 16 bit: in quante locazioni distinte può stare un dato della memoria centrale? 2⋅1=22\cdot1=2 l'indirizzo individua un solo insieme, che ha k=2k=2 locazioni (le vie); la larghezza della word non conta
set 2022 (20) Cache completamente associativa da 32 kbit, dato da 32 bit: in quante locazioni? 1024 qualunque riga va bene: le locazioni sono tutte quelle della cache, 32⋅102432=1024\dfrac{32\cdot1024}{32}=1024
giu 2026 (20) Cache fatta con una tecnologia con le stesse prestazioni della memoria principale: inutile la cache serve perché è più veloce della memoria principale (località di accesso): a parità di velocità non si guadagna nulla

Confronto. Nella cache a mappatura diretta la locazione possibile è una sola (k=1k=1), in quella completamente associativa sono tutte le LL righe; quella a kk vie sta in mezzo, con kk posti nell'insieme individuato dall'indirizzo.

Input-output

tema domanda risposta motivo
giu 2022 (20) L'interrupt è: un segnale di input per la CPU e di output per la periferica è la periferica a chiedere attenzione alla CPU
lug 2022 (18) Priorità degli interrupt con daisy chain: (a nessuna delle altre / b la CPU determina la periferica più prioritaria / c due interrupt gestiti in parallelo agli estremi) nessuna delle altre la priorità è data dalla posizione nella catena (non la determina la CPU) e due interrupt non si gestiscono in parallelo
feb 2023 (18) Stessa domanda con le tre opzioni in ordine diverso (a la CPU determina, b due in parallelo, c nessuna delle altre) nessuna delle altre stesse ragioni
set 2022 (18) Protocolli di strobing e handshaking: (stesso numero di segnali / solo trasferimenti iniziati dalla sorgente / nessuna delle altre) nessuna delle altre l'handshaking usa un segnale in più (la conferma); entrambi possono essere iniziati dalla sorgente o dal destinatario

Errori comuni

  • Dire che una ROM è sequenziale, o che in una porta CMOS pull-up e pull-down possono essere accese insieme.
  • Confondere PAL (AND programmabili, OR fisse) con ROM (AND fisse, OR programmabili) e con PLA (entrambe programmabili).
  • Credere che il forwarding o il branch prediction aumentino la frequenza di clock o che una pipeline abbassi la latenza di una istruzione.
  • Attribuire alla CPU la scelta della priorità in una daisy chain.
  • Dire che l'instruction register contiene l'indirizzo della prossima istruzione (è il PC).
  • Contare nel numero di locazioni della cache anche i bit della word.

Versione ripasso

Teoria collegata