MESI-protokollets funktion i multiprocessorer

Relevanta dokument
Cache-koherens protokoll MESI och MOSI

MESI i Intel Core 2 Duo

Cache coherence hos multicoreprocessorer

Improved-MOESI Cache koherens Protokoll

Rapport (1,5 HP) Lunds Universitet HT15

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

MESI protokollet och dess derivater

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Cacheminne i en Intel Core 2 Duo-processor

Snapdragon 810: Cacheminnet

Cacheminne Intel Core i7

Datorarkitekturer med Operativsystem

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Cacheminne i en AMD Opteron Processor

What Is Hyper-Threading and How Does It Improve Performance

Öka prestanda i Shared-Cache multi-core processorer

Pipelining i Intel 80486

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Aktivitetsschemaläggning för flerkärninga processorer

Jämförelse av skrivtekniker till cacheminne

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

Hantering av hazards i pipelines

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Mer datorarkitektur. En titt I datorn Minnen

HF0010. Introduktionskurs i datateknik 1,5 hp

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

Digitalteknik och Datorarkitektur 5hp

Grafiska pipelinens funktion

Parallellism i NVIDIAs Fermi GPU

Hyper-Threading i Intelprocessorer

Terms and Conditions Digital Sheet Music

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

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

Föreläsningsanteckningar 5. Cacheminnen

Beijer Electronics AB 2000, MA00336A,

Grundläggande datavetenskap, 4p

Datorarkitekturer med operativsystem ERIK LARSSON

Filsäkerhet i Windows NT (NTFS)

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

Datorsystemteknik för E/D

Filöverföring i Windowsmiljö

Page 1. Aktuella utmaningar för ekonomistyrare. Tema: Aktuella utmaningar för ekonomistyrare. Vad är ekonomistyrning? Vilka är utmaningarna?

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

Minnet från processorns sida Datorteknik

SIMD i Intel s P5- baserade Pentium MMX

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)

Writing with context. Att skriva med sammanhang

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

Workplan Food. Spring term 2016 Year 7. Name:

Preschool Kindergarten

Datorsystem. Tentamen

Sara Skärhem Martin Jansson Dalarna Science Park

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Installation av F13 Bråvalla

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

2.1 Installation of driver using Internet Installation of driver from disk... 3

Tentamen den 18 mars svar Datorteknik, EIT070

Isolda Purchase - EDI

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Skärmbilden i Netscape Navigator

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

Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019

Citation for published version (APA): Warnquist, F. (2014). Introduktion till arrenden. Abstract från Arrenden, Lund, Sverige.

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

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

TSEA28 Datorteknik Y (och U)

Collaborative Product Development:

Hantering av hazards i multi-pipelines

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

Lösningsförslag till Tenta i Mikrodator

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

Exempeltentamen Datorteknik, EIT070,

1. Förpackningsmaskin / Packaging machine

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

Datorsystem. Tentamen

Arm Cortex-A8 Pipeline

Tentamen PC-teknik 5 p

Fortbildningsavdelningen för skolans internationalisering. Dossier 3. European Language Portfolio 16+ Europeisk språkportfolio 16+ English version

Tentamen den 17 mars 2016 Datorteknik, EIT070

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

FORTA M315. Installation. 218 mm.

2.45GHz CF Card Reader User Manual. Version /09/15

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Varmt välkommen som gästföreläsare till Juridiska fakulteten vid Lunds universitet

Anujan Balasingam IDA14 NAND flashminnen

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Windlass Control Panel v1.0.1

Uttagning för D21E och H21E

Digitala projekt rapport

Förändrade förväntningar

Transkript:

LUNDS TEKNISKA HÖGSKOLA CAMPUS HELSINGBORG MESI-protokollets funktion i multiprocessorer Jacob Petersson EDT621 Datorarkitekturer med Operativsystem 2016-HT

Abstract Denna rapport syftar till att visa hur cache coherency-protokollet MESI är uppbyggt och hur det fungerar för att motverka att oenhetligheter uppstår i cacheminnen för multiprocessorer. Mot bakgrund av detta syfte har rapporten utgått från följande frågeställningar: Hur ser teorin ut bakom protokollet? Hur löser protokollet problemet kring cacheminnen i multiprocessorer? Vad förbättrade MESI genom sitt exklusiva tillstånd i jämförelse med MSI-protokollet? MESI-protokollet innebär att ett block i minnet kan befinna sig i fyra olika tillstånd. Rapporten inkluderar vilka tillstånd som protokollet använder och vilka busstransaktioner som sker på den gemensamma bussen, samt en kort jämförelse med MSI-protokollet. Med sina tillstånd och busstransaktioner kan processorer hålla reda på aktuella kopior av block i minnet. Resultatet visar också att MESI-protokollet har ett exklusivt tillstånd som MSIprotokollet saknar och som förbättrar minneshanteringen. Slutsatserna som presenteras är att MESI-protokollet är ett effektivt sätt att motverka att det blir fel i minneshanteringen för multiprocessorer, samt att det ökar prestandan i jämförelse med MSI-protokollet som saknar det exklusiva-tillståndet. 1

1 Inledning 1.1 Bakgrund För att öka prestandan i datorer utvecklades multiprocessorer. Multiprocessorerna bar även med sig ett problem. Då processorerna arbetar tillsammans för att lösa problem måste de kunna samarbeta och synkronisera sig med varandra. Prestandan för minnet har inte ökat lika mycket som prestandan för processorer. För att minska det här glappet är tekniker för att reducera minnesåtkomsten för processorer viktiga. En metod för att lösa det här är att låta processorerna ha tillgång till privata cacheminnen som därmed flyttar data som ofta används närmare processorerna. Eftersom det kan finnas flera kopior av samma data så måste det finnas en mekanism som upprätthåller enhetligheten mellan cachekopior. Ett sätt att lösa det här problemet är genom hårdvarubaserade cache coherency protocols. (Dahlgren 1995, s. 7) Ett sätt att implementera dessa är protokoll är genom snooping. Detta innebär att processorer kan hålla koll på vad andra processorer skriver och läser när det behövs. Dessa protokoll kallas snoop-based cached coherency protocols. Då flera processorer är anslutna till en delad buss kan dessa protokoll användas. En processor reagerar om en busstransaktion görs som berör ett cacheblock som den själv har. (Mullins, s. 20) Ett av dessa protokoll är MESI. Protokollet gör det möjligt att upprätthålla samstämmigheten mellan cacheminnens innehåll i hierarkiska minnessystem. (Goméz-Luna m.fl. 2009, s. 1) Protokollet är även känt under namnet Illinois-protokollet (Culler m.fl. 1999, s. 285) 1.2 Syfte och problemformulering Syftet med denna rapport är att visa hur cache coherency protokollet MESI fungerar, samt hur det motverkar att det uppstår minnesproblem i multiprocessorer. Frågeställningarna lyder: Hur ser teorin ut bakom protokollet? Hur löser protokollet problemet kring cacheminnen i multiprocessorer? Vad förbättrade MESI genom sitt exklusiva tillstånd i jämförelse med MSI-protokollet? 2

2 MESI-protokollet 2.1 MESI-protokollets tillstånd MESI-protokollet är baserat på fyra tillstånd: Modified, Exclusive, Shared och Invalid, där varje inledande bokstav på tillstånden tillsammans bildar förkortningen MESI. Varje block i cacheminnet som använts befinner sig i av något av tillstånden. Övergången mellan dessa tillstånd är vad som utgör MESI-protokollet. (Goméz-Luna m.fl. 2009, s. 1) Tillstånden beskrivs på följande sätt: Invalid: It is a non-valid state. The data you are looking for are not in the cache, or the local copy of these data is not correct because another processor has updated the corresponding memory position. Shared: Shared without having been modified. Another processor can have the data into the cache memory and both copies are in their current version. Exclusive: Exclusive without having been modified. That is, this cache is the only one that has the correct value of the block. Data blocks are according to the existing ones in the main memory. Modified: Actually, it is an exclusive-modified state. It means that the cache has the only copy that is correct in the whole system. The data which are in the main memory are wrong. (Goméz-Luna m.fl. 2009, s. 2) Tillståndet av varje minnesblock i cachen ändras beroende på hur det används av en processor. När ett cacheminne är tomt och ett minnesblock skrivs till cachen av en processor så tilldelas blocket det exklusiva tillståndet Exclusive, som innebär att innehållet inte har blivit modifierat och att några kopior av blocket inte finns i något annat cacheminne förutom i detta block. Att tillståndet inte är modifierat innebär att primärminnet är aktuellt i förhållande till blocket. Om något skrivs till blocket så ändras tillståndet till det modifierade tillståndet Modified. Detta för att blocket bara finns i en cache och för att blocket i primärminnets innehåll skiljer sig. (Goméz-Luna m.fl. 2009, s. 2-3) Om det är samma processor som skriver till blocket så kan tillståndet gå från Exclusive till Modified utan att några busstransaktioner behöver göras, då ingen annan processor har en kopia av blocket. (Culler m.fl. 1999, s. 285) Befinner sig ett block i det exklusiva tillståndet när en processor försöker läsa det och inte hittar blocket så måste den istället hitta det i primärminnet för att sedan spara den till sitt cacheminne. Eftersom blocket då befinner sig i två olika cacheminnen så befinner sig det i tillståndet Shared. (Goméz-Luna m.fl. 2009, s. 3) Detta tillstånd innebär att noll eller fler caches har en kopia av blocket i ett omodifierat tillstånd. (Culler m.fl. s.1999, s. 280) 3

Om en processor vill skriva till ett block som befinner sig i Modified och om blocket inte finns i dess cache, så måste blocket rensas från cachen och sparas in i primärminnet då det är den mest aktuella kopian av det blocket i systemet. Processorn har då en aktuell version av blocket och kommer att skriva det till sitt cacheminne i det exklusiva tillståndet. Om en processor vill läsa ett block som den inte hittar i sin cache så beror det på att det inte är den senaste kopian av innehållet. Händer detta så måste blocket rensas från cachen och lagras i primärminnet. Blocket läses sedan och befinner sig i tillståndet Shared eftersom det då finns två kopior av blocket i systemet. Om en processor skriver till ett block i Shared så ändras tillståndet till Exclusive. (Goméz-Luna m.fl. 2009, s. 2-3) Tillståndet av ett block i cacheminnet kan ändras av en annan processor. MESI-protokollet ser till så att processorn har tillgång till det aktuella värdet varje gång det ska användas. Det är alltså inget problem om en processor skulle ändra data i primärminnet för att sedan lagra det i sitt eget cacheminne. (Goméz-Luna m.fl. 2009, s. 3) 2.2 Bus transactions Busstransaktionerna mellan tillstånden visas nedan i figur 1. Figur 1. Tillståndsövergångarna i MESI-protokollet (Mullins, s.38) 4

Det finns två olika förfrågningar som en processor gör. Dessa är att läsa (PrRd, Processor Read) eller att skriva (PrWr, Processor Write). (Culler m.fl. 1999, s. 280) Som man kan tyda ur figur 1 så behöver ingen busstransaktion göras då ett block ändras from Exclusive till Modified. (Culler m.fl. 1999, s. 285) Busstransaktionen BusRd/Flush innebär att om ett block befinner sig i Exclusive eller Modified och en cache frågar efter det så ska innehållet delas med efterfrågaren och tillståndet bytas till Shared. Om ett tillstånd får BusRdX/Flush så ska innehållet rensas och tillståndet ändras till Invalid. Vidare innebär busstransaktionen BusRdX/Flush att om ett block efterfrågas och flera processorer har kopior av det i sina cacheminnen så behöver bara ett block rensas. Flush i detta fall påverkar bara just den processor som förser kopian och rensar sitt block medan de andra processorerna inte behöver göra något. (Culler m.fl. 1999, s. 286) (Mullins, s. 36-38) MESI-protokollet behöver en till signal (Shared) på den fysiska sammanlänkningen av bussen. Signalen är tillgänglig för processorer för att kunna veta om en annan cache har datan som efterfrågas av en PrRd. När adresseringsfasen sker i busstransaktionen kollar alla caches om de har det efterfrågade blocket och bekräftar i så fall om de har det. Processorerna som efterfrågar blocket kan därefter se om någon annan processor har blocket i sin cache och därefter bestämma om blocket ska hamna i Exclusive eller i Shared. (Culler m.fl. 1999, s. 286) BusRd(S) innebär att den delade signalen blir bekräftad och att en annan cache har en kopia av innehållet. Motparten BusRd(S ) betyder att ingen cache har datan som efterfrågas. (Mullins, s. 35) 5

3 MESI-protokollets i jämförelse med MSI-protokollet MESI-protokollet fungerar snarlikt som MSI-protokollet som består av tre tillstånd(modified, Shared och Invalid). Protokollet använder dessa tillstånd för att skilja på modifierade och omodifierade block. Protokollet är ett invalidation-protokoll som används till write-back caches. I Shared-tillståndet finns blocket i ett omodifierat tillstånd och primärminnet och eventuellt andra caches har en aktuell version av blocket. Det modifierade tillståndet indikerar att det bara är denna processor som har en giltig kopia i sin cache. (Culler m.fl. 1999, s. 280) Det uppstår dock problem med MSI-protokollet om det används av en multiprocessor som kör en sekventiell applikation. Om den läser och ändrar ett block så genereras två stycken busstransaktioner. Busstransaktionerna som generas är en BusRd som ändrar tillståndet till Shared och den andra är en BusRdX som ändrar det från Shared till Modified, detta händer även om ingen annan delar blocket. För MESI- protokollet som har det extra exklusiva tillståndet Exclusive kan en busstransaktion sparas in då det exklusiva-tillståndet anger att det är en aktuell kopia och att ingen annan processor har en cachekopia. (Culler m.fl. 1999, s. 280, s. 285) 6

4 Diskussion med slutsatser MESI-protokollet är ett effektivt sätt att lösa coherency problemet som uppstår i multiprocessorer. Protokollet implementeras genom att block befinner sig i fyra olika tillstånd (Modified, Exclusive, Shared och Invalid). Tillstånden gör det tydligt för processorerna vilka som har kopior av ett block, om det modifierats, eller om det bara finns en kopia. Processorer kan se om andra har kopior genom att observera transaktionsbussen och därefter agera om det behövs. Protokollet ser till så att processorerna alltid får tag på en aktuell kopia genom dess implementering i multiprocessorer. MESI-protokollet ökar prestandan jämfört med MSI-protokollet som saknar det exklusivatillståndet som talar om att bara en cache har en kopia av blocket som inte blivit modifierat. Med detta tillstånd kan busstransaktionerna minskas jämfört med MSI-protokollet. En slutsats som kan dras är att multiprocessorer behöver någon form av kontroll av deras cacheminnen så det blir korrekt vid minneshantering och att MESI-protokollet är ett effektivt sätt att lösa det på. En annan slutsats är att MESI-protokollet är en förbättring i jämförelse med MSI-protokollet. Detta protokoll saknar det exklusiva tillståndet och innebär därmed mer busstransaktioner vilket drar ner prestandan. Med sitt exklusiva tillstånd ökar därför MESI-protokollet prestandan. 7

Källförteckning Culler, David. Pal Singh, Jaswinder Gupta, Anoop. 1999. Parallel Computer Architecture: A Hardware/Software Approach. M. Kaufmann, cop. San Francisco Dahlgren, Fredrik. 1994. Design and Performance Evaluation of Hardware-Based Cache Protocol Extension for Multiprocessors. Lund. Gómez-Luna, Juan. Herruzo, Ezequiel. Ignacio Benavides, José. 2009. MESI Cache Coherence Simulator for Teaching Purposes CLEI ELECTRONIC JOURNAL. April http://www.clei.org/cleiej/papers/v12i1p5.pdf (Hämtad 2016-11-21) Mullins, Roberts. (Årtal saknas). Chip Multiprocessors (I). http://www.cl.cam.ac.uk/~rdm34/acs-slides/lec4.pdf (Hämtad 2016-12-04) 8