Hierarquia de Memória Parte 1 - Arquitetura de Computadores UFS

Propaganda
Hierarquia de Memória
Prof. André Luis M. Silva
e/msn:[email protected]
Agenda
•
•
•
•
•
•
•
•
•
•
Introdução
Tipos de Memória
Princípio da Localidade
Memória Cache
Técnicas de Mapeamento
Opções de Projeto de Memória
Política de Substituição.
Política de Falta.
Política de Falta em Escrita.
Cache Multinível.
Introdução
“O ideal seria ter uma capacidade de memória
infinitamente grande a ponto de qualquer
word específica estar imediatamente
disponível...
Somos ... Forçados a reconhecer a possibilidade
de construir uma hierarquia de memórias,
cada uma com capacidade maior do que a
anterior, mas com acessibilidade menos
rápida.”
A.W. Burks, H.H. Goldstine e J. Von Neumman
Tipos de Memória
• SRAM (Static RAM)
– Muito rápida, mas ocupa mais espaço que a
DRAM.
– Tecnologia utilizada na fabriação das memórias
caches.
• DRAM (Dynamic Ram)
– Tecnologia utilizada na fabricação das memórias
principais.
– Muito pequena, porém mais lenta que a SRAM
(fator de 5 a 10 vezes mais lenta).
Trabalho sobre memória
• Para o banco do conhecimento:
– OTP-ROM, EPROM, EEPROM
– SRAM, DRAM, PSRAM, NVRAM
Tipos de Memória
Tecnologia da memória
Tempo de acesso típico
US$ por GB em 2004
SRAM
0,5 a 5 ns
4000 a 10.000
DRAM
50 a 70 ns
100 a 200
Disco Magnético
5.000.000 a 20.000.000 ns.
0,50 a 2
Alguns Conceitos
• Taxa de Falha
– A proporção dos acessos à memória não encontrados em um nível da
hierarquia de memória.
• Taxa de Acertos
– A proporção dos acessos à memória encontrados em uma cache.
• Tempo de Acerto
– O tempo necessário para acessar um nível da hierarquia de memória,
incluindo o tempo necessário para determinar se o acesso é um acerto
ou uma falha.
• Penalidade de Falha
– O tempo necessário para buscar um bloco de um nível inferior para
um nível superior da hierarquia de memória, incluindo o tempo para
acessar o bloco e transmiti-lo de um nível para outro e inseri-lo no
nível que experimentou a falha.
Princípio da Localidade
• Programas acessam uma parte relativamente
pequena do seu espaço de endereçamento
em qualquer instante do tempo.
– Dividi-se em:
• Localidade Temporal
• Localidade Espacial
Princípio da Localidade
• Localidade Temporal
– Se um item é referenciado, ele tenderá ser
referenciado novamente em breve.
Princípio da Localidade
• Localidade Espacial
– Se um item é referenciado, os itens cujos
endereços estão próximos tenderão a ser
referenciados em breve.
Hierarquia de Memória
registradores
Memória cache
Memória
Principal
Memória
Secundária
Memórias Cache
• Representa o nível mais alto do projeto de
hierarquia de memórias.
• A arquitetura que faz uso de caches unificados
é denominada de arquitetura de Princeton.
• A arquitetura que faz uso de caches dedicada
para dado e para instrução é denominada de
arquitetura de Harvard.
Memória Cache
• Como sabemos se um item de dado está na
cache?
• Se estiver, como encontrá-lo?
• Para isso empregamos algumas técnicas de
mapeamento:
– Mapeamento Direto.
– Associativo por conjunto.
– Totalmente associativo.
Técnicas de Mapeamento
• Mapeamento Direto
– Cada local da memória é mapeado exatamente
para um local da cache.
Mapeamento Direto
Tag: Campo utilizado
para localizar os
dados
Bit
de
validade:
Campo nas tabelas
que indica se o dado
é válido.
Índice: Indica a linha
da cache.
Armazenar uma palavra por linha é
uma boa técnica?
Mapeamento Direto
Explorando
espacial.
localidade
Cada linha da cache é
conhecida como bloco.
Podemos desenvolver caches
que armazenem mais de uma
palavra por linha.
Opções de Projeto de Memória
Trabalha com requisições de
uma única palavra.
Abordagem simples, barata
porém mais lenta.
Opções de Projeto de Memória
Trabalha com requisições por
blocos.
Memória e barramento possuem
tamanho do bloco.
Possui melhor
desempenho, porém
mais caro.
Opções de Projeto de Memória
Trabalha com requisições por
blocos.
Vários bancos de memória
Embora trabalhe com
blocos, o barramento
trabalha com palavras.
Mais barata que a solução
anterior,
possui
desempenho
intermediário.
Mapeamento Totalmente Associativo
• Os blocos podem ser inseridos em qualquer
lugar da cache.
• Favorece a taxa de acerto.
• Implementação complexa.
Mapeamento Totalmente Associativo
Mapeamento Associativo por
Conjunto
• Mescla as duas soluções apresentada
anteriormente.
• Um bloco pode ser inserido em um conjunto
restrito de lugares.
• Um bloco é mapeado primeiro em um
conjunto e depois o bloco pode ser inserido
em qualquer lugar dentro desse conjunto.
Mapeamento Associativo por
Conjunto
Mapeamento Associativo por
Conjunto
Políticas de Substituição
• Em caches totalmente associativa e
associativas por conjunto, um mesmo
endereço pode ser escrito em mais de uma
localização.
• As políticas de substituição definem qual o
lugar onde o dado será escrito.
Política de Substituição
• As políticas mais utilizadas são:
– Randômica
• Escolhe o bloco a ser substituído de maneira aleatória.
– LRU
• Substitui o bloco menos usado recentemente.
– FIFO
• Substitui o elemento mais antigo.
Tipos de Falta
• Falta por Capacidade
– Faltas que acontecem devido a cache estar preenchida
e não poder inserir novos valores.
• Falta Compulsória
– Faltas que acontecem quando a linha da cache ainda
não possui valores.
• Faltas por conflito
– Faltas que acontecem entre os diferentes dados que
são mapeados para uma mesma localização na cache.
Políticas de Escrita
• Forma como as memórias caches trabalham
quando o processador solicita uma escrita de
dados.
– Write Back
• As informações são gravadas no bloco da cache. O
bloco da cache será gravado na memória principal
somente quando for substituído.
– Write Through
• As informações são gravados no bloco da cache e no
bloco da memória de nível inferior.
Política para falta em Escrita
• Forma como as memórias caches trabalham
quando o processador solicita uma escrita e o
endereço a ser escrito não se encontra na
cache.
– Write Allocate
• O bloco é alocado em uma falta de escrita
– Write Around
• O bloco não é alocado em uma falta de escrita.
Somente a memória principal é atualizada.
Cache Multinível
• Podemos acrescentar um segundo nível na
cache:
– Normalmente o cache primário está no mesmo
chip do processador e o secundário pode estar no
mesmo chip ou em um chip separado.
– Em geral são maiores que as caches de primeiro
nível e são usadas quando acontece alguma falta
na cache de nível mais alto.
– Ajuda a diminuir a penalidade de falhas.
Próxima aula
• Avaliando Desempenho.
• Memória Virtual.
• Técnicas para melhora de desempenho da
memória cache.
Referências
• Organização e Projeto de Computadores
Seções 7.1 a 7.3
• Material adicional da página
– Até Seção 2.3.
Download