Qual é a diferença real entre as arquiteturas x86, ARM e MIPS?
As diferenças reais entre as três são demasiadas para uma resposta aqui. A maioria destas diferenças subtis reside na forma como a memória é tratada, as excepções são tratadas, os ramos são executados, etc. Há também muitas diferenças sutis que estão além do escopo de uma breve resposta aqui. De um alto nível, no entanto, eu posso pensar nestas:
- RISC vs CISC: Esta é a diferença clássica entre ARM/MIPS e x86. RISC significa Reduced Instruction Set Computer e CISC é Complete ISC. x86 é um processador CISC e ambos ARM/MIPS são RISC. A filosofia por trás dos processadores CISC é que uma única instrução pode fazer várias coisas; como adicionar um número imediato com um registro, armazenar este valor em um endereço computado usando algum outro registro e também definir bandeiras aritméticas. Os processadores RISC, por outro lado, teriam duas instruções separadas para isso; uma para adicionar dois números e a outra para armazenar o resultado. Isto aumenta a contagem das instruções, mas torna as instruções mais simples. O que me leva ao segundo ponto.
- Power vs Performance: Instruções mais simples tendem a consumir menos energia. Os processadores x86 são normalmente projetados para aplicações de alto desempenho como servidores, enquanto os processadores RISC são usados em aplicações móveis onde o desempenho às vezes é comprometido para melhor eficiência energética. Deve-se notar, no entanto, que essas linhas estão diminuindo a cada dia. O ARM adicionou mais complexidade às suas instruções para obter melhor desempenho e a Intel decompõe seus opcodes em microops que o ARM gosta para obter melhor potência. O MIPS talvez continue sendo o ISA mais simples e é utilizado mais intensamente em aplicações embarcadas onde o consumo de energia ultra baixo é necessário.li>Security and virtualization: Não tenho certeza sobre o MIPS aqui, mas o ARM tem algo chamado TrustZone e a Intel tem vPro. Ambos os recursos têm como alvo a segurança do hardware. Tanto o ARM quanto a Intel têm suporte para virtualização e gerenciamento de memória, e diferem apenas em sua implementação. Estas são funcionalidades bastante novas que são necessárias em aplicações mais recentes e, portanto, ambos os ISAs têm um ou outro sabor. Então você vê, as diferenças estão aparando.
Tudo em suma, os ISAs são importantes apenas do ponto de programação neste momento. O ecossistema de software móvel é muito melhor desenvolvido e mantido para o ARM do que para o x86. A imagem se inverte quando se trata de aplicações desktop. Essa é a principal razão pela qual a Intel está lutando para entrar no mercado móvel e o ARM está tendo dificuldades para entrar em servidores. Em tudo isso, o MIPS está em algum lugar junto com o Sparc, PowerPC etc sendo usado em aplicações de nicho.
Artigos semelhantes
- Qual é a diferença entre os processadores ARM e x86?
- Qual é a diferença entre Intel x86 vs ARM Memory Management?
- Existe alguma diferença entre um SO Android rodando em um processador baseado em ARM e um processador baseado em x86?
- A diferença entre as linguagens de montagem ARM e x86-64 é assim tão grande? Quão fácil seria aprender uma se você já conhece a outra?