Hantering av hazards i multi-pipelines

Relevanta dokument
Hantering av hazards i pipelines

Digitala System: Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Närliggande allokering Datorteknik

TSEA28 Datorteknik Y (och U)

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

TSEA28 Datorteknik Y (och U)

Digitala System: Datorteknik ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

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

Spekulativ exekvering i CPU pipelining

Exempeltentamen Datorteknik, EIT070,

Pipelining i Intel 80486

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

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

Pipelining i Intel Pentium II

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

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.

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

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

Datorsystemteknik DVGA03 Föreläsning 8

Styrenheten styrsignalsekvenser programflödeskontroll

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

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

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

DEC Alpha instruktions Arkitektur

Arm Cortex-A8 Pipeline

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

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

Parallellism i CDC 7600, pipelinens ursprung

Cacheminne i en Intel Core 2 Duo-processor

MESI i Intel Core 2 Duo

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Datorarkitekturer med operativsystem ERIK LARSSON

Hyper-Threading i Intelprocessorer

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

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

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

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

DatorsystemteknikDAVA14 Föreläsning 9

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

Institutionen för datavetenskap 2014/15

Improved-MOESI Cache koherens Protokoll

4. Pipelining. 4. Pipelining

Cache-koherens protokoll MESI och MOSI

Datorarkitekturer med operativsystem ERIK LARSSON

Parallellism i NVIDIAs Fermi GPU

IT för personligt arbete F5

Lösningar till tentamen i EIT070 Datorteknik

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

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

TDDC77 Objektorienterad Programmering

Jämförelse av skrivtekniker till cacheminne

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

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

Grundläggande datavetenskap, 4p

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

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

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

Föreläsningsanteckningar 2. Mikroprogrammering I

F4: Assemblerprogrammering

Centralenheten: ALU, dataväg och minne

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

Tentamen den 17 mars 2016 Datorteknik, EIT070

Minnet från processorns sida Datorteknik

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

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

Datorteknik ERIK LARSSON

Rapport (1,5 HP) Lunds Universitet HT15

Föreläsningsanteckningar 4. Pipelining

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

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

Datorteknik ERIK LARSSON

Föreläsningsanteckningar 5. Cacheminnen

Cacheminne i en AMD Opteron Processor

Mikroprogrammering I

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Processor pipelining genom historien (Intel i9-intel i7)

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

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

Datorsystem. Tentamen

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

Datorarkitekturer med Operativsystem

Digital- och datorteknik

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

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Anujan Balasingam IDA14 NAND flashminnen

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

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

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

Föreläsningsanteckningar 3. Mikroprogrammering II

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Öka prestanda i Shared-Cache multi-core processorer

Introduktion till Git

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Cache coherence hos multicoreprocessorer

Datorsystem. Tentamen

Transkript:

Campus Helsingborg IDA2 Hantering av hazards i multi-pipelines Av: Mounir Salam

Abstract Det finns tre olika problem som kan uppstå när vi kör en pipeline med flera steg. De tre problemen även så kallade hazards är data, strukturell och kontroll hazard. Hantering av konflikterna som uppstår i hazarden är olika beroende vilken vi tallar om. i denna rapport kommer du att få en lite mer förståelse av vad de olika hazarden gör och hur du kan göra för att lösa dem. Introduktion Det viktiga med pipeline är att vi kan köra flera instruktioner samtidigt men det kan uppstå ett par problem på vägen så kallade hazards. Hazards är det största problemet i en pipeline och om det inte finns en lösning för at ta bort hazarden skulle vi inte kunna ha en pipeline. I rapporten kommer vi att gå igenom de olika hazardsen, vilka problem de medför och hur vi hanterar dem på ett enkelt sätt med hjälp av till exempel stall. Hazards och konflikt hantering av hazards Att skriva en kod och exekvera den är ett lätt jobb för användaren men när det uppstår ett fel i koden kan det vara lite mer problematiskt för användaren för att det kan uppstå någonting som kallas för en hazard inom pipelinenen. Det finns tre olika sorters hazards och vi ska gå igenom här näst. Kontroll hazard: Under exekvering av ett program så kan vi ibland behöva använda oss av hopp även så kallad branch för att exekvera en annan instruktion som ligger längre fram än där hoppet finns. Men det är där problemet uppkommer för att hoppet vill exekvera till exempel instruktion 69 medan nästa instruktion efter är instruktion 39 det är vad vi kallar för en kontroll hazard. o Det finns tre sätt att lösa kontroll hazards på vilka är pipeline bubbling, delayed branching och branch prediction. när en konflikt mellan instruktioner uppstår kan man lösa de genom att lägga en stall framför instruktionen tills den kan köra som normalt igen. o Den första vi kommer att snacka om är pipeline bubbling. Pipeline bubbling är et annat namn för stall och används inte bara för kontroll hazard men för alla de andra hazarden. o Den andra vi kommer att prata lite mer om är delayed branching. Istället för att göra stalls vill man att processorn ska göra någonting och det är tanken med delayd branching. Det finns två alternativ i en kontroll hazard när det

gäller villkorliga hopp, det ena är om hoppet görs eller om hoppet inte görs. Om vi exekverar koden och Z-flaggan blir triggad då kommer hoppet att göras på grund av att det är en BEZ och det leder till att vi kommer att få en penalty på tre cykler och om hoppet inte görs kommer vi att få en penalty på två cykler. Skillnaden med delayed branching är att istället för att göra instruktionen direkt efter hoppet så låter man processorn göra något emellan åt. Då kommer vi att få en penalty på två cykler istället för tre vid ett villkorligt hopp och en cykel vid ett ovillkorligt hopp. o Den tredje vi kommer att prata mer om är branch prediction. Istället så gör vi ett antagande på att nästa instruktion som exekveras är inget hopp, om vi gissat rätt och inget hopp görs då får vi bara en penalty på en cykel om vi gissat fel så kommer hoppet att göras och vi får en penalty på två cykler. Samma sak händer om vi gör ett antagande på om ett hopp görs gissar vi rätt får vi en penalty på en cykel och om vi gissat fel får vi en penalty på två cykler då kommer hoppet att inte göras. Strukturell hazard: Problemet som uppstår vid strukturell hazard är när två instruktioner vill använda minnet samtidigt vilket leder till ett stop. Om vi sätter till en stall till instruktionen där problemet uppstår får vi en penalty på en cykel. o Det finns ett enkelt sätt att lösa problemet med strukturell hazard och det är genom att istället för att ha ett minne för alla instruktioner så kan vi dela upp cacheminnena till en som tar hand om data och en som tar hand om instruktioner Data Hazard: Data hazard uppstår när två instruktioner sker samtidigt och den andra instruktionen ska använda variabeln i den första instruktionen som inte är klar än kommer det att ske ett problem i pipelinen. Det finns sätt där ett data hazard kan uppkomma och det skriver Muhammad, Z, Saadia, A, Rabia, R, Nabila, R (2016) i artikeln How Data Hazards can be removed effectively om. De fyra sätten som Muhammad et al. (2016) skriver om är RAW, WAR, WAW och jag tänker förklara dem lite mer. o RAW står för Read After Write, detta sker när instruktion två är före än instruktion ett och instruktion två vill läsa in före än instruktion ett har skrivit klart. Det som kommer att hända är att instruktion två vill ha värdet av instruktion ett men instruktion ett har inte skrivits klart och det sker en data hazard. o Det som sker i WAR (Write After Read) är att instruktion två vill skriva destinationen till instruktion ett innan instruktion ett läser destinationen.

o WAW ( Write After Write) sker när instruktionen två vill skriva en operand innan instruktion ett skriver operanden. o De två sätten vi kommer att ta upp om hur man kan lösa problemet på data hazard är re-schedule och register renaming. o I data hazard vet vi att hazarden uppstår på grund av att instruktionerna vill ta ett värde innan den är klar. Detta går att fixa genom att använda rescheduling genom att till exempel ladda in alla värden innan man går vidare med instruktionerna som vi ser i den här bilden o I artikeln 'The design space of register renaming techniques' skriver Sima, D (2000) om hur en processor kan skriva till ett annat register i adress rymden så man inte kommer i kontakt med en hazard. Om en instruktion två ska läsa in värdet av instruktion ett men instruktion ett är inte klar kommer det att uppstå en hazard. Det som kommer att hända är att instruktionen kommer att temporärt ändras till exempelvis r33. Instruktionen register byter namn och då kommer resultatet att skrivas in i r33 istället för det föra registret. Enligt Sima, D (2000) måste referenserna till source registret omdirigeras till där det nya registret finns. Slutsats I denna rapport har vi visat hur man tar hand om konflikter i multi-pipeline inom de olika hazarden. Vi har märkt att pipeline bubbling är en allmän lösning inom alla typer av hazard och att olika typer av hazard har olika lösningar beroende på vad problemet är.

Referenser Muhammad Zeeshan, Saadia Anayat, Rabia and Nabila Rehman,, How Data Hazards can be removed effectively, International Journal of Scientific & Engineering Research, Volume 7, Issue 9, September-2016 Sima, D 2000, 'The design space of register renaming techniques', IEEE Micro, 20, 5, pp. 70-83, Inspec Bild: Erik Larssons föreläsning 2 http://www.eit.lth.se/fileadmin/eit/courses/eitf60/f%d6/f%d62.17.pdf