Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
alyssonr

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

Recommended Posts

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

Po, parece piada mas é verdade, estava vendo se encontrava alguma coisa a respeito dessa questao acima colocada e vejam o que achei sobre:

Drive promete melhoria no desempenho e economia de bateria pela combinação entre memórias flash e magnética.

A Samsung planeja revelar na próxima semana o protótipo de um disco rígido que pode melhorar o desempenho do sistema e estender a vida da bateria de notebooks, disse a companhia em comunicado.

O lançamento é um drive híbrido, por misturar espaço de armazenamento no padrão Flash com o padrão formato magnético. A memória flash age como um buffer de armazenamento, recolhendo dados até que esteja cheia, para então gravar as informações no disco.

Este processo corte a quantidade de atividade no disco - tipicamente, o novo drive roda apenas alguns segundos a cada 10 ou 20 segundos - o que significa que a vida da bateria pode ser aumentada por até 10%, de acordo com medições da Samsung.

Existem também benefícios de desempenho, já que os dados armazenados no buffer podem ser lidos pelo PC de maneira muito mais rápida do que se tivessem que ler acessados direto do disco. A inicialização de um PC com uma HD híbrida é entre 8 segundos e 25 segundos mais rápida que o normal, disse a Samsung.

Parece piada mesmo, mas a Samsunga acaba de responder a nossa pergunta tambémém mano Spelforce. Abrax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejam só as novas tendências de memórias cache nos novos processadores da AMD e Intel que achei agora neste link

Conhecido pelo codinome “Deerhound”, este processador será um quadrinuclear integral, ou seja, estará além da justaposição de dois binucleares em um mesmo “die”. Como pode-se notar, a litografia de 65 nm e o competente “layout” possibilitou à AMD economizar espaço de modo surpreendente: o processador binucleares da revisão F (90 nm) ocupam uma área de die da ordem de 220 mm², o quadrinuclear ocupará apenas 150 mm². Isso fará com que haja competição em compactividade - por exemplo, a área do processador Conroe é de 140 mm², mas vale ressaltar que este último é binuclear.

Ao contrário dos Kentsfield e Clovertown da Intel, terá 512 KB de cache L2 independentes acompanhado de um L3 unificado com 2 MB. Na questão de memória, o K8L pode-se dirigir aos 48 bits levando-o a uma quantidade de memória endereçável de 256 também, contra 1 também atual. Além disso o controlador integrado da CPU saberá utilizar memórias DDR2 e DDR3 quando esta última estiver disponível e até mesmo o FB-DIMM, sem obrigar a utilização de uma das três interfaces por padrão. A AMD mostra-se mais flexível que a Intel, que forçou a adoção do FB-DIMM no processador servidor Woodcrest.

Conhecido pelo codinome “Deerhound”, este processador será um quadrinuclear integral

1 - Tendência de irem mesmo para os vários núcleos os CPU`s. Li uma vez sobre o CEO da AMD que prometia pra 2008 CPU`s com 4 núcleos ou mais, sendo um núcleos com cada função especifica, por exemplo, um núcleo pra multimidia - jogos e internet, outro pra banco de dados, outro pra leitura de discos e outro pra aplicacoes soho, pelo jeito vai acabar nisso mesmo!

Isso fará com que haja competição em compactividade

2 - Perfeito isso de competicao pela compactividade. Perfeito!

Ao contrário dos Kentsfield e Clovertown da Intel, terá 512 KB de cache L2 independentes acompanhado de um L3 unificado com 2 MB.

3 - A tendência pelo visto é a L1 e L2 dentro dos núcleos e a L3 fora compartilhada entre todos os núcleos, será mesmo assim que entendi?!

Na questão de memória, o K8L pode-se dirigir aos 48 bits levando-o a uma quantidade de memória endereçável de 256 também, contra 1 também atual.

4 - Como chegaram a este tamanho de memória endereçável? Basearam-se em que?

Além disso o controlador integrado da CPU saberá utilizar memórias DDR2 e DDR3 quando esta última estiver disponível e até mesmo o FB-DIMM, sem obrigar a utilização de uma das três interfaces por padrão. A AMD mostra-se mais flexível que a Intel, que forçou a adoção do FB-DIMM no processador servidor Woodcrest.

5 - A AMD quebrou a Intel colocando o controlador de memória RAM dentro dos CPU`s, agora os fabricantes de placas-mae tão tranquilos, basta formar o barramento pras memórias na placa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tanto a memória cache L1 quanto a L2 e L3 são constituídas por transistores ( portanto, são SRAM). Elas são divididas devido apenas as diferentes necessidades dos programas, que podem tanto precisar de caches rápidos e menores (L1), quanto caches mais lentos (L2 e L3), e também por tradição, já que antigamente apenas o cache L1 ficava no die do processador, enquanto o L2 permanecia externo (placas soquete 7, por exemplo). E sim, respondendo a sua pergunta, o cache das placas mãe antigas era gerenciado pela placa-mãe. Aliás, era a placa-mãe que definia o quanto de memória a máquina podia cachear (o que gerou MUITA confusão na época).

Quanto as diferenças de velocidade, ficam por conta da necessidade de analisar um maior número de posições de memória em busca do dado (como a metade do fórum já falou :(), da maior distância física entre as caches L2 e L3 e as unidades de execução (do qual a outra metade falou :wacko: ) e também a própria constituição da memória L1, que é mais dispendiosa e tem menor latência (devido a uma controladora mais rápida e avançada, ao uso de dual-port e arquitetura Harvard, que permite transmitir dois ou até quatro dados em um ciclo, e a utilização de mais transistores).

E quanto aos caches exclusivos e inclusivos, a AMD explica bem melhor do que eu, mas, para simplificar, no cache inclusivo os dados existentes nos níveis superiores são sempre os dados dos níveis inferiores mais alguma coisa, enquanto no cache exclusivo os dados escritos no cache L1 (que se encontravam no L2) são apagados, graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1. A vantagem é óbvia, ganha-se espaço no L2 e pode-se usar L2 menores que o L1, mas perde-se em simplicidade e possivelmente em velocidade, já que esse buffer teoriamente poderia ficar cheio e impedir a leitura de cache até vagar uma posição. Ah, e antes que me chamem de intelzista, é melhor claro que essa situação provavelmente nunca ocorrerá numa aplicação real <_< .

Compartilhar este post


Link para o post
Compartilhar em outros sites

alyssonr,isso faz me lembrar da nova política da AMD

A AMD (INFELIZMENTE) pretende adotar tecnologia anti-HTT,vários núcleos que se comportam como um (um exemplo está no artigo que o alyssonr botou)..Isto quer dizer que,futuramente Intel e AMD estarão com 2 tecnologias uma contrariamente a outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tanto a memória cache L1 quanto a L2 e L3 são constituídas por transistores ( portanto, são SRAM). Elas são divididas devido apenas as diferentes necessidades dos programas, que podem tanto precisar de caches rápidos e menores (L1), quanto caches mais lentos (L2 e L3), e também por tradição, já que antigamente apenas o cache L1 ficava no die do processador, enquanto o L2 permanecia externo (placas soquete 7, por exemplo). E sim, respondendo a sua pergunta, o cache das placas mãe antigas era gerenciado pela placa-mãe. Aliás, era a placa-mãe que definia o quanto de memória a máquina podia cachear (o que gerou MUITA confusão na época).

1 - Tradição? Estariam os programadores "amarrados" a padrões antigos de comunicação, sendo que, entre os dispositivos atuais isso não ocorre, sendo assim, as memórias cache são "pequenas" ao que poderiam ser caso esses padrões de programação tivessem(pudessem ter) evoluídos mais rapidamente, como exemplo cito os programas que ainda "demoram" pra "assumir o perfil" de 64bits devido ainda termos muitos micros usando CPU`s 32bits?

2 - A velocidade com que era acessada as caches externas(placas-mae) era a mesma do FSB?

3 - Se era a placa-mãe quem definia o tamanho de memória cacheável, quem determinava este tamanho na realidade eram os chipsets então? Ou CPU`s?

Quanto as diferenças de velocidade, ficam por conta da necessidade de analisar um maior número de posições de memória em busca do dado (como a metade do fórum já falou :(), da maior distância física entre as caches L2 e L3 e as unidades de execução (do qual a outra metade falou :wacko: ) e também a própria constituição da memória L1, que é mais dispendiosa e tem menor latência (devido a uma controladora mais rápida e avançada, ao uso de dual-port e arquitetura Harvard, que permite transmitir dois ou até quatro dados em um ciclo, e a utilização de mais transistores).

3 - Seriam as tecnologias das memórias DDR e DDR-II respectivamente?

E quanto aos caches exclusivos e inclusivos, a AMD explica bem melhor do que eu,

4 - Onde, tens o link?

mas, para simplificar, no cache inclusivo os dados existentes nos níveis superiores são sempre os dados dos níveis inferiores mais alguma coisa, enquanto no cache exclusivo os dados escritos no cache L1 (que se encontravam no L2) são apagados, graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1. A vantagem é óbvia, ganha-se espaço no L2 e pode-se usar L2 menores que o L1,

mas perde-se em simplicidade e possivelmente em velocidade,

5 - Porque perde-se simplicidade e ganha-se em velocidade, de onde tirou isso, como você citou?

já que esse buffer teoriamente poderia ficar cheio e impedir a leitura de cache até vagar uma posição.

6 - Buffer?? De onde? Daqui: graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1?!!

Ah, e antes que me chamem de intelzista, é melhor claro que essa situação provavelmente nunca ocorrerá numa aplicação real

7 - Como assim? Porque?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba, esse tópico rendeu...

O conteúdo das caches é definido da forma mais simples...

Tudo o que o processador lê da memória vai para a cache, quando a cache esta cheia uma linha precisa sair para dar lugar a linha que esta sendo linha, a linha que sai é sempre a que esta a mais tempo sem ser usada, o processador não diferencia arquivos de sistemas, dados importantes ou seja la o que for.

5 - Porque perde-se simplicidade e ganha-se em velocidade, de onde tirou isso, como você citou?

6 - Buffer?? De onde? Daqui: graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1?!!

Como expliquei no post anterior para liberar espaço para um novo item na L1 é preciso transferir algo para o L2 antes...

Supondo que temos na cache:

L1: A, C

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

O processador pede pelo "F", ele primeiro procura na L1, não encontra, nesse caso ele precisara jogar o conteúdo da L1 para a L2 e liberar o espaço para o "F", então ele começa a copiar a linha a mais tempo sem ser usada (por exemplo a "A") para o Victm Buffer (VB, é esse o buffer que o Thiago citou) e começa a procurar pelo "F" na L2, o tempo que ele leva para copiar para o VB e procurar na L2 é o mesmo, assim não ha perdas aqui, assim que achar o dado na L2 ele passa a copiar ele da L2 para a L1, quando terminar a CPU esta pronta para continuar o processamento, até aqui não houve perda de desempenho, mas ele não pode deixar o "A" no VB, ele precisa copiar para o L2, normalmente ele pode fazer isso enquanto a CPU continua o processamento, mas se a CPU pedir outro dado do L2 antes do VB esvaziar havera perda de performace já que a CPU tera que esperar o VB esvaziar antes de continuar, isso leva 4 ciclos no Athlon 64 e 8 no XP, apesar de não ser muito comum esse problema existe.

4 - Como chegaram a este tamanho de memória endereçável? Basearam-se em que?

Acho que faltou uma sigla la, deveria ser 256TB e 1TB, é fácil,

O Athlon 64 hoje tem o barramento de endereços de 40bits, o K8L tera 48bits, 2^40 = 1TB, 2^48 = 256TB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Tradição? Estariam os programadores "amarrados" a padrões antigos de comunicação, sendo que, entre os dispositivos atuais isso não ocorre, sendo assim, as memórias cache são "pequenas" ao que poderiam ser caso esses padrões de programação tivessem(pudessem ter) evoluídos mais rapidamente, como exemplo cito os programas que ainda "demoram" pra "assumir o perfil" de 64bits devido ainda termos muitos micros usando CPU`s 32bits?

Não, no caso da memória cache os programadores não ficam amarrados. Tanto é que tem vários tipos de memória cache.

2 - A velocidade com que era acessada as caches externas(placas-mae) era a mesma do FSB?

Sim, exatamente.

3 - Se era a placa-mãe quem definia o tamanho de memória cacheável, quem determinava este tamanho na realidade eram os chipsets então? Ou CPU`s?

Chipset = placa mãe na frase que você leu. É o chipset que controla a placa mãe e seus barramentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

5 - Porque perde-se simplicidade e ganha-se em velocidade, de onde tirou isso, como você citou?

já que esse buffer teoricamente poderia ficar cheio e impedir a leitura de cache até vagar uma posição.

O Eduardo explicou.

6 - Buffer?? De onde? Daqui: graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1

Sim.

Ah, e antes que me chamem de intelzista, é melhor claro que essa situação provavelmente nunca ocorrerá numa aplicação real

7 - Como assim? Porque?!

Tem que ver o texto dele. Interpretação...

Vou colocar a minha interpretação.

Postado Originalmente por Thiagolckurovski+--><div class='quotetop'>QUOTE(Thiagolckurovski)</div>

E quanto aos caches exclusivos e inclusivos, a AMD explica bem melhor do que eu, mas, para simplificar, no cache inclusivo os dados existentes nos níveis superiores são sempre os dados dos níveis inferiores mais alguma coisa, enquanto no cache exclusivo os dados escritos no cache L1 (que se encontravam no L2) são apagados, graças a uma pequena memória de vinte posições que guarda os dados recentemente gravados no cache L1. A vantagem é óbvia, ganha-se espaço no L2 e pode-se usar L2 menores que o L1, mas perde-se em simplicidade e possivelmente em velocidade, já que esse buffer teoriamente poderia ficar cheio e impedir a leitura de cache até vagar uma posição.

Até aqui parece que ele é intelzista... Porque ele diz que a implementação da AMD perde em simplicidade e perde possivelmente também em velocidade.

Thiagolckurovski

Ah, e antes que me chamem de intelzista, é melhor claro que essa situação provavelmente nunca ocorrerá numa aplicação real

Aqui ele mostra que não é intelzista. Mostra que a implementação da AMD não perderia em velocidade porque em uma aplicação normal isso não aconteceria.

Ao meu ver a implementação da AMD é melhor. É mais eficiente , e a da intel é mais simples.

Antes de me chamarem de AMDzista, é só um ponto de vista. :-BEER

Compartilhar este post


Link para o post
Compartilhar em outros sites

:blink: Valeu Pereira13, por me absolver da culpa terrível de ser um intelzista. E, já que você falou, eu também prefiro mil vezes mais a implementação e as tecnologias da AMD, bem mais elegantes, agradam bem mais um cara que quer fazer EC como eu. E a história do VB eu vi num site, não me lembro o nome, mas eles disseram que em aplicações reais, mesmo as mais terríveis, o victim buffer nunca lotou. Mas se lotasse, seria um desastre, a latência mais que dobraria. :cry:

Quanto as dúvidas do AlyssonR, acho que já foram quase todas respondiads, só duas ficaram em aberto. Vamo lá:

1- Quando eu disse tradição me referi a uma coisa do tipo: "se já fazemos assim e dá certo pra que mudar". Porque é muito complicado mudar a arquitetura de cache de uma máquina, implica em uma série de detalhes, aliás, mesmo grandes empresas como a IBM tremem quando precisam mudar a arquitetura de cache de processadores mais complexos (como os Power5). É mais fácil fazer do jeito que tá, se é que me entende, e não arriscar perder desempenho só para tentar dar uma inovada.

2- Dual Port: tecnologia que permite receber dois dados ou instruções do cache ao mesmo tempo, presente nos Athlon.

Arquitetura Harvard: Esse é complicado e eu não entendo muito (tenho só 15 anos, pô), mas é uma forma de arquitetura que divide a memória em memória de instruções e de dados. É a arquiinimiga da Von Neumann, que diz, entre outras coisas, que se deve ter só uma memória para tudo. Por exemplo, no seu computador a Ram funciona em von Neumann, portanto só existe uma Ram para dados e instruções, já a cache L1 é dividida em duas partes, uma para instruções e uma para dados. Ô troço chato :muro:!

Mas, novamente, o Google e um bom Inglês explicam bem melhor que eu.

Ah, e só pra encher o saco de todo mundo e arrastar o tópico por mais uns dois dias, :D pelo que eu sei EduardoS, a cache não tira simplesmente a posição de memória a mais tempo sem ser usada, pois isso iria deixar a cache muito lerda, e exigiria muita lógica. Ela faz quase isso, vai escrevendo uns números na TAG que indicam mais ou menos que a coisa está ali sem fazer nada há muito tempo (os sites que eu consultei falam que ela deixa a TAG dirty(suja)). Na prática é quase a mesma coisa, mas em teoria é diferente.

OBS: não coloquei quotes porque não entendo muito disso, meu conhecimento de info é meio(leia-se muito) teórico. Coisa de nerd.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiagolckurovski,

É quase isso, ele realmente não procura linha a linha, apenas algumas linahs (set associativity), o algoritimo usado para determinar a linha que vai para o espaço depende de cada fabricante, estou sem tempo (e com certa preguiça) de procurar agora, mas acho que o algoritimo dos Athlons é o LRU mesmo (least recently used, o que eu expliquei no post anterior).

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Esse VB seria como se uma Tabela FAT só q relaciona os dados dos caches??

2 - A velocidade desse VB aí influencia no desempenho tambémém né, e tem medida de velocidade pra isso? Clock do CPU?

3 - Existem "troca" de dados entre as caches em CPU`s Duo Core? Por exemplo: o núcleo 1 tem sua L1 e o núcleo 2 tem sua L1, se o núcleo 1 precisa de um dado mas esse dado esta na L1 do núcleo 2, como é feito isso? Ele busca na cache do núcleo 2 ou acessa a RAM em busca do mesmo dado?

4 - Em caches Inclusivas o que tem na L1 de um núcleo tera na L1 do outro núcleo, mesmo sabendo que a Intel que tem caches inclusivas não possui CPU`s binucleares?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Esse VB seria como se uma Tabela FAT só q relaciona os dados dos caches??

Não, ele seria como uma variavel temporária, armazena os dados mesmo, ex:

Para trasnferir os dados de A para B e de B para A eu preciso de uma variavel temporária:

tempVar = A

A = B

B = tempVar

2 - A velocidade desse VB aí influencia no desempenho tambémém né, e tem medida de velocidade pra isso? Clock do CPU?

É o clock da CPU.

3 - Existem "troca" de dados entre as caches em CPU`s Duo Core? Por exemplo: o núcleo 1 tem sua L1 e o núcleo 2 tem sua L1, se o núcleo 1 precisa de um dado mas esse dado esta na L1 do núcleo 2, como é feito isso? Ele busca na cache do núcleo 2 ou acessa a RAM em busca do mesmo dado?

A Intel não divulga detalhes de como isso funciona no Core Duo, baseado no sistema que eles usam em multi-processados:

Ele copia o dado para o seu próprio L1, se um dos núcleos precisa modificar essa área antes ele avisa o outro núcleo.

4 - Em caches Inclusivas o que tem na L1 de um núcleo tera na L1 do outro núcleo, mesmo sabendo que a Intel que tem caches inclusivas não possui CPU`s binucleares?!

Os Pentium D possuem caches inclusivas, os Core Duo provavelmente tambem (não tenho certeza), o mesmo dado só estara na L1 dos dois núcleos se estiver sendo usado pelos dois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falei ou não falei que o tópico iria durar mais uns dias! :P

1-Não, AlyssonR, o VB não é uma tabela FAT. Ele apenas guarda os dados que foram transportados para o L1, e que, como o cache do K7/K8 é exclusivo, podem ser deletados do L2.

Por exemplo (uma simplificação grosseira) :muro: :

1° Estágio{

L1:A,B,C,D

L2:D,E,F,G,H,I,J,L,M,N,O,P,Q,R,S,T

VB:vazio

}

CPU exige dado F. A controladora do cache(que vem embutida na CPU) vê que não tem espaço suficiente pro F no L1, e que protanto, precisa passar alguma coisa pro L2. Então checa as TAGS e acha (O EduardoS disse que ela sabe, mas eu sempre ouvi falar que ela apenas acha :help: ) que o dado A é o menos usado e o envia para o L2. Daí ela finalmente copia o dado F para o L1

2° Estágio{

L1:F,B,C,D

L2:D,E,F,A,G,H,I,J,L,M,N,O,P,Q,R,S,T

VB:F

}

3° Estágio{

L1:F,B,C,D

L2:D,E,A,G,H,I,J,L,M,N,O,P,Q,R,S,T

VB:vazio

}

2- É o clock da CPU que influencia no desempenho do VB, mas como a tarefa dele é relativamente simples e ele é muito pequeno, a rapidez VB não vai modificar o desempenho da máquina, exceto no caso extremo dele se encher, como já foi citado antes.

3-Nesse ponto eu concordo com o EduardoS: em todos os Dual Core e Dual CPU que eu conheço, os dois caches L1 dos dois cores são separados. Assim, quando uma CPU quer usar os dados que outra já tem no L1, vai ter de pedir para a outra CPU transferir. A única diferença entre os vários processadores é no canal que ela usa para essa transferência (os dados a seguir são meio desacreditáveis, é melhor checar no Google) :blink: :

AMD´s: Pede pelo canal Hyper Transport (Dual CPU), ou por um link de comunicação entre os cores(Dual Core).

Netburst´s e Yonah´s (?): Pede pelo FSB.

Core´s e Yonah´s (?):Pede por um link dedicado entre os L1´s (Dual Core), ou pelo FSB (Dual CPU).

4- Nesta não tenho nada a acrescentar, concordo com o AugustoS. Só lembrando que o que ele disse vale também para os Athlons e outras UCP com cache exclusivo, pois o cache é exclusivo só para os outros caches dentro do core. Para dados que pertençam ao outro core ele também tem que ter a sua própria versão, na sua própria cache L1, e avisar ao outro core toda vez que ele fizer uma alteração, assim como as CPU´s com cache inclusivo fazem. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

alyssonr,isso faz me lembrar da nova política da AMD

A AMD (INFELIZMENTE) pretende adotar tecnologia anti-HTT,vários núcleos que se comportam como um (um exemplo está no artigo que o alyssonr botou)..Isto quer dizer que,futuramente Intel e AMD estarão com 2 tecnologias uma contrariamente a outra.

1 - Como assim? Porque anti-HTT?

2 - Os P4 EE(Extreme Edition) são Bi-nucleares? Se sim, tem versões Hyper Threading tambémém?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coveirando :D , em AlyssonR. Pensei que nunca mais ia voltar pra esse tópico. Vamo lá:

1- Quando o cara disse Anti-HTT, ele na verdade quis dizer anti-HT. Os dois são coisas bem diferentes, HTT (Hyper Transport) é um barramento frontal que substitui o FSB nos Athlon 64, devido a controladora de memória integrada. O HT é uma tecnologia da Intel que simula um sistema biprocessado. Ou seja, uma máquina com quatro núcleos parece ter 8 no programa. Pode resultar em ganhos grandes, mas muitas vezes não dá em nada. E a tecnologia da AMD é Anti-HT pois ela faz exatamente o contrário, ao invés de simular dois núcleos em um, simula um núcleo em dois.

2- Várias versões do Pentium 4, inclusive as Extreme Edition, vem com HT. MAs somente os Pentium D e os Pentium EE (sem o 4) são binucleares. Os PD não tem HT, mas o P EE têm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coveirando :D , em AlyssonR. Pensei que nunca mais ia voltar pra esse tópico. Vamo lá:

1- Quando o cara disse Anti-HTT, ele na verdade quis dizer anti-HT. Os dois são coisas bem diferentes, HTT (Hyper Transport) é um barramento frontal que substitui o FSB nos Athlon 64, devido a controladora de memória integrada. O HT é uma tecnologia da Intel que simula um sistema biprocessado. Ou seja, uma máquina com quatro núcleos parece ter 8 no programa. Pode resultar em ganhos grandes, mas muitas vezes não dá em nada. E a tecnologia da AMD é Anti-HT pois ela faz exatamente o contrário, ao invés de simular dois núcleos em um, simula um núcleo em dois.

2- Várias versões do Pentium 4, inclusive as Extreme Edition, vem com HT. MAs somente os Pentium D e os Pentium EE (sem o 4) são binucleares. Os PD não tem HT, mas o P EE têm.

1 - como é?! Os Athlon64 "somam" o "poder" de processamento dos dois núcleos? então é por isso que eles colocam que os CPU Duo Core deles de 2400+ sao na realidade de 4800+? E as caches L1 e L2 sao somadas tbem?

2 - Qual o melhor desempenho então, dois com o poder de um "turbinado"(AMD) ou um com o poder de dois(Intel) se foi isso que entendi?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - como é?! Os Athlon64 "somam" o "poder" de processamento dos dois núcleos? então é por isso que eles colocam que os CPU Duo Core deles de 2400+ sao na realidade de 4800+? E as caches L1 e L2 sao somadas tbem?

Não... Os 4800+ são 4800+ mesmo, isso é com relação ao desempenho e não com a soma de dois processadores 2400+ ...

Ele não soma, divide. São 2 processadores que funcionam como 1. Ao contrário da intel onde 1 funciona como dois com a tecnologia HT.

Os caches L1 e L2 são separados.

Como já foi dito a tecnologia de usar cache L2 integrado é da intel...

Postado Originalmente por 'alyssonr'

2 - Qual o melhor desempenho então, dois com o poder de um "turbinado"(AMD) ou um com o poder de dois(Intel) se foi isso que entendi?!

Não da para dizer.

Athlon 64 socket 939 VS pentium HT e pentium D o athlon tem melhor desempenho(levando em consideração clocks iguais...)

Mas com as inovações da intel os core 2 duo parecem que têm mais desempenho que os athlons 64 939 e AM2.

O que tende a ser normal a AMD parece que está esperando a intel inovar sentada...

A intel mudou a arquitetura do processador, mudou número de estágios dos pipelines, mudou o esquema de funcionamento da memória cache. Cache L2 integrado com tamanho variavél por núcleo com unidade de pré-busca compartilhada. Pode fundir instruções fazendo duas instruções X86 virarem uma diminuindo o tempo de processamento. Ele tem uma unidade de ponto flutuante e tem uma ALU a mais que o pentium M.

Isso signifiva que ele pode processar até três intruções inteiras por pulso de clock enquanto o pentium M só pode processar uma... Além de já usar usar memórias DDR2.

Enquanto a AMD só passou a utilizar memórias DDR2.

Olha a situação da AMD se não tentar implementar novas tecnologias... :bravo:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele tem uma unidade de ponto flutuante e tem uma ALU a mais que o pentium M.

Isso signifiva que ele pode processar até três intruções inteiras por pulso de clock enquanto o pentium M só pode processar uma... Além de já usar usar memórias DDR2.

Enquanto a AMD só passou a utilizar memórias DDR2.

Uma correção, o Conroe tem uma porta de execução a mais que o Pentium M e nessa porta 1 ALU e 1 FPU, o limite teórico fica em uma instrução a mais por ciclo que o Pentium M (e não duas), de qualquer jeito é complicado falar em limite teórico nessas CPUs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma correção, o Conroe tem uma porta de execução a mais que o Pentium M e nessa porta 1 ALU e 1 FPU, o limite teórico fica em uma instrução a mais por ciclo que o Pentium M (e não duas), de qualquer jeito é complicado falar em limite teórico nessas CPUs.

1 - Instruçoes FPU sao mais usadas em aplicacoes multimidias que em banco de dados por exemplo?

2 - Esses ganhos de 3 instruçoes ao mesmo tempo sao validos pra qualquer tipo de aplicacao?! Em uma varredura de disco em busca de virus tem algum ganho? Em uma compilacao de filtro no photoshop acredito que sim né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PM tem (meio duvidoso): uma Load/Store Unit com duas Adress Generation Unit, uma Data Generation Unit e uma Branch Unit (eu creio que faça dois Loads e um Store por ciclo, mas não sei), duas Unidades Lógicas e Aritméticas assimétricas, uma Unidade de Ponto Flutuante compartilhada com SSE e 3 Unidades vetoriais puras (duas VALU e uma VFADD). Só que, por ter apenas cinco portas :cry: , o PM pode, na melhor das hipóteses, fazer duas operações vetoriais (SSE/MMX) ou duas aritméticas comuns, e duas de acesso a memória.

Já o Core tem: uma LSU com as mesmas estruturas do PM, três ALU´s assimétricas, duas FPU´s compartilhadas com o SSE e 3 unidades vetoriais puras (duas VALU e uma VSHUF). Por ter 6 portas e uma estrutura melhor, ele pode processar, na melhor das hipóteses, 4 operações comuns (com fusão de MacroOps) ou 3 vetoriais e duas de acesso a memória. O que (finalmente) dá duas instruções aritméticas a mais e uma vetorial em relação ao PM. :blink:

Uma correção, o Conroe tem uma porta de execução a mais que o Pentium M e nessa porta 1 ALU e 1 FPU, o limite teórico fica em uma instrução a mais por ciclo que o Pentium M (e não duas), de qualquer jeito é complicado falar em limite teórico nessas CPUs.

Eu concordo com você em teoria, EduardoS. Cada porta só deixa passar uma instrução, portanto, uma porta com duas UE (Unidades de execução) não adianta muito... teoricamente. :(

Mas, na prática, as chances de uma aplicação exigir mais que 2 FPU´s e uma ALU ao mesmo tempo são mínimas. Portanto o fato do Core ter uma ou duas portas serem compartilhadas não significa muito para o desempenho. Sem contar que com a fusão de MacroOps ele pode usar uma das ALU´s e a BU ao mesmo tempo. :D

Ah, voltando ao assunto original, eu descobri uma outra vantagem do cache inclusivo, permite economizar TAG fazendo as linhas do cache L2 serem maiores que as do L1. :tantan:. Não me pergunte o que que isso quer dizer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas, na prática, as chances de uma aplicação exigir mais que 2 FPU´s e uma ALU ao mesmo tempo são mínimas. Portanto o fato do Core ter uma ou duas portas serem compartilhadas não significa muito para o desempenho.

Concordo, mesmo assim prefiro ter 3 ALUs do que 2 B) .

Sem contar que com a fusão de MacroOps ele pode usar uma das ALU´s e a BU ao mesmo tempo. :D

A MacroOp no Core foi uma ótima ideia por quebrar a dependencia cmp/jcc, mas essa combinação não é tão comum para gerar uma diferença gigante (felizmente, porque um miss-prediction mata qualquer ganho de desempenho gerado pela macro-fusion).

Ah, voltando ao assunto original, eu descobri uma outra vantagem do cache inclusivo, permite economizar TAG fazendo as linhas do cache L2 serem maiores que as do L1. :tantan:. Não me pergunte o que que isso quer dizer!

Essa é nova para mim...

E voltando ao cache do Athlon, olhei a documentação dele, o L1 (dados e instruções) usa o LRU, o L2 usa o pseudo-LRU.

1 - Instruçoes FPU sao mais usadas em aplicacoes multimidias que em banco de dados por exemplo?

Isso é muito relativo, instruções FPU são pouco usadas, um banco de dados não é um lugar que eu procuraria por essas instruções, aplicações multimídia podem usa-las bastante, mas depende da aplicação multimídia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

"The shared L2 cache for the Core MPU is a non-inclusive, non-exclusive design"

http://www.realworldtech.com/page.cfm?Arti...30906143144&p=7

primeira linha terceiro paragrafo.

parece que ele nem é inclusivo nem exclusivo, ou seja há um meio termo:

mas eu não consigo imaginar-lo com a eficiencia do conroe. seria um sistema super

complicado se calhar é aqui que reside grande poder de processamento que o conroe

promete e parece comprire. A intel anonciou um cache que poderia prever qual seria

a instrução nessecaria a seguir, baseando-se no historico (sera uma forma de A.I.),

com uma taxa de sucesso de 90%. Mas isso não tem nada a ver com o exclusivo/inclusivo?

EDIT: MPU (multi processore unit), cpu (central processor unit)

para alyssonr como o EduardoS disse, não se sabe mas da para entender que não há

cache l2 na historia:

"Core can transfer directly between the L1D caches in some variants. However, it is

currently unknown how often this transfer can occur"

mas eu lembre-me ter visto um esquema qualquer onde estava bem representado, pesquiso

e depois posto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá explicado. Eu sempre considero L2 quando falo.

Passa o link pra essas especificações, por favor, EduardoS. É que eu não tenho muita experiência em garimpar site de empresa de hardware.

Tá explicado. Eu sempre considero L2 quando falo.

Passa o link pra essas especificações, por favor, EduardoS. É que eu não tenho muita experiência em garimpar site de empresa de hardware.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A intel anonciou um cache que poderia prever qual seria

a instrução nessecaria a seguir, baseando-se no historico (sera uma forma de A.I.),

com uma taxa de sucesso de 90%. Mas isso não tem nada a ver com o exclusivo/inclusivo?

Isso ta mais para branch-prediction, já existe a muito tempo, e as empresas melhoram a cada novo processador.

Tá explicado. Eu sempre considero L2 quando falo.

Passa o link pra essas especificações, por favor, EduardoS. É que eu não tenho muita experiência em garimpar site de empresa de hardware.

Da AMD é fácil: http://www.amd.com/us-en/Processors/Techni...182_739,00.html

O problema é lembrar em qual deles e qual pagina ta cada informação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como o cache busca os dados conforme o tamanho e a fonte (super cientifico):

http://www.xbitlabs.com/articles/cpu/displ...r-analysis.html

segundo este teste tanto o X2, D9xx, yonah e conroe. Todos tem de buscar o dado a

ram mesmo que esse dado esteja disponivel no cache L2 do ourto CPU ou no L2 comun

em certas cituação.

Um BocadO esquisito mas percebe-se (seria muito difficil e pouco rentavel fazer doutra

forma)

como não há ligação entre os L2s sem ser o HTT ou o FSB é imposivel que haja entre

os L1, não fazia sentido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×