Processador OctaCore: Quando 4 + 4 Nem Sempre é Igual a Oito

11/05/2013 13:03

Não me extenderei falando sobre o processador quad core Snapdragon 600 de 1,9 GHz da Qualcomm que em alguns aspectos tem a sua arquitetura semelhante ao Cortex ARM A15 porém sacrificando algum grau de performance (muito pouco diga-se de passagem) visando a aeconomia de energia.

Vamos falar sobre o tão comentado processador octa core Exynos 5410 Octa que na verdade é uma combinação de uma unidade quad core ARM Cortex A15 (voltado para alta performance e menos voltado para a economia de energia) e uma unidade quad core Cortex ARM A7 (destinado a melhor economia de energia). E como o próprio nome diz, foi criado pela ARM e não pela Samsung (só para deixar tudo bem claro).

O resultado pode ser analisado em dois parâmetros: IPC (Instrucitons per clock) e Perf/W (Performance per Watt). Com relação ao IPC, o Cortex ARM A15 lidera o grupo, seguido pelos núcleos de processamento  Qualcomm Krait 400, Qualcomm Krait 300, Qualcomm Krait 200, Cortex ARM A9, Cortex ARM A7 e Cortex ARM A8. Em termos de Perf/W, o cortex ARM A7 sai na frente, seguido do Cortex ARM A9 e pelos núcleos Qualcomm Krait. O cortex ARM A15 fica bem distante no ranking em termos de eficiência.

Eles trabalham da seguinte forma: quando o usuário faz uso mais leve do aparelho, a unidade formada pelo cortex ARM A7 fica em atividade, mas quando algo mais pesado é requerido, a unidade Cortex ARM A15 passa a ser ativada. Mas isso só dura quando a exigência é por um curto período de tempo (o que se considera um pequeno período não sei, mas é assim que a Samsung explica o funcionamento, sem muitos detalhes).

Afinal, o processador do Galaxy S4 é um octa-core de verdade?

Quando um trabalho mais intenso é requerido por um período maior de tempo e o sistema percebe que o consumo de energia vai ser maior, o núcleo formado pelo Cortex ARM A7 fica em standby e permanece ativo apenas o núcleo mais potente formado pelo o Cortex ARM A15. Em outras palavras, nem sempre os dois núcelos permanecerão ativos ao mesmo tempo. Desta forma o Samsung Galaxy S4 é um aparelho com processador octa core, mas nem sempre trabalha com os 8 cores ao mesmo tempo (embora isso seja sim possível).

Oficialmente o núcleo A7 está configurado para rodar a 200 até 1200 MHz e o núcleo A15 de 200 a 1600 MHz. O uso está limitado puramente pelo software, já que a configuração do hardware é completamente flexível.

Os núcleos do Cortex ARM A15 são pareados com os clusters principais do Cortex ARM A7, ou seja cada A15 tem um correspondente A7. Os In-Kernel Switcher (neste caso um driver muito simples que mede a carga e atua como um CPU governor - sabe os "governor" existentes em alguns kernel? Então...). Porém este IKS em vez de mudar a frequência do CPU dependendo da demanda, ele irá alternar entre os CPUs. Genial não?

Dissemos há uns dois parágrafos acima que os grupos quad core podem trabalhar juntos se for necessário. Este é um modo de funcionamento muito mais complexo, e a sua aplicação também é mais sofisticado. Ela exige que o scheduler do Kernel seja capaz de diferenciação entre os cores A7 e A15. Infelizmente o Kernel Linux ainda não é capaz de fazer isso e trata todas as CPUs como iguais. Este é um problema, já que não queremos utilizar os núcleos A15 quando uma tarefa pode ser processada em um núcleo A7 com um custo de energia muito menor.

O Grupo Linaro concluiu a primeira implementação do projeto Heterogeneous Multi-Processing (HMP) como uma série de correções a serem aplicadas ao Kernel Linux 3.8. O que eles fizeram foi criar um scheduler inteligente o suficiente para controlar a carga de grupos de processos individuais e com essa informação integrar de forma inteligente ambos os cores A7 e A15. Isso permite uma latência muito menor em termos de comutação de carga de trabalho,

Você pode acompanhar os avanços deste nas publicações da Linaro Connect que acontecem a cada poucos meses. O código só foi publicado em meados de fevereiro deste ano para a primeira implementação de trabalho equivalente no consumo de energia para as IKS.