Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Uspořádání cache pamětí procesorů – historie a současný stav
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 1 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Obsah 1Úvod.........................................................................................................................................................................3 2Hierarchie pamětí počítače......................................................................................................................................4 2.1Pracovní registry procesoru............................................................................................................................4 2.2L1 cache..........................................................................................................................................................4 2.3L2 cache..........................................................................................................................................................5 2.4Operační paměť počítače...............................................................................................................................5 2.5Virtuální paměť počítače.................................................................................................................................5 3Historie vyrovnávacích pamětí procesoru................................................................................................................6 3.1Bez vyrovnávacích pamětí procesoru.............................................................................................................6 3.2Zavedení vyrovnávacích pamětí procesoru....................................................................................................6 4Princip funkčnosti vyrovnávacích pamětí procesoru................................................................................................7 5Organizace vyrovnávajících cache pamětí procesoru.............................................................................................8 5.1Plně asociativní paměti...................................................................................................................................8 5.2Přímo mapované paměti.................................................................................................................................9 5.3n – cestně asociativní....................................................................................................................................10 6Fyzická struktura vyrovnávajících pamětí procesoru.............................................................................................12 6.1SRAM............................................................................................................................................................12 6.2Historie vývoje CMOS (Complementary Metal-Oxide-Semiconductor).........................................................13 7Literatura................................................................................................................................................................17
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 2 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
1
Michal Pinďák PIN065 2. ročník magisterského studia
Úvod
V práci se rozepíšeme o pamětích počítače, zvláště o vyrovnávacích pamětích tzv. cache pamětích. Ty byli a jsou zaváděny do počítačů, aby odstranili časové rozdíly mezi jednotlivými dvěma médii s rozdílnou rychlostí přenosu dat.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 3 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
2
Michal Pinďák PIN065 2. ročník magisterského studia
Hierarchie pamětí počítače
Paměti jsou rozděleny do určité hierarchie dle své rychlosti. Je tomu tak proto, že paměti, s kterými procesor bezprostředně pracuje, musí být rychlé, aby procesor při vykonávání instrukcí nebrzdili. Rovněž paměti blíže procesoru, nemusí být tak veliké, jako paměti, s nimiž procesor bezprostředně nepracuje. To je samozřejmě výhodné i cenově, jelikož čím rychlejší paměť, tím jsou na ni kladeny vyšší nároky a tudíž velmi roste i jejich cena na jeden bit. Pojďme si tedy jednotlivé hierarchické vrstvy popsat trochu blíže. 2.1
Pracovní registry procesoru
Jde o vrcholek celého „ledovce“ paměťové hierarchie. Jde o velmi rychlé paměti. Tyto paměti jsou velmi malé a cenově velmi nákladné na realizaci. Nárok na rychlost registrů většinou odpovídá jednomu taktu procesoru. Velikost pracovních registrů není omezena pouze cenou. Je i vcelku nevhodné, mít registry veliké. V případě přerušení, musí být paměť registrů vyprázdněna a uschována, toto by v případě paměťově obsáhlých registrů bylo zdlouhavé a tedy i reakce na přerušení by se nemístně prodlužovala.
2.2
L1 cache
Když byla vyrovnávací paměť první úrovně zavedena, byla umístěna na samostatném čipu, tedy mimo čip s procesorem. Později, vlivem vyšších nároků na rychlost byla umístěna přímo na čip s procesorem. Umístění L1 cache přímo na čip s procesorem vedla i vyšší integrace obvodů. O L1 cache bude samozřejmě více pojednáno v následujících kapitolách.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 4 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav 2.3
Michal Pinďák PIN065 2. ročník magisterského studia
L2 cache
Vyrovnávací paměť druhé úrovně má vyšší kapacitu než-li vyrovnávací paměť první úrovně. Rychlost této paměti může být mnohem menší, než L1 cache. L2 cache má často rychlost taktovánu na rychlost externí paměťové sběrnice. Opět o L2 cache bude pojednáno v následujících kapitolách tohoto referátu.
2.4
Operační paměť počítače
Operační paměť z pohledu procesoru je velmi pomalá. Proto byli v historii zavedeny dvě úrovně vyrovnávacích pamětí mezi samotným procesorem(a jeho registry) a operační pamětí. To ovšem neznamená, že by se vývoj operačních pamětí a zvyšování jejich rychlostí nějak zanedbávalo. Zde samozřejmě dochází k prosazování nových technologií a postupů při výrobě, aby byla zvýšena kapacita, rychlost a taktéž snížena cena operačních pamětí. Typická technologie používaná při výrobě operačních pamětí je použití tranzistoru a kondenzátoru. Jde tedy o dynamickou paměť, která se neobejde bez pravidelného obnovení tzv. refresh.
2.5
Virtuální paměť počítače
Tato virtuální paměť je podporována většinou procesorů. Paměti používané pro virtualizaci jsou většinou robustní(oproti operační paměti i 100 násobně i více), levné, ale na druhou stranu pomalé. Jedná se o pevné disky, pásky apod. Většina těchto velkých pamětí používá k uchování informace přímý fyzický záznam pomocí magnetické stopy. Přístup do virtuální paměti počítače během zpracování je nežádoucí, ale nutný. Proto se vhodné návrhy a algoritmy snaží o to, aby byla využita co nejvíce paměť operační. Z pohledu procesoru je samozřejmě nevýhodné vstupovat i do operační paměti, tomuto se ovšem nevyhneme.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 5 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav 3
3.1
Michal Pinďák PIN065 2. ročník magisterského studia
Historie vyrovnávacích pamětí procesoru
Bez vyrovnávacích pamětí procesoru
Vyrovnávací paměť slouží k překlenu mezi rychlým a pomalým médiem. Dříve ale nebyla potřeba, jelikož doba provedení typické instrukce byla delší, než přístup do operační paměti. V tomto duchu pracovali osmibitové procesory např Intel 8080.
3.2
Zavedení vyrovnávacích pamětí procesoru
Změna oproti 8-i bitovým procesorům přišla s procesory 16-ti bitovými. Již na počítačích s procesory 386, tedy platformě x86, byli vyrovnávací paměti procesoru zavedeny. Jednalo se o L1 cache paměť. Tato paměť byla od čipu s mikroprocesorem oddělena. Důvodem byla nižší míra integrace. L1 cache byla poprvé obsažena na čipu s procesorem až s příchodem počítače vybaveného procesory 486 a to ve velikosti 8 kB. S mikroprocesory Intel Pentium přišla rovněž velká změna. V cache paměti byl oddělen program a data. Po zavedení L1 cache paměti, byla zavedena i L2 cache paměť. Tato paměť byla zprvu opět na základní desce, poté se integrovala do čipu s mikroprocesorem. Došlo k zavedení i L3 cache, např. procesor od společnosti AMD Phenom II nebo Intel Core i7. Konkrétně u procesoru Intel Core i7 je L3 cache velká 8MB.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 6 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
4
Michal Pinďák PIN065 2. ročník magisterského studia
Princip funkčnosti vyrovnávacích pamětí procesoru
Nyní by jsme se mohli podívat na to, k čemu je nám vlastně vyrovnávací paměť procesoru dobrá a popsat základní princip její funkčnosti. Fyzicky je vyrovnávací paměť umístěna na sběrnici mezi procesorem a operační pamětí. Paměť je rozdělena do bloků s konstantní velikostí. Tyto bloky jsou plněny daty z operační paměti, které si ke své práci vyžaduje procesor. Ten nemusí samotné přemísťování bloků mezi operační pamětí a vyrovnávací pamětí řídit. Práce vyrovnávací paměti vychází ze skutečnosti, že program má tendenci zdržovat se na určitém místě a pracovat s určitými daty. Proto když je požadována nějaká informace z paměti, je první oslovena vyrovnávající paměť. V případě, že data potřebná pro další zpracování mikroprocesorem jsou ve vyrovnávající paměti obsažena, jsou vybrána a zpracování pokračuje dále. Toto zpracování je například až 10-ti násobné. V případě, že tato data nejsou ve vyrovnávající paměti obsažena, je nutné je přemístit z operační paměti do vyrovnávající. Kromě vybrané informace je do vyrovnávající paměti rovněž přenesen celý blok operační paměti. Toto zvyšuje pravděpodobnost, že při žádosti o další data se výběr dat do budoucna „trefil“. Kromě popsaných dvou případů, že data ve vyrovnávající paměti jsou a případně nejsou, existuje ještě třetí varianta. Data ve vyrovnávající paměti nejsou, ale paměť je plná. V tomto případě se pomocí různých kritérií jeden blok vyřadí. Volba bloku paměti k vyřazení bývá často ošetřeno pomocí LRU(Least Recently Used) algoritmu, který vyřadí nejdéle nepoužívaný blok.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 7 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav 5
Michal Pinďák PIN065 2. ročník magisterského studia
Organizace vyrovnávajících cache pamětí procesoru
Zde je možné několik přístupů, jak vyrovnávající paměť organizovat. Popišme si tři. První dvě krajní řešení a třetí kompromisní mezi dvěma popsanými.
5.1
Plně asociativní paměti
U plně asociativních pamětí je brána celá adresa jako tag. Tento tag se přivádí na vstup komparátorů, které mají za úkol porovnat tag na vstupu s tagy v tabulce. V případě shody jsme nalezli požadovanou adresu a můžeme data použít, pokud nedojdeme ke shodě po porovnání každého řádku tabulky, víme, že požadovaná data ve vyrovnávající paměti nenalezneme. Tato metoda má velké nevýhody. Je třeba velké množství komparátorů a hlavně tabulka, obsahující všechny tagy, je vcelku obsáhlá a to velmi zvyšuje cenu takovýchto pamětí. Tento druh organizace paměti se takřka nepoužívá.
Obr. 1: Plně asociativní paměti (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/CACHE.HTML) Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 8 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
5.2
Michal Pinďák PIN065 2. ročník magisterského studia
Přímo mapované paměti
Přímo mapovaná vyrovnávající paměť je implementačně nejjednodušší organizace paměti. Zde již z nejvyšších bitů adresy lze zjistit, ve kterém bloku paměti se budou data nacházet, poté se porovnávají tagy. Mezi velkou nevýhodu této organizace paměti patří její nízký výkon. To je způsobeno vysokým počtem nutných dotazů na operační paměť. To je způsobeno tím, že pokud máme 128x větší operační paměť, tak se o jednu pozici v cache paměti uchází 128 bloků. Toto nám zapřičiňuje to, že ve vyrovnávající paměti může být vždy pouze jeden blok ze 128 bloků. Nemohou být současně.
Obr. 2: Přímo mapovaná paměť (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/CACHE.HTML)
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 9 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
5.3
Michal Pinďák PIN065 2. ročník magisterského studia
n – cestně asociativní
Jedná se o kompromisní řešení mezi plně asociativní a přímo mapovanou pamětí(což je případ 1 – cestně asociativní paměti). Tyto paměti pracují tak, že se adresa rozdělí na tag a adresu třídy. Adresa třídy je přivedena na n dekodérů. Dekodér v každé tabulce vybere jeden řádek. Tag na vstupu se pak porovnává s každým tagem vybraným z n tabulek. Tyto paměti jsou v dnešní době nejvíce používány.
Obr. 3: 2 – cestně asociativní paměti (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/CACHE.HTML)
Na dalším obrázku je vyobrazena organizace vyrovnávací paměti počítačů vybavených mikroprocesorem 80486.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 10 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Obr. 4: Schéma funkce interní cache paměti procesoru 80486 (4-cestně asociativní) (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/CACHE.HTML)
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 11 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
6
6.1
Michal Pinďák PIN065 2. ročník magisterského studia
Fyzická struktura vyrovnávajících pamětí procesoru
SRAM
Vyrovnávající cache paměti jsou realizovány pomocí bistabilních klopných obvodů. Tyto obvody se nacházejí vždy v jednom ze dvou stavů. Pro udržení hodnoty je nutné mít tento bistabilní klopný obvod pod napětím. Jedná se o statickou paměť, to znamená, že zde není použit žádný dynamický prvek jako je například kondenzátor. Obvod je složen z 6-ti tranzistorů. Tento obvod tvoří jednu paměťovou buňku paměti, tedy jeden bit.
Obr. 5: SRAM v technologii MOS (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/INTPAM.HTML#SRAM)
Na další stránce se podívejme na bistabilní klopný obvod pomocí technologie TTL.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 12 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Obr. 6: SRAM v technologii TTL (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/INTPAM.HTML#SRAM)
Rovněž si pro srovnání uveďme buňku dynamické pamětí DRAM.
Obr. 7: DRAM v technologii TTL (http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/INTPAM.HTML#SRAM)
6.2
Historie vývoje CMOS (Complementary Metal-Oxide-Semiconductor)
Výše jsme uvedli nějaké ukázky technologií pro řešení SRAM. Přesto nejlepším řešením se jeví technologie MOS a z ní vycházející technologie CMOS. Tato technologie docílila vysoké přístupové rychlosti cca 15-20 ns. Od toho se samozřejmě odvíjí rychlost vyrovnávacích pamětí procesoru. U CMOS lze využít vysokého stupně integrace a velmi malých spojů. Od toho se vyvíjí i výsledný příkon, a rovněž i rychlost. Pojďme se podívat na historii a v jakých technologií byli dříve a nyní jsou realizovány SRAM. Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 13 / 17
Michal Pinďák PIN065 2. ročník magisterského studia
Uspořádání Cache pamětí procesorů - historie a současný stav
•
10 µm
•
3 µm
•
1.5 µm
•
1 µm
•
800 nm (0,80 µm) Používá se například na Intel 80486.
•
600 nm (0,60 µm)
•
350 nm (0,35 µm)
•
250 nm (0,25 µm)
•
180 nm (0,18 µm) První technologie „menší“ než vlnová délka použitého světla (193 nm). Používá se například na většinu Intel Pentium III.
•
130 nm (0,13 µm)
•
90 nm
•
65 nm V roce 2007 nejčastěji používaná technologie. Používá se světlo vlnových délek 193 nm a 248 nm. Šířka elektrody je pouhých 1,2 nm, což je jen několik atomů - dochází tedy ke kvantovému tunelování.
•
Používá se například na Intel Pentium IV nebo AMD Athlon 64.
•
45 nm
•
32 nm
•
22 nm
•
16 nm
Výše
vypsaný
seznam
pořízen
na
www
stránkách
http://cs.wikipedia.org/wiki/CMOS. CMOS obvody vynalezl v roce 1963 panem Frankem Wanlassem ze společnosti Fairchild Semiconductor.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 14 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Obr. 8: vliv velikosti cache u Core 2 Duo (http://www.extrahardware.cz/vliv-cache-u-core-2-duo)
Na obrázku výše je vidět přehled testovaných Core 2 Duo na vliv velikosti cache paměti. Rovněž je vidět rozdíl v použitých technologiích. Níže vkládám popis testu čerpaného z http://www.extrahardware.cz/vliv-cache-u-core-2-duo.
Popis autora článku:
Skvělý test vlivu velikosti cache (512 kB, 1, 2, 3, 4 a 6 MB) u procesorů Core 2 Duo udělal německý PC Games Hardware. V testu je skryto i takové porovnání 65 a 45nm architektury Core 2 Duo, neboť se jej zúčastnilo celkem sedm procesorů: •
Intel Celeron Dual-Core E1400
•
Intel Pentium Dual-Core E2180
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 15 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
•
Intel Core 2 Duo E4400
•
Intel Pentium Dual-Core E5200
•
Intel Core 2 Duo E6700
•
Intel Core 2 Duo E7300
•
Intel Core 2 Duo E8600
Michal Pinďák PIN065 2. ročník magisterského studia
Všechny procesory měly nastaveny násobič na hodnotu 10 a FSB na 200 MHz (800 MHz efektivně, je to QDR), ve výsledku tedy pracovaly na 2 GHz. Zastoupena jsou jak jádra Allendale (65 nm, 512 kB a 1 MB L2 cache), tak Conroe (65 nm, 2 a 4 MB L2 cache) a Wolfdale (45 nm, 2, 3 a 6 MB L2 cache). Test jednoznačně ukázal, že velký rozdíl je mezi 512 a 1024 kB L2 cache (rozdíl mezi Celeronem Dual-Core E1x00 a Pentiem Dual-Core E21x0). Naopak v případě 3 MB L2 cache a 4 MB L2 cache (Core Duo E7x00 vs. Core 2 Duo E6xx0) není o 1 MB menší (a vícecestná) cache 45nm dvoujádra Wolfdale takovou brzdou a díky vylepšením architektury Penryn (např. rychlejší dělení) je E7x00 ve většině testů o něco rychlejší než E6xx0. Srovnávat přínos jádra z rodiny Penryn (45 nm) oproti starším 65nm procesorům Core 2 můžete i na příkladu podtaktovaných E4400 a E5200 se stejně velkou (2 MB) L2 cache. Celý test pak jednoznačně prokázal, že na cache u Core 2 Duo záleží a Intel díky ní může škálovat výkon a tím i ceny. Velikost však není vše a je potřeba vnímat i vylepšení, jež Core 2 Duo zaznamenaly při přechodu na 45nm výrobní proces.
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 16 / 17
Uspořádání Cache pamětí procesorů - historie a současný stav
Michal Pinďák PIN065 2. ročník magisterského studia
Literatura
7
•
http://www.root.cz/clanky/architektury-vyrovnavacich-pameti/
•
http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/CACHE.HTML
•
http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/INTPAM.HTML#SRAM
•
http://en.wikipedia.org/wiki/CPU_cache
•
http://cs.wikipedia.org/wiki/CMOS
•
http://www.extrahardware.cz/vliv-cache-u-core-2-duo
Fakulta elektrotechniky a informatiky
verze: 1/1 Stránka: 17 / 17