Buscar

Apostila2_Cache

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MEMÓRIA CACHE
Definição
A memória cache consiste numa memória rápida e pequena que funciona como um buffer para a memória DRAM.
Memória cache é uma memória especial de alta velocidade projetada para acelerar o processamento das instruções dadas a memória principal pela CPU. A CPU pode acessar instruções e dados localizados na memória cache muito mais rapidamente do que na memória principal. Por tanto, quanto mais instruções e dados a CPU puder acessar diretamente da memória cache, mais rápido será seu computador.
Conceito de Localidade 
Um programa ao acessar uma determinada área de memória tem grande possibilidade de acessar novamente esta mesma área ( Localidade Temporal ) ou uma área adjacente ( Localidade Espacial ) em seus próximos passos.
A memória cache se aproveita desta propriedade, armazenado em sua estrutura de alta velocidade de acesso os blocos de dados com grande possibilidade de serem solicitados pela CPU proximamente.
Sempre que a UCP vai buscar uma nova instrução, ela acessa a memória cache e se não encontrar, então o sistema pausa o programa (wait state ) e transfere a instrução da memória principal para a cache. Só que essa transferência não é somente da instrução desejada, mas dela e de um grupo adjacente. 
Esquema de funcionamento
Memória cache L1 e memória cache L2 
A partir do processador 486, todos os processadores passaram a ter uma pequena quantidade desta memória dentro do próprio processador - chamada memória cache nível 1 (L1) ou simplesmente memória cache interna. Quando citamos memória cache, normalmente estamos nos referindo à memória cache presente na placa-mãe do micro, chamada memória cache nível 2 (L2) ou simplesmente memória cache externa. Atualmente nos novos computadores ao invés do cache L2 estar na placa-mãe, está instalado dentro de um cartucho chamado SEC (Single Edge Contact) ao lado do processador. Portanto as nomenclaturas “cache interno” e “cache externo” não fazem muito sentido - e daí preferirmos a nomenclatura “Cache L1” e “Cache L2”. 
Funcionamento da Memória Cache
Nos micros atuais a memória cache possui uma importância fundamental, armazenando os dados mais requisitados pelo processador, e  evitando na grande maioria das vezes que seja necessário buscar ou escrever dados diretamente na lenta memória Ram.
O cache L1 e o cache L2 trabalham conjuntamente, formando uma espécie de escada de três degraus para os dados. 
Inicialmente, o programa é carregado na memória RAM. Conforme o processador for requisitando dados referentes ao programa aberto, estes dados vão sendo armazenados no cache L2, sendo os dados mais requisitados armazenados no cache L1.
Cache L1 e o Limite de Cacheamento 
Na maioria dos processadores atuais, o cache L1 é subdividido em duas sessões, do mesmo tamanho. Uma seção se destina a armazenar dados usados pelo programa, enquanto a outra se destina a armazenar instruções.
Os processadores Intel Pentium 4 não tem cachê de instruções, a unidade de busca pega as instruções diretamente da L2 , em compensação este processador tem uma cachê de execução onde armazena microinstruções já decodificadas.
Como a unidade de controle lida com cache misses
A unidade de controle tem de detectar faltas de dados correspondentes a um endereço (miss) e trazer esses dados da memória para a cache. Entretanto o processador pára à espera dos dados vindos da memória (miss penalty). Se a cache manifesta um hit, a máquina continua usando os dados como se nada tivesse acontecido.
Onde pode um bloco ser colocado?
Quando um bloco, proveniente da memória principal, chega à cache, surge uma questão, onde o colocar, sobre que política se submeterá a sua colocação na cache? 
Três políticas poderemos encontrar:
Direct mapped - na qual um bloco será colocado no endereço correspondente ao da memória principal. 
Fully associative - aqui o bloco poderá ser colocado em qualquer endereço da cachê A cache fully associative é uma cache de quatro blocos (num único set), qualquer bloco de memória pode ser guardada em qualquer bloco de cache. A sua performance é ligeiramente melhor que a de eight-way associative. As desvantagens potenciais são o aumento do custo.
Set associative - onde há um número fixo de posições (no mínimo duas) onde cada bloco pode ser colocado. Uma cache set associative com n posições para um bloco é chamada de n-way set associative cache. Uma cache set associative n-way consiste num número de conjuntos. Cada bloco na memória é mapeado para um único set na cache dado pelo campo de índice, e um bloco pode ser colocado em qualquer dos elementos desse set. Sendo assim, uma alocação set associative combina alocação direct mapped e alocação fully associative.
Qual o bloco a substituir num cache miss?
Quando um miss ocorre numa cache associativa, temos de decidir qual o bloco a substituir. Numa cache completamente associativa, todos os blocos são candidatos a serem substituídos. Se a cache for set associative, temos de escolher entre blocos de um conjunto. A substituição é fácil numa cache diretamente mapeada, pois apenas existe um candidato.
least recently used (LRU): o bloco que vai ser substituído é aquele que foi usado há mais tempo.
O que acontece num write?
write back (também chamado de copy back): A informação é escrita apenas no bloco da cache. O bloco modificado é apenas escrito para a memória principal quando é substituído.
GLOSSÁRIO DE TERMOS DE CACHE
Asynchronous SRAM – Uma SRAM que não requer um sinal de clock para validar os seus sinais de controle. Por volta de 30% mais baixa no preço e performance comparado com a synchronous SRAM.
Burst – um tipo de synchronous cache; 30-50% mais rápida que uma asynchronous e 50% mais cara.
Cache controller – o circuito de controle na interface entre o controlador da CPU, cache e DRAM (memória principal).
Cache hit – quando um endereço pedido pela CPU foi encontrado na cache.
Cache miss – quando um endereço pedido pela CPU não foi encontrado na cache.
CELP socket – Card Edge Low Profile. O tipo de socket, normalmente, usado nos módulos de cache.
COAST – Cache On A Stick. Uma especificação de design popular para módulos de cache.
Compulsory misses: a primeira vez que tentamos acessar a uma informação, ela não está na cache. A estas cache misses dá-se também o nome de cold start misses.
Capacity misses: se a cache não conseguir conter todos os blocos necessários durante a execução de um programa, as capacity misses irão ocorrer devido a alguns blocos terem de ser substituídos para dar lugar a outros.
Conflict misses: se a estratégia de colocação de blocos for set associative ou direct mapped, conflict misses irão ocorrer, pois um bloco pode ser substituído e mais tarde trazido outra vez para a cache se muito blocos forem mapeados para um dado set. Estas cache misses são também chamadas de collision misses.
Direct-mapped cache – uma cache na qual apenas existe uma posição possível para cada entrada de dados.
External cache – cache que reside fora do processador; normalmente é soldada na placa do sistema perto do processador ou na forma de módulo de cache num socket perto do processador.
Full-associative cache – uma política de cache que permite que qualquer posição da memória principal seja mapeada em qualquer linha da cache.
Index – o subconjunto do endereço binário da CPU para ter uma especifica posição na cache.
Internal cache – cache que é tipicamente localizada dentro da CPU chip.
Level One (L1) – cache que está mais próxima ao processador; tipicamente localizada dentro da CPU chip. Também referida como cache primária,
Level Two (L2) – cache que é a segunda mais próxima do processador; tipicamente localizada na placa de sistema. Também referida como cache secundária.
Pipeline burst – um tipo de cache sincronizada que é insignificantemente menos cara que a burst, mas tem uma performance semelhante. (Bursté capaz de ser mais rápida, mas a placa de sistema, muitas vezes, não tira a vantagem desta capacidade).
Primary cache – o mesmo que level 1 cache.
Secondary cache – o mesmo que level 2 cache.
Set-associativity – o número de posições dentro das quais um endereço de memória principal pode ser colocado na cache.
SRAM – Static Randomn Acess Memory. Este é o tipo de memory chip que é normalmente usado nos módulos de cache. É mais rápida e mais cara que os DRAM chips.
Synchronous SRAM – uma SRAM que requer um sinal de clock para validar os seus sinais de controle. Isto permite que a memória cache corra ao mesmo passo que a CPU. Pode ser quer Burst ou Pipelined Burst.
Tag – o subconjunto do endereço binário de CPU usado para comparar os bits da Tag da cache directory com o endereço de memória central acedido.
Tag RAM – a cache é fisicamente dividida em duas secções. A secção de Tag RAM guarda o endereço de Tag da localização dos dados na cache. Esta secção é mais pequena que a secção da Data RAM, que guarda as atuais dados ou instrução.
Write Back – os dados são escritos na cache pela CPU e não é escrito na memória principal até que a linha de dados na cache seja recolocada.
Write Through – uma técnica para escrever os dados vindos da CPU, simultaneamente, na cache e na memória principal, de modo a assegurar a coerência.
BIBLIOGRAFIA:
http://www.kingston.com.br/novo/tools/bits/bit03.htm
http://www.gabrieltorres.com/cache.html
http://www.guiadohardware.net/Tutoriais/Memorias/cache.html
http://www.amd.com/brazil/products/cpg/k6iii/k63cache_po.html
http://zaitek.com.br/~psergio/k63/diagbl.htm
http://www.estado.com.br/jornal/suplem/info/97/09/01/info036.html
Obs: Para teste recomenda-se os programas PC-Check, que pode ser baixado em (http://www.eurosoft-uk.com) e PC-Config (http://www.holin.com/indexe.htm). 
CPU
cache
M.P.
palavra
bloco
CPU procura dado na cache
?
Transfere da cache para CPU
Cache busca dado e bloco adjacente na M.P.
Sm
N

Outros materiais

Perguntas Recentes