Você está na página 1de 8

Arquiteturas Multicore

RA: 098362 Instituto de Computao Universidade Estadual de Campinas

Giovani Chiachia

giovanichiachia@gmail.com

RESUMO
O ritmo de evolu ca o das m aquinas paralelas mudou drasticamente com a ado ca o por parte das grandes companhias ao modelo de computa ca o de m ultiplos n ucleos. Previs oes indicam que no ano de 2022 ser ao necess arios processadores com um desempenho 300 vezes maior que os atuais. At e mesmo em contextos mais restritos os processadores multicore est ao sendo exigidos. Isso faz com que eles sejam objeto de grande interesse comercial e cient co. Esse trabalho discorre sobre as muitas possibilidades de implementa ca o das arquiteturas multicore, ponderando as particularidades de cada uma delas e oferecendo um panorama sobre os modelos comerciais as concebe.

Recentemente, o ritmo de evolu ca o das m aquinas paralelas mudou drasticamente com a ado ca o por parte das grandes companhias ao modelo de computa ca o de m ultiplos n ucleos. Esta foi a forma encontrada por seus arquitetos para manter a taxa de aumento de desempenho estabelecida pela lei de Moore e observada pelos consumidores. O paradigma de evolu ca o at e ent ao baseava-se principalmente no aumento da frequ encia de opera ca o dos processadores de n ucleo u nico. No entanto, o aumento no consumo de energia resultante desta abordagem e proporcionalmente maior que o ganho de desempenho. Em fun ca o disto, o superaquecimento destes processadores tornou-se uma de suas principais limita co es [2]. Na abordagem multicore, o aumento do desempenho est a relacionado com o aumento do n umero de n ucleos de processamento, e n ao com a frequ encia de opera ca o dos n ucleos. Embora isso seja uma grande vantagem, esta solu ca o traz consigo as complica c oes inerentes ` a programa ca o paralela. Em grande parte, estas complica co es s ao resultantes do gerenciamento hier arquico das mem orias, nas quais os dados armazenados precisam ser compartilhados por diferentes processadores [2]. De acordo com o roadmap ITRS [3], para atender as demandas crescentes, no ano de 2022 ser ao necess arios processadores com um desempenho 300 vezes maior que os atuais. At e mesmo em contextos mais restritos os processadores multicore de prop osito geral j a est ao sendo, e ser ao ainda mais, exigidos. Em dispositivos como os smart phones, por exemplo, tais processadores v em de encontro com a necessidade de processar sinais digitais de forma simult anea com aplica co es de outras naturezas. Essa perspectiva, aliada aos desaos que ela representa, faz com que as arquiteturas multicore sejam objeto de grande interesse comercial e cient co. Conforme veremos ao longo das pr oximas se c oes, o objetivo deste trabalho e apresentar uma vis ao geral sobre as arquiteturas multicore. Para isto, cobriremos na Se c ao 2 os principais atributos que as caracterizam. Em seguida, na Se ca o 3, apresentaremos uma s erie de implementa co es comerciais de arquiteturas multicore. Ao nal dessa mesma se ca o, tr es dessas arquiteturas, cada qual com suas particularidades, ser ao apresentadas com maior renamento. Por m, na Se ca o 4 faremos algumas considera co es nais sobre o tema.

Palavras-chave
Multicore, Arquitetura de Computadores, Computa ca o Paralela

1.

INTRODUO

A hist oria da computa ca o paralela pode ser contada a partir de meados da d ecada de 1960, com o surgimento do computador Solomon [1]. Por em, a diculdade em program alo restringiu inicialmente seu uso a cientistas e engenheiros que entendiam o dom nio de suas aplica co es e tinham recursos e conhecimentos para tal. Nas d ecadas subsequentes, esse mesmo motivo fez com que iniciativas de muitas companhias na cria c ao de m aquinas paralelas fossem frustradas. Uma das exce co es foi a m aquina vetorial Cray. Por em, essas m aquinas tamb em possu am um processador escalar muito r apido que podia ser programado de maneira convencional. Al em disso, o paradigma de programa ca o vetorial n ao era t ao intimidador quanto a programa ca o paralela de prop osito geral [1]. Trabalho 2 da disciplina de Arquitetura de Computadores do Programa de P os-Gradua ca o do IC-UNICAMP http://www.ic.unicamp.br/~ducatte/mo401/1s2010/ trabalho2.html

2.

PRINCIPAIS ATRIBUTOS

As arquiteturas multicore podem ser classicadas de muitas maneiras. De acordo com Blake et al. [1], a classe de aplica ca o, a rela ca o consumo de energia/desempenho, os elementos de processamento e o sistema de mem oria est ao entre os atributos mais importantes.

porte a execu ca o de v deos, por exemplo, deve gastar pouca energia para isso. Mesmo assim, a execu c ao do v deo deve satisfazer certas caracter sticas de qualidade. O desempenho dos processadores sempre foi o principal objetivo dos projetistas. Por em, na u ltima d ecada, o baixo consumo de energia tamb em passou a ser tratado como um requisito de grande import ancia. Em grande parte, isto se deve ao crescimento do mercado de telefones celulares e de computadores port ateis, onde o tamanho e a vida u til das baterias s ao restri co es cr ticas. Mais recentemente, o crescimento dos data centers como suporte ` a computa c ao em nuvem fez com que o consumo de energia tamb em se tornasse um atributo importante no desenho de computadores n ao-port ateis. O modelo de processamento de prop osito geral com m ultiplos n ucleos se encaixa muito bem ` as demandas desses data centers, que j a consomem mais energia que as industrias de base nos Estados Unidos [1]. Esses data centers s ao t ao grandes que o consumo de energia dos componentes multicore s ao cr ticos para os seus custos e sua opera ca o.

2.1

Classe de Aplicao

Se uma arquitetura e concebida para atender a um dom nio espec co de aplica ca o, ela pode ser desenhada para responder melhor ` as caracter sticas desse dom nio. Como resultado, espera-se que esta arquitetura seja eciente para esse dom nio, mas provavelmente ela ser a ineciente para outros. O ajuste de uma solu ca o para um dom nio espec co de aplica ca o pode trazer muitas consequ encias positivas. A melhor delas talvez seja a economia de energia. Processadores de Sinais Digitais (DSPs) s ao um bom exemplo disso. Os dom nios de aplica ca o podem ser divididos em duas grandes classses: Os dominados pelo processamento de dados e os em que o processamento de controles prevalece.

2.1.1

Processamento de Dados

2.3

Elementos de Processamento

Muitas aplica co es s ao dominadas pelo processamento de dados. Entre as mais conhecidas, podemos citar a rasteriza ca o de gr acos, os processamentos de imagens e de audio e o processamento de comunica c oes wireless. Muitos algoritmos para processamento de sinais fazem parte deste grupo. Nessas aplica co es, a computa ca o baseia-se tipicamente em uma sequ encia de opera co es sobre um stream de dados onde pouca ou nenhuma informa ca o e reusada e um alto throughput e necess ario. Estas opera co es podem frequentemente ser feitas em paralelo. Por isso, elas favorecem uma arquitetura que tenha tantos elementos de processamento quanto poss vel, mas sem exceder a rela c ao entre consumo de energia e desempenho almejada.

Sobre os elementos de processamento, podemos abord a-los em dois aspectos, sua arquitetura e sua microarquitetura. A arquitetura est a relacionada ao conjunto de instru co es (em ingl es, ISA) e dene a interface entre o hardware e o software. A microarquitetura, por sua vez, tem a ver com a implementa c ao do conjunto de instru co es.

2.3.1

Arquitetura

2.1.2

Processamento de Controles

As aplica co es aonde o processamento de controles e dominante incluem a compress ao/descompress ao de arquivos, os processamentos em rede e a execu ca o de opera co es transacionais. Nesses tipos de aplica ca o, os programas tendem a possuir muitos desvios condicionais, dicultando o paralelismo. Al em disso, eles muitas vezes precisam manter uma s erie de informa co es sobre seu pr oprio estado e normalmente fazem reuso de uma grande quantidade de dados. Por isso, essas aplica co es favorecem um n umero modesto de elementos de processamento de prop osito geral para lidar com a natureza desestruturada do seu c odigo devido aos controles. Na maioria dos casos, nenhuma aplica c ao se ajusta exatamente a uma dessas duas divis oes. Em um codec de v deo, por exemplo, o processamento pode ser dominado por dados ao se processar algum ltro sobre os quadros, mas pode ser dominados por estruturas de controle quando o v deo e comprimido ou descomprimido. No entanto, e interessante pensar nessa divis ao para entender como diferentes arquiteturas multicore podem afetar o desempenho de aplica co es com caracter sticas espec cas.

Em processadores multicore convencionais, o ISA de cada n ucleo e tipicamente um ISA legado dos processadores mais antigos com pequenas modica co es para suportar paralelismos, tal como a adi ca o de instru co es at omicas para sincroniza c ao. A vantagem desses ISAs que mant em o legado das instru co es e a sua compatibilidade tanto com as implementa co es quanto com as ferramentas de programa ca o j a existentes. Os ISAs podem ser classicados como reduzidos (RISC, em ingl es) ou complexos (CISC, em ingl es). No entanto, muitas m aquinas CISC se parecem com suas correspondentes RISC uma vez que a decodica ca o das instru co es complexas e feita. Os c odigos em uma m aquina CISC s ao menores em fun ca o da riqueza sem antica das instru co es. Por outro lado, as m aquinas RISC facilitam o trabalho dos compiladores e sua microarquitetura e mais f acil de ser implementada. Al em das deni co es b asicas do ISA, os fabricantes t em continuadamente melhorado o desempenho de opera co es mais comuns atrav es de extens oes adicionadas ao conjunto. A Intel, por exemplo, adicionou os subconjuntos MMX, MMX2 e SSE14 [4] para melhorar o desempenho dos processamentos multim dia. De forma similar, outros fabricantes seguiram o mesmo caminho. Essas instru c oes permitiram melhorar a rela ca o entre consumo de energia e desempenho por empregarem partes especializadas do hardware em sua execu ca o (e.g., obter a transposta de um vetor).

2.2

Relao Consumo de Energia/Desempenho

2.3.2

Microarquitetura

Muitos dispositivos possuem requisitos de consumo de energia e desempenho restritos. Um telefone celular com su-

A microarquitetura dos elementos de processamento e respons avel, em muitos aspectos, pelo desempenho e pelo consumo de energia que podem ser esperados de um multicore.

Essa microarquitetura e normalmente associada ao dom nio de aplica ca o para o qual o processador multicore e desenhado. Apesar de grandes fabricantes como a Intel oferecem ao mercado processadores multicore com n ucleos homog eneos, muitas vezes e vantajoso combinar diferentes tipos de elementos de processamento em uma mesma arquitetura. Uma forma de organiza ca o heterog enea consiste no emprego de um processador de controle para comandar as atividades de um grupo de n ucleos mais simples dedicados ao processamento de dados. Um dos benef cios dessa organiza ca o e reduzir o consumo de energia sem perder desempenho. Por em, o modelo de programa c ao desse tipo de arquitetura e normalmente mais complicado. O tipo mais simples de elemento de processamento faz o despacho das instru c oes na ordem em que elas est ao no programa. Nele, os data forwarding e os hazards de controle s ao tratados dinamicamente. A partir desse modelo, h a duas frentes que podem ser trabalhadas para obter um desempenho superior. Primeiramente, m ultiplos pipelines podem ser adicionados para ler e despachar mais de uma instru ca o em paralelo, criando um elemento de processamento superscalar. No entanto, o aumento no n umero de instru co es despachadas requer uma l ogica extra para lidar com os data forwarding e as detec co es de hazards necess arias para assegurar a corretude da execu ca o. A complexidade dessa l ogica cresce mais do que o quadrado do n umero de pipelines e o ponto em que os ganhos n ao s ao compensadores e rapidamente atingido. Experimentos com processadores de prop osito geral sugerem que esse ponto seja em torno de tr es a quatro pipelines, mas isso depende muito da aplica ca o [1]. A segunda frente de melhorias baseia-se no aumento do n umero de est agios do pipeline, reduzindo a l ogica contida em cada est agio. Isso permite que o per odo do clock seja reduzido, mas tamb em faz com que a penalidade diante de um desvio seja maior. Os elementos de processamento com despacho em ordem s ao sicamente menores, consomem menos energia e podem ser facilmente combinados em grandes quantidades para atender aplica co es que possuem alto paralelismo em n vel de thread (TLP, em ingl es) e pequenos trechos de processamento sequencial. Como exemplo, a arquitetura G200 da NVIDIA [5] implementa 240 n ucleos em ordem em fun ca o do processamento gr aco ser altamente paralelo, com poucas se co es de processamento sequencial. Para explorar o tanto quanto poss vel de paralelimo na execu c ao de c odigos sequenciais em n ucleos superescalares, a execu ca o fora de ordem e empregada. Seu objetivo e encontrar dinamicamente uma sequencia em que as opera co es possam ser executadas de modo a manter o pipeline o mais cheio poss vel. Todavia, este agendamento din amico requer o emprego de circuitos complexos e que consomem muito energia. Os n ucleos com execu ca o fora de ordem s ao mais adequados a aplica co es que possuem muitos tipos de comportamento e que demandam por alto desempenho. A maioria dos processadores fora de ordem fazem o despacho de m ultiplas instru co es simultaneamente. Pelo fato deles serem maiores e consumirem mais energia, na pr atica, poucos n ucleos fora de ordem podem ser combinados. Mesmo assim, eles s ao prefer veis para execu ca o de aplica co es que s ao dominadas por extruturas de controle com grandes por co es de c odigo sequencial e que possuem um TLP moderado. Esse e o caso do processador ARM Cortex A9 [6], dirigido

ao uso em netbooks e que emprega um conjunto de n ucleos fora-de-ordem. Ainda no intuito de melhorar o desempenho das arquiteturas superescalares, mas desconsiderando a necessidade de lidar com a l ogica complexa necess aria para execu ca o apropriada de uma sequencia de instru co es, os conceitos de u nica instru c ao sobre m ultiplos dados (SIMD, em ingl es) ou de instru c oes com palavras muito longas (VLIW, em ingl es) podem ser empregados. A arquitetura SIMD faz uso de registradores maiores que s ao divididos em por co es de informa ca o menores a serem processadas simultaneamente pela mesma instru ca o. Um exemplo simples de utiliza ca o do conceito e no c alculo do produto escalar entre dois vetores, onde cada par de elementos e processado em paralelo. Este tipo de arquitetura e muito aderente a aplica co es onde o processamento de dados e intensivo e independente. O processador IBM Cell [7] faz uso de m ultiplos n ucleos SIMD talhados para execu ca o de aplica co es dominadas pelo processamento de dados. Para evitar as limita co es da arquitetura SIMD, onde apenas uma instru ca o pode operar sobre os dados, as instru co es VLIW podem ser usadas. Nela, m ulitplos pipelines s ao usados. Por em, ao contr ario de um n ucleo superescalar t pico, n ao h a necessidade de se fazer forwarding, de agendar as instru co es, ou ainda de detectar hazards, pois espera-se que o compilador fa ca isso atrav es do agrupamento das instru co es em pacotes que possam ser executados em paralelo sem ferir restri co es de dados ou de controle. Como se pode observar, a complexidade nessa arquitetura e transferida para o compilador e ela pode ser muito afetada caso o compilador n ao consiga encontrar um n vel satisfat orio de paralelismo. As arquiteturas VLIW e SIMD resultam em boas rela co es entre desempenho e consumo de energia, mas normalmente s ao adequadas somente para nichos espec cos de aplica ca o com um grande n umero de opera co es independentes que podem ser exploradas pelo compilador ou pelo programador.

2.4

Sistema de Memria

Em arquiteturas monoprocessadas, o sistema de mem oria e relativamente simples, consistindo em alguns poucos n veis de mem oria cache para alimentar o processador com dados e instru co es. Nas arquiteturas multicore, as mem orias cache s ao apenas parte do sistema de mem oria. Os outros componentes incluem o modelo de consist encia dos dados, os mecanismos para coer encia entre as caches e a forma de interconex ao entre elas. Esses componentes determinam como os n ucleos se comunicam e impactam na programa ca o, no desempenho das aplica co es paralelas e no n umero de n ucleos que o sistema comporta.

2.4.1

Modelo de Consistncia

O modelo de consist encia dene como as opera co es em mem oria podem ser reordenadas enquanto o c odigo est a sendo executado. Ele determina o quanto de esfor co e requerido do programador ao escrever c odigos paralelos. Modelos mais fracos exigem que o programador dena explicitamente como o c odigo deve ser agendado no processador e possui protocolos de sincroniza ca o mais complexos. Por outro lado, os modelos mais robustos requerem menos esfor co do programador com rela ca o ` as sincroniza co es. O uso de um ou de outro tamb em causa um impacto direto no desempenho. Por

mal. Para os acessos do tipo streaming, as caches podem dar lugar ` as mem orias locais, que s ao tipos n ao gerenciados de cache onde n ao h a tags, o tempo de acesso e determin stico e o controle e feito por software. A arquitetura Microsoft Xenon [8] implementa este tipo de comportamento. Normalmente, o tamanho das caches est a associado ao tamanho do circuito do qual ela faz parte e ao consumo de energia a ela permitido. Esta tem sido uma tend encia na elabora ca o de arquiteturas de prop osito geral que deve lidar com grande reuso de dados, como e o caso dos processadores Intel Core i7 [9]. O n umero de n veis de cache tem crescido a medida que os elementos de processamento aumentam tanto em quantidade quanto em velocidade. A principal considera c ao para determin a-lo e a dist ancia, em ciclos, entre os n ucleos e a mem oria principal. Quanto maior ela for, mais n veis de cache s ao desej aveis [1]. O primeiro n vel de cache e normalmente pequeno, r apido e particular de cada elemento de processamento. Os n veis subsequentes v ao crescendo em tamanho e lat encia e passam a ser compartilhados por diferentes n ucleos. Em arquiteturas multicore embarcadas, pelo fato da dist ancia entre ciclos ser normalmente menor, um n vel de cache e muitas vezes suciente, o que tamb em contribui na redu ca o do tamanho e do consumo de energia da arquitetura.

Figura 1: Ilustra c ao dos modelos de consist encia [1]. restringirem a ordem como o sistema de mem oria e autorizado a propagar leituras e escritas aos processadores, os modelos mais robustos impactam consideravelmente o desempenho da aplica ca o. No modelo de consist encia sequencial, por exemplo, todos os processadores do sistema devem enxergar todas as leituras e escritas tal como elas ocorrem globalmente e no programa. J a nos modelos mais fracos, os processadores n ao precisam necessariamente enxergam as leituras e escritas feitas por outros processadores na ordem em que elas acontecem. Em fun ca o dessa baixa consist encia, os modelos mais fracos requerem que os programadores fa cam uso de primitivas conhecidas como barriers e fences para for car a consist encia quando ela e necess aria. Os modelos de consist encias est ao ilustrados na Figura 1. Nela, cada um dos processadores P1-P4 est ao despachando escritas (e.g., X = 1) e leituras (e.g., R(Z ) = 0). O modelo de consist encia sequencial determina que todas as leituras e escritas para todos os endere cos sejam vistas na mesma ordem por todos os processadores. Isso e o que ocorre, por exemplo, quando P2 l e Z e o valor retornado e o que foi escrito previamente por P4. Essa comunica ca o e tipicamente for cada por uma media ca o estabelecida atrav es da rede de interconex ao. No caso do modelo de consist encia fraca, P2 l e Z e o resultado retornado e zero. Neste caso, o modelo de consist encia permite que n ucleos diferentes enxerguem diferentes ordens globais de execu ca o. Por relaxarem a sincroniza ca o, esses modelos s ao mais f aceis de serem implementados, deixando o esfor co por conta do programador. J a os modelos mais robustos, al em de complicados, tamb em s ao lentos pelo fato de n ao obterem as vantagens do acesso fora de ordem ` a mem oria.

2.4.3

Interconexo e Coerncia

A interconex ao entre os diferentes n veis na hierarquia da mem oria e respons avel pela comunica ca o geral entre os elementos de processamento e tamb em pela coer encia (se presente) entre as caches. H a muitas formas de se fazer esta interconex ao. Podemos faz e-la por meio de um barramento, de um an el, de um crossbar ou mesmo atrav es do conceito de network-on-chip (NoC). Cada um dos tipos de interconex ao tem suas vantagens e desvantagens. O barramento, por exemplo, e simples de implementar, mas quando empregado entre um grande n umero de n ucleos, rapidamente se torna proibitivo tanto em termos de largura de banda quanto de lat encia. O NoC, por outro lado, tem boa escalabilidade, mas e mais dif cil de conceber. Os mecanismos para manter a coer encia dos dados s ao fundamentais na deni ca o do modelo de programa ca o que deve ser usado na arquitetura. Atrav es deles, uma u nica imagem da mem oria e mantida automaticamente para o acesso de todos os processadores. Portanto, esses mecanismos s ao essenciais entre aplica co es que compartilham informa ca o. Eles s ao muito comuns em processadores de prop osito geral, tal como o ARM Cortex A9 [6]. Dois modelos de coer encia podem ser implementados: o baseado em broadcast e o baseado em diret orio. O modelo de coer encia baseado em broadcast e simples. Ele a obt em atrav es do aviso a todos os elementos de processamento de que um determinado n ucleo precisa fazer uso de uma informa ca o de uso global. Esses avisos s ao tratados um por vez e os conitos s ao resolvidos atrav es de sua sequencializa c ao. De uma forma geral, essa abordagem e aplic avel para um pequeno n umero de processadores, como e o caso do Intel Core i7 [9]. A coer encia baseada diret orio, por outro lado, permite que um grande n umero de elementos de processamento sejam in-

2.4.2

Congurao da Cache

As mem orias caches s ao muito importantes nas arquiteturas multicore, onde muitos elementos de processamento tentam acessar a mem oria principal, que e lenta por deni ca o. O tamanho que os diferentes n veis devem possuir depende muito da aplica ca o. Caches maiores oferecem melhor desempenho at e certo ponto. A partir de um determinado tamanho, seu desempenho come ca a decair. Mem orias cache grandes tamb em podem n ao contribuir para o desempenho de aplica co es que usam os dados apenas uma vez, tal como a decodica ca o de v deo. Neste caso, e desej avel que a cache trabalhe com modos de opera co es diferentes. Ou seja, ora para acessos do tipo streaming e hora para acessos com comportamento nor-

Tabela 1: Resumo dos pr os e contras considerados na concep c ao de um sistema de mem oria.


MEMORIA NO CHIP Caches Armaz. local COERENCIA Sim N ao INTERCONEXAO Barramento Anel NoC Crossbar PROS Prov e acesso ` a mem oria principal com baixa lat encia, pode ser facilmente congurado em m ultiplos n veis Pode armazenar mais dados por area que a cache, e poss vel garantir respostas em tempo real PROS Prov e o comportilhamento de dados entre os processadores, suporta todos os modelos de programa c ao F acil de implementar PROS F acil de implementar, todos os processadores t em a mesma lat encia ao comunicar-se com os outros e com a mem oria Suporta um n umero maior de processadores em compara ca o ao barramento Suporta muitos processadores, e as lat encias n ao-uniformes s ao menos variantes do que no modelo Anel o mais escal E avel, suporte um n umero muito grande de n ucleos, lat encias uniformes CONTRAS N ao e poss vel garantir respostas em tempo real, uma parte do chip e dedicada ` as TAGS Deve ser controlado por software CONTRAS Dif l de implementar Restringe os modelos de programa c ao CONTRAS Baixa escalabilidade, suporte um pequeno n umero de processadores Lat encias n ao-uniformes, requer l ogica de roteamento Requer l ogica de roteamento sosticado Requer uma l ogica de arbitragem sosticada e requer uma grande area no chip

terligados pelo fato dela possibilitar que m ultiplas a co es de coer encia sejam tomadas simultaneamente. Esse diret orio e normalmente distribu do em n os e possui informa c oes sobre quais caches cont em quais endere cos de mem oria. Cada endere co e atribu do a um n o do diret orio. Quando um acesso e requerido, o processador consulta o n o em que o endere co est a armazenado para saber quais processadores est ao fazendo uso daquela informa ca o. Dessa forma, esse processador pode negociar com os demais para obter as permiss oes de acesso que ele deseja. A coer encia baseado em diret orio e mais apropriada para modelos de consist encia fracos e sistema com muitos n ucleos, tal como o Tilera TILE 64 [10]. comum encontrar arquiteturas multicore que omitem os E mecanismos de coer encia entre as caches para reduzir sua complexidade. Muitos processadores multicore atuais n ao possuem esse mecanismos, incluindo o IBM Cell [7]. Essa aus encia implica que a coer encia dos dados deve ser garantida pelo software durante sua execu ca o. Isto limita o modelo de programa ca o a variantes do modelo de passagem de mensagens. Para dom nios de aplica ca o que compartilham pouca informa ca o, essa pode ser uma boa op ca o. As decis oes a serem tomadas ao denir o sistema de mem oria est ao resumidas na Tabela 1.

tante apropriados para aplica co es dominadas por estruturas de controle. Nesse contexto, o consumo de energia e muito importante pelo fato de que eles ser ao alimentados por baterias. Na Figura 3, as arquiteturas s ao mais especializadas, e dirigidas a computa c ao de alto desempenho. Neste sentido, elas empregam um n umero expressivo de n ucleos. Como podemos observar, nas arquiteturas AMR R700 e NVIDIA G200, esse n umero e na casa das centenas. A arquitetura IBM Cell e heterog enea, com um n umero modesto de n ucleos altamente especializados. Normalmente, essas solu co es consomem bastante energia, variando entre 100W e 180W. Na Figura 4, podemos observar arquiteturas espec cas para determinados dom nios de aplica ca o. A maioria dessas aplica co es s ao dominadas pelo processamento de dados, como e o caso das comunica co es wireless e dos codecs de audio e v deo, onde paralelismos intr nsecos s ao explorados. As caracter sticas das redes de interconex ao tamb em costumam ser ajustadas diante das especicidades da aplica ca o. A combina c ao desses fatores resulta em arquiteturas com altas taxas de opera co es por ciclo e sem um consumo excessivo de energia. A seguir, abordaremos tr es desses modelos com maiores detalhes.

3.

MODELOS COMERCIAIS

3.1

Nos dias de hoje, h a uma grande quantidade de arquiteturas multicore sendo oferecidas no mercado e direcionadas a todos os nichos, desde o segmento de sistemas embarcados, passando pelo de desktops de prop osito geral at e o segmento de servidores. Conforme j a mencionado, isto se deve ` a necessidade de aumentar o desempenho sem aumentar muito o consumo de energia. Para oferecer um panorama geral dos modelos oferecidos, n os zemos um recorte do recente trabalho de Blake et al. [1], onde alguns dos principais modelos s ao destacados. As quatro primeiras linhas da Figura 2 representam uma sele c ao feita pelos autores de multicores de prop osito geral. Todos esses modelos empregam um n umero limitado de processadores id enticos com caches grandes. Essas arquiteturas s ao direcionadas aos mercados de desktops e de servidores onde o baixo consumo de energia n ao e um fator priorit ario. As demais linhas da Figura 2 tamb em apresentam arquiteturas multicore, por em destinadas ao mercado de computa ca o m ovel e embarcada. Elas tamb em apresentam n ucleos de prop osito geral bas-

Silicon Hive HiveFlex CSP2x00 Series Processamento de Sinais Digitais

O HiveFlex CSP2x00 Series [11] e uma arquitetura com n ucleos soft poderosos e que operam na faixa de um quarto de watt. Seu diagrama de blocos pode ser visto na Figura 5. Para obter baixo consumo, uma cole ca o heterog enea, e apropriada para o desempenho almejado, de n ucleos e empregada. A arquitetura consiste de um n ucleo de controle, destinado ao processamento de prop osito geral. Este n ucleo baseia-se no conceito VLIW e pode fazer despachos simult aneos de duas instru co es. Quando submetido a opera co es com dados, ele repassa o processamento aos chamados n ucleos complexos. Esses n ucleos complexos tamb em s ao VLIW, fazem at e cinco despachos simult aneos e contam com ALUs espec cas conectadas a uma grande mem oria RAM local. Os n ucleos complexos n ao suportam desvios, ou seja, eles devem ser alimentados com trechos lineares de c odigo pelo n ucleo de controle. Essa caracter stica faz com que os n ucleos complexos sejam simplicados, o que permite econo-

Figura 2: Arquiteturas multicore de prop osito geral para servidores, desktops e aplica c oes embarcadas/m oveis. Tabela e refer encias de [1].

Figura 3: Arquiteturas multicore de alto desempenho. Para obten c ao das refer encia dos modelos, consulte [1].

Figura 4: Arquiteturas multicore para processamento de sinais e espec cos. As refer encias dos modelos s ao as de [1].

Figura 5: Concep c ao em blocos da arquitetura HiveFlex CSP2x00 Series [1]. mia tanto em area f sica quanto em consumo de energia. Al em disso, o CSP2x00 possui uma hierarquia de mem oria bastante simples. A coer encia e a consist encia dos dados devem ser controladas pelo software em execu ca o no n ucleo de controle. O barramento que prov e a interconex ao e usado basicamente para transferir comandos entre o n ucleo de controle e os n ucleos complexos, que por sua vez comunicam-se entrei si atrav es atrav es da mem oria RAM local. Todas essas caracter sticas fazem com que essa arquitetura consuma muito pouca energia, por em, que obtenha alto desempenho. No entanto, criar softwares ecientes para ela n ao deixa de ser um desao.

3.2

ARM Cortex A9 - Propsito geral mvel

A arquitetura ARM Cortex A9 [6] foi concebida para computa ca o m ovel de prop osito geral e pode ser customizada antes de ser produzida. Na Figura 6 podemos observar seu diagrama de blocos. As congura co es mais usuais consomem pouco energia, em torno de 1W ou menos. Seu projeto foi concebido para atender desde smart phones at e netbooks cheio de recursos. Isso implica em uma arquitetura que consiga processar bem aplica co es dominadas pelo processamento de estruturas de controle. O processamento nos n ucleos do A9 s ao fora de ordem podendo ser despachadas at e tr es instru co es simultaneamente, garantindo bom desempenho de prop osito geral. A interconex ao do sistema de mem oria e feita atrav es de um barramento e h a coer encia entre os elementos de mem oria. Pelo fato do n umero de processadores ser pequeno, a coer encia e baseada em broadcast. As caches s ao relativamente grandes para um processador voltado ao mercado de aplica co es m oveis ou embarcadas. Isso e necess ario para proporcionar clocks mais r apidos e explorar bem processamentos em threads u nicas. Em fun ca o dessas caracter sticas, aplica co es onde o processamento de dados e dominante n ao seriam muito bem exploradas por essa arquitetura.

3.3

Intel Core i7 - Propsito geral

O Intel Core i7 e um processador de prop osito geral em todos os aspectos. Sua concep ca o tem por objetivo fazer tudo bem feito. Isto e obtido ao pre co de um grande consumo de energia, podendo chegar aos 140W. Ele pode ser implementado com at e oito n ucleos, cada qual despachando fora de

4.

CONCLUSES

Figura 6: Diagrama de blocos da arquitetura ARM Cortex-A9 [1].

Conforme pudemos observar neste trabalho, a arquitetura multicore e hoje um paradigma de projeto de processadores atrav fundamental. E es dela que os projetistas das grandes empresas pretendem manter a lei de Moore sem esbarrar nas limita c oes f sicas impostas pela abordagem de n ucleo u nico. Muitas s ao as possibilidades ao implementar arquiteturas multicore, sendo determinante saber as caracter sticas das aplica co es para o qual ela e projetada, tais como o tipo de processamento demandado e as restri co es no consumo de energia. Tamb em vimos que o sistema de mem oria e parte ele fundamental do desenho de um processador multicore. E que ir a ditar o modelo de programa ca o e o n umero de n ucleos comportados pela arquitetura. Essa talvez seja a frente que mere ca mais aten ca o por parte dos projetistas para satisfazer as demandas crescentes pelo aumento de desempenho. ` medida que mais aplica A co es conseguirem extrair as vantagens do processamento paralelo, novas congura co es multicore dever ao ser propostas para atend e-las.

5. REFERNCIAS
[1] G. Blake, R. G. Dreslinski, and T. Mudge, A survey of multicore processors, Signal Processing Magazine, IEEE, vol. 26, pp. 2637, October 2009. [2] J. E. Savage and M. Zubair, A unied model for multicore architectures, in IFMT 08, (New York, NY, USA), pp. 112, ACM, 2008. [3] International technology roadmap for semiconductors-system drivers, tech. rep., ITRS. dispon vel em 11/06/2010 http://www.itrs.net/Links/2007ITRS/2007 Chapters/2007 SystemDrivers.pdf. [4] Intel 64 and ia-32 architectures software developers manual, tech. rep., Intel, November 2008. [5] Nvidias 1.4 billion transistor gpu: Gt200 arrives as the geforce gtx 280 & 260, tech. rep., A. L. Shimpi and D. Wilson, 2008. dispon vel em 11/06/2010 http://www.anandtech.com/video/showdoc.aspx?i=3334. [6] The arm cortex-a9 processors, tech. rep., ARM Ltd., September 2007. dispon vel em 11/06/2010 http://www.arm.com/pdfs/ARMCortexA9Processors.pdf. [7] M. Gschwind, H. P. Hofstee, B. Flachs, M. Hopkins, Y. Watanabe, and T. Yamazaki, Synergistic processing in cells multicore architecture, IEEE Micro, vol. 26, no. 2, pp. 1024, 2006. [8] J. Andrews and N. Baker, Xbox 360 system architecture, IEEE Micro, vol. 26, no. 2, pp. 2537, 2006. [9] Intel core i7-940 processor, tech. rep., Intel Corp., 2009. dispon vel em 11/06/2010 http://ark.intel.com/cpu.aspx?groupId=37148. [10] Tilepro64 processor, tech. rep., Tilera Corp., 2008. dispon vel em 11/06/2010 http://www.tilera.com/pdf/ProductBrief TILEPro64 Web v2.pdf. [11] Hiveex csp2000 series: Programmable ofdm communication signal processor, tech. rep., Silicon Hive, 2007. dispon vel em 11/06/2010 http://www.siliconhive.com/Flex/Site/Page.aspx?PageID=8881.

Figura 7: Diagrama de blocos do Intel Core i7 [1].

ordem at e quatro instru co es em simult aneo. Al em disso, ele faz uso do conceito de symmetric multithreading, conforme pode ser observado na Figura 7. Esses n ucleos cont em uma s erie de aprimoramentos complexos para que possam o extrair o m aximo de paralelismo poss vel na execu ca o de uma u nica thread. Eles tamb em possuem uma unidade SIMD de 128-B para obter as vantagens de eventuais paralelismos sobre os dados. Para continuar compat vel com a maioria dos processsadores Intel, seu conjunto de instru co es e baseado no CISC x86. A concep c ao do Intel Core i7 permite que ele fa ca muitas coisas bem, mas arquiteturas especializadas em determinados dom nios de aplica ca o podem obter desempenho equivalente ou melhor consumindo menos energia. O sistema de mem oria e t pico de arquiteturas multicore de prop osito geral com poucos n ucleos. As caches s ao grandes e h a total coer encia entre elas. A coer encia e do tipo broadcast, que e suciente para o n umero de n ucleos projetados. Esse conjunto de caracter sticas reunidas d a origem a um chip que e bom para uma grande variedade de aplica co es, desde que o consumo de energia n ao seja um problema.