Cache coherence hos multicoreprocessorer

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

Cache-koherens protokoll MESI och MOSI

Improved-MOESI Cache koherens Protokoll

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

MESI i Intel Core 2 Duo

MESI-protokollets funktion i multiprocessorer

MESI protokollet och dess derivater

Snapdragon 810: Cacheminnet

Jämförelse av skrivtekniker till cacheminne

Cacheminne i en Intel Core 2 Duo-processor

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Digitalteknik och Datorarkitektur 5hp

Cacheminne i en AMD Opteron Processor

Datorarkitekturer med Operativsystem

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

Öka prestanda i Shared-Cache multi-core processorer

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

Hantering av hazards i pipelines

Cacheminne Intel Core i7

Aktivitetsschemaläggning för flerkärninga processorer

Mer datorarkitektur. En titt I datorn Minnen

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Pipelining i Intel 80486

Datorsystem. Tentamen

Minnet från processorns sida Datorteknik

Tentamen PC-teknik 5 p

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.

Föreläsningsanteckningar 5. Cacheminnen

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

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

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

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

CE_O5. Cacheminne. Hemlaboration 2.

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Programmeringsteknik med C och Matlab

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Spekulativ exekvering i CPU pipelining

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Parallellism i NVIDIAs Fermi GPU

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

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.

Grundläggande datavetenskap, 4p

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

Datorsystem. Tentamen

Datorsystemteknik för E/D

Datorhårdvaruteknik 1DV426 - Seminarie 1

CE_O8. Cacheminne. Hemlaboration 2.

HF0010. Introduktionskurs i datateknik 1,5 hp

Hantering av hazards i multi-pipelines

Tentamen den 18 mars svar Datorteknik, EIT070

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 14 januari 2016 Datorarkitektur med operativsystem, EDT621

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

Beijer Electronics AB 2000, MA00336A,

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

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

Tentamen, Distribuerade System/Programvaruarkitektur

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

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

Att skriva till och läsa från terminalfönstret

TSEA28 Datorteknik Y (och U)

Läsminne Read Only Memory ROM

TSEA28 Datorteknik Y (och U)

Processor pipelining genom historien (Intel i9-intel i7)

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

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

Digitala System: Datorteknik ERIK LARSSON

TDDC76 - Programmering och Datastrukturer

Datorteknik ERIK LARSSON

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

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

Datorsystem. Exempeltentamen

What Is Hyper-Threading and How Does It Improve Performance

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Guido van Robot och olika UNIX-kommandon

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

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

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

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

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

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

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

Multithreading in Intel Pentium 4 - Hyperthreading

Arm Cortex-A8 Pipeline

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

Säkra pausade utskriftsjobb. Administratörshandbok

Grafisk teknik. Sasan Gooran (HT 2006)

Delta i undervisning online via Zoom

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

Lösningsförslag till Tenta i Mikrodator

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Tentamen. Datorteknik Y, TSEA28

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

Datorarkitekturer med operativsystem ERIK LARSSON

Swedish National Data Service

Transkript:

Cache coherence hos multicoreprocessorer Benjamin Holmqvist, EDT621 December 5, 2016 1

Contents 1 Inledning 3 2 Syfte 3 3 Cache Coherence 3 3.1 Implementering.......................... 4 3.2 Snoop baserade.......................... 4 3.3 Directory baserade........................ 5 4 MESI-protokollet 5 4.1 De fyra tillstånden........................ 6 4.2 Mer om exclusive......................... 6 5 Referenser 7 2

1 Inledning Information är någonting som är otroligt viktigt i dagens samhälle. Man försöker se till att alla får ta del av samma information för att till exempel forskning och flera andra områden ska kunna fungera så effektivt som möjligt. Detsamma gäller inom datorn. Ska man undvika att det blir fel inuti datorn gäller det att alla moduler har samma information så att när det ska genomföras ett handskak så är båda parter lika välinformerade. När hemsidor ska tolkas behöver man vara underfund vilka protokoll som ska användas och så vidare. Tittar man på en ännu lägre nivå som jag och mina klasskamrater har gjort på universitetet en längre tid nu förstår man just hur stor roll det kan spela inne i datorn mellan processorer och olika typer av minnen. I den här rapporten har jag valt att fokusera på cache coherence och MESI protokollet. 2 Syfte Att ge läsaren ökad förståelse för vad Cache Coherence är och hur MESIprotokollet fungerar. 3 Cache Coherence När man har ett multiprocessorsystem där varje processor har ett eget cacheminne och flera processer(trådar) körs samtidigt är det viktigt att se till att man läser rätt värden. Det finns flera ställen som kopior kan sparas på i detta fallet, både i huvudminnet som delas av processorerna i systemet och i varje separat cacheminne. När någon process gör en ändring till ett värde i cacheminnet måste även de andra kopiorna där värdet lagras ändras för att undvika fel i andra processer. Cache coherence är den metod som ser till att detta sköts så att värdena uppdateras i hela systemet utefter behov. 3

Condition of Coherency: 1) A read by a processor P, to a location X follows a write by P to X, with no writes of X by another processor occurring in between, always returns the value written by P. 2) A read by P to location X that follows a write by another processor to X returns the newly written value if the read and write are sufficiently separated. 3) Writes to the same location are serialized: that is two writes to the same location by any two processors are seen in the same order by all processors. Neupane, Mahesh (2004) Detta är alltså enligt Mahesh dem tre förhållanden som införande av cache coherence innebär. Den första punkten säger att så länge bara en processor läser/skriver till en plats i minnet utan att någon annan processor gör någon ändring så kommer det värdet som processorn skrev till den platsen att läsas. Punkt nummer två säger att om en annan processor däremot skriver till samma plats som den första processorn vill läsa kommer det nyskrivna värdet bara läsas om det gått tillräckligt lång tid från dess att värdet skrevs tills att en processor vill läsa värdet. Den tredje och sista punkten säger att om två processorer vill skriva till samma plats i minnet så kommer alla andra processorer se dessa två skrivningar i samma ordning. Om dessa förhållanden uppfylls kan man säga att systemet är cache coherent. 3.1 Implementering Det finns flera sätt att införa coherence till ett system. De två vanligaste metoderna kallas för Directory-Based och Snoop-based. 3.2 Snoop baserade Snoop-baserade protokoll går ut på att för varje transaktion på bussen måste det göras en cache-lookup som kollar om det finns en cache-line som tillhör transaktion en på bussen. När detta sker kommer alla andra kärnor att tjuvlyssna på bussen, de kommer snoopa på bussen. Detta gör att alla kärnor håller sig uppdaterade på vad som ändras i det delade minnet och vad som inte ändras. Eftersom denna variant använder en slags broadcast till alla processorer kräver det mer bandbredd på bussen och gör det svårare att skala upp denna metod om man vill ha fler processorer till exempel. Det går dock väldigt snabbt med så kallad cache-to-cache överföring av data. 4

3.3 Directory baserade När det kommer till protokoll som implementerar en Directory-based lösning så använder man ett slags filter mellan processorn och det delade cacheminnet. Processorn måste ges tillåtelse att få läsa in/skriva i primärminnet som delas. När en directory till en processor får reda på att en ändring gjorts i det delade minnet kommer den uppdatera eller invalidera datan på de andra icke-delade kända platserna som datan lagras. Den här metoden är att föredra när man har fler processorer och minnet är mer fördelat. Eftersom man inte behöver broadcast för att nå ut till alla processorer sparar man här på bussens bandbredd och gör den lättare att skala upp till flera processorer. 4 MESI-protokollet Det här är ett protokoll som bygger vidare på MSI protokollet. Det utvecklades på University of Illinois at Urbana-Champaign i delstaten Illinois i USA och kallas därför även för Illinois protokollet. Det här protokollet är ett av dem protokoll som använder Snooping för att bibehålla cache coherence. När en processor vill skriva till cacheminnet finns det två olika policyer som kan användas, write-through och write-back. Det här protokollet implementerar det senare alternativet som i kort innebär att skrivningen enbart görs till cacheminnet och inte som backup i primärminnet. Write-back är lite mer invecklat att implementera än vad write-through är eftersom man på något sätt behöver hålla reda på vilken av datans platser i cacheminnet som skrivits över, det här gör man med en så kallad dirty bit. I MESI-protokollet så används denna dirty bit inte bara för att markera att denna data blivit invalid som MSI-protokollet gör. Man får en ledtråd till detta genom förkortningen, MESI står nämligen för Modified Exclusive Shared Invalid. Här behövs den så kallade dirty bit:en kunna signalera fler stadier än enbart invalid. Denna bit beskriver datan likt ett tillståndsdiagram. Det finns fyra stycken tillstånd och de kommer behandlas i kronologisk ordning. 5

4.1 De fyra tillstånden Modified innebär att denna data enbart existerar inom det cache man nu befinner sig i och att den är dirty, den har blivit modifierad och är inte samma som värdet den hade innan i primärminnet. Denna data måsted skrivas tillbaka till primärminnet innan någon annan läsning utav denna data får ske. När denna skrivning sker ändras tillståndet till Shared. Exclusive innebär att datan enbart existerar inom det cache man nu befinner sig i men inte är dirty utan att den är så kallad clean, det är samma information som när den lästes från primärminnet. Denna data kan kastas bort när som helst utan att en backup skrivs till primärminnet. Shared visar att denna data kan vara lagra även på andra cacheminnen och är clean. Invalid betyder att denna data inte ska användas. 4.2 Mer om exclusive Införningen av detta exklusiva tillstånd innebär att processorn kan skriva till datan som är i exclusive tillstånd utan att behöva samtala med de andra kärnorna för att kunna gå från exclusive till modified eftersom exclusive tillstånd innebär att det är den enda kopian i cacheminnet just då. Det här är den största skillnaden gentemot MSI till exempel där det exklusiva tillståndet inte finns. Processorn behöver alltså inte göra ett anrop till de andra kärnorna och detta sparar på transaktion över bussen. Denna ändring medför signifikant förbättring i tidsåtgång när processorn vill skriva till data som har tillståndet exclusive. 6

5 Referenser En.wikipedia.org. (2016). Cache coherence, [viewed 2 December 2016], https://en.wikipedia.org/wiki/cache_coherence Neupane, M.(2004). Cache coherence https://web.archive.org/web/20100620091706/http://cse.csusb. edu/schubert/tutorials/csci610/w04/mn_cache_coherence.pdf Ulfsnes, R.(2013). Design of a Snoop Filter for Snoop Based Cache Coherency Protocols. Norwegian University of Science and Technology http://www.diva-portal.org/smash/get/diva2: 649627/FULLTEXT01.pdf En.wikipedia.org. (2016).MESI protocol, [viewed 2 December 2016], https://en.wikipedia.org/wiki/mesi_protocol En.wikipedia.org. (2016).MSI protocol, [viewed 2 December 2016], https://en.wikipedia.org/wiki/msi_protocol En.wikipedia.org. (2016).Bsu Snooping, [viewed 3 December 2016], https://en.wikipedia.org/wiki/bus_snooping Shen, K. (2011). Shared Memory Multiprocessors and Cache Coherence. https://www.cs.rochester.edu/~kshen/csc258-spring2011/lectures/ lecture6-mpcoherence.pdf Patterson, D. (1996). Snooping vs. Directory Based Coherency.Berkeley Electrical Engineering and Computer Sciences. https://people.eecs.berkeley.edu/~pattrsn/252f96/lecture18.pdf Brorsson, M.(2014). Intro to Coherence. [video] https://www.youtube.com/watch?v=mhur0olfkww [2016-12-3] Brorsson, M.(2014). More on Coherence. [video] https://www.youtube.com/watch?v=uxtdojeu-yu [2016-12-3] Trigonakis, V. (2015). MESI Cache Coherence Protocol. [video] https://www.youtube.com/watch?v=-p9tfmmu1pe [2016-12-2] Luo, Y. (2013). Cache Coherence part 2. [video] https://www.youtube.com/watch?v=fzn5srsl4am [2016-12-2] Henty, D. (2012). Multicore Memory Caching Issues - Cache Coherency [video] https://www.youtube.com/watch?v=s3kg_zcz_pa [2016-12-3] 7