ARM vs x86, por que um é mais eficiente em termos de energia do que o outro?

ARM versus x86

Com o anúncio desta semana do primeiro Apple Macintosh baseado em processadores com ISA ARM, após ter anunciado a transição pela Apple alguns meses atrás, o tópico ARM vs x86 apareceu e a questão de por que não há CPUs com ISA x86 em dispositivos de baixo consumo voltou a aparecer. Mas quais são os motivos e mitos que cercam essa questão?

Se você já se perguntou por que não consegue ver smartphones, tablets e todos os tipos de dispositivos que usam processadores x86 com um consumo abaixo de 10 W e até 5 W. Então, digamos que não é por falta de interesse em Intel or AMD, mas há uma série de razões para isso, uma série de barreiras intransponíveis que têm a ver com a natureza da arquitetura x86.

ARM vs x86 ou CISC vs RISC

RISC x CISC

ARM significa Advanced RISC Machines, enquanto todos os baseados em x86 CPU é dito ter um conjunto de instruções do tipo CISC. Mas o que isso significa? RISC significa Reduced Instruction Set Computing ou Computing with a Reduced Instruction Set, enquanto CISC significa Complex Instruction Set Computing. Portanto, é uma forma de classificar os conjuntos de instruções usados ​​por diferentes processadores.

A principal diferença é que como o RISC possui um conjunto reduzido de instruções, acaba sendo necessário o uso de várias instruções mais simples para executar uma mais complexa, enquanto no caso de uma unidade CISC muitas instruções complexas podem ser executadas em uma única instrução , então as unidades CISC economizam espaço em termos de quantidade de memória.

Processador Render Genérico

Por exemplo, o código de máquina de uma soma em RISC seria o seguinte:

  1. Armazena o primeiro operando no registro do acumulador
  2. Carregue o segundo operando e faça a adição.
  3. Armazena o resultado no registro do acumulador.

Em vez disso, em um processador CISC:

  1. Adicione o primeiro e o segundo operando.

Quanto ao código de máquina, um Binário RISC tem mais instruções e portanto ocupa muito mais memória , enquanto no binário CISC o código é muito mais leve.

O ciclo de instrução dos processadores

Buscar, decodificar, executar

Cada processador, independentemente de ser CISC ou RISC, tem que passar por quatro fases diferentes que são:

. Buscar: A seguinte instrução é obtida na memória.

. Decodificar: A instrução é decodificada e preparada para execução.

. Executar: A instrução é executada por uma das unidades de execução da CPU. e o resultado da instrução é escrito no banco de memória ou registrador correspondente.

In Processadores RISC uma instrução executada pela CPU é equivalente a uma instrução em código binário, enquanto em CISC uma instrução em código de máquina pode ser dividido em várias microinstruções, o que significa que o Unidade de decodificação de Processadores CISC são muito mais complexo e é outro dos fatores mais importantes para o x86 ter um consumo maior.

Segmentação em x86 vs ARM

Segmentação

Uma das peculiaridades que todas as UCPs apresentam desde o início da década de 90 é a segmentação, que consiste em que ao invés de esperar que uma instrução seja executada por completo no processador para dar lugar à próxima, estes avançam a cada estágio da instrução ciclo, que pode ser dividido em várias subetapas cada uma delas.

Como os processadores RISC têm uma correlação direta entre o número de instruções no código binário e aquelas executadas pela CPU, é muito fácil segmentar as instruções em vários estágios. Mas em um x86 é extremamente difícil , já que a segmentação é feita nas microinstruções geradas durante a etapa de Decodificação, o que significa ainda mais circuitos adicionais funcionando e consumindo energia continuamente.

Além disso, embora por exemplo os opcodes de cada instrução no ARM sejam de tamanho fixo no caso do x86, eles são variáveis, o que torna a decodificação de instruções em microinstruções muito mais complexa no caso dos processadores x86.

Menos registros equivalem a menos eficiência energética

Registros

O ISA x86 tem muito menos registros dentro dele do que em outras ISAS, isso significa que muitas instruções devem ser executadas na memória, ou nos caches, o que faz com que você acabam consumindo muito mais energia ao executar. Este é um problema clássico da arquitetura x86 e não por ser uma arquitetura CISC.

Para entendê-lo, é necessário levar em consideração o consumo de energia de cada operação depende do distância entre os dados e o processador .

x86 vs ARM em dispositivos de energia muito baixa.

Smartphone Intel

A Intel tentou há alguns anos com o processador Intel Medfield com defeito.

Além do mais, uma das possibilidades que foram consideradas é a criação de um CPU mista , que consiste em um x86 que decodifica internamente suas instruções em instruções ARM e permite compatibilidade total entre os dois ISAS, que seriam o processador definitivo.

Mas, infelizmente, nem a ARM, nem a Intel e a AMD, especialmente a última, estão interessadas em fazer este processador misto, pois para torná-lo trabalhar em ambos os modos, seria muito difícil de conseguir, fora isso, a decodificação de instruções x86 continuaria sendo um problema, então teríamos um processador que só poderia funcionar de uma maneira e onde a maior parte do circuito seria desperdiçada.