Paměti. Rozdělení, charakteristika, druhy a typy pamětí. Banky
Paměti 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: ● statické paměti: uchovávají informaci po celou dobu, kdy je paměť připojena ke zdroji elektrického napětí ● 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í: ● 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. ● nedestruktivní při čtení: přečtení informace žádným negativním způsobem tuto informaci neovlivní. energetická závislost: ● energeticky závislé: paměti, které uložené informace po odpojení od zdroje napájení ztrácejí ● energeticky nezávislé: paměti, které uchovávají informace i po dobu, kdy nejsou připojeny ke zdroji elektrického napájení. přístup ● sekvenční: před zpřístupněním informace z paměti je nutné přečíst všechny předcházející informace ● přímý: je možné zpřístupnit přímo požadovanou informaci spolehlivost: střední doba mezi poruchami paměti
SIMM (Single In-line Memory Modul - paměťový modul s jednou řadou vývodů) - starší moduly mají 30 vývodů a šířku komunikace jeden byte (a kapacitu 256 kB, 1 MB, 4 MB). Pokud je šířka sběrnice 1byty (16 bitů) musí být použity dvojice SIMMů (286, 386SX). U 386 a 486 by měly být trojice a u Pentií dokonce osmice modulů. Novější moduly mají 72 pinů a šířku komunikace 4 byty (kapacita až 64MB). Pro 486 by tedy stačil jediný modul, Pentia vyžadují dvojici. Někdy se označují PS/2. Přitom se SIMMy vyrábějí v provedení Fast Page (viz DRAM) a EDO (viz EDORAM) Jeden bit komunikace navíc se někdy používá pro zabezpečení parity bytu - paritní bit. (9 nebo 36 bitové SIMMy). Moduly bez parity nebo moduly pouze s logickou paritou jsou levnější. Moduly s paritou se moc nepoužívají - místo ztráty jednoho bitu dochází k zamrznutí počítače. U dražších počítačů se používá ECC (Error Checking and Correcting) - samoopravný kód. Musí jej podporovat paměť i deska.
DIMM (Dual In-line Memory Modul - paměťový modul se dvěma řadami vývodů) - má 168 pinů a šířku komunikace 8 bytů.
RIMM
(Rambus In-line Memory Modul) - paměťový modul pro paměti RDRAM.
Bank Bank je kolekce patic pro paměťové moduly. V jednom banku je různý počet patic a jeden bank musí mít osazeny všechny patice. Počet patic je dán šířkou sběrnice a šířkou SIMMu (například u pentiovských desek se šířkou sběrnice 64 bitů se používají dva 72 pinové SIMMy = 2*32 bitů nebo jeden 168 pinový DIMM = 1*64 bitů) . Přesný počet použitelných modulů je třeba nastudovat v dokumentaci základní desky.
Parametry pamětí: Přístupová (vybavovací) doba - udává rychlost v ns, jakou paměť zapíše nebo vyhledá zadaná data (od požadavku do splnění) Přenosová rychlost - množství informací přečtených/zapsaných za jednotku času Kapacita paměti Typ paměti Závislost na napájecím napětí
Fyzikální principy paměti: Prvky paměti jsou schopny podržet elektrický náboj a nabývat tak hodnoty 1 - konkrétně viz výklad z hodiny. V podstatě existují dva základní druhy paměti - RWM (RAM) a ROM
Paměť typu ROM (Read Only Memory - paměť pouze pro čtení) Skládají se z pojistek nebo odporů. Jsou nezávislé na napájecím napětí, informace se neztrácejí. První z nich se daly použít jen jednou, dnes existují i přepisovatelné. Většinou obsahují BIOS, ten je ale po zapnutí počítače přenesen do RAM. PROM (Programmable ROM) - programovatelné, programování se neprovádí při výrobě, ale pomocí programátoru. Zápis je nevratný. EPROM (Erasable PROM) - vymazatelné, možno vymazat ultrafialovým paprskem. EEPROM (Electrically EPROM) - maže se elektrickými impulsy, počet zápisů není nekonečný, doba uchování informace va 10 - 20 let. Označuje se také jako EAROM a E2ROM.
FLASH-ROM - v principu se s ní pracuje jako s RAM, ale po odpojení napájení se nevymaže. Snese asi 1000 přepsání, většinou je třeba přenastavit jumpery na desce.
Pamět typu RWM (Read Write Memory - paměť pro čtení a zápis) neboli RAM (Random Acces Memory - paměť s náhodným vstupem) Statická RAM (SRAM) - informace v ní zůstává do odpojení napětí, nebo do přepsání jinou informací. Její rychlost, ale i cena jsou vysoké. Používá se proto např. jako paměť cache L2. Mívá menší kapacitu (256 kB, 512 kB, 1 MB). Dynamická RAM (DRAM) - je tvořena kondenzátory, které se ale rychle vybíjejí, proto je třeba jejich náboj pravidelně obnovovat (refresh). Je pomalejší a levnější než SRAM, používá se jako operační paměť. Její kapacita je větší (32 MB, 64 MB, 128 MB) Variantou DRAM je EDO-RAM (Extended Data Output) - data zůstávají na výstupu i po ukončení cyklu, takže je možné už během čtení připravit další adresu. Rychlost je ale vyšší jen asi o 3 %. BEDO-RAM (Burst-EDO RAM) - kombinace technologií Burst a EDO, najednou se načítají čtyři adresy. FPM-RAM - typ paměti, který umožňuje adresování stránek, najdeme je na deskách pro 386, 486 a nejstarší Pentia. Již se moc nepoužívá. SDRAM (Synchronus Dynamic RAM) - pracuje na stejném taktu, jaký má sběrnice. Na nových deskách. DDR SDRAM a DRD SDRAM = dvojnásobná frekvence CMOS RAM (Complementary Metal Oxide Silicon) - má velmi malou energetickou spotřebu. V PC se používá pro zápis parametrů BIOSu programem Setup. Po vypnutí počítače je napájena z baterie. Bývá v ní integrován obvod hodin reálného času. Nejdůležitější jsou typy SRAM (která se používá hlavně jako cache), DRAM, SDRAM, DDR SDRAM a RDRAM
Paměť cache L1 slouží ke zrychlení vnitřní práce procesoru. L2 načítá data z RAM. Je rychlá, ale drahá.
Tři režimy paměti cache Write Through - přímý zápis, data jsou zapisována současně do cache i RAM. Write Back - opožděný zápis, data jsou zapisována jen do cache a teprve při odstranění z cache i do RAM. Pipelined Burst - provádí se více operací zřetězeně, z RAM do cache se čtou i data následující po požadovanén adrese. Doporučená velikost cache / Velikost cachované paměti: 256 kb/32 MB, 512 kB/64MB, 1MB/128MB Paměť typu RAM (Random Access Memory) slouží v dnešních počítačích jako hlavní (někdy se též nazývá operační) paměť. Název RAM získala paměť v době, kdy se k paměťovým médiím přistupovalo sekvenčně (jako k pásce). Paměť RAM proto vynikala především možnosti přístupu na libovolné místo. Základní dělení pamětí typu RAM je na statické a dynamické. Statická paměť RAM (označuje se jako SRAM) je nejrychlejším typem paměti. Jeho nevýhodou je velký odběr proudu (ovšem jen při velké pracovní rychlosti). Typicky se používá jako rychlá vyrovnávací paměť (cache) u procesorů. Dynamická paměť RAM (označuje se jako DRAM) je nejlevnějším typem elektronické paměti. Vlastní data jsou uložena v miniaturních kondenzátorech jako náboj, který je však nutné pravidelně (dynamicky) obnovovat. Odtud dostal tento typ RAM paměti název. Typicky se používá jako hlavní paměť počítačů. Dlouhá desetiletí existence DRAM pamětí se pouze urychlovala přístupová rychlost. Ta postupem času klesla na hodnoty 50 ns, někdy i nižší. Ovšem rychlým procesorům již přestával poskytovaný datový tok stačit. Proto v první polovině 90. let vznikla varianta zvaná Fast Page DRAM (rovněž označovaná jako FP RAM nebo též FPM RAM). Dalším urychlením DRAM paměti vznikla paměť EDO RAM (Extended Data Out), která byla
ještě o zhruba 20 procent výkonnější, než FP RAM. Proto se velmi rychle přešlo od FP RAM právě k EDO RAM, takže lze z tohoto pohledu chápat FP RAM jako přechodový můstek od DRAM k EDO RAM. Doposud měly všechny paměti asynchronní přístup, což znamená, že paměť poskytla data podle situace (okolní teplota, technologie výroby vlastního paměťového obvodu). Pokud neměly být čtecí časy nebezpečně kritické, muselo být část času nevyužito. Proto vznikly synchronní paměti, kde by paměti pracovaly přesně podle externího taktu a pročekaný čas se tak vyloučil. Paměti se začaly označovat jako SDRAM (Synchronous DRAM). Poprvé se tento druh paměti objevil v roce 1996 a postupně vytlačil předchozí EDO RAM. Původní takt pamětí 66 MHz se časem zvýšil na 133 MHz, přičemž se někdy objevují i rychlejší. Aby se zvětšila přenosová rychlost, objevila se technologie zvaná DDR (Double Data Rate). Ta dovoluje pracovat s oběma hranami taktu, takže to na první pohled vypadá, že paměť pracuje s dvojnásobným taktem. Zvláštním typem paměti je RDRAM (Rambus DRAM), kde vysoká přenosová rychlost byla dosažena extrémním zvýšením taktu. To klade velmi vysoké nároky na celé okolí paměti. Synonymem pro tento druh paměti je její vynálezce, firma Rambus. Zejména v posledních dvou letech se o této paměti i firmě velmi živě diskutuje. Ve kterém modulu byly jaké typy RAM pamětí?
DRAM
SIPP
SIMM -30
SIMM -72
ano
ano
ano
FP RAM
ano
EDO RAM
ano
SDRAM DDR SDRAM RDRAM
DIMM
DDR DIMM
RIM M
ano ano ano ano
Stolní počítače mají RAM paměť umístěnou na tištěných spojích a tento celek se nazývá paměťový modul, případně RAM modul. Prvním paměťovým modulem pro osobní počítače byl SIPP. Jeho datová šířka byla 8 bitů. Typickým znakem byly klasické vývody, jaké se vyskytují u integrovaných obvodů. Prakticky stejné parametry má paměť SIMM (příchodem další generace se tento modul začal označoval jako SIMM-30). Jediným rozdílem mezi těmito moduly je vlastní konektor. SIMM modul nemá žádné vývody, ale tzv. přímý konektor, který je vytvořen přímo z části plošného spoje, kde jsou vytvořeny kontakty. Rozšířením datové šířky procesorů bylo nemyslitelné používat stále osmibitové paměťové moduly. Proto firma IBM vytvořila pro 32bitové počítače typu PS/2 nový 72pinový SIMM modul. Podle místa prvního výskytu se tyto moduly někdy označují též jako PS/2 modul. Datová šířka modulu byla zvýšena na čtyřnásobek SIMMů, tedy na 32 bitů. Je to první typ modulu, kde se vyskytovaly i jiné typy pamětí než základní DRAM (konkrétně FP RAM a EDO RAM). Dalším rozšířením datové šířky procesorů a zároveň příchod nového typu paměti (SDRAM) vznikl nový 64bitový paměťový modul s názvem DIMM. Jeho fyzické rozměry jsou opět větší, než jeho předchůdce. V roce 2000 vznikl pro oddělení nového typu paměti DDR SDRAM nový paměťový modul s názvem DDR DIMM, který je stejně jako DIMM 64bitový, konektor má ale jiný tvar.
Základní parametry paměťových modulů název modulu
datová šířka
počet vývodů
typické kapacity
SIPP
8 bitů
30
0,25 / 1 / 4 MB
SIMM-30
8 bitů
30
0,25 / 1 / 4 MB
SIMM-72
32 bitů
72
4 / 8 / 16 / 32 MB
DIMM
64 bitů
168
32 / 64 / 128 / 256 / ... MB
DDR DIMM
64 bitů
184
128 / 256 / ... MB
RIMM
16 bitů
184
64 / 128 / 256 / ... MB
Pro zvýšení bezpečnosti se paměťové moduly vybavovaly standardně paritními bity, které pomáhají zjistit jeden vadný bit v jednobytovém slovu. Na každý byte tedy připadá jeden bit paritní. Typickými představiteli jsou SIPP a DIMM-30 moduly, které se až na výjimky vyskytují jako 9bitové (tady 8 bitů datových a jeden bit paritní). Moduly SIMM-72 se přidáním čtyř paritních bitů rozšíří z původních 32 na 36 bitů. Tím se zvyšuje i cena paměťových modulů, což bylo trnem v oku některých výrobců. Proto vznikla tzv. logická parita, což znamená obvod, který paritní bity jen simuluje. Takový paměťový modul je sice možné osadit místo klasických modulů s paritou, ovšem nelze detekovat chybu RAM paměti. S výskytem modulů s logickou paritou se standardní paritě začalo pro oddělení logické parity říkat hardwarová parita. Pro zajištění vysoké bezpečnosti a především nepřetržitého chodu vznikly ECC moduly. Ty mají délku slova zvětšenou o víc než o jeden bit na 8 datových bitů tak, aby bylo možno detekovat dva vadné bity na jeden byte a jednobitovou chybu nejen detekovat, ale i opravit. Tato úprava paměťových modulů se používá především v serverech a pracovních stanicíc. Rozdělení pamětí Rozdělení pamětí na vnitřní a vnější pochází ještě z dob sálových počítačů. Původně mezi vnitřní paměti patřily pouze registry procesoru, protože už operační paměť se nacházela v jiné skříni a v jiné místnosti. Dnes toto rozdělení chápeme tak, že vnitřní paměti jsou ty, které připojujeme přímo na základní desku. Jsou to tedy registry procesoru, paměť cache, operační paměť, paměť s BIOSem. Vnější paměti jsou napřiklad pevný disk, disketová mechanika, CDROM, páska atd. VNITŘNÍ PAMĚTI Parametry pamětí: Přístupová (vybavovací) doba - udává rychlost v ns, jakou paměť zapíše nebo vyhledá zadaná data (od požadavku do splnění) Přenosová rychlost - množství informací přečtených/zapsaných za jednotku času Kapacita paměti Typ paměti - podle čipu, podle modulů, ad. Závislost na napájecím napětí Fyzikální principy paměti: Prvky paměti jsou schopny podržet elektrický náboj a nabývat tak hodnoty 1 - konkrétně viz výklad z hodiny. V podstatě existují dva základní druhy paměti - RWM (RAM) a ROM.
Paměť typu ROM (Read Only Memory - paměť pouze pro čtení) Skládají se z pojistek nebo odporů. Jsou nezávislé na napájecím napětí, informace se neztrácejí. První z nich se daly použít jen jednou, dnes existují i přepisovatelné, takže jejich označení je dnes nepřesné. Většinou se používají pro uložení BIOSu. ROM - naprogramované z výroby. Zápis je nevratný. PROM (Programmable ROM) - programovatelné, programování se neprovádí při výrobě, ale pomocí programátoru. Zápis je nevratný. EPROM (Erasable PROM) - vymazatelné, možno vymazat ultrafialovým paprskem. EEPROM (Electrically EPROM) - maže se elektrickými impulsy, počet zápisů není nekonečný, doba uchování informace va 10 - 20 let. Označuje se také jako EAROM a E2ROM. FLASH-ROM - v principu se s ní pracuje jako s RAM, ale po odpojení napájení se nevymaže. Snese asi 1000 přepsání, většinou je třeba přenastavit jumpery na desce. Pamět typu RWM (RAM) (Read Write Memory - paměť pro čtení a zápis) neboli RAM (Random Acces Memory - paměť s náhodným vstupem) Statická RAM (SRAM) - informace v ní zůstává do odpojení napětí, nebo do přepsání jinou informací. Její rychlost, ale i cena jsou vysoké. Používá se proto např. jako paměť cache. Mívá menší kapacitu (256 kB, 512 kB, 1 MB, 2MB). Dynamická RAM (DRAM) - je tvořena kondenzátory, které se ale rychle vybíjejí, proto je třeba jejich náboj pravidelně obnovovat (refresh). Je pomalejší a levnější než SRAM, používá se jako operační paměť. Její kapacita je větší (řádově v GB). Variantou DRAM je EDO-RAM (Extended Data Output) - data zůstávají na výstupu i po ukončení cyklu, takže je možné už během čtení připravit další adresu. Rychlost je ale vyšší jen asi o 3 %. BEDO-RAM (Burst-EDO RAM) - kombinace technologií Burst a EDO, najednou se načítají čtyři adresy. Podporují je jen některé desky FPM-RAM - typ paměti, který umožňuje adresování stránek, najdeme je na deskách pro 386, 486 a nejstarší Pentia. Již se moc nepoužívá. SDRAM (Synchronus Dynamic RAM) - pracuje na stejném taktu, jaký má sběrnice. Na nových deskách. DDR SDRAM a DRD SDRAM = dvojnásobná frekvence CMOS RAM (Complementary Metal Oxide Silicon) - má velmi malou energetickou spotřebu. V PC se používá pro zápis parametrů BIOSu programem Setup. Po vypnutí počítače je napájena z baterie. Bývá v ní integrován obvod hodin reálného času. Paměť cache L1 slouží ke zrychlení vnitřní práce procesoru. L2 načítá data z RAM. Je rychlá, ale drahá. Tři režimy paměti cache Write Through - přímý zápis, data jsou zapisována současně do cache i RAM. Write Back - opožděný zápis, data jsou zapisována jen do cache a teprve při odstranění z cache i do RAM. Pipelined Burst - provádí se více operací zřetězeně, z RAM do cache se čtou i data následující po požadovanén adrese.
Cache paměti
Cache paměť je rychlá vyrovnávací paměť mezi rychlým zařízením (např. procesor) a pomalejším zařízením (např. operační paměť). V dnešních počítačích se běžně používají dva druhy cache pamětí: ●
externí (sekundární, L2) cache: Externí cache paměť je paměť, která je umístěna mezi pomalejší operační pamětí a rychlým procesorem. Tato paměť je vyrobena jako rychlá paměť SRAM a slouží jako vyrovnávací paměť u počítačů s výkonným procesorem, které by byly bez ní operační pamětí velmi zpomalovány. První externí cache paměti se objevují u počítačů s procesorem 80386. Jejich kapacita je 32 kB popř. 64 kB. S výkonnějšími procesory se postupně zvyšuje i kapacita externích cache pamětí na 128 kB, 256 kB, 512 kB. Externí cache paměť je osazena na základní desce počítače (výjimku tvoří procesory Pentium Pro a Pentium II, které mají externí cache paměť integrovánu v pouzdře procesoru). Její činnost je řízena řadičem cache paměti.
●
interní (primární, L1) cache: Interní cache paměť je paměť, která slouží k vyrovnání rychlosti velmi výkonných procesorů a pomalejších pamětí. Tento typ cache paměti je integrován přímo na čipu procesoru a je také realizován pomocí paměti SRAM. Interní cache paměť se objevuje poprvé u procesoru 80486 s kapacitou 8 kB. Takovýto procesor musí mít v sobě integrován také řadič interní cache paměti pro řízení její činnosti.
Schéma zapojení interní a externí cache paměti Práce cache paměti vychází ze skutečnosti, že program má tendenci se při své práci určitou dobu zdržovat na určitém místě paměti, a to jak při zpracování instrukcí, tak při načítání (zapisování) dat z (do) paměti. Je-li požadována nějaká informace z paměti, je nejdříve hledána v cache paměti (interní, pokud existuje, a následně v externí). Pokud požadovaná informace není přítomna v žádné z cache pamětí, je zavedena přímo z operační paměti. Kromě momentálně požadované informace se však do cache paměti zavede celý blok paměti, takže je velká pravděpodobnost, že následně požadované informace již budou v cache paměti přítomny. Pokud dojde k zaplnění cache paměti a je potřeba zavést další blok, je nutné, aby některý z bloků cache paměť opustil. Nejčastěji se k tomuto používá LRU (Least Recently Used) algoritmu, tj. algoritmu, který vyřadí nejdéle nepoužívaný blok. Cache paměti bývají organizovány jako tzv. asociativní paměti. Asociativní paměti jsou tvořeny tabulkou (tabulkami), která obsahuje vždy sloupec, v němž jsou umístěny tzv. tagy (klíče), podle kterých se v asociativní paměti vyhledává. Dále jsou v tabulce umístěna data, která paměť uchovává, a popř. další informace nutné k zajištění správné funkce paměti. Např.: ● ● ●
informace o platnosti (neplatnosti) uložených dat informace pro realizaci LRU algoritmu informace protokolu MESI (Modified Exclusive Shared Invalid), který zajišťuje
synchronizaci dat v cache pamětech v případě, že cache pamětí je v počítači více (u interních cache pamětí v okamžiku, kdy počítač obsahuje více procesorů). Při přístupu do cache paměti je nutné zadat adresu, z níž data požadujeme. Tato adresa je buď celá, nebo její část považovaná za tag, který se porovnává s tagy v cache paměti. Cache paměti jsou konstruovány jedním ze tří způsobů. ●
plně asociativní:
Schéma funkce plně asociativní cache paměti U plně asociativní cache paměti je celá adresa, ze které se budou číst data (popř. na kterou se budou data zapisovat), brána jako tag. Tento tag je přiveden na vstup komparátorů (zařízení realizující porovnání dvou hodnot) společně s tagem v daném řádku tabulky. Pokud některý z tagů v tabulce je shodný se zadaným tagem na vstupu, ohlásí odpovídající komparátor shodu a znamená to, že požadovaná informace je v cahe paměti přítomna a je možné ji použít. Pokud všechny komparátory signalizují neshodu, je to známka toho, že požadovaná informace v cache paměti není a je nutné ji zavést odjinud (externí cache paměť, operační paměť). Tento způsob cache paměti má své nevýhody: 1. Je nutné velké množství komparátorů 2. Vzhledem k tomu, že se musí v každém řádku tabulky uchovávat celý tag, musí mít cache paměť velkou kapacitu, do které se tyto tagy ukládají a kterou není možné využít k uchovávání dat. Z těchto důvodů se plně asociativní paměti prakticky nepoužívají. ●
n-cestně asociativní:
Schéma funkce n-cestně asociativní cache paměti (n=2) N-cestně asociativní paměti pracují tak, že zadaná adresa se rozdělí na dvě části: 1. tag 2. adresa třídy Adresa třídy je přivedena na n dekodérů (zařízení, které na základě vstupní hodnoty vybere jeden ze svých výstupů, na který umístí hodnotu log. 1, a na ostatní výstupy umístí hodnotu log. 0), které v každé tabulce vyberou jeden řádek. Z těchto řádků se potom vezmou příslušné tagy a komparátorem se porovnají se zadaným tagem. Podobně jako u plně asociativních cache pamětí pokud jeden z komparátorů signalizuje shodu, je informace v cache paměti přítomna. V opačném případě je nezbytné informaci hledat jinde. N-cestně asociativní paměti částečně eliminují nevýhody plně asociativních cache pamětí a v současnosti jsou nejpoužívanějším typem cache pamětí. ●
přímo mapovaná:
Schéma funkce přímo mapované cache paměti Přímo mapovaná cache paměť je speciální případ n-cestně asociativní cache paměti pro n=1. Zadaná adresa je opět rozdělena na tag a adresu třídy. Adresa třídy je přivedena na vstup dekodéru, který podle ní vybere jeden řádek v tabulce. Tag na tomto řádku je následně porovnán se zadaným tagem, čímž se rozhodne o přítomnosti resp. nepřítomnosti informace v cache paměti. Přímo mapovaná cache ve srovnání s n-cestně asociativní cache pamětí vykazuje nižší výkon, a proto její použití není dnes příliš časté. Konkrétním příkladem cache paměti může být například interní cache paměť procesoru 80486, která je realizována jako 4-cestně asociativní cache paměť.
Schéma funkce interní cache paměti procesoru 80486 (4-cestně asociativní) Adresa je rozdělena na tři části: ● ● ●
Tag - horních 21 bitů Adresa třídy - 7 bitů => 128 řádků tabulky Slabika - dolní 4 bity
Adresa třídy je přivedena na dekodér, který vybere jeden řádek. Zadaný tag je dále komparátorem porovnán proti 4 tagům ve vybraném řádku. Pokud jeden z komparátorů ohlásí shodu, provede se výběr dat v datové části paměti. Datová část obsahuje v každém sloupci 16B, ze kterých je pomocí dolních 4 bitů zadané adresy vybrán jeden požadovaný byte. Každý řádek cache paměti ještě obsahuje jeden bit, který říká, zda informace v daném sloupci jsou platné, a 3 bity pro realizaci pseudo-LRU algoritmu. Pomocí tří bitů nelze vždy určit nejdéle nepoužívaný blok cache paměti. Tento algoritmus je však jednoduchý a rychlý a díky tomu poskytuje dostatečný výkon. Podle způsobu práce při zapisování dat lze cache paměti ještě rozdělit do dvou skupin: ●
●
write-through: cache paměti, u kterých v případě zápisu procesoru do cache paměti dochází okamžitě i k zápisu do operační paměti. Procesor tak obsluhuje jen zápis a o další osud dat se stará cache paměť. write-back: cache paměti, u nichž jsou data zapisována do operační paměti až ve chvíli, kdy je to třeba, a nikoliv okamžitě při jejich změně. K zápisu dat do operační paměti tedy dochází např. v okamžiku, kdy je cache zcela zaplněna a je třeba do ní umístit nová data. Tento způsob práce cache paměti vykazuje oproti předešlému způsobu vyšší výkon.
Poznámka: Kromě externích a interních cache pamětí je možné se setkat i se specializovanými cache paměťmi umístěnými mezi operační paměť a některé pomalejší zařízení (pevný disk, apod.).