Вы находитесь на странице: 1из 40

Sistemas de memria

Joo Canas Ferreira

Arquitectura de Computadores FEUP/LEIC

Contm guras de Computer Organization and Design (cap. 7, Ap. B), D. Patterson & J. Hennessey, 3a . ed., Elsevier

Tpicos

Memrias Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache Memria virtual

ArqComp: Sistemas de memria

2/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

3/79

2007-04-02

Taxonomia

Registos e bancos de registos permitem guardar pequenas quantidades de dados. Para maiores quantidades, usam-se memrias de acesso directo. RAM = random access memory (memria de acesso aleatrio?): permitem leitura e escrita. ROM = read-only memory: pemitem apenas leitura. A maior parte das memrias RAM perde os dados quando desligada a alimentao (memria voltil). Excepes: (E)EPROM: (Electrically) erasable programmable ROM memrias FLASH. Dois tipos de memrias RAM volteis: SRAM: memria esttica (cada clula de memria um ip-op); DRAM: memria dinmica (cada clula deve ser actualizada periodicamente).

ArqComp: Sistemas de memria

4/79

2007-04-02

Circuitos de memria: organizao conceptual

N-1

endereo (linha)

2 1 0 M bits

dados (M bits)

Para P linhas de endereo: N = 2P Abreviaturas: 210 = 1024 = 1 K, 220 = 1048576 = 1 M O porto de dados bidireccional: preciso especicar o tipo de acesso (leitura ou escrita). M a largura da memria.

ArqComp: Sistemas de memria

5/79

2007-04-02

Memrias estticas
As memrias estticas so as que se aproximam mais do modelo conceptual de funcionamento.

Address

21

Chip select Output enable Write enable SRAM 2M x 16 15 Dout[15-0]

Din[15-0]

16

Para aceder memria: activar o circuito: chip select (CS) activo especicar o tipo de acesso: activar output enable (leitura) OU write enable (escrita).

ArqComp: Sistemas de memria

6/79

2007-04-02

Memrias estticas: acessos


Tempo de acesso para leitura: intervalo entre o instante em que output enable e endereo esto correctos e o aparecimento de dados na sada. Valores tpicos: rpidas: 24 ns tpicas: 820 ns (cerca de 32 milhes de bits) de baixo consumo: 510 vezes mais lentas Durante esse tempo, um processador que execute uma instruo por ciclo e use um relgio de 2 GHz, executa: 48 instrues 1640 instrues Tempo de acesso para escrita: preciso respeitar tempos de setup e hold para endereos e dados. Para alm disso, o sinal de write enable sensvel ao nvel (no ao anco) e deve ter uma durao mnima para que a escrita se realize. O tempo de escrita superior ao tempo de leitura.
ArqComp: Sistemas de memria 7/79 2007-04-02

Memrias estticas: circuito de sada


Buffer tristate (3 estados: 0, 1, desligado)
Sel = 1 Sel In Out Sel = 0 In Out In Out

Ao contrrio de um banco de registos, o circuito de sada no pode ser baseado num multiplexador: uma SRAM 64K x 1 precisaria de ter um multiplexador 65536-para-1. Soluo: utilizar buffer tristate, cuja sada pode ter 3 estados (0, 1 ou alta-impedncia). No estado de alta-impedncia, a sada do circuito est desligada. O estado da sada determinado por uma entrada de controlo: select. Todas as sadas so ligadas em paralelo. No pode existir mais que uma sada activa (i.e., no em alta-impedncia) em cada instante.

Circuito de sada:
Select 0 In Enable Out

Data 0

Select 1 In

Enable Out

Data 1

Select 2 In

Enable Out

Output

Data 2

Select 3 In

Enable Out

Data 3

ArqComp: Sistemas de memria

8/79

2007-04-02

Estrutura bsica de uma memria esttica


Din[1] Din[1]

D C Write enable

D latch Q

D C

D latch Q

Enable

Enable

2-to-4 decoder

D C

D latch Q

D C

D latch Q

Enable

Enable

D Address C

D latch Q

D C

D latch Q

Enable

Enable

SRAM 4x2
D C D latch Q D C D latch Q

Enable

Enable

Dout[1]

Dout[0]

ArqComp: Sistemas de memria

9/79

2007-04-02

Memrias estticas organizadas por bancos

Para limitar o tamanho do descodicador de endereos:


4K x 1024 SRAM 12 Address [2110] to 4096 decoder 4096 4K x 1024 SRAM 4K x 1024 SRAM 4K x 1024 SRAM 4K x 1024 SRAM 4K x 1024 SRAM 4K x 1024 SRAM 4K x 1024 SRAM

Address [90]

1024

Mux

Mux

Mux

Mux

Mux

Mux

Mux

Mux

Dout7

Dout6

Dout5

Dout4

Dout3

Dout2

Dout1

Dout0

Organizao tpica de uma memria 4Mx8 como uma coleco de blocos de memria 4Kx1024. Os blocos MUX so realizados por buffers de trs estados.

ArqComp: Sistemas de memria

10/79

2007-04-02

Acessos a uma memria esttica


Duas escritas e uma leitura:
Escrita Escrita Leitura

OE tempo mnimo para escrita

WE

Endereo

End1

End2

End1

Dados

Dado1

Dado2

Dado1

Leitura

valor escrito tempo de acesso

OE identica operao de leitura; endereos devem estar estveis antes de o sinal ser activado.
ArqComp: Sistemas de memria 11/79 2007-04-02

Memria dinmica (DRAM)


Valor guardado como carga num condensador. O acesso feito atravs de um transstor a operar como interruptor. Consequncia: maior densidade (bit/mm2 ), logo circuitos de maior capacidade e menor custo. Comparao: SRAM requer 4 a 6 transstores por bit armazenado. Acesso a DRAM feito em duas etapas: 1. seleco de coluna (usando uma parte do endereo); 2. seleco de linha (usando os restantes bits do endereo). DRAM mais lenta que SRAM. Valor tpico: 2 Gb (512MX4), tempo de acesso 55 ns. Condensador vai perdendo a carga e deve ser periodicamente refrescado: leitura seguida de escrita (circuito dinmico). Refrescamento consome 1% a 2% dos acessos.
ArqComp: Sistemas de memria 12/79 2007-04-02

Clula de uma memria dinmica

Seleco de linha (word line)

Transstor (interruptor)

Condensador (armazena carga elctrica)

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 variao de tenso na linha de bit amplicada para obter valor nal.

ArqComp: Sistemas de memria

13/79

2007-04-02

Esquema geral do acesso a uma memria dinmica

Descod. de linhas 11-to-2048

2048 x 2048 matriz

Endereo[10-0] 2048 trincos

Mux

Dout

Endereo: 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 memria 14/79 2007-04-02

DRAM: Leitura

Exemplo simplicado de leitura (CE=1, OE=0, WE=0). RAS = Row Address Strobe (endereo especica linha) CAS = Column Address Strobe (endereo especica coluna)

RAS

CAS

Endereo

End. Linha

End. Coluna

Dados

Dados lidos

ArqComp: Sistemas de memria

15/79

2007-04-02

DRAM: Escrita

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

RAS

CAS

existe uma largura mnima para este impulso


WE

Endereo

End. Linha

End. Coluna

Dados

Dados a escrever

ArqComp: Sistemas de memria

16/79

2007-04-02

Mdulos de memria: DIMM


CIs individuais podem ser agrupados em mdulos. Ex: mdulo 32Mx64 (256 MB) pode usar 16 componentes 32Mx4.

a[24:0] Ram0 Ram1 Ram2 32Mx4 d [3:0] d [7:4] d[63:0] d [11:8] 4 4 4 4 4


Ram14

Ram15

d [59:56]

d[63:60]

ArqComp: Sistemas de memria

17/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

18/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

19/79

2007-04-02

Organizao da memria de um computador

A memria fsica de um computador geralmente composta por vrios mdulos (circuitos integrados, DIMM, etc.) por forma a ser possvel obter maiores capacidades de armazenamento. Para alm dos mdulos de memria necessrio ter um circuito de descodicao de endereos que selecciona quais os mdulos activos durante um dado acesso (com base no endereo apresentado pelo CPU). Organizao tpica: os bits menos signicativos so ligados directamente aos mdulos individuais, enquanto os bits mais signicativos so usados para fazer a seleco dos mdulos. Linhas de dados podem ser partilhadas por mais que um mdulo (usando buffers tristate). Alguns mdulos usam internamente esta abordagem.

ArqComp: Sistemas de memria

20/79

2007-04-02

Organizao da memria: diagrama de blocos


N bits de endereo
End. End. End. End.

N bits End[N-1:0]
CS dados CS dados CS dados CS dados

dados[ ]

M-N bits de seleco End[M-1: N]


Descodificador

Apenas uma sada activa de cada vez

Endereo tem M bits, dos quais M-N podem ser usados na descodificao

Para memrias DRAM a descodicao de endereos mais complicada. Apenas abordaremos o caso das memrias SRAM.
ArqComp: Sistemas de memria 21/79 2007-04-02

Regras de descodicao de endereos

Para que esta organizao funcione bem, a descodicao de endereos deve garantir que: Para o conjunto de todos os mdulos que partilham uma mesma linha de dados: apenas um (ou nenhum) deve ser activado durante um acesso. Se esta condio no for respeitada, os componentes podem ser denitivamente danicados. O mapeamento de endereos para componentes pode ser classicado de acordo com o nmero de endereos que mapeado na mesma posio fsica: total: 1 endereo 1 posio parcial: N endereos 1 posio Na descodicao total, todos os bits do endereo so usados: ligados directamente aos componentes ou utilizados na seleco dos componentes.

ArqComp: Sistemas de memria

22/79

2007-04-02

Descodicao total: exemplo

RAM1

RAM2

A[15:0] A[11:0]

A[12:0]

RAM1: 4Kx8 RAM2: 8Kx8 Espao de endereamento do CPU: 64 K, 1 byte por endereo RAM 1: 1011 XXXX XXXX XXXX Gama: B000H a BFFFH
8 bits

CS D[7:0] 8 bits D[7:0]

CS D[7:0]

8 bits A[15] A[14] A[13] A[12]


&

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

&

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

Endereo B712H (46866) RAM1 Endereo C1E0H (49632) nenhum circuito

ArqComp: Sistemas de memria

23/79

2007-04-02

Descodicao parcial: exemplo

RAM1 A[15:0] A[11:0]

RAM2

RAM1: 4Kx8 RAM2: 8Kx8 Espao de endereamento do CPU: 64 K, 1 byte por endereo RAM 1: 10?? XXXX XXXX XXXX Gamas: 8000H a 8FFFH 9000H a 9FFFH A000H a AFFFH B000H a BFFFH RAM2: 0?1X XXXX XXXX XXXX Gamas: 2000H a 3FFFH 6000H a 7FFFH

A[12:0]

CS D[7:0] 8 bits D[7:0]

CS D[7:0] 8 bits

8 bits A[15] A[14]


&

A[15] A[13]

&

O byte 10 de RAM1 pode ser acedido atravs de que endereos? 800AH, 900AH, A00AH e B00AH

ArqComp: Sistemas de memria

24/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

25/79

2007-04-02

Observaes gerais sobre sistemas de memria

O custo dos diferentes tipos de memria muito diferente:


Tecnologia SRAM DRAM disco magntico Tempo de acesso 0.55 ns 5070 ns 5 106 2 107 ns Custo ($/GB em 2004) $4000$10000 $100$200 $0.5$2

Organizar o sistema de memria como uma hierarquia: memria rpida para satisfazer a maior parte dos acessos, memria mais lenta para armazenar os dados menos usados. Princpio de funcionamento (para cada nvel):
Procurar a informao (dados ou instrues) num dado nvel (inicialmente no nvel 1, o que est mais prximo do CPU); Caso a informao no exista a, ir busc-la ao nvel seguinte e guardar uma cpia (pode vir a ser reusada brevemente).

Se a maioria dos acessos for satisfeita pelo nvel superior, obtm-se, em mdia, os tempos de acesso do nvel superior e a capacidade de armazenamento do nvel inferior.

ArqComp: Sistemas de memria

26/79

2007-04-02

Organizao hierrquica de sistemas de memria

Tecnologia Rapidez
CPU

Tamanho

Custo(/bit)

corrente

Mais rpido

Memria

Menor

Maior

SRAM

Memria

DRAM

Mais lento

Memria

Maior

Menor

Disco magntico

ArqComp: Sistemas de memria

27/79

2007-04-02

Nveis da hierarquia de memria

Processador

Transferncias de dados

ArqComp: Sistemas de memria

28/79

2007-04-02

Hierarquia de memria: conceitos bsicos


Uma hierarquia de memria pode ter vrios nveis, mas a informao transferida directamente apenas entre nveis adjacentes: o nvel superior mais rpido e tem menor capacidade que o nvel inferior. Bloco: quantidade mnima de informao que pode estar presente ou ausente de um determinado nvel. Tipicamente, a informao entre nveis transferida em blocos. Acerto: acesso ao nvel superior encontrou a informao pretendida (hit). Falha: acesso ao nvel superior no encontrou a informao (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 nvel superior, incluindo a vericao da presena do item pretendido (hit time). Penalidade de falha: tempo necessrio para copiar o item pretendido do nvel inferior para o superior mais o tempo necessrio para esse nvel completar o atendimento do acesso original (miss penalty). Uma boa compreenso da hierarquia de memria indispensvel para a elaborao de programas de elevado desempenho.
ArqComp: Sistemas de memria 29/79 2007-04-02

O princpio da proximidade

A organizao hierrquica de memria d muito bons resultados na prtica, porque as situaes em que aplicada se comportam de acordo com o princpio da proximidade. O princpio da proximidade (ou localidade): Programas em execuo acedem apenas a uma pequena parte do seu espao de endereamento (durante um certo intervalo). Proximidade temporal: Se um item de informao usado, tender ser usado de novo em breve. Exemplo: instrues no corpo de um ciclo, variveis. Proximidade espacial: Quando um item de informao usado, itens prximos tendaro tambm a ser usados em breve. Exemplo: o conjunto de variveis de uma subrotina, os elementos de um vector.

ArqComp: Sistemas de memria

30/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

31/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

32/79

2007-04-02

Princpio bsico de funcionamento

X4 X1 X n -2

X4 X1 X n- 2

Duas questes relacionadas:


X n -1 X2 X n- 1 X2 Xn X3 X3

1. Como determinar a posio do item pretendido? 2. Como determinar a presena do item?


n

a. Antes de referncia a X

b. Depois de referncia a X

Se o acesso a memria cache no encontra item desejado, item copiado de nveis inferiores da hierarquia.

O mapeamento endereo posio de cache sempre muitos1.

ArqComp: Sistemas de memria

33/79

2007-04-02

Determinao da posio: mapeamento directo


ndice = (endereo do bloco) % (no de blocos) Se (no de blocos) = 2b , a posio (o ndice) dada pelos b bits menos signicativos do endereo.
Cache 000 001 010 011 100 101 110 111 00001 00101 01001 01101 10001 Memria 10101

11001

11101

Exemplo: Cache: 8 posies, memria principal: 32. I = End % 8


ArqComp: Sistemas de memria 34/79 2007-04-02

Determinao da presena: etiquetas

Questo: Dada a posio de um item em cache, como determinar, se esse item que, de facto, l se encontra? Soluo: Associar a cada bloco, uma etiqueta (tag) nica. A etiqueta pode ser constituda pelos bits mais signicativos do endereo (bits no usados na determinao da posio). No exemplo anterior, a etiqueta teria 2 bits.
4 3 2 1 0

Etiqueta

No do bloco

Em certas situaes, tanto o bloco como a etiqueta so invlidos. Exemplo: arranque do sistema. Para detectar esta situao, cada bloco tem associado um bit de validade. Se o seu valor for zero, ento o bloco invlido (a posio est vazia).

ArqComp: Sistemas de memria

35/79

2007-04-02

Exemplo: Cache para MIPS


Endereo
31 30 13 12 11 2 10 Byte offset Acerto Etiqueta ndice Etiqueta Vlido Dados 20 10

ndice 0 1 2

Dados

1021 1022 1023 20 32

Como cada palavra (item) tem 4 bytes, os dois bits menos signicativos no so usados. (Todos os endereos so alinhados;tm os 2 bits menos signicativos a 0).
ArqComp: Sistemas de memria 36/79 2007-04-02

Mltiplas palavras por bloco

O armazenamento de uma palavra (item) por bloco no aproveita a proximidade espacial. Para isso devem ser usados blocos com W itens (W > 1). Para que seja fcil de identicar o item no interior do bloco, o nmero W deve ser uma potncia de 2: W = 2w . Nesta situao, o item pode ser identicado por w bits do endereo. A parte do endereo que especica a posio dentro do bloco designa-se por deslocamento (offset). Interpretao de um endereo de N bits:
Etiqueta (N-b-w-x) ndice (b) Deslocamento (w) x

Quando os itens no tm apenas um byte (a unidade de endereamento), existem alguns bits (menos signicativos) do endereo que no so usados no acesso a memria. No caso do MIPS, os acessos so feitos por palavras de 4 bytes, pelo que 2 bits no so usados.

ArqComp: Sistemas de memria

37/79

2007-04-02

Estrutura de cache com mltiplas palavras por bloco

Etiqueta

0 0 1 2 3 4 5 6 7

}
byte

verificao

Etiqueta

ndice

Deslocamento

Cache com b=3, w=2.

ArqComp: Sistemas de memria

38/79

2007-04-02

Tamanho de bloco vs. taxa de falhas

10% 4K

Taxa de falhas

5%

16K

64K 0% 16 32 64 Tamanho do bloco (bytes) 128 256 256K

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 dimenso do bloco, porque preciso ir buscar mais dados ao nvel inferior.
ArqComp: Sistemas de memria 39/79 2007-04-02

Exemplo: Intrinsity FASTMath (1)

Endereo
31 14 13 65 210

Hit Tag Index 18 bits V Tag

18

Byte offset Block offset

Data

512 bits Data

256 posies

16

32

32

32

= Mux 32

ArqComp: Sistemas de memria

40/79

2007-04-02

Exemplo: Intrinsity FASTMath (2)

Capacidade: 16 KB, 256 blocos de 16 palavras. Etiquetas: 18 bits. ndice: 8 bits (28 = 256). Deslocamento (no bloco): 4 bits 24 = 16). Exemplo de clculo de posio:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Etiqueta (18) Endereo = 0x00457544

ndice (8) (455200410 )

Desl.

Etiqueta: 0000 0000 0100 0101 01|11 ... 0x00115 Bloco: ... 01|11 0101 01|00 0100 0xD5 (21310 )

ArqComp: Sistemas de memria

41/79

2007-04-02

Memrias cache separadas

Em muitos sistemas, existem memrias cache separadas para instrues (I-cache) e dados (D-cache). A I-cache usada no ciclo IF e apenas permite acessos de leitura. A D-cache permite leituras e escritas; usada no tratamento de instrues load/store. A utilizao de caches separadas (split cache), permite evitar conitos entre os estados IF e MEM. Para uma mesma capacidade total, caches unicadas permitem conseguir menores taxas de falha (mas a diferena pequena). Exemplo: (I-Cache + D-Cache) vs. U-Cache: Caches separadas: I-Cache(16 KB): 0.4%, D-Cache (16 KB): 11.4%, Mdia pesada: 3.24% Cache unicada de 32 KB: 3.18%
ArqComp: Sistemas de memria 42/79 2007-04-02

Tratamento de falhas de leitura


Quando, no processo de efectuar uma leitura da memria cache, esta detecta que o item pretendido no existe, so executadas as seguintes operaes: 1. O endereo passado para o nvel inferior. 2. A memria cache espera pela nvel inferior responda com o bloco pretendido. 3. O novo bloco colocado na cache (eventualmente usando uma posio 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 obteno de uma instruo (IF) ou durante uma leitura de dados (store). Em qualquer dos casos, uma falha de cache leva a um protelamento longo (tipicament mais de 100 ciclos). O protelamento pode consistir simplesmente em suspender todas as operaes. instruo: o CPU protela espera da memria e repete o ciclo IF at obter a instruo. dado: a instruo de store protelada durante a escrita (ciclo MEM).

ArqComp: Sistemas de memria

43/79

2007-04-02

Tratamento de operaes de escrita: write hit


S existem operaes de escrita em caches de dados ou em caches unicadas. Escrita com valor em cache write hit : Operaes de escrita levantam a possibilidade de o valor existente na cache ser diferente do valor em memria principal. Cache write-through: a memria cache actualizada ao mesmo tempo que a memria principal. Cache write-back : apenas o valor em cache actualizado. A memria actualizada apenas quando o bloco substitudo. A poltica write-through deve evitar car espera que a escrita em memria principal termine. Para isso, o CPU tem uma la interna onde coloca os valores a escrever (designada por write-buffer ), continuando entretanto a processar instrues (pelo menos, enquanto a la no car cheia). A poltica de write-back reduz o nmero de acessos ao nvel seguinte, mas mais complexa de implementar.

ArqComp: Sistemas de memria

44/79

2007-04-02

Tratamento de operaes de escrita: write miss

Escrita de valor cujo bloco est ausenta da cache write miss: As duas variantes principais so: Poltica allocate-on-miss: o bloco necessrio obtido do nvel inferior, aps o que tudo se passa como no caso de um write-hit. Pode envolver a substituio de um bloco j presente em cache. Poltica no-allocate: no alterar o contedo da cache e alterar directamente a memria principal. Funciona como se a cache no existisse para este tipo de transaces. O tratamento de cache miss logicamente independente do tratamento de cache hit. As combinaes mais usadas so: write-through & no-allocate: nfase na simplicidade. write-back & allocate-on-miss: nfase na reduo de trfego para a memria principal.

ArqComp: Sistemas de memria

45/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

46/79

2007-04-02

Equaes bsicas de desempenho de caches


O tempo (em ciclos) para acerto (hit) faz parte do tempo normal de execuo de uma instruo. TCPU = (Cexec + Cprot ) T TCPU : tempo de CPU Cexec : no de ciclos em que CPU executou instrues Cprot : no de ciclos em que o CPU protelou devido a falhas no acesso a memria cache Assumir: no existem protelamentos causados por write buffer. Assumir que penalidades de falha iguais na escrita e na leitura. Cprot = Nrw tf pf Nrw : nmero 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 e escritas preciso separar a equao anterior em duas parcelas.
ArqComp: Sistemas de memria 47/79 2007-04-02

Exemplos de clculo de desempenho

Especicao: CPIperf =2, t = 0.02 para instruces e tfd = 0.04 para dados, pf = 100, acessos a memria: 36%. Comparar o desempenho real com o desempenho obtido se a memria cache fosse perfeita. Ci : no de ciclos de protelamento na obteno de instrues: 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 = E se CPIperf = 1 ? CPIprot = 4.44 speedup = 4.4 Percentagem de tempo em protelamento piora: 3.44/5.44 = 63% 3.44/4.44 = 77%. N CPIprot T N CPIperf T = 5.44 2 = 2.72

ArqComp: Sistemas de memria

48/79

2007-04-02

Efeito do aumento de frequncia

Melhorar o CPI sem melhorar o subsistema de memria leva a um aumento da percentagem de tempo perdida em protelamentos. (cf. exemplo anterior) O que acontece se a frequncia de relgio aumentar, mas o subsistema de memria 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
T 2

5.44 8.88 0.5

= 1.23

Se a inuncia da cache tivesse sido ignorada, seria speedup=2. Processador que melhore simultaneamente CPI e T sofre um impacto duplo negativo.

ArqComp: Sistemas de memria

49/79

2007-04-02

Inuncia do desempenho de cache

1200 Radix sort

2000 Radix sort 1600

1000

Instructions / item

800

Clock cycles / item

1200

600

800

400 200 Quicksort

400

Quicksort

0 4 8 16 32 64 128 256 512 1024 2048 4096

0 4 8 16 32 64 128 256 512 1024 2048 4096

N de itens ordenados

N de itens ordenados

N de instrues executadas por item

Ciclos de relgio por item


5 Radix sort 4

Cache misses / item

N de falhas de cache por item

1 Quicksort 0 4 8 16 32 64 128 256 512 1024 2048 4096

N de itens ordenados

ArqComp: Sistemas de memria

50/79

2007-04-02

Colocao exvel de blocos

Para reduzir a taxa de falhas, pode usar-se uma colocao de blocos mais exvel. Opes: Um item pode ser colocado 1. num nico bloco: mapeamento directo 2. em qualquer bloco: associatividade completa 3. em qualquer bloco de um conjunto: associatividade parcial Nmero de blocos de um conjunto = nmero de vias Exemplos: conjunto de 2 blocos: associatividade 2 vias (2-way) mapeamento directo: associatividade 1-way associatividade total (cache com M blocos): m-way ndice determina apenas o conjunto, mas no o bloco: I = Endereo % (no de conjuntos) Para determinar onde se encontra o item, as etiquetas de todos os blocos vlidos do conjunto devem ser comparadas (em simultneo!): implementao mais complexa, que pode levar ao aumento do tempo de acesso (hit time)

ArqComp: Sistemas de memria

51/79

2007-04-02

Associatividade: exemplo
Mapeamento directo Associatividade por conjuntos Associatividade total

Bloco #

0 1 2 3 4 5 6 7

Conj. #

Dados

Dados

Dados

Etiqueta

1 2

Etiqueta

1 2

Etiqueta

1 2

Busca

Busca

Busca

Resultado emprico: associatividade superior a 8 no til (no leva a qualquer reduo da taxa de falhas). Exemplo (Intrinsity FASTMath): Associatividade 1 2 4 8
ArqComp: Sistemas de memria

taxa de falhas (dados) 10.3% 8.6% 8.3% 8.1%


52/79 2007-04-02

Exemplo: organizao de cache de 8 blocos


Associatividade: 1 via (mapeamento directo)
Block 0 1 2 3 4 5 6 7 Set 0 1 2 3 Tag Data Tag Data Tag Data

Associatividade: 2 vias

Associatividade: 4 vias
Set 0 1 Tag Data Tag Data Tag Data Tag Data

Associatividade: 8 vias (associatividade total, neste caso)


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

ArqComp: Sistemas de memria

53/79

2007-04-02

Localizao de bloco em cache associativa


Endereo
31 30 12 11 10 9 8 3210

22
Etiqueta (tag)

ndice (index) Index 0 1 2 253 254 255 22 32 V Tag Data V Tag Data V Tag Data V Tag Data

4-to-1 multiplexor

Hit

Data

ArqComp: Sistemas de memria

54/79

2007-04-02

Nmero de bits usados para etiquetas


Calcular o no de bits usados para armazenar as etiquetas. Especicao: endereos de 32 bits, cache com 4K blocos, blocos de 4 palavras, associatividade m=1, m=2, m=4 e associatividade total (m=4K). 16 (=24 ) bytes / bloco 32-4 = 28 bits para ndice e etiqueta. m=1: 4K conjuntos, logo 12 bits de ndice, e 28-12=16 bits/etiqueta. Total: 164K = 64 Kbits Cada incremento da associatividade diminiu para metade o nmero de conjuntos, logo diminui de 1 o nmero de bits do ndice e aumenta de 1 o nmero 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 memria

55/79

2007-04-02

Poltica de substituio

A poltica de substituio dene qual dos blocos de um conjunto deve ser substitudo quando h uma falha e todos os blocos do conjunto esto ocupados. Substituio aleatria: o bloco a ser substitudo escolhido aleatoriamente de entre os elementos do conjunto. LRU (Least Recently Used): o bloco substitudo aquele que no usado h mais tempo. Implementao para uma cache de 2 vias: para cada bloco usar um bit para marcar o ltimo a ser acedido (o bit do outro bloco do conjunto colocado a zero). A complexidade de implementar LRU cresce com a associatividade. A poltica LRU tenta aproveitar a proximidade temporal: os itens usados mais recentemente tendem a permanecer em cache.

ArqComp: Sistemas de memria

56/79

2007-04-02

Mltiplos nveis de memria cache

Para reduzir a penalidade de falhas pode aplicar-se a mesma abordagem que se usa para reduzir o tempo de acesso memria principal: usar uma cache para a cache. A cache de nvel 2 permite reduzir a penalidade de falha da cache de nvel 1. A cache de nvel 2 contm geralmente os dados residente na cache de nvel 1 (hierarquia de memria inclusiva) e de maior capacidade. Arranjo comum: memrias cache separadas de nvel 1 + cache unicada de nvel 2. Em alguns sistemas de elevado desempenho: 2 nveis de cache on-chip + 1 nvel (L3) no exterior.

ArqComp: Sistemas de memria

57/79

2007-04-02

Processador com dois nveis de cache

Usado no Mac G5 58 milhes transstores, 2.2 GHz L1-ICache: 64 KB, m=1, 128 bytes/bloco L1-DCache: 32 KB, m=2, 128 bytes/bloco, LRU, write-through, no-allocate L2-Cache: 512 KB, m=8, 128 bytes/bloco, LRU, write-back, allocate-on-miss
ArqComp: Sistemas de memria 58/79 2007-04-02

Desempenho de memrias cache multinvel

Clculo do desempenho de um sistema com dois nveis de cache: Especicao: CPI = 1, F = 5 GHz (T=0.2 ns), acesso a memria principal: 100 ns, taxa de falhas em L1 de 2%. Qual a melhoria de desempenho obtida por uma memria cache L2 (tempo de acesso 5 ns) e com capacidade suciente para reduzir a taxa de falhas para memria principal para 0.5%? Penalidade de falha (mem. principal): 100/0.2 = 500 ciclos. CPI1 = 1 + 0.02 500 = 11 Com 2 nveis: Penalidade de falha por acesso a L2: 5/0.2 = 25 ciclos CPI2 = 1 + ProtL1 + ProtL2 CPI2 = 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 memria

59/79

2007-04-02

Memrias

Sistemas de memria: aspectos gerais Descodicao de endereos Hierarquia de memria

Memrias cache Princpios de funcionamento de memrias cache Desempenho de memrias cache

Memria virtual

ArqComp: Sistemas de memria

60/79

2007-04-02

Memria virtual: motivao

Conceito: memria principal uma cache para memria secundria (em disco magntico). Motivao: 1. remover a limitao do tamanho da memria fsica: o programa pode usar mais memria que a sicamente presente. Vantagem adicional: programa pode ser executado sem modicao em computadores com sistemas de memria diferentes. 2. permitir a utilizao comum eciente e segura de memria principal por vrios programas em execuo simultnea (processos). Aplica-se o princpio da proximidade (local e espacial). Cada programa compilado (e executado) num espao de endereamento separado (virtual). Durante a execuo, os endereos deste espao virtual so convertidos para endereos fsicos (de memria fsica).

ArqComp: Sistemas de memria

61/79

2007-04-02

Memria virtual: termos e conceitos

Cache bloco falha de memria SRAM DRAM

Memria virtual pgina falha de pgina DRAM disco magntico

Durante um acesso a memria principal, o endereo virtual convertido (mapeado) num endereo fsico. Memria virtual tambm implementa automaticamente a relocao do programa: o programa pode ser colocado (carregado) para qualquer zona de memria. A relocao feita por pginas: no necessrio usar uma zona contgua de memria para todo o programa. Mapeamento virtualreal com base em pginas de dimenso xa: paginao. Alternativa: usar blocos de dimenso varivel (segmentos).

ArqComp: Sistemas de memria

62/79

2007-04-02

Modelo conceptual
Endereos virtuais Converso de endereos Endereos fsicos

Endereos de disco

ArqComp: Sistemas de memria

63/79

2007-04-02

Endereos virtuais e reais


Endereo virtual
31 30 29 28 27 N de pgina virtual 15 14 13 12 11 10 9 8 3210

Deslocamento (na pgina)

Converso

29 28 27 N de pgina fsica

15 14 13 12 11 10 9 8

3210

Deslocamento (na pgina)

Endereo fsico

O endereo virtual dividido num nmero de pgina virtual e um deslocamento na pgina. O nmero de pgina virtual convertido num nmero de pgina real. O nmero de bits dos dois nmeros no necessita de ser igual.
ArqComp: Sistemas de memria 64/79 2007-04-02

Penalidade de falha de pgina

A penalidade de falha de pgina enorme : alguns milhes de ciclos de relgio. (O acesso a memria principal 100000 mais rpido que o acesso a disco.) Consequncias: A dimenso de uma pgina deve permitir amortizar o elevado tempo de acesso. Dimenso tpica: 4 KB16 KB, com tendncia a aumentar (32 KB64 KB). A reduo da taxa de falhas de extrema importncia: utilizao de associatividade completa. O tratamento das falhas de pgina pode ser feito por software (j que o overhead comparativamente reduzido), o que permite a utilizao de polticas de substituio sosticadas. No se usa write-through, mas apenas write-back (copy-back).

ArqComp: Sistemas de memria

65/79

2007-04-02

Colocao de pginas (converso virtualreal)


O mapeamento virtualreal completamente associativo. O nmero de pginas impede uma pesquisa em paralelo (como nas memrias cache) ou uma pesquisa linear. Usa-se um tabela indexada pelo no de pgina virtual: na posio correspondente a cada pgina est o no de pgina real associado e informao adicional (p. ex., tipo de acesso permitido), bem como um bit de validade. A tabela de pginas tem tantas posies como pginas virtuais. A tabela de pginas mantida em memria e, geralmente, endereada a partir de um registo especial: page table register. A tabela utilizada por hardware (durante os acessos), mas gerida por software (sistema operativo). A tabela de pginas mantida em memria principal. Existe uma tabela por processo (e uma para o sistema operativo).
ArqComp: Sistemas de memria 66/79 2007-04-02

Tabela de pginas: exemplo


Registo de tabela de pginas

Endereo virtual
31 30 29 28 27 N de pgina virtualr 20 Valid N de pgina fsicar 15 14 13 12 11 10 9 8 Deslocamento (pgina) 12 3210

Tabela de pginas

18 Se 0 a pgina no est presente em memria 29 28 27 N de pgina fsica 15 14 13 12 11 10 9 8 Deslocamento (pgia) 3210

Endereo fsico

ArqComp: Sistemas de memria

67/79

2007-04-02

Tratamento de faltas de pgina


Quando, durante a converso virtualreal, o bit de validade da posio escolhida da tabela de pgina est a zero, ocorre uma falta de pgina. Neste caso, o CPU salta para uma subrotina de atendimento existente no sistema operativo. O sistema operativo deve encontrar a pgina em disco. Como? Quando o sistema lana um novo processo, reserva espao para todas as pginas numa zona especial do disco designada por swap space. Ao mesmo tempo, o sistema operativo cria uma estrutura de dados para registar a posio de cada pgina em disco. Essa estrutura pode car integrada na tabela de pginas (exemplo seguinte) ou numa estrutura auxiliar separada. O sistema operativo tambm regista, para cada pgina fsica, qual o processo que lhe esto associado (bem como a respectiva pgina virtual).
ArqComp: Sistemas de memria 68/79 2007-04-02

Tratamento de faltas de pgina: exemplo


N de pgina virtual Tabela de pginas Pgina fsica ou endereo de disco Memria fsica

Vlido 1 1 1 1 0 1 1 0 1 1 0 1

Armazenamento em disco

ArqComp: Sistemas de memria

69/79

2007-04-02

Falhas de pgina e tratamento de escritas

Quando ocorre uma falha de pgina e toda a memria fsica est ocupada, o sistema operativo deve escolher uma pgina fsica a libertar. Se alguma das posies de memria dessa pgina foi alterada, a pgina fsica deve ser copiada para disco (write-back) antes de ser substituda. Blocos de cache pertencentes pgina a substituir devem ser tambm libertados (incluindo write-back se necessrio), se existirem. O acesso a disco magntico (neste caso, para escrita) muito demorado. Para evitar cpias desnecessrias, cada pgina tem um bit (na tabela de pginas) a indicar se foi alterada: bit de modicao (dirty bit). Apenas pginas fsicas com esse bit de substituio a 1 so copiadas para disco.

ArqComp: Sistemas de memria

70/79

2007-04-02

Poltica de substituio

A escolha da pgina fsica a substituir aquando de uma falta de pgina geralmente feita segundo o critrio LRU (Least Recently Used): substituda a pgina no usada h mais tempo (as outras tm mais probabilidade de virem a ser usadas brevemente). A implementao exacta de LRU muito pesada, j que a informao correspondente deve ser actualizada a cada acesso. Na prtica, os S. O. apenas aproximam a poltica LRU. Uma abordagem: o CPU associa a cada pgina um bit de utilizao (ou bit de referncia): esse bit colocado a 1 sempre que ocorre um acesso pgina. Periodicamente, o S. O. coloca todos os bits de referncia a zero, para depois registar as pginas acedidas durante um certo intervalo de tempo. Com esta informao de utilizao, o S. O. pode escolher a pgina a substituir de entre as que foram referenciadas menos recentemente.
ArqComp: Sistemas de memria 71/79 2007-04-02

Tornar a converso de endereos mais rpida

As tabelas de pginas esto em memria principal. Cada acesso do programa seria transformado em dois acessos: um acesso pgina e um segundo acesso aos dados/instrues. O princpio da localidade aplica-se: um endereo de pgina virtual usado recentemente tem elevada probabilidade de ser re-utilizado. Soluo: usar uma memria cache especial para guardar as converses de endereos mais recentes: translation-lookaside buffer (TLB) A cada acesso, o TLB consultado para determinar a pgina real correspondente pgina virtual especicada no endereo. Em caso de sucesso, o bit de referncia actualizado. No caso de uma escrita, o mesmo sucede com o bit de modicao. TLB deve conter cpia dos bits de controlo associados a cada pgina (incluindo a informao sobre proteco de acesso).

ArqComp: Sistemas de memria

72/79

2007-04-02

TLB: Cache de endereos de pgina convertidos


TLB N de pgina virtual
Endereo de

Valid Dirty Ref 1 1 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1

Etiqueta

pgina fsica

Memria fsica

Tabela de pginas
Valid Dirty Ref 1 1 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 Pgina fsica ou end. disco

Disco magntico

ArqComp: Sistemas de memria

73/79

2007-04-02

TLB: aspectos adicionais


Falha no TLB: carregar novo valor da tabela de pginas e repetir o acesso (software ou hardware); da segunda vez pode ocorrer uma falha de pgina (software). Durante a substituio de um bloco do TLB, os bits de referncia e de acesso devem ser copiados para a pgina: write-back. So usados diversos tipos de associatividade: TLB pequeno com associatividade total (minimizar a taxa de falhas) e seleco aleatria do bloco a substituir (simplicidade) ; ou TLB maior, com associatividade reduzida. Caractersticas tpicas: tamanho (no de endereos): 16512 tamanho do bloco: 12 tempo de acesso (hit): 0.51 ciclo de relgio penalidade de falha: 10-1000 ciclos de relgio taxa de falhas: 0.01%1%
ArqComp: Sistemas de memria 74/79 2007-04-02

Exemplo: TLB do Intrinsity FastMATH


Endereo virtual
31 30 29 N de pgina virtual 20 14 13 12 11 10 9 3 2 1 0

Deslocamento de pgina 12

Valid

Dirty = = = = = =

Etiqueta

N de pgina fsica

TLB
TLB hit

20

N de pgina fsica Etiqueta fsica 18

Deslocamento de pgina

End. fsico ndice de cache


8

Desl. bloco 4 2

desl.
byte

8 12 Valid Etiqueta Dados

Cache

= Cache hit

32

Dado

ArqComp: Sistemas de memria

75/79

2007-04-02

Caches, TLB e memria virtual


Endereo virtual

acesso TLB

TLB miss

No TLB hit?

Sim Endereo fsico

No Escrita?

Sim

Try to read data from cache No

Acesso de escrita permitido?

Sim

Protelar durante leitura de bloco (eventualmente com escrita)

No Cache hit?

Sim

Erro de proteco

Try to write data to cache

Fornecer dados para o CPU

Protelar durante leitura de bloco (eventualmente com escrita)

Sim Cache hit?

No

Escrever dados em cache e actualizar dirty bit (se cache write-back)

ArqComp: Sistemas de memria

76/79

2007-04-02

Acesso a memria: eventos possveis

Para um sistema com TLB, um nvel de cache e memria principal, um acesso a memria pode encontrar trs eventos: falha TLB, falha de pgina (PT) e falha de cache. Que combinaes destes eventos podem realmente ocorrer?

TLB hit miss miss miss hit hit miss

T. P. hit hit hit miss miss miss miss

Cache miss hit miss miss miss hit hit

Possvel? Porqu? Sim. A TP no vericada. Sim. Pgina em memria mas endereo fora da T. P. Sim. Dados/instrues no esto em cache. Sim. No. Se no existe na T. P. no pode estar em TLB. No. (Idem) Nao. Dados no podem estar em cache se a pgina no est em memria.

ArqComp: Sistemas de memria

77/79

2007-04-02

TLB, memria virtual e caches

TLB, memria virtual e caches podem ser caracaterizados pelas respostas s seguintes questes: 1. Onde pode ser colocado um bloco? Mapeamento directo: 1 posio. Associatividade completa: todas as posies, associatividade por conjuntos: conjunto restrito de posies. 2. Como encontrar um bloco? Mapeamento directo: ndice. Associatividade por conjuntos: ndice para o conjunto + pesquisa concorrente. Associatividade completa: pesquisa concorrente (cache) ou tabela separada (mem. virtual). 3. Que bloco substituir? Mapeamento directo: s um bloco. Outros: seleco aleatria ou LRU (exacto ou aproximado) 4. Que acontece na escrita? Write-through ou write-back. Memria virtual usa sempre write-back.

ArqComp: Sistemas de memria

78/79

2007-04-02

Elementos de consulta

[Patterson & Hennessy]: Seces 7.17.4, B.9 [Delgado & Ribeiro]: Seces 3.2, 6.1, 7.5, 7.6 [Arroz, Monteiro & Oliveira]: Cap. 13

ArqComp: Sistemas de memria

79/79

2007-04-02

Notas:

79

Вам также может понравиться