Intel Silverthornes front-end

Relevanta dokument
Pipelining i Intel Pentium II

Arm Cortex-A8 Pipeline

Datorarkitekturer med operativsystem ERIK LARSSON

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

Närliggande allokering Datorteknik

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Hantering av hazards i pipelines

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

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

Datorteknik ERIK LARSSON

Pipelining i Intel 80486

Processor pipelining genom historien (Intel i9-intel i7)

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

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)

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

Parallellism i CDC 7600, pipelinens ursprung

Tentamen den 18 mars svar Datorteknik, EIT070

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

TSEA28 Datorteknik Y (och U)

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

Grundläggande datavetenskap, 4p

Spekulativ exekvering i CPU pipelining

Datorarkitekturer med operativsystem ERIK LARSSON

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

Digitala System: Datorteknik ERIK LARSSON

Hantering av hazards i multi-pipelines

Datorarkitekturer med operativsystem ERIK LARSSON

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

TSEA28 Datorteknik Y (och U)

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

Datorsystemteknik DVGA03 Föreläsning 8

SIMD i Intel s P5- baserade Pentium MMX

Minnet från processorns sida Datorteknik

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

Hyper-Threading i Intelprocessorer

Datorarkitekturer med operativsystem ERIK LARSSON

MESI i Intel Core 2 Duo

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

What Is Hyper-Threading and How Does It Improve Performance

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

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

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

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Öka prestanda i Shared-Cache multi-core processorer

Parallellism i NVIDIAs Fermi GPU

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

Snapdragon 810: Cacheminnet

Exempeltentamen Datorteknik, EIT070,

Datorteknik ERIK LARSSON

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

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

Jacquards vävstol, 1801

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

DatorsystemteknikDAVA14 Föreläsning 9

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Datorteknik och datornät. Case Study Topics

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Digitalteknik och Datorarkitektur 5hp

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

Multithreading in Intel Pentium 4 - Hyperthreading

Digitalteknik och Datorarkitektur 5hp

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

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

Cacheminne i en Intel Core 2 Duo-processor

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

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

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.

Digitala System: Datorteknik ERIK LARSSON

DEC Alpha instruktions Arkitektur

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

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

TSEA28 Datorteknik Y (och U)

Tentamen den 17 mars 2016 Datorteknik, EIT070

HF0010. Introduktionskurs i datateknik 1,5 hp

Aktivitetsschemaläggning för flerkärninga processorer

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

Omtentamen i CDT204 - Datorarkitektur

TSEA28 Datorteknik Y (och U)

Cacheminne Intel Core i7

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

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

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

4. Pipelining. 4. Pipelining

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

Datorteknik och datornät

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

Anujan Balasingam IDA14 NAND flashminnen

Tentamen PC-teknik 5 p

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Datorsystemteknik för E/D

Transkript:

EITF60 Datorarkitekturer med operativsystem Intel Silverthornes front-end Jonas Persson 4 december 2017 Sammanfattning I denna rapport undersöks designalternativ för att minska en processors energiförbrukning med avseende på dess pipeline. Detta görs genom att ta reda på hur Intel designat pipelinen på deras processor Silverthorne, rapportens fokus läggs på processorns front-end block.

Innehåll 1 Inledning och bakgrund 1 1.1 Syfte och metod............................. 1 2 Teori 2 2.1 Silverthorns front-end.......................... 2 2.2 fetch............................ 3 2.3 decode........................... 4 2.4 Prestanda vs. energiförbrukning.................... 4 3 Diskussion och slutsats 5 4 Referenser 6

1 INLEDNING OCH BAKGRUND 1 Inledning och bakgrund På grund av mobila enheters begränsade batterikapacitet och att nästan varannan människa äger en smartphone idag (Poushter 2016) finns det en stor marknad för energieffektiva processorer. För att uppnå god prestandanivå använder sig i princip alla processorer sedan 1985 av pipelining (Hennesy et al. 2007) det gäller även Intel Silverthorne, som är första mikroprocessorn i Intel Atom familjen. Innan denna processor lanserades 2008 lade Intel inte så mycket fokus på energieffektivitet, därför saknade de en processor som matchade mobilmarknadens krav på energieffektivitet, värmeutveckling och fysisk storlek. Intels Silverthorne designades från grunden med målen att minska energiförbrukning, behålla full x86 kompabilitet samt uppnå acceptabel prestanda. För att uppnå deras mål fick högprestanda funktioner som out-of-order exekvering, microoperation transformation samt aggressiv spekulativ exekvering väljas bort. Silverthorne skiljer sig därför en hel del från Intels tidigare processorer (wikichip.org 2017). 1.1 Syfte och metod Syftet med denna rapport är att undersöka vad som kan göras för att minska en processors energiförbrukning vad gäller dess pipeline. Detta görs genom att ta reda på hur Intel designat pipelinen på deras processor Silverthorne, fokus kommer läggas på processorns front-end block, mer specifikt instruction fetch och instruction decode. 1

2 TEORI 2 Teori Most low-power, low-performance processors, such as Cortex-A7/A53 and Atom, are in-order designs because OOO logic consumes a lot of power for a relatively small performance gain. (Patterson 2015) Som nämndes i inledningen fick hög-prestanda funktioner som t ex out-of-order exekvering väljas bort. Silverthorne består alltså av en in-order men även dual-issue pipeline, denna 16-19 stegs superscalar pipeline är illustrerad i F ig. 1. Med dualissue menas att processorn kan hantera två instruktioner samtidigt, detta fungerar dock endast om dessa två instruktioner redan finns i instruktions cache L1 (Geyer et al. 2011). IF1 IF2 IF3 ID1 ID2 ID3 SC IS IRF AG DC1 DC2 EX1 FT1 FT2 IWB / DC1 Fetch Decode Dispatch Source Operand Read Data Cache Access Execute Exception & MT Handling Commit IP1 IP2 PreDecode Fig. 1 Silverthornes pipeline - (BCD 2017) / CC BY-NC-ND 3.0 2.1 Silverthorns front-end För samtliga x86-baserade processorer har front-end delen av en pipeline två huvudsakliga uppgifter, att hämta instruktioner ( Fetch) och att avkoda instruktioner ( Decode) (Cepeda 2011). Jämfört med Intels högprestanda arkitekturer är Silverthornes front-end (som kan ses i F ig. 2) ganska simpel, som nämnts tidigare har funktioner valts bort, men även decode-delen har förenklats. Processorn har stöd för Simultaneous multithreading (SMT) vilket var ovanligt för energieffektiva processorer på denna tiden. För Silverthornes front-end innebär detta att instruktionskön och prefetch buffern har fördubblats för varje tråd, resten av resurserna får trådarna tävla om. Trådarna får alltså samsas om instruktionscacheminnet L1. Enligt Intel förbättras prestandan med 30-50 procent med SMT medan energiförbrukningen ökar med 15-20 procent (wikichip.org 2017). 2

2.2 fetch 2 TEORI UROM Branch Prediction Unit Front-End Cluster Per-thread Queues XLAT/ FL XLAT/ FL 2-wide Inst. Length Decoder Per Thread Prefetch Buffers Cache Inst. TLB Per thread FP Register File Per thread Integer Register File Memory Execution Cluster AGU AGU DL1 prefetcher ALU Shuffle SIMD multiplier FP multiplier FP move FP ROM FP divider ALU FP adder ALU Shifter Data Cache ALU JEU Integer Execution Cluster Data TLBs PMH Fill Buffers Fault/ Retire L2 Cache BIU APIC Bus Cluster FSB FP store FP/SIMD execution cluster Fig. 2 Block diagram av Silverthorne med front-end cluster högst upp - (Gerosa et al. 2008) 2.2 fetch Silverthornes Fetch (IF) del är indelad i tre pipeline steg och kan gå igenom 8 bytes per tråd under en klockcykel. Instruktionsflödet kommer från L1 som är ett 8-way set associative, 32KB stort instruktions cache, därefter passerar instruktionerna en serie prefetch buffers vidare till avkodningsdelen (Wang 2009). Aggressiv spekulation har valts bort när Silverthorne togs fram, men processorn har en two-level adaptive branch predictor med en 4096 posters Branch History Table (BHT) och en 128 posters Branch Target Buffer (BTB). Branch predictorn registrerar alltid-tagna och aldrig-tagna hopp medan ovillkorliga hopp ej registreras. Eftersom BTB är mycket mindre än BHT kan det hända att ett hopp är korrekt gissat som taget men det saknas en post i BTB för var hoppet ska tas, i detta fall blir straffet cirka sju klockcykler. Skulle en felgissning (misprediction) uppstå är straffet 11-13 klockcykler (wikichip.org 2017)(Fog 2017). 3

2.3 decode 2 TEORI 2.3 decode Även Decode (ID) delen är indelad i tre pipeline steg och kan avkoda instruktioner med upp till tre prefixes varje klockcykel, det tar dock många fler cykler för komplexa instruktioner. Silverthornes avkodningsdel skiljer sig nämnvärt från de flesta moderna x86 arkitekturer (wikichip.org 2017). Moderna x86 arkitekturer omvandlar komplexa x86 instruktioner till mindre så kallade micro-operations (µops), den komplexa logiken som behövs för detta är hyfsat energikrävande (Solomon et al. 2003). Silverthorne gör nästan ingen sådan omvandling. Dess pipeline är anpassad så att den kan exekvera vanliga x86 instruktioner som enkla atomiska operationer bestående av ett destinationsregister och upp till tre källregister. Med atomiska operationer menas i princip operationer som säger till processorn gör detta och tillåt inga avbrott under tiden (Atomic Operations in Hardware 2007). Processorn kan även göra så kallade lockstep instruktioner vilket innebär att den exekverar instruktioner som utför en minnesaccess och en aritmetisk operation som två separata instruktioner under en klockcykel. Komplexa x86 instruktioner som t ex cosinus-beräkningar blir fortfarande omvandlade till µops (genom att skickas till MicroCode ROM - MSROM) till kostnaden av två cykler. Alla instruktioner som har fler än tre prefixes eller är längre än 8 bytes långa blir direkt skickade till MSROM (wikichip.org 2017). Enligt Intel är detta inga problem eftersom cirka 96 procent av alla instruktioner exekveras som direkt översatta (1:1) macro-ops eller sammanslagna enkla µops (Wasson 2008). Eftersom processorn är designad att hantera instruktioner av varierande längd får Silverthornes två identiska avkodare hjälp av en föravkodare (predecoder) som fastställer gränser för var en instruktion börjar och slutar genom att markera en bit. Det tar två klockcykler att föravkoda och lagra i L1-cachen, markeringen av instruktionens gränser sparas i L1 så att upprepade operationer inte föravkodas mer än en gång. Anledningen till att Silverthorns pipeline varierar mellan 16 och 19 steg är att en cache miss kostar tre extra steg. De tre extra stegen är för att komma ikapp och att räkna ut gränserna för instruktionen. Det går dock att undvika dessa tre extra steg i de fall processorn samtidigt kan avkoda nästa instruktion (wikichip.org 2017). 2.4 Prestanda vs. energiförbrukning Jämfört med Intel Pentium M 705 från 2003, vars prestanda är på samma nivå som Intel Silverthorne enligt notebookcheck.net, förbrukar den sistnämnda betydligt mindre energi. Pentium processorn har en TDP (Thermal Design Power) på 24,5 W medan Silverthornes TDP är 0,65 W. 4

3 DISKUSSION OCH SLUTSATS 3 Diskussion och slutsats Med undantag för vilken prestandavinst och energiförbrukning som SMT bidrar med, har denna rapport dessvärre inte lyckats att på mätbart sätt visa hur mycket energieffektivitet just Silverthornes front-end har bidragit med. Däremot visar rapportens granskning av Silverthorne hur processorns front-end designats för att uppnå energieffektivitet. De flesta åtgärder som gjorts för att minska energiförbrukning är att exkludera komplex prestandahöjande logik. Att exkludera prestandahöjande funktioner kan tyckas vara mindre imponerande, dock presterar Silverthorne likvärdigt med den fem år äldre Pentium M 705 fast med betydligt mindre energiförbrukning, vilket är ett framsteg i sig. Intel har trots detta inte lyckats så bra på marknaden för mobila enheter, den domineras istället av ARM processorer (vox.com 2016), vad det beror på ligger utanför denna rapports ramar. Det bör nämnas att information till rapporten till viss del hämtats ifrån wikichip.org. På denna sida har allmänheten möjlighet att redigera innehåll och kan därför anses som mindre trovärdig källa. Anledning till att denna källa används trots detta var avsaknaden av information i form av vetenskapliga artiklar. Med facit i hand skulle studie av en ännu äldre processor valts eftersom det finns mer trovärdig information om dessa, detta är något som kommer dras lärdom ifrån till framtida rapporter. 5

4 REFERENSER 4 Referenser Geyer, R, Georgi, A, and Nagel, W 2011, Coarse Grained Parallelized Scientific Applications on a Cost Efficient Intel Atom Based Cluster, Procedia Computer Science, 4, Proceedings of the International Conference on Computational Science, ICCS 2011, pp. 1977-1986 Solomon, B, Mendelson, A, Ronen, R, Orenstien, D, and Almog, Y 2003, Micro-operation cache: a power aware frontend for variable instruction length ISA, IEEE Transactions On Very Large Scale Integration (VLSI) Systems, 11, 5, pp. 801-811 Fog, Agner, 2017, The microarchitecture of Intel, AMD and VIA CPUs An optimization guide for assembly programmers and compiler makers, Technical University of Denmark Wang, P, Collins, D, Weaver, C, Kuttanna, B, Salamian, S, Chinya, G, Schuchman, E, Schilling, O, Doil, T, Steibl, S, Wang, H, 2009, Intel Atom Processor Core Made FPGA-Synthesizable, In Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrays (FPGA 09), ACM, pp. 209-218 Wasson, S, 2008, Intel s Atom processor unveiled, The Tech Report, Available at: https://techreport.com/review/14458/intel-atom-processor-unveiled Patterson, J, 2015, Modern Microprocessors - A 90-Minute Guide!, Lighterra.com, Available at: http://www.lighterra.com/papers/modernmicroprocessors/ wikichip.org, 2017, Bonnell - Microarchitectures - Intel, Available at: https://en.wikichip.org/wiki/intel/microarchitectures/bonnell Cepeda, S, 2017, Pipeline Speak: Learning More About Intel R Microarchitecture Codename Sandy Bridge Intel R Software, software.intel.com, Available at: https://software.intel.com/en-us/blogs/2011/11/22/pipeline-speak-learning-moreabout-intel-microarchitecture-codename-sandy-bridge Poushter, Jacob, 2016, Smartphone Ownership and Internet Usage Continues to Climb in Emerging Economies - But advanced economies still have higher rates of technology use, Pew Research Center Gerosa, G, Curtis, S, D Addeo, M, Kuttanna, B, Merchant, F, Patel, B, Taufique, M, Samarchi, H, A Sub-1W to 2W Low-Power IA Processor for Mobile Internet Devices and Ultra-Mobile PCs in 45nm Hi-K Metal Gate CMOS 2008, 2008 IEEE International 6

4 REFERENSER Solid-State Circuits Conference - Digest Of Technical Papers, Solid-State Circuits Conference, 2008. ISSCC 2008. Digest Of Technical Papers. IEEE International, p. 256 Hennessy, J, Patterson, D, Arpaci-Dusseau, A, 2007, Computer architecture : a quantitative approach, 4. uppl., Elsevier, Inc. Vox.com, 2016, Intel made a huge mistake 10 years ago. Now 12,000 workers are paying the price, Available at: https://www.vox.com/2016/4/20/11463818/intel-iphone-mobile-revolution Notebookcheck.net, 2017, Intel Atom Z500, Available at: https://www.notebookcheck.net/intel-atom-z500-notebook-processor.23741.0.html Atomic Operations in Hardware, Lecture 25, Computer Science and Engineering, CSE 378, University of Washington, 2007, Available at: https://courses.cs.washington.edu/courses/cse378/07au/lectures/l25-atomic- Operations.pdf 7