Você está na página 1de 2

Criao de uma memria cache para propsitos acadmicos.

Helton Danilo Passos Leal, Fabio Teixeira Morais, Edward David Moreno Departamento de Computao, Universidade Federal de Sergipe UFS {helton.danilo, edwdavid}@gmail.com, fabiotei@hotmail.com Resumo
Neste artigo abordado um modelo de proposito unicamente voltado aprendizagem de desenvolvimento de memria cache, com intuito de trazer noes bsicas de criao e arquitetura em nveis mais prticos.

2.1.Escrita na Cache
No sistema projetado, a memria principal ter apenas oito bits de endereamento, e a memria cache dividir os blocos que armazenam memria em oito, ou seja, equivalente aos 3 bits menos significativos, fazendo com que dentro da memria cache haja oito blocos, e dentro de cada bloco haja at 32espaos para endereamento por linha para comportar toda a memria, como estamos trabalhando com uma memria cache de 32bytes, ser comportado apenas 4 espaos para cada bloco. De forma prtica, vamos supor que o processador mande a memria escrever 01010101 no endereo 00010010, o cache ir interceptar a mensagem (mas no remove-la do barramento), e ir escrever 01010101 no primeiro espao livre do bloco 010 e ir resetar o contador de hit naquele espao. Para a operao de escrita, o cache no precisa controlar o que a memria principal ir fazer, por isso, a memria principal esta livre para trabalhar sem o consentimento da memria cache. Caso seja necessrio escrever um endereo e no houver mais espao no bloco, ser preciso fazer uma substituio, e para substituir, ser sobrescrito aquele espao que tenha menos hits.

1. Introduo
Dentro do meio acadmico, importante saber convergir os esforos para que um modelo de arquitetura seja implementado, e tratando-se de uma memria cache, onde h muitas variaes de especificaes, necessria uma boa noo de arquitetura e codificao em VHDL. A memria cache ela trabalha recebendo as instrues que o processador manda para a memria de escrita e leitura, e servindo de intermdio nesse processo, podemos considerar na arquitetura atual que a memria principal dez vezes mais lenta que o processador, tendo em mente isso, o cache entra como probabilidade de acerto de leitura, tentando diminuir o tempo de espera do processador por uma resposta da memria, ento podemos considerar que uma pequena parcela da memria principal tambm estar armazenada na memria cache. No nosso modelo, ser utilizado o modelo de substituio de endereo/valor de memria dedescartar o endereo menos significativo e ser adotado como modelo de resposta a CPU o Write Back, onde o cache fica apenas responsvel por ler o que foi requisitado memoria e caso tenha esse valor, ser enviado de volta CPU.

2.2. Leitura na Cache


Como j foi comentado, um dos problemas da leitura ter certeza de que o processador ir receber apenas uma mensagem de retorno de leitura, caso a cache intercepte a informao, e retorne o valor e algum tempo depois a memria principal faa o mesmo, o processador no estar preparado para receber essa duplicata, e por isso interessante o cache avisar para a memria principal quando a leitura j foi devolvida para o processador, poupando fazer sincronizaes e/ou casos de excees. Em prtica, o processador ir jogar no barramento uma mensagem de leitura do endereo 00010010, o cache vai verificar no setor 010 se h em algum slot o endereo 00010010 e caso haja, ele ir retornar o valor, que neste momento ser 01010101, ser adicionado +1 no contador de hit do endereo, e ir enviar o enable de leitura a memria comozero. Caso o valor no existe no

2. Algoritmo da Memria Cache


A memria cache trabalha interceptando informaes que anteriormente estavam sendo enviadas da CPU para a memria e vice versa. importante enfatizar que para um requisito de leitura no endereo 00000001, a memria cache idealizada, dever permitir a memria principal retornar tal leitura ou no, pois h o caso da memria cache no conter esse dado. Para tornar o caso de explicao mais interessante, ser adotado que a memria principal tem 256 bytes e a cache tem apenas 32bytes.

cache, o enable habilitar a memria a trabalhar normalmente com o valor um

2.4. Estrutura de um bloco


Os espaos dos blocos so constitudos pela seguinte estrutura: Endereo Hits Valor Endereo em 8 Contador de Valor do campo bits hits em 4 bits em 8 bits Tecnicamente a Estrutura da memria cache ser da seguinte forma: Tags 000 001 010 011 100 101 110 111 Espaos Espaos Espaos Espaos

2.3. Sistema de contagem de Hits


J foi citado antes que para cada leitura e escrita de valores existentes os hits so resetados ou acrescidos, mas h um caso extremo que deve ser levado em considerao que acontece quando um valor bastante requisitado em uma operao, e consegue um pico de hit to alto, que far que todos os outros campos sejam substitudos e ele permanea ocupando espao e nunca seja alvo de substituio mesmo que j seja obsoleto, diminuindo assim a taxa de hit. Para corrigir isso planejado que toda vez que algum endereo de um bloco seja lido/escrito, ser adicionado -1 hits para todos outros registros que tenham o contador acima de trs e que sejam do mesmo bloco, assegurando assim que nunca um hit to alto tome conta por um longo perodo de tempo a ponto de atrapalhar o desempenho de hit.

Espao1 Espao2

Espao3

Sendo Espao1 = {11000010,0001,01010101}, Espao2 = {11011011,0010,00000001} e Espao3 = {11110010,0001,00010000}; partir daqui, d para ter uma noo de como funcionar o cache.

Você também pode gostar