Anteprima
Vedrai una selezione di 4 pagine su 11
ARM, Calcolatori Elettronici Pag. 1 ARM, Calcolatori Elettronici Pag. 2
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
ARM, Calcolatori Elettronici Pag. 6
Anteprima di 4 pagg. su 11.
Scarica il documento per vederlo tutto.
ARM, Calcolatori Elettronici Pag. 11
1 su 11
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il Core ARM base è espandibile mediante coprocessori (Es. Memory ProtectionUnit (MPU),

ovvero un modulo di protezione della memoria, Memory Management Unit (MMU), FloatingPoint

Unit (FPU), etc)

L’ARM introduce inoltre alcune nuove caratteristiche come ad esempio l’esecuzione condizionale.

3) Cosa intendiamo con esecuzione condizionale?

Con esecuzione condizionale intendiamo che qualsiasi istruzione a runtime può essere

eseguita o meno in base all’esito delle istruzioni precedenti.

Vi sono infatti istruzioni che prevedono, prima che vengano eseguite, un controllo di un

determinato flag nel registro di stato CPSR. A seconda del fatto che tale flag sia asserito o

meno viene deciso se eseguire l’istruzione o se passare oltre.

3bis) Quali sono le istruzioni che vanno a modificare i flag del registro di stato CPSR?

Le istruzioni che modificano i flag del registro di stato CPSR sono:

Istruzioni di confronto

• Qualsiasi istruzioni di elaborazione se termina con S (SET CONDITION)

4) Cosa intendiamo con modalità THUMB?

La modalità THUMB permette di compattare le istruzioni da 32 bit, a 16 bit, dimezzando così le

dimensioni del codice e permettendo, grazie all’architettura a 32 bit, di caricare due istruzioni con

una sola lettura. (Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)2)

!

5) Cosa ha rifiutato tra le caratteristiche del DLX?

È importante osservare che alcune caratteristiche RISC, e quindi anche appartenenti al DLX, sono

state rifiutate. Ad esempio:

Non vi è un’unica modalità di indirizzamento

• !

Non c’è il delayed-branch scelta vincente quando si hanno più pipeline

6) Quali sono le caratteristiche del core ARM studiato, l’ARM 7TDMI?

L’ARM 7TDMI è un processore con pipeline a 3 stadi con frequenza massima 100MHz e con

consumi inferiori ai 100mW. ( La stessa famiglia esiste anche con pipeline a 5 stadi. )

6bis) Qual è il significato della sigla ARM 7TDMI?

I caratteri della sigla stanno ad indicare:

!

7 Famiglia ARM 7, architettura v4t

• !

T Supporta set di istruzioni compatto (THUMB)

• !

D Oltre al core base dispone di un modulo per il DEBUG

• !

M Dispone di un moltiplicatore migliore rispetto a quello delle versioni precedenti

• !

I Dispone di un ulteriore modulo per il DEBUG e per i Breakpoint (EmbeddedICE

• macrocell)

!

S Sta per sintetizzabile. L’ARM ti ha dato il codice VHDL

7) Quali sono i registri visibili al programmatore in modalità usermode?

I registri visibili dal programmatore in user mode sono: R0 .. R15. In particolare si ha che:

R15 è il program counter PC

• R13 è lo stack-pointer, ovvero il puntatore all’area di stack (se si usa lo stack)

Vi è poi il registro CPSR che costituisce il registro di stato.

Osserviamo che a differenza del DLX, R15, ovvero PC, è accessibile al programmatore!

!

Importante Alcuni di questi registri sono duplicati per fornire supporto alle modalità

privilegiate (_exc)

8) Quali sono i registri che vengono duplicati per supportare le modalità privilegiate?

Si ha che ogni modalità privilegiata duplica:

R13 (stack pointer)

• "

R14 dove copia il PC, ovvero R15 – R14 R15

• Il registro di stato CPSR, che diventa SPSR.

Osserviamo dunque che ogni modalità di default dispone di un proprio stack non condiviso!

Importante! Per la modalità Fiq vengono duplicati anche i registri da R12 a R8. Infatti Fiq è

l’acronimo di Fast Interrupt e rappresenta un interruzione critica che deve essere gestita

velocemente. Per permettere ciò l’ARM ha pensato di duplicare in questa fase un numero maggiore

di registri in supporto alle operazioni.

(Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)3)

!

9) Qual è l’utilità delle modalità privilegiate? O meglio perché si rendono necessarie?

Le modalità privilegiate si rendono necessarie al fine di garantire la protezione.

In un sistema protetto, come l’ARM, a livello utente (usermode) non è possibile accedere a

risorse hardware direttamente. Fa eccezione ovviamente la memoria associata al codice/dati.

Questo significa che, per poter accedere alle periferiche, l’ARM vincola il codice in usermode a

farlo attraverso delle chiamate a funzioni messe a disposizione dal sistema operativo (supervisor

calls, invocate con interrupt software SWI).

Es. Un caso tipico è la funzione che scrive un carattere sullo schermo video. Esiste una apposito

interrupt software SWI, gestito da una funzione privilegiata del sistema operativo, a tale scopo.

Questo meccanismo di controllo consente di eseguire operazioni in modalità privilegiata sotto il

pieno controllo del SO (supervisor) l’unico responsabile della corretta gestione delle risorse del

sistema (Es. le periferiche).

L’esecuzione di codice in modalità privilegiata, senza la necessità di eseguire supervisor calls

(SWI), è automaticamente invocato anche da eccezioni generate sia dall’esterno (fiq, iq) che

dall’interno (traps).

Es. Perché la protezione per poter scrivere sulla memoria video?Si pensi a un sistema con n

processi e senza nessun vincolo di accesso (in scrittura) sulla memoria video...

Per poter eseguire queste operazioni privilegiate, quindi, il codice in user mode ha due

alternative:

1. Chiedere ad un codice più privilegiato di eseguire queste operazioni per lui

2. Assumere esso stesso un livello di privilegio maggiore.

In tal caso, il passaggio da user mode a system mode è ovviamente possibile solo attraverso

l’esecuzione di codice più privilegiato.

10) A cosa bisogna fare attenzione quando si esegue in modalità privilegiata?

Nelle modalità privilegiate, i registri non duplicati sono condivisi con la modalità user mode.

Tali registri, dunque, debbono essere opportunamente preservati per garantire sempre un corretto

ripristino dello stato del sistema. Si potrebbe a tal fine utilizzare per esempio lo stack.

I registri duplicati, invece, vengono ripristinati dall’ARM stesso.

11) Come si entra nelle modalità privilegiate?

Le modalità privilegiate sono attivabili mediante degli eventi esterni (interrupt(s) e reset) o

interni (system call e trap). Questi eventi, sia interni che esterni, sono denominati “eccezioni”.

12) Come fa il SO a sapere che privilegi ha il codice in esecuzione?

Guarda il registro di stato.

13) Quando si esegue in modalità privilegiate di cosa bisogna disporre?

Quando si esegue in modalità privilegiata si deve:

Disporre di un proprio stack e di un proprio stack-pointer (memorizzato in

• modalità privilegiata in R13_exc)

Conoscere l’indirizzo di ritorno. In particolare il PC(R15) del chiamante è

• memorizzato in R14_exc

Dopo essere entrato nella modalità privilegiata,dovrò tornare dove ero prima

Disporre di una copia del registro di stato CPSR della modalità

• interrotta/chiamante memorizzandolo in SPRS_exc

(Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)4)

!

14) Cosa intendiamo con eccezione per quel che riguarda il processore ARM?

Le eccezioni sono eventi generati all’esterno (RESET, interrupt normali e veloci) o dall’interno

della CPU(traps, suopervisor call):

RESET(caso particolare ed evento prioritario)

• Fast Interrupt

• Interrupt

• Traps

15) Quali sono le eccezioni gestite dal processore ARM?

Con riferimento alle eccezioni che consentono/obbligano l’esecuzione di operazioni a un livello

privilegiato, il processore ARM gestisce le seguenti eccezioni:

RESET (Mode: SVC)

• Undefinedinstruction (Mode: UND) ovvero ho fatto il FETCH di un istruzione

• sconosciuta

Software Interrupt (Mode: SVC)

• Instructionfetchabort (Mode: Abort)

• Data accessmemoryfault/abort (Mode: Abort)

• IRQ normalinterrupt (Mode: IRQ)

• FIQ fast interrupt (Mode: FIQ)

16) Come vengono gestite le eccezioni nell’ARM?

Il RESET, prioritario rispetto alle altre eccezioni, è attivato mediante un pin esterno e forza (al suo

rilascio) l’esecuzione dell’istruzione all’indirizzo 00h.

Le altre eccezioni (interrupt esterni, traps e supervisor calls) provocano invece la seguente

sequenza di operazioni:

1. Si salva l’indirizzo di ritorno e lo stato

R14_exc ←PC (R15)

SPSR_exc ←CPSR

2. Si disabilitano le interruzioni (bit I in CPSR)

3. Se l’interruzione è di tipo fast interrupt si disabilitano le interruzioni fast (bit F in CPSR)

4. La modalità operativa (mode in CSPR) viene modificata in accordo al tipo di eccezione

mode ←exc

5. Il program counter R15 è forzato a un valore compreso tra 00h e 1Ch in base al tipo di

eccezione (exc). Presumibilmente, la tabella tra 00h e 1Ch conterrà istruzioni di salto

16bis) Come vengono gestite più interruzioni IRQ?

Nel caso arrivino più interruzioni, avverrà il salto a 18h, ma sarà compito dell’handler andare a

vedere quali periferiche hanno generato l’interruzione e servire la più prioritaria.

(Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)5)

!

17) Come funziona la tabella delle eccezioni nel processore ARM?

Ogni tipologia di eccezione provoca un salto a uno dei seguenti indirizzi (0x indica esadecimale):

Osserviamo che gli indirizzi sono consecutivi (multipli di 4 - letture allineate) e dunque questi

sono indirizzi a istruzioni di salto che porteranno al codice vero e proprio della gestione.

17bis) Perché FIQ è stata messa all’ultimo indirizzo 1Ch?

Fiq è stata lasciata per ultima in quanto il suo codice di gestione può essere direttamente a 1Ch al

fine di velocizzare il suo compito. Le Fast interrupt sono infatti interruzioni critiche.

17tris) Per cosa viene utilizzato il campo reserved? !

Reserved è un campo destinato per eventuali sviluppi futuri Estendibilità

18) Una volta che l’handler dell’eccezione ha eseguito il proprio compito di cosa si deve

occupare?

Una volta che l’handler ha terminato il proprio compito deve eseguire una serie di operazioni:

1. Ripristinare dal proprio stack i registri modificati

2. Ripristinare il CPSR dal proprio SPSR_exc

3. Ripristinare il PC all’indirizzo dell’istruzione successiva a quella interrotta

È importante osservare che le operazioni 2 e 3 devono essere svolte contemporaneamente!

18bis) Perché i passi 2 e 3 del ritorno dall’handler devono essere svolti insieme? Come risolve

l’ARM il problema?

Dettagli
Publisher
A.A. 2013-2014
11 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher pet91 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Mattoccia Stefano.