Quais as diferenças entre processadores x86 e ARM?
Por Daniel Trefilio • Editado por Jones Oliveira |
![ARM | Intel / Reprodução](https://t.ctcdn.com.br/4ijw2-MghQelxVN8gHXtDizr0co=/640x360/smart/i819199.jpeg)
Os processadores controlam todos os outros componentes de um PC, e atualmente as arquiteturas mais comuns são a x86 e ARM. As CPUs x86 utilizam instruções complexas para gerenciar um PC, sendo necessárias mais camadas e interfaces entre o comando e o efeito, enquanto CPUs ARM utilizam instruções reduzidas, mais próximas da linguagem binária.
Além disso, enquanto as CPUs x86 trabalham com peças independentes conectadas à placa-mãe por barramentos, os ARM trazem todo o hardware em um mesmo sistema. Para entender melhor as principais diferenças entre essas arquiteturas, primeiro é preciso entender como elas surgiram.
![Canaltech](/logo-canaltech.png)
3 diferenças entre CPUs X86 e ARM
A arquitetura x86 foi desenvolvida pela Intel em 1978, como uma evolução dos processadores Intel 8086 e 8088. Talvez o maior diferencial dessa arquitetura, além das evoluções de hardware, foi a introdução da retrocompatibilidade com aplicações nativas de processadores 8086.
Em paralelo, estudos da Universidade da Califórnia (UC Berkeley) sugeriam que chips com projetos mais simples, utilizando menos instruções predefinidas, poderiam ter desempenho até superior aos x86. Motivada por esses estudos e adaptando o projeto Berkeley RISC, plataforma utilizada pela Universidade para o ensino de programação de baixo nível, a Acorn Computers desenvolveu o primeiro processador ARM em 1985.
Em 1993, a Apple firmou uma parceria com a Acorn para evoluir os núcleos ARM, resultando nos primeiros palmtops Apple Newton. Este foi o produto que Steve Jobs utilizou de base para criar os iPhones, com processadores Apple A4 baseados em núcleos ARM Cortex-A8 e que alimenta o segmento mobile da empresa desde então.
1. Conjuntos de instruções: CISC x RISC
De forma bastante resumida, para utilizar qualquer tipo de computador, de PCs gamer a SmartTVs, o sistema operacional e outros aplicativos precisam interagir com a CPU para solicitar que cada peça execute a função para qual foi projetada. Para isso, os processadores contam com ações predefinidas que eles podem executar: os conjuntos de instruções.
Com a chegada das CPUs x86, todos os processadores com essa arquitetura utilizavam os mesmos conjuntos complexos de instruções (CISC) para interface entre hardware e software. As instruções mais complexas possibilitaram introduzir controladores independentes para cada componente do PC, como armazenamento, som e placa de vídeo, que necessitam de mais ciclos do CPU para serem executadas.
Isso viabilizou a utilização de componentes modulares, possibilitando atualizações pontuais, aumentando a longevidade dos PCs domésticos. Dessa forma, até hoje as CPUs modernos podem executar os mesmos programas dos primeiros processadores x86, com máquinas virtuais apenas emulando os hardwares e barramentos antigos, mas, essencialmente, mantendo os mesmos tipos de comandos.
Por sua vez, os processadores ARM (Advanced RISC Machine) são fabricados em padrão de SoC (System-on-a-Chip), com todos os componentes e controladores embarcados em um mesmo circuito integrado. Por isso, eles conseguem trabalhar com conjuntos reduzidos de instruções (RISC), mais simples e próxima da linguagem de máquina, que geralmente utilizam apenas um ciclo do CPU para serem executadas.
2. Placas com conectores x SoC
Sem alguns subterfúgios e adaptações, processadores ARM não conseguiriam rodar os mesmos softwares de máquinas x86. Isto limita inclusive a capacidade de trabalhar nas atuais conformidades de placas-mãe com barramentos separados e controladores dedicados para cada componente.
Esse é justamente o principal motivo dos dispositivos da Apple com processadores M1 — baseados em ARM — em diante não oferecerem soluções de upgrade de memória ou armazenamento. Todos esses componentes são soldados diretamente na PCB, sem portas de expansão.
A necessidade de interagir com controladores independentes e placas com portas modulares para cada hardware adicional exige que as CPUs x86 utilizem padrão CISC, enquanto os ARM, com controladores integrados em um mesmo circuito, podem trabalhar com instruções reduzidas.
3. Desempenho x Eficiência
Como mencionado, os processadores x86 foram projetados para serem compatíveis com hardwares anteriores em termos de conjuntos de instruções e melhorar a escalabilidade de computadores pessoais. Isso permite que essas CPUs executem tarefas mais complexas e intensas, ao direcionar fluxos de trabalho para outros componentes com controladores dedicados.
O principal problema dessa arquitetura é que, por si só, ela consome muito mais energia, justamente por ser mais intensa. Além disso, diversos hardwares independentes trabalhando no limite de suas capacidades também eleva o consumo total do sistema.
Os processadores ARM surgiram para atuar em circuitos integrados de baixo consumo energético e alta especialização de tarefas. Essa especialização faz com que os chips ARM sejam extremamente mais eficientes nos processos para que foram projetados, mas limita sua capacidade de realizar outras operações.
Como as instruções dos processadores ARM são reduzidas e mais próximas da linguagem de máquina (assembly), a programação para essas plataformas é mais complexa, mas garante uma carga de trabalho mais otimizada e específica para o processador. Isso resulta em um consumo de energia muito menor quando comparado aos x86.
Por essa razão, sistemas voltados para atividades especializadas e que dependem de altíssima eficiência energética, como servidores de IA e HPC (Computação de Alto Desempenho), costumam utilizar processadores ARM, como as CPUs Amazing Grace da Nvidia.
Evolução das arquiteturas de software
No entanto, as arquiteturas de softwares também evoluíram consideravelmente na última década. Os primeiros chips ARM para PCs dependiam de sistemas operacionais projetados exclusivamente para eles, como o Windows RT e Ubuntu ARM, enquanto hoje Windows 10 e 11 já conseguem rodar aplicações x86 em chips ARM não modificados por meio de emulações.
Com a introdução de módulos de IA aos processadores domésticos, essas soluções via software tendem a ficar ainda mais otimizadas, a ponto de a arquitetura ARM ser cogitada com uma substituta em potencial para a x86, mesmo em computadores pessoais.
Teoricamente, com softwares mais avançados e eficientes em realizar a interface entre processadores ARM e aplicações mais complexas, é possível criar sistemas com todos os benefícios dessa arquitetura, entre tamanho, eficiência energética e cargas de trabalho mais otimizadas em PCs mais versáteis.
O único ponto que, até o momento, ainda é um fator limitante para adotar amplamente essa arquitetura é a questão da escalabilidade dos componentes. Sem controladores dedicados, pode ser mais difícil garantir a possibilidade de trocar peças como placas de vídeo e memória RAM em computadores com CPUs ARM.
Fonte: Arm, Intel, Red Hat, Microsoft Learn