Sei sulla pagina 1di 7

Trabalho sobre Memria Cache

Introduo

Na dcada de 80, houve um aumento impressionante no campo computacional. Principalmente, no que se refere aos processadores fabricados pelas grandes empresas do ramo. J na dcada de 90, o PC j estava popularizado. Ou seja, adquirir uma mquina j no era to caro assim; gerando assim uma intensa disputa por mercado. Atualmente, adquirir um computador , na verdade, comprar o que h de melhor em termos de processamento, execuo de leitura/escrita etc. Tem-se visto a fabricao macia de processadores no mercado (Intel, AMD, etc), praticamente, fabricado um processador, em mdia, a cada 18 ou 24 meses. Enquanto isso, o investimento em Memria Principal (MP) bem pouco, se comparado ao dos processadores. Com isso, gerou-se um problema: Como fazer o acompanhamento da MP, em relao ao processador? A comea o surgimento da Memria Cache (MC), que o elo entre a UCP (Unidade Central de Processamento) e a MP.

Memria Cache Memria Cache nada mais do que um bloco de memria de tamanho reduzido e com tempo de acesso menor, se comparado memria principal, que se interpe entre esta e o processador com o objetivo de diminuir o tempo mdio de acesso a dados que esto na memria principal. Ela armazena uma pequena parte dos dados que esto em memria, aqueles com a maior probabilidade de serem usados em um breve perodo de tempo. Entenda-se com maior probabilidade aquelas informaes que se encontram em posies de memria subsequentes que est sendo acessada em um dado momento. Isso ocorre graas ao Princpio da Localidade que existe em mquinas determinsticas. Funcionamento

Figura 1- Diagrama simplificado de uma arquitetura que utiliza Memria Cache

O funcionamento da Cache, seja qual for o seu nvel de refinamento, se d basicamente da seguinte forma (As operaes de escrita e leitura ocorrem de forma um pouco distinta uma da outra. Veja em Polticas de atualizao da Memria Principal): A CPU inicia a execuo de uma instruo que requer busca ou escrita de dados em uma certa posio de memria. Antes de ir Memria Principal, a CPU faz uma consulta Memria Cache para saber se a posio de memria em que ela deve operar est l. Caso esteja, ela nem mesmo chega a ir Memria Principal, efetuando a operao na prpria Cache e dando seqncia ao fluxo de execuo do programa (cache hit). Caso contrrio, ela vai at a Memria Principal realiza a operao desejada e traz mais um determinado bloco de memria, com posies que tem grandes chances de serem acessados nos prximos ciclos de mquina (cache miss).

Modos de Endereamento A funo de uma memria cache assegurar performance CPU tentando mapear as reas mais utilizadas da memria principal dentro de uma memria muito reduzida. Devido a isto, o modo como uma determinada rea da memria principal mapeada na memria cache muito importante e traz melhorias de desempenho se escolhida da forma correta. Existem trs formas principais de mapeamento da cache: Mapeamento direto: Cada posio da memria principal s pode ser mapeada para uma posio da memria cache. Totalmente associativo: Cada posio da memria principal pode ser mapeada em qualquer posio da memria cache. Associativo por conjunto: Cada posio da memria cache pode ser mapeada em N posies da cache.

Polticas de Atualizao da Memria Principal

Quando a CPU deseja realizar uma operao em Memria, ela tem duas opes (os dois modos de operao de uma memria, qualquer que seja): Leitura ou Escrita. Em um sistema com Cache, a operao de leitura no gera problemas, pois a informao que est na Cache (na verdade uma cpia do backing) apenas copiada para um registrador, e ambos Cache Backing continuam perfeitamente sincronizados. J uma operao de escrita um pouco mais problemtica. Imagine a seguinte situao. Uma posio X do backing est mapeada em uma posio X' da cache e em um determinado momento, uma instruo que escreve na posio X executada. Naturalmente, teramos um cache hit e a operao seria, na verdade, realizada na posio X' da cache. Agora imagine que houve um desvio no programa para uma regio de memria no mapeada em cache. Logo no primeiro acesso, teramos um cache miss e uma leitura em memria, que traria consigo um bloco contguo de dados para a cache. O que aconteceria ento, se este novo bloco trazido da memria fosse mapeado na regio da posio X' da cache? A alterao feita na posio X da memria seria perdida. Obviamente isso inadmissvel em qualquer sistema computacional e para resolver estes problemas temos as Polticas de Atualizao da Memria Principal. Write-Through: Cada escrita em cache ocasiona automaticamente uma escrita sncrona na memria. Pode-se dizer ento que a Cache se torna um buffer apenas de leitura, j que o potencial da possibilidade de escrever na cache no aproveitado.. importante notar que o nmero de escritas em memria em geral muito menor que o nmeros de leituras. Logo, esta poltica no ineficiente, embora ir N vezes memria escrever um dado custe bem mais que ir uma vez memria escrever N dados.

Write-back: Cada operao de escrita em memria feita diretamente na cache. Quando isto acontece, a posio de memria da cache recebe o status de dirty. Quando um outro bloco de memria trazido para a cache em uma posio dirty (por decorrncia de um cach miss), o bloco que est l atualmente, antes de ser sobrescrito, rebatido de volta para o Backing e mantida a coerncia da Memria Cache. Este mtodo tambm conhecido como Lazy Write. Write-Through: Prs: Implementao mais simples So melhores para sistemas multiprocessados, pois vrios clientes (em vez de somente a CPU) podem querer acessar dados que devem estar atualizados em qualquer ponto da hierarquia de memria. Contras: No usufrui de todo o potencial da Cache, j que no necessrio ir ao Backing em todas as operaes de escrita. Write-back: Prs: Diminui consideravelmente o trfego de memria em relao ao WriteThrough, e por conseqncia , em geral mais eficiente. Contras: Implementao mais complicada Pode se tornar um problema em sistemas multi-cache e muliprogramados, situaes nas quais manter a coerncia de dados mais difcil.

Algoritmo de Reposio de Dados

Potrebbero piacerti anche