Apple M1: o que esperar deste SoC revolucionário?

Um breve histórico

Há +15 anos, eu assisti uma aula memorável sobre a arquitetura dos computadores na facultade. Esta, não se limitava a apenas ao PC desktop e analisava diversos aspectos, que iam desde o set de instruções da CPU (x86, PowerPC, MIPS e ARM) a barramentos, conexões e periféricos. Na época, o mercado de montagem e manutenção em micros ainda era bem valorizado e por isto, dava uma atenção especial para este segmento (além do fato de gostar muito da área). E o ponto mais interessante do debate estava na supremacia dos processadores x86 em comparação aos… PowerPCs! 😉

Apple MacBook Pro: notebook premium da empresa, baseado na arquitetura x86.

As arquiteturas x86 e PowerPC protagonizavam excelentes debates técnicos, em vista dos eventos da época: a Apple estava migrando para a arquitetura x86 e os novos consoles de video-games seriam baseados na arquitetura PowerPC. Para muitos, foi uma decisão estratégica interessante da Apple, por optar por uma arquitetura com um set de instruções que (sob muitos aspectos) facilitava o desenvolvimento de softwares, ao passo que para os consoles, a escolha foi perfeita, em vista da performance oferecida em cálculos matemáticos por estas CPUs RISCs. E o mais interessante: muitos na época afirmavam que “a vez do MIPS vai chegar”…

Específicamente no caso da Apple, a maior motivação foi o fato de que as CPUs PowerPCs aqueciam demais e consumiam muita energia. Embora as CPUs Pentium 4 e D serem terríveis neste quesito, os novos Core Duo estavam programados para serem lançadas no ano seguinte, trazendo uma mudança radical no design da arquitetura: ao invés de priorizar velocidades de clocks mais altas (a custas do consumo e dissipação térmica), o foco era executar mais instruções por clock, o que tornava uma CPU oferecer mais desempenho com -50% de clock, mas consumindo menos energia.

Na época, a ARM nem sequer chamava a atenção, embora fosse reconhecida como boa arquitetura para dispositivos portáteis, graças ao seu baixíssimo consumo. No entanto, a performance era bem limitada. O que aconteceu então, de lá para cá?

A ARM e suas unidades Cortex

Em 1980, a Acorn Digital Computers foi contratada para desenvolver um projeto para British Broadcast Corporation (BBC), o qual consistia no desenvolvimento de uma nova arquitetura para o seu microcomputador, chamado de BBC Computer Literacy Project. Assim, nasceu a arquitetura ARM (Acorn Risc Machines), inspirada no design RISC (Reduced Instruction Set Computer), que por sua vez prevê um conjunto mais simples de instruções. Apesar das CPUs baseados no design RISC terem perdido para a arquitetura x86 e seu design CISC (Complex Instruction Set Computer) no segmento da computação pessoal (graças especialmente ao IBM PC XT e a sua arquitetura aberta), as unidades ARM encontraram o seu espaço no uso em dispositivos móveis e de baixo consumo.

Com o surgimento dos smartphones e das conexões móveis velozes (3G), a necessidade de dispor de dispositivos com maior capacidade de processamento, ao mesmo tempo em que mantém o baixo consumo de energia, a ARM Holdings realizou revisões na sua arquitetura, que culminou com o lançamento da linha Cortex. A CPUs ARM Cortex são oferecidas em perfis diferentes, otimizados para serem utilizados em cenários específicos.

• Série A: dedicada para aplicações em alta performance;
• Série M: dedicada para aplicações em micro-controladores;
• Série R: dedicada para aplicações em tempo real.

Para os tablets e smartphones, o Cortex-A8 foi designado para oferecer alto poder computacional para dispositivos portáteis, ao mesmo tempo em que garante boa autonomia dos dispositivos. E de fato, ele cumpriu (e muito bem) a promessa!

Do Cortex-A8 ao Cortex-A17

As primeiras unidades Cortex-A8 eram CPUs single-cores de 32 bits e baseadas na micro-arquitetura ARMv7-A. Se comparada com as unidades anteriores, o Cortex-A8 se destacava por serem unidades superescalares de duas vias (2-way), que por sua vez possibilitava processar o dobro de instruções por ciclo de clock. Por fim, elas possuíam valores de frequências que variavam de 600 MHz a 1 Ghz.

PS Vita: o console portátil mais poderoso da época, dotado de um SoC, que combina uma CPU ARM Cortex-A9 quad-core e um IGP PowerVR.

A seguir, foram lançadas as unidades Cortex-A9 MPCore, que como o próprio nome já sugere, possibilitava o uso de design multi-nuclear (embora limitada a 4 núcleos). Em termos de evolução, ela se diferenciava do Cortex-A8 por apresentar pequenas melhorias tecnológicas, além de alcançar valores de frequência maiores, graças as otimizações da arquitetura e ao processo de litografia, que (na época) estava nos 65nm.

Posteriormente, foi lançado o Cortex-A12, que apesar de oferecer maior performance (até 40%) e suportar virtualização acelerada por hardware, não chegou a se popularizar no mercado. Logo em seguida, chegou o ARM Cortex-A15, que foi a terceira linha desta arquitetura, que apesar de manter o mesmo desempenho (em relação ao A12), trouxe algumas apenas pequenas melhorias como as altas velocidades de clock (até 2.5 Ghz), além do refinamentos na litografia, sendo oferecidos em 32 e 28nm.

O aspecto mais interessante neste processo de evolução é que o Cortex-A12 foi revisado, sendo rebatizado de Cortex-A17 e oferecendo uma pequena melhora na performance (até 60% em comparação ao Cortex-A9), recebendo mais estágios de pipeline (10 a 12) e trazendo o suporte ao design big.LITTLE, no qual CPUs de A17 compartilham o mesmo die com as novas CPUs Cortex-A7, que por sua vez foram designadas para priorizarem o consumo e o baixo custo, deixando a performance para o segundo plano. Antes do Cortex-A7, a ARM também disponibilizava o Cortex-A5, que eram unidades voltadas para o uso de dispositivos de baixo custo. Ambas foram designados para substituírem as antigas unidades ARM9 e ARM11, de arquiteturas mais simples e obsoletas.

Estas CPUs são baseadas no set de instruções ARMv7-A e se limitavam a suportar 32 bits, impossibilitando que os dispositivos dispusessem de +4 GB de memória RAM. Por isto, no final de 2011, a ARM lançou o set de instruções ARMv8-A, que além de trazer uma série de melhorias para a arquitetura, se destacou por oferecer o suporte a 64 bits, sendo designadas como AArch64 (ou A64).

Do Cortex-A57 ao Cortex-A78

Apesar de terem sido lançadas outras unidades com suporte a nova micro-arquitetura ARMv8-A, como os Cortex da série A32, A34 e A35, foram as linhas Cortex A57 e A53 que chegaram no mercado e fizeram um enorme sucesso. Estas, foram designadas respectivamente para serem as unidades de alta performance (para dispositivos top de linha) e de baixo custo (para os dispositivos de entrada), além de estarem aptas para trabalhar no novo design big.LITTLE, que por sua vez prevê clusters com arranjos de até 4 núcleos de cada tipo de unidade. Assim, poderemos combinar em um SoC, 4 núcleos de baixo consumo (A53) com 2 ou 4 núcleos de alta performance (A57), dispondo do que há de melhor nos dois mundos!

Nintendo Switch: atualmente o console portátil mais poderoso, baseado no design big.LITTLE e dotado de um SoC, que combina CPUs ARM Cortex-A57 & 53 e um IGP nVidia Tegra.

A seguir, foi a vez da estréia do Cortex-A72, que se destacava por trazer o processamento superescalar de três vias (3-way), o que possibilitava triplicar a execução de instruções por ciclo de clock e aumentar ainda mais o seu desempenho. As unidades Cortex-A53 (baixo consumo) foram mantidas, para a utilização no design big.LITTLE. Posteriormente, pequenas evoluções na arquitetura do Cortex-A72 foram implementadas, as quais aumentaram a sua performance, ao mesmo tempo em que reduziram o seu consumo, tornando-a mais eficiente que as suas gerações anteriores. Obviamente, com uma bela ajuda oferecida pela redução do tamanho dos transistores, nos mais recentes processos de litografia! 😉

Assim, surgiram as unidades Cortex-A73, A75, A76, A77 e A78. Interessante notar que o Cortex-A73 é baseado no antigo Cortex-A17 e mantém a sua unidade superescalar de 2 vias (2-way), ao passo que os demais utilizam de 3 vias (3-way). Já o Cortex-A75 (e posteriores) se destaca por oferecer arranjos com até 8 núcleos por cluster (batizado pela ARM de DynamIQ), além de aumentar a frequência para 3.0 GHz e o TDP para 2W, chegando a elevar a performance em até 48%. Por fim, ele é acompanhado de uma nova unidade de baixo consumo para o design big.LITTLE: o Cortex-A55, que por sua vez é apenas uma evolução pontual do “antigo” Cortex-A53.

O Cortex-A76 (e posteriores) diferencia-se, por ser uma unidade superescalar de 4 vias (4-way), além de oferecer uma maior performance em pontos flutuantes de até 35%, aumentando levemente a velocidade de clock para 3.3 GHz (em tablets). Em termos de acesso a memória, ele oferece até +90% de largura de banda. Tais melhorias permitem uma performance tal, que além de ser até 2x mais poderoso que o Cortex-A73, a ARM se dá ao luxo de recomendar o uso desta unidade em notebooks de alta performance, incluindo o uso do Windows 10 e comparando-o em termos de desempenho com arquitetura x86 Kaby Lake. Já o Cortex-A77 oferece apenas algumas melhorias pontuais em termos de desempenho, se comparado com o Cortex-A76: até 35% em inteiros e pontos flutuantes e +15% de largura de banda para a memória RAM.

Por fim, temos o Cortex-A78, que apesar de também apresentar apenas algumas melhorias pontuais em comparação ao Cortex-A77 (+7% em performance, -4% em consumo e -5% menor), ele oferece arranjos mais variados, na utilização do design big.LITTLE, podendo tanto ser combinado com as unidades de baixo consumo Cortex-A55 e ser acompanhado dos novos Cortex-X1, que até o presente momento são as unidades mais poderosas do mercado, desenvolvidas pela ARM. Apesar de também estarem limitadas para as frequências de 3.0 GHz (smartphones) e 3.3 GHz (tablets), a ARM garante que estas unidades trabalham nestas velocidades com mais desenvoltura e eficiência, se comparada com as unidades anteriores.

ARM Cortex-X1 vs Apple M1

Até então, a ARM Holdings projetava as suas CPUs baseada em uma métrica que equilibrava 3 pilares: poder, desempenho e área (PPA). No entanto, o poder computacional de suas unidades era limitado, em vista da necessidade de manter baixos níveis de consumo energético, o qual é um requisito indispensável para os dispositivos móveis. Por isso para oferecer unidades realmente poderosas e capaz de rivalizar com o desempenho de CPUs para notebooks premium, a ARM resolveu desenvolver uma nova linha de processadores que rompe o equilíbrio destes 3 pilares, dando maior ênfase ao poder de processamento. Assim, nasce o ARM Cortex-X1!

Snapdragon 875: o primeiro SoC a receber uma CPU ARM Cortex-X1!

Baseado na arquitetura do Cortex-A78, o novo Cortex-X1 diferencia-se, por ser uma unidade superescalar de 5 vias (5-way), possui cache macro-OP (MOP) de 3K, busca de 5 instruções e 8 MOPs por ciclo e uma janela para receber instruções “fora-de-ordem” para 224 entradas. Só para ter idéia do aumento, o Cortex-A78 é uma unidade superescalar de “apenas” 4 vias (4-way), possui cache macro-OP de 1.6K, busca de 4 instruções e 6 MOPs por ciclo e uma janela para receber instruções para “apenas” 160 entradas. Graças a estas (e outras) especificações, o Cortex-X1 oferece até 30% a mais no desempenho, embora certamente aumente o consumo energético.

Há tempos, a Apple passou a desenvolver os seus próprios SoCs, baseados na arquitetura ARM e no set de instruções ARMv8, adquirindo da ARM Holdings as licenças necessárias para realizar as customizações. Estes SoCs, batizados de Bionic, têm melhorias focadas especificamente nos núcleos de execução, na decodificação de instruções e na memória cache. Com isto, ela consegue oferecer especificações técnicas que resultam nas unidades mais poderosas existentes do mercado, superando gigantes como a Qualcomm (Snapdragon), Samsung (Exynos) e a MediaTek (Helio).

Tal como a ARM, a Apple passou a desenvolver novos SoCs com ênfase na performance em detrimento dos demais parâmetros, com o objetivo de oferecer unidades computacionais poderosas o suficiente para equipar os PCs desktops e notebooks da empresa, rivalizar em desempenho com as unidades x86 mais poderosas do mercado e por fim, manter o consumo em limites aceitáveis, o suficiente para garantir muitas horas de autonomia e boa dissipação térmica.

Apple M1: detalhes do chip e seus módulos de memória RAM…

Assim, nasceu o Apple M1, um SoC baseado na litografia de 5nm, que oferece um arranjo de 8 CPUs, sendo 4 poderosas (Firestorm) e 4 de baixo consumo (Icestorm), baseado no design big.LITTLE. O SoC oferece integra o cache L1 independente de 192KB para instruções e 128KB para cache de dados, além do cache L2 compartilhado de 12 MB para os núcleos Firestorm; já para os núcleos Icestorm, o cache L1 independente oferece 128 KB para instruções e 64 KB para cache de dados, além do cache L2 compartilhado de 4 MB. Em termos de velocidade e consumo, os núcleos Firestorm rodam a 0.6~3.204 GHz e TDP de até 13.8W, ao passo que os núcleos Icestorm rodam a 0.6~2.064 GHz e TDP de apenas 1.3W. Números bastantes expressivos se comparados ao Cortex-X1, que apesar de oferecer memória cache em 3 níveis, estas estão “limitadas” a 64 KB, apesar de entregar 1 MB (independentes) e 8 MB (compartilhados) para as memórias caches de nível 2 e 3, respectivamente.

O Apple M1 utiliza um sistema de memória RAM unificada, o qual compartilha com todo o sistema (CPUs & IGPs) arranjos de 8 e 16 GB baseadas na tecnologia LPDDR4X, com frequência de 4.266 MHz. Já a sua unidade gráfica integrada oferece uma capacidade de cálculo de até 2.6 Teraflops, que apesar de não se equiparar as placas gráficas mais poderosas do mercado, consegue superar algumas VGAs antigas intermediárias, como a nVidia GTX 1050 Ti e a Radeon RX 560. De fato, são números memoráveis para um SoC que em tese, consome algo bem abaixo de 25 Watts!

Cenário atual e futuro…

Até então, não haviam muitas expectativas em relação a performance das CPUs ARM (e o novo SoC M1), por se basear em uma arquitetura de processadores na qual o seu principal diferencial é o baixo consumo (e não o desempenho). No entanto, os mais recentes lançamentos dos tablets iPad Pro fora muito bem avaliados pela excelente performance oferecida na execução de aplicações mais pesadas, gerando um certo otimismo por parte dos admiradores da maçã. Mas assim que os primeiros produtos chegaram ao mercado, como o MacBook Air e o Mac Mini, eles não só impressionaram por oferecer um desempenho equivalente (senão superior) aos processadores x86 mais poderosos, como também exibiram níveis de consumo extremamente baixos!

MacBook Air (2020): o primeiro portátil da empresa a receber o SoC Apple M1!

E o mais incrível: comparando os resultados dos softwares de benchmark rodando tanto em “modo nativo” (compilado para a arquitetura ARM) quanto em “modo emulado” (compilado para a arquitetura x86 e emulado), eles não tiveram grandes perdas em razão da tradução das instruções, feitas pelo emulador Rosetta. Este por sua vez, terá um papel fundamental para a migração da Apple da arquitetura x86 para a ARM e já desde o início vem fazendo um excelente trabalho, embora ainda algumas aplicações não funcionem corretamente. Certamente, mais ajustes serão feitos com o tempo, tornando aquilo que está muito bom em algo melhor ainda!

Através do SoC M1, a Apple mostrou ao mundo é perfeitamente possível dispor de PCs desktops, notebooks (e até mesmo consoles) de alto desempenho, através da utilização da arquitetura ARM. E com o lançamento do ARM Cortex-X1 (o seu principal “concorrente”), os demais fabricantes terão a oportunidade de lançar produtos que, apesar de não terem o mesmo impacto causado pelos novos MAC, certamente se mostrarão promissores. A plataforma ainda depende de um sistema operacional popular e naturalmente, a Microsoft irá preencher esta lacuna, ao disponibilizar versões do Windows compiladas para a arquitetura ARM. Por fim, novas aplicações nativas e otimizadas também surgirão, complementando todo este novo cenário na computação pessoal e profissional.

Só espero estar vivo (e lúcido) para ver estes dias… &;-D

Referências

2 thoughts on “Apple M1: o que esperar deste SoC revolucionário?”

  1. Excelente material de consumo e uma qualidade de pesquisa fantástica. Parabéns!

    Tenho visto o interesse cada vez menor do público técnico, inclusive meu, sobre as maravilhas da evolução tecnológica do hardware. Realmente, isso é para uma elite!

    Sinceramente, atualmente, não sei dizer nem quais são as CPU mais recentes da Intel e AMD, agora, pelo menos sei como a tecnologia “ARM” está no contexto. Muito bom ver conteúdo de qualidade como este.

    Uma dúvida me paira: ARM é, atualmente, 100% RISC ou segue um preceito parecido com X86, uma arquitetura híbrida com um µcore RISC e um middleware CISC, ou algo similar?

  2. Olá André, obrigado pelos elogios!

    O mais engraçado é “tentei” evitar muitas informações técnicas, para deixar o artigo mais fluído. Quanto a Intel, em breve teremos os Alder-Lakes no mercado, os quais trazem núcleos tradicionais (SunnyCores) e de baixo consumo (Tremont), baseados na concepção híbrida big.LITTLE. Quanto a ARM, acredito que ela seja 100% RISC (senão, já teria visto algum artigo sobre o assunto).

    Estamos aí! &;-D

Comments are closed.