Datorarkitekturer med operativsystem ERIK LARSSON

Relevanta dokument
Datorarkitekturer med operativsystem ERIK LARSSON

Personal. Datorarkitekturer med operativsystem. Kursmoment. Laborationer

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)

Datorarkitekturer med operativsystem ERIK LARSSON

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

Pipelining i Intel 80486

Hantering av hazards i pipelines

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

Tentamen den 18 mars svar Datorteknik, EIT070

Parallellism i CDC 7600, pipelinens ursprung

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

Datorarkitekturer med operativsystem ERIK LARSSON

Grundläggande datavetenskap, 4p

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Cacheminne Intel Core i7

Digitala System: Datorteknik ERIK LARSSON

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Arm Cortex-A8 Pipeline

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorteknik ERIK LARSSON

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

Parallellism i NVIDIAs Fermi GPU

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Exempeltentamen Datorteknik, EIT070,

Minnet från processorns sida Datorteknik

Närliggande allokering Datorteknik

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

Öka prestanda i Shared-Cache multi-core processorer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

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

Beijer Electronics AB 2000, MA00336A,

Pipelining i Intel Pentium II

Tentamen den 17 mars 2016 Datorteknik, EIT070

What Is Hyper-Threading and How Does It Improve Performance

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Föreläsning 1: Intro till kursen och programmering

Processor pipelining genom historien (Intel i9-intel i7)

HF0010. Introduktionskurs i datateknik 1,5 hp

MESI i Intel Core 2 Duo

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Digitalteknik och Datorarkitektur 5hp

Datorsystemteknik för E/D

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Datorteknik ERIK LARSSON

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

SIMD i Intel s P5- baserade Pentium MMX

Datorteknik och datornät. Case Study Topics

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

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

Föreläsning 1: Intro till kursen och programmering

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

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

Datorsystemteknik DAV A14 Föreläsning 1

32 Bitar Blir 64 Sammanfattning

4 grundregler. Minneshantering. Problemet. Windows minkrav

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt)

Datorarkitekturer med operativsystem

Hyper-Threading i Intelprocessorer

Digitala System: Datorteknik ERIK LARSSON

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

IT för personligt arbete F5

Aktivitetsschemaläggning för flerkärninga processorer

Spekulativ exekvering i CPU pipelining

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

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

Digitala System: Datorteknik ERIK LARSSON

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

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

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

Cacheminne i en AMD Opteron Processor

Datorsystem. Tentamen

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen PC-teknik 5 p

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

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

Datorteknik och datornät

Anujan Balasingam IDA14 NAND flashminnen

Digital IC konstruktion

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Isolda Purchase - EDI

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Kursplan. FÖ3032 Redovisning och styrning av internationellt verksamma företag. 15 högskolepoäng, Avancerad nivå 1

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

DIGITALA PROJEKT Väderstation

Läsminne Read Only Memory ROM

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datorsystem. Tentamen

2.1 Installation of driver using Internet Installation of driver from disk... 3

Datorarkitekturer med operativsystem ERIK LARSSON

Digital IC konstruktion

Transkript:

Datorarkitekturer med operativsystem ERIK LARSSON

Personal Examinator: Erik Larsson 0462224654 Erik.Larsson@eit.lth.se (använd ämne/subject: EITF60) Christoffer Cederberg christoffer.ceder@gmail.com

Nyheter Gästföreläsningar (Ericsson och IKEA) Ny examination Betyg 3: Gör duggor Betyg 4 och 5: Gör duggor plus tentamen Ny laboration

Kursbeskrivning Syfte är att illustrera grundläggande konstruktionsprinciper hos ett datorsystem samt ge kunskap om operativsystems funktion och inre organisation. Mål kunna förklara begreppen pipelining, cacheminne, virtuellt minne och operativsystem kunna beskriva hur dessa begrepp samspelar i en modern datorarkitektur jämföra prestanda hos olika arkitekturer med avseende på instruktionsuppsättning, pipelining och minnesorganisation.

Litteratur Rekommenderad kursbok» Patterson & Hennessy: Computer Organization and Design, 5th Edition, The Hardware/Software Interface, Morgan Kaufmann, 2013, Print Book ISBN : 9780124077263 ebook ISBN :978012407886. Övrig litteratur Artiklar:» Microprocessors» Microprocessors II» Reduced Instruction Set Computers» Blocked algorithms for caches Föreläsningsanteckningar

Kursprogram - kursmoment Kursen består av föreläsningar, övningar, laborationer och rapportskrivning. Kursen svarar mot 7.5 hp, vilket motsvarar 200 timmar arbete. Kursmoment Laboration (2hp, vilket motsvarar 53 timmar av arbete) Rapport (1.5hp, vilket motsvarar 40 timmar av arbete) Duggor (elektroniska frågor) och tentamen (4hp, vilket motsvarar 107 timmar av arbete)

Kursprogram - slutbetyg För att få slutbetyg 3 krävs godkänt på: Laboration Rapport Duggor För att få slutbetyg 4 och 5, krävs allt för slutbetyg 3 och möjlighet att få högre betyg genom att göra tentamen. OBS. För att få betyg 3 behöver du inte skriva tentamen Övergångsregler för de som är kursregistrerade 2016 eller tidigare se kurshemsidan

Duggor Godkända duggor ger betyg 3 Tid för duggor: Dugga 1: 13:e november 19:e november Dugga 2: 20:e november 26:e november Dugga 3: 27:e november 3:e december Dugga 4: 4:e december 10:e december Vid varje försök: 2 timmar För godkänt: 80% rätt Duggorna finns på: http://elearning.eit.lth.se/moodle/my/

Duggor

Tentamen För att försöka få betyg 4 eller 5, duggor godkända plus: Skriftlig tentamen. Inga hjälpmedel Första tentamen: 2018-01-09 klockan 08:00-13:00 Maximalt 60 poäng Betygsgränser: Betyg 3: Minst 30 poäng Betyg 4: Minst 40 poäng Betyg 5: Minst 50 poäng Tentamen bara för de som vill ha betyg 4 eller 5

Laborationer Material: Finns på kurshemsida Uppgifter: Sätt samman en processor Godkänt: Demonstration + laborationsrapport

Laborationer: Regler För att göra laborationer måste du följa följande regler: Laborationsuppgifter ska lösas självständigt av varje laborationsgrupp Det är inte tillåtet att ge laborationsresultat eller laborationsrapport till en annan grupp Det är inte tillåtet att ta, kopiera eller på något annat sätt efterlikna en annan grupps resultat eller rapport Alla gruppmedlemmar måste ta aktiv del i alla delar av laborationen, det inkluderar att skriva programkod, testa och felsöka, genomföra experiment, skriva laborationsrapport och demonstrera (examination). Examinationen är alltid baserad på individuella resultat.

Rapport: Översikt Välja ämne Skriv rapport Presentera rapport Opponera på rapport

Rapport: Välja ämne Något med pipeline Förslag Konflikthantering i multi-pipelining En schemaläggnings metod för multi-pipeline Pipelines i processor y Inte ok Pipelines //För allmänt (täcks av kursen) Processor z //För stort område Tidigare års rapporter www.eit.lth.se (kurser/läsårsvis)

Rapport: Skriv EITA20 Datateknik, introduktionskurs (tidigare EDT632 Datateknik, översiktskurs). Detta är ingen kurs i att översätta, t ex från engelska till svenska

Rapport: Skriv Title: Väldigt kort sammanfattning av arbete. Abstract: Sammanfattning där ord från titel återanvänds. Introduction: Varför är problemet viktig? Related work Här visar man att man är insatt i området. Problem formulation - Definiera problemet, gärna på mätbart sätt. Proposed scheme- beskriv din lösning Experimental results beskriv vilka experiment du gjort. Conclusions vilka slutsatser drar du från arbetet. References väldigt viktigt att ha bra referenser som visar att du är insatt I området.

Analys av tid i IEEE P1687 Access Time Analysis for IEEE P1687 Farrokh Ghani Zadegan, Student Member, IEEE, Urban Ingelsson, Member, IEEE, Gunnar Carlsson, Member, IEEE, Erik Larsson, Senior Member, IEEE Återanvänder ord från titel och förklarare dem lite This paper..beskriver vad som avhandlas i artikeln Berättar om hur fantastik utvecklingen är. (med ord och termer från titel och sammanfattning) Abstract The IEEE P1687 (IJTAG) standard proposal aims at providing a standardized interface between the IEEE Standard 1149.1 test access port (TAP) and on-chip embedded test, debug and monitoring logic (instruments), such as scan-chains and temperature sensors. A key feature in P1687 is to include Segment Insertion Bits (SIBs) in the scan-path to allow flexibility both in designing the instrument access network and in scheduling the access to instruments. This paper presents algorithms to compute the overall access time (OAT) for a given P1687 network. The algorithms are based on analysis for flat and hierarchical network architectures, considering two access schedules, i.e. concurrent schedule and sequential schedule. In the analysis, two types of overhead are identified, i.e. network configuration data overhead and JTAG protocol overhead. The algorithms are implemented and employed in a parametric analysis and in experiments on realistic industrial designs. Index Terms Access time calculation, IEEE P1687 IJTAG, P1687 network architectures, instrument access schedules 1 INTRODUCTION THE complexity and reduced feature sizes in recent integrated circuit (IC) designs, necessitates the provision of on-chip infrastructures for test, debug and monitoring. The IEEE Standard 1149.1 (a.k.a. JTAG 1 ) [1], originally intended for board test, has proved useful in ad hoc access to such on-chip infrastructure, as discussed in [2]. However, since JTAG has not been originally meant for accessing such onchip test, debug and monitoring logic (collectively called instruments), there are some drawbacks associated with its use in this context [2]. Furthermore, due to the lack of a uniform method of using JTAG to access the on-chip instruments, electronic design automation (EDA) support in this context is limited. Therefore, there is a need to standardize how JTAG circuitry should connect to the embedded logic. The IEEE P1687 standard proposal [2], [3], [4], [5], [6] aims to address this need of standardization by describing a flexible data transport infrastructure (called network) to interface JTAG to the chip internal instruments. P1687 has therefore received the informal name of Internal JTAG (IJTAG). When ratified, P1687 will specify methods for access and control of embedded instruments [3]. Here, instrument refers to any device with a shift-register [7] that could be included in the JTAG scan-path. Examples of instruments include embedded sensors, internal scan-chains and IEEE standard 1500 wrapped cores [8]. Compared with similar efforts for interfacing the on-chip instruments with JTAG, e.g. the works presented in [9], [10], [11], [12], [13], P1687 is charac- F. Ghani Zadegan, U. Ingelsson and E. Larsson are with the Department of Computer and Information Science, Linköping University, Sweden, SE-581 83, Linköping, Sweden e-mail: ghanizadegan@ieee.org, urban.ingelsson@liu.se, erik.larsson@liu.se. G. Carlsson is with Ericsson AB, Sweden e-mail:gunnar.carlsson@ericsson.com. The preliminary version of this work has been presented in the Asian Test Symposium, Shanghai, 2010. 1. Joint Test Action Group Visar på terized by introduction of a single JTAG instruction called GateWay ENable (GWEN) and a hardware component called problem Segment Insertion Bit som (SIB). The use of SIBs makes it possible to create a multitude of different networks måste for the same set lösas of instruments, and to have the benefit of flexibility in scheduling the access to those instruments, as will be discussed in this paper. To setup the scan-path, P1687 proposes to transport SIB control data together with instrument data on a single wire (the JTAG scan-path), and this will affect overall access time (OAT). Since IEEE P1687 has recently been proposed, only a few studies have considered it [4], [9], [14], [15]. In particular, no study has investigated the impact of IEEE P1687 on overall access time (OAT). Therefore, this paper analyzes (Sections 4, 5, and 7) the impact of IEEE P1687 on OAT and identifies two types of overhead associated with accessing embedded instruments using P1687, namely network configuration data (i.e. SIB control data) overhead and JTAG protocol overhead. Furthermore, it is shown that OAT depends on several parameters including the placement of instruments and SIBs. To make it possible to calculate OAT for large P1687 networks, a first OAT calculation tool, IJTAGcalc, is presented (Section 6) for both concurrent and sequential schedules. IJTAGcalc is used in a parametric analysis (Section 7) to investigate how OAT and the identified overhead types react to changes in the design variables. IJTAGcalc is also used to calculate OAT for a number of P1687 networks based on ITC 02 benchmark set (Sections 8 and 9). Tyvärr finns en massa 2 BACKGROUND AND PRIOR WORK In this section, JTAG is briefly introduced and the drawbacks associated with its application in accessing problem. the on-chip instruments are explained. It should be noted that such application is beyond the intended scope of JTAG. Furthermore, it will be discussed how P1687 addresses these drawbacks.

Rapport: Presentationer Presentation (10 minuter) Fokusera på det viktiga Projektor kommer finnas i sal Tips: Gör en powerpoint presentation

Rapport: Opposition/bedömning Opposition (5 minuter) förbered oppositionen väl fokusera på det relevanta i rapporten ha alltid argument för dina synpunkter; både för positiva och negativa kommentarer. Om något är bra (eller dåligt), säg vad och VARFÖR det är bra (dåligt). ställ direkta och konkreta frågor. Opponentsituationen är en DIALOG mellan respondenten och opponenten.

Viktiga datum (1 av 2) Välj ämne senast 15 november meddela Erik Larsson via mail. Mailet ska innehålla: förnamn, efternamn och titel på rapport Delta vid ett tillfälle med bibliotekstöd (21/11 eller 28/11) Senast 4 december, ladda upp rapport (PDF) via Moodle. OBS! Rapporten ska namnges enligtföljande: förnamn.efternamn.pdf Senast 6 december klart vem som läser vad

Viktiga datum (2 av 2) Senast 12 december klockan 12:00, skicka kommentarer på de rapporter som bedömts till Erik Larsson. OBS! Filen med kommentarer ska namnges enligt följande: kom.förnamn.efternamn.pdf 13:e och 15:e december: presentationer Senast 10 januari,, ladda upp slutrapport (PDF) via Moodle där du inkluderar dokument som visar vilka ändringar som gjorts sedan oppositionen. Ta med kommentarer från opponent samt från de som bedömt din rapport.

Rapport: Godkänt närvaro vid en av bibliotekts genomgångar om skrivande rapporten är godkänd, vilken sker när: rapport är uppladad i Moodle, rapporten är presenterad, rapporten är uppdaterad efter opposition opponering är godkänd, vilket sker när: frågor och kommentarer för opponering är skickade opponeringen är genomförd bedömning är gjord av 5 stycken rapporter närvaro vid två presentationstillfällen

Om du får förhinder? Ett reservtillfälle den 19 december då du kan kompensera för ett missat moment (biblioteksnärvaro eller ett presentations tillfälle) Tänk på att meddela din respondent och opponent eftersom din närvaro påverkar dem. Om din respondent inte kommer till ett presentationstillfälle kan du välja att opponera på någon annan, t ex på någon av rapporterna du läst eller så väljer du att opponera vid reservtillfället. Om din opponent inte kommer till ett presentationstillfälle kan du försöka ordna en ny opponent, t ex någon som läst din rapport eller så väljer du att presentera vid reservtillfället.

Reservtillfälle Om du vill närvara vid reservtillfället så måste du anmäla detta till Erik Larsson senast klockan 12:00 den 18 december. Vid reservtillfället blir det lite speciellt. Alla läser alla rapporter till de som behöver opponent och respondent. Det gör att alla är beredda att vara opponent och respondent. Vem som blir opponent och respondent bestäms vid reservtillfället.

Blooms taxonomi - lärande Blooms taxonomi, lanserades av Benjamin Bloom, beskriver olika steg i lärandet: 1. Kunskap - Att kunna ta till sig fakta - memorera. 2. Förståelse - Att kunna förstå fakta som memorerats. 3. Tillämpning - Att kunna utföra något med de fakta och med hjälp av den kunskap som man fått. 4. Analys - Att kunna se samband mellan olika fakta. 5. Syntes - Att kunna dra egna slutsatser. 6. Utvärdering - Att kunna producera, planera och generera något nytt.

Datorarkitekturer med operativsystem ERIK LARSSON

Datorer

Marknad för processorer

Trender 2015: Sun SPARC M7-10 miljarder transistorer

IC tillverkning SPARC64 X+ (Athena+) 3 miljarder transistorer 600 mm 2 (2.5cmx2.5cm)

IC tillverkning Kostnad för att iordningställa tillverkning i en 45 nm process ligger kring $200 500 million. Att köpa en mask kan kosta mellan $1,000 to $100,000 och det krävs upp till 30 olika masker för en komplett tillverkning.

IC, die och wafer AMD Opteron X2: 300mm wafer, 117 chips, 90nm technology X4: 45nm technology

Processorn insida AMD Barcelona: 4 processor cores

Datorns delar Output device Network cable Input device Input device

Lagring av data och instruktioner Flyktiga (Volatile) minnen main memory Förlorar information (instruktioner och data) när strömmen stängs av Icke-flyktiga (Non-volatile) secondary memory Magnetic disk (hårddisk) Flash memory Optical disk (CDROM, DVD)

Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction

Dator (1) Hämta instruktion på 00001000 (där PC pekar) Fetch (2) Flytta instruktionen 0000101110001011 till CPU (3) Avkoda instruktionen: 00001 MOVE, 01110001 Adress, 011 Register 3 (4) Hämta data på adress: 01110001 Execute (5) Lagra datan i register 3 Primärminne Address Instruktion/data 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Dator Adress Data 0 1111 0000 OP 1 1010 0101 2 1100 0011 IN 1 3 0011 0011 4 1111 1111 5 0000 1111 6 1111 0000 Kontrollenhet UT ALU Status IN 2 7 1010 1010

Klockan En klocka styr hastigheten på digital hårdvara Klock (cykler) Dataöverföring och beräkningar Uppdatering Klockperiod Klockperiod: tid för en klockcykel (T) e.g., 250ps = 0.25ns = 250 10 12 s Klockfrekvens: cykler per sekund e.g., 4.0GHz = 4000MHz = 4.0 10 9 Hz

Datorprogram Högnivåspråk Assemblyspråk Maskinspråk

Datorer Desktop datorer Generella, olika program beroende på användare Viktigt med kostnad/prestanda avvägning Server computers Nätverksbaserade Hög prestanda, hög pålitlighet Små servers till mycket stora system Inbyggda system (Embedded computers) Datorn en del av systemet Ofta hårda krav på effektförbrukning, prestanda/ kostnad

Prestanda Vilket flygplan har bäst prestanda? Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC-8-50 Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 0 100 200 300 400 500 Passenger Capacity 0 2000 4000 6000 8000 10000 Cruising Range (miles) Boeing 777 Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC-8-50 Boeing 747 BAC/Sud Concorde Douglas DC- 8-50 0 500 1000 1500 Cruising Speed (mph) 0 100000 200000 300000 400000 Passengers x mph

Prestanda Algoritm Bestämmer vilka och hur många operationer som ska utföras Programmeringsspråk, kompilator, arkitektur Bestämmer hur många maskininstruktioner som ska utföras per operation Processor och minnessystem Bestämmer hur snabbt instruktioner exekveras I/O (Input/Output) och operativsystem Bestämmer hur snabbt I/O operationer ska exekveras

Mäta prestanda? Svarstid: Hur lång tid tar en task/jobb/program? Throughput Totalt arbete per tidsenhet» e.g., tasks/transactions/ per timma Hur påverkas svarstid och throughput av: Ersätta processorn med en snabbare? Lägga till fler processorer? Vi tittar på svarstider.

Mäta exekveringstid Förbrukad tid Total svarstid, inklusive alla aspekter» CPU tid, I/O, OS overhead, idle tid Ger systemets prestanda Processor tid Tid för ett givet jobb (task/program), exklusivt I/O tid, andra jobbs del

Exekveringstid Antal klockcykler för att exekvera en maskininstruktion Clocks per instruction (CPI) Tid för en klockcykel Tid för en klockperiod (T) Frekvens (f) är: f=1/t Antal maskininstruktioner Instruction count (IC) Exekveringstid i klockcykler = CPI x T x IC

Clocks per instruction (CPI) (1) Hämta instruktion på 00001000 (där PC pekar) Fetch (2) Flytta instruktionen 0000101110001011 till CPU (3) Avkoda instruktionen: 00001 MOVE, 01110001 Adress, 011 Register 3 (4) Hämta data på adress: 01110001 Execute (5) Lagra datan i register 3 Primärminne Address Instruktion/data 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Exekveringstid Exekveringstid i klockcykler = CPI x T x IC Prestanda kan ökas genom: Öka klockfrekvensen (f) (minska T) Minska antal instruktioner (IC) Minska antal klockcykler per instruktion (CPI)

Exekveringstid Prestanda bestäms av: Algoritmer: IC, delvis CPI Programmeringsspråk: IC, CPI Kompilator: IC, CPI Hårdvaran: IC, CPI, T Antal instruktioner (IC), Klockcykler per instruktion (CPI) Tid för en klockcykel (T)

Relativ prestanda Definition av prestanda = 1/exekveringstid X är n gånger snabbare än Y Performance X Performance Y = Execution time Y Execution time X = n Exempel: tid att exekvera ett program 10s på dator A, 15s på dator B Execution TimeB / Execution TimeA = 15s / 10s = 1.5 Så A är 1.5 gånger snabbare än B

Exekveringstid (exempel) Dator A: 2GHz klocka, 10s exekveringstid (CPU tid) för ett givet program Utveckla dator B: Sikta på 6s CPU tid för samma program Möjligt med högre klockfrekvens, men leder till 20% fler klockcykler (1.2 x klockcykler) Hur snabb måste dator B vara (CPUtid=CPI x T x IC)? Dator A: 10 = CPI x IC x 1/2G // ger: CPI x IC=10 x 2G Dator B: 6 = CPI x IC x 1.2 x 1/f // ger f = CPI x IC x 1.2 / 6 Klocka för B: f = 10 x 2G x 1.2 / 6 = 4GHz

Prestandajämförelse (exempel) Givet: Dator A: Frekvens = 4 GHz, CPI = 2.0 Dator B: Frekvens = 2 GHz, CPI = 1.2 A är snabbast Vilken är snabbast och med hur mycket? CPU tid A = CPI x IC x T = 2 x IC / 4G = IC x 500 ps CPU tid B = CPI x IC x T = 1.2 IC / 2G = IC x 600 ps Hur mycket snabbare? CPU tid B / CPU tid A = (1.2 x IC x 500 ps) / (2 x IC x 250 ps ) = 1.2 med så här mycket

Prestanda för singleprocessorer Begränsning: effekt, instruction-level parallelism,svarstider från minne

Multiprocessorer Multicore mikroprocessorer Mer än en processor (core) per chip (IC) Kräver parallel programmering Jämför med instruktionsnivå parallellism» Hårdvara exekverar flera instruktioner samtidigt» Göms för programmeraren Svårt» Effektiv programmering» Kunskap hos programmerare» Balansera jobb (tasks)» Optimera kommunikation och synkronisering

Amdahls lag Förbättra en aspekt (sida) av en dator och förvänta sig proportionell förbättring: T improved = T affected improvement factor + T unaffected Exempel: Antag ett program med 100s exekveringstid där 80s används för multiplikation. Hur mycket snabbare (n) måste multiplikationen göras för att systemet ska bli 5 gånger snabbare? En olösbar ekvation. 5X (100/5) 80 20 + = n 20 Tid för icke multiplikation

Amdahls lag Antag att ett program (algoritm) implementeras så att f är den del som måste exekveras sekventiellt. Resten (1-f) kan exekveras parallellt på p enheter. f 1-f T s f (1-f)/p T p Exekveringstid: T p =f*t s +(1-f)*T s /p Speedup: S=T s /T p =T s /(f*t s +(1-f)*T s /p)=1/(f+(1-f)/p) Efficiency: E=S/p=1/(f*(p-1)+1)

Amdahls lag Antag att ett program (algoritm) implementeras så att f är den del som måste exekveras sekventiellt. Resten (1-f) kan exekveras parallellt på p enheter. f=20% (f-1)/4=20% (f-1)/4=20% (f-1)/4=20% (f-1)/4=20% Exempel: om f=20% och man har 4 processorer, fås: Speedup S=1/(0.2+(1-0.2)/4)= 2.5 Efficiency E=1/(0.2*(4-1)+1)= 0.625 Även en liten bit sekventiell exekvering (1/f) leder till begränsningar på speedup och efficiency

Effektförbrukning Effektförbrukning i CMOS består av statisk del och en dynamisk del Den statiska delen förbrukas hela tiden och ökar med antalet transistorer Den dynamisk delen förbrukas när transistor går från 0->1 och från 1->0. Mer aktivitet ger högre förbrukning.

Dynamisk effektförbrukning Uttryck för dynamisk effektförbrukning: Power = Capacitive load Voltage 2 Frequency 30 Hur värden ändrats över tiden 5V 1V 1000

Effektförbrukning Intel 80386 förbrukade ~ 2 W 3.3 GHz Intel Core i7 förbrukar 130 W Värme måste bort från det 1.5 x 1.5 cm stora chipet

Minska effekt (power) Dynamic Voltage-Frequency Scaling Spänning och frekvens kan ändras Low power tillstånd för DRAM Överklockning, stäng av cores som inte används Balansera arbetet

Minska effektförbrukning Antag en ny CPU som har: 85% kapacitiv last järmfört med äldre CPU 15% lägre spänning och 15% lägre frekvens P 4 2 new Cold 0.85 (Vold 0.85) Fold 0.85 = = 0.85 = 2 P C V F old old old old 0.52 Effektväggen (power wall) Kan inte minska spänningen (voltage) mer Kan inte få bort mer värme Hur öka prestandan?

Sammanfattning Kostnad/prestanda blir bättre och bättre På grund av teknologiutveckling Hierarkier av abstraktionsnivåer I både hårdvara och programvara Gränssnittet mellan programvara och hårdvara är processorns instruktioner: Instruction set architecture (ISA) Exekveringstid ett bra mått på prestanda Effektförbrukning är en begränsande faktor Parallellism kan förbättra prestanda