Ir ao conteúdo
  • Cadastre-se

como funcionam as caches?


FilipiBh

Posts recomendados

bom como funcionam as memorias cache L1 L2?? porque o processador usa a memoria cache ao invés da ram!!!! o que são estas tecnologias usadas nos processadores ex: duron morgam, atlhon barton, t-bred estas coisas gostaria de um texto cientifico explicando estas coisas se alguem poder me ajudar agradeço!

Link para o comentário
Compartilhar em outros sites

Posso te explicar que,a cachê foi feita para acelerar o processador,porque as memórias ram já não operam mais rápidas que o processador,então o Cachê l1 entra em cena,os dados a serem processados são colocados no cachê l1 e saem no cachê l1 de dados...

Mas mesmo assim o desempenho começou a não subir com aumentos de clock.E se criou o cachê l2,que faz a mesma coisa que o l1,mas ao invés de ele "guardar" os dados que serão pegos pelo processador,ele passa esses dados ao cachê l1 que passa ao processamento

Ficou confuso?

Link para o comentário
Compartilhar em outros sites

bom me corrijam se eu estiver errado!!! o cache L1 e L2 foram criados para evitar o acesso a memoria ram porque o processador internamente trabalha a freqüências altas no meu caso a 1600Mhz porém se fosse acessar a memoria ram iria acessar a no maximo 400 Mhz que é o barramento da maioria das placas´mãe é isso mesmo???????? so que eu não sei se o processador acessa primeiro a cache L1 ou L2 e tambem não entendo por que geralmente uma tem mais memoria que a outra alguem pode dizer ai??

Link para o comentário
Compartilhar em outros sites

bem,você está certo,o processador não acessa a RAM na velocidade total,mas o barramento da placa se for maior do que o do processador,nada adianta (isto é,o barramento do processador que interfere na velocidade de acesso a ram principalmente)

E o processador acessa antes a memória L2,e nem sempre uma tem mais memória que a outra (durons K7 tinha 128kb de L1 e 64kb de L2)

bem,mas a memória L2 é maior a maioria das vezes,porque a cachê l1 fica apenas com a função de guardar os dados a serem processados (ou que já foram processados,no caso de cachê l1 de dados)A cachê l2 evita apenas que o processador tenha que ir na ram várias vezes para buscar dados.

Link para o comentário
Compartilhar em outros sites

a cache é uma memoria ram também isso acesso aleatorio]

mas diferente da memorias ram convencionais ela é do tipo estatica

ouseja não precisa de refresh pra manter os dados intactos

a memoria ram estatica é muito mais rapida e mais cara também

por isso a qtdade é pequena

agora pra entender como ela funciona

imagine um professor dando aula e ele tem q ir buscar o giz no fundo da sala toda hora pra escrever o fundo da sala seria a memoria ram

e pra evitar essa perdad e tempo q existe a cache l1 e l2

é como se ela guardasse o giz ao lado do professor evitando dele ter q buscar longe toda hora ahuahau

espero ter ajudado com essa explicaçao hehehe

falou

Link para o comentário
Compartilhar em outros sites

so não entendi como assim q o baramento da placa mãe não pode ser maior que o do processador

bom na verdade mesmo é uma ##### duma confusão este lance de barramentos diferentes.

exemplo meu pc:

de que adianta a memoria trabalhar a 400Mhz se o processador trabalha com um barramento inferior a 400 Mhz !!!!!!! ou seja se a minha memoria trabalha a 400mhz a minha placa mãe trabalha a 333 e o meu processador trabalha a 200MHz na verdade ta tudo trabalhando a 200????

é impressão minha ou neste caso tanto faz ter uma memoria ddr 400 ou uma ddr 266???

Link para o comentário
Compartilhar em outros sites

bem...Isto é verdade..Mas a vantagem de usar a 400mhz seria poder overclockar tranquilo e as latências...E o barramento da placa-mãe pode ser sim maior que o do processador,o que n pode é o do processador ser maior que a placa-mãe

Mas mesmo assim depende do processador,de que adianta a placa-mãe fazer tudo no dobro de velocidade se vai engarrafar tudo na hora de entrar no processador?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por DJ-WEBMASTER@10 de março de 2006, 12:50

exemplo meu pc:

de que adianta a memoria trabalhar a 400Mhz se o processador trabalha com um barramento inferior a 400 Mhz !!!!!!! ou seja se a minha memoria trabalha a 400mhz a minha placa mãe trabalha a 333 e o meu processador trabalha a 200MHz na verdade ta tudo trabalhando a 200????

é impressão minha ou neste caso tanto faz ter uma memoria ddr 400 ou uma ddr 266???

O seu PC é um K-8 né?

Nesse caso ele possui alguns clocks, os 200MHz é o clock de referência, ele se comunica com o chipset a 800MHz (DDR), com as memórias vai depender do tipo de memória que você usa, se forem DDR400 ele vai se comunicar a 200MHz com elas (DDR400 trabalham a 200MHz, transferirndo dois dados por clock), se forem DDR333 166MHz e DDR266 133MHz, logo colocar uma DDR400 é melhor que um DDR266.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Eu não sei como trabalha o hardware do PC a fundo, presizariamos de um engenheiro da computaçao para tirar essa duvida, mas posso te dizer como funciona os microcontroladores usados em eletrônica que programo em assembly

(programaçao de baixo nivel).

apesar de todo o conjunto(processador, RAM, ROM, e interfaces) serem em um unico chip, na verdade dentro eles sao separados pelos tais barramentos,

o que acontece é que o hardware busca um dado na RAM para ser procesado

(isso é feito por software, mas é o que acontece no hardware) ele vai para o processador onde vão ser executados os calculos matematicos( o processador só sabe fazer calculos, mover e mudar o estado de bits)

então o dado buscado na RAM passa para o processador(que na verdade também é um tipo de memoria), onde os dados se alojao em uma memoria que tem capacidade de procesar, fazendo modificaçoes em seus bits de acordo com o comando executado(instruçoes) e os valores nelas contidos(memoria)

a diferença q o microcontrolador que eu trabalho tem modelos de 8 a 42 pinos,

que já sao as saidas ou entradas, onde se poe sensores, displays, drives(outros circuitos integrados) para motores, etc e esses microcontroladores so tem 1 byte de cache, tem ums que tem um ou outro byte a mais, kkkkkkkkkkk

que no caso do microcontrolador o processador recebe um byte e compara com outro byte contido ainda na memoria RAM(no proceso de calculo por exemplo)

agora imagine o porque que um PC tem esses tantos bytes de cache no processador, imagine quantos dados sao buscados na RAM, indo para o processador e ficam neles armazenados enquanto faz uma porrada de calculos entre eles, sem devolver para a RAM, pois algums resultados sao novamente procesados entre eles( esse procesamento entre varios bytes é o que eu acho que exige uma maior cache, eu suponho que seja assim no PC)

então como pode ver a RAM é para armazenar, o processador para procesar, mas ele não deixa de ser uma memoria especial, capaz de interagir seus bits

espero ter ajudado e não complicado mais, hehhe....

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Oi ismaelcrestani,

Com que microcontroladores você trabalha?

E quanto ao seu post, o cache do computador é um pouco diferente do microcontrolador,

Para exemplificar, em um Athlon 64 (no caso o meu) as latências são:

L1: 3 ciclos,

L2: 12 ciclos,

Memória: 110 ciclos

Quando o processador precisa de um dado do RAM pela primeira vez ele pede ao controlador de memória e espera intermináveis 110 ciclos até receber o dado, depois de fazer tudo o que precisa com esse dado ao invés de discartar ele joga no L1, se mais para frente ele precisar desse dado de novo é só pegar no L1 e ai a espera é de apenas 3 ciclos, mas o L1 tem apenas 64kb, uma hora enche, quando enche o processador pega a pagina (dados para simplificar) que esta a mais tempo sem ser usada e joga no L2, se ele precisar desse dado pode pegar no L2 e esperar apenas 12 ciclos, se o L2 encher ele descarta a pagina que esta a mais tempo sem ser usada e se precisar de novo é aquela demora...

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por EduardoS@22 de abril de 2006, 17:44

Com que microcontroladores você trabalha?

uso os da microchip, sou iniciante ainda, hehehe

intao as caches L1, L2 sao usadas para evitar a perda de ciclos na busca de dados a serem procesados

o processador do PC trabalha com apenas duas palavras por vez???

eu ate ariscaria a dizer que ele trabalhase com mais de duas durante um ciclo de procesamento, imaginava que fose mais complexo, minha imaginaçao estava mentindo pra min????

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por EduardoS@22 de abril de 2006, 18:47

O x86 possui 8 registradores de 32 bits, um Athlon pode realizar 3 instruções ao mesmo tempo, então fica 6 palavras por vez certo?

então ele só executa um calculo(por exemplo) com um par de "palavras"????,

ai em tres instruçoes simultaneas dele, vai resultar em 6 palavras de uma vez,

mas tem processador que pega tres "palavras" e faz um calculo ao mesmo tempo com as tres em un unico ciclo de clock, ou todos sao de dois-a-dois????

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por EduardoS@22 de abril de 2006, 17:44

Para exemplificar, em um Athlon 64 (no caso o meu) as latências são:

L1: 3 ciclos,

L2: 12 ciclos,

Memória: 110 ciclos

Quando o processador precisa de um dado do RAM pela primeira vez ele pede ao controlador de memória e espera intermináveis 110 ciclos até receber o dado, depois de fazer tudo o que precisa com esse dado ao invés de discartar ele joga no L1, se mais para frente ele precisar desse dado de novo é só pegar no L1 e ai a espera é de apenas 3 ciclos, mas o L1 tem apenas 64kb, uma hora enche, quando enche o processador pega a pagina (dados para simplificar) que esta a mais tempo sem ser usada e joga no L2, se ele precisar desse dado pode pegar no L2 e esperar apenas 12 ciclos, se o L2 encher ele descarta a pagina que esta a mais tempo sem ser usada e se precisar de novo é aquela demora...

... perae, 110 ciclos pra RAM, 12 ciclos pra L2 e 3 ciclos pra L1, mas quanto tempo "demora" cada ciclo de um CPU?? 1 segundo?!

EduardoS Postado em 22 de abril de 2006, 18:47

O x86 possui 8 registradores de 32 bits, um Athlon pode realizar 3 instruções ao mesmo tempo, então fica 6 palavras por vez certo?

PALAVRAS?? Como assim?! O que vem a ser estas "palavras"??

Link para o comentário
Compartilhar em outros sites

Postado Originalmente por OShakal@22 de abril de 2006, 21:29

Usando o exemplo do professor que tem que buscar o giz :P

Então seria um Aluno ajudante indo no fundo da sala toda hora pra buscar 1 giz e levar até a caixa de giz do professor, enquanto professor escreve?

Deu pra entender? :P

... se não estiver enganado o papel do aluno é feito pelo chipset, ou seja, pelo controlador de memória dentro dele ... corrijam-me se estiver errado.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por alyssonr@25 de abril de 2006, 17:17

... perae, 110 ciclos pra RAM, 12 ciclos pra L2 e 3 ciclos pra L1, mas quanto tempo "demora" cada ciclo de um CPU?? 1 segundo?!

Em uma CPU de 2.0GHz 1 ciclo dura 0.5ns (freqüência = 1/duração do ciclo)

PALAVRAS?? Como assim?! O que vem a ser estas "palavras"??

"PALAVRA" é o tamanho do operador, em um processador 32bits a "palavra" tem um tamanho de 32bits.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Postado Originalmente por alyssonr@25 de abril de 2006, 17:22

... se não estiver enganado o papel do aluno é feito pelo chipset, ou seja, pelo controlador de memória dentro dele ... corrijam-me se estiver errado.

O mais correto nessa analogia seria o aluno ser a "lógica de prefetch" já que ele pode buscar o giz enquanto o professor (que seria o processador) faz outra coisa.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

_Zarathos_,

os x86 derivam do 8086 de 16bits, por isso nos compiladores e assemblers você encontra WORD = 16bits, DWORD = 32bits, QWORD = 64bits e OWORD = DQWORD = 128bits, mas por definição "palavra" é o tamanho do operador e se em algum manual o fabricante citar "WORD" ele não estara necessariamente se referindo a um dado de 16bits.

Mais detalhes: http://en.wikipedia.org/wiki/Word_(Computing)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...