Sottosistemi ed Architetture Memorie

Transcript

Sottosistemi ed Architetture Memorie
Sottosistemi ed Architetture
Memorie
CORSO DI CALCOLATORI ELETTRONICI I
CdL Ingegneria Biomedica (A-I)
DIS - Università degli Studi di Napoli “Federico II”
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
La memoria centrale
¾
Memoria centrale: array di parole o word (parola: stringa di m bit)
¾
Il processore accede agli m bit di una word mediante un’unica operazione
di lettura/scrittura
¾
Ogni parola è individuata da un indirizzo (intero compreso tra 0 e N-1,
rappresentato da n bit con n: N = 2n )
¾
Memoria ad accesso casuale (RAM): il tempo di accesso non dipende dalla
posizione del dato
bit
bit
7 6 5 4 3 2 1 0
MSB
LSB
0
1
2
..
..
m=8
N-2
N-1
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Organizzazione della memoria
I processori a parola accedono alla memoria con un parallelismo pari alla
lunghezza della parola (in genere 16, 32 o 64 bit)
Memoria byte-addressable: il byte è la più piccola unità indirizzabile
Disposizione dei byte di una word: big endian e little endian (anche detti
inverso e diretto, rispettivamente)
MS byte
0
4
LS byte
1
5
2
6
3
7
....
2k-4
2k-3
2k-2
2k-1
Disposizione BIG-ENDIAN
MS byte
Parola 0
Parola 4
..
..
Parola 2k-4
3
7
LS byte
2
6
1
5
0
4
2k-3
2k-4
....
2k-1
2k-2
Parola 0
Parola 4
..
..
Parola 2k-4
Disposizione LITTLE-ENDIAN
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Organizzazione della memoria
MC 68K
BIG ENDIAN
10 A3 E6 FF
parola all'indirizzo 1000
[1000] = 10
[1001] = A3
[1002] = E6
[1003] = FF
Intel x86
LITTLE ENDIAN
FF
E6
A3
10
parola all'indirizzo 1000
[1000] = FF
[1001] = E6
[1002] = A3
[1003] = 10
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Memoria: parole allineate e non allineate
¾
¾
¾
¾
Per un processore a 16 bit, una parola che inizia ad un indirizzo pari si
dice “allineata sul limite di parola”
Tipicamente, un processore accede ai byte che costituiscono una parola
allineata mediante una sola operazione di lettura (Read o Fetch)
MC 68000: NON consente parole non allineate
Intel x86: consente l’utilizzo di parole non allineate (parole che iniziano
ad un indirizzo dispari) ma in tal caso sono necessari 2 accessi in
memoria:
Parola X
Parola X+2
(X pari)
byte 1
byte 0
X+1
X+3
X
X+2
MSB
LSB
X+2
X+1
Parola non allineata sul limite di parola
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Parametri di una memoria
Capacità di memoria:
• numero N di registri che la costituiscono
• lunghezza in bit del singolo registro
ESEMPI:
1 M * 8 bit (220 registri da 8 bit)
16k * 32 bit (16*210 registri da 32 bit)
Tempo di accesso (tempo per effettuare un’operazione di lettura o scrittura):
- tempo per operare la selezione
- tempo per l’operazione di lettura/scrittura
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Interazione processore-memoria
Read Enable (RE)
Address bus
INDIRIZZO
Memoria
Write Enable (WE)
Data bus
DATO
c bit
m bit
MA
MB
Unità di
controllo del
processore
Processore
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Per effettuare la lettura di una parola dalla memoria la CPU:
• passa in MA l’indirizzo della parola che si vuole accedere:
MA←INDIRIZZO;
•attiva l’accesso in lettura, ossia il dato di indirizzo MA passa in MB:
abilita RE (Read Enable);
•il dato scaricato in MB viene portato nel registro DATO:
DATO←MB;
Tempo di accesso: tempo necessario perché, fornito l’indirizzo, il
dato passi nel registro MB.
NOTA: Read Enable può essere realizzato in modi differenti
es: RE = E • R con: E = enable;
R = not(W) indica lettura se 1 - scrittura se 0
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Tecniche di sincronizzazione processore-memoria
•Tecnica asincrona:
asincrona
- il processore aspetta che la memoria segnali il completamento
dell’operazione tramite un apposito segnale (ACK)
- in questo modo il processore si adatta alla velocità della memoria
• Tecnica sincrona:
sincrona
- una delle linee di controllo tra processore e memoria trasporta impulsi
prelevati da un clock a frequenza fissa
- un’operazione di lettura/scrittura si completa entro un ciclo di clock
- il ciclo di clock deve essere dimensionato sulla velocità della memoria
• La soluzione asincrona è più complessa ma preferibile in quanto rende
indipendente il progetto della memoria da quello della CPU.
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Input/Output
Il sottosistema di I/O consente al processore di interagire con le
periferiche di input e di output
Periferiche di input: tastiera, mouse, ecc.
Periferiche di output: schermo, stampante, plotter, ecc.
Periferiche di input/output:
» memorie di massa
» schede di rete
» porte di comunicazione seriale
» ecc...
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Architettura generale CPU-memoria-I/O
¾ Due
modelli distinti di collegamento:
» Modello a bus unico:
unico su un bus unico sono collegati
memoria e sistema di I/O. Modello “Memory Mapped I/O”.
» Modello a bus distinti:
distinti due distinti bus fisici, uno per la
memoria e l’altro per l’I/O. Modello “Isolated I/O”
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Architettura CPU-memoria-I/O: Bus Unico
Il bus di collegamento CPU, Memoria e I/O si suddivide in tre bus
componenti:
» Bus-dati:
dati utilizzato per il trasferimento dei dati;
» Bus-indirizzi:
indirizzi utilizzato per il trasferimento dell'indirizzo (di memoria o
di I/O) dal quale o verso il quale il dato è indirizzato;
» Linee di controllo:
controllo utilizzate per il trasferimento di informazioni per il
controllo (R/W Enable, ack, ..).
Dati
Indirizzi
Controllo
I/O
CPU
MEM
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Architettura generale CPU-memoria-I/O
DMA (Direct Memory Access): nei sistemi in cui esiste un
collegamento fisico tra interfacce di I/O e memoria è
possibile realizzare la tecnica DMA che consente la
trasmissione di blocchi di dati direttamente da o verso la
memoria.
¾ Un
tale schema è realizzabile sia in sistemi a bus distinti
che a bus unico.
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Il processore
Istruzioni tipiche di un processore:
» trasferimento dati memoria-registri
» operazioni aritmetico/logiche
» istruzioni per il controllo del flusso
» trasferimento dati input/output
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Formato delle istruzioni
Un’istruzione si compone di:
• un codice operativo (OPCODE)
• zero o più operandi
Tipi di operandi:
• operando costante (immediato esplicito o implicito)
• operando memoria
• operando registro (esplicito o implicito)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Formato delle istruzioni
Istruzioni a 0 operandi
OPCODE
Istruzioni a 1 operando
OPCODE
OP1
Istruzioni a 2 operandi
OPCODE
OP1
OP2
Istruzioni a 3 operandi
OPCODE
OP1
OP2
OP3
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Formato delle istruzioni
Codifica delle istruzioni a lunghezza
fissa:
le istruzioni hanno tutte la stessa lunghezza in bit
variabile:
le istruzioni possono essere di lunghezze differenti.
Sono possibili diverse relazioni tra la lunghezza dell’istruzione e la
lunghezza della parola del processore
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Formato delle istruzioni
Codifica delle istruzioni a lunghezza variabile (calcolatore a byte)
Indirizzo 0
1
parola
Istruzione
Istruzione
2
...
Istruzione
Codifica delle istruzioni a lunghezza fissa (calcolatore a voci)
parola
Indirizzo 0
Istruzione
1
Istruzione
2
...
Istruzione
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Algoritmo fondamentale del processore
Inizializzazione
Instruction Fetch & Decoding
Operand assembly
Execute
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Fase fetch (struttura a voce)
1.
BUS :=PC
2. MA:=BUS
{MA:=PC}
3.
Invia il RE alla memoria, che abilita MB:=M[MA]
4.
BUS :=MB
5.
D:=BUS
6.
PC:=PC+(numero di byte della word)
{D:=MB}
Ad esempio nei processori a voce, con indirizzamento a byte e
lunghezza della parola di 16 bit (accesso in memoria è con
parallelismo 16), si ha PC:=PC+1, PC:=PC+2.
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Fase operand assembly
move
Modo indir.
03
A
codice operativo
modo di ind. dell'operando in memoria
indirizzo dell'operando registro (uno degli 8 registri generali)
indirizzo dell'operando memoria
Se il modo di indirizzamento indica indirizzamento indiretto, la semantica
dell’istruzione è
R03 := M[M[A]]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Fase operand assembly: esempio
move
Indiretto
03
A
preparazione dell’operando
1. carica in MA, attraverso l’address BUS, il valore di A
2. invia il RE alla memoria, che pone MB:=M[A]
3. carica in MA, attraverso l’address BUS, il valore di MB
4. invia il RE alla memoria, che pone MB:=M[MB]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Fase execute
Ad esempio, completando l’istruzione precedente:
1.
BUS :=MB
2.
R[RA]:= BUS
{registro destinazione:=operando origine}
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli