UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL
DCEEng
DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS
CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
COMPARAÇÃO DE DESEMPENHO DE PROCESSADORES ARM X
i386
Filipe Augusto Graeff
Panambi, RS - Brasil 2016
Filipe Augusto Graeff
COMPARAÇÃO DE DESEMPENHO DE PROCESSADORES ARM X i386
Trabalho de Conclusão de Curso apresentado ao Curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para a obtenção do título Bacharel em Ciência da Computação.
Orientador: Dsc. Edson Luiz Padoin
Panambi– RS 2016
COMPARAÇÃO DE DESEMPENHO DE PROCESSADORES ARM X
i386
Trabalho de Conclusão de Curso apresentado ao Curso de Ciência da Computação do Departamento de Ciências Exatas e Engenharias (DCEEng), da Universidade Regional do Noroeste do Estado do Rio Grande do Sul (UNIJUÍ), como requisito para a obtenção do título Bacharel em Ciência da Computação.
_________________________________ Orientador: Dsc. Edson Luiz Padoin
_________________________________ Prof. Msc. Romário Lopes Alcântara
Panambi-RS 2016
“Dedico este trabalho a Deus e a
minha família que sempre
Agradeço primeiramente a Deus, pois sem ele não somos ninguém, agradeço aos meus pais por sempre estarem ao meu lado, aos meus professores pelos seus ensinamentos aos meus colegas que estiveram junto nesta caminhada e a todos que de alguma forma ou outra estiveram comigo nestes anos até aqui.
Atualmente o grande consumo de energia dos processadores de computadores vem se tornando um assunto muito comentado mundialmente, quase não havendo alternativas de processadores econômicos e de bom desempenho. Os processadores da arquitetura ARM aparecem com novas tecnologias que prometem melhorar a eficiência de consumo, como vem fazendo em dispositivos móveis, mas fica a dúvida se seria capaz de atender o desempenho exigido em equipamentos maiores. Por tanto este trabalho tem o objetivo de analisar a performance e consumo energético dos processadores da arquitetura ARM e i386, e através dos resultados obtidos, comparar a performance e o consumo de energia das arquiteturas, analisando a eficiência de ambos.
Currently the large energy consumption of computer processors has become a much discussed topic worldwide, with almost no alternative economic processors and good performance. The ARM architecture processors appear with new technologies that promise to improve fuel efficiency, as it has done on mobile devices, but the question is whether it would be able to meet the required performance in larger equipment. Therefore, this work aims to analyze the performance and energy consumption of the ARM architecture processors and i386, and by the results, compare the performance and energy consumption of architectures, analyzing the efficiency of both.
AMD Advanced Micro Devices
ARM Advanced RISC Machines
CISC Complex Instruction Set Computer
DDR DFT
Double Data Rate
Discrete Fourier Transform
DSPs Digital Signal Processors
GHz GigaHertz
GRIDRS Grade Regional de Alto
desempenho do Rio Grande do Sul
HP Hewlett Packard
IBM International Business Machine
ISA Industry Standart Architeture
LPAE Large Physical Address Extensions
MHz MegaHertz
MIPS Milhões de Instruções Por Segundo
MPCore Multiple Processor Core
MPSoC MultiProcessor System on Chip
MW MegaWatt
NAS NASA Advanced Supercomputing
NASA National Aeronautics and Space
Administration NPB
NM
NAS Parallel Benchmark Nanômetro
PTM Programa de Rastreamento de
RISC Reduced Instruction Set Computer
SCU Snoop Control Unit
SoCs System on Chips
SO Sistema Operacional
Figura 1– Histórico ARM
Figura 2– Arquitetura Multicore Cortex-A7 Figura 3– Arquitetura Cortex-A8
Figura 4– Estrutura do Cortex-A9 Figura 5– Estrutura do Cortex-A15
Figura 6– Comparativo Cortex-A35 x Cortex-A7 Figura 7– Estrutura do Cortex-A35
Figura 8– Cortex-A57 Performance Relativa para o Cortex-A15 Figura 9– Estrutura do Cortex-A57
Figura 10– Comparativo de Performance e Redução de Energia Cortex-A72 Figura 11– Estrutura do Cortex-A72
Figura 12– Pontos de Atuação dos Processadores Big.LITTLE Figura 13– Equipamento Samsung RF511
Figura 14– CubieTruck
Figura 15– Tela Phoronix Test Suite Figura 16– Seleção de Teste
Tabela 1 – Características das Famílias ARM Tabela 2 – Histórico das Arquiteturas ARM
Tabela 3 – Especificações dos Processadores Pesquisados Tabela 4 – Especificações dos Equipamentos
Tabela 5 – Resultados de Performance e Tempo ARM Tabela 6 – Consumo de Energia INTEL
Gráfico 1 – Resultados de Performance INTEL Gráfico 2 – Resultados de Tempo INTEL Gráfico 3 – Resultados de Performance ARM Gráfico 4 – Resultados de Tempo ARM
Gráfico 5 – Comparação de Performance INTEL x ARM Gráfico 6 – Comparação de Tempo INTEL x ARM Gráfico 7– Consumo de Energia INTEL
Gráfico 8– Consumo de Energia ARM
Gráfico 9– Relação Consumo de Energia INTEL x ARM Gráfico 10– Relação Consumo x Tempo
1 INTRODUÇÃO ... 13 2 ESTADO DA ARTE ... 14 2.1 Arquitetura ARM ... 14 2.1.1 Histórico ... 15 2.2 Famílias ... 17 2.2.1 ARM Cortex-A7... 19 2.2.2 ARM Cortex-A8... 21 2.2.3 ARM Cortex-A9... 22 2.2.4 ARM Cortex-A15 ... 24 2.2.5 ARM Cortex-A35 ... 26 2.2.6 ARM Cortex-A57 ... 28
2.2.7 Futuro ARM Cortex-A72 ... 29
2.2.8 Big.Little ... 31
2.2.9 ARMv7 ... 32
2.2.10 ARMv8 ... 33
3 METODOLOGIA ... 36
3.1 Benchmark ... 37
3.1.1 Phoronix Test Suit Benchmark ... 38
4 RESULTADOS ... 42
4.1 Testes de Performance ... 42
4.2 Consumo ... 48
5 CONCLUSÃO ... 52
1 INTRODUÇÃO
Nas últimas décadas os computadores deixaram de ser máquinas que faziam apenas serviços básicos, sem muita capacidade, e ganharam grande desempenho para realizar as mais variadas tarefas, e inúmeras tarefas e a cada nova geração o seu tamanho físico vem diminuído. Com o passar dos anos com a conexão da Internet que se transformou um dos principais meios de comunicação mundial, passando a interligar países e continentes diferentes a capacidade de processamento aumentou, mas consigo veio o aumento de consumo de energia. Devido a importância da internet no dia-a-dia, os processadores ganharam a mobilidade através de novas tecnologias e junto de novos sistemas operacionais.
O crescimento de dispositivos móveis sendo adquiridos anualmente, traz junto consigo um grande desafio para as grandes fabricantes dos mesmos e também para seus sistemas operacionais, que é a parte de consumo de energia.
O mercado de IoT (internet das coisas) está em constante crescimento nos últimos tempos, procurando-se ter eficiência e desempenho com um consumo de energia baixo.
Por tais causas essa área passou a ser um dos focos das pesquisas de cientistas da computação, buscando conseguir aumentar o grau de desempenho dos processadores, mas sem deixar de lado o baixo consumo de energia.
A arquitetura Advanced RISC Machines (ARM) começou como um projeto em 1983 na Arcon Computers, de Cambridge, Inglaterra, para desenvolver um processador que fosse similar ao já usado MOS Technology 6502 (GOMES,2011). Esse processador era baseado no Berkeley RISC I, que tinha como objetivo estruturar o processador com tarefas simples e com um número fixo de instruções de 32 bits, alcançando uma velocidade de processamento e desempenho muito bons para a época. Tem entre suas características ocupar uma área muito pequena, ter um baixo consumo de energia e ser muito versátil.
Com tais características os processadores ARM poderiam facilmente ser usados em várias áreas da tecnologia, por exemplo, em computadores, buscando baixar significativamente o consumo de energia dessas máquinas. Portanto neste trabalho procura-se conhecer melhor as arquiteturas i386 e ARM, para após serem realizados uma bateria de testes com um benchmark escolhido, e
com os resultados obtidos fazer uma comparação entre desempenho e consumo, avaliando quantos seriam necessários para um desempenho totalmente equivalente aos i386.
2 ESTADO DA ARTE
Com a grande preocupação com o consumo energético para os aparelhos eletrônicos, pesquisas em sua grande maioria estão voltadas para esse tema que vem se tornando um grande problema para esses equipamentos, que até pouco tempo apenas se procurava buscar o máximo de desempenho de processamento, não se preocupando muito com o consumo. Esse gasto é tão grande que faz com que nenhuma fonte de energia tenha uma vida útil muito longa, que são os casos das baterias de smartphones e notebooks.
Portanto buscaremos um embasamento maior sobre o funcionamento da arquitetura ARM e I386, e aprofundar o conhecimento sobre as características dos processadores que serão usados. E após verificar os principais pontos e características sobre benchmarks, definindo um para os testes que serão realizados.
2.1 Arquitetura ARM
Nesta seção serão apresentadas algumas especificações e características sobre uma arquitetura que inicialmente foi desenvolvida pela empresa britânica Arcon Computers que obteve grande êxito na década de 80, criando um computador para fins educativos, que foi um tamanho sucesso que acabou obtendo a venda de milhões de unidades. Usando um microprocessador fabricado pela empresa Rockwell, este que também foi usado por algum período em consoles como da Nintendo e Atari.
De acordo com Gomes, Leite e Caetano (2011), essa arquitetura foi criada buscando instruções simples, mas sem deixar o desempenho de lado:
A arquitetura ARM foi desenvolvida para possibilitar implementações muito enxutas, sem deixar de lado o alto desempenho. Isso é possível pela simplicidade dos processadores ARM. Importante lembrar que implementações pequenas implicam em baixo consumo de energia, o que torna esses processadores interessantes para aplicações móveis (GOMES, LEITE E CAETANO, 2011).
2.1.1 Histórico
Criado inicialmente para fins educacionais, não foi muito conhecido na sua criação, até que três anos mais tarde com a sua segunda versão o ARM2, com 30.000 transistores, passaram a ser o primeiro processador usado comercialmente.
Nos anos 80 a arquitetura mais usada era a Complex Instruction Set Computer (CISC), que tinha como características ter um conjunto complexo de instruções, podendo realizar centenas de instruções diferentes. Esse conjunto de instruções já guardadas no próprio processador era considerado um benefício, porque os programadores poderiam usar tais instruções em seus programas, conhecidos como os processadores na arquitetura i386.
“A arquitetura RISC surgiu com o objetivo de otimizar a performance dos computadores e foi construída com base em alguns princípios fundamentais que permitiram otimizações [...]”. (DINIZ E BARROS, 2012) Algumas das principais alterações da arquitetura RISC para a CISC, é o número reduzido de instruções, sendo estas apenas instruções simples, causando mais trabalho aos programadores. Outra novidade foi o uso de pipeline, fazendo que os processos passassem por uma linha de estágios, otimizando e realizando as operações mais rapidamente.
Não há dúvidas sobre a velocidade e capacidade de desempenho dos processadores CISC com instruções maiores e mais complexas, mas por outro lado os processadores RISC tem um ganho bem superior em instruções mais simples, que não necessitam tanto poder de processamento.
A ideia desse novo processador com tecnologia RISC foi muito bem aceita e com o crescimento nas vendas e com o sucesso causado pela máquina criada pela Arcon, seus criadores viram necessário a inclusão de uma nova central de processamento, capaz de conseguir maior nível de desempenho. Depois de buscas no mercado e não obtendo um que atingisse o resultado esperado, seus desenvolvedores tiveram a ideia de criar um novo processador desde o marco zero, ou seja criar o seu próprio chip de processamento desde a ideia inicial.
Os engenheiros da Acorn focaram no desenvolvimento de um processador com poucos recursos, mas com boa performance. Enquanto que a Acorn projetava o chip, quem fabricava era outra
empresa, a VLSI Technology. O ARM1 nasceu como um RISC de 32 bits, baseado na arquitetura do 6502, e foi usado basicamente como coprocessador no BBC Micro. O ARM2 apareceu um ano depois, com melhorias no conjunto de instruções, principalmente para deixar mais rápidas as instruções hoje comuns em DSPs, como operações de multiplicação (PRADO, 2011).
Com poucos recursos tiveram seu foco e base na criação de um chip diferente, que se trata de ter poucos recursos, mas um desempenho satisfatório, atingindo o resultado que a empresa necessitava naquele momento. Mantendo daquele marco inicial em diante sempre a linha de pensamento de sempre conquistar o melhor desempenho, mas nunca deixando de ser simples, ocupar uma pequena área e outra de suas principais características o baixo consumo de energia. Já em 1989, com a nova versão ARM2, melhorou seu desempenho, obtendo 4KB de cache, e passou a dominar o mercado de processadores embarcados, já passando a ter a característica de ter um ótimo desempenho para aquela época e tendo um consumo de energia consideravelmente baixo.
Alguns anos depois com ARM7, consegue a incrível marca de utilizar apenas a metade da energia de sua versão anterior o ARM6, e dobrar a sua capacidade de processamento, um feito marcante.
Em 2006 teve a linha Xscale, produzida pela Intel, usando menos energia ainda, operando em 133MHz e 400MHz. Quatro anos mais tarde surgem a geração Cortex, sendo o processador mais poderoso até 1 GHz, com 13 estágios de pipeline. Tendo como seu futuro lançamento o Cortex-A72, que se trata de uma grande inovação, com base na arquitetura ARMv8-A o lançamento está previsto para o início de 2016, a CPU Cortex-A72 baseia-se no amplo sucesso do processador Cortex-A57, a ARM diz que o Cortex-A72 terá velocidade até 90% maior que o antecessor o A57 e até 75 % menos consumo de energia que os chips atuais, o núcleo será baseado no processo FinFET 16 nanômetros, permitindo que o Cortex-A72 atinja até 2.5GHz de processamento.
“Ao contrário dos fabricantes de chips x86 da Intel, AMD e VIA, ARM não vende CPUs, mas licencia seus designs de processadores para outras empresas. Incluindo NVIDIA, IBM, Texas Instruments, Intel, Nintendo, Samsung [...]” (VAN’S, 2011). Portanto a ARM, não fabrica seus processadores por completo, mas sim produz e desenvolve licenças para empresas fabricantes que desejam usá-los.
Assim deixando a cargo de cada empresa que fabriquem seus próprios chips, dependendo da licença podendo fazer alterações ou integrações de novos dispositivos a arquitetura. E tem entre a lista de licenciados empresas no ramo de dispositivos móveis como a Samsung, Apple, entre outras, e também na parte jogos e multimídia como a Nvidia e a Nintendo, tendo muitas outras.
2.2
Famílias
Desde a sua criação os processadores ARM passaram por várias versões, sendo classificadas a cada uma delas por ARMv seguido pelo número da versão. Atualmente a arquitetura conta com sete versões, tendo apenas4 em uso, dentre elas divididas em duas famílias:
Uma delas tendo os processadores mais antigos até o processador ARM11;
E a segunda passa a ser a sequência desses processadores, que seria os atuais processadores ARM Cortex;
Por se tratarem de processadores mais antigos, os mesmos da primeira família eram processadores mais simples, com estágios de pipeline mais curtos e frequência de clock mais baixa que os atuais. Tendo entre eles alguns como ARM1, ARM3, ARM7, ARM9 e ARM11.
A Tabela 1 mostra algumas diferenças entre as duas famílias; Tabela 1 – Características das Famílias ARM
Características das famílias ARM
ARM Cortex
Pipeline De 5 a 8 estágios 13 estágios
Frequência de clock Entre 200MHz a 600MHz 800MHz a 1,2 GHz
Unidades de processamento 1 2
Virtualização Não Sim
Processo de fabricação de 90 nm e 130 nm 40 nm e 65 nm
Fonte– Autor Nesta família Cortex, temos outra divisão:
Cortex-R: usados em processadores de uso crítico, com respostas em tempo real;
Cortex-M: estes tem sua funcionalidade ocupada em micros controladores de modo geral;
Cortex-A: família responsável pela grande maioria dos dispositivos inteligentes que temos na atualidade, tanto como celulares, smarthphones e TV’s digitais;
Dentro da família dos SoCs Cortex-A, temos várias versões desde os anos 90. Dentre eles temos em algumas delas grande evolução em consumo de energia, enquanto em outros temos um grande poder de desempenho, suportando tanto a arquitetura ARMv7 como também a ARMv8. As versões são A5, A7, A8, A9, A15, A17, A32, A35, A53, A57, e o próximo lançamento será o A72. Teve como início da família o Cortex-A5, que veio para substituir os processadores ARM9 e ARM11, tendo como objetivo ser simples e obter um baixo nível de consumo energético. Passou a tomar conta do mercado de sistemas embarcados e ganhar mais notoriedade no processador ARM Cortex-A7, que foi um dos pioneiros com sistemas multicores.
A Figura 1 mostra o uma linha do tempo com alguns dos processadores ARM e em quais dispositivos foram usados:
Figura 1 – Histórico ARM
2.2.1 ARM Cortex-A7
O processador Cortex-A7 foi desenvolvido e criado para ser o principal processador da família Cortex em termos de eficiência em consumo de energia.
O processador ARM Cortex-A7 é o processador ARM com aplicação de energia mais eficiente já desenvolvido, e se estende na liderança de baixo consumo de energia da ARM em smartphones de nível de entrada, comprimidos e outros dispositivos móveis avançados (ARM a).
Foi um lançamento considerado revolucionário, por usar multicores e também por ter um desempenho e consumo de energia consideravelmente mais baixo se comparado a outros mais caros. Por ser considerado um dos mais baixos consumidores de energia entre os processadores Cortex-A, sua tecnologia foi reutilizada no novo lançamento da empresa, trabalhando em parceria com o Cortex-A15.
A Figura 2 mostra a arquitetura do processador Cortex-A7, com seu sistema multicores:
Figura 2 – Arquitetura Multicore Cortex-A7
Fonte– ARM a, 2016
Em termos de desempenho consegue atingir até 20% a mais que o Cortex-A5. Mas não suporta grandes necessidades de serviço, sendo mais indicado para pequenos processos como, escrita e leitura de mensagens de texto, ou visualização
de páginas web. Mesmo assim empresas como Samsung, Freescale, e várias outras obtiveram licença para usar a arquitetura em seus aparelhos.
De acordo com site da empresa ARM, o Cortex-A7 apresentou melhorias não apenas na eficiência de energia comparado ao Cortex-A5:
O processador Cortex-A7 baseia-se na eficiência de energia do processador Cortex-A5, e tem uma Cache L2 projetada para baixo consumo de energia, tem 8 estágios de pipeline. É característica compatível com o processador Cortex-A15 de alta performance e suporta 40bit memória endereçamento físico e suporte de virtualização de hardware. (ARM a, 2016)
Entre as características:
Com memória cache L2 integrada;
TrustZone tecnologia de segurança;
Desempenho do sistema de memória melhorado;
Tecnologia NEON;
Virtualização do hardware;
Suporte para operações com ponto flutuante;
AMBA4, para melhorar o desempenho com a memória cache;
Capacidade escalar em velocidade entre 800 MHz e 1.2 GHz;
De acordo com a página do site de ARM, seu consumo energético foi afetado positivamente graças ao uso do sistema de multicores.
O processamento de multicores oferece a possibilidade para qualquer um dos quatro processadores de componentes de ser desligado quando não estiver em uso, por exemplo, quando o dispositivo está no modo de espera, ele os desliga para economizar energia.Quando é necessário um maior desempenho, cada processador é utilizado para atender a demanda. (ARM a, 2016)
Desse jeito fazendo os multicores operarem de forma que não haja desperdício de energia quando estiverem ociosos, e no momento em que o processador necessitar de mais carga de desempenho, são novamente ativados não deixando nenhum core ficar supercarregado. Além disso, tem compatibilidade com vários outros processadores ARM, também permitindo fazer o uso dele em configurações Big.LITTLE.
2.2.2 ARM Cortex-A8
Com a grande responsabilidade de substituir o seu antecessor da família Cortex, o SoC Cortex-A7, que foi considerado um dos lançamentos com melhores resultados em termos de eficiência energética, o Cortex-A8 foi considerado um processador poderoso para a época, foi introduzido ao mercado em 2005.
Segundo dados do site da empresa ARM, “
O processador ARM Cortex-A8, é baseado na arquitetura ARMv7, e tem a capacidade escalar em velocidade de 600MHz a 1GHz ou até superior. O processador Cortex-A8 pode cumprir os requisitos para dispositivos móveis otimizando a energia de operação que
necessitam em menos de 300mW, ideal para produtos de alta performance, suporta a tecnologia NEON, permitindo tirar proveito de multimídias e processamento DSP. (ARM b,2016)
Esse processador de alto desempenho com potência e eficiência foi projetado para atender as necessidades de mercado, implantado em sua maior parte em smartphones, smartTVs, tablets, placas automotivas, alguns eletrodomésticos e até sistemas inteligentes para casas, tendo na sua maioria conectividade com a internet. Tem sua capacidade comprovada com o número de vendas atingidas.
Segundo Morimoto (2009) o Cortex-A8 apresenta grandes melhorias de memória para processadores embarcados:
O Cortex-A8 é o chip main stream 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. (MORIMOTO, 2009)
Seu núcleo é dividido em 13 etapas sendo que cada processo ou instrução deve passar por todas. O que beneficia esse trabalho é que a cada etapa concluída pela instrução uma nova já pode passar pela fase anterior.
Figura 3 – Arquitetura Cortex-A8
Fonte– ARM b, 2016
Além de conseguir uma alta performance disponibiliza uma grande compatibilidade com a maioria das aplicações e também de sistemas operacionais, como por exemplo Android e Windows phone. Tem a tecnologia NEON como suporte, esta que auxilia o chip em momentos que é muito exigido com processos de áudio, vídeo e gráficos, deixando outras aplicações para o processador e processando paralelamente, aliviando o stress de processamento, e fazendo suportar futuras versões de aplicativos ou sistemas.
Sua memória cache L1 de 64 KB integrada ao processador, e tendo a memória cache L2 podendo chegar a 1MB, garante um tempo de acesso mais veloz, aumentando assim o desempenho e a economia de energia. Sendo produzidos com processo de fabricação de 65 nm são compatíveis para dispositivos móveis, pois necessitam de um nível baixo de mW.
2.2.3 ARM Cortex-A9
Seguindo a linha de sucesso da empresa o Cortex-A9 foi lançado no ano de 2007, prometendo revolucionar o mercado de processadores para dispositivos móveis. Entre suas novidades esteve uma mudança em sua estrutura
disponibilizando até 4 processadores, como podemos ver em citação do site da empresa:
Cortex-A9 MPCore com 4 núcleos que podem ser utilizados ao mesmo tempo para alcançar maiores níveis de desempenho, microarquitetura do processador suporta a configuração de 16, 32 ou 64 KB de quatro vias caches L1 associativa, com um cache L2 opcional fornecendo até 8 MB de memória cache, voltado a baixo consumo de energia otimizado para menor consumo de energia ou de mais alto desempenho, oferece uma melhoria de desempenho geral bem acima de 50% em comparação com soluções ARM Cortex-A8.(ARM c, 2016)
Figura 4– Estrutura do Cortex-A9
Fonte– ARM c, 2016
Como podemos ver na Figura 4, este novo lançamento continuou com aplicações como o NEON, mantendo se apoiada amplamente no que tem de melhor a arquitetura ARMv7, passando das 13 etapas do antigo A-8, para 8 a 11 fases de instruções. Teve um aumento considerável em sua memória cache, e tendo como sua principal atração foi o sistema multicores, deixando a disposição do sistema mais cores para desafogo de processamento, para momentos de gargalo. Ideia que foi criada para baixar o nível de consumo de energia, sendo similar à usada pelos desktops, onde ao invés de aumentar a frequência, foram criados processadores com vários núcleos.
Conforme MORIMOTO (2012):
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,é 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, 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. (MORIMOTO, 2012)
Com esse novo sistema de gerenciamento de energia dos cores, faz que sejam apenas usados o número de cores realmente necessários para o funcionamento da operação, enquanto os outros são desativados até o momento que o gerenciamento reconhece que o sistema necessita de uma demanda de processamento maior e volta a ativá-los, gerando assim um baixo consumo energético, utilizando apenas o suficiente.
Como novidade em relação as versões anteriores de sua família, tem uma nova arquitetura super-escalar, além de passar a executar processos que não precisam estar em ordem, sendo semelhante aos processadores usados em CPU’s com arquitetura x86, por conta disso houve uma diminuição de seu pipeline, passando dos 13 estágios de sua versão anterior para 8 estágios.
2.2.4 ARM Cortex-A15
O Cortex-A15, foi lançando em 2012, prometendo ter um desempenho superior aos seus antecessores, tendo como base a nova arquitetura ARMv8, e inovando no seu sistema de gerenciamento de cores. Passou a ter semelhanças ainda maiores que o Cortex-A9 com processadores x86, usados em computadores. Assim que lançado passou a ser alvo das grandes empresas como NVIDIA e Samsung, para compra de sua licença para desenvolvimento.
Conforme Morimoto (2012), o Cortex-A15 implementa uma arquitetura super-escalar, com 3 unidades de execução, com as unidades de execução de inteiros sendo compostas por 15 estágios de pipeline e as unidades de processamento de ponto flutuante recebendo pipelines ainda mais longos.
Tem em seus tamanhos de memórias parte responsável por um processamento tão grande, capaz de exercer funções que vão além de atender
apenas a um simples dispositivo móvel. “Sua memória cache L2, que pode ser de até 4 MB de tamanho.
Agora capaz de suportar até 1 TB de memória física, o processador Cortex-A15 é capaz de atender as necessidades de aplicações de servidores e rede.” (ARM d).
Seu alto desempenho propicia que possam ser usados nos seguintes casos:
Smartphones;
Servidores de dados domésticos;
Servidores Web;
TVs digitais;
A Figura 5 mostra o poderoso sistema do Cortex-A15
Figura 5– Estrutura do Cortex-A15
Fonte– ARM d, 2016
De acordo com Carlson (2011):
O processador Cortex-A15 inclui uma extensa lista de melhorias, que resultam em, desempenho de thread único melhoria de 1,5x, e ponto flutuante em média de 1,6x de desempenho em relação ao Cortex-A9 processador da mesma tecnologia de processo. O Texas Instruments Incorporated(TI) implementou o Cortex-A15 que consegue um baixo consumo de energia, com processo de 28nm que fornece melhorias adicionais de frequência e de poder sobre o Cortex-A9 implementado em 45nm. (CARLSON, 2011)
Tem como algumas especificações:
Arquitetura ARMv7-A;
Virtualização de Hardware;
Tecnologia Thumb2;
Otimização em sua memória cache L1;
AMBA4;
Gerenciamento SCU;
Memória cache L2 otimizada podendo chegar a 4MB;
Introdução de LPAE, que permite o processador ter o acesso de até 1 TB de memória;
Pipeline de 15 estágios;
Segundo Carlson (2011) a virtualização traz alguns benefícios:
O Cortex-A15 permite a virtualização do hardware de classe mundial que reduz a sobrecarga operacional para um maior desempenho, permite que sistemas operacionais convidados rodem em privilégio na CPU nativa, reduz o custo de desenvolvimento e melhora a segurança e isolamento. Um dos principais benefícios é a capacidade de executar sistemas operacionais ARM nativas sem a necessidade de código-fonte do kernel que oferece uma grande flexibilidade para os desenvolvedores e usuários. (CARLSON, 2011)
O processador Cortex-A15 é o motor que impulsiona não apenas smartphones, mas também a infraestrutura que eles dependem. Desde servidores a rede para os seus sistemas de entretenimento digital doméstico high-end, o processador Cortex-A15 é a solução certa para um conjunto muito diversificado de soluções.
2.2.5 ARM Cortex-A35
Cortex-A35 processador capaz de rodar códigos 32 bits e 64 bits, com um consumo de energia 10% menor do que em comparação com o Cortex-A7 e entrega uma melhoria de desempenho na faixa de 6% a 40% nas tarefas, baseado na arquitetura ARMv8-A com alto nível de eficiência, compatível com versões anteriores ARMv7-A, também pode ser incluído a um sistema big.LITTLE.
Núcleo organizado, tem 8 estágios de pipeline, teve sua estrutura de instrução redesenhada para maximizar a eficiência, sistema de memória de alto desempenho L1 e L2, resultando em até 3,5x melhoria no desempenho streaming de memória, igual seus antecessores utiliza a tecnologia NEON que melhora o desempenho para pontos flutuantes e operações DSP. Opera na faixa de energia inferior a 125mW, de acordo com a ARM, “Eles afirmam que a A35 pode operar a 1Ghz ocupando apenas 90mW”. (ARM e).
Figura 6– Comparativo Cortex-A35 x Cortex-A7
Fonte– ARM e, 2016
Figura 7– Estrutura do Cortex-A35
Conforme podemos ver na Figura 6, o processador Cortex-A35 sobressaiu-se ao Cortex-A7.
Na Figura 7, podemos ver que o novo lançamento continuou com aplicações como o NEON, mantendo se apoiada no que tem de melhor da arquitetura ARMv8. Compatível com a arquitetura ARMv7. Utilizando 8k-64k L1 de cache e 128kb-1Mb L2
Seu desempenho propicia que possam ser usados nos seguintes casos:
Smartphones de entrada;
Servidores de baixo consumo de energia;
TVs digitais;
2.2.6 ARM Cortex-A57
O processador ARM Cortex-A57 tem um núcleo de 64 bits comprovada e de alto desempenho de 32 bits. Ele foi projetado para estender as capacidades de aplicações móveis e de computação empresarial, incluindo aplicativos de 64 bits de computação intensiva, como produtos de informática high-end, tablets e servidores.
O processador pode ser implementado individualmente ou combinado com o processador Cortex-A53 em uma configuração ARM big.LITTLE ™ que permite uma performance escalável e eficiência energética ideal.
Através de uma série de implementações micro arquiteturais e uma versão atualizada da arquitetura ARM, alcançou-se altos níveis de desempenho superando a versão A15. Como podemos ver no gráfico a seguir:
Figura 8– Cortex-A57 Performance Relativa para o Cortex-A15
Fonte– ARM f, 2016
A Figura 9 mostra a poderosa estrutura do Cortex-A57
Figura 9– Estrutura do Cortex-A57
Fonte– ARM f, 2016
2.2.7 Futuro ARM Cortex-A72
Cortex-A72, núcleo baseado em 16 nanômetros que deverá aparecer nos dispositivos lançados em 2016. Os processadores baseados na tecnologia
consumirão até 75% menos energia que os chips atuais quando fazem o mesmo trabalho.
O ganho de desempenho deverá ser bem grande: a ARM diz que os Cortex-A72 terão velocidade até 90% maior que os Cortex-A57 de 64 bits, usados em processadores como Snapdragon 810 (G Flex 2) e Exynos 5433 (Galaxy Note 4).
Ao longo de cinco anos, o aumento foi impressionante: os chips Cortex-A72 são até 50 vezes (!) mais rápidos que os processadores topos de linha ARM de meados de 2010. O Cortex-A72 suportara instruções de 64 bits e funcionará com frequência de até 2,5 GHz nos smartphones — em dispositivos de maior porte, o clock chegará aos 3,0 GHz. A seguir uma figura do poder estimado do novo processador:
Figura 10– Comparativo de Performance e Redução de Energia Cortex-A72
Fonte– EXTREMETECH, 2016
Figura 11– Estrutura do Cortex-A72
Fonte– ARM g, 2016
2.2.8 Big.Little
O big.Little, sistema que reúne o que a família Cortex tem de melhor, utilizando um sistema de gerenciamento de cores semelhante do Cortex-A9.
Essa tecnologia utiliza duas versões dos processadores Cortex-A, fazendo trabalhar em conjunto o processador Cortex-A7 que é considerado o melhor em parte de consumo energético, para situações de baixa necessidade de processamento e para casos de requer mais desempenho é ativado o Cortex-A15, sendo o destaque em desempenho de processamento. Para a próxima geração os fabricantes poderão lançar processadores com núcleos Cortex-A72 (de alto desempenho) e Cortex-A53 (de baixo consumo de energia).
Figura 12– Pontos de Atuação dos Processadores Big.LITTLE
Fonte– GREENHALG,2011
Conforme ARM:
Implementação do controlador de interrupção padronizado e arquitetado, o GIC oferece uma abordagem rica e flexível para comunicação inter-processador e o roteamento e priorização de sistema interrupts.Supporting até 224 interrupções independentes, sob controle de software, cada interrupção pode ser distribuído através de CPU, hardware priorizados e encaminhados entre o sistema operacional e a camada de gerenciamento de software TrustZone. Esta flexibilidade de roteamento e o suporte para virtualização de interrupções no sistema operacional, fornece uma das principais características necessárias para reforçar as capacidades de uma solução utilizando um hypervisor. (ARM d, 2016)
Além disso, garante suporte para uma grande memória física podendo chegar a 1TB, incluindo um novo sistema de IP para armazenamento de dados, assim como uma ampla variedade de ferramentas para desenvolvimento e otimização para sistemas.
2.2.9 ARMv7
A mais conhecida entre as arquiteturas ARM, foi responsável por servir de base a maioria dos processadores Cortex, e também a nova arquitetura AMRv8, que de agora em diante promete ser a mais usada.
O termo de sua arquitetura ARMv7, segundo a empresa vem de acordo com o perfil, variantes e sua versão de arquitetura adotada. Teve entre uma de suas novidades para a arquitetura ARMv6, a tecnologia NEON, para servir de suporte aos processadores em caso de maior performance com vídeos, áudio e gráfica.
Sua arquitetura de 32 bits, está presente nos principais processadores da família Cortex, como os casos de Cortex-A8 e Cortex-A9, que tiveram grande sucesso.
Está dividida em 3 grupos, ARMv7-A, que são os processadores voltados para aplicação geral, ou seja os Cortex-A, ARMv7-M, usados para micro controladores de aplicação geral, e por fim ARMv7-R, para processadores e micro controladores de tempo real.
2.2.10
ARMv8
Com a nova arquitetura ARMv8, a empresa ARM introduz a sua linha processadores 64 bits. Apesar de ser uma tecnologia nova, é baseada na arquitetura anterior ARMv7, mantendo sistemas como NEON, e outras especificações.
Segundo a empresa ARM (2016), este lançamento não deixa de ser compatível com programas para sistemas de 32 bits:
A arquitetura ARMv8 mantém a compatibilidade com o ecossistema de software abrangente para componentes de 32 bits. Isto permite uma grande variedade de software otimizado para processadores ARM existente para beneficiar o desempenho melhorado de processadores baseados na arquitecturaARMv8, enquanto a adição de instruções de criptografia de 32 bits permite uma maior optimização para requisitos emergentes. (ARMv8, 2016)
Para tal troca a empresa colocou duas exigências que teriam que ser cumpridas na nova arquitetura, que segundo Goodacre (2016), seriam o de ser completamente compatível com sistemas da arquitetura ARMv7, e o outro de ter uma um desempenho significativamente maior:
Ficou claro para ARM a partir do nível de adoção da arquitetura ARMv7 e crescimento acompanhou o ecossistema e lojas de aplicativos associados, que quaisquer novas melhorias para a arquitetura tinham que ser totalmente compatível. Era igualmente claro que, para apoiar qualquer migração para uma nova arquitetura, a nova arquitetura tinha que levar vantagem significativa sobre a
arquitetura existente, mesmo quando executando um software que não o uso dos novos recursos. (GOODACRE, 2011)
Pensando no futuro com a nova arquitetura de 64 bits os processadores ARM estão cada vez mais aptos a estarem presentes em sistemas como servidores de baixo consumo, e até computadores, sendo que várias empresas e usuários estão se preocupando cada vez mais em procurar novas alternativas para conseguir um menor consumo de energia.
A Tabela 2 mostra algumas das mudanças ao longo do história das arquiteturas ARM:
Tabela 2– Histórico das Arquiteturas ARM
Histórico das Arquiteturas
Algumas mudanças entre elas
ARMv4 Tinha apenas o padrão de intruções ARM, e suporte a Thumb.
ARMv5 Melhorias na gestão de memória, e integração da tecnologia Jazelle.
ARMv6 Suporte a tecnologias como Thumb-2 e TrusZone.
ARMv7 Processo de Virtualização, e nova tecnologia NEON.
ARMv8 Passou a ter sistemas 64 bits, nova versão do NEON e criptografia. Fonte– Autor
Na Tabela 3, com base nos primeiros Cortex lançados até o A15 foi feito um comparativo, podemos ver algumas das principais especificações de cada um dos processadores da família Cortex:
Tabela 3 – Especificações dos Processadores Pesquisados
Cortex A-7 Cortex A-8 Cortex A-9 Cortex-A15
Arquitetura ARMv7 ARMv7 ARMv7 ARMv7
Estágios de Pipeline 8 13 8 15
Multicore Sim Não Sim Sim Número de cores 4 1 4 4 Cache L1 (KB) 64 64 64 64 Cache L2 (KB) 1024 1024 2048 4096 Frequência de Clock (MHz) 800 a 1200 600 a 1000 1000 Até 2500 Fabricação (nm) 40/28 65/55/45 65/45/40/32/32/28 32/28/20
Versão AMBA AMBA4 AMBA3 - AMBA4
Fonte– Autor
Com a nova arquitetura, a ARMv8, podendo atuar tanto com processadores 32 bits, como de 64 bits, ganhando mais desempenho, podem gerir sistemas cada vez mais complexos, assim, a empresa busca cada vez mais se expandir no mercado tecnológico, passando a deixar a disputa com marcas de processadores para computadores ainda mais acirrada.
3 METODOLOGIA
Inicialmente serão apresentadas os equipamentos que serão usados, assim como algumas especificações dos mesmos. Após será abordado sobre o funcionamento e propósito de benchmark, será apresentado um benchmark, que realizara os testes nos equipamentos.
Na Figura 13 o equipamento INTEL utilizado nos testes.
Figura 13– Equipamento Samsung RF511
Fonte– SAMSUNG, 2016
A Figura 14 apresenta o equipamento ARM utilizado nos testes.
Figura 14– CubieTruck
A Tabela 4 traz as especificações dos equipamentos utilizados nos testes.
Tabela 4– Especificações dos Equipamentos
Especificações dos Equipamentos ARM e i386
Equipamento Notebook Samsung RF511 CubieTruck
Processador Intel Core i5 2450m Soc. A20 Dual
Core
Memória RAM 6 GB DDR3 2 GB DDR 3
L2 Cache 3 MB 256 KB
Clock 2.50 GHz 1,01 GHz
Cores 2 2
Sistema Operacional Linux Linux
TDP 35 w 5 w
Fabricação 32 nm 55 nm
Tecnologia Sandy Bridge Cortex-A7
Fonte– Autor
3.1 Benchmark
Para obter os resultados deste trabalho será executado nos dois equipamentos, testes feitos com benchmark.
Um benchmark é um programa de testes, que visa extrair o máximo do equipamento testado, dando-o uma pontuação de acordo com o equipamento testado, Os programas são usados para medir a performance de um sistema e seus componente, bem como revelar pontos fortes e fracos. Existem dos mais variados e nas mais diversa áreas, como em consumo de energia, desempenho de disco, desempenho gráfico.
O termo benchmark, para computação é utilizado para referenciar os resultados da execução de um único programa ou de um grupo de programas que tenham como objetivo avaliar o desempenho de um objeto. Podendo ser medido através do tempo que os equipamentos necessitam para executar problemas e cálculos do benchmark.
Para facilitar a comparação, os benchmarks retornam valores numéricos que representam a quantificação do desempenho do objeto medido. O valor retornado pode ter diversas interpretações físicas. Existem várias medidas para tais resultados, que podem ser do tipo MIPS, que significam milhões de instruções por segundo, por exemplo. Faz algum tempo que se busca uma padronização maior para as unidades de medidas dos resultados dos testes de benchmark, para assim conseguir interpretá-los com mais clareza.
3.1.1 Phoronix Test Suite Benchmark
O benchmark escolhido foi o benchmark da phoronix de mídia, o Phoronix test Suite Benchmark.
O software é projetado para efetivamente realizar ambos os parâmetros de referência qualitativos e quantitativos de forma limpa, reprodutível e fácil de usar. Phoronix teste suite (PTS), é baseado nos extensos testes e ferramentas internas desenvolvido pela Phoronix.com desde 2004, juntamente com o apoio de líderes nível hardware e software fornecedores. Este software é open-source e licenciado sob a GNU GPLv3, originalmente desenvolvido para testes automatizados Linux, o suporte ao Phoronix Test Suite, desde então, foram adicionados para OpenSolaris, Apple Mac OS X, Microsoft Windows e sistemas operacionais BSD.
O Phoronix Test Suite consiste de um núcleo de processamento leve (pts-core) com cada referência que consiste em um perfil baseado em XML e scripts de recursos relacionados. O PTS foi desenvolvido para avaliar o desempenho de computadores, foi lançado sob o nome de código Trondheim VERSÃO 1.0, esta versão composta por 57 perfis de testes e 23 conjuntos de testes, hoje na versão 6.2 nome de código Gamvik, suporta mais de 220 perfis de testes e mais de 60 conjuntos de testes, usa uma arquitetura de testes baseados em XML.
Figura 15 –Tela Phoronix Test Suite
Fonte– Autor
Como podemos notar na Figura 15, temos um boa quantidade de opções disponíveis para realização de alguma tarefa pelo benchmark do phoronix, utilizaremos a segunda opção onde será feita uma coleção de testes nos processadores já escolhidos, depois de selecionarmos a opção 2, teremos inúmeros testes a serem realizados, optaremos pela opção 50 processor, cuja coleção testara os processadores ao extremo, serão feitos 10 testes para a retirada dos resultados com uma média para melhor precisão da pesquisa e comparação.
Figura 16– Seleção de Teste
Fonte– Autor
Dentre os testes realizados estão:
pts/john-the-ripper - Quebra de senhas, força bruta, desempenho.
pts/compress-7zip - Compactador de arquivos que verifica desempenho do
processador e tempo a realizar.
pts/scimark - Teste de cálculos composto Foruier Transform, fatoração de
matrizes.
pts/dolfyn - Dolfyn é um código de Dinâmica de Fluidos Computacional
(CFD) de técnicas de simulação numérica modernos. Mede o tempo de execução.
pts/himero - Um solucionador linear da pressão de Poisson utilizando um
método de ponto-Jacobi.
pts/build-mplayer - Construção do programa media player Mplayer, o tempo. pts/build-php - Medidor de velocidade de tempos , construção PHP-5 motor
zend.
pts/c-ray - Teste de ponto flutuante da CPU , utiliza multi-thread.
pts/stockfish - C ++ 11 xadrez referência que pode escalar até 128 núcleos
pts/smallpt - C++ renderizador de iluminação global, multi-threading com
OpenMP.
pts/ffte - é um pacote por Daisuke Takahashi para calcular Discrete Fourier
de 1, 2 e 3 - sequências dimensionais de comprimento (2 ^ p) * (3 ^ q) * (5 ^ r)
pts/ffmpeg - Testar o desempenho de codificação de áudio / vídeo do
sistema.
pts/mencoder - Utiliza a libavcodec para testar o desempenho de codificação
de áudio/ vídeo.
pts/n-queens - OpenMP , resolve o problema das N rainhas. O tamanho na
placa é de 18.
pts/sample-program - Um programa simples C ++ que calcula Pi para
8,765,4321 dígitos utilizando a fórmula Leibniz.
pts/npb - NAS Parallel Benchmarks, é um ponto de referência desenvolvido
pela NASA para sistemas de computadores high-end. Usa MPI.
pts/fftw - FFTW é uma biblioteca de sub-rotinas C para calcular a
transformada de Fourier discreta (DFT) em uma ou mais dimensões.
Onde após os testes realizados, serão feitas as comparações entre os equipamentos.
4 RESULTADOS
Neste capítulo serão demostrados os resultados obtidos com o benchmark escolhido e apresentado.
4.1 Testes de Performance
Iniciando pela configuração coletada pelo próprio Benchmark da Phoronix.
Figura 17– Informações do Sistema
Fonte– Autor
Finalizados os testes foi gerada uma página com gráficos contendo todos os resultados do benchmark realizado, onde continha a classificação do equipamento e um índice com a informação do sistema como visto na Figura 17.
O processador Intel Core i5 2450M, teve seu desempenho testado e coletado com os valores que podem ser vistos no Gráfico 1, que mostra os resultados dos testes realizados. Foram separados apenas os resultados que são de pontuação de performance, quanto maior melhor.
Com base nos resultados de cada teste, notou-se uma pontuação muito distinta para cada teste, gerando resultados de mflops, mips e nodes p/s.
No Gráfico 1 podemos ver com maior clareza os resultados de performance obtidos:
Gráfico 1– Resultados de Performance INTEL
Fonte– Autor
No Gráfico 2 foram separados apenas os tempos obtidos de cada teste executado, quanto menor o tempo melhor.
Gráfico 2– Resultados de Tempo INTEL
O Gráfico 2 apresenta os tempos dos testes executados em segundos quanto menos melhor.
No processador ARM da placa CubieTruck, foram coletados os resultados de performance e tempos como mostra a Tabela 5.
Tabela 5– Resultados de Performance e Tempo ARM
PERFORMANCE CUBIETRUCK pts / npb 57,89 pts / ffte 378,62 pts / fftw 61,69 pts / scimark 57,71 pts / himeno 52,18 pts / compress-7zip 578 pts / john-the-ripper 198 TEMPOS CUBIETRUCK pts / build-mplayer 770,57 pts / dolfyn 906,49 pts / build-php 917,82 pts / c-ray 894,47 pts / smallpt 4042 pts / stockfish 62,550 pts / ffmpeg 397,18 pts / mencoder 426,88 pts / n-queens 667,08 pts / sample-program 55,88 Fonte– Autor
Para uma análise melhor dos resultados foi gerado o Gráfico 3, onde se pode observar melhor a pontuação do processador ARM, e o Gráfico 4 onde estão os resultados dos tempos obtidos pelo processador:
Gráfico 3– Resultados de Performance ARM
Fonte– Autor
Gráfico 4– Resultados de Tempos ARM
Fonte– Autor
Como podemos analisar nos Gráficos 3 e 4, houve uma perda expressiva de Desempenho e um aumento considerável no Tempo de execução, em comparação
770,57 906,49 917,82894,47 4042 397,18 426,88667,08 55,88 62,55 0 500 1000 1500 2000 2500 3000 3500 4000 4500 Te m p o (s ) Benchmark MPLAY COMPL DOLFYN PHP COMPL C-RAY SMALLPT FFMPEG MENCODER N-QUEENS PI PROGRAM STOCKFISH
com os Gráficos 1 e 2 do processador Core i5, para uma análise mais detalhada temos o Gráfico 5, com a comparação direta de cada teste executado.
Gráfico 5– Comparação Performance INTEL x ARM
Fonte– Autor
Com base no Gráfico 5, nota-se um ganho expressivo da Arquitetura INTEL sobre à ARM, de quase 26 vezes superior em um dos casos, e no outro caso de 2,5 vezes superior. Dos testes realizados o melhor resultado do processador ARM foi o FFTE, que consiste em um pacote daisuke que calcula Discrete Fourier Transform (DFT), sequencias dimensionais de comprimento.
Já o melhor resultado do processador Core i5, foi o FFTW, cujo teste calcula a Discrete Fourier Transform, que se utiliza de uma biblioteca de sub-rotinas em C, e trabalha com uma ou mais dimensões. Fazendo com que se exigisse mais dos Cores do processador INTEL, duma maneira mais eficiente, enquanto no processador ARM não ocorreu o mesmo e sim ao contrário, perdeu eficiência, quando necessitou de mais desempenho por estar se trabalhando com mais de uma dimensão, enquanto que no teste de FFTE se utiliza de sequencias de dimensão, no caso uma dimensão por vez.
198 1852 578 5061 52,18 318,42 57,71 370,01 61,69 1628,66 378,62 927,03 57,89 1007,32 0 1000 2000 3000 4000 5000 6000 ARM INTEL Pontuação NAS FFTE FFTW SCIMARK HIMERO 7-ZIP JOHN RIPPER
Agora com os resultados de tempo de cada um dos processadores selecionados, podemos analisar e comparar de melhor forma o desempenho das duas arquiteturas.
No Gráfico 6 temos o ganho de tempo do processador Core i5 em relação ao processador ARM, podemos perceber que em todos os testes temos um ganho expressivo com o processador INTEL.
Gráfico 6– Comparação Tempo INTEL x ARM
Fonte– Autor
Ao analisar o Gráfico 6, o processador Core i5 obteve melhores resultados de tempo no benchmark, desde tarefas mais simples como é o caso de resolver a Fórmula de Leibniz para PI com 8 dígitos até mais complexas como renderizar uma iluminação global, onde, obteve-se o pior resultado do processador da arquitetura ARM.
A cada lançamento os processadores ARM vem num nível crescente de desempenho, mas com base em todos os resultados obtidos com os testes executados nos dois equipamentos selecionados, temos ainda uma melhor performance por parte dos processador i386. Portanto em nível de desempenho o
processador ARM Cortex-A7, não obteve resultados suficientes para alcançar o processador Core i5.
4.2 Consumo
Para obter o resultado do consumo energético consumido para realização de cada teste, foi utilizado a unidade de medida Joules.
A Potência elétrica é definida como energia por segundo, multiplicando potência (W) pelo tempo (s) obtém-se consumo em Joules. Isso é muito útil para medir potência em Watts, pois cada Watt é equivalente a um Joule por segundo.
Consumo = P * T
Com está formula e com os tempos que foram registrados no benchmark, chegamos ao consumo de energia que foi necessário para executar as aplicações. Na Tabela 6 podemos ver a energia consumida durante a execução de cada teste.
Tabela 6– Consumo de Energia INTEL
pts / build-mplayer 5966,1 pts / dolfyn 4947,3 pts / build-php 4276,7 pts / c-ray 3007,9 pts / smallpt 9100 pts / stockfish 764,96 pts / ffmpeg 2316,7 pts / mencoder 4126,2 pts / n-queens 4205,3 pts / sample-program 697,9 Fonte– Autor
No Gráfico 7, temos representado o consumo em Joules dos testes realizados no processador Core i5.
Gráfico 7– Consumo de Energia INTEL
Fonte– Autor
Na Tabela 7 serão mostrados os resultados de consumo energético do processador ARM utilizado.
Tabela 7– Consumo de Energia ARM
pts / build-mplayer 3852,85 pts / dolfyn 4532,45 pts / build-php 4589,1 pts / c-ray 4472,35 pts / smallpt 20210 pts / stockfish 312,75 pts / ffmpeg 1985,9 pts / mencoder 2134,4 pts / n-queens 3335,4 pts / sample-program 279,4 Fonte– Autor
No Gráfico 8 podemos ver os resultados do consumo de energia do processador ARM, onde podemos observar o grande consumo de energia
Gráfico 8– Consumo de Energia ARM
Fonte– Autor
Com os resultados obtidos nos testes, temos a comparação entre o consumo de cada um dos equipamentos colocada no Gráfico 9.
Gráfico 9– Relação Consumo de Energia INTEL x ARM
Fonte– Autor 3852,854532,454589,14472,35 20210 312,75 1985,9 2134,4 3335,4 279,4 0 5000 10000 15000 20000 25000 CUBIETRUCK C o n su m o ( jo u le s) Benchmark MPLAY COMPL DOLFYN PHP COMPL C-RAY SMALLPT STOCKFISH FFMPEG MENCODER N-QUEENS PI PROGRAM
Portanto na parte de consumo de energia o processador ARM Cortex-A7 da placa CubieTruck, de acordo com os resultados e comparações feitas, provou ser econômico, porém devido ao tempo de execução dos testes terem demorado mais do que na arquitetura i386, seu tempo fez com que em alguns casos o consumo de energia (joules) gasto para realizar o processo executado foi superior ao do Core i5, não obtendo uma eficiência energética consideravelmente boa.
Gráfico 10– Relação Consumo x Tempo
5 CONCLUSÃO
Um dos assuntos mais comentados na atualidade no ramo da tecnologia, como reduzir o consumo de energia sem a perda de desempenho, com o sucesso da arquitetura ARM em dispositivos móveis, obteve-se a ideia de realizar este trabalho realizando testes em processadores das arquiteturas ARM e i386.
A partir da idealização do trabalho, foi necessário um maior conhecimento teórico sobre as arquiteturas que seriam avaliadas, assim como sobre benchmark e os equipamentos que seria utilizados.
Após selecionado o benchmark, obteve-se os resultados das arquiteturas, cujo qual apresentaram um bom desempenho nos testes de performance e tempo.
Quando comparados entre eles, chegamos a definição que o processador da arquitetura i386, chega ser 7 vezes maior o desempenho comparado ao processador utilizado pela arquitetura ARM.
Já em contrapartida o processador Cortex-A7, comprova uma grande eficiência em consumo energético sendo 7 vezes menor seu consumo TDP, contanto devido ao seu baixo desempenho em executar as tarefas foi verificado um aumento considerável no tempo de execução, provocando uma baixa economia de energia chegando próximo da arquitetura i386.
Portando com tais resultados, se a busca for para fins de desempenho, onde os resultados são exigidos em um tempo baixo, o indicado para tais fins ainda são processadores da arquitetura i386, que conseguiu um melhor desempenho nos testes realizados.
Mas se o usuário estiver buscando por uma economia de energia sem a necessidade de um alto desempenho, o processador ARM é o indicado, pois apesar dos resultados obtidos não terem sido em níveis altíssimos de economia, verifica-se que os processadores ARM ainda assim são mais eficientes em tempo de economia de energia.
Com o forte avanço por parte dos processadores ARM na parte de desempenho, não será surpresa vermos esses processadores invadir ainda mais o mercado e se fazendo mais presente em computadores.
Trabalhos Futuros
- Realizar testes em equipamentos com outras versões do Cortex-A, buscando qual teria o melhor desempenho e consumo.
- Realizar testes em vários computadores e diferentes arquiteturas para uma avaliação de desempenho e consumo de energia das mesmas.
- Verificar qual será a melhor versão dos Cortex-A em desempenho e eficiência energética.
- Verificar a arquitetura ARM e analisar o que ocasionou tamanha perca de desempenho.
6 REFERÊNCIAS BIBLIOGRAFICAS
ALLWINNER A20; Allwinner Technology. Disponível em: <
https://en.wikipedia.org/wiki/Allwinner_Technology#A2x_and_A3x_family> Acesso em 20/maio 2016.
ANDROID AUTHORITY. Developing on ARM – Everything you need to know.
Disponível em :< http://www.androidauthority.com/developing-arm-everything-need-know-389402/> Acesso em 18/Fev. 2016
ARM a, Cortex-A7 Processor. Disponível em: < http://www.arm.com/products/ processors/cortex-a/cortex-a7.php > Acesso em 31/jan.2016
ARM b, Cortex-A8 Processor. Disponível em: < http://www.arm.com/products/ processors/cortex-a/cortex-a8.php> Acesso em 31/jan.2016
ARM c, Cortex-A9 Processor. Disponível em: < http://www.arm.com/products/ processors/cortex-a/cortex-a9.php> Acesso em 01/fev.2016
ARM d, Cortex-A15 Processor. Disponível em: < http://arm.com/products/ processors/cortex-a/cortex-a15.php> Acesso em 01/fev.2016
ARM e, Cortex-A35 Processor. Disponível em: < http://arm.com/products/ processors/cortex-a/cortex-a35.php> Acesso em 01/fev.2016
ARM f, Cortex-A57 Processor. Disponível em: < http://arm.com/products/ processors/cortex-a/cortex-a57.php> Acesso em 01/fev.2016
ARM g, Cortex-A72 Processor. Disponível em: < http://arm.com/products/ processors/cortex-a/cortex-a72.php> Acesso em 01/fev.2016
ARMv8, ARMv8-A Architecture. Disponível em:
<https://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php> Acesso em 08/fev.2016.
ARRUDA, Felipe. História dos Processadores. Disponível em: <
http://www.tecmundo.com.br/historia/2157-a-historia-dos-processadores.htm> Acesso em 30/jan. 2016
BAILEY, David H. The NAS Parallel Benchmarks.
CARLSON, Brian,Going “beyond a faster horse”to transform mobile devices. Texas Instruments. Dallas, 2011. Disponível em: <
COMPARISON OF ARMV7-A CORES. Disponível em :<
https://en.wikipedia.org/wiki/Comparison_of_ARMv7-A_cores> Acesso em 16/abr. 2016.
CORTEX. Disponível em :<http://www.hardware.com.br/artigos/cortex/> Acesso em 21/maio 2016.
CUBIEBOARD. A discussão do modelo cubietruck segundo PCB. Disponível em: < http://cubieboard.org/2013/06/22/the-2nd-pcb-model-cubietruck-discussion/>
Acesso em 16/abr. 2016.
CUBIETRUCK. The 2nd PCB model cubietruck discussion. Disponível em: < http://cubieboard.org/2013/06/22/the-2nd-pcb-model-cubietruck-discussion/> Acesso em 12/marc. 2016.
CUBIETRUCKFORUM. Disponível em:
<http://www.cubieforums.com/index.php?topic=1477.0> Acesso 20/maio.2016. DINIZ, Juliana Regueira Basto; BARROS, Abner Correa, Infraestrutura de
Hardware. Recife 2002.
EXTREMETECH. Disponível em :< http://www.extremetech.com/gaming/204148-arm-details-its-upcoming-cortex-a72-microarchitecture> Acesso em 12/mar. 2016. GOMES, Pedro H, LEITE, Tatiana S.,CAETANO, Uirauna Arquitetura ARM. Disponível em:
<http://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s2005/Trabalho/g20-arm.pdf> Acesso em 21/maio 2016
GOODACRE, John. Technology Preview: The ARMv8 Architecture. White Paper
ARM, 2014. Disponível em:<
https://www.arm.com/files/downloads/ARMv8_white_paper_v5.pdf> Acesso em 11/fev 2016
GREENHALGH, Peter, Big.LITTLE Processing with ARM Cortex™-A15 &
Cortex-A7. 2011.
INTEL. Disponível em < http://ark.intel.com/pt-br/products/53452/Intel-Core-i5-2450M-Processor-3M-Cache-up-to-3_10-GHz?q=2450m> Acesso em 16/abr.2016. MORIMOTO, Carlos E.; O avanço do ARM: Cortex A8 e CortexA5. 2009
Disponível em :< http://www.hardware.com.br/dicas/cortex.html> Acesso em 01/fev. 2016.
MORIMOTO, Carlos E.; Cortex A9: a era multi-core. 2012 Disponível em
:<http://www.hardware.com.br/tutoriais/evolucao-dos-smartphones-parte3/cortex-era-multi-core.html> Acesso em 02/fev.2016.
MORIMOTO, Carlos. Processadores. 2007 Disponível em: <
http://www.hardware.com.br/livros/hardware/processador.html > Acesso em 30/jan. 2016
MURDOCCA, Milles J.; HEURING, Vincent P. Introdução a Arquitetura de
Computadores. Rio de Janeiro: Campus, 2000.
OPENBENCHMARKING. Disponível em: <http://openbenchmarking.org/> Acesso em 12/mar. 2016.
PHORONIX-TEST-SUITE. Disponível em <http://www.phoronix-test-suite.com/> Acesso em 16/abr. 2016.
PRADO, Sergio, A onipresente arquitetura ARM Disponível em: <
http://sergioprado.org/a-onipresente-arquitetura-arm/>Acesso em 03/Fev. 2016 SAMSUNG, Samsung RF511. 2016. Disponível :<
http://www.samsung.com/br/support/model/NP-RF511-SD3BR> Acesso em 01/maio 2016