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.

Relevanta dokument
Minnet från processorns sida Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorarkitekturer med operativsystem ERIK LARSSON

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

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.

Tentamen den 18 mars svar Datorteknik, EIT070

Datorarkitekturer med Operativsystem

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

Exempeltentamen Datorteknik, EIT070,

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

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

Digitala System: Datorteknik ERIK LARSSON

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

MESI i Intel Core 2 Duo

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Närliggande allokering Datorteknik

CE_O5. Cacheminne. Hemlaboration 2.

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Snapdragon 810: Cacheminnet

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.

Jämförelse av skrivtekniker till cacheminne

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

4 grundregler. Minneshantering. Problemet. Windows minkrav

Föreläsningsanteckningar 5. Cacheminnen

Datorteknik ERIK LARSSON

Cacheminne i en AMD Opteron Processor

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

Digitalteknik och Datorarkitektur 5hp

Cacheminne i en Intel Core 2 Duo-processor

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

Några gamla tentamensuppgifter: Minneshantering

CE_O8. Cacheminne. Hemlaboration 2.

Minneshantering segmentering och virtuellminne. Föreläsning 3

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

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

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

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

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Mer datorarkitektur. En titt I datorn Minnen

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Cacheminne Intel Core i7

Cache-koherens protokoll MESI och MOSI

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)

Grundläggande datavetenskap, 4p

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

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

TSEA28 Datorteknik Y (och U)

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Öka prestanda i Shared-Cache multi-core processorer

Datorsystemteknik för E/D

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Minneshantering - grunderna. Föreläsning 2

Vad är programmering Jonas Lindemann

Cache coherence hos multicoreprocessorer

HF0010. Introduktionskurs i datateknik 1,5 hp

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

MESI protokollet och dess derivater

Operativsystem - Filsystem

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Operativsystem (IS1350) :00-12:00

Improved-MOESI Cache koherens Protokoll

Rapport (1,5 HP) Lunds Universitet HT15

Pipelining i Intel 80486

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Operativsystem (ID2200/06) XX XX:00-XX:00

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

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

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Parallellism i CDC 7600, pipelinens ursprung

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Minnessystem. Minneshierarki. Flyktigt eller icke flyktigt huvudsakliga egenskaper. Minneshierarki

Arm Cortex-A8 Pipeline

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

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

IT för personligt arbete F5

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Pipelining i Intel Pentium II

Hur delas CPU? Processormodell. Vårt produk9onsbolag igen. Produkt 2. Produkt Vinster med aa göra saker sam9digt.

Filsystem användarvy och implementering. Föreläsning 4

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

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Cacheminne och adressöversättning

Innehåll. Minneshantering. Systemet hivlls... Föreläsning 1. Problemformuleringar. Problem a[ lösa idag (...)

Lösningsförslag till tentamen i IS1350 Operativsystem

Datorteknik ERIK LARSSON

Magnus Nielsen, IDA, Linköpings universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Transkript:

1

2

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. Instruk=onerna =ll programmet som exekveras finns lagrade i primärminnet, när programmet har startat. Men, e9 primärminne är avsevärt mycket långsammare än en processor, vilket gör a9 oavse9 hur snabb en processor är, så begränsas exekverings=den av has=gheten på primärminnet. 3

4

5

6

7

8

10

11

12

13

Problem 1 fragmentering (intern). Cirka 500 bytes slösas bort epersom storlek på cluster är 1024 och en fil måste ta e9 antal cluster. Om cluster görs mindre, t ex 5 12 bytes, så minskar naturligtvis den interna fragmenteringen. Men, å andra sidan blir det mer overhead a9 hålla ordning på filer. Problem 2 - bestäm vilka cluster på hårddisken som ska användas. Det finns flera olika sä9. Några exempel är: con=guous (närliggande): n, n+1,... linked list (länkad lista): block n points at block n+1 disk index: block with pointers (FAT) file index: (unix)-solaris-cluster (block)=8k, block nummer 4 bytes->2048 pekare standard unix: superblock with disc info, files, free space, inode: 10 direct pointers, 10 double direct, 10 triple direct För a9 e9 opera=vsystem ska veta hur informa=on är lagrad på hårddisken måste opera=vsystemet känna =ll hur filer är lagrade. Förutom a9 hålla koll på vilka cluster som används för varje fil måste opera=vsystemet hålla ordning på vilka cluster som är lediga. Annars blir det svårt a9 ge cluster =ll en ny fil. 14

15

Närliggande allokering: Välj cluster som ligger bredvid varandra Problem eper e9 tag har filer skapats och filer tagits bort. Det kan då vara svårt a9 få plats med en stor fil trots a9 det finns plats. I exemplet finns 13 lediga cluster (block) så det finns plats men hur lagra en fil som behöver 5 block? De9a är extern fragmentering. 16

Filen lagras som en länkad lista där det finns en pekare i varje cluster som pekar ut var nästa cluster ligger. På de9a sä9 försvinner extern fragmentering för en fil kan lagras på vilka cluster som helst. Det gör också a9 man kan lagra hur stora filer som helst. En nackdel är a9 om man önskar informa=on som ligger i slutet av en fil så måste man söka igenom varenda cluster för a9 hi9a det sista clustret. 17

E9 alterna=v är a9 reservera e9 block (cluster) för pekare. En fil har då e9 block där man samlat alla pekare. Fördelen är a9 man slipper extern fragmentering då vilket cluster som helst kan väljas. Och, det går snabbt a9 hi9a varje cluster (man behöver inte söka igenom hela filen). En nackdel är dock a9 man begränsar storleken på en fil genom a9 reservera e9 visst antal pekare (så många som får plats i clustret). 18

Unix har en så kallad inode för a9 hålla koll på en fil. Här kombinerar man olika sä9. I inoden har man några pekare som pekar direkt på cluster. Det ger snabb access. För a9 =llåta stora filer, så har man indirekta block, dvs en pekare pekar =ll e9 block med pekare. Man har också double indirekta block, där en pekare i inode pekar på e9 block som innehåller pekare och den pekaren pekar på e9 ny9 block med pekare. På de9a sä9 kan man lagra stora filer. Naturligtvis kommer sök=den a9 gå upp för stora filer. 19

20

21

22

23

24

25

26

27

28

29

30

31

33

34

Lokalitet av referenser (locality of references) gör a9 cacheminnen fungerar. Det är så a9 minnesreferenser tenderar a9 gruppera sig under exekvering. När e9 program exekverar, är det vanligt a9 samma minnesreferenser görs om och om igen. Det gäller både instruk=oner (t ex loopar) och data (datastrukturer). Man kan se två typer av lokalitet: Temporal lokalitet lokalitet i =d om en instruk=on/data blivit refererat nu, så är sannolikheten stor a9 samma referens görs inom kort Rumslokalitet om instruk=on/data blivit refererat nu, så är sannolikheten stor a9 instruk=oner/data vid adresser i närheten kommer användas inom kort 35

36

37

38

E9 exempel på cacheminne. I minnet finns plats för 8 block (cacherader). De har index 000-111. Det finns plats för cacheraden (DATA). Utöver de9a finns TAG som avgör om rä9 data är lagrad på en viss cacherad. Primärminnet är större än cacheminnet så det kommer vara så a9 många adresser i primärminnet vill få plats på samma cacherad. Därför måste man ha något sä9 a9 avgöra om rä9 data finns på en viss cacherad. Sedan finns en V bit som avgör om data i cacherad är valid eller inte. Med valid menas om data överensstämmer med primärminnet. Till exempel, e9 program använder en variabel X som har värdet 0. Variabeln läses in =ll cachminnet. Processorn ändrar värdet =ll 1. Helt plötsligt skiljer sig innehållet i cacheraden och innehållet i primärminnet. Det måste man hålla ordning på. 41

Processorn läser på adress 22 (10110). En del av adressen (bitarna 110) används för a9 peka ut en cacheline. I de9a fall finns inte data på cacheraden (TAG bitarna i cacheminnet stämmer inte med TAG bitarna (10) i adressen). Data läses in från primärminnet och placeras på cacheraden. (V)alid bit sä9s =ll Y epersom data i cache och primärminne är samma just nu. 42

43

Nu vill processorn läsa på adress 26 (11010). Adressen plockas isär så a9 11 bildar TAG och 010 ger index. Vid kontroll av vad som finns för TAG på plats 010 upptäcker man a9 det är match mellan adressen där processorn vill läsa och det som finns i cacheminnet. Data hämtas på indexplats 010. 44

45

Processorn vill läsa på adress 18 (10010). Adressen plockas isär så a9 index blir: 010 och TAG blir 10. På index plats 010 finns (se föregående slide, TAG= 11). Här är alltså en konflikt. Den data som finns i cachminnet är fel data. EPersom processorn nu vill ha data på plats 18 så fly9as den in och den gamla datan åker ut. Om valid biten är Y så har inte någon ändring (genom skrivning) ske9 och det är bara a9 skriva över med ny data (primärminne och cache är konsistent) 46

52

E9 exempel på cacheminne och primärminne. I och med a9 överföringen mellan primärminne och cacheminne sker i block om 4 bytes i de9a exempel är det lämpligt a9 låta en cacheline innehålla 4 bytes. Uppdelningen av de 24 bitarna för adressering av cacheminnet är: 2 bitar för a9 peka ut vilken av byten det är i en cacheline. I och med a9 cacheminnet har 2^14 cachelines används 14 bitar a9 peka ut vilken cacheline. Det som är kvar av adressen är: 24-14-2=8. Det är 8 bitar som talar om vilket block om 4 bytes som finns på en viss cacherad. 53

Direktmappning är e9 enkelt sä9 a9 konstruera e9 cacheminne. I exemplet ovan är adressrymden 24 bitar. Om processorn vill läsa i cacheminnet plockas data fram enligt följande: 14 bitar (cacheline) pekar ut vilken cacheline som är aktuell. Man tar de 14 bitarna från adressen och sedan tar man TAG bitarna på motsvarande plats i cacheminnet. Om TAG bitarna i cacheminnet är samma som TAG bitarna i adressen så är det en träff. Den data som söks ligger i cacheminnet och data ligger på denna plats. De 2 minst signifikanta bitarna i adressen pekar ut vilken byte på cacheraden som är den epersökta. Om TAG bitarna inte överensstämmer, är det en cachemiss och data måste hämtas från primärminnet. Då ersä9s hela cacheraden. Man kan notera a9: en viss byte i primärminnet ALLTID hamnar på samma ställe i cacheminnet. det är 2^8 (256) block i minnet som tävlar om a9 få plats på samma plats (samma cacherad). 54

Direktmappning är e9 enkelt sä9 a9 konstruera e9 cacheminne. I exemplet ovan är adressrymden 24 bitar. Om processorn vill läsa i cacheminnet plockas data fram enligt följande: 14 bitar (cacheline) pekar ut vilken cacheline som är aktuell. Man tar de 14 bitarna från adressen och sedan tar man TAG bitarna på motsvarande plats i cacheminnet. Om TAG bitarna i cacheminnet är samma som TAG bitarna i adressen så är det en träff. Den data som söks ligger i cacheminnet och data ligger på denna plats. De 2 minst signifikanta bitarna i adressen pekar ut vilken byte på cacheraden som är den epersökta. Om TAG bitarna inte överensstämmer, är det en cachemiss och data måste hämtas från primärminnet. Då ersä9s hela cacheraden. Man kan notera a9: en viss byte i primärminnet ALLTID hamnar på samma ställe i cacheminnet. det är 2^8 (256) block i minnet som tävlar om a9 få plats på samma plats (samma cacherad). 55

56

57

58

59

I 2-way associa=ve mapping kan varje byte i primärminnet läggas på 2 cachelines. I k-way associa=ve mapping kan varje byte hamna på k cachelines. 60

61

Fullt associa=vt cache -E9 block kan hamna i vilket cache entry (cache line) som helst -Kräver a9 alla cacheentries söks igenom - Jämförelse per entry blir dyrare n-way set associa=vt cache -Varje set består av n cache lines (entries) -Block nummer bestämmer vilket set -(Block number) modulo (#Sets in cache) -Sök all entries för e9 givet set -n jämförelser (färre jämförelser än fullt associa=vt cache) 62

63

64

65

66

67

68

69

70

71

74

Vid set-associa=v och associa=v mappning behövs en algoritm för a9 bestämma vilken cacheline som ska ersä9as vid en cachemiss. Vid direkt mappning behövs ingen algoritm. I set-associa=v mappning är kandidaterna en av cacheraderna i det valda setet och i associa=v mappning är alla cacherader kandidater a9 bytas ut 75

76

77

78

Level 1: närmst CPU. Liten och snabb 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. 79

80

Om man har en unifierad cache, dvs både data och instruk=oner så kommer fördelningen av utrymme mellan hur många instruk=oner och hur mycket data som ska finnas skötas automa=skt. Om man har en separat cache för instruk=oner och en separat cache för data så måste man bestämma storleken på respek=ve cache vid design. Separat cache för instruk=oner och data har dock en stor fördel och det är a9 man sam=digt kan hämta instruk=oner och data. De9a är en vik=g egenskap och underlä9ar hanteringen av så kallade pipeline konflikter (se föreläsningar längre fram). 81

82

83

84

85

Level 1: närmst CPU. Liten och snabb 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. 86

När CPU prestanda ökar, så blir miss penalty vik=g a9 minimera. För a9 undersöka prestanda måste man ta hänsyn =ll cacheminne. Cachemissar beror på algoritm(implementa=on) och kompilatorns op=mering. 87

Level 1: närmst CPU. Liten och snabb 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. 88

89

90

91

På bilden visas e9 exempel på cachestruktur för en AMD processor. Andra exempel på cachedesign: Intel 80486 (1989) a single on-chip cache of 8 Kbytes, line size: 16 bytes, 4-way set associa=ve organiza=on Pen=um (1993) two on-chip caches, for data and instruc=ons, each cache: 8 Kbytes, line size: 32 bytes (64 bytes in Pen=um 4), 2-way set associa=ve organiza=on, (4-way in Pen=um 4) PowerPC 601-Introduced 1993 a single on-chip cache of 32 Kbytes, line size: 32 bytes, 8-way set associa=ve organiza=on PowerPC 603 two on-chip caches, for data and instruc=ons, each cache: 8 Kbytes, line size: 32 bytes, 2-way set associa=ve organiza=on, (simpler cache organiza=on than the 601 but stronger processor) PowerPC 604 two on-chip caches, for data and instruc=ons, each cache: 16 Kbytes, line size: 32 bytes, 4-way set associa=ve organiza=on PowerPC 620 two on-chip caches, for data and instruc=ons, each cache: 32 Kbytes, line size: 64 bytes, 8-way set associa=ve organiza=on 95

96

97

Minne håller de program som exekveras. I exemplet exekveras Facebook (program A), Word (program B) och Spo=fy (program C) först. EPer en stund avslutas användandet av Word. E9 ny9 program D laddas in. AlltePer som =den går blir minnet allt mer fragmenterat, dvs uppdelat. När program A avslutas finns egentligen ganska mycket plats i minnet då bara program C och D är där men epersom hållen är så små så kan inte program B startas (trots a9 det finns plats). Jämför fragmenteringen av minnet med hur hårddisken fragmenterades. 98

99

100

101

E9 program består av e9 stort antal pages som är lagrade på sekundärminnet. Vid demand paging laddas endast de sidor som behövs. Om en sida (page) inte finns i primärminnet, blir det sidfel, och en ny sida laddas in. Sidfel jämför med cachemiss en algoritm, LRU, används för a9 välja ut vilken sida som ska bytas ut. Varje sida har en bit som indikerar om skrivningar gjorts. Om skrivningar gjorts, måste sidan i primärminnet sparas på sekundärminnet (jämför med cacheminnen) Opera=vsystemet (OS) sköter vilka sidor som ska laddas =ll primärminnet. OS måste balansera hur många program som är ak=va. Om OS väljer många program, ökar graden av mul=-programmering. Men, varje program får mindre plats. Alltså, större risk för sidfel, som kostar i =d. OS måste se =ll a9 all krap inte går åt för sidbyten (kallas trashing) 105

107

108

109

Sidtabellen har en entry för varje sida i det virtuella minnet. Varje entry innehåller en adress =ll den frame som lagrar en viss sida (page) om den givna sidan finns i minnet. Varje entry har e9 antal kontrollbitar för a9 bestämma: -Om sidan finns i primärminnet -Om något på sidan blivit modifierat -Informa=on om antal accesser (för OS vid sidbyte) Vid sidfel, sidan (page) måste hämtas från sekundärminne (disk) Tar miljontals klockcykler Hanteras av opera=vsystem 110

114

Problem med sidtabell Tid vid läsning av adress: 1 läs sidtabell 2 läs data Stora sidtabeller Använd cache - Transla=on Look-Aside Buffer (TLB) för sidtabeller 115

116

117