Z histórie procesorov INTEL 80x86 - adresovanie.
Procesor INTEL 8086
Procesor Intel 8086 bol uvedený na trh v
rokoch 1979 - 1980. Je to
plnohodnotný 16bitový procesor. Je vybavený 16bitovou vnútornou architektúrou, která
mu dovoľuje počas jedinej
inštrukcie
spracovať maximálně 16bitové číslo (tj. číslo v rozsahu 0 až 216-1
resp. 0 až 65535). Okem toho 8086 disponuje 16bitovou dátovou
zbernicou, ktorá umožňuje prenášať dáta do (z) čipu po 16 bitoch. Ďalej je vybavený
20bitovou adresovou zbernicou, pomocou ktorej dokáže adresovať pamäťový
priestor s kapacitou max. 1 MB (t.j. 220 B = 1048576 B). Táto adresa je tvorená
z dvoch šestnáctibitových častí označovaných segment
a offset, ktoré se sčítajú posunuté o 4 bity. Tým je vytvorená výsledná
20-bitová adresa.
|
Schéma adresovania procesora 8086
|
Veľkosť jednoho segmentu, v rámci ktorého je možné sa
pohybovať iba na základe zmeny hodnoty offsetu, je 64 kB. Adresa se zapisuje
v tvare segment : offset. Např. 4000:B000
určuje adresu 4B000 (hexadecimálne),
tj. 307200 (dekadicky).
Intel 8086 bol vyrábaný v púzdre DIP
(DIL)
so 40 vývodami a na svojom čipe integruje asi 29000 tranzistorov. Procesor
Intel 8086 bol osadzovaný najčastejšie v počítačoch označených IBM PC
a IBM PC / XT
Procesor INTEL 8088
Procesor Intel 8088 bol veľmi podobný procesoru 8086.
Bol používaný v rovnakých typoch počítačov ako procesor 8086.
Nebol to plnohodnotný
16bitový procesor, ale o procesor, který mal 16bitové jadro a iba 8bitovú
dátovú zbernicu. Táto 8bitová zbernica znižovala výkon procesora, ale
umožňovala jednoduchší návrh a jednoduchšiu matičnú dosku
, která mohla
vzniknúť menšími úpravami matičnej dosky určenej pre procesor 8080.(Pozn.
- v tom čase počítače boli 10 násobne drahšie) Vďaka týmto
vlastnostiam bol počítač s procesorom 8088 lacnejší než počítač s procesorem 8086.
Pre vytváranie adresy používal rovnaký model ako procesor 8086.
Z
hľadiska užívateľa a programátora je to úplne kompatibilný
procesor s procesorem Intel 8086, ktorý pri rovnakej frekvencii poskytoval asi
o 15% nižší výkon.
Staršie typy tohoto procesora, označované 8088-1,
pracovali s frekvenciami do 5 MHz. Naopak novšie verzie tohto
procesora, označované 8088-2, mohli dosahovať frekvencie až 8
MHz.
Procesory INTEL 80186 a 80188
Tieto procesory boli veľmi podobné procesorom 8086 a 8088. Nemali príliš
veľa nových vlastností. Používali rovnaký model tvorby adresy a používali
rovnako široké zbernice (80186 jel plnohodnotný 16bitový
procesor a 80188 je vnútorne
16bitový procesor s 8 bitovou dátovou zbernicou).
V niečom sa predsa len
líšili od predošlých mikroprocesorov a to výkonnejší mikrokódom, ktorý
umožňoval vyšší výkon. Tieto procesory boli dodávané v púzdre
PGA.
Z
dôvodu, že tieto procesory neposkytovali žiadne výraznejšie zlepšenia,
nezaznamenali väčší komerčný úspech a nedošlo k ich väčšiemu rozšíreniu.
Procesor INTEL 80286
Procesor 80286 bol uvedený na trh v
roku 1981 a znamenal veľký technologický skok v procesoroch série 80x86. Vyrábal
sa v púzdre
PGA
a neskôr v lacnejšom púzdre PLCC.
Procesor 80286 poskytuje oveľa väčší výkon než procesor 8086 (8088) a
na svojom čipe integruje približne 130000 tranzistorov. Je to plnohodnotný
16-bitový procesor, ktorý môže pracovať v dvoch rôznych režimoch:
- reálný režim (real mode, režim reálnej adresy): V reálnom
režime je procesor 80286 plno kompatibilný zo svojimi predchodcami.
Procesor v tomto režime pracuje úplne rovnako ako procesor 8086
(8088). Používá 20 bitov pre tvorbu adresy, která je vytváraná
podľa rovnakého modelu ako to používa procesor 8086. V tomto režime môžu
sa na procesore 80286 spúšťať programy napísané pre predošlý typ
procesora.
- chránený režim (protected mode, režim virtuálnej adresy):
Nový režim, nezlučiteľný s 8086. Tento režim podporuje multiprogramovanie
(paralelné spracovanie viac programov). Je teda nevyhnutné, aby procesor
v tomto režime poskytoval ochranu mezi jednotlivými spustenými
programami a rôzne úrovne oprávnenia přístupu k prostriedkom počítača.
Procesor v tomto režime používa nový model pre vytváranie
adresy. Adresa je vytváraná z dvoch 16 bitových zložiek nazývaných selektor
a offset s pomocou tzv. tabuliek deskriptorov. Výsledná
adresa je potom 24 bitová, čo umožňuje procesoru adresovať maximálne
224 B = 16 MB operačnej pamäti.
|
Schéma adresácia procesoru 80286 v chránenom režime
|
Prvná čásť logickej adresy nazývaná selektor je rozdělena
na tri časti:
Veľkou nevýhodou tohoto procesora je stále 16bitový offset, který
nedovoľuje väčší segmenet než 64 kB.
Počítače osadené týmto procesorom boli označované PC/AT.
Procesor INTEL 80386
Procesor 80386 je prvý plnohodnotný
32bitový procesor od firmy Intel, ktorý
používa 32bitovoú adresovú zbernicu. Na trh byl uvedený v roku 1986 pod
oficiálnym názvom 80386DX. Tento procesor byl dodávaný
najskôr v púzdre
PGA
a neskôri v lacnejšom púzdre PQFP.
V oboch prípadoch čip obsahoval asi 275000 tranzistorov. Tento procesor
zahrňuje v sebe veľké bohatstvo programovacích možností včítane možnosti
prevádzkovať programy systému MS-DOS v režime paralelného spracovávania
úloh s pomocou
programového vybavenia operačnými systémami ako OS/2 alebo Windows. Procesor 80386 môže
pracovať v troch režimoch:
- reálný režim (real mode): veľmi podobný reálnemu režimu predchádzajúcich
procesorov. Používá rovnaký adresovací mechanismus a má rovnakú maximálnu
veľkosť operačnej pamäti (1 MB) ako aj
rovnakú maximálnu veľkosť segmentu (64 kB). V tomto režime
môžu pracovať programy určené prpre predošlé
procesory (8086/8088).
- chránený režim (protected mode): Režim, ktorý je veľmi
podobný chránenému režimu procesora 80286. Šířka adresovej zbernice
v tomto režime je 32 bitov, čo umožňuje adresovať operačnú pamäť
až do kapacity do 4 GB.
|
Schéma adresácie procesora 80386 v chránenom
režime
|
Tento režim znova používa pre tvorbu adresy dve zložky
(selektor, offset). Selektor je znova rozdelený do troch častí,
ktoré
majú rovnaký význam ako u procesora 80286. Na rozdiel od
procesora
80286 je však bázová adresa, která se vyberá z tabuľky deskriptorov
už nie 24bitová, ale 32bitová. Druhým rozdiel
je vo veľkosti offsetu, ktorého veľkosť je u procesora 80386 32 bitov.
Vďaka tomuto zväčšeniu na 32 bitov je možné, aby procesor 80386 adresoval až 4 GB (232B)
operačnej pamäte a aby veľkosť jednoho segmentu byla
taktiež 4 GB.
Jedna položka tabuľky deskriptorov obsahuje:
- bázovú adresu (32 bitov): adresa začiatku segmentu
- limit segmentu (20 bitov): maximálnu
veľkosť segmentu,
která je určovaná buď v bytoch (max. 1 MB), alebo v násobkoch 4 kB
(max. 4 GB)
- přístupové práva k segmentu (8 bitov):
rovnako ako u procesora 80286
- ďaľšia informácia (4 B): napr. výšie
uvedená interpretácia limitu segmentu.
Ďaľším rozdielom od procesora 80286 je, že adresa určená touto schémou
nemusí byť ešte fyzickou adresou
ukazujúcou priamo do operačnej
pamäti, ale je možné, aby bola ďalej transformovaná mechanizmom
zvaným
stránkovánie.
|
Schéma stránkovacieho mechanizmu
procesora 80386
|
32bitová lineární adresa je rozdelená na tri časti:
- Adresár: tvorený najvyššími 10
bitmi, slúži ako index tabuľky zvanej adresár, odkiaľ je vybraná
20 bitová báza tabuľky
stránok.
- Tabuľka: tvorená nižšími 10
bitmi, slúži ako index do tabuľky stránok. Z tejto tabuľky se
vyzvihne 20 bitová báza stránky,
která tvorí 20 nejvyšších bitov fyzickej adresy.
- Offset: tvorený nejnižšími 12
bitmi. Offset sa potom sčíta
s o 12 bitov posunutou (t.j. vynásobenou 4096) bázou stránky tak, že
tvorí nejnižších 12 bitov fyzickej adresy.
Mechanismus stránkovania je spojený s problémom dvoch prístupov do
tabuliek, které sú uložené v operačnej pamäti a prístup k nim môže procesor zdržovať.
Aby sa tento mechanizmus urýchlil má procesor 80386 zabudovánú rýchlu vyrovnávaciu
cache
pamäť ktorá sa nazýva TLB (Translation Lookaside Buffer),
v ktorej sú uchovávané naposledy používané lineárne adresy a k nim
odpovedajúce adresy fyzické.
- virtuálny režim: V tomto režime procesor 80386 pracuje podobne
ako procesor 8086 (8088), ale je plno podriadený chránenému režimu.
Je možné takto virtualizovat 1 MB operačnej pameti, ktorý mohol
adresovať procesor 8086 a uložiť ho na ľubovolné miesto v 4 GB operačnej pamäti.