Nesta semana a Microsoft oficializou o suporte do Windows 11 para a tecnologia Arm64EC. Mas o que essa tecnologia faz? Na prática, ela tentará melhorar o desempenho e a compatibilidade do sistema com processadores baseados na arquitetura Arm. O Windows até roda em computadores Arm, porém algumas aplicações podem não ter o mesmo desempenho ou mesmo compatibilidade.
Leia também
O que é para que serve o processador?
50 anos do mitológico Intel 4004, o processador que mudou o mundo
Windows e Arm: uma relação difícil
Já faz algum tempo que a Microsoft tenta fazer o Windows rodar com a performance ideal em computadores baseados na arquitetura Arm. O motivo disso é que o Windows foi projetado para trabalhar com softwares x86 (32 bits) e x64 (64 bits). Caso você não saiba, x86 e x64 é o tipo de instrução que os processadores da Intel e da AMD entendem.
Os processadores Arm, por sua vez, entendem outros tipos de instruções. No entanto, o Windows 10 e 11 são capazes de executar programas de 32 e 64 bits projetados para a arquitetura Arm.
O problema começa justamente quando o Windows precisa rodar programas x86/x64 em um computador Arm. Para isso, o sistema precisa usar a técnica de emulação. No entanto, emular as instruções para programas x86/x64 demanda muito processamento. O resultado é que o desempenho do programa fica abaixo do que se ele fosse executado nativamente. Em casos mais extremos, o software até trava e fecha repentinamente.
O cenário ideal é que os desenvolvedores de software fizessem versões x86/x64 e Arm de seus programas. Mas isso é muito trabalhoso. Até existem ferramentas que ajudam o programador a fazer essa portabilidade de plataforma. Mas mesmo com esse auxílio, o trabalho ainda é gigante. É aí que entra a Arm64EC.
Arm64EC: a salvação da pátria
Mas, afinal, o que é esse tal de Arm64EC? Trata-se de uma Interface Binária de Aplicação (ABI, da sigla em inglês). Na prática, o que essa interface faz é permitir que o desenvolvedor use códigos Arm e códigos x64 no mesmo programa. Dessa forma, o código Arm é executado nativamente pelos computadores com chips Arm e o código x64 é emulado pelo sistema.
Mas como isso vai permitir um melhor desempenho do Windows em computadores Arm? A ideia com o Arm64EC é que a parte crucial do software, ou seja, as funções mais importantes, sejam escritas em Arm. As funções secundárias serão escritas em x64 mesmo.
Dessa maneira, quando o usuário executar o programa, a parte principal dele rodará nativamente em Arm. O resultado disso é um melhor desempenho. As funções secundárias, por não serem tão importantes ou tão usadas, podem ser emuladas sem impactar tanto no desempenho geral do software.
Além disso, essa estratégia dá a oportunidade dos desenvolvedores migrarem seus softwares aos poucos, sem toda aquela pressa. Assim, eles podem fazer uma hierarquia de funções, migrando as mais importantes primeiro e deixando as menos relevantes por último.
A própria Microsoft destaca como essa interface pode ajudar os desenvolvedores:
“Com o Arm64EC, você pode escolher por começar devagar e avançar de forma gradual. Você pode identificar uma parte da sua base de código que mais se beneficiaria do desempenho nativo e refazê-la como Arm64EC. O restante do aplicativo permanecerá totalmente funcional como x64 emulado, mas as partes Arm64EC recompiladas passarão a ter velocidade nativa.”
Pode ser que agora o Windows tenha um melhor desempenho em chips Arm.
Fonte: Microsoft