33
1 Capítulo 7

1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

Embed Size (px)

Citation preview

Page 1: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

1

Capítulo 7

Page 2: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

2

• SRAM:

– O valor é armazenado num par de portas inversoras

– Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores)

• DRAM:

– O valor é armazenado como uma carga num capacitor (deve ser reavivado, “refreshed” )

– Muito pequeno mas mais lento que SRAM ( 5 a 10 vezes)

Memórias: Revisão

Word line

Pass transistor

Capacitor

Bit line

Page 3: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

3

• Os usuários desejam memórias de grande capacidade e rápidas!

Tempo de acesso de SRAM = 2 - 25ns; custo $100 a $250 por Mbyte.Tempo de acesso de DRAM = 60-120ns;custo $5 a $10 por Mbyte.Tempo de acesso de Disco = 10 a 20 milhões ns; custo $.10 a $.20 por Mbyte.

• Construir uma hierarquia de memória

Explorando Hierarquia de Memória

CPU

Level n

Level 2

Level 1

Levels in thememory hierarchy

Increasing distance from the CPU in

access time

Size of the memory at each level

Page 4: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

4

Princípio de Localidade

• Este principio garante a eficiência da hierarquia de memória

• localidade temporal: referência repetida à mesma localidadelocalidade espacial: referência a endereços próximos.

Porque existem as localidades acima?

• Nosso foco inicial: dois níveis (superior,inferior)– bloco: unidade mínima de dados – hit: o dado requisitado está no nível superior– miss: o dado requisitado não está no nível superior

Page 5: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

5

• Cache (nível superior): é uma memória rápida, normalmente implementada em SRAM, que contém cópias dos dados da memória principal (nível inferior)

– Nosso primeiro exemplo: “mapeamento direto"

– O tamanho de bloco é uma palavra de dado

Para cada dado num nível inferior (memória principal), existe exatamente um endereço (slot) no cache, de onde ele deve estar.

p.ex., muitos blocos no nível inferior compartilham posições (slots) no nível superior

Cache

Duas questões:Como sabemos que um dado item

está no cache?Se estiver, como encontrá-lo?

Page 6: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

6

• Mapeamento: a posição no cache é o endereço de memória em modulo do número de slots no cache:

• Ex:

Cache em mapeamento direto

00001 00101 01001 01101 10001 10101 11001 11101

000

Cache

Memory

001

010

011

100

101

110

111

1

25

1 mod 8 = 19 mod 8 = 117 mod 8 = 125 mod 8 = 1

1 9 17

Page 7: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

7

• Para MIPS:

Que tipo de localidade está sendo usada?

Cache em mapeamento direto Address (showing bit positions)

20 10

Byteoffset

Valid Tag DataIndex

0

1

2

1021

1022

1023

Tag

Index

Hit Data

20 32

31 30 13 12 11 2 1 0

Page 8: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

8

• Levando vantagem sobre a localidade espacial:

Cache em mapeamento direto

Address (showing bit positions)

16 12 Byteoffset

V Tag Data

Hit Data

16 32

4Kentries

16 bits 128 bits

Mux

32 32 32

2

32

Block offsetIndex

Tag

31 16 15 4 32 1 0

Page 9: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

9

• Read hits– É o que se deseja!

• Read misses– Pára a CPU, busca um bloco da memória, entrega ao cache, e

reinicia a CPU

• Write hits:– Pode substituir dados no cache e memória (write-through)– Escreve dados somente no cache (faz write-back mais tarde )

• Write misses:– Le o bloco inteiro no cache, e depois faz a escrita na palavra

referenciada

Hits vs. Misses

Page 10: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

10

• Fazer a leitura de múltiplas palavras usando bancos de memória

Questões de Hardware

CPU

Cache

Bus

Memory

a. One-word-wide memory organization

CPU

Bus

b. Wide memory organization

Memory

Multiplexor

Cache

CPU

Cache

Bus

Memorybank 1

Memorybank 2

Memorybank 3

Memorybank 0

c. Interleaved memory organization

Page 11: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

11

Aumentando o tamanho do bloco tende a decrescer o miss rate.

Usar caches repartidos (split) porque existem mais localidade espacial no código.

Desempenho

1 KB

8 KB

16 KB

64 KB

256 KB

256

40%

35%

30%

25%

20%

15%

10%

5%

0%

Mis

s ra

te

64164

Block size (bytes)

ProgramBlock size in

wordsInstruction miss rate

Data miss rate

Effective combined miss rate

gcc 1 6.1% 2.1% 5.4%4 2.0% 1.7% 1.9%

spice 1 1.2% 1.3% 1.2%4 0.3% 0.6% 0.4%

Page 12: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

12

Desempenho

tempo de execução = (ciclos de execução + ciclos de parada) tempo de ciclo

ciclos de parada = # de instruções miss ratio miss penalty

Duas formas de melhorar o desempenho:

– Decrementando o miss ratio

– Decrementando o miss penalty

Page 13: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

13

Diminuindo miss rate com associatividade

Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

Eight-way set associative (fully associative)

Tag Data Tag Data Tag Data Tag Data

Four-way set associative

Set

0

1

Tag Data

One-way set associative(direct mapped)

Block

0

7

1

2

3

4

5

6

Tag Data

Two-way set associative

Set

0

1

2

3

Tag Data

Page 14: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

14

Uma implementaçãoAddress

22 8

V TagIndex

012

253254255

Data V Tag Data V Tag Data V Tag Data

3222

4-to-1 multiplexor

Hit Data

123891011123031 0

Page 15: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

15

Desempenho

0%

3%

6%

9%

12%

15%

Eight-wayFour-wayTwo-wayOne-way

1 KB

2 KB

4 KB

8 KB

Mis

s ra

te

Associativity 16 KB

32 KB

64 KB

128 KB

Page 16: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

16

Diminuindo o miss penalty com caches multiníveis

• Adicionar um segundo nível de cache:

– geralmente o cache nível 1 fica no mesmo chip do processador

– usar SRAMs para adicionar um outro cache acima da memória primária (DRAM)

– O miss penalty diminui se os dados estão nesse cache nível 2

• Exemplo:– CPI de 1.0 numa máquina a 500Mhz com 5% miss rate, acesso a DRAM

de 200ns – Adicionando cache nível 2 de tempo de acesso = 20ns diminui o miss rate

para 2%

Page 17: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

17

Caches Multi-Nível

• Opções: caches de dados e instruções separados, ou um cache unificado

size:speed:$/Mbyte:

line size:

200 B3 ns

8 B

8-64 KB3 ns

32 B

128 MB DRAM60 ns$1.50/MB8 KB

30 GB8 ms$0.05/MB

larger, slower, cheaper

MemoryMemory

L1 d-cache

RegsUnified

L2 Cache

UnifiedL2

Cache

Processor

1-4MB SRAM6 ns$100/MB32 B

L1 i-cache

diskdisk

Page 18: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

18

Processor ChipProcessor Chip

Hierarquia de cache no Pentium Intel

L1 Data1 cycle latency

16 KB4-way assocWrite-through

32B lines

L1 Instruction16 KB, 4-way

32B lines

Regs. L2 Unified128KB--2 MB4-way assocWrite-back

Write allocate32B lines

L2 Unified128KB--2 MB4-way assocWrite-back

Write allocate32B lines

MainMemory

Up to 4GB

MainMemory

Up to 4GB

Page 19: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

19

Memória Virtual

• A memória principal pode agir como um cache para o armazenamento secundário (disco)

• Vantagens:– Ilusão de ter mais memória física– Relocação de programa – proteção

Physical addresses

Disk addresses

Virtual addresses

Address translation

Page 20: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

20

Páginas: “blocos” na memória virtual

• Falta de página: os dados não estão na memória, deve ser recuperado do disco

– miss penalty grande, portanto, as páginas devem ser bem grandes (p.ex., 4KB)

– É importante reduzir as faltas de página

– Pode manipular as faltas em software ao invés de hardware

– usar write-through é muito dispendioso, então usa-se writeback

3 2 1 011 10 9 815 14 13 1231 30 29 28 27

Page offsetVirtual page number

Virtual address

3 2 1 011 10 9 815 14 13 1229 28 27

Page offsetPhysical page number

Physical address

Translation

Page 21: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

21

Tabela de páginas

Physical memory

Disk storage

Valid

1

1

1

1

0

1

1

0

1

1

0

1

Page table

Virtual pagenumber

Physical page ordisk address

Page 22: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

22

Tabela de páginas

Page offsetVirtual page number

Virtual address

Page offsetPhysical page number

Physical address

Physical page numberValid

If 0 then page is notpresent in memory

Page table register

Page table

20 12

18

31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0

29 28 27 15 14 13 12 11 10 9 8 3 2 1 0

Page 23: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

23

Fazendo a tradução de endereço rápida

• Um cache para tradução de endereço: translation lookaside buffer

Valid

1

1

1

1

0

1

1

0

1

1

0

1

Page table

Physical pageaddressValid

TLB

1

1

1

1

0

1

TagVirtual page

number

Physical pageor disk address

Physical memory

Disk storage

Page 24: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

24

TLBs e caches

Yes

Deliver datato the CPU

Write?

Try to read datafrom cache

Write data into cache,update the tag, and put

the data and the addressinto the write buffer

Cache hit?Cache miss stall

TLB hit?

TLB access

Virtual address

TLB missexception

No

YesNo

YesNo

Write accessbit on?

YesNo

Write protectionexception

Physical address

Page 25: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

25

CPUTLB

LookupCache Main

Memory

VA PA miss

hit

data

Trans-lation

hit

miss

• “Translation Lookaside Buffer” (TLB)– Pequeno cache em MMU– Mapeia número de página virtual para número de página física– Contem entradas de tabela de página completas para um

pequeno número de páginas

Acelerando a tradução de endereço com TLB

Page 26: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

26

virtual addressvirtual page number page offset

physical address

n–1 0p–1p

valid physical page numbertag

valid tag data

data=

cache hit

tag byte offsetindex

=

TLB hit

TLB

Cache

. ..

Tradução de endereço com TLB

Page 27: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

27

• endereçamento– Endereço virtual de 14-bits– Endereço físico de 12-bits– Tamanho de página = 64 bytes

13 12 11 10 9 8 7 6 5 4 3 2 1 0

11 10 9 8 7 6 5 4 3 2 1 0

VPO

PPOPPN

VPN

(Virtual Page Number) (Virtual Page Offset)

(Physical Page Number) (Physical Page Offset)

Exemplo de sistema de memória simples

Page 28: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

28

– Somente mostra as primeiras 16 entradas

VPN PPN Valid VPN PPN Valid

00 28 1 08 13 1

01 – 0 09 17 1

02 33 1 0A 09 1

03 02 1 0B – 0

04 – 0 0C – 0

05 16 1 0D 2D 1

06 – 0 0E 11 1

07 – 0 0F 0D 1

Tabela de página

Page 29: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

29

• TLB– 16 entradas– Associativo de 4-linhas por conjunto (4-way)

13 12 11 10 9 8 7 6 5 4 3 2 1 0

VPOVPN

TLBITLBT

Set Tag PPN Valid Tag PPN Valid Tag PPN Valid Tag PPN Valid

0 03 – 0 09 0D 1 00 – 0 07 02 1

1 03 2D 1 02 – 0 04 – 0 0A – 0

2 02 – 0 08 – 0 06 – 0 03 – 0

3 07 – 0 03 0D 1 0A 34 1 02 – 0

TLB (Translation Look-Aside Buffer)

Page 30: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

30

– 16 linhas– Linha de 4-bytes– Mapeamento direto

11 10 9 8 7 6 5 4 3 2 1 0

PPOPPN

COCICT

Idx Tag Valid B0 B1 B2 B3 Idx Tag Valid B0 B1 B2 B3

0 19 1 99 11 23 11 8 24 1 3A 00 51 89

1 15 0 – – – – 9 2D 0 – – – –

2 1B 1 00 02 04 08 A 2D 1 93 15 DA 3B

3 36 0 – – – – B 0B 0 – – – –

4 32 1 43 6D 8F 09 C 12 0 – – – –

5 0D 1 36 72 F0 1D D 16 1 04 96 34 15

6 31 0 – – – – E 13 1 83 77 1B D3

7 16 1 11 C2 DF 03 F 14 0 – – – –

Cache

Page 31: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

31

• Endereço Virtual 03D4h

VPN ___ TLBI ___TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____

• Endereço físico

Offset ___ CI___ CT ____ Hit? __ Byte: ____

13 12 11 10 9 8 7 6 5 4 3 2 1 0

VPOVPN

TLBITLBT

11 10 9 8 7 6 5 4 3 2 1 0

PPOPPN

COCICT

Exemplo de tradução de endereço #1

Page 32: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

32

• Endereço Virtual 0B8Fh

VPN ___ TLBI ___TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____

• Endereço físico

Offset ___ CI___ CT ____ Hit? __ Byte: ____

13 12 11 10 9 8 7 6 5 4 3 2 1 0

VPOVPN

TLBITLBT

11 10 9 8 7 6 5 4 3 2 1 0

PPOPPN

COCICT

Exemplo de tradução de endereço #2

Page 33: 1 Capítulo 7. 2 SRAM: –O valor é armazenado num par de portas inversoras –Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: –O valor

33

• Endereço Virtual 0040h

VPN ___ TLBI ___TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____

• Endereço físico

Offset ___ CI___ CT ____ Hit? __ Byte: ____

13 12 11 10 9 8 7 6 5 4 3 2 1 0

VPOVPN

TLBITLBT

11 10 9 8 7 6 5 4 3 2 1 0

PPOPPN

COCICT

Exemplo de tradução de endereço #3