Ir ao conteúdo
  • Cadastre-se

Discussões sobre tecnologias de cache e memórias ...


alyssonr

Posts recomendados

Postado Originalmente por alyssonr@03 de maio de 2006, 15:03

Recentemente em sala de aula nos estavamos comentando sobre memorias cache e veio a duvida do porque q as memorias sao "divididas" em L1, L2 e L3??? Não seria mais interessante termos uma memoria cache somente no tamanho total das 3?? Alguem sabe porque aí?

as cache não são divididas, são de tipos diferentes, e tamanhos diferentes, por exemplo, a L1 é menos e mais cara q a L2, portantoa L1 usa os arquivos q estão em uso pratiamente no momentodo uso pelo processador, enquanto que a L2 é maior e mais barata, portanto ficam nela os arquivos que acabaram d ser usado pela CPU e podem ser usados d novo, mas não são estão prioritarios qnt os q ficam na L1, por isso q não pode "juntar"...

c desse acho q até o hd devia ser feito d L1, ai ia custar alguns milhões

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Na verdade a L1 e a L2 possuem o mesmo custo que é bem maior que o DRAM e muito, mas muito maior que o HD,

O que muda é a latência, quanto maior a quantidade de memória maior a latência, a L1 poderia ter 1MB sem que o PC tivesse um custo abusivo, mas ai a latência seria muito alta e o sistema ficaria lento.

Link para o comentário
Compartilhar em outros sites

O cache L1 é interno ao processador ocupa parte do núcleo então não pode ser muito grande, na verdade com a dimunuição dos núcleos (a intel já está usando 65 nanômetros ) a tendência do cache L1 é diminuir. Mas ele é muito importante pois como ele é interno ele tem a menor latência.

Pelo fato do cahce L1 ter uma tamanho limitado, e para se ter um maior desempenho é necessário mais memória cache fizeram o cache L2, que fica fora do núcleo e pode ter um tamanho maior.

Já no cache L3 dempende da arquitetura para a resposta.

No caso do k6-III o cache L3 era apenas um resquício da tecnologia antiga que ficava na placa mãe.

Já no caso do pentium Extreme Edition, eu não sei o por que...

Também acho que o cache a mais poderia ficar simplesmente na L2

Em todo caso os novos pentiuns estão vindo simplesmente com mais L2...

No caso de processadores para servidores que precisam de muita memória cache, ai já vai depender da implementação do cahces.

Quanto maior cache maior a latência, então muito cache pode diminuir o desempenho.

Exemplo: imagina procurar um livro na sua prateleira onde tem 10 livros, agora imagina procurar um livro na em uma estante de biblioteca onde tem centenas de livros.

Então para processadores para servidor tem que entender a estratégia de implementação.

Exemplo:

Ao invés de colocar 12 MB de cahce L2 talvez seja melhor colocar

4 MB de cache L2 e 8MB Mb cache L3

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

<div class='quotetop'>(pereira13 @ 04 de maio de 2006, 10:52) </div>

O cache L1 é interno ao processador ocupa parte do núcleo então não pode ser muito grande, na verdade com a dimunuição dos núcleos (a intel já está usando 65 nanômetros ) a tendência do cache L1 é diminuir.

Quando o núcleo diminui (passa a usar 65nm ao invés de 90nm) o tamanho ocupado por 64kb de cache tambem diminui.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

O cache L1 é interno ao processador ocupa parte do núcleo então não pode ser muito grande, na verdade com a dimunuição dos núcleos (a intel já está usando 65 nanômetros ) a tendência do cache L1 é diminuir. Mas ele é muito importante pois como ele é interno ele tem a menor latência.

Pelo fato do cahce L1 ter uma tamanho limitado, e para se ter um maior desempenho é necessário mais memória cache fizeram o cache L2, que fica fora do núcleo e pode ter um tamanho maior.

Já no cache L3 dempende da arquitetura para a resposta.

No caso do k6-III o cache L3 era apenas um resquício da tecnologia antiga que ficava na placa mãe.

Já no caso do pentium Extreme Edition, eu não sei o por que...

Também acho que o cache a mais poderia ficar simplesmente na L2

Em todo caso os novos pentiuns estão vindo simplesmente com mais L2...

No caso de processadores para servidores que precisam de muita memória cache, ai já vai depender da implementação do cahces.

Quanto maior cache maior a latência, então muito cache pode diminuir o desempenho.

Exemplo: imagina procurar um livro na sua prateleira onde tem 10 livros, agora imagina procurar um livro na em uma estante de biblioteca onde tem centenas de livros.

Então para processadores para servidor tem que entender a estratégia de implementação.

Exemplo:

Ao invés de colocar 12 MB de cahce L2 talvez seja melhor colocar

4 MB de cache L2 e 8MB Mb cache L3

Primeiro, os processadores de Duo Core como ficam as caches L1 no núcleo, sao duas, ou seja, uma em cada núcleo??

Segundo, e voltando as antigas, no caso de alguns P3 q acessavam as caches na metade da velocidade do Core, se não me engano os de 512KB eram assim, o desempenho é melhor ou pior que os de 256KB q acessavam na mesma velocidade do Core?

Terceiro, as L2 e supostas L3 ficam onde então?

Quarto, qual a vantagem de se ter memorias caches grandes se você mesmo colocou um exemplo excelente, daquele de procurar os livros, não ficariam lentos os desempenhos dos cpu`s?? Não seria melhor termos 3 L1 ao invés de L1, L2 e L3??

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Primeiro, os processadores de Duo Core como ficam as caches L1 no núcleo, sao duas, ou seja, uma em cada núcleo??

Cada núcleo possui L1 própria,e a L2 é compartilhada entre eles.

Segundo, e voltando as antigas, no caso de alguns P3 q acessavam as caches na metade da velocidade do Core, se não me engano os de 512KB eram assim, o desempenho é melhor ou pior que os de 256KB q acessavam na mesma velocidade do Core?

Depende da aplicação, geralmente a cache mais rapida levava a melhor.

Terceiro, as L2 e supostas L3 ficam onde então?

Depende do processador, atualmente ficam ao lado do núcleo.

Quarto, qual a vantagem de se ter memorias caches grandes se você mesmo colocou um exemplo excelente, daquele de procurar os livros, não ficariam lentos os desempenhos dos cpu`s?? Não seria melhor termos 3 L1 ao invés de L1, L2 e L3??

Procurar em 3 L1 leva mais tempo do que procurar em apenas 1...

A cache é dividida em vários níveis justaente para não ficar lento,

Se só existisse L1 e essa fosse muito grande a latência seria muito alta e a CPU ficaria lenta, se ela fosse muito pequena o processador precisaria acessar a memória muitas vezes e ficaria lento do mesmo jeito,

Tendo dois (ou mais) níveis junta o melhor dos dois mundos, a L1 fica com uma latência baixa e se não encontrar na L1 tem a L2 grande, que apesar de mais lenta ainda é bem mais rapida que a memória.

Link para o comentário
Compartilhar em outros sites

Quando a l2 ficar extremamente grande,a intel não se dará bem com a smartcache (tecnologia de cache compartilhado)...Então o cache l3 passará a ser compartilhado,e daí o L2 fica mais rápido.Usar a l3 é a única forma de botar caches monstruosos sem lerdar muito..

A Intel sempre usou caches l1 pequenos para evitar a latência..

Link para o comentário
Compartilhar em outros sites

Quarto, qual a vantagem de se ter memorias caches grandes se você mesmo colocou um exemplo excelente, daquele de procurar os livros, não ficariam lentos os desempenhos dos cpu`s?? Não seria melhor termos 3 L1 ao invés de L1, L2 e L3??

A cache L1 fica interna ao processador por isso ela não pode ser muito grande.

A Amd usa 128 KB e a intel usa 64KB...

Já o cahce L2 externo que fica na lateral do núcleo do processador e pode ter tamanho mais variado.

E sobre os tamanhos depende da implementação...

Como eu falei, ter um cahce L2 de 2 MB e ter outro cache L2 de 2 MB pode não ser muito bom por aumentar muito a latência.

Se for necessário mais memória cache pode ser melhor manter os 2 Mb de cache L2 e criar uma nova cache L3... :zoio:

A Intel sempre usou caches l1 pequenos para evitar a latência..

Verdade a inteal tentou até usar mini caches de 8 Kb nos primeiros pentium 4...

Só que a intel tem um problema com as memórias cache, eles usam a implementação inclusiva onde o que tem no cache L1, tem no cache L2.

Ou seja para eles colocarem o cahce L3, tem que ter o tamanho do cache L1 e do cache L2 e mais um pouco para o cache L3 ser funcional.

A intel não tem a memória cache igual da AMD onde o cache L1 e o L2 são exclusivos. No esquema Da AMD o cache L1 pode ser maior que o L2, exemplo o duron, ou ter o mesmo tamanho o cache L1 e o L2 exemplo o sempron.

Link para o comentário
Compartilhar em outros sites

Não considero isso um problema...

Na verdade,é para não encarecer o processador...

Pense assim..

A memória L1 sempre tem menos latência..Logo,se a L2 for muito menor,terá uma latência parecida...

E assim,a cache L1 perde efetividade...Quanto menor a diferença da latência da L1 pra L2 mais rápida vai ser a L2 e todo o espaço usado na L1 (que,na maioria das vezes,é uma DRAM mais cara que a L2,por ter que usar baixas latências)acaba sendo disperdiçado.É a mesma coisa que trocar as quantidades e equilibrar latências (diminui o tamanho do cache l2,aumenta do l1,e as latências ficam com uma menor diferença)

Digo isso porque quanto menos memória cache mais rápida ela é.

Link para o comentário
Compartilhar em outros sites

A cache L1 fica interna ao processador por isso ela não pode ser muito grande.

A Amd usa 128 KB e a intel usa 64KB...

Já o cahce L2 externo que fica na lateral do núcleo do processador e pode ter tamanho mais variado.

E sobre os tamanhos depende da implementação...

Como eu falei, ter um cahce L2 de 2 MB e ter outro cache L2 de 2 MB pode não ser muito bom por aumentar muito a latência.

Se for necessário mais memória cache pode ser melhor manter os 2 Mb de cache L2 e criar uma nova cache L3... :zoio:

Verdade a inteal tentou até usar mini caches de 8 Kb nos primeiros pentium 4...

Só que a intel tem um problema com as memórias cache, eles usam a implementação inclusiva onde o que tem no cache L1, tem no cache L2.

Ou seja para eles colocarem o cahce L3, tem que ter o tamanho do cache L1 e do cache L2 e mais um pouco para o cache L3 ser funcional.

A intel não tem a memória cache igual da AMD onde o cache L1 e o L2 são exclusivos. No esquema Da AMD o cache L1 pode ser maior que o L2, exemplo o duron, ou ter o mesmo tamanho o cache L1 e o L2 exemplo o sempron.

- Pode ser explicado melhor essa relação de memórias cache INCLUSIVA da Intel e EXCLUSIVA da AMD, nunca tinha ouvido falar disso?!

- Como assim, tudo q tem na L1 tem tambémém na L2? Não teria fundamento isso pois teria o que tem em uma cache na outra, é redundancia isso, pra que, qual o ganho?

- E da AMD, Exclusivas, tentei imaginar me baseando nas da Intel(inclusivas) o contrário né, mas como? O que tem na L1 não tem na L2? Como funciona isso?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

- Pode ser explicado melhor essa relação de memórias cache INCLUSIVA da Intel e EXCLUSIVA da AMD, nunca tinha ouvido falar disso?!

Inclusiva é quando a pagina (dado) aparece em todos os níveis, ex:

L1 A, C

L2 A, B, C, D, E, F, G, H

Exclusiva é quando só aparece em um dos níveis:

L1 A, C

L2 B, D, E, F, G, H, I, J

- Como assim, tudo q tem na L1 tem tambémém na L2? Não teria fundamento isso pois teria o que tem em uma cache na outra, é redundancia isso, pra que, qual o ganho?

- E da AMD, Exclusivas, tentei imaginar me baseando nas da Intel(inclusivas) o contrário né, mas como? O que tem na L1 não tem na L2? Como funciona isso?

Realmente é redundante, mas existe um motivo para isso, na exclusiva quando o processador não encontra o que precisa na L1, mas encontra na L2 ele precisa descartar alguma coisa da L1 para liberar espaço, ele não descarta isso de vez, ele copia para a L2 e então copia o que ele estava procurando da L2 para a L1,

na inclusiva ele só copia da L2 para a L1, não existe a preocupação em copiar o conteudo a ser descartado da L1 para a L2 porque ele já esta replicado na L2,

os processadores da Intel usam o modelo inclusivo porque a L2 é muito maior que a L1 (32kb de L1 e 256kb de L2 para o P3), esses 12,5% são muito pouco para compensar a maior complexidade,

quando a AMD lançou o Athlon com cache integrada o processador tinha 128kb de L1 e 256kb de L2, o modelo exclusivo significava um ganho de 50% no tamanho da cache, ai era mais vantajoso usar o modelo exclusivo.

Link para o comentário
Compartilhar em outros sites

Pessoal tenho um P3 1,0 Ghz!

Passei um programa CPU-Z como é a memoria L1?

Elas são dividas? Num topico aqui do forum vi que meu processador tem L1 de 32 KB, nesse programa está assim:

L1 Data 16 Kbytes

L1 Code 16 Kbytes

Level 2 256 Kbytes

sendo assim tenho 32KB na L1 e 256 KB na L2?

Obrigado

Link para o comentário
Compartilhar em outros sites

eu tenho um pIII 450 586mb grafica de m***d de 512kb de L2 a metada da velocidade 223mhz

e um 850 com 256kb sincrone 512 mb e grafica on board

o 450 é bastante mais rápido em quase tudo expto no fm2005

onde ele é um bocadinho mais rápido pouco mesmo mas de resto é quase tudo igual. pormenor importante a mother do 850 é da fujitsu

e é uma M*****************************D do piorio se calhar é por causa disso, não sei

Link para o comentário
Compartilhar em outros sites

é bom salientar que os caches são memorias internas dos processadores usadas para guardar dados assim como os hds ou memorias ddr e afins. para se entender o porque da diferenciação dos cache, é preciso entender a destinação de tais recursos. Dados menores e de ação rapida... muitas vezes arquivos de sistema predominam na L1, ( que tem menor latência ). na L2 e L3 dados maiores, geralmente ligados a arquivos de mídea... e geralmente são unicos... ou seja.... são apenas eles naquele dado momento que estão arquivados e sendo processados na L2... por isso a L2 grande de fato melhora um sistema onde se usa muito processamento grafico ou sonoro.

Link para o comentário
Compartilhar em outros sites

é bom salientar que os caches são memorias internas dos processadores usadas para guardar dados assim como os hds ou memorias ddr e afins. para se entender o porque da diferenciação dos cache, é preciso entender a destinação de tais recursos. Dados menores e de ação rapida... muitas vezes arquivos de sistema predominam na L1, ( que tem menor latência ). na L2 e L3 dados maiores, geralmente ligados a arquivos de mídea... e geralmente são unicos... ou seja.... são apenas eles naquele dado momento que estão arquivados e sendo processados na L2... por isso a L2 grande de fato melhora um sistema onde se usa muito processamento grafico ou sonoro.

Se sao os arquivos de sistema q ficariam na L1, quais seriam, os do windows por exemplo ou os de controladores de memoria, endereços de IRQ, BIOS??

Link para o comentário
Compartilhar em outros sites

1 - E o controle das memórias caches são feitos atualmente pelos CPU's, o núcleo mais precisamente, certo?!

2 - Em micros antigas, placas-mae antigas, as memórias caches eram nas próprias placas-mae, quem as controlava, CPU ou Chipset?

3 - Os Buffers de HD podem ser considerados memórias caches de HD?

4 - E a memória virtual pode ser chamada de memória cache da RAM, fazendo o mesmo papel que a memória cache do processador apesar de ser no HD?

Link para o comentário
Compartilhar em outros sites

1- Sim..

2-Chipset,via FSB (n sei se é mesmo pelo chipset)

3- Pode ser considerado

2-Não,pois se há muita ram,eu posso configurar pra usar apenas a RAM,a SWAP (memo virtual) é apenas uma memória de apoio,se não,seria muito difícil fazer esse programas que temos hoje com um desempenho satisfatório.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!