SIMD i Intel s P5- baserade Pentium MMX

Relevanta dokument
Hantering av hazards i pipelines

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

Pipelining i Intel Pentium II

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)

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

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

Parallellism i NVIDIAs Fermi GPU

Arm Cortex-A8 Pipeline

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

32 Bitar Blir 64 Sammanfattning

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

Tentamen den 18 mars svar Datorteknik, EIT070

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

Datorarkitekturer med operativsystem ERIK LARSSON

Multithreading in Intel Pentium 4 - Hyperthreading

Hyper-Threading i Intelprocessorer

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

Öka prestanda i Shared-Cache multi-core processorer

Processor pipelining genom historien (Intel i9-intel i7)

DEC Alpha instruktions Arkitektur

Datorteknik ERIK LARSSON

Grundläggande datavetenskap, 4p

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

Parallellism i CDC 7600, pipelinens ursprung

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

Introduktion till programmering

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

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Datorsystemteknik DAV A14 Föreläsning 1

Pipelining i Intel 80486

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Spekulativ exekvering i CPU pipelining

HF0010. Introduktionskurs i datateknik 1,5 hp

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

Cacheminne i en Intel Core 2 Duo-processor

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

Hantering av hazards i multi-pipelines

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Cacheminne Intel Core i7

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

MESI i Intel Core 2 Duo

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

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

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

Inledande programmering med C# (1DV402) Introduktion till programmering

What Is Hyper-Threading and How Does It Improve Performance

Jacquards vävstol, 1801

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

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

Agenda. Syfte med datorbygge Datorns delar. Datorbygge. Moderkort Processor Minne och hårddisk Instickskort Övrigt

MESI-protokollets funktion i multiprocessorer

Grafiska pipelinens funktion

Jämförelse av skrivtekniker till cacheminne

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

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

Rapport (1,5 HP) Lunds Universitet HT15

Datorarkitekturer med operativsystem ERIK LARSSON

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

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

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

Grundläggande programmeringsteknik Datorsystem

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

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

Komma över Memory wall med 3D stacked minne LTH Ingenjörshögskolan vid Campus Helsingborg Institutionen för datavetenskap

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Diskprestanda Tester

Datorsystemteknik DAV A14 Föreläsning 1

Närliggande allokering Datorteknik

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

KUNDCASE. Inovia gjorde sin AI-utveckling 10 gånger snabbare med Power-plattformen

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Cacheminne i en AMD Opteron Processor

Läsminne Read Only Memory ROM

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Toshiba och Intel Centrino Duo mobile teknologi för professionella användare

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Minnesisolering för virtuella maskiner en hypervisorstudie

TSEA28 Datorteknik Y (och U)

Central Processing Unit

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

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

Föreläsning 2. Operativsystem och programmering

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

Improved-MOESI Cache koherens Protokoll

Digitala System: Datorteknik ERIK LARSSON

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Digitalteknik och Datorarkitektur 5hp

Datorarkitektur. Fö 9: Datorarkitektur. Datororganisation. Typiska Arkitekturattribut. Introduktion till datorarkitektur.

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

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

Transkript:

SIMD i Intel s P5- baserade Pentium MMX Maurits Gabriel Johansson - IDA2 Datorarkitekturer med operativsystem - 4 december 2016 SIMD I INTEL S P5-BASERADE PENTIUM MMX 1

Abstrakt Moderna CPU s (Central processing unit) hämtar en instruktionsström och avkodar, flyttar runt, schema-lägger och exekverar instruktioner genom en uppsjö av funktionella enheter i processorn, och allt detta i en väldigt djup pipeline. Denna typ av parallellt arbete tillåter CPU n att exekvera många olika instruktioner på en och samma gång. Vi ska kolla närmare på en av dom först kommersiellt lanserade processorn som gjorde detta möjligt, Intel s p5-baserade pentium MMX. MMX är en förbättring av Intels tidigare processorer och var designad för att göra datorn snabbare och färggladare vid hantering av olika sorters multimedia och spel. Utöver den vanliga prestandan så svarar processorn även till 57 olika instruktioner som är orienterade till parallella operationer. Istället för att låta en instruktion arbeta på en enda bit av data så ger man en instruktion möjlighet att arbeta på många olika datakällor samtidigt. Denna Single Instruction, Multiple Data modellen kallas för SIMD. För och nackdelar, samt problemen som uppstod, diskuteras även i artikeln. SIMD I INTEL S P5-BASERADE PENTIUM MMX 2

Introduktion Innan SIMD(Single Instruction, Multiple Data) implementerades i Intel s Pentium MMX, så utfördes beräkningar i tidigare modeller genom SISD(Single Instruction, Single Data), där processorn läser in en bit data per instruktion och exekverar sedan en instruktion för att generera en enda output, visat i Fig.1 (a).[5] Figur 1. (a) Skalär processering (b) SIMD processering [3] Istället för att göra beräkningar skalärt, där en instruktion arbetar på en enda bit data så tas instruktionerna i Pentium MMX och utför samma arbete på många olika datakällor per instruktion(simd), vilket genererar många olika output-data per instruktion, visat i Fig.1 (b). Den stora skillnaden är sammanfattningsvis att man behåller en enda instruktionsström, men har möjlighet att hämta olika data på en och samma gång, utföra beräkningar på och sedan skapa olika korresponderade outputs.[5] SIMD-instruktionerna har dock sin begynnelse tidigare än 90-talet. 70-talets superdatorer använde en annan sorts SIMD teknologi som i modern tid nu blivit separerade från SIMDmaskiner då vektorerna i dessa inte blir behandlade på en och samma gång. 80-talets superdatorer så som CM-1 och CM-2 implementerade dock denna modernare arkitektur, men även dessa varade inte länge då efterfrågan för SIMD sjönk då den billigare MIMD(Multiple Instruction, Multiple Data) tog över i superdatorerna.[7] Det dröjde in på 90 talet innan SIMD började återvända. Detta berodde främst på att persondatorerna började bli fler och efterfrågan efter multimedia och spel ökar markant. Intel släpper sin Pentium MMX i mitten av 90 talet och med dess instruktionsset på 57 SIMD instruktioner, ökar prestandan och snabbheten på alla parallella beräkningar som använder små heltal(integer). Detta berörde mest 2d/3d grafik, bild processing och matris beräkningar. SIMD I INTEL S P5-BASERADE PENTIUM MMX 3

SIMD i Intel Pentium MMX SIMD-instruktionerna implementerades första gången av Intel i Pentium MMX, vilket förutom dom vanliga egenskaperna från Pentium även innehåller 57 nya instruktioner. Dessa instruktioner var designade för att snabba på the core algorithm och därmed öka övergripande prestanda. Att ha dessa instruktioner i en Pentium processor gör det enklare att skapa kod som antigen skapar eller på nått sätt arbetar med multimedia, t.ex olika sorters realtids-aktiviteter. Exempel på detta kan vara att kunna jobba med flertalet kanaler av ljud, kunna spela upp video i högre kvalitet samt animation. Även internetkommunikation kan då köras samtidigt i samma applikation. Dessa 57 instruktioner hade möjlighet att addera upp till 8 heltal(integer) parallellt där dom parallella operationerna använder 64-bitars register. Beroende på operation så är dessa register definierade som 8x8bit bytes,4x16bit words,2x32bit double-words eller 1x64bit quad-word. MMX teknologin var designad för att förenkla kodskrivandet, men mest för att kunna manipulera matris orienterad data. [3] Eftersom Pentium MMX inte hade några fysiska MMX kretsar i sin arkitektur och endast var en uppgradering av tidigare Pentium så skapades en del problem. Intel lyckades implementera MMX och behålla bakåtkompatibilitet genom att använda processorns flyttalsregister för att hålla data. Detta gjorde att komplexare beräkningar(som ofta går hand i hand med matris beräkningar) tog längre tid. Även om prestandan ofta ökade markant så föll processorn ofta kort på just flyttalsberäkningar. Andra faktorer som gjorde beräkningarna snabbare var en ökning av L1-cache storlek från 16 till 32 kb.[4] Även vid utveckling av MMX-kompatibel programvara skapades problem då MMX inte är bakåtkompatibel med tidigare instruktioner. Dock uppmuntrade Intel många utvecklare att inkludera både MMX och icke-mmx programvara i applikationerna.[4] Förutom snabbhet och prestandaökning så tillförde Pentium MMX ett nytt sätt att hantera data och skriva kod som helt skiljde sig från tidigare modeller och tillvägagångssätt. Multimedia var frågan och Intel svarade med MMX. Uppföljaren till Pentium MMX, Pentium 2, hade inbyggda MMX kretsar som löste flyttalsproblemet i tidigare modell, vilket gjorde att applikationer kunde dra nytta av både komplexa beräkningar och parallella operationer.[4] SIMD I INTEL S P5-BASERADE PENTIUM MMX 4

Relaterade arbeten Datasäkerhet Integritet och säkerhet är alltid ett ämne på tal i dagens samhälle, och något man ofta saknar rätt verktyg för att kunna ligga på framfart med. Det som läggs mest resurser på är naturligt inom ekonomi och kommunikation och där säkerhetens fokus ligger på kryptering och avancerade algoritmer. Kryptografiska algoritmer följer väldigt ofta mönster som utvecklar sig i många iterationer av liknande operationer, vilket SIMD har kunnat förbättra markant.[6] Ett exempel på detta är Elliptic curve cryptosystems som anses vara en hållbar kryptografisk lösning då nycklarna till systemet inte behöver vara speciellt långa och tekniken erbjuder hög säkerhet.[6] Ett Försök till att snabba på processen lades fram av Aoki et al [1] och med hjälp av en Pentium III och SIMD arkitekturen så lyckades man öka snabbheten på den elliptiska kurvans skalära multiplikationer med 4.4 gånger.[6] Medicin Ett utmärkt exempel på en algoritm som fått en mångfaldig ökning i snabbhet och användning är Smith Waterman (SW) algorithm [2], där algoritmens mål är att bestämma regioner mellan proteinsekvenser och DNA. Tidigare har algoritmen ofta gått oanvänd då det är en väldigt krävande algoritm att beräkna och man har försökt leta efter alternativ. När samma algoritm implementerades med hjälp av Intels MMX arkitektur, så lyckades den öka algoritmens snabbhet med upp till 6 gånger. Detta genom att göra beräkningarna genom en 8- vägars parallell processering, vilket SIMD gör bra. [6] Slutsats Intels MMX chip var på sitt sett en stor framgång, även om den implementerade tekniken i sitt tidigare stadie hade sina brister. Förutom att snabba på beräkningar och göra multimedia i vardagen en enklare sak, så öppnade det även nya dörrar för nytänk och innovation. Speciellt för den enskilda programmeraren som nu fick mer verktyg att jobba med och ett annat sätt att tackla problem. SIMD I INTEL S P5-BASERADE PENTIUM MMX 5

Referenser [1]. Aoki, K., Hoshino, F., Kobayashi, T. and Oguro, H. (2001) Elliptic curve arithmetic using SIMD. ISC20001, LNCS 2200, pp. 235 247. Springer-Verlag. [2]. Smith, T.F. and Wateman, M.S. (1981) Identification of common molecular subsequences. J. Mol. Biol., 147, 195 197. [3]Mittal, Millind; Peleg, Alex; Weiser, Uri (1997). MMX Technology Architecture Overview. Intel Technology Journal. 1 (3) [4]. O DONNELL, B. Multimedia gets a speed boost. Electronic Musician. 13, 5, 86, May 1997. ISSN: 08844720. [5]. SIMD (Single Instruction Multiple Data Processing). Springer, 2008. 817 p. ISBN: 978-0-387-78414-4. [6]. M., H; Saleh, O; Youssef B., M. A Review of SIMD Multimedia Extensions and their Usage in Scientific and Engineering Applications. Computer Journal. 51, 6, 630, Nov. 2008. ISSN: 00104620. [7]. David A. Patterson and John L. Hennessey, Computer Organization and Design: the Hardware/Software Interface, 2nd Edition, Morgan Kaufmann Publishers, Inc., San Francisco, California, 1998, p.751 SIMD I INTEL S P5-BASERADE PENTIUM MMX 6