Logická struktura RAM v grafické podobě. Paměťové buňky, porty a registry. Samotestovací otázky

Ministerstvo školství a vědy regionu Nižnij Novgorod

Státní rozpočtová vzdělávací instituce

střední odborné vzdělání

"Bor Provincial College"

Specialita 230701 Aplikovaná informatika(podle odvětví)

Esej

K tématu: Struktura paměť s náhodným přístupem.

Disciplína: Operační systémy a prostředí.

Dokončeno:

student gr. IT-41

Rodov A.E.

Kontrolovány:

Markov A.V.

Městská část Bor

Úvod

Paměť s náhodným přístupem(z angličtiny Náhodný Přístup Paměť) paměť s náhodným přístupem. RAM ( paměť s náhodným přístupem) - nestálá část systému paměti počítače, ve kterém je za chodu počítače uložen spustitelný strojový kód (programy), stejně jako vstupní, výstupní mezidata zpracovaná procesorem.

1. Struktura paměti RAM

RAM se skládá z buněk, z nichž každá může obsahovat jednotku informace – strojové slovo. Každá buňka má dvě vlastnosti: adresu a obsah. Prostřednictvím adresního registru mikroprocesoru lze přistupovat k libovolné paměťové buňce.

2. Model segmentové paměti

Kdysi dávno, na úsvitu zrození počítačové vybavení RAM byla velmi malá a k jejímu adresování byly použity 2 bajty (tzv. „slovo“). Tento přístup umožňoval adresovat 64 KB paměti a adresování bylo lineární – pro označení adresy bylo použito jediné číslo. Později, jak se technologie zlepšovala, si výrobci uvědomili, že je možné podporovat větší množství paměti, ale k tomu potřebovali zvětšit velikost adresy. Pro kompatibilitu s již napsaným software bylo rozhodnuto udělat toto: adresování je nyní dvousložkové (segment a offset), z nichž každý je 16bitový, a staré programy používaly jednu 16bitovou komponentu a nevědí nic o segmentech a nadále fungují


4. DRAM – Dynamic Random Access Memory

DOUŠEK- toto je velmi starý typČipy RAM, které se již dlouho nepoužívají. Jinak DOUŠEK- Tento dynamická paměť s náhodným pořadím vzorkování. Minimální jednotka informací při ukládání nebo přenosu dat v počítači je trochu. Každý bit může mít dva stavy: zapnuto (ano, 1) nebo vypnuto (ne, 0). Jakékoli množství informací se nakonec skládá z bitů, které se zapínají a vypínají. Aby bylo možné uložit nebo přenést jakékoli množství dat, je nutné uložit nebo přenést každý bit těchto dat bez ohledu na jeho stav.

Pro uložení bitů informací v RAM existují buňky. Články se skládají z kondenzátorů a tranzistorů. Zde je přibližné a zjednodušené schéma buňky DRAM:

Každá buňka může uložit pouze jeden bit. Pokud je kondenzátor nabitý, znamená to, že bit je zapnutý, pokud je vybitý, je vypnutý. Pokud potřebujete uložit jeden bajt dat, budete potřebovat 8 buněk (1 byte = 8 bitů). Buňky jsou umístěny v maticích a každá z nich má svou adresu, která se skládá z čísla řádku a čísla sloupce.

Nyní se podívejme, jak ke čtení dochází. Nejprve se na všechny vstupy přivede signál RAS (Row Address Strobe) – to je adresa řádku. Poté jsou všechna data z tohoto řádku zapsána do vyrovnávací paměti. Poté se do registru přivede signál CAS (Column Address Strobe) - jedná se o sloupcový signál a vybere se bit s odpovídající adresou. Tento bit je přiveden na výstup. Ale během čtení se data v buňkách čtené řádky ničí a musí se přepisovat jejich odebráním z vyrovnávací paměti.

Nyní záznam. Je aplikován signál WR (Write) a informace vstupují do sloupcové sběrnice nikoli z registru, ale z zadávání informací paměť přes přepínač, definovaný adresou sloupec. Průchod dat při zápisu je tedy určen kombinací adresových signálů sloupců a řádků a oprávněním zapisovat data do paměti. Při zápisu se nevypisují data z řádkového registru.

Je třeba vzít v úvahu, že matice s buňkami jsou uspořádány takto:

To znamená, že nebude načten jeden bit najednou, ale několik. Pokud je paralelně umístěno 8 matic, bude načten jeden bajt najednou. Tomu se říká bitová hloubka. Počet linek, po kterých budou data přenášena z (nebo do) paralelních matic, je dán šířkou vstupní/výstupní sběrnice mikroobvodu.
Když mluvíme o fungování DRAM, je třeba vzít v úvahu jeden bod. Celá věc je v tom, že kondenzátory nemohou skladovat náboj donekonečna a nakonec se „vybije“, proto je třeba kondenzátory dobít. Operace dobíjení se nazývá Refresh nebo regenerace. Tato operace probíhá přibližně každé 2 ms a někdy zabere až 10 % (nebo i více) pracovní doby procesoru.

Nejdůležitější charakteristikou DRAM je rychlost, nebo jednoduše řečeno, doba trvání cyklu + doba zpoždění + doba přístupu, kde doba trvání cyklu je doba strávená přenosem dat, doba zpoždění je počáteční instalace adresy řádků a sloupců a doba přístupu je doba vyhledávání pro samotnou buňku. Tento odpad se měří v nanosekundách (jedna miliardtina sekundy). Moderní paměťové čipy mají rychlosti pod 10 ms.

RAM je řízena řadičem umístěným v čipsetu základní desky, přesněji v té její části zvané North Bridge.

A nyní, když jsme pochopili, jak RAM funguje, pojďme zjistit, proč je vůbec potřeba. RAM lze po procesoru považovat za nejrychlejší zařízení. Proto dochází k hlavní výměně dat mezi těmito dvěma zařízeními. Všechny informace v osobním počítači jsou uloženy na pevném disku. Po zapnutí počítače se do paměti RAM (Random Access Memory) zapisují ovladače, speciální programy a prvky ze šroubu. operační systém. Pak tam budou zaznamenány ty programy - aplikace, které budete spouštět. Když tyto programy zavřete, budou vymazány z paměti RAM. Data zaznamenaná v RAM jsou přenášena do CPU (Central Processing Unit), kde jsou zpracována a zapsána zpět. A tak pořád dokola: dali příkaz procesoru, aby vzal bity na těch a takových adresách, nějak je tam zpracoval a vrátil na místo nebo zapsal na nové - to udělal.

To vše je dobré, pokud je dostatek buněk RAM. A pokud ne? Poté přichází na řadu swapovací soubor. Tento soubor je umístěn na pevném disku a je tam zapsáno vše, co se nevejde do buněk RAM. Vzhledem k tomu, že rychlost šroubu je výrazně nižší než rychlost RAM, činnost stránkovacího souboru značně zpomaluje systém. Kromě toho snižuje životnost pevný disk.

Zvýšení množství paměti nevede ke zvýšení jejího výkonu. Změna velikosti paměti nijak neovlivní její provoz. Ale pokud vezmeme v úvahu fungování systému, pak je to jiná věc. Pokud máte dostatek paměti RAM, zvýšení hlasitosti nepovede ke zvýšení rychlosti systému. Pokud není dostatek buněk RAM, pak zvýšením jejich počtu (jinými slovy přidáním nového nebo výměnou starého za nový s větší kapacitou paměti) dojde ke zrychlení systému.

Za minulý týden Dvakrát jsem lidem vysvětloval, jak je organizována práce s pamětí v x86, abych nemusel vysvětlovat potřetí, co jsem psal tento článek.

A tak, abyste porozuměli organizaci paměti, budete muset některé znát základní pojmy, jako jsou registry, zásobník atd. Pokusím se to po cestě vysvětlit podrobně, ale velmi stručně, protože to není téma tohoto článku. Takže, začněme.

Jak programátor ví, když píše programy, se kterými nepracuje fyzická adresa, ale pouze s logikou. A to pouze v případě, že programuje v assembleru. Ve stejném C jsou paměťové buňky před programátorem skryty ukazateli, pro jeho vlastní pohodlí, ale zhruba řečeno, ukazatel je další reprezentace adresy logické paměti a v Javě žádné ukazatele nejsou, úplně špatný jazyk. Kompetentnímu programátorovi však nebude překážet znalost toho, jak je paměť organizována alespoň pro obecná úroveň. Obecně mě velmi rozčilují programátoři, kteří nevědí, jak stroj funguje, obvykle to jsou programátoři Java a další PHP kluci s podprůměrnou kvalifikací.

Dobře, dost smutných věcí, pojďme na věc.
Zvažte adresní prostor programový režim 32 bitový procesor(pro 64 bitů je vše stejné)
Adresový prostor tohoto režimu se bude skládat z 2^32 paměťových buněk očíslovaných od 0 do 2^32-1.
Programátor s touto pamětí pracuje, pokud potřebuje definovat proměnnou, jednoduše řekne paměťová buňka s adresou taková a taková bude obsahovat takový a takový typ dat, přičemž sám programátor nemusí vědět, jaké číslo tato buňka má, prostě napíše něco jako:
int data = 10;
Počítač to pochopí takto: musíte vzít nějakou buňku s číslem sto sto a umístit do ní celé číslo 10, navíc o adrese buňky 18894 nebudete vědět, bude vám skryta.

Všechno by bylo v pořádku, ale nabízí se otázka, jak počítač tuto paměťovou buňku hledá, protože naše paměť může být jiná:
Mezipaměť úrovně 3
Mezipaměť úrovně 2
1 úroveň mezipaměti
hlavní paměť
HDD

To je vše různé vzpomínky, ale počítač snadno najde, ve kterém je ten náš proměnná int data.
Tento problém řeší operační systém společně s procesorem.
Celý následující článek bude věnován rozboru této metody.

Architektura x86 podporuje zásobník.

Stoh je souvislá oblast RAM organizovaná podle principu stohu talířů, nemůžete brát talíře ze středu stohu, můžete si vzít pouze horní a můžete položit talíř pouze na horní stranu. zásobník.
Procesor má speciální funkce pro práci se zásobníkem. strojové kódy, jehož mnemotechnické pomůcky pro sestavení vypadají takto:

TAM operand
vloží operand do zásobníku

Pop operand
vybere hodnotu z horní části zásobníku a vloží ji do svého operandu

Zásobník v paměti roste shora dolů, což znamená, že když k němu přidáte hodnotu, adresa vrcholu zásobníku se zmenší, a když z něj vyskočíte, adresa vrcholu zásobníku se zvýší.

Nyní se krátce podíváme na to, co jsou registry.
Jedná se o paměťové buňky v samotném procesoru. Jedná se o nejrychlejší a nejdražší typ paměti, když procesor provádí nějaké operace s hodnotou nebo s pamětí, bere tyto hodnoty přímo z registrů.
Procesor má několik sad logiky, z nichž každá má své vlastní strojové kódy a své vlastní sady registrů.
Základní programové registry Tyto registry používají všechny programy ke zpracování celočíselných dat.
Registry jednotek s pohyblivou řádovou čárkou (FPU) Tyto registry pracují s daty s pohyblivou řádovou čárkou.
Existují také registry MMX a XMM, tyto registry se používají, když potřebujete provést jednu instrukci velké množství operandy

Podívejme se blíže na hlavní programové registry. Patří mezi ně osm 32bitových registrů obecný účel: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP
Chcete-li umístit data do registru nebo odebrat data z registru do paměťové buňky, použijte příkaz mov:

Pohyb eax, 10
načte číslo 10 do registru eax.

Mov data, ebx
zkopíruje číslo obsažené v registru ebx do datové paměti.

Registr ESP obsahuje adresu vrcholu zásobníku.
Kromě obecných registrů obsahuje hlavní registry programu šest 16bitových segmentových registrů: CS, DS, SS, ES, FS, GS, EFLAGS, EIP
EFLAGS zobrazuje bity, nazývané příznaky, které odrážejí stav procesoru nebo charakterizují průběh předchozích instrukcí.
Registr EIP obsahuje adresu další příkaz, kterou provede procesor.
Nebudu popisovat registry FPU, protože je nebudeme potřebovat. Takže naše krátká odbočka o registrech a zásobníku je u konce, vraťme se zpět k organizaci paměti.

Jak si vzpomínáte, účelem tohoto článku je příběh o transformaci logická paměť ve fyzice ve skutečnosti stále existuje mezistupeň a celý řetězec vypadá takto:

Logická adresa --> Lineární (virtuální) --> Fyzická
Celý lineární adresní prostor je rozdělen na segmenty. Adresový prostor každého procesu má alespoň tři segmenty:
Segment kódu.(obsahuje příkazy z našeho programu, které budou provedeny.)
Datový segment.(Obsahuje data, tedy proměnné)
zásobníkový segment, o kterém jsem psal výše.


Lineární adresa se vypočítá podle vzorce:
lineární adresa = Základní adresa segmentu (na obrázku je to začátek segmentu) + offset
Segment kódu
Základní adresa segmentu kódu je převzata z registru CS. Hodnota offsetu pro kódový segment je převzata z registru EIP, ve kterém je uložena adresa instrukce, po jejímž provedení se hodnota EIP zvětší o velikost této instrukce. Pokud příkaz trvá 4 bajty, pak se hodnota EIP zvýší o 4 bajty a již bude ukazovat na následující pokyny. To vše probíhá automaticky bez účasti programátora.
V naší paměti může být několik segmentů kódu. V našem případě je pouze jeden.
Datový segment
Data se načítají do registrů DS, ES, FS, GS
To znamená, že mohou existovat až 4 datové segmenty. Na našem obrázku je sám.
Offset v rámci datového segmentu je specifikován jako operand instrukce. Standardně se používá segment, na který ukazuje registr DS. Chcete-li zadat další segment, musíte to přímo uvést v příkazu předpony nahrazení segmentu.
Segment zásobníku
Použitý segment zásobníku je určen hodnotou registru SS.
Posun v tomto segmentu je reprezentován registrem ESP, který ukazuje na vrchol zásobníku, jak si pamatujete.
Segmenty v paměti se navíc mohou navzájem překrývat základní adresa všech segmentů se může shodovat například v nule. Tento degenerovaný případ se nazývá lineární paměťová reprezentace. V moderní systémy, paměť je obvykle organizována tímto způsobem.

Nyní se podívejme na definici bázových adres segmentu, psal jsem, že jsou obsaženy v registrech SS, DS, CS, ale není to tak úplně pravda, obsahují určitý 16bitový selektor, který ukazuje na určitý segment deskriptor, ve kterém je již uložena požadovaná adresa.


Takto vypadá selektor, jehož třináct bitů obsahuje index deskriptoru v tabulce deskriptorů. Není složité vypočítat, že 2^13 = 8192 je maximální částka deskriptory v tabulce.
Obecně existují dva typy tabulek deskriptorů GDT a LDT První se nazývá globální tabulka deskriptorů, v systému je vždy jen jedna, její počáteční adresa, respektive adresa jejího nulového deskriptoru, je uložena v 48bitový systémový registr GDTR. A od okamžiku spuštění se systém nemění a neúčastní se swapu.
Ale hodnoty deskriptorů se mohou změnit. Pokud je bit TI v selektoru nula, pak procesor jednoduše přejde do GDT a podle indexu vyhledá požadovaný deskriptor, pomocí kterého by mohl k tomuto segmentu přistupovat.
Doposud bylo vše jednoduché, ale pokud je TI 1, znamená to, že se použije LDT. Těchto tabulek je mnoho, ale používají se v tento moment bude ten, jehož selektor je načten do systémového registru LDTR, který se na rozdíl od GDTR může měnit.
Index selektoru ukazuje na deskriptor, který již neukazuje na základní adresu segmentu, ale na paměť, ve které je uložena tabulka lokálních deskriptorů, respektive její nulový prvek. Pak je vše stejné jako u GDT. Tímto způsobem lze během provozu vytvářet a rušit místní tabulky podle potřeby. LDT nemohou obsahovat deskriptory jiných LDT.
Víme tedy, jak se procesor dostane k deskriptoru, a podívejme se, co tento deskriptor obsahuje na obrázku:

Deskriptory se skládají z 8 bajtů.
Bity 15-39 a 56-63 obsahují lineární základní adresu segmentu popsaného tímto deskriptorem segmentu. Dovolte mi připomenout náš vzorec pro nalezení lineární adresy:

lineární adresa = základní adresa + offset
Díky této jednoduché operaci má procesor přístup na správnou adresu lineární paměť.
Podívejme se na další bity deskriptoru, Segment Limit neboli limit je velmi důležitý, má 20bitovou hodnotu od 0-15 a 48-51 bitů. Limit určuje velikost segmentu. Pro datové a kódové segmenty jsou dostupné všechny adresy umístěné v intervalu:
[základna; základ+limit)
V závislosti na 55 G-bitu (granularity) lze limit měřit v bajtech at nulová hodnota bitů a pak bude maximální limit 1 MB, nebo v hodnotě 1 se limit měří na stránky, z nichž každá je 4kb. A maximální velikost Tento segment bude mít 4 GB.
Pro segment zásobníku bude limit v rozsahu:
(základ+limit; nahoře]
Mimochodem, zajímalo by mě, proč jsou základ a limit tak zubatě umístěny v deskriptoru. Faktem je, že procesory x86 se vyvíjely evolučně a v dobách 286x byly deskriptory celkem 8 bitů, přičemž nejvyšší 2 bajty byly rezervovány, ale v následujících modelech procesorů s rostoucí bitovou kapacitou deskriptory také rostly, ale aby se ušetřilo zpětná kompatibilita Musel jsem nechat strukturu tak, jak je.
Hodnota "top" adresy závisí na 54. bitu D, pokud je 0, pak je horní 0xFFF(64kb-1), pokud je bit D 1, pak je horní 0xFFFFFFFF (4Gb-1)
Od 41 do 43 bitů je kódován typ segmentu.
000 - datový segment, pouze pro čtení
001 - datový segment, čtení a zápis
010 - segment zásobníku, pouze pro čtení
011 - zásobníkový segment, čtení a zápis
100 - segment kódu, pouze provedení
101 - segment kódu, čtení a provádění
110 - podřízený kódový segment, pouze spuštění
111 - slave kódový segment, spouštěný a pouze pro čtení

44 S bitů, pokud je rovno 1, pak deskriptor popisuje reálný segment paměti RAM, jinak je hodnota bitu S 0.

Nejdůležitější bit je 47. bit přítomnosti P. Pokud je bit roven 1, znamená to, že tabulka segmentů nebo lokálních deskriptorů je načtena do RAM, pokud je tento bit 0, pak to znamená, že tento segment není v RAM, je umístěn na pevném disku, dojde k přerušení , speciální případ provozu procesoru spustí handler zvláštní příležitost, který načte požadovaný segment z pevného disku do paměti, je-li P bit roven 0, pak všechna pole deskriptoru ztratí svůj význam a uvolní se pro ukládání servisních informací do nich. Poté, co handler dokončí svou práci, je bit P nastaven na 1 a znovu se přistoupí k deskriptoru, jehož segment je již v paměti.

Tím končí převod logické adresy na lineární a myslím, že bychom se tam měli zastavit. Příště se budu věnovat druhé části lineárního převodu na fyzický.
A také si myslím, že stojí za to mluvit trochu o předávání argumentů funkcí a o umísťování proměnných do paměti, aby tam bylo nějaké spojení s realitou, protože umístění proměnných do paměti je něco, s čím se musíte ve své práci vypořádat, a ne jen co To jsou teoretické spekulace pro systémového programátora. Ale bez pochopení toho, jak paměť funguje, je nemožné pochopit, jak jsou tyto stejné proměnné uloženy v paměti.
Obecně doufám, že to bylo zajímavé a že se zase uvidíme.

Každá paměťová buňka má svou vlastní jedinečnou, tj. odlišnou od všech ostatních, adresu. V tomto případě má hlavní paměť jediný adresní prostor pro RAM a trvalé úložiště. Adresní prostor určuje maximum možné množství hlavní paměťové buňky, které mohou být adresovány přímo. Záleží na šířce adresových sběrnic, protože maximální počet různé adresy určeno rozmanitostí binárních čísel, kterými jsou tyto adresy reprezentovány. Tato rozmanitost zase závisí na počtu číslic. Adresový prostor je tedy roven , kde je bitová šířka adresové kódové sběrnice.

Příklad 3.5. Procesor Intel 8086 (1978) měl 20bitovou adresovou kódovou sběrnici. V tomto případě lze přímo adresovat 2 20 buněk s kapacitou 1 bajt. Proto bude adresní prostor 2 20 bajtů = 1 MB.

Procesor Intel 80486 (1989) měl 32bitovou adresovou kódovou sběrnici. Jeho adresní prostor byl 2 32 bajtů = 2 2 2 30 bajtů = 2 2 GB = 4 GB.

Počínaje procesorem Intel Pentium Pro (1995) zavedl možnost používat režim rozšíření fyzické adresy (PAE), který pro adresování používá 36 bitů. V tomto případě lze adresovat 2 36 bajtů = 2 6 · 2 30 bajtů = 2 6 GB = 64 GB.

Existují dva způsoby adresování paměti v počítačích: reálný režim a chráněný režim. Skutečný režim používané v operačním systému MS DOS. Výpočet fyzické adresy v skutečný režim se provádí podle pravidla

CS 16 10 16 + IP 16,

kde CS, IP jsou hodnoty segmentu a offsetu specifikované v příslušných registrech procesoru.

Maximální fyzická adresa je tedy

FFFF 16 10 16 + FFFF 16 = FFFF0 16 + FFFF 16 = 10FFEF 16 = 1114095 10,

a adresní prostor je 1114096 bajtů = 1 MB + 64 KB – 16 bajtů.

Tento adresní prostor lze navíc omezit šířkou adresové kódové sběrnice procesoru Intel 8086, tedy číslem 2 20 bajtů = 1 MB.

Zavolá se ta část paměti RAM, kterou nelze přímo adresovat rozšířená paměť.

Příklad 3.6. Počítač je založen na procesoru Intel 80486 a má 16 MB RAM. Procesor umí přímo adresovat 1 MB + 64 KB – 16 bajtů RAM. Potom bude rozšířená paměť 16 MB -
–(1 MB + 64 KB – 16 bajtů) = 15 MB – 64 KB + 16 bajtů.

Vztah mezi přímo adresovatelnou a rozšířenou pamětí by tedy byl:

1 114 096 bajtů: 15 663 120 bajtů nebo 6,64: 93,36.

V důsledku toho bude v reálném provozním režimu více než 90 % paměti RAM počítače nedostupných.

Existují dva způsoby přístupu k rozšířené paměti v režimu skutečného počítače. Jsou však možné pouze při použití speciálních programů - ovladačů podle specifikací XMS a EMS.

Řidičspeciální program, vedoucí práce RAM nebo externí zařízení počítače a organizování výměny informací mezi procesorem, RAM a externími zařízeními.

Poznámka. Ovladač, který řídí činnost paměti, se nazývá správce paměti.

Přístup k rozšířené paměti podle specifikace XMS ( Specifikace rozšířené paměti) je organizován pomocí ovladačů typu XMM (například HIMEM.SYS). Podle specifikace EMS ( Specifikace rozšířené paměti) přístup k rozšířené paměti je realizován zobrazením jejích jednotlivých polí v konkrétní oblast přímo adresovatelná paměť. V tomto případě se neukládají zpracovávané informace, ale pouze adresy, které k nim poskytují přístup. K uspořádání paměti podle specifikace EMS se používají ovladače EMM386.EXE nebo Quarterdeck EMM.

V chráněný režim provoz počítače lze přímo adresovat paměti větší kapacitu než ve skutečnosti, kvůli změnám v mechanismu adresování. Díky chráněnému režimu lze uložit do paměti pouze tu část programu, která je potřeba. tento momentčas. Zbytek lze uložit do externí paměti počítače, například na pevný disk. Při přístupu k části programu, která není aktuálně v paměti, operační systém pozastaví program a načte požadovaný fragment z externí paměti programový kód a poté obnoví provádění programu. Tento postup se nazývá výměna dat z pevného disku. V chráněném režimu je tedy možné spouštět programy, jejichž velikost kódu přesahuje velikost paměti RAM v počítači.

Fyzická adresa v chráněném režimu je vytvořena následovně. Registr segmentu procesoru ukládá dva bajty volič, který obsahuje následující informace:

■ index deskriptor(13 bitů) v tabulce deskriptorů;

■ příznak (1 bit), který určuje, ke které ze dvou tabulek deskriptorů (lokální nebo globální) se bude přistupovat;

■ požadovaná úroveň oprávnění (2 bity).

V souladu s hodnotou selektoru se přistupuje k požadované tabulce deskriptorů a deskriptoru v ní umístěném. Adresa segmentu, jeho velikost a přístupová práva jsou extrahovány z deskriptoru. Adresa segmentu je pak přidána k offsetu z registru IP procesoru. Výsledná částka bude fyzická adresa buňky RAM.

Použití chráněného režimu umožnilo adresovat procesor Intel 80286 (1982) 2 24 bajtů = 2 4 2 20 bajtů = 16 MB paměti, zatímco adresní prostor v reálném režimu byl stále omezen na 1 MB.

Kromě zvětšení adresového prostoru je v chráněném režimu možné paralelní provádění několika programů ( multitasking režimu). Režim multitasking je organizován pomocí operačního systému pro multitasking (např. Microsoft Windows), kterému procesor poskytuje výkonný a spolehlivý mechanismus pro vzájemnou ochranu úkolů pomocí čtyřúrovňového systému oprávnění (obr. 3.7).

V chráněném režimu je to také možné organizace stránky Paměť. Dochází k vytvoření tabulek popisu paměti, které určují stav jejích jednotlivých segmentů (stránek). V případě nedostatku paměti operační systém zapíše některá data externí paměť a do tabulky popisu zapíše informaci o absenci těchto dat v paměti RAM.

Rýže. 3.7.Úrovně oprávnění při používání režimu multitaskingu

Počítačová architektura

Základní prvky počítače.

Počítač se skládá ze 4 konstrukčních částí:

1) Procesor.

Monitoruje činnost počítače a také provádí funkce zpracování dat. Pokud má systém pouze jeden procesor, je často nazýván centrální procesor(CPU – centrální procesorová jednotka)

2) Hlavní paměť.

Zde se ukládají data a programy. Tato paměť je dočasná. Často se nazývá skutečný nebo RAM.

3) I/O zařízení.

Slouží k přenosu dat mezi počítačem a vnějším prostředím, skládajícím se z různých příslušenství, které zahrnují sekundární paměť, komunikační zařízení a terminály.

4) Systémová sběrnice. Určité struktury a mechanismy, které zajišťují interakci mezi procesorem, hlavní pamětí a vstupně/výstupními zařízeními.

Hlavní paměť

PC – počítadlo programů

IR – příkazový registr

MAR – paměťový adresní registr

MBR – registr vyrovnávací paměti

I/O AR – registr vstupní/výstupní adresy

I/O BR – I/O buffer registr

Obrázek 1. Komponenty počítače: obecná struktura.

Jednou z funkcí procesoru je komunikace s pamětí. K tomu obvykle používá dva interní (vzhledem k procesoru) registry: registr adres paměti (MAR), který ukládá adresu paměťové buňky, ve které bude prováděna operace čtení a zápisu, a registr vyrovnávacích pamětí - MBR), kde jsou uložena data určená k zápisu do paměti nebo ta, která z ní byla načtena. Podobně je číslo I/O zařízení specifikováno v registru I/O adres (I/O AR). Registr I/O buffer (I/O BR) se používá k výměně dat mezi I/O zařízením a procesorem.

Paměťový modul se skládá z mnoha očíslovaných buněk. Každá buňka může být zapsána binární číslo, který je interpretován buď jako příkaz nebo jako data. I/O modul slouží k přenosu dat z externí zařízení jak k procesoru a paměti, tak v opačném směru. Má vlastní vnitřní vyrovnávací paměti pro dočasné ukládání dat.

Registry procesoru

Procesor má sadu registrů, které jsou oblastí paměti s rychlým přístupem, ale mají mnohem menší kapacitu než hlavní paměť.

Registry procesoru (plní dvě funkce) se dělí do 2 skupin:

registry, k dispozici uživateli. Tyto registry umožňují programátorovi snížit počet přístupů do hlavní paměti optimalizací použití registrů pomocí strojového jazyka nebo jazyka symbolických instrukcí.

Řídicí registry a stavové registry. Používá se v procesoru k řízení prováděných operací; s jejich pomocí mohou programy privilegovaného operačního systému řídit provádění jiných programů.

Registry dostupné uživateli:

Datové registry. Může být použit jakýmkoli příkazem stroje pro datové operace. Často jsou stanovena určitá omezení. Některé registry jsou například určeny pro operace s pohyblivou řádovou čárkou, zatímco jiné jsou určeny pro ukládání celých čísel.

Registry adres. Obsahují adresy příkazů a dat v hlavní paměti; Tyto registry mohou uložit pouze část adresy, která se používá při výpočtu úplné nebo efektivní adresy.

Řídicí a stavové registry.

Pro řízení činnosti procesoru se používají různé registry. Na většině strojů jsou tyto registry pro uživatele z velké části nepřístupné.

Kromě zmíněných registrů MAR, MBR, I/O AR, I/O BR jsou důležité pro provádění příkazů:

Počítadlo programů (PC). Obsahuje adresu příkazu, který má být načten z paměti.

Registr instrukcí (IR). Obsahuje poslední příkaz vybraný z paměti.

Všechny procesory také obsahují registr známý jako registr programového stavového slova (PSW). Obvykle obsahuje stavové kódy a další stavové informace, jako je bit povolení/zakázání přerušení nebo bit systémového/uživatelského režimu.

Stavové kódy (známé jako příznaky) jsou posloupností bitů, které jsou nastaveny nebo vymazány procesorem v závislosti na výsledku provedených operací. Například aritmetická operace může mít za následek kladné číslo, záporné číslo, nulu nebo přetečení.


Data v počítači jsou sbírkou bitů, bajtů a záznamů, které musí být zaznamenány do paměti stroje.

V moderní počítače data jsou umístěna nejen v provozních, ale i v dlouhodobá paměť.

Data lze ukládat do dlouhodobé paměti velké objemy, ale i celé komplexy programů sloužících k řízení provozu počítačů a automatizovaných systémů.

Jak funguje paměť počítače?

Paměť počítače si nejlépe představíme jako řadu buněk. Množství informací v každé buňce je jeden bajt.

Jakákoli informace je uložena v paměti počítače jako sekvence bajtů. Byty (buňky) paměti jsou číslovány jeden po druhém a číslo prvního bytu od začátku paměti je rovno nule. Každý specifická informace, který je uložen v paměti, může zabírat jeden nebo více bajtů. Počet bajtů, které určitá informace zabírá v paměti, je velikost této informace v bajtech.

Například kladné celé číslo od 0 do 2 8 -1=255 zabírá 1 bajt paměti. Chcete-li uložit kladné celé číslo od 2 8 = 256 do 2 16 -1 = 65536, potřebujete dva po sobě jdoucí bajty.

Hlavním úkolem při práci s pamětí je najít v paměti místo, kde se nachází potřebné informace.

Najít osobu v velkoměsto, musíte to vědět přesnou adresu. Také, aby bylo možné najít umístění té či oné informace v paměti, byl zaveden koncept adresy paměti.

Pokud například slovo „počítačová věda“, které se skládá z 11 písmen, zabírá bajty očíslované od 1234 do 1244 (celkem 11 bajtů), adresa tohoto slova je 1234.

Čím větší je paměť, tím více souborů a programů, které dokáže pojmout, tím více úkolů lze spustit pomocí počítače.

Jak se určuje objem? dostupná paměť počítač nebo co největší počet dá se to použít k označení adresy?

Adresa, stejně jako jakákoli informace v počítači, je odeslána na binární. Prostředek, nejvyšší hodnotu adresa je určena počtem bitů, které jsou použity pro její binární reprezentaci. Do jednoho bajtu (8 bitů) lze uložit 2 8 (=256) čísel od 0 do 255, do dvou bajtů (16 bitů) - 2 16 čísel od 0 do 65536, do čtyř bajtů (32 bitů) - 2 32 čísel od 0 až 4294967295.

Typy paměti

RAM

Paměť s náhodným přístupem (RAM nebo anglicky RAM od Random Access Memory - paměť s náhodným přístupem) je rychlé paměťové zařízení nepříliš velké kapacity, které je přímo spojeno s procesorem a je určeno pro zápis, čtení a ukládání spustitelných programů a dat, která jsou zpracovávána. těmito programy.

RAM se používá pouze pro dočasné ukládání dat a programů, protože po vypnutí stroje zmizí vše, co bylo v RAM. Přístup k prvkům RAM je přímý – to znamená, že každý bajt paměti má svou vlastní individuální adresu.

Velikost paměti RAM se obvykle pohybuje od 32 do 512 MB. Pro jednoduché administrativní úkony stačí 32 MB RAM, ale pro složité úkony počítačový design může vyžadovat od 512 MB do 2 GB RAM.

RAM se obvykle vyrábí z integrované obvody paměť SDRAM(synchronní dynamická RAM). Každý informační bit v SDRAM je uložen jako elektrický náboj maličký kondenzátor vytvořený ve struktuře polovodičového krystalu. Kvůli svodům proudu se tyto kondenzátory rychle vybíjejí a jsou periodicky (přibližně každé 2 milisekundy) dobíjeny speciální zařízení. Tento proces se nazývá regenerace paměti (Refresh Memory). Čipy SDRAM mají kapacity od 16 do 256 Mbit nebo více. Jsou instalovány v pouzdře a sestaveny do paměťových modulů. Většina moderní počítače vybavena moduly Typ DIMM(Dual-In-line Memory Module - paměťový modul s dvouřadým uspořádáním čipů). V počítačové systémy nanejvýš moderní procesory Jsou používány

Vysokorychlostní moduly Rambus DRAM (RIMM) a DDR DRAM.

Ihned po zapnutí počítače začnou „tikat“ elektronické „hodiny“ hlavní sběrnice. Jejich impulsy vytlačí ospalý procesor pryč a ten může začít pracovat. Procesor ale potřebuje k provozu příkazy.

Přesněji řečeno, programy jsou potřeba, protože programy jsou uspořádané sady příkazů. Někde v počítači tak musí být předem připravený spouštěcí program a procesor musí v okamžiku probuzení přesně vědět, kde se nachází.

Tento program nelze uložit na žádné paměťové médium, protože v okamžiku jeho zapnutí procesor o žádném zařízení nic neví. Aby se o nich dozvěděl, potřebuje také nějaký program a my se vracíme tam, kde jsme začali. Nelze jej také uložit do RAM, protože v beznapěťovém stavu se v něm nic neukládá.

Odtud je jen jedna cesta ven. Takový program musí být vytvořen pomocí hardwaru. Chcete-li to provést na základní deska dostupný speciální čip, která se nazývá paměť pouze pro čtení - ROM. Už při výrobě do ní byla „napevno“ „zadrátována“ standardní sada programů, se kterými by měl procesor začít pracovat. Tato sada programů se nazývá základní systém I/O

Konstrukce čipu ROM se liší od čipů RAM, ale logicky se jedná o stejné buňky, do kterých jsou zapsána některá čísla, až na to, že se při vypnutí napájení nevymažou. Každá buňka má svou vlastní adresu.

Po spuštění procesor adresuje pevnou adresu (vždy stejnou), která ukazuje konkrétně na ROM. Odtud pocházejí první data a příkazy. Tak začíná práce procesoru a s ním i počítače. Na obrazovce v tuto chvíli vidíme bílé znaky na černém pozadí.

Jedním z prvních, který se má spustit, je podprogram, který provádí samočinné testování počítače. Jmenuje se: Power-On Test (v angličtině - POST - Power-On Self Test). Během jeho provozu se kontroluje mnoho věcí, ale na obrazovce vidíme pouze blikající čísla, odpovídající zaškrtnutým buňkám RAM.

Software Nástroje systému BIOS stačí provést počáteční kontroly a připojit standardní zařízení, jako je klávesnice a monitor. Speciálně jsme zdůraznili slovo standardní. Faktem je, že váš monitor a klávesnice mohou být velmi nestandardní. Ale dál v tomto stádiu to je jedno - počítač je zatím bere jako standard. Nezná ještě všechny jejich vlastnosti a domnívá se, že naše klávesnice a monitor jsou stejné, jako se používaly před dvaceti lety, v době prvních počítačů. Tím je zajištěno, že na obrazovce uvidíte alespoň něco bez ohledu na model monitoru, který máte k dispozici. BIOS předpokládá, že náš monitor je černobílý – proto jsou první zprávy na obrazovce odesílány v černobílém režimu.

Jenomže práce s tím trvá dlouho standardní zařízení počítač nemůže. Je na čase, aby zjistil, co vlastně má. Skutečné informace o počítačových zařízeních jsou zaznamenány na pevném disku, ale musíte se je naučit číst. Každá osoba může mít svůj vlastní jedinečný pevný disk, který není podobný ostatním. Otázkou je, jak programy BIOS vědí, jak konkrétně pracovat s vaším pevným diskem?

K tomu je na základní desce ještě jeden čip – paměť CMOS. Ukládá nastavení nezbytná pro provoz. programy BIOS. Zejména zde skladují Aktuální datum a čas, parametry pevné disky a některá další zařízení. Tato paměť nemůže být ani funkční (jinak by byla vymazána), ani trvalá (jinak by do ní nebylo možné zadávat data z klávesnice). Je vyrobena jako energeticky nezávislá a je neustále napájena malým dobíjecí baterie, který se také nachází na základní desce. Nabití této baterie je dostatečné k tomu, aby počítač neztratil nastavení, i když nebude několik let zapnutý.

Nastavení CMOS je nutné zejména pro nastavení systémového data a systémového času při instalaci nebo výměně pevných disků a také při obnově z většiny nouzových situací. Nastavení systému BIOS Můžete například nastavit heslo, aby neoprávněná osoba nemohla spustit počítač. Tato ochrana je však účinná pouze proti velmi malým dětem.

Pro změnu nastavení uložených v paměti CMOS obsahuje ROM speciální program - SETUP. Chcete-li jej spustit, musíte stisknout a podržet hned první okamžik po spuštění počítače. klávesa DELETE. Navigace v systému menu SETUP programy provádí se pomocí kurzorových kláves. Nezbytné položky vyberte menu pomocí klávesy ENTER a vraťte se do nabídky nejvyšší úroveň - klávesa ESC. Pro změnu nastavené hodnoty sloužit Klávesy stránky Nahoru a Page Down.

Vyrovnávací paměť

Mezipaměť je vysokorychlostní paměť s náhodným přístupem, kterou počítačový procesor používá k dočasnému ukládání informací. Zlepšuje výkon tím, že nejčastěji používaná data a příkazy udržuje „blíže“ k procesoru, odkud je lze rychleji získat.

Cache paměť přímo ovlivňuje rychlost výpočtů a pomáhá procesoru pracovat s rovnoměrnějším zatížením. Představte si množství informací používaných ve vaší kanceláři. Malé množství potřebných informací, řekněme seznam telefonních čísel oddělení, visí na stěně nad vaším stolem. Stejně tak máte informace o aktuálních projektech na dosah ruky. Méně běžně používané adresáře, například adresáře měst telefonní seznam, položte se na polici vedle pracovní plochy. Literatura, ke které se jen zřídka obracíte, zabírá police v knihovně. Počítače ukládají data v podobné hierarchii. Při spuštění aplikace se přenášejí data a příkazy pomalu tvrdě disk do paměti s náhodným přístupem, odkud je může procesor rychle načíst. RAM funguje jako mezipaměť pro pevný disk. Za dost rychlé počítače Je nutné zajistit rychlý přístup k RAM, jinak bude mikroprocesor nečinný a výkon počítače se sníží. Pro tento účel mohou být takové počítače vybaveny cache pamětí, tzn. „ultra-RAM“ paměť o relativně malém objemu (obvykle od 64 do 256 KB), ve které jsou uloženy nejčastěji používané oblasti RAM. Cache paměť je umístěna „mezi“ mikroprocesorem a RAM a když mikroprocesor přistupuje k paměti, nejprve hledá požadovaná data v cache paměti. Protože doba přístupu do mezipaměti je několikrát kratší než do běžná paměť a ve většině případů jsou data potřebná pro mikroprocesor obsažena ve vyrovnávací paměti, průměrná doba přístupu do paměti se zkrátí. Pro počítače založené na Intel-80386dx nebo 80486sx je velikost cache 64 KB vyhovující, 128 KB je zcela dostačujících. Počítače založené na Intel-80486dx a dx2 jsou obvykle vybaveny vyrovnávací pamětí o kapacitě 256 KB.




Horní