Baixe o app para aproveitar ainda mais
Prévia do material em texto
Victor Medeiros victor@deinfo.ufrpe.br victorwcm Infraestrutura de Hardware Hierarquia de Memória Victor MedeirosInfraestrutura de Hardware Introdução • Os programas exigem cada vez mais dos computadores uma capacidade de memória ilimitada e de acesso quase simultâneo. • Quanto maior o tamanho da memória (capacidade de armazenamento) mais lento será o acesso à mesma. • Memórias maiores ➔ memórias mais lentas • Memórias menores ➔ memórias mais rápidas 2 Victor MedeirosInfraestrutura de Hardware Introdução • Um programa não acessa todo o seu código e todos os seus dados de uma só vez com igual probabilidade; • Podemos utilizar memórias menores (mais rápidas) para armazenar as informações mais prováveis de serem utilizadas no dado intervalo de tempo; 3 Princípio da localidade Victor MedeirosInfraestrutura de Hardware Princípio da localidade • Estabelece que os programas acessam uma parte relativamente pequena do seu espaço de endereçamento em um instante qualquer; • Localidade temporal – se um item é referenciado, ele tende a ser referenciado novamente dentro de um espaço de tempo curto; • Localidade espacial – se um item é referenciado, itens próximos dele tendem a ser logo referenciados; 4 Victor MedeirosInfraestrutura de Hardware Princípio da localidade • Exemplos: • A maioria dos programas contém loops de modo que as instruções e os dados são acessados de forma repetitiva ➔ alto grau de localidade temporal • As instruções quase sempre são executadas sequencialmente ➔ alto grau de localidade espacial 5 Victor MedeirosInfraestrutura de Hardware Hierarquia de memória • Tiramos proveito do princípio da localidade implementando a memória de computador como uma hierarquia de memória. • Existem vários níveis de memória, cada um deles com tamanhos e velocidades diferentes. • As memórias mais rápidas são mais caras (maior custo por bit armazenado); • As memórias mais lentas são mais baratas; • Consequentemente, as memórias mais rápidas são menores que as mais lentas; 6 Victor MedeirosInfraestrutura de Hardware Hierarquia de memória 7 Victor MedeirosInfraestrutura de Hardware Hierarquia de memória 8 maior custo maior velocidade maior capacidade Victor MedeirosInfraestrutura de Hardware Tecnologia de memória • A memória principal é implementada a partir da tecnologia DRAM (memória dinâmica de acesso randômico) • Menor custo • Os níveis mais próximos do processador utilizam tecnologia SRAM (memória estática de acesso randômico) • Maior custo • O disco magnético (HD) é utilizado na implementação do nível mais baixo da hierarquia. • Mais lento e de maior capacidade 9 Victor MedeirosInfraestrutura de Hardware Hierarquia de memória "O objetivo de um sistema de memória hierárquico é apresentar ao usuário uma capacidade de memória próxima à disponibilizada pela tecnologia mais barata, e um tempo de acesso próximo à disponibilizada pela tecnologia mais cara”. 10 Victor MedeirosInfraestrutura de Hardware Hierarquia de memória • O nível de memória mais próximo do processador é um subconjunto de qualquer dos níveis mais afastados. • Os dados são copiados entre dois níveis adjacentes. • A unidade mínima de informação é chamada de bloco. 11 processador nível superior nível inferior Victor MedeirosInfraestrutura de Hardware Hierarquia de memória • Se a informação solicitada pelo processador estiver no nível superior de hierarquia ocorre um acerto. • Se a informação não puder ser encontrada no nível superior, a tentativa de encontrá-la gera uma falta. 12 processador nível superior nível inferior Victor MedeirosInfraestrutura de Hardware Hierarquia de memória • Quando ocorre uma falta, o nível mais baixo da hierarquia é acessado para que seja possível recuperar o bloco com a informação solicitada pelo processador. 13 processador nível superior nível inferior Victor MedeirosInfraestrutura de Hardware Hierarquia de memória • Taxa de acertos corresponde à fração dos acessos na memória encontrados no nível superior. • Maiores taxas de acertos implicam em melhor performance da hierarquia • Taxa de faltas é a fração dos acessos à memória não encontrados no nível superior. • Tempo de acerto é o tempo necessário para acessar o nível superior da hierarquia. • Penalidade por falta é o tempo necessário para substituir um dos blocos do nível superior por um bloco do nível inferior, contendo a informação desejada. 14 Victor MedeirosInfraestrutura de Hardware Memória cache • Cache é o nível da hierarquia de memória situado entre a memória principal e o processador. • As palavras de memória usadas com mais freqüência são mantidas na cache 15 processador cache memória principal Victor MedeirosInfraestrutura de Hardware Tratamento de faltas • A unidade de controle é responsável pela detecção e processamento das faltas na cache. • Quando ocorre uma falta o processador é parado, e o conteúdo de seus registradores é congelado. • Um controlador deve tratar as faltas geradas nos acessos à cache, buscando na memória principal a informação desejada. • Uma vez que o dado tenha sido obtido, o processamento é reiniciado. 16 Victor MedeirosInfraestrutura de Hardware Localidade espacial • Para tirar proveito da localidade espacial, precisamos ter uma cache com um bloco que seja maior que uma palavra. • Sempre que houver uma falta, devemos buscar um bloco (várias palavras adjacentes), e que por conta disso tem grande possibilidade de serem utilizadas em breve. • O aumento no tamanho do bloco justifica-se pela exploração da localidade espacial e pelo consequente aumento da performance. 17 Victor MedeirosInfraestrutura de Hardware Memória virtual • A memória principal pode funcionar como uma cache para a memória secundária, usualmente implementada em disco magnético. Esta técnica é conhecida pelo nome de memória virtual. • Considerando que vários programas estão rodando ao mesmo tempo, a memória principal precisa conter somente a parte ativa de vários programas, assim como a cache, que só contém a parte ativa de um programa. • Cada programa contém o seu espaço de endereçamento, e não deve acessar o espaço de outro programa. 18 Victor MedeirosInfraestrutura de Hardware Memória virtual 19 espaço de endereçamento do programa C espaço de endereçamento do programa B espaço de endereçamento do programa A parte ativa do programa C parte ativa do programa B parte ativa do programa A Memória principal HD Victor MedeirosInfraestrutura de Hardware Memória virtual • O uso da técnica de memória virtual permite que um programa venha a exceder a quantidade total de memória disponível para sua execução. • A técnica de memória virtual gerencia automaticamente os dois níveis da hierarquia de memória, representados pela memória principal e pela memória secundária. 20 Victor MedeirosInfraestrutura de Hardware Memória virtual • Na memória virtual um bloco de tamanho fixo é chamado de página. • Uma falha no acesso à memória virtual é chamada falta de página. • Se estivermos usando a memória virtual, o processador gera um endereço virtual, que é traduzido para endereço real. • O endereço real (ou, endereço físico) pode ser usado para acessar a memória 21 Victor MedeirosInfraestrutura de Hardware Memória virtual 22 espaço de endereçamento do programa C espaço de endereçamento do programa B espaço de endereçamento do programa A parte ativa do programa C parte ativado programa B parte ativa do programa A Memória principal HD processador endereço virtual tradutor de endereço endereço real Victor MedeirosInfraestrutura de Hardware Tradução de endereço 23 endereço virtual 31 30 29 28…………………………….………….. 15 14 13 12 11 10 9 8 …………….. 3 2 1 0 número da página virtual deslocamento na página tradução endereço físico 29 28…………………………….………….. 15 14 13 12 11 10 9 8 …………….. 3 2 1 0 número da página física deslocamento na página Victor MedeirosInfraestrutura de Hardware Tradução de endereço • Exemplo: Suponha que temos uma memória secundária (HD) com capacidade de armazenar 2M páginas de tamanho 4k, e temos também, uma memória principal que pode armazenar 256K páginas. Qual seria a tradução do seguinte endereço virtual para o endereço físico? 24 endereço virtual 322 K 542 número da página virtual deslocamento na página Victor MedeirosInfraestrutura de Hardware Tradução de endereço • Exemplo: 25 endereço virtual 322 K 542 número da página virtual deslocamento na página Deveremos descobrir que posição a página 322k ocupa na memória principal: Tamanho da memória principal = 256K páginas Endereço da página no HD = 322K Endereço da página na memória principal = (Endereço da página no HD) módulo(Tamanho da memória principal ) Endereço da página na memória principal = (322K)módulo(256K) = 66K Victor MedeirosInfraestrutura de Hardware Tradução de endereço • Exemplo: 26 endereço virtual 322 K 542 tradução endereço físico 66 K 542 Victor MedeirosInfraestrutura de Hardware Tradução de endereço • Exemplo: 27 espaço de endereçamento do programa C espaço de endereçamento do programa B espaço de endereçamento do programa A parte ativa do programa C parte ativa do programa B parte ativa do programa A Memória principal HD processador endereço virtual tradutor de endereço endereço real 322 K 66 K Victor MedeirosInfraestrutura de Hardware Exercício • Traduza os endereços virtuais em endereços reais. Considere que o tamanho da memória secundária é de 1M palavras e o tamanho da memória principal é de 256K palavras. 28 endereço virtual endereço físico 532 K 122 65 K 56
Compartilhar