arquitetura de computadores -...
TRANSCRIPT
1Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Arquitetura de Computadores
Organização de Memória
Anderson L. S. [email protected]
© Copyright 2010, IFPE.Creative Commons BY-SA 3.0 licenseLatest update: 12 de Abr de 2011, Document sources, updates:http://dase.ifpe.edu.br/~alsm
2Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Agenda
Hierarquia de memória;Gerenciamento de memória virtual;Memória Virtual e memória secundaria;Medidas de desempenho;Algoritmos de alocação;Estrutura de memória virtual;
Segmentação e Paginação;Exercícios.
3Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Hierarquia de Memória
A grande maioria dos sistemas tem memórias rápidas e lentas ao mesmo tempo:
O sistema pode ser:Extremamente caro; Insuportavelmente lento;
Um sistema de computação pode ser suprido por uma hierarquia de memórias:
Mais rápidas mais próximas ao processador (menor capacidade);Mais lentas usadas para armazenar dados e instruções que não estão sendo utilizadas (maior quantidade)
Divisão de memórias em hierarquias cria um sistema de desempeno próximo ao da memória mais rápida e custo por byte próximo ao da memória de menor custo.
4Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Hierarquia de Memória
Sistemas computacionais só tem ganhos de performance se as memórias apresentarem velocidade, preços e tamanhos diferentes.
ProcessadorProcessador MemóriaPrincipal
MemóriaPrincipal
MemóriaSecundáriaMemória
Secundária
ProcessadorProcessador CacheCache MemóriaPrincipal
MemóriaPrincipal Memória
SecundáriaMemória
Secundária
Memória de 2 níveis
Memória de 3 níveis
5Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Relação de Custo X Velocidade X Tamanho
6Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Hierarquia de Memória
7Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Observações
Memória Secundária: Geralmente memória de disco magnético;Memória Principal e Cache: Geralmente memórias monolíticas (semicondutoras);
Até pouco tempo atrás esse tipo de memória eram compostas por núcleos magnéticas de ferrite.
8Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento
Para que o processador disponha da informação certa no momento necessário, o sistema deve ser suprido de mecanismos que mantenham a organização;Esses mecanismos são:
Gerenciadores de memória cache;Desenvolvido em hardware;
Gerenciadores de memória virtual;Suportado pelo hardware mas implementado em software;
9Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento – Memória Virtual
Usado quando a capacidade de endereçamento de um processador não corresponde a quantidade de memória principal instalada;Os endereços que o processador gera não são endereços reais mas ponteiros para uma abstração de memória;
Atenção!Abstrações não armazenam dados! Endereços gerados devem ser mapeados na memória física disponível.
O espaço de endereçamento lógico de um computador pode ser:Menor;Igual;Maior que a memória física instalada!
10Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento – Memória Virtual
0x00000000
0xFFFFFFFF
Physical address space
RAM 0
RAM 1
Flash
I/O memory 1
I/O memory 2
I/O memory 3
MMU
MemoryManagement
Unit
CPU
Virtual address spaces0xFFFFFFFFF
0x00000000
Kernel0xFFFFFFFF
0x00000000
Process1
0xFFFFFFFF
0x00000000
Process2All the processes have their own virtual address space, and run as if they had access to the whole address space.
0xC0000000
0xC0000000Kernel
Fonte: FreeElectrons – France, 2009
11Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento – Memória Virtual
1º Caso (menor) → O exemplo de segmento de memória do 8086. Endereçar 64 KB em 1 MB:
Escolhe uma janela (segmento) na memória principal e usa o endereço lógico como um ponteiro para essa janela;
2º Caso (igual) → Trivial. O endereço lógico é igual a memória física disponível, portanto a alocação é direta;3º Caso (maior) → Mapeamento é feito, escolhendo porções ou blocos de memória virtual e espelhando-a na memória física disponível:
Observar figura a seguir.
12Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Gerenciamento – Memória Virtual
processador
memória virtual
mapeador
memória física
endereçovirtual
endereçofísico
13Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Memória Virtual e Memória Secundária
Memória virtual está muito dependente da memória secundária;A memória secundária armazena uma imagem completa da memória virtual.
Pergunta: “Se a memória secundária tem uma imagem completa da memória virtual, por que não esquece a memória principal e trabalha diretamente com a memória secundária?”
14Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Memória Virtual e Memória Secundária
Solução:Computador enxergar tudo como uma grande memória virtual.
Enquanto as porções de memória virtual sendo usadas forem encontradas na memória principal, não existe problema. Porém se o processador precisar de mais dados do que a encontrada na memória física (usa o mecanismo chamado de swap out).
ProcessadorProcessador MemóriaPrincipal
MemóriaPrincipal
MemóriaSecundáriaMemória
Secundária
GerenciadorMemóriaVirtual
GerenciadorMemóriaVirtual
15Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Memória Virtual e Memória Secundária
Sistema funciona bem se a grande maioria dos dados estiverem disponíveis e pouquíssimos acessos forem feitos na memória secundária;Caso isso precise ser refeito usa-se o locality of reference (concentração de referências):
Referências sucessivas e frequentes a localização restritas
16Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Concentração de referências
Programas tendem a concentrar-se em pequenas regiões dentro do espaço de endereçamento disponível a cada intervalo de tempo.
Dessa forma o número de acessos a memória principal é muito maior que na memória secundária
Frequênciade acesso
Espaço de endereçamento
17Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Concentração de referências
Razões para esse mecanismo existir:Programas são escritos de forma sequencial, e as próximas instruções a serem executadas estão normalmente na vizinhança da instrução corrente;Programas apresentam laços, que geralmente são curtos e suas instruções são executadas um grande número de vezes;Dados também são organizados sequencialmente (vetores e tabelas);Variáveis de controle do programa são geralmente em pequeno número e acessadas frequentemente.
Essa técnica também justifica-se pois usa o seguinte método de atualização caso um dado ou instrução não é encontrado na memória principal: aloca um novo bloco da secundária para principal (grande chances de encontrar!)
18Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Concentração de referências
Existe um problema:
Se toda a memória principal estiver ocupada, onde colocar o novo bloco?
19Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Medidas de Desempenho
Parâmetro mais comuns para medir desempenho em VM:Custo médio por bit de armazenamento: obtido somando o custo da memória principal e secundária usando imagem da memória virtual e dividindo pelo total de número de bits;Taxa de acertos (hit ratio): probabilidade que um endereço lógico gerado pelo processador refira-se a informação armazenada na memória principal;Tempo de acesso médio: altamente dependente da taxa de acertos, quanto maior a taxa de acertos mais o tempo de acesso a memória virtual aproxima-se do tempo de acesso à memória principal;Utilização de memória: como a memória principal é muito menor que a virtual é essencial que ela seja bem utilizada, ou seja, não deve apresentar espaços vazios ou blocos inúteis.
20Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Blocos e movimentação de blocos (swapping)
Problemas envolvidos na movimentação de blocos em sistemas de VM:
Quando os blocos devem ser movimentados?Onde colocar um novo bloco transferido para a memória principal?Qual o tamanho ideal de um bloco?
21Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Blocos e movimentação de blocos (swapping)
Quando?Geralmente por demanda;Inicia-se a movimentação de blocos sempre que um dado requerido não estiver disponível na memória principal;
Onde?Definido pela política de alocação;Alocação estática;Alocação dinâmica;
Preemptivos;Não preemptivos;
Quanto?Depende da arquitetura e do sistema de memória.
22Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Algoritmos de alocação dinâmica
Alocação preemptiva:Realocando blocos ocupados para novas posições;Blocos já alocados na memória principal podem ser deslocados para abrirem um espaço suficientemente grande para abrigar um novo;Uma ou mais regiões ocupadas pode se tornar disponível, deslocando os blocos que a ocupam.A estratégia conta com alocação de dirty blocks para a memória secundária e de clean blocks para a principal.
23Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Algoritmos de alocação dinâmicaAlocação não-preemptivas:
Alocação pode ser feita por blocos de tamanho fixo, pesquisando um espaço (page) na memória livre e assinala-a assim que encontra;Outras técnicas são a best fit e a first fit.
Compactação de memória (garbage collection)Alocar os blocos na memória principal de forma a não ficar com espaços vazios entre os blocos e geralmente nas extremidades da memória;Desvantagem: muito tempo na movimentação dos blocos de um lado a outro da memória.
Substituição de blocos:Usa a replacement policy, em que maximiza a taxa de acertos de um determinado dado na memória;Quando não encontra um dado na memória aparece o conhecido memory fault.
24Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Estrutura de memória virtual
Endereço lógicode bloco deslocamento Endereço físico
de bloco deslocamento
Reg base do mapa
MAPA DE MEMÓRIA ENDEREÇO DO BLOCOSE A PÁGINA ESTÁPRESENTE
Ponteiro paramemória secundáriase a página não estápresente
Endereço do blocoou ponteiro
Bits de controle
endereço virtual endereço físico
25Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Mapa de memória
É essencial para alocação de blocos na VM para a física;Pode ser implementado em:
Registradores de alta velocidade;Memória especial;Memória principal;Ou combinação de todas.
Informações contidas:Lista do espaço ocupado;Lista do espaço livre;Diretória da memória secundária.
26Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Segmentos e páginas
Blocos de memórias podem ser organizados das duas maneiras;Segmentos são blocos de palavras sequenciais logicamente relacionados (subrotinas, pilha, matriz, etc...). Possuem tamanho variável e possui alto coesão;Página é um bloco de palavras de tamanho fixo sem respeitar coesão lógica alguma;Para algoritmos de alocação e substituição a única diferença relevante entre os dois modelos é relacionado ao tamanho que pode ser fixo ou variável.
27Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Segmentação (1)
Um programa é visto como uma coleção de segmentos e suas ligações;Por possuir coesão lógica é interesse do sistema manter todo um segmento na memória principal;O mapa de memória que assinala endereços físicos na memória principal aos segmentos é chamado de tabela de segmentos;Os elementos dessa tabela:
Identificação do segmento;Bit de presença P;
P=1 se o segmento está na memória principal;P=0 se o segmento não está presente.
Tamanho do segmento;
28Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Segmentação (2)
Campo de endereço;Se P=1 contém o endereço inicial na memória principal;Se P=0 contém o endereço do segmento a memória secundária;
Controle
29Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Paginação (1)Associação das páginas a locais na memória chamados de frames;Principal vantagem é poder assinalar qualquer página a um frame sem ter necessidade de procurar um espaço apropriado;O mapa de memória é chamado de tabela de páginas;Elementos;
Identificação da página;Bit de presença P;
P=1 se a página está na memória principal;P=0 se a página não está presente.
Campo de endereçoSe P=1 contém a identificação do frame ocupado;Se P=0 contém o endereço da página na memória secundária.
Controle
30Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Paginação (2)
Uma tabela de páginas não contém a identificação do tamanho;A principal desvantagem da paginação:
Não respeitam a coesão lógica dos programas e suas fronteiras;
Principal vantagem;Fácil de gerenciamento e implementação.
Mas afinal qual o melhor modelo?
Segmentação ou paginação?
31Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e Pontos Importantes (1)
A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária. Necessidade de um mecanismo.
Célula: é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições.Cada célula é composta de um determinado número de bits. Todas as células de um dado computador têm o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits.
32Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e Pontos Importantes (2)
Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula.Endereço: é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço.
33Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Sumário e Pontos Importantes (3)
Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes.OBS.: Uma célula não significa o mesmo que uma palavra; uma célula não necessariamente contém uma palavra.
Palavra: é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. Computadores comerciais (tais como por exemplo, os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits, porém sua estrutura de memória tem células de 16 bits.
34Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.
T = N x MT = capacidade da memória em bitsN = nº de endereços (como vimos anteriormente, N=2x sendo x = nº de bits do
endereço)M = nº de bits de cada célula
Para encontrar a capacidade em bytesEncontrar a capacidade em bits e depois multiplicar por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1).
35Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Exercícios (1)
Faça um comparativo dos dois modelos de alocação de blocos (segmentação e paginação) levando em consideração:
Fragmentação externa;Fragmentação interna;
Procure informações referentes a Segmentação paginada.
36Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Exercícios (2)
1) Numa MP com 1 kbyte de capacidade, onde cada célula tem 8 bits:a) quantas células tem a MP?b) quantos bits são necessários para representar um endereço de memória?
2) Um computador endereça 1k células de 16 bits cada uma. Pede-se:a) sua capacidade de memória;b) o maior endereço que o computador pode endereçar;
3) A memória de um computador tem capacidade de armazenar 216 bits e possui um barramento de dados de 16 bits. Pede-se:
a) o tamanho da célula de memória;
37Anderson Moreira. [email protected], Arquitetura de Computadores. http//dase.ifpe.edu.br/~alsm
Bibliografia
Arquitetura de Computadores Pessoais, Raul Weber, 2ª edição;Arquitetura de Computadores, Andrew S. Tannembaum, 8ª edição;Fundamentos de Arquitetura de Computadores, Saib e Weber, 4ª edição;