Hierarquia de Memória – Parte 2

Propaganda
Hierarquia de Memória – Parte 2
Prof. André Luis M. Silva
e/msn:[email protected]
Na última aula
• Estudamos hierarquia de memória, focando
apenas a memória cache.
• Como é feito o mapeamento de endereços.
• Estudamos políticas para escrita e faltas em
escrita, algoritmos de substituição.
Hoje veremos
• Memória Virtual
Memória Virtual
• Uma técnica que usa a memória principal
como uma “ cache ” para armazenamento
secundário.
• Implementa a tradução do espaço de
endereçamento de um programa para os
endereços físicos.
• Atua na memória principal e secundária.
Memória Virtual
• Motivação:
– Permitir o compartilhamento seguro e eficiente da
memória entre vários programas.
– Remover os transtornos de programação de uma
quantidade pequena e limitada de memória
principal.
Memória Virtual
Endereços
virtuais
são mapeados em
endereços físicos ou
do disco.
Diferentes endereços
virtuais podem ser
mapeados em um
mesmo
endereço
físico
(permitir
compartilhamento de
dados).
Memória Virtual
• Algumas Características
• Os blocos de memórias virtuais são denominados
de página.
• Quando uma página não está presente na
memória principal dizemos que aconteceu uma
falta de página.
• Devido a enorme penalidade da falha, as páginas
devem ser bastante grandes (4 KB, por exemplo).
Memória Virtual
• Algumas características:
– LRU é bastante empregado e é comum tratar
falhas por software ao invés de hardware.
– Como
escrita
é
muito
onerosa,
uso
exclusivamente de Write-Back
– Na memória principal existe uma tabela que
mapeia endereços virtuais em endereços físicos.
Esta tabela é denominada de tabela de páginas.
Tabela de Página
Parte do campo de
endereço indica a linha da
tabela.
O campo offset do
endereço é concatenado
com o endereço físico da
tabela.
E o endereço
físico é obtido.
Bit de validade indica se a
página está na memória.
Tabela de Páginas
• Realizar acessos a memória principal para
traduzir endereços virtuais é muito custoso.
• Toda instrução ou dado necessário pelo
processador deve ser traduzido para
endereços físicos para finalmente ser
utilizado.
• Qual solução para minimizar este problema?
TLB
• TLB (translation lookaside buffer) é uma cache
que monitora os mapeamentos de endereços
recentemente usados para evitar um acesso à
tabela de páginas.
TLB
Bit de Modificação:
Indica se o dado pode ser
modificado.
Política de segurança do S.O.
Bit de Referência:
Indica se o dado foi
referenciado alguma
vez.
Primeiro verificamos se o
endereço virtual está
presente na TLB.
Se estiver, obtemos o
endreço
físico
e
o
utilizamos para localizar o
dado
na
memória
secundária.
Este esquema pode variar
a depender da hierarquia
de memória.
Problemas
• As velocidades do processador continuam a aumentar muito
rápido.
• Desafio de projeto: lidar com essa crescente disparidade.
• Prefetching, três ou mais níveis de cache, otimizações por software.
Download