ArtigosDestaque

Preview: Arquitectura AMD Bulldozer

Introdução

Este ano a AMD marcou presença na ISSCC 2011 para falar especialmente do seu processador que tem uma nova arquitectura: Bulldozer. Será um produto que sairá este ano e que antes ainda deveremos ter mais informações sobre ele, visto que ainda muita informação não foi dita até agora.

Primeiro que tudo há que perceber o que se quer dizer com nova arquitectura.
Vejamos o caso da Intel. Lançou o Pentim III, depois andou-se a arrastar com o Pentium IV, que era uma arquitectura completamente diferente e em seguida quando se apercebeu que com o Pentium IV não ia a lado nenhum, lançou o Core 2, outra nova arquitectura, depois o Nehalem, mais uma nova arquitectura e por fim o Sandy Bridge, que para não variar, também é novo. Isto é, contando com o Pentium III, temos 5 arquitecturas diferentes.
Vamos comparar agora com a AMD. Temos o Athlon que foi uma mudança radical em relação ao K6, o Athlon 64 e o Phenom. A questão é, estes dois últimos não são novas arquitecturas, mas sim evoluções do Athlon. É verdade que muita coisa foi alterada. Controlador de memória no processador, 64 bit, L3, multi-core, etc, mas a base é a do Athlon.
Por isso temos que notar algo importante, no mesmo período de tempo que a Intel teve cinco arquitecturas distintas, a AMD teve uma.
A questão de isto acontecer é simples. A Intel tem muitos mais recursos que a AMD e o Athlon original é uma excelente base, mas não dura para sempre.

Onde quero chegar é, esqueçam o Athlon. O Athlon vai ser passado, porque o Bulldozer é algo completamente novo e feito de raíz. Com isto não estou a dizer que a AMD deitou o Athlon para o lixo. Simplesmente a AMD tem que ir por outros caminhos para voltar a ganhar mercado, por o mercado em 1999 (quando saiu o Athlon) não é o mesmo que em 2011.

Vou tentar “descascar” o que conhecemos até agora do Bulldozer.

A morte do core às mãos do módulo

Neste tipo de artigos, normalmente a primeira coisa a analisar é o core que vai ser a base do processador. A questão é que no Bulldozer não há propriamente 1 core, mas sim 1 módulo.
Isto em si é confuso, mas quando olhamos para o mais básico que há no Bulldozer não podemos pensar da mesma forma que olhamos para um Athlon ou seus derivados.

Um módulo Bulldozer

Tendo a imagem fornecida pela AMD, é mais simples perceber porque não podemos falar em core, mas sim em módulo.
A unidade base do Bulldozer é mais complexa que o normal. Isto porque usa CMT ( Chip Multi Processor ), algo nunca visto em processadores desktop ou servidor x86.
Explicando melhor. O módulo é formado por duas unidades de inteiros, completamente separados, que partilham uma unidade de virgula flutuante.
No entanto, se repararem, há vários componentes partilhados. Fetch, Decode, cache L2 e apesar de não estar presente, penso que L1 Instruction cache. Separado está os pipelines de cada unidade de inteiros e unidade de virgula flutuante, a cache L1 Data e o scheduler.
Se acreditarmos nos números da AMD, este design parece muito interessante, porque recorrendo a CMT, só aumenta em 5% o tamanho do módulo e temos um aumento de performance na melhor das hipóteses de 1.8x, quando o SMT usado pela Intel (conhecido por Hyper-threading) só chega a 1.3x.

Mas não só estas alterações que fazem do módulo do Bulldozer, algo de interessante.

As unidades de inteiros, têm agora 4 pipelines, algo que apareceu primeiro no Core 2 da Intel. Um para divisões, outro para multiplicações e os outros dois são genéricos.

Foram também dados alguns pormenores de cada scheduler que está em cada unidade de inteiros. Cada scheduler suporta 40 entradas e é out-of-order. Ao mesmo tempo, suporta 4 instruções de 64 bit.

Não foram dados pormenores das unidades de fetch/prefetch e branch prediction. A AMD disse que foram melhorados, mas não disse como. Por exemplo a Intel é conhecida por ter a melhor percentagem em branch prediction, por uma série de técnicas e falta ver se a AMD melhorou significativamente este ponto.

Foi aumentado o número de decoders para conseguir “alimentar” as unidades de inteiros e de virgula flutuante. Nesta parte fica ainda uma dúvida. O Athlon tinha três decoders complexos contra os três simples e um complexo do Core 2. Falta saber como está esta estrutura no Bulldozer e que instruções são transformadas em macro-ops simples e quais as complexas.

Apesar de só termos uma unidade de virgula flutuante em cada módulo, ela é muito mais poderosa que no passado. O Phenom só tinha uma unidade de 128 bit por core, ao contrário de duas unidades de 128 bit no Phenom. Estas unidades podem-se combinar e executar uma instrução AVX de 256 bit. Em SSE, pode executar duas instruções 128 bit ao mesmo tempo ou quatro 64 bit. Os processadores da Intel, só conseguem executar uma instrução 128 bit e duas 64 bit, mas têm uma unidade para AVX.
Por isso, em código SSE o Bulldozer teoricamente é mais forte, e em AVX provavelmente mais lento.
Além disto tudo, o Bulldozer tem suporte para FMA (Fused multiply add) em apenas uma operação, algo que a Intel não suporta e que só suportará dentro de uma geração (Haswell).

Consumo

Ao longo dos anos a AMD tem implementado aos poucos medidas para reduzir o consumo e nos últimos tempos, medidas para aumentar o clock, quando outros cores não estão a ser usados, mas o Bulldozer vai mais além nestes aspectos.

Gráfico do consumo típico de um Desktop.

Como podem ver no gráfico, num desktop normal, o consumo do processador tem um peso bastante grande. Se for possível reduzir o consumo do processador, mesmo em pequenas percentagens, faz uma grande diferença no consumo total.

A AMD implementou várias medidas para reduzir o consumo e melhorar a forma como é usado o Turbo Core.

A primeira medida é terem individualizado totalmente a distribuição de energia por cada unidade. Isto faz com que cada core possa ser desligado completamente se não estiver a ter qualquer uso. Isto inclui as unidades que não são partilhadas.
A segunda medida é o clock grid, que é o que transmite os sinais de clock pelo processador, foi completamente redesenhado, fazendo que consuma menos, mas não tenha problemas na sua função.
A terceira medida foi implementar clock gates. Ao todo existem 30000 clock gates neste design, que têm como função desligar certas unidades, se não estiverem a ser utilizadas. Mesmo com o processador a 100% de utilização, pode haver unidades que não estão a ser utilizadas e são assim desligadas para reduzir o consumo.
A quarta medida é como funciona o Turbo core. A primeira implementação no Phenom é bastante simples. Se alguns cores não estiverem a ser utilizados, ele aumenta o clock dos cores utilizados em 400 Mhz e diminui os clocks dos que não estão a ser utilizados para 800 Mhz. Não há escalas intermédias consoante o número de cores a serem utilizados, nem são completamente desligados os cores que não estão a ser utilizados. É como um interruptor só com duas opções. No Phenom tudo isto muda e fica parecido com o sistema da Intel. Os cores podem ser completamente desligados e quantos menos cores são utilizados, mais o clock sobe.

Comparação da percentagem de clocks a serem disparados, em diversas situações, entre o Bulldozer e o Phenom.

Outros dados importantes

Além das duas unidades de inteiros e uma de virgula flutuante por módulo, há outros dados importantes.

Cada módulo terá 2 MB de cache L2, que é um aumento significativo sobre os 512 KB actuais. Este é um número que surpreende pela quantidade, mas pelo que foi explicado, a Globalfoundries, onde vão ser produzidos estes processadores, conseguiu que as células de SRAM fossem mais pequenas que as usadas anteriormente e que tenham um clock maior.

Falta ainda saber o tamanho da cache L3, mas o rumor é que em desktops terá 8 MB. À primeira vista não parece muito e falta ver se as versões servidor terão mais, mas também se fala que a velocidade será superior aos actuais 2 Ghz, o que é bastante positivo.

Ligado a isto está o processo de fabrico. 32 nm SOI, com 11 camadas de metal, o que diz da complexidade do processadore.
Cada módulo tem 213 milhões de transístores num espaço de 30,9 mm quadrados, o que tendo em conta que inclui 2 MB de L2, não é assim tão grande.

Em relação ao processo de fabrico, há algo que a AMD disse que me parece importante. Normalmente para conseguir a melhor performance e consumo, costumizam-se as células “à mão” a nível de design, mas a AMD disse que com este processo de fabrico, usou células Standard por um processo automatizado, que demora muito menos tempo e é menos complexo, conseguindo a mesma performance.
A ser verdade, o Bulldozer deve ter demorado menos tempo a ser criado e talvez seja mais rápido criar outras versões para o mercado.

A primeira versão a sair será uma versão desktop, usando o socket AM3+, que precisa de novas motherboards e para servidores com o socket C32, que já estão preparadas para receber o Bulldozer.
Esta versão contará com 4 módulos e, se contarmos os cores como unidades de inteiros, 8 cores.


Die do primeiro Bulldozer.

Em seguida, deveremos ter uma versão com dois chips combinados no mesmo package, que terá o máximo de 16 cores, para o socket G34, que também já está preparado para receber o Bulldozer.
A questão é saber se esta versão terá mais cache L3, visto que será usado principalmente em 2 ou mais sockets.

Conclusão e opinião

O primeiro ponto a reter deste artigo é que ao fim de longos anos de serviço da arquitectura do Athlon, a AMD, para continuar a concorrer com a Intel, teve que partir quase de uma folha em branco.

Neste artigo estão explicadas muitas mudanças e inovações, mas ainda falta conhecer muitos pormenores para termos uma visão completa do Bulldozer. Nem toda a arquitectura está explicada, ainda não se fala de clocks e não há qualquer benchmark oficial.
Dito isto, o que foi mostrado até agora, percebe-se que no mínimo o Bulldozer é algo interessante e que tomou outros caminhos, tanto do passado da AMD como da Intel, para tentar melhorar a performance, seja ela por thread ou no seu conjunto.

A questão é que, se como parece, a primeira versão tem 8 cores, vai ser complicado comparar com os processadores da Intel, porque a Intel não tem um processador com 8 cores no mercado. E aqui estou a esquecer-me do Nehalem-EX, que também tem 8 cores, mas os preços são outros.
Talvez a Intel e outras pessoas não gostem de ver unidades de inteiros a contar como cores, mas aqui concordo com a AMD. CMT noutras implementações é muito mais poderoso que SMT. Por isso penso que é justo dizer que o Bulldozer tem 8 cores e a Intel no máximo tem 6 + SMT.

Entrando realmente na minha opinião. Penso que em cenários em que o limite é o numero de threads o Bulldozer vai bater o Hexa-core da Intel e o quad core Sandy Bridge? Sim, penso que sim e até penso que vai bater por larga margem. E sim, estou a contar que o Bulldozer tenha clocks elevados (a minha aposta é entre 3.5 a 4 Ghz para o topo de gama).

Quando o limite é só uma thread e ao mesmo clock, parece-me mais complicado de prever. A nível de virgula flutuante, só com uma thread, parece-me que sim, em todos os cenários, menos em AVX.
Em números inteiros ainda se torna mais complicado, mas com 2 MB de L2 por cada módulo, vou apostar que também consegue bater a Intel.

Seja como for, estou a especular um pouco, mas depois do que a AMD mostrou, parece-me uma arquitectura melhor que o Nehalem e o Sandy Bridge da Intel.
Falta ver o resto dos pormenores, que devem ser mostrados na Cebit deste ano e ver o processador na prática. No fundo, espero que a AMD tenha aqui um bom produto, porque o mercado precisa de uma guerra de preços, que só favorece os consumidores.

Artigos Relacionados

Botão Voltar ao Topo