memória

Propaganda
Arquitetura de Computadores
Memória Cache e Tipos
de Memória
Anderson L. S. Moreira
[email protected]
© Copyright 2010, IFPE.
Creative Commons BY-SA 3.0 license
Latest update: 12 de Abr de 2011,
Document sources, updates:
http://dase.ifpe.edu.br/~alsm
1
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Agenda

Introdução

Cálculo de memória

Impacto da cache no desempenho do sistema

Gerenciamento da cache

Mapeamento

Exercícios
2
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Também conhecida como memória buffer, está localizada entre o
processador e a memória principal;
Objetivo aumentar a velocidade do ciclo de memória (busca de
instruções) e com isso o desempenho global do computador;
Melhores resultados só são realmente aproveitados se a
velocidade da cache for de 5 a 10 vezes mais rápida que a
principal (alguns sistemas no máximo a ordem é de 2,5 a 3
vezes).
3
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Os parâmetros empregados para medir o desempenho são:
• Tempo de Acesso: é o período de tempo gasto decorrido desde o instante em
que foi iniciada a operação de acesso até que a informação requerida
(instrução ou dado) tenha sido efetivamente transferida. Pode ser chamado
tempo de acesso para leitura ou simplesmente tempo de leitura.
• Tempo de ciclo de memória: esse conceito é aplicável principalmente a
memórias de acesso aleatório e compreende o tempo de acesso e o tempo
adicional requerido antes que um segundo acesso possa ser iniciado.
• Taxa de transferência: é a taxa na qual os dados podem ser transferidos de ou
para a unidade de memória.
4
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Comparativo entre as memórias
5
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
À medida que descemos na hierarquia, as relações a seguir são
válidas:
• O custo por bit diminui
• A capacidade aumenta
• O tempo de acesso aumenta
• A frequência de acesso à memória pelo processador diminui
6
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
A capacidade diz respeito à quantidade de informação que pode ser armazenada
em uma memória; a unidade de medida mais comum é o byte, embora
também possam ser usadas outras unidades como células (no caso da
memória RAM e cache), setores (no caso de discos) e bits (no caso de
registradores).
As Unidades de medida mais usadas para quanti car a memória e indicar a
capacidade de armazenamento
são os múltiplos do byte:
• 1MB (Megabyte) ≈1024KB = 1.048.576 bytes
• 1GB (Gigabyte) ≈ 1024MB = 1.073.741.824 bytes
• 1TB (Terabyte) ≈ 1024GB = 1.099.511.627.776 byte
s
7
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Métodos de Acesso
• Acesso seqüencial: aquele em que conjuntos de dados e informações
dispostos seqüencialmente na memória em unidades denominadas “registros”
são acessados linearmente, um após o outro. O acesso seqüencial é
tipicamente usado em dispositivos de armazenamento que utilizam meio
magnético. Em toda memória que admite acesso seqüencial existe um o
mecanismo de leitura (geralmente também usado para a escrita) que percorre
a memória linearmente, passando seqüencialmente de registro em registro,
identi cando cada um deles, até localizar o registro que se deseja consultar ou
alterar.
• Acesso direto: é feito em dois passos. O primeiro é um acesso aleatório a uma
vizinhança genérica do bloco de bytes a ser lido (geralmente, um setor). O
segundo é um acesso seqüencial (em geral por contagem de blocos) até
identificar aquele que deve ser lido.
8
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Métodos de Acesso
• Acesso aleatório: significa que qualquer posição de memória principal, ou unidade
endereçável, pode ser acessada diretamente, selecionada por seu endereço, seja ele
qual for. O acesso independe da ordem, da posição relativa ou de qualquer outro fator.
Dessa maneira, qualquer posição pode ser selecionada de modo aleatório, sendo
endereçada e acessada diretamente. A memória principal e alguns sistemas de
memória cache utilizam esse tipo de acesso.
• Acesso associativo: consiste em um tipo de acesso aleatório que possibilita comparar
simultaneamente certo número de bits de uma palavra com todas as palavras da
memória, determinando quais dessas palavras contêm o mesmo padrão de bits. Uma
palavra é buscada na memória com base em uma parte do seu conteúdo, e não de
acordo com o seu endereço. Assim como no aleatório, cada posição da memória possui
seu mecanismo de endereçamento próprio e o tempo de busca é constante e
independente da posição ou do padrão dos acessos anteriores. As memórias cache
podem empregar acesso associativo.
9
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Cálculo de Memória
Memória armazena grande número de bits
m × n memory
…
m words
m x n: m palavras de n bits cada
k = Log2(m) sinais de endereço
…
ou m = 2^k palavras
ex., Memória 4,096 x 8 :
n bits per word
32,768 bits
12 sinais de endereços
8 sinais de dados (input/output)
memory external view
r/w
2 k × n read and write memory
enable
A0
…
Ak-1
…
Q n-1
Q0
10
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Todo o controle e gerenciamento é realizado por hardware;
Processador não tem conhecimento da presença da memória
cache durante o acessos à memória;
Eventualmente a memória cache precisa ser esvaziada ou
marcada como inválida, nesse caso a cache é controlada por
software;
Não tem conflito com a memória virtual.
Controle e gerencia da cache
Memória
principal
processador
cache
11
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
A memória cache é encontrada em dois tipos:
• Memória cache L1 - Presente dentro do microprocessador ou
cache interno. É dividida em duas partes, uma para dados outra
para instruções.
• Memória cache L2 - Presente na placa-mãe ou até dentro do
processador, no caso de processadores mais novos. Quando é
externo, o seu tamanho depende do chipset presente na placamãe.
12
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
A memória cache opera em função de um princípio estatístico comprovado:
Em geral, os programas tendem a referenciar várias vezes pequenos trechos
de programas, como loops, sub-rotinas, funções e só tem sentido porque
programas executados linearmente, sequencialmente, são raros.
Desta forma, algoritmos (chamados algoritmos de cache) podem controlar
qual parte do código ficará copiado na cache, a cada momento.
Quando a UCP busca um determinado trecho de código e o encontra na
cache, dá-se um "cache hit”, enquanto se o dado não estiver presente na
cache será necessário requisitar o mesmo à MP, acarretando atraso no
processamento e dá-se um "cache miss" ou "cache fault".
O índice de cache hit ou taxa de acerto da cache é geralmente acima de
90%.
13
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
HIT – dados encontrados no nível procurado;

MISS – dados não encontrados no nível procurado;

HIT-rate – percentual de hits no nível;

MISS-rate – percentual de perdas no nível;

HIT-Time – tempo de acesso no nível incluindo tempo de ver se
é hit ou miss;

MISS-Penality – tempo médio gasto para que o dado não
encontrado no nível seja transferido dos níveis mais baixos

Time = hit-time + (1 – hit-rate) * miss-penality
14
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Exercício: Calcule o tempo médio efetivo de acesso a
uma memória cache considerando miss-rate = 20%, hittime = 2um e miss-penality = 10um?
15
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Impacto da cache no desempenho do sistema (1)
Principais parametros
Tamanho total da cache
Número total de bytes de dado da cache
Tags, bits de validade e outros bits de controle
Grau de Associatividade
Tamanho do Bloco
16
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Impacto da cache no desempenho do sistema (2)
Caches maiores permitem taxas de faltas menores mas a custo
maior
Cache de 2 Kbyte: miss rate = 15%, custo de hit = 2 ciclos, custo
de miss = 20 ciclos
Custo médio de acesso a memória= (0.85 * 2) + (0.15 * 20) = 4.7
ciclos
Cache de 4 Kbyte: miss rate = 6.5%, custo de hit = 3 ciclos, custo
de miss = 20 ciclos
Custo médio de acesso a memória = (0.935 * 3) + (0.065 * 20) =
4.105 ciclos (melhora)
Cache de 8 Kbyte: miss rate = 5.565%, custo de hit = 4 ciclos, custo
de miss = 20 ciclos
Custo médio de acesso a memória = (0.94435 * 4) + (0.05565 * 20)
= 4.8904 ciclos (pior)
17
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Introdução
Assim como na memória virtual o gerenciamento da cache
também tira proveito do conceito de concentração de referência;
Pequenos laços e sub-rotinas frequentemente referenciados e
que estejam integralmente localizados na cache
Frequência
de acesso
Espaço de endereçamento
18
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento da cache
Usar uma estratégia de substituição dos blocos;
Também contar com uma técnica para realizar o
mapeamento de blocos da memória principal para a
cache;
O gerenciador da cache deve controlar todas as
operações de leitura e escrita de memória
Se o bloco ao qual a palavra pertence está presente ou
não na cache
19
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento da cache (1)
Nas operações de leitura e escrita o gerenciador pode proceder
da seguinte forma:
Bloco presente na cache;
Operação de leitura (read) → cache é lida e o conteúdo entregue ao
processador;
Operação de escrita (write) → o gerenciador usa uma de suas
estratégias possíveis;
A memória principal e a cache são atualizadas simultaneamente
(store-through ou write-through)
A cache é atualizada – nesse caso a cache é marcada como
alterada (dirty) e posteriormente quando precisar ser substituída,
as palavras marcadas serão atualizadas na memória principal
(write-back)
20
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento da cache (2)
Bloco ausente na cache
Operação de leitura (read): todo o bloco contendo a palavra
desejada é lido da memória principal e o conteúdo do endereço
solicitado é entregue ao processador. Duas estratégias:
Tão logo a palavra desejada esteja disponível ela é
entregue ao processador (load-through);
O processador recebe a palavra só após a cache ser
totalmente atualizada com o novo bloco.
Operação de escrita (write): geralmente a memória principal é
atualizada diretamente sem que o bloco seja trazido para a
cache;
21
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento
Assemelha-se no gerenciamento da memória virtual já que exige
um mapeamento entre a memória principal e a posição da
cache;
Tipos de mapeamento da cache:
Mapeamento direto;
Mapeamento associativo;
Mapeamento bloco associativo.
Obedece a seguinte regra:
cache dividida em blocos de V palavras
memóriacachepodetermblocos
Cc
,sendoC c =capacidadedearmazenamento
v
memóriaprincipalkblocos
Cp
k=
,sendoC p =capacidadetotal,comk>m
v
m=
22
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Direto (1)
bloco 0
bloco 1
tag
bloco 0
bloco m-1
tag
bloco m
bloco m+1
bloco 1
m blocos
tag
bloco 2m-1
bloco 2m
bloco m-1
bloco k-2
endereço de memória
t bits
tag
b bits
bloco
w bits
palavra
bloco k-1
memória
k blocos
23
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Direto (2)
É simples mas pouco flexível;
Endereço de memória gerado pelo processador como composto
por 3 campos;
O algoritmo é trivial;
Um bloco sempre é colocado naquela posição fixa à qual está
destinado;
O bloco antigo que ocupava tal posição é perdido.
24
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Direto – Gerenciamento (1)
Quando um bloco passa da principal para a cache, o campo
bloco do endereço é usado para achar a posição do bloco na
cache e os bits de tag do endereço são armazenados no campo
tag associado aquela posição na cache;
Fica identificado qual dos 2t possíveis blocos de memória
principal que podem ser mapeados naquela posição, está
efetivamente ocupando aquela posição na cache;
Quando o processador gera um endereço, a cache e acessada
da seguinte forma:
O campo bloco do endereço é usado para achar a posição do bloco
na cache;
O campo tag daquele bloco na cache é comparado com o campo
de tag no endereço;
25
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Direto – Gerenciamento (2)
Se os campos tag forem iguais o bloco desejado está presente na
cache e a palavra é acessada através dos w bits de deslocamento
do campo palavra;
Se os campos tag não forem iguais, o bloco desejado não está
presente na cache e deve ser acessado na memória principal;
O acesso a palavra na memória principal é feito obviamente,
usando todos os bits do endereço (t+b+w).
26
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Associativo (1)
Problema do mapeamento direto → substituição dos blocos na
cache, que pode ocorrer mesmo estando a cache parcialmente
vazia;
Solução → qualquer bloco da memória principal ocupe qualquer
posição de bloco na cache;
Substituição só ocorre se tiver completamente ocupada;
Como qualquer bloco pode ocupar qualquer posição na cache, o
tag associado ao bloco deve ter todas as informações do bloco
naquela posição;
Forma de determinar a posição → pesquisar a memória e
comparar tags (pode ser demorada);
Solução → usar memória associativa de m-caminhos (m-way),
onde m é o número de blocos na cache.
27
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Associativo (2)
bloco 0
tag
bloco 0
tag
bloco i
bloco 1
m blocos
tag
bloco m-1
endereço de memória
t bits
tag
w bits
palavra
bloco k
memória
k blocos
28
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Grupo Associativo (1)
Aproveita vantagens das duas técnicas;
A memória cache é dividida em grupos (conjuntos)
Cada conjunto podendo alojar n blocos simultaneamente.
n blocos que o grupo pode alojar são sempre os mesmos blocos
pré-definidos na memória principal (mapeamento direto);
Diferença → Dentro do grupo o bloco pode ocupar qualquer
posição;
Cada bloco j da memória principal pode ser alocado para
qualquer n blocos de um dado grupo i
29
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Grupo Associativo (2)
Quando um bloco é trazido da MP para a cache, um campo é
usado para achar a posição do grupo na cache:
Localizado o grupo e tendo posição livre, a primeira livre
encontrada é ocupada;
Não havendo posição livre, um dos blocos que ocupam o grupo na
cache será substituído, usando uma dada estratégia de
substituição;
Determinada a posição que o novo bloco vai ocupar, os bits de tag
de endereço é associado a tag do grupo.
30
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapeamento Grupo Associativo (3)
Quando o processador gera um endereço, a cache é acessada
da seguinte forma:
Um campo conjunto do endereço é usado para achar a posição do
grupo na cache;
Os campos tag de todos os blocos daquele grupo na cache são
comparados associativamente com o campo de tag do endereço;
Se a comparação for bem sucedida, o bloco desejado está
presente na cache sua posição é identificada e a palavra é
acessada através dos bits de deslocamento;
Se não for, o bloco desejado não está presente na cache e deve
ser acessado na memória principal.
31
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e pontos importantes (1)
Memória Física:
Dinâmica (DRAM) → necessita de refresh periódico para não
perder as informações enquanto acionadas (8 a 32 ms);
Estática (SRAM) → retém as informações mesmo enquanto não
estão acionadas;
RAM perde informações nela armazenadas quando desligadas,
caso necessite que as informações armazenadas continuem nela
usa-se a ROM;
Variações PROM, EPROM, EEPROM, flash ROM.
Memória cache:
Possuem níveis, quanto mais afastada do processador maior o
nível (tipicamente tem dois níveis);
Velocidade típica de 5 a 10 ns;
32
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e pontos importantes (2)
A Memória Principal não é o único dispositivo de armazenamento
de um computador. Em função de características como tempo de
acesso, capacidade de armazenamento, custo, etc., podemos estabelecer
uma hierarquia de dispositivos de armazenamento em computadores.
33
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e pontos importantes (3)
Volatilidade → memórias podem ser do tipo volátil ou não volátil.
Memória não volátil é a que retém a informação armazenada quando
a energia elétrica é desligada.
Memória volátil é aquela que perde a informação armazenada
quando a energia elétrica desaparece (interrupção de energia
elétrica ou desligamento da chave ON/OFF do equipamento).
34
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e pontos importantes (4)
A memória cache opera em função de um princípio estatístico comprovado:
Em geral, os programas tendem a referenciar várias vezes pequenos trechos
de programas, como loops, sub-rotinas, funções e só tem sentido porque
programas executados linearmente, seqüencialmente, são raros.
Desta forma, algoritmos (chamados algoritmos de cache) podem controlar
qual parte do código ficará copiado na cache, a cada momento.
Quando a UCP busca um determinado trecho de código e o encontra na
cache, dá-se um "cache hit”, enquanto se o dado não estiver presente na
cache será necessário requisitar o mesmo à MP, acarretando atraso no
processamento e dá-se um "cache miss" ou "cache fault".
O índice de cache hit ou taxa de acerto da cache é geralmente acima de
90%.
35
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Storage
permanence
Sumário e pontos importantes (5)
Life of
product
Tens of
years
Battery
life (10
years)
Mask-programmed ROM
Ideal memory
OTP ROM
EPROM
EEPROM
FLASH
NVRAM
Nonvolatile
In-system
programmable
SRAM/DRAM
Near
zero
Write
ability
During
External
External
External
External
fabrication programmer, programmer, programmer
programmer
only
one time only
1,000s
OR in-system, OR in-system,
1,000s
block-oriented
of cycles
writes, 1,000s
of cycles
of cycles
In-system, fast
writes,
unlimited
cycles
Write ability and storage permanence of memories,
showing relative degrees along each axis (not to scale).
36
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Exercícios
Procure na literatura especializada informações sobre:
Burst Mode Cache;
Synchronous Burst SRAM;
Pipelined Burst SRAM
37
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Bibliografia
Arquitetura de Computadores Pessoais, Raul Weber, 2ª edição;
Arquitetura de Computadores, Andrew S. Tannembaum, 8ª
edição;
Fundamentos de Arquitetura de Computadores, Saib e Weber, 4ª
edição;
38
Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Download