• Nenhum resultado encontrado

Uma Arquitetura Reconfigurável de Granularidade Grossa Para Multicore

N/A
N/A
Protected

Academic year: 2021

Share "Uma Arquitetura Reconfigurável de Granularidade Grossa Para Multicore"

Copied!
6
0
0

Texto

(1)

Uma Arquitetura Reconfigur´avel de Granularidade Grossa

Para Multicore

Francisco Carlos Silva Junior1, Ivan Saraiva Silva1

1Departamento de Computac¸˜ao – Universidade Federal do Piau´ı (UFPI)

Teresina – PI – Brasil

Resumo. Arquiteturas reconfigur´aveis de granularidade grossa tˆem sido pro-postas para prover a flexibilidade e o desempenho necess´ario para aplicac¸˜oes com computac¸˜ao data-intensive e baseadas em fluxo de dados. Contudo, essas arquiteturas necessitam de muitos recursos computacionais para serem implan-tadas. Neste artigo ´e proposta uma arquitetura reconfigur´avel de granularidade grossa que utiliza menos recursos computacionais (elementos de processamen-tos) que os outros trabalhos encontrados na literatura. Uma comparac¸˜ao com o MIPS pipeline ´e feita para medir a acelerac¸˜ao que a arquitetura proporciona. Um trecho de c´odigo de uma aplicac¸˜ao real ´e simulada na arquitetura para verificar o ILP (do inglˆes, Instruction Level Paralelism).

1. INTRODUC

¸ ˜

AO

Nos ´ultimos anos, o aumento na complexidade das aplicac¸˜oes tem exigido cada vez mais desempenho dos processadores. Via de regra, as aplicac¸˜oes atuais utilizam algo-ritmos complexos e tˆem como caracter´ıstica uma computac¸˜ao data-intensive. Para tais aplicac¸˜oes, duas abordagens tˆem sido utilizadas desde o surgimento da tecnologia de desenvolvimento de circuitos integrados. Na primeira abordagem, os processadores de prop´osito geral (GPP - General-Purpose Processors) s˜ao utilizados para a execuc¸˜ao de qualquer aplicac¸˜ao. Na segunda abordagem, hardware dedicado, ou circuitos integrados de aplicac¸˜ao espec´ıfica (ASIC – Application Specific Integrated Circuits) s˜ao utilizados para a execuc¸˜ao de aplicac¸˜oes tamb´em espec´ıficas. Nesta abordagem, o ganho de desem-penho ´e obtido por interm´edio da especializac¸˜ao das estruturas de hardware. Os GPPs s˜ao flex´ıveis o suficiente para executar qualquer aplicac¸˜ao, entretanto, n˜ao conseguem prover o desempenho necess´ario para lidar com a complexidade crescente das aplicac¸˜oes atuais. Por outro lado, os ASICs oferecem alto desempenho e flexibilidade muito baixa, pois pos-suem estruturas de hardware espec´ıficas para a aplicac¸˜ao para a qual foram desenvolvidas. As arquiteturas reconfigur´aveis (AR), viabilizadas a partir da popularizac¸˜ao dos dispositivos program´aveis (FPGA – Field Programmable Gate Array), emergiram como uma soluc¸˜ao arquitetural capaz de unir a flexibilidade dos GPPs com o desempenho dos ASICs [Feng and Yang 2013]. Arquiteturas reconfigur´aveis s˜ao normalmente cons-titu´ıdas de um array de unidades funcionais reconfigur´aveis (UFR) ou elementos de processamento (EP), interconectados por interm´edio de um subsistema de interconex˜ao. Tanto o desempenho quanto a flexibilidade das ARs s˜ao obtidos por interm´edio da explorac¸˜ao do paralelismo intr´ınseco, resultante da disponibilidade de m´ultiplas unida-des funcionais reconfigur´aveis.

Apesar das vantagens citadas, a implantac¸˜ao de uma arquitetura reconfigur´avel pode levar a um consider´avel aumento da ´area e do consumo de energia do sistema

(2)

[Feng and Yang 2013]. Esse aumento se deve ao grande n´umero de recursos computa-cionais (ULA, multiplexadores, banco de registradores, rede de interconex˜ao, etc) que a arquitetura reconfigur´avel necessita. Al´em disto, a explorac¸˜ao dos recursos da AR re-quer a utilizac¸˜ao de algoritmos espec´ıficos que realizam o mapeamento da aplicac¸˜ao na arquitetura reconfigur´avel.

Este trabalho prop˜oe e avalia uma arquitetura reconfigur´avel para processado-res multicoprocessado-res. A arquitetura proposta ´e menor que as encontradas atualmente na lite-ratura [Singh et al. 2000] [Feng and Yang 2013] [Paek et al. 2011], quando se compara a quantidade de elementos de processamento necess´arios, e possui poder computacio-nal equivalente, ou superior, j´a que, na maioria das arquiteturas concorrentes, entre elas [Feng and Yang 2013], os n´ıveis/est´agios existentes no bloco reconfigur´avel s˜ao limita-dos.

Este trabalho est´a organizado em 6 sec¸˜oes. A sec¸˜ao 2 define o que ´e arquitetura reconfigur´avel e como ela ´e classificada. A sec¸˜ao 3 mostra algumas CGRAs propostas e destaca a contribuic¸˜ao deste trabalho. A sec¸˜ao 4 descreve a arquitetura reconfigur´avel pro-posta neste trabalho. A sec¸˜ao 5 apresenta os resultados que puderam ser obtidos atrav´es da execuc¸˜ao de aplicac¸˜oes sint´eticas e reais na arquitetura reconfigur´avel. O trabalho ´e finalizado com a sec¸˜ao 6, apresentando as conclus˜oes e os trabalhos futuros.

2. ARQUITETURAS RECONFIGUR ´

AVEIS

Arquiteturas reconfigur´aveis s˜ao sistemas integrados que permitem customizac¸˜ao da uni-dade de hardware para satisfazer os requisitos computacionais de diferentes aplicac¸˜oes [Singh et al. 2000]. Tais sistemas integrados s˜ao classificados segundo um conjunto de crit´erios espec´ıficos, os principais s˜ao: granularidade, acoplamento e mecanismo de reconfigurac¸˜ao.

Granularidade se refere ao tamanho do dado que pode ser operado pelas unidades funcionais reconfigur´aveis da AR. Unidade funcional reconfigur´avel ´e um bloco l´ogico cuja funcionalidade pode ser reconfigurada (redefinida). Em arquiteturas de granulari-dade fina (FGRA - Fine-Grained Reconfigurable Architectures), as operac¸˜oes feitas na UFR s˜ao a n´ıvel de bits e s˜ao constitu´ıdas por componentes de hardware cuja configurac¸˜ao geram operadores a n´ıvel do bit, tais como flip-flops e look-up tables. Por outro lado, nas arquiteturas reconfigur´aveis de granularidade grossa (CGRA - Coarse-Grained Re-configurable Architectures), as operac¸˜oes s˜ao feitas no n´ıvel de palavras, e as UFRs s˜ao constitu´ıdas de componentes de hardware mais complexos, tais como as ULAs (Unidades de L´ogica e Aritm´etica), blocos de mem´oria, etc.

Arquiteturas reconfigur´aveis s˜ao normalmente utilizadas como aceleradores de aplicac¸˜ao. Muitas aplicac¸˜oes, como j´a demonstrado por Amdahl [Amdahl 1967], pos-suem apenas partes de seu c´odigo cuja execuc¸˜ao por aceleradores ´e vantajosa. Assim sendo, ARs s˜ao frequentemente acopladas a um processador de prop´osito geral. Este ´e o caso das arquiteturas propostas em [Singh et al. 2000, Paek et al. 2011]. O acoplamento indica como a AR se comunica com o GPP. Em arquiteturas fortemente acoplados, a AR ´e implementada como uma unidade funcional dentro do processador. Nos sistemas fraca-mente acoplados, a AR ´e implementada como um co-processador e a comunicac¸˜ao se d´a atrav´es de um barramento.

(3)

po-dem ser geradas e carregadas na AR. Dois mecanismos de reconfigurac¸˜ao s˜ao normal-mente utilizados: reconfigurac¸˜ao est´atica e a reconfigurac¸˜ao dinˆamica. Na reconfigurac¸˜ao est´atica, as configurac¸˜oes s˜ao geradas, normalmente por um compilador, que identifica as partes da aplicac¸˜ao que podem ser aceleradas pela AR. Na reconfigurac¸˜ao dinˆamica, a reconfigurac¸˜ao da AR pode ser efetuada com o sistema em operac¸˜ao. Deste modo ´e poss´ıvel que um bloco de hardware, acoplado `a AR e ao GPP, gere as configurac¸˜oes em tempo de execuc¸˜ao e, eventualmente, carregue uma nova configurac¸˜ao na AR.

3. TRABALHOS RELACIONADOS

Trabalhos relatando propostas de implementac¸˜ao e uso de arquiteturas reconfigur´aveis comec¸aram a surgir de forma mais regular em meados da d´ecada de 1990. Neste intervalo um n´umero consider´avel de propostas foram publicadas. Dada a amplid˜ao do tema, este artigo abordar´a um n´umero limitado de arquiteturas e se dedicar´a apenas `as CGRAs.

Feng [Feng and Yang 2013] propˆos uma CGRA voltada para Processamento Di-gital de Sinais. A arquitetura proposta ´e composta por 16 elementos de processamento, quatro registradores de configurac¸˜ao e uma rede de interconex˜ao compartilhada. Os ele-mentos de processamento s˜ao distribu´ıdos em 4 est´agios, cada est´agio com 4 eleele-mentos de processamento. Segundo os autores, a principal contribuic¸˜ao do trabalho foi a reduc¸˜ao do custo de implementac¸˜ao, considerando a ´area em chip como unidade de medida.

Peak [Paek et al. 2011] propˆos uma CGRA fracamente acoplada usando um sub-sistema de interconex˜ao com topologia mesh-based dotado de 8 linhas e 8 colunas. Cada linha compartilha recursos cr´ıticos (Multiplicador e Divisor). A CGRA ´e voltada `a acelerac¸˜ao de lac¸os e computac¸˜ao data-intensive. Um framework foi desenvolvido para gerar as configurac¸˜oes.

MorphoSys[Singh et al. 2000] ´e uma CGRA fracamente acoplada a um processa-dor TinyRisc. A comunicac¸˜ao com o processaprocessa-dor ´e feita atrav´es de uma controlaprocessa-dora de DMA (Direct Memory Access) e um frame buffer. A arquitetura ´e composta de 64 c´elulas reconfigur´aveis, arranjadas em um array 8x8, divido em 4 quadrantes 4x4.

A arquitetura proposta neste trabalho usa menos EPs que os trabalhos acima cita-dos, apenas 10 EPs e 2 unidade de Load/Store, e possui um sistema de interconex˜ao sim-ples. Mesmo sendo menor e mais simples, a arquitetura ´e capaz de executar configurac¸˜oes com profundidade infinita. Entende-se por profundidade de uma configurac¸˜ao a quanti-dade de colunas do array necess´arias para a execuc¸˜ao de uma configurac¸˜ao.

4. ARQUITETURA PROPOSTA

A arquitetura proposta (Figura 1) ´e composta de duas colunas, cada uma dotada de 5 elementos de processamentos (EPs) e uma unidade de Load/Store. Neste trabalho, cha-mamos a UFR de EP por este ser um termo mais comumente utilizado para as CGRAs. A arquitetura ´e controlada por uma m´aquina de estados (FSM - Finite State Machine) e tem dois bancos de registradores, B0 e B1, os bancos de registradores das colunas 1 e 2, respectivamente.

Os dois bancos de registradores armazenam os dados atualizados dos registrado-res do processador para que as colunas possam operar sobre eles. A coluna 1 lˆe do banco de registradores B1 e a coluna 2 lˆe do banco de registrador B2. Os blocos l´ogica combi-nacional 1(LC1) e l´ogica combinacional 2 (LC2) s˜ao utilizados para a atualizac¸˜ao dos

(4)

bancos de registradores e para enviar o contexto de sa´ıda, que pode vir do bloco 1 ou do bloco 2.

Quando deseja-se iniciar a execuc¸˜ao de uma reconfigurac¸˜ao na CGRA, um sinal de in´ıcio ´e enviado do processador para a CGRA. A partir do envio do sinal de in´ıcio, uma configurac¸˜ao de coluna deve ser enviada para a CGRA por ciclo. No primeiro ci-clo, a configurac¸˜ao ´e enviada somente para a unidade de Load/Store da coluna 1. Isso ´e necess´ario devido a latˆencia de acesso a mem´oria de dados. No segundo ciclo, uma configurac¸˜ao ´e enviada para os EPs da coluna 1 e para a unidade de Load/Store da coluna 2. No terceiro ciclo, uma configurac¸˜ao ´e enviada para a unidade de Load/Store da coluna 1 e para os EPs da coluna 2. No terceiro ciclo o “pipeline” de execuc¸˜ao est´a cheio e se repete o envio de configurac¸˜oes semelhantes `as utilizadas no segundo e terceiro ciclo, at´e que toda a configurac¸˜ao seja executada. Ao final da execuc¸˜ao um contexto de sa´ıda ´e gerado e enviado aos registradores do processador.

Figura 1. Vis ˜ao esquem ´atica da arquitetura proposta

4.1. A UNIDADE DE LOAD/STORE

A unidade de Load/Store ´e composta de um somador de 32 bits e uma unidade de forward. O somador ´e utilizado para calcular o enderec¸o de acesso a mem´oria, conforme o padr˜ao de instruc¸˜oes MIPS. O contexto de entrada da unidade de Load/Store ´e destacado com as linhas pontilhadas na Figura 1. Observe que a unidade de Load/Store lˆe o contexto de entrada do banco de registrador da coluna precedente no fluxo de execuc¸˜ao. A unidade de forwardfoi inserida para garantir que os dados operados pela unidade de Load/Store est˜ao sempre atualizados. O funcionamento da unidade de forward ´e semelhante ao apresentado em [Henessy 2014].

4.2. O Elemento de Processamento

O EP ´e composto por um registrador de configurac¸˜ao, que cont´em todas as informac¸˜oes de configurac¸˜ao do EP, dois multiplexadores e uma ULA. A configurac¸˜ao armazenada no registrador de configurac¸˜ao define as entradas da ULA e sua operac¸˜ao. As ULAs realizam todas as operac¸˜oes l´ogicas e aritm´eticas necess´arias `a execuc¸˜ao de instruc¸˜oes MIPS. A multiplicac¸˜ao, entretanto, por implicar na necessidade de inclus˜ao de um operador cr´ıtico em termos de ´area, foi inclu´ıda somente em uma ULA por coluna, que s˜ao as ULAs do EP0 e do EP5 (ver Figura 1).

5. RESULTADOS EXPERIMENTAIS

Para validar a implementac¸˜ao da arquitetura proposta e avaliar o desempenho que ela ofe-rece, aplicac¸˜oes sint´eticas foram geradas e executadas em uma implementac¸˜ao VHDL da

(5)

CGRA. De modo a permitir a avaliac¸˜ao do efeito da dependˆencia de dados no desem-penho da CGRA, cada aplicac¸˜ao sint´etica ´e constitu´ıda de 100 instruc¸˜oes e diferentes porcentagens de dependˆencia de dados foram utilizadas. A porcentagem de dependˆencia de dados indica quantas das 100 instruc¸˜oes da aplicac¸˜ao s˜ao dependentes entre si. Para a gerac¸˜ao das aplicac¸˜oes a dependˆencia de dados variou de 10% a 100%, com variac¸˜ao de 10 em 10.

Duas ferramentas foram desenvolvidas em java para gerac¸˜ao das aplicac¸˜oes sint´eticas. A primeira ferramenta ´e utilizada para gerar as aplicac¸˜oes e suas configurac¸˜oes, enquanto que a segunda ´e utilizada gerar os bin´arios a partir das configurac¸˜oes. A gerac¸˜ao das aplicac¸˜oes sint´eticas ´e feita a partir de dois parˆametros de entrada: o n´umero de instruc¸˜oes presentes na aplicac¸˜ao e a porcentagem de instruc¸˜oes dependentes. Como as aplicac¸˜oes s˜ao geradas de forma aleat´oria, para cada porcentagem adotada, 30 vers˜oes de cada aplicac¸˜ao foram geradas.

A execuc¸˜ao das aplicac¸˜oes na implementac¸˜ao VHDL da CGRA foi simulada com o aux´ılio da ferramenta ModelSim da Altera [Quartus 2016]. Os resultados das simulac¸˜oes das aplicac¸˜oes sint´eticas sendo executadas nas CGRA podem ser vistos na Figura 2. Como esperado, com o aumento da dependˆencia de dados o desempenho obtido na CGRA piora, sendo necess´ario mais ciclos para executar a mesma aplicac¸˜ao. No me-lhor caso, 0% de dependˆencia de dados, as 100 instruc¸˜oes s˜ao executadas em 21 ciclos. No pior caso, 100% de dependˆencia de dados, as 100 instruc¸˜oes s˜ao executadas em 101 ciclos.

Para verificar a explorac¸˜ao de paralelismo de uma aplicac¸˜ao real, destacou-se um trecho de c´odigo de uma multiplicac¸˜ao de duas matrizes 20x20 e gerou-se a configurac¸˜ao manualmente. O c´odigo da aplicac¸˜ao foi escrito em C e compilado para MIPS com o CrossCompiler GNU. O trecho de c´odigo destacado corresponde a execuc¸˜ao do lac¸o mais interno da aplicac¸˜ao e possui 49 instruc¸˜oes com 65% de dependˆencia de dados e a configurac¸˜ao gerada teve profundidade 39. A simulac¸˜ao da execuc¸˜ao deste trecho de c´odigo na CGRA levou 40 ciclos e na implementac¸˜ao VHDL do processador MIPS, em sua vers˜ao pipeline, levou 66 ciclos. A CGRA acelerou este trecho de c´odigo em 30%.

Figura 2. Variac¸ ˜ao do desempenho da arquitetura a porcentagem de depend ˆencia

As aplicac¸˜oes sint´eticas tamb´em foram executadas na implementac¸˜ao VHDL do processador MIPS pipeline. Os resultados desta execuc¸˜ao foram comparados com o me-lhor e pior caso da execuc¸˜ao das aplicac¸˜oes na CGRA. A comparac¸˜ao pode ser vista na Figura 3. Mesmo com 100% de dependˆencia de dados, onde ´e executada apenas uma instruc¸˜ao por coluna da CGRA, e n˜ao se tem nenhum paralelismo entre as instruc¸˜oes, a CGRA apresenta desempenho um pouco melhor que o processador MIPS pipeline.

(6)

Figura 3. Comparac¸ ˜ao do desempenho em pipeline MIPS com o melhor e pior caso na CGRA

6. CONCLUS ˜

OES E TRABALHOS FUTUROS

Muitas CGRAs tˆem sido propostas com o objetivo de fornecer recursos de hardware para acelerac¸˜ao de aplicac¸˜oes, contudo, de um modo geral, o array reconfigur´avel da CGRA ´e, via de regra, constitu´ıdo de um significativo n´umero de elementos de processamento. A arquitetura aqui proposta apresenta um modelo que usa menos elementos de processa-mento que os outros trabalhos j´a publicados. Al´em disso, a arquitetura ´e capaz de executar configurac¸˜oes com profundidade infinita, funcionando como um pipeline superescalar in-finito.

Como trabalho futuro, pretende-se integrar essa arquitetura ao caminho de dados do processador multicore. Neste caso, para cada n´ucleo de processamento duas colunas EPs devem ser integradas. Um tradutor bin´ario em hardware tamb´em deve ser integrado a arquitetura do par (N´ucleo de Processamento; CGRA). Este tradutor permitir´a a gerac¸˜ao de configurac¸˜oes em tempo de execuc¸˜ao. As ferramentas j´a desenvolvidas devem evoluir de modo a se tornar um compilador capaz de compilar aplicac¸˜oes escritas em C para execuc¸˜ao no processador multicore munido de uma CGRA.

Referˆencias

[Amdahl 1967] Amdahl, G. M. (1967). Validity of the single processor approach to achi-eving large scale computing capabilities. In Proceedings of the April 18-20, 1967, Spring Joint Computer Conference, AFIPS ’67 (Spring), pages 483–485, New York, NY, USA. ACM.

[Feng and Yang 2013] Feng, C. and Yang, L. (2013). Design and evaluation of a novel reconfigurable alu based on fpga. In Mechatronic Sciences, Electric Engineering and Computer (MEC), Proceedings 2013 International Conference on, pages 2286–2290. [Henessy 2014] Henessy, D. A. P. E. J. L. (2014). Computer organization and design the

hardware/software interface. Morgan Kaufmann, Oxford, USA, 5th edition.

[Paek et al. 2011] Paek, J. K., Choi, K., and Lee, J. (2011). Binary acceleration using coarse-grained reconfigurable architecture. SIGARCH Comput. Archit. News, 38(4):33–39. [Quartus 2016] Quartus (2016). Altera. quartus ii handbook version 13.1 - volume

3. http://www.altera.com/literature/hb/qts/qts_qii5v3.pdf. Acessado em 14 de fevereiro de 2016.

[Singh et al. 2000] Singh, H., Lee, M.-H., Lu, G., Kurdahi, F., Bagherzadeh, N., and Cha-ves Filho, E. (2000). Morphosys: an integrated reconfigurable system for data-parallel and computation-intensive applications. Computers, IEEE Transactions on, 49(5):465–481.

Referências

Documentos relacionados

particular.”41 Seguindo essa senda, acreditamos poder analisar as relações entre os sexos, buscando principalmente contribuir para os estudos sobre condição feminina e a vida

Comparando os algoritmos em termos de Erro de Aproxima¸c˜ ao Real, observamos que: (a) no problema Sy- sAdmin (Figuras 10.11 , 10.12 , 10.13 ), a solu¸c˜ ao FactoredMPA com

Essa onda contrária às vacinas tem preocupado autoridades do mundo todo, pela facilidade e rapidez com que as informações são compartilhadas atualmente na

Para casos específicos, os contadores são procurados, como por exemplo a declaração do imposto de renda no qual muitos alegaram se tornar o período de maior contato, pois os

2 3 4 5 8 8 8 0645 Alta 75 mm 330 x 110 x 190 mm 0,73 kg PVC 64ºC 3 2,5 kg 0615 Médio 80 mm 340 x 100 x 160 mm 0,48 kg PVC 64ºC 12 6,50 kg 0618 Média 80 mm 680 x 80 x 160 mm 0,90

• Analisar como são implementadas as estratégias de marketing na Universidade Luterana do Brasil - Ulbra; • Verificar como é utilizado o esporte nas estratégias de marketing da

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

O estágio profissionalizante encontrou-se organizado em sete estágios parcelares: Medicina Geral e Familiar, Pediatria, Ginecologia e Obstetrícia, com quatro semanas