Organização e Gerenciamento de Memória

Propaganda
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
Download