Aula 10

Data de publicação: Nov 24, 2013 10:12:33 PM

Memória Cache

Os processadores estão continuamente a aumentar a sua velocidade de relógio interno (Lei de Moore) e os componentes externos deixaram muito cedo de acompanhar tal evolução. Assim, o acesso à RAM tornou-se lento de mais, atrasando significativamente o trabalho do processador. Para esse efeito, desenvolveu-se uma solução baseada em buffers de nome cache.

A cache trata-se de uma memória de alta velocidade que permite guardar pequenas quantidades de dados, que terão maior probabilidade de vir a ser necessárias ao CPU. Assim, na arquitetura básica anterior teríamos ainda de incluir a memória cache, que seria acedida antes de se procurar (fetch) a instrução na memória principal (RAM), através do que se denomina por unidade de prefetch. Pretende-se assim, conseguir evitar ao máximo o recurso à memória RAM que torna o processo mais lento.

Existem três tipos de memórias cache:

  • L1 - Cache de nível 1 (Level1);

  • L2 - Cache de nível 2 (Level2);

  • L3 - Cache de nível 3 (Level3);

CACHE L1

A cache L1 foi integrada num microprocessador pela primeira vez com o Intel 486DX. Todas as caches L1 possuem uma capacidade muito reduzida (desde 8 KB até 64 KB), pois o seu objetivo é serem rápidas. Esta encontra-se integrada no próprio CPU, pelo que consegue acompanhar a sua velocidade interna, não dependendo da velocidade do BUS, como acontece com o acesso à memória RAM.

ANALOGIA

Todos os dias no intervalo das aulas recorre ao bar da escola para comer. Pede uma sande de fiambre e um sumo de laranja natural. No primeiro dia o funcionário do bar não o conhece e leva cerca de 1 minuto a preparar o seu pedido. Ao fim de alguns dias, como pede sempre o mesmo, o funcionário já tem preparada a sua sande e o sumo, uma vez que sabe que você irá aparecer por volta da mesma hora com esse pedido. Em vez de esperara 1 minuto terá imediatamente o seu pedido em cima do balcão.

Esta é a forma de funcionamento de uma cache inteligente. Basicamente prevê o tipo de informação que o CPU irá necessitar. Normalmente 90% das vezes (cache it rate - taxa de sucesso) o CPU irá encontrar o que necessita na cache, aumentando assim, a performance do sistema.

Claramente que se mudar de ideias e em vez de pedir uma sande de fiambre pedir uma sande de queijo voltará a ter de esperar 1 minuto pelo seu pedido.

Nestes casos, a nível de cache, diz-se que a cache falhou (cache miss) sendo necessário recorrer à memória principal (ou outro nível de cache).

CACHE L2

A cache L2 foi desenvolvida para os 10% de vezes que o processador não encontrava a informação pretendida na cache de nível 1. Inicialmente estas caches eram externas, isto é, com o acesso dependente da velocidade do BUS. Voltando à analogia do bar da escola, a cache L2 externa pode ser vista como a vitrina do bar. Ao pedir uma sande de queijo em vez de uma sande de fiambre se esta já estivesse preparada na vitrina já não seria necessário o funcionário estar a prepará-la de propósito para si. Nesse caso, em vez de demorar 1 minuto demoraria apenas 15 segundos. Atualmente este tipo de cache encontra-se integrado no próprio microprocessador, tal como a cache L1, funcionando as duas à mesma velocidade (velocidade do relógio interno), reduzindo ainda mais o tempo de pesquisa, pode determinada informação. Esta cache possui maior capacidade, geralmente 256 KB, uma vez que é menos vezes acedida. Garante igualmente que 90% das vezes, a informação procurada pelo CPU estará presente no seu conteúdo.

CACHE L3

A cache L3 está a ser cada vez mais utilizada principalmente devido às recentes arquiteturas de processadores que envolvem vários núcleos de processamento. Estes núcleos geralmente partilham a cache L3 que é a de maior capacidade de todas, possuindo geralmente entre 4 a 8 MB. Encontra-se igualmente integrada no microprocessador.

Organização da cache no interior do CPU

Como é possível verificar pela figura a cache de nível 3 é partilhada pelos núcleos de um CPU. Desta forma o CPU consegue encontrar 99,9% das vezes o seu conteúdo na cache, não necessitando de aceder à memória RAM. Este valor provém de 90% da cache L1 mais 9% (90% de 10%) da cache L2 mais 0,9% (90% de 1%) da cache L3.

EXERCÍCIO PROPOSTO

Responda às seguintes questões aula:

  1. Descreva o que define a Lei de Moore.

  2. Indique quais os tipos de memória cache que conhece.

  3. Indique a capacidade de memória de cada uma das caches.

  4. Indique o que distingue a cache L3 das outras.