Paměti

Hardware PC Hardware 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 AVL X`X D A C T U W P

Řádek stránkovacího adresáře:

Adresa rámce AVL XOO 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


 

  Aktivity (1)

Článek pro vás napsal David Jančík [sczdavos]
Avatar
Autor je vášnivý programátor v .NET C# a PHP. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 


Miniatura
Všechny články v sekci
Hardware
Miniatura
Následující článek
Cache

 

 

Komentáře

Avatar
Don
Člen
Avatar
Don:

Jednoduchá otázka? Proč se používá u dynamických pamětí vlastní paměť a ještě k tomu malá statická paměť? Kde je umístěna? Hned u paměťové matice? Za bufferem?

 
Odpovědět 17.5.2012 17:54
Avatar
Sysel
Člen
Avatar
Odpovídá na Don
Sysel:

nejsem si zcela jisty ale pokud si spravne pamatuji ze skoly tak je to nejaky druh "vyrovnavaci"/cahce pameti protoze staticke pameti jsou rychlejsi , ale co se tyce rozmeru jsou nekolikrat vetsi (proto se pouzivaji dynamicke , staticke jen v mensich provedenich = mensi kapacita -> nepouzitelne pro ram / disky)

Odpovědět 17.5.2012 21:06
Sine qua non
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.