Snapdragon 810: Cacheminnet

Relevanta dokument
Minnet från processorns sida Datorteknik

MESI protokollet och dess derivater

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

Rapport (1,5 HP) Lunds Universitet HT15

Cache coherence hos multicoreprocessorer

Cache-koherens protokoll MESI och MOSI

MESI i Intel Core 2 Duo

Jämförelse av skrivtekniker till cacheminne

4 grundregler. Minneshantering. Problemet. Windows minkrav

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Datorarkitekturer med Operativsystem

Improved-MOESI Cache koherens Protokoll

MESI-protokollets funktion i multiprocessorer

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

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

CE_O5. Cacheminne. Hemlaboration 2.

Föreläsningsanteckningar 5. Cacheminnen

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Cacheminne i en Intel Core 2 Duo-processor

Datorsystem. Tentamen

Tentamen den 17 mars 2016 Datorteknik, EIT070

Digitalteknik och Datorarkitektur 5hp

Exempeltentamen Datorteknik, EIT070,

Cacheminne i en AMD Opteron Processor

Datorarkitekturer med operativsystem ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

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

Öka prestanda i Shared-Cache multi-core processorer

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

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

Hantering av hazards i pipelines

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

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

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

Arm Cortex-A8 Pipeline

CE_O8. Cacheminne. Hemlaboration 2.

TSEA28 Datorteknik Y (och U)

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

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

TSEA28 Datorteknik Y (och U)

Pipelining i Intel 80486

Närliggande allokering Datorteknik

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

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

Datorsystem. Tentamen

Datorarkitekturer med operativsystem ERIK LARSSON

Datorsystemteknik för E/D

6. Minnen. Associativt minne

Några gamla tentamensuppgifter: Minneshantering

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

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Cacheminne och adressöversättning

Pipelining i Intel Pentium II

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

Associativt minne ... A= adress till PM/CM CL = cachelinens storlek CM = cacheminnets storlek. Tag = A/CL = A/2 4 = A(31:4) Adress. K tag.

Mer datorarkitektur. En titt I datorn Minnen

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

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

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

Parallellism i CDC 7600, pipelinens ursprung

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

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

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

Minneshantering segmentering och virtuellminne. Föreläsning 3

HF0010. Introduktionskurs i datateknik 1,5 hp

Föreläsning 5 1 CPI Sammanfattning pipelining Cacheminnen

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

Grundläggande datavetenskap, 4p

Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur

TSEA28 Datorteknik Y (och U)

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

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

Digital- och datorteknik

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)

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

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

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

DEC Alpha instruktions Arkitektur

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

Datorsystem. Tentamen

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

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

Datorsystem. Exempeltentamen

Datorarkitekturer med operativsystem ERIK LARSSON

Lösningsförslag till Tenta i Mikrodator

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

Datorteknik ERIK LARSSON

Hemlaboration Cache Cacheminnen

Datorsystemteknik DVGA03 Föreläsning 8

Operativsystem ID1200/06 Tentamen :00-18:00

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

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

Transkript:

Snapdragon 810: Cacheminnet Daniel Eckerström dat14dec@student.lu.se

Sammanfattnig Snapdragon 810 innehåller två olika processor arkitekturer, ARM Cortex-A53 samt Cortex-A57. Detta för att kunna på ett så effektivt sätt som möjligt, leverera beräkningar på ett energimässigt snålt vis. Rapporten kommer visa vilka delar av processorn som är delaktiga vid användningen av cacheminnet. Samt hur coherency mellan L1- samt L2 cachen uppnås.

Introduktion I Snapdragon 810 använder Qualcomm sig av ARM tekniken big.little, vilket innebär att man använder två olika processorarkitekturer. Den ena av dem är skräddarsydd för att vara energisnål, och den andra för att göra snabba och tunga uträkningar, detta för att spara energi, och därmed förlänga batteritid vid lågintensiv användning. I fallet snapdragon 810 så innehåller den fyra Cortex- A57 kärnor (big), samt fyra Cortex-A53 kärnor (LITTLE). (ARM 2015) De sammanlagt åtta kärnorna har vardera en L1-cache, de olika arkitekturerna delar på varsin L2- cahe. För att underlätta läsningen ges här en generell förklaring av TLB (Translation Lookaside Buffer): För att översätta från en virtuell adress till en fysisk adress, så utförs något som kallas page-table walk. Detta innebär att MMU:n (Memory Management Unit) med hjälp av en tabell översätter från virtuell till fysisk adress. Är detta tvunget att ske varje gång processorn använder minnet, så hade virtuell adressering varit extremt ineffektivt. Detta löses med en liten buffer, ett cacheminne med vanligtvis ett dussin entries (TLB entry är en samlig nödvändig information för en översättning. virituell adress, fysisk address etc ) (David Mosberger & Stephane Eranian 2002)

Diskussion De högpresterande processorkärnorna (Coretex-A57) använder sig av följande L1 cache: Instruktionscache: 48KB 3-way set-associative statisk line längd om 64 bytes var 16:e bit är paritetsbit Datacache: 32KB 2-way set-associative statisk line längd om 64 bytes var 32:a bit är ECC-skyddad Write-back Cache line:en (Även kallat block) som i detta fallet är statisk, innebär att vid en miss så måste 64 bytes hämtas ur primärminnet. Båda L1 cache:arna använder sig av LRU (Least Recently Used) samt PIPT (Physically-indexed and physically-tagged). PIPT innebär att MMU:n med hjälp av TLB:n måste översätta varje virtuell adress för att kunna kontrollera cachen, detta är en enkel men relativt slö metod. Fördelen är att man slipper problem där olika virtuella adresser refererar till samma fysiska adress och vice versa. För att över huvud taget kunna söka i cachen, måste MMU:n översätta den virtuella adressen som den aktiva processen efterfrågar, till en fysisk adress. Detta görs först och främst genom att kontrollera TLB:n för instruktionscachen och datacachen som består av en 48-entry fully-associative respektive en 32-entry fully-associative TLB, som båda kostar en klockcykel per hit. Vid miss förfrågas L2 TLB:n av MMU:n, L2 TLB:n är ett 4-way set-associative minne om 1024 entry:s Kostnaden för L2 TLB:n är ett varierande antal klockcykler, beroende på konkurrerande förfrågningar av lägre TLB samt underhåll.

Random cache-replacement policy (RR) används på den för Cortex-A57 kärnorna, delade L2 cachen. Den delade L2 cachen kräver att innehållet i L1 cachen även finns representerat i L2 cachen. Dock så behöver datan inte överensstämma. Om så är fallet, ges processorn där dirtybiten i L1 är flaggad en förfrågan om den korrekta datan. (ARM 2013a)

De lågpresterande processorkärnorna (Coretex-A53) använder sig av följande L1 cache: Instruktionscache: 32KB 2-way set-associative statisk line längd om 64 bytes. Datacache: 32KB 2-way set-associative statisk line längd om 64 bytes. Write-back PIPT Pseudo-random replacement En micro-tlb om 10 entry:s används på respektive L1 cache, om det sker en miss i micro-tlb:n, kontrolleras Main TLB, Denna TLB kan innehålla 512 entrys, och är uppbygt med 4-way set associative minne. Kostnaden för L2 TLB:n är ett varierande antal klockcykler, beroende på konkurrerande förfrågningar av lägre TLB samt underhåll. L2 cachen för Coretex-A53 kärnorna har en integrerad SCU (Snoop Control Unit) som upprätthåller coherency (engelska för samstämmighet) mellan L2 cachen samt L1 cacharna. Detta görs för både CortexA-53 samt Cortex-A57 med hjälp av ett modifierat MOESI (Modified Owner Exclusive Shared Invalid) protokoll, som bibehåller samstämmighet mellan delade cache lines. Detta genom att låta delar av cache linen annotera vilken state datan befinner sig i, därefter kan processorn agera utefter det. beskrivning av de olika states:en finns nedan: Modified (M) - Cache line:en har blivit modifierad och är endast representerad i en cache (denna). Owned (O) - Cache line:en är dirty och kan finnas i mer än en cache. En cache line som befinner sig i state owned innehåller den senaste och därmed korrekta datan, endast en av kärnorna kan inneha denna owned line:en. Övriga en Shared variant av samma data. Exclusive (E) - Cache line:en är det enda cahade exemplaret och är samma som i primärminnet. Shared (S) - Cache line:en är identisk med primärminnet men kan finnas i annan cache Invalid (I) - Cache line:en är inte giltig, måste hämtas. (ARM 2013b)

Referenser David Mosberger & Stephane Eranian (2002). IA-64 Linux Kernel: Design and Implementation URL: http://www.informit.com/articles/article.aspx?p=29961&seqnum=4 ARMa (2013a) Cortex -A57 MPCore Processor Technical Reference Manual URL: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0488c/ddi0488c_cortex_a57_mpcore_r1p0_ trm.pdf ARM (2013b). Cortex -A53 MPCore Processor Technical Reference Manual URL: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500f/ddi0500f_cortex_a53_r0p4_trm.pdf ARM (2150) big.little Technology. Hämtad senast 2015-12-07 URL: https://www.arm.com/products/processors/technologies/biglittleprocessing.php