1. Architektura systemu mikropocesorowego na przykładzie mikrokomputera z procesorem 80286.
Mikrokomputer IBM PC/AT ma strukturę modułową . Podstawowym modułem jest płyta główna ( ang. main board lub mother board ), zawierająca jednostkę centralną; 15-wejściowy sterownik przerwań ( 2 sterowniki 8259A w strukturze kaskadowej ); 7-kanałowy sterownik bezpośredniego dostępu do pamięci (2 terowniki 8237A w strukturze kaskadowej; programowalny układ czasowy ( 8254A) ; pamięć ROM ; pamięć RAM ( CMOS ) do definiowania konfiguracji systemu ; układ we-wy klawiatury; dekodery pamięci RAM , ROM i wewnętrznych układów we-wy; układ generowania przerwania niemaskowal-nego ; układ generowania dodatkowych sygnałów sterujących ; w tym sygnału braku gotowości WAIT; 8 gniazd krawędziowych ( 6 -podwójnych 62- i 36 - stykowych oraz 2 pojedyncze 6 2-stykowe).
Gniazda krawędziowe ,podobnie jak w PC/XT, umożliwiają rozszerzenie mikrokomputera IBM PC/AT o specjalizowane moduły we-wy i dodatkową pamięć RAM. W obecnie produkowanych mikrokomputerach płyta główna zawiera zwykle kilka układów o wielkim stopniu scalenia .
W mikrokomputerach AT i XT astosowano podobne rodzaje magistral. Złącza krawędziowe, służące do rozszerzenia struktury mikrokomputera , dołączono do magistrali systemowej. Wewnętrzne układy we-wy dołączono do dodatkowo buforowanej magistrali ( odpowiednik magistrali zewnętrznej w PC/XT). Pamięci ROM i RAM dołączono do magistrali systemowej przez dodatkowe bufory trójstanowe. Jednostka centralna jest rozwiązana typowo i zawiera 80286 , układ zegara 82284,sterownik magistrali 82288, rejestry adresowe, dwukierunkowe bufory trójstanowe- na liniach sterujących oraz pomocnicze układy logiczne , gwenerujące dodatkowe sygnały sterujące niezbędne do prawidłowej pracy mikrokomputera.
Układy pośredniczące między magistralą systemu mikroprocesorowego a szeroko pojętym jego otoczeniem przyjęło się nazywać układami we-wy lub układami sprzęgającymi ( ang. interface). Uwzględniając rodzaje występujących sygnalów , można wśród układów we-wy rozróżnić:
- układy wejść analogowych ;
- układy wyjść analogowych;
- układy wejść cyfrowych;
- układy wyjść cyfrowych;
Układy we-wy zrealizowane w określonym standardzie logicznym, elektrycznym i mechanicznym , są nazywane modułami we-wy.
Wzajemne przekazywane sygnałów analogowych i cyfrowych odbywa się przy zastosowaniu przetworników analogowych i cyfrowych odbywa się przy zastosowanie przetworników A/C i C/A. Dwukierunkowe przesyłanie sygnałów cyfrowych między systemami a otoczeniem , można zrealizować szeregowo lub równolegle , w sposób asynchroniczny lub synchroniczny , stosując typowe układy scalone np. 8250,8251,8252,8253,8254.
Specjalizowany mikroprocesor modułu spełnia funkcje sterownika , organizującego wymianę informacji między modułem a magistralą IBM PC,odciążając procesor główny mikrokomputera. Operacji we-wy można sterować za pomocą określonej liczby rejestrów , umieszczonych w przestrzeni adresowej mikroprocesora przeznaczonej dla we - wy. Rejestry te, w mikro-komputerze IBM PC , mogą mieć sąsiednie adresy w jego przestrzeni adresowej dla urządzeń we-wy, jeśli rejestry rozkazów i statusu są umiszczone pod tym samym adresem oraz rejestry danych wejściowych i danych wyjścio-wych są też pod wspólnym adresem. Adres ten ( dla modułu we-wy) można określić , ustawiając zworki ; pod adresem tym są “ widziane rejestry danych”.
Wpisaniem nowego bajtu do rejestru rozkazów uaktywnia się mikroprocesor modułu do rozpoczęcia wykonywania wskazanego rozkazu, sterującego działaniem elementów modułu. Kod operacji podstawowych jest zapisywany na pewnej liczbie rejestru rozkazów, pozostałe bity są wykorzystywane do modyfikacji operacji podstawowych. Zasadniczo , moduł wykonuje operacje pojedyncze lub blokowe. Instrukcje blokowe mogą być wykonywane w różnych trybach np. standardowym blokowym , ciągłym blokowym , blokowym z DMA, ciągłym blokowym z DMA.
Do taktowania pracy przetworników a-c i c-a stosuje się programowany układ czasowy.
Standardowy moduł we-wy zawiera :
- dekoder we-wy (DWW);
- układ programowania czasu (UPC);
-układ we-wy do transmisji szeregowej (UWWSZ);
-układ we-wy do transmisji równoległej (UWWR).
Dekoder we -wy generuje sygnały selekcji poszczególnych układów składowych modułu. Układ programowania czasu zrealizowano przy użyciu układu 8253 lub 8254, którego funkcje definiuje się w programie. Funkcje układu we -wy do transmisji szeregowej spełnia układ 8251, a układu we-wy do transmisji równoległej - układ 8255.
2. Mikroprocesory 8086 i 8088 należą do jednych z pierwszych 16-to bitowych procesorów. Ich listę rozkazów można rozszerzyć o rozkazy koprocesora arytmetycznego oraz możliwość pracy w systemach jedno i wieloprocesorowych. Istotna różnica polega na tym, że 8088 ma 8-bitową magistralę danych a 8086 16-to bitową. Do ważniejszych parametrów należą: 1) 1MB przestrzeń adresowa pamięci (20 linii adresowych); 2) 64kB przestrzeń adresowa we-wy; 3) podział na dwa niezależne układy umożliwiające jednoczesne pobieranie rozkazów następnych i wykonywanie bieżących; 4) dwa tryby pracy (minimalny i maksymalny); 5) możliwość współpracowania z 8-bitowymi układami we-wy.
Wewnątrz procesorów znajduje się pamięć RAM typu FIFO (6 bajtów w 8086 i 4 bajty w 8088). W skład procesora wchodz 16-to bitowa jednostka arytmetyczno-logiczna, układ sterowania wraz z rejestrem rozkazów, 16-to bitowe rejestry robocze AX, BX, CX, DX, wskaźnik stosu SP, wskaźnik bazy BP, rejestry indeksowe źródła SI i przeznaczenia DI oraz rejestr znaczników F. Do rejestrów roboczych można odwoływać się jako do 16-to bitowych AX, BX, CX, DX lub 8-bitowych AL, AH, BL, BH, CL, CH, DL, DH. Rejestr znaczników zawiera 9 znaczników opisanych następująco: A-przeniesienie połówkowe, C-przeniesienie; O-przepełnienie; S-znak; P-parzystość; Z-zero; T-praca krokowa; I-określa czy wejście przerwania maskowalnego jest zablokowane (I=0) czy odblokowane (I=1); D-znacznik kierunku zmian rejestrów indeksowych przy operacjach na łańcuchach danych.
--------------------------------------
ADRESOWANIE PAMIĘCI
Pamięć dzieli się na segmenty. Każdy bajt pamięci ma dwa rodzaje adresów: logiczny i fizyczny. Adres logiczny składa się z adresu początku segmentu zawartego w jednym z rejestrów segmentowych CS, DS, SS, ES oraz z adresu efektywnego (offset), wskazującego położenie komórkiw segmencie. Adresy są 16-to bitowe. Na podstawie adresu logicznego wyznacza się 20-to bitowy adres fizyczny bajtu pamięci, dodając offset do adresu bazowego segmentu przesuniętego o 4 pozycje w lewo (pomnożonego przez 16). Przestrzeń adresowania bezpośredniego zawiera więc 1MB. Podczas wykonywania programu można określić dostęp do jednego z czterech segmentów pamięci: - CS segment programu; -DS segment danych; -ES segmentu dodatkowego; -SS segmentu stosu.
Maksymalna pojemność segmentu wynosi 64 kB. Początki segmentów mogą się znajdować w dowolnym miejscu pamięci, mogą zachodzić na siebie a w szczególnym przypadku pokrywać się. Położenie danej wewnątrz segmentu danych określony jest w zależności od sposobu adresowania; położenie komórki wewnątrz segmentu stosu wskazuje rejestr SP. Położenie komórki wewnątrz segmentu kodu programu określa wskaźnik rozkazów IP.
---------------------------------------
SPOSOBY ADRESOWANIA
Rozkazy procesora 8088 mogą mieć długość od 1 do 6 bajtów. Rozkazy wielobajtowe mają format przedstawiony poniżej, z tym, że bajty 3 do 6 mogą występować opcjonalnie w zależności od zawartości dwóch pierwszych bajtów. Sześć nabardziej znaczących bitów pierwszego bajtu rozkazu zawiera jego kod.
7..... 2
1
0
kod
D
W
pierwzsy bajt
7
6,5,4,3
2,1,0
MOD
REG
R/M
drugi bajt
trzeci bajt(opcjonalnie)
Następne bajty podobnie jak i trzeci bajt. Bit b1 pierwszego bajtu zależnie od rozkazu oznacza się jako D, S lub V. Symbol D kierunek przesyłania danych. D=1 dane przesyłane do rejestru wskazanego przez pole REG drugiego bajtu, D=0 oznacza, że dane przesyłane sa do rejestru lub komórki pamięci wskazanych przez pole R/M.
Symbol S należy interpretować łącznie z bitem W. Występuje on w rozkazach z adresowaniem natychmiastowym. SW=01 oznacza, że trzeci i czwarty bajt rozkazu zawierają 16-to bitowy argument, SW=11 oznacza, trzeci bajt po rozszerzeniu do 16-tu bitów z zachowaniem znaku stanowi argument. Symbol V występuje w rozkazach przesuwania i zawiera liczbę przesunięć. V=0 oznacza, że liczba przesunięć =1, natomiast V=1 Þ liczba przesunięć w rejestrze CL. Symbol W oznacza czy operacja będzie wykonywana słowie 8-mio bitowym (W=0), czy na 16-to bitowym (W=1). Pole REG wskazuje rejestr zawierający pierwszy argument w operacjach dwuargumentowych. Pole MOD określa czy drugi argument znajduje się w pamięci czy w rejestrze.
Wyróżnia się następujące sposoby adresowania:
- rejestrowe bezpośrednie (argument znajduje się w rejestrze 8 lub 16-bitowym, wskazanym przez rozkaz;
-natychmiastowe argument jest zawarty w rozkazie;
-rejestrowe pośrednie adres efektywny argumentu jest określony zawartością rejestrów SI, DI, BX
- bezpośrednie adres efektywny argumentu jest zawarty w rozkazie jako 8 16-to bitowe przesunięcie;
- bazowe - adres efektywny argumentu jest jest sumą 8 lub 16-to bitowego przemieszczenia zawartego w rozkazie i zawartości jednego z rejestrów bazowych BP lub BX;
-indeksowe- adres efektywny jest sumą 8-bitowego (gdy MOD=01) lub 16-to bitowego (gdy MOD=10) przemieszczenia i zawartości jednego z rejestrów indeksowych DI lub SI;
-bazowo-indeksowe - adres efektywny jest sumą zawartości jednego z rejestrów indeksowych DI lub SI i zawartości jednego z rejestrów bazowych BP lub BX.
-bazowo-indeksowe z przesunięciem- adres efektywny jest sumą zawartości jednego z rejestrów indeksowych DI lub SI, zawartości jednego z rejestrów bazowych BP lub BX i przemieszczenia 8 lub 16-to bitowego.
----------------------------------
ADRESOWANIE UKŁADÓW WE-WY
Układy we-wy mogą być adresowane w jednolitej lub rozdzielonej przestrzeni adresowej. W pierwszym przypadku traktowane są jako komórki pamięci, wdrugim przypadku mikroprocesor zapewnia nam dwa sposoby adresowania tych układów:
-bezpośrednie- odnoszące się do rozkazów we-wy;
-pośrednie rejestrowe- odnoszące się do rozkazów we-wy, których kod operacji wskazuje, że rejestr DX zawiera adres układu we-wy.
Zatem jest możliwe zaadresowanie 65536 układów we-wy operujących na bajtech lub 32768 układów we-wy operujących na słowach 16-to bitowych. Rozdzielona przestrzeń adresowa nie jest segmentowana.
-----------------------------------
PROCESOR 286
Procesor ten w porównaniu z procesore 8088 posiada wiele dodatkowych właściwości:
-możliwość pracy wielozadaniowej;
-możliwość pracy w trybie adresowania rzeczywistego lub adresowania wirtualnego z ochroną zasobów
-wbudowanyukład zarządzania pamięcią MMU zapewniający użytkownikowi 1GB przestrzeni adresowej pamięci wirtualnej dla każdego zadania oraz 16 MB przestrzeń adresową pamięci fizycznej
-większa wydajność obliczeniowa wyrażana w milonach rozkazów na sekundę (MIPS)
Procesor ten pracując w trybie adresowania rzeczywistego jest w pełni zgodny z procesorem 8088. W trybie adresowania wirtualnego istnieje zgodność z procesorami 8088 i 8086 tylko na poziomie programów źródłowych. Wewnątrz procesora można wyróżnić następujące bloki:
-układ sterowania magistrali BIU
-układ rozkazowy IU
-układ wykonawczy EU
-układ adresowania AU
Wszystkie te układy dzięki rejestrom buforowym mogą pracować równolegle. Można zatem powiedzieć, że procesor ten umożliwia przetwarzanie potokowe, co znacznie przyspiesza realizację programów.
Z punktu widzenia programisty dostępne są te same rejestry co w 8086. Pamięć operacyjna ma również organizację bajtową i jest segmentowana. Innaczej jest interpretowana zawartość rejestrów segmentowych (CS, DS, ES, SS); pojawiają się trzy dodatkowe rejestry dostępne dla programisty oraz rejestry niedostępne tworzące pamięć cache. Ponieważ przestrzeń adresowa pamięci wirtualnej jest większ niż niż przestrzeń adresowa pamięci fizycznej, więz jeżeli nastąpi odwołanie się dosegmentu, którego aktualnie nie ma w pamięci fizycznej, to wtedy układ MMU wraz z systemem operacyjnym wykryje tą sytuację i zainicjuje wczytanie tego segmentu z pamięci masowej. Adres wirtualny składa się z adresu efektywnego i numeru segmentu. Numer segmentu jest zapisany w jednym z rejestrów segmentów spełniających w trybie adresowania wirtualnego rolę selektora). W układzie MMU na podstawie adresu wirtualnego wyznacza się 24-bitowyadres fizyczny umożliwiający adresowanie 16MB pamięci.
W mikroprocerze korzysta się z rejestrów dodatkowych:
-TR, LDTR, GDTR, IDTR, MSW, dostępnych dla programisty
-deskryptorów segmentów niedostępnych dla programisty. Zawartość rejestrów ukrytych jest zmieniana automatycznie przez MMU. Rejestry deskryptorów segmentów danych programu i stosu stanowią rozszerzenie rejestrów segmentów isłużą do przechowywania 24-bitowego adresu bazowego.
W rejestrze flagowym mikroprocesora 286 znajdują się te same znaczniki co w rejestrze flagowym mikroprocesora 8088 i dodatkowo znajdują się tutaj dwa dodatkowe pola: NT i I/OPL. Dwubitowe pole I/OPL określa poziom uprzywilejo-wania układów we-wy. Znacznik NT wskazuje zagnieżdżenie zadań. Steruje on przbiegiem rozkazu IRET. Gdy NT=1 następuje przłączenie zadania (powrót do zadania poprzednio wykonywanego; gdy NT=0 rozkaz powrotu nie zmienia bieżącego zadania. Jest on zmieniany rozkazem CALL lub przerwaniem INT. Można go także zmienić rozkazami POPF i IRET.
-------------------------------------
SPOSOBY ADRESOWANIA ARGUMENTÓW W PAMIĘCI
------------------------------------
-indeksowe- adres efektywny jest sumą 8-bitowego lub 16-to bitowego przemieszczenia zawartego w rozkazie i zawartości jednego z rejestrów indeksowych DI lub SI;
-bazowo-indeksowe z przesunięciem- adres efektywny jest sumą zawartości jednego z rejestrów indeksowych DI lub SI, zawartości jednego z rejestrów bazowych BP lub BX i przesunięcia 8 lub 16-bitowego zawartego w rozkazie.
W mikroprocerze 286 układy we-wy mogą być adresowane w jednolitej lub rozdzielonej przestrzeni adresowej. W pierwszym przypadku są traktowane jak komórki pamięci, natomiast w drugim procesor dysponuje 64-kB przestrzenią adresową układów we-wy. Przestrzeń ta nie jest segmentowana. Porty we-wy można adresować bezpośrednio lub pośrednio. Obszar we-wy o adresach 00F8H do 00FFH zarezerwowano dla potrzeb procesora.
MIKROPROCESOR 80386
Mikroprocesor 80386 jest procesorem 32-bitowym, który orócz jednostki centralnej zawiera układy wspomagające:
-zarządzanie ochronę pamięci,
-pracę wieloprogramową
-uruchamianie oprogramowania.
...
sprawozdania_pollub