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
Aritmetica (add rd, rs, rt): PC → memoria istruzioni → lettura di rs e rt → ALU → scrittura in rd. Il PC diventa PC + 4.
Load (lw rt, off(rs)): lettura di rs → ALU calcola rs + estensione(off) → memoria dati in lettura → scrittura in rt. È l'istruzione più lunga: usa tutti gli elementi.
Store (sw rt, off(rs)): come la load fino all'indirizzo; il dato letto da rt va alla memoria dati in scrittura; nessuna scrittura nei registri.
Salto condizionato (beq rs, rt, off): l'ALU sottrae rs - rt; se l'uscita Zero vale 1 il PC diventa PC + 4 + (off · 4), altrimenti PC + 4. Serve un secondo sommatore per il bersaglio.
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
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.
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.
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.