Artigos

Intel em servidores, uma opinião para o futuro

Introdução

Este artigo é um artigo de opinião, sobre a Intel e sobre como acho que a Intel deveria reagir às diversas ameaças e oportunidades que enfrenta no mercado de servidores.
Este artigo tem como base algumas das tecnologias da Intel e não só, mas é completamente especulativo, pois é apenas a minha visão de como a Intel deveria mudar no seu futuro.
No caso, debrucei-me sobre a Intel, porque acho que tem várias vantagens sobre os competidores, no entanto, algumas destas ideias podem-se aplicar a outras empresas.
Esta é apenas a minha opinião e muitos podem não concordar.

Primeira mudança: Acabar com a separação Xeon-DP e Xeon-MP

Um dos problemas competitivos que vejo na Intel, é que separa a sua gama Xeon entre Xeons até dois sockets e Xeons para mais de 4 sockets.
Não são compatíveis as duas gamas e usam sockets diferentes.
Na AMD, teoricamente não há essa separação, apesar de também terem dois sockets.
Se fosse a Intel, acabava com essa separação. Juntava tudo num socket, diferente do socket para desktop, com o mesmo chipset para os diversos processadores.

Xeon 5600. 6 cores, mas limitado a 2 sockets.

Xeon 7500. 8 cores, sem limites de sockets, mas a preços muito elevados.

Isto é, nivelava por cima. Criaria um socket que permitisse quatro controladores de memória, quatro ou mais canais QPI, para permitir a ligação coerente a outros processadores ou chipsets e serviria para três famílias de processadores:
– Xeon DP
– Xeon MP
– Xeon CL (mais à frente explico o que seria esta familia).
De fora fica a família Itanium.

Segunda mudança: Separar a cache L3, aumentar o número de cores

A ideia é a seguinte, vamos olhar para o chip de um Xeon e verificamos que grande parte do die é composta por cache L3.

No Xeon 5600, “só” temos 12 MB de Cache L3, no entanto ocupa um largo espaço no processador, que poderia ser ocupado com mais cores. Por exemplo 8 cores neste processo de fabrico ou muitos mais quando reduzirem para 22 nm.

Na versão para mais de 4 sockets, temos 24 MB de L3, que ocupa grande parte do espaço no processador. Se a retirássemos, poderíamos ter 16 cores neste processo de fabrico ou muitos mais a 22 nm.

A questão é, não poderíamos deixar os processadores sem cache L3. O que penso que poderia ser feito?
Vejo duas hipóteses, favorecendo a segunda.
– A primeira não é propriamente inovadora, porque foi usado por exemplo no Pentium Pro, na altura na cache L2. A ideia era ter a cache L3 num chip à parte, no mesmo package.

Pentium Pro, apenas um exemplo em que se separa a cache de ultimo nível, do processador, estando no mesmo package. Existem exemplos mais recentes de outros fabricantes a fazer o mesmo.

Mas não usaria SRAM para cache L3, mas sim eDRAM e porquê? Apesar de eDRAM ter uma latência superior a SRAM, como é usada como cache L3, isso não é tão significativo. A grande vantagem de usar eDRAM é que se consegue uma maior densidade que SRAM e por isso no mesmo espaço, consegue-se colocar mais memoria.
O uso de eDRAM tem sido especialmente usado pela IBM, por exemplo no GPU da Xbox 360 e no Power7.

Como esta memória estaria no mesmo package do chip, o mesmo processador teria vária versões com diferentes tamanhos de cache. Por exemplo, um processador com 8 cores poderia ter uma versão com 8 MB, outra com 12 e outra com 16 MB de L3. Já um processador com 16 cores, poderia ter 3 versões com 16, 24 e 32 MB de L3.
No entanto, esta não é a minha solução preferida.

– A segunda opção e a minha preferida é a cache L3 não estar no mesmo package do processador e sim num chip à parte, num slot ou socket, que tivesse um bus com larga bandwidth e pouca latência, ligado ao processador, usando na mesma eDRAM.

Processador e cache L3, separados fisicamente, ligados por um bus.

Porque prefiro esta solução? Pela flexibilidade que permite. Isto é, o comprador final escolheria que processador preferia, tendo mais em conta o nível de cores e escolheria à parte, se queria e que tamanho teria a cache L3.
Isto poderia levar a alguns desequilíbrios, com muitos cores e pouca cache ou o contrário, mas isso estaria na mão do comprador final, que neste mercado, é um comprador com conhecimentos avançados.

Terceira mudança: Ring-bus a ligar a cache L2.

Depois de tratado da cache L3, o que faria à cache L2? Faria algo emprestado da arquitectura Larrabee da Intel. Isto é, cada core teria a sua cache L2, mas ligados entre si por um bus em anel, de grande velocidade e baixa latência, para que um core que tenha um “miss” na sua cache L2, possa encontrar os mesmos dados na cache de outro core.

O processador Sandy Bridge da Intel, tem um ring-bus, mas na cache L3. Retirada a cache L3, este ring-bus passaria para a cache L2.

Fazendo o mesmo que foi feito no Larrabee.

Quarta mudança: Alterar o formato da memória Dimm

A questão é, com o aumento do número de canais e de slots de memória, os tradicionais slots Dimm, ocupam demasiado espaço na motherboard. Vejamos o seguinte exemplo:

Pode não parecer, mas esta board é enorme e tem 32 slots de memória, que se repararem, ocupa espaço a mais.

A minha ideia seria uma transição para SO-Dimms, normalmente usado em portáteis, tal como existe nos dias de hoje, uma transição de discos 3.5 para 2.5 polegadas, neste mercado, pois no mesmo espaço, consegue-se uma densidade maior.

Uso de SO-Dimms com grande densidade, para ocupar menos espaço na motherboard, como é o caso de esta board Supermicro para servidores.

Quinta mudança: Xeon CL

Eu não gosto muito da moda da “Cloud”, mas ela existe e este Xeon não seria só para este tipo de serviço e sim também empresas de hosting por exemplo.
A ideia deste processador não é completamente original, pois parte das ideias fui buscar ao Sun Niagara.

Niagara 3. Muitos cores, mas bastante simples, com bastantes funcionalidades integradas e uso de hyperthreading.

A ideia seria usar o que a Intel já tem. O Intel Atom, mas com algumas diferenças e aplicado a servidores. Um facto importante, o die size do atom é de 26 mm². Pequeno, mesmo muito pequeno. O que gostava de ver.
– Usar a mesma infra-estrutura dos outros Xeons. Mesmo socket, 4 canais de memória, cache L3 separada, etc.
– Ring-bus entre a cache L2 dos diversos cores.
– Fabrico a 22 nm.
– 32 ou mais cores.
– Quad hyperthreading por core, para esconder falhas de cache de cada thread.
– Passar para uma arquitectura out-of-order.
– Integração de várias funcionalidades no processador. Nics 10 Gbit, unidade de encriptação, etc.
– o mínimo consumo possível, mesmo baixando o clock para atingir esse objectivo.

Sexta mudança: Co-processador Knights Corner, mas noutro package

Se calhar muitos não sabem, mas a Intel tem uma resposta para o nVidia Tesla a nível de alta computação, em que cálculos de virgula flutuante é tudo.
Essa resposta tem como nome Knights Ferry e apesar de não ser um produto de venda ao público, está a ser usado, por exemplo no CERN.
O que é este Knights Ferry? Não é mais que o projecto falhado da Intel para um GPU, chamado de Larrabee.
´
Este acelerador é composto por 32 cores muito parecidos ao primeiro Pentium, mas não é aí que está a “magia”. Cada core tem uma unidade vectorial de 512-bit, que faz 16 operações de virgula flutuante de precisão simples por clock ou 8 de dupla precisão.
Apesar de ter extensões, é um x86, o que é uma vantagem e a memória é coerente. Implementa também um ring-bus entre as diferentes caches L2 de cada core.

Mais alguns pormenores. Quatro threads por core, 1.2 ghz e 8 MB de cache coerente, que é a cache L2. Um ou dois GB de Ram externa.

O mais interessante é que apesar de ainda não ser um produto, os poucos benchmarks anunciados dão uma excelente performance a esta placa.
Mais interessante é que a próxima versão, com o nome de Knights Corner, será a 22 nm e terá mais de 50 cores. Eu apostaria em 64 e, quem sabe, algumas melhorias a nível de arquitectura.
Sabendo que a Intel tem normalmente uma vantagem de 1 ano a nível de processos de fabrico, este produto será a ter em conta pelos principais adversários.

No entanto a algo que para mim nunca bateu certo. Vou tentar explicar. Reparem nesta imagem:

Acham que uma placa Pci-Express, full size, dual slot, tem lugar em servidores? Eu penso que não, pois é demasiado grande para muitos formatos de servidores e ocupa demasiado espaço, tanto a nível de altura, como comprimento.
Penso que este formato foi herdado das placas gráficas desktop e ainda não se pensou em colocar num package mais normal para servidores.
A questão é, será que o arrefecimento do GPU é tão importante num servidor, quando normalmente não há problemas a nível de quantidade de ventoinhas e de barulho?

A minha ideia é a seguinte. Esquecer este formato e usar algo parecido com MXM usado em portáteis. Poderia não ser exactamente igual, mas usar o mesmo formato, com a placa deitada por cima da motherboard.

Exemplo de uma placa MXM usada em portáteis.

Reparem que estas placas têm furações para um cooler, normalmente uma ventoinha deitada, com um cooler baixo com heatpipes. Em servidores talvez não fosse preciso isso. Talvez usar o mesmo cooler de um processador em servidores. Um enorme bloco de cobre.

Exemplo de um cooler de baixo perfil para servidores.

A ideia era ter estes aceleradores num formato bem mais pequeno, em que é as ventoinhas da caixa que dissipam o calor e não uma ventoinha numa placa.
A vantagem seria, ou ter mais aceleradores num servidor ou reduzir o tamanho dos servidores.

Conclusão

Mais uma vez, este artigo é completamente especulativo, mas acho que estas medidas tornariam a Intel ainda mais competitiva, num mercado onde já domina.

No entanto, no presente ou num futuro próximo a Intel vai ter vários desafios neste mercado. Por exemplo processadores ARM de muito baixo consumo a serem usados em servidores ou placas gráficas como aceleradores de computação.

A ideia deste artigo não seria apenas para a Intel ter uma resposta ao mesmo nível, mas sim ir mais além do que os seus competidores têm no mercado.

Foram apenas seis ideias que lanço neste artigo, mas penso que seriam medidas que viriam favorecer a Intel e os consumidores neste mercado.

Etiquetas

Artigos Relacionados

Close
Close