Datorarkitekturer med Operativsystem

Relevanta dokument
Tentamen den 17 mars 2016 Datorteknik, EIT070

Jämförelse av skrivtekniker till cacheminne

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

MESI i Intel Core 2 Duo

CE_O5. Cacheminne. Hemlaboration 2.

Cacheminne i en Intel Core 2 Duo-processor

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

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

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.

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

Exempeltentamen Datorteknik, EIT070,

Cacheminne i en AMD Opteron Processor

Föreläsningsanteckningar 5. Cacheminnen

Snapdragon 810: Cacheminnet

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

Tentamen den 18 mars svar Datorteknik, EIT070

Mer datorarkitektur. En titt I datorn Minnen

Cache-koherens protokoll MESI och MOSI

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Datorteknik ERIK LARSSON

Cacheminne och adressöversättning

Digitalteknik och Datorarkitektur 5hp

MESI-protokollets funktion i multiprocessorer

CE_O8. Cacheminne. Hemlaboration 2.

Minnet från processorns sida Datorteknik

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

Pipelining i Intel 80486

Lösningsförslag till Tenta i Mikrodator

Digitala System: Datorteknik ERIK LARSSON

Lösningsförslag till Tenta i Mikrodator

Cacheminne Intel Core i7

MESI protokollet och dess derivater

Rapport (1,5 HP) Lunds Universitet HT15

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

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

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

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

Cache coherence hos multicoreprocessorer

Improved-MOESI Cache koherens Protokoll

Hantering av hazards i pipelines

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

Datorsystemteknik för E/D

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

HF0010. Introduktionskurs i datateknik 1,5 hp

Digital- och datorteknik

Datorarkitekturer med operativsystem ERIK LARSSON

Datorsystem. Tentamen

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

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

TSEA28 Datorteknik Y (och U)

Datorsystem. Exempeltentamen

Grundläggande datavetenskap, 4p

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

Digital- och datorteknik

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

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

Öka prestanda i Shared-Cache multi-core processorer

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

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

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

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

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digital- och datorteknik

Närliggande allokering Datorteknik

Datorsystem. Tentamen

TSEA28 Datorteknik Y (och U)

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Digitala System: Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Digital- och datorteknik

Läsminne Read Only Memory ROM

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

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

Hemlaboration Cache Cacheminnen

Digital- och datorteknik

2 UPPBYGGNAD OCH FUNKTION

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

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

SYNKRONISERING I EN SHARED MEMORY MULTIPROCESSOR

32 Bitar Blir 64 Sammanfattning

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

Tentamen. Datorteknik Y, TSEA28

Hyper-Threading i Intelprocessorer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Processor pipelining genom historien (Intel i9-intel i7)

Pipelining i Intel Pentium II

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

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. Datorteknik Y, TSEA28

Centralenheten: ALU, dataväg och minne

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)

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Transkript:

Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se

1 Abstract Denna rapport visar hur ARM3-processorns cacheminne är uppbyggt och fungerar. Rapporten redogör för hur den blandade data- och instruktionscachen adresseras med 64-vägs set-associativ mappning och hur write-through används som skrivteknik för att hålla cacheminne och primärminne konsistent. 2 Syfte Syftet med denna rapport var att redovisa för hur cacheminnet i en ARM3- processor fungerar. Mer specifikt: Hur är minnet uppbyggt? Vilken skrivteknik används? Hur adresseras minnesplatset? Vilken ersättningsalgortim används? 3 Inledning ARM3-processorn släpptes år 1989 och var ARMs första processor med ett cacheminne på samma krets (Furber 2000). Cacheminnet var 4 Kbyte stort och var en blandad data- och instruktionscache. Minnet var virtuellt adresserat och 64-vägs associativt mappat. Skrivningar gjordes till cacheminnet men också direkt till primärminnet, såkallat write-through (Furber och Thomas 1990). 3.1 Cacheminnen Cacheminnen används som ett mellanlagringsmedium för data så denna data snabbare kan tillhandahållas vid behov. Data kopieras från andra lagringsmedium, ofta med mycket större kapacitet, till cacheminnet - som däremot tenderar att vara mycket snabbare. All data får inte alltid plats i cacheminnet och därför används olika metoder för att effektivisera platsen i minnet. Temporal- och rumslokalitet är två koncept som menar att data eller instruktioner som har blivit refererade nyligen, eller ligger rent fysiskt i närheten av datan eller instruktionen är sannolika att användas i framtiden. Principerna kan appliceras på cacheminnen enligt följade: Om data eller en instruktion behövs kan cacheminnet spara en kopia av block av närliggande data och instruktioner. Vid behov av data eller en instruktion kontrolleras cacheminnet, innehåller minnet datan eller instruktionen räknas det som en hit och datan eller instruktionen används. Skulle den eftersökta datan eller instruktionen inte återfinnas i cacheminnet räknas det som en miss och datan eller instruktionen kopieras från ett annat minnesmedium in i cacheminnet och används (Furber 2000). 1

4 Cacheminneshantering för ARM3-processorer ARM3-processorns cacheminne har en blandad data- och instruktionscache på 4096 byte, virtuellt adresserad, 64-vägs set-associativt mappad med blockstorlek 4 stycken 32-bitarsord organiserat på 256 cacherader. Skrivtekniken som används är write-through där cachen ignoreras vid skrivmiss, ersättningsalgoritmen som används är slumpmässigt urval (Furber och Thomas 1990). Vad var och en av dessa egenskaper och metoder är och hur de fungerar kommer att redovisas nedan. 4.1 Cacheminnets struktur Cacheminnet för en ARM3 processor har kapaciteten 1024 stycken ord med en ordstorlek på 32 bitar. Dessa ord är fysiskt lagrade i ett minne med 1024 adressplatser. Den specifika adressen till platsen avkodas med hjälp av en tag i de fyra associativa minnena vars kapacitet är 64 stycken av dessa tags (ibid.). En förenklad version av minnestrukturen används för att förklara den associativa mappning i ett senare avsnitt. I Figur 1 visas strukturen för cacheminnet i en ARM3-processor. Figur 1: Cacheminnets struktur De två minst signifikanta bitarna i 26-bitarsadressen ignoreras vid ord-adressering och används endast vid byte-skrivning. Vid en cacheträff kommer de sex minst signifikanta bitarna i tagen att användas tillsammans med bit 2 till och med 5 i 26-bitarsadressen för att utgöra en 10-bitarsadress. Denna 10-bitarsadress kommer att specificera adressplatsen för den eftersökta datan eller instruktionen i cacheminnet (ibid.). ARM3-processorn använder sig av en blandad data- och instruktionscache. Då alla instruktioner för processorn är 32 bitar långa tar en instruktion fyra 2

bytes, eller ett ord, att lagra. Detta medför att en hel instruktion kan hittas vid endast en cacheträff. (Furber 2000). De associativa minnena innehåller förutom tags dels en validitetsbit men också andra bitar för hantering av vland annat skrivskyddade adressområden. Vad dessa bitar gör kommer inte att täckas av rapporten. 4.2 Adressering ARM3-processorn har 27 stycken 32-bitars register där endast 16 av dessa är tillgängliga för användaren. Register 15 innehåller både programräknaren samt statusregistret. Detta ger programräknaren endast 24 bitar plats i registret (Furber och Thomas 1990). Statusregistret tillhandahåller funktionalitet för processorn och ligger utanför rapportens ämnesområde och kommer därför inte att redogöras för. Nedan ses Figur 2 som visar hur programräknarbitarna översätts till en adress. Figur 2: Programräknare till adress Programräknarens 24 bitar vadderas med två minst signifikanta bitar satta till 0 (vid ordadressering). Bit 2 och 3 specificerar vilket ord adressen pekar på. Bit 4 och 5 specificerar vilket set adressen pekar på. De resterande 20 bitarna blir en tag. Denna tag används för att kontrollera att rätt cacherad hittats vid läsning och skrivning. Den totala adresslängden blir då alltså 26 bitar lång. Det medför att adressbussen endast behöver vara 26 bitar bred men också att den maximala adresserbara mängden primärminne endast är 2 26 bytes, eller 64 MB (Alan 2010). 3

4.3 Assosiativ mappning ARM3-processorn använder sig av associativ mappning vid adressering av cacheminnet. Mer specifikt används 64-vägs set-associativ mappning. Det innebär att cacheminnets block är indelade i ett antal set; i detta fall 4 stycken set med 64 cacherader i varje set (Furber och Thomas 1990). Ett exempel på hur en avkodning av en data- eller instruktionsadress sker enligt Figur 3. Figur 3: Adress till cacheplats De två minst signifikanta bitarna ignoreras då ordadressering används. Bit 2 och 3 specificerar vilket ord adressen pekar på. I exemplet ovan avkodas dessa adressbitarna till att peka på det tredje ordet. Bit 4 och 5 specificerar vilket set adressen pekar på. Dessa avkodas till att peka på set 1. Varje set innehåller 64 cacherader vilka alla har samma adress förutom de 20-bitarna som utgör en tag. Adressens tag avkodas och kontrolleras mot de 64 cacheradernas tag. Vid likhet har en cacheträff inträffat. I exemplet ovan avkodas en 26-bitars adress och en cacheträff sker på minnesplatsen för ord 3 i andra cacheraden i set 1. 4

4.4 Write-thorugh Vid läsning av en minnesplats kontrolleras först cacheminnet om samma minnesplats finns sparad där. Finns den efterletade datan eller instruktionen i cacheminnet räknas det som en hit varpå datan eller instruktionen används. Skulle minnesplatsen däremot inte finnas i cacheminnet kommer den eftersökas vidare i primärminnet. Vid skrivning till minne kan olika tekniker användas. Skrivtekniken som används av ARM3-processorn är write-though. Write-through innebär att all skrivning sker direkt i primärminnet samt i vissa fall cacheminnet samtidigt. Vid en skrivning kommer minnesplatsen för skrivningen kontrolleras i cacheminnet. Skulle minnesplatsen finnas i cacheminnet kommer minnesplatserna i både cacheminnet och primärminnet uppdateras för den specifika adressen. Skulle det däremot minnesplatsen inte återfinnas i cacheminnet kommer endast minnesplatsen i primärminnet uppdateras. Vid en skrivmiss kan olika tekniker användas. En teknik kallas allocate on write miss och innebär att blocket i primärminnet, där minnesplatsen för skrivningen befinner sig, kommer att kopieras till cacheminnet. En annan teknik, no-allocate on write miss, kommer inte att kopiera in minnesplatsens block i cacheminnet. Detta är tekniken ARM3-processorn använder sig av (Furber 2000). 4.5 Cacheradsersättning Cacheminnet i ARM3-processorn har plats för 256 block. Då 64-vägs set-associativ mappning används har varje set plats för 64 block (Furber och Thomas 1990). Vid en läsningsmiss i cacheminnet kommer blocket tillhörande eftersökta minnesplatsen att kopieras till cacheminnet. Skulle då adressen avkodas till att placeras i ett set som redan har alla cacherader upptagna kommer en radersättning att ske (Furber 2000). Cacheradersättning kan ske på olika sätt. ARM3-processorn använder sig av slumpmässig ersättning, det betyder att vid en läsningsmiss i cacheminnet kommer blocket tillhörande den eftersökta minnesplatsen att kopieras till cacheminnet. Blockets adress avkodas och skulle det set blocket tillhör vara fullt kommer en slumpmässig cacherad att raderas varpå den nya kopieras in på dess plats (Furber och Thomas 1990). Referenser Alan, R. (2010). Archimedes Hardware. url: https://www.riscosopen.org/ wiki/documentation/show/archimedes%20hardware/ (hämtad 2015-11-30). Furber, S. (2000). ARM System-on-Chip Architecture. 2. utg. Addison-Wesley. Furber, S. och A. Thomas (1990). ARM3 - a study in design for compatibility. I: Microprocessors And Microsystems 14, s. 407 415. 5