Fragment notatki:
Opisz działanie instrukcji: macr x0,y0,a (r0)-; na czym polega zaokrąglenie („rounding”) w tej instrukcji? * * Multiply and accumulate z zaokrągleniem. Instrukcja pomnoży wartość z x0 razy wartość z y0, doda ją do akumulatora, a następnie zmniejszy wartość w r0 o 1. Zaokrąglenie polega na... hm...: z family mana: “The rounded result is stored in destination accumulator D. The “-” sign option negates the specified product prior to accumulation. The default sign option is “+.” The LSB of the result is rounded into the upper portion of the destination accumulator.” //Krzysiek Czaja - i + oznaczają czy wynik będzie dodatkowo zanegowany czy nie [tak jak -(x*y)] Przeczytałem i i tak nie rozumiem //Krzysiek Czaja z famili manuala Wydaje mi się że w tym przypadku polega na zaokrągleniu wyniku w górę, wpisanie wartości do MSP akumulatora `a' i wyczyszczeniu LSP akumulatora `a'. Zaokrąglenie w górę (chyba tylko taka opcja jest dostępna) polega na dodaniu stałej do LSBs. MSP akumulatora zawiera liczbę zaokrągloną, a LSP jest czyszczona (zawiera zera). Są dwa rodzaje zaokrąglenia convergent (to nearest){zbieżne?} i two's complement rounding {w kodzie U2} [nie wiem jak się je tłumaczy na polski]. Które jest użyte określone jest w SR. Co to są rejestry (opisz krótko każdy z nich) PC, LA, LC. * * * PC - program counter - pamięta, w którym miejscu programu aktualnie się znajdujemy LA - loop address 24-bitowy rejestr przechowuje adres ostatniej instrukcji w sprzętowej pętli DO LC - loop counter - pamięta, który krok aktualnie wykonuje pętla - odlicza od jej końca do 1 Co to są rejestry (opisz krótko każdy z nich) OMR, SR, VBA. * * * OMR - Operating Mode Register, konfiguruje stos sytemowy, tryby pracy całego procesora SR - status register, zawiera dane konfiguracyjne dla jednostki ALU.(Shift, Limit, Saturation i inne) VBA - vector base adress, przechowuje adres tabeli przerwań // Krzysiek Czaja - miało być krótko, pozwoliłem sobie przenieść więc krótką część na górę OMR - operating mode register -24-bitowy rejestr podzielony na 3 części: OMR[23-16], System Stack Control/Status (SCS) Byte - Controls and monitors the stack extension in the data memory. OMR[15-8], Extended Chip Operating Mode (EOM) Byte: Determines the operating mode of the chip. This byte is affected only by hardware reset and by instructions directly referencing the OMR (that is, ANDI, ORI, and other instructions, such as MOVEC, that specify OMR as a destination).
(…)
… mask bits (maska przerwań) są to dwa bity które określają jakie przerwanie (o jakim priorytecie) może przerwać aktualnie wykonywany fragment kodu. Co to jest zewnętrzna przestrzeń W/WY, co się tam znajduje - jak ją wykorzystać w symulatorze (pliki)? * *
jest to przestrzeń w pamięci danych(Y $FFFF80 - $FFFFFF), jest to przestrzeń połączona z urządzeniami peryferyjnymi w ten sposób otrzymujemy dane z tych urządzeń i jak też możemy przesłać dane do urządzenia. Możemy stworzyć plik o rozszerzeniu .io i korzystać z nich wcelu wprowadzenia do procesora większej ilości danych, oraz aby pobrać z procesora przetworzone dane.
Co to jest wewnętrzna przestrzeń W/WY, co się tam znajduje (rejestry)? * *
jest to przestrzeń w pamięci danych(X $FFFF80 - $FFFFFF), znajdują się w nim rejestry:
IPRC, IPRP
PCTL - pll control…
… (VBA? co jest ładowane do PC)? * *
następuje reset sprzętowy:
wewnętrzne urządzenia peryferyjne są resetowane
Modifier Register M jest ustawiane na $FFFFFF
rejestry przrtwań IPR (Interrupt priority registers) są czyszczone
Bus Control Register (BCR) Address Attribute Register (AAR[3-0]) i DRAM Control Register (DCR) są ustawione na wartości początkowe
SP i SC są czyszczone
część SR jest czyszczone, część ustawiana
VBA jest czyszczony
Program wykonuje skok do zewnętrznego lub wewnętrznego obszaru pamięci RESET1-3 i wykonuje program zawarty w tej lokacji.
Co to jest stos sprzętowy o co programowy (jak zainicjować stos programowy - jak go używać)? * *
Stos sprzętowy - obszar pamięci danych zadeklarowny jako stos (w rejestrze OMR). Obsługiwany przez rejestry SSH SSL SP SC SZ
Dlaczego przy wejściu…
… indeksowy, obejdź się bez instrukcji warunkowych. * * * *
Przetłumacz na asembler 56300 następujący kod „C” pamiętając o deklaracjach zmiennych (przez dc, equ i przesłanie do rejestru adresowego), tak aby ich użycie było bardzo podobne do wskaźników:
int dana1[3] = {0x1000, 0x1200, 0x1400}; int dana2[5] = {0x2000, 0x2200, 0x2400, 0x2600, 0x2800}; int sum; int* dana_out = 0x100; for (int i=0, i<3…
… - jak go uniknąć? * *
Stack extension overflow - przepełnienie stosu
Stack Extension Underflow - próbujemy coś pobrać z pustego stosu
Uniknąć można używając Extension Pionter (EP)
Co procesor robi w przypadku wyjątku błędu stosu? * *
Ustawia flagę Stack Error (SE) w Statck pointer register (SP). Zgłasza wyjątek (przerwanie) o najwyższym możliwym priorytecie.
Co procesor robi po końcowym narastający zboczu #RESET…
... zobacz całą notatkę
Komentarze użytkowników (0)