Você está na página 1de 20

Avaliao de Desempenho de Rede-em-Chip Modelada em SystemC

Cesar Albenes Zeferino(1), Jaison Valmor Bruch(1), Thiago Felski Pereira(1) Mrcio Eduardo Kreutz(2), Altamiro Amadeu Susin(3) Universidade do Vale do Itaja CTTMar MCA GSED Rodovia SC 407, Km 04 Bairro Serto do Maruim 88122-000 So Jos SC Universidade de Santa Cruz do Sul Departamento de Informtica GPSEM Av. Independncia, 2293 Bairro Universitrio 96815-900 Santa Cruz do Sul RS Universidade Federal do Rio Grande do Sul II PPGC Av. Bento Gonalves, 9500 91501-970, Porto Alegre RS
{zeferino,jaison,felski}@univali.br; kreutz@unisc.br; altamiro.susin@ufrgs.br
(3) (2) (1)

Abstract. Future technologies for integrated circuits will drive systems-on-achip (SoCs) construction comprised of several dozens of cores. Communication architectures based on busses architecture will not face communications performance constraints needed to these SoCs efficiency. As a solution, Networks-on-Chip (NoCs) has been considered as the best solution to meet dedicated applications requirements. Since the design space of NoCs is wide and thus, requires a specific infrastructure for exploration, this work presents the modeling of a parameterized NoC architecture by using SystemC, at the RT level, together with a set of CAD tools concerning to evaluate the performance of NoCs architectures under different configurations and traffic patterns. Also communication modeling for traffic of real applications based on the characterization of their traffic is presented. Results show the configuration of network that allows obtaining the best performance metrics. Resumo. As prximas tecnologias de fabricao de circuitos integrados permitiro a integrao de dezenas de ncleos em um mesmo chip. As arquiteturas de comunicao baseadas no barramento no atendero s demandas de desempenho desses sistemas. Como soluo, consenso na literatura que as Networks-on-Chip (NoCs) oferecero a melhor soluo em desempenho em comunicao. Como o espao de projeto de NoCs bastante amplo e requer infra-estrutura especfica para a sua explorao, este trabalho, apresenta a modelagem de uma arquitetura de NoC parametrizvel utilizando o SystemC no nvel RT e um conjunto de ferramentas de apoio que permitem avaliar o desempenho da rede sob diferentes configuraes do seu espao de projeto e condies de trfego, possibilitando, tambm, realizar a modelagem do perfil de comunicao de aplicaes reais a partir da caracterizao de seu trfego. Os resultados obtidos evidenciam a configurao de rede que apresenta os melhores ndices de desempenho.

559

1. Introduo
O advento das tecnologias de processo submicrnico tem permitido o projeto de sistemas completos em um nico chip, os quais so denominados Sistemas Integrados ou SoCs (Systems-on-Chip). As metodologias de projeto de sistemas integrados so baseadas no reuso de blocos de circuito em silcio pr-projetados e pr-verificados, contendo, usualmente, pelo menos 5.000 portas lgicas [Gupta e Zorian 1997]. Esses blocos reutilizveis, que recebem o nome de ncleos (ou cores), podem ser aplicados na construo de diferentes sistemas. A capacidade de reuso dos mesmos vital para minimizar o tempo de projeto e de verificao de novos produtos e garantir o aumento da competitividade e dos rendimentos de seus fabricantes. Os ncleos de um sistema integrado so interligados por meio de uma arquitetura de comunicao, sendo que, atualmente, devido a sua reusabilidade, a arquitetura preferencial o barramento. Contudo, embora o barramento seja adequado a sistemas com poucas dezenas de ncleos, ele no atender aos requisitos dos futuros SoCs, os quais integraro de vrias dezenas a centenas de ncleos. Essa inadequao deve-se ao fato de que sua freqncia de operao e sua largura de banda se degradam com o aumento do nmero de ncleos a ele conectados, e tambm porque um barramento suporta apenas uma nica comunicao a cada instante, entre outros fatores [Guerrier e Greiner, 2000]. Dadas as limitaes dos barramentos, diversos pesquisadores tm defendido o uso de arquiteturas de comunicao denominadas Redes-em-Chip ou NoCs (Networkson-Chip) [Jantsch e Tenhunen, 2003], que so redes chaveadas integradas em chip baseadas nas arquiteturas de redes de interconexo para computadores paralelos. Entre as vantagens das NoCs sobre os barramentos destacam-se: (i) a largura de banda das NoCs cresce com o aumento do nmero de ncleos, enquanto que a do barramento fixa; e (ii) as NoCs oferecem paralelismo em comunicao e o barramento no. Alm disso, as NoCs possuem capacidade de reuso equivalente do barramento e so prprias para sistemas GALS (Global Assynchronous, Local Synchronous) em que o chip divido em regies sncronas que se comunicam de maneira assncrona [Hermani et al. 1999]. No entanto, apesar de suas vantagens, as NoCs tambm apresentam limitaes e desvantagens, sendo que a principal delas consiste na latncia de comunicao. Como os ncleos so separados por um ou mais roteadores, cada comunicao sujeita aos atrasos inerentes dos roteadores e competio por canais da rede. Outros problemas que se destacam so o seu sobrecusto de silcio e de energia. Dado esse cenrio, desde o final dos anos 90, diversos projetos de pesquisa tm sido desenvolvidos no sentido de abordar um ou mais problemas potencias das NoCs. O Projeto SoCIN (System-on-Chip Interconnection Network), iniciado na Universidade Federal do Rio Grande do Sul UFRGS e hoje realizado em pareceria entre pesquisadores da UFRGS, da Universidade do Vale do Itaja UNIVALI e da Universidade de Santa Cruz do Sul UNISC, objetiva a explorao de arquiteturas de NoCs com baixo custo de silcio, visando realizao de sistemas embarcados escalveis com alta demanda de comunicao. Nesse projeto, foi desenvolvida uma arquitetura de roteador parametrizvel denominado ParIS (Parameterized

560

Interconnection Switch). O modelo VHDL do roteador ParIS permite a simulao e sntese de redes em malha 2-D com diferentes configuraes de mecanismos de roteamento, controle de fluxo, arbitragem e memorizao (buffers de entrada e de sada com profundidade parametrizvel). Essas alternativas de configurao tendem a apresentar ndices de desempenho diferenciados em funo das caractersticas do trfego apresentado rede. Para avaliar o desempenho de cada configurao de rede sob diferentes padres de trfego, necessrio realizar a simulao de sistemas reais ou sintticos, em que ncleos ou geradores de trfego sejam conectados rede e injetem pacotes a taxas predeterminadas e que o trfego da rede seja analisado a partir de dados coletados por unidades de medio. Embora o modelo VHDL do roteador ParIS permita tanto a simulao quanto a sntese, a simulao de redes descritas em VHDL pode apresentar elevado custo computacional no que diz respeito ao tempo de simulao, conforme o tamanho do sistema. Alm disso, a construo de geradores e analisadores de trfego voltados execuo nos mesmos ambientes de simulao e de sntese da rede limitada ao subconjunto do VHDL suportado pelo ambiente de desenvolvimento utilizado. Isso, por sua vez, restringe a generalidade desses modelos. Essas limitaes levam necessidade do uso de outras alternativas de modelagem que permitam caracterizar melhor o desempenho de cada configurao da rede em um tempo computacional menor, a fim de facilitar a explorao do espao de projeto.Visando resolver esse problema, e ainda mantendo a preciso em nvel de ciclos e assegurando a possibilidade de realizar a sntese da rede, foi realizada a modelagem do roteador ParIS e da rede SoCIN em SystemC no nvel RT (Register Transfer). O modelo implementado permite avaliar o desempenho da rede sob diferentes configuraes de parmetros e condies de trfego. Experimentos de simulao e avaliao de desempenho so suportados por um conjunto de ferramentas para automatizar a gerao e a execuo de benchmarks para a rede SoCIN. Esses benchmarks so baseados em um modelo de gerador de trfego que possibilita a representao de diferentes padres de trfego, configurando-se a distribuio espacial das comunicaes realizadas, bem como parmetros referentes carga de comunicao oferecida rede. Modelos para medir o trfego e ferramentas de anlise de dados coletados permitem obter mtricas de desempenho como, por exemplo, a latncia mdia da rede e o trfego aceito para uma dada carga oferecida, entre outras. O artigo organizado como segue. Na Seo 2, so apresentados conceitos sobre SystemC e trabalhos relacionados. A arquitetura da rede SoCIN e a organizao do roteador ParIS so brevemente descritos na Seo 3. Na Seo 4, so descritos aspectos referentes modelagem e ao fluxo de simulao da rede SoCIN usando o SystemC, e so apresentados os modelos de componentes e as ferramentas desenvolvidas para suportar a avaliao de desempenho da rede. Na Seo 5, so mostrados resultados de experimentos realizados buscando avaliar o impacto da variao da configurao rede sob diferentes padres de trfego. Finalizando, a Seo 6 apresenta concluses e comentrios adicionais referentes a pesquisas em andamento e a trabalhos futuros.

561

2. Conceitos e Trabalhos Relacionados


2.1 O SystemC O SystemC [OSCI 2005] uma linguagem de modelagem padro que visa habilitar o projeto no nvel de sistema e permitir o intercmbio de ncleos em mltiplos nveis de abstrao para sistemas contendo componentes de hardware e de software. Segundo Swan (2001), ele completamente baseado em C++ e o seu padro controlado por um grupo de trabalho composto por mais de trinta companhias de automao do projeto eletrnico (o OSCI Open SystemC Initiative). Na verso 2.0, o SystemC foi melhorado de modo a permitir a modelagem em nvel de sistema, incluindo sistemas que poderiam ser modelados em software, em hardware ou na combinao de ambos. Essa melhoria visa oferecer uma linguagem de projeto til em uma larga faixa de modelos de computao, nveis de abstrao e metodologias de projeto de sistema. O SystemC tambm permite a modelagem no nvel RT com preciso em nvel de ciclos de relgio. Modelos de simulao nesse nvel de abstrao podem ser facilmente convertidos para modelos sintetizveis com a incluso de diretivas de compilao especficas para o compilador disponvel. Um exemplo o Co-Centric SystemC Compiler RTL da Synopsys (2003). 2.2 Avaliao de Desempenho de Redes-em-Chip A avaliao de desempenho de Redes-em-Chip um campo que comeou a ser explorado recentemente na literatura. Nos primeiros trabalhos, os experimentos de avaliao de desempenho eram feitos utilizando simulaes com base em modelos VHDL [Moraes et al., 2003]. Posteriormente, passou-se a utilizar o nvel de sistema, com o uso de simuladores para Redes-em-Chip dedicados [Bolotin et al., 2004] ou de simuladores de sistema no dedicados[Andriahantenaina et al., 2003]. Por exemplo, Kreutz et al. (2005) utilizam um simulador escrito em C++ que descreve a arquitetura dos componentes internos de roteadores de NoCs no nvel de transao cada componente descrito como uma classe C++ cujos mtodos representam as suas operaes. A preciso ocorre em nvel de ciclos e a cada perodo do relgio todos os componentes da rede so executados. O SystemC comeou a ser adotado recentemente e est se tornando o padro de fato nesse tipo de investigao. Alguns argumentos favorveis ao uso do SystemC so apresentados por Grant Martin (2003). Entre eles destaca-se o fato de que os sistemas esto se tornando cada vez mais complexos, sendo que a modelagem em nveis de abstrao mais altos que o RT (nvel de sistema, por exemplo) nas etapas iniciais do desenvolvimento, facilita a explorao do espao de projeto, ao mesmo tempo que reduz o tempo para verificao do funcionamento do sistema. Alm disso, necessrio que o fluxo de projeto contemple no apenas a modelagem de hardware, mas, tambm, a de software, pois, nos sistemas computacionais embarcados, o software exerce um papel importante no custo e no tempo de desenvolvimento do sistema. O SystemC permite a modelagem tanto de hardware como de software, atendendo a esses requisitos. justamente nessa direo que a comunidade de pesquisadores em Redes-emChip est mirando de modo a adequar seus trabalhos ao padro j estabelecido. Por exemplo, Chan e Parameswaran (2004) apresentam uma Rede-em-Chip modelada em

562

VHDL e com desempenho avaliado atravs de uma simulao hbrida SystemC/VHDL, na qual os geradores de trfego so modelados em SystemC (no nvel de sistema) e o roteador modelado em VHDL (no RTL). Essa abordagem facilita o desenvolvimento do gerador de trfego, pois permite o uso de estruturas da linguagem C++ que so mais adequadas para a implementao desse tipo de componente, o qual deve injetar pacotes na rede e colher os dados estatsticos necessrios para a avaliao do seu desempenho. Contudo, essa abordagem hbrida ainda apresenta custo computacional razovel no que tange ao tempo para a execuo da simulao. Tambm possvel realizar uma modelagem hbrida totalmente em SystemC, com custo computacional de simulao intermedirio. Utilizando-se um subconjunto de primitivas do SystemC, possvel modelar alguns componentes de um sistema no RTL e outros em nveis mais abstratos. Alm disso, diversos fabricantes de ferramentas de automao do projeto eletrnica (EDA Electronic Design Automation), como a Synopsys (2003) e a Forte Design Systems (2007) j oferecem ferramentas que traduzem um modelo SystemC para uma linguagem de descrio de hardware sintetizvel, como o Verilog e o VHDL.

3. Arquitetura da Rede SoCIN


3.1 Caractersticas da rede SoCIN A rede SoCIN uma NoC que utiliza uma topologia em malha (mesh) 2-D. Cada roteador possui uma porta de comunicao, denominada Local ou L (Fig. 1), qual pode ser conectado um ncleo ou um subsistema. Alm dessa, possui tambm de duas a quatro portas de comunicao para conexo com roteadores vizinhos, conforme a posio do roteador na rede. Essas portas so chamadas de North (superior), East ( direita), South, (inferior) e West ( esquerda), ou, simplesmente, N, E, S e W. Os roteadores so endereados por um sistemas de coordenadas XY (Coluna, Linha). Quando um ncleo (ou nodo) conectado a um roteador deseja enviar um pacote a um ncleo conectado a outro roteador, ele deve incluir as coordenadas do destinatrio (e as suas) no cabealho do pacote para que os roteadores da rede possam definir o caminho a ser tomado (e para que o destinatrio saiba quem enviou o pacote).
Y

0,3

1,3

2,3

3,3

N L W

ParIS
X,Y

0,2

1,2

2,2

3,2

S
1
0,1 1,1 2,1 3,1

0,0

1,0

2,0

3,0

X
0 1 2 3

Figura 1. Topologia da rede SoCIN


563

3.2 Organizao do roteador ParIS O roteador ParIS possui arquitetura cannica parametrizvel. Internamente, a arquitetura composta por mdulos que podem ser estendidos para suportar diferentes alternativas de mecanismos de comunicao. Atualmente, so disponibilizadas as seguintes alternativas: Chaveamento: wormhole; Controle de fluxo: handshake e baseado em crditos; Memorizao: buffer FIFO (na entrada e, opcionalmente, na sada); Roteamento: XY e WF (West-First); e Arbitragem: esttica e dinmica (randmica e circular). O roteador, ilustrado na Fig. 2, organizado em mdulos de entrada (ex. Lin) e de sada (ex. Lout) e por um mdulo central (CPM) que representa a estrutura de conexes relacionada com o tipo de roteamento implementado (ex. XY ou West-First).

Lin
req[ ]

req[ ] idle gnt[ ] idle[ ]

Lout
OC

IC
din val ret

din

IFC

wr wok

FIFO

dout rok rd

rok I R S wok[ ] rok[ ] wok

O D S O W S

din wr wok

FIFO

dout rok rd

OFC

dout val ret

CPM

Win
req[ ]

req[ ] idle gnt[ ] idle[ ]

Wout
OC

IC
din val ret

din

IFC

wr wok

FIFO

dout rok rd

rok I R S wok[ ] rok[ ] wok

O D S O W S

din wr wok

FIFO

dout rok rd

OFC

dout val ret

Figura 2. Organizao do roteador ParIS

O mdulo de entrada constitudo por blocos de controle de fluxo (IFC Input Flow Controller), armazenamento (buffer FIFO First-In, First-Out), roteamento (IC Input Controller) e de chaveamento (IRS Input Read Switch). O mdulo de sada composto por um rbitro (OFC Output Flow Controller), chaveadores (ODS Output Data Switch e OWS Output Write Switch), armazenamento de sada (opcional) e controle de fluxo de sada (OFC Output Flow Controller).

564

Quando um pacote enviado a um canal de entrada i do roteador, o bloco IFC utiliza um protocolo de dois fios (val e ret) para regular a admisso dos flits (flow control units) presentes no canal de dados (din) de acordo com o espao disponvel no buffer de entrada. Quando o cabealho do pacote atinge a sada do buffer de entrada, ele roteado pelo bloco IC que seleciona o canal de sada j a ser utilizado para encaminhlo em direo ao seu destino. O bloco IC envia uma requisio (req) ao bloco OC do canal de sada j, o qual realiza a arbitragem de mltiplas requisies, selecionando uma delas e comandando os chaveadores (IRS, ODS e OWS) para estabelecer a conexo entre o canal de entrada selecionado e o buffer de sada. Os flits recebidos por esse buffer so encaminhados para fora do roteador, sendo que a emisso dos flits controlada pelo bloco OFC. Esse buffer um bloco opcional do circuito. Mais detalhes sobre o roteador ParIS e a sua implementao em VHDL so fornecidos por Zeferino, Santo e Susin (2004).

4. Implementao da Rede SoCIN em SystemC


4.1 Modelagem da rede SoCIN no SystemC A implementao da rede SoCIN em SystemC segue uma abordagem hbrida, modelando-se o roteador ParIS em SystemC RTL e os mdulos de gerao (TG) e de medio (TM) de trfego no nvel de sistema, o que permitiu uma maior flexibilidade para utilizao de primitivas nativas da linguagem C. Na implementao de um sistema baseado no roteador ParIS, no gerador de trfego (TG) e no medidor de trfego (TM), um par TG-TM conectado porta Local de um roteador, conforme ilustrado na Fig. 3. O TG responsvel pela gerao de trfego enviando pacotes a outros TGs e recebendo pacotes enviados por outros TGs. O TM monitora a chegada de pacotes na porta Local e registra dados que permitem calcular a latncia de cada pacote, bem como outras informaes relevantes. O modelo do TM genrico o suficiente para que possa ser utilizado para medir dados referentes a pacotes no momento em que so injetados na rede ou que passam por enlaces entre roteadores.
TG
T M

TG

T M

TG

T M

TG

T M

ParIS

ParIS

ParIS

ParIS

TG

T M

TG

T M

TG

T M

TG

T M

ParIS
T M

ParIS
T M

ParIS
T M

ParIS
T M

TG

TG

TG

TG

ParIS

ParIS

ParIS

ParIS

TG

T M

TG

T M

TG

T M

TG

T M

ParIS

ParIS

ParIS

ParIS

Figura 3. Plataforma para avaliao de desempenho da rede SoCIN

565

4.2 Modelos SystemC O modelo SystemC do roteador ParIS foi totalmente implementado no nvel RT e reproduz a arquitetura modelada originalmente em VHDL (ilustrada na Fig. 2). Esse modelo pode ainda ser estendido pela incluso de diretivas de compilao que permitam a realizao da sntese utilizando compiladores como o da Synopsys, conforme j mencionado na Seo 2.1. O modelo de gerador de trfego foi implementado no nvel de sistema no SystemC. O modelo implementa o mtodo genrico para gerao de trfego proposto por Tedesco (2005). Com base nesse mtodo, o gerador de trfego pode enviar pacotes com tamanho fixo ou varivel e com intervalo entre pacotes tambm fixo ou varivel. Esses valores so calculados em tempo de compilao ou em tempo de simulao e podem ser configurados de modo a submeter a rede a uma determinada carga de trabalho. A taxa de gerao pode ser constante ou regida por funes de probabilidade como a Normal, a Exponencial ou a Pareto On/Off. O perfil da comunicao tambm pode ser caracterizado especificando-se a distribuio espacial de comunicao entre geradores de trfego. Atualmente, os seguintes padres so suportados: a) Padres com um nico destinatrio por remetente (emissor) detalhes disponveis em [Duato, Yalamanchili e Ni, 1997]:

bit-reversal; perfect-shuffle; butterfly; matriz transposta; e complemento uniforme: todos os nodos do sistema tm a mesma probabilidade de serem destinatrios. Cada remetente envia o mesmo nmero de pacotes a todos os demais nodos; no-uniforme: a probabilidade de um nodo enviar pacotes a outro nodo diminui com a distncia entre eles. Nodos vizinhos trocam uma quantidade de pacotes mxima, enquanto que nodos no vizinhos trocam um nmero de pacotes que inversamente proporcional ao nmero de roteadores entre eles. local: todos os nodos vizinhos tem a mesma probabilidade de serem destinatrios, recebendo o mesmo nmero de pacotes. Porm, nodos no adjacentes possuem probabilidade nula (nenhum pacote lhes remetido).

b) Padres com mltiplos destinatrios por remetente:

O TG se baseia em arquivo de configurao (traffic.cfg) que descreve o perfil de trfego para gerao de pacotes por todas as instncias de TGs (nodos) em um dado sistema. Esse arquivo gerado automaticamente por uma ferramenta de apoio (denominada gtr) que recebe os parmetros do trfego e gera o arquivo correspondente aos parmetros fornecidos. A Fig. 4 mostra o contedo do arquivo de configurao de
566

trfego para um sistema com 16 TGs conectados a uma rede 4x4, utilizando o padro de trfego espacial do tipo complemento (cada TG envia pacotes ao TG com endereo complementar ao seu). Por exemplo, no arquivo ilustrado, o tg_0_0 (00,00 em binrio) deve enviar 1000 pacotes com 49 flits (mais o cabealho) ao tg_3_3 (11,11 em binrio), a uma taxa de injeo constante com uma largura de banda requerida de 20%. Para pacotes com 50 flits, devem ser inseridos 800 ciclos de intervalo entre o fim de um pacote e o incio do pacote seguinte.
tg_0_0 1 0 3 3 49 1000 0.200000 800 0 0 0 0.00 0.00 tg_0_1 1 0 3 2 49 1000 0.200000 800 0 0 0 0.00 0.00 (...) tg_3_3 1 0 0 0 49 1000 0.200000 800 0 0 0 0.00 0.00 // Parameters (from left to right) 0 type 1 x_dest 2 y_dest 3 payload_length 4 pck_2send 5 required_bw 6 idle_cycles 7 iat 8 burst_size 9 last_payload_length 10 alfa_on (for Pareto-based generation) 11 alfa_off(for Pareto-based generation) Figura 4. Exemplo de arquivo de configurao de trfego (o trecho central foi omitido por ser desnecessrio ao entendimento)

O modelo do medidor de trfego tambm foi implementado no nvel de sistema no SystemC. Durante a execuo de uma simulao, esse modelo gera um arquivo de sada em que so registrados os dados referentes a cada pacote recebido pelo medidor. Conforme ilustrado na Fig. 5 (a seguir), as informaes incluem o nmero do pacote recebido, incluindo: as coordenadas XY dos TGs destinatrio e fonte do pacote, os ciclos de relgio em que o pacote foi criado e injetado na rede (que podem ser diferentes no caso de conteno), os ciclos de relgio em que o cabealho (header) e o terminador (trailer) foram recebidos pelo destinatrio, o tamanho do pacote e a largura de banda requerida. As informaes referentes s coordenadas e ao momento de criao e injeo dos pacotes so includas no seu cabealho e em parte do seu corpo no momento do envio e lidas pelo medidor de trfego no momento da sua recepo.

567

FILE: ext_0_0_out Packet Xd Yd Xs Ys Number # 1 0 0 3 3 2 0 0 3 3 3 0 0 3 3 4 0 0 3 3 5 0 0 3 3 6 0 0 3 3

Packet Packet Creation Injection 3 1003 2003 3003 4003 5003 3 1003 2003 3003 4003 5003 (...)

Header at cycle 433 1433 2433 3433 4433 5433

Trailer Packet Req. at cycle Length Band. 629 1629 2629 3629 4629 5629 50 50 50 50 50 50 0.20 0.20 0.20 0.20 0.20 0.20

Figura 5. Segmento inicial do arquivo de sada gerado pelo medidor de trfego conectado ao roteador de coordenadas 0,0

Os arquivos gerados por cada medidor de trfego so analisados por uma ferramenta, denominada atr, que l todos os arquivos, determina a latncia acumulada em funo da latncia de cada pacote e calcula a latncia mdia e o trfego aceito pela rede (nmero de flits por nodo por ciclo). Ele tambm permite obter outras informaes, como o nmero de pacotes cuja latncia situa-se em uma determinada faixa (ex. de 10% a 20% acima da latncia mnima a vazio) ou que violaram requisitos de tempo de entrega, entre outras. A modelagem no nvel de sistema oferece bastante flexibilidade para incluso de diferentes tipos de anlise. A Fig. 6 ilustra um dos formatos de relatrio resumido apresentado pela ferramenta atr. Nela, observa-se que foram gastos 80004 ciclos de relgio para entregar 16.000 pacotes com uma latncia mdia de 30 ciclos por pacote (neste caso, pacotes com tamanho igual a 50, incluindo o cabealho). O trfego aceito pela rede foi de 0,10 flits/nodo/ciclo.

Simulation time = 80004 cycles 16000 packets were delivered Average latency = 30.00 cycles/packet Accepted traffic= 0.10 flits/node/cycle Figura 6. Relatrio de sada da ferramenta atr

4.3. Fluxo para Avaliao de Desempenho Para automatizar a gerao de modelos de redes e de sistemas de qualquer tamanho, bem como o processo de gerao de padres de trfego e de anlise de resultados da simulao, foi implementado um conjunto de ferramentas de apoio que so utilizadas conforme o fluxo mostrado na Fig. 7. A ferramenta gnoc gera redes compatveis com a arquitetura SoCIN (socin.h), enquanto que a ferramenta gsys gera a descrio de um sistema (main.cpp) com arquitetura baseada na plataforma ilustrada na Fig. 3. Essa descrio compilada pelo gcc que gera um simulador do sistema (system.x). Na sua execuo, esse simulador l o arquivo de configurao de trfego gerado pela ferramenta gtr e produz arquivos de log (ext_x_y.out) gerados pelos medidores de trfego. Esses arquivos so ento analisados pela ferramenta atr que determina os ndices de desempenho da rede.

568

Dimenses da Rede

Parmetros do trfego

gnoc

gsys

gtr

socin.h

main.cpp

paris

tg

tm

traffic.cfg

gcc

system.x

ext_x_y.out ext_x_y.out ext_x_y.out ext_x_y.out

atr

Relatrio Final

Figura 7. Fluxo para avaliao de desempenho

4.4 Validao Os modelos e as ferramentas desenvolvidas foram validados exaustivamente ao longo do desenvolvimento e aps a sua integrao. Para cada componente do modelo do roteador ParIS, foi construdo um testbench voltado verificao funcional do modelo. A validao da plataforma completa foi feita com a simulao de sistemas de diferentes tamanhos, desde redes 2x2 at redes 8x8, com 64 geradores de trfego enviando pacotes a todos os demais geradores da rede. Esse tipo de simulao oferece uma taxa de cobertura para validao bastante alta, pois explora a grande maioria dos caminhos e circuitos da rede.

569

5 Experimentao
5.1 Configuraes Nos diferentes experimentos realizados algumas variveis da simulao foram mantidas constantes, incluindo: Tamanho da rede: 4x4; Largura do flit: 32 bits Arbitragem: round-robin; Tcnica de controle de fluxo: Baseada em crditos; Tamanho do pacote: 16 flits (mais o cabealho) Nmero de pacotes enviados de um remetente para um destinatrio: 1000 pacotes (na distribuio no-uniforme, esse nmero diminui com a distncia entre remetente e destinatrio); e Tipo de injeo de trfego: constante. A partir dessa configurao base, as demais variveis foram alteradas para estabelecer diferentes configuraes de experimentos, incluindo: Algoritmos de roteamento: XY e WF; Armazenamento (buffers): somente na entrada e na entrada e na sada; Profundidade dos buffers: 2, 4 e 8 posies; Distribuies espaciais: complemento, uniforme, no-uniforme e local; Carga oferecida (largura de banda requerida): 10 a 55% da largura de banda mxima do canal (com incrementos de 5%); As distribuies espaciais bit-reversal, perfect-shuffle, butterfly e matriz transposta no so consideradas nesses experimentos, pois, em seus padres, nem todos os nodos da rede injetam pacotes, levando a uma largura de banda efetiva menor do que a especificada pela taxa de injeo, dificultando a comparao dos resultados. Por exemplo, quando especificada uma taxa de injeo de 40% da largura de banda da rede, no padro butterfly, onde apenas metade dos nodos injeta pacotes, a carga efetiva de 20%, enquanto que nos padres em que todos os nodos injetam pacotes, a carga efetiva de 40%. 5.2 Aspectos gerais dos experimentos realizados A partir dos espaos de configuraes acima, foi realizado um conjunto de experimentos de modo a avaliar o impacto da variao dos parmetros do roteador e/ou dos padres de trfego no desempenho da rede. A execuo dos mltiplos experimentos foi suportada por uma ferramenta (denominada gsim) que automatiza a execuo de uma seqncia de simulaes em que so variadas apenas a distribuio espacial e a carga oferecida. Por exemplo, com uma nica interao com o usurio, possvel realizar simulaes para todas as oito distribuies espaciais disponveis, variando-se a carga de trabalho de 10% a 60% com

570

incremento de 2%. Sem o uso dessa ferramenta, seriam necessrias 240 interaes com o usurio para a definio de todas essas configuraes. Na anlise dos pacotes transferidos na rede, so desconsiderados os primeiros (0 a 10% do total) e os ltimos (90% a 100% do total) pacotes recebidos por cada nodo, pois esses podem ser beneficiados com uma menor conteno na rede. No contexto dos resultados apresentados a seguir, utiliza-se o termo ponto de saturao para definir o momento a partir da qual a rede no mais capaz de aceitar quallquer trfego adicional. Conforme Duato, Yalamanchili e Ni (1997), a vazo da rede pode ser medida pelo seu trfego aceito, expresso pelo nmero de flits por nodo por ciclo. Acima do ponto de saturao, mesmo incrementando a taxa de injeo da rede, com o aumento da carga de trabalho oferecida, ela no consegue suportar a largura de banda desejada e a latncia mdia sofre um aumento excessivo em relao ao seu valor com a rede trabalhando sob uma carga mais leve, ou seja, a rede est saturada. Isso caracteriza um ponto de operao a partir do qual a configurao utilizada inadequada para o trfego aplicado. 5.3 Resultados O primeiro experimento compara os diferentes tipos de distribuio de trfego espacial, com carga oferecida variando de 10 a 55% da largura de banda disponvel (medida em flits/ciclo/nodo), a uma taxa de injeo constante. utilizada uma configurao de rede com roteamento XY, buffers de 4 flits apenas na entrada dos roteadores e controle de fluxo baseado em crditos. Com exceo do padro no-uniforme, cada comunicao envolve a transferncia de 1000 pacotes com 16 flits (mais o cabealho). No padro nouniforme, o nmero de pacotes transmitidos diminui com o aumento da distncia entre os nodos. Por exemplo, nodos no vizinhos, separados por 3 roteadores, trocam 500 pacotes, enquanto que os separados por 4 roteadores, trocam 250 pacotes, e assim por diante. Os nodos mais distantes na rede 4x4, (0,0) e (3,3), trocam apenas 32 pacotes. A Fig 8 ilustra a latncia mdia de cada distribuio e a sua relao com o aumento da carga oferecida. A distribuio com menor latncia mdia a local, pois cada nodo se comunica apenas com seus nodos vizinhos, com uma distncia de 2 roteadores entre cada par de nodos comunicantes. Na distribuio uniforme, cada nodo envia pacotes a todos os demais nodos da rede, com uma distncia mdia de 3,94 roteadores entre nodos comunicantes, para a rede considerada (4x4). J na distribuio complemento, embora cada nodo envie pacotes para apenas um nodo, a distncia mdia entre nodos comunicantes de 5 roteadores. Por isso, a sua latncia mdia maior que a das demais. A distribuio no-uniforme tem distncia e latncia mdias intermedirias entre as da distribuio local e as da distribuio uniforme, pois cada nodo se comunica com todos os demais da rede, mas com probabilidade maior para se comunicar com nodos mais prximos.

571

Experimento 1
140 120 100 80 60 40 20 0 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 0,50 0,55 Complemento Uniforme No-Uniforme Local

Latncia mdia (ciclos)

Carga oferecida (flits/nodo/ciclo)

Figura 8. Comparao da latncia mdia para diferentes padres de distribuio espacial configurao: roteamento XY, buffers de 4 flits nas entradas, controle de fluxo baseado em crditos

A Fig 9 ilustra as medies tomadas quanto ao trfego aceito. Neste grfico, observa-se que as distribuies com maior localidade so as que aceitam menos trfego. Isso acontece porque nessas distribuies h uma probabilidade maior de ocorrer conteno no uso dos canais Lout dos roteadores pelos quais os pacotes saem da rede.
Experim ento 1 0,5 Trfego aceito (flits/nodo/ciclo) 0,4 0,3 0,2 0,1 0 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 0,50 0,55 Carga oferecida (flits/nodo/ciclo) Complemento Uniforme Non-Uniforme Local

Figura 9. Comparao do trfego aceito para diferentes padres de distribuio espacial configurao: roteamento XY, buffers de 4 flits nas entradas, controle de fluxo baseado em crditos

Analisando-se os dois grficos acima, observa-se que as distribuies que possuem uma maior competio por enlaces entre roteadores (uniforme e no-uniforme) so as que saturam mais cedo, com uma menor carga oferecida. Nota-se, ainda, que a distribuio local capaz de sustentar sua latncia mdia para cargas maiores que as demais distribuies, comeando a saturar com uma carga de 55%, quando a latncia mdia ultrapassa 100 ciclos de relgio. Considerando as aplicaes tpicas para sistemas embarcados, das quatro distribuies analisadas, as de maior localidade so que mais se aproximam do padro

572

de comunicao de aplicaes reais, onde os ncleos no se comunicam com a mesma probabilidade. Por isso, o mapeamento dos ncleos na rede deve ser feito de maneira a manter mais prximos aqueles que se comunicam com maior freqncia. No entanto, a distribuio local muito restritiva, e no considera a comunicao entre nodos no adjacentes, o que de fato ocorre em aplicaes reais. Por isso, a distribuio nouniforme usada nos experimentos a seguir que comparam o desempenho da rede utilizando diferentes configuraes do roteador ParIS. Nesses experimentos, cada simulao envolve a transferncia de 104.116 pacotes de 16 flits entre os 16 geradores de trfego. No segundo experimento, compara-se o desempenho da rede sob duas configuraes de rotamento: XY e WF (West-First). Como pode ser observado nos grficos a seguir, o uso do roteamento XY resulta em uma latncia mdia levemente menor e em um maior trfego aceito. Alm disso, a rede consegue sustentar uma latncia mais baixa para uma carga oferecida maior, saturando em 50% no XY contra 45% no WF. O pior desempenho do roteamento WF se deve ao fato de ele ser parcialmente adaptativo (o XY determinstico) e permitir o uso de diferentes caminhos para pacotes enviados em direo ao leste. Com o aumento do trfego, ele produz uma concentrao de pacotes no meio da rede, aumentando a conteno.
Experimento 2
140

Experimento 2
0,50 Trfego aceito (flits/nodo/ciclo) 0,40 0,30 0,20 XY 0,10 0,00 0,10 0,20 0,30 0,40 0,50 WF

Latncia mdia (ciclos)

120 100 80 60 40 20 0 0.10 0.20 0.30 0.40 0.50

XY WF

Carga oferecida (flits/nodo/ciclo)

Carga oferecida (flits/nodo/ciclo)

Figura 10. Avaliao do impacto do algoritmo de roteamento na latncia mdia e no trfego aceito pela rede configurao: buffers de 4 flits nas entradas, controle de fluxo baseado em crditos, distribuio espacial no-uniforme

No terceiro experimento, avalia-se a influncia da profundidade dos buffers de entrada no desempenho da rede. A Fig. 11 ilustra resultados para simulaes com buffers de profundidade igual a 2, 4, 8 e 16 flits. Analisando-se os resultados, nota-se que buffers muito rasos limitam demasiadamente o trfego aceito pois, quando um pacote bloqueado, ele mantm alocados todos os canais e buffers j reservados. Com buffers de dois flits nos roteadores e pacotes de 16 flits (mais o cabealho), em uma rede 4x4, um pacote pode reservar todos os roteadores do seu caminho enquanto estiver bloqueado, provocando um aumento da conteno na rede. Com buffers mais profundos, esse efeito minimizado, reduzindo-se a latncia e estendendo-se o ponto de saturao. Mas, pode-se perceber que buffers de profundidade igual a 8 e a 16 flits possuem latncias mdias similares para uma carga oferecida de at 25%.

573

Experimento 3 200 180 160 140 120 100 80 60 40 20 0 0.10 0.20 0.30 0.40

16 flits/buffer 8 flits/buffer 4 flits/buffer 2 flits/buffer

Experimento 3 0.50
Trfego aceito (flits/nodo/ciclo)

Latncia mdia (ciclos)

0.40 0.30 0.20 0.10 0.00


16 flits/buffer 8 flits/buffer 4 flits/buffer 2 flits/buffer

0.50

0.10

0.20

0.30

0.40

0.50

Carga oferecida (flits/nodo/ciclo)

Carga oferecida (flits/nodo/ciclo)

Figura 11. Avaliao do impacto da profundidade dos buffers de entrada na latncia mdia e no trfego aceito pela rede configurao: roteamento XY, controle de fluxo baseado em crditos, distribuio espacial no-uniforme

No quarto experimento, avalia-se o efeito da incluso de buffers (com capacidade de armazenar 4 flits) nos canais de sada dos roteadores. Dois efeitos podem ser notados a partir da anlise dos resultados ilustrados na Fig. 12. Primeiro, h um aumento da latncia mdia, o que se deve ao ciclo adicional para registro do cabealho nos buffers de sada dos roteadores (a latncia mnima para o cabealho de um pacote atravessar um roteador aumenta de 3 para 4 ciclos, incluindo o roteamento, a arbitragem e o armazenamento nos buffers de entrada e de sada). O segundo efeito o aumento do trfego aceito. Isso ocorre porque os buffers de sada reduzem a conteno dentro dos roteadores. Por exemplo, considerando um pacote de 16 flits bloqueado na rede e que seu ltimo flit esteja bloqueado em um roteador, sem o uso de buffers de sada, esse flit ir reservar uma conexo interna do roteador at que ele possa ser encaminhado para outro roteador. Com o buffer no canal de sada, o flit absorvido por esse buffer, liberando a conexo interna e a sada do buffer do canal de entrada pelo qual ele chegou no roteador.
Experimento 4 140 Experimento 4 0,50

Latncia mdia (ciclos)

120 100 80 60 40 20 0 0,10

Sem buffers de sada

Trfego aceito (flits/nodo/ciclo)

Com buffers de sada

0,40 0,30 0,20 0,10 0,00


Sem buffers de sada Com buffers de sada

0,20

0,30

0,40

0,50

0,10 0,20 0,30 0,40 0,50 Carga oferecida (flits/nodo/ciclo)

Carga oferecida (flits/nodo/ciclo)

Figura 12. Avaliao do impacto do uso de buffers nos canais de sada na latncia mdia e no trfego aceito pela rede configurao: buffers de 4 flits, roteamento XY, controle de fluxo baseado em crditos, distribuio espacial nouniforme

574

A melhoria do desempenho proporcionada pela incluso dos buffers de sada se deve, tambm, ao aumento da capacidade de armazenamento dos roteadores, no apenas pela posio dos buffers. Por exemplo, o quinto experimento mostra que se for dobrada a capacidade dos buffers na configurao que no adota memorizao de sada (ou seja, 8 flits), essa passa a ter melhor desempenho do que com uso de buffers de 4 flits nas entradas e nas sadas dos roteadores.
Experimento 5 Experimento 5 0,50

Latncia mdia (ciclos)

140 100 80 60 40 20 0 0.10 0.20 0.30 0.40 0.50

Trfego aceito (flits/nodo/ciclo)

120

Sem buffers de sada Com buffers de sada

0,40 0,30 0,20 0,10 0,00 0,10 0,20 0,30 0,40 0,50
Sem buffers de sada Com buffers de sada

Carga oferecida (flits/nodo/ciclo)

Carga oferecida (flits/nodo/ciclo)

Figura 13. Avaliao do impacto do uso de buffers nos canais de sada na latncia mdia e no trfego aceito pela rede configurao: buffers de entrada de 8 flits e buffers de entrada e de sada de 4 flits, roteamento XY, controle de fluxo baseado em crditos, distribuio espacial no-uniforme

A melhoria do desempenho proporcionada pela incluso dos buffers de sada se deve, tambm, ao aumento da capacidade de armazenamento dos roteadores, no apenas pela posio dos buffers. Por exemplo, o quinto experimento mostra que se for dobrada a capacidade dos buffers na configurao que no adota memorizao de sada (ou seja, 8 flits), essa passa a ter melhor desempenho do que com uso de buffers de 4 flits nas entradas e nas sadas dos roteadores. A Tabela 1 apresenta uma sntese das concluses tomadas a partir a anlise dos resultados dos experimentos apresentados neste artigo.
Tabela 1. Resumo das concluses dos experimentos
No 1 2 3 Caracterstica avaliada Distribuies espaciais Roteamento Profundidade dos buffers de entrada Concluses Quanto maior a localidade, melhor a latncia mdia (menor) e pior o trfego aceito (menor). O roteamento XY possui latncia mdia menor e aceita mais trfego. Buffers de entrada muito rasos (2 flits) resultam em um desempenho pior (latncia maio e trfego aceito menor). Porm buffers de entrada muito profundos (16 flits) no oferecem desempenho muito melhor que buffers com menor profundidade (8 flits). O acrscimo de buffers de sada reduz a conteno dentro dos roteadores e aumenta o trfego aceito. Porm, a latncia mdia tambm cresce. A diviso da capacidade de buffering entre buffers de entrada e de sada produz um desempenho pior do que a alocao dessa capacidade apenas em buffers de entrada. O trfego aceito igual, mas a latncia mdia aumenta com o uso de buffers na sada.

Incluso de buffers de sada Distribuio da capacidade de buffering entre buffers de entrada e de sada

575

Alm dos experimentos mostrados acima, foram realizados outros que permitiram analisar o impacto da configurao do roteador no desempenho da rede sob diferentes padres de trfego. Esses experimentos tambm confirmaram a capacidade do ambiente desenvolvido (modelos SystemC + ferramentas de apoio ao projeto de experimentos) em auxiliar na anlise das melhores alternativas de configurao de rede. No entanto, os resultados obtidos permitem extrair concluses apenas para padres de trfego genricos. O objetivo do projeto ao qual este trabalho est associado construir um ambiente integrado para modelagem em SystemC de aplicaes reais baseadas em arquiteturas de comunicao do tipo Rede-em-Chip, e posterior anlise de trfego para auxiliar na escolha tanto do mapeamento da aplicao na rede, quanto da configurao de roteador a ser adotada.

7 Concluses
Neste artigo, foi apresentado a modelagem de uma Rede-em-Chip em SystemC visando a simulao da rede para avaliar o impacto de diferentes configuraes de roteador no desempenho da rede. Foi adotadata uma abordagem de modelagem hbrida, em que os roteadores foram descritos no nvel RT e os demais componentes de benchmarking no nvel de abstrao de sistema. Tambm foi descrito um conjunto de ferramentas de apoio desenvolvidas para automatizar os processos de gerao de sistema e de gerao e anlise de trfego. Os resultados obtidos com os experimentos realizados permitiram mostrar que, para o padro de trfego considerado, o roteamento XY oferece melhor desempenho que o roteamento WF. Tambm se pde verificar que o uso de buffers muito rasos limita o desempenho das redes, mas que buffers muito profundos (16 flits), no trazem benefcios significativos, sendo que o uso buffers de 8 flits produziu os resultados mais satisfatrios. Alm disso, pde-se identificar que essa configurao de buffer tambm supera, em desempenho, a configurao com buffers de entrada e de sada com 4 flits. Como j mencionado, este trabalho ser complementado com a construo de um ambiente integrado para modelagem e avaliao de desempenho de aplicaes reais, integrada a uma ferramenta j desenvolvida que realiza o mapeamento das tarefas da aplicao nos terminais de Redes-em-Chip. Para esse ambiente integrado, ser construda uma interface visual e sero modeladas outras alternativas de configurao do roteador. Tambm ser realizada a construo de modelos do roteador em SystemC em nveis mais abstratos, com potencial de oferecer um melhor tempo computacional nas primeiras etapas de explorao do espao de projeto. Esse ambiente integrado servir de apoio tomada de decises no desenvolvimento de sistemas baseados em Redes-em-Chip, propiciando a explorao do espao de projeto em diferentes nveis de abstrao. O grupo de pesquisadores associados a este trabalho tambm est investigando questes relativas ao provimento de QoS (Quality-of-Service) para NoCs para aplicaes multimdia e de telecomunicaes, uma vez que o roteador ParIS do tipo melhor esforo (best effort) e no oferece qualquer garantia de QoS. O objetivo desenvolver uma arquitetura de NoC de baixo custo que consiga possa prover nveis de servio diferenciados e garantir a latncia e/ou a vazo necessrios para atender s restries de projeto de aplicaes dedicadas.

576

Agradecimentos
Este trabalho recebeu apoio do programa de bolsas Art. 170 do Governo do Estado de Santa Catarina (2006) e conta com fomento do Edital Universal 2006 do CNPq (20072008).

Referncias
Andriahantenaina, A. et al. (2003), SPIN: a Scalable, Packet Switched On-Chip MicroNetwork, In: Design, Automation and Test on Europe - DATE, 2003, Munich. Proceedings... Los Alamitos: IEEE Computer Society. p. 70 73. Bolotin, E. et al. (2004), QnoC: QoS Architecture and Design Process for Network-onChip, Journal of Systems Architecture, v.5, n.2-3, p.105-128. Chan, J., Parameswaran, S. (2003), NoCGen - a Template Based Reuse Strategy for Networks-on-Chip, In: International Conference on VLSI DESIGN, 17, 2004, India. Proceedings... Los Alamitos: IEEE Computer Society. p. 70 73. Duato, J., Yalamanchili, S., Ni, L. (1997), Interconnection Networks. Los Alamitos, IEEE CS Press. Forte Design Systems (2007). Cynthesizer Closes the ESL-to-Silicon Gap, disponivel em: <http://www.forteds.com/products/cynthesizer.asp>. Acesso em: 11 maio 2007. Guerrier, P., Greiner, A. (2000), A Generic Architecture for On-Chip Packet-Switched Interconnections, In: Design, Automation and Test on Europe - DATE, 2000, Paris. Proceedings... Los Alamitos: IEEE Computer Society Press. p. 250-256. Gupta, R. K., Zorian, Y. (1997), Introducing core-based system design, IEEE Design & Test of Computers, [S.l.], v. 14, n. 4, p. 15-25. Hemani et al. (1999), Lowering Power Consumption in Clock by Using Globally Asynchronous Locally Synchronous Design Style, Design Automation Conference, ACM Press. p. 873-878. Jantsch, A., Tenhunen, H. (2003), Networks on Chip. Boston: Kluwer Academic Publishers. 303p. Kreutz, M. E. et al. (2005), Design Space Exploration Comparing Homogeneous and Heterogeneous Network-on-Chip Architectures In 18th Symposium on Integrated Circuits and Systems Design. Proceedings... New York: ACM. Martin, G. (2003), SystemC: from Language to Applications, from Tools to Methodologies, In: Symposium on Integrated Circuits and Systems, 16, 2003, So Paulo. Proceedings... Los Alamitos: IEEE Computer Society. p. 3. Moraes, F. et al. (2003), A Low Area Overhead Packet-Switched Network-on-Chip: Architecture and Prototyping, In: IFIP WG 10.5 VLSI-SoC, 2003, Darmstadt. Proceedings Darmstadt: Technische Universitt Darmstadt. p. 318-323. OSCI (2002), SystemC version 2.0 users guide. 212p. OSCI (2005), Draft Standard SystemC Language Reference Manual. 438 p. Swan, S. (2001), An introduction to system level modeling in SystemC 2.0. [S.l.]: OSCI, May. 10p.

577

Synopsys (2003), CoCentric SystemC Compiler RTL: user and modeling guide. VU2003.06. Synopsys. Tedesco, L. P. (2005), Uma Proposta para Gerao de Trfego e Avaliao de Desempenho para NoCs, Dissertao (Mestrado em Cincia da Computao), PUCRS, Programa Ps-Graduao em Cincia da Computao. Zeferino, C. A., Santo, F. G. M. E., Susin, A. A. (2004), Paris: A Parameterizable Interconnect Switch for Networks-on-Chip, In: 17th Symposium on Integrated Circuits and Systems, 2004, Porto de Galinhas. Proceedings. New York : ACM Press. p. 204-209.

578

Você também pode gostar