Prévia do material em texto
P a g e | 1 Bacharelando Em Sistema De Informação Jean Carlos Penas MEMÓRIAS Visão Geral Do Sistema De Memória Do Computador SERRA 2014 P a g e | 2 MEMÓRIAS Visão Geral Do Sistema De Memória Do Computador Jean Carlos Penas SERRA 2014 P a g e | 3 RESUMO Na visão geral do sistema de memória do computador discutimos sobre a hierarquia de memória que abrange todos os tipos de memórias em função de três aspectos: velocidade, capacidade e custo. Além disso, explicamos a respeito dos princípios que mantém os dados nas memórias cache, evitando assim que a memória principal que é um meio mais lento seja acessada mais vezes e mencionamos também alguns conceitos relacionados a organização da memória. Se tratando de memórias, foram extraidos informações a respeito das memórias externas ou secundárias como disco magnético ou hd, ou ainda chamado de disco rígido e por último estudamos a respeito do sistema RAID. Tal sistema é composto por 7 tipos de raids que atendem diversas pecualiaridades como por exemplo, confiabilidade e alta disponibilidade de dados. ABSTRACT Overview of the computer's system memory discussed the memory hierarchy which covers all kinds of memories in terms of three aspects: speed, capacity and cost. Furthermore, we explain about the principles that keeps the data in cache memories, thus preventing the main memory that is slower medium is accessed more often and also mentioned some concepts related to memory organization. It comes to memories, were extracted information about the external or secondary memories as magnetic disc or hd, or called hard and finally we study about the RAID system. This system consists of 7 types of raids that meet various peculiarity such as high reliability and data availability. P a g e | 4 ILUSTRAÇÕES Figura 1 - Organização Da Memória. ............................................................................... 7 Figura 3 - Acesso sequencial ............................................................................................ 8 Figura 2 – O método de acesso do hd é direto.................................................................. 8 Figura 4 - Memórias Principais possuem o método de acesso aleatório. ......................... 8 Figura 5 - Acesso aleatório ............................................................................................... 8 Figura 6 - Memórias cache podem empregar o método associativo ou aleatório. ........... 9 Figura 7 - Hierarquia De Memórias. ................................................................................ 9 Figura 8 - Triângulo Envolvendo custo, velocidade e capacidade. ................................ 10 Figura 9 - Busca da Palavra Entre o Processador , Cache, Memória. ............................ 10 P a g e | 5 SUMÁRIO INTRODUÇÃO .............................................................................................................. 6 MÉTODOS DE ACESSO .............................................................................................. 8 HIERARQUIA DE MEMÓRIA ................................................................................... 9 PRINCÍPIOS DA MEMÓRIA CACHE ..................................................................... 10 ALGORITMOS DE SUBSTITUIÇÃO ...................................................................... 11 CONCLUSÃO ............................................................................................................... 12 REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 14 P a g e | 6 INTRODUÇÃO Tudo o que somos e o que fazemos faz parte do ambiente em que estamos habituados, isso inclui as diversas soluções que atribuimos a diversos tipos de problemas do nosso dia a dia. Todas essas soluções foram alcançadas através de observações associadas a elementos vivos ou não-vivos da natureza, que dada as suas propriedades são combinadas com a finalidade de resolver problemas. Então tudo o que sabemos hoje foi extraído através de observações, conjecturas e teoremas em função da natureza que nos cerca. A partir disto segue-se a definição de um conceito que chamamos de memória. O que seria memória? Segundo o wikipédia, memória é a capacidade de adquirir, armazenar e recuperar informações disponíveis, seja internamente no cérebro ou externamente por meio de dispositivos artificiais. Só que neste caso, a memória é definida em um contexto diferente do que vamos lhe dar. A idéia da memória envolvendo computadores nasceu em 1946, com um cientista húngaro chamado John Von Neumann, ele trazia como proposta um meio de armazenamento onde pudesse armazenar instruções e programas para que pudessem ser acessados e alterados quando necessário. No mesmo ano, o professor de matemática Neumann publica um trabalho intitulado como Electronic Discrete Variable Automatic Computer (EDVAC), este relatório traz de forma detalhada a organização do sistema de computação em quatro áreas: Unidade de Controle, Unidade Lógica e Aritmética e um conjunto de dispositivos de entrada e saída. Este é o modelo de computador que estamos habituados atualmente. Ele é chamado de Arquitetura De Von Neumann. O sistema de memória traz consigo propriedades bem relavantes como a localização da memória que indica se a memória é interna ou externa ao computador, quando é interna normalmente está associada a memória principal, quando externa geralmente está ligada as memórias secundárias, além disso, o processador mais precisamente a ULA ( Unidade Lógica e Aritmética) possui a sua própria memória local na forma de registradores. Outro tipo de memória interna é a cache, já as memórias externas consistem em dispositivos de armazenamento periféricos, como discos e fitas que são acessíveis pelo processador através de controladores de E/S. Toda memória tem como propriedade principal a capacidade. Na memória interna isto é expresso em termos de byte (1 byte = 8 bits) ou palavras. Os tamanhos comuns das palavras são de 8, 16 e 32 bits. A capacidade da memória externa normalmente é expressa em função de bytes. Na memória interna existe uma quantidade X de linhas elétricas para dentro e para fora do módulo de memória, elas representam a unidade de transferência, além disso, esse número linhas elétricas podem ser iguais ao tamanho da palavra, mas normalmente é maior, como 64, 128 e 256 bytes. P a g e | 7 Figura 1 - Organização Da Memória. Neste contexto existem três conceitos relacionados a memória interna. O primeiro é a Palavra, trata-se de uma unidade natural de organização da memória, o tamanho da palavra normalmente é igual ao número de bits usados para representar um inteiro e definem também o tamanho da instrução. Mas existem memórias, que de acordo com a sua organização podem trabalhar com palavras de 64 bits, mas usa a representação de inteiros com 46 bits. A arquitetura intel x86 possui uma grande variedade de tamanhos de instrução, expressos como múltiplos de bytes e trabalha com palavra cujo tamanho é de 32 bits. O segundo conceito são as unidades endereçáveis, em alguns sistemas, a unidade endereçávelé a palavra, porém, muitos sistemas permitem o endereçamento no nível de byte. De qualquer forma, o relacionamento entre o tamanho em bits A de um endereço e o número de N de unidades endereçáveis é = N. O último conceito é a unidade de transferência, para a memória principal, este é o número de bits lidos ou escritos na memória de uma só vez. A unidade transferência não precisa ser igual a uma palavra ou uma unidade endereçável. Para a memória externa, os dados normalmente são transferidos em unidades muito maiores que uma palavra e estas são chamadas de blocos. P a g e | 8 Figura 2 – O método de acesso do hd é direto MÉTODOS DE ACESSO Outro tema essencial que será discutido neste projeto são os métodos de acesso das unidades de dados, que inclui o acesso sequencial, direto, aleatório e associativo. O primeiro método de acesso acontece em um ambiente de memória organizada em unidades de dados chamadas de registros, o acesso é feito em uma sequência linear e o dado de endereçamento é armazenado para separar registros e auxiliar no processo de recuperação de dados. Existe um mecanismo compartilhado de leitura e escrita e este precisa ser movido do seu local atual para o local desejado, passando e rejeitando cada registro intermediário, desta forma o tempo para acessar um registro qualquer é altamente variável. Nesta categoria de acesso classificam-se as unidades de fita dat ou magnética. Figura 3 - Acesso sequencial O segundo método de acesso é semelhante ao acesso sequêncial ou linear, ele envolve um mecanismo compartilhado de leitura e escrita , porém, os blocos ou registros individuais têm um endereço exclusivo, baseado no local físico, neste caso o tempo de acesso a um registro também é variável. O terceiro método de acesso possui um endereço exclusivo para cada endereço de memória ou local endereçável e que está fisicamente interligado. Neste método de acesso, o tempo de acesso é constante e por isto o acesso a um local de memória é aleatório. Figura 5 - Acesso aleatório O quarto método de acesso é semelhante ao acesso aleatório, com uma diferença, este permite fazer uma comparação de um certo número de bit desejados dentro de uma palavra para uma combinação especificada e faz isso para todas as palavras simultaneamente, desta forma uma palavra é recuperada com base em parte do seu conteúdo e o tempo de recuperação é constante. Alguns sistemas de cache empregam os 2 ultimos tipos de acesso. Figura 4 - Memórias Principais possuem o método de acesso aleatório. P a g e | 9 Figura 6 - Memórias cache podem empregar o método associativo ou aleatório. Hierarquia De Memória De acordo com a Figura 7, a hierarquia de memória é representada por uma pirâmide, onde o topo é formado pelas memórias mais rápidas, como os registradores, e isto vai diminuindo gradativamente a medida que nos aproximamos da base, nela encontramos as memórias mais lentas como as fitas dat ou magnéticas. Figura 7 - Hierarquia De Memórias. Na estrutura piramidal as memórias são organizadas em função de três fatores: Capacidade, Custo e Velocidade. No topo da pirâmide, os aspectos como custo e velocidade atingem o seu ápice ao passo que na base eles alcansam o seu apogeu, mas a capacidade das memórias que estão na base é superior aos demais.Por meio de inequações podemos representar essa mesma estrutura em função da capacidade: fitas > discos > MP > cache > registradores e do custo e velocidade: registradores > cache > MP > discos > fitas. No entando, é impossível adquirir todos os 3 aspectos, como maior capacidade, alta velocidade e baixo custo, pois ao menos um deles não atenderá a especificação citada anteriormente. P a g e | 10 Figura 8 - Triângulo Envolvendo custo, velocidade e capacidade. Na Figura 8 diz que o custo e a velocidade são diretamente proporcionais e inversamente proporcionais a capacidade ou seja se tentarmos encontrar um dispositivo que tenha maior velocidade, consequentemente o custo será alto e a capacidade será menor, esses aspectos configuram as cache, ou então se tentar achar um dispositivo que tenha um custo razoável, velocidade razoável e capacidade razoável, teriamos um SSD por exemplo ou então se achar um dispositivo que tenha maior capacidade, menor custo, consequentemente terá menor velocidade que é o caso das fita dat. Portanto qualquer cenário que envolva memórias pode ser representada no triângulo da Figura 8. Princípios Da Memória Cache Figura 9 - Busca da Palavra Entre o Processador , Cache, Memória. Sabe-se que a memória cache foi desenvolvida e implementada com o propósito de se evitar acessos mais frequentes a memória ram, para tal existem 2 princípios que mantém os dados na memória cache, o princípio da localidade espacial e temporal. O primeiro princípio diz que os dados tendem a se agrupar quando são acessados, desta forma quando um dado é acessado, especula-se uma maior probabilidade dos dados vizinhos também serem acessados. O segundo princípio diz que é bem provável que a instrução que está sendo acessada volte a ser acessada novamente desta forma o processador já especula a montagem dessa intrução. Além disto, existem várias técnicas que permitem mapear uma palavra (Organização natural da memória) da memória para a cache, mas destas destacam-se as 3 principais técnicas ou funções de mapeamento: Direto, Associativo e Associativo em Conjunto. O mapeamento direto é a técnica mais simples que consiste no mapeamento de P a g e | 11 cada bloco da memória principal a apenas uma linha da cache possível. A desvantagem desta técnica é que existe um local de cache fixo para cada bloco e assim se um programa referenciar palavras repetidamente de dois blocos diferentes mapeados para a mesma linha da cache, então os blocos serão continuamente trocados na cache e consequentemente a razão de acertos seriam baixas, isto é configurado como um fenômeno chamado Thrashing. Com o intuito de se corrigir as falhas desse mapeamento surgiu uma técnica que consiste em guardar o que foi descartado caso seja necessário novamente, como esses dados ja foram lidos então podem ser usados novamente a um custo menor. Esta reciclagem só é possível graças a uma victim cache, trata-se de uma porposta cujo objetivo é reduzir as perdas de dados devido aos conflitos das cache mapeadas diretamente sem afetar seu tempo de acesso. Já o mapeamento associativo compensa a desvantagem do mapeamento direto, permitindo que cada bloco da memória principal seja carregado em qualquer linha da cache. Neste caso, a lógica de controle da cache interpreta um endereço de memória simplesmente como um campo tag e um campo palavra. O campo Tag identifica o bloco da memória principal e para determinar se um bloco está na cache a lógica de controle da cache precisa comparar simultaneamente a tag de cada linha. O mapeamento associativo em conjunto é um meio-termo que realça os pontos princiais das técnicas direta e associativa, enquanto ameniza os seus pontos negativos. Neste caso a cache é uma série de conjuntos, cada um consistindo em uma série de linhas, desta forma cada palavra é mapeada para todas as linhas de cache em um conjunto específico, de modo que o bloco da memória principal é mapeada no conjunto 0 e assim por diante. Desta forma pode ser implementado várias cache associativas, além disto, é possível implementar a cache associativa em conjunto com várias caches de mapeamento direto e assim cada cache mapeada diretamenteé conhecida como uma via. As primeiras linhas da memória principal são mapeadas diretamente nas linhas de cada via da cache. ALGORITMOS DE SUBSTITUIÇÃO Uma vez que a cache estiver cheia, e um novo bloco for trazido para a cache, um dos blocos existentes precisa ser substituídos. Para o mapeamento direto, existe apenas uma linha possível para qualquer bloco em particular e nenhuma escolha é possível. Para as técnicas associativa e associativa em conjunto, um algoritmo de substuição é necessário. Para alcançar alta velocidade, tal algoritmo precisa ser implementado em hardware. Diversos algoritmos foram experiementados. Mencionamenos quadro dos mais comuns. Provavelmente, o mais eficaz seja o usado menos recentemente: Substitua aquele bloco no conjunto que permanceceu na cache por mais tempo sem qualquer referência a ele. Para associatividade em conjunto com duas linhas por conjunto, isso é facilmente implementado. Cada linha inclui um bit USE for 0 é utilizada. Como estamos supondo que os locais de memória usados mais recentemente são mais prováveis de serem referenciados, LRU ( Least Recently Used) deverá oferecer a melhor razão de acerto. LRU também é relativamente fácil de implementar para uma cache totalmente associativa. O mecanismo de cache mantém uma lista separada de índices para todas as linhas na cache. Quando uma linha é referenciada, ela passa para a ferente da lista. Para P a g e | 12 subistuição, a linha no final da lista é usada. Devido à sua simplicidade de implementação, LRU é o algoritmo de substituição mais popular. Outra possibilidade é o procedimento de pilha: Substitua o bloco no conjunto que esteve na cache por mais tempo. O algoritmo FIFO (First – in – First - out) ou de pilha é facilmente implementado como uma técnica round-robin ou de buffer circular. CONCLUSÃO Conhecemos os métodos de acesso sequencial, direto, aleatório e associativo. O direto é implementado em memórias onde as unidades de dados são chamadas de registros e o endereço de cada registro é usado para separa-los e também para auxiliar no processo de recuperação. O braço de leitura precisa passar e recusar cada registro até chegar no seu objetivo, deste modo o tempo é altamente variável, exemplo: Fitas dat. O método direto também é sequencial mas cada registro possui um endereço exclusivo, baseado no local físico. Exemplo: Unidades de disco. O acesso aleatório é usado em memórias onde cada local endereçável tem um mecanismod e endereçamento exclusivo fisicamente interligado. O tempo de acesso é constante permitindo assim que qualquer local seja acessado sem interferir no tempo de acesso. O associativo é um método de acesso aleatório mas com uma diferença, a busca do local é feita através de uma comparação do número de bits desejados dentro de uma palavra para uma combinação específica e aplica essa técnica a várias palavras simultaneamente. Vimos também que existe uma hierarquia de memória envolvendo três aspectos: capacidade, velocidade e custo. A conclusão dessa pesquisa é que não é possível ter ganho nos três aspectos e sim apenas dois deles. Exemplo: ou você tem uma memória com alta capacidade, custo baixo mas velocidade muito baixo ( Fitas dat) ou capacidade pequena, custo alto e velocidade alta ( memória cache). P a g e | 13 Vimos também que as memórias cache utilizam dois princípios para manter as palavras mapeadas dos blocos da memória para cache, localidade temporal e espacial. Basicamente, o primeiro mantém a palavra mais acessada na cache, o segundo mantém as palavras vizinhas à que esta sendo acessada. Neste projeto gozamos dos conceitos que as tecnologias implementadas nas memórias trazem, como por exemplo, as funções de mapeamento que consiste em três: O primeiro é o mapeamento direto que mapeia cada bloco da memória a uma linha da cache, a sua principal desvantagem é que o local de cache para cada bloco da memória é fixo. O mapeamento associativo compensa a desvantagem do mapeamento direto permitindo que cada bloco da memória principal seja carregado em qualquer linha da cache, desta forma o mapeamento associativo permite flexibilidade em relação a qual bloco substituir quando um novo bloco for lido para cache. A principal desvantagem do mapeamento associativo é a complexidade do circuito necessário para comparar as tags de todas linhas da cache em paralelo. A desvantagem do mapeamento associativo é corrigido no mapeamento associativo em conjunto combinando as duas técnicas o direto e o associativo podendo mapear várias linhas de cache associativa e direta a cada bloco de memória. Quando a cache está cheia e um novo bloco da memória precisa ser copiado para uma linha da cache é necessário um algoritmo de substituição para realocar um novo espaço para o bloco que será trazido para a cache. Os algoritmos mencionados foram: LRU e o FIFO. O P a g e | 14 REFERÊNCIAS BIBLIOGRÁFICAS Livro: Stalling, William. Arquitetura e Organização De Computadores: William ._8. Ed_São Paulo: Pearson Pratice Hall, 2010. Sítios Eletrônicos: ABNT. Referencias Bibliográficas. Disponível em: http://www.sorocaba.unesp.br/Home/Biblioteca/guia-abnt_site.pdf Acesso em: 19 de Junho de 2014. Wikipedia. Arquitetura De Von Neumann. Disponível em: http://www.infopedia.pt/$john-von- neumann;jsessionid=8ybKq32fNOwJ0Dv8XpLA9Q__ Acesso em: 19 de Junho de 2014. Unicamp. Arquitetura De Von Neumann. Disponível em: http://www.ic.unicamp.br/~tomasz/projects/vonneumann/node3.html Acesso em: 19 de julho de 2014. Wikipedia. Acesso aleatório. Disponível em: http://pt.wikipedia.org/wiki/Acesso_aleat%C3%B3rio Acesso em: 19 de julho de 2014.