Datapath e microarchitettura
In questa pagina 5
In questa pagina 4
La microarchitettura è il modo in cui un'ISA viene realizzata in hardware (vedi Architettura e organizzazione di un calcolatoreDifferenza tra architettura (ciò che vede il programmatore) e organizzazione (come è realizzata); struttura e funzione; le quattro funzioni e i quattro componenti; macchina di von Neumann e IAS; generazioni tecnologiche e legge di Moore.Architettura e organizzazione di un calcolatore →). Si divide in datapath (gli elementi che memorizzano e trasformano i dati) e unità di controllo (che ne comanda il funzionamento, vedi Unità di controlloCompiti dell'unità di controllo e micro-operazioni; segnali di controllo del datapath con tabella per le classi di istruzioni; controllo cablato (combinatorio o a stati finiti) e controllo microprogrammato (memoria di controllo, microistruzioni orizzontali e verticali); confronto.Unità di controllo →). Qui si usa un processore RISC semplificato con istruzioni aritmetiche, load/store e salto condizionato (lo schema classico dei libri di testo, valido per MIPS e per un sottoinsieme di ARM).
Elementi del datapath
Percorso delle istruzioni
Definizione (percorso delle istruzioni nel datapath). Aritmetica (
add rd, rs, rt): PC → memoria istruzioni → lettura dirsert→ ALU → scrittura inrd. Il PC diventa PC + 4.Load (
lw rt, off(rs)): lettura dirs→ ALU calcolars + estensione(off)→ memoria dati in lettura → scrittura inrt. È l'istruzione più lunga: usa tutti gli elementi.Store (
sw rt, off(rs)): come la load fino all'indirizzo; il dato letto dartva alla memoria dati in scrittura; nessuna scrittura nei registri.Salto condizionato (
beq rs, rt, off): l'ALU sottraers - rt; se l'uscita Zero vale 1 il PC diventa PC + 4 + (off · 4), altrimenti PC + 4. Serve un secondo sommatore per il bersaglio.
Esempio. Per beq rs, rt, off con off=3 e Zero , il PC diventa .
I multiplexer necessari:
- secondo ingresso dell'ALU: registro
rtoppure immediato esteso (ALUSrc); - dato da scrivere nel registro: uscita dell'ALU oppure dato letto dalla memoria (MemtoReg);
- registro destinazione:
rdorta seconda del formato (RegDst); - nuovo PC: PC + 4 oppure bersaglio del salto (PCSrc = Branch AND Zero).
Ciclo singolo
Formula (periodo di clock del ciclo singolo). Ogni istruzione si esegue in un ciclo di clock. Il periodo deve bastare per l'istruzione più lenta. Con ritardi: memoria 200 ps, banco registri 100 ps, ALU 200 ps:
Istruzione Mem. istr. Lettura reg. ALU Mem. dati Scrittura reg. Totale aritmetica 200 100 200 — 100 600 ps load 200 100 200 200 100 800 ps store 200 100 200 200 — 700 ps salto cond. 200 100 200 — — 500 ps Periodo = 800 ps (1,25 GHz) per tutte le istruzioni: un'aritmetica spreca 200 ps. Inoltre servono memorie istruzioni e dati separate e più sommatori, perché ogni unità si può usare una sola volta per ciclo.
Esempio. La load impiega ps, quindi GHz per tutte le istruzioni.
Multiciclo
Definizione (esecuzione multiciclo). L'esecuzione si divide in passi di un ciclo ciascuno (prelievo, decodifica e lettura registri, esecuzione, accesso alla memoria, scrittura); ogni istruzione usa solo i passi che le servono. Il clock è dettato dal passo più lento (qui 200 ps) e:
- aritmetica 4 cicli = 800 ps, load 5 cicli = 1000 ps, store 4, salto 3;
- un'unica memoria e un'unica ALU possono servire più passi (con registri intermedi tra i passi);
- l'unità di controllo diventa un automa a stati finiti.
Esempio. Con clock di ps, una aritmetica da cicli dura ps e una load da cicli ps.
Il miglioramento davvero efficace è la PipelineIdea della catena di montaggio; pipeline a 5 stadi IF, ID, EX, MEM, WB; tempo di ciclo, tempo per n istruzioni in una pipeline a k stadi e speedup con esempi svolti; registri di pipeline; scrittura e lettura dei registri nello stesso ciclo; limiti (stadi sbilanciati, hazard).Pipeline →: gli stessi cinque passi, ma con istruzioni diverse in passi diversi contemporaneamente.
Errori tipici
- Pensare che nel ciclo singolo le istruzioni semplici durino meno: il clock è unico, durano tutte quanto la più lenta.
- Dimenticare che il bersaglio di un salto si calcola rispetto a PC + 4, non a PC.
Versione ripasso
La microarchitettura realizza l'ISA (Architettura e organizzazione di un calcolatoreDifferenza tra architettura (ciò che vede il programmatore) e organizzazione (come è realizzata); struttura e funzione; le quattro funzioni e i quattro componenti; macchina di von Neumann e IAS; generazioni tecnologiche e legge di Moore.Architettura e organizzazione di un calcolatore →): datapath (elementi che memorizzano e trasformano i dati) e unità di controllo (Unità di controlloCompiti dell'unità di controllo e micro-operazioni; segnali di controllo del datapath con tabella per le classi di istruzioni; controllo cablato (combinatorio o a stati finiti) e controllo microprogrammato (memoria di controllo, microistruzioni orizzontali e verticali); confronto.Unità di controllo →).
Elementi
PC; memoria istruzioni; sommatore PC + 4; banco dei registri (2 letture, 1 scrittura, Registri e contatoriRegistro parallelo a n bit con caricamento abilitato; banco dei registri con due porte di lettura e una di scrittura; registri a scorrimento; contatori sincroni e asincroni (ripple), contatore modulo N con esempio svolto.Registri e contatori →); estensione del segno (immediato a 32 bit); ALU (Unità aritmetico-logica (ALU)Ruolo dell'ALU, ingressi, uscite e flag; ALU a 1 bit con AND, OR e sommatore selezionati da un multiplexer; estensione a 32 bit, sottrazione, confronto set-less-than e rilevazione dello zero e dell'overflow; tabella dei segnali di controllo; unità di moltiplicazione e virgola mobile.Unità aritmetico-logica (ALU) →); memoria dati; multiplexer.
Percorsi
- Aritmetica (
add rd, rs, rt): PC memoria istruzioni letturars,rtALU scritturard; PC PC + 4. - Load (
lw rt, off(rs)): ALU calcolars + estensione(off)memoria dati scritturart; usa tutti gli elementi. - Store (
sw): come la load fino all'indirizzo; il dato dirtva in memoria, nessuna scrittura nei registri. - Salto (
beq): l'ALU calcolars - rt; se Zero = 1 il PC diventa PC + 4 + (off 4), altrimenti PC + 4 (secondo sommatore). - Multiplexer: secondo ingresso ALU (ALUSrc), dato da scrivere (MemtoReg), registro destinazione (RegDst), nuovo PC (PCSrc = Branch AND Zero).
Ciclo singolo
Un ciclo per istruzione, periodo = istruzione più lenta. Con memoria 200 ps, registri 100 ps, ALU 200 ps: aritmetica 600, load 800, store 700, salto 500 ps. Periodo 800 ps (1,25 GHz) per tutte; servono memorie istruzioni e dati separate e più sommatori.
Multiciclo
Passi da un ciclo (prelievo, decodifica, esecuzione, memoria, scrittura); clock dettato dal passo più lento (200 ps): aritmetica 4 cicli = 800 ps, load 5 = 1000 ps, store 4, salto 3. Unità di controllo = automa a stati finiti. Miglioramento efficace: PipelineIdea della catena di montaggio; pipeline a 5 stadi IF, ID, EX, MEM, WB; tempo di ciclo, tempo per n istruzioni in una pipeline a k stadi e speedup con esempi svolti; registri di pipeline; scrittura e lettura dei registri nello stesso ciclo; limiti (stadi sbilanciati, hazard).Pipeline →.
Errori tipici: nel ciclo singolo le istruzioni semplici non durano meno; il bersaglio del salto è relativo a PC + 4, non a PC.