Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

Dator.
Lagringsmedia.
Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
DAGENS TEMA Lagerlokalisering!.
En avancerad miniräknare
Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)
Ruttplanering Vad är det??.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
© X-on Data EdWord. © X-on Data EdWord – tillägg till Word EdWord är en anpassning för att göra Microsoft Word enklare.
Datorarkitekturer och operativsystem
Persondatorer Datorns internminne (Kapitel 6)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
System för lagring och backup ALLMÄN INFORMATION OM NYA LDC-SYSTEM –
EDA Digital och Datorteknik
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
©annax1 PC-teknik Minnen. 2 MINNEN Segmenterat minne 16 bits segmentregister + 32 bits offset = 64k*4Gbyte = 512Tb obs! Ofta används inte alla 16 bitarna.
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -
Tumregel z10 procent av minnet används 90 procent av tiden.
Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.
Adressöversättning Repetition av virtuellt minne
Programmeringsteknik K och Media
Distribuerade filsystem
DAV B04 - Databasteknik Indexering (kap 14).
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne.
Simuleringar för Brista provväg Simuleringar av porvattentryck som funktion av vägens utformning, materialegenskaper och nederbördsvariation Rebecca Bertilsson,
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
1. Vik ett papper så att du får 9 lika stora bitar
Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1 Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1.
LHC 98 ors spelidé 2010/11 Försvarszon
Tabeller.
Vektorer (klassen Vector) Sortering
1 Pass 2 Allmän IT Hårdvara Hårdvara Hårdvara = Maskinvara Hårdvara är ett samlingsnamn för olika fysiska tillbehör till en dator. T. ex. Systemenhet.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Bios = Basic Input/Output System
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer.
Prestanda ● Vad påverkar datorprestanda ● Hur mäter man datorprestanda ● Räkna klockcykler - ett sätt att analysera ● Amdahls lag - gräns för förbättringar.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
William Sandqvist Övning 8 Minnessystem Lokalitet Cacheminnen William Sandqvist
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
Simulering Introduktion Exempel: Antag att någon kastar tärning
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
6/3/2015© Mats Brorsson1 Hur mycket snabbare blir det med PC133 SDRAM jämfört med PC100 SDRAM?... blir det med en 1,4 GHz Athlon- processor jämfört.
Föreläsning 1 Introduktion till kursen. Algoritmer
12 June G1518, Föreäsningl 8, vt07 (E/I/CL)1 2G1518 Datorteknik Föreläsning 8 Cache Memory vt 2007 (period 3-4) för E, I och CLMDA.
Avkodning av minnen (och I/O)
16 July 2015 IS1500 Datorteknik och komponeneter, föreläsning DC-F2 1 IS1500 Datorteknik och komponenter Föreläsning DC F2 Kretsar med återkoppling Minnen.
Datorteknik Lektionsmål: – Datorns delar – ESD Kursmål: – Datorsystems uppbyggnad, komponenter och kringutrustningar. – ESD-säker hantering av mikroprocessorer.
Roland Carlsson Strategisk Logistik 2016 Roland Carlsson Ruttplanering.
Webbanmälan till högskolestudier HT 2017
Masshantering Avfallsbegreppet Massor i infrastrukturärenden
Bygga dator: CPU och minne
Grundläggande datavetenskap, 4p
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.

Minnesteknologier  Snabba minnen är dyra!  Billiga minnen är långsamma!  Hur kan vi skapa det dyra (och snabba) minnets prestanda till det långsamma minnets kostnad?

Referenslokalitet  Tidslokalitet – De minnesceller som nyss använts kommer med stor sannolikhet snart användas igen.  Rumslokalitet – De minnesceller som ligger nära de som nyss använts kommer med stor sannolikhet att användas även de.

Minneshierarki Ett sätt att utnyttja referenslokalitet  Nivå M 1 sköts av ett cache-minne  Nivå M 2 kallas ofta huvudminne  Nivå M 2 –M 3 kallas virtuellt minne CPU M1M1 M2M2 M3M3 SRAM DRAM Disk 1CPUn försöker nå minnet på en viss adress A. Om A finns i M 1 utförs minnesreferensen. 2Annars överförs ett block minne (B 1 ) innehållande A från M 2 till M 1. Referens utförs i M 1. 3Om adress A ej heller finns i M 2 hämtas ett block (B 2, B 2 > B 1 ) innehållande A från M 3 till M 2. Återgå till punkt 2.

Prestandaaspekter Två nivåers minneshierarki: M 1 – M 2 Kostnad: SS ScSc c    Träffsannolikhet (hit ratio): N N H 1 = Medelaccesstid: missA tHHtt)1( 1  S: storlek på minnet c: kostnad per bit N: Totala antalet minnesreferenser N 1 : Antalet minnesreferenser som kan göras i M 1 t 1 : Accesstid i M 1 t miss :Tidsåtgång vid miss i M 1

Minneshierarkier – problem Antag en 2-nivåers hierarki, M 1 och M 2 Fyra frågor: 1.Var i M 1 kan ett block placeras? (block placement) 2.Hur hittar man ett givet block i M 1 ? (block identification) 3.Om M 1 är fullt, vilket block ska då bytas ut för att ge plats åt ett nytt block? (block replacement) 4. Vad händer vid skrivningar? (write policy)

Cache – adressavbildning Enklaste exemplet: direkt adressavbildning Minne 4 block cache med direkt adressavbildning Adress Cache Index En cache med k block avbildar block i i minnet på block i mod k i cacheminnet A B C D E F

Adressetikett (tag) och index Ex: 0x03Exempel: 0x50 0x5 0 Index N -1 : 2 N Byte cache Direkt adressavbildning Byte 0 Byte 1 Byte 2 Byte 3 Byte 2 N -1 0N31 : Adressetikett (tag) Adressetiketten lagras som en del av cacheminnets tillstånd “Valid”-bit :  32 bitars adress  2 N byte i cacheminnet, blockstorlek 1 byte  Index är de N minst signifikanta bitarna i adressen

Exempel på cacheaccess Access Start M [00001] (miss) TagDataV Access Misshantering: Läs Data Skriv Tag & sätt V M [01010] 000 M [00001] Läs Data Skriv Tag & sätt V M [00001] 010 M [01010] Access (Träff) 000 M [00001] 010 M [01010] Access (Träff) Tråkig nödvändighet:  Det blir många missar vid starten s.k. kallmissar

Större cacheblock tagvalid =? & Träff/Miss? Data tagindex block offset block 0 block 1 block 2 block 3 block 4 block 5 block 6 block 7 byte Cache med 64 byte Blockstorlek 8 byte

Alternativa adressavbildningar  Hög grad av associativitet ger större frihet vid placering av block  Låg grad av associativitet ger färre block att söka för att avgöra om blocket finns i cachen eller ej Cache block no. Memory block no. Direkt2-vägs mängdassociativFullt associativ

Organisationen hos en cache med fullt associativ adressavbildning word 0word 1word 2word n-1tagvalid... =? & Hit / Miss? Data tag block offset =? & &  1 block 0 block 1 block b-1

Organisationen hos en cache med mängdassociativ adressavbildning word 0word 1word 2word n-1tagvalid... =? & Hit / Miss? Data tagindex block offset block 0 block 1 block b-1 block b-2 =? & mängd 0 mängd b/2-1

Vad händer vid en skrivning? Antag att blocket finns i cacheminnet: 1.Write through – Skrivningen utförs i både cacheminnet och huvudminnet 2.Write back – Skrivningen utförs endast i cacheminnet, blocket måste skrivas tillbaka till huvudminnet vid blockutbyte Två sätt att hantera missar vid skrivning: 1.”Allocate on write” – Blocket läses in i cacheminnet 2.”No allocate on write” – Blocket läses inte in i cacheminnet, men huvudminnet uppdateras

Blockstorlekens effekt på prestanda  Större block utnyttjar rumslokaliteten men tar lång tid att hämta vid miss och fyller cachen snabbt.  Mindre block utnyttjar tidslokaliteten men man hämtar inte så mycket varje gång.

 Variationer på DRAM FPM, EDO  Utnyttjar det faktum att minnesaccesser inte är slump- mässiga  En rad i DRAM- matrisen läses in i ett register SDRAM  Har ett synkront gränssnitt till processorn (max 800 Mbyte/s) Rambus  En ny busstandard för DRAM (max 1,6 Gbyte/s)

 Minnen: Sammanfattning  SRAM och DRAM  SRAM används för cacheminnen  DRAM används för huvudminne  Minneshierarkier  Cacheminnen  Var i cachen kan ett block placeras?  Hur hittar man ett givet block i cachen?  Om cachen är full, vilket block ska då bytas ut för att ge plats åt ett nytt block?  Vad händer vid skrivningar?