sábado, 27 de fevereiro de 2010

TDP & ACP: as diferenças entre Intel e AMD

By Mendez.FL

Published on 20:26 at AMD, Artigos, INTEL

TDP (Termal Design Power - Potência de Projeto) é uma medida de dissipação térmicas de chips. É usado tanto por Intel quanto AMD para estipular o quanto seus processadores irão dissipar em termos de energia elétrica.

Ocorre que Intel e AMD usam metodologias diferentes para estipular os valores que são informados ao público. No caso da AMD, especificamente, ela ainda tem uma medida adicional, chamada ACP (Average CPU Power - Potência Média Dissipada pela CPU).
Então, vamos ver se conseguimos esclarecer essas diferenças.

TDP da AMD
O TDP da AMD é um valor de projeto. Seria a máxima potência que esse processador iria consumir – e portanto dissipar na forma de calor. É calculado assim:

TDP = (Corrente Máxima [Ampères] que o processador pode suportar) x (Tensão [V] Máxima de Operação do Processador)

Tanto a Corrente Máxima com a Tensão Máxima são valores obtidos em projeto.

ACP da AMD e TDP da Intel

O ACP da AMD e o TDP da Intel são calculados de forma muito parecida. Basicamente eles submetem o processador a vários tipos de benchmarcks (como TPC-C, SPECcpu, SPECjbb, Stream). Em cada rodada de benchmarks eles medem a potência dissipada.

O TDP da Intel é a média aritmética das potências dissipadas em cada um dos benchmarks.

O ACP da AMD é a média geométrica das potências dissipadas em cada um dos benchmarks.

Como a potência é igual ao calor dissipado, então esse valor de TDP é usado por projetistas de coolers e heatsinks para dimensionar a carga máxima de calor que esses dispositivos terão que refrigerar.

No caso da Intel, esse valor de dissipação máxima é calculado como CPU Max Power.

Em termos de estimativa, o ACP da AMD é praticamente a mesma medida do TDP da Intel. Na realidade, o ACP da AMD será sempre um pouco menor em função de ser uma média geométrica e não uma média aritimética. Eles seriam iguais se todas as medições de potência de todos os benchs fossem iguais. Se as diferenças entre as medições de potências forem baixas o ACP da AMD fica muito próximo ao TDP da Intel.

E o TDP da AMD é basicamente a mesma medida do CPU Max Power da Intel.

Em termos relativos: o TDP da AMD e o CPU Max Power da Intel serão sempre maiores que o TDP da Intel e o ACP da AMD.

Dito de outra forma: você pode comparar o valor de ACP divulgado pela AMD com o valor de TDP divulgado pela Intel. E pode comparar o TDP da AMD com o CPU Max Power divulgado pela Intel. Ou, o que a Intel chama de TDP a AMD chama de ACP. E o que a Intel chama de CPU Max Power, a AMD chama de TDP.

Estimando TDP de processadores submetidos a Overclock

Um dos grandes problemas de quem pretende fazer overclock em suas CPU é estimar o quanto o processador estará consumindo de energia na sua nova condição de frequência. Sendo assim, elaborei uma fórmula que permite estimar o consumo do seu processador quando submetido a overclock.

Com base em um paper de uma dissertação de Doutorado em Engenharia Elétrica, a qual pode ser lida aqui: http://www.eng.umd.edu/~blj/papers/thesis-PhD-ankush--EmPower.pdf pode-se verificar que o TDP sobe linearmente com a frequencia e cresce na razão quadrática do VCore, conforme pode ser visto abaixo:

Com base nesses conceitos, podemos propor uma fórmula para calcular o TDP de processadores submetidos a overclock, e ela seria a seguinte:

TDPn = [ ( Vn/Vs) ^2 ] * [(Fn/Fs)] * TDPs

Onde:

TDPn = TDP na freqüência nGhz
Vn = VCore do Processador na freqüência nGhz
Vs = VCore do Processador na freqüência Stock
Fn = Frequencia nGhz (Frequencia de overclock)
Fs = Frequencia Stock
TDPs = TDP na freqüência stock
Como exemplo, vamos calcular qual seria o TDP de um Core i7 920 rodando a 3.66Ghz:
Vs = 1.176V (Vcore na condição Stock)
Vn (Vcore a 3.66Ghz) = 1.240
Fs = 2.66 (frequencia na condição stock)
Fn = 3.66 (frequencia em overclock)
TDP Stock = 130W
Calculando:
TDPn = [ (1.240/1176) ^2 ] * (3.66/2.66) * 130W
TDPn = 1,53 * 130W = 199W
Um Core i7 920, quando está rodando em uma frequencia de 3.66Ghz, apresenta um TDP de 200W.
Aqui um exemplo de vários cálculos de TDP para diversas frequencias de operação:


Conclusão:

Deve-se comparar o valor de ACP divulgado pela AMD com o valor de TDP divulgado pela Intel.
E comparar o TDP da AMD com o CPU Max Power divulgado pela Intel. Ou, o que a Intel chama de TDP a AMD chama de ACP. E o que a Intel chama de CPU Max Power, a AMD chama de TDP.
Por isso os processadores Intel podem aparentar consumir menos energia, mas isso não é necessariamete verdade.

Fonte: www.noticiastecnologicas.com.br

Memória e Timing - O Gia Completo

Memória

Todos os módulos de memória atuais, sem exceção, possuem o chip ESPD, que armazena as configurações indicadas pelo fabricante, incluindo a freqüência do módulo e os tempos de acesso. Apesar disso, muitas placas-mãe (possivelmente a maioria) oferecem um conjunto bastante completo de opções relacionadas à memória. Por padrão, as configurações são detectadas automaticamente, a partir do SPD, mas você pode alterá-las manualmente de forma a ganhar alguns pontos percentuais de desempenho.

É recomendável sempre executar o teste completo do memtest depois de alterar as opções relacionadas à memória, de forma a confirmar a estabilidade do micro. Ele é extremamente eficiente em detectar problemas transitórios, que aparecem apenas em determinadas circunstâncias. Ao fazer overclock da memória, ele pode indicar erros similares aos de um módulo com defeitos físicos (já que ele não tem com saber o que causou o erro, sabe apenas onde ele ocorreu), mas nesses casos basta voltar às configuração originais para que tudo se normalize. Vamos, então, às configurações:



Opções relacionadas à memória


Memclock Mode (Timing Mode): Por default, esta opção vem com o valor "SPD" ou "Auto", o que que faz com que o BIOS configure as opções relacionadas à memória utilizado os valores definidos pelo fabricante (gravados no chip SPD do módulo). Normalmente você precisa alterar a configuração para "Manual" para ter acesso às demais opções.

Memclock Value (Memclock Index Value, DRAM Speed ou DRAM Frequency): Esta opção permite ajustar a freqüência de operação dos módulos de memória. Lembre-se de que as memórias DDR realizam duas transferências por ciclo, as DDR2 realizam 4 e as DDR3 realizam 8. Em algumas placas é mostrado o valor "real" (geralmente de 100 a 233 MHz), enquanto outras mostram o valor "composto", que vai até 466 (DDR), 933 (DDR2) ou 1866 MHz (DDR3), o que no final dá na mesma. Assim como no caso dos processadores, os módulos de memória suportam sempre trabalhar a freqüências um pouco superiores às especificadas, o que permite obter pequenos ganhos de desempenho, em troca de menos estabilidade.

Ao contrário das placas antigas, onde a freqüência da memória era atrelada à do FSB, nas atuais você pode ajustar as duas coisas de forma independente. Na maioria, você pode especificar a freqüência da memória diretamente, enquanto em algumas você ajusta um multiplicador, que indica a freqüência da memória em relação ao FSB.

Outra opção ao fazer overclock da memória é manter (ou até mesmo reduzir) a freqüência de operação, mas em compensação reduzir os tempos de acesso. Como vimos anteriormente, nos PCs atuais, com memórias DDR2 ou DDR3, reduções nos tempos de acesso resultam geralmente em ganhos de desempenhos maiores que aumentos na freqüência.

Memory Voltage (ou DDR Voltage Control): Os módulos de memória DDR2 e DDR3 utilizam tensões de, respectivamente, 1.8V e 1.5V. Assim como no caso dos processadores, aumentar a tensão da memória faz com que o módulo seja capaz de suportar freqüências de operação ligeiramente maiores (ou tempos de acesso mais baixos). Muitos módulos DDR2 "premium" utilizam tensões de 1.9V, 2.0V ou mesmo 2.1V por padrão, justamente para permitir que o módulo suporte temporizações mais agressivas.

Você pode obter pequenos ganhos de desempenho (mesmo usando módulos genéricos) ao fazer o mesmo. O problema é que aumentando a tensão você aumenta também a dissipação de calor dos módulos, o que, sem um dissipador apropriado, pode acabar tendo um efeito contrário. De uma forma geral, aumentos de até 0.2V na tensão podem ser considerados seguros, mas aumentos maiores podem reduzir a vida útil do módulo.

CAS Latency (CL ou TCL): O CAS Latency é a principal configuração relacionada ao tempo de acesso da memória. Ele determina o número de ciclos necessários para iniciar um burst de leituras. Os antigos módulos SDRAM trabalhavam com CAS Latency de 2 ou 3 ciclos, enquanto os módulos DDR2 atuais trabalham quase sempre com 4 tempos ou mais. Isso não significa que os módulos estejam regredindo, muito pelo contrário. Os 4 ciclos do módulo DDR2 equivalem a um único ciclo de um módulo SDRAM (já que o controlador opera ao dobro da freqüência e realiza duas transferências por ciclo, fazendo com que cada ciclo demore apenas um quarto do tempo). Alguns módulos DDR2 de alta qualidade chegam a trabalhar com apenas dois tempos, mas eles são mais caros e relativamente raros.

O CAS Latency é informado nas especificações do módulo. Em alguns casos, é possível baixá-lo em um tempo (de 5 para 4, por exemplo), mantendo a estabilidade, mas isso não é uma regra.

TRCD, TRP e TRAS: Estas três opções permitem ajustar os demais tempos de acesso.

O valor do TRCD (RAS to CAS delay) indica o tempo que o controlador espera entre o envio dos endereços RAS e CAS a cada leitura. O controlador envia o sinal RAS, espera o tempo referente ao valor do TRCD, envia o sinal CAS, aguarda o número de ciclos referente a ele e, então, finalmente obtém a leitura.

Em um módulo DDR2 4-4-4-12, tanto o tCL quanto o tRCD demoram 4 ciclos, de forma que o acesso inicial demoraria um total de 8 ciclos. Em um módulo 5-5-5-15, o tempo subiria para 10 ciclos. O TRCD não é tão importante quanto o CAS Latency, pois é usado apenas ao alterar a linha ativa.

O TRP (Row Precharge Time) é mais um tempo de espera adicionado quando o controlador precisa mudar a linha ativa. Antes acessar uma linha de endereços, o controlador precisa carregá-la (precharge). O Row Precharge Time (tRP) indica justamente o tempo necessário para fazer o carregamento.

Para realizar uma leitura em um módulo 4-4-4-12, o controlador precisa esperar 4 ciclos para o TRP, 4 ciclos para o tRCD, 4 ciclos para o tCL, totalizando 12 ciclos. Ao fazer vários acessos consecutivos à mesma linha, são perdidos 12 ciclos no primeiro acesso, mas apenas os 4 referentes ao TCL nos acessos subsequentes. Sendo um pouco repetitivo, o tempo referente ao TCL é perdido em cada burst de 4 leituras, enquanto os outros dois são perdidos apenas ao mudar a linha ativa, daí darmos mais ênfase ao TCL do que aos outros.

O TRAS (RAS Activate to Charge) indica o tempo necessário para realizar a leitura completa, que corresponde geralmente à soma dos três. O TRAS é o último número que aparece nas especificações do módulo. Em um módulo 4-4-4-12, o "12" corresponde ao TRAS.

Usei o termo "geralmente" porque existem casos de módulos nos quais o TRAS não é a soma dos três. Muitos módulos suportam um recurso chamado "Additive Latency", que permite que o comando para iniciar o precharge do banco seguinte seja enviado antes que a leitura termine. Isso faz com que o tempo total da leitura seguinte seja reduzido em 1 ou até mesmo 2 ciclos. Este é o caso dos módulos 5-4-4-11 ou 4-4-4-11, por exemplo. Em alguns módulos de baixo custo, é necessário um ciclo adicional para fechar o banco, que aumenta o tRAS ao invés de diminui-lo. É o caso dos módulos 5-5-5-16 ou 6-6-6-19, por exemplo.

Uma coisa curiosa sobre o TRAS é que usar um valor mais baixo que o suportado pelo módulo acaba reduzindo o desempenho ao invés de aumentá-lo, pois ele faz com que a página seja fechada antes que o burst de leituras seja concluído. Com isso o controlador precisa realizar um número maior de leituras, reduzindo drasticamente a taxa de transferência. Não é exibida nenhuma mensagem de erro, nem surgem problemas de estabilidade: o micro simplesmente fica mais lento.

É importante rodar algum programa de benchmark (os testes do Everest ou do Sandra servem bem) depois de alterar as opções, de forma a detectar eventuais quedas no desempenho e também medir os ganhos em caso de sucesso.

TRC, TRRD, TRFC, TWR, TWTR, TRTW e TWCL: Muitas placas oferecem um conjunto mais completo de opções, abrangendo também as temporizações mais exotéricas. Em muitas delas você precisa ativar a opção "Extended Memory Settings" (ou similar) para ter acesso a elas. Todas estas opções são secundárias e não afetam tanto o desempenho quanto as anteriores. Elas são apenas uma "última fronteira" para quem é perfeccionista e quer extrair até a última gota de desempenho. O volume e a ordem das opções variam de acordo com a placa, por isso procurei organizar a explicação de forma que ela seja útil no maior número possível de placas diferentes:

O TRC (Row Cycle Time) é o tempo necessário para um ciclo completo de acesso a uma linha qualquer do módulo. Como de praxe, valores mais baixos resultam em um pequeno ganho no desempenho de acesso à memória, mas usar um valor muito baixo acaba resultando em corrupção dos dados ou perda de desempenho, já que o controlador não tem tempo de terminar a leitura.

O TRRD (Row to Row Delay) indica o número de ciclos necessários para ativar a linha seguinte, no caso de leituras que envolvam dados armazenados em linhas diferentes. Esta opção é, de certa forma, similar ao Row Precharge Time. A diferença entre os dois é que o Row Precharge Time indica o tempo necessário para carregar as células da linha seguinte, enquanto o TRRD é um tempo de espera adicional que o controlador aguarda depois que a linha já está carregada.

O TRFC (Row Refresh Cycle Time) indica a duração dos ciclos de refresh do módulo. Novamente, reduzir o valor resulta em um ganho muito pequeno de desempenho, pois o refresh é feito apenas algumas dezenas de vezes por segundo. Usar um refresh muito curto pode causar problemas de estabilidade, sobretudo com o módulo operando a altas freqüências, por isso, usar valores mais baixos acaba servindo mais para reduzir o percentual de overclock do que para melhorar o desempenho.

O TWR (Write Recovery Time) é uma "pausa" incluída durante cada operação em uma seqüência de operações de escrita. Como elas são mais raras que as operações de leitura, ele acaba tendo um efeito pequeno sobre o desempenho. Outra opção similar é o TWTR (Write to Read Delay), uma pausa feita quando o controlador termina as operações de escrita e precisa iniciar uma série de operações de leitura. Em alguns casos, aumentar o valor padrão do TWR e do TWTR em um tempo pode ajudar a estabilizar o módulo ao usar ajustes mais agressivos nas outras opções, mas não espere nenhum ganho perceptível de desempenho ao reduzir os valores. O TRTW (Read to Write Delay) é similar ao TWTR, mas se aplica em situações onde o controlador executou uma série de operações de leitura e precisa agora iniciar uma série de operações de escrita.

Finalmente, temos o TWCL (Write CAS Latency), que conclui nossa exaustiva explicação. Ele é o primo pobre do CAS Latency (TCL), que é aplicado às operações de escrita, em vez das de leitura. Embora menos importante que o TCL, ele tem um efeito maior sobre o desempenho do que as demais opções secundárias.

CPC (ou 1T/2T Memory Timing): O CPC (Command Per Clock) é um tempo de espera adicional aplicado quando o controlador de memória alterna entre endereços em diferentes chips do módulo. Ao ativar um chip, o controlador precisa esperar um ou dois ciclos para que ele seja ativado, para só então enviar os comandos de leitura.

Esta opção está presente apenas em algumas placas e pode ser ajustada com o valor "1T" e "2T". Módulos single-sided, ou seja, os módulos de mais baixa capacidade, onde os chips ocupam apenas um dos lados, podem geralmente trabalhar com apenas 1 tempo, enquanto os módulos com chips dos dois lados freqüentemente precisam de 2 tempos. Usar a opção 1T naturalmente resulta em um melhor desempenho, mas em muitos casos usar a opção 2T faz com que o módulo seja capaz de operar a freqüências mais altas, o que pode compensar a perda.

DRAM ECC Enable: Quando presente, esta opção indica se o micro tem módulos de memória com ECC. O ECC consiste em um bit adicional para cada byte de dados, que é usado para verificar e corrigir os dados armazenados. Os chips de memória com ECC possuem 9 ou 18 chips ao invés de 8 ou 16 e são usados quase que exclusivamente em servidores e estações de trabalho, onde o pequeno ganho de confiabilidade compensa o gasto adicional. Naturalmente, esta opção deve ser ativada apenas ao usar módulos com ECC.

Memory Hole Remapping, Memory Hoisting (ou DRAM Over 4G Remapping): Como vimos no capítulo sobre memórias, ao usar 4 GB de memória ou mais, um grande trecho de memória entre os 3 e 4 GB é perdido, devido às faixas de endereços usadas pelos dispositivos. Ao usar um sistema operacional de 32 bits, esta faixa de memória é perdida e não existe nada o que você possa fazer. O melhor é se contentar em usar apenas 3 GB.

Ao combinar um sistema operacional de 64 bits com um processador equipado com as extensões AMD64 ou EM64, você ganha a possibilidade de usar mais do que 4 GB de memória, mas a faixa entre os 3 e 4 GB continua sendo perdida, de forma a manter compatibilidade com os programas de 32 bits.

Estas opções, disponíveis na maioria das placas recentes, fazem com que a área de endereços reservada para uso dos dispositivos seja movida para uma área mais alta do Virtual Address Space, liberando a maior parte da memória perdida. As duas seguem princípios diferentes, mas o resultado prático é o mesmo. Você encontra uma ou outra, de acordo com a placa usada.

Uma observação é que esta opção só deve ser ativada ao usar um sistema operacional de 64 bits e ao usar 4 GB ou mais de memória. Ela pode causar problemas de compatibilidade diversos, sobretudo com jogos e aplicativos 3D, por isso verifique a estabilidade do micro ao ativá-la.

Fonte: www.gdhpress.com.br