Paměť počítače
Paměť počítače je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje. Paměti lze rozdělit do tří základních skupin:
· registry: paměťová místa na čipu procesoru, která jsou používaná pro krátkodobé uchování právě zpracovávaných informací
· vnitřní (interní, operační) paměti: paměti osazené většinou na základní desce. Bývají realizovány pomocí polovodičových součástek. Jsou do nich zaváděny právě spouštěné programy (nebo alespoň jejich části) a data, se kterými pracují.
· vnější (externí) paměti: paměti realizované většinou za pomoci zařízení používajících výměnná média v podobě disků či magnetofonových pásek. Záznam do externích pamětí se provádí většinou na magnetickém nebo optickém principu. Slouží pro dlouhodobé uchování informací a zálohování dat.
Základní parametry pamětí jsou:
· kapacita: množství informací, které je možné do paměti uložit
· přístupová doba: doba, kterou je nutné čekat od zadání požadavku, než paměť zpřístupní požadovanou informaci
· přenosová rychlost: množství dat, které lze z paměti přečíst (do ní zapsat) za jednotku času
· statičnost / dynamičnost:
o statické paměti: uchovávají informaci po celou dobu, kdy je paměť připojena ke zdroji elektrického napětí
o dynamické paměti: zapsanou informaci mají tendenci ztrácet i v době, kdy jsou připojeny k napájení. Informace v takových pamětech je nutné tedy neustále periodicky oživovat, aby nedošlo k jejich ztrátě.
· destruktivnost při čtení:
o destruktivní při čtení: přečtení informace z paměti vede ke ztrátě této informace. Přečtená informace musí být následně po přečtení opět do paměti zapsána.
o nedestruktivní při čtení: přečtení informace žádným negativním způsobem tuto informaci neovlivní.
· energetická závislost:
o energeticky závislé: paměti, které uložené informace po odpojení od zdroje napájení ztrácejí
o energeticky nezávislé: paměti, které uchovávají informace i po dobu, kdy nejsou připojeny ke zdroji elektrického napájení.
· přístup
o sekvenční: před zpřístupněním informace z paměti je nutné přečíst všechny předcházející informace
o přímý: je možné zpřístupnit přímo požadovanou informaci
· spolehlivost: střední doba mezi dvěma poruchami paměti
· cena za bit: cena, kterou je nutno zaplatit za jeden bit paměti
Následující tabulka ukazuje výše popsané tři typy pamětí a jejich parametry.
registry vnitřní paměti vnější paměti
kapacita velmi malá (jednotky bytů) vyšší (řádově 100 kB – 100 MB) vysoká (řádově 10 MB - 10 GB)
přístupová doba velmi nízká (velmi rychlá paměťová místa) vyšší (řádově 10 ns) vysoká (řádově 10 ms - 10 min)
přenosová rychlost vzhledem k malé kapacitě se většinou neuvažuje vysoká (řádově 1 - 10 MB/s) nižší než u vnitřních pamětí (řádově 10 MB/min - 1 MB/s)
statičnost / dynamičnost statické statické i dynamické statické
destruktivnost při čtení nedestruktivní destruktivní i nedestruktivní nedestruktivní
energetická závislost závislé závislé nezávislé
přístup přímý přímý přímý i sekvenční
spolehlivost velmi spolehlivé spolehlivé méně spolehlivé
cena za bit vzhledem k nízké kapacitě vysoká nižší než u registrů a vyšší než u vnějších pamětí vzhledem k vysoké kapacitě nízká
Organizace pamětí v PC
První počítače PC používaly operační paměť osazenou pomocí jednotlivých integrovaných obvodů, z nichž každý měl šířku přenosu 1 bit nebo čtveřici bitů (tzv. nibble - nibble oriented memory). Vzhledem k tomu, že tyto počítače byly nejčastěji postaveny na bázi procesoru 8088, který měl 8bitovou datovou sběrnici, bylo nutné, aby byl vždy osazen zároveň patřičný počet paměťových obvodů. Paměťové obvody byly dodávány v pouzdrech DIP, osazovaly se přímo do odpovídajících patic na základní desce a měly kapacitu 256 kb (popřípadě 256 knibbles). V závislosti na typu základní desky se používaly dva způsoby realizace:
· bezparitní:
Organizace 8 x 256 kb Organizace 2 x 256 knibble
· Při tomto způsobu jsou paměťové obvody zapojeny přímo k datové sběrnice procesoru. Je použito osm obvodů s šířkou přenosu jeden bit nebo dva obvody s šířkou přenosu jeden nibble. Není zde použito žádného zabezpečení pro případ, že by se informace v paměti poškodila (např. vadná paměť, závada na základní desce).
· paritní:
Organizace 9 x 256 kb Organizace 2 x 256 knibble + 1 x 256 kb
· Toto zapojení používá v obou případech navíc jeden paměťový obvod s šířkou přenosu 1 bit, do kterého se ukládá pro každých osm bitů jeden bit paritní. Pří zápisu do paměti je pomocí generátoru parity vygenerován paritní bit. Paritní bit je generován tak, že ukládaná 8bitová informace se doplní buď na sudý počet jedniček (sudá parita), nebo na lichý počet jedniček (lichá parita). Tento jeden bit je uložen do posledního paměťového obvodu. Při čtení z paměti se pak přečte všech devět bitů a provede se kontrola, zda uložená informace odpovídá uloženému paritnímu bitu. Pokud kontrola nedopadne správně, je zřejmé, že došlo k poškození informace uložené v paměti a práce počítače je zastavena.
Zapojení 2 x 256 knibble + 1 x 256 kb
Tento způsob organizace operační paměti se používal hlavně u počítačů řady PC a PC/XT. Je možné se s ním setkat i u prvních počítačů řady PC/AT osazené procesorem 80286.
Se vzrůstající kapacitou operační paměti přichází další způsob její organizace, který dovoluje její snadnější rozšiřování a také větší kapacitu. Paměti jsou integrovány na miniaturních deskách plošného spoje označovaných jako SIMM(Single Inline Memory Module), které jsou potom jako celek osazovány do odpovídajících konektorů na základní desce (popř. jiných zařízení využívajících ke své činnosti paměť). Tyto moduly jsou vyráběny ve dvou variantách:
· 30-pin SIMM: používaný u většiny počítačů s procesory 80286, 80386SX, 80386 a některých 80486. Mají 30 vývodů a šířku přenosu dat 8 bitů (bezparitní SIMM) nebo 9 bitů (paritní SIMM). Jsou vyráběny s kapacitami 256 kB, 1 MB a 4 MB.
Paměťový modul SIMM (30-pin)
· 72-pin SIMM (PS/2 SIMM): používaný u počítačů s procesory 80486 a vyššími. PS/2 SIMMy mají 72 vývodů, šířku přenosu dat 32 bitů (bezparitní SIMM) nebo 36 bitů (paritní SIMM - pro každý byte jeden paritní bit). Jsou vyráběny s kapacitami 4 MB, 8 MB, 16 MB, 32 MB.
Paměťový modul SIMM (72-pin)
Paměťové moduly SIMM
Paměťové moduly osazené ve svých konektorech Pozice pro paměťové moduly SIMM
Kromě modulů SIMM se ještě u některých dřívějších počítačů s procesory 80286 a 80386 používaly moduly SIPP (Single Inline Pin Package). Jedná se o moduly velmi podobné modulům 30-pin SIMM. Moduly SIPP mají stejný počet stejně rozmístěných vývodů. Jediný rozdíl je ve tvaru vývodů, které jsou tvořeny malými špičkami (piny).
Paměťový modul SIPP (30-pin)
Posledním dnes vyráběným typem paměťových modulů jsou paměťové moduly typu DIMM (Dual Inline Memory Module). Jedná se podobně jako v případě modulů SIMM o malou desku plošného spoje s osazenými paměťovými obvody. Moduly DIMM mají 168 vývodů a šířku přenosu 64 bitů. Vyrábějí se s kapacitami 16 MB, 32 MB a 64 MB.
Paměťové moduly DIMM
Paměťové banky (Memory banks)
Pokud jsou paměti do počítače přidávány (odebírány), je nutné, aby se tak dělo pouze v rámci paměťových banků. Paměťový bank je tedy nejmenší jednotka paměti, která může být do počítače přidána, popř. z počítače odebrána.
U počítačů s procesory 8088 je tento bank tvořen 8 (poř. 9) paměťovými čipy nebo dvojicí nibble oriented čipů (popř. s jedním jednobitovým čipem pro paritní bit). U počítačů používajících moduly SIMM (SIPP) je velikost jednoho banku závislá na šířce datové sběrnice procesoru. Je nutné, aby šířka přenosu dat modulů v jednom banku byla stejná jako šířka datové sběrnice procesoru.
Procesor Šířka datové sběrnice Velikost banku pro 30-pin SIMM Velikost banku pro 72-pin SIMM Velikost banku pro DIMM
80286 16 bitů 2 moduly nepoužívá se nepoužívá se
80386SX 16 bitů 2 moduly nepoužívá se nepoužívá se
80386 32 bitů 4 moduly nepoužívá se nepoužívá se
80486 32 bitů 4 moduly 1 modul nepoužívá se
Pentium 64 bitů nepoužívá se 2 moduly 1 modul
Pentium Pro 64 bitů nepoužívá se 2 moduly 1 modul
Pentium II 64 bitů nepoužívá se 2 moduly 1 modul
Stav čekání (Wait State)
Paměť musí být schopna reagovat na požadavky procesoru během dvou taktů hodin (takt hodin je převrácená hodnota frekvence procesoru). Kromě přístupové doby mají paměti DRAM používané jako operační paměť ještě tzv. nabíjecí dobu.
Příklad: Mějme počítač s procesorem o frekvenci 66 MHz => 1 takt hodin je 15 ns => 2 takty hodin jsou 30 ns => jsou potřeba paměti DRAM s přístupovou dobou dobou 30 ns. Takto rychlé paměti DRAM však neexistují. DRAM paměti jsou vyráběny s přístupovou dobou 60 - 70 ns. Proto je nutné v tomto případě při každém přístupu do paměti přidat dva čekací takty (celkem 4 takty = 60 ns), kdy procesor nebude dělat nic, ale bude čekat na pomalejší operační paměť. Pokud tuto úvahu provedeme opačným směrem, tj. 60 ns = frekvenci 16,6 MHz, zjistíme, že tímto řešením sice počítač bude pracovat, ale jeho výkon je při přístupech do paměti degradován na procesor s frekvencí 16,6 MHz.
Řešení:
· Rychlejší paměti DRAM? Neexistují.
· Použít místo pamětí DRAM paměti SRAM? Příliš drahé.
Proto v současných moderních počítačích se používají tzv.cache paměti.
Vnitřní paměti
Interní paměti jsou zapojeny jako matice paměťových buněk. Každá buňka má kapacitu jeden bit. Takováto buňka tedy může uchovávat pouze hodnotu logická jedna nebo logická 0.
Obecná struktura vnitřní paměti.
Struktura vnitřní paměti
Při přístupu do paměti (čtení nebo zápis) je vždy udána adresa paměťového místa, se kterým se bude pracovat. Tato adresa je přivedena na vstup dekodéru. Dekodér pak podle zadané adresy vybere jeden z adresových vodičů a nastaví na něm hodnotu logická 1. Podle toho, jak jsou zapojeny jednotlivé paměťové buňky na příslušném řádku, který byl vybrán dekodérem, projde resp. neprojde hodnota logické jedničky na datové vodiče. Informace je dále na koncích datových vodičů zesílena zesilovačem. V případě, že hodnota logická jedna projde přes paměťovou buňku, obdržíme na výstupu hodnotu bitu 1. V opačném případě je na výstupu hodnota bitu 0.
Zcela analogický je postup i při zápisu hodnoty do paměti. Opět je nejdříve nutné uvést adresu paměťového místa, do kterého se bude zapisovat. Dekodér vybere adresový vodič příslušný zadané adrese a nastaví na něj hodnotu logická 1. Dále se nastaví hodnoty bitů b1 až b4 na hodnoty, které se budou do paměti ukládat. Tyto hodnoty jsou potom uloženy do paměťových buněk na řádku odpovídajícím vybranému adresovému vodiči.
Vnitřní paměti je možné rozdělit do následujících základních skupin:
· ROM
· PROM
· EPROM
· EEPROM
· Flash
· RAM
o DRAM
o SRAM
Paměti ROM (Read Only Memory)
Paměti ROM jsou paměti, které jsou určeny pouze pro čtení informací. Informace jsou do těchto pamětí pevně zapsány při jejich výrobě a potom již není možné žádným způsobem jejich obsah změnit. Jedná se tedy o statickou, energicky nezávislou paměť určenou pouze ke čtení. Při výrobě tohoto typu paměti se používá nejčastěji některé z následujících realizací paměťových buněk.
Paměťová buňka paměti ROM může být realizována jako dvojice nespojených vodičů a vodičů propojených přes polovodičovou diodu.
Realizace buňky paměti ROM pomocí polovodičové diody
V prvním případě nemůže žádným způsobem hodnota logická jedna přejít z adresového vodiče na vodič datový. Jedná se tedy o buňku, ve které je permanentně uložena hodnota 0. V případě druhém hodnota logická 1 přejde z adresového vodiče přes polovodičovou diodu na vodič datový. Toto zapojení představuje tedy paměťovou buňku s hodnotou 1. Dioda je zapojena tak, aby hodnota logická 1 mohla přejít z adresového vodiče na datový, ale nikoliv v opačném směru, což by vedlo k jejímu šíření po velké části paměti.
Jednotlivé buňky paměti ROM je také možné realizovat pomocí tranzistorů, a to jak v technologii TTL, tak v technologiích MOS. Její realizace v technologii TTL je uvedena na následujícím obrázku.
Realizace paměťové buňky ROM pomocí tranzistoru v technologii TTL
V tomto případě je na datový vodič neustále přiváděna hodnota logická 1. Pokud dojde k vybrání adresového vodiče a tím k umístění hodnoty logická jedna na tento vodič, tak v případě, že je tranzistor T spojen s tímto adresovým vodičem, dojde k jeho otevření a tím k propojení datového vodiče se zemí. Na takto propojeném datové vodiči se potom objeví hodnota logická