Digitala System: Datorteknik ERIK LARSSON

Relevanta dokument
Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

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

Exempeltentamen Datorteknik, EIT070,

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorsystemteknik DVGA03 Föreläsning 8

Hantering av hazards i multi-pipelines

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

Tentamen den 18 mars svar Datorteknik, EIT070

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.

Hantering av hazards i pipelines

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

TSEA28 Datorteknik Y (och U)

Grundläggande datavetenskap, 4p

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

TSEA28 Datorteknik Y (och U)

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

Datorteknik ERIK LARSSON

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

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

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

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

Datorteknik ERIK LARSSON

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

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Digitalteknik och Datorarkitektur 5hp

Uppgift 1: a) u= a c + a bc+ ab d +b cd

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

DatorsystemteknikDAVA14 Föreläsning 9

4. Pipelining. 4. Pipelining

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

Datorteknik ERIK LARSSON

Föreläsningsanteckningar 4. Pipelining

Datorteknik ERIK LARSSON

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

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

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

Minnet från processorns sida Datorteknik

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

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)

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

Processor pipelining genom historien (Intel i9-intel i7)

Parallellism i CDC 7600, pipelinens ursprung

Datorteknik ERIK LARSSON

Pipelining i Intel 80486

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

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

LV6 LV7. Aktivera Kursens mål:

Pipelining i Intel Pentium II

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

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

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

Föreläsningsanteckningar 2. Mikroprogrammering I

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

Omtentamen i CDT204 - Datorarkitektur

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

Tenta i Digitalteknik

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Läs igenom hela laboration 5 innan du börjar beskriva instruktionsavkodaren i VHDL!

Tentamen Datorteknik D del 2, TSEA49

Föreläsningsanteckningar 5. Cacheminnen

Arm Cortex-A8 Pipeline

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

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

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

Angående buffer. clk clear >=1 =9?

Datorsystem. Exempeltentamen

Läsminne Read Only Memory ROM

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

ALU:n ska anslutas hur då?

Programmerbar logik. Kapitel 4

IT för personligt arbete F5

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

MESI i Intel Core 2 Duo

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen. Datorteknik Y, TSEA28

Institutionen för datavetenskap 2014/15

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

Digital- och datorteknik

Digitalteknik och Datorarkitektur

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

Digital- och datorteknik

HF0010. Introduktionskurs i datateknik 1,5 hp

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

Föreläsningsanteckningar 3. Mikroprogrammering II

Jämförelse av skrivtekniker till cacheminne

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

Digital Aritmetik Unsigned Integers Signed Integers"

Programexempel för FLEX

Transkript:

Digitala System: Datorteknik ERIK LARSSON

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

Programexekvering (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 Instruction 00001000 0000101110001011 00001001 0001101110000011 00001010 0010100000011011 00001011 0001001110010011 Data Instruktioner Register CPU Kontrollenhet Aritmetisk Logisk Enhet (ALU)

Kontrollenhet Instruktion: ADD R1, R3 // R1 <- R1 + R3 Kontrollsteg: 1. PC out, MAR in, Read, Clear Y, Carry-in, Add, Z in 2. Z out, PC in 3. MBR out, IR in 4. R1 out, Y in 5. R3 out, Add, Z in 6. Z out, R1 in, End

Kontrollenhet ADD XOR ClearY System buss Z Z in ALU Y MBR MAR PC Z out Carry in Y out Y in MBR out MBR in MAR in PC out PC in R0 out R0 in RN out RN in IR in IR out Kontroll signaler MBR out R 0 R n IR Klocka Kontrollenhet Y in R0 RN out out MAR in Statussignaler Carry, overflow MAR out PC in ADD

Frekvens och klockperiod Clock (cycles) Data transfer and computation Update state Clock period Clock (cycles) Data transfer and computation Update state

Vilket är snabbast? Input D- vippa AND D- vippa OR D- vippa Output CLK Input D- vippa AND OR D- vippa Output CLK Clock (cycles) Data transfer and computation Update state

Vilket är snabbast? Input D- vippa AND D- vippa OR D- vippa Output CLK Input D- vippa AND OR D- vippa Output CLK

Budskap Hög klockfrekvens ger kortare klockperiod. Kort klockperiod gör att arbete kan behöva delas upp på flera klockperioder Hög klockfrekvens leder alltså inte nödvändigtvis till att arbetet utförs snabbare

Pipeline - analogi

Fetch-Execute Utan pipelining: Tid: 1 2 3 4 5 6 Instruktion 1 Instruktion 2 Instruktion 3 Fetch Execute Fetch Execute Fetch Execute Med pipelining: Tid: 1 2 3 4 Instruktion 1 Instruktion 2 Instruktion 3 Fetch Execute Fetch Execute Fetch Execute

Pipelining 6-stegs pipeline: Fetch instruction (FI) Decode instruction (DI) Calculate operand address (CO) Fetch operand (FO) Execute instruction (EI) Write operand () Tid: 1 2 3 4 5 6 7 8 Instruktion 1 Instruktion 2 Instruktion 3

Pipelining

Pipeline diagram

Pipeline diagram (vid en viss tidpunkt)

Pipeline kontroll Kontrollsignaler fås från instruktion

Kontrollenhet utan pipeline ADD XOR ClearY System buss Z Z in ALU Y MBR MAR PC Z out Carry in Y out Y in MBR out MBR in MAR in PC out PC in R0 out R0 in RN out RN in IR in IR out Kontroll signaler MBR out R 0 R n IR Klocka Kontrollenhet Y in R0 RN out out MAR in Statussignaler Carry, overflow MAR out PC in ADD

Kontrollenhet utan pipeline Instruktion: ADD R1, R3 // R1 <- R1 + R3 Kontrollsteg: 1. PC out, MAR in, Read, Clear Y, Carry-in, Add, Z in 2. Z out, PC in 3. MBR out, IR in 4. R1 out, Y in 5. R3 out, Add, Z in 6. Z out, R1 in, End

Strukturella hazards Resurs (minne, funktionell enhet) behövs av fler än en instruktion samtidigt Instruktionen ADD R4, X R4 <- R4 + X I steget FO hämtas operanden X från minnet. Minnen accepterar en läsning i taget Tid: 1 2 3 4 5 6 7 8 ADD R4, X Vill läsa i minnet!

Strukturella hazards Tid: 1 2 3 4 5 6 7 8 ADD R4, X ADD R1, R2 Stall Penalty: 1 cykel Men här då? Inget problem då instruktionern (ADD R1, R2) använder register

Strukturella hazards För att minska strukturella hazards öka antalet resurser. Ett klassiskt sätt att undvika hazards vid minnesaccess är att ha separat data och instruktions cache Primärminne Instruktioner och data Cacheminne Kopior av instruktioner Cacheminne Kopior av data Central processing unit (CPU) Register

Data hazards Antag två instruktioner, I1 och I2. Utan pipeline, så är I1 helt färdig innan I2 startar. Men, så är det inte med pipelines. Det kan bli så att I2 behöver resultat från I1 men I1 är inte klar I1: MUL R2, R3 R2 <- R2 * R3 I2: ADD R1, R2 R1 <- R1 + R2 MUL R2, R3 ADD R1, R2 Här görs * Här skrivs resultatet till R2 FO EI STALL FI DI CO FO CO EI FO EI Penalty: 2 cykler Här vill I2 ha resultat från *

Data hazards För att minska penalty kan forwarding/bypassing användas Resultat från ALUn kopplas direkt (forward/bypass) till ingångar. Man behöver alltså inte vänta på -steget MUX ALU MUX MUL R2, R3 ADD R1, R2 FI DI FI CO FO EI DI CO Stall FO EI

Data hazards Ändra ordning på instruktioner (re-schedule) för att undvika att använda resultat från load i direkt följande instruktion C kod: stall stall A=B+E; C=B+F; lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 13 cycles lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) 11 cycles

Kontroll hazards Kontroll hazards uppkommer på grund av hopp (branch) instruktioner Ovillkorliga hopp (unconditional branch) Adress Instruktion Kommentar.. 01011 Instruktion 29 //Instruktion 29, PC=PC+1 01100 BR 10101 // PC = 10101, PC=PC+1 01101 Instruktion 31 //Instruktion 31, PC=PC+1 10101: Instruktion 89 //Instruktion 89, PC=PC+1

Kontroll hazards 01011 Instruktion 29 01100 BR 10101 01101 Instruktion 31 10101: Instruktion 89 Efter FO är hoppadressen känd BR 10101 Instruktion 31 Här vet vi att det är en hoppinstruktion Penalty: 3 FI Stall Stall FI DI CO Instruktion 31 är alltså fel FO EI FI DI CO EI FO EI Här börjar vi med rätt instruktion (instruktion 89)

Kontroll hazards Villkorliga hopp (conditional branch) ADD R1, R2 BEZ Target instruktion 31 Target: instruktion 89 //R1 <- R1 + R2 //Branch if zero Alternativ: Hoppet görs (Branch taken) ADD R1, R2 BEZ Target instruktion 31 Penalty: 3 cykler Här vet vi att det är en hoppinstruktion FI DI CO FI Stall FO Stall Instruktion 31 kan vara fel Här görs additionen som påverkar Z-flaggan (om hoppet ska göras eller inte. EI Här är hoppadressen känd FI DI CO FO EI Kan hämta instruktion 89

Kontroll hazards Villkorliga hopp (conditional branch) ADD R1, R2 BEZ Target instruktion 31 Target: instruktion 89 //R1 <- R1 + R2 //Branch if zero Alternativ: Hoppet görs inte (Branch not taken) ADD R1, R2 BEZ Target instruktion 31 Penalty: 2 cykler Här vet vi att det är en hoppinstruktion FI DI CO FI Stall FO Stall Instruktion 31 kan vara rätt Här görs additionen som påverkar Z-flaggan (om hoppet ska göras eller inte. EI Här är hoppadressen känd DI CO FO EI Instruktion 31 är rätt..

Delayed branching Vid villkorliga hopp undersökte vi fallen: hopp görs och görs inte (se tidigare exempel) Alternativ: Hoppet görs (Branch taken) ADD R1, R2 BEZ Target instruktion 31 Penalty: 3 cykler Alternativ: Hoppet görs inte (Branch not taken) ADD R1, R2 BEZ Target instruktion 31 Penalty: 2 cykler FI DI CO FI Stall FO Stall FI DI CO FI Stall FO Stall EI FI DI CO FO EI EI DI CO FO EI

Delayed branching Den här instruktionen påverkar inte det som händer fram till hoppet Detta har programmeraren skrivit: MUL R3, R4 R3<-R3*R4 SUB #1, R2 R2<-R2-1 ADD R1, R2 R1<-R1+R2 BEZ TAR Branch om zero MOVE #10, R1 R1<-10 Detta är det som kompilatorn (assemblatorn) genererar: SUB #1, R2 R2<-R2-1 ADD R1, R2 R1<-R1+R2 BEZ TAR Branch om zero MUL R3, R4 R3<-R3*R4 MOVE #10, R1 R1<-10 Den här instruktionen exekveras bara om hoppet inte tas Den här instruktionen kommer exekveras oavsett om hoppet tas eller ej Den här instruktionen kommer exekveras bara om hoppet inte tas

Delayed branching Här görs additionen som påverkar Z-flaggan (om hoppet ska göras eller inte). Alternativ: Hoppet görs (Branch taken) ADD R1, R2 BEZ Target MUL R3, R4 Instruktion vid Target Penalty 2 cykler (innan 3) Alternativ: Hoppet görs inte (Branch not taken) ADD R1, R2 BEZ Target MUL R3, R4 MOVE #10, R1 Penalty: 1 cykler (innan 2) FI DI CO FO EI FI DI CO FO EI FI DI CO FI Stall FI DI CO FO EI FI FO Stall EI Här är hoppadressen känd FI DI CO FO EI Här är det klart om vi ska fortsätta med MOVE. DI CO FO EI

Sammanfattning Instruktioner exekveras som en sekvens av steg; t ex Fetch instruction (FI), Decode instruction (DI), Calculate operand address (CO), Fetch operand (FO), Execute instruction (EI) och Write operand () En pipeline består av N steg. Vid ett visst ögonblick kan N instruktioner vara aktiva. Om 6-steg används (FI, DI, CO, FO, EI, ) kan 6 instruktioner vara aktiva Att hålla piplinen full med instruktioner är svårt pga pipeline hazards. Strukturella hazards beror på resurskonflikter. Data hazards beror på detaberoende mellan instruktioner Control hazards beror på hoppinstruktioner