Title: Structuur en organisatie van computersystemen: deel 2
1Structuur en organisatie van computersystemen
deel 2
- Yolande Berbers
- 200A 03.20
2praktische organisatie
- lessenschema 14 lessen
- dinsdag 26 en woensdag 27 maart
- paas-vakantie
- dinsdag 16 en woensdag 17 april
- dinsdag 23 en woensdag 24 april
- pauze ik zit een week in het buitenland
- dinsdag 7 en woensdag 8 mei
- dinsdag 14 en woensdag 15 mei
- dinsdag 21 en woensdag 22 mei
- dinsdag 10.35-12u35, S01.03
- woensdag 10.35-12u35, S01.03
3doelstellingen van de cursus
- direct doel
- inzicht in
- huidige tendensen in computerarchitectuur
- achtergrond
- algemene kenmerken
- invloed voor de software
- huidige tendensen in basissoftware
- besturingssystemen
- compilers
- specifieke aandacht voor
- snelheid
- parallellisme (op alle niveaus)
- via case studies kennis maken met belangrijke
architecturen
4doelstellingen van de cursus (vervolg)
- verder doel
- studenten voorbereiden op een veelvoorkomende
latere job kiezen van gepaste apparatuur en
basisprogrammatuur - voor een bepaalde omgeving
- voor een bepaald doel
- wat voor soort producten zijn er op de markt
- wat moet je wel en niet geloven van de verkopers
- materiaal-cursus niet afstuderen met alleen
theoretische kennis
5doelstellingen van de cursus (vervolg)
- verder doel (vervolg)
- na deze cursus moeten studenten
- offertes voor computersystemen met kennis van
zaken kunnen vergelijken - technische artikels over computerarchitecturen
kunnen begrijpen - de vooruitgang in computerarchitectuur in de
komende jaren gemakkelijk kunnen volgen
6doelstellingen van de cursus (vervolg)
- verhouding hardware / software
- de cursus beschrijft de structuur en organisatie
van computersystemen voor zover die van belang
is voor een software specialist
7karakteristieken van de cursus
- een domein dat in continue en snelle beweging
is (geen historisch overzicht maar huidige
state-of-the-art) - breed domein
- moeilijkheidsgraad niet zo hoog
- de cursus brengt
- nieuwe methoden, technieken, begrippen, modellen,
... analytisch - nieuwe terminologie beschrijvend
- de cursus wil praktisch zijn
- vergelijkbaar met SOCS1
8overzicht van de cursus
- inleiding tot computerarchitectuur (H1)
- performantie (H1)
- instructie-set principes, RISC-architecturen (H2)
- pipelining (H3)
- parallellisme op het instructieniveau (H4)
- geheugen-hiërarchie (H5)
- parallelle machines (slides)
- niet-traditionele systemen (slides, kopies)
- een aantal case studies (slides)
9tekstboeken
- Computer Architecture. A Quantitive Approach
(2nd edition)David A. Patterson, John L.
HennessyMorgan Kaufmann Publishers, 1996, ISBN
1-55860-329-8 - boek richt zich in de eerste plaats tot
ontwerpers van systemen - wij zullen die elementen benadrukken die ons
helpen de huidige systemen te begrijpen en te
evalueren - Advanced Computer Architectures. A Design Space
Approach Deszo Sima, Terence Fountain, Peter
KacsukAddison Wesley, 1997, ISBN 0-201-42291-3 - gebruikt voor het deel over parallelle machines
en niet-traditionele systemen
10slides
- www.cs.kuleuven.ac.be/yolande/slides/socs2.html
- slides worden continu up to date gehouden
11plaats van cursus in curriculum
- directe opvolger van SOCS1
- steunt nogal op besturingssystemen
12vorm van het examen
- mogelijkheid tot alternatief examen (zie verder)
- gesloten boek examen
- mondeling met schriftelijke voorbereiding
- vraag 1
- peilt naar inzicht in de cursus
- overzichtsvraag
- combinatie van 2 of meer (hoofd)stukken
- vraag 2
- peilt naar diepte-kennis van een bepaald stuk
cursus - vraag 3
- peilt naar terminologie-kennis
- bestaat uit meerdere kleine vragen
13van belang voor het examen
- vergelijk x en y betekent niet bespreek achter
elkaar eerst x en dan y, maar bespreek x en y
zodat ze vergelijkbaar worden (dus volgens
hetzelfde stramien) en vergelijk ze dan - cijfers orde van grootte zijn van
belang exacte cijfers niet
14mogelijkheid tot alternatief examen
- bespreking van een hedendaagse architectuur
- voorstelling van 20 min (indien één student)
- voorstelling van 40 min (indien twee studenten)
- redelijke vrijheid bij de keuze van architectuur
(niet Intel) - keuzes kenbaar maken eerste week na pasen
- zelf zoeken naar documentatie (op het web is er
veel te vinden) - bespreking in het licht van de behandelde topics
uit de cursus - begrippen uit cursus, voor en nadelen van
bepaalde technieken moeten gekend zijn - ik kan hierbij vragen stellen
15Inleiding
16overzicht van deze inleiding
- vooruitgang van computermogelijkheden
- computerontwerp
- trends
- software
- hardware
- cpu chips
- geheugen chips
- disks
- kostprijs
17vooruitgang van computermogelijkheden
- 2 elementen die spelen bij vooruitgang
- vooruitgang in de technologie die gebruikt wordt
in het bouwen van computers (onderwerp van
elektronica) - vooruitgang in computerontwerp (onderwerp van
deze cursus) - vooruitgang niet gelijkmatig
- in technologie nogal regelmatig
- in computerontwerp onregelmatig, met sprongen
- tot eind jaren 70 25 verbetering per jaar
- vanaf eind jaren 70 microprocessoren
- kunnen de technologische vooruitgang beter
uitbuiten - 35 verbetering per jaar (zie grafiek verder)
- massaproductie mogelijk, dus goedkoper
18vooruitgang van computermogelijkheden (vervolg)
- wet van Moore uit 1965
- voorspelde dat de kracht van een chip zou
verdubbelen elke 18 maanden - voorspelling is grotendeels juist gebleken
- deze vooruitgang zal wellicht nog een tijdje lang
doorgaan
19vooruitgang van computermogelijkheden (vervolg)
- vroegere rem op vernieuwingen in
computerarchitecturen - veel code werd geschreven in assembler
- heel architectuur afhankelijk
- grote investering moest nog kunnen draaien op
volgende machine uit zelfde reeks - object-code compatibiliteit is heel belangrijk
- besturingssystemen
- merkafhankelijk
- in assembler geschreven
- risico en kost van een nieuwe architectuur waren
heel hoog - UNIX bracht hierin verandering
20vooruitgang van computermogelijkheden (vervolg)
- RISC architecturen
- ontworpen begin jaren 80, op de markt sinds ? 85
- vanaf dan 50 verbetering per jaar
21vooruitgang van computermogelijkheden
22vooruitgang van computermogelijkheden (vervolg)
- gevolgen van deze enorme vooruitgang
- het krachtigste werkstation in 93 (IBM Power-2)
vgl. met de krachtigste computer in 88 (Cray
Y-MP) - werkstation is even snel voor floating point
berekeningen - werkstation is sneller voor integerberekeningen
- werkstation kost minder dan 10 van supercomputer
- microprocessoren worden gebruikt voor alle maten
van computers, ook voor mainframes en
supercomputers
23vooruitgang van computermogelijkheden (vervolg)
- gebruikte terminologie
- personal computers
- servers voor werkstations
- mainframes
-
- minicomputers worden vervangen door servers
gemaakt met microprocessoren - mainframes worden vervangen door grote
multiprocessoren gemaakt met microprocessoren - supercomputers verzamelingen van microprocessoren
- werkstations
- supercomputers
24Technology Trends
25intermezzo perspective on Post-PC Era
- PostPC Era will be driven by 2 technologies
- 1) GadgetsTiny Embedded or Mobile Devices
- ubiquitous in everything
- e.g., successor to PDA, cell phone, wearable
computers - 2) Infrastructure to Support such Devices
- e.g., successor to Big Fat Web Servers, Database
Servers
26New Architecture Directions
- media processing will become the dominant force
in computer arch. and microprocessor design. - ...new media-rich applications ... involve
significant real-time processing of continuous
media streams, and make heavy use of vectors of
packed 8-, 16-, 32-bit integer and Fl. Pt. - Needs include real-time response, continuous
media data types (no temporal locality), fine
grain parallelism, coarse grain parallelism,
memory bandwidth
27computerontwerp
- complexe taak
- functionele eisen bepalen
- maximaliseren van de performantie
- maar binnen de kostenbeperkingen
- aspecten
- ontwerp van instructieset grens tussen
software en hardware - functionele organisatie
- logisch ontwerp
- implementatie
- ontwerp van geïntegreerd circuit
- verpakking, koeling, voedingseenheid
- kennis nodig van o.a. compilers,
besturingssystemen
28computerontwerp
- Architecture is an iterative process
- Searching the space of possible designs
- At all levels of computer systems
Creativity
Cost / Performance Analysis
Good Ideas
Mediocre Ideas
Bad Ideas
29computerontwerp
- vroegere verdeling
- computer architectuur ontwerp van instructie
set - implementatie
- organisatie
- hardware
- huidige tendens
- computer architectuur omvat al deze aspecten
30computerontwerp
- organisatie
- geheugensysteem, busstructuur, interne CPU
- mogelijk gelijke instructieset maar
verschillende organisatie (vb SPARCstation-2 en
SPARCstation-20) - hardware
- gedetailleerd logisch ontwerp, klok-snelheid,
cache, verpakking - mogelijk gelijke instructieset en organisatie
maar verschillende hardware (vb Intel-reeks,
Silicon Graphics Indy)
31functionele eisen
- functionele eisen hangen af van veel factoren
- voor welke gebruikers is de machine bedoeld
- voor welke applicaties
- op welke besturingssystemen mikt men
- welke standaarden wilt men volgen
- vaak zijn markt-elementen heel belangrijk
- figuur 1.2 werkt deze verschillende punten meer
uit - optimiseren van ontwerp
- meestal kost vs snelheid (ook nadruk in deze
cursus) - ook mogelijk fouttolerantie en betrouwbaarheid
32software trends
- programmas gebruiken meer en meer geheugen
- factor 1.5 tot 2 per jaar
- adresruimten moeten groter worden, dus adressen
nemen meer bits in beslag 0.5 tot 1 per jaar - komt zowel door programmas als door
verbeteringen in DRAM technologie (zie verder)
33software trends
- rol van compiler wordt steeds groter
- assembler is ongeveer helemaal verdwenen
- compilers bepalen mee in grote mate de
performantie - compilers belangrijkste interface gebruiker /
machine - verbeteringen in compiler technologie
- optimisaties, herschikken van code
(pipelining, geheugen systeem) - ook onderwerp van deze cursus
34trends in implementatietechnologie
- integrated circuit technologie
- densiteit toename van 50 per jaar
(verviervoudiging in 3 jaar) - chip-oppervlakte toenamen van 10 tot 25 per
jaar - gecombineerd effect toename van het aantal
transistoren per chip van 60 tot 80 per jaar
35trends in implementatietechnologie
36trends in implementatietechnologie
- semiconductor DRAM technologie
- densiteit toename van 60 per jaar
(verviervoudiging in 3 jaar) - cyclus tijd veel kleinere verbetering
vermindering van een derde in 10 jaar
Capacity Speed Logic 2x in 3 years 2x in 3
years DRAM 4x in 3 years 1.4x in 10
years Disk 2x in 3 years 1.4x in 10 years
Speed increases of memory and I/O have not kept
pace with processor speed increases.
37trends in implementatietechnologie
Moores Law for Memory
Transistor capacity increases by 4x every 3 years
38Memory History/Trends/State of Art
- DRAM main memory of all computers
- Commodity chip industry no company gt20 share
- Packaged in SIMM or DIMM (e.g.,16 DRAMs/SIMM)
- Capacity 4X/3 yrs (60/yr..)
- Moores Law
- MB/ 25/yr.
- Latency 7/year, Bandwidth 20/yr. (so far)
source www.pricewatch.com, 5/21/98
39Memory Summary
- DRAM
- rapid improvements in capacity, MB/, bandwidth
- slow improvement in latency
- Processor-memory interface (cachememory bus)
bottleneck to bandwidth
40Processor Limit DRAM Gap
- Alpha 21264 full cache miss in instructions
executed 180 ns/1.7 ns 108 clks x 4 or 432
instructions - Caches in Pentium Pro 64 area, 88 transistors
41trends in implementatie technologie (vervolg)
- harde schijf technologie
- densiteit toename van 50 per jaar bijna
verviervoudiging in 3 jaar - cyclus tijd veel kleinere verbetering
vermindering van een derde in 10 jaar
42Disk Description / History
Track
Embed. Proc. (ECC, SCSI)
Sector
Track Buffer
Arm
Head
Platter
1973 1. 7 Mbit/sq. in 140 MBytes
1979 7. 7 Mbit/sq. in 2,300 MBytes
Cylinder
43Disk History
1989 63 Mbit/sq. in 60,000 MBytes
1997 1450 Mbit/sq. in 2300 MBytes
1997 3090 Mbit/sq. in 8100 MBytes
44Performance Model /Trends
- Capacity
- 60/year (2X / 1.5 yrs)
- Transfer rate (BW)
- 40/year (2X / 2.0 yrs)
- Rotation Seek time
- 8/ year (1/2 in 10 yrs)
- MB/
- gt 60/year (2X / lt1.5 yrs)
- Fewer chips areal density
source Ed Grochowski, 1996, IBM leadership in
disk drive technology
www.storage.ibm.com/storage/technolo/grochows/groc
ho01.htm,
45Disk Limit I/O Buses
- Cannot use 100 of bus
- Queuing Theory (lt 70)
- Command overhead(Effective size size x 1.2)
- Multiple copies of data,SW layers
Memory bus
CPU
Internal I/O bus
Memory
External I/O bus
(PCI)
- Bus rate vs. Disk rate
- SCSI Ultra2 (40 MHz), Wide (16 bit) 80 MByte/s
- FC-AL 1 Gbit/s 125 MByte/s (single disk in
2002)
(SCSI)
(15 disks)
Controllers
46Disk Limit
- Continued advance in
- capacity (60/yr)
- bandwidth (40/yr.)
- Slow improvement in seek, rotation (8/yr)
- Time to read whole disk
- Year Sequentially Randomly
- 1990 4 minutes 6 hours
- 2000 12 minutes 1 week
- Dynamically change data layout to reduce seek,
rotation delay? Leverage space vs. spindles? - External I/O bus bottleneck to transfer rate,
cost? gt move to fast serial lines (FC-AL)? - how to use speed of embedded processor inside
disk?
47trends in implementatie technologie (vervolg)
- huidige tijdschaal van microprocessoren
- ontwerp 2 jaar
- productie 2 jaar
- levensduur van minimum 5 jaar
- gevolg wanneer productie op volle toeren draait
zijn sleuteltechnologieën (DRAM bv.) reeds een
stap verder - technologische veranderingen gebeuren vaak niet
op een continue manier maar in discrete stappen - bv. DRAM groeit steeds met factor 4
- vanaf een bepaalde grens kan opeens iets heel
anders (bv. 32-bit, 64-bit)
48Clock Frequency Growth Rate
49Transistor Count Growth Rate
- 100 million transistors on chip by early 2000s
A.D. - Transistor count grows much faster than clock
rate - - 40 per year, order of magnitude more
contribution in 2 decades
50The future general characteristics
51The future DRAM
52The future high performance (mP)
53The future ASIC
54trends in kostprijs
- kost van een product vermindert met de tijd
- onder de knie krijgen van een technologie
(leercurve) verlaagt de kost - grotere verkochte hoeveelheden verlagen de kost
- leercurve gaat sneller
- efficiëntere productiemethoden voor grote
hoeveelheden - ontwerpkosten worden verdeeld over meer producten
- zie als voorbeeld figuur 1.3
- standaard randapparaten verlagen sterk in prijs
- DRAM, kleine disks, schermen, toetsenborden,
enz. - zeer grote competitie, door gespecialiseerde
firmas - hebben zeer groot volume door standaardisatie
55trends in kostprijs (vervolg)
- figuur 1.6 geeft de uitsplitsing van kosten voor
een eenvoudig kleuren werkstation - figuren 1.7 en 1.8 en figuren volgende slides
- component-kosten zijn maar een klein deel van de
uiteindelijke prijs op een prijslijst - bij volumeproducten (bv PCs)
- is de gross margin lager ( alle kosten die
niet direkt toe te schrijven zijn aan een bepaald
product, zoals marketing en reklame, RD,
gebouwen, directie, winst) - is de average discount groter ( winst die de
eindverkoper heeft)
56trends in kostprijs (vervolg)
List Price
15 to 33
57trends in kostprijs (vervolg)
- Component Costs
- Direct Costs (add 25 to 40) recurring costs
labor, purchasing, scrap, warranty
List Price
6 to 8
Direct Cost
15 to 33
58trends in kostprijs (vervolg)
- Component Costs
- Direct Costs (add 25 to 40) recurring costs
labor, purchasing, scrap, warranty - Gross Margin (add 82 to 186) nonrecurring
costs RD, marketing, sales, equipment
maintenance, rental, financing cost, pretax
profits, taxes
List Price
34 to 39
6 to 8
Direct Cost
15 to 33
59trends in kostprijs (vervolg)
- Component Costs
- Direct Costs (add 25 to 40) recurring costs
labor, purchasing, scrap, warranty - Gross Margin (add 82 to 186) nonrecurring
costs RD, marketing, sales, equipment
maintenance, rental, financing cost, pretax
profits, taxes - Average Discount to get List Price (add 33 to
66) volume discounts and/or retailer markup
List Price
25 to 40
Avg. Selling Price
34 to 39
6 to 8
Direct Cost
15 to 33
60trends in kostprijs (vervolg)
61het meten en rapporteren van performantie
62performantie overzicht
- wat verstaat men onder performantie
- programma's uitvoeren om performantie te meten
- performantie vergelijken en samenvatten
- kwantitatieve principes ivm performantie
- algemeen, formules, toegepast op enkele kleinere
voorbeelden - toegepast op geheugenhiërarchie
- fouten en valstrikken
63het definiëren van performantie
- wat bedoelen we met computer X heeft een betere
performantie dan computer Y ? - vergelijk met vliegtuigen
64het definiëren van performantie (vervolg)
- verschillende criteria
- responsetijd uitvoeringstijd
- doorvoer
- klassiek definieert men performantie als
- als X n keer sneller is dan Y
- termen zoals verhogen of verlagen zijn
verwarrendwe zullen spreken over verbeteren en
verslechteren
65het meten van performantie
- slechts één echte maat uitvoeringstijd
- van één taak responstijd
- van meerdere taken doorvoer
- responsetijd (latency) bevat ook wachttijden
- CPU-tijd user CPU-tijd system CPU-tijd
- vaak gebruikt men enkel user CPU-tijd
- keuze van programmas om performantie te meten
- echte programmas
- kernels
- spelbenchmarks
- synthetische benchmarks
- benchmark suites
66het meten van performantie (vervolg)
- echte programma's
- beste methode
- voordelen
- vergelijkt dat wat men in werkelijkheid wil doen
- nadelen
- software niet altijd beschikbaar (moet gekocht
worden) - niet altijd eenvoudig uit te voeren (duurt te
lang) - zelfs al is de broncode beschikbaar, overdragen
van de code is meestal geen evidente zaak - vergelijking moet volledig door de klant gebeuren
67het meten van performantie (vervolg)
- kernels
- korte, typische extracten van echte programma's
- voordelen
- gemakkelijk te schrijven, ook voor nieuwe
machines waar nog geen compilers voor zijn (oud
argument) - vergelijkingswaarden zijn voor vele machines
bekend - goed om individuele aspecten van computers te
vergelijken - nadelen
- geeft niet echt weer wat later als software zal
draaien - voorbeelden
- Livermore Loops, Linpack
68het meten van performantie (vervolg)
- voorbeelden
- Livermore Loops (eigenlijk Livermore Fortran
Kernels of LFK) - 24 Fortran DO-loops uit code van de Lawrence
Livermore National Laboratory - wordt gebruikt sinds begin jaren 70 (eerst 14,
later 24 loops) - mengeling van lussen die wel/niet gevectoriseerd
kunnen worden - lengte van de lussen wordt gevarieerd
- heeft geleid tot het gebruik van de term Mflop/s
(millions of floating point operations per
second) - geeft niet 1 cijfer, maar een groot aantal (zie
ook SPEC)
69het meten van performantie (vervolg)
- voorbeelden
- Linpack
- oplossing van 100x100 lineaire vergelijking met
L/U decompositie - klein programma
70het meten van performantie (vervolg)
- spel benchmarks
- bekende algoritmes die men als benchmark gebruikt
- voordelen
- korte code om in te tikken
- voorbeelden gemakkelijk te vinden in artikels
- vergelijkingswaarden zijn voor vele machines
bekend - nadelen
- geeft niet echt weer wat later als software zal
draaien(minder nog dan kernels) - voorbeelden
- zeef van Erastosthenes, quicksort
71het meten van performantie (vervolg)
- synthetische benchmarks
- volgt de idee van de kernels programma's die de
frequentie van instructiegebruik nabootsen in
bepaalde toepassingsgebieden - voordelen
- vergelijkingswaarden zijn voor vele machines
bekend - de testen zijn veel uitgebreider dan kernels
- nadelen
- geeft niet echt weer wat later als software zal
draaien - problemen indien performantie afhangt van klein
stukje code geeft vaak aanleiding tot ad hoc
optimisaties - voorbeelden
- Whetstone (Fortran wetenschappelijk code)
- Dhrystone (geen wetenschappelijk code)
72het meten van performantie (vervolg)
- benchmark suites
- verzameling van benchmarks
- voordelen
- zwakheid van een bepaalde benchmark uit de suite
wordt gecompenseerd door de andere benchmarks uit
de suite - vergelijkingswaarden zijn voor vele machines
bekend - nadelen
- methode om de resultaten van de verschillende
benchmarks samen te brengen is heel belangrijk - geeft niet echt weer wat later als software zal
draaien - voorbeelden
- SPEC92, SPEC95, SPEC CPU2000, TPC
73het meten van performantie (vervolg)
- SPEC System Performance Evaluation Corporation
- opgericht door meer dan 20 computerfirmas in
1988 - eerste versie in 1989 standaard machine VAX
11/780 - tweede versie in 1992 met uitgebreide
floating-point tests standaard machine VAX
11/780 - derde algemene versie van 1995standaard machine
Sun SPARCstation 10/450 met 64MB RAM - nieuwe versies nodig optimisaties van compilers
voor benchmarks! - nieuwe gespecialiseerde suites
- SPEChpc96 voor high performance computing
- SPECweb96 voor web-toepassingen
- SPECjvm98 voor het testen van java virtual
machines
74het meten van performantie (vervolg)
- SPEC System Performance Evaluation Corporation
- nieuwste algemene versie SPEC CPU2000
- bestaat uit CINT2000 en CFP2000
- CINT2000 suite bevat 12 application-based
benchmarks in C and C - CFP2000 suite bevat 14 CPU-intensieve benchmarks
in FORTRAN (77 en 90) en C - referentiemachine Sun Microsystems Ultra5_10
werkstation met 300-MHz SPARC processor en 256-MB
geheugen - de waarden van CINT2000 en CFP2000 zijn op de
referentiemachine per definitie 100 - methode (zie ook fig. 1.9)
- meerdere in de praktijk gebruikte
toepassingsprogrammas
75het meten van performantie (vervolg)
- 2 manieren om er mee te werken
- SPECint en SPECfp meest gebruikt
- enkel die tests gebruiken die het meest lijken op
de software die men wil draaien - maar meestal wordt alleen het gemiddelde
resultaat gepubliceerd (zie figuur uit
tijdschrift) - SPECrate_int, SPECrate_fp
- testen de verwerkingscapaciteit van een systeem
- meerdere kopieën van dezelfde test worden
opgestartgemeten wordt hoeveel processen binnen
bepaalde tijd volledig uitgevoerd zijn - ook geschikt voor multiprocessoren
- een tape met de testen kost 800
76het meten van performantie (vervolg)
- TPC Transaction Processing Performance Council
- tps transactions per second of tpm transactions
per minute - /tps geeft prijs/performantie
- gebruikt in de database wereld
- test de van combinatie database software en
onderliggende hardware - TPC-A, TPC-B, TPC-C bestaan
- niet zo gekend als SPEC, resultaten minder
publiek - het kost een firma initieel tot 500.000 om
TPC-C audit op te bouwen, te optimiseren en te
tunen
77verslag uitbrengen over performantie
- reproduceerbaarheid
- cijfers over benchmarks hebben slechts betekenis
als alle omstandigheden meting vermeld zijn (wat
weinig gebeurd) - exacte versie van processor
- versie van compiler
- gebruikte optimisaties (zie ook bij fouten en
valstrikken) - hoeveelheid RAM
- hoeveelheid cache (primair, secundair)
- welke input
- enz.
- bij auto-tests wel gewoonte om alle
omstandigheden te geven - bij SPEC baseline performance naast optimized
performance
78verslag uitbrengen over performantie (vervolg)
- vergelijken van performantie hoe combineer je
informatie ? - niet zo eenvoudig !
79verslag uitbrengen over performantie (vervolg)
- totale uitvoeringstijd
- rekenkundig gemiddelde
- gewogen rekenkundig gemiddelde
A
B
C
W(1)
W(2)
W(3)
P1 (secs)
1.00
10.00
20.00
0.50
0.909
0.999
P2 (secs)
1000.00
20.00
0.50
0.091
0.001
100.00
gem W(1) (secs)
500.50
20.00
55.00
91.82
20.00
18.18
gem W(2) (secs)
2.00
20.00
10.09
gem W(3) (secs)
80verslag uitbrengen over performantie (vervolg)
- genormaliseerde uitvoeringstijd tov een
referentiemachineuitvoeringstijd van
referentiemachine is dan 1 (per def.) - gemiddelde van genormaliseerde uitvoeringstijden
- rekenkundig
- meetkundig (SPEC)
Normalized to A
Normalized to B
Normalized to C
A
B
C
A
B
C
A
B
C
P1 (secs)
1.0
10.0
20.0
1.0
1.0
0.1
2.0
0.05
0.5
1.0
0.1
1.0
1.0
0.02
10.0
0.2
50.0
5.0
P2 (secs)
Rek Gem
1.0
5.05
1.0
1.0
10.01
5.05
1.1
25.03
2.75
Geo Gem
1.0
1.0
1.0
1.0
0.63
1.0
0.63
1.58
1.58
Tot Tijd
1.0
0.11
1.0
1.0
0.04
9.1
0.36
25.03
2.75
81verslag uitbrengen over performantie (vervolg)
- voordelen van meetkundig gemiddelde van
genormaliseerde uitvoeringstijden - onafhankelijk van uitvoeringstijden van
individuele progr. - onafhankelijk van referentiemachine
- nadelen van meetkundig gemiddelde van
genormaliseerde uitvoeringstijden - ze voorspellen niet de uitvoeringstijden
- de constructeurs worden aangemoedigd om korte
programma's te optimizeren (gaat gemakkelijker
dan langere en heeft hetzelfde effect) - ideaal
- eerst juiste gewichten (afhankelijk van
voorspelde gebruik) - en dan normalisatie
82kwantitatieve principes
- belangrijkste principe
- zorg ervoor dat wat vaak voorkomt snel is
- uitgangspunt van RISC (zie later)
- extra voordeel wat vaak voorkomt is meestal ook
simpel - vb overflow
- komt niet zo vaak voor
- versnel dus het normale geval (geen overflow)
- eventueel is dan overflow trager, maar dat is
minder erg - dit kan gekwantificeerd worden met behulp van de
wet van Amdahl
83kwantitatieve principes (vervolg)
- Amdahls wet een verbetering is beperkt tot de
fractie die baat heeft bij de verbetering - factoren die een rol spelen
- fractie waarop verbetering een invloed heeft
- vb een programma duurt 60 sec. de verbetering
heeft betrekking op 20 sec de fractie is 20/60 - verbetering die bekomen kan worden
- vb zonder verbetering duurt een stuk 20 sec.
met verbetering duurt het 8 sec. verbetering
(speedup) is 20/8 - wet van Amdahl is interessant om verschillende
mogelijke verbetering te vergelijken - in formules zie volgende slide
84kwantitatieve principes (vervolg)
85kwantitatieve principes (vervolg)
- voorbeeld 1
- verandering verbetering met een factor 10
- wordt gebruikt 40 van de tijd
86kwantitatieve principes (vervolg)
- voorbeeld 2
- FP 50 van uitvoeringstijd van een bepaalde
benchmarkFPSQR 20 van uitvoeringstijd van
deze benchmark - alternatief 1 extra hardware FPSQR is 10 keer
sneller - alternatief 2 alle FP berekeningen 2 maal sneller
87kwantitatieve principes (vervolg)
- berekenen van CPU-performantie
- vorige berekeningen gingen ervan uit dat we
precies weten wat het effect zal zijn van een
verbetering - in de praktijk moet je dit voorspellen, je kunt
het niet meten (want de verbeteringen zijn nog
niet doorgevoerd) - een aantal formules kunnen hierbij gebruikt worden
88kwantitatieve principes (vervolg)
-
- CPU performantie is dus afhankelijk van 3
factoren aantal instructies, klokcycli per
instructie, klokfrequentie
89kwantitatieve principes (vervolg)
- deze drie factoren zijn niet onafhankelijk
- een verbetering van één factor kan een invloed
hebben op de andere (bv een verslechtering) - basistechnologieën die invloed hebben op de 3
factoren - klokfrequentie hardware technologie en
organisatie - CPI organisatie en instructieset
- aantal instructies instructieset en
compilertechnologie - formules die helpen bij CPU-ontwerpbeslissingen
- vb van berekening zie boek blz 33
90kwantitatieve principes
Inst Count CPI Clock Rate Program
X Compiler X (X) Inst.
Set. X X Organization
X X Technology X
91kwantitatieve principes (vervolg)
- meten (of schatten) van de 3 factoren
- klokfrequentie
- heel moeilijk, is meestal een schatting
- aantal instructies
- nodig compiler te hebben (wordt heel vroeg
ontwikkeld) - totaal aantal instructies is van belang
- ook frequentiegebruik van verschillende (klassen
van) instructies is van belang (instructiemix) - CPI
- vaak werkt men met CPIi (per instructie (klasse))
- moeilijk want afhankelijk van de toestand van
processor (dus pipeline en cache) - vaak zal men die twee factoren opsplitsen
92kwantitatieve principes (vervolg)
- voorbeeld 3 2 alternatieven voor conditionele
sprong - alt A een compare instructie die een
conditiecode zet,gevolgd door een branch die
de conditiecode test - alt B slechts 1 instructie, een branch die
direct vergelijkt - voor beide
- conditionele branch instructie duurt 2
klokcycli - alle andere instructies duren 1 klokcyclus
- alt A 20 zijn sprongen en er zijn dus ook 20
compare - alt A snellere klok omdat korte sprong 1.25
maal sneller dan B - vraag welke CPU is sneller ?
93kwantitatieve principes (vervolg)
- CPIA 0.20 x 2 0.80 X 1 1.2
- CPU time A ICA x CPIA x klokcyclustijdA
ICA x 1.2 x klokcyclustijdA - alt B heeft geen extra compare, dus 20/80 of
25 zijn sprongen en de rest (75) zijn andere
instructiesCPIB 0.25 x 2 0.75 X 1 1.25 - alt B heeft in totaal minder instructies uit te
voerenICB 0.8 ICA - CPU time B ICB x CPIB x klokcyclustijdB
0.8 x ICA x 1.25 x (1.25 x kl.cyclustijdA)
1.25 x ICA x klokcyclustijdA - alternatief A is dus sneller
94geheugenhiërarchie
- axioma van hardware ontwerp klein is snel
- klein signalen moeten minder ver gaan
- meer voeding mogelijk per cel
- wel veel duurder
- van groot belang bij geheugens
- grote bandbreedte (in MB/sec.)
- kleine toegangstijden
- data toegang
- meest recent gebruikt komt vaak terug (temporele
lokaliteit) - wat in de buurt ligt is vaak ook nodig
(ruimtelijke lokaliteit) - combinatie van deze elementen met de wet van
Amdahl geheugen hiërarchie is de oplossing
95geheugenhiërarchie
Capacity Access Time Cost
Staging Xfer Unit
Upper Level
CPU Registers 100s Bytes lt1 ns
faster
Registers
prog./compiler 1-8 bytes
Instr. Operands
Cache 10s-100s K Bytes 1-10 ns 10/ MByte
Cache
cache cntl 8-128 bytes
Blocks
Main Memory M Bytes 100ns- 300ns 1/ MByte
Memory
OS 512-4K bytes
Pages
Disk 10s G Bytes, 10 ms (10,000,000 ns) 0.0031/
MByte
Disk
user/operator Mbytes
Files
Tape infinite sec-min 0.0014/ MByte
Larger
Tape
Lower Level
96geheugenhiërarchie
- By taking advantage of the principle of locality
- give user as much memory as is available in
cheapest technology - provide access at the speed offered by the
fastest technology
97geheugenhiërarchie (vervolg)
- cache terminologie cache hit, cache miss, cache
block - vergelijking cache en virtueel geheugen
- bij cache miss blokkeert de CPU totdat gegevens
aanwezig zijn - bij page fault krijgen we een proceswisseling
98performantie van cachegeheugen
- voorbeeld speedup na toevoeging van een cache
- cache is 10 maal sneller dan het hoofdgeheugen
- cache wordt gebruikt 90 van de keren
99performantie van cachegeheugen (vervolg)
- meestal is er al een geheugenhiërarchie
- vraag hoe kan ik die verbeteren
- nodig in rekening brengen van wachten van CPU op
cache - CPUtime (CPU klokcycli geheugen-stall-cycli)
x klokcyclus - geheugen-stall-cycli aantal missingen x kost
van een missing - IC x aantal missingen per instructie x kost van
een missing - IC x aantal geh. ref. per instr. x mis-frequ. x
kost van missing - de elementen uit de laatste formule zijn
gemakkelijk te bepalen, o.a. door simulatie
100performantie van cachegeheugen (vervolg)
- voorbeeld
- machine met CPI 2.0 als data in de cache
- geheugentoegang enkel via load en store (40 van
instr.) - kost van missing 25 klokcycli
- mis-frequentie 2
- vraag hoeveel sneller zou de machine zijn met
alleen cache hits
101performantie van cachegeheugen (vervolg)
- voor machine met cache (elke instructie vraagt
een instructiefetch uit het geheugen, en 40 van
de instructies vragen nog een geheugentoegang
extra) CPUtime (CPU klokcycli
geheugen-stall-cycli) x klokcyclus (IC x 2.0
IC x 0.7) x klokcyclus 2.7 x IC x klokcyclus
102fouten en valstrikken
- valstrik MIPS is een goede maat om performanties
van computersystemen te vergelijken - Million Instructions per Second
- Meaningless Indicator of Performance of System
- Marketings Invention to Promote Sales
- hoe groter de MIPS, hoe performanter het systeem
(gemakkelijk te begrijpen) - 3-voudig probleem
- MIPS is afhankelijk van instructieset
- MIPS kan variëren op 1 systeem (afh. van
programma) - MIPS kan variëren omgekeerd als performantie (vb
FP)
103fouten en valstrikken (vervolg)
- valstrik MFLOPS is een consistente en handige
maat voor performantie - Million FP Operations Per Second
- is afhankelijk van de machine en van het
programma (compilers hebben een MFLOP van 0) - als zelfde programma vergeleken wordt tussen
verschillende systemen, dan nog is het geen goede
vergelijking - soort hardware ondersteunde FP operaties niet
overal gelijk - maakt geen verschil tussen snelle FP operaties
(bv optelling) en trage FP operaties (bv deling) - zoals bij MIPS men geeft maar 1 cijfer en zegt
niets over de omstandigheden van dat cijfer
104fouten en valstrikken (vervolg)
- fout synthetische benchmarks voorspellen
performantie - compilers worden vaak aangepast expliciet aan
veelgebruikte benchmarks - eenvoudige programmas waar alle procedures
kunnen uitgeschakeld worden - door kennis van bepaalde formules uit Whetstone
vertalen sommige compilers dit in veel
eenvoudigere code - valstrik benchmarks blijven altijd geldig
- één van de programmas van SPEC89 (matrix300)
werd vaak heel specifiek geoptimiseerd - andere concrete voorbeelden in het boek
105fouten en valstrikken (vervolg)
- valstrik verwachten dat de verbetering van één
aspect de performantie van een machine zal doen
toenemen met een hoeveelheid die evenredig is met
de grootte van de verbetering - vb de uitvoering van een programma duurt 100
sec., waarvan 80 sec. vermenigvuldigingen zijn.
Met hoeveel moet ik de vermenigvuldiging
verbeteren opdat mijn programma 5 maal sneller
zou uitvoeren ?
106fouten en valstrikken (vervolg)
- fout hardware-onafhankelijke maten voorspellen
performantie - vb gebruik van grootte van programmas als maat
voor programma-uitvoeringstijd (dat werd vroeger
wel eens gedaan) - valstrik vergelijken van computers, waarbij men
alleen rekening houdt met één van de drie
performantie-maten kloksnelheid, CPI,
instructie-aantallen - valstrik piek-performantie gebruiken om machines
te vergelijken