Przestrzeń adresowa
Transkrypt
Przestrzeń adresowa
Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU – ang: Arythmetic Logic Unit Bity znaczników (flag) Fl Argument A A Y ALU Argument B Wynik operacji B Fs Ci Bit przeniesienia z poprzedniej pozycji Funkcja sterująca 2 Jednostka arytmetyczno- logiczna ALU Cechy jednostki ALU: •Wykonuje operacje arytmetyczne i logiczne określone funkcją sterującą •Wykonuje operacje na jednym lub dwóch argumentach •Jest układem kombinacyjnym – nie posiada pamięci •Zazwyczaj liczba bitów wyniku jest równa liczbie bitów argumentów (liczba bitów ALU ma znaczenie dla klasyfikacji całego komputera, np. „system trzydziestodwubitowy”) 3 Jednostka arytmetyczno- logiczna ALU Przykład ośmiobitowej jednostki ALU z uwidocznionymi poszczególnymi bitami argumentów oraz innych sygnałów 4 Jednostka ALU - operacje Przykład operacji dodawania liczb ośmiobitowych w kodzie NBC (bez znaku) A: 00000010 (02h) + B: 00000011 (03h) = Y: 00000101 (05h) 5 Jednostka ALU przekroczenie zakresu liczb Przekroczenie zakresu liczb dostępnego dla ALU Przykład: A=255, B=2 Wynik A+B=257 nie mieści się w zakresie liczb 8-bitowych A: 11111111 (FFh) + B: 00000010 (02h) = Y: 00000001 (01h), C=1 6 Jednostka ALU operacje wielokrotnej precyzji Rozwiązanie problemu przekroczenia dostępnego zakresu liczb – zastosowanie arytmetyki wielokrotnej precyzji: A: 0000000011111111 + B:0000000000000010 = Y:0000000100000001 Y(lo)=A(lo)+B(lo) Y(hi)=A(hi)+B(hi)+Ci 7 Jednostka ALU operacje wielokrotnej precyzji Programowa implementacja arytmetyki podwójnej precyzji: Przykład liczba pierwsza jest zapisana z komórkach pamięci o adresach 0 i 1, druga: 2, 3, wynik trafia pod adresy: 4,5 LD Acc, M(0) ADD Acc, M(2) ST M(4), Acc LD Acc, M(1) ADC Acc, M(3) ST M(5), Acc 8 Przechowywanie znaczników Wartość znaczników w rejestrze stanu jest ustalana w wyniku ostatniej operacji arytmetycznej lub logicznej. Rejestr stanu C Z V N Fl ALU 9 Znaczenie znaczników Znaczenie znaczników: C – przekroczenie zakresu liczb bez znaku (NBC) Z – zerowy wynik operacji V – przekroczenie zakresu liczb ze znakiem (U2) N – wynik ujemny Rejestr stanu C Z V N 10 Przestrzeń adresowa Zbiór wszystkich możliwych adresów komórek pamięci lub rejestrów układów wejścia wyjścia W niektórych mikroprocesorach przyjęto koncepcję ujednolicenia przestrzeni adresowej pamięci i I/O poprzez traktowanie rejestrów urządzeń I/O jako komórek pamięci. 11 Przestrzeń adresowa Rozróżnia się przestrzenie adresowe: Pamięci - zbiór wszystkich możliwych adresów komórek pamięci. W niektórych mikroprocesorach wyróżnia się oddzielną przestrzeń adresową pamięci programu i danych (mikrokontrolery, procesory DSP) Wejścia-wyjścia – zbiór wszystkich możliwych adresów rejestrów urządzeń I/O 12 Przestrzeń adresowa - rozwiązanie układowe Magistrala danych Mikroprocesor Magistrala adresowa MEMsel IOsel RD WR Magistrala sterująca Pamięć Układy wejścia – wyjścia 13 Przestrzeń adresowa liniowa Przestrzeń liniowa nie zakłada podziału pamięci na obszary. Adres komórki pamięci jest specyfikowany za pomocą jednej liczby. 0x0000 0x0001 0xFFFF Przykład liniowej przestrzeni adresowej o wielkości 64kilosłów 14 Przestrzeń adresowa - stronicowanie pamięci 0x0000 Podział przestrzeni pamięci na rozłączne obszary o wielkości będącej naturalną potęgą liczby 2 Strona 0 0x00FF 0x0100 Strona 1 0x01FF 0x0200 … Przykład podziału na strony o wielkości 256 słów 15 Przestrzeń adresowa - stronicowanie pamięci Rozwiązanie pozwala zmniejszyć dwukrotnie liczbę wyprowadzeń magistrali adresowej mikroprocesora Pamięć Rej. Mikroprocesor ADDR HI Strony ADDR LO Magistrala adresowa 16 Przestrzeń adresowa - bankowanie Mechanizm pozwalający stosować pamięci o łącznej pojemności przekraczającej możliwości adresowania mikroprocesora. Mikroprocesor ma dostęp tylko do jednego banku. Przełączanie banków jest realizowane przez zaprogramowanie dodatkowego rejestru przechowującego numer banku. 17 Przestrzeń adresowa - segmentacja Podział przestrzeni pamięci na częściowo pokrywające się obszary. 0000:0000 0001:0000 0000:0110= =0001:0100 Adres komórki pamięci należącej do kilku segmentów można wyspecyfikować na kilka sposobów. Segment 0 Segment 1 Segment 2 0000:FFFF 0001:FFFF Przykład podziału pamięci na segmenty o wielkości 65536 słów Mechanizm ułatwia podział pamięci na obszar programu, danych i stosu. 18 Przestrzeń adresowa - segmentacja W adresowaniu bierze udział tzw. rejestr segmentowy, przechowujący numer aktualnego segmentu. W adresowaniu programu, danych i stosu mogą brać udział inne rejestry segmentowe. Rej. Segm. Magistrala adresowa + MAR Adres fizyczny Rej. Adr. Adres efektywny 19 Przestrzeń adresowa - segmentacja Zalety: Bezpieczeństwo programu Relokowalność programu Efektywne wykorzystanie pamięci 20 Tryby adresowania Tryby lub sposoby adresowania to sposoby interpretacji pola adresowego rejestru instrukcji. Większość omówionych trybów będzie dotyczyła adresowania drugiego argumentu operacji dwuargumentowych z udziałem ALU. Rejestr instrukcji IR Pole operacyjne Jednostka sterująca Pole adresowe MAR Magistrala adresowa 21 Tryby adresowania Adresowanie implikowane Argument operacji znajduje się w rejestrze mikroprocesora. Acc Acc + R ALU Acc R 22 Tryby adresowania Adresowanie natychmiastowe Argument operacji znajduje się w polu adresowym rejestru instrukcji (jest stałą). Acc Acc + stała Rejestr instrukcji IR PO ALU Acc PA stała 23 Tryby adresowania Adresowanie bezpośrednie W polu adresowym rejestru instrukcji znajduje się adres argumentu. MBR Acc Acc + M(adr) IR PO PA adres ALU Acc MAR 24 Tryby adresowania Adresowanie pośrednie Pole adresowe przechowuje kod rejestru rejestru instrukcji znajduje się adres argumentu. IR MBR PO PA kod Rejestry funkcji specjalnych SFR X Acc ALU Acc + M(X) Acc MAR 25 Tryby adresowania Adresowanie pośrednie indeksowe W adresowaniu biorą udział dwa rejestry określane mianem bazowego i indeksowego. Acc Acc + M( B, I ) MBR SFR B + ALU I Acc MAR 26 Tryby adresowania Adresowanie pośrednie indeksowe z postinkrementacją lub postdekrementacją Zawartość rejestru indeksowego jest zwiększana lub zmniejszana o jeden po zaadresowaniu argumentu. Postinkrementacja: Acc Acc + M( B, I++ ) Postdekrementacja: Acc Acc + M( B, I-- ) W niektórych mikroprocesorach jest także możliwa modyfikacja zawartości rejestru indeksowego przed jego użyciem, mówimy wówczas o preinkrementacji lub predkrementacji. 27 Tryby adresowania Adresowanie względne Jest stosowane w skokach – służy do przeniesienia sterowania o pewną liczbę pozycji względem aktualnie wykonywanej instrukcji. IR PO PA przemieszczenie + PC Rejestry funkcji specjalnych SFR 28