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.

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)
Mjukvara och nätverk Vad är det?.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Pris och prestanda Föreläsning 2, hösten G1510 Datorteknik fk.
Datorarkitekturer och operativsystem
Programstruktur: C för enchipsdatorer
Översikt av operativsystem (kap 1 & 2)
Persondatorer Datorns internminne (Kapitel 6)
Föreläsning 7 Analys av algoritmer T(n) och ordo
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
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.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
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.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
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, Kap 3 & 4: Processer & trådar.
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.
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
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; }
Välkommen till Del 1.
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.
OPERATIVSYSTEM WINDOWS
Operativsystem Vad är det för något ? Varför har man operativsystem ?
Bios = Basic Input/Output System
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
INTRODUKTION TILL PROGRAMMERING
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 3
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
 Processorn (Kapitel 3)  Haidar Al Attar (IT lärare)  Jensen Education.
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.
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
NÄTVERKSPROTOKOLL Föreläsning
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
Föreläsning2 Operativsystem.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
William Sandqvist Datorteknik övning 1 Introduktion till assemblerprogrammering av Nios II William Sandqvist
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
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
William Sandqvist KIA’s fabrik i Slovenien En bil i minuten lämnar bandet – tar det en minut att bygga en bil? Nej för KIA's fabrik utanför.
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.
På vissa datorer behöver du trycka på F5 för att starta bildspelet.
Anpassa fri programvara - Frihet ett, hur nyttjar man den? Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja.
Operativsystem s63 Win 7 Länken mellan datorn och omvärlden Användare kan ge kommandon till datorn Starta program Skriva text via tangentbordet Matar ut.
Datorteknik Lektionsmål: – Datorns delar – ESD Kursmål: – Datorsystems uppbyggnad, komponenter och kringutrustningar. – ESD-säker hantering av mikroprocessorer.
Datorer och nätverk.
Grundläggande datavetenskap, 4p
Datorer och nätverk.
I vissa datorer behöver du trycka på F5 för att starta bildspelet
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

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

Vad påverkar prestanda ● CPU ● primärminne ● program, kompilator ● skivminne ● datornät ● övriga program, operativsystem

Testprogram ● Verkliga program ● Verkliga program styrda av skript ● Kernels - extrakt från verkliga program ● Leksaksproblem - quicksort, n-queens, … ● Syntetiska testprogram - specialskrivna endast för utvärdering av prestanda

Testprogram verkliga program koncentrat - "kernels" syntetiska testprogram SPEC CPU2000 Winstone Linpack Livermore loops NAS kernels Whetstone Dhrystone

Prestandaförbättring körtid för gamla versionen körtid för nya versionen speedup =

Exempel: flyttalsprocessor utförda instruktioner tid … add.l FADD add.l and.l cmp.l bne FMUL cmp.l beq... andel som ej kan snabbas upp andel som kan snabbas upp

Exempel, forts. andel som ej kan snabbas upp andel som kan snabbas upp total körtid på gamla datorn andel som ej kan snabbas upp andel som snabbats upp total körtid på nya datorn

Beteckningar 1 – andel U andel U total körtid på gamla datorn = 1 tidsenhet 1 – andel U andel som snabbats upp = andel U / speedup U total körtid på nya datorn = 1 tidsenhet / total speedup

Amdahls lag ● andelU = andel av ursprungliga körtiden som snabba finessen skulle ha behövts ● speedupU = lokal speedup när snabba finessen används andel U + speedup total = andel U speedup U

Ur processorns synvinkel ● Körtid = icount x CPI x tclk ● icount = antal utförda instruktioner ● CPI = Cykler Per Instruktion ● tclk = 1/klockfrekvensen

Teoretiska CPI-beräkningar ● CPI och andel av utförda instruktioner ● Exempel: – ALU-op: CPI = 1, andel 40% – Load, Store: CPI = 2, andel = 36% – Hopp: CPI = 2, andel = 24% – CPI medel = 1 x 0,4 + 2 x 0, x 0,24 = 1,6

Hur man får datorer snabba ● Make the frequent case fast… ● …and the fast case frequent

Make the frequent case fast ● Det lönar sig inte att snabba upp en funktion som nästan aldrig används ● Kan man snabba upp en funktion som används ofta så ger det stor utdelning ● För att snabba upp det vanliga fallet, så låter man gärna det ovanliga fallet bli ännu långsammare än förut

…and the fast case frequent ● Eftersom det ovanliga fallet är långsamt så ska man helst inte använda det ● Kompilatorn kan använda snabba instruktioner så mycket som det går

Fallgrop: klockfrekvens anger prestanda ● Celeron 2,0 GHz visar 21 bilder/s i speltest ● P4 2,26 GHz: 46 bilder/s ● Orsak: Celeron har mindre L2-cache ● AMD Athlon XP med 1,4 GHz klocka visar 37 bilder/s

Fallgrop: MIPS ● MIPS = Miljoner Instruktioner Per Sekund ● MIPS = icount/körtid = klockfrekvens/CPI ● MIPS anger prestanda bara så länge icount hålls konstant ● …kan alltså inte användas för att jämföra datorer med olika instruktionsuppsättning (vilket är fler än man tror)

Adressöversättning ● Repetition av virtuellt minne ● TLB - cacheminne för sidtabellinformation ● Virtuellt eller fysiskt adresserat cacheminne ● Tricket - det bästa av två världar ● Minneshierarki

En process ● Programkod –.text ● Data –.data –.bss ● Stack Program Data Stack minne adress 0 ∞

Flera processer samtidigt ● Hur ska detta kunna fungera? Program Data Stack 0 ∞ Program Data Stack 0 ∞ Program Data Stack 0 ∞

Virtuellt minne process 1 - virtuell adressrymd 1 process 2 - virtuell adressrymd 2 sidtabell 1sidtabell 2 fysiskt minne skivminne

Adressöversättning virtuell adress virtuellt sidnummer (VPN)sidoffset (PO) fysisk adress fysiskt sidnummer (PPN)sidoffset (PO) adress- översättning

Vanliga sidstorlekar ● 4 kbyte (Sparc, x86) ● 8 kbyte (Ultrasparc) ● 4 kbyte + 4 Mbyte (Pentium) ● 8k, 64k, 512k, 4Mbyte (Alpha 21264)

Enkel sidtabell en minnesadress virtuellt sidnummeroffset Enkel adressöversättning med hjälp av en enkel sidtabell. primär- sida 73 sida 71 sida 72 minne sidtabell fysiskt sidnummer

Minneslayout ● Kod, data, stack utspridda ● Många ogiltiga sidor ● Enkel sidtabell blir stor och tom adress 0 största möjliga adress kod data stack utökning av dataområdet utökning av stacken

Problem ● Många (möjliga) virtuella sidor medför ● stora sidtabeller som medför ● sidtabeller i primärminnet som medför ● långsam uppslagning

Flernivåers sidtabell ● Tomma sidtabeller på nivå 2 och 3 kan ersättas med nollställd giltigbit på nivån ovanför sidoffset (12bit) inkommande adress virtuellt sidnummer... sida index 3 (8 bit)index 2 (8 bit)index 1 (4 bit) sidtabell nivå 3... sidtabell nivå 2sidtabell nivå 1...

Flernivåers sidtabell, exempel Sidtabeller för ett program. Själva sidorna finns inte med i figuren. sidtabell nivå tre sidtabeller på nivå 2... fem sidtabeller på nivå tre sidtabeller för programkod en sidtabell för data en sidtabell för stacken

TLB Translation Lookaside Buffer ● Cacheminne för adressöversättning ● Delmängd av sidtabellen ● Associativt, mindre än 200 platser ● Sitter på processorchippet ● Miss-rate under 1 procent ● Missar hanteras i programvara i Riscar

Misshantering i programvara ● TLB-miss ger felavbrott (exception) ● Felavbrottsrutinen läser sidtabellen ● Sidfel upptäcks som TLB-miss, felavbrotts- rutinen ser i tabellen att det är sidfel ● Vanligt i Riscar, som saknar mikroprogram ● x86 hanterar TLB-miss i hårdvara

TLB-miss i mjukvara medför: ● Operativsystemet bestämmer hur sidtabellen ser ut ● Operativsystemet bestämmer TLB:ns utbytesalgoritm ● Instruktioner för att läsa/skriva TLB-platser ● Delar av sidtabell kan hamna i datacachen

Statusbitar ● Sidbytesrutin behöver use-bit och dirty-bit ● use-bit: har sidan använts sen sist? Behövs för att approximera LRU ● dirty-bit: har sidan skrivits sen sist? Kan spara skrivning till långsamt skivminne

Statusbitar i TLB:n ● TLB kan ha use-bit, men måste inte: endast nyligen använda sidor finns i TLB:n ● TLB kan ha dirty-bit (för prestanda), annars: – när en sidas översättning lagras i TLB:n markeras sidan som skrivskyddad – första skrivning ger felavbrott, programrutinen sätter dirty-bit i sidtabellen

Obs! En TLB är inget vanligt cacheminne! ● En dirty-bit i TLB:n anger om sidan ändrats i minnet ● Innehållet i TLB:n ändras inte av att programmet skriver till sidan (undantag: dirty-bit för sidan ettställs) ● Om dirty-bit = 1 så måste sidan sparas i swap-filen innan minnet återanvänds. TLB-innehållet ska inte sparas någonstans!

Täckning (coverage) ● Coverage = sidstorlek x antal sidor i TLB ● Större täckning ger färre missar ● Ökad sidstorlek ger ökad täckning ● Två sidstorlekar vanligt, exempelvis 4 kB och 4 MB ● Bildminne (och OS?) kan ligga i stora sidor

Virtuellt eller fysiskt adresserat cacheminne CPU TLB cacheminne CPU TLB cacheminne  Virtuella adresser i adresslapparna  TLB används bara vid miss  Fysiska adresser i adresslapparna  TLB används vid varje referens

Fördelar med virtuellt adresserade cacheminnen ● Snabbare, behöver inte vänta på TLB:n – kortare cykeltid – större cacheminne – kortare pipeline ● TLB:n används mer sällan – gemensam TLB räcker – TLB:n kan vara större och långsammare ● Falska konflikter undviks i cacheminnet

Nackdelar med virtuellt adresserade cacheminnen ● Synonymer - olika virtuella adresser blir samma fysiska – samma fil inmappad på två ställen i en process – samma fil eller delade bibliotek inmappade i två olika processer ● Homonymer - samma virtuella adress blir olika fysiska – vid processbyte

Synonymproblem ● Om A och B är två olika virtuella adresser som mappas till samma fysiska, så kan STOREA <- #0 LOADR3 <- B resultera i att B  0 ● Lösning: låt OS:et förbjuda synonymer

Homonymproblem ● Om den virtuella adressen A motsvarar den fysiska adressen X som finns i cacheminnet och TLB:n uppdateras så att A motsvarar en annan fysisk adress Y, så kan LOADR3 <- A ge värdet från X i stället för från Y

Processbyte i virtuellt adresserat cacheminne ● Hela adressrymden byts vid processbyte. För att lösa homonymproblemen kan man – invalidera hela cacheminnet, eller – lägga till processnummer till varje adresslapp ● Operativsystemet använder egna adresser, varje systemanrop blir byte av adressrymd

Fysiskt adresserade cacheminnen ● Fördelar: – Inga synonym- eller homonymproblem – Behöver ej invalideras vid processbyte ● Nackdelar: – TLB-uppslagning före varje referens – Falska konflikter

Falska konflikter ● Virtuella adressen visar ingen konflikt ● Adressöversättning skapar konflikten ● OS kan hindra detta processens virtuella adressrymd sidtabell fysiskt minne skivminne direktmappat cacheminne

TLB-uppslagning vid varje referens ● Instruktionshämtning (glöm inte den!) ● Datareferens (vid load/store) ● Kräver separat I-TLB och D-TLB, och förstås separata I- och D-cacheminnen ● TLBn tar en extra cykel i pipelinen, om inte tricket med samtidig uppslagning används

Tricket - samtidig uppslagning i TLB och cacheminne inkommande (virtuell) adress offsetsidnummer Ett direktmappat cacheminne med parallell TLB-uppslagning. = & fanns/fanns inte Minne 20bit10bit index ³ 1 felavbrott 2bit byte-offset till processorn adress in data ut lagrat ord (32 bit)lagrad adresslapp (20 bit) med 1024 ord om 53bit TLB fysiskt sidnummer... = = = =......

Trickets restriktion ● Ingen enda bit från adresslappen får användas som indexbit! Detta medför att: ● Cachestorlek  associativitetstal x sidstorlek

Sidfärgning (page coloring) ● Den virtuella adressen används som index, den fysiska finns i adresslappen virtuellt sidnummersidoffset index fysiskt sidnummersidoffset får inte ändras av adressöversättningen

Sidfärgning ● Tricket kan användas i större cacheminnen ● Sidbytesalgoritmen väljer alltid sidor så att överlappande bitar ej ändras av TLB:n ● Huvudminnet som cache för hårddisken - inte längre fullt associativt ● Falska konflikter minskar eller försvinner

Hierarki av cacheminnen ● Register ● I- och D-cache ● Level 2, Level 3 ● Huvudminne ● Skivminne L2 cache L3 cache En minneshierarki med flera nivåer. primärminne på processor register skivminne virtuella adresser fysiska adresser data D- TLB L1D- cache I- TLB L1I- cache instruk- tioner processor- chippet