MESI protokollet och dess derivater

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

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

MESI-protokollets funktion i multiprocessorer

Snapdragon 810: Cacheminnet

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Cacheminne i en Intel Core 2 Duo-processor

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Datorarkitekturer med Operativsystem

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

Cacheminne i en AMD Opteron Processor

Jämförelse av skrivtekniker till cacheminne

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Datorsystem. Tentamen

Cacheminne Intel Core i7

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.

Datorhårdvaruteknik 1DV426 - Seminarie 1

Hyper-Threading i Intelprocessorer

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)

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Öka prestanda i Shared-Cache multi-core processorer

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 18 mars svar Datorteknik, EIT070

Pipelining i Intel 80486

Datorsystemteknik för E/D

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

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

Datorsystem. Tentamen

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Hantering av hazards i pipelines

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

Pipelining i Intel Pentium II

Datorarkitekturer med operativsystem ERIK LARSSON

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Processor pipelining genom historien (Intel i9-intel i7)

Mer datorarkitektur. En titt I datorn Minnen

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

Dugga 1 status 41 godkända 39 ej godkända ERIK LARSSON

Hantering av begränsat antal skrivningar på Solid State diskar

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

Datorteknik ERIK LARSSON

Datorsystem. Tentamen

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

Parallellism i NVIDIAs Fermi GPU

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

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

Minnet från processorns sida Datorteknik

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

TSEA28 Datorteknik Y (och U)

Föreläsningsanteckningar 5. Cacheminnen

TSEA28 Datorteknik Y (och U)

Exempeltentamen Datorteknik, EIT070,

Aktivitetsschemaläggning för flerkärninga processorer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

DIG IN TO Administration av nätverk- och serverutrustning

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Skärmbilden i Netscape Navigator

DIG IN TO Administration av nätverk- och serverutrustning

Nätverksteknik A - Introduktion till Routing

Datorsystem. Exempeltentamen

Moderkortet Persondatorer Moderkortet Innehåll

Prestandamätning av RAID-lösningar

Digitala System: Datorteknik ERIK LARSSON

ETS052 Internet Routing. Jens A Andersson

ETS052 Internet Routing. Jens A Andersson

DIG IN TO Administration av nätverk- och serverutrustning

KURSMÅL WINDOWS STARTA KURSEN

SIMKORTLÄSARE BRUKSANVISNING

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

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

DEC Alpha instruktions Arkitektur

SGH-A400 WAP Browser Användarhandbok

DIG IN TO Administration av nätverk- och serverutrustning

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

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

PSTYR OBS! Om du ska installera på en dator med Microsoft Windows XP så måste servicepack 3 vara installerad.

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.

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

Rensa cache-minnet hos din webbläsare

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).

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Riktlinjer för elektroniska utlämnanden

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

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

Datorsystemteknik DVGA03 Föreläsning 8

1. BESKRIVNING 2. HANDLEDNING Förberedelser

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

IPv6 Jonas Aronsson 3TEa

Diskprestanda Tester

Transkript:

LTH LUNDS TEKNISKA HÖGSKOLA MESI protokollet och dess derivater Peter Persson 2015-12-08

Sammanfattning Dagens multicore processorer använder sig av ett flertal cacheminnen. Därför behövs det metoder för att se till att den lagrade datan är sammanhängande mellan de olika cacheminnena. En sätt att göra detta är att använda sig av MESI protokollet. Syftet med denna rapport är att undersöka och förklara hur MESI protokollet fungerar samt ta en titt på andra protokoll som har deriverat från MESI protokollet. De protokoll som undersöks i denna rapport utöver MESI protokollet är MSI, MOSI, MOESI, MERSI och MESIF.

Inledning I moderna datorsystem med multicore processorer eller multiprocessor system används ofta fler än ett cacheminne. Detta kan leda till problem med minnes-samstämmighet eller Cache Coherence. Till exempel om en processorkärna A tar data från primärminnet och lagrar det i cacheminne C1 för att användas i en beräkning. Sedan tar processorkärna B samma data från primärminnet och utför en beräkning som leder till ett nytt resultat, som sparas i cache C2. Nu skiljer sig datan i C1 och C2 mot varandra vilket kommer leda till vidare problem när A sedan ska utföra sina beräkningar. Ett sätt att undvika problem som dessa är att använda sig av cache coherence protokoll som MESI protokollet. Diskussion MESI protokollet är ett vanligt förekommande protokoll som används bland annat av Intel 64 arkitekturen. Den fungerar genom att alla cachelinjer markeras med en av fyra möjliga tillstånd: Modified, Exclusive, Shared, och Invalid. Därifrån kommer även namnet. Från början är alla cachelinjer markerade som Invalid. Detta innebär att de är oanvända och kan användas för att spara ny data. När data först hämtas från primärminnet och sparas i cachen markeras linjen som Exclusive. Det betyder att datan finns i endast ett cacheminne och den är den samma som datan i primärminnet. Om kärna A har data sparad i sitt cacheminne som är markerad Exclusive och en annan kärna, B, behöver tillgång till samma data kan den kopiera datan direkt till sitt eget cacheminne. Därefter markeras bägge cachelinjer som Shared vilket innebär att datan kan vara sparad i olika cacheminnen men är fortfarande den samma som i primärminnet. Cachelinjer som är markerade som Shared kan kastas och bli markerade som Invalid när som helst. Det sista tillståndet, Modified, markerar att en cachelinje har blivit ändrad av någon beräkning. Övergång till Modified är endast tillåtet om linjen tidigare var markerad som Exclusive. Om det istället var Shared måste de övriga cacheminnen som har datan sparad först markeras som Invalid så att gammal data inte används. Dessutom får inga fler läsningar av den relavanta minnesplatsen i primärminnet utföras innan den ändrade datan från cacheminnet har sparats tillbaka [1]. Det finns också ett flertal andra cache coherence protokoll.

Ett sådant är MSI protokollet som är ett enklare system som MESI är en utökning av. Skillnaden i stora drag är att MSI saknar ett Exclusive tillstånd. De resterande tre, Modified, Shared och Invalid fungerar likadant som i MESI. Nackdelen med att tillstånd Exclusive inte finns är att det ökar trafiken när man vill skriva till ett block som endast finns i en cache. Med MESI kan man enkelt övergå från Exclusive till Modified, men i MSI finns det endast Shared som alltid måste se till att inga andra cacheminnen har kvar gammal data. En annan utökning av MSI protkollet är MOSI. Modified, Shared, och Invalid fungerar här igen som i de tidigare nämnda protokollen men istället för ett Exclusive tillstånd finns det Owned. Om en cachelinje är markerad som Owned innebär det att datan den innehåller är den senaste och korrekta versionen av datan. Andra cacheminnen kan fortfarande ha den nuvarande eller äldre versioner av datan och vara markerade som Shared men endast en cachelinje med en viss data kan vara markerad som Owned i ett system, precis som Exclusive. Inkluderingen av Owned markören gör det möjligt att ha cachelinjer som är både Modified och Shared samtidigt. MOESI protokollet är sedan ett protkoll som använder alla de tidigare använda tillstånden och används bland annat av AMD64 arkitekturen [2].Fördelen med MOESI över tidigare protkoll är att efter en cachelinje har blivit modifierad behöver det inte sparas tillbaka till primärminnet innan det delas med de andra cacheminnena. Eftersom Owned markerar vilket som är det senast uppdaterade versionen av datan kan man skicka det till de andra cacheminnena och använda det. Uppdatering av primärminnet är fortfarande nödvändigt men med MOESI protokollet går det att skjuta upp. Dett finns även MERSI protkollet som används av PowerPC G4. Det fungerar som MESI men med ett femte tillstånd Recent. Cachelinjer markerade som Recent får inte användas av en processor och övergå till Modified innan processorn har begärt ägarskap över linjen vilket förhindrar andra kärnor eller processorer från att använda den. Ett protokoll som fungerar lite annorlunda är MESIF som används av Nehalem arkitekturen. MESIF är en variation av MESI som tillägger ett Forwarding tillstånd [3]. Om ett flertal cacheminnen innehåller samma data skulle de alla vara markerade som Shared om man använder sig av MESI protokollet. Med MESIF kommer alltid en utav dem istället vara markerad som Forwarding. MESIF vs. MESI Det innebär att den linjen har som uppgift att skickas till andra minnen som behöver data vid en läsningsbegäran. Detta är användbart då inte alla linjer markerade som Shared behöver besvara läsningsbegäranden [4]. Dessutom behöver enheten som utförde begärandet alltid bara behandla ett svar.

Referenser 1.https://lagunita.stanford.edu/c4x/Engineering/CS316/asset/A_Primer_on_Memory_Consistency_and_C oherence.pdf, hämtad 2015-12-05 2. http://developer.amd.com/wordpress/media/2012/10/24593_apm_v21.pdf, hämtad 2015-12-05 3. http://sc.tamu.edu/systems/eos/nehalem.pdf, hämtad 2015-12-06 4. Goodman JR, Hum, HHJ (2009). MESIF: A Two-Hop Cache Coherency Protocol for Point-to-Point Interconnects. https://researchspace.auckland.ac.nz/handle/2292/11594 Bilder: 1. http://sc.tamu.edu/systems/eos/hardware.php 2. http://www.realworldtech.com/common-system-interface/5/