Pris och prestanda Föreläsning 2, hösten G1510 Datorteknik fk
Datorklasser 1982 zStordator - fyller upp en datorhall zMinidator - fyller upp ett skåp zMikrodator - fyller upp en pizzakartong zEnchipsdator - inbyggd i ljudkassettdäck
Datorklasser 2002 zServer - byggd för hög tillgänglighet ydelar får gå sönder men servern ska helst ha reservdelar inmonterade som tar över direkt zSkrivbordsdator - balanserad maskin ystår för störst ekonomisk omsättning zInbyggt system - specialiserat för ett syfte ystår för störst bredd, från billigast till dyrast
Utveckling zTransistorer per ytenhet ökar 35% per år yfyrdubbling på fyra år (Moores lag) zMinneselement per ytenhet öker 60%/år ymen åtkomsttiden minskar bara 30% på 10 år zBitar per ytenhet i skivminnen: 100%/år yny trend - före 1990 var det 30% per år
Antal chipp per bricka zAntal = r 2 /a - r 2/a, där yr = brickans (waferns) radie ya = chippets area z r 2 /a är brickans area delad med chippets z r 2/a är de halva chippen vid kanten
Utbyte (yield) zSmåfel - som smuts zSlumpartat utspritt zStora chipp på brickan = stor risk för fel zSmå chipp = liten risk Två chipp OK Många chipp OK
Prestanda zVad påverkar datorprestanda zHur mäter man datorprestanda zRäkna klockcykler - ett sätt att analysera zAmdahls lag - gräns för förbättringar
Vad påverkar prestanda zCPU zprimärminne zprogram, kompilator zskivminne zdatornät zövriga program, operativsystem
Testprogram zVerkliga program zVerkliga program styrda av skript zKernels - extrakt från verkliga program zLeksaksproblem - quicksort, n-queens, … zSyntetiska 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
Amdahls lag zandelU = andel av ursprungliga körtiden som snabba finessen skulle ha behövts zspeedupU = lokal speedup när snabba finessen används andel U + speedup total = andel U speedup U
Ur processorns synvinkel zKörtid = icount x CPI x tclk zicount = antal utförda instruktioner zCPI = Cykler Per Instruktion ztclk = 1/klockfrekvensen
Teoretiska CPI-beräkningar zCPI och andel av utförda instruktioner zExempel: yALU-op: CPI = 1, andel 40% yLoad, Store: CPI = 2, andel = 36% yHopp: CPI = 2, andel = 24% yCPI medel = 1 x 0,4 + 2 x 0, x 0,24 = 1,6
Hur man får datorer snabba zMake the frequent case fast… z…and the fast case frequent
Make the frequent case fast zDet lönar sig inte att snabba upp en funktion som nästan aldrig används zKan man snabba upp en funktion som används ofta så ger det stor utdelning zFö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 zEftersom det ovanliga fallet är långsamt så ska man helst inte använda det zKompilatorn kan använda snabba instruktioner så mycket som det går
Fallgrop: klockfrekvens anger prestanda z Celeron 2,0 GHz visar 21 bilder/s i speltest z P4 2,26 GHz: 46 bilder/s z Orsak: Celeron har mindre L2-cache z AMD Athlon XP med 1,4 GHz klocka visar 37 bilder/s
Fallgrop: MIPS zMIPS = Miljoner Instruktioner Per Sekund zMIPS = icount/körtid = klockfrekvens/CPI zMIPS anger prestanda bara så länge icount hålls konstant z…kan alltså inte användas för att jämföra datorer med olika instruktionsuppsättning (vilket är fler än man tror)