You are on page 1of 49

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP Szanowni czytelnicy uczestnicy kursu procesory sygnaowe.

. W trakcie rozmw po wykadach przewijay si pytania o zakres wiadomoci niezbdny do spokojnego zaliczenia kursu procesorw sygnaowych. W trakcie prowadzenia jeszcze poprzedniej edycji kursu, w ktrej przykadem architektury i moliwoci byy procesory rodziny TMS320C54xx opracowany zosta przez jednego z uczestnikw zbir pyta i zagadnie, ktre wystpoway w treci rnych zalicze, kolokwiw zaliczeniowych i egzaminw. W kolejnych edycjach uzupeniaem i rozbudowywaem ten materia zachowujc zasadniczy ukad treci autora pocztkowego opracowania. W obecnej jego edycji dokonaem zmian uwzgldniajcych oparcie kursu o nowoczeniejsze procesory rodziny TMS320C55xx. Przekazuj je Pastwu z nadziej, e si przyda. Korzystajc z okazji chciabym rwnie zwrci uwag na kilka elementw przygotowania i odpowi edzie na otrzymane pytania. Prosz zwrci uwag na fakt, e materia kursu obejmuje nastpujce podstawowe obszary z objanieniem ich znaczenia i powiza wzajemnych; Budowa i wasnoci toru DSP Budowa procesora o o o o o o o o Architektura gwne bloki procesora charakteryzujce dziaanie i ich powizanie (schemat blokowy procesora) Przeznaczenie gwnych blokw procesora i ich ograniczenia Logiczne przestrzenie zasobw procesora Magistrale, odmiany i ich rola Rodzaje pamici w procesorze i ich rola Mapa pamici i jej funkcja w procesorze Przestrze portw procesora przeznaczenie. Gwne rejestry procesora i ich rola. (akumulatory, rejestry adresujce, statutowe, pomocnicze itd.) Sekwencyjno dziaania procesora Podstawowe mechanizmy dziaania o o o o o o inicjowanie BOOT porzdkowanie RESET spowalnianie READY zwalnianie zasobw HOLD wtrcanie INTERRUPT bezporedniego transferu DMA

Dziaanie i mechanizmy o o

Warunki moliwe do sprawdzenia w procesorze (flagi, komparatory) i ich wykorz ystanie w rozkazach warunkowych Kolejka, przetwarzanie nakadkowe, zalety i wady Stosy, dziaanie przeznaczenie, obsuga Bufor koowy dziaanie przeznaczenie, obsuga Mechanizm buforw Ping-Pong Sprztowa realizacja ptli w procesorze Cykle w procesorze (zegarowy, procesora, rozkazowy) Gwne grupy rozkazw, przykady Tryby adresacji w rozkazach, przykady Shifty, rotacje, skalowanie danych 1 / 49
ostatnie uzupenienia 9 stycznia 2013

Obliczenia, rozumienie gwnych rozkazw o o o o

K2

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP o Mechanizmy adresacji wspierajce ukierunkowane operacje, przeznaczenie i dziaanie o o Postmodyfikacja, przeznaczenie BRA, (Wsteczna propagacja Carry) Adresacja cyrkulacyjna Zaokrglanie (RND) Rozszerzenie znakowe (SXMD) Nasycanie (Saturation) i jego wykorzystanie Kodowanie dziesitne, binarne, HEX Reprezentacja InQm U2, liczb dodatnich i ujemnych Staoprzecinkowa cakowitoliczbowa (I16F0) Staoprzecinkowa uamkowa I1Q15, I3Q13 Zmiennoprzecinkowa Zakresy i rozdzielczo reprezentacji Konwersje reprezentacji

Usprawnianie operacji i wynikw oblicze

Reprezentacja danych w obliczeniach

Podstawowe rozkazy specjalizowane operacje w DSP i ich uycie w rozkazach o o o o Mn i akumuluj (MAC) Realizacja szybkiej transformaty Fouriera (FFT) Filtr o symetrycznych wspczynnikach Obliczenia wartoci wielomianu punkcie Elementy skadowe programu asemblera, rodzaje i przeznaczenie (Elementy linii pr ogramu, sekcje, dyrektywy, zbir konfiguracyjny linkera) Podstawowy zestaw narzdzi i ich przeznaczenie (Edytor, Asembler. Kompilator, Linker, Loader, Monitor, Debugger, Emulator) Sprztowe urzdzenia deweloperskie Emulatory ICE, moduy DSK, EVM, Reference Design cechy i przeznaczenie Biblioteki wspomagajce prace R&D (Research and Development) Przeznaczenie i moliwoci, CSL, BSL, DSPLib, IQ-math,

Narzdzia i rodowisko developerskie o o o o o

Czsto zwracano si do mnie pytajc o rodzaj pyta. Podstawowymi bd pytania wymagajce opisania np. cech, przeznaczenia czy budowy procesora lub jego fragmentu, sposobu dziaania , mechanizmu, przyczyn jakiego rozwizania, charakterystyki co zyskujemy a co tracimy przez ..., podania warunkw realizacji takiego czy innego rozwizania, dziaania podstawowych rozkazw, skadu i przeznaczenia elementw rodowiska devel operskiego narzdzi wspomagajcych prac projektanta/programisty, reprezentacji danych i konwersji, itp. Prosz nie spodziewa si pyta typu testowego z wyborem odpowiedzi jak towaru z pki supermarketu. To raczej sposb sprawdzania skojarze i szczliwej rki ni rzeczywistej wiedzy i rozumienia materiau. Prosz nie pokada przesadnego zaufania w tzw. tabelkach, cho w materiale powicono im sporo miejsca. One pozwalaj na sprawdzenie i przewiczenie znajomoci rozkazw, elementw reprezentacji i kodowania danych, ale s rdem ogromnej liczby pomyek, szczeglnie w warunkach popiechu i stresu, zuywajc mnstwo czasu. Warto raczej walczy z oddzielnymi pytaniami na temat, zrozumieniem dziaania i budowy ni tradycyjnymi tabelami. Zatem nie przecenia tabelek! Szczegy organizacji kolokwium i dokadny podzia na grupy oraz terminy zamieszczone zostan na stronie kursu w przyszym roku ycz efektywnego wykorzystania dostpnych materiaw i dobrego przygotowania. Krzysztof Kardach
K2

2 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

OPRACOWANIE ZAGADNIE DO ZALICZENIA DSP


W oparciu o pomys opracowania Pawa Watowskiego opracowa dr Krzysztof Kardach 2013-01-09 00:24 (v. 4.0)

Tabelki

1.1 Tabelki reprezentacji i konwersji arytmetycznych


w.
1

DEC
2

HEX
3

BIN
4

12-bitowy akumulator A
5

1 2 3 4 5

WA WB WC=WA+WB WC=WA-WB WC=WA*WB

0x 0x 0x 0x 0x

B B B B B

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

_ _ _ _ _

1. Dla liczb A=0,75 i B=-0,125 uzupeni tabel w kolumnach 2,3,4 zakadajc notacj U2 i format I1Q5. 2. Zakadajc prace procesora na sowie 6-bitowym i kodowanie U2, I1Q5, oraz akumulator 12-bitowy i wczony SXMD uzupenij tabel w kolumnie 5 wykonujc odpowiednie rozkazy: dla wiersza 1 MOV #WA,<<#2,A dla wiersza 2 MOV #WB,A Wyniki naley zapisa w notacji binarnej. 3. Wpisz do tabelki zadania 1 w kolumnie 5 (wiersze 3,4 i 5) binarn zawarto akumulatora po wykonaniu odpowiednio operacji zapisanych w kolumnie 1. 4. Jak zmieni si wynik operacji w wierszu 5, jeli w naszym wiczebnym procesorze bdzie ustawiony odpowiednik bitu FRCT (Fractional). ad.1. UWAGA! Wyniki operacji naley zamieci zgodnie z wymaganymi formatem i notacj. Kodujemy A i B w kodzie U2 (jeli kto do tej pory nie wie, jak si to robi, to niech zajrzy do materiaw wystawionch na stronie kursu do materiau [Reprezentacja liczb, obliczenia i nie tylko...]. Inne przydatne materiay odnonie systemw liczbowych i ich kodowania mona znale na Internecie lub w podrcznikach podstaw techniki komputerowej. Procesor pracuje na sowie 6-bitowym, za format I1Q5 oznacza, e z tych 6 bitw jeden zostanie przeznaczony na zakodowanie czci cakowitej liczby, za pozostae 5 na zakodowanie czci uamkowej. (To I1Q5 to tylko przykad a nie aden standard!. Rwnie dobrze moe by I2Q6 czy np. I4Q12) Tak wic pozostajc dla przykadw przy I1Q5: WA = 0,75d = 020 + 12-1 + 12-2 + 02-3 + 02-4 + 02-5 = 01 1000b WB = -0,125d Aby uzyska WB, kodujemy 0,125 jak wyej (a), nastpnie negujemy wszystkie bity (b) i dodajemy 1 do pozycji najmodszego bitu (c): (a) 0,125d = 020 + 02-1 + 02-2 + 12-3 + 02-4 + 02-5 = 000100b (b) ~0,125d = 1 ... 1111 1011b (c) 1...111 1011 + 1 =1...111 1100
K2

3 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

UWAGA! Trzeba pamita o 1-kach z przodu) dla utrzymania wartoci i znaku liczby i wynikw wszelkich operacji !!! (SXM) Zatem WB = -0,125d = 1 ... 11 1100b. i w 6-cio bitowym rejestrze zmieszcz si tylko wytuszczone bity. Teraz mona wykona nastpujce dziaania: dodawanie (to liczba ujemna!)

01 1000 + 1 ... 1111 1100 =0 ... 0001 0100

Jak wida wynik jest dodatni. Zatem 0-ra z przodu (tu zaznaczone na to) dla dodatnich, a 1-ki dla ujemnych wykraczajce poza rejestr trzeba pomin, bo nie mieszcz si w rejestrze wyniku, czyli prawidowo jest: WA + WB = 01 0100b = 0,625d Analogicznie jest dla odejmowania (uwzgldniamy tylko 6 najmodszych bitw wyniku) i mnoenia (uwzgldniamy tym razem 12 najmodszych bitw wyniku). odejmowanie - jeeli kto nie lubi bawi si w poyczki i przenoszenie, alternatywnie zamiast wykonywa odejmowanie A-B mona wykona dodawanie A+(~B)+1, otrzymany wynik bdzie taki sam (pamita o SXMD!):

01 1000 + 00 0011 + 1 01 1100 WA - WB = 01 1100b = 0,875d UWAGA: jeeli w wyniku odejmowania dziesitnego (dla kodowania I1Q5 U2) otrzymana zostanie liczba mniejsza od -1, to wykraczamy poza zakres reprezentacji! Dzieje si tak z powodu przekroczenia zakresu reprezentowanych wartoci dla formatu I1Q5 U2 (dopuszcza on minimaln warto rwn -1). To jest celowy haczyk i naley napisa o tym w tabelce lub pod ni. Np. dla -1,125d i reprezentacji jak wyej na 6-ciu bitach moemy posuy si kalkulatorem z konwersj DEC <-> HEX. Zatem, -1,125d * 25 = -36d = F ... FDCh = 1 ... 1101 1100b Zatem z zamieszczon uwag o wykroczeniu poza zakres reprezentacji prawidowa odpowied na pytanie o zawarto rejestru (takiego 6-cio bitowego!) po wykonaniu powyszej operacji w rejestrze zmieci si 01 1100b oraz DCh . Jeli za pytanie pada o wynik kodowania I1Q5 U2 wwczas odpowied jest krtka nie da si zakodowa takiej liczby I1Q5. mnoenie by zmieci wynik mnoenia dwch liczb 6-cio bitowych I1Q5 U2 potrzebny jest rejestr dwukrotnie wikszy. Dla uniknicia bdw naley przygotowa do operacji binarnej oba czynniki stosownie je rozszerzajc znakowo co najmniej do 12 bitw (podwjnej dugoci) poprzez dostawienie 6 starszych bitw wypenionych wartoci tak, jak ma najstarszy bit wagowy ze znakiem danej liczby w U2:
4 / 49
ostatnie uzupenienia 9 stycznia 2013

K2

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

WA = 011000b 000000 011000b WB = 111100b 111111 111100b Po dokonaniu tego mona pomnoy WA * WB (tu oczywicie wygodniej bdzie wymnoy WB * WA): 1...11 1111 1111 1100 * 0000 0001 1000 0000 0000 0000 0 0000 0000 000 00 0000 0000 00 1...1......1 1111 1111 1110 0 1...1....11 1111 1111 1100 0 0000 0000 000 ... ... ... ... ... 1111...1.. 1111 1111 1010 0000 WA * WB = 11 1101b = -0,09375

Wynikiem mnoenia, reprezentowanym zgodnie z przyjt tu notacj na 6-ciu bitach, ktry naley zamieci w tabelce w wierszu 5 kolumnie 4 s bity na poz ycjach zaznaczonych powyej na czerwono. (prosz zwrci uwag na wynikajc z pooenia przecinka dodatkow 1-k z przodu i fakt wyboru tylko starszych 6ciu bitw wyniku) Natomiast wynikiem, jaki trafi do 12-to bitowego akumulatora bez korekcyjnego przesunicia, bdzie podkrelony fragment wyniku mnoenia. Wynik ten mona rwnie otrzyma inaczej; -0,125 * 0,75 = -0,09375 -0,09375 * 25 = -3d = F ... FFDh = 1 ... 1111 1101b Majc ju wyniki dziesitnie i binarnie, moemy atwo przekodowa BIN na HEX. S to dwie rne drogi rozwizywania, obie prawidowe i musz da takie same wartoci liczb!. Pierwsza: ogranicza si do 6-ciu bitw i tumaczy dokadnie co wida; WA = 011000b = 01 1000b 1 8h

czyli po prostu przeksztacamy to co wida. Modsz czwrk bitw na liczb HEX z zakresu 0-F i starsz dwjk bitw te na liczb HEX tyle e z zakresu 0-3: 01 10002 = 18h I tutaj nie ma problemw dla liczb z zakresu reprezentacji, dodatnich i ujemnych. Dla przykadowej wartoci; -0,09375d = 11 1101b = 3Dhsumowe wartoci wag -> -1 + 0,5 + 0,25 + 0,125 + 0,03125 = -0,09375 Ale dla liczb przekraczajcych zakres reprezentacji potrzebna jest stosowna uwaga o ktrej napisano wczeniej i zapis zaleny od sformuowania pytania. Zatem dla; -1,125d = 1101 1100b w 6-cio bitowym rejestrze bdzie miejsce tylko dla 1Ch no i niezbdna jest adnotacja o przekroczeniu zakresu reprezentacji Za warto bdzie -4 + 2 +0,5 + 0,25 + 0,125 = -1,125 (to te to dziki adnotacji i tym dwm tym bitom).
K2

5 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Druga: nie pomija starszych bitw a po prostu je uwzgldnia. Dla dodatnich zatem uzupenia zerami (przykad dla WA): WA = 01 1000b = 0001 1000b 1 0001 1000b = 18h Dla ujemnych uzupeniamy zgodnie z zasadami rozszerzenia znakowego 1-kami. Dla przykadowej wartoci; -0,09375d = 1111 1101b = FDh std warto -4 + 2 + 1 + 0,5 + 0,25 + 0,125 + 0,03125 = -0,09375 Dla liczb przekraczajcych zakres reprezentacji musimy uwzgldni uzupenienie zgodnie z wynikiem konwersji. Zatem dla; -1,125d = 1101 1100b = DCh i tutaj warto -4 + 2 +0,5 + 0,25 + 0,125 = -1,125 (to zielone to z uzupenienia tymi dwoma zielonymi bitami). Trzeba pamita, e przy przekroczeniu reprezentacji pojawia si ta subtelno jak sformuowane jest pytanie. Jeli domaga si ono np. podania zawartoci rejestru 6-cio bitowego po operacji na operandach U2 I1Q5 wwczas w odpowiedzi trzeba zawrze to co zmieci si w tym rejestrze (czarne bity w ostatnim przykadzie, ale koniecznie z adnotacj, e to tylko kawaek liczby z wyniku). Jeli za pytanie bdzie wymagao podania wyniku zakodowanego U2 I1Q5, a wynik przekracza zakres reprezentacji no to nie ma co poda. Pole powinno zosta puste ale opatrzone adnotacj, e wynik poza zakresem reprezentacji. I tutaj jedna wana uwaga. Przy operacjach arytmetycznych nie naley oglda si na ustawiony lub nie bit SXMD. TUTAJ ROZSZERZENIE ZNAKOWE MUSI CAY CZAS DZIAA BO INACZEJ NIE ZACHOWALI BYMY WARTOCI !!! ad.2. Bit SXMD wpywa na to, jak uzupeniane s starsze bity w akumulatorze gdy adujemy do niego liczby krtsze - reprezentowane na mniejszej liczbie bitw ni dugo akumulatora: jeeli bit SXMD jest wczony, to uzupeniamy w zalenoci od znaku, tj. gdy liczba jest dodatnia uzupeniamy zerami, a gdy ujemna - jedynkami gdy bit SXMD jest wyczony, to zawsze uzupeniamy zerami 8h czyli po prostu przeksztacamy kad czwrk binarn na liczb w HEX:

Mamy wykona nastpujce rozkazy: MOV #WA,<<#2,A zaaduj WA do akumulatora i przesu o 2 w lewo (* 2SHIFT) MOV #WB,A zaaduj WB do akumulatora Dla WA bdzie to wyglda nastpujco (pogldowo, bo w rzeczywistoci rzecz jasna nie byoby pustych miejsc): - uzupeniamy starsze bity w zalenoci od znaku (czyli tutaj zerami), - adujemy uzupenione WA do akumulatora: _ 0000 0001 1000 - przesuwamy o 2 pozycje w lewo: _ _ _ _ 0000 0110 00_ _ a na najmodszych zawsze wstawiamy zera: 0000 0110 0000 Postpujc analogicznie (oczywicie tym razem bez przesuwania), dla WB mamy:
K2

6 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

1111 1111 1100 Mona jeszcze rozpatrzy podobny przykad np. z przesuniciem o 4 ; MOV #WB,<<4,A zaaduj WB do akumulatora i przesu o 4 w lewo (* 2SHIFT) - uzupeniamy starsze bity w zalenoci od znaku (czyli tutaj zerami), - adujemy uzupenione WA do akumulatora: _ 1111 1111 1100 - teraz przesuwamy o 4 pozycje w lewo, wychodzce poza rejestr najstarsze bity obcinamy a najmodsze bity uzupeniamy zerami: _ 1111 1100 0000 Warto tutaj zrobi jeszcze jedn uwag. Najpierw rozszerzamy liczb a potem przesuwamy. I jeszcze jedna uwaga, dla staych wprowadzanych do akumulatorw dysponujemy tutaj tylko przesuniciem SHFT w lewo. Przesunicie w lewo i w prawo SHIFTW [-32 / +31] dysponujemy jedynie przy przesaniach z pamici i rejestrw. ad.3. Dla dodawania i odejmowania postpujemy podobnie, jak w punkcie poprzednim, pamitajc o wczonym bicie SXMD. Inaczej mwic adujemy wyniki operacji do akumulatora i odpowiednio uzupeniamy zerami lub jedynkami w zalenoci od znaku. W przypadku mnoenia wynik jest duszy i po prostu przepisujemy do akumulatora najmodsze 12 bitw otrzymane w wyniku pisemnego mnoenia binarnego, czyli w naszym wypadku t podkrelon cz wyniku ze strony 3: 1111 1010 0000 ad.4. Bit FRCT powoduje skasowanie nadmiarowego znaku wyniku operacji mnoenia liczb, co dzieje si poprzez przesunicie liczby o 1 w lewo, czyli jeli wynik mnoenia bdzie w rejestrze produktu jak niej: 1111 1010 0000 to po przesuniciu o jeden w lewo uzyskamy w akumulatorze: 1111 0100 0000 Powsta wskutek przesunicia pust pozycj na najmodszym bicie zawsze uzupeniamy zerem. Jeszcze uwaga dla majcych kopot z rozumieniem okrelenia nadmiarowego znaku. Proponuj policzy pozycje po przecinku obu czynnikw, nastpnie okreli pooenie przecinka w wyniku (dokadnie tak, jak to si robi przy mnoeniu pisemnym liczb dziesitnych) i natychmiast ujawni si dodatkowe miejsce przed przecinkiem i wynika z tego konieczno korekcyjnego przesunicia w lewo realizowanego za spraw bitu FRCT. Bit FRCT nie zmienia innych wynikw operacji ani przesa do akumulatorw! I to ju wszystko, po prawidowym uzupenieniu tabelka arytmetyczna powinna zawiera nastpujce wartoci: A = 0,75, B = -0,125
w.
1

DEC
2

HEX
3

BIN
4

ACC 12-bitowy akumulator


5

1 2 3 4 5 A po

WA 0,75 0x18 01 WB -0,125 0x3C 11 WC=WA+WB 0,625 0x14 01 WC=WA-WB 0,875 0x1C 01 WC=WA*WB -0,09375 0x3D 11 uwzgldnieniu FRCT akumulator bdzie zawiera;

1000 1100 0100 1100 1101

B B B B B

0000 0110 0000 B 1111 1111 1100 B 0000 0001 0100 B 0000 0001 1100 B 1111 1010 0000 B 1111 0100 0000 B

Poniej 4 inne tabelki z innych grup z hipotetycznymi rozkazami do wykonania na staych w kolumnie 5
K2

7 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

dla dla dla dla dla


w.

wiersza wiersza wiersza wiersza wiersza

1 2 3 4 5
DEC
1

MOV MOV ADD SUB MPY

#WA<<3,ACC #WB,ACC #WA,#WB,ACC #WA,#WB,ACC #WA,#WB,ACC


HEX BIN
4

A = -0,875, B = 0,5
ACC 12-bitowy akumulator
5 2 3

0x24 10 0100 B 1111 0010 0000 B 0x10 01 0000 B 0000 0001 0000 B 0x34 11 0100 B 1111 1111 0100 B 0xD4; 4 WC=WA-WB -1,375* 01 0100* B 1111 1101 0100 B* 0x14* 5 WC=WA*WB -0,4375 0x32 11 0010 B 1110 0100 0000 B *przekroczenie zakresu reprezentacji poniej granicznej -1;. UWAGA, liczc binarnie trzeba pamita o rozszerzeniu znakowym (uzupenieniu jedynek z przodu) inaczej otrzymamy BDNY WYNIK 0,625 *wida tylko zawarto 6-ciu najmodszych bitw bo starsze obcio (nie weszy)

1 2 3

WA WB WC=WA+WB

-0,875 0,5 -0,375

*prosze zauway, e to co nie miecio si w rejestrze (przekroczenie zakresu) bdzie jureprezentowane w dwa razy wikszym rejestrze!!! A = 0,125, B = -0,75
w.
1

DEC
2

HEX
3

BIN
4

ACC 12-bitowy akumulator


5

1 2 3 4 5

WA WB WC=WA+WB WC=WA-WB WC=WA*WB

0,125 -0,75 -0,625 0,875 -0,09375

0x04 0x28 0x2C 0x1C 0x3D

000100B 101000B 101100B 011100B 111101B

0000 1111 1111 0000 1111

0010 1110 1110 0001 1010

0000 1000 1100 1100 0000

B B B B B

A = -0,25, B = 0,375
w.
1

DEC
2

HEX
3

BIN
4

ACC 12-bitowy akumulator


5

1 2 3 4 5

WA WB WC=WA+WB WC=WA-WB WC=WA*WB

-0,25 0,375 0,125 -0,625 -0,09375

0x38 0x0C 0x04 0x2C 0x3D

11 00 00 10 11

1000 1100 0100 1100 1101

B B B B B

1111 0000 0000 1111 1111

1100 0000 0000 1110 1010

0000 1100 0100 1100 0000

B B B B B

A = 0,75, B = -0,25
w.
1

DEC
2

HEX
3

BIN
4

ACC 12-bitowy akumulator


5

1 WA 0,75 0x18 01 1000 B 0000 1100 0000 B 2 WB -0,25 0x38 11 1000 B 1111 1111 1000 B 3 WC=WA+WB 0,5 0x10 01 0000 B 0000 0001 0000 B 4 WC=WA-WB 1* 0000 0010 0000 B 5 WC=WA*WB -0,1875 0x3A 11 1010 B 1111 0100 0000 B *przekroczenie zakresu reprezentacji; Tej liczby nie da si przedstawi na 6-ciu bitach. ALE w akumulatorze o podwjnej dugoci da si przedstawi bo ten 6 -ty bit nie bdzie ju skrajnym bitem z informacj o znaku jak jest to w krtkim rejestrze!

1.2 Tabelka wprawki rozkazowe


Sprowadza si do odpowiedniej interpretacji rozkazw (pod tabelk przykadowa instrukcja interpretacji krok po kroku). Grna tabelka poza zadaniem wartoci bitw ustalajcych sposb interpretacji rozkazw zawiera dane o zawartoci
K2

8 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

fragmentw pamici danych. Zwracam uwag na wskanik strony DP, ktry moe by podany a czasami trzeba go okreli w oparciu o adres pamici w tabelce. Wszystkie liczby wstawione do tabelki podczas rozwizywania s w HEX, a nie w DEC!
Dane: CPL=0 CMPT=0 Adr./Dane HEX DP=0 60 61 62
Adres

60 40
Warto

200 201 202 AC2

DP=2 120 70 20
Warto

DP=6 300 301 302


Adres

130 80 100
Warto

Adres

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Program MOV #0,DP MOV #2,AR0 MOV #200h,AR1 MOV #300h,AR2 MOV @0x61,AC1 ADD *AR1+,A SUB @60h,AC1,AC2 ADD *AR1+,AC2,AC1 MOV #6,DP ADD @2,AC1 ADD *AR2+,AC1 SUB *AR2+,AC1 SUB #64,AC1 ADD *AR2-0,AC1,AC2 SUB *AR2,AC2,AC1 MOV #160,AR0 ADD *AR1-0,AC1,AC1 MOV AC1,*AR1-

AC1

DP 0

AR0 2

AR1

AR2

200 300 40 160 100 170 6 270 3A0 320 2E0 3E0 2B0 A0 2D0 162 161 301 302 300 202 201

Przykadowa interpretacja kolejnych wierszy tabeli: 1. Zaaduj liczb binarn 0 do DP. (wczamy w ten sposb 0-w stron pamici danych) 2. Zaaduj liczb binarn 2 do AR0. 3. Zaaduj liczb 200h (albo inaczej 0x200) do AR1. 4. Zaaduj liczb 0x300 do AR2. 5. Zaaduj warto komrki o adresie 0x61 do A (patrz nad tabelk). 6. Dodaj do akumulatora A zawarto komrki pamici danych o adresie rwnym zawartoci AR1 (zawarto AR1 to 0x200, a odpowiadajca temu adresowi zawarto komrki to 0x120 patrz nad tabelk), dodaj do tego zawarto A, zapisz wynik w A i potem inkrementuj zawarto AR1. 7. Odejmij od akumulatora A zawarto komrki pamici danych o adresie 0x60 (adres 0x60 zawarto rwna 0x60 patrz nad tabelk) i wynik zapisz w B. 8. Dodaj do akumulatora B zawarto komrki pamici danych o adresie rwnym wartoci AR1 (zawarto AR1 to 0x201, a odpowiadajca temu adresowi warto komrki to 0x70 patrz nad tabelk), a zapisz wynik w A, potem inkrementuj zawarto AR1. 9. Zaaduj liczb 6 do DP. (wczamy w ten sposb 6-t stron pamici danych) 10. Majc DP=6 (zrobilimy to w wierszu 9) patrzymy do tabelek nad gwn tabel i szukamy DP=6 (pierwsza maa, grna tabelka od prawej strony). @2 w wierszu 10 mwi, e interesuje nas adres 2 komrki na 6-tej stronie pamici danych (6 * 0x80 + 2 = 0x302), a wiec w tym przypadku adres 302h. Zatem zawarto komrki o adresie 0x302 czyli 0x100 dodajemy do A i wynik zap isujemy w A.
K2

9 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

11. Zawarto komrki pamici danych o adresie rwnym zawartoci AR2 (zawarto AR2 to 0x300, a odpowiadajca temu adresowi zawarto komrki danych to 0x130 patrz nad tabelk) dodaj to do zawartoci akumulatora A i zapisz wynik w A, potem inkrementuj zawarto AR2. 12. Zawarto komrki pamici danych o adresie rwnym zawartoci AR2 (zawarto AR2 to 0x301, a odpowiadajca temu adresowi warto komrki to 0x80 patrz nad tabelk), odejmij od zawartoci akumulatora A i zapisz wynik w A, nastpnie inkrementuj zawarto AR2. 13. Podan w rozkazie (adresacja natychmiastowa) warto dziesitn 64 (co daje 40h) odejmij to od zawartoci akumulatora A i zapisz wynik w A. 14. Zawarto komrki pamici danych o adresie rwnym zawartoci AR2 (zawarto AR2 to 0x302, a odpowiadajca temu adresowi zawarto komrki to 0x100 patrz nad tabelk). Dodaj to do zawartoci akumulatora A i wynik zapisz w B. Teraz *AR2-0 oznacza: od tego, co jest w AR2, odejmij to, co jest w AR0 (0x302-2=0x300) i zapisz w AR2. 15. Zawarto komrki pamici danych o adresie rwnym zawartoci AR2 (zawarto AR2 to 0x300, a odpowiadajca temu adresowi zawarto komrki pamici danych to 0x130 patrz nad tabelk). Odejmij to od B i zapisz wynik w A. 16. Zaaduj liczb dziesitn 160 (co daje A0h) do AR0. 17. Zawarto komrki pamici danych o adresie rwnym zawartoci AR1 (zawarto AR1 to 0x202, a odpowiadajca temu adresowi zawarto komrki to 0x20 patrz nad tabelk). Dodaj to do A i zapisz wynik w A. Teraz AR1-0 oznacza: od tego, co jest w AR1, odejmij to, co jest w AR0 i zapisz w AR1 (202h-A0h=162h). 18. To, co jest w A, zaaduj do komrki o adresie rwnym zawartoci AR1. UWAGA: w powyszej tabelce znajduje si kolejny drobiazg. W obszarze danych (nad tabelk) jest puste miejsce pod adresem 0x62 sugerujce miejsce czekajce na wstawienie czego. Tymczasem z 18 wiersza tabelki wynika, e trzeba zaadowa warto znajdujc si w akumulatorze AL. do komrki . o adresie 0x162 (i nie jest to omyka). W takim przypadku mo. na obok tabelki narysowa pogldowo fragment pamici z ko160 mrk o adresie 0x162, do ktrej ma trafi warto zawarta w 161 akumulatorze, np. tak jak obok:
162 . . 2D0

K2

10 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Poniej wypenione tabelki dla innych dwch grup z 2004 roku.


Dane:
Adres

DP=0
Warto

DP=2
Adres Warto

DP=4
Adres Warto

CPL=0 CMPT=0 Adr./Dane HEX

60 61 62

60 40 240 AC1

100 101 102 AC2 DP 0

120 60 20 AR0 2

200 201 202 AR1

130 50 100 AR2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

MOV MOV MOV MOV MOV ADD SUB ADD MOV ADD ADD SUB SUB ADD SUB MOV ADD MOV

Program #0,DP #2,AR0 #100h,AR1 #200h,AR2 @0x61,AC1 *AR1+,A @60h,AC1,AC2 *AR1+,AC2,AC1 #4,DP @1,AC1 *AR2+,AC1 *AR2+,AC1 #64,AC1 *AR2-0,AC1,AC2 *AR2,AC2,AC1 #160,AR0 *AR1-0,AC1,AC1 AC1,*AR1-

100 200 40 160 100 160 4 1B0 2E0 290 250 350 220 A0 240 62 61 201 202 200 102 101

Dane:
Adres

DP=0
Warto

DP=2
Adres Warto

DP=4
Adres Warto

CPL=0 CMPT=0 Adr./Dane HEX

60 61 62

60 140 310 AC1

100 101 102 AC2 DP 0

120 30 20 AR0 2

200 201 202 AR1

130 70 100 AR2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

MOV MOV MOV MOV MOV ADD SUB ADD MOV ADD ADD SUB SUB ADD SUB MOV ADD MOV

Program #0,DP #2,AR0 #100h,AR1 #200h,AR2 @0x61,AC1 *AR1+,A @60h,AC1,AC2 *AR1+,AC2,AC1 #4,DP @1,AC1 *AR2+,AC1 *AR2+,AC1 #64,AC1 *AR2-0,AC1,AC2 *AR2,AC2,AC1 #160,AR0 *AR1-0,AC1,AC1 AC1,*AR1-

100 200 140 260 200 230 4 2A0 3D0 360 320 420 2F0 A0 310 62 61 201 202 200 102 101

K2

11 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP Dane:


Adres

DP=0
Warto

DP=2
Adres Warto

DP=4
Adres Warto

CPL=0 CMPT=0 Adr./Dane HEX

60 61 62

60 140 FF10

100 101 102

120 30 20 DP 0 AR0 2

200 201 202 AR1

130 470 100 AR2

Program AC1 AC2 1 MOV #0,DP 2 MOV #2,AR0 3 MOV #100h,AR1 4 MOV #200h,AR2 5 MOV @0x61,AC1 140 6 ADD *AR1+,A 260 7 SUB @60h,AC1,AC2 200 8 ADD *AR1+,AC2,AC1 230 9 MOV #4,DP 10 ADD @112,AC1 2A0 11 ADD *AR2+,AC1 3D0 12 SUB *AR2+,AC1 FF FFFF FF60* 13 SUB #64,AC1 FF FFFF FF20 14 ADD *AR2-0,AC1,AC2 20 15 SUB *AR2,AC2,AC1 FF FFFF FEF0 16 MOV #160,AR0 17 ADD *AR1-0,AC1,AC1 FF FFFF FF10 18 MOV AC1,*AR1*Uwaga, od tego momentu wkraczamy w liczby ujemne

100 200 101 102 4 201 202 200 A0 62 61

I jeszcze jedna uwaga. Wyniki oblicze podlegaj wpywowi ustawienia bitu OVM. W z amieszczonych przykadach nie byo powodu tym si zajmowa bo nie zblialimy si do granic nasycania. Ale problem istnieje!

Pytania z testw - opracowanie


2.1 Wymie gwne cechy wyrniajce procesory sygnaowe od innych procesorw i mikrokontrolerw.

sprztowa jednostka mnoca (MAC) szybki shifter (Barrel Shifter) do skalowania danych sprztowe nasycanie i zaokrglanie sprztowy mechanizm realizacji ptli poprzez repetycj rozkazw i blokw rozkazw specjalizowane rozkazy do przetwarzania sygnaw (FIRS, SUBC, POLY,) jednostki arytmetyczne dla oblicze na adresach liczne, specjalizowane rejestry do adresacji poredniej rozbudowany mechanizm modyfikacji adresw wspomagajcy specyficzne korekty adresw np. dla potrzeb FFT sprztowy mechanizm obsugi buforw koowych sprztowe, wewntrz struktury procesora wsparcie mechanizmu debugowania i emulacji zwielokrotnienie i specjalizacja magistral w tym osobne magistrale danych i programu procesora rozbudowane systemy pamici notatnikowych (cache) znaczne moce obliczeniowe wyraane w MIPS i FLOPS w zalenoci od typu i specjalizacji procesora
12 / 49
ostatnie uzupenienia 9 stycznia 2013

K2

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

wydzielone magistrale specjalizowane do obsugi strumienia danych sygnau (zwykle magistrale szeregowe) mae obudowy (BGA, TQFP) przy maym poborze mocy

2.2

Jaka jest w procesorach C55xx rola rejestrw statusowych i dlaczego jest ich a cztery?

Rejestry te su do zachowania informacji o stanie pracy procesora i wybranych ustawieniach. Jest ich a cztery (ST0_55, ST1_55, ST2_55, ST3_55) gdy zachodzi potrzeba przechowania znacznej liczby danych, ktrych nie da si przechowa w mniejszej liczbie rejestrw.

2.3

Jakie zmiany w architekturze wprowadzone w kolejnych generacjach procesorw pozwoliy na zwi kszenie szybkoci wykonania programu?

Na przykadzie rnic midzy C54xx, C55xx, C6000: zwielokrotnienie zasobw o MAC i ALU o Akumulatorw o dodatkowe generatory adresw o dodatkowe jednostki przetwarzania rwnolegego (do 8-miu) poszerzenie magistral poszerzenie listy rozkazw / procedur specjalizowanych rozbudowa mechanizmw dostpu do danych i programu rozbudowa mechanizmu cache wielopoziomowego zwikszenie rwnolegoci przetwarzania wyduenie sowa adresowego (architektura WLIV) wprowadzenie sprztowych jednostek zmiennoprzecinkowych operacji wprowadzenie specjalizowanych jednostek koprocesorw - np. do obsugi rnych standardw interfejsw, procedur (np. FFT) czy peryferii (np. sensory CCD, eQEP). Zwielokrotnienie rdzeni procesorw DSP

2.4

Od czego mona uzaleni przebieg programu w procesorach rodziny C55xx?

Generalnie sekwencyjny przebieg rozkazu modyfikuj skoki. W tym skoki warunkowe maj szczeglne znaczenie, bo realizowane s w zalenoci od spenienia lub nie warunku lub warunkw. Pytanie dotyczy wskazania od czego mona uzaleni przebieg programu czyli jakie warunki jestemy w stanie wykorzysta w tych warunkowych skokach, a zatem; Wiele stanw jest wykrywane i sygnalizowane flagami; ACOVx czyli przekroczenia w kadym z akumulatorw C Carry przeniesienie w uytym akumulatorze, TC bit, gdzie trafiaj wyniki operacji logicznych Inne elementy mog by wykrywane bezporednio (zwykle komparatorami); Zawarto akumulatorw i jej relacja wzgldem zera, Zawarto rejestrw tymczasowych Tx i ich relacja wzgldem zera, Zawarto rejestrw adresowych ARx i ich relacja wzgldem zera, Stan testowanego dowolnego bitu w pamici danych (trafi do TC) Zawarto caej komrki w pamici danych Warunki te mog by wykorzystywane w takich rozkazach sterujcych przebiegiem programu jak:
K2

13 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

instrukcji instrukcji instrukcji instrukcji

skoku (BCC) wywoania procedur (CALLCC) powrotu (RETCC) odpowiedzialnych za repetycj (RPTCC)

2.5

Dlaczego w procesorach sygnaowych rejestr akumulatora jest ponad dwa razy wikszy od rozmiaru sowa, jakim pracuj?

Aby przyj wynik mnoenia liczb binarnych, potrzebny jest akumulator bdcy dwukrotnie wikszy ni rozmiar sowa. Wynik mnoenia odbierany do przechowania w pamici danych znajduje si w takiej sytuacji na starszej czci akumulatora AH. Modsza cz akumulatora AL modsze 16 bitw ma za zadanie zapewnienie wikszej rozdzielczoci dla sumowania wynikw mnoenia i uniknicia kumulowania bdw na skutek przedwczesnego ograniczania rozdzielczoci reprezentacji. Ta modsza cz akumulatora moe uzyska swj wpyw na warto wyniku poprzez operacj zaokrglania (Rounding). Z kolei dodawanie moe doprowadzi do wyniku wykraczajcego ponad 32 bity akumulatora std rezerw do sumowania lub wynikw porednich sumowania zapewniaj bity AG - GUARD (jest ich osiem).
Rezerwa na wyniki porednie sumowa
A39 A32 A31

Dla zachowania dokadnoci wielokrotnych oblicze


A16 A15 A0

AG

AH

AL

WYNIK do pamici

2.6

Co to jest przetwarzanie nakadkowe, na czym polega i czemu suy?

Przetwarzanie nakadkowe, albo kolejka (z angielskiego pipelining), jest to sposb wykorzystania zasobw procesora do realizacji rozkazw tak, by aden jego fragment nie sta bezczynnie. Uwarunkowane jest podziaem realizacji rozkazu na kolejne fazy wykonywane w pojedynczych cyklach procesora i moliwociami blokw przetwarzajcych procesora oraz magistral transportu danych i rozkazw. Polega on na rwnoczesnym wykonywaniu rnych faz kolejnych rozkazw programu. Przykadowo, wykonujc faz Pre-Fetch dla jednej instrukcji, procesor moe jednoczenie wykonywa faz Fetch poprzedniej instrukcji, faz Decode dla jeszcze wczeniejszej instrukcji itd. Dziki temu rozkazy pobierane do kolejki s wykonywane quazi rwnolegle po jednej fazie z kadego z kolejnych rozkazw jak gdyby cay jeden rozkaz w jednej fazie. Liczba poziomw kolejki, jej gboko, zaley od liczby faz na ktre podzielone zostao wykonywanie rozkazu. W procesorach rodziny C54xx rozkaz jest podzielony na 6 fa realizacji, std kolejka ma 6 poziomw dziaania. W ten sposb przy wypenionej kolejce w jednym cyklu procesora wykonywanych jest rwnoczenie 6 rnych faz czyli jeden cay rozkaz. Fakt, e kada z faz pochodzi z innego rozkazu nie zmienia faktu, e w rozliczeniu czasu wykonywania programu na jeden cykl procesora przypada wykonanie kompletnego rozkazu dajc przyspieszenie realizacji programu.
K2

14 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Trzeba mie jednak wiadomo, e bez kolejki na wykonanie pojedynczego rozkazu o rozmiarze jednego sowa na cay cykl rozkazowy wykonywany bez kolejki - potrzeba 6-ciu cykli procesora, po jednym cyklu na kad z faz. Zatem technika ta nie skraca czasu wykonywania pojedynczego rozkazu ale dziki nakadaniu na siebie rozkazw pozwala na skrcenie wykonywania sekwencji rozkazw i przyspieszenie wykonania caego programu. W przetwarzaniu kolejkowym pobierajc zawarto kolejnych komrek z pamici programu natrafia si na trudnoci zwizane z wykonywaniem skokw. Typowy skok zakca cigo kolejki i wymaga jej ponownego napenienia rozkazami po skoku. Innym problemem jest konfliktu kolejki, gdy kolejny rozkaz chce wykorzysta wynik dziaania bezporednio poprzedzajcego go rozkazu, a poprzednik jeszcze nie ukoczy dziaania. Metod zaradzenia tym kopotom jest reorganizacja programu lub wprowadzenie dodatkowego opnienia (np. rozkazem NOP).

2.7

Dlaczego pojedyncza magistrala zewntrzna proc esora DSP stanowi istotne ograniczenie dla jego szybkoci dziaania?

Jeeli pami programu i danych bd umiejscowione na zewntrz procesora, to pojedyncza magistrala zewntrzna moe transportowa tylko jeden obiekt. Albo kod rozkazu, albo jedn dan. To za uniemoliwia wykorzystanie walorw kolejki i szybko realizacji programu spada. Moe to spowodowa obnienie efektywnoci, o co najmniej 50%.

2.8

Dlaczego w procesorze DSP stosuje si wiele rwnolegych magistral transportowych?

Dlatego, e inaczej nie mona wykorzysta walorw przetwarzania nakadkowego (kolejki). Jest ono tylko wtedy efektywne, gdy moliwe jest pobieranie w tym samym czasie zarwno operandw do przetwarzania (nawet dwch rwnoczenie) jak te i kodu/kodw kolejnych rozkazw oraz odsyanie wyniku operacji do pamici. Wielo magistral do rwnolegych transferw, praca z pamici podwjnego dostpu wraz ze specjalnymi technikami wykonywania rozkazw (rozkazy z opnieniem) i modyfikacja kolejnoci rozkazw lub dwufazowa kolejka jak w c55xx przekada si na szybsz realizacj caego programu.

2.9

Co to jest DARAM i dlaczego jest korzystna w procesorach DSP C55xx?

DARAM (Double Access RAM) jest to pami zezwalajca na 2 dostpy w jednym cyklu procesora w kadym z blokw pamici. Oznacza to, e rne jednostki obliczeniowe MAC, czy CPU jak i wewntrzne zespoy mog dokonywa odczytu i zapisu w tym samym cyklu. Cz rozkazw moe by efektywnie wykonywana tylko, gdy ich operandy rozmieszczone s w DARAM (np. rozkazy z grupy MAC, rozkazy rwnolege). Istotne jest ponadto, e pami DARAM z przestrzeni pamici danych mona przeczy (uwidoczni) do przestrzeni pamici programu (to w starszych procesorach, poprzez ustawienie bitu OOVLY) za w nowych przygotowana ciga pami moe by dostpna z dwch stron, zarwno jako pami danych jak i programu.

K2

15 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.10

Wymie tryby adresacji stosowane w rodzinie procesorw TMS320C55xx i podaj przykady rozkazw stosujcych je.
Przykad Przeznaczenie, zalety

Adresacja

Natychmiastowa MOV (Immediate) Absolutna (Absolute) MOV

#10,AC1

AC1,*(y)

Porednia (Indirect)

MOV

*AR1,AC1

Bezporednia (Direct)

MOV

@x, AC1

Koowa (Circular)

ADD

AR0+,AC1

- operand bezporednio w kodzie rozkazu - uyteczne do inicjalizacji [umie 10d w akumulatorze A] {K => A} - uywa penego 23-bitowego adresu dowolnej komrki [zachowaj modsz cz akumulatora A pod adresem y w pamici danych] {(A(L)) _ Smem(y)} - adresem operandu jest zawarto aktywnego rejestru (ARi) uyta jako wskanik [zapisz w akumulatorze A warto z komrki pamici danych spod adresu zawartego w rejestrze AR1] {(Smem(AR1)) => A} - adresacja wzgldem wskanika strony -DP albo wskanika stosu SP (decyduje bit CPL) [zapisz w akumulatorze A zawarto komrki z pamici danych spod adresu otrzymanego ze zoenia x z DP lub sumy x z SP] {(Smem(xDP)/(x+SP)) => dst} - gdy uywana adresacja cyrkulacyjna modyfikacja AR0 bdzie w opszarze zadeklarowanego rejestru koowego [dodawaj kolejne wartoci do akumulatora AC1] {AC1 + (AR0) => AC1
(AR0 + 1 => AR0) Stosownie z ST2_55, BK03, BSA01}

2.11

Jak rozumiesz i co okrela pojcie trybu adresacji?

Tryb adresacji jest sposobem definiowania dostpu do operandu w treci rozkazu (podawania adresu w rozkazie). Okrela on, w jaki sposb instrukcje sigaj do swoich operandw w pamici. Wyrniamy nastpujce tryby adresacji: - natychmiastowy np. MOV #10,AC1 - absolutny MOV AC1, *(y) - poredni MOV *AR1,AC1 - bezporedni MOV @x,AC1 - Cyrkulacyjny ze specyficznym uyciem rejestrw adresujcych Tryby adresacji i ich rozumienie i sprawno wykorzystania to kluczowy element efektywnego programowania przetwarzania we wszystkich procesorach nie tylko sygnaowych.

2.12

Wymie podstawowe sposoby modyfikacji zawartoci rejestrw adresowych procesorw C55xx i podaj ich przykadowe przeznaczenie.
Skadnia Sposb realizacji

Opcja

Bez modyfikacji
K2

*ARn

ARn bez zmian


16 / 49
ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Post-Inkrement / Post-Dekrement Post-Indeksowana Post-Mod-Koowa (circular) Post-z odwr. Bitw (Bit-Reversed or Reverse Carry Propagation) Pre-modyfikacja Podobnie z CDP

*ARn+ *ARn*(ARn+AR0) *(ARnAR0)

post inkrementacja o 1 post dekrementacja o 1 post inkrementacja o zawarto AR0 post dekrementacja o zawarto AR0 podobnie z rejestrem T0 i T1 *(ARn+AR0%) koowo post inkrementacja o zawarto *(ARn-AR0%) AR0 koowo post dekrementacja o zawarto AR0 *(ARn+AR0B) post inkrementacja o AR0 z odwrc. Bitw (albo wsteczn propagacj Carry) *(ARn-AR0B) post dekrementacja o AR0 z odwrc. Bitw (albo wsteczn propagacj Carry) *ARn(AR0) chwilowe pre *(ARn+AR0), bez zminy ARn! Ale nie wzgldem AR0 a staych (#K16)

Przykadowe zastosowania: inkrement/dekrement dostp do tablic, wektorw, sygnaw koowe dostp do tablic i wektorw ale ze sprztow kontrol przemieszczania si w buforze (zapewnia automatyczny skok na/przez pocztek/koniec bufora), obsuga buforw wspczynnikw i prbek dla filtrw, transformat i transferu danych z odwrceniem bitw - dla szybkiej transformaty Fouriera (FFT) i innych transformat wykorzystujcych wasnoci symetrii funkcji sin/cos

2.13

Co to s sekcje programu i do czego s uywane?

Sekcje to fragmenty programu zawierajce jednorodne obiekty; kod, stae, zmienne lub ukady we/wy. S one zdefiniowane za pomoc dyrektyw w zbiorach rdowych. Sekcje dzielimy wg. zawartoci na; sekcja inicjalizowana (kod programu, predefiniowane stae), sekcja nieinicjalizowana (rezerwacja obszarw pamici na zmienne czy stae) i wg. opisu na sekcja nazwana (opatrzone nazw) sekcja nienazwana (bez nazwy) Sekcje s umieszczane przez linker we wskazanych obszarach pamici zgodnie z zapisem zbioru konfiguracyjnego. Sekcje o tych samych nazwach czone s we wsplne obszary uatwiajc organizacj danych w pamici.

2.14

Co to jest dyrektywa asemblera i do czego suy?

Dyrektywa asemblera jest to polecenie definiujce mu sposb traktowania danego fragmentu programu. S elementem sterowania asemblacj programu. Nie s tumaczone na rozkazy programu a jedynie uruchamiaj sposb dziaania asemblera. Dyrektywy mog suy np. do zdefiniowania sekcji w zbiorach rdowych, uaktywnienia wasnoci asemblera, itd. S one poleceniami tekstowymi i zaczynaj si od kropki. Przykadami dyrektyw mog by: .mmregs ; wcza predefiniowane nazwy rejestrw MMR .sect kot ; koczy poprzednio zdefiniowan sekcj i otwiera now
K2

17 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

tab

; inicjalizowan i nazwan kot sekcj na kod programu ; lub dane .text ; koczy poprzednio zdefiniowan sekcj i otwiera now ; inicjalizowan i nazwan sekcj na kod programu .bss test,n ; koczy poprzednio zdefiniowan sekcj i otwiera now ; nieinicjalizowan sekcj o nazwie test na n sw danych .usect pies, n ; koczy poprzednio zdefiniowan sekcj i otwiera now ; nieinicjalizowan i nazwan pies sekcj dla danych ; rezerwujc dla nich n sw w pamici danych .word 4, 0x13, 66h ; koczy poprzednio zdefiniowan sekcj i otwiera now ; inicjalizowan sekcj dla trzech wartoci 4, 13h, 66h ; zaczynajc si od adresu tab

2.15

Objanij zadania linkera w rodowisku programw do generacji kodu procesora DSP.

Linker czy plik *.obj i generuje docelowy plik wyjciowy *out. Rozmieszcza on i czy jednoimienne sekcje w obszarach pamici wskazanych w zbiorze/poleceniach konfiguracyjnych. Linker moe generowa rne, pomocne w analizie i uruchamianiu programu zbiory np. *.map map pamici, *.lst penego listingu programu, *.hex zbir dla programatora pamici, itd. Zajmuje si on rozmieszczeniem relokowalnych zbiorw *.obj a w nich symboli i sekcji, by przypisa je do ostatecznych adresw oraz decyduje o zewntrznych powizaniach midzy plikami wejciowymi i bibliotekami. Do prawidowego dziaania linkera niezbdny jest zbir konfiguracyjny linkera - Linker Command File ( w CCS ma on rozszerzenie .cmd).

2.16

Wymie czynniki decydujce o szybkoci realizacji programu w DSP.

a) wynikajce z budowy procesora czstotliwo taktowania procesora przetwarzanie nakadkowe zwielokrotnienie magistral rozkazy specjalizowane i ukierunkowane na aplikacje zastosowanie adresacji koowej lub z odwracaniem bitw rozkazy skokw z opnieniem czone warunki dla skokw i operacji warunkowych wykonywanie rozkazw w trybie repetycji zaawansowana obsuga porednich wynikw operacji operacje dwusowowe wielko pamici wewntrznej, szczeglnie DARAM ilo i sposb wykorzystania przerwa oraz ich ewentualne kolizje z trybami repetycji

b) wynikajce ze sposobu przygotowania programu wykorzystanie wymienionych wyej moliwoci sprztowych podzia programu pomidzy asembler i jzyki wysokiego poziomu rozmieszczenie danych w pamiciach SARAM / DARAM, pamici zewntrznej i/lub wewntrznej

K2

18 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.17

Omw sposoby realizacji ptli i stosowane tam rozkazy.

Do realizacji ptli mog zosta wykorzystane nastpujce rozwizania: repetycja pojedynczego rozkazu realizowana instrukcj RPT, pozwala na powtrzenie instrukcji od 1 do 65536 razy. RPT mona wykona rwnolegle z zerowaniem akumulatora dla czystego pocztku sumowania (odpowiednik RPTZ w rodzinie C54xx). RPT n n+1 powtrze repetycja bloku rozkazw realizowana za pomoc instrukcji RPTB. Pozwala ona na powtrzenie bloku instrukcji od 1 do 65536 razy. Liczb obiegw ptli ustala si przed wywoaniem repetycji ustalajc zawarto BRC (Block Repeat Counter). BRC=n n+1 powtrze Fakt repetycji bloku rozkazw z rozrnieniem dwch poziomw zagbienia jest sygnalizowany odpowiednimi stanami bitw w rejestrze CFCT, dla uniknicia niszczenia zawartoci rejestrw okrelajcych warunki repetycji (odpowiednik flagi BRAF dla uproszczonego mechanizmu repetycji w procesorach C54xx). instrukcje skoku warunkowego, wykonujce skok tylko wtedy, gdy speniony jest dany warunek (w przeciwnym razie wykonanie programu przechodzi do nastpnej instrukcji). Wyrniamy dwie instrukcje skoku warunkowego: BC: przeadowuje PC bezporednim adresem, gdy speniony jest warunek. Zazwyczaj wykorzystywane do testw arytmetycznych wykonywanych na zawartoci akumulatora lub testowania flag. Warunkiem takim moe by rwnie zawarto wybranego rejestru ARx, ktry moe suy rwnoczenie jako licznik obiegw ptli. (odpowiednio rozkazu BANZ w rodzinie C54xx). instrukcje skoku bezwarunkowego dla ptli bez koca.

2.18

Co to s tryby repetycji i czemu su w procesorach DSP rodziny C55xx?

Tryb repetycji polega na powtarzaniu rozkazu lub bloku rozkazw. W trybie tym dziki sprztowej obsudze licznika ptli nie tracimy czasu na rozkazy sprawdzajce licznik i realizujce skok. Std ptle takie s bardziej efektywne, tylko uyteczna cz ptli zajmuje czas wykonania. Repetycja pojedynczego rozkazu: - uruchamiana instrukcj RPT pozwala na powtrzenie nastpnej instrukcji od 1 do 65536 razy. RPT n n+1 powtrze. Niestety ptli takiej nie mona przerwa przerwaniem! Repetycja bloku rozkazw: - uruchamiana za pomoc instrukcji RPTB etykieta Pozwala na powtrzenie od 1 do 65536 razy bloku instrukcji od inicjujcego ro zkazu do rozkazu opatrzonego etykiet. Liczba przebiegw zadana jest zawartoci BRC (Block Repeat Counter) plus jeden; BRC=n n+1 powtrze. Zakres ptli zadawany jest zawartociami rejestrw RSA adres pocztku ptli, REA adres koca ptli.

K2

19 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.19

W jaki sposb i po co programista moe okrela/zmienia pooenie tablicy wektorw przerwa (pocztkw procedur przerwa)?

Po resecie sprztowym procesor nadajc warto rejestrom IVPD i IVPH rwn 0xFFFF bdzie siga do tablicy wektorw przerwa zaczynajcej si od adresu 0xFFFF00. Domylnie, dla takiej sytuacji tablica wektorw przerwa jest lokowana w zakresie adresw od FFFF00h do FFFFFFh w przestrzeni pamici programu. Mona przygotowa inn/inne tablice w przestrzeni pamici programu, zaczynajce si od adresw rwnych (IVPD)*256 / (IVPH)*256 i wskaza j procesorowi do uycia poprzez nadanie odpowiedniej zawartoci rejestrw a nastpnie wykonanie programowego reset (czyli rozkazu RESET). Mechanizm taki jest zaimplementowany z tego powodu, by uytkownik mg reorganizowa struktur przerwa swego programu w zalenoci od potrzeb. Np. gdy nie chce uywa domylnych wektorw przerwa rezydujcych w pamici ROM ukadu moe przesun wskazanie tablicy wektorw do dowolnej 256sowowej przestrzeni w pamici programu i tam przygotowa jej wasn wersj.

2.20

Co to jest i czemu suy w procesorach rodziny C55xx IVPD?

IVPD (czyli DSP Interrupt Vector Pointer) to 16-to bitowy rejestr procesora umieszczony pod adresem 0x000049. Jego zawarto stanowi najstarsze 16 bitw adresu w tablicy wektorw przerwa. Uzupeniona kodowanym na 5 bitach numerem przerwania i najmodszymi trzema bitami 000 tworzy adres pocztkowy w tablicy wektorw przerwa procesora, czyli adres pooenia pierwszego wektora w tej tablicy. Jest to wektor przerwania RESET zoony z pierwszych omiu bajtw programu jego obsugi startu procesora. Po sprztowym RESET procesora IVPD = 0xFFFF co lokuje pocztek tej tablicy pod adresem 0xFFFF00. Programista moe przeczy procesor do odczytywania tablicy wektorw przerwa z innego miejsca w pamici programu przez zmian zawartoci IVPD i wykonanie programowego RESET. Rejestr IVPD wskazuje tablic dla wektorw przetwa 0 15 i 24 - 31

2.21

Co to jest i czemu suy w procesorach rodziny C55xx IVPH?

IVPH (czyli Host Interrupt Vector Pointer) to 16-to bitowy rejestr procesora umieszczony pod adresem 0x00004A. Jego zawarto stanowi najstarsze 16 bitw adresu w tablicy wektorw przerwa. Uzupeniona kodowanym na 5 bitach numerem przerwania i najmodszymi trzema bitami 000 tworzy adres pocztkowy w tablicy wektorw przerwa procesora, czyli adres pooenia pierwszego wektora w tej tablicy. Jest to wektor przerwania RESET zoony z pierwszych omiu bajtw programu jego obsugi startu procesora. Po sprztowym RESET procesora IVPH = 0xFFFF co lokuje pocztek tej tablicy pod adresem 0xFFFF00. Programista moe przeczy procesor do odczytywania tablicy wektorw przerwa z innego miejsca w pamici programu przez zmian zawartoci IVPH i wykonanie programowego RESET. Rejestr IVPH wskazuje tablic dla wektorw przerwa 16 23

K2

20 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.22

Dla procesora C5515 podaj, co to jest, co moe zawiera, gdzie znajduje si i do czego suy tablica wektorw przerwa?

Tablica wektorw przerwa jest to obszar w pamici programu procesora, gdzie umieszczone s omiobajtowe wektory przerwa, bdce pocztkami procedur obsugi przerwa odpowiadajcych danym lokacjom w tablicy. Domylnie rozpoczyna si ona pod adresem 0xFFFF00 ale programista moe wskaza procesorowi inne jej pooenie w pamici programu, odpowiednio przygotowujc wczeniej tam jej zawarto i modyfikujc zawarto rejestrw IVPD i IVPH przed programowym RESET. Rejestry te zawieraj 16 najstarszych bitw adresu pooenia pocztku tablicy wektorw przerwa (8 modszych bitw musi by zerami). W ten sposb adresy tych moliwych tablic wyraaj si (pma)=IVPD*256d (dla adresacji bajtowej!) Tablica ta suy wizaniu odpowiednich przerwa procesora z obsugujcymi je procedurami obsugi czyli procedurami reakcji na fakt wystpienia danego przerwania albo rozkazu INTR/TRAP. [V3.x CPU- str. 2.24],

2.23

Co to jest przerwanie?

Przerwanie (ang. interrupt) to mechanizm sucy synchronizacji przebiegu programu z niezalenymi od programu zdarzeniami. Su do tego sygnay przerwa informujce o wystpieniu zdarzenia, procedury reagowania na zdarzenia obsugi tych zdarze, oraz mechanizmy maskowania i szeregowania wanoci tych zdarze ich priorytetw. Decyduj one, czy zgoszenie zdarzenia zostanie zauwaone (obsuone) przez procesor a w przypadku rwnoczesnego zgoszenia kilku zdarze rozstrzygaj, ktre z nich naley obsuy najpierw. Zdarzenia mog by wewntrzne np. zmiany w zasobach wewntrznych procesora (przepenienie licznika, koniec transmisji danych, koniec przetwarzania wewntrznego przetwornika A/C, itp.) albo zdarzenie zewntrzne, ktre generuj sygnay doprowadzone do wej przerwa zewntrznych (INT0, INT1, ... INTn). danie przerwania wyraone sygnaem moe wystpi w dowolnym momencie (w dowolnej fazie cyklu procesora) niezalenie od programu. Wymaga ono zarejestrowania. Przed przystpieniem do oceny wanoci oczekujcych przerwa i obsugi najwaniejszego z nich wymagane jest dokoczenia wanie realizowanego rozkazu. Pojawienie si niezamaskowanego przerwania powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez procesor kodu procedury obsugi przerwania (ISR). Po zakoczeniu obsugi wykonania procedury ISR procesor wraca do wykonywania przerwanego programu. Mwic o przerwaniach naley starannie formuowa wypowiedzi, bo w technicznym argonie czsto terminem przerwania okrela si zarwno sygnay jak i same programy obsugi przypisane zdarzeniom czy te same zdarzenia obsugiwane tym mechanizmem.

2.24

Co to jest procedura obsugi przerwania i jakie s jej gwne cechy?

Procedura obsugi przerwania (ISR) to przygotowany fragment programu zawierajcy sekwencj rozkazw opisujcych sposb reagowania procesora (systemu) na wystpujce zdarzenie jego sygna. Dla prawidowego dziaania procedury obsugi przerwania naley poza jej przygotowaniem ustawi globaln mask przerwa - INTM, odpowiedni bit indywidualnej maski danego przerwania w rejestrze masek przerwa - IMR, warto wskaK2

21 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

nika stosu - SP i umieci pocztek procedury obsugi przerwania w tablicy wektorw przerwa przygotowa odpowiedni wektor. Procedura obsugi przerwania jest zatem programem wywoywanym po ustawieniu flagi danego przerwania, ktry po dokoczeniu wykonywanego rozkazu i przy dopuszczeniu przerwania odpowiednimi stanami masek globalnej i indywidualnej zostanie uruchomiony poczwszy od wasnego wektora w tablicy wektorw przerwa. Po dostrzeeniu sygnau przerwania (zawsze badanego na kocu kadego rozkazu), stwierdzeniu dopuszczalnoci przerwania (odpowiedniego ustawienia masek) a przed jej przywoaniem procesor: Automatycznie kasuje flag przerwania, automatycznie odsya na stos jedynie zawarto rejestru PC (czyli adres nastpnego rozkazu do wykonania po ukoczeniu obsugi przerwania), automatycznie ustawia globaln mask przerwa INTM co daje zablokowanie przerwa. (Zatem inne przerwania nie mog wystpi bez zgody programisty), tworzy przypisany dla zidentyfikowanego przerwania adres pocztkowy wektora w tablicy wektorw przerwa (pierwszego rozkazu procedury ISR) i umieszcza go w PC, odczytuje pierwszy rozkaz spod utworzonego adresu (4-ro sowowy wektor w tablicy zawiera zwykle skok do dalszego cigu programu procedury ISR), dla przerwa zewntrznych sygnalizuje rozpoczcie wykonywania procedury lini INTA procesora , Procedur ISR charakteryzuje zwykle na pocztku procedury konieczno zachowania (zwykle na stosie) stanu rejestrw procesora uywanych w trakcie jej dziaania i odtworzenie ich zawartoci na kocu procedury. (Zachowywanie rejestrw na stosie i pobieranie ich na kocu odbywaj si w odwrotnej kolejnoci.) koczenie procedury rozkazem RET lub RETI by odblokowa system przerwa.

2.25

Co wie, a co rni indywidualn mask przerwania i flag przerwania?

I flaga i maska s wystpujcymi w rnych rejestrach bitami (przerzutnikami). Wie je to samo przerwanie, tyle e maska jest bitem blokujcym lub dopuszczajcym obsug przerwania a flaga jest bitem zgoszenia dania obsugi przerwania. Od strony operacyjnej czy pewne podobiestwo. Flaga jest ustawiana sprztowo za spraw wystpienia zewntrznego sygnau, cho moe by rwnie ustawiona programowo. Jednak kasowana jest WYCZNIE sprztowo na pocztku obsugi przerwania i po RESET. Za maska moe by ustawiana i kasowana programowo a dodatkowo ustawiana jest sprztowo przy rozpoczynaniu obsugi przerwania i po RESET.

2.26

Czego dotycz operacje context save i context restore w procedurach ISR i jakim podlegaj zas adom?

Operacje te dotycz zachowania i odtworzenia stanu kluczowych rejestrw procesora oraz tych, ktre bd uywane w trakcie ISR. Dotyczy to rejestrw statusowych procesora ST0, ST1, PMST oraz jeli uruchomiona moliwo innego przerwania (zagbiania przerwa) - rwnie masek przerwa IMR. Potrzeba zachowania stanu rejestrw uywanych w procedurze obsugi przerwania wynika z koniecznoci powrotu do przerwanego programu gwnego z takim stanem procesora jaki zosta zastany przez przerwanie.
K2

22 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Operacje te realizowane s za pomoc nastpujcych rozkazw:


Rozkaz PSH Opis Przesanie na szczyt stosu danych z pamici, rejestru lub pary rejestrw z korekt (odpowiednim zmniejszeniem) zawartoci wskanika stosu SP adresujcego w obszarze stosu (Rozkaz o bardzo rnorodnym dziaaniu) Pobranie ze szczytu stosu danych i skierowanie do pamici, r ejestru lub pary rejestrw z korekt (odpowiednim zwikszeniem) zawartoci wskanika stosu SP adresujcego w obszarze stosu (Rozkaz o bardzo rnorodnym dziaaniu) Przesanie na szczyt stosu danych z wybranego akumulatora lub rozszerzonego rejestru adresujcego (XARn) z korekt (odp owiednim zmniejszeniem) zawartoci wskanika stosu SP adresujcego w obszarze stosu Pobranie ze szczytu stosu danych i odtworzenie zawartoci wskazanego akumulatora lub rozszerzonego rejestru adresowego (XARn) z korekt (odpowiednim zwikszeniem) zawartoci wskanika stosu SP adresujcego w obszarze stosu (Rozkaz o bardzo rnorodnym dziaaniu)

POP

PSHBOTH

POPBOTH

Trzeba pamita o odwrotnej kolejnoci pobierania danych ze stosu do kolejnoci zapisywania na stosie. [V3.x InstSet_RG; str. 495 i 506]

2.27

Co to jest stos i jaka jest zasada jego dziaania i do czego on suy?

Stos jest to fragment obszaru pamici danych, na ktrym adresacj realizuje rejestr wskanika stosu SP. Stos jest realizacj rejestru typu LIFO i charakteryzuje si odwrotn kolejnoci pobierania danych ze stosu do kolejnoci ich zapisywania. Stos suy gwnie do zachowania i ochrony stanu procesora w trakcie realizacji procedur obsugi przerwania (context save/context restore), zachowania adresw procedur przywoywanych rozkazami CALL, przekazu parametrw do procedur i funkcji, itd. Wskanik stosu - SP wskazuje zawsze ostatni zajt komrk stosu (czyli ostatni odesan na stos dan), zatem dla; Dla CALL: PC *--SP dla odesania stanu PC na stos najpierw musimy zmniejszy stan rejestru SP o jeden by wskaza woln komrk pamici na stosie a potem dopiero odesa dan na wskazan pozycj. a dla RET: *SP++ PC odczytujemy (popularnie pobieramy) zawarto szczytu stosu (TOS) i kierujemy do PC a potem zwikszamy wskanik stosu. Dla zdefiniowania stosu naley: 1. Zadeklarowa nieinicjalizowan sekcj odpowiedniego rozmiaru, rezerwujc wystarczajcy obszar pamici dla stosu. 2. Sekcj t skierowa (umieci) za porednictwem zbioru konfiguracyjnego linkera w pamici (najlepiej w pamici wewntrznej) 3. Zainicjowa wskanik stosu (SP) by wskaza szczyt stosu +1:

K2

23 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.28

Jakie warunki i gdzie mona sprawdza w procesorze C55xx, czego one dotycz i jakie rozkazy mog wykorzystywa ich wyniki?

Trzeba zauway, e moliwo sprawdzania rnych warunkw pozwala na realizacj rozgazie programu poprzez wykorzystanie skokw warunkowych. W procesorze C5515 te moliwoci s bardzo szerokie i obejmuj nie tylko nadzr zawartoci akumulatorw i ich wzajemnych relacji ale rwnie zawartoci rejestrw ARx, Tx, indywidualnych bitw w pamici oraz bitw portw. Realizacji tej kontroli su liczne flagi, komparatory oraz wasnoci rozkazw. W procesorach C55xx mona sprawdza nastpujce warunki dotyczce zawartoci akumulatorw: ACx ACx==0, ACx!=#0, ACx<#0, ACx>#0, ACx<=#0, ACx>=#0, ARx ARx==0, ARx!=#0, ARx<#0, ARx>#0, ARx<=#0, ARx>=#0, Tx Tx==0, Tx!=#0, Tx<#0, Tx>#0, Tx<=#0, Tx>=#0, flag sygnalizujcych wyniki operacji: overflov(ACx) => ACOVx=1, !overflow(ACx) => ACOVx=0, CARRY => CARR=1, !CARRY => CARRY=0, TCx => TCx=1, !TCx => TCx=0, wynik 1 (prawda) dla operacji TC1 i TC2 poczonych relacjami AND (&), OR (|) i XOR (^) Na wartoci tych flag wpywaj wyniki operacji/rozkazw: logiczne AND, OR, XOR (bitowo, rwnie na rejestrach i pamici danych) testowania pojedynczych bitw i pl (B) testowania relacji modszych i starszych czci akumulatorw (CMP) testowania relacji midzy caymi akumulatorami, rejestrami, komrkami pamici testowania stanu linii portw Warunki te mog by wykorzystywane w rozkazach warunkowych skokw (BCC, RCC, RPTCC, RETCC), odwoa (CALLCC).

2.29

Do czego suy w procesorach DSP zegar (timer)?

Zegary (timery) w DSP mona zastosowa do: generacj przerwa po ustalonym programowo czasie (np. dla RTC) generowania impulsw zewntrznych po ustalonym programowo czasie sterowania generacj impulsw PWM realizacji przetwornika C/A pomiar czasu trwania funkcji czy innych procesw softwareowych Zliczania zdarze zewntrznych lub wewntrznych w systemie generacj impulsw i pomiar ich szerokoci generacji zdarze synchronizujcych dla DMA, A/C, C/A i innymi peryferiami.

2.30

Co odrnia standardowy port szeregowy od McBSP w C55xx?

McBSP to wielokanaowy buforowany port szeregowy. Od standardowego portu szeregowego odrniaj go nastpujce cechy: peny, dwukierunkowy bezporedni interfejs do ukadu codec i innych urzdze szeregowych. podwjne buforowanie dla nadawania i potrjne dla odbioru transmisji zdolno realizacji wielu standardw komunikacji szeregowej praca wielokanaowa maksymalnie do 128 kanaw
K2

24 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

dugo sowa: 8-, 12-, 16-, 20-, 24-, 32-bit wewntrzna generacja zegara/ramek z SGR (Sample Rate Generator) transmisja 8-bitowa danych z moliwoci wyboru pierwszestwa LSB lub MSB

Ponadto, podobnie jak standardowy port szeregowy, McBSP zapewnia: maksymalna szybko bitowa: 1/2 CPU Clock Rate wbudowany kompanding wg. praw lub A programowana polaryzacja zegara / ramek potrafi sygnalizowa wszystkie typowe bdy i statusy

2.31

Na czym polega konfigurowanie do pracy peryferii w procesorach DSP?

Polega na zdefiniowaniu odpowiednich parametrw (gwnie przy uyciu dokumentacji i CSL - Chip Support Library) i wypenieniu rejestrw konfiguracyjnych (okreleniu ich zawartoci), ktre mog nadzorowa prac programu. Na CSL skadaj si: struktury danych (myConfig, etc.) - wartoci do umieszczenia w rejestrach funkcje (DMA_config, etc.) - pozwalaj na inicjowanie i zarzdzanie zasobami makra (DMA_OPT_RMK(), etc.) - zapewniaj dostp z wysokiego poziomu do operacji niskiego poziomu programowanie peryferii kierowanie zasobami (utrzymanie sposobu uycia rodkw)

CSL zapewnia dwie podstawowe moliwoci:


2.32

Do czego s szczeglnie przydatne w procesorach DSP kanay DMA i z czym gwnie wsppracuj?

Kanay DMA w procesorach DSP wsppracuj gwnie z McBSP oraz D/A. Mona mwi o ich szczeglnej przydatnoci ze wzgldu na to, e: DMA dla przesa moe siga do kadego zasobu prowadz transfer danych bez zaangaowania CPU, a zatem odciaj procesor posiadaj autoinit (automatyczne ustawienie nastpnego kanau do transferu) transfer mona synchronizowa np. z 20 zdarzeniami w C55xx kady z kanaw dysponuje FIFO by zapis mg wyprzedza odczyt (gdy zasoby docelowe s zajte) przy wydzieleniu kanau z uyciem DMA obsugiwanych moe by do 128 kanaw pozwala na niezaleny wybr wielu kanaw (sw), ktre maj by transmitowane i odbierane elastycznie indeksowana adresacja DMA pozwala na sortowanie kadego kanau do oddzielnego bufora Jednym z najlepszych zastosowa DMA w procesorach DSP jest powizany z sortowaniem automatyczny transfer danych midzy portami McBSP a RAM zawartym w ukadzie. Upraszcza to zarzdzanie i obsug wielokanaowych portw szeregowych przez procesor. W miar rozbudowy mechanizmu DMA w kolejnych generacjach procesorw jego funkcjonalno wzrasta dziki rozbudowie mechanizmw synchronizacji i wizania w acuchy (sekwencje) powizanych operacji.

K2

25 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.33

Co to jest i do czego suy emulator (ICE) procesora DSP?

Emulator to urzdzenie, ktrego zadaniem jest zapewni kontrol nad praca procesora DSP. Umoliwia w zasadzie bardzo podobne funkcje jak debugger. Rnica polega na tym, e w przypadku debuggera funkcje te s zapewniane i obsugiwane przez program uruchomiony na docelowym procesorze, natomiast emulator czciowo dziaa na procesorze, wykorzystujc jego zasoby m.in. do komunikacji i do nadzoru a czciowo na komputerze nadrzdnym - Host. Wykorzystanie emulatora przekada si na uatwienie prac uruchomieniowych oprogramowania procesora, popraw moliwoci diagnostycznych bdw programu dziaajcego z pen szybkoci i z podczonymi peryferiami a dziki temu mono sprawdzenia programu w prawdziwych warunkach i szybsze przygotowanie produktu.

2.34

Dla 12-to bitowej reprezentacji liczb kodowanych U2 i I3Q9 okrel zakres (MAX, MIN) i rozdzielczo r eprezentacji (LSB).

Naley skorzysta z nastpujcych wzorw: min -(2I-1) max 2I-1-2-Q rozdz. 2-Q Zatem: min max rozdz. -(22) = -4 22-2-9 = 4 0,001953125 = 3,998046875 2-9 = 0,001953125

2.35

Po co i jak stosuje si zaokrglenie wyniku?

W procesorach sygnaowych rodziny C5000 wyniki operacji umieszczane s w akumulatorach 40 bitowych. Wynik operacji odsyanej dalej zwykle mieci si na starszej czci akumulatora (AH/BH). Najstarsza cz bity ochronne (AG/BG) stanowi rezerw dla sumowania wynikw porednich operacji a cz modsza (AL/BL) ma zapewni odpowiedni dokadno oblicze wynikw porednich akumulatorze. W odbieranym wyniku z 16-to bitowej czci starszej akumulatora AH mona uwzgldni kocwk wyniku zawart w czci modszej AL wanie poprzez uycie wbudowanego w procesor mechanizmu zaokrglania wyniku. W praktyce oznacza to dodanie do akumulatora wartoci 0x00.0000.8000, dziki czemu jeli zawarto czci AL akumulatora przekracza LSB czci AH akumulatora wwczas jego zawarto zostanie zaokrglona (AH=AH+1 albo inaczej A=A+0x8000). Mechanizm ten uruchamiamy specjalizowanym rozkazem RND albo odpowiednio modyfikowanymi rozkazami operacji arytmetycznych np. MACR, MPYR, LDR itp. Zaokrglanie np. w obliczeniach ptli filtrw stosuje si zazwyczaj dla wyniku ostatniej operacji.

2.36

Co w procesorach okrela pojcie rozszerzenia znakowego i dlaczego jest ono tak istotne w DSP?

Procesory sygnaowe dla zachowania odpowiedniej precyzji oblicze zawsze dysponuj akumulatorami, co najmniej dwukrotnie wikszymi od rozmiaru sowa,
K2

26 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

ktrym pracuj. W przypadku rodziny procesorw C5000 pracujcej na sowie 16-to bitowym akumulatory maj rozmiar 40-to bitowy. Rozszerzenie znakowe to mechanizm pozwalajcy procesorowi w takiej sytuacji na zachowanie znaku danej adowanej do wikszego rejestru. Operacja ta realizowana jest automatycznie i moe by wczana za pomoc bitu SXMD Sign eXtention Mode umieszczonego w rejestrze statusowym ST1_C55. Zasada dziaania SXMD jest nastpujca: SXMD = 1 liczby ujemne dopeniane s na starszych bitach jedynkami, za dodatnie zerami. SXMD = 0 brak dopenienia znakowego, starsze bity pozostaj zwykle bez zmian. Obsuga wczania rozszerzenia znakowego wyglda nastpujco: BSET SXMD ;sign-extension mode ON BCLR SXMD ;sign-extension mode OFF

2.37

Co to jest Saturation on Store (SST)?

Saturation on Store (SST) - jest to operacja nasycania wyniku przy zapamitywaniu. Wczana jest i wyczana za porednictwem bitu SST w rejestrze statusowym PMST (ST3_C55.0). Gdy SST=1, wczone jest nasycanie wartoci z akumulatora przed odesaniem do pamici. Nasycanie jest wykonywane po operacji przesunicia (jeli rozkaz tego wymaga). Trzeba jednak podkreli, e odsyajc do pamici nasycon zawarto nie nasycamy zawartoci akumulatora!. Podczas uycia SST zatem wykonywane s nastpujce operacje: 40-bitowa warto jest przesuwana (w prawo lub lewo) w zalenoci od instrukcji). 40-bitowa warto jest nasycana do wartoci zalenej od bitu statusowego M40. Gdy M40=0 do wartoci 32-bitowej a sposb nasycenia zaley od bitu SXMD. Jeli SXMD = 0, generowana jest nastpujca 32-bitowa warto: - FFFF FFFFh, jeli warto jest wiksza ni FFFF FFFFh Jeli SXMD = 1, generowana jest nastpujca 32-bitowa warto: - 7FFF FFFFh, jeeli warto jest wiksza ni 7FFF FFFFh - 8000 0000h, jeeli warto jest mniejsza ni 8000 0000h Gdy M40=1 nasycanie odbywa si na poziomie wartoci 40-bitowej zatem do wartoci 0x7F FFFF FFFF i 0x80 0000 0000 Otrzymana zawarto jest przesyana do pamici w sposb zaleny od instrukcji Wane jest, e wszystkie te operacje na zawartoci akumulatora s tylko tymczasowe dla przygotowania wartoci do zachowania w pamici. Zawarto akumulatora po zakoczeniu operacji pozostaje taka jak na pocztku wykonywania rozkazu (niezmieniona), podobnie jak ACOVx. Zatem jest to co w rodzaju ograniczenia napicia zasilania w ukadach analogowych, ktre nie pozwala na wyjcie napiciem wyszym, ponad poziom zasilania.

K2

27 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.38

Czy Saturation On Store to jedyny sposb realizacji nasycania?

Nie. Do dyspozycji jest rwnie rozkaz nasycania akumulatora wskazanego w rozkazie. SAT ACx. Istotn rnic w stosunku do nasycania przy zapamitywaniu jest to, e tutaj nastpuje trwa zmiana zawartoci akumulatora nasycenie. W przypadku SST zmienia (nasycaa) si jedynie warto odsyana do pamici a akumulator pozostawa niezmieniony dla dalszych operacji.

2.39

Co to jest Overflow Mode Saturation Mode in D Unit i co zmienia w pracy procesora jego wczenie?

Overflow Mode jest trybem nadzoru przepenienia zakresu. Wcza si go / wycza poprzez modyfikacj bitu sterujcego nasycaniem. W rodzinie C54xx by to bit OVM w rejestrze statusowym (ST1.9). W procesorach rodziny C55xx za uruchomienie takiego sposobu pracy odpowiada co do pozycji w rejestrach statusowych ten sam bit (ST1_55.9) tym razem opatrzony oznaczenie SATD (Saturation Bit for Unit D). Z t zmian nazewnictwa zwizana jest rwnie zmiana sposobu dziaania polegajca na uzalenieniu poziomu nadzoru przepenienia i nasycania od stanu bitu M40 (na poziomie 32 lub 40 bitu akumulatorw). SATD i M40 determinuj, jaka jest zawarto akumulatora gdy dojdzie do przepenienia: gdy SATD=0, wyniki w akumulatorze nie podlegaj ograniczaniu. Wyniki obejmuj wszystkie 40 bitw w akumulatorze (operacje modulo-40) Gdy SATD=1 a M40=0, wyniki w akumulatorze s ograniczane pomidzy wartociami maksymalnymi; dodatni 0x00.7FFF.FFFF i ujemn 0x00.8000.0000, nie dopuszczajc do przekroczenia zakresu. W zwizku z tym wynik oblicze nie przekracza 32-bitw przy przekroczeniu zakresu. Gdy SATD=1 a M40=1, wyniki w akumulatorze s ograniczane pomidzy wartociami maksymalnymi; dodatni 0x7F_FFFF_FFFF i ujemn 0x80_0000_0000, nie dopuszczajc do przekroczenia zakresu. W zwizku z tym wynik oblicze nie przekracza 40-bitw. Warto doda, e w procesorach C55xx wystpuje rwnie niezalenie sterowana operacja ograniczenia wartoci (nasycania) w ALU jednostki A. Steruje tym bit SATA i w przypadku jego ustawienia (BSET SATA) wyniki operacji w ALU jednostki A w przypadku przekroczenia w (w stron maksymalnych dodatnich) gr ograniczone zostan do wartoci 0x7FFF, a w przypadku przekroczenia w stron maksymalnych ujemnych na 0x8000.

2.40

Jak wcza si w procesorach rodziny C55xx DSP tryb ograniczenia wartoci (Overflow Mode)?

Wczenie to mona wykona kilkoma sposobami. Albo poprzez ustawienie indywidualnego bitu SATD (OVM w C54xx) posugujc si rozkazem ustaw pojedynczy bit nazwa_bitu :

BSET SATD Odpowiednio, bit OVM moe by kasowany (ustawiony na 0) rozkazem skasuj pojedynczy bit nazwa_bitu: BRST SATD Naley pamita o odpowiednim dla wymaganego poziomu ograniczenia ustawieniu bitu M40 Albo poprzez ustawianie caej zawartoci rejestru statusowego przy uyciu rozkazw operacji logicznych z odpowiednio przygotowanymi maskami (z zerem lub jedynk na pozycji naszego kasowanego / ustawianego bitu; OR #0x0200, ST3_55 ; SATD=1
28 / 49
ostatnie uzupenienia 9 stycznia 2013

K2

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

lub jego skasowania AND #0x0FDFF, ST3_55

; SATD=0

2.41

Czym si rni przepenienie od nasycenia?

Przy aktywnym nasycaniu podczas przekroczenia zakresu w akumulatorze ustawiana jest maksymalna lub minimalna moliwa warto, natomiast po przepenieniu, na skutek posugiwania si rejestrem o skoczonej dugoci (operacja modulo ...) nastpuje przekrcenie si zawartoci, polegajce na tym, e bardzo dua warto dodatnia moe si sta bardzo du wartoci ujemn, i odwrotnie. Przepenienie zostanie zasygnalizowane zmian stanu odpowiedniej flagi ACOVx.

2.42

Co to jest i jak realizowana adresacja z odwrceniem bitowym (BRA)?

Jest to sposb adresowania przeznaczony do przyspieszenia oblicze programu transformat wykorzystujcych sin() i cos() jako funkcje bazowe. BRA bazujc na symetrii tych fun kcji pozwala na przyspieszenie adresowania w buforach danych lub/i wspczynnikw (zalenie od wariantu realizacji). Procesorowi naley przekaza informacj o rozmiarze bufora zapisujc j lub liczb z niej wynikajc do wskazanego rejestru. (w przypadku C5402 wpis ujemy liczb rwn poowie rozmiaru bufora obsugiwanego t adresacj do AR0). Poniej w tabeli objanienie realizacji BRA.
Licz (dec)
wiersz 1 2 3 4 5 6 7 8 1

Licz (bin)
2

BRA (bin)
3

BRA (dec)
4

Motylki
5

0 1 2 3 4 5 6 7

000 001 010 011 100 101 110 111

000 100 010 110 001 101 011 111

0 4 2 6 1 5 3 7

M0 M2 M1 M3

W trakcie adresacji powikszamy licznik a nastpnie odwracamy symetrycznie bity w zakresie potrzebnym do adresacji w buforze FFT (tutaj 8 lokacji zatem adresacja na 3 bitach). Poow liczby wielkoci bufora (#4) wpisujemy do AR0. Szczegy mona odnale w przytoczonym dalej przykadzie programu do eksperymentowania z tym rodzajem adresowania.

Mechanizm; Odwrcenie bitw w wyznaczonym zakresie ==> do kol. 3 Zwikszenie licznika z kol.1 o 1 Odwrcenie bitw w wyznaczonym zakresie ==> do kol. 3 Zwikszenie licznika z kol.1 o 1 itd. ... do koca bufora Prosz dostrzec, e zawarto kolumny 5 demonstruje uczestnikw kolejnych motylkw ilustrujcych obliczenia transformaty w podrcznikach. Wnikliwym zaczam na kocu opisu zalenoci dla 8-mio punktowej FFT Formua programowa wymaga zainicjowania poza rejestrem adresujcym rwnie rejestru AR0. Poniej fragment programu do demonstracji tego mechanizmu;
; Demonstracja BRA - Bit Reversal Addressing z uyciem listy rozkazw dla C54xx ; ============================================================= .global start, bufor_1, bufor_2, buf_test ; dla uwidocznienia w debugerze .mmregs ; by umoliwi uycie predefiniowanych nazw rejestrw
K2

29 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP ; ; bufor_1 ----buforek danych do przeniesienia i sprawdzenia kolejnoci adresacji z odwrceniem bitowym

.sect "buf_test" .word 00h ; kolejne cyfry od 0 do 7 w kolejnych komorkach .word 01h .word 02h .word 03h .word 04h .word 05h .word 06h .word 07h ----bufor_2 - miejsce na przepisanie w zmienionej kolejnoci po adresacji z odwrceniem bitowym Przetasowane dane znajd si w kolejnych 8 komrkach ; rezerwacja miejsca dla d."przemieszanych"

; ; ; bufor_2 start ; ----

.usect "bufor_2",8 .text

; test adresacji z odwroceniem bitowym STM #bufor_1,AR3 ; rejestr do adresacji BRA STM #bufor_2,AR1 ; rejestr docelowy STM #4,AR0 ; wielkosc bufora FFT/2 NOP LD *AR3+0B,A ;0 - pobieranie danej w adresacji BRA STL A,*AR1+ ; zachowanie danej w buforze wyniku LD *AR3+0B,A ;1 -"STL A,*AR1+ LD *AR3+0B,A ;2 -"STL A,*AR1+ LD *AR3+0B,A ;3 -"STL A,*AR1+ LD *AR3+0B,A ;4 -"STL A,*AR1+ LD *AR3+0B,A ;5 -"STL A,*AR1+ LD *AR3+0B,A ;6 -"STL A,*AR1+ LD *AR3+0B,A ;7 -"STL A,*AR1+ NOP ; bufor wynikowego tasowania pelen

2.43
N 1 n 0

Rozpisanie zalenoci dla FFT 8-mio punktowej N=8


j 2 *n*m / N

X (m) x(n) * e

x ( n) * e
n 0

j 2 *n*m / 8

j 2 ( 2 n 1) / N

X (m)

( N / 2 ) 1

n 0 3

x(2n) * e

j 2 *( 2 n )*m / N

( N / 2 ) 1 n 0 3

x(2n 1) * e

x(2n) * e j 2 *( 2 n )*m / 8 x(2n 1) * e j 2 *( 2 n 1)*m / 8


n 0 n 0

W
K2

k N

j 2k / N

2 N

j 2 2 / N

j 2 /( N / 2 )

2 N

W N

30 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

X (m) x(2n) *W 8 W 8 * x(2n 1) *W 8


2 mn m n 0
3

2 mn

n 0
3

x(2n) *W 4 W 8 * x(2n 1) *W 4
mn m mn n 0 n 0

X (m) x(2n) *W 4 W 8 * x(2n 1) *W 4


mn m n 0 n 0

mn

X (m 4) x(2n) *W 4 W 8 * x(2n 1) *W 4
mn m n 0 n 0

mn

0 N

1 W N 1
m

n/N

W W
N

m N /2

W N
3m

3m

W W W
N N /2

m N /4

W N
2m

7m

X (m) x(0) x(2)W 4 x(4)W 4 x(6)W 4 W 8 x(1) x(3)W 4 x(5)W 4 x(7)W 4


m m 3m m 5m 3m 7m

2m

3m

X (m) x(0) W 2 x(4) W 4 x(2) W 4 x(6) W 8 x(1) W 8 x(5) W 8 x(3) W 8 x(7)


X (m) x(0) W 8 x(4) W 8 x(2) W 8 x(6) W 8 x(1) W 8 x(5) W 8 x(3) W 8 x(7) |- - - - M0 - - - - | |- - - - - - M2 - - - - - - | |- - - - - - M1 - - - - - | |- - - - - - M3 - - - - - - |
====================================================================
4m 2m 6m m 5m 3m 7m

2.44

Czym rni si linia magistrali od zwykego poczenia punktw w ukadzie?

Magistrala to zesp linii oraz ukadw przyczajcych sucych do przesyania sygnaw midzy poczonymi urzdzeniami. Jest to zesp linii, zwykle rwnolegych, wraz ze zdef iniowanym sposobem przesyania na niej danych. Charakteryzuje si przyczeniem do kadej linii wielu wej i wyj ukadw. Poczenie wielu wyj na wspln lini tworzy specyfic zne wymaganie unikania konfliktu w sterowaniu stanem linii. Dlatego naley zapewni taki sposb podczenia i sterowania, by o jej stanie decydowao tylko jedno wyjcie a pozostae nie wpyway na poziom sygnau na linii. Mona to uzyska uywajc z wyjciami trzystan owymi. Wyjcia takie poza logicznymi stanami 0 i 1 (L i H) mog przyjmowa stan trzeci wysokiej impedancji (Z), czyli swego odczenia od sterowania napiciem na linii. Stan ten odpowiada poczeniu wyjcia, do ktrego jest doczona jest linia magistrali, duymi rez ystancjami do masy i do zasilania znikomo obciajcymi lini i sterujce nim aktywne wyjcie innego ukadu. (patrz rys. 3.11 w ksice Bruno Pilarda). [BP, str. 39]

2.45

Opisz co to jest, co moe zawiera i do czego suy stos?

Stos jest to fragment obszaru pamici danych, na ktrym adresacj zapewnia rejestr SP wskanika stosu (Stack Pointer). Jest zorganizowany zgodnie z zasad rejestru typu LIFO (Last In First Out), ostatnie zapisana dana jest pobierana jako pierwsza. Std pobieranie danych ze stosu jest realizowane jest w odwrotnej kolejnoci do ich skadowania. W miar odkadania kolejnych danych na stos jego obszar przyrasta on w stron niszych adresw . Najpierw SP jest dekrementowany ( SP) a potem dana kierowana jest do pamici zgodnie z
K2

31 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

aktualnym wskazaniem SP. Pobieranie danej ze stosu jest zwizane ze zwikszaniem SP inkrementacj. Najpierw odczytujemy dan ze stosu (wskanik stosu SP wskazuje zawsze ostatni zajt pozycj na stosie) a nastpnie zwikszamy wskanik stosu (SP++) by wskaza kolejn dan do pobrania. Stos suy gwnie do zachowania i ochrony zawartoci rejestrw procesora w trakcje realizacji procedur obsugi przerwa, przekazu parametrw do procedur (patrz jzyk C), zachowuje adresy powrotw z procedur przywoanych do pracy rozkazem CALL oraz adresy kontynuacji pracy po ukoczeniu ISR. Stos oddaje najwiksze usugi w realizacji przerwania s na nim zapisywane adres powrotu z przerwania i dane potrzebne do odtworzenia stanu procesora sprzed przerwania (context save/restore). [BP, str. 122]

2.46

Dla procesora C5515 podaj co to jest stos, do czego suy, jak dziaa i co moe zawiera?

Idea stosu zawiera si w okreleniu fragment pamici danych, realizujcy zasad rejestru LIFO (Last In First Out - ostatnie zapisana dana jest pobierana jako pierwsza), na ktrym adresacj zapewnia specjalny rejestr wskanika stosu (Stack Pointer). W procesorach C55xx idea stosu jest rozbudowana. Procesor moe dysponowa dwoma stosami stosem danych obsugiwanym rejestrem XSP i stosem systemowym obsugiwanym rejestrem XSSP. Oba te rejestry w procesorze C5515 maj rozmiar 23-bitw. Rozmiar kadego z obu stosw ograniczony jest do 64K co wynika modyfikacji ich wskanikw jedynie na modszych 16 bitach (SP[15:0] i SSP[15:0]). Starsza cz rejestrw XSP i XSSP, to jest HSP[22:16] nie jest modyfikowana podczas operacji transferu na i ze stosu. Oba stosy mog pracowa i by uywane indywidualnie z moliwoci dodatkowego wykorzystania lub nie szybkiego powrotu z procedur albo, jako stosy sprzone (wspbiene) tworzc 32-bitowy stos jednak bez moliwoci wykorzystania mechanizmu szybkiego powrotu z procedury. W przypadku pracy jako stosy wspbiene ich de- i in-krementacja s wykonywane rwnoczenie. Szybki powrt z procedury realizowany jest dziki rejestrom RETA (Return Address Register) do zapamitywania adresu powrotu i CFCT (Control-Flow
Context Register) ladujcy realizowane ptle i repetycje. Oba rejestry tworz 32 bitowy obiekt d ostpny do zapisu i odczytu.

Wybr sposobu dziaania stosu odbywa si poprzez odpowiednie ustawienie zawartoci pierwszego bajtu wektora reset (procedury ISR dla Reset). W miar odkadania kolejnych danych na stosy ich obszar przyrasta w stron niszych adresw wskaniki s dekrementowane. Pobieranie danych ze stosu jest zwizane ze zwiksz aniem wskanika. Wskaniki obu stosw wskazuj zawsze ostatni zajt pozycj na stosie szczyt stosu (TOS Top of Stack). Stos suy gwnie do zachowania i ochrony zawartoci rejestrw procesora w trakcje realiz acji procedur obsugi przerwa, przekazu parametrw do procedur (patrz jzyk C), zachowuje adresy powrotw z procedur, rwnie rejestry RETA i CFCT. Stos oddaje najwiksze usugi w realizacji przerwania s na nim zapisywane adres powrotu z przerwania i dane potrzebne do odtworzenia stanu procesora sprzed przerwania (context save/restore).
[V3.x TechRef- str. 4.1]

2.47

Dla procesora C5515 podaj co to jest, co moe zawiera, gdzie si znajduje i do czego suy pami podwjnego dostpu DARAM?

DARAM (Double Access RAM) pami dwukrotnego dostpu, czyli jest to pami zezwalajc a na 2 dostpy w jednym cyklu procesora w kadym z blokw pamici. Oznacza to, e przede wszystkim procesor moe pobra dwa operandy z tego samego bloku.
K2

32 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Pami ta mieci si we wntrzu procesora i przeznaczona jest gwnie na dane. W procesorach C5515 ma ona rozmiar 64K. Moe by rwnie wykorzystywana jako pami programu ale nie jest to jej efektywne wykorzystanie i trzeba zwrci uwag na poczenie obszarw logicznych pamici programu i danych czyli powrt w czci obszaru mapy pamici do architektury von Neumana. Cz rozkazw moe by efektywnie wykonywana tylko wtedy, gdy ich operandy rozmieszczone s w DARAM. Operandy niektrych rozkazw musz by umieszczone w tej pamici, bo inaczej dzia anie na nich jest nieefektywne a czasami wrcz niemoliwe (patrz rozkazy z grupy MAC, rozkazy specjalistyczne czy rwnolege). Jej zastosowania wynikaj z wasnoci powinna zawiera dane dla najszybszych fragmentw dziaajcego programu, uywajcego najbardziej zoonych i zrwnoleglonych operacji.

[C5515_Data]

2.48

Dla procesora C5515 podaj na czym polega operacja nasycania i do czego suy?

Operacja nasycania polega na wprowadzeniu ograniczenia wyniku operacji w akumulatorze i zapobieganiu bdw wynikajcych dziaania modulo-40 rejestru akumulatora. Sposb realizacji nasycania uzaleniony jest od stanu bitu M40, ktry decyduje; = czy nasycanie odbdzie si na poziomie bitu 32 / M40=0 (dla 32-bitowej reprezentacji U2 liczby maksymalna dodatnia (0x00 7FFF FFFFF) / maksymalna ujemna (0xFF 8000 0000), = czy na poziomie bitu 40 / M40=1 (dla 40-bitowej reprezentacji U2 liczby maksymalna dodatnia (0x7F FFFF FFFFF) / maksymalna ujemna (0x80.0000 0000) Operacja nasycania moe by realizowana na kilka sposobw Nasycanie zawartoci akumulatora, ktry przekroczy zakres reprezentacji 32 bitowej rozkazem SAT Nasycanie zawartoci akumulatora przy operacjach SHIFT, bez specjalnego polecenia w zalenoci od ustawienia M40 i SXMD Nasycanie wyniku odsyanego do pamici z akumulatora ale bez nasycania zawartoci samego akumulatora Saturation on Store. Uruchamiane jest ustawieniem bitu SST w rejestrze statusowym ST3_55. W tej metodzie sposb nasycania zaley od wczonego lub nie trybu rozszerzenia znakowego (Sign Extention Mode). Dla wczonego SXMD=1 ograniczenie nastpuje na liczbach maksymalnej (0x00 7FFF FFFFF) / minimalnej (0x00 8000 0000). Dla wyczonego SXMD=0 ograniczenie nastpuje na liczbach maksymalnej (0x00 FFFF FFFFF) / minimalnej (0x00 0000 0000). Odsyajc do pamici nasycon warto nie nasycamy zawartoci akumulatora! Metody te su do usprawniania wyniku dla rnych warunkw oblicze. Upraszczajc nieco, Przeciwdziaaj bezzasadnej zmianie znaku liczby przez przekrcenie si rejestru / licznika co moe by rwnoznaczne przeskokowi odpowiadajcego sygnau analogowego z maksymalnej wartoci ujemnej do maksymalnej wartoci dodatniej. Nasycanie wynikw jest odpowiednikiem ograniczenia sygnau na napiciu zasilania w ukadach wzmacniaczy analogowych.

2.49

Co trzeba zapewni (co musi by przygotowane) dla prawidowej obsugi przerwania w procesorze C5515?

Dla prawidowego dziaania procedury obsugi przerwania naley; Opracowa program obsugi przerwania (ISR) Przygotowa i rozmieci wektory procedur ISR w tablicy wektorw przerwa przygotowa odpowiedni wektor (.ivec isr). Ustawi globaln mask przerwa - INTM, Ustawi odpowiedni bit indywidualnej maski danego przerwania w rejestrze masek przerwa IMR, Ustawi warto wskanikw stosu XSP, XSSP (zapewni miejsce na stosy)
K2

33 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Przygotowa zawarto caej tablicy wektorw przerwa a szczeglnie IVPD, wskazujcy na pocztek naszej tablicy wektorw, a w razie potrzeby zainicjowa uywanie tej tablicy rozkazem RESET wykonanym po ustaleniu zawartoci IVPD, IVPH (dla wektora RESET konieczne jest zawarcie w wektorze definicji sposobu pracy stosu
label: .ivec [address[, stack mode]]

[C55xx_AssLangTools, str. 174]

2.50

Dla procesora C5515 opisz krtko tryb adresacji poredniej, jego przeznaczenia i podaj przykady ro zkazw?

Adresacja porednia(indirect) Oglnie to tryb adresacji prostej, gdzie pojedyncze sowo binarne zawiera kod rozkazu i wskazuje rejestr zawierajcy adres operandu w pamici danych. Adresowanie porednie realizuje ide wskanika. W procesorze DSP z rodziny C55xx jest to adresacja z uyciem rejestrw adresujcych AR07, oznaczana *ARn, lub rejestr CDP (Computed Data Pointer) z oznaczeniem *CDP. Jest to sposb adresacji najbardziej wszechstronny, sprawny, z gam modyfikacji zawartoci rejestrw dla sprawnej obsugi tablic, filtrw (operacje arytmetyczne na rejestrach AR) i transformacji (modyfikacja rejestrw, BRA). Zasig adresacji w tym trybie wynika z rozmiaru rejestru XARx 23 bity co pozwala adresowa ca przestrze pamici procesora (8 MBajtw).
Przykad: MOV MOV ; zawarto komrki adresowanej przez AR1 jest wpisywana ; do akumulatora AC1 #0x1000,*AR5- ; sta 1000h jest zapisywana w komrce pamici danych ; adresowanej przez zawarto rejestru AR5. ; potem AR5 jest dekrementowany ; #0x1000 => DRAM(AR5) ; AR5 1 => AR5 *AR1,AC1

[C55xx_Mnem_InSRG, str. 3.6]

2.51

Z jakiego punktu przestrzeni adresowej uruchamiany jest program po RESET sprztowym a z jakiego po RESET programowym w C5515?

Punkt startu programu po sprztowym RESET jest niezmienny dla danego procesora i dla rodziny C5515 wynosi 0xFFFF00. Programista moe przeczy procesor do odczytywania tablicy wektorw przerwa z innego miejsca w pamici programu przez zmian zawartoci IVPD i wykonanie po tym programowego RESET. Wwczas po tym rozkazie zostanie pobrany z pocztku tablicy wektorw przerwa (IVPD * 256) wektor procedury reset - adres startowy programu.

2.52

Czym rni si realizacja ptli programowej od ptli wykonanej dziki trybowi repetycji w procesorach DSP (np. C5515)?

Tryb repetycji jest form realizowania ptli programowych. Moe je wykonywa dwoma sposobami poprzez powtarzanie pojedynczego, zwykle zoonego rozkazu przez powtarzanie kilku rozkazw w bloku. W tym trybie procesor obsuguje sprztowo licznik powtrze ptli (poprzez inicjowany wczeniej rejestr repetycji RC lub BRC dla bloku) oraz skok na pocztek ptli (za spraw dwch rejestrw, RSA pocztku bloku i REA koca bloku)
K2

34 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Ptla programowa jest mniej efektywna czasowo od tej z trybu repetycji gdy musi programowo sprawdza licznik powtrze i realizowa skok i te rozkazy wymagaj czasu na wykonanie. Rnic jest jednak wicej; przerwania ptla programowa dopuszcza przerwanie (jeli tylko s odblokowane) za repetycja pojedynczego rozkazu nie dopuszcza przerwa, nawet gdy s odblokowane. Musz czeka na zakoczenie repetycji. Natomiast repetycja bloku moe dop uci przerwanie. Zagbienie ptli jest moliwe dla ptli programowej, niemoliwe dla repetycji pojedynczego rozkazu a ograniczone dla repetycji bloku [V3.x CPU]

2.53

Czym rni si rozkazy INTR n od TRAP n?

Oba rozkazy przywouj wykonanie n-tej procedury obsugi przerwania bez wzgldu na stan maski danego przerwania. Rnica polega na tym, e na pocztku procedury przywoywanej rozkazem INTR nastpuje zablokowanie przerwa. Powoduje to zablokowanie systemu przerwa i nie zauwaanie zgoszonych przerwa. ISR przywoana rozkazem TRAP nie blokuje systemu przerwa. [V3.x InstSet_RG]

2.54

Dla procesora C5515 podaj, na czym polega operacja zaokrglania, do czego suy i jak si j uaktywnia?

Operacja zaokrglania wyniku operacji w akumulatorze polega na uwzgldnieniu w starczej czci akumulatora ACH czci modszej ACL w dwojaki sposb. Albo zaokrglamy stron nieskoczonoci albo w stron najbliszej wartoci. O sposobie zaokrglania decyduje bit RDM (Rounding Mode Bit), 10 bit z rejestru statusowego (ST2_55.10) Jeli RDM=0 i prowokowane jest zaokrglanie wwczas do wskazanego akumulatora (lub dwch akumulatorw rwnoczenie) dodawana jest warto 0x8000 po wykonaniu operacji rozkazu. Jeli za RDM=1 to wywoywane zaokrglanie odbdzie si w zalenoci od zawartoci modszej czci akumulatora. I tak jeli (8000h < bity(150) < 10000h) to do 40-bitowego akumulatora ACx dodajemy 8000h, tj. ACx=(ACx + 0x8000) Jeli za ( bit(150) == 8000h) i bit(16) == 1) to analogicznie ACx=(ACx + 0x8000)
Po operacji zaokrglania modsza cz akumulatora ACL jest zerowana, (ACL=0)

W ten sposb w odbieranym wyniku z 16-to bitowej starszej czci akumulatora mona uwzgldni cz modsz, jeli jej warto jest wiksza lub rwna LSB starszej czci tego akumulatora. Zaokrglanie suy usprawnianiu wyniku, ale musi by stosowane z ostronoci i rozwag dla uniknicia kumulacji bdw oblicze i zwykle dotyczy ostatniej operacji cigu oblicze. Zaokrglanie uruchamiane moe by normalnym rozkazem ROUND albo skojarzone z rozkazem operacji arytmetycznej dziki rozszerzaniu mnemonika rozkazu o kocow opcjonaln liter R (np. MAC[R], MAS[R], MPY[R], ADD[R], ). [V3.x InstSet_RG, str. 5.528]

2.55

Ktre rejestry procesora w trakcie obsugi przerw ania s zachowywane automatycznie a ktre musi zachowa procedura ISR?

Automatycznie mog zosta zachowywane na stosie; adres powrotu i rejestr kontekstu realizacji ptli repetycji (razem tworz 32-bitowe sowo), rejestr statusu debugowania DBSTAT i 3 rejestry statusowe ST0_55, ST1_55 i ST2_55. Procedura ISR musi sama zachowa na stosie te rejestry, ktrych bdzie uywaa w trakcie swej pracy, czyli bdzie zmieniaa ich zawarto.

[C55xx_Mnem_InSRG, str. 4.8]

K2

35 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.56

Dla procesora C5515 opisz krtko tryb adresacji bezporedniej, jego przeznaczenie i podaj przykady rozkazw?

Adresacja bezporednia w procesorach rodziny C5515 realizuje adresowanie stronicowane skadajc 23 bitowy adres XDP z 7-mio bitowego rejestru DPH i 16-to bitowego kodu bdcego sum 7-miu bitw z kodu rozkazu i zawartoci rejestru DP lub rejestru wskanika stosu SP. Wybr rejestru do sumowania wykonywany jest zawartoci bitu CPL z rejestru statusowego ST1_55. Dla CPL=0 do tworzenia adresu wykorzystywany jest rejestr DP a dla CPL=1 rejestr SP. W ten sposb rejestr XDP wskazuje jedn z 128 stron gwnych a DP wskazuje stron lokaln na stronie gwnej. SP wskazuje TOS (szczyt stosu) tworzc w trybie adresacji bezporedniej bardzo efektywn metod dostpu do przekazywanych przez stos obiektw. Jest to uyteczna adresacja o zwartym rozkazie zajmujcym jedno sowo w pamici programu, potrzebujcym jednego cyklu na wykonanie w kolejce procesora rozliczanym w wykonywaniu programu jednym cyklem procesora. Ograniczeniem tego trybu jest may zasig adresacji obejmujcy tylko jedn, 128 elementow stron danych. Np. MOV @x, AC1 ; zaaduj warto spod adresu x z aktualnej strony danych (lub ze stosu) do akumulatora AC1 Tryb adresacji bezporedniej ma zastosowanie rwnie do dostpu do portw we/wy. Wykorzystuje si wwczas jako rejestr strony 9-cio bitowy rejestr PDP (Port Data Page) zoony z 7 bitami z kodu rozkazu. Wymaga to uycia w rozkazie kwalifikatora port(). Bezporednia adresacja uywana jest rwnie w rozkazach testowania i manipulowania bitami w gwnych rejestrach procesora (ACx, ARx, Tx). Kwalifikatorem @bitoffset okrelamy pozycje bitu w rejestrze. [V3.x InstSet_RG, str. 3.4]

2.57

Czym rni si od siebie procedura obsugi przerwania od dowolnej innej procedury programowej procesora C5515?
Procedura programowa Tylko wykonywana przez odwoanie z programu Umieszczana w dowolnym punkcie programu Uruchamiana tylko z programu przez rozkaz CALL proc Bez mechanizmw powizania ze sprztem analogiczny status przerwa jak cay program Wymaga inicjatywy dla zablokowania przerwa Maj rwny status wanoci bez priorytetw Nie zaley od flag

ISR Moe wtrca si w program i inne procedury Ma ustalone punkty startu procedur poprzez IPTR Moe by rwnie uruchamiana z programu INTR n i TRAP n Powizane ze zdarzeniami sprztowymi wewn. i zewn. Automatycznie blokuje przerwania i wymaga specjalnej zgody na ich dopuszczenie Wymaga inicjatywy dla odblokowania przerwa Rni je status wanoci - priorytet Dla dopuszczenia dziaania wymaga ustawienia odpowiednich flag

2.58

Co to s sekcje programu w C5515, jakie s ich rodzaje i do czego su?

Sekcje to fragmenty programu, z ktrych kada zawiera jednorodne obiekty; kod, stae, zmienne lub ukady we/wy. Wyznaczane s w programie za porednictwem dyrektyw oznaczajcych pocztek nowej sekcji. Sekcje mog by inicjowane (o znanej zawartoci w chwili tworzenia np. zawierajce kod programu czy stae) lub nieinicjowane (tylko rezerwujce miejsce na zmienne lub stae). Mog by opisywane wasnymi nazwami nazwane lub nie nazwane, bez okrelonej nazwy.
K2

36 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Sekcje wprowadzane s dla uatwienia rozmieszczania segmentw programu w pamiciach procesora. Rozmieszczenie to jest wykonywane przez Linker w oparciu o jego zbir konfiguracyjny bdcym zapisem rozmieszczenia zasobw sprztowych i wymaga programisty na kierowanie poszczeglnych sekcji do istniejcych zasobw. Linker realizuje polecenia zbioru konfiguracyjnego oraz polecenia niektrych dyrektyw z programu rdowego. Dodatkowo zmierza do czenia sekcji o takich samych nazwach we wsplne obszary

2.59

Czym rni si przerwanie sprztowe od przerwania programowego?

Przerwanie sprztowe (ang. Hardware Interrupt), powodowane jest zdarzeniem w zasobach sprztowych procesora wewntrznych (przepenienie licznika, koniec transmisji danych, koniec przetwarzania wewntrznego przetwornika A/C itp.), lub zewntrznych za spraw sygnaw doprowadzony do wej przerwa (INT0, INT1, INTn, NMI, RESET). Cech charakterystyczn przerwa sprztowych jest, e poza NMI i RESET dysponuj swoimi flagami rejestrujcymi zgoszenie przerwania danie obsugi (w rejestrze IFR) i indywidualnymi maskami przerwa (w rejestrze IMR) pozwalajcymi na ich indywidualne blokowanie obsugi, niezalenie od moliwoci oglnego blokowania caego systemu przerwa. Cech charakterystyczn przerwa sprztowych s ich priorytety przypisane poziomy wanoci, wyznaczajce kolejno wyboru do obsugi w przypadku rwnoczesnego zgoszenia dania obsugi dwch lub wicej. Ze wzgldu na swe powizania sprztowe su do synchronizacji programu z asynchronicznymi wzgldem niego zdarzeniami. Przerwania programowe wywoywane s z programu rozkazami INTR n lub TRAP n Oba rozkazy przekierowuj sterowanie z programu do n-tej procedury obsugi przerwania w tablicy wektorw przerwa. Maj zdolno sprowokowania kadej z procedur umieszczonych w tablicy wektorw przerwa. Rozkaz INTR n dodatkowo blokuje system przerwa ustawiajc globaln mask przerwa INTM. Jako e wywoywane s z programu wic nie maj powiza z zdarzeniami sprztowymi (ani zewntrznymi ani wewntrznymi) zatem ze swej istoty nie nadaj si do synchronizacji z zewntrznym wiatem biegncym niezalenie od przebiegu programu.

[BP, str. 153]

2.60

Dla procesora C5515 opisz krtko tryb adresacji natychmiastowej, jego przeznaczenie i podaj przykady rozkazw?

Adresacja natychmiastowa (immediate) Jest to tryb adresacji w ktrym uywany operand, jego warto, jest zawarty w rozkazie. Rozkaz, w zalenoci od wartoci operandu (danej) moe mie rozmiar jednego lub dwch sw. Operand zawarty w rozkazie jest przechowywany w pamici programu wraz z kodem rozkazu i jest do natychmiastowego uycia bez koniecznoci sigania do pamici danych. Ten tryb adresacji wykorzystywany jest zwykle do inicjalizacji rejestrw. Przykad: MOV #100,ACx ; warto 10d jest wpisywana do akumulatora A ; 0x100 => ACx

2.61

Co to jest zbir konfiguracyjny linkera w C5515 i do czego suy?

Zbir konfiguracyjny linkera to zabir tekstowy, niezbdny dla prawidowego przebiegu procesu linkowania programu prawidowego dziaania programu Linker. Zawiera w sobie wykaz zbiorw wejciowych jakie Linker bdzie bra do obrbki wraz z kolejnoci ich pobierania, wykaz zbiorw wyjciowych wytwarzanych przez Linker, zestaw opcji konfigurujcych prac Linkera, zapis rozmieszczenia zasobw pamici programu, danych i portw we/wy (adresy pocztkowe i wielko obszaru) oraz skierowania sekcji programu do odpowiednich obszarw pamici. Zatem zbir ten okrela rozmieszczenie zdefiniowanych w asemblerze blokw (fragmentw) programu w fizycznej mapie pamici jak dysponuje system.
K2

37 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Zwykle zbir ten opatrzony jest rozszerzeniem (*.cmd)

2.62

Objanij jakie operacje wykona rozkaz: PSH procesora C5515?

*AR2-

Bardzo skrtowo to najpierw zmniejsza wskanik stosu SP o jeden, odsya dan z adresu wskazywanego w rejestrze AR2 na stos pod adres zawarty w SP, zmniejsza zawarto AR2 o 1.
(SP) - 1 SP (AR2) TOS(SP) AR2 1 AR2 ;dekrementacja wskanika stosu ;przepisanie zawartoci komrki pamici adresowanej przez AR2 na ;szczyt stosu (wskazuje go SP ;dekrementacja AR2

2.63

Skd linker wie jakie sekcje ma czy ze sob w C5402 a jakie nie?

Sekcje s tworzone w programie rdowym za pomoc dyrektyw. Mog by opatrzone nazw (nazwane) lub nie (nienazwane). Linker z natury dziaania bdzie czy ze sob sekcje o takich samych nazwach. Dodatkowo mona za porednictwem skierowa sekcji w zbiorze konfiguracyjnym linkera zleci linkerowi sposb i kolejno umieszczania sekcji w pamici danych i programu, kierujc sekcje do odpowiednich obszarw pamici zdefiniowanych rwnie w tym zbiorze konfiguracyjnym.

2.64

Flaga a maska

Zarwno flaga jak i maska reprezentowane s stanem przerzutnika w rejestrze. S zatem obiektami o rozmiarze jednego bitu. Wyrniaj je funkcje. Maska jest zazwyczaj bitem blokujcym lub dopuszczajcym jaki mechanizm, zdarzenie, np. obsug przerwania a flaga jest bitem rejestrujcym jaki fakt, zgaszajcym jak potrzeb, np. obsugi przerwania, czy ustalajcym jaki fakt, np. Poziom sygnau wyjciowego na wyjciu XF (eXternal Flag). Flaga moe by ustawiana sprztowo za spraw wystpienia zewntrznego sygnau (jak przerwania), czy jakiego stanu (np. przekroczenia zakresu w akumulatorze A OVA) lub moe by ustawiana programowo rozkazem. Niektre flagi mog by rwnie kasowane (przestawiane) programowo, a s rwnie takie, ktre kasuje si tylko za spraw podjcia jakiego dziaania (np. flagi przerwa) lub wykonania specyficznego rozkazu (np. flag OVA mona skasowa TYLKO wykonujc skok warunkowy sprawdzajcy warunek OVA). Bity masek mog by ustawiane i kasowane programowo a s maski ustawiane rwnie za spraw zdarze. Dla przykadu maska globalna przerwa INTM ustawiana jest sprztowo przy rozpoczynaniu obsugi przerwania ale i po RESET. Zarwno flagi jak i maski mog by elementami rejestrw statusowych (ST0, ST1, PMST) lub rejestrw specjalistycznych czy konfiguracyjnych np. IFR czy IMR.

2.65

Co to jest TIMER w systemie DSP

Mianem TIMER okrela si w DSP podobnie jak w technice procesorowej zesp ukadw dziaajcych we wsppracy z licznikami impulsw w celu zliczania, odmierzania czasu czy generacji impulsw.

K2

38 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Podstawowa idea pracy sprowadza si do wstpnego zaadowania rejestru licznika wartoci okrelajc wymagany czas dekrementowania sygnaem taktujcym do stanu 00 powodujcego wygenerowanie sygnau i ewentualne odwieenie pocztkowego stanu licznika dla umoliwienia powtrzenia caej operacji. Konkretny sposb obsugi, powizanie ze rdami sygnaw taktujcych, dugo licznika, sposb sygnalizacji, itd. zaley od konkretnej implementacji i procesora. Przeznaczenie ukadw TIMER patrz pytanie Do czego suy w procesorach DSP zegar (timer)?.

2.66

Objanij co moe uatwia w C5515 DSP wykorzystanie rozkazu FIRS uzasadnij?

Rozkaz umoliwia uproszczenie, przyspieszenie obliczania symetrycznego filtru FIR. Filtr musi mie symetryczny ukad wspczynnikw by moliwe byo zsumowanie wartoci prbek sygnau przyporzdkowanych wspczynnikom o takich samych wartociach/

FIRS *AR3+, *AR4+, COEFFS

;COEFFS to adres pmad (p.programu)


;COEFFS PAR ;While (RC) rne od 0 ; (B)+(A(3216))*(PAR) B ; ((AR3)+(AR4)) << 16 A ; (PAR)+1 PAR ; AR3+1 AR3 ; AR4+1 AR4 ; (RC)-1 RC ;zaley od bitw SXMD, FRCT i OVM ;ustala bity C, OVA i OVB

2.67

Architektura Von-Neumana

Architektura ta opisuje system z jednolit przestrzenia adresow, obsugiwan przez jedn szyn, wsplna dla danych i kodw programu. W tej architekturze podzia na obszar pamici na dane i program jest umowny. Zalet tej architektury jest atwo programowania, gdy dostp do danych, programu i urzdze we/wy odbywa si przy uyciu zunifikowanych rozkazw wykorzystujcych te same tryby adresowania. Nie jest potrzebne wprowadzenie specjalnych rozkazw pozwalajcych na przepyw danych pomidzy pamici danych i programu. Niestety dysponujc tylko to dysponujc tylko jedn magistral nie moemy wykonywa rwnolegych przesa, std wszystkie operacje odczytu i zapisu musz odbywa jedna po drugiej. Wszystkie operacje wykonywane s sekwencyjnie, jedna po drugiej. Nie ma moliwoci zrwnoleglenia operacji i przyspieszenia wykonywania programu.

2.68

Architektura Harwardzka

Gwnym elementem tej architektury jest wyrane i stae rozdzielenie obszarw pamici danych i programu oraz dwie oddzielne szyny magistral do transportu danych i kodw programu. Dziki temu mona wykonywa rwnolegle operacje pobierania kodu i danych (operandw rozkazw) a dziki specjalnej organizacji zasobw rwnie wykonywa rwnolegle inne fazy rozkazw organizujc
K2

39 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

kolejk przetwarzania nakadkowego. Kolejka, w ktrej kilka kolejnych rozkazw z pamici kodu jest nasunite na sienie Przyspiesza realizacj programu. Kolejka NIE SKRACA cyklu rozkazowego (rozkazy nadal wymagaj takiej samej liczby faz cykli procesora, ale przez rwnolege wykonanie kilku faz rozkazw skraca sumaryczny czas wykonywania programu. Rozdzielenie obszarw pamici programu i danych wymaga uzupenienia sygnaw sterujcych (select) wyboru odpowiedniego obszaru pamici lub portw we/wy. Omwienie organizacji magistrali patrz pytanie; O czym mwimy uywajc okrelenia magistrala danych czy magistrala programu?

2.69

Udoskonalenie architektury harvardzkiej w DSP.

Architektura Harward zostaa w procesorach DSP skorygowana w ten sposb, e zwikszono liczb magistral danych z jednej do trzech. Umoliwia to rwnolege pobieranie z pamici danych do dwch argumentw dla rozkazw obliczeniowych (np. MAC) i odsyanie wyniku operacji do pamici danych. Zwiksza to wydajno procesora, ale i jego zoono. Uzyskany dla CPU procesora dostp do kilku obszarw jednoczenie (wsparty dziki zastosowaniu pamici DARAM) zwiksza przepustowo transferu danych midzy pamici a CPU.

2.70

DEBUGGER

(ang. Odpluskwiacz, {de-przeciwiestwo, bug-robak} - debugger) jest to komputerowy program pozwalajcy testowa oraz debugowa inne programy. Sam debugging jest pojciem zwizanym z procesem metodologii szukania i redukowania liczby bdw lub defektw, w wymienionym programie komputerowym czy procesora, dziki czemu dany program bdzie si zachowywa zgodnie z oczekiwaniem. Debugowanie bywa trudniejsze, kiedy rne podprogramy s cile powizane, jedne zmiany mog powodowa bdy w innym podprogramie, lub podsystemie. Wana jest wiadomo, e sam debugger nie usuwa bdw a jedynie daje uytkownikowi moliwo zatrzymania programu w wymaganych miejscach i kontroli zawartoci rejestrw czy pamici w celu dokonania oceny prawidowej kolejnoci pracy czy oblicze. Debugger nie ma adnych automatycznych mechanizmw wykrywania bdw programu. To zadanie spoczywa zawsze na uytkowniku programu. Debugging mona prowadzi na rnych poziomach w zalenoci od tego, w jakim jzyku napisany zosta testowany program, czy testowaniu poddawany jest kod asemblerowy (ze znacznie precyzyjniejsz, ale i mudniejsz kontrol zalenoci czasowych pracy programu) czy kod programu w jzyku wyszego poziomu.

2.71

EMULATOR a DEBUGER

Emulator to zestaw; urzdzenie + oprogramowanie + zasoby na procesorze, sucy do poczenia komputera host z procesorem DSP. Wykorzystuje moliwoci standardu komunikacji JTAG i zawarte wewntrz procesora specjalne zasoby dla umoliwienia kontroli nad prac procesora DSP i uruchamiania programu w procesorze. Zwykle wsppracuje z programowym rodowiskiem generowania i uruchamiania programu na procesorze CCS (Code Composer Studio) w tym programem debugera. Debugger to program dziaajcy na komputerze host (w cisej wsppracy z programem na procesorze DSP) pozwalajcy na podgld zasobw podczonego za pomoc emulatora procesora DSP (szczeglnie rejestrw i pamici), ustawianie w uruchamianym programie punktw zatrzymania (puapek breakpoints) i punktw testowania (probepoints) i wizanie z nimi rnych operacji. Wszystko to dla potrzeb testowania i korygowania dziaania badanego programu, usuwania jego bdw (debugowania) programu na procesorze docelowym DSP, korzystajc zarwno z programu na komputerze host, zasobw wewntrznych procesora DSP dedykowanych dla debugingu jak i z fizycznego poczenia midzy DSP a komputerem host. Zatem obydwa tworz cznie rodowisko sprztowego uruchamiania programu na procesorze docelowym DSP korzystajc zarwno z programu na komputerze host, zasobw wewntrznych procesora oraz z poczenia fizycznego pomidzy procesorem DSP a komputerem. W przypadku procesorw produkcji Texas Instruments prac tego zestawu usprawnia uycie systemu czasu rzeczywistego DSP/BIOS dziaajcego na procesorze DSP.
K2

40 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.72

LINKER

Linker jest programem, ktry aczy pliki skadajce si na program po ich uprzedniej kompilacji / asemblacji do formatu plikw *.obj. Wykonuje to posugujc si poleceniami zawartymi w linii polece lub w pliku konfiguracyjnym linkera. Generuje docelowy zbir z programem *.out do wykonania na procesorze DSP. W trakcie swojej pracy czy sekcje o takich samych nazwach i rozmieszcza sekcje w obszarach pamici wskazanych w zbiorze konfiguracyjnym linkera *.cmd. Zbir konfiguracyjny linkera - *.cmd (linker configuration scripts file) jest niezbdny do prawidowego zbudowania kodu; definiuje gdzie w pamici programu umieszczone s fragmenty kodu, bloki pamici; opisuje przyporzdkowanie plikw wejciowych wyjciowym, definiuje alokacje pamici. Linker moe rwnie generowa szereg uytecznych w trakcie uruchamiania zbiorw, opisujcych np. rozmieszczenie obiektw i procedur programu (zbir *.map) czy zbir penego listingu programu (*.lst) zawierajcy zapis programu, adresy, wykonywalny kod, komentarze. [BP, str. 79], [C54x_CPU_Priph_spru131g.pdf; str. B.1]

2.73

Architektura harwardzka a super harwardzka.

Gwne cechy architektury Harward opisane zostay w p. 2.68. Skorygowana architektura Harward, jak posuguje si Texas Instruments przwiduje zwikszenie liczby magistral danych do 3 i nadanie im pewnej specjalizacji. Dwie magistrale C i D ukierunkowane s na rwnolego odczyt operandw dla wykonania rozkazu. Za trzecia z nich E, jest przeznaczona do odesania wynikw oblicze do pamici lub ukadw We/Wy. Haso Super Harward pojawia si w kontekcie procesorw SHARC firmy Analog Devices (Super Harvard ARchitecture Computer). Architektur t mona okreli jako Harward o wyduonym sowie rozkazowym. Terminologia ta jest stosowana troch marketingowo i nie naley jej myli z okreleniem SuperH SH) firmy Hitachi.

2.74

Co to jest rozszerzenie znakowe, czemu suy itd?

Procesory sygnaowe dla zachowania odpowiedniej precyzji oblicze zwykle dysponuj akumulatorami, co najmniej dwukrotnie wikszymi od rozmiaru sowa, ktrym pracuj. W przypadku rodziny procesorw C5000 pracujcej na sowie 16-to bitowym akumulatory maj rozmiar 40-to bitowy. Rozszerzenie znakowe to mechanizm pozwalajcy procesorowi w takiej sytuacji na zachowanie znaku danej adowanej do wikszego rejestru. Operacja ta realizowana jest automatycznie i moe by wczana za pomoc bitu SXMD Sign eXtension Mode umieszczonego w rejestrze statusowym ST1. [BP, str. 99]

2.75

Co to s dekodery adresw, jaka jest ich rola w systemie DSP?

Dekodery adresw s to cyfrowe ukady kombinacyjne podczane wejciami do linii adresowych procesora a wyjciem do odpowiednich ukadw pamici lub portw we/wy, ktre maj maj aktywowa do komunikacji z procesorem, gdy na liniach adresowych pojawi si adres odpowiadajcy ukadowi, ktre obsuguj. Su do aktywowania waciwego ukadu pamici lub portu urzdzenia zewntrznego na podstawie generowanego przez mikroprocesor sowa adresowego i odpowiednich sygnaw sterujcych. [BP, str. 27]

2.76

Co to jest i do czego suy emulator (ICE) procesora DSP?

Emulator to urzdzenie sprztowo-programowe. Jego zadaniem jest zapewnienie poczenia pomidzy narzdziami programowymi na komputerze host a zasobami wewntrznymi procesora DSP. Celem tego poczeni jest umoliwi programowi Debugera kontrol nad prac procesora DSP a co za tym idzie uruchamianie i testowanie programu. W swej pracy wykorzystuje poczenie JTAG (standard
K2

41 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Boundary Scan) wraz z mechanizmem wymiany danych w czasie rzeczywistym RTDX (Real Time Data eXchange) oraz wewntrzne, przygotowane specjalnie do wsparcia debugowania zasoby w strukturze procesora DSP (zwykle rejestry, komparatory, w bardziej rozbudowanych pami przechwytu). Po stronie komputera host emulator jest obsugiwany przez sterowniki zwykle bdce elementem rodowiska developerskiego do przygotowania, generowania i uruchamiania kodu (w przypadku produktw Texas Instruments CCS Code Composer Studio), ktrego elementem jest program uruchamiania i testowania debuger i inne programy optymalizacyjne i diagnostyczne jak np. profiler. Ich sprawne i efektywne dziaanie jest w znacznym stopniu wyznaczane jakoci i szybkoci dziaania emulatora. Emulator jest w praktyce jedynym narzdziem pozwalajcym na wgld w zasoby procesora i ledzenie ich pracy w czasie rzeczywistym, gdy procesor pracuje na penej szybkoci. Wykorzystanie emulatora przekada si na uatwienie prac uruchomieniowych oprogramowania procesora, popraw moliwoci diagnostycznych bdw programu dziaajcego z pen szybkoci i z podczonymi peryferiami a dziki temu mono sprawdzenia programu w prawdziwych warunkach i szybsze przygotowanie produktu. [BP, str. 52]

2.77

Mnemonik

(skrt mnemotechniczny) - symbol (sowo) utworzony zgodnie z zasadami mnemotechniki, tzn. w taki sposb, aby forma zapisu bya pomocna w zapamitaniu, do jakiej operacji przypisane jest dane sowo-kod. Mnemonik skada si z kilku liter bdcych skrtem sw z jzyka angielskiego oznaczajcych dan czynno procesora. Listy rozkazw procesorw, w ktrych skad wchodz mnemoniki rni si w zalenoci o typu procesora. Niektre z mnemonikw, oznaczajce takie operacje jak dodawanie, odejmowanie, mnoenie czy dzielenie s jednakowe dla wszystkich procesorw. Za zamian (tumaczenie) zapisu programu z uyciem mnemonikw na jzyk wewntrzny (kod maszynowy) "zrozumiay" dla procesorw odpowiedzialne s specjalnie przeznaczone do tego programy zwane Asemblerami. Mnemonik Nazwa MOV przesu ADD dodaj CALL przywoaj procedur B skocz [C54x_Mnem_Instr_Set_spru172c.pdf; str. 2.1], [BP, str. 82]

2.78

Co to s sekcje programu, co mog zawiera, jakie s ich rodzaje i do czego su w C5515?

Sekcje to fragmenty programu zawierajce jednorodne obiekty; kod, stae, zmienne lub ukady we/wy. S one zdefiniowane za pomoc dyrektyw w zbiorach rdowych programu w asemblerze. Sekcje dzielimy wg. zawartoci na; Sekcja inicjalizowana (kod programu, predefiniowane stae), czyli fragmenty programu, tablice o znanej na etapie programowania zawartoci. Sekcja nieinicjalizowana (rezerwacja obszarw pamici na zmienne lub stae wprowadzane w trakcie dziaania programu), czyli obszary, dla ktrych na etapie pisania programu nie znamy zawartoci a jedynie ich typ i zamieszczamy dane tylko o potrzebnej na nie objtoci Sekcje mog by opatrywane nazwami lub nie mwimy wtedy o sekcja nazwanych lub nienazwanych Sekcje s umieszczane przez linker we wskazanych obszarach pamici zgodnie z zapisem zbioru ko nfiguracyjnego. Sekcje o tych samych nazwach czone s we wsplne obszary uatwiajc organizacj danych w pamici.

2.79

Czym rni si od siebie programy procedur obsugi przerwania ISR i dowolnej innej procedury?

Procedury obsugi przerwania ISR


K2

42 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Mog by wywoywane zdarzeniami lub sygnaami zewntrznymi Dziaanie zwizane jest z priorytetami definiujcymi wano Mog by wywoywane rozkazami TRAP n i INTR n Zawsze zaczynaj si w tablicy wektorw przerwa Zawsze s wywoywane za porednictwem tablicy wektorw przerwa Mog by wywoane w prawie dowolnym miejscu programu prawie niezalenie (!RPT!) od realizowanego rozkazu Ich wykonywanie zaley nie tylko od wystpienia zdarzenia ale rwnie od stanu indywidualnych masek oraz maski globalnej INTM (mog zatem by blokowane) Zawsze blokuj system przerwa maskowalnych poprzez ustawienie INTM Ich uruchomienie dziaania moe zosta wstrzymane z powodu repetycji rozkazu Kocz si rozkazem powrotu z przerwania RETI

Standardowe procedury programowe Dziaanie ich zaley jedynie od przywoania i programu Nie s zwizane z priorytetami S wywoywane bezporednio z programu rozkazami CALL Mog si zaczyna w dowolnym miejscu przestrzeni pamici programu Nie zale od stanu maski INTM Nie s wstrzymywane dziaaniem repetycji Kocz si rozkazem powrotu RET Obie odmiany procedur korzystaj w podobny sposb ze stosu zapisujc na nim adres powrotu po zakoczeniu dziaania

2.80

Objanij skadni i zawarto linii polece asemblera, jakie pola wchodz w jej skad i czemu su?

W skad linii polece programu mog wchodzi nastpujce elementy; Dyrektywa polecenie dla asemblera, zwykle zaczynajce si od kropki. Wpywa na proces asemblacji (tumaczenia programu na jzyk maszynowy). Etykieta nazwa / tekst zaczynajca si w pierwszej kolumnie (od lewego marginesu). Zwykle odpowiada adresowi w pamici lub wartoci uywanych potem w treci programu do odwoa i skokw. Oznacza- miejsca w programie, do ktrych mog nastpowa skoki. Moe reprezentowa blok rozkazw, makro. Separatorem etykiety jest zwykle spacja lub rednik. Mnemonik skrt mnemotechniczny o treci / brzmieniu nawizujcym do reprezentowanej operacji. Odpowiada rozkazowi i jest tumaczony przez asembler na kod binarny procesora. Jest zachowana jednoznaczno pomidzy kadym mnemonikiem a kodem rozkazu std moliwe jest jednoznaczne tumaczenie w obu kierunkach (asemblacja i deasemblacja). Mnemonik koczy zawsze spacja lub rednik Operand (operandy) rozkazu zapisane z uyciem odpowiedniej notacji dla uytego trybu adresacji wskazania na lokacj lub warto operandu rozkazu. Operandy oddzielane s od siebie przecinkami a kocz zwykle spacja lub rednik. Komentarz zwykle rozpoczynajcy si rednikiem tekst objaniajcy dziaanie pisanego fragmentu programu. Zawarto komentarza nie jest brana pod uwag poprzez tumaczce programy. Nie ma rwnie swej reprezentacji w binarnym kodzie procesora. Komentarz koczy si zwykle z kocem linii (CR/LF) [BP, str. 86]

2.81

W jaki sposb przekazuje si linkerowi polecenia i informacje jakie sekcje ma czy ze sob, a jaki nie w C5515?

Polecenia dla linkera mona przekazywa w rny sposb w zalenoci o ich rodzaju. Najprostsze mona przekaza podczas jego wywoania w linii polece. Niektre, np. dotyczce doczania zbiorw
K2

43 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

lub czenia danych w bloki na jednej stronie, mona zamieszcza w kodzie rdowym programu. Najszersze moliwoci i swobod daje uycie zbioru konfiguracyjnego linkera (w CCS z rozszerzeniem .cmd), gdzie mona praktycznie uy wszystkich dostpnych polece. Doczaniem zbiorw mona sterowa w kodzie rdowym z uyciem dyrektyw (np. .mmregs), a uywajc odpowiednio nazw sekcji wskazujemy linkerowi jakie z nich ma ze sob scala we wsplnych obszarach. W kodzie rdowym mona rwnie posugiwa si flagami -kluczami np. by wymusi lokowanie bloku danych na tej samej stronie pamici. (np. x .usect vars3,4,1 ;wytuszczona 1 wymusza rezerwacj miejsca dla 4 sw w pamici na jednej stronie i przygotowuje w ten sposb do sprawnego dostpu do danych za poredni adresacji bezporedniej). Znacznie szersz gam moliwoci otwiera uycie zbioru konfiguracyjnego linkera. Mona w nim zdefiniowa zbiory czone i zbiory generowane przez linker, W zbiorze tym zamieszczamy rwnie zapis podziau mapy pamici na podobszary by nastpnie ki erowa w nie sekcje wg. typu lub nazw sterujc w ten sposb ich czeniem.

2.82

Do czego jest przeznaczona adresacja z odwrceniem bitw i w jakim trybie adresacji wystpuje?

Adresacja z odwrceniem bitw przeznaczona jest do usprawnienia obsugi adresacji w buforach prbek i wspczynnikw w obliczeniach FFT. Realizuje mechanizm motylkw FFT i jest zaimplementowana w trybie adresacji poredniej.

Dalsze informacje mona znale w opisie pytania 2,24

2.83

Wymie podstawowe cykle wystpujce w dziaaniu procesora, czemu su? Skd wynika ich dugo?

Wykonywanie kadego rozkazu procesora jest rozbite fazy. W przypadku procesora c5402 takich faz w wykonaniu kadego z rozkazw jest 6. PREFETCH - Adres nowego rozkazu na linie adresowe magistrali programu FETCH - Pobranie z pamici rozkazu do analizy w procesorze DECODE - Analiza treci rozkazu i ustalenie sposobu dalszego dziaania ACCESS - Przygotowanie adresu operandw rozkazu READ - Pobranie operandw i przygotowanie adresu odesania wyniku EXECUTE/ WRITE - Wykonanie rozkazu i odesanie wyniku Kada z tych faz jest realizowana w jednym cyklu procesora a na kady cykl procesora przypadaj 4 cykle zegara systemu. Rozkazy s realizowane w kolejce i w trakcie wykonania zachodz na siebie, ich czasy wykonania czciowo nakadaj si na siebie (przetwarzanie nakadkowe). Dziki takiemu sposobowi pracy wykonanie pojedynczego rozkazu moe by rozliczone w programie jednym cyklem procesora. Waru nkiem takiego rozliczenia jest pene wykorzystanie kolejki. [BP, str. 95], [C54x_CPU_Priph_spru131g.pdf; str. 7.1]

2.84

Co to jest trzeci stan dla wyjcia ukadu, czym si charakteryzuje i do czego suy?

Trzeci stan ukadu Z to tzw. stan wysokiej impedancji. Odrnia si od podstawowych stanw wysokiego (1) i niskiego (0) tym, e nie wpywa na poziom linii sygnau, z ktr jest poczony. W ten sposb mona w przypadku wielu wyj doczonych do tej samej linii wybra jedno, ktre bdzie sterowao jej poziomem odczajc jednoczenie wszystkie inne wyjcia wprowadzone w stan Z dla uniknicia konfliktu i uszkodzenia. Wymaganie od wyjcia moliwoci wprowadzenia w trzeci stan jest podstawowym warunkiem doczania wyj do magistral.

2.85

O czym mwimy uywajc okrelenia magistrala danych czy magistrala programu?

Magistrala jest zespoem linii ze zdefiniowanym sposobem przesyania po nich obiektw, dla ktrych jest przygotowana. Charakterystyczn cech magistrali jest podczenie do niej wielu wej i wyj
K2

44 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

ukadw rwnoczenie. W przypadku magistrali danych przewiduje si po niej transmisj danych, operandw instrukcji, staych oraz wynikw operacji pobieranych lub zapisywanych w pamici danych. W przypadku magistrali programu przewidujemy przesyanie po niej kodw programu rozkazw i ich operandw z pamici programu do rejestrw procesora. Dla prawidowego dziaania tych magistral konieczne jest, by w ich skad wchodziy poza liniami transferu danych czy rozkazw linie adresowe wybierajce aktywne wyjcie do sterowania jego stanami i linie sterujce synchronizujce czas operacji transferu. Do linii magistral mog by podczane jedynie wyjcia ukadw mogce poza dwoma podstawowymi stanami logicznymi 1 (wysoki, prawda) czy 0 (niski, fasz) mog przyjmowa stan trzeci, wysokiej impedancji (duej rezystancji pomidzy wyjciem a mas i zasilaniem) odczajcy to wyjcie od sterowania stanem linii (pozwalajcy na to sterowanie innemu wyjciu rwnie podczonemu do tej samej linii). [BP, str. 25]

2.86

Kilka uwag na koniec

W przedstawionym powyej materiale mona spotka w niektrych opisach odesania do literatury. Te uzupenienia ze wzgldw czasowych s jednak nie kompletne. Zastosowaem troch uproszczon konwencj odsyaczy umieszczajc w kwadratowych nawiasach skrt tytuu rda i stron, gdzie mona znale informacje. I tak;
[V3.x TechRef] [V3.x CPU]

dokumentacja producenta TI C55x v3.x Technical Overview - na stronie kursu widoczne jako stronie kursu widoczne jako C55xx_CPU_RG_spru371f.pdf C55xx_v3.x CPU RefGuide_swpu073e.pdf

dokumentacja producenta TI C55x v3.x CPU-Reference Guide - na dokumentacja producenta TI C55x v3.x CPU Mnemonic Instruction Set Reference Guide na stronie kursu widoczna jako C55xx_MnemoInstrSet_v3_RG_swpu067e.pdf dokumentacja producenta TI TMS320C5515 Fixed-Point Digital Signal Processor (Jan. 2012) na stronie kursu widoczna jako
TMS320C5515_DOC_sprs645e.pdf

[V3.x InstSet_RG]

[C5515_Data]

[C55xx_SysUG]

dokumentacja producenta TI TMS320C5515 DSP System Users Guide (Rev. D) Dokumentacja TI dostpna na stronie kursu widoczna jako TMS320c5515DSP_UG_sprufx5d.pdf

[C55xx_Mnem_InSRG] dokumentacja producenta TI TMS320C55xx DSP Mnemonic Instruction Set Reference Guide na stronie kursu widoczna jako
C5515_Mnemonic_InS_RG_spru374g.pdf

[C55xx_AssLangTools] dokumentacja producenta TI TMS320C55x Assembly Language Tools v 4.4 Users Guide na stronie kursu widoczna jako
C55xx_AssLangTools_v4.4_UG_spru280i.pdf

[C55xx_Periph]

dokumentacja producenta TI TMS320C55x DSP Peripherals Overview skierowania do dokumentacji peryferii rodziny procesorw C55xx, na stronie kursu widoczna jako C55xx_Periph_OV_UG_spru317k.pdf

Dokumentacje te mona znale na stronie kursu w katalogu Zbiory z dokumentacj procesora wykadowego++ Udostpniany materia jest zoeniem i przystosowaniem opracowa kilku rocznikw. Jest praktycznie zbiorem pyta i zagadnie, ktre wystpoway w treci dotychczasowych cykli zalicze i egzaminw. Ukad i podzia na dziay pochodzi od autora pocztkowego materiau. Uznaem, e wyznaczony zosta trudnociami i potrzebami interpretacji. Std zachowaem go.
K2

45 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Warto jeszcze doda, e materia kursu siga nie tylko do w/w dokumentacji ale i do rozdziaw trzech ksiek; [BP, str. ] Intruduction to Digital Signal Processors Bruno Paillard [RTDSP-Kuo-Lee] Real-Time Digital Signal Processing S.M.Kuo, B.H.Lee (rozdzia 2), [DSPFaA-Tan] Digital Signal Processing Fundamentals and Applications Li Tan (rozdzia 9). Ksika i oba rozdziay s dostpne na stronie kursu i obejmuj nastpujce obszary; Budowa i wasnoci toru DSP Budowa procesora (C5515) i jej rozumienie (Architektura budowa procesorw, ich gwne bloki charakteryzujce dziaanie i pozwalajce na odrnienie odmian, zadania gwnych blokw i ograniczenia, przeznaczenie, elementy schematu blokowego, rejestry ich przeznaczenie, magistrale, sekwencje operacji na magistralach, przestrzenie pamici, portw, rodzaje pamici, mapa pamici, ) Dziaanie i mechanizmy (mechanizmy wykorzystywane w dziaaniu, usprawniajce dziaania, pozwalajce na sprawniejsza obsug strumienia danych, DMA, stos, przerwania, bufory Ping-Pong, warunki sprawdzane w procesorze, sposoby ich wykorzystania). Obliczenia, rozumienie gwnych rozkazw, (cykle, realizacja rozkazu, kolejki, repetycja, mechanizmy adresacji, realizacje ptli, w tym rwnie dziaanie podstawowych rozkazw, dalej reprezentacja danych i operacje na nich, konwersje, arytmetyka oblicze, mechanizmy korekcyjne, ) Podstawowe operacje DSP (MAC i jej realizacja, filtracja, transformacje, FFT, ) Konfiguracj Narzdzi rodowiska developerskiego (programy narzdziowe, emulatory ICE, moduy developerskie, DSK, EVM, biblioteki, ich przeznaczenie i moliwoci, CSL, BSL, DSPLib, IQmath, )

Dlatego sugeruj raczej przygotowywanie do zaliczenia przez problemy i zagadnienia z przegldem uwag na temat w ksice i dokumentacji. Pozostanie przy jednej pozycji literatury a tym bardziej tylko przy foliach ilustracji wykadu jest mao efektywne.

K2

46 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

Spis pyta. 1 Tabelki .................................................................................................................................... 3 1.1 Tabelki reprezentacji i konwersji arytmetycznych................................................................. 3 1.2 Tabelka wprawki rozkazowe .............................................................................................. 8 2 Pytania z testw - opracowanie.................................................................................................. 12 2.1 Wymie gwne cechy wyrniajce procesory sygnaowe od innych procesorw i mikrokontrolerw. ..................................................................................................... 12 2.2 Jaka jest w procesorach C55xx rola rejestrw statusowych i dlaczego jest ich a cztery? ..................................................................................................................... 13 2.3 Jakie zmiany w architekturze wprowadzone w kolejnych generacjach procesorw pozwoliy na zwikszenie szybkoci wykonania programu?........................................... 13 2.4 Od czego mona uzaleni przebieg programu w procesorach rodziny C55xx? .............. 13 2.5 Dlaczego w procesorach sygnaowych rejestr akumulatora jest ponad dwa razy wikszy od rozmiaru sowa, jakim pracuj? .............................................................................. 14 2.6 Co to jest przetwarzanie nakadkowe, na czym polega i czemu suy? ........................... 14 2.7 Dlaczego pojedyncza magistrala zewntrzna procesora DSP stanowi istotne ograniczenie dla jego szybkoci dziaania? ................................................................. 15 2.8 Dlaczego w procesorze DSP stosuje si wiele rwnolegych magistral transportowych? . 15 2.9 Co to jest DARAM i dlaczego jest korzystna w procesorach DSP C55xx? ...................... 15 2.10 Wymie tryby adresacji stosowane w rodzinie procesorw TMS320C55xx i podaj przykady rozkazw stosujcych je. ............................................................................ 16 2.11 Jak rozumiesz i co okrela pojcie trybu adresacji? ..................................................... 16 2.12 Wymie podstawowe sposoby modyfikacji zawartoci rejestrw adresowych procesorw C55xx i podaj ich przykadowe przeznaczenie. .......................................... 16 2.13 Co to s sekcje programu i do czego s uywane? ...................................................... 17 2.14 Co to jest dyrektywa asemblera i do czego suy? ....................................................... 17 2.15 Objanij zadania linkera w rodowisku programw do generacji kodu procesora DSP. .... 18 2.16 Wymie czynniki decydujce o szybkoci realizacji programu w DSP. ........................... 18 2.17 Omw sposoby realizacji ptli i stosowane tam rozkazy. .............................................. 19 2.18 Co to s tryby repetycji i czemu su w procesorach DSP rodziny C55xx? ................... 19 2.19 W jaki sposb i po co programista moe okrela/zmienia pooenie tablicy wektorw przerwa (pocztkw procedur przerwa)? ................................................................. 20 2.20 Co to jest i czemu suy w procesorach rodziny C55xx IVPD? ...................................... 20 2.21 Co to jest i czemu suy w procesorach rodziny C55xx IVPH? ...................................... 20 2.22 Dla procesora C5515 podaj, co to jest, co moe zawiera, gdzie znajduje si i do czego suy tablica wektorw przerwa? .............................................................................. 21 2.23 Co to jest przerwanie? ............................................................................................... 21 2.24 Co to jest procedura obsugi przerwania i jakie s jej gwne cechy? ............................. 21 2.25 Co wie, a co rni indywidualn mask przerwania i flag przerwania? ...................... 22 2.26 Czego dotycz operacje context save i context restore w procedurach ISR i jakim podlegaj zasadom? ................................................................................................. 22 2.27 Co to jest stos i jaka jest zasada jego dziaania i do czego on suy? ............................. 23 2.28 Jakie warunki i gdzie mona sprawdza w procesorze C55xx, czego one dotycz i jakie rozkazy mog wykorzystywa ich wyniki? ................................................................... 24 2.29 Do czego suy w procesorach DSP zegar (timer)? ...................................................... 24 2.30 Co odrnia standardowy port szeregowy od McBSP w C55xx? ................................... 24 2.31 Na czym polega konfigurowanie do pracy peryferii w procesorach DSP? ....................... 25 2.32 Do czego s szczeglnie przydatne w procesorach DSP kanay DMA i z czym gwnie wsppracuj? .......................................................................................................... 25 2.33 Co to jest i do czego suy emulator (ICE) procesora DSP? .......................................... 26 2.34 Dla 12-to bitowej reprezentacji liczb kodowanych U2 i I3Q9 okrel zakres (MAX, MIN) i rozdzielczo reprezentacji (LSB). .............................................................................. 26 2.35 Po co i jak stosuje si zaokrglenie wyniku? ............................................................... 26
K2

47 / 49

ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.36 2.37 2.38 2.39 2.40 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 2.49 2.50 2.51 2.52 2.53 2.54 2.55 2.56 2.57 2.58 2.59 2.60 2.61 2.62 2.63 2.64 2.65 2.66 2.67 2.68 2.69 2.70 2.71 2.72 2.73 2.74
K2

Co w procesorach okrela pojcie rozszerzenia znakowego i dlaczego jest ono tak istotne w DSP? ......................................................................................................... 26 Co to jest Saturation on Store (SST)? ......................................................................... 27 Czy Saturation On Store to jedyny sposb realizacji nasycania? ................................. 28 Co to jest Overflow Mode Saturation Mode in D Unit i co zmienia w pracy procesora jego wczenie? ........................................................................................................ 28 Jak wcza si w procesorach rodziny C55xx DSP tryb ograniczenia wartoci (Overflow Mode)? .................................................................................................................... 28 Czym si rni przepenienie od nasycenia? ............................................................... 29 Co to jest i jak realizowana adresacja z odwrceniem bitowym (BRA)?.......................... 29 Rozpisanie zalenoci dla FFT 8-mio punktowej N=8 ................................................. 30 Czym rni si linia magistrali od zwykego poczenia punktw w ukadzie? ................. 31 Opisz co to jest, co moe zawiera i do czego suy stos? ............................................ 31 Dla procesora C5515 podaj co to jest stos, do czego suy, jak dziaa i co moe zawiera?................................................................................................................. 32 Dla procesora C5515 podaj co to jest, co moe zawiera, gdzie si znajduje i do czego suy pami podwjnego dostpu DARAM?............................................................... 32 Dla procesora C5515 podaj na czym polega operacja nasycania i do czego suy? ........ 33 Co trzeba zapewni (co musi by przygotowane) dla prawidowej obsugi przerwania w procesorze C5515? ................................................................................................... 33 Dla procesora C5515 opisz krtko tryb adresacji poredniej, jego przeznaczenia i podaj przykady rozkazw? ................................................................................................. 34 Z jakiego punktu przestrzeni adresowej uruchamiany jest program po RESET sprztowym a z jakiego po RESET programowym w C5515? ....................................... 34 Czym rni si realizacja ptli programowej od ptli wykonanej dziki trybowi repetycji w procesorach DSP (np. C5515)? .............................................................................. 34 Czym rni si rozkazy INTR n od TRAP n? .............................................................. 35 Dla procesora C5515 podaj, na czym polega operacja zaokrglania, do czego su y i jak si j uaktywnia? ................................................................................................. 35 Ktre rejestry procesora w trakcie obsugi przerwania s zachowywane automatycznie a ktre musi zachowa procedura ISR? ...................................................................... 35 Dla procesora C5515 opisz krtko tryb adresacji bezporedniej, jego przeznaczenie i podaj przykady rozkazw? ........................................................................................ 36 Czym rni si od siebie procedura obsugi przerwania od dowolnej innej procedury programowej procesora C5515? ................................................................................ 36 Co to s sekcje programu w C5515, jakie s ich rodzaje i do czego su? ................... 36 Czym rni si przerwanie sprztowe od przerwania programowego? ........................... 37 Dla procesora C5515 opisz krtko tryb adresacji natychmiastowej, jego przeznaczenie i podaj przykady rozkazw? ........................................................................................ 37 Co to jest zbir konfiguracyjny linkera w C5515 i do czego suy? ................................ 37 Objanij jakie operacje wykona rozkaz: PSH *AR2- procesora C5515? ...................... 38 Skd linker wie jakie sekcje ma czy ze sob w C5402 a jakie nie? ........................... 38 Flaga a maska .......................................................................................................... 38 Co to jest TIMER w systemie DSP.............................................................................. 38 Objanij co moe uatwia w C5515 DSP wykorzystanie rozkazu FIRS uzasadnij? ....... 39 Architektura Von-Neumana ........................................................................................ 39 Architektura Harwardzka ........................................................................................... 39 Udoskonalenie architektury harvardzkiej w DSP. ......................................................... 40 DEBUGGER............................................................................................................. 40 EMULATOR a DEBUGER ......................................................................................... 40 LINKER ................................................................................................................... 41 Architektura harwardzka a super harwardzka. ............................................................. 41 Co to jest rozszerzenie znakowe, czemu suy itd? ...................................................... 41
48 / 49
ostatnie uzupenienia 9 stycznia 2013

Wyjanienia zagadnie wystpujcych w dotychczasowych kolokwiach zaliczeniowych DSP

2.75 2.76 2.77 2.78 2.79 2.80 2.81 2.82 2.83 2.84 2.85 2.86

Co to s dekodery adresw, jaka jest ich rola w systemie DSP? ................................... 41 Co to jest i do czego suy emulator (ICE) procesora DSP? .......................................... 41 Mnemonik ................................................................................................................ 42 Co to s sekcje programu, co mog zawiera, jakie s ich rodzaje i do czego su w C5515? ................................................................................................................... 42 Czym rni si od siebie programy procedur obsugi przerwania ISR i dowolnej innej procedury? ............................................................................................................... 42 Objanij skadni i zawarto linii polece asemblera, jakie pola wchodz w jej skad i czemu su? ........................................................................................................... 43 W jaki sposb przekazuje si linkerowi polecenia i informacje jakie sekcje ma czy ze sob, a jaki nie w C5515? .......................................................................................... 43 Do czego jest przeznaczona adresacja z odwrceniem bitw i w jakim trybie adresacji wystpuje? ............................................................................................................... 44 Wymie podstawowe cykle wystpujce w dziaaniu procesora, czemu su? Skd wynika ich dugo? .................................................................................................. 44 Co to jest trzeci stan dla wyjcia ukadu, czym si charakteryzuje i do czego suy? ....... 44 O czym mwimy uywajc okrelenia magistrala danych czy magistrala programu? .. 44 Kilka uwag na koniec ................................................................................................ 45

K2

49 / 49

ostatnie uzupenienia 9 stycznia 2013

You might also like