12 June 2015 2G1518, 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.

Slides:



Advertisements
Liknande presentationer
Sammandrag i bildspelsform Du kan ta dig igenom hela bildspelet med piltangenterna eller med musen. Du kan även välja avsnitt genom att klicka på de olika.
Advertisements

Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
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)
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Datorarkitekturer och operativsystem
Enkel dator teknik Tips och tricks.
STUDIEMILJÖ Nu har du kommit till modul 2. Den handlar om din studiemiljö. Hur mycket har du egentligen tänkt på din fysiska studiemiljö? Har du funderat.
Persondatorer Datorns internminne (Kapitel 6)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
Filhantering Grundprincipen för filhantering Öppna filen
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.
1 2G1518 Datorteknik Föreläsning 5, våren 2007 Bussar In- och utmatning – I/O Pollning Handskakning.
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 för K och Media
Programmeringsteknik K och Media
Distribuerade filsystem
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
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 11: Implementation av filsystem.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne.
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; }
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.
Tabeller.
Vektorer (klassen Vector) Sortering
William Sandqvist C:s minnesmodell.
Bios = Basic Input/Output System
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
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.
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
31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
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.
Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
2G1518 Datorteknik Föreläsning 5 Bussar In- och utmatning (Input/Output, I/O) Programstyrd pollning hösten 2005 för D3 och CLMDA m fl.
3 April 2015IS1200 Datorteknik, föreläsning 61 IS1200 Datorteknik Föreläsning 6 Bushantering In- och utmatning, I/O Programstyrd pollning.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
22 April 2015IS1200 Datorteknik, föreläsning 11 IS1200 Datorteknik Föreläsning 1 Introduktion.
1 June G1518, Förel 10, ht2005 (D3/CLMDA)1 2G1518 Datorteknik, ht 2005 version för D3 och CLMDA Föreläsning Processorkonstruktion 2. DMA, Direct.
2 June G1502, Föreläsning 8, vt2004 för E och I1 2G1502 Datorteknik allmän kurs Föreläsning 8 Processorkonstruktion DMA, Direct Memory Access.
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
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
1 2G1502 Datorteknik allmän kurs Föreläsning 3 Programmering med hopp Programmering av Nios.
14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
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.
31 July 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10.
William Sandqvist Övning 10 Processorkonstruktion med pipe-line.
15 August 2015 IS1200 Datorteknik föreläsning CE - F11 IS1200 Datorteknik Föreläsning CE F1 Computer Engineering Introduktion.
Enkel dator teknik Tips och tricks. Välja storlek och radavstånd Här väljer du storlek på texten vi vill att ni använder 14 p till rubriker och 12 p till.
I vissa datorer behöver du trycka på F5 för att starta bildspelet
Grundläggande datavetenskap, 4p
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

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

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)2 F1F2F3F4F5F6F7F8F9F10Ö2Ö1Ö3Ö4Ö5LAB-1LAB-2Hemlab-1Ö6Ö7LAB-3Hemlab-2Ö8Hemlab-3Ö9TentamenÖ10 Assemblerkod 4 stegs pipeline Nios2time Nios2io C-kod Nios2int Cache-minnen CPU-scheduling 2G1518 Datorteknik

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)3 Litteraturhänvisningar  Kursboken, valda delar av kapitel 6  6.1 Inledning, läs  6.2 Minnestekniker, läses kursivt  6.3 Minneshierarkier, bra  6.4 Cacheminnen, viktigt  6.5 Avslutande kommentarer, bra  6.6 Övningar, se ex-saml. och hem-lab 2

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)4 Viktiga delar i en dator CPU BUS I/O MM Data Program

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)5 Program Memory m x 8 ALU ADD IR0 IR1 IR2 RWM 4-stegs PIPE-LINE Register File 32 x 32 Register File 32 x 32 PC+k PC+Imm PC ALU MEM FO WB FI

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)6 MEM 4 stegs PIPE-LINE LOAD FIFOWBFIFOWB MEM STORE Memory References FIFOWB EX FIFOWB EX Fetch Instruction

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)7 Harvard-arkitektur  Separata datavägar för instruktioner och data  Separat Instruktions-och Datacache  ”Krav” för att en processor med pipeline ska kunna hålla farten dvs kunna göra  FETCH och LOAD i samma klockperiod  FETCH och STORE i samma klockperiod

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)8 Nytt – Viktiga delar i en dator CPU BUS I/O D-CACHE I-CACHE MM Data Program ChipSet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)9 Main Memory - Cache Memory  Main Memory - Långsamt Stort Billigt fysiskt placerat utanför CPU-kretsen  Cache Memory - Snabbt Litet Dyrt fysiskt placerat inne i CPU-kretsen  ”Långsam” Bus-förbindelse mellan CPU och MM som passerar CPU-sockel och ChipSet  ChipSet innehåller Memory Control mm

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)10 Cache Memory grundide’  Försök att se till att ”viktig” information finns lagrad (kvar) i cache minnet  Vilken information är viktig ?  Instruktioner och data som (snart) kommer att refereras (igen)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)11 Lokalitet Referenslokalitet  Egenskaper hos program och data som kan utnyttjas (tas till vara) av cacheminnet  Rumslokalitet (Spatial Locality)  Tidslokalitet (Temporal Locality)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)12 Lokalitet Rumslokalitet  Rumslokalitet (Spatial Locality) En minnescell med en adress som ligger nära en minnescell som nyligen har refererats har större sannolikhet att bli refererad än andra minnesceller  Typexempel är sekvensiella program samt vektor- och matris-beräkningar

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)13 Lokalitet Rumslokalitet  När man hämtar in nya data från MM till cache-minnet passar man på att hämta ett block av näraliggande data  Genom att hämta och spara näraliggande information i cachen kan man utnyttja rumslokalitet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)14 Lokalitet Rumslokalitet  Lönar det sig att hämta stora block jämfört med små block ?  Bara om: 1. Medelhämtetiden per byte blir lägre ! 2. Inhämtade data verkligen refereras !

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)15 Lokalitet Tidslokalitet  Tidslokalitet (Temporal Locality) En minnescell som nyligen har refererats har större sannolikhet att åter bli refererad än andra minnesceller  Typexempel är programloopar och indexvariabler  Lagra en hel program-loop i cacheminnet för att ta till vara på tidslokaliteten  Lagra/spar indexvariabler i cacheminnet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)16 Minnesreferens från CPU:n (Read / Write)  Referera först Cache-minnet  Vid Cache Miss referera till Main Memory och  Kopiera (ett block) från MM till Cache Denna extra tid kallas Miss Penalty  Gör en ny referens (med Hit) till cachen (gäller för både read och write miss)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)17 Adressering av huvudminnet  Adressen anger direkt den eller de bytes i Main Memory som avses  Vid byteadressering gäller att om fler än en byte avses är LSBits nollor i adressen  Adressen anger exakt en plats att referera i Main Memory

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)18 Cache Memory Read / Write Cache Memory Hit / Miss  Read Hitlästräff  Read Missläsmiss  Write Hitskrivträff  Write Missskrivmiss Referenser till Cacheminne

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)19 Cache Memory Read Hit  Informationen finns i cachen, (Hurra)  men...  Hur vet man att det är en Hit ?  Var i cachen finns informationen ?

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)20 Cache Memory Read Miss  Informationen finns EJ i cachen, (ÄSCH)  men...  Hur vet man att det är en Miss ?  Kopiera från Main Memory till Cache?  Var finns information i MM ?  Var ska informationen placeras i Cache ?  Vad händer om/när Cachen är ”full”

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)21 Cache Memory Write Hit  Vad menas med Hit vid skrivning ?  Informationen finns i cachen !  Den har kopierats från MM tidigare !  Hur vet man att det är en Hit ?

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)22 Cache Memory Write Miss  Vad menas med Miss vid skrivning ?  Informationen finns EJ i cachen !  Den har inte kopierats från MM tidigare  eller den har blivit bortbytt / överskriven  Hur vet man att det är en Miss ?  förslag: kopiera från MM till Cache och gör ett nytt skrivförsök (det blir en Hit)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)23 Fetch on Write Miss  förslag: kopiera från MM till Cache och gör ett nytt skrivförsök (det blir en Hit)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)24 Cache Memory Write  Ska det skrivas till bara Cache ?  Ska det skrivas till Main Memory också ?  Ska man skriva bara till Main Memory ?

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)25 Cache Memory Skrivpolitik, Write Policy  Write Through - Genomskrivning Skrivning till både Cache och MM (nu)  Write Back - Återskrivning Skrivning bara i Cache, kopiering till MM (senare)  Write Around - skrivning bara till MM (nu)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)26 Träff i Cache Memory ger snabb referens  Cache i samma chip som Processor  Snabb access till cache  I balans med CPU-klockan  En eller några få CPU-cykler

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)27 Viktiga delar i en dator CPU BUS I/O MM Data Program

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)28 Nytt - Viktiga delar i en dator CPU BUS I/O D-CACHE I-CACHE MM Data Program ChipSet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)29 Referens-Miss i Cache Memory ger MM-referens i tre moment  Läsning från MM (vid Referens-Miss) 1. Skicka adress från CPU till Main Memory (tar en minnes-buss-cykel) 2. Läs data i Main Memory (tar en ”minnes-access-time”) 3. Skicka data från Main Memory till CPU (tar en minnes-buss-cykel)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)30 Referens-Miss i Cache Memory ger MM-referens i tre moment Adr Mem Data minst 3 minnes-buss-cykler per referens (om minnet är lika snabbt som bussen) Kan det göras med Pipe-Line ? javisst

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)31 MM-referens i tre moment med PIPE-LINE Adr Mem DataAdr Mem DataAdr Mem DataAdr Mem Data 4 läsningar på 6 buscycles 1 läsning på 3 buscycles 2 läsningar på 4 buscycles

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)32 Cache Reference Miss causes Main Memory Reference Den första MM referensen tar 3 buscykler (minst) efterföljande referenser tar minst 1 buscykel var Referens-mönster:  Beräknad medeltid / referens Att läsa 1 enhet tar 3 cykler,3 cykler/enhet Att läsa 2 enheter tar 4 cykler,2 cykler/enhet Att läsa 4 enheter tar 6 cykler,1,5 cykler/enhet Att läsa 8 enheter tar 10 cykler,1,25 cykler/enhet  Större block ger lägre medeltid / enhet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)33 Cache Reference Miss causes Main Memory Reference Om den första MM referensen tar 6 buscykler och efterföljande referenser tar minst 1 buscykel var får vi Referens-mönster:  Beräknad medeltid / referens Att läsa 1 enhet tar 6 cykler,6 cykler/enhet Att läsa 2 enheter tar 7 cykler,3,5 cykler/enhet Att läsa 4 enheter tar 9 cykler,2,25 cykler/enhet Att läsa 8 enheter tar 13 cykler,1,625 cykler/enhet  Större block ger lägre medeltid / enhet

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)34  När man vill kopiera från MM till Cache kan det hända att cachen redan innehåller information (kollision / överskrivning)  Då måste man frigöra plats  Vilken plats ska man frigöra ? jämför med kopiering mellan MM och SS MM = Main Memory, SS = Secondary Storage Cache Memory Miss och Full Cache ger nya frågor

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)35 Cache Memory Utbytesalgoritmer, Replacement Algorithms  FIFO - First In First Out  Random  LRU - Least Recently Used  Ideal - (haha/omöjlig)  non-MRU - non Most Recently Used

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)36 Main Memory Size Address size, number of bits 0 2 n -1 7 … 0 27 … 0 Address: vid fetch (PC) vid LOAD vid STORE Exempel: Main Memory 256 MegaByte n = 28 (bytes) byte address 32 bitars adress ger maximalt 4 Gbyte minne

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)37 Main Memory Size Address size, number of bits Exempel: Main Memory 256 MegaByte Organiserat i rader Med 8 bytes/rad n = 28 (bytes) m = 25 (rader) 0 2 m … 0 27 … 3 0 Byte inom rad, 3 bitar xxx block address byte address

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)38 Cache and Main Memory Size Block Size (Line Size) Cache Memory 16 KiloByte k = 11 Main Memory 256 MegaByte n = n … k … 0 Kopiering mellan Cache och Main Memory görs med block om t.ex. 64 bits = 8 bytes 2 st 32-bits ord (Word) 1*2 k 2*2 k 0*2 k Typisk PC: 64 bits databus (8 byte/unit) 4 units per line/block 32 bytes per line/block

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)39 Adressering av Cacheminnet  Adressen ska peka ut den eller de platser i cachen där informationen skulle kunna finnas (läsas/skrivas)  På en viss plats i Cacheminnet kan man lagra information från olika platser i MM  Hur avgör man vad som finns lagrat på en viss plats i cachen?

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)40 Adresslapp i Cacheminnet TAG  Hur avgör man vad som finns lagrat ?  Varje block som kopieras till Cachen förses med en ”adresslapp” som anger vad som är lagrat på denna plats i cachen  Adresslappen ska ange från vilken plats i Main Memory, informationen kommer  Vid varje referens till cachen jämförs adresslappen i MM-adressen med utpekade adresslappar i cachen

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)41 Direct Mapping kopiera från MM till Cache 0 2 n -1 TAGINDEX 31 … Byte TAG Valid DATA INDEX anger en enda plats att lagra utpekad info i CACHEn Byte anger eventuell enskild byte inom block/rad TAG i adressen anger vilken info i MM som refereras TAG i CACHEN anger vilken info som finns i CACHEN VALID anger giltigt innehåll i CACHEN (0 betyder ”tom plats”) Adress till MM rader

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)42 Direct Mapping Läsreferens 0 2 n -1 TAGINDEX 31 … Byte bits 2-1 MUX bus-driver TAG Valid DATA = MUX 32 8 En jämförare HIT/MISS Enable Adress till MM bit 1 bit

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)43 Cache Memory Mapping Adressavbildning  Direct Mapping - direkt avbildning  Fully Associative Mapping - fullt associativ avbildning  Set-Associative Mapping -mängdassociativ avbildning

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)44 Direct Mapping Läsreferens 0 2 n -1 TAGINDEX 31 … Byte TAG Valid DATA = En jämförare HIT/MISS Enable Adress till MM En jämförare

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)45 2-way Set-Associative Läsreferens 0 2 n -1 TAGINDEX 31 … Byte TAG Valid DATA = Två jämförare (arbetar samtidigt) HIT En Adress till MM 0 2 n -1 TAG Valid DATA = HIT En

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)46 Cache Memory Properties Prestanda (Performance) påverkas av  Storlek, Cachesize  Blockstorlek, Blocksize/Linesize  Grad av associativitet, Associativity  Utbytesalgoritm, Replacement algorithm  Skrivpolitik, Write Policy  Lokalitet i program och data

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)47  När man vill kopiera från MM till Cache kan det hända att cachen redan innehåller information (kollision / överskrivning)  Då måste man frigöra plats  Vilken plats ska man frigöra ?  Vid direct mapped cache finns inget val den enda utpekade platsen väljs Cache Memory Full Cache ska särbehandlas

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)48  Vid associative mapping finns valmöjligheter  vilken plats ska man frigöra ?  Referenced bit anger egenskap (per plats)  Modified bit anger egenskap (per plats)  Tidsbitar anger tid för hämtning/referens (jämför med kopiering mellan MM och SS) Cache Memory Full Cache ska särbehandlas

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)49 2-way Set-Associative Läsreferens 0 2 n -1 TAGINDEX 31 … Byte TAG Valid DATA = HIT En Adress till MM n -1 TAG Valid DATA = HIT En Två jämförare (arbetar samtidigt)

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)50 Cache Memory Utbytesalgoritmer, Replacement Algorithms  FIFO - First In First Out (tidsbitar)  Random  LRU - Least Recently Used (tidsbitar)  Ideal - (haha/omöjlig)  non-MRU - non Most Recently Used

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)51 Cache-minne Cache Size: 8 --> 16

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)52 Cache-minne Block Size: 1 --> 2

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)53 Cache-minne Associativitet: 1 --> 2

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)54 Cache-minne Associativitet: --> 4

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)55 CPU CHIPSET Grafik MHz-GHz L2 cache L1 I-cache RAM/DRAM PCIBUS ISA/EISABUS IDEBUS(sar) PS2BUS SCSI-BUS PCI/USB DVD ZIP L1 D-cache HDD CDRW

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)56 Tips om kul program Det finns ett nedladdningsbart program som visar hur just din dator är utrustad när det gäller processor och cache-minnen med mera Sök på google efter wcpuid och ladda hem på egen risk H.Oda

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)57 Hem-laboration 2 Cache memory Provkör (1-) 2 testprogram  (Kopiering av textsträng/memcpy)  Addition av två matriser Studera hur prestanda  exekveringstid och hitrate påverkas av olika värden på parametrar för I- och D-cache

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)58 string-copy memcpy ;Loop: kopiera ett tecken initiera loop: LOAD tmp  src(i) STORE dst(i)  tmp inc i if more goto loop klart

12 June G1518, Föreäsningl 8, vt07 (E/I/CL)59 Matrisaddition for (i=0, i<max, i++)/* radindex i yttre loopen */ for (j=0, j<max, j++)/* kolumnindex i inre loopen */ dst(i,j) = src1(i,j) + src2(i,j);