Ir para seção

Qual é a diferença entre ARM e x86?

Copiar URL

Migre do CentOS Linux para um sistema operacional pronto para a nuvem

Ao fazer a transição do CentOS Linux para outro sistema operacional, é crucial escolher uma solução pronta para a nuvem. Red Hat Enterprise Linux (RHEL) é um sistema operacional open source adaptado a ambientes físicos, virtualizados, de nuvem híbrida, multicloud e também a arquiteruras de edge computing.

Não é possível substituir computadores projetados para processadores ARM por máquinas feitas para Intel e AMD. Existe duas questões fundamentais com abordagens diferentes por cada um deles:

  • Como equilibrar a contagem de transistores e a complexidade do programa?

  • Como priorizar velocidade, consumo de energia e custo?

Nos últimos 40 anos, as respostas para essas perguntas nortearam a inovação tecnológica e o desenvolvimento de softwares em todos os campos, de smartphones a supercomputadores.

Um antigo debate entre os programadores mais antigos é o que gerou a divergência entre as duas principais filosofias na ciência da computação: simplificar o trabalho do programador ou simplificar o trabalho do microprocessador.
Para que o computador seja produtivo, o sistema operacional e os programas executados precisam interagir com a unidade central de processamento (CPU) e com as peças de hardware como placas de memória, armazenamento e rede. A CPU media a comunicação entre o sistema operacional (e os programas em execução) e o hardware. Para simplificar a vida dos programadores, a CPU tem um conjunto de ações e cálculos predefinidos chamado de conjunto de instruções ou arquitetura do conjunto de instruções (ISA). O sistema operacional e os programas executados (ambos escritos por programadores) dependem dessas instruções para realizar funções de baixo nível, como:

  1. Interações entre a CPU e o hardware (memória, armazenamento, rede etc.)
  2. Funções aritméticas (adição, substração etc.)
  3. Manipulação de dados (mudanças binárias etc.)

As CPUs x86 originais tinham (e ainda têm) um conjunto de instruções muito avançado. Com apenas uma instrução, é possível realizar cálculos (como multiplicação) ou migrar uma enorme quantidade de dados diretamente de um lugar da memória para outro. Isso pode não parecer muito, mas a multiplicação e a migração de dados dentro da memória exigem muitas instruções de nível baixo. Com os computadores x86, essa série de operações complexa pode ser executada em apenas um ciclo. As unidades de processamento com esse tipo de conjunto de instruções são chamadas de computadores com um conjunto complexo de instruções (CISC).

No entanto, as instruções avançadas em um computador CISC significam mais transistores, que consomem espaço e energia.

Isso levou ao desenvolvimento de vários projetos no início dos anos 1980 para exploração da eficiência energética e de formas de simplificar os conjuntos de instruções na arquitetura da CPU. Os pesquisadores descobriram que, na verdade, a maioria dos computadores usava apenas um pequeno subconjunto que fazia parte do enorme conjunto de instruções em um computador CISC. Isso acabou levando ao desenvolvimento de processadores para um computador com um conjunto reduzido de instruções (RISC). Cada instrução do conjunto de instruções dos processadores RISC representa apenas uma operação simples que usa pouca energia. Isso torna mais complexo o trabalho do programador de linguagem assembly, mas simplifica o trabalho do processador. Com processadores RISC e máquinas RISC avançadas, as operações complexas são realizadas pela execução de várias instruções ou pela transferência da complexidade para um compilador, e não para o núcleo da CPU.

Isso tem vantagens e desvantagens. Em geral, as CPUs x86 têm uma capacidade de processamento muito rápida e oferecem maior clareza ou simplicidade na programação e quantidade de instruções. Por outro lado, o chip é maior, mais caro e tem vários transistores. Os processadores ARM podem ser muito rápidos para certos tipos de operações, mas ciclos repetidos de instruções individuais podem reduzir a velocidade. Isso ocorre porque as operações são mais complexas e grande parte das operações de definição e execução é realizada pela programação (e pelo programador), e não pelo conjunto de instruções. 

Além disso, essas diferenças podem dificultar o cálculo de milhões de instruções por segundo (MIPS), uma medida aproximada do poder bruto de um computador, uma vez que tipos diferentes de processadores exigem conjuntos diferentes de instruções para realizar a mesma atividade.

A arquitetura RISC foi inspirada pela necessidade de reduzir o tamanho e melhorar o desempenho dos chips para computadores menores, ou microcomputadores, que acabaram virando os PCs. Isso levou à segunda questão fundamental sobre o design: o que priorizar no chip, o desempenho (velocidade de processamento ou velocidade de clock) ou o consumo de energia (eficiência energética).

Como os processadores ARM são integrados como SoC, o foco é o gerenciamento geral de recursos, incluindo baixo consumo de energia e produção de calor reduzida. Por exemplo, as arquiteturas ARM (como a ARMv8) normalmente não possuem sistemas de resfriamento simplificado (os celulares não têm ventiladores). No entanto, as CPUs x86 costumam priorizar a velocidade de processamento de alto nível, em vez do baixo consumo de energia.

Os dois designs de CPU conseguem alto desempenho (supercomputadores com arquiteturas ARM e x86 disputam o lugar de mais rápido do mundo). Porém, os designs ARM geralmente priorizam fatores forma menores, vida da bateria, tamanho, eliminação dos requisitos de resfriamento e, talvez o mais importante, custo. É por isso que os processadores ARM dominam dispositivos eletrônicos e mobile, como smartphones, tablets e até mesmo sistemas Raspberry Pi. As arquiteturas x86 são mais comuns em servidores, PCs e até mesmo em laptops, em que a preferência é por velocidade e flexibilidade em tempo real, com menos limitações de resfriamento e tamanho.

Os chips ARM estão ficando cada vez mais famosos na computação de alto desempenho (HPC) e até nos casos de uso de nuvem (como AWS Graviton e Azure), dois ambientes em que o Red Hat Enterprise Linux oferece uma ótima plataforma para computação e compatibilidade, além de otimização, implantação e desenvolvimento de apps.

A história entre CPUs ARM e sistemas Linux é antiga, de sistemas para smartphones baseados em Android a sistemas personalizados para Raspberry Pi. Agora, até mesmo um dos supercomputadores mais rápidos do mundo usa o Red Hat Enterprise Linux com arquitetura ARM (Red Hat alimenta Fugaku).

Ao contrário das CPUs x86, o hardware de cada design ARM é exclusivo. É assim que uma comunidade open source poderosa pode ajudar. O Red Hat Enterprise Linux tem uma grande comunidade de centenas de fornecedores de hardware testados e certificados, e isso inclui fabricantes e designers de hardware ARM. A Red Hat tem um programa de acesso antecipado para parceiros de ARM. Assim, nossos clientes podem ajudar e avaliar as novas tecnologias ARM.

Parte da potência do Red Hat Enterprise Linux é o desempenho em ambientes diferentes, incluindo nuvem, servidores e edge. Com a combinação de tecnologia, ecossistema e estabilidade consistente, as organizações podem inovar e se adaptar em qualquer ambiente de TI.

Leitura recomendada

Artigo

O que é Linux?

O Linux é um sistema operacional open source composto por um kernel, que é sua base, e ferramentas, aplicações e serviços empacotados com ele.

Artigo

O que é SELinux?

O Security-Enhanced Linux (SELinux) é uma arquitetura de segurança para sistemas Linux® que permite que administradores tenham mais controle sobre quem pode acessar o sistema.

Artigo

O que é o kernel do Linux?

O kernel é o componente principal de um sistema operacional Linux e a interface central entre o hardware e os processos executados por um computador.