Arm vs x86: Conjuntos de Instruções, Arquitetura e Todas as Principais Diferenças Explicadas

Arm vs x86: Conjuntos de Instruções, Arquitetura e Todas as Principais Diferenças Explicadas

sistema operacional Android foi desenvolvido para funcionar em três tipos diferentes de arquitetura de processador: Arm, Intel x86 e MIPS. A primeira é a arquitetura onipresente hoje depois que a Intel abandonou suas CPUs para smartphones, enquanto os processadores MIPS não são vistos há anos.

Arm agora se tornou a arquitetura de CPU usada em todos os SoCs de smartphones modernos , e isso é verdade tanto para os ecossistemas Android quanto para Apple. Os processadores Arm também estão entrando no mercado de PCs por meio do Windows on Arm e da crescente linha Apple Silicon personalizada da Apple para Macs. Então, com a guerra entre Arm e CPU Intel esquentando, aqui está tudo o que você precisa saber sobre Arm vs x86.

Arquitetura da CPU explicada

A Unidade Central de Processamento (CPU) é o “cérebro” do seu dispositivo, mas não é exatamente inteligente. Uma CPU só funciona quando recebe instruções muito específicas – apropriadamente chamado de conjunto de instruções que diz ao processador para mover dados entre registradores e memória ou para realizar um cálculo usando uma unidade de execução específica (como multiplicação ou subtração). Blocos de hardware de CPU exclusivos exigem instruções diferentes e tendem a ser ampliados com CPUs mais complexas e poderosas. As instruções desejadas também podem informar o design do hardware, como veremos em breve.

Os aplicativos executados no seu telefone não estão escritos nas instruções da CPU; isso seria uma loucura com os grandes aplicativos multiplataforma de hoje que rodam em uma variedade de chips. Em vez disso, aplicativos escritos em várias linguagens de programação de nível superior (como Java ou C++) são compilados para conjuntos de instruções específicos para que sejam executados corretamente em Arm, x86 ou outras CPUs. Essas instruções são posteriormente decodificadas em operações de microcódigo dentro da CPU, o que requer espaço e energia de silício.

Manter o conjunto de instruções simples é fundamental se você deseja uma CPU com menor consumo de energia. No entanto, um desempenho superior pode ser obtido a partir de hardware e instruções mais complexas que executam múltiplas operações ao mesmo tempo, em detrimento da energia. Esta é uma diferença fundamental entre Arm vs x86 e suas abordagens históricas ao design de CPU.

O x86 tradicionalmente visa desempenho máximo e eficiência energética do Arm

Arm é baseado em RISC (Computação de Conjunto de Instruções Reduzidas), enquanto x86 é CISC (Computação de Conjunto de Instruções Complexas). As instruções da CPU do Arm são razoavelmente atômicas, com uma correlação muito próxima entre o número de instruções e micro-operações. O CISC, em comparação, oferece muito mais instruções, muitas das quais executam múltiplas operações (como matemática otimizada e movimentação de dados). Isso leva a um melhor desempenho, mas a um maior consumo de energia na decodificação dessas instruções complexas.

Dito isto, as linhas entre RISC e CISC são um pouco mais confusas atualmente, com cada um emprestando ideias um do outro e uma ampla gama de núcleos de CPU construídos em variações de arquitetura. Além disso, a opção de personalizar a arquitetura do Arm significa que parceiros, como a Apple, podem adicionar suas próprias instruções mais complexas.

Mas o que é importante notar é que é a ligação entre as instruções e o design do hardware do processador que forma a arquitetura da CPU. Dessa forma, as arquiteturas de CPU podem ser projetadas para diferentes finalidades, como processamento extremo de números, baixo consumo de energia ou área mínima de silício. Esta é uma diferença fundamental quando se olha para Arm vs x86 em termos de CPUs, já que o primeiro é baseado em um conjunto de instruções e hardware de menor consumo de energia.

Arquiteturas modernas de CPU de 64 bits

Hoje, as arquiteturas de 64 bits são comuns em smartphones e PCs, mas nem sempre foi assim. Os telefones só mudaram em 2012, cerca de uma década depois dos PCs. Resumindo, a computação de 64 bits aproveita registros e endereços de memória grandes o suficiente para usar tipos de dados longos de 64 bits (1s e 0s). Além de hardware e instruções compatíveis, você também precisa de um sistema operacional de 64 bits, como o Android.

Os veteranos da indústria devem se lembrar do alvoroço quando a Apple lançou seu primeiro processador de 64 bits à frente de seus rivais Android. A mudança para 64 bits não transformou a computação do dia a dia. No entanto, é importante executar matemática de forma eficiente usando números de ponto flutuante de alta precisão. Os registros de 64 bits também melhoram a precisão da renderização 3D, a velocidade de criptografia e simplificam o endereçamento de mais de 4 GB de RAM.

Hoje, ambas as arquiteturas suportam 64 bits, mas é mais recente em dispositivos móveis

Os PCs migraram para 64 bits muito antes dos smartphones, mas não foi a Intel quem cunhou a moderna arquitetura x86-64 (também conhecida como x64). Esse prêmio pertence ao anúncio da AMD em 1999, que modernizou a arquitetura x86 existente da Intel. A arquitetura alternativa IA64 Itanium da Intel foi deixada de lado.

Arm introduziu sua arquitetura ARMv8 de 64 bits em 2011. Em vez de estender seu conjunto de instruções de 32 bits, Arm oferece uma implementação limpa de 64 bits. Para conseguir isso, a arquitetura ARMv8 usa dois estados de execução, AArch32 e AArch64. Como os nomes indicam, um é para executar código de 32 bits e outro para código de 64 bits. A beleza do design ARM é que o processador pode alternar perfeitamente de um modo para outro durante sua execução normal. Isso significa que o decodificador para instruções de 64 bits é um novo design que não precisa manter compatibilidade com a era de 32 bits, mas o processador como um todo permanece compatível com versões anteriores. No entanto, os mais recentes processadores ARMv9 Cortex-A da Arm agora são apenas de 64 bits, eliminando o suporte para aplicativos e sistemas operacionais antigos de 32 bits nessas CPUs de próxima geração. Além disso, o Google também desativou o suporte para aplicativos de 32 bits no firmware do Pixel 7 .

A computação heterogênea da Arm conquistou o celular

As diferenças arquitetônicas discutidas acima explicam parcialmente os atuais sucessos e problemas enfrentados pelos dois gigantes dos chips. A abordagem de baixo consumo de energia do Arm é perfeitamente adequada para os requisitos de energia de design térmico (TDP) abaixo de 5W de dispositivos móveis, mas o desempenho também aumenta para corresponder aos chips de laptop da Intel. Veja a série M1 de processadores baseados em Arm da Apple que estão proporcionando uma séria concorrência no espaço de PCs. Enquanto isso, os produtos Core i7 e i9 com mais de 100 W de TDP da Intel, juntamente com os chipsets rivais da AMD Ryzen , ganham muito em servidores e desktops de alto desempenho, mas historicamente lutam para reduzir a escala abaixo de 5W. Veja a duvidosa escalação do Atom .

É claro que também não devemos esquecer o papel que os processos de fabricação de silício desempenharam na melhoria enorme da eficiência energética na última década. Em termos gerais, os transistores menores da CPU consomem menos energia. As CPUs de 7 nm da Intel (apelidadas de tecnologia de processo Intel 4) não são esperadas até 2023 e podem ser construídas pela TSMC em vez das fundições da Intel. Nesse período, os chipsets de smartphones passaram de 20 nm para 14, 10 e 7 nm, 5 nm e agora designs de 4 nm no mercado a partir de 2022. Isso foi alcançado simplesmente aproveitando a concorrência entre as fundições Samsung e TSMC. Isso também ajudou parcialmente a AMD a diminuir a diferença em relação ao seu rival x86-64 com seus mais recentes processadores Ryzen de 7nm e 6nm.

No entanto, um recurso exclusivo da arquitetura Arm tem sido particularmente útil para manter o TDP baixo para aplicações móveis: computação heterogênea . A ideia é bastante simples: construir uma arquitetura que permita que diferentes partes da CPU (em termos de desempenho e potência) trabalhem juntas para melhorar a eficiência.

A capacidade da Arm de compartilhar cargas de trabalho entre núcleos de CPU de alto e baixo desempenho é uma vantagem para a eficiência energética

A primeira tentativa de Arm nessa ideia foi grande.LITTLE em 2011, com o grande núcleo Cortex-A15 e o pequeno núcleo Cortex-A7. A ideia de usar núcleos de CPU maiores fora de ordem para aplicativos exigentes e designs de CPU ordenados e com baixo consumo de energia para tarefas em segundo plano é algo que os usuários de smartphones consideram natural hoje, mas foram necessárias algumas tentativas para resolver a fórmula. A Arm desenvolveu essa ideia com DynamIQ e a arquitetura ARMAv8.2 em 2017, permitindo que diferentes CPUs ficassem no mesmo cluster, compartilhando recursos de memória para um processamento muito mais eficiente. DynamIQ também permite o design de CPU 2+6 que é comum em chips de gama média, bem como as configurações de CPU pequenas, grandes e maiores (1+3+4 e 2+2+4) vistas em SoCs de nível principal.

Relacionado: Processadores single-core vs multi-core: quais são melhores para smartphones?

Os chips Atom rivais da Intel, sem computação heterogênea, não conseguiam igualar o equilíbrio de desempenho e eficiência da Arm. Demorou até 2020 para que os projetos Foveros, Embedded Multi-die Interconnect Bridge (EMIB) e tecnologia híbrida da Intel produzissem um design de chip concorrente – o Lakefield de 10 nm. Lakefield combina um único núcleo Sunny Cove de alto desempenho com quatro núcleos Tremont com eficiência energética, juntamente com recursos gráficos e de conectividade. No entanto, mesmo este pacote é direcionado a laptops conectados com TDP de 7W, que ainda é muito alto para smartphones.Design de CPU híbrida Intel Lakefield

Intel Lakefield com tecnologia híbrida usa princípios de design semelhantes aos big.LITTLE da Arm

Hoje, Arm vs x86 é cada vez mais disputado no segmento de mercado de laptops TDP abaixo de 10W, onde a Intel diminui e o Arm aumenta com cada vez mais sucesso. A mudança da Apple para seus próprios chips Arm personalizados para Mac é um excelente exemplo do crescente alcance de desempenho da arquitetura Arm, graças em parte à computação heterogênea junto com otimizações personalizadas feitas pela Apple.

Núcleos de Arm personalizados e conjuntos de instruções

Outra distinção importante entre Arm e Intel é que esta última controla todo o seu processo do início ao fim e vende seus chips diretamente. Arm simplesmente vende licenças. A Intel mantém sua arquitetura, design de CPU e até fabricação inteiramente interna. Embora este último ponto possa mudar à medida que a Intel procura diversificar parte de sua produção de ponta. A Arm, em comparação, oferece uma variedade de produtos para parceiros como Apple, Samsung e Qualcomm. Eles variam de designs de núcleo de CPU prontos para uso, como Cortex-X4 e A720, designs construídos em parceria por meio de seu programa Arm CXC e licenças de arquitetura personalizadas que permitem que empresas como Apple e Samsung construam núcleos de CPU personalizados e até mesmo façam ajustes em o conjunto de instruções.

A Apple constrói CPUs personalizadas para extrair o máximo de desempenho por watt possível.

Construir CPUs personalizadas é um processo caro e complicado, mas pode levar a resultados poderosos quando feito corretamente. As CPUs da Apple mostram como o hardware e as instruções personalizadas impulsionam o desempenho do Arm que rivaliza com o x86-64 convencional e além. Embora os núcleos Mongoose da Samsung tenham tido menos sucesso e eventualmente diminuíram. A Qualcomm também está entrando novamente no jogo de CPU Arm personalizado, tendo adquirido a Nuvia  por US$ 1,4 bilhão.

A Apple pretende substituir gradualmente as CPUs Intel em seus produtos Mac por seu próprio silício baseado em Arm. O Apple M1 foi o primeiro chip nesse esforço, alimentando os mais recentes MacBook Air, Pro e Mac Mini. Os mais recentes M1 Max e M1 Ultra apresentam algumas melhorias de desempenho impressionantes, destacando que os núcleos Arm de alto desempenho podem suportar x86-64 em cenários de computação mais exigentes.

No momento em que este artigo foi escrito, o supercomputador mais poderoso do mundo, Fugaku, rodava em Arm

A arquitetura x84-64 usada pela Intel e AMD permanece na vanguarda em termos de desempenho bruto no espaço de hardware do consumidor. Mas a Arm é agora muito competitiva em segmentos de produtos onde o alto desempenho e a eficiência energética continuam a ser fundamentais, o que inclui o mercado de servidores. No momento em que este artigo foi escrito, o supercomputador mais poderoso do mundo estava rodando em núcleos de CPU Arm pela primeira vez. Seu SoC A64FX foi projetado pela Fujitsu e o primeiro a executar a arquitetura Armv8-A SVE.

Compatibilidade de software

Chipset Qualcomm Snapdragon 8cx 4

Como mencionamos anteriormente, os aplicativos e softwares devem ser compilados para a arquitetura de CPU em que são executados. O casamento histórico entre CPUs e ecossistemas (como Android no Arm e Windows no x86) significou que a compatibilidade nunca foi realmente uma preocupação, já que os aplicativos não precisavam ser executados em múltiplas plataformas e arquiteturas. No entanto, o crescimento de aplicativos multiplataforma e sistemas operacionais executados em diversas arquiteturas de CPU está mudando esse cenário.

Os Macs baseados em Arm da Apple , o Chrome OS do Google e o Windows on Arm da Microsoft são exemplos modernos em que o software precisa ser executado nas arquiteturas Arm e x86-64. Compilar software nativo para ambos é uma opção para novos aplicativos e desenvolvedores dispostos a investir em recompilação. Para preencher as lacunas, essas plataformas também contam com emulação de código. Em outras palavras, traduzir código compilado para uma arquitetura de CPU para execução em outra. Isso é menos eficiente e degrada o desempenho em comparação com aplicativos nativos, mas atualmente é possível uma boa emulação para garantir que os aplicativos funcionem.

Após anos de desenvolvimento, a emulação do Windows on Arm está em muito bom estado para a maioria dos aplicativos. Da mesma forma, os aplicativos Android também rodam decentemente no Windows 11 e nos Chromebooks Intel. A Apple tem sua própria ferramenta de tradução chamada Rosetta 2 para oferecer suporte a aplicativos Mac legados. Porém, todos os três sofrem penalidades de desempenho em comparação com aplicativos compilados nativamente.

Arm vs x86: a palavra final

Durante a última década da rivalidade Arm vs x86, Arm venceu como a escolha para dispositivos de baixo consumo de energia, como smartphones. A arquitetura também está avançando em laptops e outros dispositivos onde é necessária maior eficiência energética. Apesar de perder telefones, os esforços de baixo consumo de energia da Intel também melhoraram ao longo dos anos, com ideias híbridas como Alder Lake e Raptor Lake agora compartilhando muito mais em comum com os processadores Arm tradicionais encontrados em telefones.

Dito isto, Arm e x86 permanecem distintamente diferentes do ponto de vista da engenharia e continuam a ter pontos fortes e fracos individuais. No entanto, os casos de utilização dos consumidores entre as duas estão a tornar-se confusos à medida que os ecossistemas suportam cada vez mais ambas as arquiteturas. No entanto, embora haja cruzamento na comparação Arm vs x86, é o Arm que certamente continuará sendo a arquitetura preferida da indústria de smartphones no futuro próximo. A arquitetura também se mostra muito promissora para computação e eficiência de classe de laptop.

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *