Sei sulla pagina 1di 17

Architettura degli Elaboratori

Corso di Laurea Triennale in Informatica


Universit degli Studi di Bari Aldo Moro
Anno Accademico 2012-2013

Lez.6 : Il livello ISA

Lezioni : Sebastiano Pizzutilo

Architettura di un elaboratore

Architettura progetto dello schema funzionale (organizzazione) di un elaboratore :


Set di istruzioni
Componenti HW

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

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

ARCHITETTURA IS DELL ELABORATORE


Studiare larchitettura a livello di Instruction Set vuol dire studiare:
LORGANIZZAZIONE
DELLA MEMORIA
LORGANIZZAZIONE DEI
REGISTRI
LE STRUTTURE DI DATI

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

Organizzazione della memoria


a livello ISA
Struttura gerarchica delle unit fisiche di informazione su cui opera il
computer con i suoi circuiti:
Half-Byte
Byte
Word
D o u b l e
word

4 bit
8 bit
16 bit
32 bit .

Tutti i computer suddividono la memoria in celle (byte) indirizzate in modo


consecutivo. Tali celle vengono raggruppate in parole di 2 , 4 , 8 , 16 o 32 byte a
seconda della architettura a livello fisico - per consentire luso di istruzioni apposite
a livello ISA - per manipolare intere parole.

Molte architetture inoltre richiedono che le parole siano


allineate lungo le loro estremit. Tale allineamento rende pi
efficiente laccesso alla memoria.

Modelli di memoria ed allineamento


Ad esempio, se le parole di memoria sono allineate a 4 byte :
3

4
8

Little endian

12

(Intel,.)

16

xxx

xxx+4

xxx+8
xxx+12
+xx+16

Big endian
(Sparc, main frame
IBM,)

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

I registri
Tutte le operazioni sono eseguite sui dati che devono necessariamente
transitare dai registri interni al processore.

Registri generali : possono essere controllati dal


programmatore e vengono usati per conservare e manipolare
dati (operandi e risultati).
Registri dedicati : non possono essere usati dal
programmatore
PC (Program Counter), IR (Instruction Register), MAR
(Memory Address Register),
PSW (Program Status Word) (ibrido)

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

Push A; Push B; Add; Pop C

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, )

Le strutture di informazione a livello ISA

1. I dati

Componenti: - indirizzo
- valore
- tipo

2. Le istruzioni di macchina per specificare al processore le


operazioni da effettuare -
-

Formato istruzione
Tipo istruzione

3. I riferimenti alle informazioni si realizzano specificando la


LOCAZIONE ed il TIPO
- la memoria centrale
- i registri(dedicati e generali)
- lo stack

- indirizzi espliciti
- indirizzi impliciti

I DATI

Dato = informazione codificata in modo da poter essere trattata


dallelaboratore nel modo specificato dal codice operativo.

Tipi di dati (Data type) = insieme di valori e operazioni definite su essi


ad es.
Integer: set di interi con le operazioni +,-,*,
Stringa: sequenze di caratteri alfabetici con operazioni di concatenazione, selezione, ecc;

Ad ogni livello dellelaboratore corrisponde un insieme diverso


di dati.
I dati a livello di linguaggio macchina sono diversi dai dati ai livelli
superiori :
Es. dato di tipo indirizzo di memoria
Essenziale a livello di linguaggio macchina
Assente in linguaggi ad alto livello
Es. dato di tipo record
Assente in linguaggio macchina
Presente in linguaggio ad alto livello
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori

Strutture logiche e fisiche per


contenere 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

in questo caso lindice J pu assumere i valori da 1 a 7


CdL in Informatica - Universit di Bari
Architettura degli Elaboratori

Lo Stack per contenere i dati


Stack: struttura dati con una organizzazione L.I.F.O.
(Last In First Out) delle operazioni di inserimento (push)
ed estrazione (pop) di un dato.
Pop acc
acc

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

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

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

Nome dei campi

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

Insieme delle istruzioni


Istruzione = parola del linguaggio macchina.
Insieme delle istruzioni = vocabolario del linguaggio
macchina.
Formato di istruzione = sintassi della parola.
Caratteristiche del set di istruzioni:
. Completezza
Il set di istruzioni deve includere tutte le operazioni di base per i tipi
di dati presenti nellISA
. Ortogonalit
Istruzioni non ridondanti: un solo modo per effettuare una istruzione
. Compatibilit
Una famiglia di elaboratori deve poter utilizzare gli stessi programmi
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori

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

Campo modo Campo tag

qFormato non ortogonale

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.

Formato istruzione e dimensione delle


parole di memoria
La lunghezza dellistruzione dipende dal numero di operandi e la lunghezza
del codice operativo funzione del numero di istruzioni diverse previste.
Le istruzioni fanno uso di un numero intero di parole o di un loro
sottomultiplo.
1
1 word
1 istruzione
K word 1 istruzione
2
istruzione istruzione 1 word
K
Scelte architetturali:
Istruzioni brevi
Minore occupazione di memoria
Maggiore velocit di trasferimento e quindi di esecuzione delle istruzioni
Istruzioni lunghe
Minor numero di trasferimenti
Complessit maggiore per lunit di controllo
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori

Codice operativo
C.O. a lunghezza fissa

C.O. a lunghezza variabile


(B)

(A)

Con Formato di istruzione


a lunghezza fissa

Con Formato di istruzione


a lunghezza variabile

(A) Codice operativo espandibile, in istruzioni a lunghezza


fissa
k
C.O.
k+1
k-1

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

Compromesso tra numero di istruzioni e numero di locazioni di memoria


indirizzabili

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

Un codice operativo a n bit permette di definire 2n istruzioni distinte

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

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

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

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

I METODI DI INDIRIZZAMENTO
Rappresentano i modi con cui il processore interpreta
linformazione presente nellistruzione per risalire agli operandi.
istruzione
Codice operativo

riferimenti agli operandi

registro
operando

locazione di memoria
operando

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

11

Indirizzamento immediato
Loperando collocato direttamente nel campo operandi dellistruzione

C.O.

operando

VANTAGGIO: Lesecuzione della istruzione immediata poich non richiede


accessi in memoria.
SVANTAGGIO: il valore delloperando limitato dalla lunghezza del campo
address.
Ad es.:

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

Stack con indirizzi decrescenti

Indirizzo

stack
Operando

Stack con indirizzi crescenti

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

Es. ADD R1, R2

(R1R1+R2)

VANTAGGIO: Accesso molto rapido ai registri ed indirizzamento con pochi bit,


SVANTAGGIO: n di registri limitato, pu essere necessario andare a
memorizzare risultati intermedi

Indirizzamento diretto o assoluto


Loperando collocato in memoria principale allindirizzo specificato nel
campo address dellistruzione
locazione di memoria
C.O.

indirizzo

operando

Es. ADD R1, (1001)


VANTAGGIO: Utile per accedere a dati statici
SVANTAGGIO: Dispendioso per la rappresentazione degli indirizzi nel formato
di istruzione; richiede un accesso in memoria

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

SVANTAGGIO: Occorrono due accessi alla memoria, uno per il puntatore e


uno per loperando
VANTAGGIO: Allargamento spazio degli indirizzi per architetture con
istruzioni a lunghezza fissa

Indirizzamento a registro indiretto (o differito)


Loperando collocato in memoria principale allindirizzo specificato nel
registro riferito nel campo address dellistruzione
C.O.

n. registro

Es. ADD R1, (R1)

Indirizzo mem
registro

operando
Locazione di memoria

VANTAGGIO: istruzione con lunghezza piccola

13

Indirizzamento indicizzato
Lindirizzo effettivo delloperando calcolato sommando due
valori:
uno dei due valori contenuto esplicitamente nellistruzione,
laltro contenuto in un registro

Indirizzamento indicizzato con registro base


Nel campo address dellistruzione presente il riferimento al registro che
contiene un indirizzo base e un valore detto spostamento (offset o
displacement)
n. registro

C.O.

offset

Indirizzo base

registro

Addresseff= base + offset

operando
Locazione di memoria

- VANTAGGIO: usando pi registri base si possono indirizzare aree di memoria


ovunque dislocate
Es.: Famiglia Intel 80x86 Indirizzamento con 4 registri base detti di segmento, ognuno dei quali
punta alla base di un segmento di memoria di 64K locazioni (16-bit address)
CS: segmento istruzioni (codice) SS: segmento stack SD: segmento dati SE: segmento extra

Indirizzamento indicizzato con registro indice


Nel campo address dellistruzione presente il riferimento al registro che
contiene lo spostamento (indice) ed un valore che rappresenta un
indirizzo
C.O.

n. registro

Indirizzo base

offset
Registro indice

Addresseff= offset + base

operando
Locazione di memoria

Es. ADD 1050(R1), R2


base

ADD

1050

R1
20

R2
1050

Registro R1

Addresseff=1050+20= 1070

operando

14

Indirizzamento indicizzato con registro indice

- VANTAGGI : Efficiente per operazioni su vettori


La base lindirizzo del 1 elemento del vettore
Loffset lindice dellelemento del vettore

Es. Move A(R0), B(R0)


Sposta il contenuto della locazione A+k nella locazione B+k, se k il
contenuto di R0
A

Con indirizzamento indicizzato


Stessa istruzione per k variabili da 1 a N

N
Con indirizzamento diretto o indiretto
N istruzioni, ossia una istruzione per ogni
componente del vettore

Esistono diverse varianti della modalit di indirizzamento indicizzato:


Ad es. il contenuto di un secondo registro pu essere usato al posto della costante X

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

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

N.B.: Un programma pu essere caricato in aree diverse senza aggiornare


alcun registro (il PC assume automaticamente i valori relativi allarea specifica)
CdL in Informatica - Universit di Bari
Architettura degli Elaboratori

15

Indirizzamento con autoincremento


Indirizzamento a registro indiretto + autoincremento automatico del
contenuto del registro
registro
C.O.

n. registro
lunghezza

indirizzo

operando
Locazione di memoria

Il parametro lunghezza rappresenta la dimensione in word o byte delloperando e


pu essere esplicita o implicita (nel codice operativo)
VANTAGGI: Incremento delladdress dopo lutilizzo per es. per realizzare laccesso
sequenziale agli elementi di un vettore o ai caratteri di una stringa

Indirizzamento con autodecremento


Indirizzamento a registro indiretto + autodecremento automatico del
contenuto del registro . Decremento delladdress prima dellutilizzo
registro

C.O.

n. registro

indirizzo

lunghezza

operando
locazione di memoria

-VANTAGGI : Facilit di manipolazione dello stack

Indirizzamento mediante modo e registro


Metodo che specifica il tipo di indirizzamento utilizzando sempre
linformazione contenuta nel campo modo e in un registro
6+1+1 bit

C.O., D,W

8 bit

MODE
Register/Memory

0=R>M, 1=M>R

0=8bit, 1=16 bit

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

MOV BL,AL => 100010 0 1


OPCODE D W
= (89 C3)h

11
MOD

000 011
REG R/M "

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

16

I METODI DI INDIRIZZAMENTO (1)


Nellistruzione
IMMEDIATO

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

CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

I METODI DI INDIRIZZAMENTO (2)


Nellistruzione
Con REGISTRO BASE

Con REGISTRO INDICE

RELATIVO

Con AUTOINCREMENTO/
AUTODECREMENTO

registro
spostam.
registro
indirizzo

nel registro
indirizzo

spostam.

PC

spostam.

registro
lunghezza

in memoria
operando

operando

operando

+
indirizzo

operando

+/CdL in Informatica - Universit di Bari


Architettura degli Elaboratori

17