Paměti
. Polovodičové paměti
- vlastní - látky, které jsou za určitých podmínek nevodiče a malou změnou například teploty se změní na vodiče –
- nevlastní – přidáme cizí látky a vznikne nadbytek elektronů neboprotonů
Jsou to například diody, tranzistory, tyristory, atd.
Unipolární – potřebují polovodiče typu N
Bipolární – potřebují polovodiče typu N a P.
RWM (read write memory)
Tyto paměti mají pevně danou strukturu, základ tvoří paměťová matice. Paměťová buňka je tvořena buď klopným obvodem (static), nebo kondenzátorem (dynamic).
Static – čtu z paměti, aniž bych mazal její obsah.
Dynamic – abych přečetl paměť na kondenzátorech, musím nechat vytéct proud, a proto se po každém refreshy musí obnovit znova celá paměť, poměrně malá paměť, která má velký ztrátový činitelđ, obsah se musí neustále obnovovat (refresh).
Static

Dynamic
dynamické paměti vyžadují refresh, protože po každém
čtení z paměti se ztrácí její obsah.
Při čtení se pošlou data do bufferu, kde se uloží a odtud na sběrnici
v následujícím taktu se pošlou zpět z bufferu přes I/O zesilovač a
zapíší se na to místo, kde byli předtím uloženy. Po určité době je
informace nutno znova zapsat a k tomu se využívá DMA, které velmi rychle
obnovuje paměť.
Fast page paměti
Mají buffer velikosti jedné stránky, všechny buňky dovedu zapsat do paměti. Čtu, změním adresu a totéž znova až do té doby, než dojde k zápisu (rychlostránkové čtení).
Flash
Programovatelná paměť (řízená programem)
Latch – zachytávací obvod, který zjišťuje, co se děje
na sběrnici. Zjistí, jestli přišli instrukce nebo data.
Instrukce – I/O Latch – programový registr – řadič
Data – I/O Latch – datový registr – paměťová matice
– data
V této paměti lze programovat čtení i zápis. Maže se celá paměť
najednou nebo po blocích – vhodné pro emulaci harddisků u notebooků jako
PC karty místo HDD. Velikost Flash paměti je do 20 MB. V klasických
počítačích se používá například u BIOSu, kde se využívá při
upgrade.
Rychlost čtení – odpovídá dynamickým pamětem.
Rychlost zápisu- ve srovnání s HDD rychlejší.
Operační paměť
Každý µP startuje v Real modu
EMS (expandive memory specification) – pomocná, odkládací
prostor umístěný mimo souvislou paměťovou oblast. Z EMS paměti není nic
spouštěno. Lze ji adresovat pouze nepřímo – nemusí mít adresovací
vodiče.
XMS – dostupná přes adresovací vodiče.
HMB (high memory block) – paměť vytvořená v Real modu
vytvářením fyzické adresy.

Od µP 286 AB je větší jak 20 b, a proto mohu adresový vodič adresovat až po 16 M (24b AB).
UMB (upper memory block) – jsou zde uloženy drivery
zařízení (shadow paměti), počítač se snaží zapsat určité věci znova,
tak aby urychlil jejich použití (např. BIOS se zapíše ještě jednou do UMB
a při další práci s BIOSem se používá této paměti (shadow)
Protected mode
Umožňuje multitasking, protože zabraňuje, aby se spuštěné programy vzájemně rušili. Umožňuje segmentování i stránkování paměti.
Nastavuje práva uživatelů (určené 2B, mají čtyři stupně):
- právo zásahu do operačního systému, nejvyšší
- právo zásahu do utilit, vyšší
- právo zásahu do knihoven, nižší
- pro obyčejné uživatele, nejnižší
*Je zapotřebí umět adresovat XMS paměť. *
µP 286 uměl přejí do protected modu, ale neuměl přejít zpět.
µP 386 uměl přejít do protected modu i zpět.
Vytváření adresy v Protected modu
Virtuální adresa se
skládá ze dvou částí: offset a segment selectoru, který nahradí
segment.
24b adresa z z LDT (GDT) + offset = fyzická (lineární adresa)
Segment Selector – má 16b, třetí nejnižší b určuje typ tabulky, poslední dva b určují práva uživatelů. Zbývajících 13b se nazývají index a určují polohu v tabulce LDT nebo GDT. Velikost LDT případně GDT tabulky je 8K (213) – každý b indexu ukazuje na jeden řádek (segmentační tabulka – určuje segment, 16B až 64KB)
LDT (local description table) – určen pro umisťování jedinečných dat
GDT (global description table) – ukazuje, kde jsou
umístěny LDT, nebo základní globální a systémové věci. Jsou zde
programy nebo proměnné přístupné více uživatelům
Řádek tabulky

Reserve
- rozšířená báze (osmý bit) – limit na 24b, segment může být velký až 16M, od 386
- rozšíření limitu (sedmý bit), od pentia
Rights (práva) – opakují se práva jako u Selectoru a navíc jsou zde další například atribut, atribut souboru pro I/O, archivní – u souborů, které jsou originální a má je cenu archivovat.
Bázová adresa – je 24b od µP 286, určuje celou počáteční adresu segmentu, kterou nepočítá, ale přiděluje
Limit – max. velikost jsou samé F, program dlouhý 4KB zabere 4KB báze adresy, segment je však velký 64KB, proto není segment po 4 KB využit. Do tohoto nevyužitého prostoru se natahuje další program. *Segment je od 2B do 64KB, další segment se nachází minimálně na dalším řádku. Kontroluje se, aby se nepřepsaly programy v paměti. Segmentace je protected modu globální (jedna), která přepíná lokální tabulky (více).
Operační systém se snaží ukládat svůj systém a tabulky od 4 GB dolů.*
Stránkování
V real modu postupná EMS paměť.
V protected modu je tento mechanismus od µP 386. Umožňuje swapování – vyčlení se prostor na disku, který umožní ukládat část operační paměti na HDD – virtuální paměť => rozšíření OP o virtuální paměť. Operace s virtuální pamětí se nazývají swapování. Do virtuální paměti se ukládají programy, které počítač aktuálně nepoužívá. Umístění je závislé na adrese, kde se program nacházel. Swapovací prostor je minimálně dvakrát větší jak operační paměť. Abych mohl odkládat programy, používá se stránkování, protože stránka (pevný celek) má konstantní délku, a proto je komunikace s paměti rychlejší. Swapovací prostor není zahrnut do systému. Pokud aplikace vyžaduje 200 MB v OP a OP je pouze 128MB, tak se zbytek uloží do virtuální paměti. Podle adresy rámce se hledá, kde je stránka umístěna na HDD. Jestliže je sector 512, číslo rámce je 16, tak budu muset jít na 128 – 135, protože mám 8 sectoru=> 16x8
Vytváření fyzické adresy

Zde zjistíme zda je stránka uložena v operační nebo virtuální paměti. Jestliže není v operační paměti, tak si najdu místo v OP, které se právě nepoužívá a to přesunu do virtuální paměti a z virtuální paměti natáhnu požadovanou stánku.
Lineární adresa – vstupní adresa ke stránkování.
Formát tabulek je doplněn o další bity:
Řádek stránkovací tabulky:
Adresa rámce | AV L |
X`X | D | A | C | T | U | W | P |
Řádek stránkovacího adresáře:
Adresa rámce | AV L |
XO O |
D | A | C | T | U | W | P |
- AVL – volné b pro systém. Programátora
- X – rezerva, musí být 0
- D – dirty – zápis
- OO – délka stránka, 00=4kB
- A – zápis nebo čtení do stránky paměti nebo tabulky
- U – user
- W – writetable
- P – present – tabulka je obsazena (existuje zápis ve fyzické paměti)
- C – PCD – Cache disable
- T – PWT Write Through
Lineární adresa – vznikne segmentací, pokud nenásleduje stránkování stává se fyzickou adresou. Jinak fyzickou adresu získám až stránkováním.
Režim Pentia
Pentium pracuje se segmentací i se stránkováním, ale více používá stránkování. V Pentiu se tento režim nazývá Flat mode.
Flat mode Je k dispozici paměť, která umožňuje nesegmentovat, ale přejí přímo do stránkovacího režimu. Segment je velký 4GB, offset – 32b, a proto se mohu pohybovat v celé paměti a segmentace ztrácí smysl. Okamžitě se přechází na stránkování – stránky jsou velké 4k a 16M.
IDT (interupt desk table) V Real modu jsou na nejnižších adresách vektory přerušení. Ty musí mít i Protecte mode, a proto se zavádí tabulka IDT, která se stará pouze o přerušení. Jestliže v tabulce potřebují najít N přerušení, musím vynásobit N přerušení osmy. Tabulka je umístěna ve spodní části paměti.
Obsah celého µP se ukládá do paměti. Každy proces má svou interupt tabulku, pří přepínání se nejdříve zjistí na co chceme přepnout a pak se to vyhledá v tabulce.
Synchronní a asynchronní paměti
Více se používají synchronní paměti. Operační paměť se osazuje dynamickými pamětmi, protože jsou menší než statické. Používají se DRAM (asynchronní) a SDRAM (synchronní RAM).
SDRAM
Tok dat je řízen vnějšími hodinami. Obsahují dvě banky dat (32b soustavy
matic), což má vliv na rychlost čtení. Zatímco jedna banka vysílá data,
druhá může provádět refresh nebo dekódovat adresu. Nejvíce času zabírá
výběr select chipu, z kterého se má číst. První čtení je pomalé a
další jsou rychlé. Synchronní paměti mají burst režim, který umožňuje
načítat 4 adresy najednou => burst režim je naprogramován tak, že je
schopen vybavit celou stránku, tj. jeden přenos na stránku, nebo 2,4,8
přenosy.

DRAM
Klasická (konvenční) paměť, která vyžaduje pro každá data nové zadání. Je vyvíjena snaha, aby paměť byla, co nejmenší. K paměti vede 16b adresový bus, proto musím adresu zadávat na dvakrát.
CAS – signál, který zadává adresu, jenž platí pro sloupec
RAS – signál, který zadává adresu, jenž platí pro řádek Když
se mění RAS a CAS, tak se musí provést znova Refresh. Refresh by se měl
provádět po každém čtení. 3 – 3 – 3 – 3 5 – 3 – 3 – 3
EDO RAM
(Enhanced Data Output RAM) Má dvojnásobnou rychlost přístupu. Zkracuje cyklus o 30%, protože je schopna současně vysílat data a nastavovat novou adresu. Data jsou na výstupu připraveny, zatímco řadič paměti vyhledá nová data signálem CAS. Data na sběrnici jsou platná po delší dobu. Umožňuje zvýšit výkon počítače přibližně o 5%.
3 – 2 – 2 – 2
5 – 2 – 2 – 2
BEDO RAM
(Burst Enhanced Data Output RAM)
Nezadává podruhé CAS, protože si ho pamatuje, ale rovnou zadává RAS.
3 – 1 – 1 – 1
5 – 1 – 1 – 1
DDR RAM
Využívá se zde toho, že řídící signály jsou krátké impulsy. Může se zvýšit kladné i záporné hrany hodin.
RD RAM
Jsou podporovány až od Pentia 4 ve větší míře. Jsou vyvinuty do frekvence 800 MHz, Pentium však používá nejvíc pouze 400MHz. Čipy jsou 8b, je zapotřebí, aby se poskládaly kanály.
RIMM moduly
Rychlá vybavovací doba, která závisí, jakou rychlostí se komunikuje s
ostatními zařízeními.
4 kanály řazeny v pipelingu
Rychlost přenosu při 800 MHz je 1,6 GB/s. Výstupy mají vlastní CACHE. Pro
zpětný zápis nemají buffer => odpadá čtení z bufferu. Buffer nahrazuje
nahrávací zesilovač, z kterého se nahrává zpět do paměti, což se
uskutečňuje v jednom cyklu. Rychlost RIMM modulů je srovnatelná se statickou
pamětí => nepotřebuje CACHE. Má přímí konektor, má jiný způsob
klíčování.

Grafické paměti
Charakteristickou vlastností těchto pamětí je dvouportovost – každá
paměť má dva porty => monitor může komunikovat současně s grafickým
procesorem a pamětí.
Důležitá je kvůli rychlosti také dvoubankovnost.

VRAM (VIDEO RAM)
Je dvouportová , 1 banka je založena na principu EDO a (fast) page. Moduly
mají kapacitu 4Mb.
WRAM
Paměť pro grafické karty, má stejnou strukturu jako VRAM, umožňuje
přesouvání dat po blocích. Je o 30% rychlejší díky dvojitému
bufferingu.
SGRAM (synchronní grafická DRAM)
Má dvě banky, je jednoportová, pro svou rychlost se používá u 3D
karet.
3D RAM
dvouportová, čtyřbanková paměť. 1,6 GB/s. Obsahuje vlastní ALU, CACHE,
SERIALIZER. Tyto paměti jsou určeny pro 3D grafiku, mají až 10x větší
výkon než VRAM.
SAM – serializer
Každá dvojce bank sdílí jeden SAM přes 640 b sběrnice. SAM vytváří
serioparalelní konektor se šířkou 256 b.
ALU urychluje práci z bufferu, který se používá pro vidění
viditelnosti.
Dvojitý z buffer – pro časově proměnné veličiny.
SIMM, RIMM, DIMM
SIMM – single inline memory modul, EDO(často), BEDO,
atd.
Paměťové moduly s konektory pouze na jedné straně. Konektory jsou 30 a 72
pinové.
30 pinové (8b (9) DB) – velikost karet do 4MB, dnes se už
nevyrábí, banka paměti – dvojce.
72 pinové (32b (36) DB) – velikost karet do 64 MB, kapacita
se sama hlásí. bity PD1 a PD2 určují velikost paměti
bity PD3 a PD4 určují rychlost paměti
U Pentia musíme moduly osazovat po dvojicích, pokud to není double modul.
Single sided - sestaveny se single modulů - 1, 4 , 16, 64MB
Double-sided sestaveny s dvojic single modulů. Pak kapacita je dvojnásobná.
Mají propojeny kontakty 33 a 45.
DIMM – double inline memory modul, 64 b, dvouřadové konektory, zásuvné paměti o velikostech: 16, 32, 64, 128, 256 MB. Jsou obecné, nepoužívají se pouze pro OP, mají mnoho formátů (to se týká 6 nožiček, pro OP se používá pouze 168b)
168 pinové (64b (72) DB) – používají paritu
- ECC – řetězec, který spočítá celý řetězec, zakóduje celé slovo naráz.
Napětí 3,3 V(dnes) nebo 5V. Jinak posunutý klíč – nejde
zasunout do konektoru hrubou silou, ale jak se říká, co nejde hrubou silou,
jde ještě větší silou.
U DIMM modulů se používá Refresh. Většina DIMM je synchronní SDRAM.
RIMM – rambus inline memory modul, používá se pro vysokofrekvenční paměti. Mají jiný konektor => nelze je zaměnit, 8b řídící struktura, určeny pro RAM BUS.
Z buffering – při zobrazení je zapotřebí ukládat hodnoty více objektů, aby se mohly vytvořit viditelné stíny.
Dvojitý z buffering – pro vytvoření časových proměnných