Ir ao conteúdo
  • Cadastre-se

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


alyssonr

Posts recomendados

  • Membro VIP

Dornel,

No caso do Athlon 64 (64kb no L1) o cache-hit (porcentagem de acertos) é algo em torno de 99%, se aumentar o L1 para 1MB aumentasse essa taxa para 99,9% com o custo de 1 ciclo a mais teríamos ganho em 0,9% dos casos e perda em 99% dos casos, se o aumento do cache compensasse o aumento da latência pode apostar que já teriam feito isso.

alyssonr,

Nos processadores com a controladora integrada o acesso a RAM é feito na velocidade... da RAM...

A vantagem é retirar o intermediário (chipset) que reduz a latência, mesmo assim a latência ainda é muito alta, um indicativo que ainda tem muito o que melhorar nessa área.

Link para o comentário
Compartilhar em outros sites

Agora, a quantia de dados que endereçariamos em uma cache L1 de 1mb, poderiamos evitar zilhoes de acessos a memoria ram, muiiiiito mais lenta, ganhando muita performance final.
No caso do Athlon 64 (64kb no L1) o cache-hit (porcentagem de acertos) é algo em torno de 99%, se aumentar o L1 para 1MB aumentasse essa taxa para 99,9% com o custo de 1 ciclo a mais teríamos ganho em 0,9% dos casos e perda em 99% dos casos, se o aumento do cache compensasse o aumento da latência pode apostar que já teriam feito isso.

Eu sempre ouvi falar de 90%, para os dois caches (L1 e L2), mas acredito que você esteja certo mesmo. Meus dados são desatualizados :(

O real problema de L1 pequenas é o espaço no processador e tambem o alto custo de ter caches L1 grandes.

Não é apenas este problema, como já vimos. Mas é um dos principais. As caches já ocupam mais da metade do espaço dos processadores de hoje, graças a incompetência dos fabricantes de memórias "comuns", ao grande tamanho das placas mães e a preguiça dos fabricantes de processadores. Sem contar que o L1 ocupa um local priveligiado no core, com pequeno espaço para aumentá-lo.

alyssonr,

Nos processadores com a controladora integrada o acesso a RAM é feito na velocidade... da RAM...

A vantagem é retirar o intermediário (chipset) que reduz a latência, mesmo assim a latência ainda é muito alta, um indicativo que ainda tem muito o que melhorar nessa área.

Causa uma boa vantagem no acesso, mas infelizmente, uma combinação de problemas do core K8 causa uma tremenda diminuição dessas vantagens. tanto que eu já vi alguns testes em que com os prefetch´s um Woodcrest perde do K8 por menos de 20% nas latências de acesso. Na real, se a AMD fosse mais esperta, já teria previsto desde o início da K7 que usar um cache L1 2-Way Associative (valeu pela correção) era um grande erro de estratégia. Hoje em dia com metade do L1 muitos acreditam que o Core obterá a mesma taxa de acertos. Sem contar a incapacidade dos K8 de usar execução fora de ordem em Loads, etc.

Link para o comentário
Compartilhar em outros sites

Dornel,

No caso do Athlon 64 (64kb no L1) o cache-hit (porcentagem de acertos) é algo em torno de 99%, se aumentar o L1 para 1MB aumentasse essa taxa para 99,9% com o custo de 1 ciclo a mais teríamos ganho em 0,9% dos casos e perda em 99% dos casos, se o aumento do cache compensasse o aumento da latência pode apostar que já teriam feito isso.

1 - Mas com a controladora vindo dentro do cpu agora não fica menor a latencia da memo ram devido ao acesso ser mais rápido, como citado na questao abaixo?

alyssonr,

Nos processadores com a controladora integrada o acesso a RAM é feito na velocidade... da RAM...

A vantagem é retirar o intermediário (chipset) que reduz a latência, mesmo assim a latência ainda é muito alta, um indicativo que ainda tem muito o que melhorar nessa área.

2 - Mas perae, se a controladora esta dentro do CPU e esta acessa a ram na velocidade do FSB da ram(to certo?!) sem o intermedio do chip7, como é feita "transferencia dos dados", pois pelo que eu saiba existe um barramento de dados e de endereços que a controladora usa pra acessar a memo ram para receber/enviar dados/endereços de memoria, como seria isso agora, por exemplo em placas-mae ASUS P4S8X-MX as especificaçoes de memoria ram citam:

No máximo 2 GB de memória (2 x 184-pin DIMM) DDR 400**/333 non-ECC

- Suporta DDR400/333 com FSB533

- Suporta DDR333 com FSB800

**

1. Quando usa um CPU FSB800 com memória DDR 400MHz, a motherboard funciona a 333MHz por definição.

2. Quando usa um CPU FSB533 com memória DDR 400MHz, a motherboard funciona a 400MHz por definição.

- No item 1 da ASUS, caso a aplicacao exista, a memoria seria acessada a 400MHz(FSB memo ram) ou a 333MHz(FSB placa-mãe)?!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Causa uma boa vantagem no acesso, mas infelizmente, uma combinação de problemas do core K8 causa uma tremenda diminuição dessas vantagens. tanto que eu já vi alguns testes em que com os prefetch´s um Woodcrest perde do K8 por menos de 20% nas latências de acesso.

Com o prefetch a latência pode ser totalmente mascarada, não da para fazer esse tipo de comparação,

E como tambem não da para comparar a latência do Woodcrest com a do K8 ou Conroe, o primeiro usa FB-DIMMs que tem uma latência muito alta, mas por outro lado permite uma quantidade quase infinita de memória.

Na real, se a AMD fosse mais esperta, já teria previsto desde o início da K7 que usar um cache L1 Direct Mapped (salvo engano) era um grande erro de estratégia. Hoje em dia com metade do L1 muitos acreditam que o Core obterá a mesma taxa de acertos. Sem contar a incapacidade dos K8 de usar execução fora de ordem em Loads, etc.

Desde o K7 eles usam o L1 de dados e intruções sendo 2-way (e não direct mapped), a ideia era achar a linha a ser substituída o mais rápido possível por causa do cache exclusivo, o Conroe usa 8-way e sim, a taxa de acerto é quase a mesma.

1 - Mas com a controladora vindo dentro do cpu agora não fica menor a latencia da memo ram devido ao acesso ser mais rápido, como citado na questao abaixo?

Fica, mas ainda é muito alto, no meu Venice 2.0GHz as latências são:

L1: 3 ciclos

L2: 12 ciclos

mem: 100+ ciclos

Se fosse um XP (controladora no chipset) a latência da memória pulava para mais de 200 ciclos, ou seja, no K-8 isso melhorou, mas ta longe de ser ideal.

2 - Mas perae, se a controladora esta dentro do CPU e esta acessa a ram na velocidade do FSB da ram(to certo?!) sem o intermedio do chip7, como é feita "transferencia dos dados", pois pelo que eu saiba existe um barramento de dados e de endereços que a controladora usa pra acessar a memo ram para receber/enviar dados/endereços de memoria, como seria isso agora, por exemplo em placas-mae ASUS P4S8X-MX as especificaçoes de memoria ram citam:

No máximo 2 GB de memória (2 x 184-pin DIMM) DDR 400**/333 non-ECC

- Suporta DDR400/333 com FSB533

- Suporta DDR333 com FSB800

**

1. Quando usa um CPU FSB800 com memória DDR 400MHz, a motherboard funciona a 333MHz por definição.

2. Quando usa um CPU FSB533 com memória DDR 400MHz, a motherboard funciona a 400MHz por definição.

- No item 1 da ASUS, caso a aplicacao exista, a memoria seria acessada a 400MHz(FSB memo ram) ou a 333MHz(FSB placa-mãe)?!

Achei essa pergunta bem confusa... O que controladora integrada tem haver com P4?

Link para o comentário
Compartilhar em outros sites

Com o prefetch a latência pode ser totalmente mascarada, não da para fazer esse tipo de comparação,

E como tambem não da para comparar a latência do Woodcrest com a do K8 ou Conroe, o primeiro usa FB-DIMMs que tem uma latência muito alta, mas por outro lado permite uma quantidade quase infinita de memória.

Desde o K7 eles usam o L1 de dados e intruções sendo 2-way (e não direct mapped), a ideia era achar a linha a ser substituída o mais rápido possível por causa do cache exclusivo, o Conroe usa 8-way e sim, a taxa de acerto é quase a mesma.

Fica, mas ainda é muito alto, no meu Venice 2.0GHz as latências são:

L1: 3 ciclos

L2: 12 ciclos

mem: 100+ ciclos

Se fosse um XP (controladora no chipset) a latência da memória pulava para mais de 200 ciclos, ou seja, no K-8 isso melhorou, mas ta longe de ser ideal.

Achei essa pergunta bem confusa... O que controladora integrada tem haver com P4?

É, realmente me equivoquei quanto a isso, afinal as controladoras internas aos cpu's somente nos AMD K8, certo ... mesmo assim, obrigado.

...

...

...

Link para o comentário
Compartilhar em outros sites

Com o prefetch a latência pode ser totalmente mascarada, não da para fazer esse tipo de comparação,

E como tambem não da para comparar a latência do Woodcrest com a do K8 ou Conroe, o primeiro usa FB-DIMMs que tem uma latência muito alta, mas por outro lado permite uma quantidade quase infinita de memória.

Concordo absolutamente. Comparar latência em programas como ScienceMark, que deixam os prefetchers atuarem feito loucos, é uma das maiores besteiras que os sites de benchmarks fazem. Eu só estava ali fazendo uma comparação para mostrar como o K8 desperdiça alguma coisa da imensa vantagem que tem sobre o Conroe devido a velhice de sua arquitetura. Afinal existem muitos programas que se beneficiam de bons prefetchs e de um subsistema de cache superior.

Desde o K7 eles usam o L1 de dados e intruções sendo 2-way (e não direct mapped), a ideia era achar a linha a ser substituída o mais rápido possível por causa do cache exclusivo, o Conroe usa 8-way e sim, a taxa de acerto é quase a mesma.

Eu não sabia dessa da linha a ser substituída, tinha ideia que era alguma coisa relacionada ao cache exclusivo. Valeu!

Quanto ao fato de ser DM, foi um engano feio, desculpe. É que eu escrevi com o intuito de editar a informação correta depois, mas esqueci.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Concordo absolutamente. Comparar latência em programas como ScienceMark, que deixam os prefetchers atuarem feito loucos, é uma das maiores besteiras que os sites de benchmarks fazem. Eu só estava ali fazendo uma comparação para mostrar como o K8 desperdiça alguma coisa da imensa vantagem que tem sobre o Conroe devido a velhice de sua arquitetura. Afinal existem muitos programas que se beneficiam de bons prefetchs e de um subsistema de cache superior.

Eu não sabia dessa da linha a ser substituída, tinha ideia que era alguma coisa relacionada ao cache exclusivo. Valeu!

Quanto ao fato de ser DM, foi um engano feio, desculpe. É que eu escrevi com o intuito de editar a informação correta depois, mas esqueci.

1 - A reedição de caches em placas-mãe(agora trabalhando com as das cpu`s) seria um retrocesso?!

2 - Ou melhor, bastante memoria RAM pra ser carregado no boot do micro o máximo possivel de instruções, ficando o cpu restrito as instruções "mais especiais"?!

Link para o comentário
Compartilhar em outros sites

1 - A reedição de caches em placas-mãe(agora trabalhando com as das cpu`s) seria um retrocesso?!
Você está propondo por mais cache um pouco mais lento nas placas-mãe além do da CPU? Cinco desvantagens:

1- Placas mães mais caras.

2- Pouca largura de banda para o cache trabalhar com toda a sua velocidade (o FSB e mesmo o HT seriam um gargalo para qualquer SRAM atual).

3- Não vale a pena considerando que as CPU´s são produzidas em técnicas superiores as das memórias e que elas possuem transistores de sobra para gastar (se é pra por cache, melhor por na CPU mesmo).

4- Aumentaria a latência para acesso a memória (a CPU teria de procurar em dois caches rápidos e mais em um lento antes de atingir a memória).

5- Não traria muito mais vantagem (as aplicações de gente normal atuais não demandam mais de 4 ou 8 MB de cache, e para servidores existem processadores com quantidades de cache enormes e larguras de banda inchadas).

2 - Ou melhor, bastante memoria RAM pra ser carregado no boot do micro o máximo possivel de instruções, ficando o cpu restrito as instruções "mais especiais"?!
O tanto de memória RAM usado em um micro atual já permite isto. O cache só é usado mesmo para instruções especiais. Agora se você estava pensando numa RAM mais rápida:
<div class='quotetop'>QUOTE
2 - Porque os FSB das placas-mae geralmente sao muito menores que os dos cpu's? Porque?! Existe algum "limitador" por ser assim, acho q somente em placas-mae com 386 e alguns 486 que o FSB da placa-mãe era o mesmo do cpu, após os clocks dos cpu's aumentarem pra mais de 50MHz, começamos a ter que configurar o FSB, porque ocorre isso, devido aos slots de expansao, memo ram, superI/O, ...?
1- Placas-mães usam tecnologia mais antiga e que evoluiu menos que a dos processadores.

2- Placas-mães são mais baratas, e são um hardware mais fixo, o que diminui o interesse nelas.

3- Placas-mães são grandes.

De novo um post gigante!

<div class='quotetop'>QUOTE
1 - Seriam por causa dos chipsets? .... afinal o que causa a lentidao de aumento de velocidade em memorias ram? Porque de uns anos pra k sempre comentamos sobre suas latencias, desempenhos, fabricantes cada vez mais buscando solucoes que parecem demorar uma eternidade pra sentirmos uma real diferenca, ainda não entendo o porque dessa diferenca em relação aos cpus?!!!!
Sim, também é por causa dos chipsets. Mas arrisco-me a dizer que eles não são os principais culpados.

A principal tecnologia usada nas placas-mãe (PCI, ou placas de circuito impresso), por ser mais antiga e simples que as tecnologias usadas em microprocessadores, evolui mais lentamente. De fato, enquanto na indústria de processadores atua a lei de Moore (dobra do número de componentes a cada 18 meses), na indústria de placas de circuito impresso o número de componentes pouco mudou desde a invenção da tecnologia.

Quanto a dificuldade para extrair mais desempenho das memórias, é devido aos seus grandes tamanhos, que aumentam a latência de procura, obrigam o uso de DRAM´s (mais lentas), um certo desinteresse por parte dos fabricantes (não existe uma guerra entre os fabricantes de RAM como existe entre Intel e AMD), além das dificuldades de evoluir uma tecnologia datada e limitada como a de memórias DRAM. Além disso, é preciso lembrar que a RAM está fisicamente distante do processador, e é um componente grande. Tudo isso combinado com mais alguns detalhes (memórias não são exatamente minha praia ) torna as RAM´s lentas.

Link para o comentário
Compartilhar em outros sites

XBOX: Eu acho que você, alyssonr poderia talvez renomear o tópico para: "Discussões sobre tecnologias de cache e memórias (Anteriormente: Porque a memoria cache é dividida em 2 ou 3 partes)". É que tem alguma informação técnica nesse tópico que o pessoal pode deixar passar batido por que já sabe a resposta da pergunta original.

1 - E como mudar o nome do TÓPICO para este sugestionado?!

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