MESI i Intel Core 2 Duo

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

Rapport (1,5 HP) Lunds Universitet HT15

Improved-MOESI Cache koherens Protokoll

Cache coherence hos multicoreprocessorer

MESI-protokollets funktion i multiprocessorer

Cache-koherens protokoll MESI och MOSI

MESI protokollet och dess derivater

Cacheminne i en Intel Core 2 Duo-processor

Jämförelse av skrivtekniker till cacheminne

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Datorarkitekturer med Operativsystem

Snapdragon 810: Cacheminnet

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

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

Cacheminne Intel Core i7

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Hantering av hazards i pipelines

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

Tentamen den 17 mars 2016 Datorteknik, EIT070

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.

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

Cacheminne i en AMD Opteron Processor

Föreläsningsanteckningar 5. Cacheminnen

Hyper-Threading i Intelprocessorer

Minnet från processorns sida Datorteknik

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

Öka prestanda i Shared-Cache multi-core processorer

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

Pipelining i Intel 80486

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Digitala System: Datorteknik ERIK LARSSON

32 Bitar Blir 64 Sammanfattning

HF0010. Introduktionskurs i datateknik 1,5 hp

Processor pipelining genom historien (Intel i9-intel i7)

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

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen PC-teknik 5 p

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

Grundläggande datavetenskap, 4p

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

Parallellism i CDC 7600, pipelinens ursprung

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

Datorsystemteknik för E/D

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

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

Mer datorarkitektur. En titt I datorn Minnen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Digitalteknik och Datorarkitektur 5hp

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

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

Syfte. Praktisk datorkunskap. Personal. Kursinfo. Examination- Krav för godkänt. Agenda idag DVG A06

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.

Tentamen den 18 mars svar Datorteknik, EIT070

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

Exempeltentamen Datorteknik, EIT070,

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorhårdvaruteknik 1DV426 - Seminarie 1

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

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

Datorsystem. Tentamen

Datorteknik ERIK LARSSON

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Hantering av hazards i multi-pipelines

Datorsystem. Tentamen

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

Digitala System: Datorteknik ERIK LARSSON

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

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

Institutionen för Datavetenskap Department of Computer Science

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

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

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

Läsminne Read Only Memory ROM

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Diskprestanda Tester

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

IT för personligt arbete F5

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

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

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

CE_O8. Cacheminne. Hemlaboration 2.

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

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

KURSMÅL WINDOWS STARTA KURSEN

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

Instruktioner för uppdatering av enheter med ISP

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

DEC Alpha instruktions Arkitektur

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Datorsystem. Exempeltentamen

Transkript:

MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den har och hur de kommunicerar med minnet, och hur den håller sina cacher konsistenta med MESI protokollet. MESI beskrivs, hur dess tillstånd förändras när processorn försöker läsa eller skriva till och från cache och hur buss snooping fungerar och hur det ändrar tillstånden i cacherna. Inledning För att minska tiden som en processor spenderar i primärminnet och hämtar data, vilket tar mycket tid, så använder processorn cacheminnen. I cacheminnet sparas kopior av data som användes senast av processorn, detta för att processorn ska kunna komma åt data snabbt i framtiden, man antar att om man har använt data för en stund sedan så ska man kanske snart använda den igen. Man kan ändra på data som är lagrat i cacheminnet och om man ändrar på data i cacheminnet så ändrar man till slut denna datan i primärminnet, men detta sker inte alltid direkt utan ofta så ligger datan ändrad i cacheminnet ett tag innan det skrivs tillbaka till primärminnet. Nu för tiden har utvecklingen av processorer börjat gå mot processorer som använder sig av multicore system. Där de då har flera kärnor där varje kärna består av en liten processor som utför beräkningar, skrivningar osv, medan allt styrs av den stora processorn. Varje kärna har sitt eget lokala cacheminne. När man använder sig av fler än ett cacheminne, vilket blir vanligare ju längre utvecklingen av multiprocessorer kommer, då behöver man protokoll som har hand om kontrollen av minnet. Man måste kontrollera hur minnet blir uppdaterat och hur cacheminnena kontrollerar och vet om en minnesrad är användbar eller inte, för att förhindra in konsistenta cacheskrivningar. Cache coherence är vad som händer när två eller flera lokala cacheminnen använder sig av samma primärminne. Om man t.ex. har två cacheminnen och det ena minnet får uppdaterad data, då kan det andra cacheminnet vara kvar med en ogiltig cache med data utan att veta om att datan är ogiltig, sedan när processorn kallar på den ogiltiga cache raden så får den tag på fel data. För att undvika att detta inträffar så används cache coherence protokoll för att hålla koll om någon data har blivit ändrad, och sedan uppdatera alla cacheminnena där denna data finns lagrad. I denna rapport beskrivs en processor (Intel Core 2 Duo) vars cacheminnen använder sig av ett specifikt protokoll (MESI protokollet) som används i cacheminnen för att hålla data som är lagrad i dem konsistent. Detta kallas också för cache coherence protokoll.

Slutledning Under de senaste åren inom utvecklingen av processorer så har utvecklingen gått mot processorer med flera kärnor. När en processor har fler än en kärna så kan den utföra fler än en process eller beräkning parallellt. Detta gör att det går mycket snabbare att exekvera program och att man kan ha flera program igång parallellt. Intel Core 2 Duo var en processor som tillverkades av Intel från år 2006 till år 2011. Den hade en max klockfrekvens från 1.06 GHz till 3.33 GHz beroende på vilken version som man köpte. Den var den andra i Intels Intel Core serie och användes både till bärbara och stationära datorer. Processorn hade två kärnor den hade instruktions set x86 och x86-64. Vilket gjorde att den kunde användas med operativsystem som var upp till 64 bitar för den hade register som var 64 bitar i storlek. I processorn Intel Core 2 Duo som använde sig av ett multicore system med två kärnor alltså med två små processorer som arbetar parallellt och sköter alla beräkningar, läsningar och skrivningar till och från minnet, medan själva processorn styr de två små processorerna. I ett multicore system så kommunicerar de olika kärnorna via laddningar och lagringar till och från det delade minnet. Dessa sker på den delade minnesbussen som går till det delade minnet. Figur 1Intel core 2 duo inre process Som man kan se i figur 1 så har de två kärnorna ett delat minne, en delad minnes buss där alla läsningar och skrivningar till cacheminnena sker och vars ett lokalt cacheminne. För att hålla de separata cacheminnena konsistenta, alltså för att alla cacheminnen har uppdaterad data och inte gammal överskriven data, så måste de använda sig av ett cache coherence protokoll. Cache coherence protokoll är ett protokoll som sköter det så att kärnornas lokala cacheminnen hålls konsistenta, vilket betyder att det gör så att cacherna vet om de håller data som inte längre är aktuell.

Det finns många olika cache coherence protokoll men i denna processor så används MESI protokollet. MESI är ett av de vanligaste cache coherence protokollen. Det utvecklades i USA på universitet i Illinois och kallas därför ibland för Illinois protokollet. Cache coherence händer på chipet, det är en hårdvarulösning. MESI står för de olika tillstånden som protokollet har: M- Modified E- Exclusive S- Shared I- Invalid Om tillståndet är Modified så finns den data man söker i cacheminnet som man är i nuvarande och det har blivit modifierat, datan har ändrats från datan som finns lagrat i det delade minnet, men en read kan fortfarande hända från det nuvarande cacheminnet, men man kan inte utföra en read från det icke modifierade delade minnet. När write-back händer, alltså när datan från cacheminnet skrivs tillbaka till det delade minnet, så ändras tillståndet till Exclusive. Om tillståndet är Exclusive så finns den data som man söker i det nuvarande cacheminnet och den har inte blivit modifierad. Så den är identisk med data som finns lagrad i det delade minnet. Tillståndet kan ändras till Shared närsomhelst. Den kan också ändras till Modified tillståndet när en write händer till cache. Om tillståndet är Shared så kan datan från cache raden användas av de andra cache minnena eftersom datan är ren den har inte blivit modifierad och den matchar datan som finns i det delade minnet. Om en skrivning sker till någon av cacherna så kan tillståndet ändras till Invalid. Om tillståndet är Invalid så sker ingen read eller write från cache utan datan måste hämtas från det delade minnet för datan finns inte längre eller har aldrig funnits i cachen. Det finns olika anledningar för att tillståndet i cachen ska ändras. Tillståndet ändras som en funktion av minnes access händelser, alltså när processorn försöker få tillgång till cachen, för att skriva till cachen eller för att läsa från cachen. Den andra anledningen för att tillståndet på cache raden ändras är aktivitet i bussen som kopplar de olika processorerna till det delade minnet. För att en cache ska få reda på snabbt om en eller flera av deras cache rader blir Invalid så håller varje cache koll på bussen som kopplar de olika processorerna med det delade minnet. Varje cache vet vilka cache rader som de har och de vet deras adresser så de har koll på bussen, och om de märker att en av deras adresser rör sig i bussen så kan de anta att den datan snart kan bli Invalid och då ändrar den tillstånd på den cache raden. Detta kallas för snooping. Cacherna kan se om en write operation händer i någon av de andra cacherna eftersom när en write händer så sänds det ut ett meddelande på minnesbussen som har adressen till den data som det händer på, adressen som pekar någonstans i det delade minnet. Om en cache ser i bussen att en adress som den har cachat får en write operation utförd på sig så ändrar den cache raden med adressen i till tillståndet Invalid, för den antar att den data om den hade cachat är nu inaktuell och kan inte längre bli läst ur cachen.

Figur 2MESI tillstånds diagram I figur 2 så står de olika beteckningarna för: PrRd = Processor Read - Read request från processor, PrWr = Processor Write - Write request från processorn, BusRd = Bus - Read request från mines bussen utan avsikt att modifiera. The 'S' betyder att den delade signalen BusRdX = Bus Read Exclusive - Read request från minnesbussen med avsikt att modifiera. I figur 2 så kan man se hur de olika tillstånden ska förändras när read och write funktioner händer i processorn. Man kan också se hur de förändras när caherna läser från minnesbussen och tolkar resultatet. MESI är inte ett perfekt protokoll, den har problem när den försöker utföra en write operation till en invalid cache rad. Det blir en lång fördröjning när cache raden hämtas från det delade minnet, för att sedan kunna skriva till den raden när den har hämtats. För att dra ner på denna fördröjning så har processorn buffrar som gör att när raden har hämtats så skrivs det till den direkt i minnesbuffren istället för att vänta till den kommit hela vägen till cachen som den ska till och sen göra en write request så write requesten behöver inte vänta. Men det kan hända andra problem när den använder sig av bufferten, den måste skanna bufferten varje gång den vill göra ett write request för att se om raden som den ska skriva till finns och väntar i bufferten. Det kan också bli att det blir invalid på grund av att de andra kärnorna inte får reda på att en rad blivit ändrad tills det skrivits till cachen.

Referenser Intel core 2 duo information: http://ark.intel.com/products/30781/intel-core2-duo-processor- E4500-2M-Cache-2_20-GHz-800-MHz-FSB (Hämtad 2015-12-06) Figur 2: MESI stat diagram address: https://upload.wikimedia.org/wikipedia/commons/c/c1/diagrama_mesi.gif (Hämtad 2015-12-03) Papamarcos, M, & Patel, J 1984, 'A low-overhead coherence solution for multiprocessors with private cache memories', ACM SIGARCH Computer Architecture News, 12, 3, p. 348, Publisher Provided Full Text Searching File, EBSCOhost, viewed 6 December 2015. 'Why On-Chip Cache Coherence Is Here to Stay' 2012, Communications Of The ACM, 55, 7, pp. 78-89, Business Source Complete, EBSCOhost, viewed 6 December 2015.