Sei sulla pagina 1di 26

ARCHITETTURA

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

Caricato in fase di fetch.

Rappresenta lingresso che


determina le azioni svolte durante la
fase di esecuzione.
PC: Tiene traccia dellesecuzione del programma

Contiene lindirizzo di memoria in


cui memorizzata la prossima
istruzione da eseguire.


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$

DESIGN CONTROL UNIT ( LOGICA SPARSA )

("

("

A ogni ciclo di clock vengono generati

N
controlli.

LIR il registro principale che contiene


$
listruzione e i suoi parametri.
#G&
(
Lo
stato interno serve per calcolare il
#
numero di cicli di clock.
$

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

Alla execution unit vengono


fornite passo per
$

passo delle microistruzioni.


Il contatore ci fornisce nellordine giusto le
istruzioni, incrementando lindirizzo ad ogni ciclo.

Laddress selector serve per puntare alla cella di


memoria contenente la funziona desiderata.
Una volta puntata la cella di memoria contenente la funzione, il contatore scorre la memoria in modo
sequenziale.

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 : STACK


Il register file gestito come uno stack, cio come una pila in cui lultimo elemento inserito ( scritto ) il primo ad
essere estratto ( letto ). Quindi il registro non necessita mai di essere esplicitato.
Modello esecuzione: MEM MEM
Una singola istruzione prendere gli operandi dalla memoria, computa il risultato e lo reimmette in memoria. Non sono
richiesti registri interni
Modello esecuzione MEM REG
Al massimo un operando preso dalla memoria, quindi almeno un registro richiesto.


Modello esecuzione REG - REG
Tutti gli operandi e i risultati sono immagazzinati nei registri.
Esempio A B + C

Indirizzi

Indirizzo riferito ai byte.


Trasferimenti di multipli di byte ( ad esempio parole di 4 byte ).
Operazioni logiche e maschere necessarie per accedere ai singoli bit di una parola.

Ordinamento dei byte che compongono la parola:


LittleEndian: lindirizzo ADDR della parola quello del byte meno significativo, il byte pi significativo si
trova allindirizzo ADDR + 3, se la parola a 4byte.
BigEndian: lindirizzo ADDR della parola quello del byte pi significativo, il byte meno significativo si
trova allindirizzo ADDR + 3, se la parola a 4 byte.
Allineamento:
Parole allineate agli indirizzi multipli interi della dimensioni della parola ( in byte ).
I bit meno significativi dellindirizzo di una parola sono sempre nulli ( quindi possono essere considerati
impliciti ).
Lallineamento ha anche un riscontro diretto sul parallelismo e sullorganizzazione interna della memoria. Se
linstruction set consentisse di indirizzare parole disallineate sarebbero necessari due bit in pi di indirizzo (
nellipotesi di parole di 4 byte ) e due accessi in memoria per trasferire una parola.
Esempio:
Le memorie a 32 bit utilizzano 4 byte di indirizzamento che sono lunghe come linsieme diviso per 4.
Le parole allineate male richiedono 2 cicli per essere completamente lette/scritte.

Indirizzamento

Fasi di esecuzione di unistruzione


1) Istruction Fetch: carica una nuova istruzione in memoria.
2) Istruction Decode: listruzione viene caricata nellIR e decodificata. Vengono estratti operandi dai registri e
trasferiti alla ALU assieme allistruzione.
3) Execute: fase desecuzione.
4) Memory Access: legge o scrive dati in memoria.
5) Write Back: scrittura dei dati parziali in un registro interno al processore. Se listruzione non produce risultati
questa fase non viene fatta.
Implementazione singolo stadio
Quello che decide la CU ( Control Unit ) nella seconda fase si
ripercuote nelle successive fasi.

Implementazione multiplo ciclo


Se le fasi si svolgono in pi cicli tra una fase e laltra ci
devono essere dei registri.

Prestazioni
Durante la codifica della prima istruzione faccio il fetch della
seconda ( Max 5 istruzioni ).

Misuratori delle prestazioni

CPUT: tempo impiegato dal uP per eseguire un programma [ seconds/program ].


CPUC: numero di cicli di clock impiegati per eseguire un programma [ clocks/program ].
Tclk: periodo di clock [ seconds/clock ].
CPI: numero di cicli di cock dedicati allesecuzione di unistruzione [ clock/instruction ].
IC: numero di istruzioni eseguite [ instruction/program].
CPUC = CPI * IC
MIPS: milioni di istruzioni al secondo
MIPS = IC / CPUT * 10-6 CPUT = CPUC * Tclk
RMIPS: MIPS relative
RMIPS = CPUT / CPUT(ref)* MIPS(ref)
Latenza: numero minimo di cicli di clock tra linizio dellesecuzione di unistruzione che produce dati e
linizio di una che li usa.
Throughput: frequenza di esecuzione delle istruzioni.

Reference Architecture

Arithmetic Operations

Memory Accesses ( LD )

Memory Accesses ( ST )


Unconditional Branch ( JMP )

Conditional Branch ( JS, JE )

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

applied computer science


urbino worldwide campus

05.03 Pipeline hazards


Data hazards (problem)
di dati
Conflitti
Define
and use / Read after write
Ipotesi: le istruzioni utilizzano il risultato della prima istruzione.
Computer Architecture

applied computer science


urbino worldwide campus

05.03 Pipeline hazards

Nel caso di operazioni concatenate con


ADD r1 r2 r3 IM reg ALU DM reg
questo modello abbiamo un forte
SUB r4 r5 r1
IM reg ALU DM reg
disallineamento
che
dipende
AND r6 r1 r7
IM reg ALU DM reg
dallistruzione
successiva.
Anche
in
OR r8 r1 r9
IM reg ALU DM reg
questo caso si deve stallare la pipeline
ZOR
Data
forwarding
from
MA/WB
to
ALU
r10 r1 r11
IM reg ALU DM applied
regcomputer science
Computer Architecture

Data hazards (solution 1)

per aspettare che il dato venga


urbino worldwide campus
05.03 Pipeline hazards
ADD r1
r3 IM
reg ALU
immagazzinato
nelr2
registro
e pronto
per DM
luso;reg
ma il dato gi disponibile dopo lelaborazione dellALU quindi
r5 r1
IM regilALU
DM elaborato
reg
possiamo SUB
agirer4
sullarchitettura
portando
risultato
direttamente agli ingresso della ALU e decidere quando
ADD r1 attraverso
r2 r3 dei
IMmultiplexer.
reg ALUQuesta
DM strategia
reg
utilizzarlo
e detta ANTICIPAZIONE DEI DATI.

Data hazards (solution 1)

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

applied computer science


urbino worldwide campus

05.03 Pipeline hazards

file

PC1

WB
logic

RW
ALU
out

IMM

Data hazards (solution 1)


RW

RW

RW

: Forward da DM
agli EX/MA
input della ALU
( vedi istruzione AND ).
Soluzione
Data (2)
forwarding
from
to ALU
alessandro bogliolo

isti information science and technology institute

Computer Architecture

ADD
r1hazards
r2 r3
05.03
Pipeline
SUB r4 r5 r1
AND r6 r1 r7

5/16

applied computer science


urbino worldwide campus

IM reg ALU DM reg


IM reg ALU DM reg
IM reg ALU DM reg

Data hazards (solution 1)

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

isti information science and technology institute


B

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

isti information science and technology institute

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

applied computer science


urbino worldwide campus

Data hazards (solution 3)

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

applied computer scien


urbino worldwide camp

05.03WBPipeline hazards
RW

WB
logic

Control-flow hazards (solution 1)


ALU
out

out
Aluand technology
isti information science
institute
Data

alessandro bogliolo

Aumento la frequenza del REGISTER


FILE per poter leggere e scrivere nello
stesso ciclo.

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:

Branch recognized during ID


Control-flow hazards (problem)
Target computed during ID (PC updated soon)
PC1

IMM

RW

RW

Assumptions:

alessandro
bogliolo
Conflitti
di controllo
di flusso

RW

Condition tested during EX (PC updated soon)


isti information science and technology institute

7/16

Branch recognized during ID


CBranch
IF ID EX MEM WB
applied computer science
Computer Architecture
urbino worldwide campus
(abort)
Pipeline
hazards
Condition
tested
during
Ipotesi:05.03
nella
pipeline
prima EX
di un salto, mentre la cpu deve+1ancora
codificare IF
il salto
stesso, vengono effettuati i fetch
Target
--IF ID EX MEM WB
delle
istruzioni
successive,
le
quali
poi
verranno
abortite,
ABORT,
perch
sbagliate.
PC updated during MA
target+1
IF ID EX MEM WB

Control-flow hazards (problem)


Labort viene utilizzato per attendere che listruzione

CBranch
IF ID EX MEM WB
+1
IF (abort)
Target
Assumptions:--- --- IF
target+1

Computer Architecture

ID
IF

EX
ID

Branch recognized during ID


UCBranch
IF IDtested
EX MEM
WB EX
Condition
during
+1
IF (abort)
PC updated during
Target
--- IF MA
ID EX MEM

MEM WB
EX MEM

applied computer science


urbino worldwide campus

05.03 Pipeline hazards


UCBranch
IF ID EX MEM WB
successiva non sia quella sbagliata. Nel caso di salto
+1
IF (abort)
incondizionato si attende
cicloMEM
di clock
Target
IF IDun EX
WB in meno
WB
dato
che
non
c
bisogno
di
eseguire
listruzione
target+1
IF ID EX MEM
WB

Control-flow hazards (solution 1)


verificata.

Assumptions:

Branch recognized during ID


WB
target+1
IF
ID
EX
MEM
WB
bogliolo
science and technology institute
9/
CBranch
IF ID EX MEM WB
alessandro
Target
computed during istiIDinformation
(PC updated
soon)
+1
IF (abort)
computer scien
Architecture
Computer
Condition
tested during EX (PC updated soon) applied
urbino worldwide camp
05.03
Pipeline hazards
Soluzione
(1):
Target
--- --- IF ID EX MEM
WB
IF ID EX CBranch
MEM WB IF ID EX MEM WB
target+1
Salto riconosciuto durante
ID.
alessandro bogliolo
isti information science and technology institute
8/16
+1
IF (abort)
Condizione verificata durante EX.
IF ID EX MEM WB
Target
--- IF ID EX MEM WB
UCBranch
Pc aggiornato
durante lID.
+1
IF (abort)
target+1
IF ID EX MEM WB
Target
--- IF ID EX MEM WB
IF ID EX MEM WB
target+1
IF ID EX MEM UCBranch
WB
+1
IF (abort)
Branch recognized
during ID
Target
IF ID EX MEM WB
target+1
IF ID
ID (PC
EX updated
MEM WB soon)
Target
computed during

Control-flow hazards (solution 2)

Assumptions:

alessandro bogliolo

isti information science and technology institute

Soluzione (2):
Salto riconosciuto durante ID.
Condizione verificata durante ID.
PC aggiornato durante ID.

8/16

Condition tested during ID (PC updated soon)


CBranch
IF ID
alessandro bogliolo
+1
IF
Computer Architecture
05.03 Pipeline hazards
Target
target+1

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

Target computed during ID (PC updated soon)


Aborto listruzione successiva sia che salto sia che non salto.
Condition tested during ID (PC updated soon)
alessandro bogliolo

CBranch
+1
Target
target+1

IF

UCBranch
+1
Target
target+1

IF

ID
IF

ID
IF

isti information science and technology institute

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

isti information science and technology institute

10/16

Control-flow hazards (solution 3)


TBranch IF ID
Predict
untaken:IF
+1
Target
If the
branch is
target+1
aborted

EX MEM WB
(abort)
ID EX
WB
notIFtaken,
the MEM
fetched
instruction
IF ID EX MEM WB

is not

Soluzione (3): Predict untaken


alessandro bogliolo

Listruzione non abortita, dato che si parte dal


presupposto che il salto non vada fatto; se invece deve
essere eseguito facciamo ancora in tempo a fermalo in
modo che non alteri le istruzioni successive, perdendo
per 1 ciclo.

isti information science and technology institute

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

Control-flow hazards (solution 4)


TBranch

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

executed, regardless of the condition of the branch

Soluzione (4): Delay branch


Listruzione che segue un salto viene sempre eseguita,
indipendentemente dalla condizione.

UTBranch IF ID EX
+1(delay)
IF ID
Computer
Architecture IF
+2
alessandro bogliolo

05.03 Pipeline hazards

MEM
WB science and technology institute
isti information
EX MEM WB
ID EX MEM WB

applied computer
urbino worldwide

Control-flow hazards (solution 4)


TBranch
IF
+1(delay)
Target
target+1

ID
IF

Delayed branch:

EX
ID
IF

MEM
EX
ID
IF

WB
MEM WB
EX MEM WB
ID EX MEM

WB

Istruzioni a multipli cicli di esecuzione

The instruction that follows a branch is always


executed,
regardless of the condition of the branch
Diverse unit di elaborazione in parallelo per eseguire
diverse istruzioni.
alessandro bogliolo

isti information science and technology institute

Cicli di esecuzione ripetuti per particolari istruzioni.


Numero variabile di cicli di clock ( e stadi pipeline ) dedicati allesecuzione di diversi tipi di istruzioni.
UTBranch
ID diverso
EX MEM
WB di clock.
Istruzioni di tipo diverso impegnano unit funzionali
diverse per IF
un numero
di cicli
+1(delay)
IF ID EX MEM WB
Latenza e intervallo di ripetizione vanno valutati per
ogni tipo di istruzione.
+2
IF 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

isti information science and technology institute

Aggiungo unit di elaborazione alla cpu, che lavora in pipeline, rimane per il conflitto di dati.
Stima delle prestazioni orientata allapplicazione.

Specifiche del microprocessore:


o Instruction Set
Prestazioni:
o Clk
Per ogni istruzione:
o CPI: numero di cicli di clock dedicati esclusivamente allistruzione indipendentemente dal contesto in
cui inserita e dai dati su cui opera.
o Latenza: numero di cicli di clock ( oltre al CPI ) che devono intercorrere tra il fetch dellistruzione e il
fetch di unistruzione che ne usi i risultati.
o Intervallo di ripetizione: numero di cicli di clock ( oltre al CPI ) che devono intercorrere tra il fetch
dellistruzione e il fetch di unistruzione dello stesso tipo.

10

12/16

Analisi del codice compilato:


Determinazione di:
o IC totale, Ici per ogni istruzione, ICij per ogni coppia di istruzioni in sequenza.
o AvgCPI, basato sulle specifiche sul CPI delle istruzioni e sul conteggio della frequenza di ogni
istruzione AvgCPI = Sumi ( CPIi * ICi ) / IC.
o Numero di cicli di stallo SC, basato sulle specifiche su latenza e ripetizione.
o Si noti che se latenza e ripetizione sono definite come eccessi rispetto al CPI, il calcolo del numero di
cicli di stallo indipendente dal calcolo di AvgCPI. Si noti inoltre che le specifiche su latenza e
ripetizione spesso ammettono soluzioni comuni e non possono essere valutate indipendentemente.

Formule
CPUT: ( AvgCPI * IC + SC ) * CLK

PERFORMANCE OPTIMIZATION
Processori Multiple- Issue ( microprocessori con CPI < 1)

In generale i microprocessori pipeline dispongono di pi unit di elaborazione in parallelo:


o Diverse ( dedicate a diversi tipi di istruzioni ).
o Uguali ( per ridurre a diversi tipi di istruzioni ).
Nella migliore delle ipotesi permettono di ottenere CPI = 1 perch gli stadi IF, ID, MEM e WB non sono
replicati, e quindi possono essere dedicati ad una sola istruzione alla volta.
Per ottenere CPI<1 occorre replicare la logica di tutti gli stadi della pipeline per poter mandare in esecuzione
pi di unistruzione alla volta ( multiple issue ).
Computer Architecture

applied computer science


urbino worldwide campus

05.05 Multiple-issue processors


Microprocessori superscalari

Superscalar processors

Presentano N pipeline in parallelo


I microprocessori
superscalari
leggono codice sequenziale e mandano in esecuzione fino a N istruzioni per
Contain N
parallel pipelines
ciclo diclock.
Read sequential code and issue up to N instructions at
Le istruzioni
nello stesso clock cycle devono:
the eseguite
same time
o Essere
indipendenti.
The instructions
issued at the same time must:
be independent
from each
other legati alla disponibilit di risorse ( es: contenere un solo riferimento
o Rispettare
determinati
requisiti
have
sufficient
alla
memoria
dei resources
dati ). available
The ideal
is 1/Ni requisiti per essere eseguita parallelamente alle precedenti, solo le precedenti
Se unistruzione
nonCPI
rispetta
If anininstruction
instrk) cannot
be issued
together
sono eseguite
parallelo e(say,
listruzione
in esame
mandata
in esecuzione al ciclo successivo.
previous ones, the previous ones are issues
Lissuing with
rate, the
frequenza
di esecuzione, variabile.
together and instrk is issued at the subsequent clock
Le unit funzionali
in parallelo
possono
non essere
tutte uguali. In questo caso il vincolo sul conflitto di risorse
cycle, possibly
together
with some
subsequent
impone diinstructions
eseguire in parallelo istruzioni di tipo diverso.
Il repetition time delle istruzioni deve essere uguale.
La latenza delle
istruzioni pu essere diversa ( in questo caso per garantire lo stesso repetition time lunit
Computer Architecture
desecuzione 05.05
conMultiple-issue
latenzaprocessors
maggiore deve essere pipelined o essere replicata ).
Per sfruttare al meglio il parallelismo, i diversi tipi di istruzioni devono comparire con frequenza simile nel
Superscalar processors
codice.
alessandro bogliolo

isti information science and technology institute

3/13

applied computer science


urbino worldwide campus

(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

Variable issuing rate


CPI > 1/N

alessandro bogliolo

11

isti information science and technology institute

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.

Stima delle prestazioni di microprocessori superscalari

Ipotesi: scheduling statico, codice gi compilato.


Esame delle N-ple di istruzioni eseguibili in parallelo:
o Se ln-esima istruzione di una N-pla non si presta allesecuzione in parallelo si eseguono in parallelo
le prime n-1 istruzioni e ln-esima diventa la prima della N-pla successiva.
o Indichiamo con PIC ( Parallel Instruction Count ) il numero di gruppi di istruzioni successive
eseguibili in parallelo.
Determinazione dei cicli di stallo:
o La latenza delle istruzioni pu determinare lintroduzione di cicli di stallo della pipeline che ritardano
lesecuzione dellintera N-pla di istruzioni.
o Indichiamo con SC il numero di cicli di stallo.
Assumendo che tutte le istruzioni abbiano CPI = 1:
o CPUT = (PIC + SC)*CLK > IC/N * CLK.

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.

Issuing statico, scheduling statico.


E compito del compilatore mappare il codice su istruzioni VLIW ottenute componendo istruzioni che possano
essere eseguite in parallelo ( indipendenti e di tipi compatibili ).
Hardware pi semplice di quello dei uP superscalari.

12


Computer Architecture

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

applied computer science


Ottimizzazione dinamiche
Computer Architecture
urbino worldwide campus
06.04 Dynamic optimization
Out of Order ( OOO ) execution:
Computer Architecture
applied
computer science
Computer Architecture
o Scheduling dinamico
urbino worldwide campus
06.04 Dynamic optimization
Data dependencies (3)
Computer
Architecture
Speculazione
add r1 r2 r3
Sub-clock-cycle operations:
Data dependencies (1) (RAW) Read after write
sub r4 r4 r1
o Pi istruzioni vengono eleaborate in un unico ciclo
add
r1 r2 r3

Data dependencies (1)


Data dependencies (1)

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

Data dependencies (1)

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

isti information science and technology institute

Computer Architecture

Computer Architecture

Computer Architecture

applied computer science


06.04
urbino worldwide campus

06.04 Dynamic optimization

isti information science and technology institute

5/17

3/17

applied computer
science
06.04 Dynamic
urbino worldwide campus

Dynamic optimization

applied computer science


urbino worldwide campus

optimization

Nello scheduling dinamico una buona parte del lavoro di scheduling renaming ( cambio nome ai registri ).
alessandro bogliolo

isti information science and technology institute

alessandro bogliolo

add

r1 r2 r3

sub

r4 r4 r1

add

r1 r5 r6

3/17

isti information science and technology institute

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

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

OOO execution opportunities


alessandro bogliolo

isti information science and technology institute

RAW

RAW

RAW

alessandro
bogliolo
4/17

Computer Architecture

isti information science and technology institute

06.04 Dynamic optimization

applied computer science


urbino worldwide campus
6/17

5/17

alessandro bogliolo

Computer Architecture

isti information science and technology institute

Data
dependencies (2)
Data dependencies (2)
Data dependencies (2)

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

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

applied computer science


urbino worldwide campus

06.04 Dynamic optimization

add
r1
Data dependencies
(4)
add
r1 r2
r2

Fasi di esecuzione

r3
r3

Codifica e fetch delle istruzioni sono separati.


RAW
RAW
Coda di istruzioni ( buffer ).
add
r1 r2 r3
Corsie di incanalamento.
sub delleRAWcpur4
r4 r1
WAW
WAW
Common Data Bus ( bus per portare
i dati allinterno
se necessario ). RAW
add
r10 r5 r6
WAR
WAR
Reoder Buffer: insiemi di registri utilizzati
temporaneamente per scrivere i dati dei quali non si ha la certezza
di poterli riscrivere sui registri. sub
WAW
r4 r4 r1
RAW
WAR

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

isti information science and technology institute

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

isti information science and technology institute

4/17

Cercare di prevedere il futuro, lavorando con le scommesse.


usata per prevedere la destinazione dei salti condizionati in cui i registri sono in attesa di essere calcolati.
In un salto condizionato, infatti, quando i dati non sono calcolati, la cpu pu avere fatto il fetch e forse lesecuzione
delle istruzioni successive, che poi andrebbero abortite.
In caso di predizione sbagliata bisogna svuotare il reorder buffer.

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.

Scrittura ( Static Ram )


In scrittura le bit line sono collegata a linee di alimentazione che rappresentano in forma vera e in forma negata il valore
da scrivere nella cella. Quando linterruttore pilotato dalle word line si chiude il valore delle bit line viene imposto alla
cella sbilanciando il bistabile interno.
Rb << Rc

Dynamic Ram ( DRam )

La cella di memoria un condensatore, la cui tensione rappresenta il dato memorizzato.


Una delle due armature del condensatore collegata a massa,
laltra collegata alla bit line attraverso un interruttore
pilotato dal segnale di controllo detto word line.
Quando la word line vale 0 il condensatore isolato e
mantiene la tensione ai suoi capi, e quindi il dato
memorizzato.
Quando la word line vale 1 il condensatore collegato alla bit
line.
o

In scrittura la bit line collegata ad un segnale di


alimentazione ( 0 o 1 ) e impone il suo valore alla
cella.

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.

Dal punto di vista logico una memoria contiene un array di


elementi individuati univocamente da un indice progressivo
che ne rappresenta lindirizzo.
Dal punto di vista implementativo gli elementi di memoria
sono disposti su una matrice quadrata e sono individuati
dallintersezione tra righe e colonne.

Lungo le righe corrono le word line che propagano i segnali di


controllo.
Lungo le colonne corrono le bit line che propagano i dati.
Ogni cella individuata da un indirizzo di riga ( che attiva la corrispondente word line ) e da un indirizzo di
colonna ( che seleziona la corrispondente bit line ).
Per passare dallindirizzo di una cella ai suoi indirizzi di riga e colonna sufficiente dividere i bit di indirizzo
in due parti uguali: i bit pi significativi costituiscono lindirizzo di riga, i meno significativi quello di colonna.

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

e valido, viene utilizzata la copia presente. Viceversa,


viene recuperato dalla memoria principale, e
) & 1 " %
memorizzato, nel caso possa servire successivamente.
" $C"
applied computer science
Computer Architecture
urbino
""
$
worldwide campus
06.02
Memory
hierarchy
Cache a mappatura diretta

(
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

di localit spaziale (copio un intero blocco) e il

#&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,

aggiungendo anche loffset


della cella in ram.

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$

Fully associative cache


RAM
00

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

urbino worldwide campus


% 7$

% ((
( . "
%$
&((%

isti information science and technology


institute

alessandro bogliolo

Computer Architecture
06.02 Memory hierarchy

Fully associative cache

Cache completamente associativa


RAM
00
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

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

applied computer science


urbino worldwide campus

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
.+

isti information science and technology institute

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

urbino worldwide campus

11

Cache: block identification

TAG
111

Identificazione del blocco

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

Cache: block identification


Direct mapped (DM)
Set associative (SA)
FullyBlock
associative
(FA)Block Offset
Address

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

Direct mapped (DM)


Set associative (SA)
Fully associative (FA)

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

isti information science and technology institute

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

applied computer science


urbino worldwide campus

06.02 Memory hierarchy

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

Uses secondary storage to


extend the
address
space
Viene
utilizzato
spazio di indirizzamento logico pi grande di quello fisico e suddiviso in pagine ( zone di memoria
beyond physical
memory
di dimensioni prefissate, generalmente potenze di 2, gestite automaticamente dal sistema indipendentemente dal
contenuto della memoria ) o in segmenti ( zone di memoria di dimensioni arbitrarie ) decise da programmatore in base

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

urbino worldwide campus

06.02 Memory hierarchy

Memoria virtuale contro Caching

Segmenti contro Pagine

Virtual memory vs caches

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

isti information science and technology M


institute

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.

Frammentazione interna: generata dallallocazione di unarea di memoria allinterno di un blocco di


memoria libera, lasciando inutilizzato una parte del blocco ( il frammento ). Se la frammentazione interna
diventa rilevante, si pu arrivare allimpossibilit di funzionamento da parte del sistema in quanto nessun
frammento sufficientemente grande per poter essere allocato.
Frammentazione esterna: si verifica ad esempio nella gestione dello spazio su disco rigido, ed dovuta al fatto
che un file viene allocato in blocchi di memoria, che non sempre su aree contigue della superficie del disco,
cos il file allocato in maniera frammentata, come si dice, sparso sulla superficie del disco. Questo implica
prestazioni inferiori, poich laccesso a un file spesso sequenziale, e quindi il sistema operativo per leggere
blocchi successivi sar costretto a far riposizionare ogni volta la testina di lettura.

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

Per gestire la relazione tra indirizzi logici e fisici il problema si riduce


alla traduzione
degli
pagina.
0

indirizzi
di


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>.$

Virtual Mem: block identification


Both paging and segmentation rely on data
structures indexed by the page or segment
number

C G
0GH!0-2 &
& # ." > - 2 &

."-.$
( , 0> & %
!

alessandro bogliolo

isti information science and technology institute

Computer Architecture

15/19
applied computer science
urbino worldwide campus

06.02 Memory hierarchy

Address translation
CPU
CPU

Virtual

MMU
MMU

PT
page table

Physical

RAM
RAM
22

alessandro bogliolo

isti information science and technology institute

Computer Architecture

applied computer science


urbino worldwide campus

06.02 Memory hierarchy

15/19

Address translation

Traduzione degli indirizzi

Virtual

CPU
CPU

MMU
MMU

Physical

RAM
RAM

La MMU conosce il puntatore alla Page


Table e la CPU divide il vpn, che punta
allelemento rpn, il quale diventa parte di
indirizzo per lidentificazione in memoria
concatenandoci il po ( offset).

PT
page table

vpn

po
rpn

rpn

po

Computer Architecture

applied computer science


urbino worldwide campus

06.02 Memory hierarchy

Address translation
(paged page table)

Paginazione della tabella delle pagine


alessandro bogliolo

CPU
CPU

isti information science and technology institute

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

(Translation Lookaside Buffer, TLB)

23

Computer Architecture

applied computer science


urbino worldwide campus

06.02 Memory hierarchy


Address translation

(Translation Lookaside Buffer, TLB)

Traslation Lookaside Buffer ( TLB, cache della tabella delle pagine )

Se la tabella delle pagine


memorizzata in Ram, ogni
accesso in memoria richiede
2 accessi alla Ram: uno per
recuperare il rpn dalla PT,
uno
per
accedere
allindirizzo fisico richiesto.
Se la tabella gerarchica, gli
accessi alla Ram neessari a
realizzare un accesso alla
memoria logica sono 3 o pi.
Per
migliorare
le
pefermonace si utilizza una
cache associativa per i rpn,
detta traslation lookaside
buffer.
Si
noti che ilArchitecture
TLB contiene gli ultimi rpn utilizzati e i relativi vpn ( usatiapplied
comecomputer
tag di science
una cache associativa ).
Computer
urbino worldwide
06.02 Memory
Poich
rpn ehierarchy
vpn restano immutati fintanto che il microprocessore indirizza
celle dicampus
memoria appartenenti alla stessa
pagina, il principio di localit degli accessi alla PT particolarmente valido, rendendo molto efficace il caching anche
se il TLB molto piccolo ( viene sfruttato bene il principio di localit).

Cache and Virtual memory


alessandro
bogliolo virtuale
Cache
e memoria

isti information science and technology institute

Physical cache: address translation needed to access the cache


CPU
CPU

Virtual

MMU
MMU

Physical

Cache
Cache RAM
RAM

Virtual cache: no address translation needed to access the cache


CPU
CPU

Virtual

MMU
MMU

Physical

18/19

Nella physical cache in caso di


Miss impatta lHit time.
Il virtual cache pi vantaggioso
perch se il dato che voglamo sta
in cache non viene creato
lindirizzo fisico.
La cache viene messa a monte o
valle della MMU, inoltre in caso
di Miss impatta il Miss rate.

RAM
RAM

Cache
Cache

alessandro bogliolo

isti information science and technology institute

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.

mation science and technology institute

erals

A ciascuno registro associato un proprio indirizzo dato che possono


essere letti o scritti, per lo spazio riservato ad essi deve essere diverso da
quello utilizzato dalla memoria e quindi adottiamo due organizzazioni:
- Memory mapped: per la r/w si usano le stesse istruzioni usate per la
memoria, si distinguono solo dai loro indirizzi.
- I/O mapped: la macchina presenta un numero di istruzioni dedicate alle
operazioni di I/O quindi utilizzano un Op Code differente.
I registri di un dispositivo hanno lo stesso indirizzo di celle di memoria.
Le parti che compongono linterfaccia devono quindi poter essere
indirizzate, quindi necessitano di una decodifica. A questo scopo il
comparatore (CMP) decodifica gli indirizzi del bus in quelli dedicati al
dispositivo, che si pu interfacciare al bus.

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.

e instructions to provide high- Computer Architecture


Paradigmi di sincronizzazione:
1.

applied computer science


urbino worldwide campus

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.

waits by polling the status register


...
while (peripheral.status != READY) {}
...
2.

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

isti information science and technology institute

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

Questo modello prevede anche luso


di un interrupt controller per la
gestione. Ogni IC mette a
disposizione una serie di porte
simili a quelle messe a disposizione
dalle cpu e notifica le richieste al
processore e gestisce anche le
priorit tra dispositivi attraverso un
canale ( di ritorno ).

applied computer science


urbino worldwide campus

07 Communication

Computer Architecture

applied computer science


urbino worldwide campus

Inoltre mette sul bus dati le


informazioni
riguardanti
il
dispositivo, sempre sollecitato dalla
cpu. Pi IC possono anche essere
messi in cascata che nel complesso
8/10
si comportano come un unico IC, in
ISR
modo trasparente alla cpu.

07 Communication

Handling multiple interrupts Handling multiple interrupts


alessandro bogliolo

isti information science and technology institute

ISR

(a)

(a)

(b)

(b)

(c)
alessandro bogliolo

isti information science and technology institute

Computer Architecture
07 Communication

(c)
alessandro bogliolo

3.

9/10
applied computer science
urbino worldwide campus

Direct Memory Access

isti information science and technology institute

9/10

Direct memory access: modalit di sincronizzazione che si


applied computer science
Computer Architecture
applica tra trasferimento dati tra memoria e periferica urbino
anche
worldwide campus
07 Communication
se impiega il processore per gestire il traffico sul bus, e gestire
i registi. Viene allora utilizzata una tecnica hardware; un
DMA ha il compito di gestire il traffico sul bus tra periferiche
e memoria. Riceve le richieste dalle periferiche e invia alla
cpu dopo aver reso il DMA master del bus, lo riprende
quando DMA controller glielo concede. Questo metodo
molto vantaggioso dato che consente di fare tutto in un solo
ciclo di bus e inoltre il processore pu fare qualsiasi cosa che
non sia in conflitto con il bus.

Direct Memory Access

alessandro bogliolo

alessandro bogliolo

isti information science and technology institute

26

10/10

isti information science and technology institute

10/10