Académique Documents
Professionnel Documents
Culture Documents
Motivação:
Capacidade - tendo em vista que a CPU acessa primeiramente a memória cache, para
buscar a informação requerida (a próxima instrução ou dados requeridos pela instrução
em execução), é importante que a referida memória tenha capacidade adequada para
armazenar uma apreciável quantidade de informações, visto que, se ela não foi
encontrada na cache, então o sistema deverá sofrer um atraso para que a informação
seja transferida da memória principal para a cache.
Valores típicos de memória cache oscilam entre 16K e 512K em máquinas de grande
porte e até 256K para microcomputadores (é possível que em breve estes valores já
estejam mais elevados), considerando-se memórias cache externas à CPU, já que
atualmente alguns processadores possuem uma certa quantidade de memória cache em
seu interior, da ordem de 8K.
Custo - o custo de fabricação das memórias cache é alto. O valor por byte está situado
entre o dos registradores, que são os mais caros, e o da memória principal, mais barata.
Memórias cache internas à CPU ainda são mais caras do que as externas.
Funcionamento:
Como foi dito anteriormente, as memórias Cache vem tendo um papel cada vez
mais importante nos sistemas computacionais. Inicialmente elas nem existiam nos
computadores. Depois foram adicionadas fora do processador e em pequena
quantidade. Em seguida elas foram levadas para dentro do processador e hoje em dia
ocupam entre 60% e 80% da área do chip do processador.
O princípio básico das memória Cache é o de manter uma cópia dos dados e
instruções mais utilizados recentemente (Princípio da Localidade) para que os mesmos
não precisem ser buscados na memória principal. Como elas são muito mais rápidas do
que a memória principal, isso traz um alto ganho de desempenho.
Todo dado a ser lido ou escrito em memória pelo processador antes passa para
a Cache. Se o dado estiver na Cache, a operação é feita nela e não se precisa ir até a
Memória Principal. Caso contrário, um bloco inteiro de dados (geralmente com 4 palavras
de memória) é trazido da Memória Principal e salvo na Cache. Só então a CPU realiza a
tarefa com o dado.
Sendo assim, o desempenho do computador ao acessar um dado de memória é
probabilístico. Para cada dado a ser acessado há uma probabilidade dele estar na
memória Cache. Se isso ocorrer dizemos que houve um Cache Hit e o sistema ganha
muito tempo com isso. Caso contrário, ocorre uma Cache Miss e o desempenho é
bastante prejudicado. Portanto, o grande problema é como fazer que a probabilidade de
um dado estar na memória cache ao invés da memória principal, ou seja, como aumentar
a taxa de Cache Hit? Existem algumas estratégias para isso, são elas:
Tamanho:
A grande dificuldade das memórias Cache é que elas sempre estão presentes em
menor quantidade do que a Memória Principal. Geralmente a Memória Cache de um
computador é 1.000 vezes menor do que a Memória Principal.
Como a Memória Cache trabalha armazenando cópias de dados da Memória
Principal, quanto maior for a Memória Cache, mais dados ela é capaz de armazenar,
sendo assim, maior a probabilidade do processador buscar por um dado e ele estar na
Cache.
Função de mapeamento:
Mapeamento direto
Mapeamento associativo
Mapeamento associativo por conjunto
Mapeamento Direto:
Por exemplo, imagine uma Cache que armazena apenas 5 linhas (é o termo
utilizado o local onde um bloco da Memória Principal é salvo na Cache), com numeração
de 1 a 5. A Memória Principal será mapeada da seguinte forma, o bloco 1 será salvo na
linha 1 da Cache, o bloco 2 na linha 2 etc. até o bloco 5 que será salvo na linha 5. Já o
bloco 6 da memória será salvo novamente na linha 1 da Cache, o bloco 7 na linha 2,
bloco 8 na linha 3 etc. Isso será feito até o que todos blocos da Memória Principal tenham
uma linha a ser armazenada.
Mapeamento Associativo:
Nos mapeamentos associativo e associativo por conjunto uma outra política deve
ser adotada. Quando a memória cache enche e um novo bloco precisa ser armazenado,
o Sistema de Memória deve escolher que bloco deve ser removido para dar espaço ao
novo bloco. No mapeamento direto isso não existe porque cada bloco sempre fica na
mesma posição.
Randômica
FIFO
LRU
Já no FIFO (First-In First-Out) adota o princípio de fila. Aquele bloco que chegou
primeiro, está há mais tempo na Cache. Já se beneficiou bastante e deve então dar lugar
ao novo bloco.
Livros:
Arquitetura de Computadores – PCs. Paixão, Renato Rodrigues
Arquitetura de computadores - RIBEIRO, C ; DELGADO, J
Principios basicos de arquitetura e organizacao de computadores - NULL, L ; LOBUR, J