Corso di Microcontrollori e DSP

Transcript

Corso di Microcontrollori e DSP
Corso di Microcontrollori e DSP
A.A. 2003-2004
Prova scritta del 28-06-2004 - TEMA A
Cognome e nome:
Matricola:
Quesiti proposti
1. Determinare la rappresentazione in complemento a 2 su 6 bit dei seguenti numeri:
23
0
1
0 1
1
1
-15
1
1
0 0
0
1
31
0
1
1 1
1
1
2. Trovare la somma dei due numeri, rappresentati in complemento a 2, e riportare il risultato
in formato decimale:
01010111 + 11011010
49
01111110 + 10000001
-1
3. Rappresentare in complemento a 2, notazione Q7, le seguenti frazioni, indicando anche
l'errore di arrotondamento introdotto:
- 0.123
1
1
1 1 0
0.567
0
1 0 0
1
0
0 0
0
0 1
2⋅10-3
3.31⋅10-3
4. Un processore sfrutta una organizzazione con pipeline a 3 livelli (fetch, decode, execute).
Sapendo che il suo periodo di clock vale 50 ns e che nessuna istruzione impegna gli stadi
della pipeline per più di un ciclo di clock, determinare:
a. il tempo di completamento di una istruzione, in assenza di conflitti;
150
b. il numero di istruzioni completate in un secondo, in assenza di conflitti;
20⋅106
[ns]
c. il ritardo (valutato tra il completamento dell’istruzione corrente e il completamento
dell’istruzione successiva) che può essere introdotto da una istruzione di salto non
condizionato, nel caso l'unico meccanismo di risoluzione dei conflitti sia costituito
dall'introduzione di cicli di stallo.
150
[ns]
5. Applicando l'algoritmo di Booth, calcolare il prodotto dei due numeri binari 1011 e 0111
rappresentati in complemento a 2 su 4 bit. Riportare la sequenza dei prodotti parziali, dopo
l’operazione di shift.
Risultato:
0 0
1
0
1 0
1 1
0 0
0
1
0 1
0 1
0 0
0
0
1 0
1 0
1 1
0
1
1 1
0 1
F F F F
F E
6. E' data la seguente istruzione ARM7:
MVN r1, r2, LSR #3
Sapendo che i registri r1 e r2 contengono i seguenti valori:
r1 = 0x0000FFFF;
r2 = 0x00000008;
indicare, in formato esadecimale, il valore finale del registro r1.
r1 =
F F
7. Sia dato il seguente filtro numerico:
y(k) = a⋅y(k-1) + b⋅x(k)
Sapendo che la sequenza y, in risposta ad un gradino unitario, vale {0, 0, 0, 0.4, 0.64, 0.784,
0.8704 …}, determinare il valore dei parametri a e b. Indicare il minimo numero di bit
necessario per riprodurre i coefficienti in notazione frazionaria e complemento a 2 (e.g. del
tipo Q7, Q6, etc.) con un errore relativo inferiore allo 0.5%.
a=
0.6
b=
0.4
n° bit =
8
8. Il timer di un microcontrollore, che dispone di un contatore e un prescaler a 16 bit, lavora ad
una frequenza di 10 MHz. Dovendo generare un interrupt ogni 12 ms, indicare il valore
esadecimale da impostare sul registro di "compare" in corrispondenza del minimo valore di
prescale che permette di ottenere il risultato desiderato.
CR =
E A 6 0
PSC =
0 0 0 2
9. Un microcontrollore gestisce 3 sorgenti di interruzione, associate rispettivamente al
modulatore PWM, al convertitore A/D e alla unità per la trasmissione seriale asincrona
(UART). La tabella sottostante riporta i dati relativi alle routine di servizio associate alle tre
sorgenti.
ISR_timer
ISR_ADC
ISR_UART
Priorità
1
2
3
Durata [µs]
4
10
10
Frequenza [kHz]
15
30
5
Sapendo che il tempo di latenza intrinseco delle varie ISR è pari a 1 µs, che la più lunga
istruzione del programma richiede 1 µs e che il sistema non permette il "nesting" delle ISR,
si richiede di determinare:
a. se il sistema può funzionare senza che nessuna IR venga persa;
Sì
X
No
b. la percentuale di tempo nella quale il processore è occupato a servire le varie
ISR;
46
[%]
c. quale sarebbe la massima durata possibile per la ISR associata al convertitore
A/D.
Durata ISR_ADC =
13
[µs]
10. La memoria programmi (esterna) di un DSP contiene 2048 locazioni a 32 bit. Determinare:
a. la dimensione in byte della memoria;
8192
byte
b. il numero di wait-states richiesto, qualora la memoria abbia un tempo di accesso di
50 ns e la CPU un clock di 33 MHz;
1
c. la massima frequenza di clock che permette di accedere alla memoria in un solo
ciclo.
20
[MHz]