Controle de Acesso à Memória Cache
Tese: Controle de Acesso à Memória Cache. Pesquise 862.000+ trabalhos acadêmicosPor: nelio • 26/9/2013 • Tese • 2.878 Palavras (12 Páginas) • 545 Visualizações
Passo 1
Pesquise, no livro-texto, na bibliografia complementar e na Internet, o tema “controle de acesso à memória” ou, mais especificamente, “controle de acesso à memória cache” em máquinas paralelas, e também o tema “protocolo MESI”. Elabore um texto, de duas a três páginas, resumindo a questão do controle de acesso à memória em máquinas multiprocessadas.
Controle de Acesso à Memória Cache
Memória Cache
Diagrama de uma memória de cache da CPU.
Um cache é um bloco de memória para o armazenamento temporário de dados que possuem uma grande probabilidade de serem utilizados novamente.
Uma definição mais simples de cache poderia ser: uma área de armazenamento temporária onde os dados frequentemente acedidos são armazenados para acesso rápido.
Um cache é feito de uma fila de elementos. Cada elemento tem um dado que é a cópia exacta do dado presente em algum outro local (original). Cada elemento tem uma etiqueta que especifica a identidade do dado no local de armazenamento original, que foi copiado.
Quando o cliente do cache (CPU, navegador etc.) deseja aceder a um dado que acredita estar no local de armazenamento, primeiramente ele verifica o cache. Se uma entrada for encontrada com uma etiqueta correspondente ao dado desejado, o elemento do cache é então utilizado ao invés do dado original. Essa situação é conhecida como cache hit (acerto do cache). Como exemplo, um navegador poderia verificar o seu cache local no disco para ver se tem uma cópia local dos conteúdos de uma página Web numa URL particular. Nesse exemplo, a URL é a etiqueta e o conteúdo da página é o dado desejado. A percentagem de acessos que resultam em cache hits é conhecida como a taxa de acerto (hit rate ou hit ratio) do cache.
Uma situação alternativa, que ocorre quando o cache é consultado e não contém um dado com a etiqueta desejada, é conhecida como cache miss (erro do cache). O dado então é copiado do local original de armazenamento e inserido no cache, ficando pronto para o próximo acesso.
Se o cache possuir capacidade de armazenamento limitada (algo comum de acontecer devido ao seu custo), e não houver mais espaço para armazenar o novo dado, algum outro elemento deve ser retirado dela para que liberte espaço para o novo elemento. A forma (heurística) utilizada para seleccionar o elemento a ser retirado é conhecida como política de troca (replacement policy). Uma política de troca muito popular é a LRU (least recently used), que significa algo como “elemento recentemente menos usado”.
Quando um dado é escrito no cache, ele deve ser gravado no local de armazenamento em algum momento. O momento da escrita é controlado pela política de escrita (write policy). Existem diferentes políticas. A política de write-through (algo como “escrita através”) funciona da seguinte forma: a cada vez que um elemento é colocado no cache, ele também é gravado no local de armazenamento original. Alternativamente, pode ser utilizada a política de write-back (escrever de volta), onde as escritas não são directamente espelhadas no armazenamento. Ao invés, o mecanismo de cache identifica quais de seus elementos foram sobrepostos (marcados como sujos) e somente essas posições são colocadas de volta nos locais de armazenamento quando o elemento for retirado do cache. Por essa razão, quando ocorre um cache miss (erro de acesso ao cache pelo fato de um elemento não existir nele) em um cache com a política write-back, são necessários dois acessos à memória: um para recuperar o dado necessário e outro para gravar o dado que foi modificado no cache.
O mecanismo de write-back pode ser accionado por outras políticas também. O cliente pode primeiro realizar diversas mudanças nos dados do cache e depois solicitar ao cache para gravar os dados no dispositivo de uma única vez.
Os dados disponíveis nos locais de armazenamento original podem ser modificados por outras entidades diferentes, além do próprio cache. Nesse caso, a cópia existente no cache pode se tornar inválida. Da mesma forma, quando um cliente atualiza os dados no cache, as cópias do dado que estejam presentes em outros caches se tornarão inválidas. Protocolos de comunicação entre gerentes de cache são responsáveis por manter os dados consistentes e são conhecidos por protocolos de coerência.
Tipos de memória cache
Os tipos de memória cache mais conhecidos são: mapeamento direto, totalmente associativa e associativa por conjunto (N-way).
Mapeamento direto : cada bloco da memória principal e mapeado para uma linha do cache.
Mapeamento associativo : um bloco da memória principal pode ser carregado para qualquer linha do cache.
Mapeamento associativo por conjunto: meio termo entre o direto e o associativo.
Acesso direto à memória
O ACESSO DIRETO A MEMORIA permite que certos dispositivos de hardware num computador acessem a memória do sistema para leitura e escrita independentemente da CPU. Muitos sistemas utilizam DMA, incluindo controladores de disco, placas gráficas, de rede ou de som.O acesso direto da memória é usado igualmente para transferência de dados de núcleos em processadores multi-core, em especial nos sistema-em-microplaquetas do processador, onde seu elemento de processamento é equipado com uma memória local ,e o acesso direto da memória é usado para transferir dados entre a memória local e a memória principal. Os computadores que têm os canais de acesso direto à memória podem transferir dados aos dispositivos com muito menos perdas gerais de processamento do que computadores sem uma via de acesso direto à memória. Similarmente um elemento de processamento dentro de um processador multi-core pode transferir dados para e de sua memória local sem ocupar seu tempo de processamento e permitir a simultaneidade de transferência de dados. Sem acesso direto da memória, usando a modalidade programada de entrada/saída (E/S) para uma comunicação com os dispositivos periféricos, ou as instruções da troca no caso dos núcleos multi-core, o processador central é ocupado inteiramente para a leitura ou escrita da operação, e assim não se torna possível executar o outro afazer. Com acesso direto da memória, o processador central executa transferências, faz outras operações enquanto alguma transferência estiver em
...