+ All Categories
Home > Documents > Pokročilé architektury...

Pokročilé architektury...

Date post: 01-Jan-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
47
Pokročilé architektury počítačů Hierarchické uspořádání pamětí počítače Přednáška 3 Martin Milata
Transcript
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Č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

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

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

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

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

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

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

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

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

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

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

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


Recommended