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

Relevanta dokument
Hantering av hazards i pipelines

Pipelining i Intel Pentium II

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Arm Cortex-A8 Pipeline

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

Hyper-Threading i Intelprocessorer

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Närliggande allokering Datorteknik

Parallellism i NVIDIAs Fermi GPU

Parallellism i CDC 7600, pipelinens ursprung

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)

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

32 Bitar Blir 64 Sammanfattning

Processor pipelining genom historien (Intel i9-intel i7)

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

SIMD i Intel s P5- baserade Pentium MMX

Grundläggande datavetenskap, 4p

Pipelining i Intel 80486

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

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

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

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

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

TSEA28 Datorteknik Y (och U)

Spekulativ exekvering i CPU pipelining

4. Pipelining. 4. Pipelining

DEC Alpha instruktions Arkitektur

Hantering av hazards i multi-pipelines

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

Digitala System: Datorteknik ERIK LARSSON

MESI i Intel Core 2 Duo

Datorsystemteknik DVGA03 Föreläsning 8

TSEA28 Datorteknik Y (och U)

Föreläsning 2. Operativsystem och programmering

Cacheminne i en AMD Opteron Processor

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Cacheminne i en Intel Core 2 Duo-processor

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Jämförelse av skrivtekniker till cacheminne

Föreläsningsanteckningar 4. Pipelining

Digitala System: Datorteknik ERIK LARSSON

What Is Hyper-Threading and How Does It Improve Performance

Öka prestanda i Shared-Cache multi-core processorer

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

Rapport (1,5 HP) Lunds Universitet HT15

Pipelining: Software Optimeringar Av: Gustaf Lagerblad

Datorarkitekturer med operativsystem ERIK LARSSON

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

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

Datorsystem. Tentamen

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

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

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

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

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Jacquards vävstol, 1801

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

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Multithreading in Intel Pentium 4 - Hyperthreading

Cacheminne Intel Core i7

Aktivitetsschemaläggning för flerkärninga processorer

Läsminne Read Only Memory ROM

Datorarkitekturer med Operativsystem

Introduktion till programmering. Programspråk och paradigmer

Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur

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

Anujan Balasingam IDA14 NAND flashminnen

Datorteknik och datornät. Case Study Topics

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Bank Switching. Att nå multipla adressrymder. Av: Drazen Mijatovic

TSEA28 Datorteknik Y (och U)

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Intel Silverthornes front-end

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

Datorsystemteknik för E/D

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

Datorteknik ERIK LARSSON

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

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

Datorteknik ERIK LARSSON

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

IT för personligt arbete F5

Transkript:

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05

Abstract Rapporten handlar om två tekniker inom multiple issue processorer som används för att öka parallellismen. Dessa kallas för superscalar och Very Long Instruction Word(VLIW). Båda teknikerna vill uppnå samma sak, men de gör det på olika sätt. En processor som använder superscalar implementeras dynamiskt och hårdvaran är mer komplex då det är den som gör det mesta jobbet. En VLIW processor implementeras istället statiskt och där är det kompilatorn som gör jobbet, därför blir hårdvaran enklare men kompilatorn komplex.

Innehåll 1. Inledning 1.1 Bakgrund 1.2 Syfte 2. Parallellism i multiple-issue processorer 2.1 VLIW(Very Long Instruction Word) 2.2 Superscalar 3. Fördelar och nackdelar 3.1 Superscalar 3.2 VLIW 4. Slutsats 5. Referenser

1 Inledning 1.1 Bakgrund När man använder sig av pipelining så tillåter man att köra flera instruktioner vid samma tidpunkt men i olika steg. För att effektivisera detta använder man också parallelism för att öka antalet instruktioner som initieras samtidigt och exekveras oberoende. Detta kan man mäta, det kallas för instruction-level parallelism (ILP) och det finns olika sätt för att få den att öka. En av teknikerna som används för att öka parallelismen heter multiple issue där flera instruktioner initieras i en och samma klockcykel. Det gör att CPI (Cycles Per Instruction) blir mindre än 1, vilket gör att processorn kan exekvera fler instruktioner snabbare. 1.2 Syfte En multiple-issue processor kan i sin tur implementeras på olika sätt, där de två vanligaste är static multiple issue och dynamic multiple issue. De kallas också för superscalar processors (dynamic) och VLIW processors (static). Syftet med denna rapport är att ge information om de två typerna och att förklara skillnader samt för- och nackdelar. 2 Parallellism i multiple-issue processorer De största skillnaderna mellan static- och dynamic multiple issue är att schemaläggningen sker på olika ställen. Om processorn är av typen superscalar så kommer instruktionerna schemaläggas statiskt av kompilatorn innan exekvering, om den istället är av typen VLIW så kommer de schemaläggas dynamiskt av processorn under exekveringen. De båda typerna är alltså tekniker som exekverar flera instruktioner samtidigt och deras arkitekturer liknar RISC processorerna, där man har flera enheter som använder pipeline för att exekvera instruktioner parallellt. Men de använder parallellismen på olika sätt. 2.1 VLIW (Very Long Instruction Word) I en static multiple-issue processor är det kompilatorn som hanterar instruktioner, hazards, alla val angående ordning av exekvering och hur man ska lösa problem sker där. Den här metoden grupperar instruktionerna inom en klockcykel och de förvaras i så kallade issue packets. Dessa kan ses som en enda stor instruktion som innehåller flera oberoende instruktioner och måste då också tillåta flera olika operationer. Den här typen av arkitektur kallas alltså också för Very Long Instruction Word (VLIW). I och med att det är kompilatorn som hanterar ordningen av exekveringen så behöver VLIW processorer inte den hårdvara som superscalars ofta har. När instruktionerna istället schemaläggs

under kompileringstid, som de görs i VLIW, så försöker kompilatorn att göra så att varje fält i den långa instruktionen innehåller en operation. Men på grund av begränsningar som kontroll-, data- och resurskonflikter så måste den fylla i vissa fält med no-ops för inga operationer har kunnat schemaläggas där. Det gör att antalet operationer per cykel kommer att minska vilket i sin tur kommer att öka kodens storlek. Processorer som använder sig av static multiple-issue hanterar hazards på olika sätt. De kan antingen låta hårdvaran leta efter data hazards under tiden mellan separata issue packets och låta kompilatorn sköta dependences inne i paketen. Eller så kan de låta kompilatorn hantera allt, koden, borttagning av hazards osv. Exempel på VLIW processorer är Intels IA-64 arkitektur som används till servers och workstations, eller TriMedia media processoren från NXP (tidigare Philips). 2.2 Superscalar En dynamic multiple-issue processor har också fått namnet superscalar, och i denna teknik är hårdvaran mer komplex och parallella instruktioner kan väljas under run-time. Många superscalar processorer har utvecklade hårdvaror och använder något som kallas dynamic scheduling. Den metoden försöker minimera de förseningar som kan ske, då en del instruktioner är beroende av andra innan de kan exekveras. Exempelvis om en instruktion ska skrivas till en minnesadress och sedan ska en annan instruktion läsa från den. Den andra instruktionen måste då vänta på att exekveras tills den första är klar så att den inte får fel data. Men genom att använda dynamic scheduling så kan processorn då välja de instruktioner som exekveras och internt flytta runt dessa. Pipelinen delas in i tre större delar i de processorer som använder dynamic schedueling. Först finns en enhet som hämtar och avkodar instruktionerna samt skickar de vidare till rätt funktionell enhet (ex. ALU, minne, I/O). Den andra delen är just de funktionella enheterna, och där exekveras instruktionen så fort deras reservation stations (fungerar som en buffert) innehåller alla de operander och dess operationer som behövs. Resultatet skickas sedan vidare till andra funktionella enheter eller till den tredje delen som kallas commit unit. Detta är en enhet som kommer att hålla kvar resultatet i sin buffert som kallas reorder buffer tills det är okej att lägga det någonstans där programmeraren kan se det (som i register eller minne). Dynamic scheduling är viktig för att kunna bevara parallellismen, och den ger också kompilatorn en enklare design och ser till att koden är samma storlek (eftersom man schemalägger). Den kan ha två olika designer, in-order issue och out-of-order issue. Då instruktionerna exekveras i den ordning de kommer till processorn, kallas det för in-order issue. Out-of-order issue är istället när

instruktionerna kan flyttas under run-time för att undvika stalls och hazards samt effektivisera exekveringen genom att se vad det kommer för instruktioner i förväg. Superscalar processorer fortsätter att öka i prestanda ju mer komplex hårdvaran blir och ju längre fram den kan se i instruktionerna, desto mer effektiv kan den bli. Exempel på superscalar processorer är Pentium processorer med både in- och out-of-order issue, samt PowerPC604 (in-order) eller den liknande PowerPC620 (out-of-order). 3 Fördelar och nackdelar 3.1 Superscalar I en superscalar processor så är det hårdvaran som löser allt. Det är hårdvaran som upptäcker parallellism och försöker initiera så många som möjligt av de instruktionerna. Koden är binärt kompatibel, vilket innebär att om arkitekturen skulle förbättras eller om något nytt skulle läggas till så kan även de gamla programmen fungera med det nya, då hårdvaran nu kan exekvera det mer effektivt. En annan fördel med superscalar är att kompilatorn blir mindre komplex än den i en VLIW processor, nackdelen blir istället att komplexiteten av hårdvaran ökar. Att kunna använda out-of-order issue är en av de större fördelarna med en superscalar processor. Med detta kan den ändra ordningen på instruktionerna samtidigt som programmet körs. Detta innebär att med superscalar kan man undvika stalls och hazards när man kan se i förväg vad för instruktioner som är påväg. Det som annars kanske skulle skapa problem försvinner istället då den stoppar det innan det hänt. En processor kommer att ha flera instruktioner (ett set ) den kan välja att exekvera vid olika tider, dessa kallas för instruktions fönster och ska helst vara så stort som möjligt för att instruktionerna ska väljas på det mest effektiva sättet. En superscalar processor har ett begränsat instruktions fönster då den använder hårdvara till detta (som den gör till i princip allt), istället för att låta kompilatorn hantera det. Därför kan det här fönstret inte bli hur stort som helst, eftersom ett större fönster kräver större utrymme på chippet. Men denna begränsning stoppas innan utrymmet tar slut då ett större fönster också tar längre tid och man vill inte riskera att klockfrekvensen minskar. För att kunna upptäcka tidigare nämnda parallellism under run-time så behövs mycket hårdvara. En nackdel med en superscalar processor är att om man skulle behöva utveckla eller förbättra processorn så krävs det att man ändrar på själva hårdvaran, alltså lägga till eller ta bort saker från chippet. Detta kostar mycket pengar och kan bli omständigt.

3.2 VLIW En av de största fördelarna med VLIW är att eftersom det inte är hårdvaran som används för att upptäcka de ställen man kan exekvera flera operationer samtidigt på, så blir den därmed blir mindre komplex. Det ansvaret har man istället gett till kompilatorn, som alltså bestämmer vad som kan exekveras parallellt. Det gör också att effektförbrukningen kan reduceras vilket gör att VLIW passar bättre för bärbara enheter. En VLIW processor har inget begränsat tidigare nämnt instruktions fönster. Kompilatorn sköter detta och kan se mycket större fönster än en superscalar processor, då den använder global analys av hela programmet för att hitta parallellism. Alltså är det en stor fördel för VLIW då det ger bättre resultat att använda kompilatorn som man gör här, istället för att använda hårdvaran som i superscalar. En av fördelarna med VLIW var att man kan öka antalet funktionella enheter utan att man behöver göra hårdvaran mer komplex. Efter chippet är tillverkat så kan man förbättra processorn genom kompilatorn, det kan man inte göra i superscalar. Men med detta kommer också nackdelen att om man lägger till flera funktionella enheter så behöver man många register för att hålla dem aktiva då man ska lagra resultat och dess operander. En annan nackdel med VLIW är att programmen blir stora med många instruktioner. Detta på grund av att ibland kan man inte hitta tillräckligt med instruktioner som kan exekveras parallellt, och man måste då fylla platserna med no ops. När det sker så kommer både minne och bandbredd förloras och därmed bli bortkastat. Skulle man utveckla en ny VLIW processor som ex. hade fler funktionella enheter så skulle instruktionerna bli annorlunda än de tidigare. Det kommer leda till att koden som användes innan inte kan exekveras på den nya processorn. Detta kallas att binärer inte är kompatibla, alltså att koden inte kan samordnas med den nya utvecklade delen. 4 Slutsats Som slutsats kan sägas att efter forskning i ämnet så är det stor skillnad på VLIW och superscalar processorer, trots att de båda vill uppnå samma sak. I VLIW processorer finns en mycket mer komplex kompilator, men enklare hårdvara och i superscalar processorer är hårdvaran mer komplex och kompilatorn enklare. Enkelt sagt är en VLIW processor en lättare och billigare version av en superscalar processor. Den största fördelen med VLIW är att den har möjligheten att kunna köra en global analys av hela programmet då den inte har ett begränsat instruktions fönster (som en superscalar processor

har). Den kan därmed snabbare detektera parallellism, vilket är något som är svårt att hantera i superscalar. Men en superscalar har en av de största fördelarna i det att den kan optimera exekveringen genom att använda out-of-order issue under tiden som programmet körs, vilket man inte kan göra i VLIW.

5 Referenser 1) Lenell, J. and Bagherzadeh, N. (1994) A performance comparison of several superscalar processor models with a VLIW processor, Microprocessors and Microsystems, 18(3), pp. 131 139. doi: 10.1016/0141-9331(94)90110-4. 2) Patterson, D. and Hennessy, J. (2014) Parallelism via Instructions, Computer Organization and Design: The Hardware/Software Interface, Fifth Edition, pp. 332-343. doi: 10.1016/B978-0-12-407726-3.00001-1 3) Larsson, E. (2018) Datorarkitekturer med operativsystem, Superscalar arkitekturer och Very Long Instruction Word Architectures, Hämtad 2018-11-18 från Lunds Tekniska Högskola: https://www.eit.lth.se/fileadmin/eit/courses/eitf60/f%d6/f%d63.pdf 4) Philips Semiconductors (2011) An introduction to Very-Long Instruction Word(VLIW)Computer Architecture, vliw-wp.pdf, pp. 1-11(Hämtad 2018-11-20) 5) Harman, N. and Gimblett, A.() High Performance Microprocessors,VLIW Machines, chapter 10 (Hämtad 2018-11-23) 6) Eggers, S. (2006) Multiple Instruction Issue, multipleissue.pdf, pp. 1-20 (Hämtad 2018-11-23)