6. Minnen. Associativt minne

Relevanta dokument
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.

Föreläsningsanteckningar 5. Cacheminnen

Läsminne Read Only Memory ROM

Föreläsning 5 1 CPI Sammanfattning pipelining Cacheminnen

Föreläsning 5 1 CPI. Sammanfattning pipelining Cacheminnen

F9: Minne. Minneskonfiguration. Sammansättning av minnesgrupper Ansluta minne till Interface till olika typer av minnen Användningsområden

F9: Minne. Sammansättning av minnesgrupper Ansluta minne till Interface till olika typer av minnen Användningsområden.

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Datorteknik Y - Föreläsning 13

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

Minnet från processorns sida Datorteknik

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

Digital Design IE1204

Angående buffer. clk clear >=1 =9?

Digitala System: Datorteknik ERIK LARSSON

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Minneselement,. Styrteknik grundkurs. Digitala kursmoment. SR-latch med logiska grindar. Funktionstabell för SR-latchen R S Q Q ?

Föreläsningsanteckningar 4. Pipelining

Digital Design IE1204

Digitala System: Datorteknik ERIK LARSSON

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Närliggande allokering Datorteknik

Mer datorarkitektur. En titt I datorn Minnen

TSEA28 Datorteknik Y (och U)

Tentamen Datorteknik D del 2, TSEA49

TSEA28 Datorteknik Y (och U)

Snapdragon 810: Cacheminnet

VHDL3. Angående buffer

Styrteknik distans: Minneselement, register, räknare, AD-omv D4:1

Minnessystem. Minneshierarki. Flyktigt eller icke flyktigt huvudsakliga egenskaper. Minneshierarki

4. Pipelining. 4. Pipelining

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

Datorarkitekturer med operativsystem ERIK LARSSON

Digital- och datorteknik

VHDL 1. Programmerbara kretsar

Digital- och datorteknik

CE_O5. Cacheminne. Hemlaboration 2.

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

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

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

Tenta i Digitalteknik

Digitalteknik och Datorarkitektur 5hp

IE1205 Digital Design: F8: Minneselement: Latchar och Vippor. Räknare

Tentamen den 18 mars svar Datorteknik, EIT070

IE1205 Digital Design: F14: Halvledarminnen, Mikrodatorn

HF0010. Introduktionskurs i datateknik 1,5 hp

Adressavkodning - busskommunikation

3. Mikroprogrammering II

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

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

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

Datorkonstruktion. Datorkonstruktion 2018, 8hp

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 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Digitala System: Datorteknik ERIK LARSSON

Bussar och I/O. samt. vad kan man göra med NEXYS3

Sekvensnät vippor, register och bussar

Digital IC konstruktion

Datorarkitekturer med operativsystem ERIK LARSSON

Cacheminne i en AMD Opteron Processor

Adressrum, programmerarens bild

TSEA28 Datorteknik Y (och U)

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

Datorteknik ERIK LARSSON

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

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

CE_O8. Cacheminne. Hemlaboration 2.

Digital IC konstruktion

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

4 grundregler. Minneshantering. Problemet. Windows minkrav

Avkodning av minnen (och I/O)

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

2 UPPBYGGNAD OCH FUNKTION

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

HW-proj ver 3, ett kortsystem

DESIGN AV SEKVENTIELL LOGIK

L15 Introduktion modern digital design

Tentamen i Digital Design

Sekvensnät. William Sandqvist

Bussar och I/O. samt. vad kan man göra med NEXYS3. Nexys3. Prog + spänningsmatning. Expansionskort

Exempeltentamen Datorteknik, EIT070,

Programmerbara kretsar och VHDL. Föreläsning 9 Digitalteknik Mattias Krysander Institutionen för systemteknik

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

Datorsystemteknik DVGA03 Föreläsning 8

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tenta i Digitalteknik

Jämförelse av skrivtekniker till cacheminne

Hantering av hazards i pipelines

Konstruktionsmetodik för sekvenskretsar. Föreläsning 7 Digitalteknik, TSEA22 Mattias Krysander Institutionen för systemteknik

LV6 LV7. Aktivera Kursens mål:

TSEA28 Datorteknik Y (och U)

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

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

MESI i Intel Core 2 Duo

Transkript:

6. Minnen Repetition cache-minnen, BPT Minnen allmänt ROM, RAM, DRAM, SDRAM, DDR MMU - Memory management Minnen NEXYS3 Block RAM, distributed RAM, DDR3 Associativt minne A= adress till PM/CM CL = cachelinens storlek Tag = A/CL = A/2 = A(31:) CM = cacheminnets storlek Adress A: AABBCCDD komparator K A(31:) AABBCCDD tag 28 2 komparator K tag... 32 1

adress 32 Direktmappat minne 1235: 1235: 12358: 1235C: 12351: 12351: AABBCCDD CL index 1235 1 AABBCCDD : komp data 32 hit Storlek = kb CL = Index= 12-2-2=8 bitar Tag=32-12=2 bitar 1236: 1236: 12368: 1236C: 12361: 12361: 112233 -vägs cache, 16 kb 2 8 2 2 tag v cntr cache line 16B tag v cntr tag v cntr cache line 16B tag v cntr tag v cntr cache line 16B tag v cntr tag v cntr cache line 16B tag v cntr komp komp komp K komp 2

Cachehierarki När PM växer måste också CM växa för att hålla träffkvoten uppe Simuleringar visar att det lönar sig att att införa cacheminne i flera nivåer istf att bygga en större L1-cache snabbhet storlek CPU CPU L1 L1 32 kb -vägs L2 512 kb N-vägs PM 512 MB BPT branch prediction table. Vi väntar inte på F, vi chansar mha BPT! NOP pmem BF PC 2 + 1 2 1 ST BPT Styrenhet Associativt minne IR1 K PC1 LOOP: 1: ZZZ... 1C: ADDI R1,R1,1 2: SFEQ R1,R2 2: BF LOOP 28: XXX 2C: YYY IR2 IR3 + PC2 D2 Z3 dmem B2 regs ALU D3 A2 SR IR Z D 3

BPT = branch prediction table Ett försök att få bort den där NOP-en vid hopp Skiss: Varje gång ett hopp påträffas 1) Finns inte i BPT: stoppa in det och uppdatera hoppstatistiken 2) Finns i BPT: läs ut hoppadressen F IR2 Riktig hoppadress Predikterad hoppadress träff + PC Hoppets adress Hoppadress Hoppstatistik Hoppets adress Hoppadress Hoppstatistik Hoppets adress Hoppadress Hoppstatistik taken SNT NT T ST not taken Strongly not taken Not taken Taken Strongly taken BPT = branch prediction table Pipelinediagram PC IR1 IR2 IR3 IR 2 SFEQ ADDI...... 1 BF SFEQ ADDI... 1 ZZZ BF SFEQ ADDI 28 NOP NOP BF SFEQ BPT->PC, 28->SPC F= => SPC->PC Rätt predikterat : Vi sparar 2 klockcykler, XXX går aldrig in i pipelinen Den där NOP-en försvinner Fel predikterat: Vi förlorar 2 klockcykler

Några förkortningar: ROM = read only memory RAM = random access memory SRAM = static RAM DRAM = dynamic RAM SDRAM = synchronous DRAM DDR = double data rate DRAM Minnen allmänt Utanför FPGA Inuti FPGA Läs & skriv läs Block RAM, Distributed RAM dynamiskt statiskt ROM, Flash DRAM SDRAM DDR SRAM ROM = Read Only Memory PROM = Programmable ROM UV EPROM = UV Erasable PROM Flash = Electrically EPROM = EEPROM A Läsminnen N CS Minnen ROM N st adressingångar M st dataingångar 1 st chip select-ingång (aktivt låg) 1 st output enable-ingång (aktivt låg) OE Organisation: 2 N ord à M bitar D 5

Tristate-buffer 1) Förbättrar signalen 2) Möjlighet till tristate + jord 1 Z RAM Random Access Memory Vaddå random? Tape memory RAM 6

Static RAM = SRAM Asynkron => ingen klocka Varken kombinatorik eller synkront sekvensnät CS A N OE N st address-ingångar M st data-in/utgångar 1 st chip select-ingång (aktivt låg) 1 st output enable (aktivt låg) 1 st write enable (aktivt låg) M D WE Organisation: 2 N ord à M bitar Static RAM = SRAM Läs/skriv, minnet försvinner utan spänning ME = latch, 6 transistorer skrivning sker hela tiden då denna signal är hög & & & & 7

Sid 13, nederst [MK2] Sid 1, överst [MK2] DRAM (princip) KL = kolumnledning KA= kolumnadress RL = radledning RA = radadress SA = sense amplifier Läscykel 1. Förladda KL till V/2 2. Låt KL flyta fritt 3. Driv radledningen till V. Koppla in SA till KL 5. Håll KL i latchen 6. Återställ laddning (omkopplaren=1) 7. Släpp ut värde på bussen CAS 8

DRAM (princip) KL = kolumnledning KA= kolumnadress RL = radledning RA = radadress SA = sense amplifier KL V/2 RL Läscykel 1. Förladda KL till V/2 2. Låt KL flyta fritt 3. Driv radledningen till V. Koppla in SA till KL 5. Håll KL i latchen 6. Återställ laddning (omkopplaren=1) 7. Släpp ut värde på bussen SA latch Sid 1, mitten [MK2] 9

Sid 1, nederst [MK2] Synchronous Dynamic RAM = SDRAM Dominerar helt 1-transistorcellen => 1 läs/skriv-transistor + 1 kapacitans Synkron komponent clk cmd (multiplexad) adr N/2 M data Multiplexad adress Pipelinead och burstorienterad => en serie av cmd och adr måste skickas in för att få ut första datat. Därefter kan data fås på varje klockflank. 1

Read burst clk command active nop read nop nop nop read adr A row A col A col D D D D D D D Läs en hel rad Muxa ut bitar Så länge vi är på samma rad är allt bra! Synchronous Dynamic RAM = SDRAM Kan knappast användas utan DRAM-controller. Numera finns den i CPU-n Eftersom kapacitanserna läcker, måste periodiska sk refresh-cykler köras hela tiden (dummy read från en rad) CPU stb ack adr data N M DRAM ctrl clk cmd adr M data N/2 DRAM Refreshcykler har högst prioritet, CPU måste ibland vänta genom att ack fördröjs 11

DRAM-utveckling SDRAM = synkront DRAM klockat, controller på chipet, programmerbart, burst-orienterat, pipelineat DDR (double data rate) SDRAM DDR2 SDRAM (x) DDR3 SDRAM (8x) DDR SDRAM (16x) Läs D,D1 Läs D2,D3 Skicka D Skicka D1 Skicka D2 Skicka D3 Memory management Om vi ska köra ett OS (tex Linux) på vår processor, så behövs memory management! I PM finns då OS och flera processer Vi behöver: minnesskydd adressöversättning (virtuell/logisk => fysisk) Processer skapas/försvinner Processer gör malloc/free minnesfragmentering Vanligast är att dela in PM i sidor (pages) av fix storlek. Tex kb OS tilldelar sig själv och varje process ett antal sidor. Detta administreras av OS i sk page tables, som finns i PM. Här lagras översättningen, skrivskydd, exekveringsskydd,... I detta exempel är OS, mikroprogram, hårdvara inblandat. 12

Memory management, kb pages Virtuell adresskarta Process A Virtuell adresskarta Process B Fysisk adresskarta 1 2 1 2 2 1 CPU MMU PM 2 2 TLB 2 1 Translation Lookaside Buffer Innehåller de mest använda översättningarna Utformas som ett associativt minne Memory management, kb pages Process A har alltså fått 3 sidor. Process A kan inte komma åt några andra sidor. Två processer kan dela en sida. Man kan då skrivskydda sidan för den ena processen. 2 Skyddsbitar TLB 1 2 3 Associativt minne Ex: 6 rader 2 13

Memory management page size kb cache size 2xkB 2 12 virtuell adress valid + LRU TLB skyddsbitar cache 1 fysisk adress data TLB miss mikroprog. styrenhet Page table data fysisk adress cache miss komp cache hit data Memory management Exempel: Istället för programminnet stoppar vi in föregående konstruktion i vår 5-stegs pipeline: PC innehåller nu en virtuell adress vid cache hit returneras direkt sökt instruktion vid cache miss hämtar styrenheten en cacheline från PM och fyller på rätt rad i cachen. Vår pipeline stallar... vid TLB miss hämtar styrenheten en adressöversättning från page tables i PM. Vår pipeline stallar... 1

PC Icache IMMU + NOP IR1 K PC1 PM (DRAM) DRAM Ctrl + regs IR2 PC1 D2 B2 A2 ALU IR3 Z3 D3 SR Flash Dcache DMMU Arbiter IR Z D Buss Minnen med ankn. till NEXYS3 Några förkortningar: ROM = read only memory RAM = random access memory SRAM = static RAM DRAM = dynamic RAM SDRAM = synchronous DRAM DDR = double data rate DRAM Utanför FPGA Inuti FPGA Läs & skriv läs Block RAM, Distributed RAM dynamiskt statiskt ROM, Flash DRAM SDRAM DDR3 SRAM 15

Block RAM I arrayen finns 32 st synkrona RAM à 2 kb Jag rekommenderar: beskriv minnet på hög nivå i VHDL (som en array). Syntesverktyget bygger då ditt minne av befintliga komponenter. dia dib clka adra ctrla clkb adrb ctrlb BRAM är tvåportsminne. A och B är helt oberoende. Vi kan skriva på A-sidan och läsa på B-sidan samtidigt. doa dob Block RAM Både läscykel och skrivcykel är synkrona! adra ena,wea clka dia minne dib adrb enb,web clkb skrivcykel läscykel doa dob clka adra A A dia D doa D wea ena=1 16

Distributed RAM 6 Logikblocken består av vippor och LUT-ar. Syntesverktyget kan bygga små minnen av LUT-arna. 1 Kombinatorisk läsning Synkron skrivning adr adr1 adr adr1 dat dat1 dat dat1 FPGA-kortet Har 16 MB Cellular RAM DRAM med Controller, ser ut som SRAM Cycle time 7 ns => 7 CK med 1 MHz klocka FPGA A 25 A D 15 D oe,ce, clk Cellular RAM 17