DatorsystemteknikDAVA14 Föreläsning 9



Relevanta dokument
Datorsystemteknik DVGA03 Föreläsning 8

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

Digitala System: Datorteknik ERIK LARSSON

Digitalteknik och Datorarkitektur 5hp

Stack och subrutiner Programmeringskonventionen

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Närliggande allokering Datorteknik

Föreläsningsanteckningar 2. Mikroprogrammering I

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

Grundläggande datavetenskap, 4p

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

4. Pipelining. 4. Pipelining

Datorsystemteknik DAV A14 Föreläsning 1

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Pipelining i Intel Pentium II

Digitala System: Datorteknik ERIK LARSSON

Lösningar till valda övningsuppgifter i. Computer Organization & Design The Hardware / Software Interface (2nd ed.)

Tentamen Datorteknik D del 2, TSEA49

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Föreläsningsanteckningar 4. Pipelining

Mikroprogrammering I

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

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

Datorsystemteknik D. Lösningar till tentamen i kursen EDA330 14/1 2000

Pipelining i Intel 80486

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

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

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

Polling (cyklisk avfrågning) Avbrott

CE_O1. Nios II. Enkla assembler-instruktioner.

Datorsystemteknik Föreläsning 7DAVA14

Processor pipelining genom historien (Intel i9-intel i7)

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

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

CE_O2. Nios II. Subrutiner med mera.

Omtentamen i CDT204 - Datorarkitektur

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

3. Mikroprogrammering II

Föreläsningsanteckningar 3. Mikroprogrammering II

Datorsystemteknik DVGA03 Föreläsning 5

Extra lab. Nu på fredag kl 8-12 Frivillig Enbart hjälp med projektuppgiften Ingen examination

Digital- och datorteknik

Lösningar till tentamen i EIT070 Datorteknik

Exempeltentamen Datorteknik, EIT070,

Tentamen i EIT070 Datorteknik

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Lösningar till tentamen i EIT070 Datorteknik

Konstruera en dator mha grindar och programmera denna Använda en modern microcontroller

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

Datorsystemteknik för D/E

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

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)

Tentamen den 17 mars 2016 Datorteknik, EIT070

LV6 LV7. Aktivera Kursens mål:

Datorsystemteknik DVG A03 Föreläsning 3

ALU:n ska anslutas hur då?

Programexempel för FLEX

Villkorliga hopp: 9/26/2011. Dagens mål: Du ska kunna.. Villrorliga (Relativa) hopp - forts Arb s 140. LV5 Fo12. LV5 Fo12. Aktivera Kursens mål:

Styrenheten 9/17/2011. Styrenheten - forts Arb s 120. LV4 Fo10. Aktivera Kursens mål: Kap 7 Blå

F4: Assemblerprogrammering

Datorarkitekturer med operativsystem ERIK LARSSON

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

Föreläsningsanteckningar 5. Cacheminnen

Lösningar till tentamen i EIT070 Datorteknik

Datorsystemteknik för D/E

Datorarkitekturer med operativsystem ERIK LARSSON

Institutionen för datavetenskap 2014/15

Digitalteknik och Datorarkitektur

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

Tentamen den 18 mars svar Datorteknik, EIT070

Styrenheten styrsignalsekvenser programflödeskontroll

Datorteknik ERIK LARSSON

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

LABORATION. Datorteknik Y

Datorarkitekturer med operativsystem ERIK LARSSON

Tenta i Digitalteknik

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Datorarkitekturer med operativsystem ERIK LARSSON

Hantering av hazards i multi-pipelines

Läsminne Read Only Memory ROM

HF0010. Introduktionskurs i datateknik 1,5 hp

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Datorteknik ERIK LARSSON

Adressrum, programmerarens bild

Hantering av hazards i pipelines

Transkript:

DatorsystemteknikDAVA14 Föreläsning 9 epetition: MP likainstruktioneri Exempel på instruktionstyper Processorns uppbyggnad Pipelining törre delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec ovak -inst LH Det finns tre huvudsakligen olika typer av instruktioner som representeras med olika bitmönster - -typ (immediate) instruktioner, tex add t0,t1, - -typ (register) instruktioner, tex add t0,t1,t2 - J-typ (jump) instruktioner, tex j label el jr ra Varje instruktion är lång -typ: addi, ori, beq, lw, sw -typ: add, or, sub, and, sll, srl J-typ: j, jal, jr nnehåll nstruktionersombitmönsteri epetition av instruktionsformat t Vilka byggblock består processorn av? Hur kopplas dessa byggblock samman? - Datavägar. Vad är pipelining? Hur fungerar pipeling i MP? Vilka problem kan man råka ut för med pipelining? Varför finns hoppluckan i MP? Alla instruktioner är ar stora, 4 byte De kodas binärt på något av tre följande sätt: nstruktionstyperi MP -typ op (6) rs (5) rt (5) offset (16) -typ op (6) rs (5) rt (5) rd (5) sa (5) funk (6) J-typ op (6) hoppadress (26) register (-typ) Aritmetiska instruktioner med tre operander i Aritmetiska instruktioner med två operander i register och en konstant operand (-typ) Load-instruktioner (-typ) tore-instruktioner (-typ) PC-relativa hoppinstruktioner (-typ) Absoluta hoppinstruktioner (J-typ) 1

Vadhändermed CPn? instruktionernai Byggblockfören nstruktionshämtning processor - processorn avkodas instruktionernas bitmönster med logik lika delar av instruktionen utför olika uppgifter Vadmåsteprocessorngöra? Hämta instruktionen Avkoda instruktionen Hämta instruktionens operander: Antingen i register eller direkt ur instruktionen (om -typ) tföra instruktionen: Addera, jämföra, hoppa kriva resultatet till destinationen: - register (add, sub, ) - (lw, sw) - programräknaren (hoppinstruktioner) Byggblockfören Byggblockfören - PC innehåller adressen till egistren processor - +4 nästa instruktion. - PC stegas upp med 4 varje gång (normalt) Adderare nstruktion nstruktions- PC Adress locka egisternummer n 1 n 2 t AL: Aritmetisk-logiskenhet processor - läs reg. 1 nr läs reg. 2 nr skriv reg. nr läs data 1 Datat egisternummer: : 5 bit adress data in egistren är organi- serade som 32 parallella D-vippor per register data ut skrivstyrning krivstyrningen väljer om data läses från eller skrivs till t krivstyrningen Med styrsignalerna kan funktionen hos AL:n påverkas. Exempel: tyrsignal Funktion 000 add 001 sub 010 or 110 slt 2

Datavägar Processorn byggs upp genom att definiera Datavägar-addit0,t1, (-typ) datavägar, dvs hur data transporteras mellan olika enheter Vi ska titta på några olika instruktioner för att se hur datavägarna ser ut Datavägar-add t0,t1,t2 (-typ) Datavägar-lwt0,(t1) Läs (-typ) Läs reg 2 kriv reg p & funk läs data 1 n 1 n 2 tyrlogik AL t Datavägar-swt0,(t1) (-typ) kriv reg (16bit) p läs data 1 n 1 tyrlogik n 2 AL t kriv reg (16bit) p läs data 1 n 1 tyrlogik n 2 AL adr data ut Läs reg 2 (16bit) läs data 1 n 1 n 2 AL adr data ut Datavägar-observationer Byggblocken som används är de samma hela tiden De används i princip i samma ordning Byggblocken kopplas ihop på olika sätt för olika instruktioner - detta löser man med multiplexorer som styrs av styrlogiken p tyrlogik 3

C-processorer Pipelining i MP nstruktionerna är lätta att avkoda En C-arkitektur kännetecknas framför allt av följande egenskaper: Det finns många register som inte har specialfunktioner Bara speciella load- och store-instruktioner får lov att referera till t Hur kan principen utnyttjas för MP? Fem olika klara steg i exekveringen: - F, nstruction fetch - D, nstruction decode - avkodning och registerläsning - EXE, Beräkning av resultat el adress i AL - MEM, Minnesaccess - WB, skriv resultatet i register Hur representeras pipeliningen grafiskt? nstruktionsordning lw $10,0($1) lockcykler CC1 CC2 CC3 CC4 CC5 CC6 F D EXE MEM WB Listigare processorn implementeringav Pipelining i MP Problem med pipelining trukturen vi beskrivit kan användas för att köra en instruktion i taget Men - byggblocken är ju klart separerade: Vi skulle kunna använda olika byggblock till olika instruktioner samtidigt! Exekveringsstrukturen delas upp enligt dessa delar (F, D, EXE, MEM, WB) För att separera mellanresultaten inför vi sk pipelineregister mellan de olika stegen trukturella konflikter (löses genom att dela upp cachet i två delar, en för instruktioner och en för data). sub $11,$2,$3 F D EXE MEM WB Datakonflikter (löses med hjälp av bubblor och återkoppling). 4

Load-instruktioner Data som läses in med en load-instruktion Hoppinstruktioner finns inte tillgänglig förrän för andra instruktionen efter load-instruktionen. m vi gör ett hopp kommer instruktioner i pipelinen efter hoppinstruktionen inte att köras Vi måste då tömma pipelinen (två klockcykler går förlorade). ammanfattning Alternativt: en enkel jämförare direkt på registerbankens utgångar (en klockcykel går förlorad om inte något nyttigt kan göras direkt efter hoppinstruktionen). Hoppinstruktioner Exempel: Hoppinstruktioner och pipeline beq t0,t1,l2 # i EXE-steget add s0,s1,s2 # i D-steget sub s3,s4,s5 # i F-steget L2: and s6,s7,s8 Prediktion: hoppet kommer inte att göras. m hoppet ändå görs, tömmer vi pipelinen. Vi vet om hoppet kommer att göras när hoppinstruktionen når EXE-steget För att inte förlora för mycket, kör vi färdigt nästa instruktion också (den är ju redan i D-steget). Därför finns HPPLCA! Vad gör egentligen processorn med instruktionerna? Vilka byggblock består processorn av? Hur ser datavägarna ut för de olika instruktionerna? Vilken är idén bakom pipelining? Hur ser pipelining ut i MP? Varför finns hoppluckan? 5