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

Relevanta dokument
Pipelining i Intel 80486

Hantering av hazards i pipelines

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

Arm Cortex-A8 Pipeline

Jämförelse av skrivtekniker till cacheminne

Datorarkitekturer med Operativsystem

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

Pipelining i Intel Pentium II

Cacheminne i en Intel Core 2 Duo-processor

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

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

MESI i Intel Core 2 Duo

Grundläggande datavetenskap, 4p

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

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

Snapdragon 810: Cacheminnet

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 18 mars svar Datorteknik, EIT070

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

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Rapport (1,5 HP) Lunds Universitet HT15

Hantering av hazards i multi-pipelines

Minnet från processorns sida Datorteknik

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

Digitala System: Datorteknik ERIK LARSSON

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

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)

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

Datorarkitekturer med operativsystem ERIK LARSSON

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Cacheminne Intel Core i7

Öka prestanda i Shared-Cache multi-core processorer

DEC Alpha instruktions Arkitektur

TSEA28 Datorteknik Y (och U)

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

Cache-koherens protokoll MESI och MOSI

Datorsystem. Tentamen

Datorsystemteknik DVGA03 Föreläsning 8

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

Datorsystem. Tentamen

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Datorteknik ERIK LARSSON

Improved-MOESI Cache koherens Protokoll

Digitalteknik och Datorarkitektur 5hp

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

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

Digitalteknik och Datorarkitektur

Föreläsningsanteckningar 4. Pipelining

Datorteknik ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

Datorteknik ERIK LARSSON

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

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

Föreläsning 1: Intro till kursen och programmering

Datorteknik ERIK LARSSON

MESI-protokollets funktion i multiprocessorer

4 grundregler. Minneshantering. Problemet. Windows minkrav

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

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

Exempeltentamen Datorteknik, EIT070,

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

Processor pipelining genom historien (Intel i9-intel i7)

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.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Parallellism i NVIDIAs Fermi GPU

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Digitala System: Datorteknik ERIK LARSSON

Datorsystemteknik Föreläsning 7DAVA14

32 Bitar Blir 64 Sammanfattning

Hyper-Threading i Intelprocessorer

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

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

Datorarkitekturer med operativsystem ERIK LARSSON

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

SIMD i Intel s P5- baserade Pentium MMX

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

Föreläsning 1: Intro till kursen och programmering

Digitalteknik och Datorarkitektur 5hp

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Cache coherence hos multicoreprocessorer

Datorsystem. Exempeltentamen

TSEA28 Datorteknik Y (och U)

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

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

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

4. Pipelining. 4. Pipelining

Transkript:

Hannes Larsson - IDA 2, LTH Campus Helsingborg NEC V R 4300i Interlock-handling EDT621 Läsperiod 2, 2017

Innehållsförteckning s.2 - Förord s.2 - Inledning s.2 - NEC VR-4305 s.3 - Pipeline s.4 - Interlocks s.6 - Diskussion s.7 - Källförteckning 1

Förord Rapporten hänvisar ofta till två manualer publicerade av NEC (NEC, VR4305 User Manual, 2000) och MIPS (MIPS Technologies, R4300i, 1997). För effektivare läsning så kommer dessa endast hänvisas till NEC och MIPS om inte annan källa nämns. Inledning NEC V R 4305 är en RISC processor som, bland annat, användes i nintendo 64 konsolen. Den är skapad av MIPS technologies, och utnyttjar MIPS III instruction set architecture. Till skillnad från dess flera föregångare i R4000 familjen, som mest användes i workstations, så utvecklades V R 4305 för användning i konsumentinriktade produkter, dvs billigare slutprodukt utan att offra allt för mycket prestanda. Denna rapport ämnar ge en överblick över hur pipelinen ser ut i processorn, med mera fokus på interlock- och exceptionhandling då interlocks ej har diskuterats på föreläsningarna. Vidare diskuteras även relationen mellan interlocks och exceptions, samt vad som skiljer dem åt. NEC VR4305 Först kommer en överblick över hårdvaran ges. I sitt datablad över processorn skriver MIPS att denne använder sig av en förenad datapath för integer och floating point units. För att skilja dessa åt så har registerna delats upp: 32 register för integer units och 32 register för floating point units. Vidare förklarar MIPS att registernas bredd beror på vilket läge processorn är i, om den är i 32-bitarsläge så får registerna bredden 32 bitar, annars får de bredden 64 bitar. Utöver dess 64 general purpose registers så har processorn dessutom sex stycken register för speciella funktioner, bland annat program countern och multiply/division register. MIPS beskriver vidare att processorn kan ha upp till tre coprocessorer (MIPS, s. 2). Coprocessor noll hanterar det virtuella minnet och exception-handling, och coprocessor ett hanterar värden för floating point units, medans den sista sparas för framtida användning. Mer utveckling finns på MIPS s.9. Processorn har två sorters cacheminnen på chippet, Instruction cache på 16 KB och Data cache på 8 KB, samt ett yttre Write Back cache system (NEC User Manual, 2000) och TLB (translation lookaside buffer) cache (NEC, 2000, s. 32). 2

Pipeline VR4305 använder sig av en femstegs RISC-pipeline (Reduced Instruction Set Computer), vilken nyttjar sig av instruktionerna Instruction Cache Fetch, Register Fetch, Execution, Data cache fetch och Writeback. Detta låter processorn (i bästa fall) hantera fem instruktioner samtidigt. Figur 1, fem-stegs RISC pipeline Varje pipeline-steg tar en pcycle att utföra, vilket ger instruktioner en latency på fem pcycles (R4300i, 1997). MIPS påpekar ytterligare i sitt datablad att pcycles kan gå upp till tre gånger snabbare än frekvensen masterclock, beroende på status på DivMode 1:0 signaler. DivMode är input signaler som fastställer förhållandet mellan masterclock och pclock. NEC förklarar att pclock har två faser (fas ett och två) som representeras av klockan när den är hög respektive låg. De olika pipeline stegen har bestämda faser då deras operationer börjar utföras. DC, EX och RF har operationer som påbörjas i båda faser, medans ICs och WBs operationer endast påbörjas i en fas, två för IC och ett för WB. Vidare beskrivs att floating point unit instructions behandlas på samma sätt som multicycle integer instructions i pipelinen. Detaljerade exempel på hur olika instruktioner behandlas ges i källa två av NEC, sida 95-102. 3

Interlocks Som tidigare sagt så kan fem instruktioner i bästa fall behandlas samtidigt pga pipelinen, men ibland uppkommer fel som förhindrar smidig exekvering av instruktionerna. Beroende på vad för fel det är, så kan dessa klassas som antingen exception eller interlocks, och behandlas därmed olika. Generellt kan sägas att interlocks behandlas i hårdvaran och exceptions behandlas i mjukvaran, NEC s. 103. Processorn söker efter interlocks och exceptions i alla instruktioner varje pcycle, och då alla interlockoch exceptionförhållanden är kartlagda till specifika faser i pipelinestegen så kan felet lokaliseras snabbt. Figur 2, Correspondence of Pipeline Stage to Interlock and Exception Condition Exempelvis, när förhållandet för ICB (Instruction Cache Busy) är uppfyllt så vet processorn att det är instruktionen som för tillfället är i steg två av pipelinen (Register Fetch). NEC (s. 106) skriver att om ett interlock förhållande uppfylls så fördröjer denne hela pipelinen fram tills hårdvaran rättat till det, medans instruktioner som uppfyller exceptionförhållanden och alla följande instruktioner avbryts tills förhållandet har lösts av mjukvaran, startar om pipelinen och fyller den på nytt. 4

Figur 3, Instruction TLB Miss Interlock För att förtydliga hur en interlock kan hanteras så används ITM (Instruction TLB Miss) interlock som exempel. David Patterson och John Hennessy skriver att translation lookaside buffer (TLB) är ett cacheminne som används för att spara nyligen använda adresser, för att försöka undvika att hämta värden från primärminnet (David A. Patterson, John L. Hennessy, 2011, s. 502). Primärminnet är mycket långsammare än cacheminnen, särskilt i nintendo 64 s fall som fortfarande använde sig av kassetter som primärminne, vilket gör detta fel till ett av de viktigare att hantera prestandamässigt. TLB är i VR-4305 uppdelad i två delar, nämligen joint-tlb och instruction micro-tlb (NEC s.122 och MIPS s.15-17). JTLB kallas joint då den kan innehålla både data- och instruktionsadresser. ITLB används som ett bihang till JTLB som hjälp vid översättning av adresser. ITLB har ett minne på 4KB medans JTLB har upp till 16MB. NEC skriver att flaggan för ITM interlocken hissas när den virtuella adressen för nästa instruktion inte hittas i ITLB i register fetch steget av pipelinen (NEC, s.107). Pipeline kontrollern pausar då pipelinen och meddelar ITLB att lösa problemet. ITLB söker efter den virtuella adressen i JTLB och hämtar den därifrån om den finns. Om den finns så inför interlocken en fördröjning på tre pcycles, däremot om den virtuella adressen inte heller finns i JTLB så hämtar den datan från primärminnet, och initierar därefter om interlocken, vilket leder till ytterligare fördröjning i värsta fall. 5

Diskussion Även om skillnaden rent praktiskt mellan interlocks och exceptions är stor, så är principen densamma: om möjligt förebygga, annars åtgärda, fel som uppstår under programmets gång. Intressant om interlocking är dock att MIPS, som står för Microprocessors without Interlocked Pipeline Stages och som är en av de största producenterna av RISC processorer, trots sitt namn faktiskt använder sig av interlocking i sina processorer. Detta eftersom att Hennessy trodde det skulle öka längden på MIPS cycles med 10%, enligt Ichikawa Tadao (Ichikawa Tadao, Baiardi F, Lapriore L, 1992, s.139). Jari Nurmi skriver att MIPS ämnade från början att utveckla processorer som kunde utföra single-cycle instruktioner, eller med hjälp av mjukvara som kallas pipeline reorganizer automatiskt införa NOP operationer där detta inte gick, specifikt load operationer (Jari Nurmi, 2007, s.52). Jari Nurmi förklarar vidare att då multi-cycle instructions hade inkluderat ett mångfald NOP instruktioner och varit väldigt svåra att jobba med utan interlocks, så exkluderade MIPS användningen av dessa instruktioner vilket är anledningen till att MIPS grundkoncept av en processor saknade Floating Point Unit instructions och divide, och använde sig av delay-slots för att undvika Control-Hazards. Jag vet inte säkert exakt var och när det blev för omständigt att undvika interlocks för MIPS, men det kan ses att det redan var i full kraft när VR 4305 producerades. Det hade varit ett intressant ämnesområde att för fortsatta studier vid senare tillfälle. 6

Källförteckning 1. R4300i. (1997). [pdf] MIPS Technologies, pp. http://www.datasheetarchive.com/pdf/download.php?id=672c570c0811bb63dbd25012a4ad0b 54d5a32b&type=M&query=R4300i 2. V R 4300, 4305, 4310 64-Bit Microprocessor UM. (2000). [pdf] NEC pp. http://datasheets.chipdb.org/nec/vr-series/vr43xx/u10504ej7v0umj1.pdf 3. Computer Organization and Design, 4th edition. (2011). David A. Patterson, John L. Hennessy 4. Language Architectures And Programming Environments, (1992). Baiardi F, Ichikawa Tadao, Lapriore L 5. Processor Design: System-On-Chip Computing for ASICs and FPGAs, (2007). Jari Nurmi Figurer 1. Figure 4-2, Instruction Execution in the Pipeline, (User Manual, NEC, 2000) 2. Figure 4-12, Correspondence of Pipeline Stage to Interlock and Exception Condition, (User Manual, NEC, 2000) 3. Figure 4-13, Instruction TLB Miss Interlock, (User Manual, NEC, 2000) 7