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

Relevanta dokument
Hantering av hazards i pipelines

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

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

Rapport (1,5 HP) Lunds Universitet HT15

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

Jämförelse av skrivtekniker till cacheminne

Tentamen den 17 mars 2016 Datorteknik, EIT070

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Arm Cortex-A8 Pipeline

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Föreläsningsanteckningar 5. Cacheminnen

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Pipelining i Intel Pentium II

Cacheminne i en Intel Core 2 Duo-processor

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

MESI i Intel Core 2 Duo

Öka prestanda i Shared-Cache multi-core processorer

Exempeltentamen Datorteknik, EIT070,

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

Tentamen den 18 mars svar 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.

Parallellism i CDC 7600, pipelinens ursprung

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)

Föreläsningsanteckningar 4. Pipelining

Improved-MOESI Cache koherens Protokoll

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

Digitalteknik och Datorarkitektur 5hp

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Minnet från processorns sida Datorteknik

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

32 Bitar Blir 64 Sammanfattning

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Cacheminne Intel Core i7

CE_O5. Cacheminne. Hemlaboration 2.

Datorarkitekturer med Operativsystem

Datorsystemteknik DVGA03 Föreläsning 8

Grundläggande datavetenskap, 4p

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

Processor pipelining genom historien (Intel i9-intel i7)

TSEA28 Datorteknik Y (och U)

SIMD i Intel s P5- baserade Pentium MMX

Cache coherence hos multicoreprocessorer

DEC Alpha instruktions Arkitektur

Cache-koherens protokoll MESI och MOSI

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Datorsystem. Tentamen

Snapdragon 810: Cacheminnet

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

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

Datorarkitekturer med operativsystem ERIK LARSSON

HF0010. Introduktionskurs i datateknik 1,5 hp

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

MESI-protokollets funktion i multiprocessorer

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

CE_O8. Cacheminne. Hemlaboration 2.

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

Pipelining i Intel 80486

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

TSEA28 Datorteknik Y (och U)

Närliggande allokering Datorteknik

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

Föreläsning 5 1 CPI Sammanfattning pipelining Cacheminnen

TSEA28 Datorteknik Y (och U)

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

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

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

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

Datorteknik ERIK LARSSON

Parallellism i NVIDIAs Fermi GPU

Tentamen PC-teknik 5 p Lösningar och kommentarer

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Datorsystem. Tentamen

Föreläsning 2. Operativsystem och programmering

Tentamen. Datorteknik Y, TSEA28

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

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Datorsystem. Exempeltentamen

Datorsystemteknik för E/D

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

TSEA28 Datorteknik Y (och U)

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

Fetch-Execute. Datorteknik. Pipelining. Pipeline diagram (vid en viss tidpunkt)

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Cacheminne i en AMD Opteron Processor

4. Pipelining. 4. Pipelining

Bank Switching. Att nå multipla adressrymder. Av: Drazen Mijatovic

Hyper-Threading i Intelprocessorer

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Spekulativ exekvering i CPU pipelining

Transkript:

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

Sammanfattning När processorns klockhastighet ökar medför det en ökning av instruktioner vilket såklart ökar antalet läsningar i cacheminnet. Att nya processorer som till exempel Intel Core i7 920 dessutom kan utföra flera minnesinstruktioner samtidigt ökar också kraven på minnets hastighet. För att kunna mata processorn med instruktioner finns olika tekniker som gör det möjligt att göra flera cacheläsningar per klockcykel. Syfte Syftet med rapporten var att förstå hur ett cacheminne kan ta emot flera förfrågningar från processorn under samma klockcykel med hjälp av multi-ported cache. Inledning Det mest kända problemet för processorn idag är flaskhalsen som uppstår mellan cacheminnet och exekveringsenheten. I och med att processorernas hastigheter ökar snabbare än minnets kan det på en cachemiss passera flera hundra klockcyklar vilket påverkar processorns effektivitet. Ett vanligt enkel-portat cacheminne kan vara tillräckligt för en simpel processor med en eller kanske två pipelines. Men mer komplexa processorer som har flera pipelines är mycket svårare att fylla med instruktioner om minnet inte hänger med i samma hastighet. Instruction-level parallelism ( IPL ) är också något som utvecklas med allt större framgång, genom att kunna utföra flera instruktioner per klockcykel öka processorns prestanda. För vidare förklaring tänk ett program liknande detta: e = a +b f = c + d m = f +e Här krävs det i operation tre att både operation ett och två är beräknade, IPL gör det möjligt att beräkna operation ett och två samtidigt vilket leder till at koden kan exekveras under två klockcykler istället för tre. Detta leder också till att det kan behöva göras 2 läsningar i cacheminnet samtidigt. Med fortsatt utveckling av Instruction-level parallelism och allt snabbare processorer blir det tydligt att det måste kunna göras flera accesser i cacheminnet samtidigt för att i någon mån hålla samma takt som processorn. Det finns olika sätt att implementera det band annat med multi-ported cache och multi-banked cache. Cacheminne Cacheminne fungerar som ett mellanlagringsmedium där data som processorn kommer att behöva härnäst lagras. Det man vill åstadkomma med ett cacheminne är att tillhandhålla processorn data så snabbt som möjligt vilket betyder att de data som processorn troligen kommer att behöva härnäst ligger högst upp i minneshierarkin. När ett cacheminne får en förfrågan och det blir en träff levereras de data som fanns där till processorn, blir det en miss måste man leta längre ner i minneshierarkin vilket leder till längre väntetider. I ett cacheminne av denna komplexitet går det bara att hämta en minnesadress åt gången, för att kunna hämta flera adresser i varje klockcykel behövs en mer komplex arkitektur som beskrivs nedan.

True Multi-ported cache Multi-ported Caches True multi-ported cache är en struktur som innehåller all data och har ex antal portar som självständigt kan arbeta med vilket minnesblock som helst under samma klockcykel. Multi-ported cache är det snabbaste systemet och är lämpligast att använda för mindre minnen. Anledningen till det är att det är en dyr och komplex metod. (Smail Niar) Multi-Banked cache Ett multi-banked cache består av många olika cache banker där varje bank kan utföra en läsning eller skrivning per klockcykel. I ett simpelt minne är cachelines ordnade i numerisk ordning utifrån deras index. Bild 1 I minne (a) i bild 1 finns det 2 NN 1 antal cacherader och är ett direktmappat minne där alla cachelines är i samma bank. Om vi istället delar minnet i två lika stora banker som i minne (b) i bild 1 då kommer den mest signifikanta biten alltså bit N 1 bestämma vilken av de två bankerna som kommer att väljas och där ska då cachelinen vi söker att befinna sig om det blir en hit. När bankerna är indelade på det sättet där den mest signifikanta biten bestämmer vilken bank som väljs kallas det för High Order Interleaving. I minne (c) i bild 1 ser vi att udda och jämna cacherader skiljs åt i olika banker vilket betyder att den minst signifikanta biten bestämmer vilken av bankerna som väljs det kallas således Low Order Interleaving. Om vi tänker oss att det finns flertalet banker så kommer olika program kunna använda minnet samtidigt förutsatt att de är inne i olika minnesbanker och opererar.

(Sangenyeun Cho) RESULT GATHERING LOGIC 1 2 3 4 5 6 7 8 4 X 8 CIRCUIT SWITCHED CROSSBAR 1 2 3 4 Bild 2 Ofta används cache interleaving tillsammans med en crossbar som en lösning till att kunna få flera accesser i minnet samtidigt. I bild 2 så lägger CPU:n minnesförfrågningar på portarna 1, 2, 3 eller 4 där efter tar en crossbar han om vilken av cachebankerna som förfrågningen ska in i. Hur cacheportarna tar emot förfrågningar från processorn och hur de fungerar mer ingående förklaras i nästkommande del. Cacheportarna Portarna är en typ rum som alla kan erbjuda plats för en instruktion. När CPUn skickare en förfrågning tars den emot utav någon av portarna, när en port tagit emot en förfrågan stängs dörren till rummet och är inte möjlig att använda förens nästa klockcykel. Under varje klockcykel kommer cacheminnet öppna varje rum och kolla om det ligger en instruktion och om det gör det så försöker minnet genomföra instruktionen och öppnar porten för processorn att lägga in en ny förfrågan. Det förväntas att processorn skickar sina förfrågningar i ordning men minnessystem behöver inte utföra det i samma ordning bara resultatet blir samma som om det skulle ha utförts i den ursprungliga ordningen. Det betyder att portarna måste ha en inbördes prioritering. Ett sätt är att alltid låta port ett ha högsta prioritet och port två ha andra prioritet och så vidare. Det som en port behöver för att exakt veta om en förfrågan är: 1. En bit som visar om förfrågan är godkänd 2. En bit som bestämmer vilken typ av operation som används 3. Ett fält som bestämmer vilken adress som ska behandlas. 4. Ett fält som bestämmer vilken data som ska skrivas om det ska skrivas. 5. Ett fält som indikerar vilket register resultatet ska läggas i vid en läsning. James Edward Sicolo (1989)

Slutsats När processorers prestanda ökar måste även cacheminnets storlek och hastighet att öka. Det har under lång tid skett en snabb hastighetsökning i processorns exekveringsenhet det har inte varit lika lätt för minnet att hänga med i de hastigheterna. Därför har lösningar som multi-ported cache och multibanked cache presenterats. Det verkar hela tiden vara en utmaning att utöka minnets storlek och samtidigt använda de snabbaste lösningarna så som true multi-ported cache. Man har istället fått använda andra metoder som multi-banked cache för att både utöka storleken och minska söktiden.

Källförteckning James Edward Sicolo (1989) A Multipoerted nonblocking cache for a superscalar uniprocessor, B.S. State University if New York. Sangenyeun Cho, I-Cache Multi-Banking and Vertical Interleaving, department of computer science University of Pittsburgh. Smail Niar, Comparing Multiported Cache Schemes, University of valenciennes, France. Patterson, D,& Hennessy, J 2013, Computer Organization And Design : The Hardware/Software Interface, n.p.: Oxford : Morgan Kaufmann, cop. 2014, Library catalogue (Lovisa)