Datorsystemteknik DVGA03 Föreläsning 8

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

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

Grundläggande datavetenskap, 4p

TSEA28 Datorteknik Y (och U)

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

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

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

Digitalteknik och Datorarkitektur 5hp

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.

Närliggande allokering Datorteknik

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

4. Pipelining. 4. Pipelining

Datorsystemteknik DAV A14 Föreläsning 1

Föreläsningsanteckningar 4. Pipelining

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

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

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

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

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

Stack och subrutiner Programmeringskonventionen

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

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

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

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

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

Lösningar till tentamen i EIT070 Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Datorsystemteknik Föreläsning 7DAVA14

Processor pipelining genom historien (Intel i9-intel i7)

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

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

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

Tentamen den 18 mars svar Datorteknik, EIT070

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

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Datorsystemteknik DVGA03 Föreläsning 5

Lösningar till tentamen i EIT070 Datorteknik

Datorsystemteknik DVG A03 Föreläsning 3

LV6 LV7. Aktivera Kursens mål:

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

Polling (cyklisk avfrågning) Avbrott

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

Läsminne Read Only Memory ROM

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

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digitalteknik och Datorarkitektur

Hantering av hazards i pipelines

Styrenheten styrsignalsekvenser programflödeskontroll

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Datorsystemteknik för D/E

Föreläsningsanteckningar 2. Mikroprogrammering I

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:

Exempeltentamen Datorteknik, EIT070,

Datorteknik ERIK LARSSON

Mikroprogrammering I

Datorsystemteknik för D/E

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

Tentamen Datorteknik D del 2, TSEA49

3. Mikroprogrammering II

Tentamen i EIT070 Datorteknik

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Lösningar till tentamen i EIT070 Datorteknik

Tentamen den 17 mars 2016 Datorteknik, EIT070

Datorteknik ERIK LARSSON

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

ALU:n ska anslutas hur då?

Institutionen för elektro- och informationsteknologi, LTH

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

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

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

Datorteknik ERIK LARSSON

Digital- och datorteknik

Digital- och datorteknik

F4: Assemblerprogrammering

CE_O2. Nios II. Subrutiner med mera.

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

Föreläsningsanteckningar 5. Cacheminnen

Omtentamen i CDT204 - Datorarkitektur

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

LABORATION DATORTEKNIK Y,C,I DATORTEKNIK D

Datorsystemteknik för E/D

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Transkript:

Datorsystemteknik DVGA03 Föreläsning 8 Processorns uppbyggnad Pipelining Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH

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?

Repetition: Olika instruktioner 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 lång

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

Instruktionstyper i MIPS Aritmetiska instruktioner med tre operander i register (R-typ) Aritmetiska instruktioner med två operander i register och en konstant operand (I-typ) Load-instruktioner (I-typ) Store-instruktioner (I-typ) PC-relativa hoppinstruktioner (I-typ) Absoluta hoppinstruktioner (J-typ)

Vad händer med instruktionerna i CPUn? I processorn avkodas instruktionernas bitmönster med logik Olika delar av instruktionen utför olika uppgifter

Vad måste processorn göra? 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)

Byggblock för en processor - Instruktionshämtning +4 Adderare - PC innehåller adressen till nästa instruktion. - PC stegas upp med 4 varje gång (normalt) PC Adress Instruktions- minne Instruktion Klocka

Byggblock för en processor - ALU: Aritmetisk-logisk enhet In 1 In 2 Ut Styrning Med styrsignalerna kan funktionen hos ALU:n påverkas. Exempel: Styrsignal Funktion 000 add 001 sub 010 or 110 slt

Byggblock för en processor - Registren 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 organi- serade som 32 parallella D-vippor per register skriv styrn.

Dataminnet adress data in Data- minne data ut skrivstyrning Skrivstyrningen väljer om data läses från eller skrivs till minnet

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 (R-typ) I N S T R U K T I O N Läs reg 1 Läs reg 2 Skriv reg skriv data skriv styrn. läs data 1 läs data 2 In 1 In 2 ALU Ut Styrning Op & funk Styrlogik

Datavägar - addi t0,t1,k (I-typ) 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 Op Styrlogik

Datavägar - lw t0,k(t1) (I-typ) 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 Data- minne data ut Op Styrlogik

Datavägar - sw t0,k(t1) (I-typ) I N S T R U K T I O N Läs reg 1 Läs reg 2 skriv data K(16bit) skriv styrn. läs data 1 In 1 läs data 2 In 2 teckenförl. ALU adr Styrning Data- minne data ut Op Styrlogik

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

RISC-processorer En RISC-arkitektur kännetecknas framför allt av följande egenskaper: Instruktionerna är lätta att avkoda Det finns många register som inte har specialfunktioner Bara speciella load- och store-instruktioner får lov att referera till minnet

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!

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

Pipelining i MIPS Exekveringsstrukturen delas upp enligt dessa delar (IF, ID, EXE, MEM, WB) För att separera mellanresultaten inför vi sk pipelineregister mellan de olika stegen

Hur representeras pipeliningen grafiskt? Klockcykler Instruktionsordning CC1 CC2 CC3 CC4 CC5 CC6 lw $10, 0($1) IF ID EXE MEM WB sub $11, $2, $3 IF ID EXE MEM WB

Problem med pipelining Strukturella konflikter (löses genom att dela upp cacheminnet i två delar, en för instruktioner och en för data). Datakonflikter (löses med hjälp av bubblor och återkoppling).

Load-instruktioner Data som läses in med en load-instruktion finns inte tillgänglig förrän för andra instruktionen efter load-instruktionen.

Hoppinstruktioner Exempel: beq t0,t1,l2 add s0,s1,s2 sub s3,s4,s5 L2: and s6,s7,s8 # i EXE-steget # i ID-steget # i IF-steget

Hoppinstruktioner Om 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). 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 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 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 ID-steget). Därför finns HOPPLUCKAN!

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?