SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Relevanta dokument
Rapport (1,5 HP) Lunds Universitet HT15

Cache-koherens protokoll MESI och MOSI

Improved-MOESI Cache koherens Protokoll

MESI i Intel Core 2 Duo

Cache coherence hos multicoreprocessorer

Cacheminne i en Intel Core 2 Duo-processor

MESI-protokollets funktion i multiprocessorer

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

MESI protokollet och dess derivater

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

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

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

Jämförelse av skrivtekniker till cacheminne

Cacheminne Intel Core i7

Cacheminne i en AMD Opteron Processor

Hantering av hazards i pipelines

Datorsystem. Tentamen

Snapdragon 810: Cacheminnet

Introduktion - LAN Design och switching concepts Basic Switch Concepts and Configuration Frågor? Referenser. Nätverksteknik 2

Öka prestanda i Shared-Cache multi-core processorer

Hyper-Threading i Intelprocessorer

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

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:

Nätverksteknik A - Introduktion till Routing

Föreläsning 5: Stora datanät Från användare till användare ARP

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

Datorarkitekturer med Operativsystem

Datorsystem. Tentamen

DIG IN TO Administration av nätverk- och serverutrustning

Aktivitetsschemaläggning för flerkärninga processorer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

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

Nätverksteknik A - Introduktion till VLAN

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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)

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

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

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

Grundläggande datavetenskap, 4p

ETS052 Internet Routing. Jens A Andersson

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Datorhårdvaruteknik 1DV426 - Seminarie 1

Parallellism i CDC 7600, pipelinens ursprung

Filöverföring i Windowsmiljö

Pipelining i Intel 80486

What Is Hyper-Threading and How Does It Improve Performance

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

ETS052 Internet Routing. Jens A Andersson

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Att köpa ny dator SeniorNet Lidingö Februari-2019

Datakommunika,on på Internet

Kapitel 5: Lokala nät Ethernet o 802.x. Lokala nät. Bryggan. Jens A Andersson (Maria Kihl)

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Lastbalansering för webbservrar

Nätverksteknik A - Introduktion till Routing

Från användare till användare ARP. (Maria Kihl)

Datorarkitekturer med operativsystem ERIK LARSSON

Resurshantering i Dual-Core kluster

Hantering av hazards i multi-pipelines

Datakommunikation vad är det?

Datorarkitekturer med operativsystem ERIK LARSSON

TBSK 03 Teknik för avancerade datorspel. Jens Ogniewski Information Coding Group Linköpings universitet

Arm Cortex-A8 Pipeline

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

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

IP routinghierarkier. Robert Löfman Institutionen för informationsbehandling Åbo Akademi, FIN Åbo, Finland e post: robert.lofman@abo.nospam.

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

ETS052 Internet Routing WILLIAM TÄRNEBERG

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.

Rättningstiden är i normalfall 15 arbetsdagar och resultat anslås sedan i Ladok inom en vecka (under förutsättning att inget oförutsett inträffar).

DIG IN TO Nätverksteknologier

Att Säkra Internet Backbone

4 Paket- och kretskopplade nät

Stora datanät Från användare till användare. Jens A Andersson

Grundläggande datavetenskap, 4p

Datakommunikation vad är det?

Minnet från processorns sida Datorteknik

SIMD i Intel s P5- baserade Pentium MMX

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

Ad hoc networks. Sven Claesson,

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

Spekulativ exekvering i CPU pipelining

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Kapitel 6, 7, o 8: ARP Vägval Från användare till användare. Jens A Andersson (Maria Kihl)

DT123G - Nätverksanalys

4 Paket- och kretskopplade nät

Ad-hoc-nätverk och spontana nätverk

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

DIG IN TO Administration av nätverk- och serverutrustning

Nät med flera länkar. Vägval. Enklaste formen av kommunikation:

Att köpa ny dator SeniorNet Lidingö September-2017

HF0010. Introduktionskurs i datateknik 1,5 hp

OH Slides F: Wide Area Networks

Datakommunikation. Nätskiktet. Routers & routing

Denial of Services attacker. en översikt

Distribuerade affärssystem

Totalt antal poäng på tentamen: 50 För att få respektive betyg krävs: U<20, 3>=20, 4>=30, 5>=40

Transkript:

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR EN INBLICK I HUR INTERCONNECTION OCH NUMA FUNGERAR DEN 5 DECEMBER 2016 FÖRFATTARE: NIKLAS SCHLIKER Examinator: Erik Larsson

Innehåll Abstrakt:... 2 1.1 Introduktion:... 3 1.1.2 Bakgrund:... 3 1.1.3 Syfte:... 3 1.1.4 Avgränsning:... 3 1.1.5 Metod:... 4 2.1 Genomförande:... 4 2.1.2 Shared memory (SMP):... 4 2.1.3 NUMA (non-uniform memory access):... 5 2.1.4 Interconnection:... 5 2.1.5 Bus Snooping (Cache coneherency):... 6 2.1.6 Applicering på I7-arkitekturen... 6 3.1 Jämförelse... 7 3.2 Fördelar och nackdelar... 7 3.2.1 Interconnection:... 7 3.2.2 NUMA:... 7 4.1 Slutdiskussion... 8 5. Referenser... 9 1

Abstrakt: Utvecklingen av allt starkare processorer går framåt. Dagens teknik har skapat det som kallas multiprocessorer. I dessa verkar flera kärnor tillsammans för att skapa en kraftigare processor. Denna rapport behandlar ett viktigt problem vad gäller multiprocessorer och deras arkitektur, nämligen hur kärnorna synkroniseras. Fokus ligger på Intels multiprocessorer, Intel core i7-arkitekturen mer specifikt. För att ett flertal kärnor ska kunna arbeta tillsammans i en dator krävs någon form av kommunikation mellan dem. I dagens processorer upprättas denna kommunikation med hjälp av interconnection - nätverk. Dessa kan se ut på olika sätt, vanligast är bus-nätverk eller switch-nätverk. De fungerar också på olika sätt då de har olika cache-coherency protokoll. Eftersom i7-aritekturen är central för rapporten kommer det centrala innehållet handla om NUMAarkitekturen, interconnection-nätverken och cache-coherency-protokollen som verkar i arkitekturen. 2

1.1 Introduktion: Detta avsnitt anger orsaken till rapporten, syftet med ämnet, varför fokuset ligger på just I7-processorn samt en tydligare bild över problemet som diskuteras i rapporten. 1.1.2 Bakgrund: I en multiprocessor är målet att ha låg latency (tiden det tar att skicka instruktioner och data mellan olika noder), hög bandbredd (mängden uppgifter som kan genomföras samtidigt) och hög skalbarhet (prestanda ska inte försämras med fler kärnor) (Machanda 2010, s.1). Det finns en mängd varianter på arkitekturer som försöker åstadkomma detta. Några exempel är Shared memory och Distributed memory. Eftersom antalet pipelines och trådar i processorerna blir allt fler har de vanligaste formerna av Shared memory -processorer (SMP) gått ur tiden (Ryzhyk 2006, sid 3). Den ökade snabbheten i modernare processorer leder till att minnet inte kan hantera mängden instruktioner som anländer och oönskade köer bildas. För att kunna optimera processorerna och minnena bättre övergick bland andra Intel och AMD till en annan arkitektur, NUMA (non-uniform memory access). Till skillnad från shared memory-system där antingen cache-minnen eller huvudminnen delades bland kärnorna, är NUMA ett system som ger var kärna sin plats i minnet och kan på så sätt undvika köer. NUMA-arkitekturen står dock för en rad utmaningar. I NUMA-arkitekturer är det synkronisering som är svårigheten. Eftersom kärnorna i arkitekturen inte delar minne krävs kommunikation mellan kärnorna för att undvika att samma uppgift exempelvis utförs på fler ställen än ett. För att motverka problem som detta upprättas ett interconnection-network. Rapporten kommer gå in närmre på detta. 1.1.3 Syfte: Rapportens mål är att ge läsaren en uppfattning om hur interconnection networks fungerar samt ge en övergriplig bild över hur synkroniseringen fungerar i Intels core I7-arkitektur. 1.1.4 Avgränsning: Processorn är en komplicerad skapelse och att beskriva den till fullo skulle ta lång tid. Rapporten fokuserar därför på det som händer mellan kärnorna och minnet. Rapporten reder ut det kommunikationsnätverk som verkar i Intels I7-arkitektur. Att beskriva NUMA och interconnectionnätverk i ett generellt perspektiv skulle också ta lång tid. Fokuset ligger på att förklara NUMA-arkitekturen, interconnection-nätverk samt redogöra för deras plats i den valda processorarkitekturen. 3

1.1.5 Metod: För att klargöra de begrepp som rapporten avgränsats till kommer begreppen definieras i genomförandedelen. Denna information kommer i jämförelsedelen sedan utvärderas. I slutet förs en diskussion och sammanfattning av det som tagits upp. 2.1 Genomförande: I följande avsnitt redogörs de centrala begreppen för att förstå synkroniseringen som sker mellan kärnorna i en multiprocessor. 2.1.2 Shared memory (SMP): Minnesarkitekturen i dagens multiprocessorer tenderar att gå två olika riktningar. Antingen så används Shared memory där processorkärnorna tillsammans delar ett globalt minne, eller Distributed memory. I denna arkitektur hålls varje kärnas minne privat (Machanda 2010, s.1). Minnesdelningen i Shared memory brukar antingen ske genom L2-cachedelning eller genom det vanligaste Main-memory delning. L2-cachedelning lämpar sig väl pågrund av att den interna trafiken i processorerna blir snabbare medan yttre kommunikation blir långsammare och risken för köbildning existerar. När delning sker med av Main-memory innebär det att varje kärna har sitt eget, privata cacheminne. Dessa delningsmetoderna sker fysiskt. Ett annat namn för dessa arkitekturstyper är UMA (uniform memory access). Alternativet till UMA är en annan slags arkitektur, där minnesdelning inte sker fysiskt, nämligen NUMA som är ett centralt begrepp i rapporten. Figur 1. UMA (Uniform memory access).. 4

2.1.3 NUMA (non-uniform memory access): I en NUMA-arkitektur tilldelas varje processorkärna sitt egna privata cacheminne samt mainminne. Liknande uppdelning av minne sker även i andra sorters arkitekturer, till exempel Distributed memory. Skillnaden mellan NUMA och Distributed memory är dock att NUMA-arkitekturen tillåter att kärnor kommunicerar och kontrollerar varandras minnen. Detta sker genom interconnectionnätverk (Machanda 2010, s.1). Figur 2. NUMA (Non-uniform memory access) 2.1.4 Interconnection: Interconnection-nätverk är det fysiska nät som kommunicerar mellan minne och kärnor. Dess främsta uppgifter är att maximera bandbredd och minimera latency. De två vanligaste typerna av interconnects är bus-driven interconnect eller switch-driven interconnect. I det busdrivna interconnection-nätverket skickas meddelande snabbare än i en switch-driven interconnect. Detta innebär låg latency medan bandbredden blir sämre. Orsaken till detta är att en buskanal endast kan användas av en kärna åt gången. Tvärtom blir det i ett switchdrivet nätverk där det finns fler kanaler för meddelandena att färdas mellan. Bandbredden blir därför högre men latencyn blir sämre på grund av att meddelandena måste färdas längre (Ryzhyk 2006, s.5). 5

Interconnection-nätverk kan gestaltas på olika sätt. Vilken form det ska tas bestäms med hjälp av en routing algoritm vars uppgift är att fastställa den rutt instruktioner och data ska färdas. Switchstrategi bestäms därefter. Den fastställer i vilken form datan ska överföras, antingen genom ciruit switching eller packet switching. I ciruit switching reserveras en rutt i en kanal redan innan data skickas. I packet switching bestäms rutten individuellt för varje paket (ibid). Det sista som normalt sätt fastställs är ett flödeskontrollschema vars uppgift är att hantera situationer när flera paket vistas samtidigt i nätet och hitta lösningar på hur de färdas. Interconnection-nätverket finns så att en multiprocessor med flera kärnor kan utföra mer än en uppgift samtidigt, på ett smidigt sätt. Det möjliggör en synkronisering mellan kärnorna som bäst kan beskrivas genom att ha förståelse för vanliga cache-coherencyprotokoll. Ett av dessa är snooping. 2.1.5 Bus Snooping (Cache coneherency): Cache-coherency refererar till förmågan att synkronisera en nods cacheminne med andra noders minnen. I en multiprocessor med flera kärnor och flera cacheminnen behövs ett protokoll som synkroniserar minnena. Snooping är ett cache-coherencyprotokoll som låter kärnor som uppkopplats i ett interconnection-nätverk ta del av vad som skickas från andra kärnor och uppdatera sina cacheminnen därefter. Snooping ser till att varje processor i ett nätverk har information kring ett paket innan det skrivs av processorn. Detta sker på två olika sätt, Write invalidate eller Write update. I invalidate-metoden talar snoopingprotokollet om för alla processorer att deras information slutat gälla i samband med att en processor gör en write. När dennes information uppdateras skickas denna information till de andra som också uppdaterar informationen (Patterson & Henessy 2014, s.468). I update-metoden sänds den uppdaterade informationen med paketet i busen så alla processorer kan ta del utav den. 2.1.6 Applicering på I7-arkitekturen I Intels processorarkitektur används begreppen ovan i någon form. Minneshierarkin bygger på NUMA. Varje kärna har sitt eget Cacheminne och beskärda del i Main memory. Synkroniseringen mellan kärnorna sker genom Intels egna interconnect, Intel Quickpath interconnect, där det mellan kärnorna sker writes på två bussar (Intel 2009, s.8). I bussarna finns 20 kanaler i vilka datapaketen kan flöda. I Intel core I7 används snooping som cache-coherencyprotokoll. Arkitekturen stödjer både source snooping och home snooping. Source snooping skickar ur en nods cacheminne ut förfrågningar kring cachelines till de andra noderna i nätverket. Om de har kopior av cachelinen i fråga skickas de till noden som utförde förfrågan. Där 6

ser protokollet till att ta bort de äldre versionerna enligt invalidate-metoden. Detta sätt ger lägst latency. I home snooping går förfrågningarna inte direkt från cacheminnet, utan måste först få klartecken från hemnoden innan de skickas. Detta leder till högre latency men mindre trafik (Molka et al 2015, s.3). Figur 3. Intels QuickPath Interconnect. 3.1 Jämförelse 3.2 Fördelar och nackdelar 3.2.1 Interconnection: När fördelar och nackdelar med interconnection diskuteras är det bra att återgå och kolla på ett systems främsta mål, nämligen hög skalbarhet, hög bandbredd och låg latens. Faktum är att ett ibland måste offras för ett annat, beroende på system. I ett desktopsystem likt dem Intel core I7 är implementerat i, som kopplas med hjälp av bussar, är både latens låg och bandbredden hög. Detta beror på att det är ett litet system jämfört med servrar och superdatorer. Där kan dock interconnecten skifta från bus till switchform och sträckorna data färdas blir längre. Då ökar även latensen. 3.2.2 NUMA: Numahierarkin har tydliga för och nackdelar. Eftersom minnesuppdelningen sker så att varje kärna har eget cacheminne och main-memory går det väldigt fort lokalt. Det är när kärnorna ska kommunicera med varandra som det börjar kosta en del latens. 7

4.1 Slutdiskussion Med målet att bringa förståelse för hur synkroniseringen fungerar i Intels core I7-arkitektur står det klart att det är ett avancerat system och kunskap om en rad olika tekniska termer inom datorarkitektur krävs. Rapporten gör sitt bästa för att förklara några av de centrala begrepp som i slutändan används för att beskriva det händelseförlopp som sker mellan processor, cacheminne och huvudminne. Som det ser ut idag är minneshierarkin NUMA (non-uniform memory access) populär och har tagit över från de övriga shared memory-hierarkierna. Arkitekturen erbjuder snabbare lokalt minne och kan, med hjälp av rätt interconnect samt cache-coherencyprotokoll, synkroniseras snabbt fastän processorn har flera kärnor. Rapporten påvisar hur Intel byggt upp sin arkitektur med dessa begrepp. I sin rapport från år 2006 skriver Leoni Ryzhyk såhär om interconnectmodeller. Buses connect communicating entities directly and therefore are generally faster under moderate loads. In contrast, messages in an interconnection network travel from the source to the destination through a number of switches, which leads to higher latencies but allows much better scalability. Intels QuickPath interconnect bygger på två bussar med 20 kanaler vardera. Diskussionen skulle kunna tas, huruvida, I7-arkitekturen som är en flerkärning arkitektur skulle tjäna på att bygga ett interconnectnätverk med switchar. Latens skulle offras för bättre skalbarhet och högre bandbredd. 8

5. Referenser 1. Leonid Ryzhyk (2006). Shared memory multiprocessors. Carnegie Mellon School of Computer Science. URL: https://www.cse.unsw.edu.au/~cs9244/06/seminars/04-leonidr.pdf (2016-12-05). 2. Daniel Molka, Daniel Hackenberg, Robert Schone, Wolfgang E. Nagel. (2015). Cache Coherence Protocol and Memory Performance of the Intel Haswell-EP Architecture. IEEE 2015. URL: https://tu-dresden.de/zih/forschung/ressourcen/dateien/abgeschlosseneprojekte/benchit/2015_icpp_authors_version.pdf?lang=en (2016 12-05) 3. Intel. (2009). An Introduction to the Intel QuickPath Interconnect. Publicerat av Intel. URL: file:///c:/users/schliker/downloads/quick-path-interconnect-introductionpaper%20(2).pdf (2016 12 05). 4. Patterson & Hennessy et al. (2014). Computer Organization and Design. Elsevier Inc. 5. Nakul Manchanda & Karan Anand. (2010). Non-Uniform Memory Access (NUMA). New York University. 9