Datorarkitekturer med operativsystem ERIK LARSSON
Personal Examinator: Erik Larsson 0462224654 Erik.Larsson@eit.lth.se (använd ämne/subject: EDT621) Dimitar Nikolov Dimitar.Nikolov@eit.lth.se
Kursmoment Laborationer Rapport Tentamen
Laborationer Laboration 1: Assemblerprogrammering (vecka 46) Lektion 4 november, laboration: 11 och 12 november Laboration 2: Cacheminne (vecka 47) Lektion 11 november, laboration: 17 och 18 november Laboration 3: Pipelining (vecka 48) Lektion 18 november, laboration 24 och 26 november Uppsamlingstillfälle (vecka 49) 1 december
Laborationer: Förberedelser För att påbörja laboration, måste elektronisk dugga vara godkänd. Dugga för respektive laboration hittas på hemsidan (Elektroniska frågor) Duggan öppnas måndag klockan 8:00 i vecka 46, 47 och 48. Varje dugga är öppen i 24 timmar Ett antal frågor ska besvaras Om alla rätt, duggan godkänd. Om inte alla rätt, gör om duggan (OBS, 30 minuter senare) Finns en provdugga som är öppen nu.
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 Skriv rapport Bedöm rapporter Presentera rapport Opponera på rapport
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.
Välja ämne Förslag Ett protokoll för att hålla cacheminnet konsistent En schemaläggnings metod för multi-core Cacheminne i processor x Pipelines i processor y Inte ok Cacheminnen //För allmänt (täcks av kursen) Pipelines //För allmänt (täcks av kursen) Processor z //För stort område
Rapport: Presentationer Presentation (10 minuter) Fokusera på det viktiga Projektor kommer finnas i sal
Rapport: Opposition 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.
Rapport Godkänt: Skriv rapport Bedöm 5 rapporter Närvar vid två presentationstillfällen Presentera egen rapport Opponera på en rapport Skicka uppdaterad slutrapport
Viktiga datum 15 november: välj ämne Två tillfällen med bibliotekstöd 8 december klockan 12:00: skicka rapport till opponent, de som ska läsa och Erik Namnge rapport: förnamn.efternamn.pdf 14:e december klockan 12:00: skicka kommentarer Namnge dina kommentarer: förnamn.efternamn.pdf 16:e och 17:e december: presentationer 21:a december: skicka in slutrapport
Om du får förhinder? Reservtillfälle den 21 december. 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 Reservtillfälle den 21 december. 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.
Tentamen Skriftlig tentamen. Inga hjälpmedel Första tentamen: 2015-01-14 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
Litteratur Rekommenderad kursbok» Hennessy & Patterson: Computer Architecture, A Quantative Approach, Kaufmann, 2006, ISBN 978-0-12-370490-0. Övrig litteratur Artiklar:» Microprocessors» Microprocessors II» Reduced Instruction Set Computers» Blocked algorithms for caches (till lab 2) Föreläsningsanteckningar
Upplägg Föreläsningar: Syfte: Ge överblick. Underlätta läsning av kursbok. Förberedelser: Inga. Kan skriva ut PDF för att underlätta anteckningar Lektioner: Syfte: Introducerar laborationer Förberedelser: Ha läst kursboken rörande laboration. Laborationer: Syfte: Ge praktisk kunskap och förståelse Förberedelser: Ha gjort dugga och studerat laborationsmaterial
Datorarkitekturer med operativsystem ERIK LARSSON
Datorer
Marknad för processorer
Trender
IC tillverkning
IC 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 Adress Data 0 1111 0000 1 1010 0101 2 1100 0011 OP 3 0011 0011 UT ALU IN 1 IN 2 4 1111 1111 5 0000 1111 6 1111 0000 7 1010 1010 Status Kontrollenhet
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)
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
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