EXTENSII IBM-PC
8086-a aparut in 1979
8088-a aparut in 1980
80186-nu atinut mult timp,aparind urmatoarele
80286-a aparut in 1982 (a facut un salt mare)
80386-a aparut in 1985 (s-a concretizat ca o revolutionare a lui 80286)
80486-a aparut in 1987 (compus din:un microprocesor 80386
un coprocesor)
S-a constatat ca cei 640ko memorie pe care utilizatorul ii are la dispozitie
nu reprezinta prea mult(nu mai e satiafacator).Au aparut pe piata produse soft
foarte puternice(Lotus 1,2,3,etc.)
In 1983 firma Lotus 21121h720v ,firma Intel,firma MicroSoft au fost interesate in elabo-
rarea unor standarde si metodologii de suplimentare ; astfel s-a ajuns la in-
troducerea produselor LIM,respectiv LIMA.
S-au introdus doua categorii de suplimentare a memoriei:
-memorie expandata(EMS-expanded memory size) : incepind cu 8086
-memorie extinsa(XMS-extended memory size) : incepind cu 80286
MEMORIA EXPANDATA
Specificatiile prevad ca pe linga cipul de memorie care materializeaza 1Mo
clasic de memorie,sa mai existe cipuri pina la 8Mo de memorie.Dar,locatile din
aceste cipuri suplimentare nu au adresa,ci pentru ele se aplica comutarea
"bank":
0 +------------+ +----- ----- --------- ----- --------+
| | | | |
| | | | |
| | | |
fffff+------------+ +----- ----- --------- ----- --------+
partea suplimentara
fiecare locatie din partea suplimentara poate sa aiba la un moment dat
o adresa de maximum 1Mo (orice locatie din partea suplimentara poate sa ocupe
temporar un spatiu din memori clasica); !locatiile pot avea adrese variabile!
La un moment dat ,in memoria expandata pot exista mai multe locatii de
memorie care sa aibe aceeasi adresa.Dintre acestea , in fiecare moment e activa
doar una.
Mecanismul e dat prin hard ; se ruleaza un pachet de rutine EMM(expanded
memory manegment) corelat cu int 67h , care contine o serie de functii ce per-
mit comutarea de adresa.
MEMORIA EXTINSA
Standardele prevad ca spatiul de memorie interna adresabila sa fie de maximum
16Mo si fiecare locatie de memorie sa aiba propia ei adresa.
+-------- ----- ------ ----- ----- -------------+
| | |
| | |
| | |
+-------- ----- ------ ----- ----- -------------+
0 1Mo 16Mo
Mecanismul prin care se realizeaza:mod de lucru protejat.
Specificatiile LIM,LIMA prevad sa nu fie pentru utilizatorii obisnuiti.
Programele obisnuite utilizator nu pot sa adreseze mai mult de 1Mo.Pentru a
putea fi folosit spatiul suplimentar de memorieextinsa , se ofera pachetul XMM
(extended memory management) materializat prin functii ale int 2F , prin care
se ofera utilizatorului posibilitatea de a lua un sir de octeti din suplimen-
tul de memorie si a-l aduce in memoria de pina la 1Mo (copiere efectiva).
OBS.-mem.expandata: se comuta dor adresele
-mem.extinsa: se face copiere efectiva
In memoria conventionala exista:nucleu DOS+TPA
0 +----- ----- ----------------+ ----- ----- -----
| nucleu DOS |
+----- ----- ----------------+
| | 640Ko
| TPA | mem. conventionala
| |
9ffff |----- ----- ----------------| ----- ----- -----
a0000 | mem. ecran |
|----- ----- ----------------|
| |
| fereastra | mem. ascunsa
| | (pt. fereastra:cel
| | putin 64Ko sp. liber)
|----- ----- ----------------|
| functii BIOS |
| |
fffff +----- ----- ----------------+ ----- ----- -----
Fereastra e folosita de memoria expandata pentru comutari de adrese.
Cel mai recent mecanism de memorie expandata imparte fereastra in 4 pagini
a cite 16Ko. Cipurile suplimentare de memorie sint impartite in pagini de 16Ko.
In fiecare moment , in suplimentul de memorie vor fi doua categorii de pagini:
unele libere (cu adresa libera),iar altele care au asociata una dintre cele
4 adrese ale paginilor din fereastra.Dintre toate paginile din suplimentul de
memorie care au asociata aceeasi pagina din ferestra , cel mult una e activa.
XMM,mem. extinsa, face mutari.Drept portiune de mutare se foloseste tot
acesta fereastra(care,dupa cum s-a vazut,e libera).Pentru unele calculatoare
se mai poate folosi drept fereastra portiunea de 64Ko situata imediat dupa 1Mo
de memorie.XMM ajuta programatorul obisnuit sa lucreze in spatiul de pina la
1Mo cu memoria extinsa.
Ce ofera S.O. vis-a-vis de cele doua extensii?
In CONFIG.SYS , exista de la DOS 4.0 un driver care organizeaza un mecanism de
memorie "cache" pentru optimizarea schimbului cu discul;
(memorie "cache"-o portiune de memorie-cind utilizatorul face un schimb cu
discul,memoria cache verifica daca nu cumva clusterul care trebuie schimbat cu
exteriorul e prezent in aceasta memorie cache,pentru servirea lui de acolo
(se reduce foarte mult schimbul fizic cu discul).
DEVICE=SMARTDRV.SYS
RAMDRIVE.SYS [/e sau /o]
-pentru /e -spatiul unde este simulat discul este in memoria extinsa
-pentru /o-spatiul pentru simulare este in memoria expandata
Pentru o masina 80386+memorie expandata, EMM386.EXE permite extiderea si la
memoria expandata a mecanismului de adresare paginata.
Arhitectura 8386
----- ----- --------
Ne intereseaza ce elemente vin in plus.
Exista 80386SX si 80386DX-din punct de vedere conceptual,ele nu difera deloc;
DX este mai performant,dar progamarea se face in acelasi mod.
Elementul fundamental la 80386 este lucrul pe 32 biti.
Registrii de 16 biti 8086 sint extinsi la 32 biti:
EAX: | | AH | AL |
|----- ----- -------|-------|--------|
31 15 8 7 0
la fel,EBX,ECX,EDX.
ESI: ca aubaltern SI
EDI: ca subaltern DI
EBP: ca subaltern BP
ESP: SP
EIP: IP
Ca registrii de segment , registrii pe 16 biti:CS,SS,DS,ES la care se adauga
FS,GS.
Incepind cu 802286 s-a introdus conceptu de "nivel de privilegiu"(privilege
label) 0,1,2,3-codifica cele patru nivele de protectie.Pentru protectie sint
rezervati 2 biti.
Flagurile: | VM | NT IOPL OF |
|----- ----- -------------|--|--|--|--|--|--|--|--|--|--|------------|
31 16 15 8 7 0
NT-flagul de task-uri incuibate
(in modul de lucru protejat pot fi active mai multe programe-independente
sau subordonate)
IOPL-contine nivelul de protectie pentru intrari-iesiri
VM(virtual mode)-permite simularea pe 80386 a mai multor calculatoare 8086
Registrii descriptori de segment
Au capacitatea de 64 octeti (8 biti),ei nu sint accesibili utilizatorului ,ci
sint folositi de echipamenbtul hard pentru calculul de adresa.Exista un des-
criptor pentru fiecare segment.
_____ _______ ______ ____________
|7_____ _______ ______ __________0|
|15_____ _______ ______ _________8|
|7_____ _______ ______ __________0|
|15_____ _______ ______ _________8|
|23_____ _______ ______ ________16|
|P____DPL____S|____________A|
|G_D__________|19_________16|
|31_____ _______ ______ ________24| ;se adauga la 80386 (pot adresa 1Go de
memorie)
-primii doi octeti : contin lungimea segmentului(80286)
-urmatorii trei octeti materializeaza adresa de inceput a segmentului
-P-segmentul e sau nu e prezent in memorie
-DPL-nivelul de privilegiu al descriptorului de segment
-S-indicatorul de tip al segmentului
S=1:segm. utilizator
S=0:segm. sistem
-A-bit de accesibilitate:segmentul a fost sau nu folosit
-G-bit de granularitate :unitatea de adresare e octetul sau pagina
-D-bit de dimensiune a instructiunii
D=1:ins. pe 32 biti
D=0:ins. pe 16 biti
Registrii de control - accesibili utilizatorului
286: MSW |___________________|________|PE|
15 5 4
386: CRO|_____ _______ ______ __________|___________________|________|PE|
31 16 15 5 4
-PE-indicatorulmodului de lucru protejat
PE=1:lucru protejat
PE=0:lucru real
-1..4-biti legati de coprocesor
-PG-indicatorul adresarii paginate
PG=1:nepaginat
PG=0:lucru paginat
Instructiuni
LMSW sursa
SMSW destinatie
MOV r,CRO
Pentru folosirea acestor instructiuni , trebuie sa se indice procesorului ca
directive
.286
.286C
.286P
.386
.386C
.386P
Mai exista registrii de control CR2 si CR3.
GDTR-registru global de adrese ale descriptorilor
IDTR-pentru handlere de intrerupere
|