Servidores ARM: Arquitetura de CPU móvel para datacenters?

Publicados: 2022-03-11

Estou ficando velho. Na minha época, se você queria um desempenho de CPU de alto nível, você tinha que usar um chip x86 de última geração ou, se você tivesse bolsos mais profundos, poderia obter algo exótico, como um sistema PowerPC. A dependência da indústria de processadores x86 parecia estar aumentando, não diminuindo.

Dez anos atrás, a Apple se juntou ao clube x86, e isso levou muitos observadores a concluir que a era dos processadores não x86 no mercado de massa havia acabado. Apenas alguns anos depois, eles tiveram que engolir suas palavras e, mais uma vez, a Apple teve algo a ver com isso. Os servidores ARM estão chegando e podem revitalizar a indústria de servidores.

Repensando o design do processador

À medida que o paradigma mudou e os usuários comuns adotaram smartphones e tablets, rapidamente ficou claro que os chips x86 da Intel, AMD e VIA simplesmente não estavam à altura da tarefa. Embora o x86 fosse o conjunto de instruções mais prolífico do planeta, não era uma boa escolha para dispositivos móveis por vários motivos. Na verdade, o conjunto de instruções da Intel ainda não é uma escolha popular para processadores móveis, embora isso esteja começando a mudar graças ao líder de tecnologia de fundição da Intel. De qualquer forma, quando se trata deste segmento de mercado, o x86 não é tão eficiente quanto outras arquiteturas de CPU por aí, ou seja, processadores baseados nos conjuntos de instruções ARMv7 de 32 bits e ARMv8 de 64 bits da ARM.

Na última década, e especialmente nos últimos cinco anos, os processadores ARM dominaram o cenário de smartphones e tablets, e eles tinham muito a seu favor. Eles ofereciam muito desempenho por watt, eram baratos para projetar, produzir e implantar. Grandes fornecedores podem comprar os blocos de construção necessários e projetar seus próprios processadores baseados em ARMv7 ou ARMv8, adicionando outros componentes de acordo com suas necessidades (modems de alta velocidade e GPUs diferentes, para citar alguns).

Isso levou alguns designers de chips a adotar uma abordagem um pouco diferente e projetar seus próprios núcleos de CPU personalizados. A Qualcomm e a Apple lideraram o caminho, ambas as empresas se tornaram grandes players no mercado de System-on-Chip (SoC) móvel, e seu desenvolvimento de núcleos sofisticados e personalizados desempenhou um papel fundamental em seu sucesso. No entanto, núcleos ARM personalizados ainda eram usados ​​em processadores de ponta, enquanto todos os outros segmentos de mercado eram cobertos por núcleos de CPU ARM Cortex padrão, como o Cortex-A8 de 32 bits, A9, A7 e A15, seguidos por 64 bits. designs como o Cortex-A53, A57 e o novo núcleo A72, que está prestes a começar a ser comercializado.

O outro pré-requisito para o sucesso da ARM foi o fracasso da Microsoft.

O Windows rodava apenas em processadores x86, então, se a Microsoft ganhasse uma posição no mobile, isso faria pender a balança a favor da Intel. No entanto, no final da última década, tornou-se evidente que Redmond havia deixado cair a bola e cedeu esse mercado lucrativo ao Google e à Apple. Falando em bolas, o CEO de longa data da Microsoft, Steve Ballmer, deixou a empresa há alguns anos, admitindo que ele e sua equipe não reconheceram o potencial de smartphones e tablets. De qualquer forma, não é mais problema de Ballmer: ele tem outras bolas em mente agora, bolas de basquete para ser exato.

Os processadores ARM dominam o cenário móvel e estão fazendo incursões em outras categorias de produtos. Os servidores são um bom lugar para começar.

Os processadores ARM dominam o cenário móvel e estão fazendo incursões em outras categorias de produtos. Os servidores são um bom lugar para começar.
Tweet

No entanto, o celular não é o primeiro ou único segmento de mercado a testemunhar um fracasso da Microsoft de proporções épicas. O outro é o mercado de servidores. À primeira vista, smartphones e data centers não têm muito em comum, mas do ponto de vista tecnológico e de negócios, eles têm alguma sobreposição.

Esteja você projetando um smartphone ou um servidor, você precisa enfatizar aspectos semelhantes de sua plataforma de hardware, como eficiência de energia, boas térmicas, desempenho por dólar e assim por diante. Mais importante ainda, você realmente não precisa de um processador baseado em x86 para smartphones e muitos tipos de servidores. Graças às falhas da Microsoft, esses segmentos de mercado não são dominados por nenhum tipo de Windows. Eles confiam em sistemas operacionais baseados em UNIX : Android, iOS e várias distribuições Linux.

A Microsoft também tentou aproveitar o potencial dos processadores ARM, então tentou desenvolver uma versão do Windows que rodaria em hardware ARM, o que convenientemente me leva à próxima falha da Microsoft: Windows RT. A Microsoft finalmente desligou o Windows RT, ou “Windows on ARM”, como foi originalmente chamado. Os mais recentes tablets Surface da Microsoft empregam processadores x64 e Windows 10 padrão. A linha de smartphones Lumia da Microsoft (nee Nokia Lumia) ainda usa processadores ARM da Casa da Qualcomm, mas o Windows Phone está praticamente morto como uma plataforma de smartphone convencional.

Servidores não precisam custar um braço e uma perna

No momento, temos alguns bilhões de smartphones e tablets disponíveis, e a grande maioria é baseada em processadores ARM. No entanto, os chips ARM não estão chegando a outros segmentos de mercado. Existem apenas algumas plataformas de computação de alto volume baseadas em ARM que não se enquadram na categoria de smartphones e tablets. Os Chromebooks do Google são provavelmente o exemplo mais conhecido. No entanto, os chips ARM são usados ​​em vários outros dispositivos: roteadores, set-top boxes e smart TVs, smartwatches, alguns dispositivos de jogos, sistemas automotivos de infoentretenimento e assim por diante.

E os servidores ARM?

Isso é onde fica complicado. Tenho ouvido falar de servidores ARM desde 2010, mas o progresso tem sido lento e limitado. A participação de mercado da ARM no segmento de servidores permanece insignificante e o ecossistema permanece dominado por peças x86 Xeon e Opteron da Intel e AMD, respectivamente. Como a AMD está em um mundo de problemas na frente da CPU, a Intel conseguiu ampliar sua liderança de participação de mercado nos últimos anos.

Os servidores ARM podem acabar significativamente mais baratos do que seus equivalentes baseados em chips Intel e AMD x86.

Os servidores ARM podem acabar significativamente mais baratos do que seus equivalentes baseados em chips Intel e AMD x86.
Tweet

Mas por que os servidores ARM pareciam uma boa ideia para começar?

Dinheiro. Eu poderia tentar listar todos os pontos nerds que tornam o ARM uma alternativa viável ao x86 no mercado de servidores, mas no final das contas é principalmente sobre dinheiro, então tentarei explicá-lo em algumas linhas.

  • Preço/Desempenho
  • As cargas de trabalho do data center estão evoluindo e mudando
  • Capacidade de obter processadores de vários fornecedores
  • Uso de chips customizados para diversos nichos
  • Os chips ARM são mais adequados para algumas aplicações de infraestrutura
  • É uma boa maneira de mantê-lo na Intel e corroer sua posição no mercado (a Intel está prestes a se tornar um monopólio no espaço do servidor)

Não precisamos de um processador Xeon enorme e caro para tudo. Além disso, usar processadores x86 obsoletos para lidar com cargas de trabalho pouco exigentes não é uma boa opção devido ao consumo de energia. Lembre-se, estamos falando de servidores, não do seu MacBook ou PC de mesa. Os servidores funcionam 24 horas por dia, portanto, todo ganho de eficiência, incluindo os relativamente pequenos, tende a ser importante. Não se trata apenas de aumentar a conta de energia elétrica; os data centers precisam ser resfriados e mantidos, portanto, os processadores com classificação TDP ( Thermal Design Power) mais baixo são muito mais valiosos para os usuários corporativos do que para os indivíduos.

Por que usar servidores ARM?

Então, para que tipo de aplicativo corporativo os processadores ARM são bons?

Bem, a ARM espera obter a grande maioria das vitórias de design para aplicativos de infraestrutura de rede. Devido à sua flexibilidade, tamanho pequeno, eficiência e baixo preço, os processadores ARM são uma ótima opção para infraestrutura. Você pode usar processadores ARM em roteadores, soluções de armazenamento de alto desempenho e certos tipos de servidores.

No entanto, a ARM espera que a maior parte do crescimento empresarial nesta década venha de servidores, uma vez que seus outros segmentos já estão maduros e tem uma participação de mercado saudável neles. As cargas de trabalho do servidor também estão mudando, e essa tendência está ligada ao crescimento dos serviços em nuvem. Como resultado, os servidores precisam lidar com um número crescente de tarefas menores.

Muitas organizações preferem manter suas opções abertas, por isso adquirem hardware de vários fornecedores. Esta é uma boa notícia para os processadores de servidor ARM porque eles podem ser comercializados por várias empresas diferentes. Além disso, as políticas de licenciamento da ARM e a abordagem modular para o design do processador podem ser utilizadas para projetar processadores personalizados para aplicativos específicos. Obviamente, isso é algo que não é uma opção para pequenas empresas, mas o que pode acontecer se grandes players como Amazon, Facebook ou Google começarem a pedir processadores de servidor sob medida, projetados para se destacar em um aplicativo específico?

Quanto a “aderir à Intel”, devo observar que não quero prejudicar a Intel e não quero vê-la falhar ou ser excluída de vários segmentos de mercado, mas ao mesmo tempo estou preocupado que O domínio da Intel pode acabar sufocando o crescimento e a inovação. Mais concorrência deve resultar em preços mais baixos para os usuários finais, e é disso que se trata os servidores ARM.

Multithreading: quantos núcleos de CPU são suficientes?

Há apenas uma década, os processadores x86 multicore eram reservados para computadores e servidores de alto desempenho, mas agora você pode obter chips x86 quad-core em tablets de US$ 100.

Nos primeiros dias da computação multicore, você ainda precisava de grandes núcleos de CPU para obter níveis adequados de desempenho. Muitos softwares não conseguiram tirar proveito desses novos processadores e seus núcleos extras, portanto, um bom desempenho de thread único era vital. As coisas com certeza mudaram; hoje em dia, temos smartphones octa-core, tablets e telefones Intel quad-core e processadores de servidor x86 de 16 núcleos.

Há uma boa razão para isso. Construir um processador multi-core faz todo o sentido do ponto de vista tecnológico e financeiro. É muito mais fácil distribuir a carga para alguns núcleos de CPU menores e mais eficientes do que desenvolver um único núcleo enorme capaz de funcionar em altas frequências. A abordagem multicore garante eficiência e rendimento de chip superiores.

Multithreading como um chefe: processadores de servidor ARM podem ter muito mais núcleos físicos do que sua parte média de servidor x86.

Multithreading como um chefe: processadores de servidor ARM podem ter muito mais núcleos físicos do que sua parte média de servidor x86.
Tweet

O ARM tem o potencial de levar a mania central para o próximo nível. Os núcleos de CPU ARM tendem a ser menores do que os chamados “grandes núcleos” da Intel usados ​​em partes de servidor e desktop (os Atoms de “núcleo pequeno” da Intel são reservados para dispositivos móveis, embora as partes de servidor baseadas em Atom também estejam disponíveis). No entanto, isso não significa que veremos processadores ARM de 128 ou 256 núcleos em breve, embora em teoria, eles sejam possíveis. Depende de como a nova safra de processadores de servidor ARMv8 lida com cargas multithread. Existem alguns sinais encorajadores, e as chances são de que os servidores ARM serão uma boa escolha para uma variedade de cargas de trabalho que podem se beneficiar de seus processadores multicore.

O primeiro processador de servidor da Qualcomm tem 24 núcleos de CPU ARMv8, e o fabricante de chips deixou claro que os modelos futuros terão ainda mais núcleos. Lembre-se da AMD e seus problemas no mercado de servidores? Bem, a empresa lançou seu processador Opteron A1100 baseado em ARM há apenas algumas semanas. A Qualcomm fez o anúncio em outubro, então ambos os produtos estarão disponíveis nos próximos meses.

É claro que a Intel não estará presente nesta festa ARM, mas a Qualcomm e a AMD não são as únicas empresas de chips que trabalham em chips corporativos baseados em ARM. Fabricantes de chips como Broadcom, Calxeda, Cavium Networks e Huawei HiSilicon também trabalharam em produtos de servidor baseados em ARM. Nvidia e Samsung, dois pesos pesados ​​no negócio de SoC e GPU, também experimentaram peças de servidor ARM até alguns anos atrás, quando decidiram interromper o desenvolvimento. Texas Instruments, Xilinx e Marvell também estão explorando partes de servidores ARM.

Algumas dessas empresas também trabalharam em núcleos ARM personalizados, mas o único núcleo ARM personalizado de 64 bits que não é da Apple disponível hoje é o Denver da Nvidia, que obteve apenas algumas vitórias de design.

O que são núcleos personalizados ARM?

Eu sei que a maioria das pessoas não pode se incomodar em acompanhar todos os nichos do setor, incluindo o espaço da CPU, então acho que agora seria um bom momento para explicar o que diferencia os núcleos ARM e o que realmente são os núcleos personalizados. Não vou dissecar processadores e explicar a diferença entre os conjuntos de instruções x86 e ARM, mas descreverei as diferenças de uma perspectiva de negócios.

Veja bem, o ARM não é diferente apenas porque usa um conjunto de instruções diferente, embora isso daria uma explicação rápida e nerd, na minha opinião, a maior diferença entre Intel, AMD e ARM não é a arquitetura, é o modelo de negócios . Além disso, as arquiteturas mudam, novos designs de CPU são revelados regularmente, mas a abordagem da ARM para comercializar e licenciar sua tecnologia não mudou em anos.

Aqui está um exemplo simples.

Um processador Intel é desenvolvido pela Intel, usando conjuntos de instruções Intel. É fabricado em uma fundição Intel, embalado e enviado com a marca “Intel Inside” . Pode parecer simples, mas não vamos esquecer os bilhões que foram investidos em P&D ao longo das décadas, ou o fato de que a Intel confia em suas próprias fábricas para fabricação (e se você estiver no mercado para uma fundição de 14 nm, certifique-se de ter alguns mudar em você, porque uma fábrica de chips custa tanto quanto um porta-aviões nuclear).

E os produtos ARM? Bem, a ARM não é um fabricante de chips , é um designer de chips, ou uma empresa de chips “sem fábula” , então ela não lida com fabricação e não vende chips de marca própria. A ARM vende algo muito mais interessante: propriedade intelectual . Isso significa que os clientes ARM podem escolher qualquer um dos vários planos de licenciamento diferentes e começar a fazer seus próprios projetos. A maioria deles escolhe os designs internos da ARM (CPUs da série Cortex, GPUs da série Mali), então eles pagam uma taxa de licenciamento para cada núcleo de CPU/GPU que produzem.

No entanto, um cliente não precisa licenciar essas CPUs prontas para uso; ele pode licenciar o conjunto de arquitetura e desenvolver um núcleo personalizado baseado em um conjunto de instruções ARM . É isso que a Apple faz. Ele usa o conjunto de instruções ARMv8 para construir grandes e poderosos núcleos de CPU de 64 bits para seus dispositivos iOS. A CPU Denver da Nvidia é semelhante a esse respeito, assim como os núcleos personalizados da Qualcomm (série Krait de 32 bits e Kryo de 64 bits).

Projetar um núcleo de CPU personalizado não é fácil. Não é como se você encontrasse designers de chips desempregados e se oferecendo para projetar um processador personalizado no Craigslist, então essa abordagem geralmente é reservada para grandes jogadores que possuem os recursos técnicos, financeiros e humanos necessários para realizá-lo. Portanto, a maioria das empresas usa núcleos ARM Cortex prontos para uso (o núcleo Cortex-A57 de 64 bits pode ser empregado em um ambiente de servidor e é usado pela maioria dos processadores de servidor ARM de próxima geração).

É importante notar que virtualmente os chips baseados em ARM são projetados sob medida, mas os núcleos de CPU usados ​​na maioria não são .

A grande maioria dos processadores ARM conta com designs de CPU ARM padrão (CPUs Cortex) em vez de núcleos de CPU personalizados. Isso significa que os fabricantes de chips podem escolher qualquer um dos vários núcleos de CPU ARM, GPUs de terceiros e outros componentes e adaptar um processador para atender às suas necessidades sem precisar desenvolver um núcleo de CPU personalizado. É uma maneira barata de tornar a arquitetura mais flexível e tem mais a ver com as políticas de licenciamento da ARM do que com engenharia.

A nova geração de processadores de servidor ARM de 64 bits, como o Opteron A1100 da AMD, possui um impressionante conjunto de recursos.

A nova geração de processadores de servidor ARM de 64 bits, como o Opteron A1100 da AMD, possui um impressionante conjunto de recursos.
Tweet

Também é importante notar que esses futuros servidores ARM, baseados na mais recente arquitetura de CPU ARM de 64 bits, não têm muito em comum com os servidores ARM experimentais de anos passados. Por exemplo, um de nossos colegas brincou com os servidores Scaleway ARM, mas eles são baseados em processadores ARMv7 e têm várias limitações de hardware (por exemplo, Scaleway usava controladores de E/S compartilhados e a falta de suporte de 64 bits criou outro conjunto de desafios). A nova geração de servidores baseados em ARM não sofrerá com esses problemas iniciais; eles estão muito mais próximos do hardware Intel em termos de recursos e padrões.

Prós e contras do servidor ARM

O problema com os servidores ARM é que eles tendem a ser usados ​​para pequenos nichos e não são adequados para pequenos desenvolvedores que podem conviver com qualquer servidor. Embora algumas grandes empresas os considerem atraentes, os servidores ARM atualmente disponíveis não são adequados para a maioria dos desenvolvedores individuais.

No entanto, as próximas soluções de servidor são diferentes e devem atrair mais nichos. Isso é o que poderia torná-los atraentes para uma base de usuários muito mais ampla:

  • Custos de hardware reduzidos, eficiência potencialmente superior (desempenho por dólar, desempenho por Watt).
  • Aumentando a compatibilidade e disponibilidade de portas populares.
  • Suporte para tecnologia de ponta e novos padrões da indústria.
  • Capacidade de se destacar em certos tipos de cargas de trabalho (cargas simples, mas multithread).
  • Potencial para mais concorrência e diversidade de produtos do que no espaço x86.

Devo salientar que, nesta fase, alguns desses pontos são teóricos, já que o hardware ainda não saiu. No entanto, embora eu não possa afirmar categoricamente saber o que acontecerá nos próximos trimestres, estou confiante de que a nova geração de servidores ARM fornecerá esses (e mais) benefícios. Por que estou tão confiante? Bem, se eles não tivessem o potencial de fazer a diferença, ARM, Qualcomm, AMD e outras empresas não estariam desperdiçando seu tempo e gastando dinheiro em seu desenvolvimento.

Então, e as desvantagens do servidor ARM? Existem alguns, e alguns deles são grandes. Felizmente, a indústria está trabalhando duro para resolvê-los.

  • Suporte de software de acertar e errar
  • Disponibilidade, possíveis problemas de implantação
  • Preocupações com o ROI
  • Ecossistema minúsculo
  • Velhos hábitos custam a morrer

Problemas relacionados a software serão, provavelmente, a maior preocupação imediata. Embora muitos serviços populares sejam executados em servidores ARM, o suporte de software será um problema . Não basta apenas portar coisas para um novo hardware; temos que garantir que tudo funcione corretamente para que não haja acertos ou falhas de desempenho. Em outras palavras, o software portado precisa estar maduro. Ninguém desenvolverá e implantará um serviço construído com base em bugs.

O ecossistema de servidores ARM é pequeno, mas vários grandes nomes da indústria já estão a bordo.

O ecossistema de servidores ARM é pequeno, mas vários grandes nomes da indústria já estão a bordo.
Tweet

Com todo o dinheiro a ser ganho no mercado de servidores, seria de esperar um progresso rápido, mas nem sempre é esse o caso. Adotar novo hardware e ajustar todo o software que roda nele nunca é fácil, e o ritmo depende da adoção do mercado. O tamanho do ecossistema do servidor ARM é (muito) limitado, e duvido que alguns novos processadores fariam muita diferença no curto prazo. Embora empresas influentes como ARM e Qualcomm tenham interesse em ver um aumento na demanda por servidores ARM, não há muito o que fazer em relação ao software. Eles quase não têm influência sobre os desenvolvedores de software, então não podem forçá-los a adicionar suporte ARM aos produtos existentes.

Para encurtar a história: dê uma boa olhada em sua pilha e tente descobrir se tudo funcionará corretamente no hardware ARM. Com tempo suficiente, os desenvolvedores começarão a adicionar suporte para hardware ARM, mas esse não será um processo rápido. Eles terão que ajustar estruturas e aplicativos para levar em conta uma nova arquitetura, e suspeito que muitos deles não se incomodarão até que haja servidores ARM suficientes por aí (o que pode levar anos). O suporte para software legado é outro problema óbvio.

Isso nos leva ao próximo ponto: Disponibilidade de mercado e possíveis problemas de implantação. Não há muitos servidores ARM por aí, então a escolha é limitada, assim como a disponibilidade. Um ou dois anos depois, poderemos ver vários pacotes de hospedagem baseados em ARM em oferta, mas não veremos muitos. Pior, há uma boa chance de que esses servidores estejam concentrados em certas partes do mundo, tornando-os menos atraentes para alguns desenvolvedores. Há muitas incógnitas relacionadas à implantação, então ainda é muito cedo para dizer como as coisas vão se desenrolar.

A adoção lenta pode criar outro conjunto de desafios. Eles não estão restritos a servidores ARM; eles se aplicam à maioria das tecnologias corporativas. Muitas organizações são obrigadas a explorar a possibilidade de usar servidores ARM, mas isso não significa necessariamente que eles realmente os usarão. Para garantir o desenvolvimento suficiente e a demanda do consumidor, a adoção do mercado precisa crescer de forma constante. Caso contrário, as pessoas avessas ao risco provavelmente ficarão longe, adotando a abordagem de esperar para ver. O outro problema potencial é econômico: se os desenvolvedores não tiverem certeza de que o ecossistema está crescendo rápido o suficiente, eles podem concluir que o retorno potencial simplesmente não vale o esforço.

E esses velhos hábitos? Bem, como o espaço do servidor não evolui rapidamente, as pessoas tendem a se ater a plataformas comprovadas, ou seja, hardware x86. O lema é simples: se não está quebrado, não conserte . Os veteranos da indústria podem ver os servidores ARM como uma oportunidade e apostar neles. Seria preciso muita coragem e confiança para vincular parte de um projeto complexo ao que muitas pessoas ainda percebem como uma plataforma de hardware não testada ou imatura. Temo que muitas pessoas não estejam dispostas a mergulhar, pelo menos não tão cedo.

Futuro brilhante e uma pitada de Hype

Passei a maior parte da minha vida adulta cobrindo silício de ponta, e minha opinião pessoal sobre servidores ARM é que eles têm muito potencial, mas não são para todos . Eles podem desempenhar um papel vital na Internet de amanhã, fornecendo blocos de construção baratos para infraestrutura e lidando com cargas de trabalho de servidor de nicho.

No entanto, ao mesmo tempo, não posso escapar da sensação de que os servidores ARM tendem a ser exagerados. Apesar disso, não os vejo como uma moda passageira. Acho que eles vieram para ficar, mas os fornecedores devem criar alguns nichos específicos que possam realmente se beneficiar da nova arquitetura.

Em outras palavras, não veremos muitos servidores de hospedagem web LAMP simples baseados em ARM, mas podemos ver muitos deles em nichos mais exóticos (e alguns terrivelmente chatos). Os processadores ARM podem ser perfeitos para cargas específicas, especialmente aqueles que podem aproveitar um grande número de pequenos núcleos físicos de CPU, coisas que não são vinculadas à CPU. Pode não parecer muito, mas na verdade abrange muitos usos potenciais: registro de dados, grandes volumes de consultas simples, certos tipos de bancos de dados, vários serviços de armazenamento e assim por diante.

Eu poderia continuar, listando vários casos de uso, prós e contras de servidores ARM e possíveis problemas, mas no final das contas, suspeito que a adoção de servidores ARM dependerá do bom e velho dinheiro. Tecnologia à parte, os servidores ARM só farão sentido se o componente econômico der certo. Em outras palavras, eles terão que oferecer muito mais retorno do que os processadores x86 se quiserem justificar sua existência.

Como esse é mais ou menos o objetivo de introduzir essa nova arquitetura no setor de servidores, espero preços atraentes, mas levará alguns meses até que tenhamos certeza.