ˇ Pamet’ové obvody, ˇradiˇce a implementace, ˇ asociativní pameti ˇ ACS Ing. Jakub Št’astný, Ph.D.1 1 FPGA Laboratoˇr ˇ Katedra teorie obvodu˚ FEL CVUT Technická 2, Praha 6, 166 27 http://amber.feld.cvut.cz/fpga
2. bˇrezna 2015
Osnova pˇrednášky
ˇ DRAM 1 Pameti ˇ 2 Statické pameti ˇ Obecné statické pameti ˇ 3 Hierarchické pamet’ové systémy Motivace a pozorování Hierarchický systém ˇ Cache pameti
Implementace ˇ pametí
ˇ Základní delení • ROM: Read Only Memory • maskou programovatelné pameti ˇ (via a diffusion, jaký to má vliv na návrh?) • OTP pameti ˇ • NVM • flash pameti ˇ vs EEPROM pameti ˇ • FRAM pameti ˇ (feritová jádra vrací úder :-) ) • MRAM pameti ˇ (magnetorezistivita) • RAM: Random Access Memory • statická SRAM • dynamická DRAM • registrové pole • základní architektura • ruzné ˚ typy registru˚ • použití latchu˚ vs. DFF • vliv rozmer ˇ u˚ pole na jeho technické parametry
Dynamické ˇ pameti ˇ Dynamické vs. statické pameti?
ˇ DRAM vs SRAM pamet’
• DRAM 1-3 tranzistory na bunku ˇ vs SRAM 6 tranzistoru˚ • DRAM potˇrebuje refresh, SRAM data udržuje bez omezení • DRAM je pomalejší, SRAM rychlejší • DRAM má vetší ˇ pˇríkon, než SRAM • DRAM je lacinejší, ˇ než SRAM • DRAM se používá pro hlavní pamet’, ˇ SRAM pro cache a
ˇ malé pameti
ˇ blokové schéma DRAM pamet’ • organizace po
ˇrádcích/sloupcích • cˇ tení ve dvou fázích: ˇrádková, sloupcová 1
2
3
4
vystavení ˇrádkové adresy vystavení sloupcové adresy ˇ vyˇctení bunky a obnovení obsahu vystavení dat
ˇ – 1T cell DRAM pamet’ • volba ˇrádky – wordline je aktivována • náboj z kapacitoru pro uložení dat Cs je pak pˇriveden na
bitline s kapacitou Cb ≈ 10 × Cs • napetí ˇ na bitline je potom Vb = Vs ×
Cs Cs +Cb ,
mnohem
menší než Vs • potˇrebujeme cˇ tecí zesilovaˇc (sense amplifier) na zesílení
ˇ na bitline napetí • cˇ tení z bunky ˇ je destruktivní a je její stav tˇreba obnovit
ˇ – crosspoint architektura DRAM pamet’ ˇ open bitline pameti, • • • • •
ˇ ˇ ˇ více paralelneˇ C(L), C(R) jsou pamet’ové bunky, v pameti V
pˇred cˇ tením – pˇrednabije bitline a dummy cell na obou stranách cˇ tecího zesilovaˇce na DD 2 ˇ ˇ je pˇriveden na signál z C(L) a dummy bunky cˇ tení – pˇr. wordline W(L) zvolí i protilehlou dummy bunku, vstupy cˇ tecího zesilovaˇce ˇ Φ(L) signál pˇripojí napájení na cˇ tecí zesilovaˇc, pracuje diferenciálneˇ s velkým ziskem (dva inv. proti sobe) ˇ ˇ cˇ tecí zesilovaˇc se pˇreklopí, zesílí napet’ový rozdíl na vstupech, obnoví náboj v bunce
ˇ Konvenˇcní DRAM pamet’ • adresování: multiplexovaná adresa ˇrádku a sloupce • RAS, CAS – Row/Column Address Strobe 1 2
adresa ˇrádku – celý ˇrádek se vyˇcte do rˇádkového registru sloupcová adresa pak vybere odpovídající slovo a pošle ho ˇ na výstup pameti
Fast Page Mode DRAM Není tˇreba vystavovat ˇrádkovou adresu, dokud se pohybujeme v jednom ˇrádku, typické cˇ asování 5-3-3-3 (fclkmax = 66MHz, 212 ns.).
Extended Data Out DRAM & SDRAM
EDO DRAM ˇ umožnuje ˇ Dodateˇcný registr na výstupu pameti pipelining, typické cˇ asování 5-2-2-2 (fclkmax = 75MHz, 146 ns).
SDRAM • pracovní frekvence procesoru je celoˇcíselným násobkem
ˇ ˇ pracovní frekvence pamet’ové sbernice • menší problémy s resynchronizací, není tˇreba taková
cˇ asová rezerva • typické cˇ asování 5-1-1-1 (fclkmax = 133MHz, 60 ns).
Double Data Rate SDRAM • stále stejná DRAM pamet’ová ˇ matice • proti SDRAM vyˇcítáme data s obema ˇ hranami hodinami • v pameti ˇ jsou dveˇ pamet’ové ˇ matice, pˇrístup prokládaneˇ • typické cˇ asování – dvakrát rychleji, než SDRAM • DDR100, 200 – 100, 200 MHz frekvence ext. sbernice ˇ
DDR2, DDR3 SDRAM • DDR2 až 533 MHz frekvence ext. sbernice ˇ (1066 MHz
data transfer rate, až 8.5 GB/sec) • DDR2 interneˇ 1/4 frekvence sbernice, ˇ ˇ 4 pamet’ová jádra • DDR3 – 8×...
DDR4 SDRAM • zmena ˇ interface: místo sdílených kanálu˚ mezi ˇradiˇcem • • • • •
ˇ (dual, triple, quad) budou point-to-point spoje pameti další snížení spotˇreby energie 8-mi násobný prefetch jako u DDR3 Through-Silicon Vias 3D stacking expected ˇ paralelizace – z interface na ˇradiˇce silnejší zdroj: http://en.wikipedia.org/wiki/DDR4
O škálovatelnosti návrhu • analogové podpurné ˇ – nábojové pumpy, ˚ cˇ ásti pameti
ˇ další obvody – nejsou dobˇre regulátory napetí, škálovatelné se zmenšením procesu • SDRAM a DDR: 70–80% cˇ ipu pamet’ová ˇ matice, 38% pro
DDR3 a <30% pro DDR4 • zdroj: http://en.wikipedia.org/wiki/DDR4
ˇ SRAM pameti
ˇ SRAM pamet’ • velká bunka, ˇ ˇ rychlá pamet’ • idle mode – menší spotˇreba proti DRAM • jak asynchronní pameti ˇ tak synchronní
ˇ – 6T cell SRAM pamet’
ˇ – implementace SRAM pamet’ • jednobránová vs. vícebránová pamet’ ˇ (co to je, kdy to
použít) • ASIC • jak získat: bud’ generátor, nebo pamet’ový ˇ ˇrez (IP makro) • co získat: • VHDL/Verilog simulaˇcní model (nesyntetizovatelný!) s cˇ asovým modelem • model pro analogové simulace • GDS – makro, layout pro vložení do cˇ ipu behem ˇ chip assembly
• FPGA – pomocí syntetizovatelného RTL kódu • distribuovaná pamet’ ˇ vs. bloková pamet’ ˇ (vs. násobiˇcky) • distribuovaná – rychlost, bloková – kapacita • synchronní a asynchronní, pamet’ ˇ je bez resetu • doporuˇcený zpusob ˚ zápisu na RTL úrovni
Hierarchické ˇ pamet’ové systémy
Motivace a pozorování
• Von Neumannovo úzké hrdlo • výkon poˇcítaˇcu˚ je dnes v zásadeˇ omezen výkonem ˇ pamet’ového systému • fantastický výkon procesoru˚ klade nároky na pamet’ový ˇ subsystém • výkon procesoru˚ roste každý rok o 60% • výrobci CPU jsou orientováni na výkon • rychlost pametí ˇ se zlepšuje o 10% roˇcneˇ • výrobci pametí ˇ jsou orientováni na kapacitu
ˇ Na cˇ em závisí rychlost pameti?
ˇ Rešení • menší pamet’ ˇ je rychlejší (také spotˇreba) • menší zpoždení ˇ na signálech – kratší • méneˇ úrovní kombinaˇcní logiky v dekodérech • mužeme ˇ – rychlejší ˚ použít více proudu na cˇ tení bunky obvod • hierarchický pamet’ový ˇ systém • každá úrovenˇ smerem ˇ k procesoru • vyšší cena na bit kapacity pameti ˇ • vyšší rychlost • menší kapacita • koneˇcný cíl • cena rovná ceneˇ na bit u nejlevnejší ˇ pameti ˇ • kapacita rovná kapaciteˇ nejvetší ˇ pameti ˇ • rychlost rovná rychlosti nejrychlejší pameti ˇ • využití principu lokality • cˇ asová lokalita: za chvíli se budu chtít zpet ˇ vrátit k tomu, s cˇ ím už jsem pracoval • prostorová lokalita: za chvíli budu pracovat se slovem sousedícím se slovem se kterým práveˇ pracuji
ˇ Hierarchie pamet’ového systému registry malé, na rychlosti CPU, pˇrímo v procesoru ˇ SRAM cache blízko procesoru, malá pamet’, ˇ obecneˇ DRAM, pomalá, veliká, levná hlavní pamet’
ˇ Cache pameti
Cache – základy • asociativní pamet’ ˇ vs pamet’ ˇ adresovaná • instrukˇcní (read only), datová (read/write), TLB
(stránkovací buffer) • každá lokace v pameti ˇ je definována fyzickou adresou • každá lokace v cache koresponduje k jedné, nebo více
ˇ fyzickým pamet’ovým adresám (asociativita)
Procedura cˇ tení 1
procesor zahájí cˇ tecí operaci
2
data jsou nalezena v cache a jsou platná → cache hit, data jsou pˇredána procesoru, konec data nejsou nalezena v cache → cache miss
3
1 2
ˇ instrukcí, procesor je zastaven (spekulativní provádení ˇ neco ˇ jiného) simultaneous hyper threading – muže ˚ delat v cache je alokován nový záznam • je-li neobsazený jeden z vhodných záznamu˚ v cache (asociativita), je použit • jsou-li všechny vhodné záznamy obsazeny, je tˇreba jeden z nich vybrat (replacement policy) a pokud je tˇreba, zapsat ˇ do další úrovneˇ pameti ˇ v systému. Záznam bude data zpet pˇrepsán novými daty.
3 4
ˇ do cache data jsou pˇrenesena z další úrovneˇ pameti data jsou pˇredána procesoru
Replacement policy – RP Jak vybrat, kterou položku z cache vyhodit? • RP je heuristika, která by mela ˇ být schopna pˇredvídat u které z vhodných položek už nebude potˇreba v budoucnosti její obsah • LRU: Least Recently Used – pˇrepíšeme položku, ke které
se v minulosti nejméneˇ pˇristupovalo • Random: náhodná volba napˇríklad pomocí shift registru
ˇ bežícího na hodinách (skoro stejneˇ dobré, jako LRU) • zakázání cachování pro pamet’ové ˇ regiony ze kterých cˇ teme jen výjimeˇcneˇ a cache by moc nepomohla muže ˚ zvýšit výkon systému (méneˇ cˇ asto budeme pˇrepisovat záznamy v cache)
Procedura zápisu 1 2
procesor zahájí zápisovou operaci pokud je cache typu write-through, pak • každý zápis do cache automaticky vyvolá zápis do hlavní
ˇ pameti • jednodušší pro multiprocesorový systém • vede na velký provoz mezi cache a hlavní pametí ˇ • pomalejší zápis (lze vylepšit write bufferem) 3
pokud je cache typu write-back, pak • data zapsána jen do cache • odpovídající záznam v cache je oznaˇcen pˇríznakem “dirty”. • data zapsána do další úrovneˇ hierarchie v pamet’ovém ˇ
systému až je záznam pˇri cˇ tení nahrazován jiným obsahem ˇ pameti. • rychlejší zápis (zvlášt’ opakovaný nebo do sousedních lokací) • cˇ tení muže ˚ být pomalejší
Cache – základy
Flags
• každý záznam (entry) v cache obsahuje • vlastní data • tag – znaˇcku, visaˇcku – cˇ ást/celou adresu v pameti ˇ • pˇríznaky – valid flag, dirty flag a další • pˇríklad • pˇrímo mapovaná cache (1 way associative, direct mapped) • 8 byte/záznam v cache, 4 kB cache • 32 bit adresa do pameti ˇ • Dokážete vysvetlit, ˇ proˇc jsou zvolené tyto šíˇrky adres/tagu˚ a bitové pozice? 0
63
0
11:3 Data
Tags 20 Phys. addr.
64
=
31:12 Phys. addr. hit
2:0 8
512 items
19 Phys. addr.
Cache – základy • dvoucestneˇ asociativní cache (2 way associative) • 32 bit adresa do pameti ˇ • 8 byte/záznam v cache, 4 kB cache • Dokážete vysvetlit, ˇ proˇc jsou ...? • Co z toho plyne pro asociativitu – dopad na implementaˇcní
0
63
0 20
0
0
63
Phys. addr. 10:3 Tags
Data
Tags
Data
21 Phys. addr. 31:11
=
21 Phys. addr.
=
31:11 01
10
MSB LSB
64
Phys. addr. hit
2:0 8
256 items
20
Flags
Flags
parametry obvodu a na výkonnost systému?
Cache – základy
ˇ Hodnocení výkonosti pamet’ového systému
ˇ šíˇrka pásma rychlost s jakou dokáže pamet’ový systém dodávat data procesoru (ideální nekoneˇcná) ˇ a jeho latence cˇ as mezi vznesením požadavku na pamet’ dokonˇcením (ideální nula) Menší latence → procesor rychleji dostane data a bude jich chtít víc → omezující bude pak šíˇrka pásma ˇ Na cˇ em závisí v hierarchickém systému prum ˚ erná pˇrístupová ˇ doba k pameti?
ˇ Hodnocení výkonosti pamet’ového systému ˇ šíˇrka pásma rychlost s jakou dokáže pamet’ový systém dodávat data procesoru (ideální nekoneˇcná) ˇ a jeho latence cˇ as mezi vznesením požadavku na pamet’ dokonˇcením (ideální nula) Menší latence → procesor rychleji dostane data a bude jich chtít víc → omezující bude pak šíˇrka pásma TAvgAcc = Thit + pmiss × Tmiss ˇ TAvgAcc prum ˚ erná doba pˇrístupu k datum ˚ v cache (cache hit) Thit cˇ as potˇrebný na vyˇctení dat z cache, jsou-li tam pˇrítomna ˇ pmiss pravdepodobnost, že data v cache nejsou (cache miss) Tmiss cˇ as potˇrebný na naˇctení dat do cache z hlavní