Pokročilé architektury...
Transcript of Pokročilé architektury...
![Page 1: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/1.jpg)
Pokročilé architektury počítačů
Hierarchické uspořádání pamětí počítače
Přednáška 3
Martin Milata
![Page 2: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/2.jpg)
Obsah
● Paměťový subsystém
● Obvyklé chování programů při přístupu do paměti
● Cache paměti● princip činnosti
● optimalizace
● hierarchizace cache pamětí
● Virtuální paměť a stránkování● synonyma a homonyma
● TLB Cache
● Hlavní paměť● dynamická paměť
● organizace hlavní paměti
![Page 3: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/3.jpg)
Paměťový systém a Cache
● Přístupová doba do hlavní (DRAM) paměti je dnes extrémně velká ve srovnání s rychlostí CPU● Přímý přístup do hlavní paměti by měl značný negativní dopad na výkonnost
procesoru
● Přítomnost Cache systému má zajistit přístupovou dobu srovnatelnou s extrémně rychlými pamětmi při současném použití levných DRAM pamětí značné velikosti
![Page 4: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/4.jpg)
Cache jako zprostředkovatel přístupu do hlavní paměti
● Otázkou je, jak je možné, že malý kus rychlé paměti dokáže do značné míry předat svou rychlost celému paměťovému systému?
● Aplikace v jednom okamžiku obvykle využívá jen malou část svého, jinak značně velkého, paměťového prostoru (chování se označuje jako princip lokality)
● Malá část pomalé paměti, které je právě využívána, může být uložena v rychlé paměti cache
● Dočasně ukládaná část má obvykle fixní velikost a nazývá se blok
● Otázkou zůstává
– Na jaké místo paměti cache kopírovaný blok umístit?
– Jak bude blok vyhledán, pokud je v paměti cache umístěn?
– Co se stane při zaplnění cache a vzniklé nutnosti zapsat nový blok?
– Jak bude realizován zápis dat?
![Page 5: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/5.jpg)
Princip lokality
● Princip lokality● Aplikace v jednu chvíli pracuje obvykle jen s malou částí
svého paměťového prostoru.
● Dva typy lokálního přístupu● Dočasná lokálnost (Temporary Locality)
– Použitý paměťový blok bude znovu použit v blízké budoucnosti
– např. při zpracovávání smyček (podmínky, či inkrementované proměnné)
● Prostorová lokálnost (Spatial Locality)– Pokud je použit paměťový blok, je pravděpodobné, že bude brzy
použit další v jeho těsné blízkosti
– např. přístup k prvkům pole
![Page 6: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/6.jpg)
Terminologie Cach pamětí
● Čtení dat z cache (Cache Hit)● Požadované data byla nalezena v některém z bloků, které právě cache paměť
obsahuje
● Četnost čtení z paměti cache (Hit rate) je určená jako počet přístupů do cache s nalezením požadovaných dat dělená celkovým počtem přístupů do paměti
● Přístupová doba cache paměti (Hit time) je čas potřebný k nalezení požadovaných dat a jejich předání CPU
● Výpadek cache (Cache Miss)● Cache paměť neobsahuje požadovaná data. Ta musejí být dodána z pamětí
nižšího stupně (cache vyšší úrovně nebo hlavní paměť).
● Četnost výpadků cache (Miss rate) reprezentuje doplněk k četnosti čtení z cache (Miss rate = 1 – Hit rate)
● Pokuta výpadku cache (Miss penalty) je doba potřebná k získání dat z pomalejší paměti, výměně bloku v cache a doručení dat na procesor
Přístupová doba, stejně jako pokuta výpadku cache, může být měřena buď jako absolutní časová hodnota nebo jako počet cyklů procesoru, které uplynou do dodání požadovaných dat.
![Page 7: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/7.jpg)
Terminologie Cache paměti
● Blok (Block/Line)● Jedná se o skupinu paměťových slov pevné délky, jenž slouží jako jednotka pro
přenos dat mezi různě rychlými pamětmi.
● Skupina (nebo Set)● Skupina bloků v cache paměti, která může být použita pro uložení dat z pomalejší
paměti. Úseky pomalé pamětí jsou obvykle jednoznačně mapovány na jednotlivé skupiny, jenž můžou být pro uložení dat použity.
● Přímo mapovaná paměť● Každý blok pomalejší paměti má přesně stanovené místo, kam může být v cache
uložen. Velikost setu v cache paměti je právě jeden blok.
● Plně asociativní paměť● Blok z pomalé paměti může být uložen kdekoliv v cache. Cache paměť obsahuje jen
jeden set.
● N-cestně asociativní paměť● V každém setu cache paměti může být uloženo právě N bloků.
![Page 8: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/8.jpg)
Na jaké místo paměti cache kopírovaný blok umístit?
● Místo v cache, kde může být paměťový blok uložen je obvykle více či méně určeno strukturou cache paměti.
● Plně asociativní cache umožňuje zaplnit svůj libovolný blok libovolným blokem pomalé paměti
● Přímo mapovaná cache každému bloku pomalé paměti striktně definuje jedinou možnou pozici pro jeho uložení
● N-cestně (zde dvou-cestně) asociativní cache definuje vždy dvě pozice pro možné uložení bloku z pomalé paměti.
![Page 9: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/9.jpg)
Jak bude blok vyhledán, pokud je v paměti cache umístěn?
● Cache paměť musí obsahovat adresní značky (tags), které informují o adrese bloku v pomalejší paměti● Všechny značky dané skupiny (setu) jsou prohledávaný paralelně na shodu s
požadovanou adresou.
● Data v cache nesou příznak platnosti (valid bit)
● Vztah mezi adresou zasílanou procesorem a obsahem cache● Procesorem zaslaná adresa je nejprve dělena na adresu bloku a offset bloku.
● Adresa bloku se obvykle dále dělí na tag (vyhledávání v rámci setu) a index (jednoznačné určení jednoho ze setů cache paměti).
● Při kontrole přítomnosti bloku v cache se nepoužívá hodnota offsetu. Celý blok musí být přítomen s nastaveným příznakem validity.
● Kontrola shodnosti tagu se provádí jen v rámci indexem zvoleného setu.
![Page 10: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/10.jpg)
Co se stane při zaplnění cache a vzniklé nutnosti zapsat nový blok?
● Pokud dojde k výpadku cache, je jeden z bloků přepsán požadovanými daty z nadřazené paměti.
● Řídící logika cache paměti musí rozhodnout, který z bloků bude nahrazen
● Přímo mapovaná paměť volí vždy jeden daný blok. HW implementace volby bloku je jednodušší
● N-cestně asociativní a plně asociativní paměť má možnost výběru z více bloků. HW implementace je složitější a závisí na zvolené strategii výběru
– Náhodný výběr (Random) – vybrán je náhodný z možných bloků (výběr bývá speudo-náhodný) Strategie je vhodná pro velké cache kde má výsledky podobné s LRU.
– Nejdéle nepoužívaný (Last-recently used - LRU) – vybrán je blok, jenž byl nejdéle nepoužíván. Předpokládá se jeho neaktuálnost vzhledem k lokalitě běhu programu a tudíž i nepoužitelnost v budoucnu
– Frontová strategie (First-in First-out) – LRU přístup je z důvodu náročné implementace aproximován strategii FIFO. Blok na konci fronty představuje v paměti nejstarší (neznamená nejdéle nepoužívaný).
![Page 11: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/11.jpg)
Jak bude realizován zápis dat?
● Procesor aktualizuje data v cache. Další postup závisí na zvoleném scénáři● Okamžitá aktualizace (Write through)
– Současně se aktualizuje cache i pomalá paměť
– Dnes vždy kombinována s tzv. zápisovým bufferem (write buffer). Zamezí se čekání na aktualizaci pomalé paměti.
● Opožděná aktualizace (Write back)
– Změněné informace jsou uloženy v cache a do pomalé paměti zapsány až v okamžiku potřeby výměny bloku v cache
– Cache je pro každý blok vybavena příznakovým bitem, který udává, zda v rámci bloku došlo ke změně dat (dirty bit)
● Pro a proti?
– WT – vhodnější při sdílení cache mezi více jádry procesoru (obvyklý pro L2 a L3 cache)
– WB - aktualizace pomalé paměti se neprovádí opakovaně, v případě výpadku a náhrady bloku vnáší další latenci
![Page 12: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/12.jpg)
Write Buffer a Cache
● Prostřednictvím Write bufferu se provádí aktualizace pomalé paměti bez nutnosti čekání procesoru na její dokončení.
● Procesor zapisuje změny do cache paměti a write bufferu
● Řadič paměti (memory controller) zapisuje změny z WB do pomalé paměti
● Write Buffer bývá implementován jako jednoduchá fronta (FIFO)
● Typický počet položen je roven 4.
● Pokud pro zápis požadovaná data nejsou v cache paměti, aplikuje se jeden z následujících dvou přístupů
● Zápis s výpadkem cache (Write allocate) – V cache je aktualizován blok do něhož měly být data zapsána
● Zápis bez výpadku cache (No-write allocate) – Cache paměť zůstává požadavkem na zápis nedotčená
![Page 13: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/13.jpg)
Výpadek cache paměti
● Výpadky cache paměti můžeme kategorizovat podle tzv. třech „C“ kritérií● Nucený (Compulsory) – jedná se obvykle o „první“ přístup procesoru k
paměti v rámci provádění nově spuštěné aplikace
● Kapacitní (Capacity) – cache paměť není schopna pojmout všechny bloky potřebné při provádění programu
● Konflitkní (Conflict) – strategie výměny bloků v cache paměti působí konflikty nad stejným blokem v cache (paměť není dostatečně asociativní)
● Výpočet průměrné doby přístupu do paměti (AMAT)● Average memory access time = Hit time + Miss rate x Miss penalty
kde:
– Hit time je přístupová doba do cache paměti bez výpadku
– Miss rate je četnost výpadků
– Miss penalty je doba potřebná k získání dat při výpadku cache
![Page 14: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/14.jpg)
Základní optimalizace cache paměti
● Snižování četnosti výpadků cache paměti
● Zvýšením velikosti bloku
– využívá principu lokality
– zvyšuje pokutu při výpadku cache paměti
● Zvýšení velikosti cache paměti
– redukuje kapacitní výpadky
– potenciálně zvyšuje přístupovou dobu k datům v cache, nároky na napájení a cenu
● Zvýšení asociativity cache paměti
– snižuje počet konfliktních výpadků
– zvyšuje přístupovou dobu k datům v cache paměti
● Více úrovňová cache paměť
– napomáhá ke snížení pokuty v případě výpadku cache paměti nižší stupně
– Cache vyššího úrovně může být kapacitně větší, mít větší velikost bloku a větší asociativitu
![Page 15: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/15.jpg)
Závislost četnosti výpadků na velikosti cache a její asociativitě
Obrazový materiál převzat z wikipedia.org
![Page 16: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/16.jpg)
Základní optimalizace cache paměti
● Priorizace výpadků cache při čtení před výpadky při zápisu
● Výpadek při zápisu do cache je dočasně potlačen pomocí zápisového bufferu (write buffer).
● Změna je uložena k zápisu pouze v něm s tím, že příslušný blok bude v cache vyměněn po obsloužení prioritnějších výpadků způsobených při čtení z cache
● Přináší potenciální datový hazard. Čtená data nemusí být aktuální. Zápisový buffer se proto prohledává a pokud má dojít ke konfliktu, je nejdříve obsloužen zápis.
● Snížení času vyhledávání v cache pomocí použití společné části fyzické a virtuální adresy (page offset)
● Jak virtuální tak fyzická adresa má obvykle společnou (neměnnou) část – page offset
● Během překladu adresy z virtuální na fyzickou může paralelně probíhat prohledávání cache podle page offset indexu
● K prohledávání cache na schodu tagu již ale musí být použita fyzická adresa
![Page 17: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/17.jpg)
Pokročilé optimalizace cache (I)
● Použití malé jednoduché cache s minimální přístupovou dobou
● L1 cache se s vývojem procesorů příliš nezvětšuje
● Důvod je potřeba extrémní rychlosti a z toho plynoucí přítomnosti cache na čipu procesoru
● Predikce dalšího přístupu
● Cache uchovává informaci o předpokládaném dalším přístupu s tím, že v okamžiku potřeby je paralelně kontrolována správnost predikce, případné vyhledávání nepredikovaných dat a načítání predikovaných dat (1. takt)
● Pokud je predikce chybná jsou na základě výsledků hledání načtena případná data (2. takt)
● Zřetězení přístupu do paměti cache
● Zpoždění cache paměti první úrovně bývá často několik taktů (4 takty pro i7)
● Díky zřetězení přístupu je možný překryv požadavků na cache. Teoreticky je tak možno docílit vydání jednoho výsledku v každém taktu.
![Page 18: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/18.jpg)
Pokročilé optimalizace cache (II)
● Specializované vyrovnávací paměti● „Victim Cache“
– Vedle přímo mapované cache je přítomen malý, většinou 4 položkový buffer pro data, jenž jsou z původní cache vyřazena kvůli konfliktům.
– V některých případech dokáže pomocí přídavného bufferu pokrýt až 90% výpadků 4 KB přímo mapované paměti
● „Trace Cache“– Slouží k uchování dekódovaných mikroinstrukcí (například architektury P4)
– Jejich obsah není dán statickým uspořádáním instruckí programu v paměti, ale je vytvářen dynamicky při jejich dekódování
– Odbourávají nutnost opětovného dekódování instrukcí na mikrokód v případě jeho opětovného provádění (smyčka)
– Nehalem používá obdobnou jednotku Loop Stream Detector s 28 položkami (LSD) pro práci se smyčkami
![Page 19: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/19.jpg)
Pokročilé optimalizace cache (III)
● Neblokující cache paměť● Cílem neblokující paměti je umožnit čtení dat před dokončením
obsluhy výpadku● Výpadek datové cache nemusí ovlivnit vydávání instrukcí. Mohou
vznikat další požadavky na přístup do cache.– Režimy „hit under miss“, „miss under miss“, „hit under multiple miss“
– Poslední režim vyžaduje podporu obsluhy více výpadků u pomalejší paměti
● Cache rozdělená do více banků● Umožňuje více paralelních přístupu● Vyžaduje jednoznačné mapování bloků na banky, obvykle sekvenční
prokládání
![Page 20: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/20.jpg)
Pokročilé optimalizace cache (IV)
● Paměť s rychlým předáváním dat při výpadku● Procesor obvykle potřebuje jen jedno slovo z bloku, který je při výpadku v paměti
zaměňován
● Cílem optimalizace je nečekat na načtení celého bloku, ale předat data v okamžiku, kdy jsou k dispozici.
– Přednostní čtení požadovaného slova z pomalejší paměti s okamžitým předáním procesoru
– Čtení bloku z pomalé paměti ve standardním uspořádání. Nečeká se však na dokončení čtení ale na přečtení požadovaných dat. Následuje okamžité předání na CPU
– V obou případech je čtení bloku následně dokončena
● Má význam především pro cache s velkými bloky
● Write Buffer a aktualizace obsahu● Pokud další požadavek na zápis dat míří do bloku, jenž write buffer obsahuje, není
do něj přidáván další blok, ale proběhne aktualizace informace v již existujícím bloku.
● Často spojováno s tzv. victim cache
![Page 21: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/21.jpg)
Pokročilé optimalizace cache (IV)
● Optimalizace kódu kompilátorem
● Nevyžaduje změnu v HW. Má však značný výkonový dopad● Cílem optimalizace je reorganizovat vytvářený kód bez dopadu
na jeho funkčnost tak, aby co nejefektivněji pracoval s právě dostupnými paměťovými bloky
● Reorganizace kódu a dat– Příkladem je zarovnání velikosti tzv. základních bloků programu s velikostí
bloku cache. Při provádění základního bloku tak nedochází k výpadkům.
● Úprava smyček– Čílem je upravit kód tak, aby jinak nesekvenční přístup k datům ve
smyčce, odpovídal fyzické organizaci dat. Typickým příkladem je práce s dvourozměrnými poli jejichž velikost překračuje velikost bloku cache.
![Page 22: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/22.jpg)
Cache a optimalizace provádění smyček
● Neoptimální variantafor (j=0; j<100; j++) { for (i=0; i<5000; i++){ x[i][j]++; }}
● Přístup k prvkům pole neodpovídá jejich fyzické organizaci
● Velká vzdálenost mezi dvěma prvky znamená výpadek cache
● Optimalizované variantafor (i=0; i<5000; i++){ for (j=0; j<100; j++){ x[i][j]++; }}
● Optimalizace vede k mnohem intenzivnější práci s bloky, jenž jsou právě k dispozici
![Page 23: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/23.jpg)
Pokročilé optimalizace cache (VI)
● HW řízené dopředné načítání bloků do cache (HW Prefetching)
● Cílem je načíst blok do paměti cache předtím, než jej bude procesor potřebovat
● Bloky určené pro instrukční a datovou cache mohou být načítány dopředně
● Často umisťovány ve tzv. stream buffer. Může být replikován (max 8)
– Replikace se využívá především při kombinovaném dopředném načítání instrukčních a datových bloků
● SW řízené dopředné načítání bloků do cache (SW Prefetching)
● Obdoba předchozí HW implementace
● Vyžaduje spolupráci s HW v podobě speciálních instrukcí pro CPU
● Realizuje se dopředné načítání
– obsahu registrů
– výměny bloků v cache
● Potřeba kontrolovat zda zátěž, kterou SW prefetching přinese nepřekračuje možný přínos.
![Page 24: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/24.jpg)
Shrnutí optimalizace Cache pamětí
TechnikaHit
timeBand-width
Miss penalty
Miss rate
HW složi-tost
Jednoduchá a malá cache - + 0
Predikce přístupů - 1
Zřetězení přístupů + + 1
Victim cache - 2
Trace cache - 3
Neblokující cache + - 3
Dělená cache (+) + 1
Cache s rychlým předáváním na CPU - 2
Aktualizace write buffer - 1
Optimalizace kompilátorem - 0
HW Prefetching - - 2 až 3
SW Prefetching - - 3
„+“ prodloužení času „-“ zkrácení času „0“ není složité „3“ složité
![Page 25: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/25.jpg)
Hierarchické uspořádání cache paměti
● Evoluci hierarchie paměťového subsystému ovlivňoval především nerovnoměrný vývoj v rychlostech procesorů a samotných pamětí
● Vyrovnávání rozdílu rychlostí pomocí cache umístěné na základní desce (intel 386)
● Vložení cache na čip procesoru vynutila nedostačující rychlost externí cache paměti. Externí je dále využívána (po Pentium MMX)
● Externí cache přináší jen nepatrné zrychlení oproti hlavní paměti – dále se nepoužívá. Hierarchie cache je přesunuta na čip procesoru
● Rozšiřování hierarchického uspořádání s přítomností více jader na jednom čipu
![Page 26: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/26.jpg)
Paměťový subsystém v architektuře Intel Nehalem (Datová část)
![Page 27: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/27.jpg)
Paměťový subsystém v architektuře Intel Nehalem (Instrukční část)
![Page 28: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/28.jpg)
Virtuální paměť a stránkování
● Virtuální paměť (Virtual Memory - VM)● zajišťuje automatizovaný management dvoustupňové hierarchie paměti
(hlavní paměť a disk)
● umožňuje programu přidělit adresní prostor větší než prostor celé hlavní paměti
● umožňuje sdílet hlavní paměť více nezávislými procesy, jenž mohou být v hlavní paměti umístěny na libovolném místě
● Terminologie Virtuální paměti● V mnohém sdílí myšlenky s hierarchií cache paměti
– Stránka (page) nebo segment obdoba bloku
– Výpadek stránky (page fault) absence stránky v hlavní paměti. Podobně výpadek cache paměti je obsloužen načtením stránky z pomalejší paměti (disku).
● Virtuální adresa jednoznačně adresuje slovo ve VM, před přístupem do fyzické paměti musí být proveden její převod na fyzickou adresu
● Převod virtuální adresy na fyzickou je nazýván překlad nebo mapováníPředpokládá se, že posluchač je obeznámen s problematikou virtuální paměti a stránkování.
![Page 29: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/29.jpg)
Virtuální paměť
● Hledisko umístění stránky ve fyzické paměti● Hlavní paměť lze chápat jako plně asociativní z pohledu možnosti umístit stránku
● Stránka může být v hlavní paměti umístěna na libovolném místě. Volba místa je záležitostí operačního systému. Výměna stránek není plně HW asistována.
● Jak je stránka v paměti nalezena● Mezi virtuálním a fyzickým adresním prostorem existuje pevné mapování. Část virtuální
adresy je za pomoci tabulky stránek překládána na fyzickou adresu.
● Pro urychlení překladu se využívá rychlá vyrovnávací paměť (Translation Lookaside Buffer – TLB) s omezeným počtem posledních prováděných překladů
● Která stránka bude ve fyzické paměti nahrazena v případě výpadku● Záleží na scénáři nahrazování. Obvykle se operační sytém pokouší najít nejdéle
nepoužitou stránku (LRU) a tu nahrazuje.
● LRU používá HW podporu v podobě příznaku použití stránky (use bit nebo reference bit)
● Jak je se stránkami zacházeno při změně jejich obsahu● Pro zápis je obvykle využívána strategie opožděného zápisu (write back) s použitím
příznaku změn (dirty bit)
![Page 30: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/30.jpg)
Virtuální paměť a stránkování
![Page 31: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/31.jpg)
Synonyma a homonyma při překladu adres
● Homonyma virtuálních adres● Stejná virtuální adres ve dvou rozdílných kontextech (procesech) míří na
rozdílná místa ve fyzické paměti
● Zabraňuje jednoduchému ponechání záznamů v TLB v případě přepnutí kontextu procesoru.
● Synonyma virtuálních adres● Rozdílné virtuální adresy ve stejném kontextu nebo rozdílných kontextech
ukazují na stejnou fyzickou adresu
● Problém pro cache indexované podle virtuální adresy.
● Aktualizace dat pod jednou virtuální adresou v cache vede k nekonzistenci při přístupu k datům pod jinou virtuální adresou (stejná data jsou v cache umístěna dvakrát).
● Řešením je zabránění možnosti koexistence synonym v cache.
– Na úrovni operačního systému – Barvení stránek
– HW asistovaná řešení
![Page 32: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/32.jpg)
TLB Cache
● TLB cache● Slouží k urychlení překladu často požadovaných virtuálních adres.
● Malá plně asociativní cache paměť s obvykle 64 záznamy na L1.● Dnes hierarchizována. L2 okolo 512 záznamů s omezenou asociativitou
(4 čestně asociativní)
● Platnost záznamů závisí na aktuálním kontextu procesoru (aktuálně používané stránce)
– Pokud dojde ke změně kontextu musí se TLB vymazat. Procesy mají stejný virtuální prostor. Překlad adres by nepracoval správně.
– Řešením je přidání identifikace procesu k záznamům v TLB. Pokud nesouhlasí s ID aktuálního procesu nesmí být záznam použit.
● Problematika synonym a homonym v návaznosti na ostatní cache
– Indexování cache podle virtuální adresy
![Page 33: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/33.jpg)
Index a Tag v cache paměti
● V závislosti na uspořádání a vztahu virtuálních a fyzických adres, mohou být index a tag pro cache voleny následujícími způsoby
● Virtuální index, virtuální tag (odvozeny od virtuální adresy)– Pro přístup je použito přímo virtuální adresy bez nutnosti jejího
překladu. Prohledávání cache může začít okamžitě.
– Problematické při přepínání kontextů. Cache musí být vymazána.
● Virtuální index, fyzicky tag● Fyzický index, virtuální tag
– Umožňuje paralelizaci přístupu do cache a překladu virtuální adresy při použití offsetu stránky jako cache tagu (při překladu se němění)
● Fyzický index, fyzický tag (odvozeny od fyzické adresy)
![Page 34: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/34.jpg)
Hlavní paměť
● Výkonnost hlavní paměti● Zpoždění hlavní paměti
– Přístupová doba (doba mezi vysláním požadavku a obdržením požadovaných dat)
– Přístupový cyklus (čas mezi jednotlivými požadavky)
● Šířka přístupového kanálu do HP
– Velikost datové sběrnice (nepřímo velikost datových bloků)
● Dynamická hlavní paměť (DRAM resp. SDRAM)● Paměť vyžaduje pravidelné obnovování obsahu
– dnes okolo 8ms, paměť v této době „nelze používat“, konzumuje méně než 1% času
● Adresa bývá dělena do dvou částí vzhledem k maticové organizaci paměti
– RAS (adresa řádku)
– CAS (adresa sloupce)
● Statická paměť s náhodným přístupem (SRAM)● nevyžaduje obnovování obsahu (konstrukčně využívá 6 tranzistorů, zabírá více
místa, je energeticky náročnější a dražší)
![Page 35: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/35.jpg)
Dynamická paměť
● Organizace paměti
● Maticová organizace paměti– snížení počtu adresních pinů
– rozdělení adresy do dvou bloků (adresa řádku a adresa sloupce)
● Přístup k paměti– zaslání adresy řádku (výběr řádku
matice)
– zaslání adresy sloupce (vybrání konkrétní paměťové buňky)
– přečtení dat (data poskytnuta na datovou sběrnici)
– zpětný zápis dat (čtením jsou data v buňce znehodnocena, je potřeba je znovu zapsat)
![Page 36: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/36.jpg)
Časování dynamické paměti● Časování pamětí (4 klíčové parametry)
● CL (CAS Latency)
– čas potřebný pro získání dat po odeslání adresy sloupce (předpokládá se otevřený řádek, ze kterého se čte)
● TRCD (Row Address to Column Address Delay)
– počet cyklů mezi otevřením řádku a přístupem k sloupci v něm
● TRP (Row Precharge Time)
– počet cyklů mezi předchozím příkazem a otevřením nového řádku (práce s předchozím řádkem musí být ukončena)
● TRAS (Row Active Time)
– celkový počet cyklů potřebný k získání dat z paměti
– obvykle roven součtu předchozích hodnot
![Page 37: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/37.jpg)
Evoluce optimalizací hlavní paměti
● Asynchronní hlavní paměť● Vybavování požadavku je zahájeno v okamžiku změny řídícího signálu
● Signály řízení se po dobu vybavování prakticky nedají měnit
● Řadič paměti provádí synchronizaci se sběrnicí na úrovni požadavek - odpověď
● Synchronní hlavní paměť● Řídící signály jsou zpracovávány až ve chvíli příchodu hodinového signálu
sběrnice (synchronizace s řadičem paměti)
● Požadovaná operace může být zaznamenána a vykonávána nezávisle na případných změnách řídících signálu
– Další požadavek může být na hlavní paměť zaslán dříve, než je předchozí vybaven (zřetězení požadavků na HP)
– Předpokládá se fixní známý počet cyklů mezi zasláním požadavku a vybavením dat
![Page 38: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/38.jpg)
Evoluce optimalizací hlavní paměti
● Fast Page Mode● Přináší možnost opakovaného čtení nebo zápisu dat v rámci
adresovaného řádku, bez nutnosti znovu zasílání jeho adresy– přineslo zvýšení výkonu při lokálních operacích (shlukové čtení nebo zápis)
● Další rozšíření v podobě přímého shlukového čtení (skupina blízkých/sousedních slov) nebo další dodatečné minimalizací času potřebných pro adresaci sloupce
● Double Data Rate● Data mohou být přenášena na sestupnou i vzestupnou hranu
hodinového signálu– Interní organizace v podobě více modulů, větší propustnost dat mezi pamětí
a řadičem
– zvýšení spotřeby, snížení napájecího napětí (1.8V, 1.5V)
![Page 39: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/39.jpg)
Evoluce optimalizací hlavní paměti
● Prokládána paměť (Interleaved Memory)
● Paměť je organizována do několika skupin paměťových čipů (paměťových bank)
– Paměť s N skupinami může realizovat N-cestné prokládání (N obvykle mocnina 2)
● Datová slova jsou do bank zapisována „prokládaně“ například podle vzoru „a mod N“
– a reprezentuje adresu slova a N počet paměťových bank
● Banky jsou na sobě nezávislé
– Časování operace nad jedním neovlivňuje ostatní.
– Zvýšení počtu paralelismu proveditelných nad HP (Překryv operací nad banky).
● Organizace 32 slov do paměti s 4-cestným prokládáním
Bank 0 00 04 08 12 16 20 24 28Bank 1 01 05 09 13 17 21 25 29Bank 2 02 06 10 14 18 22 26 30Bank 3 03 07 11 15 19 23 27 31
![Page 40: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/40.jpg)
Evoluce optimalizací hlavní paměti
● Rozdílné časování paměti a IO sběrnice● Vnitřní organizace paměť (shlukové operace, prokládání) umožňuje
poskytovat v jednom paměťovém taktu více datových slov● Přenos slov na vzestupnou a sestupnou hranu hodinového signálu
přestává stačit● Oddělení interního časování paměti a časování sběrnice
představeno u standardu DDR2 SDRAM● Srovnání DDR, DDR2, DDR3 s časováním paměti 100MHz MemClk BusClk DataRate PeakTrans Timing CAS MHz MHz MTps MBps Clk nsDDR 100 100 200 1600DDR2 100 200 400 3200 3-3-3 15-20DDR3 100 400 800 6400 5-5-5 12.5-15
![Page 41: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/41.jpg)
Synchronous Dynamic RAM
![Page 42: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/42.jpg)
Hlavní paměť organizace
● Jednoduchá organizace hlavní paměti● Šířka datového slova je zachována po celou cestu hierarchii paměti od
procesoru až po hlavní paměť
● Jednoduchost modelu, snadná implementace, velká latence
● Paměť s širokým datovým slovem● Datová sběrnice mezi hlavní pamětí a cache pamětí je rozšířena na N
násobek velikosti datového slova procesoru.
● Dodatečný HW k realizaci výběru konkrétního slova z N slov dlouhého řádku v cache.
● Významné snížení latence paměti při sekvenčním čtení v rámci N slov
● Prokládaná hlavní paměť● Hlavní paměť je rozdělena na nezávislé moduly. Na každý z modulů jsou
požadavky zasílány samostatně. Dochází ke zřetězení přístupů do HP.
● Snížení latence, odpadá potřeba široké sběrnice, komplexnější řadič paměti
![Page 43: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/43.jpg)
Hlavní paměť organizace
Stejná šířka sběrnicemezi CPU a Cache, Cache a Hlavní pamětí
Sběrnice mezi CPUa Cache je rozšířena omultiplexor (zúžení k CPU). Cache a Hlavní pamětípropojena N širokou sběrnicí
Paměť organizována dosamostatných banků. Datovásběrnice má stejnou šířkuna všech úrovních.
![Page 44: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/44.jpg)
Hlavní paměť organizace
● Prokládaná HP● Sekvenčně řazená slova jsou podle známého vzoru ukládána do
jednotlivých banků paměti (jako vzor lze chápat „mod počet banků“)
● Počet banků HP ≤ přístupové době do paměti
● Srovnání výkonu– pro srovnání předpokládejme 1 takt pro zaslání adresy, 6 taktů pro vybavení
požadavku, 1 takt pro zaslání dat
– požadavek na čtení zahrnuje 4 slova v HP (jeden blok v cache)
● Jednoduchá HP
– 4 x ( 1 + 6 + 1 ) = 32 taktů
● HP s širokým datovým slovem
– 1 + 6 + 1 = 8 taktů
● Prokládaná HP
– 1 + 6 + 4 x 1 = 11 taktů
![Page 45: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/45.jpg)
Závěr
● Paměťový subsystém počítače● Cache paměti a jejich optimalizace
● Evoluce v hierarchii cache pamětí
● Virtuální paměť a stránkování● návaznost na cache● rychlý překlad
● Hlavní paměť● dynamická paměť a její organizace
![Page 46: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/46.jpg)
Dotazy?
![Page 47: Pokročilé architektury počítačůwh.cs.vsb.cz/mil051/images/2/26/PAP-PR-03_Hierarchické_uspořádání_pamětí...značně velkého, paměťového prostoru (chování se označuje](https://reader033.fdocument.pub/reader033/viewer/2022041515/5e2af00e88074c63d8623f26/html5/thumbnails/47.jpg)
47
Literatura
● John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach (4th Edition)
● William Stallings, Computer Organization and Architecture Designing for Performance (8th Edition)
● Paul H. J. Kelly, Advanced Computer Architecture Lecture notes 332
● B. Keeth, R. J. Baker, B. Johnson, Dram circuit design: fundamentals and high-speed topics
● Andrew S. Tanenbaum, Operating Systems: Design and Implementation