Hoje em dia, estamos assistindo à migração dos ARM Cortex A8 para os Cortex A9 dual-core nos smartphones, bem como em outros dispositivos. Dentro de mais alguns anos, assistiremos a uma migração dos SoCs Cortex A9 para os Cortex A15, um design muito mais poderoso, mas também maior e mais gastador.
Em resumo, a ARM está aumentando o desempenho dos chips, se aproximando do desempenho de processadores x86 low-end, mas em troca está produzindo designs mais complexos e mais gastadores, o que poderia colocar tudo a perder. É aí que entra o Cortex A7, que além de oferecer uma opção aos ARM11 e Cortex A8 nos SoCs low-end, oferece uma solução para o excessivo consumo de energia nos SoCs multi-core baseados no A9 e A15.
O Cortex A7 é um chip simples, que processa instruções em ordem, utilizando um pipeline de 8 estágios. Caso fabricado em um processo de 28nm, ele ocuparia apenas 0.5 mm² do waffer, menos de metade da área ocupada por um único Cortex A8 (produzido usando uma técnica equivalente) e centenas de vezes menos que um chip x86. Entretanto, devido ao uso de diversas otimizações, tudo indica que ele será capaz de oferecer um desempenho por clock similar ao do Cortex A8, porém operando a frequências mais altas e consumindo menos energia.
Se comparado ao Cortex A8, o A7 peca por oferecer uma arquitetura dual-issue parcial, onde o chip é capaz de processar duas instruções por ciclo, com exceção de instruções NEON e de FPU, que são processadas a um ritmo de uma instrução por ciclo. Em compensação, ele possui apenas 8 estágios (contra os 13 do Cortex A8), oferece um algoritmo de branch-prediction aprimorado, um cache L2 de baixa latência (apenas 10 ciclos), oferece uma FPU pipelinezada e possui pouco mais da metade do número de transístores do Cortex A8, o que combinado com as técnicas de produção de 40 ou 28nm que serão empregadas na fabricação dos chips oferecerá um consumo muito mais baixo e será capaz de operar na casa dos 1.5 GHz, oferecendo um desempenho que superará e muito o de qualquer SoC Cortex A8 atualmente no mercado. A ARM pretende inundar o mercado de smartphones low-end e mid-range com estes chips, possibilitando o desenvolvimento de aparelhos na casa dos US$ 100 com um desempenho similar ou superior ao dos mid-range atuais.
Mais importante do que o uso do Cortex A7 como substituto dos ARM11 e Cortex A8 no mercado low-end e mainstream é a possibilidade de usá-lo como processador de tempo ocioso em SoCs com vários núcleos Cortex A8 e A15, reduzindo consideravelmente o consumo dos chips de alto desempenho.
A ideia de usar um processador de tempo ocioso segue uma ideia simples: em vez de manter um dos núcleos A9 ou A15 ativo todo o tempo para processar notificações e outras pequenas tarefas enquanto o sistema está ocioso, o fabricante inclui um núcleo extra menor, que se encarrega destas tarefas, permitindo que os primos maiores durmam.
Um exemplo deste tipo de implementação é o nVidia Tegra 3, que utilizará 5 núcleos Cortex A9. Quatro deles são processadores regulares, destinados às tarefas de alto desempenho, enquanto o quinto é um chip produzindo usando transístores LP, que opera a frequências mais baixas e oferece um desempenho inferior, mas oferece um consumo muito mais baixo. Sempre que o SOC está ocioso, os quatro núcleos principais e apenas o quinto fica ativo, e quando mais desempenho é exigido o core LP é automaticamente desligado e de 1 a 4 dos núcleos principais são ativados para executarem o trabalho:
Este design utilizado pela nVidia no Tegra 3 realmente oferece uma redução significativa no consumo médio, mas por outro lado ela é cara, já que é necessário adicionar um quinto núcleo A9 completo no SoC, sem que isso resulte em melhorias de desempenho.
A ARM planeja que designs similares a este sejam usados em todos os SoCs multi-core de alto desempenho, porém utilizando um núcleo Cortex A7 como chip de tempo ocioso. Isso oferece uma série de vantagens, já que o A7 é um núcleo muito pequeno (que pode ser incluído sem aumentar significativamente o custo dos SoCs) e que oferece um consumo muito mais baixo que um Cortex A9 com transístores LP.
Mesmo com o baixo consumo, o desempenho do A7 é bastante respeitável, superior ao de muitos dos SoCs usados atualmente, o que permitirá que os núcleos maiores continuem ociosos mesmo ao acessar funções da interface, ler e-mails e executar tarefas leves em geral.
O Cortex A7 é inteiramente compatível com o A9 e o A15 em relação ao conjunto de instruções, o que permite que aplicativos rodando em qualquer um dos cores sejam migrados de forma transparente para o A7.
É possível também combinar vários núcleos Cortex A7, de acordo com a tarefa. Neste slide da ARM, por exemplo, temos uma configuração onde dois núcleos A15 fazem par com dois A7, permitindo que o firmware chaveie entre os pares de acordo com o nível de desempenho exigido:
Um controlador adicional, combinado com um barramento de dados rápido batizado de CCI-400 se encarrega de manter a coerência entre os caches dos dois pares de chips, assegurando que os dados sejam consistentes e o firmware possa realizar o chaveamento de forma transparente a qualquer instante. Outra configuração popular serão SoCs com 5 cores, sendo 4 cores A15 e um A7, similar ao que temos no Tegra 3.
Este tipo de configuração, batizada pela ARM de Big.little junta as vantagens dos SoCs single-core e multi-core, oferecendo uma combinação que consome tanto quanto um SoC low-end em tarefas leves e ao mesmo tempo o desempenho de um SoC quad-core high-end quando ele é necessário.
Por enquanto o Cortex A7 é apenas uma promessa, já que embora o IP já esteja disponível para o uso dos parceiros, os primeiros SoCs baseados nele não devem chegar ao mercado antes da segunda metade de 2012, já que os novos projetos precisarão passar por todas as etapas de projeto e produção dos fabricantes. Quando eles finalmente saírem da forja, teremos mais 3 a 6 meses até que os primeiros aparelhos baseados neles cheguem ao mercado. Apesar disso, o Cortex A7 é um lançamento que vale à pena acompanhar pelo potencial de mudança que carrega.
Deixe seu comentário