Professional Documents
Culture Documents
Architettura di un elaboratore
Hardware System Architecture (HSA): definizione del progetto logico delle parti
(sottosistemi) HW e della organizzazione del flusso di dati tra tali sottosistemi.
Instruction Set Architecture (ISA): definizione del set di istruzioni a livello di
linguaggio macchina
Livello assemblativo
Livello di
Sistema Operativo
Livello di
linguaggio macchina
Livello di
microprogrammazione
Livello hardware
ISA
HSA
Determina le caratteristiche
computazionali dellelaboratore e
specifica come il livello di linguaggio
macchina interagisce con il livello HW
Determina le caratteristiche
strutturali dellelaboratore
LINSIEME DELLE
ISTRUZIONI
Generali e
Dedicati
- come rappresentarli
- quale tipo di accesso
- come operare
Per tipologia di
formato e di
operazione
I RIFERIMENTI AI DATI
- per nome
- per indirizzo
- per valore
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori
4 bit
8 bit
16 bit
32 bit .
4
8
Little endian
12
(Intel,.)
16
xxx
xxx+4
xxx+8
xxx+12
+xx+16
Big endian
(Sparc, main frame
IBM,)
I registri
Tutte le operazioni sono eseguite sui dati che devono necessariamente
transitare dai registri interni al processore.
Registro dei FLAG che contiene vari bit di natura eterogenea necessari alla CPU per
controllare il risultato delle operazioni della ALU. Ad esempio il flag Z (posto a 1 se il
risultato delloperazione =0) o il flag C (posto a 1 se c riporto), .
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori
Larchitettura ed i Registri
Classificazione delle architetture in base al numero ed al tipo di
registri presenti.
Architettura a stack
Architettura che usa lo stack per conservare gli operandi ed il risultato
di unoperazione
Es. Addizione: C=A+B
Architettura a registri
General purpose
Macchina con set di registri che possono essere usati come accumulatori, registri
di indirizzo, stack, registri generali. Il riferimento ai registri contenenti gli
operandi deve essere specificato nella istruzione
Es. Addizione: C=A+B Load R1, A; Load R2, B; Add R1,R2; Store C, R2
Special purpose
Macchina con ampio set di registri dedicati le cui funzioni sono predefinite (ad
es. stack pointer, PC, )
1. I dati
Componenti: - indirizzo
- valore
- tipo
Formato istruzione
Tipo istruzione
- indirizzi espliciti
- indirizzi impliciti
I DATI
Strutture logiche
Strutture fisiche
La variabile
Larray (il vettore, la matrice)
Lo stack
La coda (queue)
Il record
Lalbero
Le memorie
I registri
La variabile e larray
Variabile = struttura dati caratterizzata da un nome ed un valore
sulla quale possibile effettuare operazioni di scrittura (assegnazione),
lettura, cancellazione e copia del valore.
Var0 = 94
Ad es. variabile intera var0 che contiene il valore (dato) 94
Array = struttura dati (mono o multidimensionale) caratterizzata da un
nome, da un insieme multiplo di valori omogenei (dati) e con una
organizzazione dellaccesso ai dati governato da (una o pi) variabili
indice.
Ad es. il vettore vet1(j) j=1,7 array monodimensionale di 7 valori interi
Ad es. dati = 10, 5, 7, 0, 8, 354, 0
Nome: vet1
10
Indice : J=1..7
8 354 0
134
Push 134
Top
a
a+1
134
Stack Pointer
a+n
STACK
Bottom
La coda
Coda (queue) = struttura dati con una organizzazione
F.I.F.O. (First In First Out) delle operazioni di
inserimento (input) ed estrazione (output) di un dato.
input
35
ciao
pippo
output
Il record
Record = struttura dati caratterizzata da un nome e da uno
o pi campi con nome, lunghezza e tipo di dato diversi.
Ad es., record studente con 5 campi diversi :
campi
Nome
Cognome
Et
Sesso
Matricola
pippo
pippani
23
M
23411X
Valori dei campi
10 caratteri alfabetici
20 caratteri alfabetici
intero di 2 caratteri
1 carattere alfanumerico
alfanumerico di 6 caratteri
Tipo e lunghezza dei
campi
IL FORMATO DI ISTRUZIONE
Formati a lunghezza fissa:
Per ogni istruzione una parola sufficientemente lunga da ospitare tutti i tipi di
istruzioni.
Formati a lunghezza variabile:
Per ogni istruzione una parola di lunghezza variabile a seconda del numero
di operandi o del tipo di istruzione
qFormato ortogonale
Ogni istruzione contiene un campo modo (e/o un tag) per specificare le
informazioni (tipo e numero) relative agli operandi e/o allindirizzamento
Codice operativo 0
Operando/i
Quando per ogni operazione esistono diversi codici operativi a seconda del
numero di operandi e della loro lunghezza
Quindi, quando pi informazioni sono specificate in campi separati, si parla di formato di istruzione
ortogonale. Lalternativa di avere tanti codici operativi diversi (anche per una stessa operazione)
per quanti sono i tipi di indirizzamento previsti.
Codice operativo
C.O. a lunghezza fissa
(A)
n
address
n-1
n+1
2k operazioni diverse
2n indirizzi
2k+1 operazioni diverse
2n-1 indirizzi
2k-1 operazioni diverse
2n-1 indirizzi
Esempio 1
22 bit
2
2
Campo C.O.
modo
16
indirizzo delloperando 2 in memoria
Numero registro (operando 1)
Determina la dimensione
del codice operativo
00 C.O. a 22 bit 222 istruzioni a zero operandi (0 address)
01 C.O. a 16 bit 64 istruzioni a 1 operando (1 address)
10 C.O. a 2 bit 4 istruzioni a 2 operandi (2 address)
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori
Esempio 2 : la progettazione
Esempio di possibile organizzazione del codice espandibile (in base al numero di istruzioni
necessarie per ciascun tipo) in un formato di istruzione a lunghezza fissa
Campo
OPCODE
R = riferimento
a (operando in)
registro
A= riferimento a
(operando in)
memoria
4 bit
4 bit
0000
0001
.
16 bit
15 istruzioni a
due operandi
1111
1111
...
0000
0001
15 istruzioni ad
1 operando
11111111 0000000000000000
11111111 0000000000000001
.
.
11111111 1111111111111111
65.536
64 k = 216
istruzioni a
zero operandi
10
Il Riferimento ai dati
Il riferimento a un dato il modo in cui nellistruzione si
specifica la struttura fisica che supporta il dato
La struttura fisica che supporta il dato pu essere :
Memoria
Riferimento esplicito allindirizzo
memoria
di una locazione di
Registro
Riferimento esplicito al numero di registro
Stack
Riferimento implicito ad un registro (stack pointer) che contiene
laddress del top dello stack
I METODI DI INDIRIZZAMENTO
Rappresentano i modi con cui il processore interpreta
linformazione presente nellistruzione per risalire agli operandi.
istruzione
Codice operativo
registro
operando
locazione di memoria
operando
11
Indirizzamento immediato
Loperando collocato direttamente nel campo operandi dellistruzione
C.O.
operando
ADD
Ax
ADD Ax,3
(Ax Ax+3)
MOV
Ah
MOV Ah,5
(Ah 5)
Indirizzamento implicito
Loperando contenuto in un particolare registro della CPU specificato
IMPLICITAMENTE nel codice operativo dellistruzione:
Program Counter Indirizzo della successiva istruzione
Accumulatore
Operando
Stack pointer
Operando al top dello stack
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori
Indirizzamento implicito
Indirizzamento implicito
a registro
Indirizzamento implicito
a stack
C.O.
C.O.
Operando
ACC.
SP
Indirizzo
stack
Operando
PUSH A
SP(SP)-1
(SP)(A)
PUSH A
SP(SP)+1
(SP)(A)
POP A
A((SP))
SP(SP)+1
POP A
A((SP))
SP(SP)-1
12
Indirizzamento a registro
Loperando collocato in un registro specificato nel campo operandi
dellistruzione
registro
C.O.
C.O.
n. registro
reg1
operando
reg2
(R1R1+R2)
indirizzo
operando
Indirizzamento indiretto
Loperando collocato in memoria centrale allindirizzo specificato in
unaltra locazione di memoria il cui indirizzo specificato nel campo
address dellistruzione
C.O.
Indirizzo mem
Indirizzo mem
Locazione di memoria
operando
Locazione di memoria
n. registro
Indirizzo mem
registro
operando
Locazione di memoria
13
Indirizzamento indicizzato
Lindirizzo effettivo delloperando calcolato sommando due
valori:
uno dei due valori contenuto esplicitamente nellistruzione,
laltro contenuto in un registro
C.O.
offset
Indirizzo base
registro
operando
Locazione di memoria
n. registro
Indirizzo base
offset
Registro indice
operando
Locazione di memoria
ADD
1050
R1
20
R2
1050
Registro R1
Addresseff=1050+20= 1070
operando
14
N
Con indirizzamento diretto o indiretto
N istruzioni, ossia una istruzione per ogni
componente del vettore
Indirizzamento relativo
Indirizzamento indicizzato con registro base che assume implicitamente
come registro base il Program Counter
100
JMP 105
105
100
JMP 5
Programmi indipendenti
dalla posizione
(rilocazione dinamica)
105
Ind. assoluto
Ind. relativo
15
n. registro
lunghezza
indirizzo
operando
Locazione di memoria
C.O.
n. registro
indirizzo
lunghezza
operando
locazione di memoria
C.O., D,W
8 bit
MODE
Register/Memory
0=R>M, 1=M>R
MOD. REG.
R/M
2
3
3
Il campo MODE (5 bit +3 per registro) specifica la modalit di indirizzamento (25
modalit possibili)
Un operando specificato dal campo MOD di 2 bit e dal campo R/M di 3 bit
Laltro operando sempre in un registro specificato dal valore del campo REG
Ad es.Intel 80x86
11
MOD
000 011
REG R/M "
16
nel registro
in memoria
Operando
DIRETTO
indirizzo
IMPLICITO a
registro
operando
operando
SP
IMPLICITO a stack
Stack
indirizzo
INDIRETTO
indirizzo
A REGISTRO
registro
operando
A REGISTRO
INDIRETTO
registro
indirizzo
operando
indirizzo
operando
operando
RELATIVO
Con AUTOINCREMENTO/
AUTODECREMENTO
registro
spostam.
registro
indirizzo
nel registro
indirizzo
spostam.
PC
spostam.
registro
lunghezza
in memoria
operando
operando
operando
+
indirizzo
operando
17