Počítačová paměť

Pojmem paměť se ve výpočetní technice označují fyzická zařízení, používaná k ukládání programů (posloupností instrukcí) nebo dat (např. informací o stavu programu) pro okamžitou nebo trvalou potřebu v počítači nebo jiném digitálním elektronickém zařízení. Termín vnitřní paměť nebo také primární paměť se používá pro informace uložené ve fyzických zařízeních, fungujících ve vysokých rychlostech (tj. RAM). Naproti tomu vnější paměť nebo také sekundární paměť označuje taková fyzická zařízení pro ukládání programů a dat, která mají pomalou přístupovou dobu, ale nabízejí vyšší paměťovou kapacitu. Vnitřní paměť uložená ve vnější paměti se nazývá „virtuální paměť“. Starší synonymum pro paměť je úložiště.[1]

Termínem „paměť“ ve smyslu vnitřní paměti se často označuje adresovatelná polovodičová paměť (tj. integrované obvody složené z křemíkových tranzistorů), která má mimo vnitřních pamětí i další využití v počítačích a jiných digitálních elektronických zařízeních. Polovodičová paměť se dělí na dva hlavní typy: energeticky závislou a energeticky nezávislou. Příklady energeticky nezávislé paměti jsou flash paměť (někdy využívaná jako vnější, někdy jako vnitřní počítačová paměť) a paměť ROM/PROM/EPROM/EEPROM (používaná pro firmware, například zaváděcí programy). Příklady energeticky závislé paměti jsou vnitřní paměť (typicky dynamická RAM neboli DRAM) a rychlá vyrovnávací paměť procesoru (typicky statická RAM neboli SRAM, která je sice rychlá, ale spotřebuje více energie a nabízí nižší paměťovou kapacitu na jednotku plochy než DRAM).

Většina polovodičových pamětí je uspořádána do paměťových buněk, tvořených bistabilními klopnými obvody, z nichž každý uchovává jeden bit (hodnotu 0 nebo 1). Flash paměti mohou být uspořádány do paměťových buněk s jedním bitem na buňku, nebo s několika bity v jedné buňce (tzv. víceúrovňová buňka). Paměťové buňky se seskupují do slov s pevnou délkou, například 1, 2, 4, 8, 16, 32, 64 nebo 128 bitů. Ke každému slovu se lze dostat pomocí binární adresy o délce N bitů, takže lze v paměti uložit celkem 2 na N-tou slov. To znamená, že registry procesoru se běžně nepovažují za paměť, protože dokáží uložit pouze jedno slovo a nemají žádný adresovací mechanismus.

Termín paměťové médium se často používá k popisu vnějších pamětí, jako jsou pásky, magnetické disky a optické disky (CD-ROM a DVD-ROM).

Historie

Na začátku 40. let 20. století umožňovaly paměťové technologie většinou jen kapacitu několika bajtů. První elektronický programovatelný digitální počítač ENIAC používal několik tisíc osmikolíkových elektronek a dokázal provádět jednoduché výpočty se 20 desetimístnými čísly, uloženými v elektronkových střadačích.

Další významný pokrok v oblasti počítačových pamětí nastal s příchodem pamětí s akustickou zpožďovací linkou, vyvinutých J. Presperem Eckertem na začátku 40. let 20. století. Pomocí skleněné trubice naplněné rtutí a opatřené na obou koncích piezoelektrickým krystalem dokázaly zpožďovací linky zapisovat bity informací pomocí krystalu tak, že je přenášely zvukovými vlnami, šířícími se ve rtuti. Aby mohla spolehlivě fungovat, měla paměť se zpožďovací linkou omezenou kapacitu v řádu několika set tisíc bitů.

V roce 1946 se objevily dvě alternativní řešení zpožďovacích linek, Williamsova trubice a Selectron, které obě využívaly pro ukládání dat elektronový paprsek ve skleněné trubici. Williamsovu trubici vynalezl Fred Williams, využívala katodovou obrazovkovou trubici, a byla první pamětí s přímým přístupem. Měla větší kapacitu než Selectron (ten byl omezen na 256 bitů, zatímco Williamsova trubice dokázala uložit několik tisíc bitů), a byla také levnější. Williamsova trubice se ovšem ukázala být nepříjemně citlivá na rušení z okolí.

Na konci 40. let 20. století začaly snahy o vývoj energeticky nezávislých pamětí. Jay Forrester, Jan A. Rajchman a An Wang vyvinuli feritovou paměť, která umožňovala obnovení obsahu paměti po ztrátě napájení. Feritové paměti se staly hlavním typem používané paměti až do vynálezu paměti na bázi tranzistorů koncem 60. let.

Vývoj technologie a masová výroba umožnily nástup takzvaných „počítačů s velmi velkou pamětí“.[2]

Termín „paměť“ v oboru počítačů obvykle označuje paměť s přímým přístupem neboli RAM.

Energeticky závislá paměť

Energeticky závislá nebo také volatilní paměť je počítačová paměť, která k udržení informace vyžaduje neustálé napájení. Většina moderních polovodičových energeticky závislých pamětí je buď statická RAM (viz SRAM), nebo dynamická RAM (viz DRAM). SRAM udrží svůj obsah, dokud je připojené napájení, je jednoduchá na obsluhu, ale používá šest tranzistorů na jeden bit. Dynamická RAM je náročnější na obsluhu a řízení a potřebuje pravidelné obnovovací cykly, aby neztratila svůj obsah. DRAM ovšem používá pouze jeden tranzistor a jeden kondenzátor na jeden bit, což umožňuje dosáhnout vyšších hustot, a díky vyššímu počtu bitů na paměťovém čipu také mnohem nižší cenu za bit. SRAM se nevyplatí používat pro systémovou paměť osobních počítačů, kde dominuje DRAM, ale využívá se ve vyrovnávacích pamětech. SRAM se běžně používá v malých vestavěných systémech, které obvykle potřebují jen pár desítek kilobajtů paměti nebo méně. Mezi nastupující technologie energeticky závislých pamětí, které by mohly SRAM a DRAM nahradit nebo s nimi soupeřit, patří Z-RAM, TTRAM, A-RAM a ETA RAM.

Energeticky nezávislá paměť

Energeticky nezávislá nebo také nevolatilní paměť je počítačová paměť, která dokáže uchovat uloženou informaci, i když není napájená. Mezi příklady nevolatilní paměti patří paměť pouze pro čtení (viz ROM), flash paměť, většina typů magnetických počítačových paměťových zařízení (např. pevný disk, disketa a magnetická páska), optické disky i první metody ukládání počítačových dat jako třeba děrná páska a děrný štítek. Mezi nastupující technologie energeticky nezávislých pamětí patří FRAM, CBRAM, PRAM, SONOS, RRAM, NRAM a paměti racetrack a millipede.

Správa paměti

Podrobnější informace naleznete v článku Správa paměti.

Řádná správa paměti je nezbytná pro správnou funkci počítačového systému. Moderní operační systémy používají pro řádnou správu paměti složité systémy. Pokud by je nepoužívaly, mohlo by docházet k chybám, sníženému výkonu, a v nejhorším případě i k napadení viry a škodlivým softwarem.

Při téměř jakékoli činnosti musí počítačový programátor uvažovat nad správou paměti. I při pouhém uložení čísla do paměti musí programátor určit, jak ho má paměť uložit.

Chyby při správě paměti

Nevhodná správa paměti je častou příčinou chyb.

  • Při aritmetickém přetečení je výsledkem operace vyšší číslo, než jaké povoluje alokovaná paměť. Například 8bitové celé číslo se znaménkem umožňuje uložit čísla od −128 do +127. Pokud máme hodnotu 127 a instrukci přičíst jedničku, počítač nemůže výsledné číslo 128 uložit do přiděleného prostoru. V takovém případě dojde k nežádoucí operaci, například ke změně hodnoty čísla na −128 namísto správných +128.
  • Únik paměti nastane, když si program vyžádá paměť od operačního systému, a po ukončení operace s pamětí už ji nevrátí zpátky. Program s touto chybou bude postupně vyžadovat více a více paměti, dokud neselže z důvodu nedostatku paměti.
  • K porušení ochrany paměti dochází, když se program snaží přistupovat k paměti, ke které nemá přístup povolen. Takový program bývá obvykle ukončen operačním systémem.
  • Přetečení vyrovnávací paměti znamená, že program zapisuje data na konec svého alokovaného prostoru, a pak pokračuje v zápisu dat stále dál, do paměti, která už patří jiným programům. To může mít za následek chybové chování programu, včetně chyb přístupu do paměti, nesprávných výsledků, pádu programu nebo narušení bezpečnosti systému. Je tedy základem mnoha softwarových zranitelností a může být zneužito ke zlým úmyslům.

První počítačové systémy

V prvních počítačových systémech programy obvykle uvedly místo, kam chtějí zapisovat a jaká data chtějí zapsat. Místem se rozumělo fyzické umístění přímo v paměťovém hardwaru. Slabý výkon těchto počítačů nedovolovat složité systémy správy paměti, jaké se používají dnes. Protože většina takových počítačů byla jednoúlohová, složité systémy správy paměti nebyly ani tolik zapotřebí.

Tento přístup má svá úskalí. Pokud je určené umístění nesprávné, počítač zapíše data do jiné části programu. Následky takové chyby jsou nepředvídatelné. V některých případech mohou nesprávná data přepsat paměť používanou operačním systémem. Toho mohou využívat počítačoví crackeři k tvorbě virů a škodlivého softwaru.

Virtuální paměť

Podrobnější informace naleznete v článku Virtuální paměť.

Virtuální paměť znamená systém, ve kterém je všechna fyzická paměť řízena operačním systémem. Když program potřebuje paměť, vyžádá si ji od operačního systému. Operační systém pak rozhodne, na jakém fyzickém místě se bude přidělená paměť nacházet.

To má několik výhod. Počítačoví programátoři se už nemusí starat o to, kde se paměť ve skutečnosti nachází, nebo zda bude mít uživatelův počítač dostatek paměti. Dovoluje to také používat více typů paměti. Část paměti může být například umístěna v RAM čipech, zatímco zbytek je uložen na pevném disku. Tím se výrazně zvýší množství paměti, které je programům k dispozici. Operační systém umístí aktivně používanou paměť do fyzické RAM, která je mnohem rychlejší než pevný disk. Když množství RAM nestačí pro všechny aktuálně spuštěné programy, může nastat situace, kdy počítač tráví více času přesouváním obsahu paměti z RAM na disk a zpět než plněním úkolů programu. Tomuto jevu se říká hluché stránkování.

Systémy virtuální paměti obvykle obsahují i ochranu paměti, ale nemusí tomu tak být vždy.

Chráněná paměť

Podrobnější informace naleznete v článku Ochrana paměti.

Chráněná paměť znamená systém, ve kterém má každý program přidělen k používání svou oblast paměti a nesmí se pohybovat mimo tento rozsah. Používání chráněné paměti významně zvyšuje jak spolehlivost, tak bezpečnost počítačového systému.

Bez ochrany paměti se může stát, že chyba v jednom programu pozmění obsah paměti používané jiným programem. Kvůli tomu pak tento jiný program používá data z poškozené paměti, což může mít nepředvídatelné následky. Pokud je poškozena paměť operačního systému, může havarovat celý počítačový systém a je nutné ho restartovat. Někdy programy pozmění obsah paměti používané jiným programem záměrně. Takto se chovají viry a škodlivý software, aby získaly kontrolu nad počítačem.

Systém ochrany paměti přiděluje programům jejich vlastní oblasti paměti. Když operační systém zjistí, že se program pokusil změnit paměť, která mu nepatří, je tento program ukončen. Tímto postupem zhavaruje pouze program, který chybu způsobil, a ostatní programy nejsou chybou zasaženy.

Systémy ochrany paměti téměř vždy obsahují i virtuální paměť.

Reference

  1. A.M. Turing a R.A. Brooker (1952). Programmer's Handbook for Manchester Electronic Computer Mark II. University of Manchester.
  2. Například: STANEK, William R. Windows Server 2008 Inside Out. [s.l.]: O'Reilly Media, Inc., 2009. Dostupné online. ISBN 9780735638068. S. 1520. (anglicky)

Externí odkazy

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.