Samsung Austin R&D Center revela detalhes de sua microarquitetura de CPU Exynos M6 inédita

O Samsung Austin Research & Development Center (SARC) lançou um artigo detalhando a microarquitetura do núcleo de CPU personalizado Exynos M6 cancelado.

Sabemos que o projeto de núcleo de CPU personalizado no Austin Research & Development Center (SARC) da Samsung chegou ao fim em outubro de 2019. Para um projeto que foi promovido com tanto alarde com o lançamento do Exynos M1 com Exynos 8890 em 2016, foi um final triste. Por que o SARC desistiu do projeto? O núcleo personalizado Exynos M5, apresentado no Exinos 990 SoC é o último núcleo totalmente personalizado projetado pela Samsung para o futuro próximo e, em retrospectiva, é fácil ver por que a Samsung desistiu dos núcleos personalizados, já que eles simplesmente não eram competitivos o suficiente. Sabe-se agora que o núcleo Exynos M5 tem um déficit de eficiência energética de 100% contra o Cortex-A77 da ARM, o que diz muito. No entanto, não precisava ser assim. Os designs do Exynos M1 e Exynos M2 mostraram-se promissores, e o projeto do núcleo da CPU personalizado foi, naquela época, considerado importante para o bem da competição no espaço da CPU móvel. O Exynos M3 sofreu uma grande recessão, apesar do grande aumento do IPC, e do

Exynos M4 e o Exynos M5 não conseguiu acompanhar o IP padrão da CPU da ARM. Quais foram as mudanças microarquiteturais no próximo núcleo personalizado, o Exynos M6 cancelado?

Até agora, a resposta a essa pergunta era desconhecida. Agora, porém, a equipe de desenvolvimento de CPU SARC apresentou um artigo intitulado "Evolução da arquitetura de CPU Samsung Exynos" (que conhecemos via AnandTech) no Simpósio Internacional de Arquitetura de Computadores (ISCA), que é uma conferência do IEEE. Ele revela muitos detalhes sobre as CPUs da série Exynos M anteriores, bem como a arquitetura do Exynos M6 cancelado.

O artigo apresentado pela equipe de desenvolvimento de CPU do SARC detalha os esforços da equipe ao longo de seus oito anos de existência e também revela detalhes importantes dos núcleos ARM personalizados, desde o Exynos M1 (Mongoose) ao Exynos M5 (Lion) da geração atual, e até mesmo ao CPU Exynos M6 inédito, que, antes do cancelamento, deveria aparecer no SoC 2021 do Exynos 990 sucessor.

A equipe de CPU SARC da Samsung foi criada em 2011 para desenvolver núcleos de CPU personalizados, que foram então apresentados na Samsung Systems SoCs Exynos da LSI. O primeiro Exynos SoC a usar um núcleo personalizado foi o Exynos 8890, que foi apresentado no Samsung Galaxy de 2016 S7. Os núcleos personalizados permaneceram como parte dos SoCs Exynos até o Exynos 990 com os núcleos Exynos M5, que apareceram nas variantes do Samsung Galaxy S20 com Exynos. (O próximo Exinos 992, que provavelmente aparecerá no Galaxy Note 20, deverá apresentar ARM's Córtex-A78 e não o Exynos M5.) No entanto, o SARC completou a arquitetura Exynos M6 antes que a equipe da CPU tivesse recebeu a notícia de sua dissolução em outubro de 2019, com a dissolução sendo efetivada em Dezembro.

O artigo da ISCA apresenta uma tabela geral das diferenças microarquiteturais entre os núcleos de CPU personalizados da Samsung, do Exynos M1 ao Exynos M6. Algumas das características bem conhecidas do design foram divulgadas pela empresa em seu mergulho inicial na arquitetura de CPU M1 no evento HotChips 2016. No HotChips 2018, a Samsung deu um mergulho profundo no Exynos M3. A arquitetura dos núcleos Exynos M4 e Exynos M5 também foi detalhada, assim como a do M6.

Fonte: SARC

AnandTech observa que a única característica principal dos designs da Samsung ao longo dos anos foi que ele foi baseado no mesmo modelo RTL que começou com o núcleo Exynos M1 Mongoose. A Samsung continuou a fazer melhorias nos blocos funcionais dos núcleos ao longo dos anos. O Exynos M3 representou uma mudança em relação às primeiras iterações, pois ampliou substancialmente o núcleo em vários aspectos, passando de um design de 4 larguras para um núcleo médio de 6 larguras. (O Apple A11, A12 e A13, por outro lado, têm uma largura de decodificação de 7 larguras, enquanto o Cortex-A76, A77 e A78 têm uma largura de 4 larguras. O Cortex-X1 aumenta a largura de decodificação para 5.)

O relatório também faz algumas divulgações que não eram públicas antes sobre o Exynos M5 e o M6. Para o Exynos M5, a Samsung fez mudanças maiores na hierarquia de cache dos núcleos, substituindo os caches L2 privados por um novo cache compartilhado maior, além de revelar uma mudança na estrutura L3 de um design de 3 bancos para um design de 2 bancos com menos latência.

O núcleo M6 cancelado teria sido um salto maior em termos de microarquitetura. O SARC fez grandes melhorias, como duplicar os caches de instruções e dados L1 de 64 KB para 128 KB - AnandTech observa que esta é uma escolha de design que só foi implementada pelos núcleos da série A da Apple até agora, começando com o Apple A12.

O L2 teve sua capacidade de largura de banda duplicada para 64B/ciclo, enquanto o L3 teria visto um aumento de 3MB para 4MB. O Exynos M6 teria sido um núcleo de decodificação de 8 larguras. Como observado por AnandTech, esta teria sido a microarquitetura comercial mais ampla conhecida atualmente em termos de decodificação. No entanto, embora o núcleo fosse muito mais amplo, as unidades de execução de inteiros não sofreram muitas mudanças. Um pipeline complexo adicionou uma segunda capacidade de divisão inteira, enquanto os pipelines de carga/armazenamento permaneceram os mesmos do M5 com uma unidade de carga, uma unidade de armazenamento e uma unidade de carga/armazenamento. Os pipelines de ponto flutuante/SIMD teriam uma quarta unidade adicional com recursos FMAC. O DTLB L1 foi aumentado de 48 páginas para 128 páginas, e o TLB principal foi duplicado de páginas 4K para 8K páginas (cobertura de 32 MB).

O Exynos M6 teria representado outra mudança significativa em relação aos seus antecessores, aumentando a janela fora de serviço do núcleo pela primeira vez desde o M3. Haveria arquivos de registro físico inteiros e de ponto flutuante maiores, e o ROB (Reorder Buffer) teria aumentado de 228 para 256. AnandTech observa que uma fraqueza importante dos núcleos Exynos personalizados ainda está presente no M5 e também estaria presente no M6. Seriam seus estágios mais profundos de pipeline que resultariam em uma penalidade cara de previsão incorreta de 16 ciclos, que era maior do que os núcleos de CPU do ARM que têm penalidade de previsão incorreta de 11 ciclos. O artigo SARC se aprofunda ainda mais no design do preditor de ramificação, apresentando o design baseado em Scaled Hashed Perceptron do núcleo da CPU. Esse design teria melhorado continuamente ao longo dos anos e das implementações, melhorando a precisão da ramificação e reduzindo continuamente as previsões incorretas por quilo de instruções (MPKI). O SARC apresenta uma tabela que mostra a quantidade de estruturas de armazenamento que o preditor de ramificação ocupa no front-end. As tecnologias de pré-busca do núcleo também foram detalhadas no artigo, cobrindo a introdução de um cache µOP no M5, bem como os esforços da equipe para fortalecer o núcleo contra vulnerabilidades de segurança, como Espectro.

Os esforços para melhorar a latência da memória nos núcleos Exynos personalizados também foram detalhados pelo SARC no artigo. No Exynos M4, a equipe SARC incluiu um mecanismo de cascata de carga que reduziu a latência efetiva do ciclo L1 de quatro ciclos para três nas cargas subsequentes. O núcleo M4 também introduziu um desvio de caminho com uma nova interface dos núcleos da CPU diretamente para os controladores de memória, o que evitou o tráfego através da interconexão. De acordo com AnandTech, isso explica algumas das maiores melhorias de latência que a publicação conseguiu medir com o Exynos 9820. O Exynos M5 introduziu um desvio de pesquisa de cache especulativo, que emitiu uma solicitação para a interconexão e as tags de cache simultaneamente. Isso possivelmente economizaria latência no caso de falha no cache, pois a solicitação de memória está em andamento. A latência média de carga também melhorou continuamente ao longo das gerações, de 14,9 ciclos no M1 para 8,3 ciclos no M6.

Embora as características microarquiteturais acima sejam bastante técnicas, os entusiastas da CPU estarão familiarizados com o termo Instruções por clock (IPC), que significa por MHz desempenho no desempenho da CPU de thread único (é o principal fator que determina o desempenho da CPU de thread único, com o outro fator sendo a velocidade do clock do essencial). IPC inteiro e IPC de ponto flutuante são ambos determinantes do IPC. A equipe SARC conseguiu obter uma média de melhorias anuais de 20% do M1 ao M6. O M3, em particular, representou uma grande melhoria percentual no IPC, embora tenha sido prejudicado por outros fatores. O Exynos M5 representou uma melhoria de 15-17% no IPC, enquanto a melhoria de IPC para o Exynos M6 não lançado foi divulgado ter uma média de 2,71 versus 1,06 para o M1, representando uma melhoria de 20% em relação ao M5.

Brian Grayson, apresentador do jornal, respondeu a perguntas sobre o cancelamento do programa durante a sessão de perguntas e respostas. Ele disse que a equipe sempre esteve dentro do objetivo e dentro do cronograma, com melhorias de desempenho e eficiência a cada geração. (Isso significa que as metas não eram suficientemente altas em primeiro lugar?). A maior dificuldade da equipe, por outro lado, foi ter muito cuidado com os futuros mudanças de design, pois a equipe não tinha recursos para começar do zero ou reescrever completamente um bloquear. Em retrospectiva, a equipe teria feito escolhas diferentes no passado com algumas das direções de design. Em total contraste, a ARM tem várias equipes de CPU trabalhando em locais diferentes que realmente competem entre si. Isto permite "reprojetos completos", como o Córtex-A76. O Córtex-A77 e o Cortex-A78 são os sucessores diretos do A76.

A equipe SARC teve ideias de melhorias para os próximos núcleos, como o hipotético Exynos M7. No entanto, foi supostamente uma pessoa de alto escalão da Samsung que decidiu cancelar o programa principal personalizado. Como AnandTech observa que os núcleos personalizados não eram competitivos em termos de eficiência de energia, desempenho e uso de área (PPA) em comparação com CPUs ARM de qualquer geração específica. No mês passado, a ARM anunciou o programa Cortex-X Custom apresentando o novo Córtex-X1, um núcleo de próxima geração destinado a dispositivos móveis de 2021. Ele tem uma filosofia de design de quebrar o envelope Cortex-A PPA e buscar desempenho absoluto. O Exynos M6, portanto, teria dificuldade em competir com ele. Mesmo assim, parece que a Samsung não adaptará o Cortex-X1 e irá apenas com o combo Cortex-A78 + Cortex-A55 no Exynos 992 – no entanto, pode ser adotado no carro-chefe do Galaxy S do próximo ano.

A equipe SARC ainda projeta interconexões personalizadas e controladores de memória para Samsung Systems LSI. Também estava trabalhando em arquiteturas de GPU personalizadas, mas Samsung Systems LSI assinou um acordo com a AMD usar a arquitetura de GPU RDNA de próxima geração da AMD (próxima arquitetura gráfica) em futuras GPUs Exynos, a partir de 2021.

No geral, o projeto do núcleo da CPU personalizado foi uma lição esclarecedora para os fornecedores de chips móveis sobre o que pode dar errado. A equipe de CPU SARC tinha grandes ambições de competir com a Apple, que é líder indiscutível no espaço de CPU móvel. Infelizmente, ele não conseguiu competir com a ARM, muito menos com a Apple. Os problemas poderiam ter sido resolvidos, mas, ano após ano, os esforços da SARC ficaram um ou dois passos atrás, e isso refletiu negativamente no envio de produtos como as variantes Exynos 9810 do Samsung Galaxy S9. Agora, todos os principais fornecedores de chips móveis Android usarão o IP de CPU padrão da ARM a partir de 2021, e esta lista inclui Qualcomm, Samsung, MediaTek e HiSilicon. A luta será levada para a Apple com núcleos como o Cortex-X1, e não com núcleos ARM personalizados projetados do zero.


Fonte: Evolução da arquitetura de CPU Samsung Exynos | Através da: AnandTech