Todos
os processadores Intel e AMD, do 386 ao Athlon, são chamados
genericamente de "processadores x86", deixando claro que apesar de todas
as diferenças de arquitetura, eles são compatíveis com o mesmo conjunto
básico de instruções. É graças a isso
que temos um número tão grande de softwares, acumulados ao longo de mais
de duas décadas, que continuam funcionando nos PCs atuais. Com exceção
da questão dos drivers, você poderia perfeitamente rodar o DOS e o
Windows 3.11 em um Pentium 4, por
exemplo.
Duas
grandes limitações da plataforma x86 são o pequeno número de
registradores e o suporte nativo a apenas 4 GB de memória RAM, limitação
compartilhada por todos os processadores de 32 bits.
Os
registradores são pequenos espaços de memória utilizados pelo
processador para armazenar informações que serão usadas para processar a
instrução seguinte. Você pode pensar nos registradores como uma espécie
de "cache L0". Eles estão muito próximos
das unidades de execução do processador e por isso as informações podem
ser acessadas imediatamente, mas em troca eles são incrivelmente
limitados em tamanho. A arquitetura x86 prevê o uso de apenas 8
registradores, com 32 bits cada um. Ou seja, todos os
registradores somados armazenam apenas 8 bytes de dados.
Não
é possível adicionar mais registradores facilmente, pois softwares
escritos para utilizarem os registradores adicionais não seriam mais
compatíveis com os processadores antigos. A solução encontrada foi
utilizar o recurso chamado "register
renaming" onde o processador possui um número maior de registradores,
mas apenas 8 são visíveis. Os demais são gerenciados de forma dinâmica
pelo processador, que vai chaveando entre eles conforme novas
informações são necessárias. Essa técnica ameniza os
problemas de desempenho causados pelo pequeno número de registradores,
mas não soluciona a questão completamente.
Com
relação à memória, o limite de 4 GB se tornou uma limitação séria em
algumas área a partir da época do Pentium 1. A solução veio na forma do
PAE (Physical Address Extension), um hack (originalmente desenvolvido
pela Intel) que está disponível na
maior parte dos processadores a partir do Pentium Pro. O PAE consiste
numa segunda tabela de endereços, com 4 bits adicionais, que permitem
endereçar 16 páginas de memória, cada uma com 4 GB.
Com
o PAE, passa a ser possível endereçar até 64 GB de memória. A
desvantagem é que o processador continua sendo capaz de acessar apenas 4
GB por vez e o chaveamento entre diferentes páginas de memória toma um
certo tempo, que acaba prejudicando
bastante o desempenho. Ou seja, assim como no caso do register renaming,
o PAE ameniza o problema, mas não o soluciona completamente.
A
única forma de solucionar de vez as duas questões, assim como um
conjunto de outros problemas comuns a todos os processadores de 32 bits,
era desenvolver uma nova nova arquitetura, composta agora por
processadores de 64 bits.
Em
primeiro lugar, precisamos definir o que são processadores de 64 bits e
quais são as vantagens sobre os de 32. Processadores de 64 bits não são
duas vezes mais rápidos nem processam (necessariamente) o dobro de
dados por ciclo de clock. A grande
vantagem dos processadores de 64 bits é que eles são capazes de
trabalhar com endereços de memória de 64 bits, o que permite endereçar
muito mais do que 4 GB de memória RAM. Temos também um aumento no
tamanho dos registradores, que passam a armazenar 64
bits de informações, em vez de 32, o que representa um pequeno ganho de
desempenho.
Outro
benefício (embora menos significativo) é que eles são capazes de
processar número inteiros de até 64 bits, ao invés de 32. Isto oferece
ganhos de desempenho em algumas áreas específicas (como, por exemplo,
softwares de encriptação e alguns
aplicativos científicos) mas não ajuda muito nos aplicativos do
dia-a-dia. Processadores de 32 bits podem processar números inteiros de
64 bits, mas eles precisam ser divididos em duas instruções separadas, o
que naturalmente toma mais tempo.
Com
relação ao processamento de números de ponto flutuante, não existe
ganho, pois os co-processadores aritméticos utilizados nos processadores
atuais já são capazes de processar números de ponto flutuante de 64
bits e vetores de 128 bits. Nestas duas
áreas não existe um ganho direto, já que a transição foi feita há muito
tempo.
A
primeira tentativa de criar um sucessor de 64 bits para a plataforma x86
veio da Intel, que em 2001 lançou o Itanium, um processador de 64 bits
destinado a servidores.
O
Itanium quebra a compatibilidade com a família x86, passando a utilizar o
IA-64, um novo conjunto de instruções. O plano inicial era popularizar a
arquitetura primeiro nos servidores, onde os benefícios de um
processador de 64 bits são mais
evidentes, e em seguida lançar também versões destinadas a desktops. O
problema com o Itanium (além do processador ser muito caro) era que não
existiam softwares capazes de se beneficiar da nova plataforma. Ele
incluía um sistema de emulação, que permitia
rodar softwares de 32 bits, mas neste caso o desempenho era muito ruim.
As
duas versões iniciais do Itanium operavam a 733 e 800 MHz. Elas foram
seguidas pelas diferentes versões do Itanium 2, vendidas em versões de
900 MHz a 1.67 GHz, incluindo versões dual-core. A Intel continua
investindo no desenvolvimento do Itanium,
lançando novas versões, mas o futuro da plataforma é incerto.
Além
do x86-64, a arquitetura K8, compartilhada por todos os processadores
de 64 bits da AMD, inclui um circuito de branch-prediction sensivelmente
melhorado, com um global history counter 4 vezes maior que o do Athlon
K7.
O
global history counter é a área reservada a armazenar os resultados de
operações resultadas anteriormente. Estas informações são utilizadas
como base de consulta pelo circuito de branch prediction na hora de
decidir qual caminho deve tomar dentro de
uma operação de tomada de decisão.
Outro
recurso, possivelmente o mais famoso, é o controlador de memória
integrado, chamado de IMC (Integrated Memory Controller).
Tradicionalmente, o controlador de memória faz parte do chipset e opera à
mesma freqüência que ele. O processador se
comunica com o chipset através do Front Side Bus (o barramento
principal) e ele (o FSB) é utilizado para todo o tráfego, incluindo a
leitura e gravação de dados na memória
Ao
mover o controlador de memória para dentro do processador, a AMD foi
capaz de reduzir sensivelmente o tempo de latência nos acessos à
memória, aumentando assim o desempenho do processador em alguns pontos.
Nos processadores baseados na arquitetura
K8, o processador é ligado diretamente às trilhas da placa-mãe que levam
aos pentes de memória, e a comunicação com o chipset é feita através de
um barramento HyperTransport. No caso de sistemas com dois
processadores em SMP (como no caso de servidores
equipados com o Opteron), barramentos HyperTransport adicionais fazem a
ligação entre os processadores.
Versões:Tudo começou com o Opteron, o primeiro processador baseado na arquitetura Hammer, destinado a servidores. Ele utilizava um controlador de memória dual-channel e oferecia suporte apenas a memórias registered, módulos especiais que incluem um pequeno buffer que estabiliza o sinal, permitindo que sejam utilizados mais módulos. Os módulos registered são mais caros e mais lentos que os módulos DDR tradicionais que utilizamos em micros domésticos, mas eles são uma necessidade nos servidores, já que eles precisam utilizar um número muito maior de módulos de memória. Devido ao brutal número de contatos utilizados pelo controlador de memória, o soquete utilizado pelo Opteron tinha nada menos do que 940 pinos, o que na época era inédito.
A partir do momento que passou a ser capaz de produzir um volume maior de processadores, a AMD lançou os modelos destinados ao mercado doméstico, que incluem as versões iniciais do Athlon 64 e Athlon 64 FX.
A Athlon 64 FX era uma variação do Opteron, que vinha com 1 MB de cache L2 e mantinha o controlador de memória dual-channel. A grande mudança em relação ao Opteron é que ele passou a oferecer suporte a memórias DDR comuns, o que barateou muito o custo dos micros. Para diferenciar as placas para o Opteron e para o Athlon 64 FX, a AMD criou o soquete 939, que era virtualmente idêntico ao soquete 940 do Opteron. A posição de alguns dos pinos foi alterada apenas para indicar a mudança no tipo de memória suportado e impedir que o Opteron fosse usado nas placas para o Athlon 64 FX e vice-versa. Mais tarde, o soquete 939 foi usado também pelas versões iniciais do Athlon X2, mas acabou sendo rapidamente substituído pelo soquete AM2.
Em seguida temos as versões "domésticas" do Athlon 64, que vinham com apenas 512 KB de cache L2 e utilizavam um controlador de memória simplificado, sem suporte a dual-channel. Devido ao menor número de contatos utilizados pelo controlador de memória, eles passaram a utilizar o soquete 754.
Considerando dois processadores do mesmo clock, a diferença de desempenho entre um Athlon 64 "normal" e um Athlon 64 FX não é tão grande quanto se poderia imaginar. O controlador de memória dual-channel e o maior cache ajudam em alguns aplicativos, mas a diferença não era tão grande a ponto de justificar pagar US$ 1000 pelo processador, como chegaram a custar algumas versões do FX.
Se você se assustou com o preço, vale lembrar que as primeiras versões do Athlon 64 FX competiam com o Pentium 4 Extreme Edition; ambos eram processadores "de vitrine", destinados ao público entusiasta e vendidos a preços exorbitantes. Mais tarde, foram lançadas versões do Athlon 64 soquete 754 com 1 MB de cache L2, que praticamente anularam as vantagens do FX.
Todos
os processadores Intel e AMD, do 386 ao Athlon, são chamados
genericamente de "processadores x86", deixando claro que apesar de todas
as diferenças de arquitetura, eles são compatíveis com o mesmo conjunto
básico de instruções. É graças a isso
que temos um número tão grande de softwares, acumulados ao longo de mais
de duas décadas, que continuam funcionando nos PCs atuais. Com exceção
da questão dos drivers, você poderia perfeitamente rodar o DOS e o
Windows 3.11 em um Pentium 4, por
exemplo.
Duas
grandes limitações da plataforma x86 são o pequeno número de
registradores e o suporte nativo a apenas 4 GB de memória RAM, limitação
compartilhada por todos os processadores de 32 bits.
Os
registradores são pequenos espaços de memória utilizados pelo
processador para armazenar informações que serão usadas para processar a
instrução seguinte. Você pode pensar nos registradores como uma espécie
de "cache L0". Eles estão muito próximos
das unidades de execução do processador e por isso as informações podem
ser acessadas imediatamente, mas em troca eles são incrivelmente
limitados em tamanho. A arquitetura x86 prevê o uso de apenas 8
registradores, com 32 bits cada um. Ou seja, todos os
registradores somados armazenam apenas 8 bytes de dados.
Não
é possível adicionar mais registradores facilmente, pois softwares
escritos para utilizarem os registradores adicionais não seriam mais
compatíveis com os processadores antigos. A solução encontrada foi
utilizar o recurso chamado "register
renaming" onde o processador possui um número maior de registradores,
mas apenas 8 são visíveis. Os demais são gerenciados de forma dinâmica
pelo processador, que vai chaveando entre eles conforme novas
informações são necessárias. Essa técnica ameniza os
problemas de desempenho causados pelo pequeno número de registradores,
mas não soluciona a questão completamente.
Com
relação à memória, o limite de 4 GB se tornou uma limitação séria em
algumas área a partir da época do Pentium 1. A solução veio na forma do
PAE (Physical Address Extension), um hack (originalmente desenvolvido
pela Intel) que está disponível na
maior parte dos processadores a partir do Pentium Pro. O PAE consiste
numa segunda tabela de endereços, com 4 bits adicionais, que permitem
endereçar 16 páginas de memória, cada uma com 4 GB.
Com
o PAE, passa a ser possível endereçar até 64 GB de memória. A
desvantagem é que o processador continua sendo capaz de acessar apenas 4
GB por vez e o chaveamento entre diferentes páginas de memória toma um
certo tempo, que acaba prejudicando
bastante o desempenho. Ou seja, assim como no caso do register renaming,
o PAE ameniza o problema, mas não o soluciona completamente.
A
única forma de solucionar de vez as duas questões, assim como um
conjunto de outros problemas comuns a todos os processadores de 32 bits,
era desenvolver uma nova nova arquitetura, composta agora por
processadores de 64 bits.
Em
primeiro lugar, precisamos definir o que são processadores de 64 bits e
quais são as vantagens sobre os de 32. Processadores de 64 bits não são
duas vezes mais rápidos nem processam (necessariamente) o dobro de
dados por ciclo de clock. A grande
vantagem dos processadores de 64 bits é que eles são capazes de
trabalhar com endereços de memória de 64 bits, o que permite endereçar
muito mais do que 4 GB de memória RAM. Temos também um aumento no
tamanho dos registradores, que passam a armazenar 64
bits de informações, em vez de 32, o que representa um pequeno ganho de
desempenho.
Outro
benefício (embora menos significativo) é que eles são capazes de
processar número inteiros de até 64 bits, ao invés de 32. Isto oferece
ganhos de desempenho em algumas áreas específicas (como, por exemplo,
softwares de encriptação e alguns
aplicativos científicos) mas não ajuda muito nos aplicativos do
dia-a-dia. Processadores de 32 bits podem processar números inteiros de
64 bits, mas eles precisam ser divididos em duas instruções separadas, o
que naturalmente toma mais tempo.
Com
relação ao processamento de números de ponto flutuante, não existe
ganho, pois os co-processadores aritméticos utilizados nos processadores
atuais já são capazes de processar números de ponto flutuante de 64
bits e vetores de 128 bits. Nestas duas
áreas não existe um ganho direto, já que a transição foi feita há muito
tempo.
A
primeira tentativa de criar um sucessor de 64 bits para a plataforma x86
veio da Intel, que em 2001 lançou o Itanium, um processador de 64 bits
destinado a servidores.
O
Itanium quebra a compatibilidade com a família x86, passando a utilizar o
IA-64, um novo conjunto de instruções. O plano inicial era popularizar a
arquitetura primeiro nos servidores, onde os benefícios de um
processador de 64 bits são mais
evidentes, e em seguida lançar também versões destinadas a desktops. O
problema com o Itanium (além do processador ser muito caro) era que não
existiam softwares capazes de se beneficiar da nova plataforma. Ele
incluía um sistema de emulação, que permitia
rodar softwares de 32 bits, mas neste caso o desempenho era muito ruim.
As
duas versões iniciais do Itanium operavam a 733 e 800 MHz. Elas foram
seguidas pelas diferentes versões do Itanium 2, vendidas em versões de
900 MHz a 1.67 GHz, incluindo versões dual-core. A Intel continua
investindo no desenvolvimento do Itanium,
lançando novas versões, mas o futuro da plataforma é incerto.
Além
do x86-64, a arquitetura K8, compartilhada por todos os processadores
de 64 bits da AMD, inclui um circuito de branch-prediction sensivelmente
melhorado, com um global history counter 4 vezes maior que o do Athlon
K7.
O
global history counter é a área reservada a armazenar os resultados de
operações resultadas anteriormente. Estas informações são utilizadas
como base de consulta pelo circuito de branch prediction na hora de
decidir qual caminho deve tomar dentro de
uma operação de tomada de decisão.
Outro
recurso, possivelmente o mais famoso, é o controlador de memória
integrado, chamado de IMC (Integrated Memory Controller).
Tradicionalmente, o controlador de memória faz parte do chipset e opera à
mesma freqüência que ele. O processador se
comunica com o chipset através do Front Side Bus (o barramento
principal) e ele (o FSB) é utilizado para todo o tráfego, incluindo a
leitura e gravação de dados na memória
Ao
mover o controlador de memória para dentro do processador, a AMD foi
capaz de reduzir sensivelmente o tempo de latência nos acessos à
memória, aumentando assim o desempenho do processador em alguns pontos.
Nos processadores baseados na arquitetura
K8, o processador é ligado diretamente às trilhas da placa-mãe que levam
aos pentes de memória, e a comunicação com o chipset é feita através de
um barramento HyperTransport. No caso de sistemas com dois
processadores em SMP (como no caso de servidores
equipados com o Opteron), barramentos HyperTransport adicionais fazem a
ligação entre os processadores.
Versões:Tudo começou com o Opteron, o primeiro processador baseado na arquitetura Hammer, destinado a servidores. Ele utilizava um controlador de memória dual-channel e oferecia suporte apenas a memórias registered, módulos especiais que incluem um pequeno buffer que estabiliza o sinal, permitindo que sejam utilizados mais módulos. Os módulos registered são mais caros e mais lentos que os módulos DDR tradicionais que utilizamos em micros domésticos, mas eles são uma necessidade nos servidores, já que eles precisam utilizar um número muito maior de módulos de memória. Devido ao brutal número de contatos utilizados pelo controlador de memória, o soquete utilizado pelo Opteron tinha nada menos do que 940 pinos, o que na época era inédito.
A partir do momento que passou a ser capaz de produzir um volume maior de processadores, a AMD lançou os modelos destinados ao mercado doméstico, que incluem as versões iniciais do Athlon 64 e Athlon 64 FX.
A Athlon 64 FX era uma variação do Opteron, que vinha com 1 MB de cache L2 e mantinha o controlador de memória dual-channel. A grande mudança em relação ao Opteron é que ele passou a oferecer suporte a memórias DDR comuns, o que barateou muito o custo dos micros. Para diferenciar as placas para o Opteron e para o Athlon 64 FX, a AMD criou o soquete 939, que era virtualmente idêntico ao soquete 940 do Opteron. A posição de alguns dos pinos foi alterada apenas para indicar a mudança no tipo de memória suportado e impedir que o Opteron fosse usado nas placas para o Athlon 64 FX e vice-versa. Mais tarde, o soquete 939 foi usado também pelas versões iniciais do Athlon X2, mas acabou sendo rapidamente substituído pelo soquete AM2.
Em seguida temos as versões "domésticas" do Athlon 64, que vinham com apenas 512 KB de cache L2 e utilizavam um controlador de memória simplificado, sem suporte a dual-channel. Devido ao menor número de contatos utilizados pelo controlador de memória, eles passaram a utilizar o soquete 754.
Considerando dois processadores do mesmo clock, a diferença de desempenho entre um Athlon 64 "normal" e um Athlon 64 FX não é tão grande quanto se poderia imaginar. O controlador de memória dual-channel e o maior cache ajudam em alguns aplicativos, mas a diferença não era tão grande a ponto de justificar pagar US$ 1000 pelo processador, como chegaram a custar algumas versões do FX.
Se você se assustou com o preço, vale lembrar que as primeiras versões do Athlon 64 FX competiam com o Pentium 4 Extreme Edition; ambos eram processadores "de vitrine", destinados ao público entusiasta e vendidos a preços exorbitantes. Mais tarde, foram lançadas versões do Athlon 64 soquete 754 com 1 MB de cache L2, que praticamente anularam as vantagens do FX.
0 comentários:
Postar um comentário