calcolatori elettronici -...
TRANSCRIPT
![Page 1: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/1.jpg)
1
Calcolatori Elettronici
CPU multiciclo:esercizi
Massimiliano Giacomin
![Page 2: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/2.jpg)
2
Prima tipologia di esercizi:
valutazione delle prestazioni
![Page 3: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/3.jpg)
3
Specchio riassuntivo su prestazioni e CPI
1) Per i processori a singolo ciclo
CPI = 1
Tclock = max{Ta + … Tk} al variare delle istruzioni
Þ Tesecuzione = #istruzioni * Tclock
2) Calcolo CPI e prestazioni nei sistemi multi-ciclo
CPI = f1*CPI1 + f2*CPI2 + … + fn*CPIn
f1, …, fn: frequenze relative istruzioni (carico di lavoro)
Tclock = max{T1, … ,Tm} [operaz. atomiche eseguite in un ciclo di clock]
3) Confronto di prestazioni tra processori con stesso ISA [su prog. determinato]
T1esecuzione
T2esecuzione
CPI1*T1clock
CPI2*T2clock
=
Tesecuzione = #istruzioni * CPI * Tclock0) In generale:
![Page 4: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/4.jpg)
4
Esercizio 1Si ipotizzi un carico di lavoro che preveda:
lw: 31%sw: 21%Tipo-R: 22%beq: 5%j: 7%somma virgola mob: 7%moltipl. Virgola mob: 7%
Eseguite secondo le fasi viste
Come Tipo-R ma ALU richiede4 operazioni in sequenza anziché 1Come Tipo-R ma 8 operazioni ALU
Si supponga che le operazioni atomiche che coinvolgono le unità funzionaliprincipali (di cui si tiene conto per il calcolo dei tempi) richiedano:
Unità di memoria (lettura e scrittura): 2 nsRegister File (lettura e scrittura): 1 nsOperazione-ALU: 2 ns
• Confrontare le prestazioni di una implementazione a ciclo singolo vs.multi-ciclo (vincolo di non mettere in serie due operazioni atomiche) vs.multi-ciclo in cui sono effettuate in serie (nello stesso ciclo):
- operazione ALU per produrre un valore + scrittura del valore nel Register File- lettura dalla memoria di un valore + ” ” ” ” ” ”
![Page 5: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/5.jpg)
5
Calcolo delle prestazioni nel caso a singolo ciclo (macchina M1)
CPI = 1Þ Tesecuzione = I * Tclock
Tclock corrisponde all’istruzione “più lunga” che evidentemente è la MULin virgola mobile (cfr. esercizio sul processore a singolo ciclo)
Tclock = 2 + 1 + 8*2 + 1 ns = 20 ns
fetchletturaR.File
ALU
scritturaR.File
TM1 = I * 20 ns
(I è il numero di istruzioni)
![Page 6: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/6.jpg)
6
Calcolo delle prestazioni nel caso multiciclo
M2 (Macchina multi-ciclo): in un ciclo di clock NO serie di operazioni atomiche
Tclock = 2ns (operazione ALU oppure accesso in memoria)
CPI = somma pesata dei CPI singole istruzioni con le frequenze relative= (vedi lucido seguente) 4,89
TM2 = I * 4.89 * 2 ns = I * 9.78 ns
![Page 7: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/7.jpg)
7
M2 (Macchina multiciclo): CPI per istruzione
Istruzione Fetch Lettura Registri/Decode
ALU Accesso Memoria
ScritturaRegistri
CPI
lw 1 1 1 1 1 5
sw 1 1 1 1 4
Tipo-R 1 1 1 1 4
beq 1 1 1 3
j 1 1 1 3
ADD V. MOB. 1 1 4 1 7
MUL V. MOB. 1 1 8 1 11
CPI = 0.31*5 + 0.21*4 + 0.22*4 + 0.05*3 + 0.07*3 + 0.07*7 +0.07*11 = 4.89
![Page 8: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/8.jpg)
8
M3: in un ciclo di clock ho al più:lettura memoria | ALU [2 ns] + scrittura Reg.File [1 ns]
Tclock = 3ns
CPI = per TIPO-R, lw e virgola-mobile CPI si riduce di 1
Istruzione Fetch Lettura Registri/Decode
ALU[ev. Scr. Reg.]
Accesso Memoria [ev. Scr. Reg.]
CPI
lw 1 1 1 1 4sw 1 1 1 1 4Tipo-R 1 1 1 3beq 1 1 1 3j 1 1 1 3ADD V. MOB. 1 1 4 6MUL V. MOB. 1 1 8 10
CPI = 0.31*4 + 0.21*4 + 0.22*3 + 0.05*3 + 0.07*3 + 0.07*6 +0.07*10 = 4.22
TM3 = I * 4.22 * 3 ns = I * 12.66 ns
![Page 9: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/9.jpg)
9
Confronto delle prestazioni
TM1 = I * 20 ns
TM2 = I * 9.78 nsM2 oltre 2 volte più veloce rispetto a M1
TM3 = I * 12.66 ns
TM2 = I * 9.78 nsM2 circa 1.3 volte più veloce rispetto a M3
NB: la riduzione di CPI non paga rispetto all’aumento di Tclock
La macchina multiciclo con divisione “equilibrata” delle fasi è la più efficiente.
RiepilogoCPI Tclock Tesecuz Tistruzione-più-costosa
M1 1 20 ns I * 20 ns 20 nsM2 4.89 2 ns I * 9.78 ns 11*2 = 22 nsM3 4.22 3 ns I * 12.66 ns 10*3 = 30 ns
Notare però che l’istruzione più costosa (MUL in V.MOB.) è più velocenell’implementazione a singolo ciclo.
![Page 10: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/10.jpg)
10
Domanda
Come deve essere modificato il DataPath per implementare M3?
![Page 11: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/11.jpg)
11
Si tratta di collegare “direttamente in serie”- ALU a Register File (per scrivere in un registro il risultato di un’operazione)
Þ linea di collegamento in uscita alla ALU prima del registro ALUout- Memoria a Register File (per scrivere in un registro il valore letto da Mem)
Þ elimino il registro MDR collegando direttamente memoria a Reg.File
indirizzo
Datoscritto
MemData
Memoria
RegWrite
Registro letto 1
Datoscritto
Dato letto 2
Registro letto 2
Registro scritto
Dato letto 1
Registri
. . .ALUout
![Page 12: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/12.jpg)
12
Modificando il Datapath completo risulta:
![Page 13: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/13.jpg)
13
Esercizio 2Si ipotizzi un carico di lavoro che preveda:
lw: 25%sw: 10%Tipo-R: 52%beq: 11%j: 2%
Si supponga che le operazioni atomiche che coinvolgono le unità funzionaliprincipali (di cui si tiene conto per il calcolo dei tempi) richiedano:
Unità di memoria (lettura e scrittura): 2 nsRegister File (lettura e scrittura): 1 nsOperazione-ALU: 1 ns
• Determinare le prestazioni multi-ciclo (non mettere in serie due operazioni atomiche)• Delineare, se possibile, una modifica al controllo e al data path in grado di migliorare
l’efficienza della soluzione precedente (sempre nell’ambito del controllo multi-ciclo)• Confrontare le prestazioni delle due soluzioni ottenute
![Page 14: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/14.jpg)
14
1) Controllo multi-ciclo “usuale”
TM1 = #istruzioni * CPI * Tclock
Tclock = 2ns (accesso in memoria)
Istruzione Fetch Lettura Registri/Decode
ALU Accesso Memoria
ScritturaRegistri
CPI
lw 1 1 1 1 1 5
sw 1 1 1 1 4
Tipo-R 1 1 1 1 4
beq 1 1 1 3
j 1 1 1 3
CPI = 0.25*5 + 0.1*4 + 0.52*4 + 0.11*3 + 0.02*3 = 4.12
TM1 = I * 4.12 * 2 ns = I * 8.24 ns
![Page 15: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/15.jpg)
15
2) Soluzione più efficiente
Unità di memoria (lettura e scrittura): 2 nsRegister File (lettura e scrittura): 1 nsOperazione-ALU: 1 ns
Operazione ALU e accesso a Register File possono essere messe in serie(diminuendo CPI) senza incrementare Tclock !!!
Istruzione Fetch Lettura Registri/Decode
ALU Accesso Memoria
ScritturaRegistri
CPI
lw 1 1 1 1 1 5
sw 1 1 1 1 4
Tipo-R 1 1 1 1 4 3
beq 1 1 1 3
j 1 1 1 3
![Page 16: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/16.jpg)
16
CPI = 0.25*5 + 0.1*4 + 0.52*3 + 0.11*3 + 0.02*3 = 3.6e quindi risultaTM2 = I * 3.6 * 2 ns = I * 7.2 ns
Ovviamente, occorre modificare leggermente il DataPath…
![Page 17: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/17.jpg)
17
3) Confronto prestazioni
TM1 = I * 8.24 ns
TM2 = I * 7.2 nsM2 è circa 1,14 volte più veloce
NB:
Istruzione Fetch Lettura Registri/Decode
ALU Accesso Memoria
ScritturaRegistri
CPI
lw 1 1 1 1 1 5
sw 1 1 1 1 4
Tipo-R 1 1 1 1 4
beq 1 1 1 3
j 1 1 1 3
Perché non la soluzione seguente?
… pensarci …
![Page 18: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/18.jpg)
18
Seconda tipologia di esercizi:
implementazione istruzioni nuove
![Page 19: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/19.jpg)
19
Si consideri il DataPath per l’implementazione multiciclo del MIPS [che avete a disposizione!]. Si consideri l’istruzione assembler:
jr r1 ; PC ¬ r1la quale esegue un salto incondizionato all’indirizzo specificato dal registro r1.
Per questa istruzione:- supponendo che vi sia un codice operativo “libero” (non impegnato
in altre istruzioni) si fornisca un possibile formato per l’istruzione- si dica se (e come) deve essere modificato il datapath per permetterne
l’implementazione rispettando il vincolo usuale sugli elementi funzionali;- si specifichi come deve essere modificato il
diagramma a stati finiti dell’unità di controllo per implementarla;- supponendo Tclock = 2ns, calcolare il tempo di esecuzione della nuova
istruzione.
Esercizio 3
![Page 20: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/20.jpg)
20
jr r1: DATAPATH
![Page 21: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/21.jpg)
21
jr r1
• Una prima soluzione: modificare il datapath aggiungendo in ingresso al MUX che determina il valore da scrivere in PC il registro A [che può contenere r1]
3
Formato: TIPO-R o I con #r1 nel campo rs
![Page 22: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/22.jpg)
22
Specifica del controllo con il diagramma a stati:
PCWrite PCSource = 10
ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond
PCSource = 01
ALUSrcA =1 ALUSrcB = 00 ALUOp= 10
RegDst = 1 RegWrite
MemtoReg = 0
MemWrite IorD = 1
MemRead IorD = 1
ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
RegDst = 0 RegWrite
MemtoReg =1
ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00
MemRead ALUSrcA = 0
IorD = 0 IRWrite
ALUSrcB = 01 ALUOp = 00
PCWrite PCSource = 00
Instruction fetchInstruction decode/
register fetch
Jump completion
Branch completionExecution
Memory address computation
Memory access
Memory access R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ
')
(Op =
'J')
(Op = 'S
W')
(Op
= 'L
W')
4
01
9862
753
Start
PCWritePCSource=11
Op = “jr”
0: fetch1: decode e carica
A = r1, B = rt10: PC ¬A
10
![Page 23: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/23.jpg)
23
• Una seconda soluzione: non modificare il datapath
E’ possibile implementare l’istruzione con il formato Tipo-I:
Op = “jr” r1 X Tutti i bit a 00151620212531 26
+PC
X: don’t care
PC può essere scritto con il valore in uscita dalla ALU
ALU può essere usata per sommare A+offset pari a rs se offset=0
[PCSource=0, PCWrite=1]
![Page 24: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/24.jpg)
24
PCWrite PCSource = 10
ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond
PCSource = 01
ALUSrcA =1 ALUSrcB = 00 ALUOp= 10
RegDst = 1 RegWrite
MemtoReg = 0
MemWrite IorD = 1
MemRead IorD = 1
ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
RegDst = 0 RegWrite
MemtoReg =1
ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00
MemRead ALUSrcA = 0
IorD = 0 IRWrite
ALUSrcB = 01 ALUOp = 00
PCWrite PCSource = 00
Instruction fetchInstruction decode/
register fetch
Jump completion
Branch completionExecution
Memory address computation
Memory access
Memory access R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ
')
(Op =
'J')
(Op = 'S
W')
(Op
= 'L
W')
4
01
9862
753
Start
ALUSrcA = 1ALUSrcB = 10
ALUOp = 00 (somma)PCSource=00
PCWrite
Op = “jr”
0: fetch1: decode e carica
A = r1, B = rt10: ALU: A + signext(offs)
PC ¬ALU
10
Specifica del controllo con il diagramma a stati:
![Page 25: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/25.jpg)
25
NB: in pratica abbiamo modificato l’ultimo stato dell’istruzione jin modo da selezionare l’uscita della ALU (che calcola l’indirizzo) al posto dell’usuale indirizzo derivante dall’offset a 26 bit.Notare che in questo stato il cammino creato è A-IR ®ALU ® PC:
come nel caso di beq, non poniamo in serie più di un elemento “critico”
Tempo di esecuzione: 3 * 2 ns = 6 ns [come j e beq!]
Notare che è possibile implementare l’istruzione più generale (stesso formato Tipo-I)j offset(rs) // (il campo offset può essere diverso da zero)
dove però è più ragionevole supporre che offset sia espresso in parole di memoria!A questo scopo, basta forzare ALUSrcB=3 per sommare a rs offset esteso e scalato.
![Page 26: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/26.jpg)
26
Esercizio 4: dall’appello CALC-B del 13 luglio 2005
Si considerino, mostrati nelle figure riportate di seguito, il datapath ed il diagrammaa stati finiti che specifica l’unità di controllo secondo la tecnica a multiciclorelativamente alle istruzioni MIPS lw, sw, beq, j ed alle istruzioni di tipo-R.Si vuole implementare una nuova istruzione del tipo:
addmem r1, offset(r2) // r1¬r1 + M[r2+offset]
che somma al registro r1 il contenuto della locazione di memoria indirizzata dar2+offset, dove offset è un numero a 16 bit con segno specificato nell’istruzionemacchina (cfr. le istruzioni lw e sw).
Ricordando i tre formati di codifica delle istruzioni (riportati di seguito) si chiede di:- riportare il formato della nuova istruzione macchina- riportare, nella corrispondente figura, le modifiche necessarie al datapath- estendere il diagramma degli stati per implementare la nuova istruzione
![Page 27: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/27.jpg)
27
Formato
devo rappresentare:- il registro r1- il registro r2- offset (a 16 bit) che va sommato a r2
Sicuramente verrà usato il Tipo-I
Op r2 r1 offset0151620212531 26
+
(cfr. anche lw)
addmem r1, offset(r2)
![Page 28: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/28.jpg)
28
Modifica al DataPath addmem r1, offset(r2) : è una sorta di “lw + add”
![Page 29: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/29.jpg)
29
Modifica al DataPath
2
Aggiungiamo ingresso al MUX, con label 2 per non modificare la specificadelle precedenti istruzioni…
addmem r1, offset(r2) : è una sorta di “lw + add”
![Page 30: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/30.jpg)
30
Possiamo allora effettuare le stesse operazioni della lw ed aggiungere in coda due stati
PCWrite PCSource = 10
ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond
PCSource = 01
ALUSrcA =1 ALUSrcB = 00 ALUOp= 10
RegDst = 1 RegWrite
MemtoReg = 0
MemWrite IorD = 1
MemRead IorD = 1
ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
RegDst = 0 RegWrite
MemtoReg =1
ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00
MemRead ALUSrcA = 0
IorD = 0 IRWrite
ALUSrcB = 01 ALUOp = 00
PCWrite PCSource = 00
Instruction fetchInstruction decode/
register fetch
Jump completion
Branch completionExecution
Memory address computation
Memory access
Memory access R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ
')
(Op =
'J')
(Op = 'S
W')
(Op
= 'L
W')
4
01
9862
753
Start
(Op = ‘addmem’)
or (Op = ‘addmem’)
(Op
= ‘a
ddm
em’)
or
(Op = ‘lw’)
ALUSrcA = 2ALUSrcB = 00
ALUOp = 00 (somma)
ALUOut ¬MDR+r1
MemtoReg=0RegDst=0RegWrite
r1 ¬ALUOut
MDR ¬M[ALUOut]
ALUOut ¬r2 + offset
![Page 31: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/31.jpg)
31
Esercizio 5: dall’appello CALC-A dell’8 aprile 2009
Si considerino, mostrati nelle figure alla pagina seguente, il datapath ed ildiagramma a stati finiti che specifica l’unità di controllo secondo la tecnica multiciclo relativamente alle istruzioni MIPS lw, sw, beq, j ed alle istruzioni Tipo-R.
Si vuole implementare la nuova istruzione
EXCHANGE r1, r2, offset // M[r1+offset] ↔ M[r2+offset]
che scambia la parola di memoria di indirizzo r1+offset con la parola di memoria di indirizzo r2+offset.
Ricordando i tre formati di codifica delle istruzioni (riportati di seguito) si chiede di:- riportare il formato della nuova istruzione macchina (specificando anche i campi
destinati rispettivamente a r1 e r2);- riportare, nella corrispondente figura, le modifiche necessarie al datapath;- estendere il diagramma degli stati per implementare la nuova istruzione.
[6]
![Page 32: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/32.jpg)
32
PRIMA ANALISI: PASSI FONDAMENTALI EXCHANGE r1, r2, offset
- Fetch, Decode e lettura registri
- Calcolo indirizzo rs+offset
- Lettura M[rs+offset] e scrittura in un registro temporaneo
- Calcolo indirizzo rt+offset
- Lettura M[rt+offset] e scrittura in un registro temporaneo
- Scrittura in M[rt+offset] del valore del registro temporaneo contenente M[rs+offset]
- Scrittura in M[rs+offset] del valore del registro temporaneo contenente M[rt+offset]
FORMATO
Bisogna rappresentare due registri e un offset
Op rs rt offset0151620212531 26
r1 r2
![Page 33: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/33.jpg)
33
IDEA DI BASE
- Condividere gli stati della lw fino al calcolo di rs+offset
- Leggere il valore di M[rs+offset] e memorizzarlo in un registro temporaneo
MDR2 (oltre che MDR)
controllato con un segnale di scrittura in modo da non perderne il valore
- Calcolare l’indirizzo rt+ offset, leggere in MDR M[rt+offset]
e scriverlo direttamente in M[rs+offset] per non perdere il valore
- Completare l’istruzione scrivendo MDR2 in M[rt+offset].
![Page 34: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/34.jpg)
34
Modifica al DataPath EXCHANGE r1, r2, offset
![Page 35: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/35.jpg)
35MDR2
WRMDR2
0
12
2
WriteData
Modifica al DataPath EXCHANGE r1, r2, offset
![Page 36: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/36.jpg)
36
PCWrite PCSource = 10
ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond
PCSource = 01
ALUSrcA =1 ALUSrcB = 00 ALUOp= 10
RegDst = 1 RegWrite
MemtoReg = 0
MemWrite IorD = 1
MemRead IorD = 1
ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
RegDst = 0 RegWrite
MemtoReg =1
ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00
MemRead ALUSrcA = 0
IorD = 0 IRWrite
ALUSrcB = 01 ALUOp = 00
PCWrite PCSource = 00
Instruction fetchInstruction decode/
register fetch
Jump completion
Branch completionExecution
Memory address computation
Memory access
Memory access R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ
')
(Op =
'J')
(Op = 'S
W')
(Op
= 'L
W')
4
01
9862
753
Start
WRMDR2
IorD=1MemRead
ALUSrcA=1ALUSrcB=2ALUOp=00
ALUSrcA=2ALUSrcB=2ALUOp=00
IorD=1writeData=1MemWrite
ALUSrcA=2ALUSrcB=2ALUOp=00
MDR←M[ALUOut]
MDR=MDR2←M[rs+offset]
M[ALUOut]←MDR
IorD=1writeData=2MemWrite
M[ALUOut]←MDR2
(Op = ‘exchange’)
or (Op = ‘exchange’)
or…
ALUOut←rt+offset
ALUOut←rs+offset
ALUOut←rt+offset
![Page 37: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/37.jpg)
37
Esercizio 6: dall’appello CALC-A del 25 marzo 2009 [8 punti]
Si considerino, mostrati nelle figure alla pagina seguente, il datapath ed ildiagramma a stati finiti che specifica l’unità di controllo secondo la tecnica multiciclo relativamente alle istruzioni MIPS lw, sw, beq, j ed alle istruzioni Tipo-R.
Si vuole implementare la nuova istruzione
MOVA r1, r2
che copia il vettore (array) di parole di memoria di indirizzo r1 nell’indirizzo r2. Si suppone che la fine del vettore sia indicata da un elemento di valore nullo (che va anch’esso copiato).
Ricordando i tre formati di codifica delle istruzioni (riportati di seguito) si chiede di:- riportare il formato della nuova istruzione macchina (specificando anche i campi
destinati rispettivamente a r1 e r2);- riportare, nella corrispondente figura, le modifiche necessarie al datapath;- estendere il diagramma degli stati per implementare la nuova istruzione.
![Page 38: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/38.jpg)
38
IDEA DI BASE
- Decode: si caricano r1 e r2 rispettivamente in A e B
- A e B contengono gli indici che andranno di volta in volta incrementati di 4.
- Creazione di un “ciclo” in cui:
> MDR=M[A]
> M[B]=MDR
> A=A+4
> B=B+4
FORMATO
Bisogna rappresentare due registri: Tipo-I o Tipo-R
Op rs rt …0151620212531 26
r1 r2
MDR¹0MDR=0
FINE
![Page 39: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/39.jpg)
39
Modifica al DataPath MOVA r1, r2
![Page 40: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/40.jpg)
40
SRASRB
WRA
WRB
0
0
1
123
01
fine all’unità di controllo
2
WriteData
Modifica al DataPath MOVA r1, r2
![Page 41: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/41.jpg)
41
PCWrite PCSource = 10
ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond
PCSource = 01
ALUSrcA =1 ALUSrcB = 00 ALUOp= 10
RegDst = 1 RegWrite
MemtoReg = 0
MemWrite IorD = 1
MemRead IorD = 1
ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
RegDst = 0 RegWrite
MemtoReg =1
ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00
MemRead ALUSrcA = 0
IorD = 0 IRWrite
ALUSrcB = 01 ALUOp = 00
PCWrite PCSource = 00
Instruction fetchInstruction decode/
register fetch
Jump completion
Branch completionExecution
Memory address computation
Memory access
Memory access R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ
')
(Op =
'J')
(Op = 'S
W')
(Op
= 'L
W')
4
01
9862
753
Start
(Op = ‘mova’)
IorD=2MemRead
ALUSrcA=1ALUSrcB=1ALUOp=00SRA=1WRA
SRA=0WrA
SRB=0WrB
IorD=3WriteData=1MemWrite
ALUSrcA=2ALUSrcB=1ALUOp=00SRB=1WRB
fine=0fine=1
WriteData=0
MDR←M[A]
A←A+4
M[B]←MDR
B←B+4
![Page 42: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/42.jpg)
42
NB: per altri esempi: cfr i testi d’esame di Calcolatori Elettronici A(oltre a quelli di Calcolatori!)
![Page 43: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/43.jpg)
43
ESERCIZI INDIVIDUALI
![Page 44: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/44.jpg)
44
Esercizio POST Esercizio 4 (dallo stesso appello)Si consideri l’esercizio risolto al punto precedente; si assuma un carico di lavoro che preveda la seguente distribuzione delle istruzioni:
lw: 20 %sw: 20 %Tipo-R: 30 %beq: 10 %j: 10 %addmem: 10 %
Si supponga che le operazioni atomiche delle unità funzionali principali richiedano:
Unità di memoria (lettura e scrittura): 2 nsRegister File (lettura e scrittura): 1 nsOperazione ALU: 2 ns
Si confrontino le prestazioni (in termini di rapporto tra tempi di esecuzione) di un’ipotetica implementazione a singolo ciclo rispetto all’implementazione multiciclo individuata al punto precedente.
![Page 45: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/45.jpg)
45
Singolo ciclo
Tclock è valutato sull’istruzione più lunga; è facile rendersi conto chequesta è addmem, il cui tempo di esecuzione è maggiore della lw cheera già l’istruzione più lunga…
In particolare:
Fetch: 2 nsPrelievo rs: 1 nsALU (rs+offset): 2 nsAccesso Mem: 2 nsALU(rt+M[…]): 2 nsScrittura rt: 1 ns
10 ns
Tesecuzione = #istruzioni * Tclock = #istruzioni * 10
![Page 46: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/46.jpg)
46
Multiciclo
Tclock è valutato sull’operazione più lunga eseguita in un ciclo di clock; le operazioni più lunghe (accesso a memoria e uso ALU) durano 2 ns
Tesecuzione = #istruzioni * CPI * Tclock
Tclock = 2 ns
CPI va valutato sul carico di lavoro, tenendo presente che addmem ha 6 cicli:
CPI = 0,2 * 5 + 0,2 * 4 + 0,3 * 4 + 0,1 * 3 + 0,1 * 3 + 0,1 * 6 = 4,2
QUINDI SI OTTIENE:
Tesecuzione = #istruzioni * 4,2 * 2 = #istruzioni * 8,4
![Page 47: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/47.jpg)
47
Confronto Prestazioni Singolo Ciclo vs. Multiciclo
Tsingolo = #istruzioni * 10
Tmulti = #istruzioni * 8,4
Evidentemente la realizzazione multiciclo ha prestazioni migliori.In particolare risulta:
Tsingolo #istruzioni * 10 Tmulti #istruzioni * 8,4 = = 1,19
![Page 48: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/48.jpg)
48
Si supponga che le operazioni atomiche che coinvolgono le unità funzionaliprincipali (di cui si tiene conto per il calcolo dei tempi) richiedano:
Unità di memoria (lettura e scrittura): 2 nsRegister File (lettura e scrittura): 1 nsOperazione-ALU: 2 ns
• Determinare le condizioni in cui un’implementazione a singolo ciclo risultapiù conveniente, in termini di prestazioni, rispetto a quella multiciclo.
• Rispondere alla stessa domanda supponendo che il carico di lavoro prevedaper i salti (condizionati e incondizionati) una percentuale complessiva del 20%(al posto del 10%). Come si può giustificare intuitivamente il risultato?
Esercizio dall’appello CALC-B del 20 settembre 2006 [NON FACILE]
Si consideri la nota implementazione dell’unità di controllo secondo la tecnicamulticiclo relativamente alle istruzioni MIPS lw, sw, beq, j e TIPO-R [nel compito,il datapath è riportato in una figura].
Si ipotizzi che il carico di lavoro preveda in ogni caso, per le istruzioni beq e j,una percentuale complessiva del 10%:
fbeq + fj = 10%
![Page 49: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/49.jpg)
49
Devo confrontare prestazioni a singolo ciclo vs. multi-ciclo:- esprimo i tempi di esecuzione nei due casi e li confronto - mi aspetto che le prestazioni multi-ciclo siano migliori, a meno che l’istruzione
più onerosa (la lw) non sia �troppo frequente� rispetto al carico di lavoro (vedi le considerazioni alla fine del precedente esercizio).
Prestazioni nel caso di singolo ciclo
CPI = 1
Tclock - dovuto all’istruzione lw: 2 ns (fetch) + 1 ns (Reg. file) + 2 ns (ALU)+ 2 ns (Memoria dati) + 1 ns (Reg. file)
= 8 ns
TSC = I * 8 ns (I è il numero di istruzioni)
Prestazioni nel caso multiciclo
Tclock = 2 ns (dovuto all’operazione più lunga: accesso a memoria o ALU)
CPI = flw*5 + fsw*4 + fTIPO-R*4 + fbeq*3 + fj*3
TMC = I * [flw*10 + fsw*8 + fTIPO-R*8 + fbeq*6 + fj*6] ns
![Page 50: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/50.jpg)
50
Caso fbeq + fj = 10%
TSC < TMC se e solo se
I * 8 < I * [flw*10 + fsw*8 + fTIPO-R*8 + fbeq*6 + fj*6]
… cerco di �raccogliere� per esprimere fbeq + fj = 0.1
8 < flw*10 + fsw*8 + fTIPO-R*8 + (fbeq + fj)*6
8 < flw*10 + fsw*8 + fTIPO-R*8 + 0.1*6
7.4 < flw*10 + fsw*8 + fTIPO-R*8
E adesso?
Devo cercare di ottenere una sola incognita, che potrebbe essere flw …
![Page 51: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/51.jpg)
51
7.4 < flw*10 + fsw*8 + fTIPO-R*8
So che• flw + fsw + fTIPO-R + fj + fbeq = 1
• fbeq + fj = 0.1flw + fsw + fTIPO-R = 0.9
7.4 < flw*10 + (fsw + fTIPO-R)*8
0.9 - flw
7.4 < flw*10 + (0.9 - flw)*8
flw > 0.2/2 = 0.1
Prestazioni a singolo ciclo prevalgono quando lwha frequenza maggiore del 10%(NB: corrisponde al �tipo di risultato� che ci aspettiamo)
![Page 52: Calcolatori Elettronici - calcunibs.altervista.orgcalcunibs.altervista.org/Calcolatori-Elettronici/Lucidi_Lezioni... · Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano](https://reader030.vdocumenti.com/reader030/viewer/2022021614/5c65ab8d09d3f2a86e8cf7b7/html5/thumbnails/52.jpg)
52
Caso fbeq + fj = 20%
Intuitivamente: cresce la frequenza delle istruzioni con tempi di esecuzioneinferiore Þ ci aspettiamo che la tecnica multiciclo �prevalga ancora di più�,ovvero che la percentuale di flw per cui singolo ciclo è conveniente cresca.Rifacendo i calcoli con il nuovo vincolo risulta:
8 < flw*10 + fsw*8 + fTIPO-R*8 + 0.2*6
6.8 < flw*10 + fsw*8 + fTIPO-R*8
con flw + fsw + fTIPO-R = 0.8
6.8 < flw*10 + (0.8 – flw)*8
0.4 < flw*2
flw > 0.4/2 = 0.2
In questo caso, prestazioni a singolo ciclo prevalgono quando lw ha frequenza maggiore del 20%