Komma över Memory wall med 3D stacked minne LTH Ingenjörshögskolan vid Campus Helsingborg Institutionen för datavetenskap

Relevanta dokument
SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

MESI i Intel Core 2 Duo

HF0010. Introduktionskurs i datateknik 1,5 hp

Hantering av hazards i pipelines

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Cacheminne Intel Core i7

Cacheminne i en Intel Core 2 Duo-processor

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Minnet från processorns sida Datorteknik

Att köpa ny dator SeniorNet Lidingö Januari-2016

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

Grundläggande datavetenskap, 4p

Datorarkitekturer med Operativsystem

Datakommunikation med IR-ljus.

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

Digital- och datorteknik

Cacheminne i en AMD Opteron Processor

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Föreläsningsanteckningar 3. Mikroprogrammering II

Hannes Larsson - IDA 2, LTH Campus Helsingborg. NEC V R 4300i. Interlock-handling EDT621

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Cache-koherens protokoll MESI och MOSI

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Föreläsning 3.1: Datastrukturer, en översikt

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Rapport (1,5 HP) Lunds Universitet HT15

Test: Optimerad fallprovning med Dell, Intel och Altair

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Hur BitTorrent fungerar

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Lära känna skrivbordet

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Instruktioner för Brf Siljans elektroniska låssystem

SIMD i Intel s P5- baserade Pentium MMX

Vad är KiselGermanium?

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Hur kör vi egentligen en undersökning om trafikanters beteende och nya hastighetsgränser utifrån en bussförares perspektiv?

32 Bitar Blir 64 Sammanfattning

Föreläsningsanteckningar 5. Cacheminnen

Att använda pekare i. C-kod

Öka prestanda i Shared-Cache multi-core processorer

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Datorsystemteknik DAV A14 Föreläsning 1

Hantering av begränsat antal skrivningar på Solid State diskar

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Digital IC konstruktion

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Tentamen den 17 mars 2016 Datorteknik, EIT070

F5 Introduktion till digitalteknik

Storage. Effektivare datalagring med det intelligenta informationsnätet.

Västkust-trojka laddar för framtiden

Digital- och datorteknik

Digital IC konstruktion

SPORTident basenheter BSM7/BSF7/BSF8 mjukvara (firmware) 5.74

Barn och trafik. en undersökning ur ett föräldraperspektiv. Genomförd av NTF Väst 2012

Arm Cortex-A8 Pipeline

4:7 Dioden och likriktning.

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Hyper-Threading i Intelprocessorer

Digitalteknik och Datorarkitektur 5hp

SKEPPISUTBILDNING 2013

OM KRITERIER av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2004

Genetisk variation är livsviktig för vitaliteten och ganska snabbt även en förutsättning för överlevnaden hos en art.

Systemkonstruktion SERIEKOMMUNIKATION

Föreläsning 6: Introduktion av listor

Automatiserade testsystem

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Insulin för muskeluppbyggnad OCH fettförbränning

Några övningar att göra

Grunderna i stegkodsprogrammering

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Jämförelse av skrivtekniker till cacheminne

Av kursplanen och betygskriterierna,

HELMET -MODELLEN Helhets-Lärande genom MEntal Träning Uneståhl, 2006

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Grunderna kring helmäskning

BatterIaddare Smart 20 för 1-20Ah bly-syra batterier

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Batteriladdare Smart 50 Med inbyggd ficklampa för 6 200Ah bly-syra batterier

MagiCAD El & Rör. Varför MagiCAD och varför 2D/3D? Kollisionskontroll. MagiCAD El

Digitalt festivalengagemang

Viktiga moment i kursplanen

e-sense move dali Manual

Pipelining i Intel Pentium II

Batteriladdare Smart 100 Med inbyggd ficklampa för 6 240Ah bly-syra batterier

TDDB96 Projekt: Object priming med visuell stimuli

TEKNISK BESKRIVNING UCO (Ultra Clean Oil) MODUL FÖR OLJERENING

Utvärdering av föräldrakurs hösten 2013

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

Föreläsningsanteckningar 2. Mikroprogrammering I

Bank Switching. Att nå multipla adressrymder. Av: Drazen Mijatovic

På jakt med geocaching

Cache coherence hos multicoreprocessorer

Motion om säkrare gång- och cykelvägar

Transkript:

Komma över Memory wall med 3D stacked minne LTH Ingenjörshögskolan vid Campus Helsingborg Institutionen för datavetenskap Christofer Huynh IDA14 EDT621 Lärare: Erik Larsson

Abstrakt Memory wall, något som har varit problem inom dator arkitekturen då prestandan av processorer ökar mycket mer gentemot prestandan av minnet, vilket lämnar ett stort hål mellan dessa. Man strävar efter ett minne som man kan tillverka för ett låg pris, är kompakt, snabb och har bra skalbarhet. Det har varit många forskningar inom 3D stacked minne, då man tror att den vanliga DRAM inte kommer att räcka till, och att man behöver en ny teknik. 3D systemet kan vara tekniken som hjälper oss att minska på hålet mellan processorer och minnen. 3D minnen har mindre begränsningar än de 2D minnen, vilket leder till nya arkitekturer som till exempel en Footprint cache som försöker förutse Footprinten (storleken) av varje sida och hämta bara de block som tros behövas.

Introduktion Den senaste tiden har studier visat att processernas prestanda ökar med 50 % varje år medan prestandan på DRAM (minnet) bara ökar med 10 % varje år vilket lämnar ett stort hål mellan dessa processorer och DRAM, detta kallas även för Memory wall. I rapporten Overcoming the memory wall (Inouye et al 2012:3) nämns detta som ett problem då hålet blir större och större vilket gör att man inte längre kan öka prestandan genom att lägga till mer processorer. Den mest minneskrävande applikation just nu är video encoding, bara behandlingen och segmenteringen av 30 frames tar 15 minuter på en fyra-kärnig processor med 24GB RAM. Författarna menar att problemet inte var antal processor eftersom varje processor kördes bara runt 50-60%. Det man hade problem med var minnesåtkomsten av minnet och som framerate ökar med upplösningen, kan detta tiden förlänga med timmar eller även månader bara för att behandla en enda sekund av videon. En av den mest använda lösningen till Memory wall är användningen av cacheminnen. Man har försökt att hitta andra lösningar eller förbättra cacheminnen, som till exempel out of order execution som låter instruktioner att exekveras även om instruktionen före den har blivit blockerad eller innan den är färdig. Tyvärr så behöver dessa tekniker komplexa kretsar vilket betyder mer el konsumtion, som leder till reducering av investeringar av dessa komplexa tekniker. Shih-Lien Lu et al nämner i deras artikel Scaling the Memory Wall (2012:271) att en ideal minne måste ha ett låg pris, kompakt och ha en bra skalbarhet. Den ska även ha en snabb minnesåtkomst som matcha CPU frekvensen. Det viktigaste är att den ska vara energi-snål. Hög el konsumtion leder till komplicerade termiska lösningar vilket ökar omkostnaden för ett datorsystem. Författarna menar att teknologer har i många år försökt att hitta en ersättare till DRAM. Tyvärr finns det ingen klar ersättare för tillfället vilket betyder att vi måste kunna arbeta runt de begräsningar DRAM har och försöka få ut det bästa av vad DRAM har att ge i åtminstone 5 till 7 år till. Författarna föreslog också om att 3D stacking kan vara en möjlig lösning till att förlänga livs-längden av DRAM. Problemet med DRAM Två av de största problemen som man har med DRAM är skalbarhet och el konsumtionen (Shih-Lien Lu et al 2012:272). Författarna menar att DRAM fortsätter att krympa i fysiskt storlek, vilket gör det svårt att behålla kapaciteten på storleken samtidigt som man gör minnescellerna mindre. El konsumtionen har nyligen blivit ett stort problem för DRAM. Shih-Lien Lu et al referera till en publikation från 2009 Future Scaling of Processor-Memory Interfaces in the Proceedings of Super Computing, 2009 av J.Ahn, et al. Där visa författarna att DRAM chipen konsumera lika mycket eller mycket mer el än CPU:n när systemet kör ett krävande applikation. Anledningen till att el konsumtionen är så hög för DRAM är att man har fokuserat på att maximera effektiviteten på ytan för att minska på kostnaderna. Den nuvarande organiseringen av DRAM array (block) aktiverar tusentals bitar med varje begäran, returnera bara ett låg antal bitar till processorn, vilket gör detta väldigt ineffektivt. Ett annat exempel på el ineffektiviteten är på grund av att IC-kretsen är ihopsatt i något som kallas för DIMM (Dual-in-line Memory Module) som är en typ av minnesmodul med en datakanal som är 64 bitar bred. Det finns en chans att flera DIMM delar samma kanal som kommunicera med processorn, vilket leder till att en enda begäran måste aktivera flera IC kretsar som leder till att det körs mer än laddning.

En av anledningar till avtagningen av prestandan är att processorkärnan måste vänta på fördröjningen i DRAM när den ska hämta den data processorn behöver för att kunna exekveras (Inouye et al 2012:8). Här menar författarna att man skulle kunna öka bandbredden genom att öka bredden på data-bussen, men detta betyder en ökning av kostnaden. Ett annat förslag är att man öka på buss hastigheten istället, dock skulle detta leda till en högre el konsumtion. Det finns många olika förslag på att modifiera DRAM för att bli av med dessa problem, men det finns självklart nackdelar med modifiering vilket leder till forskningar inom 3DRAM för att lösa dessa problem. 3D stacked minne (3DRAM) Upplägget i ett 3DRAM är DRAM mikrochips som är staplad på varandra och är sammankopplade via vertikalt separationer. Genom att stapla minnet vertikalt på varandra skapas ett 3D IC-krets. Det finns olika design till detta som har sina för- och nackdelar. Ett exempel på detta är Intels Hybric Memory Cube (HMC), vilket sägs vara upp till 7 gånger mer energi effektiv än DDR3 (Inouye et al 2012:8). HMC är ett RAM inferface för TSV (through-silicon vias). Teknologin skapar mikrometer stora hål genom en vertikal kisel chip vilket skapar en mycket kompakt arkitektur. Bild 1 TSV, tagen från (Inouye et al 2012:4) Bild 2 visar en exempel på ett grundläggande struktur i ett 3D CPU-minne. CPU:n och L1 cache ligger på samma lager, L2 cache är staplad ovanför och primärminnet finns på de lager som är staplade ovanpå L2 cache lagret. Författarna menar att med ett 3D minne kan man dela upp stora chips till mindre IC-kretsar vilket leder till mindre kostnader då den minskar på tillverkningskostnaderna. Krets lagret kan byggas på olika processorer eller kiselskivor istället för att bli begränsad av en enda kiselskiva. Kablarna kan gå igenom mikrochipen istället för att lindra allting horisontellt som betyder att man få kortare kabel, vilket leder till en förminskning av fördröjningen i kretsen. Dessutom reducera detta även el konsumtionen, därmed minskas även värmebildningen och batterilivet förlängs vilket leder till att procedur kostnaden sjunker. Bild 2 Ett grundläggande 3D CPU-minne struktur (Inouye et al 2012:11) Nackdelarna med 3D minne är att det finns risk för att de blir defekta under tillverkningen, som till exempel hur värmet fördelas inom de staplade minnena.

Ändringar i arkitekturen i ett 3D minne Det enklaste ändringen man kan göra är att öka bredden på minnes-bussen. I ett 2D system är det mycket begränsat av antalet stift. Däremot i ett 3D system som använder TSV (through-silicon-vias) gör detta möjlig att ha tusen, om inte miljontals av anslutningar mellan processorn och primärminnet. Inouye et al (2012:15) nämner att det första logiska steget man tar är att öka minnesbussen till storleken av cache linjen för att utnyttja L2 cache maximalt. Man kan också öka storleken på en cache linje, men eftersom minnesåtkomsten för L2 cache ökas linjärt med cache linjens storlek så blir det inte så optimalt att göra det. En viktig optimering för ett 3D system är att öka klockfrekvensen för minnes-bussen och minnesstyrningen. I ett 2D system behöver inte minnesstyrningen att schemalägga någon begäran som är snabbare än vad DRAM:en kan respondera. Däremot när man växlar till ett 3D system där fördröjningstiden i primärminnet är drastiskt reducerad behöver man öka klockfrekvensen för att kompensera för ändringen. Inouye et al (2012:16) poängterar att denna ändring inte gör mycket ändring i prestandan, men det krävs för att kunna ta fördel av låg fördröjningstid av minnesåtkomsten. Dessa två ändringar som nämndes ovan är betraktas som ett grundläggande del av ett 3D system. Däremot är det möjligt att dela funktionella block över flera lager i ett 3D system. Till exempel, en minnesbank som innehåller rader av cell bitar och de separata peripheral logic (rad de-kodare, sense amp, rad buffert, kolumnväljare) kan delas upp mellan två lager som separera minnet från logiska enheten (Inouye et al 2012:15). Författarna nämner om en 3D minnes arkitektur som har fyra lager av DRAM minne och ett lager av DRAM:ens peripheral logic på toppen av processorn. Varje rank är splittrade över kisel lagren för att reducera längden på kabeln och kapacitansen (Figur b i bild 4). Figur a i bild 4 visar ett vanlig 2D DRAM som är staplade ovanför en processor. Fördelen med strukturen i figur b, genom att separera minnet från logiska enheten så kan man optimera varje lager och ge dem olika uppgifter genom olika process teknologi. Bild 3 Tagen från (Inouye et al 2012:16)

Ideala Cache för 3D stacked minne I artikeln Die-Stacked DRAM Caches for Servers: Hit Ratio, Latency, or Bandwidth? Have It All with Footprint Cache (Jevdjic et al 2013:406) ställer författarna upp några villkor för att ett 3D stacked cacheminne ska vara ideal. Ett cache minne ska bland annat vara snabb på att hitta tags, lagringen av tags och andra metadata ska vara minimalt. Off-chip trafiken ska också vara minimal. Den ska ha hög hit ratio och fördröjningstiden för hit och miss ska vara så låg så möjligt. Den lokala minnesåtkomsten måste vara snabb, och sist måste den ha en effektiv kapacitet hantering. Författarna jämför 2 cache design, Block-based cache och Page-based cache. De båda strukturen har sina för- och nackdelar, men varför inte låta dessa två tekniker komplimera varandra? Följande diagram visar en jämförelse mellan block- och page-based designen. Tabell 1 Jämförelse, tagen från (Jevdjic et al 2013:407) Författarna menar att page-based strukturen är generellt den bättre av de två designen. En ideal cache för 3D stacked minne är om man kan få de egenskaper i page-based struktur fast utan onödig trafik och med en bättre kapacitet hantering. Författarna föreslår något som heter Footprint cache en blandning mellan dessa två designen. För att uppnå dessa egenskaper i Footprint cache, används ett Footprint prediction, den förutspå alla block inom en sida som kommer att bli efterfrågade. Icke-förutspådda som begärs blir till cache miss, vilket leder till förluster i prestandan och energi, detta kallas för underprediction. Overprediction är när ett hämtat block inte används på grund att den har blivit ersatt, vilket bara slösar på bandbredd och energi. Footprint cache kan förutspå de block som kommer att bli efterfrågad med en hög precision, genom att kontrollera de tillgängliga data som finns i cacheminnet. Den första instruktionen innehåller värdefulla informationer om data som finns i sidan och är en god indikation vad som kommer att bli efterfrågad i den sidan. Genom att kontrollera vilka andra blocks den koden har access till och lagra den information kan man senare förutse med hög precision, vilka block som kommer att bli efterfrågade när en annan sida, hämtar information från samma kod. Footprint cache använder sig av en set-associative tag array. Den har två vektorer som håller reda på valid och dirty blocks (se bild 4). Tag arrayn är en pekare som koppla samman sidan till en prediction historik. Prediction historiken finns i en annan struktur som kallas för Footprint History Table (FHT). Där lagras förutspådda footprints som tros komma begäras. FHT har ett set-associative struktur och indexerad i par av PC (instruktionspekare) och offset key. FHT uppdateras varje gång en sida har blivit ersatt.

Bild 4 Design för en Footprint cache, tagen från (Jevdjic et al 2013:408) FHT används bara när man inte hitta en sida som innehåller adressen man söker. PC kommer att kontrollera vilken instruktion och offset bit av den adressen som orsakade missen, sedan returneras den förutspådda footprinten. När en miss uppstår kontrolleras det om PC & offset paren finns i FHT, finns den kommer de resterande blocken (som finns i den förutspådda footprinten) att hämtas från minnet. Sidan kommer sedan få en pekare som pekar på ett tag i FHT. Detta är föresatt att PC och offset paret finns i FHT, vilket det borde göra eftersom den redan har förutspått det. Om det inte innehåller PC och offset paret, vilket brukar hända i början när programmet exekveras, kommer en ny information och en pekare att allokeras i FHT. Footprint cache lyckades att ha den hit ratio som en page-based struktur och samtidigt ha samma bandbredd som block-based strukturen (Jevdjic et al 2013:414). I en simulation av författarna lyckades de demonstrera att Footprint cache ökade prestandan med 57 % i genomsnitt.

Diskussion 3D stacked minnes system är en lovande teknik som kan hjälpa oss att komma över memory wall. Men att det är ett system betyder inte att det inte finns begränsningar och utmaningar. Det har nämnts ovan att värme är ett problem inom 3D stacked system. Det finns många forskningar om olika metoder på hur man kan lösa detta problem, men även det har begränsningar och det kostar en del. Ett annat problem är produktionen. Det krävs mycket kommunikation för processor- och minnestillverkarna för att få 3D systemet att fungera. Dessa problem leder till att utvecklingen av 3D stacked minne går långsam framåt. Dock har vi ju sett signifikanta skillnader genom 3D arkitekturen. Det tar bort de begränsningar som DRAM har och genom att ta vara på denna möjlighet kan vi minska hålet mellan processorer och minnet eller kanske också bryta oss fria från memory wall. I rapporten gavs en exempel på DRAM cachearkitektur genom att använda sig av 3D stacked minne. Denna arkitektur kanske inte är perfekt, men det är något som bidra till utvecklingen av 3D stacked minne och det har gett några positiva resultat. I nuläget så dominerar de vanliga DRAM marknaden, visst det är många brister och den är inte perfekt men det har fungerat i det senaste decenniet, vilket är förståeligt att man är mer bekväm med det. Genom att modifiera till exempel cacheminnen så kan vi åtminstone förlänga användningen av den traditionella DRAM. Men hur länge kommer det att hålla, med den takten prestandan ökar i processorn kommer minnet att halka efter ännu mer vilket gör att man inte kan öka på systemets prestanda genom att bara lägga till mer processorer. Detta kommer att vara ett intressant ämne framöver, om man kan utveckla 3D stacked minne så att den blir en lämplig ersättare till de traditionella DRAM.

Källförteckning Lien Lu, Shih, Karnik, Tanay, Srinivasa, Ganapati, Chao, Kai-Yuan, Carmean, Doug, Held, Jim (2012), Scaling the Memory Wall, Hillsboro Oregon, IEEE/ACM International Conference on Computer- Aided Design (ICCAD); 11/5/2012, sidorna 271-272. Inouye, Jennifer, Molloy, Paul, Wisler, Matt (2012), Overcoming the memory wal, Oregon, Oregon State University, sidorna 3-4, 8-11, 14-17. Jevdjic, Djordje, Volos, Stavros, Falsafi, Babak (2013), Die-Stacked DRAM Caches for Servers: Hit ratio, Latency, or Bandwidth? Have it All with Footprint cache, ISCA '13 Proceedings of the 40th Annual International Symposium on Computer Architecture, ACM, New York, sidorna 404-409, 414.