Cortex A9: a era multi-core

 

Em seguida temos o Cortex A9, que é uma versão multicore do A8, capaz de oferecer um desempenho bruto superior ao de muitos processadores para PC. Além do suporte a multiprocessamento, permitindo o desenvolvimento de SoCs com 2, 4 ou mais núcleos (como no caso do Tegra 3, que utiliza 5 núcleos, sendo o último reservado para os estados de baixo consumo), o Cortex A9 é o primeiro chip ARM a utilizar um design de processamento fora de ordem, mantendo as duas unidades de execução do A8, mas agora incluindo um ordenador de instruções, circuitos de execução especulativa e outros componentes tipicamente encontrados nos processadores x86 modernos. Ele mantém os 64 KB de cache L1 do Cortex A8 (32 KB para dados e 32 KB para instruções), e oferece a possibilidade de uso de 256 KB a 8 MB (a maioria dos fabricantes optam por 512 KB a 1 MB) de cache L2, compartilhado entre todos os núcleos

A adoção do processamento fora de ordem melhorou consideravelmente o desempenho do Cortex A9, permitindo que o chip ofereça até 2.5 DMIPS por MHz, cerca de 25% mais desempenho bruto que um Cortex A8 do mesmo clock. O grande problema é que um volume tão grande de circuitos adicionais, aumentou consideravelmente o desempenho do chip, o que levou a ARM a reduzir o número de estágios de pipeline em relação ao Cortex A8, indo de 13 para apenas 8 estágios.

Com menos estágios de pipeline, chegaram a um chip bastante eficiente, que oferece um consumo similar, ou até mesmo um pouco inferior a um Cortex A8 do mesmo clock. Naturalmente, combinando 2 ou 4 processadores Cortex A9 no mesmo chip chegamos a um SoC que pode ser mais gastador, mas em uma comparação direta o Cortex A9 oferece apenas vantagens sobre o antecessor.

Normalmente, reduzir tão dramaticamente o número de estágios de pipeline reduziria bastante as frequências de operação suportadas, gerando um chip mais econômico, porém incapaz de operar a frequências tão altas quanto o antecessor. A questão central é que o clock do A8 era muito mais limitado pelo consumo do chip do que pelo número de estágios de pipeline, de forma que ao combinar o número reduzido de estágios com novas técnicas de produção, a ARM chegou a um chip capaz de, na prática, operar a frequências equivalentes, ou em muitos casos até superiores à geração anterior.

Enquanto a maioria dos SoCs single-core baseados no A8 estacionaram na casa dos 600 MHz nos 65 nm e 1.2 GHz nos 45 nm, os SoCs dual-core baseados no A9 chegaram ao mercado operando a 1.0 GHz e logo avançaram para 1.2 e 1.4 GHz, atingindo frequências equivalentes à da geração anterior. Como um SoC Cortex A9 dual-core oferece um desempenho bruto cerca de 2.5x superior a um Cortex A8 single-core, tivemos um ganho notável de poder de processamento, mesmo sendo mantida a mesma técnica de fabricação.

Um bom exemplo de SoC dual-core baseado no A9 é o nVidia Tegra 2, um SoC produzido em uma técnica de 40 nm, que combina dois Cortex A9 com uma GPU e outros componentes desenvolvidos pela própria nVidia:

Você pode notar que os dois A9’s ocupam um espaço pequeno dentro do SoC, com a maior parte do espaço sendo reservado aos caches, à GPU e o decodificador de vídeo, combinado com outros componentes, em especial o Image Signal Processor (ISP), responsável por processar as imagens e vídeos capturados pela câmera. Pode parecer desproporcional que um componente relativamente simples, como o ISP consuma quase tanto espaço no SoC quando os dois processadores, mas a verdade é que o trabalho executado por esses componentes especializados é indispensável, primeiro pelo fato de eles executarem tarefas que nem mesmo 4 núcleos Cortex A9 seriam capazes de realizar (devido a executarem o trabalho diretamente via hardware, de forma muito mais eficiente do que qualquer processador de propósito geral poderia realizar) e segundo pelo fato de eles fazerem isso consumindo muito menos energia. Estes tantos componentes especializados são os grandes responsáveis por termos smartphones capazes de gravar vídeos 1080p e exibi-los através da porta HDMI, bem como rodar jogos 3D com gráficos avançados, mas em compensação pagamos por eles na forma de espaço ocupado dentro do SoC.

Assim como outros SoCs atuais, o Tegra 2 é construído em duas etapas. Na primeira etapa são produzidos apenas os dois núcleos Cortex A9 usando uma técnica de produção de uso geral (G), que permite construir transistores de chaveamento rápido mas que em troca resulta em componentes que consomem muita energia. Todo o restante do SoC, incluindo a GPU e os componentes dedicados são produzidos usando uma técnica de baixo consumo (LP), que resulta em transistores bem mais econômicos, mas que possuem um chaveamento muito mais lento. Como resultado, temos os dos processadores operando a 1.0 GHz e todo o restante do chip, incluindo a GPU, operando a apenas 300 MHz, o que permite manter o consumo total do SoC sob controle, apesar de todas as funções oferecidas.

Continuando, logo surgiram também SoCs quad-core, como o Exynos quad e o Tegra 3, que dobraram o poder bruto de processamento, em troca de uma pequena redução na frequência de clock. Assim como nos chips para desktops, a migração dos 2 para 4 núcleos nem sempre é sentida muito diretamente, dependendo da otimização dos softwares e de otimizações por parte do sistema operacional. De uma forma geral, sente-se um ganho de responsividade mais direto nos aparelhos com o Android, já que ao contrário do iOS o sistema não prioriza muito diretamente o processamento da interface, fazendo com que o sistema pareça lento e irresponsível quando outras tarefas estão sendo executadas em segundo plano. Com 4 núcleos, isso acontece bem mais raramente.

Exemplos de SoCs quad-core baseados no Cortex A9 são o Tegra 3 (produzido numa técnica de 40 nm) e o Exynos 4412 Quad, produzido usando uma técnica de 32 nm.

O Tegra 3 utiliza um layout peculiar, incluindo um quinto núcleo, produzido usando transistores de chaveamento lento, que opera a um clock mais baixo que os demais (consumindo muito menos energia) e é usado como um chip de stand-by, ficando ativo apenas em situações de baixa demanda, onde os outros 4 núcleos ficam desativados:

Os 5 núcleos são os blocos mais claros, destacados no centro da imagem. Veja que mesmo combinados os núcleos não representam uma parcela muito grande do SoC, com a maior parte do espaço continuando a ser ocupado pelos demais componentes. Na verdade, incluir 4 ou 8 ou 16 núcleos no mesmo SoC não é um desafio técnico muito grande. A grande dificuldade é como fazer isso mantendo todos os outros componentes e sem acabar com um SoC gastador demais para qualquer uso prático em mãos.

Colocar um processador com 4 núcleos em um smartphone ou outros aparelhos, cujo consumo elétrico é severamente limitado pela bateria, pode parecer uma ideia bastante questionável à primeira vista, mas, na prática, não é tão ruim assim. A principal questão é que, assim como outros processadores ARM, o A9 inclui um sistema de gerenciamento de energia bastante eficiente, que permite que o processador seja capaz de ativar e desativar as unidades de execução de acordo com a demanda. A frequência de operação de cada um dos núcleos pode também ser ajustada conforme o volume de carga, de forma que, na prática, o consumo elétrico do SoC pode ser ajustado de maneira bastante eficiente, de acordo com o uso. Em um projeto bem desenvolvido, o SoC ficaria com apenas um dos núcleos ativado na maior parte do tempo, com os outros sendo ativados apenas quando vários aplicativos fossem usados simultaneamente, ou em tarefas específicas, como em jogos capazes de tirar proveito dos vários núcleos.

A principal vantagem de um aparelho com vários núcleos, é a possibilidade de realizar mais do que uma tarefa sem que ele engasgue. Você poderia chavear para o navegador para verificar alguma coisa rápida, sem que o som do vídeo que estava assistindo (e que continua sendo processado em segundo plano) comece a engasgar enquanto o navegador monta as páginas, por exemplo.

Teoricamente, algumas tarefas podem ser executadas usando menos energia em um processador com vários núcleos, já que um processador com 4 núcleos operando a 1.0 GHz pode utilizar uma tensão mais baixa e, assim, consumir menos energia que um processador com apenas um núcleo operando a 2.0 GHz, por exemplo. Naturalmente, o inverso também pode ocorrer, já que bugs e softwares em loop podem fazer com que os 4 cores passem a operar na frequência máxima, acabando rapidamente com a carga da bateria. Todos estes fatores acentuam a necessidade de fazer um projeto bem feito. 

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X