Índice das dicas

O avanço do ARM: Cortex A8 e Cortex A5

Por Carlos E. Morimoto em 27 de outubro de 2009 às 05h00

14

Embora não sejam tão conhecidos, nem tão comentados, quanto o i7 ou o Atom, os processadores ARM são produzidos em volumes brutalmente maiores e usados em todo o tipo de dispositivos, de roteadores e modems ADSL a vídeo-games (como o Nintendo DS), celulares e smartphones. Basicamente, os processadores x86 são usados em PCs, notebooks e netbooks, enquanto os ARM são usados em praticamente todo o resto.

Diferente dos processadores x86, que são produzidos pela Intel e pela AMD (e em menor volume também pela VIA), os chips ARM não são produzidos por uma única empresa, mas sim licenciados e produzidos por diversos fabricantes.

A ARM Ltd., que é a responsável pelo desenvolvimento dos chips e detentora dos direitos sobre a arquitetura, não produz os processadores, se limitando a licenciar os projetos a preços módicos para outros fabricantes, que podem optar por diversos tipos de licença, incluindo opções que permitem modificar os chips e incluir componentes adicionais. Este é o caso de fabricantes como a QualComm, a Texas Instruments e a Samsung, que desenvolvem soluções próprias, incluindo controladores auxiliares e modificações diversas.

Os processadores ARM podem ser divididos em duas grandes famílias. A primeira é a dos chips ARM7, ARM9 e ARM11, que são mais antigos (embora sejam ainda os mais usados) e a linha Cortex, que representa a geração mais atual.

Os chips ARM11 são os usados na maioria dos smartphones atuais (praticamente todos os aparelhos com o Symbian ou o Windows Mobile lançados entre 2007 e 2009), enquanto os ARM9 e ARM7 são comuns em aparelhos mais simples e em produtos eletrônicos diversos. Eles são processadores de 32 bits muito baratos e fáceis de programar, o que oferece uma flexibilidade muito grande.

A família Cortex por sua vez é composta for três arquiteturas distintas. Na base da pirâmide temos os Cortex A5, que são chips simples e de baixo consumo, destinados a substituírem os ARM9 e ARM11 e aplicações diversas. Em seguida temos os Cortex A8, que são chips mais poderosos, destinados a smartphones e outros dispositivos móveis e os Cortex A9, que são chips multicore de alto desempenho. Falei brevemente sobre o Cortex A9 no livro de smartphones, vamos então ao A8 e ao A5, que serão utilizados em volumes muito maiores.

O Cortex A8 é o chip mainstream dentro da família. Ele é um processador dual-issue (duas unidades de processamento), que processa instruções em ordem (assim como o Intel Atom) e inclui um cache L1 de 64 KB, dividido em dois blocos de 32 KB (dados e instruções). Ele inclui também um grande (do ponto de vista de um chip para sistemas embarcados) cache L2 de 256 KB, que pode ser expandido para até 1 MB de acordo com o nível de desempenho desejado pelo fabricante.

O Cortex A8 incorporou também um pipeline de 13 estágios (contra os 8 estágios do ARM11), o que possibilita o uso de frequências de operação muito mais altas. Os chips produzidos usando uma técnica de 65 nm (como os usados no iPhone 3GS e no Nokia N900) operam na casa dos 600 MHz, mas dispositivos maiores (como no caso dos smartbooks) e também chips produzidos usando técnicas mais avançadas podem vir a operar em frequências muito mais altas, de até 1.0 GHz.

arm_html_19276b61

Em teoria, um SOC baseado no A8 não teria problemas para operar na casa dos 1.5 GHz, frequência na qual o desempenho seria competitivo em relação ao Intel Atom, mas isso resultaria em um consumo muito mais alto, inaceitável para um smartphone ou outro dispositivo portátil.

A grande vantagem do Cortex A8 sobre o ARM11 é o desempenho. Além de oferecer um desempenho por clock cerca de 60% superior (de até 2 DMIPS por MHz), ele é capaz de operar a frequências mais altas, o que faz com que o desempenho da maioria dos SOCs seja pelo menos duas vezes superior ao dos chips da geração anterior.
A grosso modo, poderíamos comparar o ARM11 com o 486 (que processava uma instrução por ciclo e estacionou na casa dos 100 MHz) e o Cortex A8 com o Pentium (que processava duas instruções por ciclo e chegou aos 200 MHz).

É possível também traçar um paralelo com o Atom, que (sendo baseado na arquitetura do Pentium 1) também processa duas instruções por ciclo e também usa um pipeline relativamente curto (para um processador x86), com 16 estágios. O Atom é capaz de operar a frequências mais altas que o Cortex A8, mas o desempenho por ciclo de clock não é muito diferente.

A grande questão é que o Atom consome quase 5 vezes mais energia que um Cortex A8 do mesmo clock. Se levarmos em conta o consumo total da plataforma (processador, chipset e outros circuitos de apoio) o Atom se torna ainda menos competitivo, já que o chipset 945GSE/ICH7M da plataforma Diamondville é terrivelmente ineficiente.

Um exemplo de SOC baseado no Cortex A8 é o TI OMAP 3430, que é o usado no Nokia N900 e no Palm Pre. Ele é um chip produzido usando uma técnica de 65 nm, que inclui também uma GPU PowerVR SGX 530, um acelerador de vídeo IVA 2+ e um chip ISP, juntamente com todas as interfaces de praxe:

arm_html_48f1bd2b

O PowerVR SGX 530 é um chipset 3D relativamente poderoso, que inclui uma unidade programável para o processamento de shaders, batizada de USSE. Operando a 200 MHz, ele oferece um fill-rate de 250 megapixels, o que equivale à quase metade do poder de processamento de uma GeForce 6200, porém com um consumo elétrico ridiculamente baixo.

Ele é descendente do Kyro II, que concorreu com as GeForce 2 MX no início do milênio e, assim como ele, faz uso do tile-based rendering, para minimizar o uso de processamento e texturas, renderizando apenas os polígonos visíveis dentro de cada frame.

Embora a arquitetura não tenha feito muito sucesso nos PCs (onde perdeu para a força bruta das GPUs da nVidia e da ATI), o Power SGX acabou encontrando um bom nicho nos dispositivos móveis, onde o bom nível de eficiência oferece a possibilidade de desenvolver títulos 3D com gráficos complexos sem comprometer a autonomia das baterias. Um bom exemplo são os jogos 3D do iPhone 3GS, que também é baseado nele:

arm_html_4886112e

Diferente dos jogos para PC, que utilizam primariamente o DirectX 9.0c, os jogos 3D móveis são baseados no OpenGL ES 2.0. Os dois grandes motivos são a ausência de uma versão do DirectX para processadores ARM e o simples fato de que o OpenGL permite a criação de código muito bem otimizado, o que resulta em um melhor desempenho e uma melhor autonomia das baterias.

O Cortex A8 é eficiente também na decodificação de vídeos. Ele é capaz de decodificar vídeos VGA codificados em H.264 operando a apenas 350 MHz. No caso do TI OMAP 3430 ele faz par com um chip acelerador IVA 2+, que é capaz de decodificar vídeos H.264 ou MPEG4 a 720x480 e 25 a 30 FPS (qualidade de DVD), o que não apenas permite assistir vídeos não-HD sem precisar primeiro convertê-los usando o PC, mas fazê-lo sem comprometer a autonomia das baterias.

Graças à técnica de fabricação de 65 nm, os chips Cortex A8 são mais eficientes que os antigos ARM11 (90 nm), demandando menos energia para executarem o mesmo volume de operações. O sistema de gerenciamento de energia é também mais eficiente, fazendo com que o consumo elétrico quando o processador ocioso seja de apenas alguns miliwatts, praticamente insignificante.

O grande problema é que com um sistema mais rápido você tende a fazer mais coisas (navegar em mais páginas, deixar mais aplicativos carregados em segundo plano, etc.) o que faz com que no final o consumo elétrico total acabe sendo maior. Isso explica o fato de muitos dos smartphones baseados no A8 oferecerem uma autonomia longe do ideal, obrigando o dono a recarregar todas as noites.

Em seguida temos o Cortex A5, que é o caçula da família. Como a numeração sugere, ele é um processador de baixo custo e baixo consumo, destinado a substituir os chips ARM9 e ARM11 nos dispositivos mais simples. Ele pode abrir as portas para a criação de smartphones de baixo custo ou de aparelhos com uma autonomia muito maior, além de ser uma opção ao uso do Cortex A8 e A9 em smartbooks e players de mídia low-end.

Do ponto de vista da arquitetura, ele é basicamente uma versão reduzida do Cortex A8, que mantém o mesmo conjunto de instruções, mas adota uma arquitetura mais simples, baseada em uma única unidade de processamento (single-issue), com um pipeline muito mais curto, de apenas 8 estágios. Essa mudança faz com que ele não seja capaz de atingir frequências de clock tão altas, mas em compensação seja muito menor e ofereça um consumo elétrico por ciclo muito mais baixo.

arm_html_7bbba1e4

O Cortex A5 mantém o cache L1 de 64 KB (dois blocos de 32 KB para dados e instruções), mas abandona o uso do cache L2, já que o ganho de desempenho não compensaria o aumento no tamanho do chip. Por ser um processador single-issue e com um pipeline curto, o Cortex A5 não é tão dependente do cache quanto os dois irmãos mais velhos e a ideia central da arquitetura é justamente manter a simplicidade. Vale lembrar que os processadores ARM9 e ARM11 também não utilizam cache L2 e isso não compromete o desempenho.

Além de ser produzido em versões single-core, o A5 suporta também o uso de 2, 3 ou 4 núcleos (a escolha fica por conta do fabricante), o que o torna uma forte opção de processador multicore para smartphones, já que é menor e mais econômico que o Cortex A9.

Produzido usando uma técnica de 40 nm, cada Cortex A5 ocupa uma área de apenas 0.9 mm² (incluindo os 64 KB de cache L1), o que é menos de 4% do tamanho do Atom de 45 nm (com seus 25 mm²). Mesmo uma versão quad-core do A5 ocuparia apenas 6 mm² (incluindo os circuitos de apoio adicionais), o que seria ainda apenas um quarto da área do Atom. Uma área menor significa processadores mais baratos e mais espaço para incluir aceleradores e outros componentes diversos, resultando em SOCs mais completos.

Os processadores Cortex A9 (e mesmo as versões quad-core do A5) oferecem um desempenho por clock bastante competitivo em relação ao Atom. Entretanto, existe uma grande barreira com relação à adoção deles em computadores pessoais, que são os sistemas operacionais.

Não é segredo para ninguém que apesar do Linux vir lentamente crescendo em volume de usuários ao longo dos anos, o sistema operacional mais usado em micros PC é o Windows, que não possui uma versão para processadores ARM. A Microsoft oferece apenas o Windows Mobile, que é muito limitado e possui um conjunto reduzido de softwares.

Com isso, quase todos os projetos de smartbooks, tablets e outros dispositivos baseados em processadores ARM tem sido baseados no Linux, que possui um port ARM bastante completo. Dois bons exemplos são os tablets da Nokia (N770, N800 e N810, juntamente com o N900, que virou smartphone), que são são baseados no Maemo e os diversos dispositivos baseados no Android.

Eles oferecem bons recursos de navegação web, leitores de PDF, organizadores pessoais, players de mídia, jogos e outras funções, mas naturalmente não são capazes de rodar o AutoCAD ou o Photoshop (ou mesmo distribuições Linux regulares, compiladas para processadores x86), o que cria uma divisão clara entre a plataforma ARM e a plataforma PC e impede uma competição mais direta entre as duas.

Um fabricante poderia criar um mini-notebook ou até mesmo um mini-desktop baseado em um processador Cortex A9 quad-core, equipá-lo com 1 GB de RAM e um HD de 250 GB e um LCD de 15 polegadas, mas o fato de a base de softwares ser completamente diferente tornaria muito difícil vendê-lo.

Em vez disso, os fabricantes têm optado por utilizar os chips ARM em dispositivos de acesso à web (smartphones, smartbooks, etc.) e em dispositivos especializados, como Media Centers, atacando algumas áreas que são território dos PCs, mas sem competir com eles diretamente.

Entretanto, as coisas podem começar a esquentar caso alguma empresa desenvolva um sistema operacional para desktops ARM baseado em Linux (como no caso do port do Ubuntu para ARM ou o Maemo) que seja bem aceito pelo público, permitindo que empresas criem "PCs" baseados em processadores ARM e concorram mais abertamente com os processadores x86.

14 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 12h35

Comentários

 
por Hamilton Vera (anônimo) em 28 de janeiro de 2010 às 11h48
Processadores ARMs são utilizados no mercado há muito tempo, 90% dos celulares é ARM fora os outros dispositovos como GPS,Modems,etc.

Linux vs Microsoft não afeta o mercado para ARM já que temos sistemas para ARM tanto em Linux como Microsoft.

[]'s

Hamilton Vera
 
por Rafael (anônimo) em 30 de novembro de 2009 às 09h32
Um sistema interessante para ARM seria o Chrome OS, com o poder da Google não seria dificil tornar estes SoC's populares e bastante competitivos.
 
por alejandro Pinto (anônimo) em 3 de novembro de 2009 às 19h57
Mais uma vez obrigado pela resposta Tiago.
 
por ThiagoLCK (anônimo) em 2 de novembro de 2009 às 23h36
Ah, para os que não gostam da linda nomenclatura da IBM/Freescale e preferem a monstruosidade da Apple :)... MCP755 é o G3.
 
por ThiagoLCK (anônimo) em 2 de novembro de 2009 às 23h29
http://en.wikipedia.org/wiki/BiiN
http://www.globalsecurity.org/military/systems/aircraft/f-22-avionics.htm

Só para dar uma idéia. Obviamente, os aviões comerciais tem sistemas bem menos impressionantes, embora às vezes mais modernos: o F-22 é uma monstruosidade tecnológica, mas ainda é um avião militar, com todas as implicações disso.

Por exemplo, se considerarmos os números acima como o melhor caso (e a Raytheon não é burra), então meu computador tem mais de 3 vezes mais memória e é apenas duas vezes mais lento... e trata-se de um Sempron Mobile 3400+ com 1 GiB de RAM. E o F-22 gasta muito mais espaço, dinheiro e energia que meu note em aviônica...

Mas, respondendo sua pergunta, parece que a Airbus usa PowerPC MCP755 para o controle geral, DSPs da TI para funções de processamento de sinais e processadores x86 da Intel para o cockpit e interface.
 
por alejandro Pinto (anônimo) em 31 de outubro de 2009 às 14h01
obrigado pela resposta tiago, mas não deixa de ser interessante como um dos símbolos da tecnologia como 1 avião, exemplo: airbus com o seu fly by wire, ainda utilize uma arquitectura de processador antiga.
 
por Franklin' (anônimo) em 29 de outubro de 2009 às 13h34
Mesmo se eles criarem um sistema operacional Linux para a plataforma ARM em PCs, ainda vai ser muito difícil a popularização desses processadores, devido à grande fama do Windows que é baseado nos processadores x86, mas se a Microsoft se interessar em desenvolver um Windows para os processadores ARM, aí é que vamos ter uma super guerra.
 
por ThiagoLCK (anônimo) em 29 de outubro de 2009 às 08h58
Alejandro, ao que eu saiba os PowerPCs são usados em eletrônica automotiva, então talvez isso te ajude... para aplicações militares eu sei que os equipamentos são relativamente antigos, PowerPCs hardened ou alguma arquitetura antiga X (o F-22, por exemplo, usa uma variante inicial de RISC similar a i960).

O domínio maior dos ARMs é eletrônica de consumo, em outras áreas eles ainda tem que entrar com força. É para isso que servem os Cortex, na verdade... o série A vão manter o domínio dos celulares ao mesmo tempo que permitem o uso em dispositivos maiores, enquanto os série M irão atacar o mercado automotivo da PowerPC e os softcores MIPS-like.

Marcos, as implementações atuais da x86 são os processadores de propósito geral mais rápidos do mundo. A única competição de verdade deles é dos POWERs, mas eles são de outro mercado bem diferente. A IA-64 é uma das poucas arquiteturas modernas que consegue arriscar ser mais mal-feita do que a x86. A SPARC é um dos piores RISC tradicionais do mercado, e as implementações ou são apenas razoáveis em performance ou nem são processadores realmente de uso geral.

O A9 ainda não é de uso geral, mas a tendência é que quando ele entrar o A8 suma do mercado. Na verdade, o A9 apresenta maior eficiência sem perder muito em área ou consumo, e tem uma pequena vantagem em flexibilidade com a opção multinuclear.

Existem duas opções, a MPCore que tem suporte a mais de um núcleo e a convencional. Eu duvido que usem mesmo a MPCore, mas a tendência é que licenciem ela mesmo, por segurança e também porque normalmente o subsistema de memória dos ARMs MP é melhor.

Eu acho muito difícil que usem A5 em netbooks, mesmo em quadcore ele ainda deve ser inferior ao A9 equivalente, isso com um modelo de programação MUITO pior.

"obrigando o dono a recarregar todas as noites."

Qual o problema com isso?
 
por alejandro Pinto (anônimo) em 28 de outubro de 2009 às 19h38
os processadores arm são também utilizados na eletrónica dos aviões? ou existirá outra arquitectura de processadores para a eletrónica deles?
 
por DivisionByZero (anônimo) em 27 de outubro de 2009 às 23h53
Fiquei impressionado pela qualidade do carro no jogo do iPhone, os gráficos me parecem excelentes.Acharia o muito bom um smartphone que fosse possível usar como um desktop.