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.

Relevanta dokument
6. Minnen. Associativt minne

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.

Datorkonstruktion. Datorkonstruktion 2018, 8hp

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

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

Minnet från processorns sida Datorteknik

Föreläsningsanteckningar 4. Pipelining

Digital Design IE1204

Digitala System: Datorteknik ERIK LARSSON

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

Digitala System: Datorteknik ERIK LARSSON

Närliggande allokering Datorteknik

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 ?

Digital Design IE1204

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

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

VHDL3. Angående buffer

Mer datorarkitektur. En titt I datorn Minnen

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

4. Pipelining. 4. Pipelining

Datorarkitekturer med operativsystem ERIK LARSSON

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

Tentamen Datorteknik D del 2, TSEA49

Snapdragon 810: Cacheminnet

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

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

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

Tenta i Digitalteknik

VHDL 1. Programmerbara kretsar

Digital- och datorteknik

Digital- och datorteknik

CE_O5. Cacheminne. Hemlaboration 2.

Digitalteknik och Datorarkitektur 5hp

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

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

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

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Tentamen den 18 mars svar Datorteknik, EIT070

Minnen. Informationsteknologi sommarkurs 5p, Agenda. Slideset 4

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

Adressavkodning - busskommunikation

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

3. Mikroprogrammering II

IE1205 Digital Design: F14: Halvledarminnen, Mikrodatorn

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

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

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

TSEA28 Datorteknik Y (och U)

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

Sekvensnät vippor, register och bussar

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.

Digitala System: Datorteknik ERIK LARSSON

Digital IC konstruktion

Adressrum, programmerarens bild

Cacheminne i en AMD Opteron Processor

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

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

Tenta i Digitalteknik

Datorsystemteknik DVGA03 Föreläsning 8

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorteknik ERIK LARSSON

Exempeltentamen Datorteknik, EIT070,

Tentamen den 17 mars 2016 Datorteknik, EIT070

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

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

Digital IC konstruktion

Kombinationskretsar. Föreläsning 4 Digitalteknik Mattias Krysander Institutionen för systemteknik

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

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Tentamen i Digital Design

DESIGN AV SEKVENTIELL LOGIK

Konstruktion av digitala system - VHDL

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Hantering av hazards i pipelines

HW-proj ver 3, ett kortsystem

Sekvensnät. William Sandqvist

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

CE_O8. Cacheminne. Hemlaboration 2.

TSEA28 Datorteknik Y (och U)

Avkodning av minnen (och I/O)

4 grundregler. Minneshantering. Problemet. Windows minkrav

IE1205 Digital Design: F9: Synkrona tillståndsautomater

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

L15 Introduktion modern digital design

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

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

2 UPPBYGGNAD OCH FUNKTION

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

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

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 Tidplan, bilda projektgrupper

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

adress 32 Direktmappat minne 12345000: 12345004: 12345008: 1234500C: 12345010: 12345014: AABBCCDD CL index 12345 01 AABBCCDD : komp data 32 hit Storlek = 4kB CL = 4 Index= 12-2-2=8 bitar Tag=32-12=20 bitar 12346000: 12346004: 12346008: 1234600C: 12346010: 12346014: 00112233

4-vägs cache, 16 kb 20 8 2 2 4 tag v cntr cache line 16B 4 tag v cntr tag v cntr cache line 16B 4 tag v cntr tag v cntr cache line 16B 4 tag v cntr tag v cntr cache line 16B tag v cntr komp komp komp K komp

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 L1 CPU L1 32 kb 4-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 24 +4 10 24 10 ST BPT Styrenhet Associativt minne IR1 K PC1 LOOP: 10: ZZZ... 1C: ADDI R1,R1,1 20: SFEQ R1,R2 24: BF LOOP 28: XXX 2C: YYY IR2 IR3 + PC2 D2 Z3 B2 regs ALU D3 A2 SR dmem IR4 Z4 D4

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 +4 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 IR4 24 SFEQ ADDI...... 10 BF SFEQ ADDI... 14 ZZZ BF SFEQ ADDI 28 NOP NOP BF SFEQ BPT->PC, 28->SPC F=0 => 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

A Läsminnen ROM = Read Only Memory PROM = Programmable ROM UV EPROM = UV Erasable PROM Flash = Electrically EPROM = EEPROM 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

Tristate-buffer 1) Förbättrar signalen 2) Möjlighet till tristate + jord 0 1 Z

RAM Random Access Memory Vaddå random? Tape memory RAM

Static RAM = SRAM Asynkron => ingen klocka Varken kombinatorik eller synkront sekvensnät CE A N OE N st address-ingångar M st data-in/utgångar 1 st chip enable-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 & & & &

Sid 143, nederst [MK2] Sid 144, ö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 4. 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

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 4. 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 144, mitten [MK2]

Sid 144, nederst [MK2]

Synchronous Dynamic RAM = SDRAM Dominerar helt 1-transistorcellen => 1 läs/skriv-transistor + 1 kapacitans Synkron komponent clk cmd 4 (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.

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 4 adr data N/2 M DRAM Refreshcykler har högst prioritet, CPU måste ibland vänta genom att ack fördröjs

DRAM-utveckling SDRAM = synkront DRAM klockat, controller på chipet, programmerbart, burst-orienterat, pipelineat DDR (double data rate) SDRAM DDR2 SDRAM (4x) DDR3 SDRAM (8x) Läs D0,D1 Läs D2,D3 Skicka D0 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 4kB 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.

Memory management, 4kB pages Virtuell adresskarta Process n-1 Virtuell adresskarta Process n Fysisk adresskarta 0 1 2 0 1 2 0 2 1 CPU MMU PM 20 20 TLB 2 0 1 Translation Lookaside Buffer Innehåller de mest använda översättningarna Utformas som ett associativt minne

Memory management, 4kB pages Process n har alltså fått 3 sidor. Process n kan inte komma åt några andra sidor. Två processer kan dela en sida. Man kan då skrivskydda sidan för den ena processen. 20 Skyddsbitar TLB 0 1 2 0 4 3 Associativt minne Ex: 64 rader 20

Memory management page size 4kB cache size 2x4kB 20 12 virtuell adress valid + LRU TLB skyddsbitar cache 0 1 0 4 0 4 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. 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...

PC Icache IMMU +4 NOP IR1 K PC1 PM (DRAM) DRAM Ctrl + regs IR2 PC1 D2 B2 A2 ALU IR3 Z3 D3 SR Flash Dcache DMMU Arbiter IR4 Z4 D4 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

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! dia dib adra ena,wea clka minne adrb enb,web clkb skrivcykel läscykel doa dob clka adra A 0 A 0 dia D 0 doa D 0 wea ena=1

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 adr0 adr1 adr0 adr1 dat0 dat1 dat0 dat1

FPGA-kortet Har 16 MB Cellular RAM DRAM med Controller, ser ut som SRAM Cycle time 70 ns => 7 CK med 100 MHz klocka FPGA A 25 A 0 D 15 D 0 oe,ce, clk Cellular RAM

Planering 2016, vt 1 vecka föreläsning laboration projekt 3 1. Intro 2. Mikroprog I 3. Mikroprog II 4 4. Pipelining 5. Cache 5 6. Minnen 7. Bussar/Proj 6 8. VHDL I 9. VHDL II 10. VHDL III 7 11. Grafik 12. Reserv 1. Mikroprog 2. Pipelining 3. UART Kravspec Bilda 3-grupp klar fredag 1600 8 4. VGA Kravspec inlämn. mån 1600 klar fredag 1600 9 Designskiss 10 Designskiss

Planering 2016, vt 2 vecka föreläsning laboration projekt 11 Tenta-P vt1 12 Påsk Designskiss inlämn. onsdag 1600 13 Omtenta-P ht2 14 Konstruktion Designskiss klar onsdag 1600 15 Konstruktion 16 Konstruktion 17 Konstruktion milstolpe onsdag 18 Konstruktion 19 Konstruktion 20 Konstruktion 21 Examination 50