arquitectura de computadoresjcf/ensino/disciplinas/mieic/arq/...ram2: 001x xxxx xxxx xxxx gama:...

40
Sistemas de memória João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém figuras de “Computer Organization and Design” (cap. 7, Ap. B), D. Patterson & J. Hennessey, 3 a . ed., Elsevier Tópicos 1 Memórias 2 Sistemas de memória: aspectos gerais Descodificação de endereços Hierarquia de memória 3 Memórias cache Princípios de funcionamento de memórias cache Desempenho de memórias cache 4 Memória virtual ArqComp: Sistemas de memória 2/79 2007-04-02

Upload: others

Post on 09-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Sistemas de memória

João Canas Ferreira

Arquitectura de Computadores

FEUP/LEIC

Contém figuras de “Computer Organization and Design” (cap. 7, Ap. B), D. Patterson & J. Hennessey, 3a. ed., Elsevier

Tópicos

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 2/79 2007-04-02

Page 2: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 3/79 2007-04-02

Taxonomia

+ Registos e bancos de registos permitem guardar pequenasquantidades de dados. Para maiores quantidades, usam-sememórias de acesso directo.

+ RAM = random access memory (memória de acessoaleatório?): permitem leitura e escrita.

+ ROM = read-only memory: pemitem apenas leitura.

+ A maior parte das memórias RAM perde os dados quando édesligada a alimentação (memória volátil). Excepções:É (E)EPROM: (Electrically) erasable programmable ROMÉ memórias FLASH.

+ Dois tipos de memórias RAM voláteis:É SRAM: memória estática (cada célula de memória é um“flip-flop”);

É DRAM: memória dinâmica (cada célula deve ser actualizadaperiodicamente).

ArqComp: Sistemas de memória 4/79 2007-04-02

Page 3: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Circuitos de memória: organização conceptual

0

M bits

12

N-1

endereço(linha) dados

(M bits)

+ Para P linhas de endereço: N = 2P

+ Abreviaturas: 210 = 1024 = 1K, 220 = 1048576 = 1M+ O porto de dados é bidireccional: é preciso especificar o tipo de

acesso (leitura ou escrita).+ M é a largura da memória.

ArqComp: Sistemas de memória 5/79 2007-04-02

Memórias estáticas

As memórias estáticas são as que se aproximam mais do modeloconceptual de funcionamento.

SRAM 2M x 16 Dout[15-0]

Address21

Din[15-0]16

Chip select

Output enable

Write enable

15

+ Para aceder à memória:É activar o circuito: chip select (CS) activoÉ especificar o tipo de acesso: activar output enable (leitura)OU write enable (escrita).

ArqComp: Sistemas de memória 6/79 2007-04-02

Page 4: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Memórias estáticas: acessos

+ Tempo de acesso para leitura: intervalo entre o instante emque output enable e endereço estão “correctos” e oaparecimento de dados na saída.

+ Valores típicos:É rápidas: 2–4nsÉ típicas: 8–20ns (cerca de 32 milhões de bits)É de baixo consumo: 5–10 vezes mais lentas

+ Durante esse tempo, um processador que execute umainstrução por ciclo e use um relógio de 2 GHz, executa:É 4–8 instruçõesÉ 16–40 instruções

+ Tempo de acesso para escrita: é preciso respeitar tempos desetup e hold para endereços e dados. Para além disso, o sinalde write enable é sensível ao nível (não ao flanco) e deve teruma duração mínima para que a escrita se realize.

+ O tempo de escrita é superior ao tempo de leitura.

ArqComp: Sistemas de memória 7/79 2007-04-02

Memórias estáticas: circuito de saída

Buffer tristate (3 estados: 0, 1,desligado)

Sel

In Out

In

In Out

Out

Sel = 1

Sel = 0

Circuito de saída:Select 0

Data 0

Enable

OutIn

Select 1

Data 1

Enable

OutIn

Select 2

Data 2

Enable

OutIn

Select 3

Data 3

Enable

OutIn

Output

Ao contrário de um banco de registos, ocircuito de saída não pode ser baseadonum multiplexador: uma SRAM 64K x 1precisaria de ter um multiplexador65536-para-1.

Solução: utilizar buffer tristate, cujasaída pode ter 3 estados (0, 1 oualta-impedância).

No estado de alta-impedância, a saídado circuito está desligada.

O estado da saída é determinado poruma entrada de controlo: select.

Todas as saídas são ligadas em paralelo.Não pode existir mais que uma saídaactiva (i.e., não em alta-impedância) emcada instante.

ArqComp: Sistemas de memória 8/79 2007-04-02

Page 5: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Estrutura básica de uma memória estática

latch

D

C

Enable

QD

0

2-to-4 decoder

Write enable

Din[1]

latch

D

C

Enable

QD

Din[1]

Dout[1] Dout[0]

latch

D

C

Enable

QD

1

latch

D

C

Enable

QD

latch

D

C

Enable

QD

2

latch

D

C

Enable

QD

latch

D

C

Enable

QD

3

latch

D

C

Enable

QD

Address

SRAM 4x2

ArqComp: Sistemas de memória 9/79 2007-04-02

Memórias estáticas organizadas por bancos

Para limitar o tamanho do descodificador de endereços:

12 to

4096 decoder

Address [21–10]

4096

4K x 1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

4K x1024

SRAM

Mux

Dout7

Mux

Dout6

Mux

Dout5

Mux

Dout4

Mux

Dout3

Mux

Dout2

Mux

Dout1

Mux

Dout0

1024Address [9–0]

+ Organização típica de uma memória 4Mx8 como uma colecçãode blocos de memória 4Kx1024.

+ Os blocos MUX são realizados por buffers de três estados.

ArqComp: Sistemas de memória 10/79 2007-04-02

Page 6: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Acessos a uma memória estática

Duas escritas e uma leitura:

OE

WE

Endereço

Dados

End1 End2 End1

Dado2Dado1 Dado1

tempo mínimo para escrita

Leitura

tempo de acesso

Escrita Escrita Leitura

valor escrito

+ OE identifica operação de leitura; endereços devem estarestáveis antes de o sinal ser activado.

ArqComp: Sistemas de memória 11/79 2007-04-02

Memória dinâmica (DRAM)

+ Valor guardado como carga num condensador.

+ O acesso é feito através de um transístor a operar comointerruptor.

+ Consequência: maior densidade (bit/mm2), logo circuitos demaior capacidade e menor custo.

+ Comparação: SRAM requer 4 a 6 transístores por bitarmazenado.

+ Acesso a DRAM é feito em duas etapas:1. selecção de coluna (usando uma parte do endereço);2. selecção de linha (usando os restantes bits do endereço).

+ DRAM é mais lenta que SRAM. Valor típico: 2Gb (512MX4),tempo de acesso 55ns.

+ Condensador vai perdendo a carga e deve ser periodicamente“refrescado”: leitura seguida de escrita (circuito dinâmico).Refrescamento “consome” 1% a 2% dos acessos.

ArqComp: Sistemas de memória 12/79 2007-04-02

Page 7: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Célula de uma memória dinâmica

Selecção de linha (word line)

Transístor(interruptor)

Condensador(armazena cargaeléctrica)

Linha de dados (bit line)

+ Escrita: Valor a armazenar é colocado na linha de bit; wordlineé activada para fechar interruptor.

+ Leitura: Linha de bit é pré-carregada a meia escala; wordline éactivada para fechar interruptor; a variação de tensão na linhade bit é amplificada para obter valor final.

ArqComp: Sistemas de memória 13/79 2007-04-02

Esquema geral do acesso a uma memória dinâmica

Endereço[10-0]

Descod.de linhas

11-to-2048

2048 x 2048 matriz

2048 trincos

Mux

Dout

+ Endereço: 11+11 bits.+ Exemplo: DRAM 4Mx1: 11 bits seleccionam a linha, que é

“copiada” para 2048 trincos.+ Multiplexer selecciona 1 de 2048 entradas.

ArqComp: Sistemas de memória 14/79 2007-04-02

Page 8: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

DRAM: Leitura

Exemplo simplificado de leitura (CE=1, OE=0, WE=0).

RAS = Row Address Strobe (endereço especifica linha)CAS = Column Address Strobe (endereço especifica coluna)

RAS

CAS

Endereço

Dados

End. Linha End. Coluna x

Dados lidos

ArqComp: Sistemas de memória 15/79 2007-04-02

DRAM: Escrita

Exemplo simplificado de escrita (CE=1, OE=1):

RAS

CAS

Endereço

Dados

End. Linha End. Coluna x

Dados a escrever

WE

existe uma largura mínima para este impulso

ArqComp: Sistemas de memória 16/79 2007-04-02

Page 9: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Módulos de memória: DIMM

+ CIs individuais podem ser agrupados em módulos. Ex: módulo32Mx64 (256 MB) pode usar 16 componentes 32Mx4.

Ram0 Ram1 Ram2 Ram14 Ram15

4 4 4 4 4d [3:0]d [7:4]

d [11:8]

d [59:56]

d[63:60]

a[24:0]

d[63:0]

32Mx4

ArqComp: Sistemas de memória 17/79 2007-04-02

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 18/79 2007-04-02

Page 10: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 19/79 2007-04-02

Organização da memória de um computador

+ A memória física de um computador é geralmente compostapor vários módulos (circuitos integrados, DIMM, etc.) por formaa ser possível obter maiores capacidades de armazenamento.

+ Para além dos módulos de memória é necessário ter umcircuito de descodificação de endereços que selecciona quaisos módulos activos durante um dado acesso (com base noendereço apresentado pelo CPU).

+ Organização típica: os bits menos significativos são ligadosdirectamente aos módulos individuais, enquanto os bits maissignificativos são usados para fazer a selecção dos módulos.

+ Linhas de dados podem ser “partilhadas” por mais que ummódulo (usando buffers tristate).

+ Alguns módulos usam internamente esta abordagem.

ArqComp: Sistemas de memória 20/79 2007-04-02

Page 11: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Organização da memória: diagrama de blocos

dados[ ]

End. End. End. End.

CS CS CS CSdados dados dados dados

N bitsEnd[N-1:0]

Descodificador

M-N bits de selecçãoEnd[M-1: N]

Endereço tem M bits, dos quais M-N podem serusados na descodificação

N bits de endereço

Apenas uma saídaactiva de cada vez

Para memórias DRAM a descodificação de endereços é maiscomplicada. Apenas abordaremos o caso das memórias SRAM.

ArqComp: Sistemas de memória 21/79 2007-04-02

Regras de descodificação de endereços

+ Para que esta organização funcione bem, a descodificação deendereços deve garantir que:

Para o conjunto de todos os módulos que partilham uma mesmalinha de dados: apenas um (ou nenhum) deve ser activado du-rante um acesso.

Se esta condição não for respeitada, os componentes podemser definitivamente danificados.

+ O mapeamento de endereços para componentes pode serclassificado de acordo com o número de endereços que émapeado na mesma posição física:É total: 1 endereço → 1 posiçãoÉ parcial: N endereços → 1 posição

+ Na descodificação total, todos os bits do endereço são“usados”: ligados directamente aos componentes ou utilizadosna selecção dos componentes.

ArqComp: Sistemas de memória 22/79 2007-04-02

Page 12: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Descodificação total: exemplo

A[11:0] A[12:0]

CSCS

RAM1 RAM2

8 bits 8 bits

8 bits

A[15:0]

D[7:0]

D[7:0] D[7:0]

&& A[15]A[15]A[14]A[14]A[13]A[13]

A[12]

RAM1: 4Kx8 RAM2: 8Kx8Espaço de endereçamento do CPU:64 K, 1 byte por endereço

RAM 1:1011 XXXX XXXX XXXXGama: B000H a BFFFH

RAM2:001X XXXX XXXX XXXXGama: 2000H a 3FFFH

É Endereço B712H (46866) → RAM1É Endereço C1E0H (49632) → nenhum circuito

ArqComp: Sistemas de memória 23/79 2007-04-02

Descodificação parcial: exemplo

A[11:0] A[12:0]

CSCS

RAM1 RAM2

8 bits 8 bits

8 bits

A[15:0]

D[7:0]

D[7:0] D[7:0]

&& A[15]A[15]

A[14] A[13]

RAM1: 4Kx8 RAM2: 8Kx8Espaço de endereçamento do CPU:64 K, 1 byte por endereço

RAM 1:10?? XXXX XXXX XXXXGamas:

8000H a 8FFFH9000H a 9FFFHA000H a AFFFHB000H a BFFFH

RAM2:0?1X XXXX XXXX XXXXGamas:

2000H a 3FFFH6000H a 7FFFH

É O byte 10 de RAM1 pode ser acedido através de queendereços?

É 800AH, 900AH, A00AH e B00AH

ArqComp: Sistemas de memória 24/79 2007-04-02

Page 13: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 25/79 2007-04-02

Observações gerais sobre sistemas de memória

+ O custo dos diferentes tipos de memória é muito diferente:

Tecnologia Tempo de acesso Custo ($/GB em 2004)

SRAM 0.5–5ns $4000–$10000DRAM 50–70ns $100–$200disco magnético 5× 106–2× 107 ns $0.5–$2

+ Organizar o sistema de memória como uma hierarquia:memória rápida para satisfazer a maior parte dos acessos,memória mais lenta para armazenar os dados “menos usados”.

+ Princípio de funcionamento (para cada nível):É Procurar a informação (dados ou instruções) num dado nível

(inicialmente no nível 1, o que está mais próximo do CPU);É Caso a informação não exista aí, ir buscá-la ao nível seguinte e guardar

uma cópia (pode vir a ser reusada brevemente).

+ Se a maioria dos acessos for satisfeita pelo nível superior,obtêm-se, em média, os tempos de acesso do nível superior e acapacidade de armazenamento do nível inferior.

ArqComp: Sistemas de memória 26/79 2007-04-02

Page 14: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Organização hierárquica de sistemas de memória

Rapidez

Mais rápido

Mais lento

Menor

Maior

Tamanho Custo(€/bit)Tecnologia

corrente

Maior

Menor

SRAM

DRAM

Disco magnético

CPU

Memória

Memória

Memória

ArqComp: Sistemas de memória 27/79 2007-04-02

Níveis da hierarquia de memória

Processador

Transferências de dados

ArqComp: Sistemas de memória 28/79 2007-04-02

Page 15: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Hierarquia de memória: conceitos básicos

+ Uma hierarquia de memória pode ter vários níveis, mas a informação étransferida directamente apenas entre níveis adjacentes: o nível superior émais rápido e tem menor capacidade que o nível inferior.

+ Bloco: quantidade mínima de informação que pode estar presente ouausente de um determinado nível. Tipicamente, a informação entre níveis étransferida em blocos.

+ Acerto: acesso ao nível superior encontrou a informação pretendida (hit).

+ Falha: acesso ao nível superior não encontrou a informação (miss).

+ Taxa de acertos: (no de acertos)/(no de acessos).

+ Taxa de falhas: (no de falhas)/(no de acessos) = 1-(taxa de acertos).

+ Tempo de acerto: tempo de acesso ao nível superior, incluindo averificação da presença do item pretendido (hit time).

+ Penalidade de falha: tempo necessário para copiar o item pretendido donível inferior para o superior mais o tempo necessário para esse nívelcompletar o atendimento do acesso original (miss penalty).

+ Uma boa compreensão da hierarquia de memória é indispensável para aelaboração de programas de elevado desempenho.

ArqComp: Sistemas de memória 29/79 2007-04-02

O princípio da proximidade

+ A organização hierárquica de memória dá muito bonsresultados na prática, porque as situações em que é aplicadase comportam de acordo com o princípio da proximidade.

+ O princípio da proximidade (ou localidade):

Programas em execução acedem apenas a uma pequena parte doseu espaço de endereçamento (durante um certo intervalo).

+ Proximidade temporal: Se um item de informação é usado,tenderá ser usado de novo em breve.Exemplo: instruções no corpo de um ciclo, variáveis.

+ Proximidade espacial: Quando um item de informação éusado, itens próximos tendarão também a ser usados embreve.Exemplo: o conjunto de variáveis de uma subrotina, oselementos de um vector.

ArqComp: Sistemas de memória 30/79 2007-04-02

Page 16: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 31/79 2007-04-02

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 32/79 2007-04-02

Page 17: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Princípio básico de funcionamento

X 4

X 1

X n -2

X n -1

X 2

X 3

a. Antes de referência a X n

X 4

X 1

X n- 2

X n- 1

X 2

X 3

b. Depois de referência a X n

X n

É Se o acesso a memória cachenão encontra item desejado,

É item é copiado de níveisinferiores da hierarquia.

Duas questões relacionadas:

1. Como determinar a posiçãodo item pretendido?

2. Como determinar a presençado item?

O mapeamentoendereço → posição de cache ésempre muitos→1.

ArqComp: Sistemas de memória 33/79 2007-04-02

Determinação da posição: mapeamento directo

É Índice = (endereço do bloco) % (no de blocos)É Se (no de blocos) = 2b, a posição (o índice) é dada pelos b bitsmenos significativos do endereço.

Cache

Memória00001 10001

010

100

101

111

110

000

001

011

00101 01001 01101 10101 11001 11101

Exemplo: Cache: 8 posições, memória principal: 32. I = End % 8

ArqComp: Sistemas de memória 34/79 2007-04-02

Page 18: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Determinação da presença: etiquetas

+ Questão: Dada a posição de um item em cache, comodeterminar, se é esse item que, de facto, lá se encontra?

+ Solução: Associar a cada bloco, uma etiqueta (tag) única.

+ A etiqueta pode ser constituída pelos bits mais significativos doendereço (bits não usados na determinação da posição).

+ No exemplo anterior, a etiqueta teria 2 bits.01234

Etiqueta No do bloco

+ Em certas situações, tanto o bloco como a etiqueta sãoinválidos. Exemplo: arranque do sistema.

+ Para detectar esta situação, cada bloco tem associado um bitde validade. Se o seu valor for zero, então o bloco é inválido (aposição está “vazia”).

ArqComp: Sistemas de memória 35/79 2007-04-02

Exemplo: Cache para MIPS

Endereço

Dados

Acerto

Dados

Etiqueta

VálidoEtiqueta

3220

Índice012

102310221021

=

Índice

20 10

Byte offset

31 30 13 12 11 2 1 0

Como cada palavra (item) tem 4 bytes, os dois bits menos significativos não sãousados. (Todos os endereços são alinhados;têm os 2 bits menos significativos a0).

ArqComp: Sistemas de memória 36/79 2007-04-02

Page 19: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Múltiplas palavras por bloco

+ O armazenamento de uma palavra (item) por bloco nãoaproveita a proximidade espacial.

+ Para isso devem ser usados blocos com W itens (W > 1).+ Para que seja fácil de identificar o item no interior do bloco, o

número W deve ser uma potência de 2: W = 2w.

Nesta situação, o item pode ser identificado por w bits doendereço. A parte do endereço que especifica a posição dentrodo bloco designa-se por deslocamento (offset).

+ Interpretação de um endereço de N bits:Etiqueta (N-b-w-x) Índice (b) Deslocamento (w) x

+ Quando os itens não têm apenas um byte (a unidade deendereçamento), existem alguns bits (menos significativos) doendereço que não são usados no acesso a memória.No caso do MIPS, os acessos são feitos por palavras de 4 bytes,pelo que 2 bits não são usados.

ArqComp: Sistemas de memória 37/79 2007-04-02

Estrutura de cache com múltiplas palavras por bloco

0

12

3

4

5

6

7

0123Etiqueta

Etiqueta Índice Deslocamento byte

}verificação

V

+ Cache com b=3, w=2.

ArqComp: Sistemas de memória 38/79 2007-04-02

Page 20: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Tamanho de bloco vs. taxa de falhas

4K

16

10%

16K

64K

256K

5%

0%32 64 128 256

Taxa defalhas

Tamanho do bloco (bytes)

+ Para tamanhos de blocos crescentes, a taxa de falhas diminui.+ Mas para tamanhos muito grandes, a taxa de falhas aumenta

outra vez!+ A penalidade de falha tende a aumentar com a dimensão do

bloco, porque é preciso ir buscar mais dados ao nível inferior.

ArqComp: Sistemas de memória 39/79 2007-04-02

Exemplo: Intrinsity FASTMath (1)

Endereço

DataHit

Data

Tag

V Tag

32

16

=

Index

18 8 Byte offset

31 14 13 2 1 06 5

4

Block offset

256 posições

512 bits18 bits

Mux

3232 32

ArqComp: Sistemas de memória 40/79 2007-04-02

Page 21: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Exemplo: Intrinsity FASTMath (2)

+ Capacidade: 16KB, 256 blocos de 16 palavras.

+ Etiquetas: 18bits.

+ Índice: 8bits (28 = 256).

+ Deslocamento (no bloco): 4bits 24 = 16).

+ Exemplo de cálculo de posição:012345678910111213141516171819202122232425262728293031

Etiqueta (18) Índice (8) Desl. —

Endereço = 0x00457544 (455200410)

Etiqueta: 0000 0000 0100 0101 01|11 ... → 0x00115

Bloco: ... 01|11 0101 01|00 0100 → 0xD5 (21310)

ArqComp: Sistemas de memória 41/79 2007-04-02

Memórias cache separadas

+ Em muitos sistemas, existem memórias cache separadas parainstruções (I-cache) e dados (D-cache).

+ A I-cache é usada no ciclo IF e apenas permite acessos deleitura.

+ A D-cache permite leituras e escritas; é usada no tratamento deinstruções load/store.

+ A utilização de caches separadas (split cache), permite evitarconflitos entre os estados IF e MEM.

+ Para uma mesma capacidade total, caches unificadas permitemconseguir menores taxas de falha (mas a diferença é pequena).

+ Exemplo: (I-Cache + D-Cache) vs. U-Cache:É Caches separadas:I-Cache(16KB): 0.4%, D-Cache (16KB): 11.4%,Média pesada: 3.24%

É Cache unificada de 32KB: 3.18%

ArqComp: Sistemas de memória 42/79 2007-04-02

Page 22: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Tratamento de falhas de leitura

Quando, no processo de efectuar uma leitura da memória cache, esta detectaque o item pretendido não existe, são executadas as seguintes operações:

1. O endereço é passado para o nível inferior.

2. A memória cache espera pela nível inferior responda com o blocopretendido.

3. O novo bloco é colocado na cache (eventualmente usando uma posição jáocupada), a etiqueta é guardada e o bit de validade correspondente écolocado a 1.

4. O item pretendido é disponibilizado ao circuito que o solicitou.

Uma falha de leitura pode acontecer durante a obtenção de uma instrução (IF) oudurante uma leitura de dados (store). Em qualquer dos casos, uma falha decache leva a um protelamento longo (tipicament mais de 100 ciclos).

O protelamento pode consistir simplesmente em suspender todas as operações.

É instrução: o CPU protela à espera da memória e repete o ciclo IF até obtera instrução.

É dado: a instrução de store é protelada durante a escrita (ciclo MEM).

ArqComp: Sistemas de memória 43/79 2007-04-02

Tratamento de operações de escrita: write hit

Só existem operações de escrita em caches de dados ou em cachesunificadas.

Escrita com valor em cache write hit:

+ Operações de escrita levantam a possibilidade de o valorexistente na cache ser diferente do valor em memória principal.

+ Cache write-through: a memória cache é actualizada ao mesmotempo que a memória principal.

+ Cache write-back: apenas o valor em cache é actualizado. Amemória é actualizada apenas quando o bloco é substituído.

+ A política write-through deve evitar ficar à espera que a escritaem memória principal termine. Para isso, o CPU tem uma filainterna onde coloca os valores a escrever (designada porwrite-buffer), continuando entretanto a processar instruções(pelo menos, enquanto a fila não ficar cheia).

+ A política de write-back reduz o número de acessos ao nívelseguinte, mas é mais complexa de implementar.

ArqComp: Sistemas de memória 44/79 2007-04-02

Page 23: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Tratamento de operações de escrita: write miss

Escrita de valor cujo bloco está ausenta da cache write miss:

+ As duas variantes principais são:É Política allocate-on-miss: o bloco necessário é obtido donível inferior, após o que tudo se passa como no caso deum write-hit. Pode envolver a substituição de um bloco jápresente em cache.

É Política no-allocate: não alterar o conteúdo da cache ealterar directamente a memória principal. Funciona comose a cache não existisse para este tipo de transacções.

+ O tratamento de cache miss é logicamente independente dotratamento de cache hit. As combinações mais usadas são:É write-through & no-allocate: ênfase na simplicidade.

É write-back & allocate-on-miss: ênfase na redução detráfego para a memória principal.

ArqComp: Sistemas de memória 45/79 2007-04-02

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 46/79 2007-04-02

Page 24: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Equações básicas de desempenho de caches

+ O tempo (em ciclos) para acerto (hit) faz parte do tempo“normal” de execução de uma instrução.

+ TCPU = (Cexec +Cprot)× TÉ TCPU: tempo de CPUÉ Cexec: no de ciclos em que CPU executou instruçõesÉ Cprot: no de ciclos em que o CPU protelou devido a falhasno acesso a memória cache

+ Assumir: não existem protelamentos causados por write buffer.

+ Assumir que penalidades de falha iguais na escrita e na leitura.

+ Cprot = Nrw × tf × pfÉ Nrw : número de acessos do programa (leitura e escrita)É tf : taxa de falhasÉ pf : penalidade de falhas

+ Se taxa de falhas ou penalidade for diferente para leituras eescritas é preciso separar a equação anterior em duas parcelas.

ArqComp: Sistemas de memória 47/79 2007-04-02

Exemplos de cálculo de desempenho

É Especificação: CPIperf=2, tfi = 0.02 para instrucões e tfd = 0.04para dados, pf = 100, acessos a memória: 36%.

É Comparar o desempenho “real” com o desempenho obtido se amemória cache fosse perfeita.

É Ci: no de ciclos de protelamento na obtenção de instruções:Ci = N× 0.02× 100 = 2×N

É Cd: no de ciclos de protelamento no acesso a dados:Cd = N× 0.36× 0.04× 100 = 1.44×N

É CPIprot = CPIperf + Ci/N + Cd/N = 2 + 1.44 + 2 = 5.44É

speedup =N×CPIprot × TN×CPIperf × T

=5.44

2= 2.72

É E se CPIperf = 1 ?É CPIprot = 4.44 → speedup = 4.4Percentagem de tempo em protelamento piora:

3.44/5.44 = 63% → 3.44/4.44 = 77%.

ArqComp: Sistemas de memória 48/79 2007-04-02

Page 25: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Efeito do aumento de frequência

É Melhorar o CPI sem melhorar o subsistema de memória leva aum aumento da percentagem de tempo perdida emprotelamentos. (cf. exemplo anterior)

É O que acontece se a frequência de relógio aumentar, mas osubsistema de memória permanecer igual?

É Neste caso a penalidade de falha aumenta: pf = 200É Ci +Cd = 0.02× 200+ 0.36× 0.04× 200 = 6.88É CPIrapido=2 + 6.88 = 8.88É

speedup =N×CPIlento × T

N×CPIrapido × T2

=5.44

8.88× 0.5= 1.23

É Se a influência da cache tivesse sido ignorada, seriaspeedup=2.

É Processador que melhore simultaneamente CPI e T sofre umimpacto duplo negativo.

ArqComp: Sistemas de memória 49/79 2007-04-02

Influência do desempenho de cache

Radix sort

Quicksort

Nº de itens ordenados Nº de itens ordenados

Nº de itens ordenados

Instru

ction

s / ite

m

04 8 16 32

200

400

600

800

1000

1200

64 128 256 512 1024 2048 4096

Radix sort

QuicksortCloc

k cyc

les / i

tem

04 8 16 32

400

800

1200

1600

2000

64 128 256 512 1024 2048 4096

Radix sort

Quicksort

Cach

e miss

es / i

tem

04 8 16 32

1

2

3

4

5

64 128 256 512 1024 2048 4096

Nº de instruções executadaspor item Ciclos de relógio por item

Nº de falhas de cachepor item

ArqComp: Sistemas de memória 50/79 2007-04-02

Page 26: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Colocação flexível de blocos

+ Para reduzir a taxa de falhas, pode usar-se uma colocação deblocos mais flexível. Opções: Um item pode ser colocado1. num único bloco: mapeamento directo2. em qualquer bloco: associatividade completa3. em qualquer bloco de um conjunto: associatividade parcial

+ Número de blocos de um conjunto = número de vias

+ Exemplos: conjunto de 2 blocos: associatividade 2 vias (2-way)mapeamento directo: associatividade 1-wayassociatividade total (cache com M blocos): m-way

+ Índice determina apenas o conjunto, mas não o bloco:I = Endereço % (no de conjuntos)

+ Para determinar onde se encontra o item, as etiquetas de todosos blocos válidos do conjunto devem ser comparadas (emsimultâneo!): implementação mais complexa, que pode levarao aumento do tempo de acesso (hit time)

ArqComp: Sistemas de memória 51/79 2007-04-02

Associatividade: exemplo

Mapeamento directo

2 4 5 760 1 3Bloco #

Dados

Etiqueta

Busca

1 2

Associatividade por conjuntos

20 1 3Conj. #

Dados

Etiqueta

Busca

1 2

Associatividade total

Dados

Etiqueta

Busca

1 2

+ Resultado empírico: associatividade superior a 8 não é útil (não leva aqualquer redução da taxa de falhas).

+ Exemplo (Intrinsity FASTMath):Associatividade taxa de falhas (dados)

1 10.3%2 8.6%4 8.3%8 8.1%

ArqComp: Sistemas de memória 52/79 2007-04-02

Page 27: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Exemplo: organização de cache de 8 blocos

Associatividade: 8 vias (associatividade total, neste caso)

Tag Tag Data DataTagTag Data Data Tag Tag Data DataTagTag Data Data

Tag Tag Data DataTagTag Data DataSet 0 1

Associatividade: 4 vias

TagTag Data DataSet 0 1 2 3

Associatividade: 2 vias

Tag DataBlock 0 1 2 3 4 5 6 7

Associatividade: 1 via(mapeamento directo)

ArqComp: Sistemas de memória 53/79 2007-04-02

Localização de bloco em cache associativa

Endereço

Data

Etiqueta (tag)

V Tag

=

Índice (index)

22 8

31 30 12 11 10 9 8 3 2 1 0

4-to-1 multiplexor

Index012

253254255

DataV Tag

=

DataV Tag

=

DataV Tag

22

=

32

DataHit

ArqComp: Sistemas de memória 54/79 2007-04-02

Page 28: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Número de bits usados para etiquetas

Calcular o no de bits usados para armazenar as etiquetas.É Especificação: endereços de 32 bits, cache com 4K blocos,blocos de 4 palavras, associatividade m=1, m=2, m=4 eassociatividade total (m=4K).

É 16 (=24) bytes / bloco → 32-4 = 28 bits para índice e etiqueta.É m=1: 4K conjuntos, logo 12 bits de índice, e28-12=16 bits/etiqueta. Total: 16×4K = 64 Kbits

É Cada incremento da associatividade diminiu para metade onúmero de conjuntos, logo diminui de 1 o número de bits doíndice e aumenta de 1 o número de bits da etiqueta.

É m=2: 2K conjuntos, 11 bits de índice e 17 bits de etiqueta.Total: 2K × 2 × 17 = 68 Kbits.

É m=4: 1K conjuntos, 10 bits de índice e 18 bits de etiqueta.Total: 1K × 4 × 18 = 72 Kbits.

É m=4K: 1 conjunto, 0 bits de índice e 28 bits de etiqueta. Total:1 × 4K × 28 = 112 Kbits.

ArqComp: Sistemas de memória 55/79 2007-04-02

Política de substituição

+ A política de substituição define qual dos blocos de umconjunto deve ser substituído quando há uma falha e todos osblocos do conjunto estão ocupados.

+ Substituição aleatória: o bloco a ser substituído é escolhidoaleatoriamente de entre os elementos do conjunto.

+ LRU (Least Recently Used): o bloco substituído é aquele quenão é usado há mais tempo.É Implementação para uma cache de 2 vias: para cada blocousar um bit para marcar o último a ser acedido (o bit dooutro bloco do conjunto é colocado a zero).

É A complexidade de implementar LRU cresce com aassociatividade.

+ A política LRU tenta aproveitar a proximidade temporal: os itensusados mais recentemente tendem a permanecer em cache.

ArqComp: Sistemas de memória 56/79 2007-04-02

Page 29: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Múltiplos níveis de memória cache

+ Para reduzir a penalidade de falhas pode aplicar-se a mesmaabordagem que se usa para reduzir o tempo de acesso àmemória principal: usar uma cache para a cache.

+ A cache de nível 2 permite reduzir a penalidade de falha dacache de nível 1.

+ A cache de nível 2 contém geralmente os dados residente nacache de nível 1 (hierarquia de memória “inclusiva”) e é demaior capacidade.

+ Arranjo comum: memórias cache separadas de nível 1 + cacheunificada de nível 2.

+ Em alguns sistemas de elevado desempenho: 2 níveis de cacheon-chip + 1 nível (L3) no exterior.

ArqComp: Sistemas de memória 57/79 2007-04-02

Processador com dois níveis de cache

É Usado no Mac G5É 58 milhões transístores,2.2GHz

É L1-ICache: 64KB, m=1,128 bytes/bloco

É L1-DCache: 32KB, m=2,128 bytes/bloco, LRU,write-through, no-allocate

É L2-Cache: 512KB, m=8,128 bytes/bloco, LRU,write-back,allocate-on-miss

ArqComp: Sistemas de memória 58/79 2007-04-02

Page 30: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Desempenho de memórias cache multinível

Cálculo do desempenho de um sistema com dois níveis de cache:É Especificação: CPI = 1, F = 5GHz (T=0.2ns), acesso a memóriaprincipal: 100ns, taxa de falhas em L1 de 2%.Qual a melhoria de desempenho obtida por uma memóriacache L2 (tempo de acesso 5ns) e com capacidade suficientepara reduzir a taxa de falhas para memória principal para0.5%?

É Penalidade de falha (mem. principal): 100/0.2 = 500 ciclos.É CPI1 = 1 + 0.02 × 500 = 11É Com 2 níveis:Penalidade de falha por acesso a L2: 5/0.2 = 25 ciclos

É CPI2 = 1 + ProtL1 + ProtL2CPI2 = 1 + 0.02 × 25 + 0.005 × 500 = 1 + 0.5 + 2.5 = 4

É speedup = 11/4 = 2.8É (Extra) taxa de falhas local de L2: 0.005/0.02 = 0.25

ArqComp: Sistemas de memória 59/79 2007-04-02

1 Memórias

2 Sistemas de memória: aspectos geraisDescodificação de endereçosHierarquia de memória

3 Memórias cachePrincípios de funcionamento de memórias cacheDesempenho de memórias cache

4 Memória virtual

ArqComp: Sistemas de memória 60/79 2007-04-02

Page 31: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Memória virtual: motivação

+ Conceito: memória principal é uma “cache” para memóriasecundária (em disco magnético). Motivação:1. remover a limitação do tamanho da memória física: o

programa pode usar mais memória que a fisicamentepresente.Vantagem adicional: programa pode ser executado semmodificação em computadores com sistemas de memóriadiferentes.

2. permitir a utilização comum eficiente e segura de memóriaprincipal por vários programas em execução simultânea(processos).

+ Aplica-se o princípio da proximidade (local e espacial).

+ Cada programa é compilado (e executado) num espaço deendereçamento separado (virtual).Durante a execução, os endereços deste espaço virtual sãoconvertidos para endereços físicos (de memória física).

ArqComp: Sistemas de memória 61/79 2007-04-02

Memória virtual: termos e conceitos

Cache Memória virtual

bloco páginafalha de memória falha de páginaSRAM → DRAM DRAM → disco magnético

+ Durante um acesso a memória principal, o endereço virtual éconvertido (mapeado) num endereço físico.

+ Memória virtual também implementa automaticamente a“relocação” do programa: o programa pode ser colocado(“carregado”) para qualquer zona de memória.

+ A relocação é feita por páginas: não é necessário usar umazona contígua de memória para todo o programa.

+ Mapeamento virtual→real com base em páginas de dimensãofixa: paginação.Alternativa: usar blocos de dimensão variável (segmentos).

ArqComp: Sistemas de memória 62/79 2007-04-02

Page 32: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Modelo conceptual

Endereços virtuais Endereços físicosConversão de

endereços

Endereços de disco

ArqComp: Sistemas de memória 63/79 2007-04-02

Endereços virtuais e reais

Nº de página virtual Deslocamento (na página)

Deslocamento (na página)

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

Nº de página física

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

Endereço virtual

Endereço físico

Conversão

O endereço virtual é dividido num número de página virtual e um deslocamentona página. O número de página virtual é convertido num número de página real.O número de bits dos dois números não necessita de ser igual.

ArqComp: Sistemas de memória 64/79 2007-04-02

Page 33: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Penalidade de falha de página

A penalidade de falha de página é enorme : alguns milhões deciclos de relógio. (O acesso a memória principal é 100000 maisrápido que o acesso a disco.)

Consequências:

+ A dimensão de uma página deve permitir amortizar o elevadotempo de acesso.Dimensão típica: 4KB–16KB, com tendência a aumentar(32KB–64KB).

+ A redução da taxa de falhas é de extrema importância:utilização de associatividade completa.

+ O tratamento das falhas de página pode ser feito por software(já que o overhead é comparativamente reduzido), o quepermite a utilização de políticas de substituição sofisticadas.

+ Não se usa write-through, mas apenas write-back (copy-back).

ArqComp: Sistemas de memória 65/79 2007-04-02

Colocação de páginas (conversão virtual→real)

+ O mapeamento virtual→real é completamente associativo.

+ O número de páginas impede uma pesquisa em paralelo (comonas memórias cache) ou uma pesquisa linear.

+ Usa-se um tabela indexada pelo no de página virtual: naposição correspondente a cada página está o no de página realassociado e informação adicional (p. ex., tipo de acessopermitido), bem como um bit de validade.

+ A tabela de páginas tem tantas posições como páginas virtuais.

+ A tabela de páginas é mantida em memória e, geralmente,endereçada a partir de um registo especial: page table register.

+ A tabela é utilizada por hardware (durante os acessos), masgerida por software (sistema operativo).

+ A tabela de páginas é mantida em memória principal.

+ Existe uma tabela por processo (e uma para o sistemaoperativo).

ArqComp: Sistemas de memória 66/79 2007-04-02

Page 34: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Tabela de páginas: exemplo

Nº de página virtualr Deslocamento (página)

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

Nº de página física Deslocamento (págia)

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

Endereço virtual

Endereço físico

Registo de tabela de páginas

Nº de página físicarValid

Tabela de páginas

Se 0 a página não estápresente em memória

20 12

18

ArqComp: Sistemas de memória 67/79 2007-04-02

Tratamento de faltas de página

+ Quando, durante a conversão virtual→real, o bit de validade daposição escolhida da tabela de página está a zero, ocorre umafalta de página.

+ Neste caso, o CPU salta para uma subrotina de atendimentoexistente no sistema operativo.

+ O sistema operativo deve encontrar a página em disco. Como?

+ Quando o sistema lança um novo processo, reserva espaçopara todas as páginas numa zona especial do disco designadapor swap space.

+ Ao mesmo tempo, o sistema operativo cria uma estrutura dedados para registar a posição de cada página em disco. Essaestrutura pode ficar integrada na tabela de páginas (exemploseguinte) ou numa estrutura auxiliar separada.

+ O sistema operativo também regista, para cada página física,qual o processo que lhe estão associado (bem como arespectiva página virtual).

ArqComp: Sistemas de memória 68/79 2007-04-02

Page 35: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Tratamento de faltas de página: exemplo

Tabela de páginas Página física ou

endereço de discoMemória física

Nº de páginavirtual

Armazenamento em disco

1111011

11

1

0

0

Válido

ArqComp: Sistemas de memória 69/79 2007-04-02

Falhas de página e tratamento de escritas

+ Quando ocorre uma falha de página e toda a memória físicaestá ocupada, o sistema operativo deve escolher uma páginafísica a libertar.

+ Se alguma das posições de memória dessa página foi alterada,a página física deve ser copiada para disco (write-back) antesde ser substituída.

+ Blocos de cache “pertencentes” à página a substituir devemser também libertados (incluindo write-back se necessário), seexistirem.

+ O acesso a disco magnético (neste caso, para escrita) é muitodemorado.

+ Para evitar cópias desnecessárias, cada página tem um bit (natabela de páginas) a indicar se foi alterada: bit de modificação(dirty bit). Apenas páginas físicas com esse bit de substituiçãoa 1 são copiadas para disco.

ArqComp: Sistemas de memória 70/79 2007-04-02

Page 36: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Política de substituição

+ A escolha da página física a substituir aquando de uma falta depágina é geralmente feita segundo o critério LRU (LeastRecently Used):É substituída a página não usada há mais tempo (as outras têmmais probabilidade de virem a ser usadas brevemente).

+ A implementação exacta de LRU é muito pesada, já que ainformação correspondente deve ser actualizada a cada acesso.

+ Na prática, os S. O. apenas aproximam a política LRU.

+ Uma abordagem: o CPU associa a cada página um bit deutilização (ou bit de referência): esse bit é colocado a 1 sempreque ocorre um acesso à página.

Periodicamente, o S. O. coloca todos os bits de referência azero, para depois registar as páginas acedidas durante umcerto intervalo de tempo. Com esta informação de utilização, oS. O. pode escolher a página a substituir de entre as que foramreferenciadas menos recentemente.

ArqComp: Sistemas de memória 71/79 2007-04-02

Tornar a conversão de endereços mais rápida

+ As tabelas de páginas estão em memória principal. Cadaacesso do programa seria transformado em dois acessos: umacesso à página e um segundo acesso aos dados/instruções.

+ O princípio da localidade aplica-se: um endereço de páginavirtual usado recentemente tem elevada probabilidade de serre-utilizado.

+ Solução: usar uma memória cache especial para guardar asconversões de endereços mais recentes: translation-lookasidebuffer (TLB)

+ A cada acesso, o TLB é consultado para determinar a páginareal correspondente à página virtual especificada no endereço.Em caso de sucesso, o bit de referência é actualizado. No casode uma escrita, o mesmo sucede com o bit de modificação.

+ TLB deve conter cópia dos bits de controlo associados a cadapágina (incluindo a informação sobre protecção de acesso).

ArqComp: Sistemas de memória 72/79 2007-04-02

Page 37: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

TLB: Cache de endereços de página convertidos

1111011

11

1

0

0

1000000

11

1

0

0

1001011

11

1

0

0

Página física ou end. discoValid Dirty Ref

Tabela de páginas

Memória física

Nº de página virtual

Disco magnético

111101

011000

111101

Endereço depágina físicaValid Dirty Ref

TLB

Etiqueta

ArqComp: Sistemas de memória 73/79 2007-04-02

TLB: aspectos adicionais

+ Falha no TLB: carregar novo valor da tabela de páginas e repetiro acesso (software ou hardware); da segunda vez pode ocorreruma falha de página (software).

+ Durante a substituição de um bloco do TLB, os bits dereferência e de acesso devem ser copiados para a página:write-back.

+ São usados diversos tipos de associatividade:É TLB pequeno com associatividade total (minimizar a taxade falhas) e selecção aleatória do bloco a substituir(simplicidade) ; ou

É TLB maior, com associatividade reduzida.

+ Características típicas:É tamanho (no de endereços): 16–512É tamanho do bloco: 1–2É tempo de acesso (hit): 0.5–1 ciclo de relógioÉ penalidade de falha: 10-1000 ciclos de relógioÉ taxa de falhas: 0.01%–1%

ArqComp: Sistemas de memória 74/79 2007-04-02

Page 38: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Exemplo: TLB do Intrinsity FastMATH

=

=

20

Nº de página virtual Deslocamento de página

31 30 29 3 2 1 014 13 12 11 10 9Endereço virtual

EtiquetaValid Dirty

TLB

Nº de página física

EtiquetaValid

TLB hit

Cache hit

Dado

Dados

desl.byte

=====

Nº de página física Deslocamento de página

Etiqueta física Índice de cache

12

20

Desl.bloco

End. físico

18

32

8 4 2

128

Cache

ArqComp: Sistemas de memória 75/79 2007-04-02

Caches, TLB e memória virtual

SimAcesso deescrita

permitido?

Não

SimCache hit?

Não

Escrever dados em cache e actualizar dirty bit (se

cache write-back)

SimTLB hit?

Endereço virtual

acesso TLB

Try to read data from cache

Não

SimEscrita?

Não

Protelar duranteleitura de bloco

(eventualmentecom escrita)

(eventualmentecom escrita)

Fornecer dadospara o CPU

Erro de protecção

NãoCache hit?

Sim

Try to write data to cache

Protelar duranteleitura de bloco

TLB miss

Endereço físico

ArqComp: Sistemas de memória 76/79 2007-04-02

Page 39: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Acesso a memória: eventos possíveis

Para um sistema com TLB, um nível de cache e memória principal,um acesso a memória pode encontrar três eventos: falha TLB, falhade página (PT) e falha de cache. Que combinações destes eventospodem realmente ocorrer?

TLB T. P. Cache Possível? Porquê?

hit hit miss Sim. A TP não é verificada.miss hit hit Sim. Página em memória mas endereço fora da T. P.miss hit miss Sim. Dados/instruções não estão em cache.miss miss miss Sim.

hit miss miss Não. Se não existe na T. P. não pode estar em TLB.hit miss hit Não. (Idem)miss miss hit Nao. Dados não podem estar em cache se a página

não está em memória.

ArqComp: Sistemas de memória 77/79 2007-04-02

TLB, memória virtual e caches

TLB, memória virtual e caches podem ser caracaterizados pelasrespostas às seguintes questões:

1. Onde pode ser colocado um bloco? Mapeamento directo: 1posição. Associatividade completa: todas as posições,associatividade por conjuntos: conjunto restrito de posições.

2. Como encontrar um bloco? Mapeamento directo: índice.Associatividade por conjuntos: índice para o conjunto +pesquisa concorrente. Associatividade completa: pesquisaconcorrente (cache) ou tabela separada (mem. virtual).

3. Que bloco substituir?Mapeamento directo: só um bloco. Outros: selecção aleatóriaou LRU (exacto ou aproximado)

4. Que acontece na escrita?Write-through ou write-back. Memória virtual usa semprewrite-back.

ArqComp: Sistemas de memória 78/79 2007-04-02

Page 40: Arquitectura de Computadoresjcf/ensino/disciplinas/mieic/arq/...RAM2: 001X XXXX XXXX XXXX Gama: 2000H a 3FFFH É Endereço B712H (46866) ! RAM1 É Endereço C1E0H (49632) ! nenhum

Elementos de consulta

+ [Patterson & Hennessy]:É Secções 7.1–7.4, B.9

+ [Delgado & Ribeiro]:É Secções 3.2, 6.1, 7.5, 7.6

+ [Arroz, Monteiro & Oliveira]:É Cap. 13

ArqComp: Sistemas de memória 79/79 2007-04-02

Notas:

79