Sei sulla pagina 1di 20

Principi di architetture dei calcolatori:

larchitettura ARM.
Mariagiovanna Sami

20092009-10

Che cosa ARM

In realt, non un solo microprocessore, ma


unintera famiglia
Oggi, probabilmente larchitettura pi diffusa
per sistemi embedded (dai cellulari allI-Pad a
un grandissimo numero di applicazioni di ogni
genere!)
ARM come azienda non produce silicio vende
propriet intellettuale (linsieme delle
istruzioni, la microarchitettura delle CPU)
-2-

20092009-10

Che cosa ARM

Di norma, i processori ARM compaiono come


componenti (detti core) di circuiti integrati
pi complessi; tipicamente, su un chip oltre alla
(alle) CPU compaiono memorie, controllori di
periferiche, dispositivi dedicati a specifici
compiti quali elaborazione di segnale etc.
Si tratta di unarchitettura semplice, studiata
per basso consumo di potenza e fortemente
modulare.

-3-

20092009-10

Che cosa ARM


Il concetto ARM:
Sviluppato allinizio degli anni 80 per realizzare
un personal computer a basso costo (lazienda
inglese - si chiamava Acorn Computers);
Realizzato a partire dalla proposta del MIPS
(architettura RISC di tipo pipelined);
Prima versione (v1): 1985.
1990: nasce ARM da una joint venture con Apple
per realizzare il primo PDA (Newton).
-4-

20092009-10

ARM: architettura-base
Essenzialmente:
Architettura di tipo load-store: le istruzioni
che elaborano dati operano solo su contenuti di
registri interni alla CPU, le istruzioni che possono
accedere alla memoria sono solo letture (load,
da memoria a un registro interno della CPU) e
scritture (store, da un registro alla memoria);
Le istruzioni aritmetico-logiche specificano i
registri di due operandi e del risultato
-5-

20092009-10

ARM: architettura-base
La pipeline originale:
Pipeline su tre stadi:

Lettura (F) legge unistruzione dalla memoria


Decodifica (D) decodifica listruzione e genera i segnali
di controllo necessari
Esecuzione (E):

Leggi gli operandi dai registri


Eventualmente fai scorrere uno degli operandi
LALU genera il risultato
Il risultato viene scritto nel registro destinazione

-6-

20092009-10

ARM: architettura-base

Si noti: nel primo schema,


esiste ununica unit di
memoria (si adotta lo
schema Von Neumann
invece di quello Harvard).
La disponibilit di ununica
porta di memoria provoca
uno stallo a ogni istruzione
load o store, dato che non
si pu leggere la prossima
istruzione mentre si
legge/scrive un dato.

-7-

20092009-10

ARM: architettura-base
Problema: alcune istruzioni richiedono pi di tre
cicli

LOAD e STORE richiedono 2 cicli per lesecuzione (uno


per il calcolo dellindirizzo e uno per laccesso alla
memoria)
Salti condizionati: si svuota la pipeline e si riprende
dallindirizzo destinazione corretto;
Si veda il comportamento della pipeline:

-8-

20092009-10

ARM: architettura-base

-9-

20092009-10

ARM: architettura-base

Col 1995 si passati a una pipeline a 5 stadi


(dotata di Instruction cache e Data cache
separate, in modo da evitare i problemi visti con
la pipeline a tre stadi)
Gli stadi sono:

Lettura
Decodifica
Esecuzione
Buffer/data
Write-back (scrittura nel registro destinazione)
- 10 -

20092009-10

ARM: architettura-base
In dettaglio:

Lettura: legge unistruzione;


Decodifica: decodifica listruzione e legge gli operandi
(fino a 3) dai registri;
Esecuzione: se richiesto fa scorrere un operando; lALU
genera il risultato (o lindirizzo nel caso di Load(Store)
Buffer/data: si accede alla memoria. Solo Load e Store
compiono operazioni utili in questo stadio;
Write-back: il risultato (incluso il valore letto dalla
memoria) viene scritto nel registro destinazione.

- 11 -

20092009-10

ARM: architettura-base
.

Lo schema
dellarchitettura
indica i cinque stadi
corrispondenti alle
cinque fasi;
La pipeline molto
meglio bilanciata e
va a frequenza pi
alta; si sono inseriti i
percorsi di data
forwarding per
superare i conflitti
da dipendenze RAW

- 12 -

20092009-10

ARM: architettura-base
.

Esistono anche soluzioni con pipeline a sei e otto


stadi per fornire prestazioni pi elevate su
applicazioni di fascia alta;
Larchitettura vista quella base: si possono
aggiungere funzionalit ulteriori (ad esempio,
laritmetica in virgola mobile) che vengono
associate al data path base come coprocessori
che consentono fra laltro di estendere linsieme
iniziale delle istruzioni di macchina.

- 13 -

20092009-10

ARM: architettura-base
.

Il modo di esecuzione principale il modo


utente (user mode): il sistema operativo
garantisce protezione e isolamento
dellapplicazione eseguendo questultima in
modo utente;
Tutti gli altri modi di esecuzione sono
privilegiati e usati solo nellesecuzione del
software di sistema. In particolare:

- 14 -

20092009-10

ARM: architettura-base
.

Modi privilegiati:

Fast interrupt processing mode: la CPU vi si porta quando


riceve un segnale di interruzione dalla sorgente che il
progettista ha designato come sorgente di interruzione
veloce
Normal interrupt processing mode: la CPU vi si porta
quando riceve un segnale da qualsiasi altra sorgente di
interruzione;
Software interrupt processing mode: la CPU vi si porta
quando incontra unistruzione di interruzione software
(in sostanza una system call questo il modo normale per
invocare i servizi del sistema operativo su ARM);
- 15 -

20092009-10

ARM: architettura-base
.

Modi privilegiati (cont.):

Undefined instruction mode: la CPU vi si porta


quando tenta di eseguire unistruzione che non
supportata n dallarchitettura base n da uno dei
coprocessori ad essa collegati (pu essere usato per
emulare via software un coprocessore che non si
realizzato);
System mode usato per eseguire compiti privilegiati
del sistema operativo;
Abort mode usato in risposta a violazioni dei diritti di
accesso alla memoria.
- 16 -

20092009-10

ARM: i coprocessori
.

Una soluzione fortemente modulare per


estendere larchitettura base, ma come si
gestiscono?
Ce un protocollo di interazione fra CPU e
coprocessori, accompagnato da istruzioni di
trasferimento dati fra ARM e coprocessori (anche
questi devono utilizzare unarchitettura loadstore).

- 17 -

20092009-10

ARM: i coprocessori
interfaccia processore-coprocessore:

- 18 -

20092009-10

ARM: i coprocessori
Segnali di controllo dellinterfaccia:

CPi: attivato quando si identifica unistruzione del


coprocessore di cui la CPU chiede lesecuzione;
CPa: attivata quando non ce un coprocessore capace di
eseguire listruzione;
CPb: attivata quando il coprocessore non pu cominciare
immediatamente a eseguire listruzione.

Ci sono tre tipi di istruzioni relative ai


coprocessori che vengono riconosciute da ARM:

- 19 -

20092009-10

ARM: i coprocessori
.

1.

2.

3.

Istruzioni di elaborazione dati: sono interne al


coprocessore. Quando la CPU legge una di queste
istruzioni, esegue un semplice protocollo di handshake
per verificare che uno dei coprocessori presenti la
accetta (altrimenti solleva uninterruzione);
Istruzioni load/store che trasferiscono dati fra registri
del coprocessore e memoria. La CPU d inizio a tali
istruzioni calcolando un indirizzo di memoria e
mandandolo sul bus degli indirizzi; tocca poi al
coprocessore completare il trasferimento;
Istruzioni di trasferimento fra la pipeline interna della
CPU e i registri del coprocessore.

- 20 -

20092009-10