Arm, Arm ARM, Armv9, ARM9, ARM64, Aarch64, A64, A78,.. diferenciando os termos
(nickdesaulniers.github.io)Organização de termos para iniciantes no ecossistema Arm
- A arquitetura Arm é uma família RISC com modos de endereçamento simples
- Arm Limited é a empresa britânica que administra a arquitetura Arm
- ARM passou de Acorn RISC Machine para Advanced RISC Machines
- Arm ARM (Architecture Referecnce Manual) é o manual de programação sobre Arm
- Armv9 é a versão mais recente da família de arquiteturas (no momento em que o autor escreve). Adiciona vetores SIMD (SVE) e operações de matriz (SME/SME2), entre outras coisas
- Armv9.4-A é o conjunto mais recente de extensões do Armv9. Essas extensões estão documentadas no Arm ARM. Algumas extensões são opcionais quando são introduzidas, mas estão previstas para se tornarem obrigatórias em versões futuras
- O A de Armv9.4-A significa "Application Profile". Ele oferece suporte a memória virtual por meio de MMU e pode ser encontrado em todos os sistemas Arm, como celulares, notebooks e servidores.
Também existem perfis como "R" para sistemas de tempo real e "M" para microcontroladores sem MMU.
Esses três perfis de arquitetura também são "A", "R" e "M" - AArch64 é um "execution state" introduzido no ARMv8. Suporta registradores de 64b (31 registradores de uso geral, ponteiro de pilha dedicado de 64b, contador de programa de 64b e pseudo-registrador de valor zero)
Junto com isso, o recurso de 32b usado no ARMv7 passou a se chamar AArch32 - Curiosamente, o Arm ARM não menciona o termo ARM64 (Apple, Microsoft e Linus Torvalds preferem esse nome)
Esse nome acaba fazendo sentido; o kernel Linux arm64 pode executar código de espaço de usuário tanto em AArch64 quanto em AArch32 execution state, mas o próprio kernel é exclusivo de AArch64 - A64 é o conjunto de instruções introduzido no AArch64. Na prática, é o único conjunto de instruções suportado por AArch64. Os registradores do AArch64 são de 64b, mas as instruções em si continuam sendo de 32b (largura fixa)
A32 significa a ISA antiga. Ela também tem largura fixa de 32b. T32 é o conjunto de instruções usado antes do Armv8 e se refere ao Thumb2 de 32b e 16b - Algo que não deve ser confundido com A64 é usar "A78" para se referir a um núcleo: isso é o Cortex-A78.
A Arm projeta não só a arquitetura Arm, mas também implementações da arquitetura que costumamos chamar de microarquitetura. Independentemente do número que vem depois, se você vir as palavras Cortex ou Neoverse, trata-se de microarquiteturas projetadas pela Arm.
Por exemplo, o Cortex-A78 implementa extensões até o ArmV8.3. A Wikipédia tem um template que organiza isso - DynamIQ (antigo bit.LITTLE) se baseia na ideia de usar núcleos heterogêneos, e não homogêneos, em sistemas multicore
A vantagem desse design é conseguir fazer coisas diferentes bem em momentos diferentes. Quando é necessário desempenho, usa-se um processador out-of-order que consome muita energia; para reduzir o consumo, usam-se núcleos in-order mais lentos
É interessante ver a Intel fazendo algo parecido no Alder Lake com núcleos de desempenho e eficiência - Ao vasculhar o manual de referência, dá para ver vários Execution State evoluindo de forma interessante: A55, X1, X3 etc.
- Termos legados
- ARM9 não deve ser confundido com Armv9. É uma família de núcleos; alguns implementam ARMv4t e outros implementam ARMv5
- StrongARM é uma série de CPUs ARMv4 criada pela DEC. A Intel adquiriu essa IP por meio de um acordo judicial e acabou projetando sua própria microarquitetura ARMv5 chamada XScale
No fim, a Intel vendeu a família de SoCs PXA que usava XScale para a Marvell. Fico imaginando como o mundo seria se a Intel tivesse insistido no XScale junto com, ou em vez de, o Atom - ARMv4 introduziu o conjunto de instruções compactado chamado Thumb. As instruções tinham largura fixa de 16b
- ARMv6t2 introduziu o Thumb2. Ele suporta instruções de 32b e UAL (Unified Assembly Language), entre outros recursos
3 comentários
Esse nome
Arm ARM, por mais que eu veja, parece muito de propósito kkk*kkk
Acho que vou me lembrar de
Arm ARMcom certeza :)