Vnitřní a vnější paměti Část: vnitřní paměti

Podobné dokumenty
Vnitřní a vnější paměti Část: vnitřní paměti

Metody připojování periferií BI-MPP Přednáška 2

Přidělování paměti II Mgr. Josef Horálek

Systém adresace paměti

Logická organizace paměti Josef Horálek

Paměťový podsystém počítače

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Struktura a architektura počítačů (BI-SAP) 11

Procesor z pohledu programátora

09. Memory management. ZOS 2006, L.Pešička

Memory Management vjj 1

Technické prostředky počítačové techniky

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Operační systémy 2. Přednáška číslo 2. Přidělování paměti

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Operační systémy. Přednáška 8: Správa paměti II

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Správa paměti. Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Architektury počítačů a procesorů

Memory Management vjj 1

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Mezipaměti počítače. L2 cache. L3 cache

Počítačová sestava paměti, operační paměť RAM

Základní pojmy informačních technologií

Adresní mody procesoru

Profilová část maturitní zkoušky 2014/2015

2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS

Princip funkce počítače

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Segmentovanie a stránkovanie v procesoroch Intel Pentium

Souborové systémy. Architektura disku

Architektura procesoru ARM

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Profilová část maturitní zkoušky 2015/2016

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Vysoké učení technické v Brně Fakulta informačních technologií ITP Technika personálních počítačů Služby ROM BIOS a BootROM

Přerušovací systém s prioritním řetězem

ORGANIZACE A REALIZACE OPERAČNÍ PAMĚTI

Paměti Josef Horálek

Paměťová hierarchie. INP 2008 FIT VUT v Brně

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

OPS Paralelní systémy, seznam pojmů, klasifikace

Pohled do nitra mikroprocesoru Josef Horálek

Management procesu I Mgr. Josef Horálek

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Struktura a architektura počítačů (BI-SAP) 10

Vývoj principů adresování operační paměti Princip adresování paměti - mikroprocesor I8086

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška IV. 18. listopad, / 41

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Petr Krajča. 25. listopad, 2011

Úvod do architektur personálních počítačů

2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Linux a 64 bitů. SUSE Labs. Michal Ludvig Vojtěch Pavlík

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

OS Správa paměti. Tomáš Hudec.

Vstupně - výstupní moduly

Systém souborů (file system, FS)

Přidělování zdrojů (prostředků)

Fz =a z + a z +...+a z +a z =

Počítač jako prostředek řízení. Struktura a organizace počítače

Téma 6 Správa paměti a její virtualizace

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

Strojový kód. Instrukce počítače

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Integrovaná střední škola, Sokolnice 496

PRINCIPY OPERAČNÍCH SYSTÉMŮ

3. Počítačové systémy

Operační systémy 1. Přednáška číslo Struktura odkládacích zařízení

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Informační a komunikační technologie

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Z čeho se sběrnice skládá?

DUM 11 téma: Úvod do příkazové řádky

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Číselné soustavy. Binární číselná soustava

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Technika personálních počítačů, cvičení ITP Služby ROM BIOS a BootRom

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Petr Krajča. 26. říjen, 2012

Procesy a vlákna (Processes and Threads)

Transkript:

Vnitřní a vnější paměti Část: vnitřní paměti Cíl kapitoly Tato kapitola navazuje na kapitolu stejného jména, která se zabývá základními rysy zejména vnějších pamětí. Cílem této kapitoly je porozumět a umět využívat vnitřní paměti počítače včetně nástinu i historie pamětí. Klíčové pojmy: AB, adresová sběrnice, BIOS, Cache, CMOS, deskriptor table, EMS, frame, fyzická adresa, GDT, granularita, index, instruction pointer (IP), konvenční paměť, LDT, legacy mode, lineární adresa, logická adresa, long mode,op. operační paměť, protected mode, real mode, ROM, segment selektor, stránka, swap, task state segment, virtuální adresa, virtuální paměť, XMS Úvod Vnitřní paměti počítače jsou paměti, které přímo využívá procesor ke své činnosti. Nejdůležitější z nich je operační paměť,kterou se budeme převážně zabývat, dále paměť s uloženým BIOSem nazývaná ROM nebo ROM-BIOS a pamsť s uloženou konfigurací počítače nazývaná podle technologie CMOS. Paměti, které jsou součástí procesorů nebo jednotlivých periferií se v této kapitole zabývat nebudeme, vyjma vyrovnávací paměti CACHE.

Operační paměť Operační paměť je polovodičová paměť typu RAM (Random Access Memory), a proto se také nesprávně nazývá jako paměť RAM. Velikost možné operační paměti (dále jen OP) je dána typem procesoru a operačním systémem- U procesorů I8086, které měly jen 20bitovou adresovou sběrnici (dále AB address bus) byla maximální paměť 1MB (možnost adresovat paměť velikosti 2 20 ). Z této paměti byla pro programy, spolupráci s diskovými pamětmi, pro přerušení apod. k dispozici část paměti o velikosti 640kB která se nazývala konvenční paměť. U procesorů odpovídajícím I80286 byla sběrnice AB rozšířena na 24 bitů, a tedy maximální paměť mohla být 2 24 B = 16MB. U dnešních procesorů, pokud se používají ještě operační systémy obdobné DOSu (resp. založené na DOSu), stále je důležitá oblast konvenční paměti. U procesorů I80386 a vyšších je AB velikosti 32b a tedy max OP je 4GB. Pozdější procesory pentium mohly mít paměť 2x4GB. U 64 bitových procesorů je paměť dána aktivní části AB, která je většinou 40b, 48b. V budoucnu se počítá se šířkou sběrnice 64 bitů. Podle způsobu adresování rozlišujeme paměti Expanded EMS - to je paměťový prostor nad 1MB, který nelze přímo adresovat z AB Extended XMS - paměťový prostor nad 1MB, který lze přímo adresovat z AB, to znamená, že AB je dostatečně široký. Dnešní procesory se spouští v režimu real mode reálný režim to je jako základní procesor I8086, a tedy při spouštění je zapotřebí paměť jen velikosti 1MB. Teprve OS (operační systém) přepíná procesor do pracovního módu - obvykle protected mode chráněného režimu. Rozdělení operační paměti Pro činnost počítače je důležitý OS, který musí být natažen v OP. Tento OS zabírá v operační paměti několik MB, a to většinou nejvyšších adres. Mimo OS musí OP obsahovat tabulku vektorů přerušení, stack (pro každý spuštěný program zvlášť), disk buffers pro komunikaci jednotlivých programů s disky,

prostor pro CMOS paměť, BIOS, stínové paměti (opis pomalých pamětí jako je BIOS do 32b verze, aby program běžel rychleji) atd. Adresování operační paměti Adresování v real mode Jak již bylo uvedeno, real mode je používán při startu procesoru tj. v POSTu. Adresová sběrnice má v tomto režimu šířku 20ti bitů, používané registry jsou 16ti bitové. Proto je nutné vypočítat fyzickou adresu zasílanou po sběrnici. Vstupem k výpočtu je tzv. viruální neboli logická adresa. Tato adresa se sestává z segmentové části (obsažená v segmentových registrech procesoru (CS, SS, DS nebo ES) a v registru Instruction pointer (IP). Obsah IP je prakticky záležitostí programátora (po překladech a linkování), kdežto o segmenty se stará procesor s operačním systémem. Operační paměť musí být dělena na menší části, aby bylo možné v různých situacích nahrávat program (data) do rozdílných částí paměti. Vzhledem k 16ti bitovému IP v tomto režimu, ve kterém se nachází offset v rámci segmentu, může být velikost segmentu maximálně 2 16 B, tj. 64kiB (64kB informatických). V segmentovém registru je uloženo číslo segmentu. Pak výstupní neboli fyzická adresa se vypočítá (zjednodušeně, neboť adresa může mít více komponent) podle následujícího schématu (zapsáno binárně) code segment ssss ssss ssss ssss code segment krát 16 ssss ssss ssss ssss 0000 IP (offset) ffff ffff ffff ffff fyz. adresa aaaa aaaa aaaa aaaa aaaa Kde ssss bity obsahu segmentového registru ffff - bity obsahu instuction pointru (offset) aaaa bity vypočtené fyzické adresy (součet CSx16 + IP) Výsledná fyzická adresa se zasílá na adresovou sběrnici. Příklad: Obsah CS je 16A4H, IP je 4046H. Jaká je fyzická adresa?

16A40 + 4046 1AA86 Fyzická adresa je 1AA86H. Adresování v protected mode Adresování protected modu probereme podrobněji pro I80386 a vyšší. Původně byl protected mod určen pro procesory 80286, kdy byla zvětšena operační paměť na 16MB a zejména kvůli umožnění multitaskingu. U multitaskingu, kdy procesor pracuje navíce úlohách jejich rychlým přepínáním, musí procesor zajistit izolovanost částí paměti určených pro jednotlivé úlohy, aby nedošlo k jejich promíchání. Proto tento režim se také nazývá protected mode neboli chráněný režim. Postup při adresování 64bitových procesorů probereme samostatně. Adresa v chráněném režimu, stejně jako v reálném, je složena ze dvou složek. Složka první odpovídající segmentovému registru je 16ti bitová, druhá složka vytvářející offset v rámci segmentu je 32bitová (u I80286 jen 16ti bitová). První složku nazýváme Segment Selector (stručně selector). Vstupní adresa, která je tedy složená ze selektoru a offsetu, se nazývá virtuální adresa. Selector je 16ti bitové slovo, které obsahuje 13 bitů pro index (možných 8192 kombinací indexu). Tento index určuje řádek v Descriptor Table - tabulce popisovačů lokálního nebo globálního prostoru. Zbývající 3 bity určují, zda se právě jedná o globální nebo lokální prostor (bit TI), a 2bity nazvané RPL určují úroveň oprávnění přístupu k danému segmentu. Tyto bity RPL tedy určují 4 úrovně přístupu k záznamům. Úrovení 0 je označen přístup k operačnímu systému, který řídí obvodové funkce mikroprocesoru a spravuje paměť. Některé instrukce - privilegované - mohou pracovat pouze na této úrovni ochrany. Úroveň 1 obsahuje všechny rutiny pro správu systému pomocí OS. Úroveň 2 je určena pro zpracování knihoven, kartoték apod. Úrovní 3 jsou přístupny jen uživatelské programy. Globální prostor je prostor, ve kterém jsou obvykle programy nebo proměnné přístupné více uživatelům. Ochranná funkce tedy zaručuje oddělení systémového a uživatelského software, kontrolu typu dat a oddělení jednotlivých úloh.

Ochranné atributy jsou společné pro celý segment. Srovnání probíhá současně s překladem adresy. Lokální prostor je obvykle určen jen pro umísťování jedinečných dat. Globální tabulka deskriptorů GDT ukazující na globální prostor má stejně jako Lokální tabulka deskriptorů, která ukazuje na lokální prostor celkem 64kB, což je maximální velikost základního segmentu (velikost odvozených segmentů byl u pozdějších procesorů zvětšen na násobky, u pentia až 2GB). Virtuální neboli logická adresa má tedy 48 (32 u I286) bitů a je z ní vytvářena fyzická 32 (u I286 24) bitová adresa. Výpočet adres v tomto módu se nazývá segmentace v protected modu. Výstupem segmentace je vždy lineární adresa. Pokud po segmentaci nenásledují další výpočty adres (stránkování bude probráno v následujícím paragrafu) je tato adresa fyzická adresa, tedy adresa, která je vysílána na adresovou sběrnici AB. Segmentace VIRTUÁLNÍ (logická)adresa Selektor TI RPL OFFSET REÁLNÁ PAMĚŤ 15 Index 3 2 1 0 31 (15) 0 GDT (LDT) 16MB 1023 ofset 32 (16) Index 13 32 (24) 32 ( 24) GDTR Lineární adresa (fyzická adresa) báze segmentu

Popis činnosti (obrázku) údaje v závorkách platí pro I80286, nezávorkované jsou společné nebo pro procesory I80386 až po první pentia. Pro pentia vyšší generace je segmentování poněkud odlišné. Index v selektoru ukazuje na odpovídající řádek v LGT nebo GDT podle hodnoty bitu TI v selektoru. Každý řádek má 8B, z toho 4B (3B) určují bázi tj. počáteční adresu segmentu, v němž se nachází hledaná informace 3B (2B) určují limit, tj. skutečnou velikost segmentu. Před dalším výpočtem je nutné zkontrolovat offset, zda není větší než limit. V těchto případech by hledaná data byly v jiném segmentu a možná dokonce by patřila jiné úloze. 1B práva. Tato práva jsou určena RPL právy a také atributy souborů (read only, hiden, archivní atd) 0B (2B) rezerva (base 24-31 a AV seg lim) 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 0 base 24 31 AV seg.lim p DPL S type base 16 23 baze limit TABULKA DESKRIPTORŮ GDT nebo LDT Na řádku tabulky se vyhledá patřičný segment, v němž se informace nachází. Počáteční adresa tohoto segmentu je dána hodnotou BASE. Po kontrole zda offset není větší než limit se offset sečte s bází a vytvoří hledanou lineární v našem případě i fyzickou adresu pro operační paměť. Na této adrese se nachází hledaná informace. Pokud kontrola limitu a offsetu nevyjde, zahlásí OS chybu s oznámením, že nastala chyba na adrese segment:offset. Segmentace u pentia Vstupy pro segmentaci jsou shodné se všemi 32 bitovými procesory. Aby bylo možné vytvářet větší segmenty zavádí se tzv. granularita zrnitost. Granularita znamená, že v tabulkách velikosti limitu. 8B řádku v tabulce deskriptorů vypadá následovně. Báze je opětně vyjádřena 32 bity, limit pouze 20 (16+4) bity. O velikosti segmentu rozhodují bity D/B do 64kB nebo až do 4GB a bit G granularita (buď po bajtech nebo po 4kB). Práva jsou rozšířena o další 4b tedy na 12 bitů.

31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 0 base 24 = 31 G D 0 AV seg.lim p DPL S type base 16 = 23 B L base 0-15 seg: limit 0-15 kde AVL - uživatelsky softw. Přístupný BASE - base segmentu D/B DPL G LIM P - 0-16 bitový segment 1-32 bitový segment - Přístupová úroveň Deskriptoru (descriptor privilege level) - Granularity - zrnitost 0 - v bytech - segment limit - segment present ( využitý) 1 - po 4kBytech S - typ deskriptoru 0 - system, 1 - aplikace Type - 16 typu segmentu: RO,R/W, Executable,atd. Modely segmentace paměti 1. Flat Model (jednoduchý model) vhodný pro UNIX, který nepodporuje segmentaci, ale pouze stránkování. Tento model je užíván i u jednoduchých krátkých úloh, které eliminují far-point a jsou prováděny samostatně. Proto každý segment má počáteční adresu 0, a limit 4GB. V rámci segmentu je kód zapisován na vrchol paměti (od 4GB dolů), a data od adresy 0 nahoru. Velmi rychlý mód, protože se nepřepočítává segment. 2. Protected Flat Model vhodný pro nestrákované paměti, protože poskytuje minimum chránění v paměti. Délka segmentu již odpovídá délce použité paměti aplikace. Kontroluje délku segmentu a tím zpomaluje chod, ale zároveň chrání před vyjímkou zásahu do prázdné paměti. 3. Multisegment Mode Každý program má svou vlastní tabulku segment descriptorů a vlastní segmenty (více segmentů pro program). Naráz je k dispozici 6 segmentů (volány z CS, ES, SS, DS, FS a GS registru). Registry pro tabulky deskriptorů Pro GDT a IDT (Interrupt deskriptor table) existují speciální registry GDTR a IDTR obsahující 32 bitovou bázi tabulky a 16ti bitový limit. To znamená, že skutečná délka

tabulky je 8*limit-1. Pro čtení a zápis do těchto registrů slouží instrukce SGDT, LGDT, SIDT, LIDT. Registr LDTR pro LDT má stejnou strukturu jako položka této tabulky. Ovládací instrukce jsou SLDT a LLDT. Stránkování V dnešní době je nutné na adresaci paměti navazovat další funkce jako je např. vytváření virtuální paměti. Pro zavedení této funkce je segmentace v protected modu nevyhovující a zavádí se další stupeň adresování, který navazuje na segmentaci a to stránkování. Na rozdíl od segmentace, kdy segment má proměnnou délku stránka má vždy konstantní délku a to obvykle 4kB. Pak pro práci se stránkou stačí si zapamatovat pouze číslo stránky. Při stránkování je převáděna lineární adresa (výstup ze segmentace) podle dvoustupňových tabulek na fyzickou. Pokud tato tabulka převod neumožní, je vyvolána vyjímka (přerušení), které swapuje stránku z disku za jinou, nepoužívanou stránku v paměti, a pak je vyvolána znovu instrukce, která způsobila výjimku. Není li zapnuto stránkování (31.bit -PG registru CR0) pak je lineární adresa považována za fyzickou. Dnes ale už všechny procesory pracují ve stránkovacím režimu s délkou stránky 4kB, 8kB nebo více. Zde bude objasněn princip stránkování pro 4kB stránky. Lineární adresa je pro účely stránkování rozdělena na 3 části 10b 10b 12b adresář tabulka offset 31 22 12 0 DIR- (adresář) TABLE OFFSET 10bitů 10bitů 12bitů Z toho plyne, že 12b offset umožňuje velikost stránky 2 12 B= 4kB. Vytváření fyzické adresy je shodné pro všechny 32b procesory.

Logická adresa Selektor TI RPL OFFSET 15 Index 3 2 1 0 31 0 GDT 32 13 32 32 GDTR Lineární adresa Adresář Tabulka Offset 31 22 12 0 Fyzická 1023 1023 10 10 paměť stránkový stránkovací adresář tabulka 12 20 32 > 0 31 0 31 0 DBAR

Vytvoření lineární adresy je popsáno u segmentace. Lineární adresa se dělí na 3 části. První ukazuje na řádek adresářové tabulky, druhá na řádek stránkovací tabulky a třetí je offset posunutí od počátku stránky. Tabulky mají po 1k řádků a na každém řádku jsou 4B. Obsahem řádku je číslo stránky mající 20b a práva 12b. Těchto 12b se liší u stránkovací a adresářové tabulky prakticky jen bity 6 (obsazeno) a 7 a 8 délka stránky. Z našeho hlediska je důležitý bit, který nám říká, zda číslo stránky je skutečně číslo stránky v OP nebo zda se jedná o frame ve virtuální paměti. Adresářová tabulka udává číslo stránky stránkovací tabulky, kde jsou uloženy čísla stránek patřící danému souboru. Počáteční adresa tabulky je hodnota uvedená jako číslo stránky doplěné 12 nulami ve dvojkové soustavě. Totéž platí i pro čísla stránek ze stránkovací tabulky. Adresa dat v paměti se vypočte součtem počáteční adresy stránky a offsetu. Protected multitasking Mode Práce s více tasky je obdobná jako při volání procedur, ale je nutné si zapamatovat více informací. Procesor neukládá všechny informace do stacku, ale do vyčleněné paměti nazývané Task State Segment. Přerušení v protected modu Při přerušení procesor vyhledává v IDT (Interrupt Descriptor Table) offset a selector pro GDT k určení adresy obslužné procedury. V IDT hledá adresu, která je osminásobek čísla přerušení (descriptor IDT má opět 8Bytů). Virtuální paměť Operační paměť je skoro vždy malá pro nainstalované programy. Proto se rozšiřuje o tzv. virtuální paměť, kam procesor odkládá momentálně nepotřebné stránky z OP. Zásadní myšlenkou virtuálních pamětí je využít levnější sekundární paměti pro účely paměti primární. Sekundární paměť je pro tyto účely rozdělena na rámce - frame, které jsou podle potřeby přesouvány (swap) do operační paměti. V případě, že počet volných stránkových rámců se blíží k nule, procesor automaticky uvolní ty rámce, které nejdéle nepotřeboval. To znamená, že tyto rámce opět uloží na původní místo na disku. Pro uživatele se tak vytváří dojem, že operační paměť má velikost celé sekundární paměti (do 4GB).

SWAPOVÁNÍ Přesouvání dat z operační paměti do virtuální paměti a naopak se nazývá swapování. Virtuální paměť, neboli swap, je obvykle paměť tvořena samostatným logickým diskem nebo je na jednom logickém disku (Linux) vytvořen swapovací soubor, který má být souvislý(windows). Minimální velikost swapovacího prostoru by měla být dvojnásobná než je velikost OP. U Linuxů, Unixů je swapovací prostor tvořen samostatným logickým diskem bez souborového systému. Swapovací disk nepotřebuje file systém, neboť se swapují vždy celé stránky (konstantní velikosti) a stačí si pamatovat jen jejich pořadí číslo frame. Frame má velikost stránky a orientace na disku je tedy jen podle čísel framů (rámců). Proto podmínkou pro swapování je stránkování paměti. Na každém řádku stránkovací nebo adresářové tabulky je příznak, zda je zde uloženo číslo stránky nebo frame. Tyto údaje se přepisují vždy po úspěšně provedené výměně (swapu) dat. U OS windows je místo swapovacího disku využit swapovací soubor. Swapovací soubor je sice pomalejší, ale jeho velikost je snadněji měnitelná. Jeho vnitřní organizace odpovídá swapovacímu disku u Linuxu, tj. odložené stránky jsou evidovány podle pořadového čísla ve swapovacím souboru, tedy podle čísla frame. Swapovací soubor se vytváří vždy při spouštění OS a jeho velikost je omezena v konfiguraci počítače. Podmínkou pro swapování je, jak již bylo řečeno, zapnuté stránkování. Ve stránkovací tabulce najde OS stránky, které nejdéle nepoužíval. Pak najde volné místo ve swapovacím prostoru a celou stránku odloží. V tabulce zapíše číslo frame na disku (swapnuté stránky) a nastaví příznak swapnuto. Pokud OS vyhledává data, tak podle příznaku swapnuto zjistí, zda stránka je swapnuta nebo ne. V případě že je swapnuta, najde volné místo v OP, resp. uvolní místo swapnutím jiné stránky, přepíše frame do OP. Místo obnovených dat v OP opět zapíše do stránkovací tabulky jako číslo stránky a příznak swapnuto znuluje. Pak jsou již data připravena k zpracování. Adresování u 64bitových procesorů Název 64bitový procesor je odvozen od šířky integer registrů, které se používají pro výpočet adres.

64bitové procesory pracují nejčastěji v Long nebo Legacy modu Pro tyto režimy jsou rozšířeny GP (všeobecné registry na 64 bitů (RAX, RBX, RIP, RSP, RFLAGS, tec). A počet SSE registrů je rozšířen o dalších 8 Obecně je Lineární adresa 64bitová a fyzická prozatím omezena na 52, ale později bude rozšířena na 64 bitů. Hlavním modem je tedy long mode, který umožňuje přepínání do následujících módů: Real mode Long mode (64bitový protected režim) Legacy mode (32bitový protected režim, včetně módů, které podporuje klasický protected mode) Systém management mode První 64 bitové procesory podporují pouze 40bit fyzickou a 48bit lineární adresu. Do long modu se procesor přepíná z legacy mode. Proto stále i 64 bitové procesory startují v real mode. Long mód implementuje FLAT MODEL. Legacy mód používá všechny modely z 32 bitových procesorů. Při adresování v long mode se setkáváme s těmito agresami 1. Logická adresa ( u 32bitových označovaná jako logická nebo virtuální) 2. Efektivní (effective) adresa - pouze offsetová část logické adresy, která určuje offset v rámci segmentu 3. Lineární nebo virtuální adresa ( stejný význam jako lineární u 32bitových procesorů 4. fyzická adresa Logická adresa části: Vstupní adresa do výpočtu fyzické adresy se nazývá logická. Tato adresa má Logic-address = segment selektor: offset Tato adresa určuje deskriptor v LDT pro umístění ve virtuálním adresovém prostoru. Logická adresa je často označována jako far pointer Efektivní adresa Offset segmentu je u flat modelu označován jako efektivní adresa. Tato adresa se vytváří podle šablony

Effective-address = Base +Scale x Index + Displacemnent Kde base hodnota v GP registrech Scale kladná hodnota 1, 2, 4 nebo 8 Index dvojkový doplněk z hodnoty z GP registrů Displacement - dvojkový doplněk operandu instrukce délky 6, 16 nebo 32 bitů Efektivní adresy jsou často nazývány near pointer. Pro long mode je definována 64 bitová efektivní adresa. Lineární adresa Je tvořena Linear Address = Segment Base Address + Effective Address Kde Segment base address je počáteční adresa v rámci segmentu popsaná v LDT nebo GDT, Effektive address viz efektivní adresa Lineární adresa ukazuje na adresu v lineárním prostoru adres. (U flat modelu, který je používán u 64 bitového long modu) je počáteční adresa segmentu rovna 0. Proto Lineární adresa je identická s efektivní adresou. Proto také se lineární adresa udává v kanonickém tvaru. Fyzická adresa Určuje polohu ve fyzickém adresovém prostoru a je vytvářena jen u stránkování. Lineární neboli virtuální prostor je mnohem větší než fyzický adresový prostor. Virtuální adresy, které jsou větší než fyzické určují swapovací prostor na disku. Virtuální paměť Operační systém je zodpovědný za mapování virtuálního prostoru a jeho řízení a relokaci. U protected mode je jeho velikost 4GiB, u Long mode 16EiB.

Fyzická paměť Fyzické adresování umožňuje přímý přístup do operační paměti. Velikost fyzického prostoru závisí na implementaci procesoru a na skutečném osazení paměti. Real mode do 1MiB real mode je přístupný pouze z legacy mode. Legacy protected mode - do 4GiB při použití 32bitového adresování. Použitím Physical Address Extension PAE bit, se adresování rozšiřuje na 52bitů. Stav v r. 2007 je omezen na 40bitů. Long mode do 4PiB (pro 52bit adresování) Long mode vyžaduje PAE bit. Kanonická forma adresy Kanonická forma adresy vyžaduje, aby všechny bity větší než je nejvýznamnější funkční bit (bity 48 až 63 opakují hodnotu bitu 47) byly samé 1 nebo 0. Tím se zabraňuje použití těchto bitů na jiné účely. Kanonická forma nemůže způsobit chybovou exception. Segmentování Flat model umožňuje zjednodušení systémového software. Segmentace je vytvářena v kompatibility mode (jeden z podmódů modu long) a v legacy mode. Při segmentování se vytváří 16 383 segmentů, jejichž velikost je dána limitem v LDT nebo GDT. Pro tyto účely obsahuje procesor 6 segmentových registrů CS, DS, ES, FS, GS a SS.

Kontrolní otázky Jaký je rozdíl mezi EMS a XMS? Jak se vypočítá maximální velikost operační paměti? Zopakujte si z předchozích kapitol rozdělení polovodičových pamětí. Jaký je velký segment v realmodu? Zamyslete se nad jeho minimální velikostí - číslo segmentu je násobeno 16). Jaký je rozdíl mezi virtuální, logickou, lineární a fyzickou adresou? Co je to segment selektor a jaké má části? Proč jsou zavedena v protected modu RPL práva? Jak se vytváří adresa v segmentaci u protected modu? Kolik bajtů má řádek v tabulce deskriptorů? Co je to Task State Segment? Jaký je rozdíl mezi stránkou a segmentem? Co je to číslo stránky a na které adresách je tato stránka uložena? Co je to swapování a k čemu slouží. Popište postup při swapování. Vysvětlete na stránkovací tabulce. Co je SWAP? Které mody mají 64 bitové procesory? Jaké rozlišujeme adresy u 64bitových procesorů? Kolik segmentů má long mode? Použitá literatura PC World10/96 Brandejs: Mikroprocesory Intel Firemní literature Intel, AMD