2.17 Omów sposoby realizacji pętli i stosowane tam rozkazy.
Do realizacji pętli mogą zostać wykorzystane następujące rozwiązania:
repetycja pojedynczego rozkazu realizowana instrukcją RPT, pozwala na powtórzenie instrukcji od 1 do 65536 razy. RPT można wykonać równolegle z zerowaniem akumulatora dla „czystego” początku sumowania.
repetycja bloku rozkazów realizowana za pomocą instrukcji RPTB. Pozwala ona na powtórzenie bloku instrukcji od 1 do 65536 razy.
instrukcje skoku warunkowego, wykonujące skok tylko wtedy, gdy spełniony jest dany warunek (w przeciwnym razie wykonanie programu przechodzi do następnej instrukcji). Wyróżniamy dwie instrukcje skoku warunkowego:
BC: przeładowuje PC bezpośrednim adresem, gdy spełniony jest warunek.
Warunkiem takim może być również zawartość wybranego rejestru ARx, który może służyć równocześnie jako licznik obiegów pętli.
instrukcje skoku bezwarunkowego - dla pętli bez końca.
2.16 Wymień czynniki decydujące o szybkości realizacji programu w DSP.
a) wynikające z budowy procesora
częstotliwość taktowania procesora
przetwarzanie nakładkowe
zwielokrotnienie magistral
rozkazy specjalizowane i ukierunkowane na aplikacje
zastosowanie adresacji kołowej lub z odwracaniem bitów
rozkazy skoków z opóźnieniem
łączone warunki dla skoków i operacji warunkowych
wykonywanie rozkazów w trybie repetycji
zaawansowana obsługa pośrednich wyników operacji
operacje dwusłowowe
wielkość pamięci wewnętrznej, szczególnie DARAM
ilość i sposób wykorzystania przerwań oraz ich ewentualne kolizje z try-bami repetycji
b) wynikające ze sposobu przygotowania programu
wykorzystanie wymienionych wyżej możliwości sprzętowych
podział programu pomiędzy asembler i języki wysokiego poziomu
rozmieszczenie danych w pamięciach SARAM / DARAM, pamięci zewnętrz-nej i/lub wewnętrznej
2.14 Co to jest dyrektywa asemblera i do czego służy?
Dyrektywa asemblera jest to polecenie definiujące mu sposób traktowania dane-go fragmentu programu. Są elementem sterowania asemblacją programu. Dyrektywy mogą służyć np. do zdefiniowania sekcji w zbiorach źródłowych, uaktywnienia własności asemblera, itd. Są one poleceniami tekstowymi i zaczynają się od kropki.
.mmregs ; włącza predefiniowane nazwy rejestrów MMR
.text ; kończy poprzednio zdefiniowaną sekcję i otwiera nową
.sect „kot” ; kończy poprzednio zdefiniowaną sekcję i otwiera nową
2.20 Co to jest i czemu służy w procesorach rodziny C'55xx IVPD?
IVPD (czyli DSP Interrupt Vector Pointer) to 16-to bitowy rejestr procesora umieszczony pod adresem 0x000049. Jego zawartość stanowi najstarsze 16 bitów adresu w tablicy wektorów przerwań. Programista może przełączyć procesor do odczytywania tablicy wektorów przerwań z innego miejsca w pamięci programu przez zmianę zawartości IVPD i wykonanie programowego RESET. Rejestr IVPD wskazuje tablicę dla wektorów przerwań 0 - 15 i 24 - 31
2.54 Dla procesora C5515 podaj, na czym polega operacja zaokrąglania, do czego służy i jak się ją uaktywnia?
Operacja zaokrąglania wyniku operacji w akumulatorze polega na uwzględnieniu w starczej części akumulatora ACH części młodszej ACL w dwojaki sposób. Albo zaokrąglamy stronę nieskończoności albo w stronę najbliższej wartości. O sposobie zaokrąglania decyduje bit RDM (Rounding Mode Bit), 10 bit z rejestru statusowego (ST2_55.10)
Jeśli RDM=0 i prowokowane jest zaokrąglanie wówczas do wskazanego akumulatora (lub dwóch akumulatorów równocześnie) dodawana jest wartość 0x8000 po wykonaniu operacji rozkazu.
Jeśli zaś RDM=1 to wywoływane zaokrąglanie odbędzie się w zależności od zawartości młodszej części akumulatora.
Zaokrąglanie służy „usprawnianiu wyniku”, ale musi być stosowane z ostrożnością i rozwagą dla uniknięcia kumulacji błędów obliczeń i zwykle dotyczy ostatniej operacji ciągu obliczeń.
Zaokrąglanie uruchamiane może być normalnym rozkazem ROUND albo skojarzone z rozkazem operacji arytmetycznej dzięki rozszerzaniu mnemonika rozkazu o końcową opcjonalną literę „R”.
2.39 Co to jest Overflow Mode Saturation Mode in D Unit i co zmienia w pracy procesora jego włączenie?
Overflow Mode jest trybem nadzoru przepełnienia zakresu. Włącza się go / wyłącza poprzez modyfikację bitu sterującego nasycaniem. W procesorach rodziny C55xx za uruchomienie takiego sposobu pracy odpowiada co do pozycji w rejestrach statusowych bit ST1_55.9 tym razem opatrzony oznaczeniem SATD.