Pamięć konwencjonalna
Pamięć górna UMA
Pamięć typu expanded (EMS)
W jaki sposób działa pamięć typu expanded ?
PAMIĘĆ TYPU EXTENDED XMS
Tryby rzeczywisty i chroniony
Używanie pamięci typy extended pod DOSem
Wysoka Pamięć
Bloki Pamięci Górnej
Pamięć
konwencjonalna
Obszar obejmujący zakres 0 - 9FFF (0 - 640 KB) pamięć konwencjonalna,
jest to obszar, gdzie DOS ładuje i wykonuje twoje programy. Dolna pamięć
konwencjonalna zarezerwowana jest do użytku komputera, lecz mniej
więcej od punktu 2 KB aż do 640 KB, możesz uruchamiać aplikacje. Nie
oznacza to jednak, że masz całe 640 KB (lub 638 KB) dostępne dla
wszystkich twoich aplikacji. DOS sam pozostaje w pamięci konwencjonalnej,
zajmując od 18 KB do 90 KB w zależności od wersji.
Ponad DOSem są pewne obszary przechowywania danych (ang. - data
storage areas) - miejsca, które DOS wykorzystuje do obsługi wszystkich
otwartych plików, plus dowolnych drajwerów urządzeń ładowanych przez
CONFIG.SYS oraz wszystkich programów rezydentnych ładowanych przez
AUTOEXEC.BAT. Na zakończenie, nad tym wszystkim, znajduje się twój
program użytkowy (aplikacja) i wszystkie pliki przez ciebie załadowane
potrzebne danej aplikacji, takie jak dokument czy arkusz kalkulacyjny.
W najgorszym przypadku, przy dużej ilości załadowanych driver’ów
urządzeń i programów rezydentnych, może ci zostać tylko kilkadziesiąt
kilobajtów pamięci konwencjonalnej przeznaczonej dla twoich aplikacji.
Pamięć górna UMA
Obszar o adresie A0000 do FFFFF (640 - 1 MB) IBM zarezerwowało górne
384 KB pamięci PC dla celów przyszłych rozwiązań lub dla ROMa.
Oryginalny PC używał tylko skrawka tej pamięci dla swojego BIOSa,
Podstawowego Systemu Wejścia/Wyjścia, zapewniającego PC instrukcje
niskiego poziomu do sterowania urządzeniami peryferyjnymi, takimi jak
stacje dysków i klawiatura. Jeszcze jeden mały kawałek był używany dla
pamięci monitora, gdzie były przechowywane informacje, które miały być
wyświetlone na monitorze monochromatycznym lub kolorowym. A i tak
pozostał cały tłum miejsca dla przyszłych rozszerzeń. Obecnie pamięć
górna nadal nie jest wypełniona ROMem. Pierwsze 128 KB jest
przeznaczone dla pamięci monitora: systemów grafiki
monochromatycznej, CGA, EGA lub VGA w większości PC. Następne 128
KB jest zarezerwowane dla ROMów instalowalnych, takich jak ROM
monitora i ROM kontrolera stacji dysków. Ostatnich 128 KB jest
zarezerwowanych dla ROM-BIOSU. W pamięci tej można zainstalować
wersję 5.0 sytemu operacyjnego, dyski typu RAM, a na zestawach z
procesorem 80386 (lub 80486) umieścićtakże programy rezydentne i
sterowniki urządzeń.Do rozpoznawania adresów powyżej granicy 640 kB
programy potrzebują specjalnego programu zarządzania pamięcią
rozszerzoną, którym w systemie operacyjnym MS-DOS jest program
HIMEM (zapisany w zbiorze HIMEM.SYS).
Pamięć typu expanded
(EMS)
Użytkownicy arkuszy kalkulacyjnych byli pierwszymi, którzy zaczęli domagać
się więcej pamięci. W trakcie pracy arkusz kalkulacyjny jest przechowywany w
pamięci; im więcej masz pamięci, tym większy arkusz możesz utworzyć. Dla
budżetu domowego, 256 KB było wystarczającą pamięcią. Dla małego biura,
640 KB było w porządku. Lecz dla Użytkowników Wielkich Arkuszy
Kalkulacyjnych, to nie wystarczało.
Stworzono rozwiązanie, oparte na kombinacji sprzętu i oprogramowania.
Lotus, Intel i Microsoft opracowały standardową specyfikację pamięci typu
expanded (EMS) LIM dla pamięci typu expanded, de facto dodatkowej puli
pamięci w PC. Nie jest to pamięć poza znacznikiem 1 MB, nie mogą w niej być
wykonywane żadne programy. Jest to raczej obszar pamięci na karcie
rozbudowy wewnątrz komputera zgodnej z EMS. Oprogramowanie zgodne z
EMS mogłoby mieć dostęp do pamięci na karcie, co z kolei oznaczało, że
oprogramowanie może mieć dostęp do większej ilości pamięci do
przechowywania danych.
Aby używać pamięci typu expanded na twoim komputerze, potrzebujesz
zarówno karty rozbudowy zgodną z EMS, jak i driverów urządzenia znany jako
driver pamięci typu expanded (EMM). Musisz mieć również aplikacje zgodne z
EMS, które "umieją" używać pamięć typu expanded.
W jaki sposób działa
pamięć typu
expanded ?
Pamięć typu expanded wykorzystuje nieużywany kawałek górnej pamięci, rezerwując
jeden 64-kilobajtowy blok pamięci zwany ramką strony (ang. - page frame). Pamięć typu
expanded jako taka mieści się - poza główną pamięcią w PC - na karcie rozbudowy w
jednym z gniazd rozszerzenia PC.
Driver EMM udostępnia pamięć typu expanded oprogramowaniu aplikacji w postaci
czterech 16-KB stron mieszczących się w ramce strony. Pamięć ta jest blokami
przełączana zarówno sprzętowo, jak i programowo, co oznacza, że 16-KB strony w miarę
potrzeby mogą być przerzucane do i z ramki strony. Po umieszczeniu w ramce strony,
strona staje się dostępna dla mikroprocesora, ponieważ mieści się ona w 1 MB przestrzeni
adresowej.
Jeżeli twoje aplikacje wykorzystują funkcje zapewniane przez drajwer EMM, mogą one
odwzorowywać inne strony pamięci typu expanded na ramkę strony. W taki właśnie
sposób używana jest pamięć typu expanded.
Ostatnia wersja standardu EMS, wersja 4.0, umożliwia dostęp aż do 32 MB pamięci typu
expanded. Standard EMS 4.0 pozwala nowym kartom EMS na przenoszenie programów,
jak również danych, do pamięci typu expanded. W ten sposób, pamięć typu expanded
staje się bardziej użyteczna w przypadku wielozadaniowości, lecz w dalszym ciągu jest
ona o wiele wolniejsza niż bezpośrednio adresowana pamięć konwencjonalna.
PAMIĘĆ TYPU
EXTENDED XMS
Co to jest pamięć typu extended? Jest to, podstawowo, RAM ponad i poza znacznikiem 1
MB w PC opartym o 80286 lub '386. Pamiętaj: ponad i poza. Ponad tym, gdzie rezyduje DOS
i poza zasięgiem większości aplikacji DOSa.
80286 może mieć dostęp aż do 16 MB RAMa; '386 może mieć dostęp aż do 4096 MB. We
wszystkich tych systemach poprzednie wersje DOSa traktowały mikroprocesor jak szybki
8088 z 1 MB pamięci. Dowolna pamięć ponad znacznik 1 MB jest to tzw. pamięć typu
extended.
Największym problemem w przypadku pamięci typu extended jest fakt, że znajduje się ona
ponad przestrzenią adresową 8088 - czyli DOS nie może bezpośrednio z niej korzystać. Aby
korzystać z pamięci typu extended, program musi przełączyć mikroprocesor na tzw. tryb
chroniony a następnie, przed wyjściem, ponownie przełączyć na tzw. tryb rzeczywisty.
Pierwsze programy, które tę technikę wykorzystywały, były to dyski wirtualne.
Ponieważ pamięć typu expanded została wprowadzona przed pamięcią typu extended, jest
więcej programów zaprojektowanych do korzystania z pamięci typu expanded aniżeli z
pamięci typu extended. Jednakże powoli się to zmienia. Wersje 3.0 AutoCAD i Lotus 1-2-3
mogą korzystać z pamięci typu extended. A wzbogacony tryb 386 Windows Microsfta
otwiera drzwi megabajtom pamięci typu extended.
W celu umożliwienia uruchamiania programów w pamięci rozszerzonej bez względu na jej
typ, wersja 5.0 systemu operacyjnego zawiera sterownik EMM386, który na zestawach z
procesorem 80386 (lub 80486) powoduje symulację pamięci rozszerzonej EMS w pamięci
XMS. Tym samym każdy program przeznaczony do uruchomienia w pamięci EMS będzie
mógł być uruchomiony na zestawie komputerowym wyposażonym w pamięć XMS.
Aby przesunąć programy rezydentne z pamięci konwencjonalnej do XMS wymaga instalacji
sterownika HIMEM.
Tryby rzeczywisty i
chroniony
Mikroprocesory 80286 i '386 mają w rzeczywistości dwa tryby pracy: tryb rzeczywisty (ang.
- real mode) i tryb chroniony (ang. - protected mode).
W trybie rzeczywistym, mikroprocesor 80286 działa dokładnie jak 8088; może używać tylko
1 MB RAMa, a pamięć typu extended nie może być używana do uruchamiania programów
W trybie chronionym, 80286 uwalnia się. Może mieć dostęp do 16 MB RAMa i uruchamiać
programy w dowolnym miejscu. Pamięć typu extended jest szeroko otwarta dla
mikroprocesora.
386 ma tryby rzeczywisty i chroniony, dokładnie tak samo, jak 80286. W trybie
rzeczywistym, '386 działa jak bardzo szybki 8088, lecz w trybie chronionym '386 może mieć
dostęp do 4096 MB RAMa przeznaczonych do uruchamiania programów i zapisywania
informacji. Poza tym, przy pracy w systemie operacyjnym dopuszczającym tryb chroniony,
'386 ma tzw. tryb wirtualny 8086 lub V-86. W trybie tym system operacyjny może
wykonywać wiele programów na raz. Każdy z tych programów wierzy, że działa na
oddzielnym mikroprocesorze 8088 ze swoją własną, niepowtarzalną przestrzenią adresową
1 MB. W ten sposób DESQview 386 wykonuje naraz wiele aplikacji DOSa.
Tryb chroniony jest jak senne marzenie użytkownika spragnionego RAMa: masa pamięci i
pełna moc mikroprocesora do jej wykorzystania. Lecz DOS jest przywiązany do 8088; jest to
system operacyjny tylko trybu rzeczywistego. DOS nie może być uruchomiony w trybie
chronionym, ani też nie może uruchamiać programów w pamięci typu extended.
Używanie pamięci typy
extended pod DOSem
Mimo, że pamięć typu extended jest rzeczywiście poza zasięgiem DOSa (na razie), istnieje
pewien potencjał:
Niektóre aplikacje mogą być uruchomione w - i będą używać - pamięci typu extended. Są to
tzw. rozszerzone aplikacje DOSa. W tajemnicy, aplikacje te przełączają mikroprocesor z trybu
rzeczywistego na chroniony - za plecami DOSa. Gdy aplikacja jest wykonywana, używa ona
pełnej mocy mikroprocesora i pamięci typu extended w komputerze. Gdy aplikacja kończy się
i wraca do DOSa, przełącza z powrotem mikroprocesor na tryb rzeczywisty. Niewiele
programów to robi, przede wszystkim Windows, Lotus 1-2-3 wersja 3.0 i późniejsze, i niektóre
wersje AutoCAD.
Od wersji 3.2 DOSa pamięć typu extended może być wykorzystywana jako pamięć masowa.
W pamięci typu extended możesz umieszczać dyski wirtualne, cache dysku, czy też bufory
drukowania. O ile programy nie są w tej pamięci uruchamiane, DOS może mieć do niej
dostęp dla celów przechowywania informacji.
Pamięć typu extended może symulować pamięć typu expanded - lecz tylko w komputerach
opartych o '386 i tylko z odpowiednim oprogramowaniem (emulatorpamięci typu expanded).
Aby dokonać takich wyczynów Lotus, Intel, AST Research i Microsoft ustaliły standard do
posługiwania się pamięcią typu extended w DOSie. Jest to Specyfikacja Pamięci Typu
Extended, czyli XMS (Extended Memory Specification.)
XMS nie pozwala programom, aby były uruchamiane w pamięci typu extended; jesteś nadal
ograniczony do tych trzech funkcji opisanych powyżej. Lecz XMS ustala standardy
umożliwiające wyszukane, współdziałające korzystanie z pamięci typu extended pod DOSem.
Wysoka Pamięć
Mikroprocesory 8088/8086 mogą odwoływać się do 1 MB pamięci. Dowolna próba odwoływania
się do pamięci poza 1 MB powoduje, że mikroprocesor "zawraca", idąc z powrotem do miejsca
w pamięci o adresie 0. Mikroprocesory 8088/8086 mogą również odwzorować te bajty do
pierwszych 64 KB pamięci typu extended. Tych dodatkowych 65,520 bajtów znane jest jako
tzw. pamięć wysoka, lub HMA (ang. - high memory area.)
Ta dodatkowa pamięć może być użyta przez DOS w komputerze opartym o 80286 lub '386.
DOS może praktycznie "zobaczyć" pamięć tam będącą i odwoływać się do niej bezpośrednio
bez potrzeby przesączania mikroprocesora na tryb chroniony.
Aby mieć dostęp do HMA - dodatkowe 64 KB pamięci potrzebujesz dwóch rzeczy:
· PC oparty o 80286 lub '386 z pamięcią typu extended
· Driver, aby mieć dostęp i sterować HMA
Większość PC opartych o 80286 i o '386 jest dostarczanych z 1 MB RAMa. Pierwszych 640 KB
tej pamięci jest to pamięć konwencjonalna. Reszta jest to najczęściej pamięć typu extended.
(Zwróć uwagę, że niektóre starsze komputery AT mają tylko 512 KB zainstalowanej pamięci.)
Dlatego też prawie wszystkie komputery oparte o 80286 lub późniejsze mają pamięć typu
extended potrzebną dla DOSa
Drajwerem mającym dostęp do HMA jest HIMEM.SYS. Poza tym, HIMEM.SYS wdraża standard
XMS w komputerach opartych o 80286 i '386 pod DOSem 5. Jest to pierwszy krok w stronę
pełnego wykorzystania potencjału pamięci twojego komputera.
Bloki Pamięci Górnej
Bloki pamięci górnej (UMB - upper memory blocks) są nieużywanymi obszarami w górnej pamięci.
Mimo, że IBM pozostawił 384 KB dla ROMa i przyszłego rozwoju, bardzo mała część tego obszaru jest
wykorzystywana. BIOS korzysta tylko z części wyższych 128 KB tej pamięci; kontroler dysku twardego i
BIOS monitora również zajmują tylko część tej pamięci; a pamięć monitora może zajmować dowolny
kawałek od 4 KB (w przypadku monitorów monochromatycznych) do 32 KB (dla CGA) oraz do 128 KB
(zarówno dla EGA, jak i VGA). W wynik tego pozostaną niewykorzystane kawałki górnej pamięci.
Obszary niewykorzystane pomiędzy poszczególnymi ROMami i innymi zabawkami w zarezerwowanej
pamięci nie mogą być używane do uruchamiania programów. Dlaczego? Dlatego, że praktycznie nie
ma tam RAMa. RAM kończy się na 640 KB. (Podczas gdy prawdą jest, że RAM monitora znajduje się w
pamięci zarezerwowanej, jest on przeznaczony dla systemów generacji obrazu, a nie dla
wykonywanych programów.)
Przed powstaniem DOSa 5, jeżeli chciałeś utworzyć UMB, musiałeś kupić program zarządzania
pamięcią innego producenta, jak np. 386 MAX z Qualitas lub QEMM-386 z Quarterdeck. Programy te
mogą odwzorować pamięć typu expanded do nieużywanych obszarów między 640 KB a 1 MB. DOS 5
zawiera niezbędne drajwery i programy do tworzenia UMB przeznaczone dla dowolnych komputerów
opartych o '386 mających co najmniej 350 KB pamięci typu extended. Korzyści? Z drajwerami
urządzeń i oprogramowaniem rezydentnym poza obszarem pamięci konwencjonalnej, masz więcej
pamięci konwencjonalnej, w której możesz uruchamiać programy.
Gdy już masz UMB, możesz z nimi zrobić wiele rzeczy. Na przykład, drajwery urządzeń i programy
rezydentne z zasady są umieszczane w UMB. Mimo, że są one programami, nadal działają poprawnie,
ponieważ w dalszym ciągu znajdują się w 1 MB przestrzeni adresowej 8088.
DOS 5 przenosi ten pomysł o jeszcze jeden wiellci krok naprzód: Możesz przenieść jądro DOSa (własne
programy rezydentne DOSa) z pamięci konwencjonalnej do HMA, co pozostawi cię z masą pamięci
konwencjonalnej przeznaczonej do uruchamiania twoich aplikacji.