Che materia stai cercando?

ARM, Calcolatori Elettronici

Il seguente è il Primo di una serie di appunti dal formato domanda-risposta del corso di Calcolatori Elettronici dell'Università di Bologna.
Nonostante tale riassunto sia stato fatto nell'anno accademico 2013-2014, ritengo che esso sia ancora attuale in quanto gli argomenti del corso non sono cambiati.
Ho fatto e utilizzato personalmente questi riassunti per superare questo... Vedi di più

Esame di Calcolatori elettronici docente Prof. S. Mattoccia

Anteprima

ESTRATTO DOCUMENTO

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?

I passi 2 e 3 debbono poter essere eseguiti insieme in quanto:

Se si ripristinasse prima il CPSR (passo2) l’indirizzo di ritorno R14_exc non sarebbe più

• accessibile

Se si ripristinasse prima R15 con R14_exc (opportunamente aggiustato se necessario) non si

• sarebbe più in grado di ripristinare il CPSR da SPSR, si eseguirebbe, infatti, l’istruzione del

codice interrotto dall’interrupt che non può accedere a CPSR.

L’ARM mette per risolvere il problema mette a disposizione delle istruzioni specifiche per poter

eseguire i passi 2 e 3 contemporaneamente in modo atomico.

In particolare all’interno di un interrupt handler il processore ARM rende disponibili le seguenti

istruzioni (tutte caratterizzate da “S”che indica in questo caso modifiche al PC):

Per ritornare da una SWI o una undefined inst. trap:

• MOVS PC, R14; PC←R14_exc, CPSR←SPSR_exc

Per ritornare da una IRQ, FIQ o prefetch abort:

• SUBS PC, R14, #4; PC←R14_exc-4, CPSR←SPSR_exc

Per ritornare da una data abort e riprovare:

• SUBS PC, R14, #8; PC←R14_exc-8, CPSR←SPSR_exc

Dove R14 è il registro ombra, mentre PC è l’R15 della User mode

(Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)6)

!

18tris) In caso di interruzioni annidate, l’ARM rende disponibili istruzioni per eseguire i passi

2 e 3 in modo atomico?

Se il PC di ritorno (in R14_exc) e il registro SPSR sono stati salvati sullo stack per consentire, ad

esempio, l’annidamento di interruzioni dello stesso tipo, è necessario eseguire i passi 2 e 3

(insieme) dallo stack.

Anche per questa eventualità l’ARM rende disponibile una istruzione atomica per eseguire i passi 2

e 3 contemporaneamente.

19) Quali sono le modalità operative dell’ARM?

Le modalità operative in cui può trovarsi l’ARM e, di conseguenza il codice eseguito, sono le

seguenti: La modalità Abort mode gestisce i

FAULT (Es. FAULT della memoria,

lettura a indirizzo disallineato).

La modalità operativa system mode è

particolare perché, pur essendo una

modalità privilegiata condivide con lo

user mode tutti i registri.

È importante osservare però che NON è possibile entrare in System mode dallo user mode. Per

poterlo fare è necessario modificare i bit [4..0]del CPSR da una modalità privilegiata (ad esempio

invocata da un interrupt o una system call).

Poiché in system mode i registri sono condivisi con lo user mode non vi è un vero cambio di

contesto (con l’esclusione della modifica dei 5 bit del CPSR che può essere eseguita da una

modalità privilegiata).

Osserviamo che solo in System-mode (e ovviamente anche in User-mode) non esiste una copia di

CPSR (e di R13).

20) Cosa accade se arriva un interrupt mentre sono in una modalità privilegiata?

Es. Se arriva un interrupt, mentre sono in modalità IRQ, ovvero avevo già ricevuto un interrupt in

precedenza, devo salvarmi i registri in maniera esplicita! Salvo esplicitamente lo stato!

21) Parlami del CPSR

Il Current Program Status Register (CPSR) è il registro di stato ed in particolare ha:

Nei 4 bit più significativi, quattro flag di stato che possono essere modificati dalle

• istruzioni

N: risultato negativo (bit 31 del risultato = 1)

o Z: il risultato era 0 (tutti i 32 bit a 0)

o C: è stato generato un carry (ALU o shifter)

o V: oVerflow (operazioni ALU con signed)

o

Nei 4 bit meno significativi, la modalità operativa attuale (mode) che rappresenta il livello

• di privilegio

Due bit I e F che abilitano / disabilitano rispettivamente le interruzioni normali e FAST

• Un bit T che sta ad indicare se il formato THUMB è attivo o meno

Gli ultimi 8 bit NON sono modificabili in usermode!

(Advanced)RISC)Machine)

Calcolatori)Elettronici)–)ARM) ) Pagina)7)

!


ACQUISTATO

1 volte

PAGINE

11

PESO

371.77 KB

AUTORE

pet91

PUBBLICATO

+1 anno fa


DESCRIZIONE APPUNTO

Il seguente è il Primo di una serie di appunti dal formato domanda-risposta del corso di Calcolatori Elettronici dell'Università di Bologna.
Nonostante tale riassunto sia stato fatto nell'anno accademico 2013-2014, ritengo che esso sia ancora attuale in quanto gli argomenti del corso non sono cambiati.
Ho fatto e utilizzato personalmente questi riassunti per superare questo esame ottenendo un ottimo risultato. Le domande in essi scritte, infatti anticipano ciò che il professore potrà chiedere all'esame.
Inoltre, essendo l'esame di calcolatori elettronici dell'università di Bologna conosciuto per essere molto complesso in quanto i professori sono molto esigenti, questi riassunti credo potranno adeguarsi anche per chi cerca una buona preparazione sui calcolatori elettronici.


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
Università: Bologna - Unibo
A.A.: 2014-2015

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à Bologna - Unibo o del prof Mattoccia Stefano.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Calcolatori elettronici

Introduzione, Calcolatori elettronici
Appunto
DLX sequenziale e DLX Pipelined, Calcolatori elettronici
Appunto
mapping e decodifica Linguaggio macchina IO, Calcolatori elettronici
Appunto
Domande di Teoria di Calcolatori Elettronici
Appunto