IS1200 Föreläsning 10 Mats Brorsson, KTH /ICT Programvaru- och datorsystem SICS – Swedish Institute of Computer Science.

Slides:



Advertisements
Liknande presentationer
För att göra avklippta hörn på en bild använder man sig av verktyget Picture Shape. Detta verktyg hittar du under fliken Picture Tools (som du får upp.
Advertisements

SOA Governance with SOA Software For BUGS Martin Svensson.
Hardware Hacking, part 1 SMB Soldering. Agenda • 17:30 Introduktion - Introduction to hardware hacking, part 1 - SMB soldering – Vilka är vi och vad gör.
Mellanblå fält till höger: Plats för bild – foto, diagram, film, andra illustrationer Comparison of some instruments and methods for determination of sunshine.
© 2010 IBM Corporation IBM ProtecTIER® Deduplication magic.
ASP.NET MVC MVC historik ● Traditionellt arkitekturmönster som ansetts särskilt lämpligt i webbapplikationer ● Separation of concerns & loose.
© Apoteket AB Sidhuvud med plats för gemensamt namn för OH-serien Sidhuvud med plats för Enhet / Utförare – Internt Swedish community pharmacy classification.
1.Numerical differentiation and quadrature Discrete differentiation and integration Ordinary.
Modern Data Protection
Landscaped Spaces Design for Health This slide show contains images related to health and the built environment. For more information see
Aims and outcomes Levnadsvillkor, attityder, värderingar och traditioner samt sociala, politiska och kulturella förhållanden i olika sammanhang och delar.
Get more efficient use of IFS Application with
Vägledningscentrum Career guidance centre
Workshop 7 mars 2013 Välkomna Dagens tema: Crowdsourcing Dagens talare 7/3/13 Behovsdriven utveckling i praktiken 1.
Backup strategies “in-a-nutshell” by System Center Robert Hedblom MVP System Center Cloud and Datacenter Management MEET member TechNet Moderator Consultant.
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.
Unified Communications. Unified Communications and Collaboration Simplify Working Together Pervasive capabilities for where and how people work.
Name Title Microsoft Sweden. Avtalspraktiska fördelar Om-installation med valfritt media Kräver inte samma fysiska media som maskinen kom med Men…
Pontus Blomkvist, Banverket ICT 5 Jonny Andersson – Technical Specialist Microsoft
Creating an Adobe Presentation Rapidly create Flash-based presentations and eLearning courses from PowerPoint Set Preferences Add or Edit Audio Add multimedia.
DANIEL STEINHOLTZ, ”FRANKLY, WE NEED A REVOLUTION…” [ MAURICE STRONG AT STOCKHOLM +40 ]
9 September 2014IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
För att uppdatera sidfotstexten, gå till menyn: Visa/Sidhuvud och sidfot... E-services – what’s now and what’s next for the Swedish Pensions Agency? Mikael.
Create a stunning dashboard and keep your job Patrik Sundqvist.
Self Service in the Enterprise Patrik Sundqvist.
Transport models Are they really that important? Christian Nilsson, WSP 17 October 2014.
Systemutveckling i molnet - IRL Chris KlugRobert Folkesson.
OSD LIT/ZTI – Bending the rules Johan Arwidmark och Mikael Nyström.
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
31 March 2015 IS1200 Datorteknik ht2009 föreläsning 2, (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
IS1200 Datorteknik Föreläsning CE F2 Vi bygger en processor Kursboken, delar av kapitel 7 31 March IS1200 Datorteknik föreläsning CE – F2.
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
To practise speaking English for 3-4 minutes Genom undervisningen i ämnet engelska ska eleverna ges förutsättningar att utveckla sin förmåga att: formulera.
© Gunnar Wettergren1 IV1021 Project models Gunnar Wettergren
Shannon dekomposition
4 August 2015 IS1200 Datorteknik föreläsning CE - F91 IS1200 Datorteknik Övning 10.
THINGS TO CONSIDER WHILE PLANNING A PARTY Planning an event can take an immense amount of time and planning. Even then, the biggest problem that arises.
Digitization and Management Consulting
Types of Business Consulting Services Cornerstoneorg.com.
Alternativ till DiVA? Elisabeth Uhlemann,
Work of a Family law attorney Jagianilaw.com. A Family Law Attorney basically covers a wide range spectrum of issues that a family may face with difficulty.
Meeting singles had never been so easy before. The growing dating sites for singles have given a totally new approach to getting into relationships. ‘Singles.
My role model.
How to Buy Engagement Rings for Women Online?. Buying engagement rings for women or tiffany celebration rings from the online market could be a bit challenging.
You Must Take Marriage Advice to Stop Divorce! Dontgetdivorced.com.
Accounts + SD = ♥? SD indicators generated from an integrated statistical account New report financed by Eurostat, DG Environment and Statistics Sweden.
Mixed-type assignments
Publish your presentations online we present SLIDEPLAYER.SI.
Publish your presentations online we present SLIDEPLAYER.RS.
Publish your presentations online we present SLIDEPLAYER.IN.
Publish your presentations online we present SLIDEPLAYER.VN.
Publish your presentations online we present SLIDEPLAYER.RO.
Publish your presentations online we present SLIDEPLAYER.EE.
Publish your presentations online we present SLIDEPLAYER.CO.IL.
Publish your presentations online we present SLIDEPLAYER.AE.
Publish your presentations online we present SLIDEPLAYER.BG.
Publish your presentations online we present SLIDEPLAYER.AFRICA.
Publish your presentations online we present SLIDEPLAYER.MX.
Publish your presentations online we present SLIDEPLAYER.LT.
Publish your presentations online we present SLIDEPLAYER.LV.
Publish your presentations online we present SLIDEPLAYER.SK.
Integrates many areas of study (science, math, language arts) into one project.
USD 475 Parent Information for Digital Citizenship
Office of Special Education and Early Intervention Services UPDATES
The Early Universe (cont.)
Bits in the Air Airwaves have been regulated by the government (FRC, FCC) for years First radio transmissions (wireless telegraph) were unregulated and.
Detecting System Failures with GPUs and LLVM
Presentationens avskrift:

IS1200 Föreläsning 10 Mats Brorsson, KTH /ICT Programvaru- och datorsystem SICS – Swedish Institute of Computer Science

Innehåll Vad drar energi? Ett par arkitekturknep att minska energiförbrukningen i processorer Multicore: en lågenergiteknik? Vad behövs för att bygga en multicore?

En enkel pipeline (MIPS) Memory Access Write Back Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc ALU Memory Reg File MUX Data Memory MUX Sign Extend Zero? IF/ID ID/EX MEM/WB EX/MEM 4 Adder Next SEQ PC RD WB Data Next PC Address RS1 RS2 Imm MUX IR <= mem[PC]; PC <= PC + 4 A <= Reg[IR rs ]; B <= Reg[IR rt ] rslt <= A op IRop B Reg[IR rd ] <= WB WB <= rslt

Och cacheminnen... Datapath L1 D L1 I L2/3 I+D

Vad tar energi? Mikroprocessorer är byggda av CMOS transistorer Kretsen visar en inverterare -In = 0 => Out = 1 -In = 1 => Out = 0 V dd InOut = 0 = 1

En enkel introduktion till inverteraren CMOS-transistorer kan ses som strömbrytare -P-transistorn öppnar när in=1 -N-transistorn öppnar när in=0 Efterföljande kretsar kopplade på utgången ger en kapacitiv last, C Kapacitansen, C, kan hålla en elektrisk laddning, Q -En laddning i C betyder en hög spänning på utången (1) -Ingen laddning, låg spänning (0) V dd InOut = 0 = 1 C N P

CMOS Invertereraren Antag ingången är 1 P-transistorn är öppen vilket betyder att det finns en ledning till jord => utgången=0 V dd In=1Out = 0 = 0 = 1 Out = 0 N Closed P Open

CMOS-invertereraren i aktion In går från 1 till 0 Då öppnar N-transistorn Och P-transistorn stänger Kapacitansen laddas då från V dd Utgången ändras från 0 till 1 När In går från 0 till 1, laddas kapacitansen ut genom P- transistorn Varje upp- och urladdning bränner effekt! V dd In → 0 = 0 = 1 Out → 1 N Opens P Closes

Statisk effektförbränning Även i stabilt tillstånd går det vissa läckströmmar genom transistorerna -De är alltså inte perfekta strömbrytare V dd InOut = 0 = 1

CMOS Effektförbränning (nästan)  är en aktivitetsfaktor C är den samlade kapacitansen V dd är matsningsspänningen f är klockfrekvensen I leak är de samlade läckströmmarna Eftersom f  V dd (inom vissa gränser)  P  V dd 3

Några tekniker att minska energiåtgång Tekniker för cacheminnen Små, korta instruktioner

4-way set associative cache memory All läsning och skrivning i minnesceller drar energi!

Tekniker för att minska energin i cacheminnen Mängd-associativa cacheminnen har bra prestanda, men de drar mycket energi Access till datadelen drar mycket mer energi än till adressetiketterna. (Varför?) -De flesta optimeringar görs för datadelen Olika tekniker: -Fasad access -Sekventiell access -Way prediction

Phased access Kolla först om data finns i cachen Bara då läses data-delen Energi sparas vid miss i cachemissen Prestanda förloras vid träff i cachen -Kan minskas om man pipelinar cacheminnet Figurer från Kaxiras & Martonosi, COMPUTER ARCHITECTURE TECHNIQUES FOR POWER-EFFICIENCY

Sequential access Titta i en väg åt gången Börja i den senast använda (MRU=Most Recently Used) Energi sparas om man ofta hittar rätt tidigt Prestanda förloras om man inte hittar rätt tidigt

Way prediction En prediktor pekar ut den väg där data tros finnas Energi sparas om man gissar rätt Prestanda förloras om man gissar fel En prediktor pekar ut den väg där data tros finnas Energi sparas om man gissar rätt Prestanda förloras om man gissar fel

Vart går energin i en processor? Små cacheminnen betyder mer energi i DRAM-access Stora cacheminnen betyder mer energi i cacheaccess. Varierande storlek på instruktionscache Kan man ha mindre cacheminnen med kapaciteten hos ett större genom att komprimera innehållet?

CGO Paper

Multicore processors Why and How

The Free Lunch SPEC INT CPU 95 Exponential increase in speed -CPU INT does not really track execution time well....

The Free Lunch ? SPEC INT CPU 2000 Not so exponential increase in speed

2012 state-of-the-art, high-end Intel Sandybridge, 6 cores, 12 threads, 130 W Intel Xeon E7, 10 cores, 20 threads, 105 W AMD Opteron cores, 16 threads, 140 W Oracle UltraSparc T5 16 cores, 128 threads

2012 state-of-the-art, embedded Freescale T cores, 24 threads, 35 W Nvidia Tegra cores+acc, 1-2 W Tilera Tile-GX 100 cores, 50 W Adapteva Epiphany-IV 64 cores, 2 W

We’re going manycore

Why Multicore? or, where is my free lunch? Software developers were used to ever increasing performance, for free -Increasing clock frequencies -Increasingly advanced architectures exploiting Instruction level parallelism (ILP) -Larger cache memories However, -Clock frequencies no longer go up! -We have exhausted the available ILP in applications Parallelism is the only way increasing performance significantly

Software development == Development for Multicore Software development == Development for Multicore

Moore’s law Moore’s law: 2X transistors / 18 months Smaller transistors => faster transistors (MHz -> GHz) Many transistors => more on-chip state (caches) Many transistors => advanced architectures (ILP++)

Higher clock frequencies The increase in clock frequency came from -Faster transistors -Less work in each clock As of ~2003 max clock frequency has mostly stalled -Some notable exceptions from IBM: Power7 5+ GHz Graph courtesy of

More on-chip state Development of on-chip cache sizes (L1, L2, L3) Development of number fo physical registers Development of other significant on-chip cache state -Branch prediction -Speculative re-order buffers etc.

Ways to exploit ILP PipeliningSuper-pipelining Fetch Superscalar execution (also VLIW) Fetch OoO Superscalar Issue

Why Multicore Because these are the only chips we know how to build with the increasing number of transistors within the power envelope Because of performance reasons: potential of linear performance improvements with growing number of cores -If we could only program them... Because of power reasons

Multicore power savings potential Super simplified model Requires perfect parallelisation With lower V dd, leakage currents increase V dd may not be reduced as much f f’ = f/4 V dd V’ dd = V dd /4 PP’ = P/64

Some observations... Amount of cores is rapidly rising I/O-devices, controllers and accelerators are moving onto the same die as processors So far, shared address space -With some exceptions So far, homogeneous architectures -With some exceptions

The Multicore Software Triad Application performance Software Reliability Development time Desirable properties: Scalable up and down Do not introduce new bugs with parallelism Easy to write and maintain

Programming model design space General-purpose languages (GPL) -Native threads/processes -Data parallelism -SPMD -Loop-based parallelism -Task-based parallelism Domain-specific languages (DSL) -Erlang/SDL/Matlab/Labview -GPU-languages Automatic parallelization Tool support

A coding example Serial code int fib(int n){ if (n < 2) return n; else { int x = fib(n-1); int y = fib(n-2); } return x + y; } int main(int argc, char *argv[]){ int n = atoi(argv[1]); int result = fib(n); } Fibonacci numbers Stupid algorithm Good didactic example

Homegrown threading: pthreads int fib(int n){ if (n < 2) return n; else { int x = fib(n-1); int y = fib(n-2); } typedef struct { int input; int output; } thread_args; void *thread_func(void *ptr){ int i=((thread_args *)ptr)->input; ((thread_args *)ptr)->output = fib(i); return NULL; } int main(int argc; char *argv[]){ pthread_t thread; thread_args args; int status, results, thread_res; int n = atoi(argv[1]); if (n < 30) result = fib(n); else { args.input = n-1; status = pthread_create( &thread, NULL, thread_func, (void*)&args); result = fib(n-2); pthread_join(thread, NULL); result += args.output; }

Consequences of pthreads Application performance Software Reliability Development time Desirable properties: Scalable up and down -Code is fixed to two threads Do not introduce new bugs with parallelism -Code no longer modular Easy to write and maintain -50 year leap backwards!

Same example using OpenMP int fib(int n){ int x, y; if (n < 2) return n; else { #pragma omp task shared(x) x = fib(n-1); #pragma omp task shared(y) y = fib(n-2); #pragma omp taskwait } return x + y; } int main(int argc; char *argv[]){ int n = atoi(argv[1]); if (n < 30) result = fib(n); else { #pragma omp parallel #pragma omp single result = fib(n); }

The Shared Memory Model Thread Shared Memory

Adding Caches: More Concurrency Shared Memory Thread $ $ $ $ $ $ $ $ $

Automatic Replication of Data Shared Memory Thread $ $ $ Read A … Read A A:... Read A … B: Read B … Read A

The Cache Coherent Memory System Shared Memory Thread $ $ $ Read A … A:... Read A … Write A B: Read B … Read A INV

The Cache Coherent Memory System Shared Memory Thread $ $ $ Read A … A:... Read A … Write A B: Read B … Read A

The Cache Coherent Memory System Shared Memory Thread $ $ $ Read A … Read A A:... Read A … Write A B: Read B … Read A

Shared Memory Snoop-based Protocol Implementation A-tagSData CPU access BUS snoop CPU BUS Cache Bus transaction

Bus Transactions BUSrts: ReadtoShare (reading the data with the intention to read it) BUSrtw, ReadToWrite (reading the data with the intention to modify it) BUSwb: Writing data back to memory BUSinv: Invalidating other caches copies CPU-Initiated Events CPUwrite: Caused by a store miss CPUread Caused by a loadmiss CPUrepl: Caused by a replacement MOSI Protocol, 1(2)

MOSI Protocol 2 (2)

Directory-based snooping Thread $ $ $ Read A … A:... Read A … Write A B: Read B … Read A INV Who has a copy Who has a copy INV

Sammanfattning Det finns en mängd smarta sätt att spara effekt och energi i dagens datorer -Arkitekturtrick (som t.ex. de som nämnts i denna föreläsning) -Clock and power gating: Stäng av delar av chipet som inte används -DVFS – Dynamic Voltage and Frequency Scaling: sänk klockfrekvensen (och matningsspänningen) om det inte behövs för prestanda Parallellism är ofta en förutsättning för alla dessa tekniker Inklusive multicore

Research orientation Why, Analysis, Evaluation Basics IS1{2/5}00 ID1217 IS2202IS2205IS2200IS2205 Anknytande kurser IS1200/1500: Datorteknik och komponenter ID1217: Programmering med parallella processer (p3) IL2206 Inbyggda system (p1) ID2202: Kompilatorer och exekveringsmiljöer (p2) IS2202 Datorsystemarkitektur (p4 Kista) IS2200: Parallella datorsystem (p2 Campus Vv) IL2212 Programvara för inbyggda system (p3) IS2205: Individuella studier i datorsystem Examensarbete (kand & master)