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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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