Procesory sygnałowe ADSP21
Dariusz Chaberski
Procesory sygnałowe
§ DSP (ang. Digital Signal Processor) - przetwarzanie sygnałów analogowych lub cyfrowych w czasie
rzeczywistym
§ zastosowanie
+ przetwarzanie sygnałów akustycznych
+ przetwarzanie obrazów
+ modulacja, demodulacja - modemy, telefony komórkowe
§ różnice pomiędzy procesorem sygnałowym a mikroprocesorem
+ operacja mnożenia wraz z akumulacją wykonywana jest w jednym cyklu
+ specjalne tryby adresowania pamięci (pamięć dwuportowa)
+ sprawna realizacja pętli
§ podział
+ stałoprzecinkowe
+ zmiennoprzecinkowe
+ 16, 32, 64 bitowe
2
Ewolucja
3
Przykład wykorzystania DSP
4
Próbkowanie i kwantyzacja
5
Zjawisko aliasingu - sygnał
6
Zjawisko aliasingu - widmo
7
Filtry analogowe, filtr cyfrowy - porównanie
FIR (ang. Finite Impulse Response)
8
Filtry cyfrowe - implementacja filtru 4 punktowego/odczepowego
(ang. 4-Tap)
9
Filtry cyfrowe - odpowiedź na skok jednostkowy filtru 4
punktowego
10
Filtry cyfrowe - odpowiedź na zaszumiony impuls prostokątny
(a), (b) uśrednianie 11 punktowe, (c) 51 punktowe
11
Filtry cyfrowe - przykładowe charakterystyki częstotliwościowe
filtrów cyfrowych
12
Filtry cyfrowe - użycie bufora cyklicznego
13
Filtry cyfrowe - algorytm filtru 4 punktowego
1. pobierz próbkę z przetwornika A/C (przerwania)
2. umieść próbkę w buforze cyklicznym
3. uaktualnij wskaźnik bufora cyklicznego próbek
4. wyzeruj akumulator
5. pętla sprzętowa (jeden cykl zegara) (ang. Zero Overhead Looping)
(a) pobierz h() z bufora cyklicznego współczynników
(b) uaktualnij wskaźnik bufora cyklicznego współczynników h()
(c) pobierz próbkę x() z bufora cyklicznego próbek
(d) uaktualnij wskaźnik bufora cyklicznego próbek
(e) pomnóż współczynnik h() przez próbkę x()
(f) wynik h()×x() dodaj do akumulatora
(g) idź do punktu 6 jeśli wykonane zostały 4 kroki, w przeciwnym wypadku do punktu (a)
6. umieść przetworzoną próbkę (akumulator) w rejestrze wejściowym przetwornika C/A
7. idź do punktu 1
14
Filtry cyfrowe - program filtru 4 punktowego
;MX0, MY0 - pierwsza dana x() (pamięć danych)
;i pierwszy współczynnik h() (pamięć programu)
;DM - Data Memory, PM - Program Memory, I0, I4 - wskaźniki buforów cyklicznych
fir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5);
;CNTR - licznik sprzętowy
CNTR = N-1;
;CE - C ounter Expired
DO convolution UNTIL CE;
;SS - pierwszy i drugi operand są liczbami ze znakiem
;RND - zaokrąglij rezultat
convolution: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR=MR+MX0*MY0(RND);
;MV - (ang. MAC Overflow), bit ustawiony w przypadku przepełnienia
;32 najmłodszych bitów MR, MR jest rejestrem 40 bitowym
IF MV SAT MR;
;RTS - (ang. Return from Subroutine)
RTS;
15
Procesor sygnałowy rodziny ADSP-21XX - architektura jądra
procesora
16
Procesor sygnałowy rodziny ADSP-21XX - architektura jądra
procesora
§ magistrale
+ PMA - Program Memory Address,
+ DMA - Data Memory Address,
+ PMD - Program Memory Data,
+ DMD - Data Memory Data
§ jednostki obliczeniowe
+ ALU - Arithmetic Logic Unit
3 operacje arytmetyczne i logiczne
+ MAC - Multiply Accumulator
3 jedno cyklowe instrukcje mnożenia, mnożenia z dodawaniem, mnożenia z odejmowaniem
3 40 bitowy acumulator z zabezpieczeniem na przepełnienie
+ Shifter - rejestr przesuwny
3 normalizacja (konwersja liczb stałoprzecinkowych na zmiennoprzecinkowe)
3 denormalizacja
3 przesunięcia arytmetyczne i logiczne
17
Procesor sygnałowy rodziny ADSP-21XX - architektura jądra
procesora
§ DAG - generator adresu danych (ang. Data Address Generator)
+ sprzętowe adresowanie modulo
+ jednoczesne zarządzanie czterema wskaźnikami na każdy DAG
+ sprzętowa implementacja bufora cyklicznego
+ możliwość pobrania dwóch operandów jednocześnie
§ Program Sequencer - układ sekwencjonowania programu
+ generowanie adresu kolejnych instrukcji
+ stos sprzętowy
+ obsługa przerwań
+ jednocyklowa obsługa instrukcji rozgałęziających (218x)
18
Procesor sygnałowy rodziny ADSP-218X - architektura procesora
19
Procesor sygnałowy rodziny ADSP-2116X (SIMD) - architektura
jądra procesora
20
Procesor sygnałowy rodziny ADSP-21XX - peryferia
(podłączenie przetwornika A/C)
21
Procesor sygnałowy rodziny ADSP-21XX - peryferia
(podłączenie przetwornika C/A)
22
Procesor sygnałowy rodziny ADSP-21XX - peryferia (odczyt
pamięci)
23
Procesor sygnałowy rodziny ADSP-21XX - peryferia (zapis
pamięci)
24
Procesor sygnałowy rodziny ADSP-2189X - podłączenie pamięci
zewnętrznej
25