Datorteknik ERIK LARSSON

Relevanta dokument
Minnet från processorns sida Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

Datorarkitekturer med operativsystem ERIK LARSSON

Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Digitala System: Datorteknik ERIK LARSSON

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Närliggande allokering Datorteknik

Tentamen den 18 mars svar Datorteknik, EIT070

Exempeltentamen Datorteknik, EIT070,

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

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 17 mars 2016 Datorteknik, EIT070

Digitala System: Datorteknik ERIK LARSSON

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Digitalteknik och Datorarkitektur 5hp

Jämförelse av skrivtekniker till cacheminne

4 grundregler. Minneshantering. Problemet. Windows minkrav

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Datorarkitekturer med Operativsystem

Grundläggande datavetenskap, 4p

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Snapdragon 810: Cacheminnet

CE_O5. Cacheminne. Hemlaboration 2.

Datorarkitekturer med operativsystem ERIK LARSSON

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

Några gamla tentamensuppgifter: Minneshantering

Datorarkitekturer med operativsystem ERIK LARSSON

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)

Minneshantering segmentering och virtuellminne. Föreläsning 3

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Föreläsningsanteckningar 5. Cacheminnen

MESI i Intel Core 2 Duo

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Datorsystem. Exempeltentamen

TSEA28 Datorteknik Y (och U)

Datorsystemteknik för E/D

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

Cacheminne i en Intel Core 2 Duo-processor

Pipelining i Intel Pentium II

Hantering av hazards i pipelines

Mer datorarkitektur. En titt I datorn Minnen

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

CE_O8. Cacheminne. Hemlaboration 2.

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Datorteknik ERIK LARSSON

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

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

Datorsystem. Tentamen

Pipelining i Intel 80486

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

Datorarkitekturer med operativsystem ERIK LARSSON

Föreläsning 1: Intro till kursen och programmering

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Datorteknik ERIK LARSSON

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Cacheminne Intel Core i7

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

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

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

Föreläsning 1: Intro till kursen och programmering

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Datorteknik ERIK LARSSON

Cacheminne i en AMD Opteron Processor

TSEA28 Datorteknik Y (och U)

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

TSEA28 Datorteknik Y (och U)

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

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

TSEA28 Datorteknik Y (och U)

Tentamen PC-teknik 5 p Lösningar och kommentarer

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Digitalteknik och Datorarkitektur 5hp

Program. Datorteknik. Semantiskt gap. C - Inledning. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Datorteknik ERIK LARSSON

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Lösningar till tentamen i EIT070 Datorteknik

Datorteknik ERIK LARSSON

Rapport (1,5 HP) Lunds Universitet HT15

Arm Cortex-A8 Pipeline

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Processor pipelining genom historien (Intel i9-intel i7)

Datorsystemteknik DVGA03 Föreläsning 8

Transkript:

Datorteknik ERIK LARSSON

Laborationer Gå bara på tillfällen där du är anmäld. Moment svarar mot 1.5hp, dvs 40 timmar arbete Schemalagd tid: 4*2 (lektioner)+4*4(laborationer)=20 timmar Material: Finns på kurshemsida 4 laborationsuppgifter: Introduction to the lab environment I/O handling Machine language and assembly programming Interrupt handling Godkänt: Demonstration Missat något: 3 extratillfällen Utrustning kommer stå framme Alla assistenter är inte med på alla laborationer

Laborationer: Förberedelser Innan lektion: Studerat laborationsmaterial Efter lektion: Ha klar bild av uppgiften. Innan laboration: Var väl insatt i laborationsmaterial

Tentamen Moment svarar mot 4.5hp, dvs 120 timmar arbete Schemalagd tid: 7*2=14 timmar Examination: Skriftlig tentamen. Inga hjälpmedel Första tentamen: 2017-03-16 klockan 14:00-19:00 Maximalt 50 poäng Betygsgränser: Betyg 3: Minst 20 poäng Betyg 4: Minst 30 poäng Betyg 5: Minst 40 poäng Motivera och förklara tydligt för tankegång är viktig

Blooms taxonomi - lärande Kunskap: Den studerande visar att han/hon kan återge faktakunskaper som han memorerat. Hjälpfrågor: Vad? Vem? Hur skulle du definiera? Förståelse: Den studerande visar att han/hon förstår relationer och samband i det kunskapsstoff han/hon lärt sig. Hjälpfrågor: Vad är det viktigaste i artikeln? På vilket sätt skiljer sig / liknar teorierna varandra? Tillämpning: Den studerande kan tillämpa sina kunskaper på nya, för honom relativt okända tillämpningsområden. Hjälpfrågor: Hur kan du tillämpa...? Analys: Den studerande kan analysera fram beståndsdelar i en helhet och kan hitta det viktiga. Hjälpfrågor: Vilka bevis hittar du som stöder? Syntes: Den studerande kan producera och skapa något eget och relativt unikt (förena begrepp på ett nytt sätt). Hjälpfrågor: Vad händer om? Hur kan vi förbättra / lösa problemet? Värdering: Den studerande förmår utvärdera idéer, kunskap, metoder och lösningar. Hjälpfrågor: Vad är din åsikt om..?

Datorteknik ERIK LARSSON

Abstraktionsnivå Högnivåspråk Maskinspråk Semantiskt gap Aritmetiska och logiska (ALU) Dataöverföring (adressering) Hopp och subrutiner Inmatning/utmating (Input/Output (I/O)) ADD R4,R3 //R4<-R4+R3 operationskod: ADD source operander: R4, 3 destination operand: R4 ADD R4 R3

Dator OP ADD UT R4 ALU IN 1 IN 2 R3 R4 Primärminne Instruktioner och data Data/instruktioner Kontroll Status ALU Central processing unit (CPU) Kont roll Register Fetch instruction Execute instruction Instruktionsregister (IR):ADD R4,R3 Programräknare (PC):0010 Generella register

Programexekvering (1) Hämta instruktion på 00001000 (där PC pekar) Fetch (2) Flytta instruktionen 0000101110001011 till CPU (3) Avkoda instruktionen: 00001 MOVE, 01110001 Adress, 011 Register 3 (4) Hämta data på adress: 01110001 Execute (5) Lagra datan i register 3 Primärminne Address Instruktion 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Program Byt program Byt program Fetch Execute Fetch Execute Fetch Execute Fetch 0.1 s 0.1 s 0.1 s Primärminne Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction

Hur går det till att byta program? 1 0.1 s 3 4 Primärminne Main Data/instruktioner Kontroll Central processing unit (CPU) OS 5 Fetch instruction Execute instruction 2 Kontrollera och hantera avbrott (ändra PC)

Minnet från processorns sida Processorn ger kommandon/instruktioner med en adress och förväntar sig data. Exempel: READ(ADR) -> DATA Fysisk adress Logisk adress READ 00001000 READ (00001000) Primärminne CPU Address Instruction 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 0000101110001011 Minne CPU Register Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Sekundärminne Unix (inode): Snabb access för många block Kan hantera stora filer 1 3 2

Filsystem - Inode ABBA: Dancing Queen

Minnets komponenter Enhet för indata Primärminne CPU Enhet för utdata Sekundärminne

Programexekvering Program i högnivåspråk.. Z:=(Y+X)*3. Kompilator Exekverbart program i maskinspråk: Adress Instruktioner 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Primärminne Adress Instruktion 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Programexekvering (1) Hämta instruktion på 00001000 (där PC pekar) Fetch (2) Flytta instruktionen 0000101110001011 till CPU (3) Avkoda instruktionen: 00001 MOVE, 01110001 Adress, 011 Register 3 (4) Hämta data på adress: 01110001 Execute (5) Lagra datan i register 3 Primärminne Address Instruktion 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Minnet från processorns sida Processorn ger kommandon/instruktioner med en adress och förväntar sig data. Exempel: READ(ADR) -> DATA Fysisk adress Logisk adress READ 00001000 READ (00001000) Primärminne CPU Address Instruction 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 0000101110001011 Minne CPU Register Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Design av minnesystem Vad vill vi ha? Ett minne som får plats med stora program och som fungerar i hastighet som processorn» Fetch execute (MHz/GHz/Multi-core race) Primärminne CPU Grundproblem: Processorer arbetar i hög hastighet och behöver stora minnen Minnen är mycket långsammare än processorer Fakta: Större minnen är långsammare än mindre minnen Snabbare minnen kostar med per bit

Minne-processor hastighet

Minneshierarki

Minneshierarki Processor registers: 8-32 registers (32 bitar -> 32-128 bytes) accesstid: få ns, 0-1 klockcykler On-chip cache memory (L1): 32 till 128 Kbytes accesstid = ~10 ns, 3 klockcykler Off-chip cache memory (L2): 128 Kbytes till 12 Mbytes accesstid = 10-tal ns, 10 klockcykler Main memory: 256 Mbytes till 4Gbytes accesstid = ~100 ns, 100 klockcykler Hard disk: 1Gbyte tid 1Tbyte accesstid = 10-tal milliseconds, 10 000 000 klockcykler

Cacheminne Primärminne Instruktioner och data Instruktioner och data Adress Cacheminne Kopior av instruktioner och data Instruktioner och data Adress Central processing unit (CPU) Register Accesstid: 100ns Accesstid: 10ns

Exempel Primärminne ADRESS DATA 00 0000 0001 01 0000 0010 10 1111 0000 11 0000 1111 1. CPU vill läsa information på adress 00: 1. Ger 0000 0001 2. CPU vill läs information på adress 01: 1. Ger 1111 0000 Cacheminne TAG ADRESS VALID DIRTY DATA 0 0 Y N 0000 0001 0 1 Y Y 1111 0000

Cache exempel 2 Antag: 1 maskininstruktion per rad 100 ns för minnesaccess till primärminnet 10 ns för minnesaccess till cacheminnet Programmet och dess maskininstruktioner. Exempel program: Assembly while (x<1000){ Instruktion1: while1000 x=x+1; Instruktion2: x=x+1 printf( x=%i,x); Instruktion3: print x} while (y<500){ Instruktion4: while500 y=y+1; Instruktion5: y=y+1 printf( y=%i,y); Instruktion6: print y }

Utan cache exempel 2 Minnesaccess för 1 instruktion: 100 ns Totalt 4500 instruktioner. Tid för minnesaccesser: 4500*100= 450000ns Antal instruktioner Instruktioner som exekveras: 1 Instruktion1:while1000 2 Instruktion2:x=x+1 3 Instruktion3:printx 2998 Instruktion1:while1000 2999 Instruktion2:x=x+1 3000 Instruktion3:printx} 3001 Instruktion4:while500 3002 Instruktion5:y=y+1 3003 Instruktion6:printy 4498 Instruktion4:while500 4499 Instruktion5:y=y+1 4500 Instruktion6:printy

Med cache exempel 2 Minne+cache (100+10 ns) Cache (10 ns) Minne+cache (100+10 ns) Cache (10 ns) Total tid för minnesaccesser: 6*100 + 4500*10= 45600ns (~10% jmf med utan cache ) Antal instruktioner Instruktioner som exekveras: 1 Instruktion1:while1000 2 Instruktion2:x=x+1 3 Instruktion3:printx 2998 Instruktion1:while1000 2999 Instruktion2:x=x+1 3000 Instruktion3:printx} 3001 Instruktion4:while500 3002 Instruktion5:y=y+1 3003 Instruktion6:printy 4498 Instruktion4:while500 4499 Instruktion5:y=y+1 4500 Instruktion6:printy

Cacheminne Minnesreferenser tenderar att gruppera sig under exekvering både instruktioner (t ex loopar) och data (datastrukturer) Lokalitet av referenser (locality of references): Temporal lokalitet lokalitet i tid» om en instruktion/data blivit refererat nu, så är sannolikheten stor att samma referens görs inom kort Rumslokalitet lokalitet i rum -» om instruktion/data blivit refererat nu, så är sannolikheten stor att instruktioner/data vid adresser i närheten kommer användas inom kort

Utnyttja lokalitet Minneshierarki Lagra allt på hårddisk Kopiera recently accessed (and nearby) items från disk till mindre primärminne Kopiera mer recently accessed (and nearby) items från primärminne till cacheminne» Cacheminne kopplat till CPU

Minneshierarki - nivåer Block (line): enhet som kopieras Kan vara flera words Om accessed data finns i högsta nivån (upper level) Hit: access ges av högsta nivå» Hit ratio: hits/accesses Om accessed data inte finns på aktuell nivå Miss: block kopieras från lägre nivå Tid: miss penalty, Miss ratio: antal missar/accesses = 1 hit ratio Sedan kan data nås från högre nivå

Cacheminne

Jämför cacheminnen Direct mapped, 2-way set associative, fully associative Block access sequence: 0, 8, 0, 6, 8 2-way set associative: Block 0 vill till set 0 (0 modulo 2) Block 8 vill till set 0 (0 modulo 2) Block 6 vill till set 0 (0 modulo 2) TID Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1

Design av cache Om cachemiss, hur välja cacherad som ska ersättas? Hur hålla minnet konsistent(skrivstrategi)? Hur många cacheminnen? Nivåer - Levels (L1, L2, L3)» större cache ger högre hit-rate men är långsammare Unifierad eller separata cacheminnen för instruktioner och data

Ersättningsalgoritmer Slumpmässigt val en av kandidaterna väljs slumpmässigt Least recently used (LRU) kandidat är den cacherad vilken varit i cachen men som inte blivit refererad (läst/ skriven) på länge First-In First Out (FIFO) kandidat är den som varit längst i cacheminnet Least frequently used (LFU) kandidat är den cacherad som refererats mest sällan Ersättningsalgoritmer implementeras i hårdvara prestanda viktigt.

Skrivstrategier Problem: håll minnet konsistent Exempel: x=0; while (x<1000) x=x+1; Variablen x kommer finnas i primärminnet och i cacheminnet I primärminnet är x=0 medan i cacheminnet är x=0,1,2 och till sist 1000

Cacheminne Primärminne Instruktioner och data Instruktioner och data Adress Cacheminne X=10 Instruktioner och data Adress Central processing unit (CPU) Register X=0

Skrivstrategier Write-through skrivningar i cache görs också direkt i primärminnet Write-through with buffers skrivningar buffras och görs periodiskt Write (Copy)-back primärminnet uppdateras först när en cacherad byts ut (ofta används en bit som markerar om en cacherad blivit modifierad (dirty)). (Omodifierade cacherader behöver inte skrivas i primärminnet)

Skrivstrategier Skilj på write-hit och write-miss Write-hit: se ovan Write-miss: Vill skriva på plats som inte finns i cacheminne» Alternativ: Allokera vid miss: hämta block från primärminne Write around: hämta inte in block från primärminne, skriv direkt i primärminne» (För write-back: vanligen fetch block)

Antal cachenivåer (levels) Primärminne Instruktioner och data Cache minne Cache minne L1 Central processing unit (CPU) Register L2

Antal cachenivåer (levels) Level 1: närmst CPU. Litet och snabbt Level 2: större men långsammare (jämfört med Level 1 cache). Level 2 cache stödjer missar i Level 1 cache. Level 3: större men långsammare (jämfört med Level 2 cache). Level 3 cache stödjer missar i Level 2 cache. Primärminne: Störst men långsammast.

Separat instruktion/data cache Cacheminne Primärminne Instruktioner och data Kopior av instruktioner Cacheminne Kopior av data Central processing unit (CPU) Register

Prestanda Hur mycket läses i minnet? CPU tid påverkas av: Cykler för programexekvering» Inklusive cache hit tid Tid för access i primärminne (Memory stall cycles)» I huvudsak från cachemissar Memory stall cycles = Memory accesses Program Hur ofta saknas data i cache? Miss rate Miss penalty Vad kostar en miss (tid)? = Instructions Program Misses Instruction Miss penalty

Prestanda Givet: I-cache miss rate = 2% D-cache miss rate = 4% Miss penalty = 100 cycles Base CPI (ideal cache) = 2 (Clocks per instruction) Load & stores är 36% av instruktionerna Misscykler per instruktion I-cache: 0.02 100 = 2 D-cache: 0.36 0.04 100 = 1.44 Actual CPI = 2 + 2 + 1.44 = 5.44 Om man bortser från minnesaccesser, så här snabbt går processorn Optimal CPU är 5.44/2 =2.72 gånger snabbare Antag att bara load och store används för access till minnet Tid för verklig processor

Prestanda Average memory access time (AMAT) AMAT = Hit time + Miss rate Miss penalty Exempel: CPU med:1ns klocktid, hit tid = 1 cykel, miss penalty = 20 cykler, I-cache miss rate = 5% AMAT = 1 + 0.05 20 = 2ns Vilket är 2 klockcykler per instruktion

Prestanda multilevel cache Givet: CPU med CPI=1, klockfrekvens = 4GHz (0.25 ns) Miss rate/instruktion = 2% Accesstid till primärminnet=100ns Med 1 cache nivå (L1) Miss penalty = 100ns/0.25ns=400 cykler Effektiv CPI=1+0.02*400=9 Om man bortser från minnesaccesser, så här snabbt går processorn Så här mycket kostar en miss

Prestanda multilevel cache Lägg till L2 cache: Accesstid = 5 ns Global miss rate till primärminnet = 0.5% Med 1 cache nivå (L1) Miss penalty = 5ns/0.25ns=20 cykler Effektiv CPI=1+0.02*20+0.005*400=3.4 Jämför 1-nivå cache och 2-nivå cache: 9/3.4=2.6 Förra slide Förra slide

Prestanda När CPU prestanda ökar, så blir miss penalty viktig att minimera För att undersöka prestanda måste man ta hänsyn till cacheminne Cachemissar beror på algoritm(implementation) och kompilatorns optimering

Cache coherency CPU 1 Cache Konsistens? Minne CPU 2 Cache

Cache coherency - problem Antag att två CPU cores delar adressrymd Time step Write-through (skrivningar görs direkt) Event CPU A s cache CPU B s cache Memory 0 0 1 CPU A reads X 0 0 2 CPU B reads X 0 0 0 3 CPU A writes 1 to X 1 0 1

AMD Athlon 64 CPU

Exempel Intel 80486 (1989) a single on-chip cache of 8 Kbytes, line size: 16 bytes, 4-way set associative organization Pentium (1993) two on-chip caches, for data and instructions, each cache: 8 Kbytes, line size: 32 bytes (64 bytes in Pentium 4), 2-way set associative organization, (4-way in Pentium 4) PowerPC 601-Introduced 1993 a single on-chip cache of 32 Kbytes, line size: 32 bytes, 8-way set associative organization

Exempel PowerPC 603 two on-chip caches, for data and instructions, each cache: 8 Kbytes, line size: 32 bytes, 2-way set associative organization, (simpler cache organization than the 601 but stronger processor) PowerPC 604 two on-chip caches, for data and instructions, each cache: 16 Kbytes, line size: 32 bytes, 4-way set associative organization PowerPC 620 two on-chip caches, for data and instructions, each cache: 32 Kbytes, line size: 64 bytes, 8-way set associative organization

Minnets komponenter Enhet för indata Primärminne (CPU) Enhet för utdata Sekundärminne

Minnets innehåll över tiden TID

Paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 WORD.0 1 WORD.1 2 WORD.2 3 WORD.3 1 Logisk adress CPU 111 (S) 2 011 (o) o S SIDTABELL S R 0 3 1 5 2 6 3 1 001 (R) 011 (o) Fysisk adress PRIMÄRMINNE R 3 o Ram (R) 0 Primärminne Data 1 WORD.3 2 3 WORD.0 4 5 WORD.1 6 WORD.2 7

Paging byte 0 byte 1. SIDA A0 SIDA A1 SIDA A2 SIDA A3 SIDA A4 byte n SIDA A5

Paging Logisk adress Fysisk adress byte 0 byte 1. SIDA A0 3 SIDA A1 SIDA A2 p d SIDA A3 d SIDA A4 byte n SIDA A5

Demand paging Ladda endast de sidor (pages) som behövs till primärminnet CPU utnyttjande OS tar alltmer tid för att hantera sidfel Grad av multiprogrammering (hur många program som är aktiva)

Virtuellt minne Använd primärminne som cache för sekundärminne (hårddisk) Hanteras med hårdvara och operativsystem Program delar primärminnet Varje program får sin virtuella adressrymd Skyddas från andra program CPU och OS översätter virtuella adresser till fysiska adresser Ett block kallas för sida (page) Miss kallas för sidfel (page fault)

Virtuellt minne

Virtuellt minne Exempel Storlek på virtuellt minne: 2G (2 31 ) bytes Primärminne: 16M (2 24 ) bytes Sidstorlek (page): 2K (2 11 ) bytes Antal sidor (pages): 2G/2K = 1M (2 31 /2 11 =2 20 ) Antal ramar (frames): 16M/2K = 8K (2 24 /2 11 =2 13 )

Virtuellt minne Memory Management Unit (MMU) Virtuell adress: 31 bitar Fysisk adress: 24 bitar 20 bitar 11 bitar 13 bitar 11 bitar Sidtabell (page table) Ctrl-bits Frame nr. Primärminne 0 1 2 20-1 Frame 0 Frame 1 Frame 2 13-1 Om sidfel (page fault), OS laddar in sida

Virtuellt minne Problem med sidtabell Tid vid läsning av adress:» 1 läs sidtabell» 2 läs data Stora sidtabeller Lösning: använd cache - Translation Look-Aside Buffer (TLB) för sidtabeller

Translation Look-Aside Buffer (TLB) Vid sidfel OS aktiveras

AMD Athlon 64 CPU CPU

Sammanfattning Snabba minnen är små, stora minnen är långsamma Vi vill ha snabba och stora minnen Cacheminnen och virtuellt minne ger oss den illusionen Lokalitet viktigt för att cacheminnen och virtuellt minne ska fungera Program använder vid varje tidpunkt en liten del av sitt minne ofta Minneshierarki L1 cache <->L2 cache. Primärminne - Sekundärminne