Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DEGLI ELABORATORI
COMPUTER SYSTEM
DAL DESIGN RTL A QUELLO ALU
Ununit aritmetico logica pu essere vista come un blocco funzionale
programmabile ( in grado si svolgere funzioni diverse specificate da un parola
di controllo ) massimamente condiviso, in quanto utilizzato per svolgere tutte le
operazioni che compongono il data path.
La condivisione della ALU richiede il supporto di logica di instradamento e di
controllo. Del resto, lesecuzione di una sequenza di operazioni da parte della
ALU richiede la specifica delle corrispondenti parole di controllo ( istruzioni ).
MACCHINA DI VON NEUMANN
La macchina di Von Neumann una macchina in grado di interpretare ed
eseguire istruzioni appartenenti ad un insieme finito ( instruction set ) funzionalmente completo. Qualsiasi elaborazione
pu essere specificata come sequenza di istruzioni appartenenti allinstruction set, che la macchina di Von Neumann
pu eseguire alternando indefinitamente due fasi:
Fetch ( carica di una nuova istruzione )
Execute ( esecuzione )
SVANTAGGI
La limitata larghezza di banda della memoria ha un impatto negativo sulla velocit di esecuzione
dellapplicazione, questo fenomeno noto come Von Neumann bottleneck.
ORGANIZZAZIONE GENERALE
Per collegare Cpu, memoria, input e output vengono utilizzati 3 bus dove viaggiano le informazioni del:
Bus dati: utilizzato per trasferire dati ( es. fra memoria e Cpu, fra Cpu e interfacce di I/O ).
Bus indirizzi: che identifica la posizione delle celle di memoria in cui la Cpu va a scrivere o leggere.
Bus di controllo: in cui transitano i segnali di controllo che consentono di selezione le unit coinvolte in un
trasferimento dati ( sorgente e destinazione ), di definire la direzione dello scambio ( scrittura o lettura ).
MICROARCHITETTURA CPU
IR : Usato per contenere listruzione in corso di esecuzione
MAR: contiene lindirizzo della locazione di memoria da leggere o scrivere
La dimensione di MAR determina lampiezza dello spazio di memoria fisica.
Dalla fine degli anni 80 vengono prodotti microprocessori con bus indirizzi a 32 bit.
MDR: Registro attraverso il quale viene scambiata linformazione tra la memoria e la Cpu
Tradizionalmente la dimensione di MDR d la misucra del grado di parallelismo della macchina ( 8, 16, 32, 64
bit ).
RO,R1Rn : Registri di uso generale
CICLO FETCH ESECUZIONE
Esecuzione istruzioni:
1) Fetch operandi: preleva operandi dai registri
e li invia alla Alu.
2) Esecuzione: viene eseguita loperazione e
memorizzata in un registro.
3) Write back: il risultato viene scritto nel
registro apposito.
COMUNICAZIONI INTERNE
1) Carichiamo R1 nel registro temporaneo.
2) Portiamo R2 agli ingressi della Alu, facciamo la
somma e i registri in uscita compiono il
risultato.
3) Il valore del registro temporaneo viene
portato in R3.
2. (G2 $
*. 0 G* " $
$
6. G6$
("
("
N
controlli.
0 &
%
$
)
(
"%
7
2
$
DESIGN
CONTROL UNIT ( microprogrammazione
("
(
#
$
)
Per implementare la logica spesso sufficiente una
0 &
memoria quindi il tempo di esecuzione dipende dal tempo
%
di lettura
della memoria.
Questo
metodo viene utilizzato solo in certi contesti dato
$
che occupa molto in memoria, e quindi pi tempo in
)
(
lettura.
"%
7
Criteri di classificazione
Istruction set:
Dimensione ( risc o cisc )
Formato ( come sono codificati )
Modelli esecuzione:
Stack, mem - mem, mem - reg, reg reg
Metodi indirizzamento:
Ordinamento
Allineamento
Computazione indirizzi
Instruction set: RISC e CISC
Risc:
Cisc:
Il codice operativo ( opcode ) ha lunghezza costante per consentire fasi di durata costante
Le istruzioni possono operare solo su registri e ne sono presenti solamente due; in questo modo vengono
semplificate le istruzioni, cio una volta caricata listruzione ho tutto quello che mi serve. Inoltre si limitano
anche gli accessi in memoria.
Il numero di registri elevato sempre per semplificare le istruzioni.
Istruzioni diverse hanno diverse dimensioni
Il codice operativo variabile di posizione e dimensioni.
Ci sono differenti formati
Modello esecuzione REG - REG
Tutti gli operandi e i risultati sono immagazzinati nei registri.
Esempio A B + C
Indirizzi
Indirizzamento
Prestazioni
Durante la codifica della prima istruzione faccio il fetch della
seconda ( Max 5 istruzioni ).
Reference Architecture
Arithmetic Operations
Memory Accesses ( LD )
Memory Accesses ( ST )
Unconditional Branch ( JMP )
CPU
Conflitti e stalli della pipeline
Ipotesi: istruzioni e dati nella stessa memoria, con architettura Von Neumann.
Il conflitto di risorse avviene quando la
memoria risulta impiegata in due istruzioni
contemporaneamente. Se abbiamo quindi due
accessi alla memoria introduciamo uno
STALLO sulla pipeline, bloccandone il
funzionamento per un ciclo di clock. In
praticata un Load richiede 2 cicli di clock. Se
L/W = 40% delle istruzioni in memoria di un
programma, risulta
Avg CPI = 1 + 0,4*1= 1,4.
Soluzione al problema: architettura Harvard, memorie e bus indipendenti per i dati (DM) e istruzioni (IM).
Se duplico le memorie duplico anche i
canali di connessione.
+; $
Computer Architecture
Data hazards (problem)
di dati
Conflitti
Define
and use / Read after write
Ipotesi: le istruzioni utilizzano il risultato della prima istruzione.
Computer Architecture
SUB r4 r5 r1
IM --- --- --- reg ALU DM reg
IF/ID
ID/EX
AND r6 (1):
r1 Forward
r7
reg
ALU
DM SUB
reg).
dagli output agli inputEX/MA
dellaIM
( vediMA/WB
istruzione
Soluzione
Data
forwarding
from MA/WB
toALU
ALU
OR r8 r1 CU
r9
IM reg ALU DM reg
ZOR
r1r1r11
IM reg
reg
Instr. r10
WB ALU DM
ADD
r2 r3 IM reg ALU DM reg
WB
ME
EX
Mem.
IR
SUB r4 r5 r1
WB
ME
IM
ALU
out
reg
DM
Alu ALU
PC
Register
IF/ID
file
alessandro
bogliolo
PC1
CU
WB
ALU
out
reg
Data
Mem.
MEM
Dat
ID/EX
WB
IMM
ME
logic
EX/MA
MA/WB
WB
WB
isti information
science and technology
institute
4/16
ME
EX
Instr.
Mem.
RW
IR
Alu
RW
ALU
out
Data
Mem. institute
isti information science and technology
alessandro bogliolo
B
PC
5/16
MEM
Dat
Computer
Architecture
Register
file
PC1
WB
logic
RW
ALU
out
IMM
RW
RW
: Forward da DM
agli EX/MA
input della ALU
( vedi istruzione AND ).
Soluzione
Data (2)
forwarding
from
to ALU
alessandro bogliolo
Computer Architecture
ADD
r1hazards
r2 r3
05.03
Pipeline
SUB r4 r5 r1
AND r6 r1 r7
5/16
IF/ID
ID/EX
EX/MA
MA/WB
CU
Data forwarding
from EX/MA to ALU
WB
ME
EX
Instr.
Mem.
PC
ADD r1 r2 r3
SUB r4 r5 r1
AND r6 r1 r7
IR
WB
ALU
IM reg ALU DMALU
reg
out
out
Alu
Data
IM reg ALU DM reg
IM reg
ALU Mem.
DM regMEM
B
B
WB
logic
Dat
IF/ID
Register
file
PC1
ID/EX
EX/MA
IMM
WB
CU
Instr.
Mem.
WB
ME
IR
Alu
RW
ALU
out
Data
Mem.
ALU
out
PC
WB
RW
alessandro bogliolo
MA/WB
WB
ME
ME
EX
RW
WB
logic
6/16
MEM
Dat
RW
RW
Register
file
PC1
IMM
RW
alessandro bogliolo
6/16
Double-rate registers
ADD
SUB
AND
OR
r1 r2 r3Architecture
IM reg ALU DM
Computer
05.03
Pipeline
r4 r5
r1hazards
r6 r1 r7
r8 r1 r9
IF/ID
ID/EX
EX/MA
MA/WB
WB
ME
EX
WB
ME
WB
ALU
out
ALU
out
CU
Soluzione
Instr.
Mem.
reg
reg ALU DM reg
IM reg ALU DM reg
IM reg ALU DM reg
IM
(3) : Scrittura
e lettura su registri eseguite nella prima e nella seconda met del ciclo ( vedi istruzione OR ).
Double-rate
registers
IR
r1
r4
r6
r8
ADD
SUB
AND
Register
OR
PC
file
PC1
IF/ID
CU
Instr.
Mem.
r2
r5
B
r1
r1
r3
r1
r7
r9
IMAlu
reg
IM
IMM
ID/EX
RW
WB
ME
EX
IR
WB
logic
MA/WB
Computer
Architecture
EX/MA
WB
ME
RW
ALU
Computer
Architecture
PC
05.03 Pipeline hazards
05.03WBPipeline hazards
RW
WB
logic
out
Aluand technology
isti information science
institute
Data
alessandro bogliolo
ALU DMDatareg
Mem.
reg ALU
DM reg
MEM
B
Dat
IM
reg ALU DM
reg
IM reg ALU DM reg
7/16
Mem.
B
Register
file
MEM
applied computer
science
Dat
urbino worldwide
campus
Assumptions:
IMM
RW
RW
Assumptions:
alessandro
bogliolo
Conflitti
di controllo
di flusso
RW
7/16
CBranch
IF ID EX MEM WB
+1
IF (abort)
Target
Assumptions:--- --- IF
target+1
Computer Architecture
ID
IF
EX
ID
MEM WB
EX MEM
Assumptions:
Assumptions:
alessandro bogliolo
Soluzione (2):
Salto riconosciuto durante ID.
Condizione verificata durante ID.
PC aggiornato durante ID.
8/16
EX isti information
MEM WB
science and technology institute
9/16
(abort)
applied computer science
urbino worldwide campus
IF ID EX MEM WB
IF ID EX MEM WB
Control-flow
hazards (solution 2)
UCBranch IF ID EX MEM WB
+1
IF
(abort)
IF ID EX
target+1
Branch recognized duringIFID ID
Assumptions:
Target
MEM WB
EX MEM
WB
CBranch
+1
Target
target+1
IF
UCBranch
+1
Target
target+1
IF
ID
IF
ID
IF
EX MEM WB
(abort)
IF ID EX
IF ID
MEM WB
EX MEM
WB
EX MEM WB
(abort)
IF ID EX
IF ID
MEM WB
EX MEM
WB
10/
9
alessandro bogliolo
10/16
EX MEM WB
(abort)
ID EX
WB
notIFtaken,
the MEM
fetched
instruction
IF ID EX MEM WB
is not
UTBranch IF ID
Computer Architecture
+1
IF
05.03 Pipeline hazards
+2
EX
ID
IF
MEM WB
EX MEM WB
ID EX MEM
11/16
applied computer science
urbino worldwide campus
WB
IF
ID
EX MEM WB
(abort)
Target
IF ID a EX
MEMisWB
The instruction that follows
branch
always
target+1
IF ID EX MEM WB
Delayed
branch:IF
+1
UTBranch IF ID EX
+1(delay)
IF ID
Computer
Architecture IF
+2
alessandro bogliolo
MEM
WB science and technology institute
isti information
EX MEM WB
ID EX MEM WB
applied computer
urbino worldwide
ID
IF
Delayed branch:
EX
ID
IF
MEM
EX
ID
IF
WB
MEM WB
EX MEM WB
ID EX MEM
WB
TBranch
IF ID EX MEM WB
+1(delay)
IF ID EX MEM WB
Targetoperazione usa il registro
IF IDF10EX
MEM
In questo esempio si ha una dipendenza funzionale perch lultima
prima
che WB
listruzione
target+1
IF ID EX MEM WB
precedente lo calcoli.
Soluzione:
Utilizzando due addizionatori si possono eseguire contemporaneamente due addizioni.
Si utilizza il pipelining allinterno dellunit funzionale.
alessandro bogliolo
Aggiungo unit di elaborazione alla cpu, che lavora in pipeline, rimane per il conflitto di dati.
Stima delle prestazioni orientata allapplicazione.
10
12/16
Formule
CPUT: ( AvgCPI * IC + SC ) * CLK
PERFORMANCE OPTIMIZATION
Processori Multiple- Issue ( microprocessori con CPI < 1)
Superscalar processors
3/13
(example)
N=3
Instr6 depends
on instr4 or instr5
Instr10 depends
on instr9
instr1
instr2
instr3
instr4
instr5
instr6
instr7
instr8
instr9
instr10
instr11
instr12
IF
IF
IF
ID
ID
ID
IF
IF
EX
EX
EX
ID
ID
IF
IF
IF
MA
MA
MA
EX
EX
ID
ID
ID
IF
WB
WB
WB
MA
MA
EX
EX
EX
ID
IF
IF
IF
WB
WB
MA
MA
MA
EX
ID
ID
ID
WB
WB
WB
MA
EX
EX
EX
WB
MA
MA
MA
WB
WB
WB
alessandro bogliolo
11
4/13
Superscalare DlX
Versione superscalare del DLX cono supporto per lesecuzione parallela di due istruzioni ( N = 2):
Istruzioni Floating Point ( FP ).
Istruzioni intere, load, store, logiche ( Int ).
Poich FP ed Int non condividono registri, le dipendenze sono limitate al caso di istruzioni di Load. In tutti gli altri casi
la decisione sullesecuzione parallela si pu basare solo sullinstruction code.
Vliw processors
Questo tipo di processori legge il codice in parallelo, e ogni istruzione dice al processore cosa deve fare ciascuna delle
pipeline. Quindi il codice che il processore legge quella della pipeline concatenate.
Si possono avere fino a 30 pipeline in parallelo e ogni istruzione quindi pu essere descritta anche da 1000 bit.
Questo modello detto STATICO perch lunit di controllo non controllo la logica delle istruzioni, non correggendo
gli eventuali errori del programmatore.
Riassumendo:
N ( da 5 a 30 ) unit di elaborazioni indipendenti, non necessariamente equivalenti.
Codice parallelo.
Very Long Instruction Words ( VLIW )
o Istruzioni composte.
o Da 100 a 1000 bit.
La lunghezza delle istruzioni dipenda da:
o Numero di unit di elaborazione.
o Lunghezza della word di controllo di ogni unit.
12
Computer Architecture
The second
instruction
r1 r2 r3
(RAW)
Read after
writereads a register add
(RAW) Read after write
RAW
load
sub
r4r1
r40(r2)
r1
written
by
the
first
one
The second instruction
reads a register
add
r1
r3
Dipendenze
funzionali
The
(RAW)
Read
after write
sub
r4 r4 r1 bnz r1r2label
written by the first one
second
instruction
reads
a
register
sub r4 r4 r1
RAW
(
Read
After
Write
)
:
La
seconda
istruzione
legge
un
registro
scritto
dal
(WAR) Write after read
load r1 0(r2)
(WAR)
Write
read reads a register
The
instruction
written
bysecond
theafter
first
one
primo. reads the content of a
The first instruction
add
r10 r5 r6bnz
r1
r1 label
0(r2)
written
by the firstreads
one the content of a load
register before it is overwritten by the
add r3 r2 r1
The
first
instruction
bnz
r1
label
RAW
second one
(WAR)
Write after
read
Write
WAR
( Write After Read ) : La
prima istruzione
legge
il
contenuto
di
registror10 load r1 0(r4)
register
before
is overwritten
byunthe
write
0(r7)
(WAR)
Write itafter
read
(WAW)
after write
r3 r2 r1
The
first instruction reads the content of a add
primawrite
di on
essere
sovrascritta dalla
seconda.
Both instructions
the same
second
add r3r1r20(r4)
r1
The one
first instruction reads the content of a load
register
register before it is overwritten by the
load r1 0(r4)
register
before
it write
is overwritten
the
WAW ( Write After Write
) : Entrambe
le
istruzioni
scrivono
sullo stessoby
registro.
(WAW)
Write
after
second
one
add r1 r2 r3
second
one
Both instructions write on the same
load r1 0(r4)
(WAW)
Write
after
write
register
(WAW)
Write
after
write
add
r1 r2
r2 r3
r3
add r1
Both
instructions
write
the
same
Both
instructions
write
on
the
same
r1 0(r4)
0(r4)
load
r1
Ogni volta che presente una dipendenza
impossibile
riordinare
il on
codice.
Le
dipendenze vereload
non possono
essere
eliminate, invece quelle false s, infatti, register
basta register
cambiare il nome ai registri su cui lavorano le istruzioni per risolvere il
problema.
alessandro bogliolo
and technology institute (4)
3/17
Datascience
dependencies
Data
dependencies (3) isti information
Data dependencies (2)
add r1 r2 r3
sub r4 r4 r1
load r1 0(r2)
bnz r1 label
add r3 r2 r1
load r1 0(r4)
add r1 r2 r3
load r1 0(r4)
alessandro bogliolo
alessandro bogliolo
Computer Architecture
Computer Architecture
Computer Architecture
5/17
3/17
applied computer
science
06.04 Dynamic
urbino worldwide campus
Dynamic optimization
optimization
Nello scheduling dinamico una buona parte del lavoro di scheduling renaming ( cambio nome ai registri ).
alessandro bogliolo
alessandro bogliolo
add
r1 r2 r3
sub
r4 r4 r1
add
r1 r5 r6
3/17
add
r1 r2 r3
sub
r4 r4 r1
add
r10 r5 r6
add
r1 r2 r3
add
r10 r5 r6
sub
r4 r4 r1
write
0(r7) r10
3/17
RAW
RAW
WAW
RAW
WAR
write
0(r7) r1
write
0(r7) r10
Computer Architecture
RAW
RAW
RAW
alessandro
bogliolo
4/17
Computer Architecture
5/17
alessandro bogliolo
Computer Architecture
Data
dependencies (2)
Data dependencies (2)
Data dependencies (2)
Creare una coda di istruzione caricate, dove la cpu pu guardare e prelevare, per poi inserire listruzione in una coda
specifica ( Reservation Station ). La reservation station una coda di istruzioni uguali e che utilizzano le stesse risorse.
Computer Architecture
Supporti allesecuzione: Scheduling Dinamico
add
r1
Data dependencies
(4)
add
r1 r2
r2
Fasi di esecuzione
r3
r3
add
sub
r1 r2 r3
r4 r4 r1
sub
add
add
r4 r4 r1
r1 r5
r5 r6
r6
r1
write
0(r7) r10
add
r1 r5 r6
ISSUE: Prelevamente di unistruzione dalla coda
alla reservation
station. r1
write
0(r7)
write
0(r7)
r1
EXCUTE: Solo se le risorse e gli operandi sono disponibili.
alessandro bogliolo
RAW
RAW
6/17
RAW
WRITE RESULT: diverso dal write back, il write result scrive il risultato nel reorder buffer che poi saranno
scritti nei registri.
alessandro bogliolo
isti information science and technology institute
4/17
COMMIT: scrittura dei risultati alessandro
nei register
file in ordine.
bogliolo
isti information science and technology institute
4/17
write
0(r7) r1
Speculazione
alessandro bogliolo
4/17
13
Per fare delle previsioni pi accurate ci si basa sulle statistiche delle condizioni dei salti ( vero o falso ), verificando la
condizione del salto precedente. La prima volta che si incontra una salto la previsione casuale, nella seconda volta ci
si basa sulla condizione precedente ( primo: vero, secondo: vero).
Nel passaggio da un ciclo ad un altro lalgoritmo per fallisce due volte di seguito.
Esistono due strategie di speculazione:
Branch Prediction.
Target Prediction.
Branch Prediction buffer
Tabella con 1 predittore per tutti i rami e un predittore per ogni ramo, infatti non esiste un solo predittore ma n.
Composta da :
N-entry.
Viene indicizzato da i 2 bit meno significati dellistruzione di salto.
Tag non utilizzati.
Branch Target buffer
Viene previsto se fare o no il salto inoltre si cerca di prevedere la destinazione ( il Branch Prediction prevede solo se
fare o no il salto ) con il target che contiene il PC dellistruzione da eseguire.
Esiste un associazione univoca tra lindirizzo dellistruzione di salto e il target ( destinazione ).
Funziona come una cache completamente associativa:
Una cache hit fornisce la destinazione (prevista)l de PC.
Una cache miss significa PC = PC +1.
Pi istruzioni di predizione NON possono condividere lo stesso target.
MEMORIE
Classificazione: Volatilit
Memorie volatili: perdono il contenuto quando si spegne lalimentazione.
Memorie non-volatili: mantengono il loro contenuto anche in assenza di alimentazione.
Classificazione: Read/Write balance
Non volatili:
o ROM (Read Only Memory) : memoria da cui si possono leggere informazioni registrate dal
costruttore, ma nella quale non possibile scrivere nulla. Nella ROM troviamo quel tipo di software
che non deve essere mai cambiato, come il BIOS del pc.
o PROM: ( Programmable Read Only Memory ): vengono prodotte poi programmate ( una sola volta).
o EPROM: (Erasable PROM ): una PROM cancellabile e riprogrammabile.
o EEPROM: (Electrically-Erasable PROM ): una PROM cancellabile elettricamente ( senza togliere il
componente ).
o FLASH: simili alle EEPROM, particolarmente efficienti in lettura, poich riscrivendo i dati il
dispositivo tende a deteriorarsi.
Volatili:
o RAM ( Random Access Memory ): le operazioni di lettura e scrittura vengono fatte con lo stesso
principio. Il tempo di accesso indipendente dalla posizione del dato.
Static Ram ( SRam )
La cella di memoria un bistabile realizzato con due inverter in retroazione. Le due uscite dei due
inverter hanno sempre valore opposto e rappresentano il dato memorizzato e il suo comportamento.
Luscita che rappresenta il dato in forma vera collegata
(attraverso un interruttore ) ad una linea detta bit line, laltra
uscita collegata ad una linea parallela alla precedente detta bit line negata.
Quando la word line, che pilota in sincrono i due interruttori, vale 0 la cella
mantiene il suo contenuto. La cella detta statica poich il meccanismo di
memorizzazione basato sula presenza di un collegamento stabile tra il segnale
di uscita e una linea di alimentazione ( alta o bassa a seconda che il dato
memorizzato sia 1 o 0 ). Quando la word line vale 1 la cella collegata alle bit
line.
14
Lettura ( Static Ram )
In lettura le bit line sono pilotate dalla cella, che impone loro i valori in essa memorizzati. Tra la massa e il nodo y e tra
lalimentazione ed i nodo x c un percorso conduttivo.
Nel momento in cui noi chiudiamo gli interruttori, imponiamo alle BL i valori contenuti, concludendo loperazione di
lettura.
In lettura la bit
line da prima
precaricata ad un
valore di tensione
di
riferimento
( Vref ) intermedio
tra 0 e 1, poi scollegata dallalimentazione e collegata alla cella. Il valore di tensione della cella
influenza il valore di tensione della bit line sbilanciandolo verso 1 o verso 0.
15
Il meccanismo di memorizzazione dinamico poich affidato ad un fenomeno dinamico: la conservazione della carica
sulle armature del condensatore. Se condensatori e interruttori fossero ideali, la carica verrebbe mantenuta per un tempo
indefinito, ma poich ideali non sono la carica viene progressivamente persa, facendo calare lentamente il valore della
tensione ai capi del condensatore, fino a perdere il dato.
Per questo necessario rinfrescare periodicamente i dati contenuti nelle celle di memoria dinamiche. Questa operazione
prende il nome di refresh e consiste nella lettura del dato prima del suo definitivo degrado e nella riscrittura del dato
sulla cella stessa.
SRAM vs DRAM
Prestazioni
Sram sono pi veloci delle Dram perch il meccanismo di ridistribuzione della carica un meccanismo lento.
Densit
Dram hanno una maggiore densit perch necessita di un solo transistor e una condensatore, mentra la Sram
usa 6 transistor.
Dram occuperebbero pi spazio delle Sram se i condensatori non fossero distribuiti in altezza o sfruttando lo
spazio sopra ai transistor.
Costi
Dram sono molto pi economiche grazie alla loro alta densit.
Dimensioni
Dram contengono pi bit delle Sram, considerando la stessa area.
Architettura interna della memoria
Per semplicit facciamo riferimento ad una memoria a parallelismo 1, i cui
elementi sono parole di un solo bit.
Ad esempio, una memoria di 1Mbit ha indirizzi a 20 bit, di cui i 10 pi significativi individuano univocamente una della
1024 righe, quelli meno significativi una della 1024 colonne.
Gli indirizzi di riga e colonna sono decodificati da un decoder di riga e di colonna per generare segnali di selezione in
codice 1-su-n. il decodificatore di colonna si comporta come un multiplexer che seleziona quale della bit line collegare
alla porta di input/output.
Parallesimo
Una memoria a parallelismo interno p sia composta da p matrici concettualmente
sovrapposte che condividono gli stessi indirizzi e le stessa word line, mentre hanno
bit line distinte, collegate ad altrettante porte di input/output.
16
Page mode
Quando leggiamo da una cella di memoria, in realt tutti i bit che si trovano sulla stessa riga vengono
contemporaneamente letti, quindi arriveranno tutti i segnali di controllo della riga agli ingressi del decoder di colonne.
Se tutte le parole scritte in una riga vengono lette sequenzialmente allora lindirizzo di riga non deve essere specificato
nuovamente e quindi nemmeno decodificato, dato che lintera riga deve essere letta.
Utilizzando questo metodo siamo in grado di leggere la seconda parola della riga pi velocemente della prima perch
buona parte delle operazioni sono gi state svolte.
Cicli di lettura
Un ciclo di lettura consiste in:
o Acquisizione dellindirizzo.
o Decodifica dellindirizzo di riga.
o Pilotaggio della word line.
o Pilotaggio della bit line da parte della cella.
o Sensing del dato letto.
o Decodifica dellindirizzo di colonna e selezione della bit line.
o Pilotaggio della porta duscita.
Tempo di accesso ( access time ): intervallo di tempo tra lasserzione degli indirizzi e la stabilizzazione dei dati
in uscita.
Tempo di ciclo di lettura ( read cycle time): intervallo di tempo minimo tra due lettura indipendenti.
Data la sequenza di operazioni che compongono un ciclo di lettura possible realizzare memorie alle quali lindirizzo
di riga e lindirizzo di colonna vengono forniti in sequenza al fine di dimezzare la dimensione del BUS indirizzi. In
particolare questo ha senso farlo per memorie DRAM che hanno tempi di accesso molto pi lunghi.
Architettura esterna
Le dimensioni e il parallelismo dei dispositivi di memoria utilizzati da un sistema non necessariamente coincidono con
le dimensione e il parallelismo della memoria del sistema. Le dimensioni della memoria di un sistema sono legate al
numero di bit che compongono il BUS degli indirizzi. Il parallelismo della memoria di una sistema legato al
parallelismo del suo BUS dati.
Dimensione
N dispositivi di memoria di capacit C e il parallelismo P possono essere utilizzati per realizzare ununica memoria di
capacit NC e parallelismo C. A tal fine tutti i dispositivi vengono collegati al bus dati e ai primi c=log2(C) bit del bus
indirizzi. I restanti bit del bus indirizzi ( gli n=log2(N) bit pi significativi ) vengono utilizzati per individuare e
abilitare (attraverso la semplice logica di decodifica che genera i segnali d chip select) i singolo dispositivi.
Parallelismo
N dispositivi di memoria di capacit C e parallelismo P possono essere utilizzati per realizzare ununica memoria di
capacit C e parallelismo NC. A tal fine tutti i dispositivi vengono collegati al bus indirizzi e ciascuno di essi viene
collegato esclusivamente ad una porzione di P bit del bus dati (che complessivamente ha parallelismo NP). Tutti i
dispositivi vengono selezionati contemporaneamente durante le operazioni di lettura e scrittura.
GERARCHIA DI MEMORIA
Requisiti:
Dimensione: le prestazioni dei dispositivi di memoria peggiorano allaumentare delle dimensioni
( bit line e
word line pi lunghe,capacit di carico pi grandi, circuiti di decodifica pi complessi, maggiore distanza dal
microprocessore ).
Velocit: il processore interagisce con la memoria 1 o 2 volte per ciclo, quindi in pochi istanti bisogna
accedere alla memoria.
Costo: se si vuole che la memoria sia grande, il costo per bit deve essere basso.
17
Problemi
Il tempo di accesso alla memoria dipende dalla dimensione.
Dram sono pi lente delle Sram ma sono meno costose e pi piccole.
Lobiettivo la realizzazione di memorie con capacit e costo delle Dram e prestazioni delle Sram.
Principio di localit
Osservazione empirica della distribuzione statistica degli accessi in memoria.
Localit spaziale: molto probabile che nellimmediato futuro il microprocessore acceda a locazioni di
memoria contigue a quelle appena utilizzate.
Localit temporale: molto probabile che nellimmediato futuro il microprocessore acceda nuovamente a
locazioni di memoria appena utilizzate.
Tempo di accesso dei dispositivi di memoria
Molti dispositivi Dram lavorano in page-mode, quindi secondo il principio di localit pi semplice cambiare il
selettore delle colonne che rifare il processo di indirizzamento.
Cache
.
La cache un tipo di memoria piccola, ma molto veloce, utilizzata dalla CPU di un computer per
ridurre il tempo medio daccesso alla memoria, che mantiene (&
copie dei dati
ai quali si fa"
pi
1
frequentemente accesso in memoria principale. Finch la maggior
parte
degli
accessi alla memoria
% 7%
avviene su dati caricati nella cache, la latenza media dellaccesso
alla
memoria sar pi vicina alla
(L
latenza della cache piuttosto che a quella della memoria principale. (" 1
(
(%
Quando necessario laccesso ad un dato, questo dato viene prima
cercato nella cache.
Se presente
(
linea
di
-
mappata
(. (
La cache a mappatura diretta (direct mapped cache) prevede che una
determinata
memoria
venga
($
sempre nella stesa posizione di linea in cache.
Direct-mapped cache
RAM
00
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
01
10
11
La cache
controlla in sequenza:
%
1. Index
#
"
&
2.
Tag 7#$
3.
block address
tag
index offset
0 1 0 0 1 1
00
cache
01
10
11
TAG
01
11
Offset
#
G>"
La cache a mappatura diretta funziona in page
\ &
mode,
infatti possiamo chiedere alla memoria una
$
cella o una riga intera, inoltre rispetta il principio
#&6*2AI
principio
di localit temporale (copio in cache
@
"((2A$
prima dipassare
dati@alla
#
i i(
CPU).
*
I # " *
$
Il block address identifica
il dato in cache,
lindirizzo
si
ottiene
# (
Nel caso in cui il dato sia trovato in cache si avr un cache hit , o un cache miss nel caso in cui non venga trovato
e
@
quindi bisogner cercalo sullaltra memoria.
#
Conalessandro
Hit ratebogliolo
e Miss rate si indica la percentuale
di science
trovare
o technology
meno uninstitute
dato in cache.
isti information
and
5/19
Il vantaggio della mappatura diretta lenorme semplicit infatti la linea di memoria di ram mappata nella stessa(
linea&
(
applied computer science
Computer
Architecture
di cache.
G>PG
urbino worldwide campus
06.02 Memory hierarchy
Gli svantaggi sono che non c nessuna libert di scelta nel piazzamento delle linee e quindi non si frutta alpieno
(
lampiezza della cache, con la possibilit quindi di sovrascrivere pi volte un dato, aumentando quindi il miss rate.
( "
%
0$
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
01
10
11
18
A
$5/19
=G>%&
applied computer
science
% ((
( . "
%$
&((%
alessandro bogliolo
Computer Architecture
06.02 Memory hierarchy
00
cache way1
01
10
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
11
A
01
10
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
11
6 ( (
# G - .
"% %
)& (
block address
tag
offset
0 1 0 0 1 1
TAG
0100
00
cache way2
01
10
B
11
TAG
1110
00
cache way3
01
10
11
TAG
00
cache way4
01
10
11
Nella cache associativa (fully associative cache) le linee di memoria possono essere mappate in qualunque posizione,
senza alcun riferimento al loro indirizzo.
In questo tipo di cache lindex non presente, infatti tutto il block address diventa il tag.
bogliolo
isti information
science and
technology
institute
6/19di allocazione)
I vantaggi di alessandro
questo tipo
di cache sono che abbiamo
la possibilit
di mettere
(con
determinate politiche
le line dove vogliamo, usando in pieno tutto lo spazio di cache e riducendo quindi il miss rate.
Ci sono tre principali politiche di allocazione per la cache associativa: LRU, FIFO e RAND.
Lalgoritmo LRU ( Least Recently Used ) consiste nel rimpiazzare tra tutte le linee quelle usate meno di recente, e
quindi un pezzo di codice poco frequentato dallesecuzione del programma.
Questa modalit molto complessa da realizzare e anche costosa.
Lalgoritmo FIFO ( First In First Out ) consiste nel rimpiazzare il primo dato messo in cache con lultimo, e questa di
media complessit realizzativa.
Lultimo, il RAND, consiste nel rimpiazzare le linee in modo casuale, tra i tre il metodo pi facile da realizzare e i
dati sperimentali dimostrano che le prestazioni non sono eccessivamente degradanti.
19
" 7 ( ( "
"( 7$
F# ( ( 7 (L & 7 ("
( "(3(2
#$
Computer Architecture
Cache parzialmente
associativa
06.02 Memory hierarchy
La cache parzialmente associativi ( o a n vie ) prevede un funzionamento analogo alla mappatura diretta, ma con pi
banchi di cache in cui poter trovare il dato, riducendo le possibilit di conflitti, inoltre ha un tag pi grosso e un bit in
meno di linea.
RAM
applied
computer
Computer
Architecture
In questo
tipo di
lindex per determinare la riga ma ci sono
ancora
duescience
scelte identificate con il tag.
0cache
0
0 1 presente
10
11
urbino worldwide campus
06.020Memory
0 0 0 hierarchy
Questa 0cache
0 0 1controlla:
0 1 0
1. 00 Index
0 1 1
A
0
1 0 0
2. 0 Tag
1 0 1
3. 0 Offset
1 1 0
Set-associative cache
Set-associative cache
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
01
01
1
1
1
11
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
00
11
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
10
1
0
0
1
1
1
0
1
0
1
0
1
0
1
RAM
01
10
11
cache way1
01
10
00
11
A
0
1
TAG
010
alessandro bogliolo
.
5O8>GE>0I
cache way2
05OG8O8>GE>
0
01
10
11
TAG
>0I5>;O
0
B
111
1
0 ("
( " I
block
address
( ($
tag 7
ind offset
0 1 0 0 1 1
.+
way1
06.02 Memorycache
hierarchy
01
10
0
1
11
A
7/19
5O8>G-O*8>G*E>0I*.
applied computer science
Computer Architecture
00
block address
tag
ind offset
0 1 0 0 1 1
TAG
010
00
0
1
cache way2
01
10
B
11
TAG
111
DM
SA
FA
00 and
000 technology
000 00 institute
00000
isti information science
7/19
00 001
000 01
00001
Block Address Block Offset
00 010
000 10
00010
00 011
000 11
00011 applied computer science
Computer Architecture
00 100
001 00
00100 urbino worldwide campus
06.02 Tag
Memory hierarchy
Index Block Offset
00 101
001 01
00101
00 110
001 10
00110
00 111
001 11
00111
01 000
010 00
01000
log2Sets log2BlockSize
01 001
010 01
01001
01 010
010 10
01010
01 011
010 11
01011
01 100
011 00
01100
01 101
011 01
01101
log2Blocks
01 110
011 10
01110
01 111
011 11
01111
10 000
100 00
10000
10 001
100 01
10001
...
...
...
11 111
00 000111 11000 11111
00
00000
alessandro bogliolo
DM
SA
FA
00 001
000 01
00001
00 010
000 10
00010
00 011
000 11
00011
00 100
001 00
00100
log2SetSize
Tag
Index Block Offset
00 1012-way
001 01
00101
1-way
00 110
001 10
00110
00 111
001 11
00111
01 000
010 8-way
00
01000
log2Sets log2BlockSize
01 001
010 01
01001
01 010 institute
010 10
01010
alessandro bogliolo
isti information science and technology
01
011
010
11
01011
Prestazioni della cache
01 100
011 00
01100
01 101
011 01
01101
log2Blocks
01 110
011 10
01110
Tempo di accesso medio = Hit Time + Miss Rate * Miss01Penalty
111
011 11
01111
10 000
100 00
10000
Tempo di accesso medio = Hit Rate * Hit Time + Miss Rate
10 001* Miss
100 Time
01
10001
...
...
...
Miss Penalty = Miss Time Hit time
11 111
111 11
11111
8/19
Per aumentare le prestazioni occore ridurre il tempo di accesso alla cache, scegliendo
dispositivi di cache ad altelog
prestazioni,
poi ridurre il Miss Penalty scegliendo dispositivi a
2SetSize
2-way
prestazioni pi alte utilizzando multipli livelli di cache 1-way
e aumentare
la probabilit di Hit.
8-way
alessandro bogliolo
20
8/19
Durante
un
Cache
Miss,
la
cache
deve
accedere
alla
Ram
per
prendere
il
dato
perso
5OG8O8>GE>
>0I5>;O
0 ("
( " I
7 ( ($
Cache livello 1 e 2
.+
Tempo di accesso medio =
Hit Time + Miss Rate ( Hit Time2 + Miss Rate2 * Miss Penalty2 )
5O8>G-O*8>G*E>0I*.
Computer
Architecture
Memoria
virtuale
Viene utilizzato per eseguire programmi che richiedono pi memoria di quella fisica disponibile ( per le istruzioni o per
i dati ), gestire pi processi contemporaneamente, le cui esigenze di memoria complessive eccedono le dimensioni della
Ram.
Virtual memory
The CPU
Virtual
al produces
contenuto; ad
esempio stack, programma e dati.
addresses that
need
In
baseto
al be
principio di localit, i segmenti o le pagine di memoria logica vengono mappate sulla memoria fisica
translated into Physical
( Ram ) quando utilizzate, e riposte in memoria di masse se non utilizzate o superiori alle dimensioni della
addresses
Ram.
La funzione che trasforma indirizzi logici in indirizzi fisici dipende dal tempo ( poich il mapping della
Controlla che lindirizzo fisico corrisponda a una zona di memoria fisicamente presente nella memoria
Relocation: a program
memoria can
logica su quella fisica dinamico ) ed implementata dalla Memory Managemente Unit ( MMU )
run in any
in physical
La location
MMU svolge
i seguenti compiti:
memory
Traduce lindirizzo logico in indirizzo fisico.
Protection: a process
centrale.can
access onlytheSememory
invece la zona in questione nello spazio di swap, la MMU solleva una eccezione di page fault e il
blocks allocatedprocessore
to it
si occupa di caricarla in memoria centrale, scartando una pagina gi presente.
information science and technology institute
11/19 della memoria fisica, cache fisica ) o in parallelo alla
La MMU pu trovarsi aistimonte
della cache ( se questa fa il caching
cache
(
se
questa
fa
il
caching
della
memoria
logica,
cache
virtuale
).
applied
computer
science
Computer Architecture
alessandro bogliolo
Caching
Cache
Main Memory
Block
Cache miss
Replacement mainly
controlled by HW
Parameter
Block (page) size
Hit time
Miss penalty
(access time)
(transfer time)
Miss rate
Mapping
Virtual Memory
Main Memory
Disk
Segment / Page
Page fault
Raplecement mainly
controlled by SW
L1 Cache
16-128 bytes
1-3 Tclk
8-150 Tclk
6-130 Tclk
2-20 Tclk
0.1-10%
25-45 bit to 14-20
Virtual Memory
4 - 64 Kbyte
50-150 Tclk
106-107 Tclk
8E5-8E6 Tclk
2E5-2E6 Tclk
0.00001-0.001%
32-64 bit to 25-45
alessandro bogliolo
12/19
"
&
"% #& $
$
0
$
%#((
# $
& - .
- .(# $
0 % >> ( # %
-0>.$
21
La frammentazione nella memorizzazione dei dati
B
La frammentazione nella memorizzazione dei dati accade quando si inseriscono e si rimuovono processi dalla memoria
centrale (Ram), oppure file da una memoria di massa. Dato che la memoria , a livello logico, una sequenza contigua di
spazi ( celle o settori ) atti a contenere unit elementari di dati, e che normalmente un oggetto da memorizzare ( un
programma o un file ) si compone di numerose unit elementari contigue, lorganizzazione di tali sequenze in memoria
deve seguire una qualche regola che consenta di aggiungere e rimuovere tali oggetti con accesso casuale. Infatti,
ripetute aggiunte o rimozioni di sequenze di dati di dimensioni eterogenee comportano una frammentazione dello
spazio libero disponibile, che quindi non risulta pi essere contiguo.
Nel caso delle pagine, la dimensione della tabella di mappatura proporzionale al numero di pagine, quindi con pagine
M " &
grandi c meno spreco di memoria.
"% #& $
AlloArchitecture
stesso tempo le pagine di grandi dimensioni introducono
un maggior
di
memoria
dovuto
alla
computer
spreco
applied
science
Computer
$
urbino
worldwide campus
frammentazione
interna.
06.02 Memory
hierarchy
In questo caso loffset non ha bisogno di essere tradotto dato che
rappresenta$
lo spostamento di un puntatore dallinizio
%#((
della pagina.
# $
Il problema rappresentato dalla traduzione del virtual page number
(vpn) in&real
number
(rpn)
che concatenato
page
alloffset rappresenta la memoria fisica.
- .(# $
Per fare questo si utilizza una MMU che traduce lindirizzo logico
in quello fisico grazie a una tabella delle pagine
0 % >> ( # %
(PT).
-0>.$
C G
0GH!0-2 &
& # ." > - 2 &
."-.$
( , 0> & %
!
alessandro bogliolo
Computer Architecture
15/19
applied computer science
urbino worldwide campus
Address translation
CPU
CPU
Virtual
MMU
MMU
PT
page table
Physical
RAM
RAM
22
alessandro bogliolo
Computer Architecture
15/19
Address translation
Virtual
CPU
CPU
MMU
MMU
Physical
RAM
RAM
PT
page table
vpn
po
rpn
rpn
po
Computer Architecture
Address translation
(paged page table)
CPU
CPU
Virtual
MMU
MMU
Physical
16/19
RAM
RAM
PT
page table
vpn1 vpn2 po
rpn
PT2
po
rpn
Per ridurre loccupazione in memoria della tabella delle pagine vengono utilizzate tabella delle pagine paginate a loro
alessandro bogliolo
isti information science and technology institute
17/19
volta, ovvero tabelle delle pagine gerarchiche.
applied computer science
Il vpn dellindirizzo
logico suddiviso in due parti:
Computer
Architecture
urbino worldwide campus
06.02 Memory hierarchy
Vpn1: bit pi significativi.
Vpn2: bit meno significativi.
Il Vpn1 viene utilizzato per indirizzare una tabella delle pagine di primo livello, il cui primo elemento puntato dal
pointer .
La PT di primo livello restituisce il pointer di una delle PT di secondo livello, in cui cercare il rpn associato al Vpn2.
Il vantaggio che le tabelle delle pagine di secondo livello vengono portare in Ram solo se utilizzate.
Address translation
23
Computer Architecture
Address translation
Virtual
MMU
MMU
Physical
Cache
Cache RAM
RAM
Virtual
MMU
MMU
Physical
18/19
RAM
RAM
Cache
Cache
alessandro bogliolo
24
19/19
dress mapping
COMUNICAZIONE
Periferiche
Il sottosistema I/O la parte attraverso la
quale si esplica la comuncazione tra il calcolatore e il mondo esterno,
1/10
soprattuto si prendono in considerazione i problemi di scambio delle informazioni e gestione delle periferiche.
Il problema delle periferiche
che ciascun dispositivo procede alla propria velocit, in modo asincrono rispetto alla
applied computer science
Cpu: quindi necessit diurbino
eventuali
registri
dove appoggioare i dati nel trasferimento e eventuali registri di appoggio nei
worldwide
campus
comandi alla periferica e controllare contemporaneamente lo stato della periferica e di eventuali malfunzionamenti.
Per questo vengono utilizzati i registri DREG ( Data Register ), SREG ( State Register ),CREG ( Control Register ) per
risolvere i problemi sopra elencati.
erals
Sincronizzazione
iated withLaccesso
unique
addresses
a una periferica pu richiedere centinai di cicli di clock e il service time ( tempo di accesso alla periferica)
communication
entails
only
anche milioni,
e larrival
time ( read
tempo di attesa per atendere linput della perifica ) non ne a conoscenza neanche la
cpu.
Il problema si aggrava ancor di pi dato che le pipeline sono progettate per gli accessi alla memoria ( quindi pochi
plemented
by the device drivers
clock ) e quindi bisognerebbe stallare lintera pipeline, che inoltre non risolverebbe il problema.
07 Communication
Program-controlled I/O
Program-controlled I/O : periodicamente viene controllato un registro che contiene le informazioni del
disposito I/O. Questo metodo detto polling controlla lo stato della periferica nel registro. Questo sistema
completamente generale e non richiede notifiche hardware per viene impiegato inutilmente processore e bus,
mation science and technology
institute
2/10 that needs to access a peripheral explicitly
The process
bloccando
altre attivit.
Interrupt-controlled I/O: la cpu dialoga con la periferica, attraverso un bus, che invia un interrupt request
Keeps the processor busy while waiting for a peripheral
quando ha bisogno di comunicare. Quindi linterrupt uninterruzione completamente asincrona risetto al
Keeps
the peripheral
BUSperbusy
to read
status Il processo funziona
processo di esecuzione
e ogni dispositivo
ha un canale
comunicare
conthe
il processore.
nel seguente modo: register
Il device manda un interrupt request al processore.
Il processore, se possibile, accetta la richiesta e invia un interrupt.
Il processore pu essere anche impostato su uno stato particolare che non accetta gli interrupt, quindi vede la
richiesta ma non serve il device e continua ad eseguire i suoi processi; quando terminato risponder alla
richiesta.
alessandro bogliolo
Computer Architecture
07 Communication
7/10
applied computer science
urbino worldwide campus
Interrupt-controlled
I/O
25
The device uses an extra wire to notify an event to the
CPU
Interrupt-controlled I/O
The device uses an extra wire to notify an event
to the
CPU
Computer Architecture
07 Communication
Computer Architecture
07 Communication
ISR
(a)
(a)
(b)
(b)
(c)
alessandro bogliolo
Computer Architecture
07 Communication
(c)
alessandro bogliolo
3.
9/10
applied computer science
urbino worldwide campus
9/10
alessandro bogliolo
alessandro bogliolo
26
10/10
10/10