Principy počítačů I PAMĚŤOVÝ SUBSYSTÉM Literatura http://www.tomshardware.com http://www.play-hookey.com/digital/ 6 kb ought to be enough for anybody. Bill Gates, 98 Parametry paměti kapacita objem informace, který je možno uchovat v jedné paměťové jednotce (obvykle ve slovech nebo bytech) velikost slova velikost přirozené jednotky paměti (obvykle počet bitů, pomocí kterého je slovo reprezentováno) přenosová jednotka počet datových elementů, které je možno přenést v kroku (obvykle počet bitů (hl. paměť) nebo bloků (sek. paměť)) Parametry paměti přenosová rychlost rychlost, kterou mohou být data přenášena do/z paměti (špičková vs. zaručená) vybavovací doba čas, za který je paměť schopna vyřídit požadavek cyklus paměti doba mezi dvěma bezprostředně za sebou jdoucími požadavky přístupová metoda Kritéria dělení pamětí funkce způsob přístupu technologie umístění v systému vnitřní organizace detekce / opravy chyb... Dělení pamětí podle funkce ROM read only memory RWM read-write memory Speciální IRAM (Intelligent RAM) CRAM (Crypting RAM)... (WORM write once, read many)
Varianty Dělení podle způsobu přístupu ROM MaskROM PROM EPROM EEPROM FLASH RWM DRAM SRAM Speciální IRAM CRAM RAM Random Access Memory všechna paměťová místa mají svou adresu k paměťovým místům může být přistupováno v libovolném pořadí doba přístupu nezáleží na předchozí adrese, je konstantní SAM Sequential Access Memory paměťová místa nemusejí mít svou adresu přístup sekvenční doba přístupu je závislá na vzdálenosti od počátku Dělení podle způsobu přístupu DAM Direct Access Memory paměťová místa mají jednoznačné adresy přístup ke konkrétnímu místu je proveden kombinací výběru paměťové oblasti a sekvenčního přístupu v rámci této oblasti AAM Associative Access Memory CAM Contents-Addressable Memory přístup k datům ne podle adresy, ale podle (části) obsahu obvykle paralelní prohledávání Technologie pamětí Pre-elektronické relé, zpožďovací linky, ferritová pole Elektronické RAM, FLASH, Magnetické bubny, pásky, disky Optické CD, DVD, MD (chemické, biologické... ) Elektronické paměti Odbočka číslicová logika Dynamické pro udržení obsahu paměti je třeba obnovování Statické pro udržení dat není třeba periodicky obnovovat Booleova algebra NOT AND OR XOR pravdivostní tabulky! &
NOR / NAND Full-adder Pomocí hradla NOR (nebo NAND) je možno realizovat všechny ostatní logické funkce V některých technologických postupech je výroba NOR / NAND jednoduchá a laciná. x y c-in s c-out 8bitová sčítačka Klopný obvod R-S jednoduchá statická paměť - Realizace hradly NOR R S Q n Q n-? Q n Q n-?... konec odbočky Realizace hradly NAND http://www.play-hookey.com/digital/ Dynamická paměť - destruktivní čtení - limitovaná doba uložení + malý počet součástek (SRAM...6 tranz/b.) Příklad realizace dynamické paměti pomocí kondenzátoru a tranzistoru
organizace paměti typická organizace DRAM paměti X paměť řídící logika X paměť addr addr Y Y-gating RAS CAS WE Y sense amps Y-gating data data Zvyšování výkonu DRAM (Nibble Mode Access využita lokalita přístupu po vystavení dat možno pulsy ~CAS získat po sobě jdoucí data) Page Mode Access signál ~RAS podržen > data držena sense amps signál ~CAS a sloupcová adresa měněny podle potřeby Fast Page Mode Access podobné PM ~RAS není držen po celou dobu > snížená spotřeba Zvyšování výkonu DRAM HyperPage Mode Extended DataOut EDO datový výstup může být zachován i při změně adresy Burst EDO BEDO čtení / zápis formováno po čtyřech > interní změna dvou bitů adresy místo celé Video DRAM VRAM přidán posuvný registr jako druhý interface, kam je zkopírován vystavený řádek 8xx7 9 MB/s ~ B / ns Synchronní / asynchronní přístup asynchronní pro dokončení operace je třeba časové kvantum synchronní operace zcela řízena jednotným tikáním hodin
Synchronní přístup k paměti eliminace dodatečných signálů, jednotné časování, zjednodušení interface JEDEC SDRAM (PC66 SDRAM) dual-bank architektura možnost burst mode (,,,8,page) 8 / MHz ( / ns) chipy přidání SPD chipu pro identifikaci PC SDRAM specifikace Intel pro systémy > 8MHz Double Data Rate DDR SDRAM Standard JEDEC omezen MHz výstup aktivován jak na náběžné, tak na sestupné hraně hodinového signálu Rambus DRAM Rambus a Intel celková změna interface,6gb/s Base, Standard, Direct Protocol-based DRAM Rambus DRAM proprietary SyncLink DRAM (SLDRAM) open-industry standard nevyžaduje změnu návrhu nižší hodinová frekvence vnitřní vnější Hierarchie pamětí registry vyrovnávací paměť hlavní paměť odkládací (sekundární) paměť archivní paměť mikropočítače procesor L,L cache RAM pevný disk CD, DVD, pásek Typické parametry v hierarchii Vyrovnávací paměti cache registry cache hlavní p. sekundární p. technologie polovodiče, na procesoru polovodiče na/vně proc. polovodiče magnetický záznam velikost B kb MB GB přístupová doba ~ ns ~ ns ~ - ns ~ - ms obvyklé použití: procesor-hlavní paměť počítač-pomalá periferie využití lokality přístupu: Pokud byla data použita, je naděje, že budou použita znovu. Budou-li k dispozici v rychlé vyrovnávací paměti, nebude třeba na ně čekat archivní p. optický TB ~ a více ms
organizace cache data v cache uložena spolu se svou adresou Vyhledávání dat v cache: plně asociativní mapování přímé mapování skupinově asociativní mapování (sektorové mapování) Fully Associative Mapping při vyhledávání adresy je adresa vyhledána v asociativním adresáři cache přímo vysoká cena tag word tag data inf Direct Mapping na jednom místě v cache může být více bloků každý blok má v cache své místo Set Associative Mapping kompromis mezi přímým a plně asociativním přístupem cache rozdělena na množiny množina obsahuje N řádek dekodér tag line word tag data inf dekodér tag set word tag data inf dekodér tag data inf uvolňovací mechanismy Problém: jsou potřeba data, v cache není volné místo Řešení: něco se vyhodí direct mapping: určeno jednoznačně LRU FIFO LFU random (vše bude vysvětleno později) konzistence dat Je třeba zajistit, aby data v cache odpovídala datům hlavní paměti Strategie: Write-Through současný zápis do cache i hlavní paměti časté zápisy do hlavní paměti Write-Back zápis až při uvolnění z cache možné problémy s koherencí při sdílení (více pamětí cache) 6
Přidělování paměti (spojité - nespojité) Přidělování v jednouživatelských OS: Uživatelský proces OS OS Uživatelský proces OS Uživatelský proces OS OS Část uživatelského kódu je stále v paměti Oblast překrývání Overlays Přidělování v prostředí více procesů: nutno řešit relokace a ochranu pevné oddíly volné oddíly pevné paměť rozdělena na oddíly, procesy ve frontách podle požadované velikosti volné procesy dostávají paměť podle potřeby Řízení paměti bitová mapa (bloky stejné délky, paragrafy ) spojový seznam bloků Je třeba řešit: který blok spojování volných bloků FirstFit NextFit BestFit WorstFit Strategie přidělování 6 Virtuální paměť Schopnost adresovat větší adresový prostor, než je fyzická paměť Klíč převod virtuálních adres na fyzické (parciální zobrazení) základní metody: stránkování segmentace Stránkování Stránkování Virtuální adresový prostor rozdělen na bloky stejné velikosti stránky (pages) Fyzický adresový prostor rozdělen na bloky stejné velikosti jako stránky rámce (frames) fyzická paměť rámec rámec... rámec N- správce představa procesu stránka... stránka i... stránka M- 7
Adresa ve virtuálním prostoru vyjádřena jako dvojice [p,d] Mechanismus stránkování převede číslo stránky p na odpovídající číslo rámce p (lze-li to) mapování. Adresa ve fyzickém prostoru je pak vyjádřena dvojicí [p,d] Neexistuje-li mapování, dojde k výpadku stránky (page fault) Překlad adresy u stránkování page number page offset virtuální adresa stránkovací tabulka fyzická adresa příznaky rámec Problémy stránkování velikost stránkovacích tabulek b adresy GB, stránky kb stránkovací tabulka má MB položek rychlost přístupu do stránkovacích tabulek instrukce s paměťovými operandy... Úpravy Víceúrovňové stránkování řeší problém velikosti tabulek Asociativní paměť řeší problém rychlosti přístupu - lokalita Nulaúrovňové stránkování nejsou stránkovací tabulky, pouze asociativní paměť Inverzní stránkovací tabulky organizace nad rámci, nikoli stránkami Reálný příklad (MB stránky) Reálný příklad (kb stránky) 8
Záznam stránkovací tabulky Algoritmy výměny stránek Skripta FIFO, LIFO, LRU, LFU Optimální stránka NRU Not Recently Used CLOCK Hodinový algoritmus LRU Least Recently Used NFU Not Frequently Used FIFO klasická fronta: nahrazení stránky, která byla v paměti nejdéle Beladiova anomálie zvýšení počtu rámců může vést ke zvýšení počtu výpadků Optimální stránka Vybrána bude stránka, na kterou přistoupíme za nejdelší dobu nelze implementovat 6 7 6 6 7 NRU Not Recently Used Příznaky Accessed, Dirty (nastavuje HW, nuluje OS) Algoritmus: periodické nulování A při výpadku volím náhodně ze tříd v pořadí A-D -, -, -, - CLOCK Hodinový algoritmus Stránky jsou zařazeny v kruhovém seznamu Nastavování A Při výpadku: Je-li A, vyměním, je-li A, nastavím A a posunu se 9
LRU Least Recently Used dlouho nepoužívané stránky asi nebudu potřebovat seznam, který je při každém přístupu upravován HW realizace: 6b čítač, který CPU při přístupu uloží do PTE, vybírá se nejnižší matice n n, při přístupu do rámce k nastavíme k-tý řádek na a k-tý sloupec na. Vybírá se řádek s nejméně. NFU Not Frequently Used SW řešení LRU Čítač u stránek, periodicky přičítáme A, vybere se nejnižší Problém nezapomíná. Úprava posunu doprava, přičítám doleva stárnutí (aging) Segmentace Segment nezávislý adresový prostor..limit Organizace podle potřeb a struktury programu Segmenty různé a měnitelné velikosti Umístění v paměti neviditelné pro proces Výpadky segmentů obdobně jako u stránkování Segmenty je možno přesouvat fyzická paměť segment M segment i... segment Segmentace správce představa procesu segment segment i segment M- Překlad adresy u segmentace segment number segment offset virtuální adresa tabulka segmentů + fyzická adresa příznaky adr. začátku segmentu
Kombinace segmentace a stránkování Jednotka řízení paměti (MMU - memory management unit) 6 Segmentace Logická adresa (Logical address) Lineární adresa (Linear address) Překlad adresy virtuální adresa segment number page number page offset tabulka segmentů stránkovací tabulka Stránkování (-6) Fyzická adresa (Physical address) + fyzická adresa