Arm vs x86: Conjuntos de instruções, arquitectura, e todas as diferenças explicadas

Android é capaz de funcionar em três tipos diferentes de arquitectura de processadores: Arm, Intel, e MIPS. O primeiro é a arquitectura ubíqua actual depois de a Intel ter abandonado as CPUs do seu aparelho, enquanto os processadores MIPS para telefones não são vistos há anos. Arm é a arquitectura de CPU utilizada por todos os smartphones modernos, tanto no ecossistema Android como no da Apple. Os processadores Arm também estão a entrar no mercado dos PCs através do Windows no Arm e do CPU personalizado M1 da Apple para Macs. Com a guerra Arm vs Intel CPU prestes a aquecer em grande, aqui está tudo o que precisa de saber sobre Arm vs x86.

CPU arquitectura explicada

A Unidade Central de Processamento (CPU) é o “cérebro” do seu dispositivo, mas não é exactamente inteligente. Uma CPU só funciona quando são dadas instruções muito específicas – apropriadamente chamadas o conjunto de instruções – que diz ao processador para mover dados entre registos e memória ou para efectuar um cálculo utilizando uma unidade de execução específica (tal como multiplicação ou subtracção). Os blocos de hardware únicos da CPU requerem instruções diferentes. Estas tendem a ser escaladas com CPUs mais complexas e potentes. As instruções desejadas podem também informar a concepção do hardware, como veremos dentro de momentos.

O que é um SoC? Tudo o que precisa de saber sobre chipsets de smartphones

Aplicações que correm no seu telefone não estão escritas em instruções de CPU; isso seria uma loucura com as actuais grandes aplicações multi-plataforma do que correr numa variedade de chips. Em vez disso, as aplicações escritas em várias linguagens de programação de nível superior (como Java ou C++) são cumpridas para conjuntos específicos de instruções de modo a funcionarem correctamente em Arm ou x86 CPUs. Estas instruções são ainda descodificadas em operações de microcódigos dentro da CPU, o que requer espaço de silício e energia. Se desejar a CPU de menor potência, é primordial manter o conjunto de instruções simples. No entanto, é possível obter um maior desempenho a partir de hardware e instruções mais complexas, à custa da energia. Esta é uma diferença fundamental entre as abordagens da Arm e da Intel ao design da CPU.

x86 tem como objectivo tradicional o pico de desempenho, Arm energy efficiency

Arm é baseada em RISC (Reduced Instruction Set Computing) enquanto que a Intel (x86) é CISC (Complex Instruction Set Computing). As instruções do CPU do Arm são razoavelmente atómicas, com uma correlação muito estreita entre o número de instruções e os microops. CISC, por comparação, oferece muito mais instruções, muitas das quais executam múltiplas operações (tais como matemática optimizada e movimento de dados). Isto leva a um melhor desempenho, mas mais consumo de energia descodificando estas instruções complexas.

Esta ligação entre instruções e desenho de hardware do processador é o que faz uma arquitectura de CPU. Desta forma, as arquitecturas de CPU podem ser concebidas para diferentes fins, tais como a compressão de números extremos, 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, uma vez que a primeira se baseia numa potência mais baixa, conjunto de instruções, e hardware.

Arquitecturas modernas de CPU de 64 bits

Hoje em dia, as arquitecturas de 64 bits são comuns entre smartphones e PCs, mas nem sempre foi este o caso. Os telefones não fizeram a mudança até 2012, cerca de uma década depois dos PCs. Em resumo, a computação de 64-bit alavanca registos e endereços de memória suficientemente grandes para usar tipos de dados longos de 64-bit (1s e 0s). Além de hardware e instruções compatíveis, também é necessário um sistema operativo de 64-bit, como o Android.

p>Os veteranos da indústria podem lembrar-se do hoopla quando a Apple introduziu o seu primeiro processador de 64-bit à frente dos seus rivais Android. A mudança para 64-bit não transformou a computação do dia-a-dia. No entanto, é importante executar a matemática de forma eficiente ao utilizar números de pontos flutuantes de alta precisão. Os registos de 64 bits também melhoram a precisão de renderização 3D, a velocidade de encriptação, e simplificam o endereçamento de mais de 4GB de RAM.

Hoje em dia, ambas as arquitecturas suportam 64-bit, mas é mais recente em mobile

PCs movidos para 64-bit bem antes dos smartphones, mas não foi a Intel que cunhou a arquitectura x86-64 moderna (também conhecida como x64). Essa distinção pertence ao anúncio da AMD de 1999, que reconfigurou a arquitectura x86 existente da Intel. A arquitectura alternativa da Intel IA64 Itanium abandonou o caminho.

Arm introduziu a sua arquitectura ARMv8 de 64 bits em 2011. Em vez de alargar o seu conjunto de instruções de 32 bits, Arm oferece uma implementação limpa de 64 bits. Para o conseguir, a arquitectura ARMv8 usa dois estados de execução, AArch32 e AArch64. Como os nomes implicam, um é para executar código de 32-bit e outro para 64-bit. A beleza do desenho do ARM é que o processador pode trocar sem problemas de um modo para o outro durante a sua execução normal. Isto significa que o descodificador para as instruções de 64-bit é um novo design que não precisa de manter a compatibilidade com a era de 32-bit, no entanto o processador como um todo permanece retrocompatível.

Leia mais: Arm Cortex-X1 traz a luta às CPUs de potência da Apple

Arm’s Heterogeneous Compute won over mobile

As diferenças arquitectónicas discutidas acima explicam em parte os sucessos actuais e os problemas enfrentados pelos dois chip behemoths. A abordagem de baixa potência do braço é perfeitamente adequada aos requisitos de potência de concepção térmica (TDP) de 3,5W do móvel, mas o seu desempenho também é escalável para corresponder aos chips dos portáteis Intel. Entretanto, o TDP de 100W típico Core i7 da Intel ganha muito em servidores e desktops de alto desempenho, mas historicamente esforça-se por descer abaixo dos 5W. Ver a dúbia linha Atom.

Obviamente, não podemos esquecer o papel que os processos de fabrico de silício desempenharam na melhoria da eficiência energética durante a última década. Em termos gerais, os transístores de CPU mais pequenos consomem menos energia. A Intel tem estado presa a tentar ultrapassar o seu processo interno de 2014 de 14 nm. Nessa altura, os chipsets de smartphones passaram de 20nm para 14, 10, e agora 7nm designs, com 5nm esperados em 2021. Isto foi conseguido simplesmente através do aproveitamento da concorrência entre a Samsung e as fundições TSMC.

No entanto, uma característica única da arquitectura da Arm tem sido particularmente fundamental para manter o TDP baixo para aplicações móveis – computação heterogénea. A ideia é suficientemente simples, construir uma arquitectura que permita que diferentes partes da CPU (em termos de desempenho e potência) trabalhem em conjunto para uma maior eficiência.

Arm tem a capacidade de partilhar cargas de trabalho entre altas e baixasperformance CPU cores é uma vantagem para a eficiência energética

A primeira punhalada da Arm nesta ideia foi grande.LITTLE em 2011 com o grande núcleo de Cortex-A15 e o pequeno núcleo de Cortex-A7. A ideia de utilizar núcleos de CPU maiores e fora de ordem para aplicações exigentes e desenhos de CPU com eficiência energética para tarefas de fundo é algo que os utilizadores de smartphones consideram hoje como um dado adquirido, mas foram necessárias algumas tentativas para corrigir a fórmula. Braço construído com base nesta ideia com DynamIQ e a arquitectura ARMAv8.2 em 2017, permitindo a diferentes CPUs sentarem-se no mesmo cluster, partilhando recursos de memória para um processamento muito mais eficiente. DynamIQ também permite o desenho de CPU 2+6 que é cada vez mais comum em chips de gama média.

Relacionados: Processadores de núcleo único vs processadores multi-core: Que 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. É levado até 2020 para os projectos Foveros da Intel, Embedded Multi-die Interconnect Bridge (EMIB), e Hybrid Technolgy para produzir um desenho de chip concorrente – o Lakefield de 10nm. Lakefield combina um único núcleo Sunny Cove de alto desempenho com quatro núcleos Tremont eficientes em termos de potência, juntamente com características gráficas e de conectividade. No entanto, mesmo este pacote destina-se a computadores portáteis ligados com um TDP de 7W, que ainda é demasiado elevado para smartphones.

Intel Lakefield com Tecnologia Híbrida utiliza princípios de design semelhantes aos grandes da Arm.LITTLE

Hoje em dia, Arm vs x86 é cada vez mais combatido no segmento de mercado dos portáteis TDP sub-10W, onde a Intel baixa e Arm sobe com cada vez maior sucesso. A notícia da Apple de que irá mudar para os seus próprios chips personalizados Arm para Mac é um excelente exemplo do crescente alcance de desempenho da arquitectura Arm, graças em parte à computação heterogénea juntamente com optimizações personalizadas feitas pela Apple.

Centros e conjuntos de instruções Arm personalizados

Outra distinção importante entre Arm e Intel é que esta última controla todo o seu processo do início ao fim e vende directamente os seus chips. Arm simplesmente vende licenças. A Intel mantém a sua arquitectura, desenho de CPU, e até o fabrico inteiramente interno. Arm, em comparação, oferece uma variedade de produtos a parceiros como a Apple, Samsung, e Qualcomm. Estes variam desde designs de núcleos de CPU fora da prateleira como o Cortex-A78, designs construídos em parceria através do seu programa Arm CXC, e licenças de arquitectura personalizadas que permitem a empresas como a Apple e a Samsung construir núcleos de CPU personalizados e até fazer ajustes ao conjunto de instruções.

Leia mais: Os primeiros computadores Apple baseados no Arm incluem novos MacBooks e o Mac Mini

Construir CPU personalizados é um processo caro e envolvido, mas feito correctamente pode claramente conduzir a resultados poderosos. As CPUs da Apple mostram como o hardware personalizado e as instruções empurram o desempenho do Arm para muito mais perto do x86 convencional e mesmo para além dele. Embora os núcleos Mongoose da Samsung tenham sido mais controversos.

Apple pretende substituir gradualmente as CPUs Intel dentro dos seus produtos Mac pelo seu próprio silício baseado no Arm. O Apple M1 é o primeiro chip neste esforço, alimentando o MacBook Air, Pro, e o Mac Mini. O M1 apresenta algumas melhorias de desempenho impressionantes, sugerindo que os núcleos de Braço de alto desempenho são capazes de assumir x86 em cenários computacionais mais exigentes. Lembre-se, no entanto, que as comparações da Apple são para CPUs de classe portátil, em vez de computadores de secretária.

Na altura da escrita, o supercomputador mais poderoso do mundo, Fugaku, corre em Arm

A arquitectura da Intel permanece na frente em termos de desempenho bruto no espaço de hardware de consumo. Mas a Arm é agora muito competitiva nos segmentos de produtos onde o alto desempenho e eficiência energética continuam a ser fundamentais, o que inclui o mercado de servidores. Na altura da escrita, o supercomputador mais potente do mundo está a funcionar com núcleos de CPU Arm pela primeira vez. O seu SoC A64FX foi concebido em Fujitsu e é o primeiro a executar a arquitectura Armv8-A SVE.

Compatibilidade de software

Como mencionámos anteriormente, as aplicações e o software têm de ser compilados para a arquitectura CPU em que correm. O casamento histórico entre CPUs e ecossistemas (como o Android no braço e Windows no x86) significou que a compatibilidade nunca foi realmente uma preocupação, uma vez que as aplicações não precisavam de correr através de múltiplas plataformas e arquitecturas. No entanto, o crescimento de aplicações e sistemas operativos que correm em múltiplas arquitecturas de CPU está a mudar este cenário.

Macs baseados em braço da Apple, o SO Chrome da Google, e o Windows on Arm da Microsoft são todos exemplos modernos em que o software precisa de correr em arquitecturas Arm e Intel. A compilação de software nativo para ambos é uma opção para novas aplicações e programadores dispostos a investir na recompilação. Para preencher as lacunas, estas plataformas também dependem da emulação de código. Por outras palavras, a tradução do código compilado para uma arquitectura de CPU para correr noutra. Isto é menos eficiente e degrada o desempenho em comparação com aplicações nativas, mas actualmente é possível uma boa emulação para garantir que as aplicações funcionem.

Após anos de desenvolvimento, o Windows em emulação de braço está num estado bastante bom para a maioria das aplicações. As aplicações Android também correm decentemente em Intel Chromebooks, na sua maioria. A Apple tem a sua própria ferramenta de tradução apelidada Rosetta 2 para suportar também aplicações Mac antigas. Mas, todas as três sofrem penalizações de desempenho em comparação com as aplicações compiladas nativamente.

Arm vs x86: A palavra final

A última década da rivalidade Arm vs x86, Arm ganhou como a escolha para dispositivos de baixa potência como os smartphones. A arquitectura está agora também a dar passos em frente em laptops e outros dispositivos onde a eficiência energética melhorada é procurada. Apesar de perderem nos telefones, os esforços de baixa potência da Intel também melhoraram ao longo dos anos, com a Lakefield a partilhar agora muito mais em comum com os processadores tradicionais Arm encontrados nos telefones.

P>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 pelos consumidores em ambos os casos estão a tornar-se confusos à medida que os ecossistemas apoiam cada vez mais ambas as arquitecturas. No entanto, embora haja um cruzamento na comparação Bra vs x86, é Arm que certamente continuará a ser a arquitectura de eleição para a indústria dos smartphones num futuro previsível. A arquitectura está também a mostrar grande promessa para o computador portátil e para a eficiência.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *