Improved-MOESI Cache koherens Protokoll

Relevanta dokument
Cache-koherens protokoll MESI och MOSI

Cache coherence hos multicoreprocessorer

MESI i Intel Core 2 Duo

MESI protokollet och dess derivater

Rapport (1,5 HP) Lunds Universitet HT15

MESI-protokollets funktion i multiprocessorer

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

Cacheminne i en Intel Core 2 Duo-processor

Jämförelse av skrivtekniker till cacheminne

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Snapdragon 810: Cacheminnet

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

Datorarkitekturer med Operativsystem

Hantering av hazards i pipelines

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

Öka prestanda i Shared-Cache multi-core processorer

Cacheminne i en AMD Opteron Processor

Hyper-Threading i Intelprocessorer

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

Föreläsningsanteckningar 5. Cacheminnen

Cacheminne Intel Core i7

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

Hantering av hazards i multi-pipelines

Minnet från processorns sida Datorteknik

Datorsystem. Tentamen

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

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

Digitala System: Datorteknik ERIK LARSSON

Datorsystem. Tentamen

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.

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)

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

Datorsystem. Tentamen

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

TSEA28 Datorteknik Y (och U)

Tentamen den 18 mars svar Datorteknik, EIT070

Mer datorarkitektur. En titt I datorn Minnen

TSEA28 Datorteknik Y (och U)

Tentamen den 17 mars 2016 Datorteknik, EIT070

Grundläggande datavetenskap, 4p

Digitalteknik och Datorarkitektur 5hp

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

Datorarkitekturer med operativsystem ERIK LARSSON

Arm Cortex-A8 Pipeline

HF0010. Introduktionskurs i datateknik 1,5 hp

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

Exempeltentamen Datorteknik, EIT070,

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

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

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Datorsystemteknik för E/D

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Parallellism i CDC 7600, pipelinens ursprung

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Datorsystem. Exempeltentamen

Datorhårdvaruteknik 1DV426 - Seminarie 1

Datorteknik ERIK LARSSON

Digital- och datorteknik

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

Processor pipelining genom historien (Intel i9-intel i7)

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

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

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

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

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.

Pipelining i Intel 80486

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

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

Skärmbilden i Netscape Navigator

Filsystem - Inode. Datorteknik. Minnets komponenter. Programexekvering. Enhet för indata. Enhet för utdata CPU. Primärminne.

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

Aktivitetsschemaläggning för flerkärninga processorer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

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

SIMD i Intel s P5- baserade Pentium MMX

Parallellism i NVIDIAs Fermi GPU

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

Nätverksteknik A - Introduktion till Routing

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

Datorarkitekturer med operativsystem ERIK LARSSON

CE_O8. Cacheminne. Hemlaboration 2.

Digitala System: Datorteknik ERIK LARSSON

Datorteknik Y - Föreläsning 13

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

Datorteknik ERIK LARSSON

Multithreading in Intel Pentium 4 - Hyperthreading

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

Transkript:

Improved-MOESI Cache koherens Protokoll Abstrakt I en multicore, flerkärninga processor med delat minne kan koherens problem förekomma. En lösning till detta är att implementera cache koherens protokoll. Dessa protokoll spelar en viktig roll i processorns prestation. MSI, MESI och MOESI är ett par buss-baserade protokoll som redan finns att tillgå. Dessa skiljer sig huvudsakligen i hur de svarar på busstransaktioner och hur bussens tillståndsövergång. I denna rapport ska jag skriva om och jämföra fyra olika buss-baserade protokoll, de tre befintliga protokollen och även ett nytt protokoll som kallas för Improved-MOESI. Detta protokoll är en förbättrad version av MOESI protokollet. Hesham Altwaijry Diyab S. Alzahrani har gjort en jämförelse mellan dessa protokoll. Där kollar de bl.a på hur ofta primärminnet besöks, antalet writeback skrivningar för de olika protokollen vid cacheline-ersättningar och vid busstransaktioner. Resultaten visar att det nya protokollet presterar bäst av de fyra, när processkärnorna är färre. Inledning Multicore, flerkärniga processorer börjar bli allt vanligare ute på marknaden. En multicore processor ger en högre prestanda, reducerad energiförbrukning och gör multitasking mer effektivt. I en multicore processor kan varje core ha flera minnesplatser, ett primärminne och ett cache minne med flera nivåer. En instruktion eller data kan finnas på flera olika minnesplatser. När denna ändras kan det gamla värdet fortfarande ligga kvar på de andra platserna. Då är det viktigt att skapa koherens mellan de olika minnesplatserna, så att alla kopior av datan har det rätta värdet. Detta problem kan lösas på olika sätt.

Problemet kan lösas i mjukvaran, där man då sätter cacheable och non-cacheable taggar på datan. De data som är till för att endast läsas av är den enda typen av data som är cacheable. Dessa kan då sättas in i lokala cacheminnen medan de andra sätts in i en global cache. Man kan även implementera ett cache koherens protokoll i hårdvaran för att upprätthålla koherens mellan de olika minnesplatserna. Detta kan dock endast ske om cacheminnena använder sig av en gemensam buss. Det finns olika typer av cache koherens protokoll. En typ av cache koherens protokoll är Directory based protokoll. Där är det bara en enda plats som håller koll på vad som ligger i de befintliga cacheminnena och aktiviteten i de olika cacheminnena. Den andra typen är den så kallade Snooping protokollet: Snooping protokollen är den typ som förekommer oftast hos mulitcore processorer, på grund av dess simplicitet. Aktiviteten i cacheminnena kan ses av alla på den gemesamma bussen. Alla cacheminnes-kontrollanter på bussen får ett broadcast meddelande när en minnesrad, cacheline har uppdaterats i multicore processorn. När en minnesrad/cacheline ändras i en av processorkärnorna så skickas en invalidationsignal, ogiltigssignal ut på bussen. När en annan processorkärna vill använda data så måste denna begära den uppdaterade minnesraden från den processorkärna som skickade ut signalen. Det finns två olika typer av snooping prokoll: Write Invalidate- När en data skrivs eller ändras invalideras alla kopior i andra cacheminnen. Write Update- När datan skrivs eller ändras uppdateras datan i alla cacheminnen. Samtliga cache koherens protokoll använder sig av ett av dessa system. Protokollen skiljer sig i hur de svarar på olika händelser som uppmärksammas på bussen. I denna rapport tänker jag först skriva en kort sammanfattning av de tre befintliga MSI,MESI och MOESI protokollen. Sedan tänker jag skriva om ett nytt protokoll som kallas för Improved-MOESI och göra en jämförelse mellan dessa protokoll. Diskussion Det förekommer redan ett antal Cache Koherens protokoll. De protokoll som kommer att tas upp i denna rapport är MSI protokollet, MESI protokollet, MOESI protokollet och den nya Improved-MOESI protokollet, som är en förbättrad version av MOESI protokollet. MSI är ett av de mer simpla protokollen. En minnesrad kan hamna i tre olika tillstånd: modified, shared och invalid. Om en processorkärna har en minnesrad/cacheline som är i tillståndet modified så innebär detta att denna processorkärna är den enda som har denna

minnesrad i sitt cacheminne och att minnesraden i cacheminnet skiljer sig från det som finns i minnet. Shared tillståndet betyder att processorn har cachelinen i sitt cachminne, fast kopior kan förekomma i andra processorers cacheminnen. Kopian som finns i minnet stämmer överens med processorns cache. Invalid tillståndet innebär att cachelinen inte befinner sig i processorkärnans cacheminne. Tillståndsövergångar kan inträffa när processorkärna vill skriva eller läsa från en minnesrad. MESI protokollet är en förbättring av MSI då den har lagt till ett extra tillstånd, Exclusive. Exclusive tillståndet innebär att cachelinen endast förekommer i denna processorkärna och att kopian i minnet stämmer överens med cacheminnet. Fördelen med att ha detta extra tillstånd är att man sparar bus transaktioner. Ett cacheminne kan läsa av data från en minnesrad och skriva direkt till denna utan att först behöva meddela detta till de andra processorkärnorna. Detta är för att cacheminnet vet om att datan inte befinner sig på någon annan plats. Det tredje protokollet är MOESI protokollet som har fem tillstånd, en mer än MESI prtokollet. Det tillagda tillståndet är Owner tillståndet. Målet för detta protokoll är att minska tillträdet till primärminnet. Owner tillståndet innebär att processorkärnan är den som äger datan och den kan nås via just denna processor. Detta betyder att man inte behöver inträda primärminnet om datan finns i någon processorkärnas cacheminne. MESIF protokollet är lik MESI fast detta protokoll har, lik MOESI, ett femte tillstånd, Forward. Detta tillstånd är en specialiserad form av Shared tillståndet. Endast ett av de cacheminnen som delar data med andra cacheminnen kan hamna i detta tillstånd. Om datan begärs av en annan processor så är det detta cacheminnets ansvar att utlämna datan. Den nya Improved-MOESI protokollet är, som tidigare sagt, en förbättrad version av MOESI protokollet. Den ärver egenskaper från både MOESI och MESIF protokollet. Anledningen till att man inte ändrat namnet på Improved-MOESI protokollet är för att den har samma namn på sina olika tillstånd som MOESI. Det som skiljer dem åt är hur tillstånden fungerar. Det är Owner tillståndet i Improved-MOESI som skiljer sig från owner tillståndet i den klassiska MOESI protokollet. En processor cache som är i en owner state har tillåtelse att dela med sig data till en annan processorkärna, vid efterfrågan. Cachenminnet som efterfrågar datan behöver därför inte vänta tills datan har skrivits till primärminnet. Detta system reducerar trafiken till och från primärminnet och ledder till att data kan fås snabbare. Det är bara det cacheminnet, som ligger i owner tillståndet, som kan dela med sig datan. Detta betyder att bustrafiken kommer att minska, bandbredden sparas och prestandan kommer att öka. Konceptet som har tillämpats i detta protokoll, är den som säger att en resurs, som har refererats till en gång i tiden, kommer att refereras till igen inom en snar framtid. Därför har man möjliggjort för andra cache minnen att ge ut data, fastän de inte är i en owner tillstånd för cachelinen. Den nya kopian och cacheminnet kommer då istället att ta över owner tillstånd rollen.

Tillståndsgraf till Improved-MOESI Hesham Altwaijry och Diyab S. Alzahrani har jämfört de olika protokollernas tendens till write back när en cache ersätts, write back som orsakas vid observationer av busstransaktioner av en cache kontrollant och hur ofta primärminnet besöks vid behöv av en cacheline. Writeback vid cacheline ersättning förekommer när en write eller read operation misslyckas och då cachelinen ligger i en modified tillstånd. Writeback som orsakas av busstransaktioner sker när en busstransaktion observeras av en cache kontrollant. Ju fler writeback skrivingar desto sämre blir systemets prestanda. Primärminnet besöks varje gång datan inte kan hittas i någon cache eller när det inte finns någon processor som kan dela med sig datan. Fördröjningstiden leder till en sämre prestanda. I resultatet, som Hesham Altwaijry och Diyab S. Alzahrani presenterar, kan man se att writeback skrivingarna för Improved-MOESI protokollet minskar när antalet processorkärnor ökar. Detta betyder att varje processor arbetar med en mindre mängd av data, den uppvisar dock inte en låg kommunikation mellan cacheminnena. Detta betyder att antalet konflikter per cacheminne minskar. Ändå är resultatet en aning sämre än MESI och MSI protokollen. Man kan även se att antalet writeback skrivningar vid observationer av busstransaktioner är färre för Improved-MOESI protokollet jämfört med de andra protokollen. Antalet skrivingar ökar dock när antalet processorer ökar.

Primärminnet besöks mer sällan i Improved-MOESI, MOESI och MESI protokollen. Sämst resultat hade MSI protokollet. Resultatet blir ännu bättre för de tre protokollen när processorkärnorna ökar. Hesham Altwaijry och Diyab S. Alzahrani jämför även antalet gånger primärminnet besöks vid writeback, för de olika protokollen. MESI och MSI protokollen har liknande resultat fast sämre än MOESI protokollet. Improved-MOESI protokollet har minst antal besök. Men även här försämras resultatet för Improved-MOESI vid en ökning av processorer. Sedan undersöker de antalet gånger primärminnet besöks för både write back och vid cacheline kopiering. Improved-MOESI har bäst resultat även här, för fyra processorkärnor. Resultatet blir dock sämre för Improved-MOESI när antalet processorkärnor ökar. Vi kan se, baserat på Hesham Altwaijry och Diyab S. Alzahranis resultat, att cache koherens protokollet spelar en viktig roll i prestandandan för en multiprocessor med delat minne. Protokollet har en direkt inverkan på mängden trafik som genereras av processor förfrågningar. Resultatet visar även att Improved-MOESI protokollets övergripande prestation, när det gäller färre antal processorer, är bättre än MSI,MESI och MOESI protokollen. Referenser - Ulfsnes, R 2013, 'Design of a Snoop Filter for Snoop Based Cache Coherency Protocols', Networked Digital Library of Theses & Dissertations, EBSCOhost, viewed 7 December 2015 - Altwaijry, H, & Alzahrani, D n.d., 'Improved-MOESI Cache Coherence Protocol', Arabian Journal For Science And Engineering, 39, 4, pp. 2739-2748, Science Citation Index, EBSCOhost, viewed 7 December 2015.