Você está na página 1de 103

Infra-estrutura Hardware

Memória e Hierarquia de

Memória

Infra-estrutura Hardware

Roteiro da Aula

Hierarquia de Memória

Localidade temporal e espacial

Memória cache

Tipos

Princípio de funcionamento

Melhorando o desempenho

Aumento do bloco

Aumento da associatividade

Reduzindo a penalidade

Memória principal

Melhorando a taxa de transferência

Infra-estrutura Hardware

Memória Vs. Armazenamento

Fichário

Pasta
Pasta

O fichário representa o disco rígido, com alta capacidade de

armazenamento.

A pasta sobre a mesa representa a memória, de acesso rápido e fácil

Mesa e usuário são a

CPU

OBS: Memória é volátil e disco não.

Infra-estrutura Hardware

Faxineira no final do

expediente

Sistema Hierárquico de Memória

CPU Memória Memória Principal Secundária Registradores Barramento Barramento de E/S
CPU
Memória
Memória
Principal
Secundária
Registradores
Barramento
Barramento
de E/S

de memória

Infra-estrutura Hardware

Nomenclatura Básica

RAM = Random Acces

Memory

SRAM = Static RAM

DRAM = Dynamic RAM

VRAM - Video RAM

ROM = Read Only Memory

PROM = Programmable ROM

EPROM = Erasable PROM

EEPROM = Electrically Erasable PROM (apagamento byte a byte)

Flash EPROM = Fast erasable

EPROM (apagamento por bloco)

Infra-estrutura Hardware

Tipos Básicos de Memória Semicondutora

Tipo de Memória Categoria Random-Access Read- Mem. (RAM) Write

Tipo de Memória

Categoria

Random-Access

Read-

Mem. (RAM)

Write

Categoria Random-Access Read- Mem. (RAM) Write Read-Only Mem. (ROM) Read- Programmable only

Read-Only Mem.

(ROM)

Read-

Programmable

only

ROM (PROM)

Erasable PROM

(EPROM)

Electrically EPROM

Read-

(EEPROM)

mostly

Flash EPROM

EPROM Read- (EEPROM) mostly Flash EPROM Impossível Máscara Ultra-violeta Elétrica

Impossível

Máscara

Ultra-violeta

Elétrica

Elétrica

não-

Elétrico

volátil

byte a byte

byte a byte

Elétrico

por bloco

Apagamento

Escrita

Volatil

 

idade

Elétrico

Elétrica

Volátil

byte a byte

Apagamento Escrita Volatil   idade Elétrico Elétrica Volátil byte a byte
Apagamento Escrita Volatil   idade Elétrico Elétrica Volátil byte a byte

Infra-estrutura Hardware

RAM Dinâmica vs. Estática

DRAM (Dynamic Random Acess Memory)

– Grande capacidade de integração (baixo custo por bit)
– Grande capacidade de integração (baixo custo por bit)

Perda de informação após algum tempo: Necessidade de refreshing

informação após algum tempo: Necessidade de refreshing • SRAM (Static Random Acess Memory) – Pequeno tempo

SRAM (Static Random Acess Memory)

– Pequeno tempo de acesso – Não existe necessidade de refreshing – Alto custo por
– Pequeno tempo de acesso
– Não existe necessidade de refreshing
– Alto custo por bit (baixa integração)

Infra-estrutura Hardware

§5.1 Introduction

Memory Technology

Static RAM (SRAM)

0.5ns 2.5ns, $2000 $5000 per GB

Dynamic RAM (DRAM)

50ns 70ns, $20 $75 per GB

Magnetic disk

5ms 20ms, $0.20 $2 per GB

Memória Ideal

Tempo de acesso de uma SRAM

Capacidade e custo/GB de um disco

Chapter 5 Large and

Fast: Exploiting Memory

Evolução Tecnológica

1000:1

Evolução Tecnológica 1000:1 Ano Tamanho Tempo de Ciclo 1980 64Kb 250 ns 1983 256 Kb 220

Ano

Tamanho

Tempo de Ciclo

Ano Tamanho Tempo de Ciclo 1980 64Kb 250 ns 1983 256 Kb 220 ns 1986 1

1980

64Kb

250

ns

1983

256 Kb

220

ns

1986

1

190

ns

Ano Tamanho Tempo de Ciclo 1980 64Kb 250 ns 1983 256 Kb 220 ns 1986 1
Ano Tamanho Tempo de Ciclo 1980 64Kb 250 ns 1983 256 Kb 220 ns 1986 1
  Mb 1989 4 Mb 165ns 1992 16Mb 145ns 1995 64Mb 120ns
  Mb 1989 4 Mb 165ns 1992 16Mb 145ns 1995 64Mb 120ns
 

Mb

1989

4

Mb

165ns

1992

16Mb

145ns

1995

64Mb

120ns

  Mb 1989 4 Mb 165ns 1992 16Mb 145ns 1995 64Mb 120ns
165ns 1992 16Mb 145ns 1995 64Mb 120ns 2:1 Aumento da capacidade Aumento da velocidade SRAM 2x

2:1

Aumento da

capacidade

Aumento da velocidade

SRAM

2x em 3 anos

2x em 3 anos

DRAM

4x em 3 anos

2x em 10 anos

Disco

4x em 3 anos

2x em 10 anos

Infra-estrutura Hardware

Memória Principal

“640K ought to be enough for anybody.”

Bill Gates, 1981

Infra-estrutura Hardware

Comparação da Performance da

Mem. Principal e CPU

350 DecAlpha 300 250 CPU 200 DecAlpha 150 IBMPower2 DecAlpha 100 HP900 MIPS MIPS 50
350
DecAlpha
300
250
CPU
200
DecAlpha
150
IBMPower2
DecAlpha
100
HP900
MIPS
MIPS
50
IBMPower1
SUN
R3000
R2000
Infra-estrutura Hardware
150 IBMPower2 DecAlpha 100 HP900 MIPS MIPS 50 IBMPower1 SUN R3000 R2000 Infra-estrutura Hardware Memória
Memória
Memória

Sistema Hierárquico de Memória

Speed

CPU

Size

Cost ($/bit)

Fastest

Memory

Smallest

Highest

Memory

Slowest

Memory

Biggest

Lowest

Infra-estrutura Hardware

Sistema Hierárquico de Memória

Processor
Processor

Bloco (ou linha): unidade de cópia

Pode ser uma ou múltiplas

palavras

Se dado está presente no nível superior (mais perto da CPU)

Hit:

Hit ratio: nr. hits/nr. acessos

Data are transferred

Se dado está ausente

Miss: bloco copiado do nível inferior

Tempo de acesso: miss penalty

Miss ratio: misses/acessos = 1 hit ratio

Então acessa dado do nível

Infra-estrutura Hardware

superior

Sistema Hierárquico de Memória

CPU

Increasing distance Level 1 from the CPU in access time Level 2 Levels in the
Increasing distance
Level 1
from the CPU in
access time
Level 2
Levels in the
memory hierarchy
Level n
access time Level 2 Levels in the memory hierarchy Level n Size of the memory at
access time Level 2 Levels in the memory hierarchy Level n Size of the memory at

Size of the memory at each level

Infra-estrutura Hardware

Motivação para hierarquia

Principio da localidade + Relação

custo/desempenho das tecnologias

Alto desempenho da CPU

CPU Registradores
CPU
Registradores
C a Memória Memória c Principal Secundária h e Barramento Barramento de E/S
C
a
Memória
Memória
c
Principal
Secundária
h
e
Barramento
Barramento
de E/S

de memória

Infra-estrutura Hardware

Princípio da Localidade

Localidade Temporal

Num futuro próximo, o programa irá referenciar as instruções e dados referenciados recentemente

Localidade Espacial

Num futuro próximo, o programa irá

referenciar as instruções e dados que tenham endereços próximos das últimas referências.

Infra-estrutura Hardware

Hierarquia de Memória

chip CPU Registradores cache (L1) cache (L2) Custo e tamanho memória principal
chip
CPU
Registradores
cache (L1)
cache (L2)
Custo e
tamanho
memória principal
Reg. Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM
Reg.
Velocidade
Cache
Principal
Cache de Disco
Disco Magnético
Fita
CD-ROM
Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM memória secundária Infra-estrutura Hardware
memória secundária
memória secundária
memória secundária

memória secundária

Infra-estrutura Hardware

Memória Cache

Infra-estrutura Hardware

Memória Principal Vs. Cache

Memória Principal Vs. Cache Quadro Fichário Pasta • O fichário representa o disco rígido. • A

Quadro

Fichário

Pasta

O fichário representa o disco rígido.

A pasta sobre a mesa representa a memória principal.

No quadro de avisos se

encontram informações que podem ser acessadas de forma muito rápida. O quadro representa a cache.

Mesa e usuário são a CPU

Infra-estrutura Hardware

Memória Cache

Memória Cache

Nível de memória mais próximo da CPU

Dados os acessos X 1 , …, X n1 , X n

• Dados os acessos X 1 , …, X n – 1 , X n ◼

Como saber se o

dado está presente?

Onde procurar o dado?

000

001
010

011
100

101
110

111

Mapeamento direto

Localização determinada pelo endereço

Mapeamento direto: somente uma possibilidade

(Block address) modulo (#Blocks in cache)

Cache

00001 00101 01001 01101 10001 10101 11001 11101
00001
00101
01001
01101
10001
10101
11001
11101

Memory

Infra-estrutura Hardware

#Blocks é uma potencia de 2

Use bits menos

significativos do

endereço

Bits: Tags Validade

Como saber qual bloco está armazenado

numa localização da cache?

Armazena parte do endereço (bits mais significativos) e o dado

Bits mais significativos: tag

Como saber se o dado está armazenado?

Bit Validade: 1 = presente, 0 = não está present

Inicialmente: 0

Endereçando a cache

Composição do endereço

Tag

Índice

Endereço de byte

Exemplo:

Memória: endereço de 32 bits, acesso por palavra(32

bits), endereçamento por byte

Cache: capacidade para armazenar 64 palavras

Tag (24) Índice(6) Endereço do byte
Tag (24)
Índice(6)
Endereço do
byte

Infra-estrutura Hardware

Acessando a memória cache

Endereço Endereço Hit ou miss Bloco na cache decimal binário na cache

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

Endereço Endereço Hit ou miss Bloco na cache decimal binário na cache

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

10010

miss

10010 mod 8 =010

Infra-estrutura Hardware

Acessando a memória cache

Índice

V Tag

Dado

Índice V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N

000

N

001

N

010

N

011

N

100

N

101

N

110

N

111

N

V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110
V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110
V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110
V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110
V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110
V Tag Dado 000 N 001 N 010 N 011 N 100 N 101 N 110

Estado inicial da cache

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

   
   

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

Acessando a memória cache

Índice

V

Tag

Dado

 

000

N

   

001

N

   

010

N

   

011

N

   

Endereço 10110

100

N

   

101

N

   

110

Y

10

Memória(10110)

111

N

   
Y 10 Memória(10110) 111 N     Endereço Endereço Hit ou miss Bloco na cache

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

   
   

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

Acessando a memória cache

Acessando a memória cache Índice V Tag Dado 000 N     001 N    

Índice

V

Tag

Dado

000

N

   

001

N

   

010

Y

11

Memória(11010)

011

N

   

100

N

   

101

N

   

110

Y

10

Memória(10110)

111

N

   

Endereço 11010

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

   
   

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

Acessando a memória cache

Índice

V

Tag

Dado

000

Y

10

Memória(10000)

001

N

   

010

Y

11

Memória(11010)

011

N

   

100

N

   

101

N

   

110

Y

10

Memória(10110)

111

N

   

Endereço 10000

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

Endereço Endereço Hit ou miss Bloco na cache decimal binário na cache

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

Acessando a memória cache

Índice V Tag Dado 000 Y 10 Memória(10000) 001 N 010 Y 11 Memória(11010) 011

Índice

V Tag

Dado

000 Y 10 Memória(10000) 001 N 010 Y 11 Memória(11010) 011 Y 00 Memória(00011)
000 Y 10 Memória(10000) 001 N 010 Y 11 Memória(11010) 011 Y 00 Memória(00011)

000

Y

10

Memória(10000)

001

N

010

Y

11

Memória(11010)

011

Y

00

Memória(00011)

100

N

101

N

110

Y

10

Memória(10110)

111

N

Endereço 00011

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

   
   

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

Acessando a memória cache

Índice V Tag Dado 000 Y 10 Memória(10000) 001 N 010 Y 10 Memória(10010) 011

Índice

V Tag

Dado

000 Y 10 Memória(10000) 001 N 010 Y 10 Memória(10010) 011 Y 00 Memória(00011)
000 Y 10 Memória(10000) 001 N 010 Y 10 Memória(10010) 011 Y 00 Memória(00011)

000

Y

10

Memória(10000)

001

N

010

Y

10

Memória(10010)

011

Y

00

Memória(00011)

100

N

101

N

110

Y

10

Memória(10110)

111

N

Endereço 10010

Endereço

Endereço

Hit ou miss

Bloco na cache

decimal

binário

na cache

   
   

22

10110

Miss

10110 mod 8 =110

26

11010

Miss

11010 mod 8 =010

22

10110

Hit

10110 mod 8 =110

26

11010

Hit

11010 mod 8 =010

16

10000

Miss

10000 mod 8 =000

3

00011

Miss

00011 mod 8 =011

16

10000

Hit

10000 mod 8 =000

18

18

10010

miss

Infra-estrutura Hardware

miss Infra-estrutura Hardware
miss Infra-estrutura Hardware

10010 mod 8 =010

Acessos à memória

O que acontece numa falta de cache?

Informação deve ser lida da memória

São inseridos ciclos de espera no pipeline até que a informação esteja disponível na

cache

Penalidade

Se o endereço de cache está ocupado, a

informação é sobre-escrita

Infra-estrutura Hardware

Leitura/Escrita da Cache

Leitura:

Mais frequentes, rápidas e fáceis de implementar

Escrita:

Mais lentas e complicadas e consistência de dados com a memória principal deve ser mantida (se um bloco da cache foi alterado pela CPU, não pode ser descartado da cache sem garantir que foi copiado para a mem. principal)

Infra-estrutura Hardware

Tipos de acesso à cache

Leitura

Escrita

Dado e tag são atualizados na cache

Inconsistencia entre memória principal e

cache!! Como resolver?

Infra-estrutura Hardware

Políticas de Escrita e Consistência

Caches do tipo Write through

Cache e memória são atualizadas simultaneamente

Caches do tipo Write back

Memória principal é atualizada quando bloco é substituído

Usa dirty bit para marcar linhas alteradas na

cache.

Infra-estrutura Hardware

Memória Cache: escrita

Write through

Write back

facilidade de

redução de acessos à

implementação

memória

consistência da

memória principal

memória consistência da memória principal Para se evitar espera durante escrita: • Write buffers

Para se evitar espera durante escrita:

Write buffers

Infra-estrutura Hardware

Hierarquia de Memória

chip CPU Registradores cache (L1) cache (L2) Custo e tamanho memória principal
chip
CPU
Registradores
cache (L1)
cache (L2)
Custo e
tamanho
memória principal
Reg. Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM
Reg.
Velocidade
Cache
Principal
Cache de Disco
Disco Magnético
Fita
CD-ROM
Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM memória secundária Infra-estrutura Hardware
memória secundária
memória secundária
memória secundária

memória secundária

Infra-estrutura Hardware

Exemplo: DECStation3100

31 30 13 12 11 2 1 0 Byte offset 10 20 Hit Data Tag
31 30
13 12 11
2 1 0
Byte
offset
10
20
Hit
Data
Tag
Index
Index
Valid
Tag
Data
0
1
2
1021
1022
1023
20
32
Infra-estrutura Hardware

Tamanho da cache

Quantos bits tem uma cache de

mapeamento direto com 64K bytes de

dados e blocos de uma palavra? Assuma

endereços de 32 bits.

Infra-estrutura Hardware

Usando a localidade espacial

Acessando a cache por blocos de

palavras Composição do endereço:

Tag

Índice

Offset de bloco

Endereço de byte

Infra-estrutura Hardware

Usando a localidade espacial

Exemplo:

Memória: endereço de 32 bits, acesso por palavra(32 bits), endereçamento por byte

Cache: capacidade para armazenar 64 blocos

de 4 palavras cada

Tag (22) Índice(6) Offset Endereço de do bloco byte
Tag (22)
Índice(6)
Offset
Endereço
de
do
bloco
byte

Infra-estrutura Hardware

Mapeamento Direto-multiword

Address (showing bit positions)

31 16 15 4 32 1 0 16 12 2 Byte Hit Data Tag offset
31
16
15
4 32 1 0
16
12
2
Byte
Hit
Data
Tag
offset
Index
Block offset
16 bits
128 bits
V
Tag
Data
4K
entries
16
32
32
32
32
Mux
32

Infra-estrutura Hardware

Exemplo: Intrinsity FastMATH

Exemplo: Intrinsity FastMATH

Usando a localidade espacial

O que acontece durante uma falta em

acesso de leitura ou escrita?

Todo o bloco tem que ser carregado na cache

A escrita da palavra acontece

Cache write-through:

Todo o bloco é atualizado na memória

Infra-estrutura Hardware

Tamanho do bloco e taxa de faltas

40% 35% 30% 25% 20% 15% 10% 5% 0% 4 16 64 256 Block size
40%
35%
30%
25%
20%
15%
10%
5%
0%
4
16
64
256
Block size (bytes)
KB
1
KB
8
KB
16
KB
64
Blocos grandes podem aumentar
a taxa de faltas se o tamanho da cache
256 KB
Permanece constante
Miss rate

Reduzindo a taxa de faltas

Estratégias para posicionamento dos

blocos:

Mapeamento direto: cada bloco possui posição única na cache

Associativa por conjunto: cada bloco pode ser

colocado em algumas posições na cache Completamente Associativa: cada bloco pode ser colocado em qualquer posição da cache

Infra-estrutura Hardware

Mapeamento Associativo por Conjunto

Um bloco na memória principal pode ocupar qualquer posição dentro de um conjunto definido de blocos da cache

Memória principal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
31

Memória cache dados

Conjuntos (sets)

tag

13 14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag
011
011
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set
14 15 16 31 Memória cache dados Conjuntos (sets) tag 011 Endereço da palavra Tag set

Endereço da palavra

Tag

set

Offset

011

00

Offset

Infra-estrutura Hardware

Mapeamento Associativo por Conjunto

Address

31 30 12 11 10 9 8 3 2 1 0 22 8 Index V
31
30
12 11 10 9 8
3 2 1 0
22
8
Index
V
Tag
Data
V
Tag
Data
V
Tag
Data
V
Tag
Data
0
1
2
253
254
255
22
32
4-to-1 multiplexor
Hit
Infra-estrutura Hardware
Data

Mapeamento Associativo

Um bloco na memória principal pode ocupar qualquer posição na cache Tag armazena na cache o end. Do bloco na mem.

principal

Memória cache

dados tag
dados
tag
o end. Do bloco na mem. principal Memória cache dados tag Exemplo: tag = 12 (01100
o end. Do bloco na mem. principal Memória cache dados tag Exemplo: tag = 12 (01100
o end. Do bloco na mem. principal Memória cache dados tag Exemplo: tag = 12 (01100
o end. Do bloco na mem. principal Memória cache dados tag Exemplo: tag = 12 (01100

Exemplo: tag = 12 (01100 2 ) 2 )

Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
Memória cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag
01100
01100
cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag Offset
cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag Offset
cache dados tag Exemplo: tag = 12 (01100 2 ) 01100 Endereço da palavra Tag Offset

Endereço da palavra

Tag

Offset

= 12 (01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória
= 12 (01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória
= 12 (01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória
= 12 (01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória
Offset
Offset
(01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória principal 0
(01100 2 ) 01100 Endereço da palavra Tag Offset Offset 000000 01100 Offset Memória principal 0

000000

01100

Offset

Memória principal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
31
01100 Offset Memória principal 0 1 2 3 4 5 6 7 8 9 10 11

Infra-estrutura Hardware

Grau de associatividade

(direct mapped)

Block

0

1

2

3

4

5

6

7

Tag Data

(direct mapped) Block 0 1 2 3 4 5 6 7 Tag Data Two-way set associative
(direct mapped) Block 0 1 2 3 4 5 6 7 Tag Data Two-way set associative
Two-way set associative Set Tag Data Tag Data 0 1 2 3
Two-way set associative
Set
Tag Data
Tag Data
0
1
2
3

Set

 

0

1

Tag Data

Tag Data

Four-way set associative

Tag Data

Tag Data

Tag Data

Tag Data

Four-way set associative Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative)
Four-way set associative Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative)
Four-way set associative Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative)
Four-way set associative Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative)

Eight-way set associative (fully associative)

Tag Data

Tag Data

Tag Data

Tag Data

Tag Data

Tag Data

set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

Infra-estrutura Hardware

Comparação de Métodos de Mapeamento

Mapeamento direto

– Simples e Barata
– Simples e Barata

Lenta

Mais faltas

direto – Simples e Barata – Lenta – Mais faltas Associativa • Rápida • Menos falta

Associativa

• Rápida • Menos falta
• Rápida
• Menos falta

Cara (comparação do endereço em paralelo)

Menos falta • Cara (comparação do endereço em paralelo) Associativa por conjunto: combinação das anteriores •

Associativa por conjunto: combinação das anteriores

Se NCC = NBC Ass. por conjunto = Mapeamento Direto

Se NCC = 1

Ass. por conjunto = Associativa

NBC

= núm. blocos da cache

NCC

= núm. conjuntos da cache

Infra-estrutura Hardware

Políticas de Substituição de Blocos

Randômica:

Simples e fácil de implementar

FIFO (First-In-First-Out)

LFU (Least-Frequently Used)

LRU (least-recently used) Menor taxa de faltas

Associatividade

2 way

4-way

8-way

Size

LRU

random

LRU

random

LRU

random

16 KB

5.18

5.69

4.67

5.29

4.39

4.96

64 KB

1.88

2.01

1.54

1.66

1.39

1.53

256KB

1.15

1.17

1.13

1.13

1.12

1.12

Infra-estrutura Hardware

Caches separadas

Cache de dados e cache de instruções

Vantagens:

Melhor capacidade de otimizações

Evita hazard estrutural

Desvantagens:

maior taxa de falta

P ro g ra m a

M is s

ra te

M is s

ra te

M

is s

M

is s

(in s tr.)

(d a d o )

ra

te

ra

te

 

(s e p .)

(ú n ic a )

G c c S p ic e

6 .1 % 1 .2 %

2 .1 % 1 .3 %

5 .4 % 1 .2 %

4 .8 %

Infra-estrutura Hardware

Exemplo: Alpha AXP 21064

Cache separadas de dados e de

instruções

Características:

Tamanho:8192 bytes

Blocos de 32 bits

Mapeamento direto

Write through

Four buffer write-buffer

Infra-estrutura Hardware

Alpha AXP 21064- Cache Dados

Endereço Tag Indice Off. CPU Tag Dados Val. (256) (1) (21) Dados Dados Entrada Saída
Endereço
Tag
Indice
Off.
CPU
Tag
Dados
Val.
(256)
(1)
(21)
Dados
Dados
Entrada
Saída
256
blocos
Buffer
Mux
de
=?
Escrita

Infra-estrutura Hardware

Exercício

Considere referências aos seguintes endereços de memória: 1,4,8,5,20,17,19,56, 9,11,

4,43,5,6,9, 17. Calcule o número de faltas para uma cache de 16 palavras com blocos

de 1 palavra e mostre o estado final da cache. Compare os resultados para as

seguintes organizações:

(a)

- mapeamento direto

(b)

- two-way set associativa,

(c)

-completamente associativa.

Suponha que a cache está inicialmente vazia e quando necessário use como política

de substituição o algoritmo LRU.

Infra-estrutura Hardware

Hierarquia de memória

Melhorando o desempenho

Infra-estrutura Hardware

Hierarquia de Memória

chip CPU Registradores cache (L1) cache (L2) Custo e tamanho memória principal
chip
CPU
Registradores
cache (L1)
cache (L2)
Custo e
tamanho
memória principal
Reg. Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM
Reg.
Velocidade
Cache
Principal
Cache de Disco
Disco Magnético
Fita
CD-ROM
Velocidade Cache Principal Cache de Disco Disco Magnético Fita CD-ROM memória secundária Infra-estrutura Hardware
memória secundária
memória secundária
memória secundária

memória secundária

Infra-estrutura Hardware

Desempenho de uma CPU

CPU time = (CPU_Ciclos para execução + Memória_ciclos-stall) x ClK_período

CPU_ciclos execução= #instruções x CPI

Memória ciclos = Leitura ciclos + Escrita ciclos

Leitura ciclos = Leituras x Miss_rate leitura x Penalty leitura

Escrita ciclos = Escritas x Miss_rate escrita x Penalty escrita

Infra-estrutura Hardware

Desempenho de uma CPU

Exemplo:

Miss_rate instr. =2%, Miss_rate dado. =4%, CPI=2, Penalty=100 ciclos

Taxa(Load,Store)= 36%

Qual a degradação de desempenho devido aos acessos à memória? CPI mem ?

Infra-estrutura Hardware

Desempenho de uma CPU

Miss_instr ciclos = I x 2% x 100 = 2,00 I

Miss_dados ciclos = I x 36% x 4% x 100 = 1,44 I

CPU time = (CPU ciclos-execução + Memória ciclos-stall )x

Clk

Memória ciclos = 2 I + 1,44 I = 3,44 I

CPI mem = 2,0 + 3,44 = 5,44

CPI stall / CPI perf = 5,44/2 = 2,72

Infra-estrutura Hardware

Processador mais rápido

Diminuindo CPI

CPI novo = 1,0

CPI mem = 1,0 + 3,44 = 4,44

Desempenho = 4,44 / 1,0 = 4,44

Quantidade de tempo com stalls sobre de 63% (3,44/5,44) para 77% (3,44 / 4,44)

Duplicando o clock

Penalty = 200 ciclos

Miss ciclos (por instr.)= 2% x 200 + 36% (4% x 200) = 6,88

CPI mem = 2,0 + 6,88 = 8,88

CI x CPI ck-lento x ciclo / CI x CPI ck-rap. x ciclo = 5,44 / 8,88x0,5 = 1,23

Infra-estrutura Hardware

Desempenho de uma cache

• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss

• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i

• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i
• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i
• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i

CPI( #clocks por instrução)

• • CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i

Cache Perfeita => 2,0

CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i n s
CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i n s
CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i n s
CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i n s
CPI( #clocks por instrução) – Cache Perfeita => 2,0 – Cache (2% miss i n s

Cache (2% miss instr , 4% miss dado ) => 5,44

i n s t r , 4% miss d a d o ) => 5,44 –
i n s t r , 4% miss d a d o ) => 5,44 –
i n s t r , 4% miss d a d o ) => 5,44 –

Sem cache => 68.5

miss d a d o ) => 5,44 – Sem cache => 68.5 Melhorando o processador

Melhorando o processador

5,44 – Sem cache => 68.5 Melhorando o processador – Diminuindo CPI – • CPI =>

Diminuindo CPI

68.5 Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0)
68.5 Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0)

CPI => 4,44 (em vez de 1,0)

Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0) Duplicando
Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0) Duplicando

Duplicando clock

Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0) Duplicando
Melhorando o processador – Diminuindo CPI – • CPI => 4,44 (em vez de 1,0) Duplicando

CPI => 8,88

Infra-estrutura Hardware

Melhorando desempenho da cache

Tempo_acesso médio = Hit time + Miss rate x Miss penalty

Tempo_acesso m é d i o = Hit time + Miss rate x Miss penalty

Estratégias:

Redução de faltas

Redução da penalidade

Redução do tempo de acesso

Infra-estrutura Hardware

Reduzindo falta de cache

40% 35% 30% 25% 20% 15% 10% 5% 0% 4 16 64 256 Block size
40%
35%
30%
25%
20%
15%
10%
5%
0%
4
16
64
256
Block size (bytes)
KB
1
KB
8
KB
16
• Aumentar tamanho do bloco
KB
64
Miss rate

Infra-estrutura Hardware

256 KBBlock size (bytes) KB 1 KB 8 KB 16 • Aumentar tamanho do bloco KB 64

Reduzindo falta de cache

Aumento da associatividade

Tam. cache one-way 1 7.65

Tam. cache

one-way

1

7.65

Tam. cache one-way 1 7.65 two-way four-way eight-way 6.60 6.22 5.44

two-way

four-way

eight-way

6.60

6.22

5.44

Tam. cache one-way 1 7.65 two-way four-way eight-way 6.60 6.22 5.44
Tam. cache one-way 1 7.65 two-way four-way eight-way 6.60 6.22 5.44
two-way four-way eight-way 6.60 6.22 5.44 4.90 4.62 4.09 3.95 3.57 3.19 3.00

4.90

4.62

4.09

3.95

3.57

3.19

3.00

2.87

2.59

2.20

2.12

2.04

1.80

1.77

1.79

1.60

1.57

1.59

1.45

1.42

1.44

3.00 2.87 2.59 2.20 2.12 2.04 1.80 1.77 1.79 1.60 1.57 1.59 1.45 1.42 1.44

2

5.90

4

4.60

8

3.30

16

2.45

32

2.00

64

1.70

128

1.50

1.45 1.42 1.44 2 5.90 4 4.60 8 3.30 16 2.45 32 2.00 64 1.70 128
1.45 1.42 1.44 2 5.90 4 4.60 8 3.30 16 2.45 32 2.00 64 1.70 128

Infra-estrutura Hardware

Aumento da Associatividade

Block #

Data

Tag

Search

Direct mapped

0 1 2 3 4 5 6 7

Block # Data Tag Search Direct mapped 0 1 2 3 4 5 6 7 1
1 2
1
2

Set associative

Set #

Data

Tag

Search

0 1 2 3
0
1
2
3
1 2
1
2

Infra-estrutura Hardware

Fully associative

Data

Tag

Search

1 2 Set associative Set # Data Tag Search 0 1 2 3 1 2 Infra-estrutura
1 2
1
2

Aumento da Associatividade

Program

Associatidade

Miss instr.

Miss dado

Miss Total

a

Gcc

1

2.0%

1.7%

1.9%

Gcc

2

1.6%

1.4%

1.5%

Gcc

4

1.6%

1.4%

1.5%

Spice

1

0.3%

0.6%

0.4%

Spice

2

0.3%

0.6%

0.4%

Spice

4

0.3%

0.6%

0.4%

Infra-estrutura Hardware

Miss rate

Aumento da Associatividade

15% 12% 9% 6% 3% 0% One-way Two-way Four-way Eight-way Associativity KB 1 KB 16
15%
12%
9%
6%
3%
0%
One-way
Two-way
Four-way
Eight-way
Associativity
KB
1
KB
16
2 KB
KB
32
KB
4
64
KB
128 KB
8
KB

Infra-estrutura Hardware

Reduzindo penalidade de cache

Write Buffers

CPU data data in out Tag Dado =? Write buffer Mem. princ.
CPU
data
data
in
out
Tag
Dado
=?
Write
buffer
Mem. princ.

Infra-estrutura Hardware

Reduzindo penalidade

Early Restart and Critical Word First:

Assim que palavra procurada foi carregada na cache esta é enviada para a CPU. Requisita palavra procurada primeiro e a

envia para a CPU assim que a mesma foi

carregada. Aplicável para grandes blocos

Infra-estrutura Hardware

Reduzindo a penalidade

Dois níveis de cache:

primeiro nível:

menor tempo de acesso

menor capacidade

maior custo

segundo nível:

maior capacidade

menor custo

maior tempo de acesso

Infra-estrutura Hardware

chip CPU Registradores cache (L1) cache (L2) memória principal
chip
CPU
Registradores
cache (L1)
cache (L2)
memória principal

Reduzindo penalidade

Segundo nível de cache:

Desempenho:

Avrg.mem.acc.time=hit L1 +miss L1 x pen L1

Pen L1 =hit L2 +miss L2 x Pen L2

De quanto melhora o desempenho da

máquina pela inclusão do 2. nível?

Infra-estrutura Hardware

Reduzindo a penalidade

Exemplo: CPI base =1.0, Clk=500MHz, Time mem =200ns, Miss-rate mem =5%.

Segundo nível: Time L2 =20ns, Miss- rate mem =2%

Qual o desempenho da máquina com 2. nível de cache?

Infra-estrutura Hardware

Reduzindo a penalidade

Qual o desempenho da máquina com 2. nível de cache?

Penalty mem =200ns/2ns/clk = 100 ciclos

CPI total = CPI base +Mem ciclos /I = 1.0 + 5%x100=6.0

Penalty L2 =20/2=10 ciclos

CPI total =1+L1-stalls+L2stalls =

1+((5%-2%)x10)+(2%x(10+100))=

1+0.3+2.2=3.5

Desempenho= 6.0/3.5 = 1.7

Infra-estrutura Hardware

Reduzindo penalidade

Primeiro nível de cache:

Redução da penalidade

Redução do tempo de acesso

Uso de técnicas como early-restart e critical-word-

first

Infra-estrutura Hardware

Reduzindo penalidade

Segundo nível de cache:

Redução da taxa de falta

cache do segundo nível maior que a do primeiro nível

E quanto a duplicação de dados nos dois

níveis?

Os dados devem ser duplicados (consistência)

Infra-estrutura Hardware

Memória principal

Duplo papel:

satisfazer a demanda da cache

servir como interface para E/S

Medidas de performance:

latência -> cache

Largura de banda -> E/S

Infra-estrutura Hardware

Memórias mais largas

CPU

Memórias mais largas CPU Cache Memória CPU Multiplexador Cache Memória Infra-estrutura Hardware

Cache

Memórias mais largas CPU Cache Memória CPU Multiplexador Cache Memória Infra-estrutura Hardware

Memória

CPU

Multiplexador
Multiplexador

Cache

Memórias mais largas CPU Cache Memória CPU Multiplexador Cache Memória Infra-estrutura Hardware

Memória

Infra-estrutura Hardware

Memórias mais largas

Redução da penalidade de cache

Necessidade de barramento e multiplexadores

Expansão condicionada a largura

Dificuldade em corrigir erros

Ex: Alpha :

cache e mem. principal => 256 bits

Infra-estrutura Hardware

Memória “Interleaved”

CPU

CPU

Memória “Interleaved” CPU CPU Cache Cache Memória Banco 0 Banco 1 Banco 2 Banco 3 Memória

Cache

Cache

Memória “Interleaved” CPU CPU Cache Cache Memória Banco 0 Banco 1 Banco 2 Banco 3 Memória

Memória

Banco 0

Banco 1

Banco 2

Banco 3

Memória

Memória

Memória

Memória

Infra-estrutura Hardware

Memória Interleaved

Bancos de memória para escrita/leitura de múltiplas palavras

Reduz penalidade

Necessita pouco hardware adicional

Infra-estrutura Hardware

Memória “larga” vs. Interleaved

CPI (# clocks por instrução)

32 bits, sem interleaving=3.54

32 bits, interleaving=2.86

Infra-estrutura Hardware

SIMULANDO CACHE COM MIPSIT

Infra-estrutura Hardware

Configurando a Cache mapeamento direto: Inclusão da informação da primeira palavra, cujo valor = ´

Configurando a Cache

mapeamento direto:

Configurando a Cache mapeamento direto: Inclusão da informação da primeira palavra, cujo valor = ´ 1
Configurando a Cache mapeamento direto: Inclusão da informação da primeira palavra, cujo valor = ´ 1

Inclusão da informação da primeira palavra, cujo valor = ´1´ no endereço ´1´.

Para configuração Associativa por conjunto 2-way use size =16; Block size = 1; Blocks in sets = 2.

Para configuração Completamente Associativo use size =16; Block size = 1; Blocks in sets = 16.

Infra-estrutura Hardware

Exercício

1- Simule o programa descrito acima e

faça um relato comparativo nos casos enumerados abaixo, considerando as

seguintes características para a cache de

dados: Número de faltas e se existe localidade espacial e temporal.

Infra-estrutura Hardware

Infra-estrutura Hardware

Exercício

Caso 1: Compare os resultados obtidos com uma cache de 16 palavras versus uma cache de 32 palavras com os mesmos tamanhos de bloco e graus de associatividade (a seu critério).

a. Qual o layout do endereço da cache em

cada uma das configurações de cache?

b. Qual a justificativa para os resultados

obtidos na taxa de faltas para as duas

configurações analisadas?

Infra-estrutura Hardware

Exercício

-Caso 2: Compare os resultados obtidos para uma cache de 16 palavras com três tipos de associatividade: Mapeamento direto, Associativa por conjunto 2-way e Completamente associativo.

a. Qual o layout do endereço da cache em

cada uma das configurações de cache?

b. Qual a justificativa para os resultados

obtidos na taxa de faltas para as duas

configurações analisadas?

Infra-estrutura Hardware

Exercício

Caso 3: Compare uma cache de 32 palavras com blocos de 2 palavras versus uma cache de 32 palavras com blocos de 4 palavras, ambas de mapeamento direto. a. Qual o layout do endereço da cache em

cada uma das configurações de cache?

b. Qual a justificativa para os resultados obtidos na taxa de faltas para as duas

configurações analisadas?

Infra-estrutura Hardware

Exercício

2- Repita o exercício anterior para a cache

de instruções.

Infra-estrutura Hardware

MEMÓRIA PRINCIPAL

Infra-estrutura Hardware

Acesso a memória principal (DRAM)

CPU

Memória

n bits Endereço n/2 bits Endereços multiplexado: Linhas e colunas Dados Dados Controle (RD, WR
n bits
Endereço
n/2 bits
Endereços
multiplexado:
Linhas e colunas
Dados
Dados
Controle (RD, WR
)
Controlador
de Memória
RAS
CAS
W
OE(RD)

DRAM

Organização Interna

e Método de Acesso

DRAM Organização Interna e Método de Acesso • O endereço das linhas e colunas são enviados

O endereço das linhas e colunas são enviados separadamente (prim. linha, depois coluna).

Para acessar uma posição (leitura ou

escrita), o endereço da linha é posto junto com o sinal RAS (Row Addres Selector).

• RAS CAS W OE MUX Row Dec A0 oder A1 D1 A10 D2 D3
RAS CAS W
OE
MUX
Row
Dec
A0
oder
A1
D1
A10
D2
D3
Column
D4
Decoder

Depois o endereço da coluna vai junto com o sinal CAS (Column Address Selector)

No exemplo abaixo, as 11 linhas de A0 a

A10 são usadas para enviar end. de linha e coluna. Por isso esta memória tem 4Mega posições de endereçamento (4Mega = 2 22 )

Modo de Acesso

Ex: FPM RAM

Ativa uma fila (RAS)

Acessos sequenciais a colunas (vários

pulsos de CAS)

No Page Mode , o controlador de memória faz até 4 acessos em sequência à DRAM. Page Mode, o controlador de memória faz até 4 acessos em sequência à DRAM. É comum designar o núm. de pulsos de clock de cada acesso para cada tipo de memória.

Ex. a FPM RAM tem acesso 5/3/3/3 (a 66MHz) em page mode, o que significa 5 pulsos de clock para obter o primeiro dado, e 3 para o segundo, terceiro e quarto.4 acessos em sequência à DRAM. É comum designar o núm. de pulsos de clock de

FPM DRAM - Fast Page Mode DRAM EDO DRAM - Extended Data-Output DRAM

FPM DRAM DRAM mais simples Tempo de acesso 70ns and 60ns. Acesso page mode = 5/3/3/3 a 66MHz

de acesso 70ns and 60ns. Acesso page mode = 5/3/3/3 a 66MHz EDO DRAM • Tempo
de acesso 70ns and 60ns. Acesso page mode = 5/3/3/3 a 66MHz EDO DRAM • Tempo
de acesso 70ns and 60ns. Acesso page mode = 5/3/3/3 a 66MHz EDO DRAM • Tempo

EDO DRAM

Tempo de acesso 70ns, 60ns and

50ns

Para barramento

de 66 MHz use 60 ns ou melhor.

Acesso page mode

= 5/2/2/2 a 66MHz

EDO DRAM

Método de Acesso

No page mode, um latch na saída de dados permite o

acesso simultâneo a novas posições de memória enquanto os dados estão sendo lidos na saída. Isso permite a diminuição do tempo entre pulsos de CAS

de memória enquanto os dados estão sendo lidos na saída. • Isso permite a diminuição do

BEDO - Burst EDO DRAM

Page (burst) mode = 5/1/1/1 a

66MHz

Tempo de acesso randômico

é igual ao FPM ou EDO RAM

Possui registrador e gerador interno de ender. sequenciais

• Tempo de acesso randômico é igual ao FPM ou EDO RAM • Possui registrador e

SDRAM - Synchronous DRAM

Page (burst) mode = 5/1/1/1 a

100MHz

Tempo de

acesso

randômico é igual à FPM ou

EDO RAM.

Trabalha na velocidade do

bus, por isso o

nome.

clock ras cas address data row col data data data
clock
ras
cas
address
data
row
col
data
data
data

SDRAM - Synchronous DRAM

Page (burst) mode = 5/1/1/1 a 100MHz

Interleaved

Uso de Serial

mode = 5/1/1/1 a 100MHz • Interleaved • Uso de Serial Presence Detect para Plug-and-Play row

Presence Detect para Plug-and-Play

Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
Interleaved • Uso de Serial Presence Detect para Plug-and-Play row col data data data clock ras
row col data data data
row
col
data
data
data

clock

ras

cas

address

data

DDR SDRAM Double Data Rate SDRAM

Transfere dados na subida e descida do

clock (compensa o uso de barramentos

lentos)

Uso de Serial Presence Detect para Plug-

and-Play

Resumo

Hierarquia de Memória

Memórias com diferentes características:

Tempo acesso

Capacidade

Custo

Uso da localidade temporal e espacial

Primeiro nível da hierarquia

Memória cache

Tipos de Cache

Mapeamento direto

Associativa

Associativa por conjunto

Infra-estrutura Hardware

Resumo

Melhorando o desempenho

Aumentar tamanho do bloco

Aumentar a associatividade

Redução da penalidade

Cache multinível

Memória Principal

Memórias largas

Bancos de memória

Memória DRAM:

Acessos de endereços consecutivos mais eficiente

SDRAM ou DDR SDRAM

Infra-estrutura Hardware