Organização e Gerenciamento de Memória Hierarquia de Memória • Qualquer sistema computacional apresenta sua memória organizada de forma hierárquica. • Uma arquitetura Intel apresenta basicamente a seguinte organização: memória primária e memória secundária. Prof. Eduardo Appel Eng.MSc. [email protected] •Hierarquia de memória •Memória cache •Memória virtual •Segmentação de memória Arquitetura e Organização de Computadores CPU ¸ CACHE ¸ RAM 1 Arquitetura e Organização de Computadores 2 Memória Cache Memória Cache - Operação • É um tipo de memória de alta velocidade que fica posicionada entre o microprocessador e a memória RAM. • O tempo de acesso destas memórias geralmente é menor que 25ns. • O sistema de memória cache melhora o desempenho global dos sistemas de memória para dados que são acessados mais do que uma vez. • O tamanho da memória cache é determinado mais pela aplicação do que pelo microprocessador. • Quando o microprocessador acessa a memória, inicialmente o cache é testado para verificar se o dado está ali armazenado. • Se o dado estiver armazenado, é produzido um cache hit. • Logo a seguir o dado é buscado do cache sem gerar wait states. • Se o dado não estiver no cache, é produzido um cache miss. • Se ocorrer um miss, o dado é lido da RAM, armazenado no cache e lido para o microprocessador. • O miss, faz com que sejam gerados wait states para compatibilizar a velocidade do microprocessador com a memória. Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores 3 Memória Cache - Operação Memória Cache - Operação • Quando o microprocessador escreve na memória, ele também escreve no cache. • Esta escrita dupla gera wait states, mas é realizada assim para garantir que nas leituras futuras o dado já esteja armazenado no cache. • Esta operação de escrita em memória e no cache é denominada operação de escrita via cache. • Os dados são organizados em blocos de 2 a 16 bytes de tamanho em uma memória cache (até a arquitetura 486). • A cada ocorrência de miss, o microprocessador lê blocos de 2 a 16 bytes da memória RAM para a memória cache. Arquitetura e Organização de Computadores 4 • A busca de 16 bytes da memória RAM para a memória cache é denominada transferência de acesso (burst transfer). • O motivo da transferência desta forma é porque os programas são seqüênciais e porque um bloco deste tamanho garante a transferência dos próximos dados ou instruções usados pelo microprocessador. • Este método de preencher o cache é denominado (cache lookahead) 5 Arquitetura e Organização de Computadores 6 1 Memória Virtual Memória Virtual • Refere-se a sistemas em que o tamanho combinado das áreas de programa e dados pode exceder a memória física disponível. • Funcionamento básico: O Sistema Operacional mantém as partes do programa e dados atualmente usados na memória e salva o restante em disco até que seja necessário (operação de swap). • O controle deste armazenamento/busca é feito pela UGM (Unidade de Gerenciamento de Memória). • O que a UGM faz é converter os endereços lógicos aos quais o programa refere-se em endereços físicos que identificam os locais reais da memória. Arquitetura e Organização de Computadores • O que acontece se a informação não estiver disponível? • A UGM informa a ocorrência de um erro (chamado falta de página). Conseqüência: O Sistema Operacional toma o controle e carrega a área solicitada do disco para a memória. • Exemplo: analogia a uma loja 7 Memória Virtual - Vantagens • Existem dois métodos de implementar memória virtual: SEGMENTAÇÃO e PAGINAÇÃO. • Segmentação: este método divide o programa e os dados em unidades lógicas chamadas segmentos. • Paginação: o sistema operacional divide a memória em áreas de tamanho fixo, chamadas páginas. 9 Multitarefa - Considerações • Refere-se à execução de muitas tarefas ao mesmo tempo, dando a cada uma, uma fatia do tempo da CPU e suspendendo aquelas que precisam esperar por alguma tarefa de E/S ou evento externo. • Para rodar as tarefas de modo eficiente, o computador deve ser capaz de: • passar rapidamente de uma tarefa para outra. Isto requer salvar e carregar o estado de toda a máquina. • evitar que as tarefas interfiram umas com as outras, embora permitindo uma combinação eficiente. • resolver conflitos e operações de prioridade. • A característica multitarefa na arquitetura Intel surgiu com a CPU 80386. Esta arquitetura possui estruturas e instruções especiais para manter o estado da tarefa, trocar de tarefas e criar ambientes locais e globais. Arquitetura e Organização de Computadores 8 Memória Virtual - Implementação • Permite escrever programas que referem-se a grandes quantidades de dados; • O Sistema Operacional se encarrega dos detalhes de mover as informações entre a memória e o disco; • Ao programador a memória e o disco são uma unidade contínua; • Um mesmo programa pode rodar em muitos computadores; • Simplifica a implementação de sistemas multiusuário pois a UGM isola os usuários mantendo separado o espaço de endereçamento de cada um deles. Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores 11 Arquitetura e Organização de Computadores 10 Memória Linear x Memória Segmentada • Devido à natureza binária dos computadores digitais, um sistema com n linhas de endereços permite a referência de 2n elementos de memória. • Um modelo de memória linear é aquele que permite ao programador acessar a memória a partir do endereço 0 e continue até o endereço 2n -1. • A família Intel de processadores possui um modelo de programação de memória diferente. O espaço de endereços é dividido em porções ou segmentos. • O programa acessa os dados contidos nesses segmentos. Dentro de cada segmento o endereçamento é linear. • Em relação ao início do segmento o endereçamento é relativo. Arquitetura e Organização de Computadores 12 2 Segmentação de Memória - Estudo de caso 8086/8088 Segmentação de Memória - Funcionamento • O 8086/8088 utiliza um esquema denominado segmentação de memória para acessar 1Mbyte de memória com apenas 16 linhas de endereços. • Vantagens da segmentação: • apresenta vantagens no ambiente multiprogramação; • melhora a programação possibilitando um enfoque modular; • ajuda nos ambientes de multiprocessamento permitindo escrever módulos completamente realocáveis (processado em qualquer posição da memória) • Qualquer endereço interno na arquitetura 8086/8088 tem duas partes, cada uma das quais é uma porção de 16 bits. • Uma parte é denominada desvio (off-set) e a outra, endereço do parágrafo de segmento. • O desvio de 16 bits pode ser formado por diversas partes: Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores 13 • O desvio aponta para endereços dentro do parágrafo de segmento 14 Segmentação de Memória - Funcionamento Segmentação de Memória - Funcionamento • O endereço do parágrafo de segmento de 16 bits é armazenado em um dos quatro registradores de segmento (CS,SS,DS,ES). • O endereço efetivo de 20 bits é formado pela seguinte fórmula (em decimal): End. Efetivo= End. Parágrafo de Segmento * 16 + Desvio • Uma vez que 1610 = 1016 multiplicar por 16 desloca o número hexadecimal uma posição para esquerda. • Como um número hexadecimal é formado por 4 dígitos binários, o endereço resultante torna-se um número de 20 bits. Arquitetura e Organização de Computadores – um deslocamento(um número fixo) – uma base (armazenada em um registrador de base) – um índice (armazenado em um registrador indexado) 15 • O endereço do parágrafo de segmento apenas determina onde é que um segmento deve começar na memória. Ele não divide o segmento em parágrafos. • Vários endereços lógicos podem ser mapeados em um mesmo endereço físico. Isto é feito trocando-se o valor do endereço base no registrador de segmento e seu deslocamento correspondente. • Um endereço de segmento pode começar em qualquer múltiplo de 16, o que em aritmética hexadecimal representa 0H, 10H, 20H... • A fonte para o desvio (off-set) depende do tipo de referência à memória utilizado. Pode ser: BP, BX, SI, DI ou IP • O valor base sempre reside em um dos registros de segmento: CS, DS, ES e SS. Arquitetura e Organização de Computadores 16 3