Definindo memória cache. - Processadores - Clube do Hardware
Home Fóruns Hardware Processadores Definindo memória cache.
Definindo memória cache.
Algumas dúvidas:1 - Qual a função da memória cache de processador? Como são trabalhados os dados nestas memórias, ou seja, como são feitas as "transações" de dados entre elas e os componentes que as usam?2 - Qual a função da memória cache L1 e L2? Porque a diferença nos tamanhos em todos os processadores e a ausência de L1 ou L2 em alguns deles?3 - Do que são feitas essas memórias? Qual o tipo de memória e suas tecnologias?4 - Quais seriam as famílias dos processadores que não têm memória cache embutidos?5 - É verdade que nos processadores mais "antigos" não existiam tais memórias em sua composição e estas vinham embutidas nas placas-mãe? Como se dava o funcionamento/troca de dados entre os componentes nestes ambientes? Compartilhar este post
Responderei confirme meus conhecimentos: A memória cache é uma memória super-rápida que geralmente trabalha na velocidade do clock do processador, evitando que durante todas as transações o processador precise se comunicar com a memória RAM, que é muito mais lenta.Pelo que conheço, os processadores mais antigas até o K6 não tinham memória cache.Obs: o K6-2 já tem L2, mas o K6. Os Mobile K6-2 também não tem memória cache.Para a última pergunta, é verdade sim. Mas não sei como funcionava na prática. Compartilhar este post
Memória cache é a famosa memória sram cara e rápida.ela é tipo um buffer que armazena as informações que o processador mais usa para efetuar mais rápido o processamento.K6-2 tinha a memória cache L2 na placa mãe.Por questão de necessidade e evolução foi acrescentado mais memória cache no núcleo do processador.Porque? Porque a memória cache no núcleo do processador fica na velocidade do processador e a memória cache na placa mãe fica na velocidade do fsb.Minha maior dúvida quanto a isso era...Porque usar memória cache na placa mãe se ela vai trabalahar na velocidade do fsb igual a memória ram?Simples porque a memória sram é muito mais rápida trabalha quase sem latência e em alguns casos sem latência nenhuma.Pelo guia do hardware.net Memória CacheEnquanto os processadores tornaram-se mais de 10.000 mais rápidos desde o 8088 (o processador usado no XT) a memória RAM, sua principal ferramenta de trabalho, pouco evoluiu em performance.Quando foram lançados os processadores 386, percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar "esperando" os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho. Se na época do 386 a velocidade das memórias já era um fator limitante, imagine o quanto este problema não atrapalharia o desempenho dos processadores que temos atualmente. Para solucionar este problema, começou a ser usada a memória cache, um tipo ultra-rápido de memória, que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer à comparativamente lenta memória RAM. Sem ela, o desempenho do sistema ficará limitado à velocidade da memória podendo cair em mais de 95%. Usamos dois tipos de cache, chamados de cache primário, ou cache L1 (level 1), e cache secundário, ou cache L2 (level 2). O cache primário é embutido no próprio processador, e é rápido o bastante para acompanhá-lo em velocidade. Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas milhares de vezes mais cara que a memória RAM convencional) usamos apenas uma pequena quantidade dela. O 486 traz apenas 8 KB, o Pentium traz 16 KB, enquanto o Pentium III traz 32 KB. Para complementar, usamos também um tipo um pouco mais lento de memória cache na forma do cache secundário. Por ser muito mais barato, podemos usar uma quantidade muito maior. No micros antigos o cache L2 fazia parte da placa mãe, mas em praticamente todos os processadores atuais, incluindo o Athlon, Pentium II, III, Celeron, Duron, Pentium 4, etc. o cache L2 também é embutido dentro do processador. Sempre que o processador precisar ler dados, os procurará primeiro no cache L1. Caso o dado seja encontrado, o processador não perderá tempo, já que o cache primário funciona na mesma freqüência que ele. Caso o dado não esteja no cache L1, então o próximo a ser indagado será o cache L2. Encontrando o dado no cache secundário, o processador já perderá algum tempo, mas não tanto quanto perderia caso precisasse acessar a memória RAM. Por outro lado, caso o dado não esteja em nenhum dos dois caches, não restará outra saída senão perder vários ciclos de processamento esperando o dado ser fornecido pela lenta memória RAM. Para exemplificar, imagine que você estivesse escrevendo um texto e de repente precisasse de uma informação que você havia anotado em um papel. Se o papel estivesse sobre sua mesa, você poderia lê-lo sem perder tempo. Se estivesse dentro de uma gaveta da sua mesa, já seria necessário algum tempo para encontrá-lo enquanto se ele estivesse perdido em algum lugar de um enorme fichário do outro lado da sala, seria preciso um tempo enorme.
+ pouco para responder todas as dúvidas:. Funcionamento da Memória Cache Por Carlos E. Morimoto http://www.guiadohardware.net Não Disponível 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. Apesar de todos os processadores a partir do 486 possuírem uma pequena quantidade de cache incorporado ao próprio núcleo do processador, chamado de cache primário ou L1, ele é muito pequeno (justamente pelas memórias usadas no cache L1 serem extremamente caras), e por isso, usamos também uma quantidade um pouco mais generosa de tipos um pouco mais baratos de memória cache na placa mãe. Este cache é chamado de cache secundário, ou L2. O circuitos que controlam o cache primário, são incorporados ao próprio núcleo do processador, enquanto os circuitos que controlam o funcionamento do cache L2 são localizados no chipset, que por sua vez fica localizado na placa mãe. Os processadores Pentium II, Celeron e Xeon são a exceção a esta regra, pois neles o cache L2 e seus circuitos controladores fazem parte do próprio cartucho do processador. O cache L1 e o cacha 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. No livro Guia de Hardware Completo, eu uso como exemplo um secretário de uma companhia de seguros: Imagine que o serviço deste secretário seja atender 10.000 clientes da seguradora que ligam esporadicamente. Cada cliente possui uma ficha (imaginemos que seja uma companhia pobre que não tenha dinheiro para comprar computadores, ehehe ;-) sendo que todas as 10.000 fichas estão organizadas num grande arquivo do outro lado da sala. Quando um cliente liga, o secretário (que tal se o chamássemos de João? ;-) precisa se levantar e procurar a ficha do cliente no arquivo, antes que possa atende-lo, fazendo com que o cliente precise esperar um tempo razoável. Com o passar do tempo, João percebe que dos 10.000 clientes, 50 ligam com mais freqüência. Como ele não é nada bobo, ele coloca um pequeno fichário sobre a mesa, e nele guarda as fichas destes 50 clientes que são responsáveis pela maioria dos chamados. Quando um destes clientes ligar, João poderá localizar sua ficha em muito menos tempo, já que elas já estarão sobre sua mesa. Enquanto estiver atendendo o cliente, ele manterá sua ficha à mão, para que possa atender imediatamente a qualquer solicitação. O grande arquivo ilustra a memória Ram, onde todos os programas abertos são carregados, o pequeno fichário sobre a mesa ilustra o cache L2, que armazena os dados usados com mais freqüência pelo processador, enquanto a ficha que é mantida à mão enquanto o cliente é atendido, ilustra o cache L1, que é brutalmente mais rápido do que a memória Ram e mesmo do que o cache L2, apesar do seu tamanho reduzido não permitir a armazenagem de muitos dados, assim como não é possível (pelo menos no exemplo) manter mais do que uma ficha à mão ao mesmo tempo. :. Cache L1 e o Limite de Cacheamento Na maioria dos processadores atuais, entre eles o Pentium II, o K6 e o 6x86 da Cyrix, o cache L1 é subdividido em duas sessões, do mesmo tamanho. Num 6x86 MX que possui 64 KB de cache L1 por exemplo, temos duas sessões de 32 kb cada uma. Um sessão se destina a armazenar dados usados pelo programa, enquanto a outra se destina a armazenar instruções Para ilustrar este procedimento, vou escrever um pequeno programa em pseudocódigo, que escreve os números pares entre 0 e 100: x: inteiro Inicio x=0 enquanto (x<100) faça: x=x+2 Escreva x Fim enquanto Fim Neste programa, o x é uma variável, que irá armazenar um numero (dados) enquanto a função "enquanto", é uma instrução. Caso este pequeno programa fosse compilado usando-se alguma linguagem de programação, e fosse executado, a instrução "enquanto" seria armazenada em uma sessão do cache L1, enquanto o valor de x, que representa os dados seria gravada na outra sessão do cache. Em programas maiores vale o mesmo princípio, apenas em escala maior. Esta divisão do cache L1 aumenta sua eficiência. Uma coisa interessante sobre o funcionamento do cache, é que os controladores da memória Ram e do cache são separados. Alguns chipsets mais antigos, como o i430FX, o i430VX, e o i430TX possuem um problema quanto ao cacheamento da memória Ram, pois apesar de possuírem controladores de memória capazes de acessar 128 MB de Ram (no caso do i430FX e do i430VX) ou 256 MB (no caso do i430TX) possuem controladores de memória cache capazes de acessar apenas 64 MB de memória. Mesmo usando os 128 ou 256 MB de memória suportados pelo controlador da memória Ram, apenas os primeiros 64 MB seriam cacheados. quando o processador precisasse ler ou escrever algum dado em algum endereço de memória acima de 64 MB, não poderia contar com a ajuda do cache L1, perdendo tempo devido à baixíssima velocidade das memórias. Para piorar as coisas, o Windows 95/98, assim como o Dos acessa a memória a partir do final. Ou seja, primeiro seriam usados todos os endereços que não são atendidos pelo cache, para apenas depois que todos estivessem ocupados usar os primeiros 64 MB atendidos cacheados. Sem dúvida, neste caso, aumentar a quantidade de memória Ram acima de 64 MB, iria diminuir o desempenho do micro ao invés de aumenta-lo, a menos é claro, que você rodasse algum programa pesado o suficiente para ocupar toda a memória Ram disponível, como algum editor de vídeo, já que mesmo não cacheada, a memória Ram sempre será infinitamente mais rápida do que memória virtual em disco. Vale lembrar que este problema só ocorre em chipsets mais antigos. No caso de chipsets usados em placas mãe Super-7, como o Via Apollo MVP3, o Ali Aladdin V e o SIS 530 a quantidade de memória Ram suportada é de 128 ou 256 MB, enquanto o controlador de cache L2 do Pentium II é capaz de cachear até 512 MB de memória Ram. A algum tempo atrás, discuti durante algum tempo no news de hardware do Uol este assunto com o Lupini. Pelo bom nível técnico e pelo respeito mútuo demostrado nas mensagens, resolvi inclui-las neste artigo. Ao longo destas mensagens o funcionamento da memória cache, e o limite de cacheamento dos chipsets antigos será explicada com mais detalhes. Espero que tenham paciência para ler tudo ;-) As mensagens escritas pelo Lupini estão em Azul, enquanto as mensagens escritas por mim estão em preto. Link:http://www.guiadohardware.net/tutoriais/018/ Compartilhar este post
Amigos 477 e Pereira, muito esclarecedores seus tópicos mesmo. Muito obrigado. Compartilhar este post
Postado Originalmente por alyssonr@29 jan 2005, 13:40 Amigos 477 e Pereira, muito esclarecedores seus tópicos mesmo. Muito obrigado. Se ainda restar dúvida é só perguntar. Compartilhar este post
#7 Postado 16 de dezembro de 2009
Eu tenho como aumentar a mémoria cache do meu processador?- HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Session Menager/Memory Menagement seguindo este caminho pelo regedit?
#8 Postado 16 de dezembro de 2009
Eu tenho como aumentar a mémoria cache do meu processador?- HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Session Menager/Memory Menagement seguindo este caminho pelo regedit?Não, a memória cache é fisica.