Arquitetura de Computadores - siep.ifpe.edu.brsiep.ifpe.edu.br/anderson/arquivos/arqt_aula7_memoria.pdf · Anderson Moreira. [email protected], Arquitetura de Computadores.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1Anderson Moreira. [email protected], Arquitetura de Computadores. 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;
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.
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!
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:
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).
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
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!)
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.
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.
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.
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.
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).
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:
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;