36 3. Kolejne generacje mikroprocesorów firmy INTEL
informacje określające atrybuty (zasady) dostępu do segmentu. Informacje le zawarte w jednym bajcie (rys. 3.6) są wykorzystywane do
- izolowania systemu operacyjnego od programów użytkowników,
- izolowania użytkowników między sobą,
- kontrolowania typu danych.
Poszczególne bity oznaczają
P (ang.present) - segment jest (P = 1) lub nie jest (P = 0) w pamięci operacyjnej;
DPL (ang. descriptor pńvilege level) - poziom uprzywilejowania segmentu, 2 bity używane w testach przywilejów;
S (ang. segment descńptor ) - deskryptor segmentu programu, danych lub stosu (S = 1) lub deskryptor segmentu systemu (wtedy bity 1...3 mają inne znaczenie);
E (ang. executable ) - segment programu (E = 1) bądź danych (E = 0);
C/ED (ang. confomungfexpansion direction ) - dla programu: segment może być czytany (E= 1, C/ED= 1) przez różne programy z różnych poziomów uprzywilejowania, tzn. DPL nie jest uwzględniany; dla danych: rozszerzenie segmentu (E = 0, C/ED = 1), offset musi być większy niż długość segmentu;
R/W (ang. writeable/readable ) - dla programu (E=l): segment programu może (nie może) być czytany dla danych (E = 0): segment danych może (nie może) być zapisywany;
A (ang. accessed ) - segment nie jest dostępny (A = 0) lub selektor segmentu został załadowany do rejestru segmentowego (A = 1).
W systemie można wyróżnić cztery poziomy uprzywilejowania numerowane 0...3, przy czym 0 określa poziom o najwyższym priorytecie. Przykładowo, program może wywołać podprogram jedynie wówczas, gdy poziomy uprzywilejowania obu są zgodne. Intel przyjmuje następujący przydział przywilejów
0 - jądro systemu operacyjnego (zarządzanie pamięcią, przełączanie zadań itp.),
1 - system operacyjny (dostęp do danych, obsługa wejść-wyjść itp.),
2 - rozszerzenia systemu operacyjnego przez użytkownika,
3 - programy użytkowe.
System operacyjny jest więc chroniony przed błędami programowymi użytkowników. W trakcie pracy systemu operacyjnego, bezpośrednie wywołanie podprogramów systemowych (BIOS) z poziomu programu użytkowego nie jest możliwe. Z kolei wszystkie programy systemowe mają dostęp do programów użytkownika. Mechanizmy ochrony wymagają także większej niż dla procesora 8086 "dyscypliny" w definiowaniu segmentów. Przykładowo segment programu może zawierać jedynie program lub ewentualnie stałe (np. tekst - jego odczyt jest możliwy). W segmencie programu nic mogą wystąpić zmienne, które muszą być zapisywane i odczytywane, bądź stos. Z kolei z segmentu danych nie można wywołać podprogramu - jest on zarezerwowany wyłącznie dla danych lub stosu. Wreszcie, aby użytkownik nie mógł zdezorganizować pracy systemu, niektóre rozkazy maszynowe mogą być używane jedynie na wyższych poziomach uprzywilejowania. Na przykład rozkazy HALT, IR ET, POPF mogą być używane jedynie na poziomie 0. Z kolei użycie rozkazów IN, 1NW, OUT, OUTW, STI, CLI i LOCK zależy od poziomu uprzywilejowania operacji wejścia-wyjścia (IOPL). Innymi słowy układy (elementy) wejścia-wyjścia mogą być adresowane
powered by
3.3. Mikroprocesor 80386
jedynie wówczas, gdy poziom uprzywilejowania programu zezwala na to. Tc oraz. inne, nie opisane (ze względu na ograniczoną objętość książki), cechy mikroprocesora 80286 powodują, że przeważająca większość programów pracujących pod kontrolą systemu operacyjnego MS-DOS nie będzie funkcjonowała w trybie adresowania wirtualnego. Prawic w każdym takim programie bywa zmieniana zawartość rejestrów segmentowych, zmienne bywają umieszczane w segmencie programu, są używane adresy bezwzględne.
Mikroprocesor 80386 otwiera nową generację mikroprocesorów 32-bitowych o tak dużych możliwościach, że nasze dotychczasowe wyobrażenia o wydajności, sprawności oraz zakresie zastosowań systemów mikrokomputerowych będą musiały ulec znacznej zmianie. Procesor 80386 charakteryzuje się 32-bitową wewnętrzną i zewnętrzną architekturą. Oznacza to, że w jednym cyklu maszynowym procesor może przetwarzać 32 bity. Również jednym rozkazem może komunikować się z otoczeniem za pośrednictwem szybkiej, 32-bitowcj magistrali danych, co pozwala między innymi na zaadresowanie pamięci operacyjnej o wielkości 4 GB (4 GB = 4 miliardy bajtów).
Szybkość procesora przy częstotliwości zegara 16 MHz wynosi 3-4 milionów instrukcji na sekundę (MIPS). Możliwe są trzy tryby pracy.
Adresowanie rzeczywiste (ang. real modÄ™)
W trybie tym, podobnie jak dla mikroprocesora 80286, istnieje pełna zgodność z procesorami 8086/8088. Przy współpracy z zegarem o częstotliwości 16 MHz procesor 80386 jest wtedy 15-20 razy szybszy niż 8088 i 2-2,5 razy niż 80286.
Adresowanie wirtualne (ang. proiected modÄ™)
Główny tryb pracy mikroprocesora 80386 jest wykorzystywany w systemach wielodostępnych i wielozadaniowych. Procesor może obsługiwać równocześnie dowolnie wiele systemów operacyjnych z równolegle wykonywanymi programami użytkowymi. W trybie tym procesor może adresować do 64 TB (terabajt = bilion bajtów) pamięci wirtualnej dla zadania. Odpowiada to pojemności 3,2 milionów stałych dysków o pojemności 20 MB każdy. W praktyce będzie to miało znaczenie oczywiście dopiero wówczas, gdy optyczne pamięci masowe - mające pojemności rzędu giga i terabajtów -slan4 się popularne. Wielkość segmentów służących do strukluryzacji przestrzeni adresowej może być różna, dopasowana do struktury programu, nie większa niż do 4 GB. Zarządzanie fizyczną pamięcią operacyjną (do 4 GB) wiąże się z podziałem każdego Pojedynczego segmentu na strony o stałej wielkości 4 KB. Podział pamięci na segmen-ly 1 strony umożliwia organizację pamięci wirtualnej. Części programu i danych, które n,e mieszczą się w pamięci operacyjnej, są składowane w pamięci masowej, np. dysku tyPu Winchester. Gdy komputer potrzebuje danych lub części programu, które nie znajdują się w pamięci operacyjnej, żądane informacje jako pliki danych o wielkości segmentu lub strony są przesyłane z dysku do pamięci operacyjnej. Wymienione