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

Relevanta dokument
Datorsystemteknik DVGA03 Föreläsning 8

DatorsystemteknikDAVA14 Föreläsning 9

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

Grundläggande datavetenskap, 4p

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.

Digitalteknik och Datorarkitektur 5hp

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

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

TSEA28 Datorteknik Y (och U)

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

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

4. Pipelining. 4. Pipelining

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

Närliggande allokering Datorteknik

Föreläsningsanteckningar 4. Pipelining

Lösningar till tentamen i EIT070 Datorteknik

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

TSEA28 Datorteknik Y (och U)

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Digitala System: Datorteknik ERIK LARSSON

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

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

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

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

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)

Pipelining i Intel 80486

Pipelining i Intel Pentium II

Lösningar till tentamen i EIT070 Datorteknik

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik och Datorarkitektur

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

Datorsystemteknik DAV A14 Föreläsning 1

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

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

Stack och subrutiner Programmeringskonventionen

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

LV6 LV7. Aktivera Kursens mål:

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

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

Läsminne Read Only Memory ROM

Processor pipelining genom historien (Intel i9-intel i7)

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

Institutionen för elektro- och informationsteknologi, LTH

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

Styrenheten styrsignalsekvenser programflödeskontroll

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Datorsystemteknik Föreläsning 7DAVA14

Datorarkitekturer med operativsystem ERIK LARSSON

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

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

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

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:

Föreläsningsanteckningar 2. Mikroprogrammering I

Tentamen den 18 mars svar Datorteknik, EIT070

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

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

Lösningar till tentamen i EIT070 Datorteknik

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

Tentamen Datorteknik D del 2, TSEA49

3. Mikroprogrammering II

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

Programexempel för FLEX

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

F4: Assemblerprogrammering

Tentamen i EIT070 Datorteknik

Polling (cyklisk avfrågning) Avbrott

Exempeltentamen Datorteknik, EIT070,

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

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

TSEA28 Datorteknik Y (och U)

Digital- och datorteknik

Digital- och datorteknik

ALU:n ska anslutas hur då?

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

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

LABORATION. Datorteknik Y

IT för personligt arbete F5

Tentamen den 17 mars 2016 Datorteknik, EIT070

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Digital- och datorteknik

Tentamen i Digitalteknik och Datorarkitektur DV1 5p

Digital- och datorteknik

TSEA28 Datorteknik Y (och U)

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

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

Tenta i Digitalteknik

Föreläsningsanteckningar 5. Cacheminnen

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

CE_O1. Nios II. Enkla assembler-instruktioner.

Omtentamen i CDT204 - Datorarkitektur

Transkript:

Datorteknik Föreläsning 6 Processorns uppbyggnad, pipelining Mål Att du ska känna till hur processorn byggs upp Att du ska kunna de viktigaste byggstenarna i processorn Att du ska känna till begreppet dataväg Att du ska förstå idén bakom pipelining Att du ska veta varför hoppluckan finns 1

Innehåll Repetition av instruktionsformat Vilka byggblock består processorn av? Hur kopplas dessa byggblock samman? - Datavägar. Vad är pipelining? Hur fungerar pipeling i MIPS? Vilka problem kan man råka ut för med pipelining? Varför finns hoppluckan i MIPS? Instruktionsformat i MIPS Det finns tre huvudsakligen olika typer av instruktioner som representeras med olika bitmönster I-typ (immediate) instruktioner, tex add t0,t1,k R-typ (register) instruktioner, tex add t0,t1,t2 J-typ (jump) instruktioner, tex j label el jr ra Varje instruktion är ar lång 2

Instruktioner som bitmönster i minnet Alla instruktioner är ar stora, 4 byte De kodas binärt på något av tre följande sätt: I-typ op (6) rs (5) rt (5) offset (16) R-typ op (6) rs (5) rt (5) rd (5) sa (5) funk (6) J-typ op (6) hoppadress (26) Exempel på instruktionstyper I-typ: addi, ori, beq, lw, sw R-typ: add, or, sub, and, sll, srl J-typ: j, jal, jr 3

Vad händer med instruktionerna i CPUn? I processorn avkodas instruktionernas bitmönster med logik Olika delar av instruktionen utför olika uppgifter Vad gör processorn? Hämta instruktionen Avkoda instruktionen Hämta instruktionens operander: Antingen i register eller direkt ur instruktionen (om I-typ) Utföra instruktionen: Addera, jämföra, hoppa Skriva resultatet till destinationen: register (add, sub, ) minne (lw, sw) programräknaren (hoppinstruktioner) 4

Instruktionshämtning +4 Adderare - PC innehåller adressen till nästa instruktion. - PC stegas upp med 4 varje gång (normalt) PC Adress Instruktionsminne Instruktion Klocka Aritmetisk-logisk enhet In 1 In 2 Ut Styrning Med styrsignalerna kan funktionen hos ALU:n påverkas. Exempel: Styrsignal Funktion 000 and 001 or 010 add 110 sub 111 slt 5

Registerbanken läs reg. 1 nr läs reg. 2 nr skriv reg. nr skriv data läs data 1 läs data 2 Registernummer: 5 bit Registren är organiserade som 32 parallella D-vippor per register skriv styrn. Dataminnet adress data in Dataminne data ut skrivstyrning Skrivstyrningen väljer om data läses från eller skrivs till minnet 6

Datavägar Processorn byggs upp genom att definiera 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 I N S T R U K T I O N Läs reg 1 Läs reg 2 Skriv reg skriv data läs data 1 In 1 läs data 2 In 2 skriv styrn. Styrlogik ALU Ut Styrning 7

Datavägar addi, t0, t1, K I N S T R U K T I O N Läs reg 1 Skriv reg skriv data K(16bit) skriv styrn. läs data 1 In 1 In 2 teckenförl. ALU Ut Styrning Styrlogik Datavägar lw t0, K(t1) I N S T R U K T I O N Läs reg 1 Skriv reg skriv data K(16bit) skriv styrn. läs data 1 In 1 In 2 teckenförl. ALU adr Styrning Dataminne data ut Styrlogik 8

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 Listigare implementering av processorn Strukturen 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! 9

Pipelining Ex: Känt kinesiskt kök i Lund Många rätter ska lagas till, de flesta är olika Alla ska gå igenom följande moment: Strimling av köttet Marinering Wokning Uppläggning på fat Servering Pipelining Hovmästaren väljer mellan två strategier: - Strategi 1: Varje rätt lagas färdigt och serveras innan nästa påbörjas. - Strategi 2: När rätt 1 är strimlad, läggs den i marinad och genast börjar man strimla rätt 2. Så fort ett moment är klart flyttas det till nästa position. Det moment som tar längst tid kommer att avgöra hur ofta man kan skifta in en ny rätt 10

Pipelining Ex: 100 rätter ska lagas under en kväll. - Strimling tar 2 min, marinering 3 min, wokning 2 min, uppläggning 2 min, servering 1 min - Strategi 1: Total tid 1000 min (16 h 40 min) - Strategi 2: Tid mellan skift - 3min. Totalt 3*100+3*4 min = 312 min. (Sista rätten tar 4 extra tidsintervall innan den är färdig!) Pipelining i MIPS Hur kan principen utnyttjas för MIPS? Fem olika klara steg i exekveringen: - IF, Instruction fetch ID, Instruction decode - avkodning och registerläsning EXE, Beräkning av resultat el adress i ALU MEM, Minnesaccess WB, skriv resultatet i register 11

Pipelining i MIPS Exekveringsstrukturen delas upp enligt dessa delar Vi skapar oss ett eget kinesiskt kök med IF, ID, EXE, MEM och WB För att separera mellanresultaten inför vi sk pipelineregister mellan de olika stegen MIPS Five-Stage Pipeline 12

Time (in clock cycles) Pipeline Program execution order (in instructions) CC 1 CC 2 CC 3 CC 4 CC 5 CC 6 lw $10, 0($1) IF ID EXE MEM WB sub $11, $2, $3 IF ID EXE MEM WB Pipeline Registers 13

Hoppinstruktioner Om vi gör ett hopp kommer instruktioner i pipelinen efter hoppinstruktionen inte att köras Vi måste då tömma pipelinen Hoppinstruktioner och pipeline Prediktion: hoppet kommer inte att göras. Om hoppet ändå görs, tömmer vi pipelinen. Vi vet om hoppet kommer att göras när hoppinstruktionen når EXEsteget För att inte förlora för mycket, kör vi färdigt nästa instruktion också (den är ju redan i ID-steget). Därför finns HOPPLUCKAN! 14

Sammanfattning 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 MIPS? Varför finns hoppluckan? 15