- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálý volně běžící čítač TCNT, který čítá od 0000 do FFFF. Po
dosažení hodnoty FFFF počítá opět od 0000. Při přechodu z FFFF do 0000 se nastavuje příznak
přetečení TOF a je-li povoleno přerušení od přetečení TCNT (bit TOI v registru ), vyvolá se přerušení.
Zdrojem signálu pro volně běžící čítač může být:
• Výstup z předděliče. Předdělič dělí kmitočet sběrnicový kmitočet jednou z nastavených
hodnot z řady 1, 2, 4, 16, 32, 64, 128.
• Signál PACLK.
• Signál PACLK/256.
• Signál PACLK/65536.
c) Funkce input capture a output compare u časovacího subsystému HCS12 – princip, použití.
Aktuální hodnota, nacházející se ve volně běžícím čítači, je přiváděna po 16-ti bitové sběrnici k osmi
16-ti bitovým registrům. Každý z těchto 8 registrů může být individuálně konfigurován pro funkci
Input Capture nebo Output Compare.
Registry konfigurované jako Input Capture slouží pro zachycení aktuální hodnoty volně běžícího
čítače při příchodu signálu na příslušný vývod spojený s daným registrem. Při zachycení hodnoty do
registru se nastaví příznakový bit. Lze nakonfigurovat vyvolání požadavku na přerušení po nastavení
příznakového bitu. Aktivní hrana signálu, která vyvolá zachycení je volitelná: náběžná hrana, sestupná
hrana nebo obě hrany. Funkce se používá např. pro měření délky impulsu.
Do registrů konfigurovaných pro funkci Output Compare se uloží požadovaná hodnota. Dosáhne-li
volně běžící čítač této hodnoty, komparátor spojený s registrem signalizuje shodu nastavením
příznakového bitu. Opět lze nakonfigurovat vyvolání požadavku na přerušení po nastavení
příznakového bitu. Při dosažení shody též může dojít ke změně logické úrovně na vývodu svázaném s
daným registrem: nastavení do log. 0, nastavení do log. 1 nebo invertování původní hodnoty. Funkce
Output Compare se používá např. pro generování impulsu definované šířky.
BMIC – Mikroprocesory -19-
11. Segmentace. Stránkování, virtuální adresový prostor, překlad adres. Stránkovací jednotka u procesorů
s architekturou IA32 (I386).
a) Segmentace
Segmentace je mechanismus správy paměti, který odpovídá uživatelskému pohledu na paměť. Každý
program obsahuje data (proměnné), instrukce (kód) a zásobník. Uvedené části programu mají své
specifické vlastnosti a lze je považovat za relativně samostatné. Proto je lze od sebe oddělit a lze je
ukládat do samostatných oblastí paměti, které nazýváme segmenty.
Segmenty jsou funkčně samostatné části programu proměnné délky, které lze zavádět do hlavní paměti
v případě potřeby. Logická adresa se skládá z dvojice . Offset určuje posunutí
(vzdálenost) daného paměťového místa od začátku segmentu (báze). Na základě čísla segmentu se
určuje báze (začáteční adresa) segmentu.
Adresy v rámci segmentu jsou relativní vůči bázi segmentu. To umožňuje snadnou přemístitelnost
programů v hlavní paměti. Offset se při přemisťování segmentů nemění.
Mechanismus segmentace předpokládá podporu ze strany procesoru. Báze segmentu může být
uložena:
• V segmentovém registru. Tento způsob byl používán u procesorů I8086 a v současné době je
využit při tvorbě adresy v reálném módu u procesorů s architekturou IA32.
• V tabulkách adresovaných segmentovými registry. Tento způsob je použit při tvorbě adresy v
chráněném módu u procesorů s architekturou IA32.
Správu operační paměti (např. přidělování paměti) provádí operační systém. Z důvodů bezpečnosti
pracuje se segmentovými registry a s tabulkami výlučně operační systém nikoli uživatelský program.
Uživatelský program určuje pouze offsetovou část adresy. Mechanismus segmentace nám umožňuje
snadno přemisťovat jednotlivé segmenty v paměti, sdílet kódový (často nazýván textový) segment více
spuštěnými instancemi stejného programu a dosáhnout úspory kapacity hlavní paměti tím, že se
program může zavádět do hlavní paměti po částech (segmentech).
Segmentace podporuje modulární strukturu programu, tj. fyzické rozdělení programu na datovou,
kódovou a zásobníkovou část.
b) Stránkování
Mechanismus stránkování dělí logický adresovací prostor na stránky stejné velikosti (obvykle
4KB=4096B). Fyzická paměť je rozdělena na rámce (frames). Velikost rámce musí být stejná jako
velikost stránky. Rámce, které se již nevejdou do fyzické paměti jsou odkládány na pevný disk do
speciálního odkládacího souboru (swap file).
Logická adresa se skládá z offsetu, který určuje vzdálenost paměťového místa od začátku stránky resp.
rámce, a čísla stránky. Číslo stránky je indexem v tabulce stránek. Položky tabulky stránek určují
číslo rámce (tj. číslo fyzické stránky). Dále položka obsahuje příznak přítomnosti (obvykle realizován
pomocí 1 bitu) stránky ve fyzické paměti.
Není-li stránka přítomna ve fyzické paměti, procesor obvykle generuje při pokusu přistupovat k takové
stránce přerušení. Operační systém pak musí zajistit přesunutí stránky do fyzické paměti z pevného
disku.
Rozdělení paměťového prostoru na stránky nijak nesouvisí s obsahem dělené paměťové oblasti
(nerozlišují se data, kód, zásobník). Stránky jsou relativně malé, aby je bylo možno relativně rychle
vyměňovat mezi fyzickou pamětí a pevným diskem.
BMIC – Mikroprocesory -20-
c) Virtuální paměťový prostor
Virtualizace paměti znamená oddělení uživatelské logické paměti od fyzické paměti. Programátor
pracuje s tzv. logickými adresami – využívá logický adresový prostor, zatímco hlavní paměť se
adresuje fyzickými adresami. Kapacita hlavní paměti je označovaná jako fyzický adresový prostor.
Během provádění programu postačuje, aby se pouze část programu nacházela ve fyzické paměti.
Logický adresový prostor může být tedy mnohem větší než fyzický adresový prostor.
Virtuální paměť umožňuje realizaci jednoho nebo několika logických (virtuálních) adresových
prostorů, z nichž každý může být větší než je skutečná kapacita hlavní paměti. Virtuální paměť může
být realizována pomocí:
• Stránkování na žádost.
• Segmentace na žádost.
Při stránkování na žádost se stránka zavádí do paměti, jen když je třeba. Dokud nevznikne potřeba s
danou stránkou pracovat, stránka se do paměti neukládá. Tím se zmenší potřebná velikost fyzické
paměti a počet I/O operací, dosáhne se rychlejší odezvy a zvýší se počet uživatelů, kteří mohou se
systémem současně pracovat (případ serverů). Zjistí-li procesor při přístupu ke stránce, že se daná
stránka nenachází v paměti (pomocí bitu přítomnosti v tabulce stránek), vyvolá se přerušení a operační
systém se spolu s hardwarovými prostředky postará o natažení stránky do paměti.
Segmentace na žádost se používá v případě, když procesor neposkytuje dostatečnou hardwarovou
podporu pro stránkování na žádost. Operační systém alokuje paměť po segmentech to znamená, že
udržuje seznam deskriptorů segmentů. (To je případ OS/2.) Deskriptor segmentu obsahuje bit
přítomnosti segmentu v paměti. Při přístupu k segmentu, který není aktuálně umístěn v paměti se
vyvolá přerušení „výpadek segmentu“ a operační systém musí segment natáhnout do paměti.
d) Stránkovací jednotka u procesorů s architekturou IA32 (I386).
Procesory IA32 umožňují v chráněném režimu dvě úrovně transformace adres: segmentaci a
stránkování. V první úrovni segmentační jednotka vytváří z logické adresy, tvořené selektorem a
offsetem, za pomoci deskriptoru lineární adresu. Ve druhé úrovni je lineární adresa stránkovací
jednotkou transformována na fyzickou adresu, která již přímo ukazuje do fyzické paměti.
Stránkování je u IA32 povinné, segmentace je nepovinná a lze ji vypnout. Naopak u IA32e je v 64
bitovém módu stránkování povinné.
Stránkováním je u IA32 realizován mechanismus virtualizace paměti. Virtuální adresový prostor je
rozdělen do stránek (pages) o malé velikosti např. 4KB. Stránkám odpovídají rámce (frames) fyzické
paměti. Velikost stránky a rámce je stejná. Fyzická paměť se po rámcích propůjčuje na dočasné
uložení stránek virtuální paměti.
BMIC – Mikroprocesory -21-
Proces nemusí být celý umístěn v paměti, aby mohl běžet. V paměti musí být umístěna jen ta část
adresového prostoru procesu, kterou právě používá. Zbytek může být odložen do
předem vyčleněné oblasti na disku. V případě potřeby jsou stránky načítány z odkládacího prostoru na
disku zpět do rámců ve fyzické paměti. Naopak v případě nedostatku fyzické paměti jsou aktuálně
nepotřebné rámce uvolňovány z fyzické paměti a odkládány na disk do odkládacího prostoru.
Mechanismus virtualizace paměti nám umožňuje adresovat větší paměťový prostor než je kapacita
fyzické paměti RAM. Stránky, které nejsou modifikovány (např. obsahují kód programu) není nutno
zpět zapisovat na disk, jsou pouze ze swap file načítány. Naopak modifikované stránky (např. data)
musí být při uvolňování z fyzické paměti vždy zapsány na disk.
Stránkování je v IA32 realizováno pomocí dvou tabulek: stránkového adresáře (Page Directory) a
stránkové tabulky (Page Table). Tabulky obsahují 1024 položek o velikosti 32b, tzv. specifikátorů.
Velikost každé tabulky je 4KB tj. jedna stránka.
Lineární adresa (32b) je rozdělena na tři části:
• Adresář (10b).
• Tabulka (10b).
• Offset (12b).
Stránkový adresář je v daném okamžiku v systému právě jeden. Každý proces má vlastní stránkový
adresář. Vybraná položka stránkového adresáře (pomocí pole adresář lineární adresy) ukazuje na
začátek stránkové tabulky. Položka stránkové tabulky, vybraná částí lineární adresy tabulka, ukazuje
na začátek 4 KB rámce ve fyzické paměti. K němu se přičte 12-ti bitový offset, čímž získáme fyzickou
adresu v paměti.
BMIC – Mikroprocesory -22-
12. Tvorba adresy v reálném a chráněném módu procesorů s architekturou IA32 (I386), selektor,
deskriptor, LDT, GDT, úrovně oprávnění.
a) Tvorba fyzické adresy u IA-32 v reálném módu
Reálný mód odpovídá až na malé výjimky tomu, jak fungovaly 16 bitové procesory I8086. Procesory s
klasickou IA-32 architekturou po resetu vždy začínají pracovat v reálném módu. Do chráněného módu
je třeba procesor následně přepnout. U procesorů IA32e je reálný mód zahrnut v legacy IA-32 módu.
V reálném módu je pro převod z logické adresy na fyzickou využíván pouze mechanismus
segmentace. Stránkovací jednotka je v reálném režimu vypnuta a nelze ji zapnout. Logická adresa je
tvořena dvojicí číslo segmentu:offset. Číslo segmentu se nachází v příslušném segmentovém registru
(CS, DS, ES, SS) , offset je dán adresovou částí instrukce (viz. kapitola 7.2.4). Na vývodech procesoru
je však k dispozici 20-ti bitová fyzická adresa, která se vytváří tak, že se obsah segmentového registru
posune o 4 bity doleva (tím dostaneme 20-ti bitovou fyzickou adresu začátku segmentu) a k mí se
lineárně přičte offset. Tak je vytvořen rozsah fyzických adres 0 až 0FFFFFH, tj. 0 až 1MB.
Např. logická adresa 21A3:0431 představuje fyzickou adresu 21A30 + 00431=21E61.
b) Tvorba adresy v chráněném módu
V chráněném režimu, stejně jako v reálném, je adresa tvořena offsetem a obsahem segmentového
registru. V chráněném režimu je význam offsetu stejný jako v reálném režimu. Offset je dán efektivní
adresou vytvořenou podle adresovacích metod popsaných v kapitole 7.2.4. U IA32 je offset 32 bitový,
u IA32e má v 64-bitovém módu offset velikost 64 bitů. Interpretace obsahu segmentového registru se
v jednotlivých módech diametrálně liší.
V segmentovém registru je uložen tzv. selektor, který obsahuje ukazatel do tabulky popisovačů
(deskriptorů) segmentů. Položky této tabulky – deskriptory obsahují bázi segmentu (32 bitů), limit
segmentu (16 bitů) a přístupová práva (8 bitů). Dvojice selektor – offset tvoří tzv. logickou adresu a
umožňuje adresovat až 64 TB virtuální adresy. Přičtením offsetu k bázi segmentu dostaneme 32-ti
bitovou (adresuje 4GB) lineární adresu. Není-li zapnuta stránkovací jednotka, lineární adresa ukazuje
již přímo do fyzické paměti a je totožná s fyzickou adresou.
Při zapnuté stránkovací jednotce vznikne fyzická adresa teprve transformací lineární adresy na
fyzickou adresu za pomoci adresářové a stránkové tabulky.
Existují dva typy tabulek deskriptorů – globální a lokální. GDT (Global Descriptor Table) nese
informace, vztahující se na všechny procesy. LDT popisuje lokální adresovací prostor pouze jednoho
procesu.
16-ti bitový selektor se skládá z:
• 13-ti bitového ukazatel do tabulky popisovačů,
• bitu TI (Table Indicator), který určuje, zda se použije GDT (TI=1) nebo LDT (TI=0),
• dvou bitů, RPL (Requested Privilege Level). RPL určuje úroveň oprávnění, kterou proces nabízí při
přístupu k segmentu.
BMIC – Mikroprocesory -23-
c) Deskriptory
Každá tabulka GDT nebo LDT může maximálně obsahovat 2
13
= 8196 deskriptorů. Velikost
deskriptoru je 8 Bytů. Deskriptor obsahuje:
• Limit segmentu (20b).
• Bázi segmentu (32b).
• Byte přístupová práva. Má různých obsah dle typu deskriptoru.
• Bit AVL (Available for Programmer Use). Bit s nespecifikovaným významem. Je plně k
dispozici operačnímu systému, který jej může používat dle vlastních potřeb.
• Bit s. Jeho význam se liší dle typu deskriptoru.
• Bit G (Granularity). Určuje v jakých jednotkách je položka limit. Při G=0 je limit v
jednotkách 1B a segment může mít maximální velikost 1MB. Je-li G=1, jednotkou limitu
jsou 4KB (velikost segmentu je v násobcích 4KB) a maximální velikost segmentu jsou 4GB.
Typy deskriptorů segmentu:
• Deskriptor datového segmentu.
• Deskriptor instrukčního segmentu.
• Deskriptor systémového segmentu.
• Deskriptor pro bránu.
Typ deskriptoru je určen obsahem Bytu přístupová práva.
GDT (Global Descriptor Table) nese informace, vztahující se na všechny procesy.
LDT popisuje lokální adresovací prostor pouze jednoho procesu.
d) Úrovně oprávnění.
Procesory I386 mají čtyři úrovně oprávnění (Privilege Level). Úrovně jsou označovány jako 0, 1, 2, 3.
Procesy běžící na úrovni číslo 0 mají nejvyšší úroveň oprávnění, zatímco procesy na úrovni číslo 4
mají nejnižší úroveň oprávnění.
Zpřístupnění datovému segmentu
Proces může přistupovat k datovému segmentu, má-li úroveň oprávnění rovnu nebo vyšší než je
úroveň oprávnění, přidělená datového segmentu. Úroveň oprávnění, přidělená datovému segmentu je
uložena ve dvou bitech DPL deskriptoru datového segmentu. Úroveň oprávnění procesu CPL je
zapsána ve dvou bitech selektoru kódového segmentu, označených RPL. Musí tedy platit CPL ≤ DPL
Úroveň oprávnění procesu můžeme však uměle snížit pomocí hodnoty uložené ve dvou bitech RPL
datového segmentového registru, pomocí něhož chceme k datovému segmentu přistupovat. Snížení
BMIC – Mikroprocesory -24-
úrovně oprávnění dosáhneme uložením numericky vyšší hodnoty do RPL datového segmentového
registru než je CPL (bity RPL v selektoru kódového segmentu). Z toho plyne: RPL ≤ DPL. Obě
podmínky spojíme v jednu: EPL ≤ DPL
Kontrola oprávněnosti přístupu se provádí vždy, když je naplněn segmentový registr, např. instrukcí
MOV DS,AX .
13. Programátorský model procesorů s architekturou IA32 (I386), význam a použití jednotlivých registrů.
Architektura procesorů Pentium P6.
a) Programátorský model procesorů s architekturou IA32 (I386)
Přehled registrů IA-32e v jednotlivých módech je uveden v následující tabulce:
• Registry pro všeobecné použití
Procesory bez EM64T rozšíření nebo procesory s EM64T rozšířením, ale pracující v původním IA-32
(legacy) módu či kompatibilním módu mohou používat 8 registrů pro všeobecné použití (GPR
registers). Pro operandy o velikosti 16 bitů jsou k dispozici registry AX, BX, CX, DX, DI, SI, BP, SP.
Registry EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP.
V 64 bitovém módu je implicitní velikost operandu 32 bitů. Avšak GPR registry jsou schopny pracovat
s 32 i 64 bitovými operandy. Je-li specifikován 32 bitový operand, jsou k dispozici registry EAX, EBX,
ECX, EDX, EDI, ESI, EBP, ESP, R8D-R15D. Pro 64 bitové operandy lze používat registry RAX, RBX,
RCX, RDX, RDI, RSI, RBP, RSP, R8-R15. Registry R8-R15 představují nové GPR registry pro
EM64T. Se všemi registry lze pracovat na úrovni byte, word, dword, qword.
Poznámka : Při 8 bitovém přístupu používá označení (AL, BL, CL, DL, SIL, DIL, BPL, SPL, R8L –
R15L). Pak pracuje s bity 7 - 0 příslušných registrů. Existuje ještě 8 bitový přístup k bitům 15 – 8
registrů RAX , RBX, RCX, RDX. Pak používáme označení AH, BH ,CH, DH. Pro 16 bitový přístup
(bity 15 - 0) používáme označení AX, BX, CX, DX, SI, DI, BP, SP, R8 –R15.
Všeobecné registry jsou určeny především pro ukládání operandů a výsledků aritmetických a logických
operací. Některé všeobecné registry mají navíc speciální použití:
• Registr ECX slouží jako čítač počtu průchodů cyklem pro instrukce typu LOOP.
BMIC – Mikroprocesory -25-
• Registr DX je použit pro operace typu IN, OUT přistupující do V/V prostoru. Do DX se ukládá číslo
V/V kanálu, se kterým se má pracovat.
• Registr SI (Source Index) slouží pro zadání offsetové části zdrojového operandu zatímco registr DI
(Destination Index) určuje offsetovou část cílového operandu např. při operacích přesunu (např.
instrukce MOVS).
• Registr SP ukazatel zásobníku.
• Segmentové registry
Procesory IA-32/IA-32e mají 6 segmentových registrů:
• CS (Code Segment) – segmentový registr pro kódový (instrukční) segment.
• DS (Data Segment), ES (Extra Segment), FS, GS – segmentové registry pro datové segmenty.
• SS (Stack Segment) – segmentový registr pro zásobníkový segment.
Segmentové registry obsahují segmentovou část adresy. Interpretace obsahu segmentového registru je
závislá na módu činnosti procesoru.
b) Architektura procesorů Pentium P6
Procesory řady Intel P6 mají třícestně (three-way) superskalární, zřetězenou (pipelined) architekturu.
Třícestně superskalární architektura (paralelně pracující jednotky) umožňuje, aby procesor dekódoval,
připravil a kompletně vykonal průměrně tři instrukce za jeden hodinový cyklus. Pro dosažení vysoké
rychlosti provádění instrukcí využívají procesory Intel P6 dvanáctistupňové zřetězení, které podporuje tzv.
out-of-order vykonávání instrukcí. To znamená, že instrukce nemusí být vykonávány v takovém pořadí,
v jakém byly do procesoru načteny. Integrita dat však musí zůstat zachována
Z hlediska zřetězení lze Procesory Intel P6 rozdělit na čtyři jednotky:
• Fetch/Decode Unit (jednotka načítání a dekódování instrukcí).
• Dispatch/Execute Unit (jednotka pro přidělování mikrokódu a provádění instrukcí).
• Retire Unit (jednotka pro vracení dat do registrů nebo do paměti).
• Instruction Pool (banka dekódovaných instrukcí).
Je třeba poznamenat, že každá z výše uvedených jednotek je sama dále zřetězena.
Vloženo: 11.06.2009
Velikost: 701,41 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Mohlo by tě zajímat:
Skupina předmětu BMIC - Mikroprocesory
Reference vyučujících předmětu BMIC - Mikroprocesory
Podobné materiály
- BRPV - Rádiové přijímače a vysílače - vypracovane okruhy ke zkousce
- BVEL - Výkonová elektronika - okruhy otazek
- BEL1 - Elektrotechnika 1 - Okruhy témat ke zkoušce 05
- BFY1 - Fyzika 1 - Okruhy na semestrálku
- BMVE - Měření v elektrotechnice - Okruhy otázek ke zkoušce 08
- BFY2 - Fyzika 2 - Tahák z vypracovaných otázek
- BSHE - Studiová a hudební elektronika - přehled otázek1
- BSHE - Studiová a hudební elektronika - přehled otázek2
- BEL2 - Elektrotechnika 2 - souhrnotazek1
- BEL2 - Elektrotechnika 2 - souhrnotazek
- BEL2 - Elektrotechnika 2 - souhrotazek3
- BEL2 - Elektrotechnika 2 - souhrnotazek4
- BEL2 - Elektrotechnika 2 - souhrnotazek5
- BEL2 - Elektrotechnika 2 - souhrnotazek6
- BVNP - Vysoké napětí a elektrické přístroje - Zadání otázek k půlsemstrálce
- BESO - Elektronické součástky - AKTUALNÍ SEZNAM OTÁZEK PRO ROK 2010
- BMVA - Měření v elektrotechnice - BMVA - soupiska testových otázek
- BPSM - Plošné spoje a povrchová montáž - Vypracovani otazek 2012
- BVEL - Výkonová elektronika - Vypracovani otazek 2012
- XAN4 - bakalářská angličtina 4 - Zápočtový test - 280 otázek
Copyright 2025 unium.cz


