Por que demoramos tanto para trazer processadores ARM aos PCs?

No mercado de processadores para computadores de uso pessoal (desktops e laptops) temos duas empresas competindo: Intel e AMD. A Intel desenvolve e fabrica sua prória arquitetura, chamada x86, sob a qual tem todos os direitos reservados. Historicamente, a Intel licenciou a arquitetura para algumas empresas, sendo a AMD a única que permaneceu relevante no mercado.

Arquitetura de um processador se refere ao conjunto de instruções lógicas que ele suporta. A “computação” que um computador faz é, simplificando bastante, ler instruções e dados contidos na memória principal (RAM), executar uma instrução nesses dados, possivelmente guardar o resultado novamente na RAM como dado para outra instrução, e esperar a próxima instrução para executar.

A Intel foi fundada em 1968. O primeiro processador x86 desenvolvido pela Intel foi lançado em 1978, chamado de 8086. Naquele tempo, a RAM era cara, lenta e a programação era de baixíssimo nível de abstração, frequentemente códigos eram escritos na própria linguagem de máquina, especificando manualmente cada instrução. Para resolver esses e outros problemas, a Intel adotou a abordagem de incluir instruções mais complexas no processador. Essa abordagem é conhecida como CISC (Complex Instruction Set Architecture).

A título de exemplo, vamos supor um processador extremamente simples que faça apenas as quatro operações básicas (adição, subtração, multiplicação, divisão) e queremos implementar a operação de fatorial. A abordagem CISC faria a implementação de fatorial no próprio processador como uma única instrução, enquanto uma abordagem RISC (Reduced Instruction Set Architecture) faria o fatorial como multiplicações sucessivas ou, se for mais reduzido ainda, a multiplicação como somas sucessivas.

(Instruções complexas referem-se àquelas que combinam várias operações em uma única execução. O exemplo do fatorial é fictício e tem como objetivo facilitar o entendimento, não refletindo casos reais.)

As vantagens de CISC nesse caso são:

No entanto, existem desvantagens consideráveis no CISC:

Hoje em dia, com memórias muito rápidas e eficientes e linguagens de programação de alto nível com baixíssima barreira de entrada, faz sentido usar CISC? Talvez não, e isso foi percebido pela Apple.

Houve um grande investimento da Apple nos seus processadores Apple Silicon série M (M1, M2, M3, e agora M4). Esses processadores utilizam a arquitetura ARM, a mais conhecida do tipo RISC, e licenciada pela empresa ARM Holdings. Ao contrário da Intel, a ARM não fabrica chips, mas licencia para vários fabricantes diferentes. É essa a arquitetura usada em praticamente todos os smartphones Android porque é o que faz sentido: baixo tamanho e baixo consumo para um dispositivo portátil que cabe no bolso e passa a maior parte do tempo ligado em uma bateria. Mas se é tão eficiente assim, por que não utilizar em PC de mesa ou notebook?

O que o processador “entende” para executar é uma correspondência em 0s e 1s da linguagem de máquina, aquela que contém instruções e dados, e que é chamada de assembly. Cada arquitetura possui sua própria linguagem, mas quando programamos em outras linguagens mais 'fáceis', essas linguagens são traduzidas para essa linguagem de máquina, tornando-as mais ou menos independentes da arquitetura que está baixo. Essa tradução é feita por um programa chamado compilador. Esse compilador precisa ter suporte para cada arquitetura diferente e, em alguns casos, o desenvolvedor ou outra pessoa precisa recompilar o programa para uma nova arquitetura. Mas, surgem algumas perguntas:

Em outras palavras, um software altamente complexo como um sistema operacional (Windows, Mac, Linux) precisa de investimento financeiro proporcional para rodar em outra arquitetura. Então, qual o interesse da empresa em investir nisso, considerando que apenas ela pode fazer isso?

Devido a ser software livre e código aberto e popular em servidores e entre pessoas técnicas, o kernel Linux possui suporte a várias arquiteturas diferentes. Atualmente, a “distribuição universal”, Debian, lista 10 arquiteturas diferentes. O outro sistema operacional de origem semelhante, NetBSD, lista nada menos do que 42 arquiteturas suportadas. Porém, como vender esses sistemas para o amplo mercado? Esse é o problema, e é o motivo pelo qual ainda não temos competição ampla de arquiteturas no mercado. Temos apenas alguns poucos fabricantes de nicho vendendo máquinas com outras arquiteturas, mas que “só rodam Linux”:

Nesse sentido, o uso de software de código fechado pode limitar a inovação nesse mercado. Se o software executado em arquiteturas alternativas fosse de amplo uso, poderia ter havido mais pesquisa e desenvolvimento em alternativas modernas e mais eficientes, desde mais cedo na história. Em resumo, ainda utilizamos x86 fundamentalmente por dois motivos: cultura e legado.

Outras arquiteturas interessantes são o RISC-V e POWER. As duas têm a ideia de “hardware aberto”.

O RISC-V, como o nome já diz, é uma arquitetura do tipo RISC e pode competir diretamente com ARM. Seu diferencial é que é totalmente aberta, não há uma empresa licenciando por trás. Qualquer fabricante pode implementar o seu processador com zero burocracia. Existe um consórcio de várias empresas por trás tentando trazer essa arquitetura para o mainstream.

Já a arquitetura POWER, da IBM, tende mais ao CISC e compete com x86. Ao menos dois projetos nichados vendem dispositivos com essa arquitetura: Talos II, voltado ao mercado de servidores, e PowerPC Notebook, um notebook para uso pessoal.

Como será o mercado daqui pra frente? Qual a arquitetura do futuro? Não sei, só sei que vou continuar usando software livre e facilitando o desenvolvimento de tecnologias melhores.

Sobre mim:

Monaĥo (Vinicius) é ativista vegano e de software livre.

Contato:

Mastodon