Capitolo 7 La CPU - ISTI-CNRglami/sistemi/07.La.CPU_GL.pdf · • Per una CPU a un solo ciclo di...
Transcript of Capitolo 7 La CPU - ISTI-CNRglami/sistemi/07.La.CPU_GL.pdf · • Per una CPU a un solo ciclo di...
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Capitolo 7La CPU
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
• Contenuti– Esame approfondito del funzionamento della CPU
• definizione di un'architettura semplificata ispirata alle macchine RISC
• sviluppo due prototipi– Il primo prototipo (CPU1) è costruito in modo da eseguire le
istruzioni in un solo periodo di clock
– Il secondo prototipo (CPU2) esegue istruzioni in più cicli
– Confronto delle prestazioni– Sistema di interruzione
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Architettura di riferimento
• Gli indirizzi di memoria sono riferiti ai byte• Istruzioni e dati occupano sempre e solo una parola
di 32 bit. • Istruzioni e dati si trovano in memoria allineate a
indirizzi multipli di 4 (0, 4, 8, 12, ...).• Se si escludono le istruzioni di salto, la regola di
aggiornamento del registro PC è: PC:= PC + 4• L'unità operativa presenta 32 registri di uso generale
di 32 bit (R0,R1, …,R31).• Repertorio di istruzioni estremamente ridotto.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Formato
Aritmetiche
Salto Incon.
Salto Condiz.
Load/Store
(F3)
(F2)
(F2)
(F1)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Semplificazione
• Si fa l’ipotesi che dentro i campi che corrispondono a indirizzi/scostamenti ci sia l’indirizzo/lo scostamento effettivo– Nella realtà le cose sono diverse. Ad esempio, tenuto conto
della nostra architettura: • conviene che campo IND del salto contenga l’indirizzo diviso
per 4 (in modo da economizzare e rendere 4 volte più grande lo spazio indirizzato). Ovviamente, è necessario che in fase di esecuzione il contenuto di IND venga moltiplicato per 4 (shiftato di 2 a sinistra)
• Portare IND a 32 bit sarebbe 0000||IND||00
– Invece supporremo che portare IND a 32 bit corrisponda all’operazione 000000||IND
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Notazione
• La notazione 000000||INDsi indica anche come X(IND)
• La notazione (OFFSET16) 16||OFFSETindica l’azione di portare OFFSET da 16 a 32 bit, estendendo il segno. si indica anche come XS(OFFSET)
Assumeremo che ci sia anche l’istruzione NOP
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Istruzioni aritmetiche tra registri
• Il campo OP contiene il codice di generica operazione aritmetica
• Il campo fALU identifica la specifica operazione da eseguire, per esempio: ADD, SUB, OR, MUL, etc.
• Le aritmetiche prevedono sempre due registri sorgente e un registro di destinazione.
• I campi Rs1 e Rs2 identificano i registri sorgente• Il campo Rd identifica il registro destinazione Esempio
ADD R1,R2,R3 ;R1:= R2+R3
SUB R4,R4,R2 ;R4:= R4-R2
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Istruzioni LD ( Load) e ST (Store)
• Il campo Rb contiene il numero d’ordine del registro base
• Il OFFSET contiene lo scostamento
EsempioLD R13,100(R6) ; R13:= M[R6+100]
; R13:= M[R6+XS(OFFSET)]
ST 2000(R7),R2 ; M[R7+2000]:= R2
; M[R7+ XS(OFFSET)]:= R2
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Istr. di trasferimento del controlloJMP : Jump, Salto incondizionatoJAL : Jump and link, salto incondizionato e collegamentoJE : Jump if equalJS : Jump on signJR : Jump relative, salto relativo a un registroINT : InterruptRFI : Return from interrupt
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Istruzioni di salto e diramazione• Salto incondizionato
– Il campo OP contiene il codice di salto, il campo IND (sempre positivo) contiene l’indirizzo di destinazione diviso per 4. Esempio
JMP label ;PC:= X(IND)
JAL label ;R31:= PC; PC:= X(IND)
• Diramazione (Salto se uguale/sul segno)– Confronto tra il contenuto dei registri RS1 e RS2 e salto in
caso di uguaglianza. EsempioJE R1,R2,dest ;if R1=R2 then
;PC:= PC+ XS(OFFSET)
JS R4,R21,dest2
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Altri Trasferimenti
• JR JR R17 ; PC:= R17
• INT INT 5 ;…… ; R30:= PC
• RFI RFI ; PC:= R30
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Fasi di esecuzione
• IF – Instruction Fetch• ID – Instruction decode• EX – Execute• ME – Memory • WB – Write Back (aggiornamento registro destinazione)
IF ID EX ME WB
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU1 (MONOCICLO)
• Esegue istruzioni in un solo periodo di clock• Richiede che memoria Istruzioni e memoria dati
siano separate (Harvard)
– La memoria istruzioni (MI) rende sempre disponibile il suo contenuto (quello della cella indirizzata da PC)
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Cosa serve in CPU1
• Una sezione dedicata al prelievo delle istruzioni dalla memoria, di cui fa parte PC. – Ad ogni ciclo di clock PC viene incrementato (di 4) in modo da
eseguire l’istruzione successiva
• Una sezione di decodifica dell'istruzione e di prelievo del contenuto degli eventuali registri sorgente.
• Una sezione relativa alla ALU.• Una sezione dedicata alla lettura/scrittura nella memoria o alla
scrittura nel registro di destinazione
• L’esecuzione consiste nella propagazione dei segnali:– Da MI fino alla scrittura nei registri o in memoria
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio : Propagazione ST
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio : Propagazione ST
PC presenta il nuovo valore e MI presenta l’istruzione. Fino al prossimo IF la MI presenta sempre la medesima istruzione
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio : Propagazione STL’istruzione viene decodificata e viene asserito il comando ST e vengono prodotti i comandi che determinano le azioni necessarie.I due registri RS1 e RSd vengono letti in RF.Il contenuto di Rs1 va alla ALU, quello di Rsd va verso la MD.L’OFFSET dell’istruzione va alla porta ALU
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Register File
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interno RF
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio : Propagazione STLa ALU effettua la somma e calcola l’indirizzo dove verràscritto il dato
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Schema ALU
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio : Propagazione STIl risultato del calcolo della ALU viene propagato fino alla porta di indirizzi MD. Essendo asserito il comando ST, viene asserito il comando M_Write che determina la scrittura del dato.Sul fronte finale del clock viene incrementato il PC (+4) usando un sommatore distinto dalla ALU che èimpegnata sullo stesso ciclo di clock
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Memoria
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Durata del T del clock
Tmono periodo del clock (per CPU1)ti tempo richiesto dal generico stadiotmono,I richiesto dalla generica istruzione Itmono tempo per l’esecuzione di N istruzioni
tmono,I = ΣΣΣΣti
(la somma è estesa ai soli stadi interessati dall’istruzione I)
Tmono = max tmono,I
tmono = N Tmono
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Esempio
• 30 ns per l'accesso alla memoria (MI o MD)• 5 ns per la decodifica dell'istruzione e per lettura dei
registri• 12 ns un'operazione di ALU• 5 ns per la scrittura di un registro
Tmono = 82 nsPer l’istruzione JMP il 57% del tempo è sprecato
MI ID ALU MD WR TAritm 30 5 12 5 52 LD 30 5 12 30 5 82 ST 30 5 12 30 77 JE/JS 30 5 12 47 JMP 30 5 35 JAL 30 5 5 40
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU1 con memoria unificata….
• Per una CPU a un solo ciclo di clock e memoria unificata si può ricorrere a questo stratagemma:– nella prima fase del clock si legge dalla memoria (fetch)– nella seconda fase si esegue l’istruzione (execute)
• Comporta la presenza di un registro intermedio (IR) su cui memorizzare l’istruzione
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU2
• Memoria unica• Più cicli di clock, esecuzione in più passi:
– IF– ID– EX– ME– WB
• Elementi necessari (per ora): PC, IR, RF, ALU• Ottimizzare l’uso delle risorse • Controllo maggiore
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
IF
• Azioni svolte in IF: IR:= M[PC]; PC:= PC+4(Durante IF ALU non viene utilizzata => si usa per incrementare PC)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
ID
• Comprende il decodificatore del codice di istruzione• Il formato dell’istruzione consente la lettura degli
eventuali registri sorgente• Siccome ancora la ALU non viene impiegata per
l’eventuale operazione richiesta dall’istruzione, si puòimpiegarla per il calcolo dell’indirizzo di destinazione della diramazione. A tal fine occorre un registro di appoggio (DEST)
• Azione svolta: DEST:= PC + OFFSET• In realtà DEST := PC+XS(OFFSET)
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
ID
Il campo OFFSET deve essere esteso a 32 bit [operazione XS(OFFSET)]
L’estensione non è mostrata
DEST := PC+OFFSET
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
EX
• Determinata dal codice di operazione
– Aritmetiche: ALUout:= A fALU B– LD/ST: ALUout:= A + OFFSET – JE: ALUout:= A - B; if zero then PC:= DEST– JS: ALUout:= A - B; if segno then PC:= DEST– JMP: PC:= IND– JR PC:= RF.B – JAL PC:= IND
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
EX -- AritmeticheALUOut = A fALU B
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
EX -- LD/ST
Qui l’estensione è mostrata
ALUOut = A + OFFSET
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
EX -- JE/JS
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
EX – JMP/JAL/JR
La JAL deve salvare PC in R31:
• Quando R31 viene scritto (WB) PC è già stato modificato
• Ciò impone la presenza del registro PC1 Aggiornato come PC in IF
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
ME
• LD: Dmem:= M[ALUout]
• ST: M[ALUout]:= B
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
WB
Aritmetiche LD
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU2 complessivo
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Diagramma di stato aggregato
La UC è un automa a stati finiti. (macro)Stati: prelievo e codifica; 1 stato per ogni istruzione
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Fasi di esecuzione• IF – Instruction Fetch• ID – Instruction decode• EX – Execute• ME – Memory • WB – Write Back (aggiornamento registro destinazione)
• Ad ogni fase corrisponde uno dei 5 cicli di clock T1, T2, T3, T4, T5;stato Si <=> ciclo di clock Ti
• T1 e T2 vengono spesi nel macrostato: prelievo e doco-difica.
• T3-T5 vengono spesi nelmacrostato corrisponden-te a ciscuna istruzione.
IF ID EX ME WB
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Comandi e selettori
• COMANDI (= segnali di controllo che hanno effetto solo quando asseriti)
– PC_Write: Per abilitare l'ingresso a PC;– PC1_Write: per abilitare l'ingresso a PC1;– M_Read: per leggere la memoria; – In: per mettere il bus dei dati in ingresso;– M_Write: per scrivere in memoria;– Out: per mettere il bus dati in uscita;– IR_Write: per scrivere nel registro IR; – R_Write: per scrivere nel registro di destinazione;– DEST_Write: per scrivere in DEST;
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU2 complessivo
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
…. Comandi e selettori
• SELETTORI (= segnali ai blocchi di selezione)
– Rsorg: per selezionare il registro di destinazione;– Dsorg: per selezionare la provenienza a D di RF;– INDsorg: per selezionare la provenienza dell'indirizzo di
memoria;– PCsorg: per selezionare la provenienza dell'ingresso a PC– ALUsorgA: per selezionare la provenienza dell'ingresso A di
ALU;– ALUsorgB: per selezionare la provenienza dell'ingresso B di
ALU;– OPALU: per selezionare la funzione di ALU.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
CPU2 complessivo
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Digramma di stato dettagliato
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Diagr stato dettagliato … fetch decode…..
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Diagr. Dettagliato (execute)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Stato di Prelievo, IF
Azioni previste: IR <- M[PC]; PC <- PC + 4• Comandi da asserire durante T1 (stato S1)
– M_Read: per leggere la memoria; – In: per mettere il bus dei dati in ingresso;– PC_Write: Per abilitare l'ingresso a PC;– PC1_Write: per abilitare l'ingresso a PC1;– IR_Write: per scrivere nel registro IR;
• Valori assunti dai Selettori– INDsorg=1: per trasmettere alla memoria il contenuto del PC;– PCsorg=0: per selezionare PC+4, prodotto dalla ALU, come ingresso al
PC– ALUsorgA=0: per selezionare il PC come ingresso A di ALU;– ALUsorgB=0: per selezionare la costante 4 come ingresso B di ALU;– OPALU=ADD: per selezionare la funzione di ALU.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Stato di Decodifica, IDLa decodifica avviene automaticamente attraverso una semplice rete combinatoria; quello che si fa è calcolare l’indirizzo di destinazione per un’eventuale istruzione JE/JS
Azioni previste: DEST <- PC + OFFSET
• Comandi da asserire durante T2 (stato S2) – DEST_Write: Per memorizzare in DEST l’ind. di destinazione
dell’eventuale JE/JS;
• Valori assunti dai Selettori– ALUsorgA=0: per selezionare il PC come ingresso A di ALU;– ALUsorgB=2: per selezionare il campo OFFSET dell’eventuale
istruzione JE/JS come ingresso B di ALU;– OPALU = ADD: per selezionare la funzione di ALU.
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Istruzioni AritmeticheAzioni previste: ALUout = A fALU B
• Comandi da asserire durante T3 (stato S3A) : nessuno
• Valori assunti dai Selettori durante T3 (stato S3A) – ALUsorgA=1: per selezionare l’uscita A di RF come ingresso A di
ALU;– ALUsorgB: per selezionare l’uscita B di RF come ingresso B di ALU;– OPALU: per selezionare la funzione di ALU.
• In T4 tutto come in T3• Comandi da asserire durante T5 (stato S5A)
– R_Write:per scrivere nel registro destinazione
• Valori assunti dai Selettori durante T5 (stato S5A) – Rsorg = 0 per scrivere nel registro Rd indicato nell’istruzione– Dsorg = 0 per selezionare la provenienza da ALU del dato– JAL=0 per selezionare la provenienza da ALU del dato
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Stato di Decodifica, ID
Dare forma algebrica ai comandi
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Comandi
• Comandi: espressioni trovate come somme di prodotti tra i periodi e i codici
• Esempio: R_Write deve essere asserito su– T5 per le aritmetiche, per la LD e per la JAL:
R_Write= T5 . Aritm + T5 . LD + T5.JAL = T5(la semplificazione è possibile perché su T5 ci sono solo queste tre)
• Esempio: M_Read:– Su T1 per tutte le istruzioni– Su T4 e T5 per LD
M_Read= T1 + T4 . LD + T5 .LD
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
...Comandi
• In = T1 + T5.LD• M_Write = T4.ST• Out = (T3 + T4) ST • IR_Write = T1
• OPALU si esplicita in tre comandi ADD, SUB, fALU– ADD = T1 + T2 + T3 (LD+ST) +T4 (LD+ST)+ T5 LD– SUB = T3 (JE+JS)– fALU = (T3+T4+T5) ARITM
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Selettori
• Su molti periodi sono ininfluenti (cond. indifferenza)Esempio: Dsorg: – su T1, T2, T3 e T4 è indifferente perché Rwrite è
disasserito.– Deve essere 1 su S5L e 0 su S5A e S5JAL – Dunque basta tenere Dsorg a 1 su T5 in presenza di LD e a
0 in tutti gli altri casi. Ovvero Dsorg = T5 . LD
• Selettori a due vie o più di 2 vie (codifica)
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Considerazioni
Tmulti periodo del clock per CPU2. E’ determinato dallo stadio più lento
ττττi tempo richiesto dal generico stadioTmulti = max ττττi
Tmono periodo del clock di CPU1. E’ determinato dall’istruzione più lenta (L’istruzione più lenta è indicata con X; con x si indica il numero di stadi che attraversa)
Tmono = ττττmono,X = ΣΣΣΣ ττττi (somma sugli x stadi attraversati)
DUNQUE: ττττmulti,X = x* Tmulti >= ττττmono,X = Tmono
Nel multiciclo gli stadi più veloci si devono uniformare al più lento!!!!
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Confronto monociclo - multiciclo
CPIi = numero di cicli di clock richiesto per una istruzione di tipo i
ττττmulti,I = CPIi * Tmulti Durata istruzione di tipo i
N numero di istruzioni eseguite da un programma
pi frazione di istruzioni di tipo i nel programma
tmulti tempo di esecuzione del programma
tmulti = N ΣΣΣΣ((((pi * ττττmulti,I ) = N ΣΣΣΣ((((pi * CPIi * Tmulti)
tmono = N * Tmono
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Confronto monociclo multiciclo
tmono /tmulti = Tmono / ΣΣΣΣ((((pi * CPIi * Tmulti)
• Multiciclo fornisce migliori prestazioni se:– L'architettura consente di evitare il passaggio da tutti gli
stadi, in modo che ci siano istruzioni a ridotto numero di clock, per le quali valga
= CPIi * Tmulti <= Tmono
– Il mix di istruzioni nel programma (coefficienti pi) sia tale dafar in modo che il peso delle istruzioni del punto precedente sia superiore allo spreco di tempo dovuto all'aver uniformato al clock la velocità dei differenti stadi.
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Prestazioni
• Assunzioni:– 30 ns accesso memoria– 5 ns decodifica istruzioni e lettura registri– 12 ns operazione ALU– 5 ns scrittura registro
Ne deriva T= 30 ns
• Durata istruzioni:– Aritm: 150 ns– LD 150 ns – ST 120 ns – JE/JS : 90 ns – JMP/JR: 90 ns – JAL 150 ns
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
..Prestazioni• Mix istruzioni (assunzione):
– istruzioni aritmetiche: 45%– istruzioni LD: 25%– istruzioni ST: 10% – istruzioni JE/JS: 12% – istruzioni JMP: 6%– istruzioni JAL: 2%
• Tempo medio per istruzione:0,45*150 + 0,25*150 + 0,10*120 + 0,12*90 + 0,06*90 + 0,02*150= 136,2 ns
Un tempo superiore del 66,10% al caso monociclo (82 ns). !!!
MI ID ALU MD WR TAritm 30 5 12 5 52 LD 30 5 12 30 5 82 ST 30 5 12 30 77 JE/JS 30 5 12 47 JMP 30 5 35 JAL 30 5 5 40
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Miglioramenti
Criteri:• Anticipare per quanto possibile le operazioni, in modo
da ridurre il numero medio di clock per istruzione;• Scegliere un periodo di clock più breve, introducendo
eventualmente degli stati di attesa per le fasi piùlunghe, in modo da ottimizzare il tempo medio per istruzione;
E’ l’accesso alla memoria che determina T. Dunque conviene scomporre l’accesso a M in più cicli.
• Compattare fasi distinte e aggiustare opportunamente il clock.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Aumento della granularità del clock
• Portare T a 12 ns (tempo di ALU) => un accesso alla memoria richiede 3 cicli
– aritmetiche: 12 * 3 + 12 + 12 + 12 + 12 = 84 ns;– LD: 12 * 3 + 12 + 12 + 12 * 3 + 12= 108 ns.– ST: 12 * 3 + 12 + 12 + 12 * 3= 96 ns;– JE/JS: 12 * 3 + 12 + 12= 60 ns;– JMP/JR: 12 * 3 + 12 + 12= 60 ns;– JAL 12 * 3 + 12 + 12 + 12 + 12= 84 ns;
• Con il precedente mix si ha una durata media pari a0,45*84 + 0,25*108 + 0,10*96 + 0,12*60 + 0,06*60 + 0,02*84= 86,88 ns
• Miglioramento = 100 * (136,20 - 86,88)/136,20 = 36,21%
100*(86,88 - 82)/82 =5,95 % più lenta di CPU1
Nota: Ci sono sprechi in tutte le fasi (eccetto ALU) in particolare nell’accesso alla memoria (6 ns)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Ulteriore incremento della granularità
• Portare T a 5 ns=> un accesso alla memoria richiede 6 cicli
– aritmetiche: 5*6 + 5*3 + 5*3 + 5 + 5= 70 ns;– LD: 5*6 + 5*3 + 5*3 + 5 * 6 + 5= 95 ns;– ST: 5*6 + 5*3 + 5*3 + 5 * 6= 90 ns;– JE, JS: 5*6 + 5*3 + 5*3= 60 ns;– JMP/JR: 5*6 + 5*3 + 5 = 50 ns.– JAL 5*6 + 5*3 + 5 + 5 + 5= 60 ns;
• Con il precedente mix si ha una durata media pari a0,45*70 + 0,25*95 + 0,10*90 + 0,12*60 + 0,06*50 + 0,02*60= 75,75 ns
• Miglioramento = 100 * (136,20-75,65)/136,20 = 44,46%
• Miglioramento rispetto a CPU1 = 100 * (82-75,65)/82 = 7,74%
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Anticipazione e compattazione
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Anticipazione e compattazione
• Mantenendo T = 30 ns
– aritmetiche: 30 + 30 = 60 ns;– LD: 30 + 30 + 30 + 30 = 120 ns; – ST: 30 + 30 + 30 = 90 ns;– JE/JS: 30 + 30 + 30 = 90 ns;– JMP/JR: 30 + 30 = 60 ns;– JAL 30 + 30 = 60 ns;
• Con il precedente mix si ha una durata media pari a0,45*60 + 0,25*120 + 0,10*90 + 0,12*90 + 0,06*60 + 0,02*60= 81,60 ns
• Miglioramento = 100 * (136,20-81,60)/136,20 = 40,09%
• Quasi la stessa velocità di CPU1
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Anticipazione, compattazione e clock fine
• T = 5 ns
– aritmetiche: 5*6 + 5 + 5*3 + 5 = 55 ns;– LD: 5*6 + 5 + 5*3 + 5 * 6 + 5= 85 ns;– ST: 5*6 + 5 + 5*3 + 5 * 6= 80 ns;– JE, JS: 5*6 + 5 + 5*3 + 5*3 = 65 ns;– JMP/JR: 5*6 + 5 = 35 ns.– JAL 5*6 + 5 + 5 + 5= 40 ns;
• Con il precedente mix si ha una durata media pari a0,45*55 + 0,25*85 + 0,10*80 + 0,12*65 + 0,06*35 + 0,02*40= 64,76 ns
• Miglioramento = 100 * (136,20-64,76)/136,20 = 52,50%
• Miglioramento rispetto a CPU1 = 100 * (82-64,76)/82 = 21,10%
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni
• Esterne: – usate per gestire le operazioni di I/O.– asincrone rispetto all'esecuzione del programma
• Eccezioni: – causate da situazioni anomale (overflow nelle operazioni
aritmetiche, tentativo di esecuzione di un codice operativo non permesso, fallimento nell’accesso alla memoria virtuale
– sincrone rispetto all'esecuzione del programma ma non predicibili
• Trappole:– generate da apposite istruzioni (ad esempio, INT del
processore 8086). Sono una specie di istruzioni di salto con l'effetto di portare la macchina in opportune modalità di funzionamento
– sincrone e predicibili
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Atomicità dell’interruzione
• IE: flip-flop di abilitazione del (sistema di) interruzione– Architettura 8086: due istruzioni STI e CLI (asseriscono SIE
e RIE rispettivamente)– Servizio interruzione equivale a RIE– RFI equivale a SIE
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni su CPU2
• IPOTESI– Linea INTR per le interruzioni esterne– Eccezioni filtrate da IE (come le interruzioni esterne)– Istruzioni INT per le interruzioni software– La logica di CPU salva il solo PC in R30 (qualunque sia il
tipo di interruzione) • la responsabilità di salvare gli eventuali registri che potrebbero
essere modificati dalla routine di servizio è lasciata al programmatore.
– Le interruzioni sono vettorizzate: • in CPU c’è la tabella TABIR (un blocco di registri di 32 bit)
identificati attraverso il numero di interruzione.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni Software
• Istruzione INT• Essa determina:
– R30 PC;– PC TABIR[NInt];– Asserzione RIE;
• Occorre prevedere– Un percorso da TABIR a PC (ulteriore ingresso al Mux del
PC)– La selezione di R30 come registro di destinazione– (per le interruzioni esterne servirà anche un registro (SEL)
su cui appoggiare il selettore di interruzione)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Trattamento INT Servirà più
avanti
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Ramo INT
Deve essere aggiunto il ramo di esecuzione di INT
SWrite può essere anticipato a T2, il resto può essere anticipato a T3
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni esterne
• Ipotesi:– quando IINTR è asserita la logica, terminata l’istruzione
corrente, passa al servizio dell’interruzione;– La logica di CPU asserisce INTA verso l’esterno, generando
un ciclo INTA sul bus; la logica esterna presenta il selettore sul bus dei dati in modo che possa essere letto sullo stesso ciclo INTA (INTA è una specie di Read);
– INTR resta asserita almeno fino al momento in cui viene asserito INTA
• Occorre prevedere un ramo nel diagramma di stato, ma la cosa non è tanto scontata!!
• Si può sfruttare l’istruzione INT
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Possibile fenomeno di metastabilità
• Se ci si basasse solo su IINTR (che per natura èasincrono)
• Occorre sincronizzare la richiesta di interruzione!!!
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Sincronizzazione INTR
• IRQ è sincronizzato rispetto all’ultimo clock (di ogni istruzione)
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzione esterna….
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
…Interruzione esterna
RIE
Dsorg=0
Rsorg=3
R_Write
X_VI
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Attenzione!!!
• Nelle espressioni dei comandi e selettori attivi su T1 e T2 occorre tenere conto di IRQ– In precedenza si aveva
DEST_Write = T2– deve essere cambiata in
DEST_Write = T2 IRQ
– Si ha anche INTA = T2 IRQ
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Più realistico
• Abbiamo assunto che TABIR fosse in CPU• TABIR deve stare in Memoria. Non c’è nessuna
difficoltà concettuale• Istruzione INT:
– NInt viene presentato all’esterno come indirizzo di memoria, viene asserito M_Read e quel che viene letto viene copiato in PC.
• Interruzione esterna: – su INTA il mondo esterno presenta sul bus dati il selettore
di interruzione esterna (equivale a NInt) – segue il passo precedente dell’istruzione INT.
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Eccezioni
• Il selettore viene prodotto dalla logica di CPU– Es: page fault, divisione per zero– Occorre aggiungere la logica relativa alla provenienza del
selettore
• Filtrate attraverso IE come le interruzioni esterne• Occorre stabilire una priorità rispetto alle interruzioni
esterne
• Complicazioni. Esempio: – Page Fault. L’istruzione non si conclude, genera eccezione.
Successivamente deve essere rieseguita.
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
ISTRUZIONE RFI
• RFI
• L’istruzione deve:– effettuare PC R30 – asserire SIE
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Discussione
• La nostra architettura – salva in R30 (non ha stack)– non prevede una parola di stato (è stato salvato solo PC!!!)
• TABIR non sta in CPU ma in memoria– Il selettore deve essere usato per leggere in memoria (in
TABIR) il vettore di interruzione
• Interruzioni annidate– Istruzione STI: set interrupt (asserisce SIE) – Istruzione CLI: clear interrupt (disasserisce SIE)
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Interruzioni annidate
• Nella nostra architettura (mancanza di stack) sono difficili da attuare
RSERV … ;entrata
ST SAVR(R0),R30 ;salva R30 in mem.
STI ;riabilta interr.
…
LD R30,SAVR(R0) ;riprende R30
RFIPuò arrivare un’interruzione tra queste istruzioni: si perde R30
Prima del LD ci vuole CLI
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Incidentalmente
• Come si fa con la nostra macchina una procedura ricorsiva?
• L’esempio classico è il fattoriale: fatt(x) = x * fatt(x-1)– 0! = 1 per definizione
Chiamante
LD R1,x(R0)
JAL FATT
ST y(R0), R1
Entrando in FATT
• se R1= 0 : R1 <- 1; JR 31
• se R1>= 1 : chiamare FATT passando R1-1
La chiamata si fa con JAL;ma prima deve essere salvato R1
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
…Una procedura ricorsiva
• Ogni volta che viene chiamato FATT dall’interno di FATT stessa occorre salvare il valore precedente di x (R1)
• Per trattare la ricorsività è necessario lo stack
• Costruzione dello stack:– Stabilire una convenzione per cui un registro (R29) viene
sacrificato a fare solo da SP.– R29 viene inizializzato dal SO e successivamente modificato
solamente attraverso due operazioni PUSH Rx e POP Rx• Ricorriamo al concetto di “macro” dell’assembler
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Le due macro push e pop
• Per brevità assumiamo– che il repertorio preveda l’operazione ADDI (ADD Immediate:
somma l’operando immediato al registro sorgente ) e l’operazione JNE (salta se non zero)
– che R0 contenga sempre 0
macro PUSH &1 ;paramtro (Rx)ADDI R29,R29,4ST (R29),&1
endmacro
macro POP &1LD &1,(R29)ADDI R29,R29,-4
endmacro
Cresce verso gli indirizzi più alti
Calcolatori elettronici
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
FATT Ha un difetto: in ingresso non controlla se x<0
FATT PUSH R31 ;salviamo il ritorno
JNE R1,R0,NonZADDI R1,R0,1 ;R1<- 1
POP R31 ;riprendiamo il ritorno
JR R31 ;uscita
;
NonZ PUSH R1 ;salva x correnteADDI R1,R1,-1 ;R1<- x-1
JAL FATT ;Da FATT si esce
; ;con R1 = fatt(x-1)
POP R2 ;R2<- x
MUL R1,R1,R2 ;R1<- x*fatt(x-1)POP R31 ; ripristino ritorno
JR R31
Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci
Copyright © 2009 – The McGraw-Hill Companies srl
Registri riservati
• R31 dalla logica di CPU per JAL• R30 dalla logica di CPU per salvataggio PC
nelle interruzioni• R29 per convenzione software al fine della
costruzione dello stack
• Praticamente i tre registri sopra descritti non sono utilizzabili da parte del programmatore.