• Nenhum resultado encontrado

Eduardo Alves da Silva ANÁLISE COMPARATIVA DO DESEMPENHO DE ARQUITETURAS DE REDES-EM-CHIP BASEADA EM SIMULAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "Eduardo Alves da Silva ANÁLISE COMPARATIVA DO DESEMPENHO DE ARQUITETURAS DE REDES-EM-CHIP BASEADA EM SIMULAÇÃO"

Copied!
197
0
0

Texto

(1)

ANÁLISE COMPARATIVA DO DESEMPENHO DE

ARQUITETURAS DE REDES-EM-CHIP BASEADA EM

SIMULAÇÃO

(2)

CURSO DE MESTRADO ACADÊMICO EM

COMPUTAÇÃO APLICADA

ANÁLISE COMPARATIVA DO DESEMPENHO DE

ARQUITETURAS DE REDES-EM-CHIP BASEADA EM

SIMULAÇÃO

por

Eduardo Alves da Silva

Dissertação apresentada como requisito parcial à obtenção do grau de Mestre em Computação Aplicada.

Orientador: Cesar Albenes Zeferino, Dr.

(3)

Esta página é reservada para inclusão da folha de assinaturas, a ser disponibilizada pela Secretaria do Curso para coleta da assinatura no ato da defesa.

(4)

There are many hypotheses in science, which are wrong. That is perfectly all right; they are the aperture to finding out what's right. Science is a self-correcting process. To be accepted, new ideas must survive the most rigorous standards of evidence and scrutiny. (Existem muitas hipóteses na ciência que estão erradas. Isso é perfeitamente aceitável, elas são a abertura para achar as que estão certas. A ciência é um processo de autocorreção. Para serem aceitas, novas ideias devem sobreviver aos mais rigorosos padrões de evidência e escrutínio.) (Carl Sagan)

If we knew what it was we were doing, it would not be called research, would it? (Se soubéssemos o que estávamos fazendo, não seria chamado pesquisa, seria?) (Albert Einstein)

(5)

SIMULAÇÃO

Eduardo Alves da Silva

Fevereiro / 2017

Orientador: Cesar Albenes Zeferino, Dr. Área de Concentração: Computação Aplicada

Linha de Pesquisa: Sistemas Embarcados e Distribuídos

Palavras-chave: Rede-em-Chip, Avaliação de desempenho, Simulação. Número de páginas: 197

RESUMO

A era dos sistemas multi-core demanda agilidade no processo de avaliação dos projetos de sistemas integrados, no qual se busca a melhor relação custo-desempenho. As Redes-em-Chip ou NoCs (Networks-on-Chip), tornaram-se a tecnologia de infraestrutura de comunicação preferencial nesses sistemas. No entanto, o espaço de projeto dessas redes é amplo e conta com uma série de definições arquiteturais. Quando novas arquiteturas de NoC são propostas, um modelo de referência é utilizado para comparação e posicionamento da proposta. Porém, diante do grande número de alternativas disponíveis, ter apenas um modelo de referência pode não ser suficiente. Na tentativa de explorar mais alternativas, estudos comparativos qualitativos têm sido realizados. Entretanto, esses são limitados, pois carecem de dados quantitativos. Dessa forma, este trabalho buscou dar suporte à avaliação de desempenho com um conjunto abrangente de arquiteturas de NoC em diferentes cenários comunicação. Para isso, uma biblioteca de componentes simuláveis foi desenvolvida e integrada a um ambiente de experimentação. Com isso, foi possível realizar um amplo conjunto de experimentos de forma unificada, cujos resultados permitiram identificar, para as arquiteturas e cenários considerados, que não há uma única configuração de rede que seja superior em desempenho em todos os casos. Também, observou-se que a Malha 2D, topologia mais utilizada em NoCs, apresentou desempenho inferior a outras topologias convencionais, como Toroide 2D e Malha 3D, na maioria dos cenários avaliados. Já a Malha 3D apresentou melhor escalabilidade no desempenho com diferentes dimensionamentos e foi, inclusive, superior ao Crossbar no cenário de comunicação mais intenso com redes de 16 nodos. Verificou-se ainda que algoritmos de roteamento adaptativos foram mais eficientes em cenários de tráfego com menor carga global na rede, enquanto o algoritmo determinístico foi melhor em cenários com maior carga de comunicação. Políticas de arbitragem apresentaram diferenças pequenas, entretanto, o árbitro de prioridades fixas gerou instabilidade na rede. Por fim, verificou-se que, com apropriado dimensionamento de buffers, o desempenho pode ser melhorado em até sete vezes, entretanto, buffers muito profundos não oferecem ganho significativo a partir de determinado dimensionamento.

(6)

Eduardo Alves da Silva

February / 2017

Advisor: Cesar Albenes Zeferino, PhD.

Area of Concentration: Applied Computer Science Research Line: Embedded and Distributed Systems

Keywords: Networks-on-Chip, Performance Evaluation, Simulation. Number of pages: 197

ABSTRACT

The era of multi-core systems demands agility in the evaluation process of the Systems-on-Chip design, in which the best cost-performance tradeoff is sought. The Networks-on-Chip (NoC) approach has become the preferred communication infrastructure technology in these systems. However, the design space of NoCs is large, and has a series of architectural attributes. When new NoC architectures are proposed, a reference model is generally used for comparison and positioning of the proposal. However, with the large number of available alternatives, having just one reference model may not be enough. Qualitative studies have been conducted, in an attempt to explore other alternatives. However, these studies are limited by a lack of quantitative data. This work therefore seeks to support the performance evaluation of with a broad set of NoC architectures in different communication scenarios. For this, a library of simulatable components was developed and integrated into an experimentation environment. It was possible to perform a wide range of experiments in a unified approach using this environment. The results showed that for the architectures and scenarios evaluated, that there is no a single network configuration that has superior in performance in all cases. It was observed that the 2D Mesh, the most frequently used topology in NoCs, presented inferior performance to other conventional topologies, such as 2D Torus and 3D Mesh, in most of the scenarios evaluated. Meanwhile, the 3D Mesh presented better scalability with different dimensions, and was superior to the Crossbar in the most intensive communication scenario, with 16 node networks. It was also found that adaptive routing algorithms were more efficient in traffic scenarios with lower global load in the network, while the deterministic algorithm performed better in scenarios with larger communication loads. Arbitration policies presented small differences, however, the arbiter with fixed priorities generated instability in the network. Lastly, it was verified that with the appropriate buffer dimensioning, the performance can be improved up to seven times, but very deep buffers do not offer significant improvement based on a particular dimensioning.

(7)

Figura 1. Componentes de uma Rede-em-Chip ... 24

Figura 2. Topologias: (a) Malha 2D; (b) Árvore Gorda ... 25

Figura 3. Granularidade da informação ... 27

Figura 4. Processo de envio de mensagem no chaveamento por circuito sem contenção ... 28

Figura 5. Transições do controle de fluxo baseado em créditos ... 30

Figura 6. Controle de fluxo handshake: (a) monofilar; (b) duas fases; (c) quatro fases ... 30

Figura 7. Organizações de árbitro: (a) centralizado (b) distribuído ... 31

Figura 8. Organizações de buffer: (a) centralizado; (b) distribuído; (c) distribuído com canais virtuais ... 32

Figura 9. Sistema com terminais de instrumentação ... 37

Figura 10. Portas de comunicação: (a) Malha 2D; (b) Malha Honeycomb ... 49

Figura 11. Arquitetura da solução proposta ... 59

Figura 12. Topologias implementadas: (a) Malha 2D; (b) Toróide 2D; (c) Malha Irregular; (d) Anel; (e) Anel Cordal; (f) Barramento; (g) Crossbar; (h) Malha 3D;... 61

Figura 13. Entidades do ParIS: (a) Visão de topo; (b) Módulo de entrada; (c) Módulo de saída ... 65

Figura 14. Classes de interface da biblioteca ... 66

Figura 15. Relação entidade – módulo do roteador ... 66

Figura 16. Diagrama de caso de uso do simulador: (a) Caso de uso; (b) Cenários representados por diagrama de atividades ... 67

Figura 17. Exemplo de reestruturação das portas de comunicação de um componente: (a) primeira versão; (b) nova versão ... 69

Figura 18. Diagrama de classes da organização lógica dos componentes: (a) Modelo antigo, sem relacionamento; (b) Novo modelo, com herança ... 70

Figura 19. Códigos-fonte da reestruturação do modelo de classes: (a) Modelo antigo, sem relacionamento; (b) Novo modelo, com herança. ... 71

Figura 20. Malha 2D 3x3 com os índices do vetor de portas de cada roteador ... 74

Figura 21. Diagrama de classes para alguns roteamentos. ... 75

Figura 22. Protocolo de comunicação da rede: (a) para topologias não ortogonais; (b) para topologias ortogonais de duas dimensões; e (c) para topologias ortogonais de três dimensões 76 Figura 23. Estrutura interna do barramento ... 78

Figura 24. Situações de tráfego com dependência circular/cíclica para uma rede em anel: (a) sentido horário; (b) sentido anti-horário ... 80

Figura 25. Experimento dos roteamentos da rede anel: (a) padrão de tráfego matriz transposta; (b) Tráfego Aceito X Tráfego Oferecido ... 82

Figura 26. Configuração de tráfego complemento no front-end do RedScarf em redes de 16 nodos: (a) Ortogonal 2D; (b) Ortogonal 3D; (c) Não Ortogonal ... 83

Figura 27. Padrões de distribuição espacial dos experimentos: (a) Bit-Reversal; (b) Perfect Shuffle; (c) Butterfly; (d) Complemento; (e) Transposto; (f) Uniforme ... 86

Figura 28. Resultados do experimento de topologias com 16 elementos sob tráfego uniforme: (a) Latência Média x Tráfego Oferecido; (b) Latência Média x Tráfego Oferecido (s/ barramento); (c) Tráfego Aceito x Tráfego Oferecido; (d) Latência Média x Frequência de Operação (s/ barramento); (e) Distribuição de latências próximo ao ponto de saturação da rede (30 MHz – s/ barramento) ... 89

(8)

Distribuição de latências próximo ao ponto de saturação da rede ... 91 Figura 30. Resultados do experimento de topologias com 16 elementos sob tráfego perfect shuffle:

(a) Latência Média x Tráfego Oferecido; (b) Latência Média x Frequência de operação; (c) Tráfego Aceito x Tráfego Oferecido; (d) Distribuição de latências próximo ao ponto de

saturação da rede; (e) Jitter do Toroide 2D e Malha 3D sob operação normal ... 93 Figura 31. Resultados do experimento de topologias com 16 elementos sob tráfego butterfly: (a)

Latência Média x Tráfego Oferecido; (b) Latência Média x Frequência de operação; (c) Tráfego Aceito x Tráfego Oferecido; (d) Distribuição de latências ... 95 Figura 32. Resultados do experimento de topologias com 16 elementos sob tráfego transposto: (a)

Latência Média x Tráfego Oferecido; (b) Latência Média x Frequência de operação; (c) Tráfego Aceito x Tráfego Oferecido; (d) Distribuição de latências ... 96 Figura 33. Resultados do experimento de topologias com 16 elementos sob tráfego complemento:

(a) Latência Média x Tráfego Oferecido; (b) Latência Média x Frequência de operação; (c) Tráfego Aceito x Tráfego Oferecido; (d) Distribuição de latências ... 97 Figura 34. Latência média com redes de 64 elementos sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 106 Figura 35. Tráfego aceito com redes de 64 elementos sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 107 Figura 36. Dispersões das latências com redes de 64 elementos sob diferentes cenários de tráfego:

(a) Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 108 Figura 37. Latência média dos roteamentos na Malha 2D 4x4 sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 116 Figura 38. Tráfego aceito dos roteamentos na Malha 2D 4x4 sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 117 Figura 39. Dispersões das latências dos roteamentos na Malha 2D 4x4 sob diferentes cenários de

tráfego: (a) Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f) Complemento ... 118 Figura 40. Latência média dos árbitros no Toroide 2D 4x4 sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 124 Figura 41. Tráfego aceito dos árbitros no Toroide 2D 4x4 sob diferentes cenários de tráfego: (a)

Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f)

Complemento ... 125 Figura 42. Dispersões das latências dos árbitros no Toroide 2D 4x4 sob diferentes cenários de

tráfego: (a) Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f) Complemento ... 126 Figura 43. Formas de ondas do caso que ilustra uma situação em que pode ser gerado starvation no

árbitro estático ... 128 Figura 44. Formas de ondas do caso que ilustra uma situação em que não ocorre starvation no

(9)

Figura 46. Tela de configuração de dimensionamento da rede ... 155

Figura 47. Telas das configurações de tráfego: (a) Padrão 1; (b) Padrão 2 ... 156

Figura 48. Tela da configuração dos roteadores utilizados no experimento ... 157

Figura 49. Telas dos gráficos de desempenho do resultado da simulação: (a) Vazão; (b) Latência média ... 158

Figura 50. Telas dos gráficos dos percentuais de prazos atendidos em relação à frequência de operação: (a) Tempo real de sinalização – RT0; (b) Não tempo real de leituras e escritas – nRT0... 158

Figura 51. Tela do gráfico de histograma de latências na frequência de operação próxima ao ponto de saturação ... 159

Figura 52. Telas dos relatórios da simulação: (a) Roteamento XY sem canais virtuais; (b) Roteamento WF sem canais virtuais; (c) Roteamento XY com canais virtuais; (d) Roteamento WF com canais virtuais ... 160

Figura 53. Módulo do roteador ParIS que estende a interface roteador ... 163

Figura 54. Módulos de roteamento ... 163

Figura 55. Módulos de arbitragem ... 164

Figura 56. Módulos de controle de fluxo ... 164

Figura 57. Módulos de memorização ... 164

Figura 58. Visão geral dos módulos principais ... 165

Figura 59. Interações sistema completo ... 166

Arquiteturas de NoCs de referência na literatura ... 34

Visão geral dos trabalhos selecionados na revisão sistemática ... 45

Características do trabalho de Ghidini et al. (2012)... 47

Características do trabalho de Yin et al. (2012) ... 49

Características do trabalho de Ju e Yang (2012)... 50

Características do trabalho de Manna, Chattopadhaya e Sengupta (2012) ... 52

Características do trabalho de Jetly (2013) ... 53

Características do trabalho de Sllame e Abdelkader (2014) ... 54

Características apresentadas por Harbin e Indrusiak (2016) ... 55

Características dos trabalhos relacionados ... 57

Mecanismos de comunicação da biblioteca ... 62

Arquivo de configuração dos plug-ins do simulador ... 72

Notação de nomes utilizada nos modelos da biblioteca ... 73

Relação da Frequência de operação –Tráfego Oferecido ... 87

Experimentos de topologias com 16 nodos a 30 MHz sob tráfego Uniforme ... 99

Relação de desempenho das topologias com 16 nodos à 30 MHz sob tráfego Uniforme ... 100

Relação de desempenho - topologias com 16 nodos sob tráfego Bit-reversal ... 102

Relação de desempenho - topologias com 16 nodos sob tráfego Perfect Shuffle ... 103

Relação de desempenho - topologias com 16 nodos sob tráfego Butterfly ... 103

Relação de desempenho - topologias com 16 nodos sob tráfego Transposto ... 104

Relação de desempenho - topologias com 16 nodos sob tráfego Complemento ... 104

(10)

Relação de desempenho - topologias com 64 nodos sob tráfego Transposto ... 113

Relação de desempenho - topologias com 64 nodos sob tráfego Complemento ... 114

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Uniforme ... 119

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Bit-reversal ... 120

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Perfect Shuffle .... 120

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Butterfly ... 121

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Transposto ... 121

Relação de desempenho – roteamentos na Malha 2D 4x4 - tráfego Complemento ... 122

Relação de desempenho – árbitros no Toroide 2D 4x4 - tráfego Uniforme ... 127

Relação de desempenho – memorização na Malha 3D 4x2x2 - tráfego Uniforme ... 132

Resultados do protocolo da revisão sistemática ... 147

Padrões de tráfego do exemplo de uso ... 155

Configurações de roteador do exemplo de uso ... 156

Experimento de topologias com 16 nodos sob tráfego uniforme ... 168

Experimento de topologias com 16 nodos sob tráfego bit-reversal ... 169

Experimento de topologias com 16 nodos sob tráfego perfect shuffle ... 170

Experimento de topologias com 16 nodos sob tráfego butterfly ... 171

Experimento de topologias com 16 nodos sob tráfego transposto ... 172

Experimento de topologias com 16 nodos sob tráfego complemento ... 173

Resumo da latência média das topologias com 16 nodos ... 174

Resumo da vazão das topologias com 16 nodos – tráfego oferecido em canal de 32 bits e banda requerida de 320 Mbps por fluxo ... 175

Resumo do desvio padrão da latência média – indicador de dispersão das latências (jitter) das topologias com 16 nodos ... 176

Experimento de topologias com 64 nodos sob tráfego uniforme – ver próximo quadro ... 177

Continuação - experimento de topologias com 64 nodos sob tráfego uniforme ... 178

Experimento de topologias com 64 nodos sob tráfego bit-reversal ... 179

Experimento de topologias com 64 nodos sob tráfego perfect shuffle ... 180

Experimento de topologias com 64 nodos sob tráfego butterfly ... 181

Experimento de topologias com 64 nodos sob tráfego transposto ... 182

Experimento de topologias com 64 nodos sob tráfego complemento ... 183

Resumo da latência média das topologias com 64 nodos ... 184

Resumo da vazão das topologias com 64 nodos – tráfego oferecido em canal de 32 bits e banda requerida de 320 Mbps por fluxo ... 185

Resumo do desvio padrão da latência média – indicador de dispersão das latências (jitter) das topologias com 64 nodos ... 186

Resultados da latência média dos algoritmos de roteamento na topologia Malha 2D 4x4 ... 188

Resultados da vazão dos roteamentos na Malha 2D 4x4 – tráfego oferecido em canal de 32 bits e banda requerida de 320 Mbps por fluxo ... 189

Resultados do desvio padrão da latência média – indicador de dispersão das latências (jitter) dos roteamentos da topologia Malha 2D 4x4 ... 190

Resultados da latência média das políticas de arbitragem na topologio Toroide 2D 4x4 ... 192

(11)

(jitter) das políticas de arbitragem na topologio Toroide 2D 4x4 ... 194 Resultados dos experimentos de memorização na topologia Malha 3D 4x2x2 sob tráfego Uniforme ... 196

(12)

ACK Acknowledge

CSV Comma Separated Value

DSP Digital Signal Processor

EUA Estados Unidos da América

FIFO First-In First-Out

Flit Flow control unit

HDL Hardware Description Language

HW Hardware

IP Intelectual Property

KPN Kahn Process Networks

LRS Least Recently Served

Mbps Megabits por segundo

MB/s Megabyte por segundo

MHz Megahertz

MPSoC Multi Processor System-on-Chip

NACK Negative Acknowledge

NePA Network-based Processor Array

NF Negative-First

NL North-Last

NoC Network-on-Chip

OE Odd-Even

OO Orientação a Objetos

Phit Physical unit

PUCRS Pontifícia Universidade Católica do Rio Grande do Sul

QoS Quality of Service

REQ Requisição

RTL Register Transfer Level

SAF Store-and-Forward

SDRAM Synchronous Dynamic Random-Access Memory

SoC System-on-Chip

SoCIN System-on-Chip Interconnection Network

SPIN Scalable, Programmable, Integrated Network

STL Standard Template Library

SW Software

TDM Time Division Multiplexed

TLM Transaction Level Modeling

UFRGS Universidade Federal do Rio Grande do Sul UNIVALI Universidade do Vale do Itajaí

VCT Virtual Cut-Through

VHDL VHSIC Hardware Description Language

VHSIC Very High Speed Integrated Circuit

(13)

1

I

NTRODUÇÃO

... 14

1.1

PROBLEMA DE PESQUISA ... 15

1.1.1

SOLUÇÃO PROPOSTA ... 17

1.1.2

DELIMITAÇÃO DE ESCOPO ... 18

1.1.3

CONTRIBUIÇÕES DA DISSERTAÇÃO ... 19

1.2

OBJETIVOS ... 19

1.2.1

OBJETIVO GERAL ... 19

1.2.2

OBJETIVOS ESPECÍFICOS ... 19

1.3

METODOLOGIA ... 20

1.3.1

METODOLOGIA DA PESQUISA ... 20

1.3.2

PROCEDIMENTOS METODOLÓGICOS ... 20

1.4

ESTRUTURA DA DISSERTAÇÃO ... 21

2

R

EFERENCIAL

T

EÓRICO

... 23

2.1

REDES-EM-CHIP ... 23

2.1.1

TOPOLOGIA ... 24

2.1.2

ROTEAMENTO ... 25

2.1.3

CHAVEAMENTO ... 26

2.1.4

CONTROLE DE FLUXO ... 28

2.1.5

ARBITRAGEM ... 30

2.1.6

MEMORIZAÇÃO ... 32

2.1.7

EXEMPLOS DE NOC ... 33

2.2

AVALIAÇÃO DE DESEMPENHO ... 34

2.2.1

TERMINAL DE INSTRUMENTAÇÃO ... 37

2.2.2

ANÁLISE DA SIMULAÇÃO ... 40

2.3

CONSIDERAÇÕES ... 42

3

E

STADO DA

A

RTE

... 44

3.1

RESUMO DO PROTOCOLO DE BUSCA ... 44

3.2

VISÃO GERAL DOS TRABALHOS ANALISADOS... 44

3.3

TRABALHOS ANALISADOS E AS PERGUNTAS DE PESQUISA ... 46

3.4

TRABALHOS RELACIONADOS ... 47

3.4.1

GHIDINI ET AL. (2012) ... 47

3.4.2

YIN ET AL. (2012) ... 48

3.4.3

JU E YANG (2012) ... 50

3.4.4

MANNA, CHATTOPADHAYA E SENGUPTA (2012) ... 51

3.4.5

JETLY (2013) ... 52

3.4.6

SLLAME E ABDELKADER (2014) ... 53

3.4.7

HARBIN E INDRUSIAK (2016) ... 55

(14)

4.2

PREMISSAS E RESTRIÇÕES ... 63

4.3

PROJETO ... 63

4.3.1

ARQUITETURA ... 64

4.3.2

IMPLEMENTAÇÃO ... 68

4.4

CONSIDERAÇÕES ... 84

5

A

VALIAÇÃO DE

D

ESEMPENHO

... 85

5.1

TOPOLOGIAS ... 87

5.1.1

REDES COM 16 NODOS ... 88

5.1.2

REDES COM 64 NODOS ... 105

5.2

ROTEAMENTOS ... 114

5.2.1

ANÁLISE DOS ROTEAMENTOS ... 122

5.3

ÁRBITROS ... 123

5.3.1

ANÁLISE DOS ÁRBITROS ... 129

5.4

MEMORIZAÇÃO ... 130

5.5

CONSIDERAÇÕES ... 132

6

C

ONCLUSÕES

... 134

6.1

CONTRIBUIÇÕES ... 135

6.2

PUBLICAÇÕES ... 136

6.3

TRABALHOS FUTUROS ... 136

REFERÊNCIAS ... 138

APÊNDICE

A

R

EVISÃO

S

ISTEMÁTICA

... 144

APÊNDICE

B

R

ED

S

CARF

... 148

APÊNDICE

C

E

XEMPLO DE

U

SO DO

R

ED

S

CARF

... 154

APÊNDICE

D

P

ROJETO E

A

RQUITETURA DE

S

OFTWARE

... 161

(15)

1 INTRODUÇÃO

O avanço no processo de fabricação dos circuitos eletrônicos viabilizou a integração de dezenas de componentes em uma única pastilha de silício, o que possibilitou a construção de um sistema completo em um único chip, os sistemas integrados ou SoCs (Systems-on-Chip) (ZEFERINO, 2003). Para atender a demanda de comunicação nesses sistemas, pesquisadores propuseram a adoção de redes de interconexões chaveadas, pois as limitações impostas pelas tecnologias tradicionais de comunicação, como o barramento, inviabilizariam o atendimento de requisitos de desempenho com o aumento do número de componentes (TEWKSBURY; UPPULURI; HORNAK, 1992). Essas redes, quando implementadas no nível intrachip são denominadas Redes-em-Chip, do inglês NoCs – Networks-on-Chip (HEMANI et al., 2000).

Zeferino (2003) apontou que os requisitos de desempenho em comunicação, como largura de banda escalável e baixa latência, dificilmente seriam atendidos pelas arquiteturas baseadas no barramento. As NoCs surgiram da necessidade de uma arquitetura de comunicação para sistemas integrados, que provesse, dentre outras características, escalabilidade de desempenho, reusabilidade e paralelismo de comunicação (ANDRIAHANTENAINA et al., 2003).

Desde o surgimento das NoCs, várias alternativas arquiteturais foram propostas para prover as características de desempenho que atendessem os requisitos de projetos. Usualmente, essas propostas são avaliadas por meio de uma descrição arquitetural ou por meio de uma comparação experimental de uma proposta em relação à uma arquitetura de referência. Nessa segunda linha, os experimentos geralmente são realizados por meio de simulação (OGRAS; MARCULESCU, 2013).

O espaço de projeto de NoCs é amplo e a quantidade de alternativas arquiteturais vêm aumentando com o passar do tempo. Com isso, o trabalho do projetista de NoCs é criterioso e pode ser custoso (em tempo de projeto) na escolha dos componentes arquiteturais. Isso porque uma descrição arquitetural não dá subsídios para nortear uma escolha e comparações experimentais geralmente são limitadas na avaliação de uma arquitetura em relação à outra.

Nesse contexto, este trabalho buscou realizar a avaliação de desempenho de arquiteturas de Redes-em-Chip por meio de uma análise comparativa, baseada em experimentos, com alternativas arquiteturais sob diferentes cenários de tráfego. Para isso, foi desenvolvida uma biblioteca de componentes simuláveis com um conjunto de módulos que possibilitam a caracterização de NoCs

(16)

descritas na literatura. A biblioteca servirá de apoio à tomada de decisão no processo de verificação dos requisitos de projeto, com isso reduzirá o tempo dispendido na exploração do espaço de projeto de NoCs. Para facilitar o processo de configuração e extração de resultados, a biblioteca desenvolvida foi integrada a uma ferramenta de avaliação de desempenho com interface gráfica.

1.1 PROBLEMA DE PESQUISA

Conforme já mencionado, o espaço de projeto das NoCs é amplo e a quantidade de alternativas arquiteturais tem aumentado. Essas alternativas comumente são avaliadas diante de uma arquitetura de referência. Para uma maior abrangência, comparativos descritivos têm sido feitos, porém não dão subsídios na verificação do atendimento de requisitos de cada projeto. Por isso, Benini e De Micheli (2006, p. 19) relataram que ambientes especializados e ferramentas são necessários para acelerar a exploração do espaço de projeto de NoCs. Jiang et al. (2013) enfatizaram que com o aumento no número de núcleos sendo integrados em um único chip, modelos de simulação com alta acurácia para avaliar o desempenho devem ser providos para avaliar os impactos causados pelas escolhas arquiteturais.

Nas NoCs, os requisitos de desempenho norteiam as definições e a caracterização da rede e suas particularidades. A avaliação de desempenho em NoCs é tradicionalmente realizada por meio de experimentos de simulação e permite ao projetista verificar o impacto de diferentes configurações dos parâmetros de projeto no desempenho da rede (OGRAS; MARCULESCU, 2013).

Sendo assim, foi realizada uma pesquisa bibliográfica por trabalhos que permitissem nortear escolhas de arquiteturas com informações relacionadas ao desempenho. Foram identificados e selecionados um conjunto de trabalhos para análise. Desses, alguns apenas realizavam a descrição dos componentes e sua estimativa de desempenho, como, o trabalho de Salminen, Kulmala e Hämäläinen (2007), em que foi feito um comparativo descritivo de arquiteturas da literatura.

Trabalhos com experimentos geralmente apresentam uma melhoria proposta em relação à uma NoC de referência, como o trabalho de Hu, Lee e Bagherzadeh (2008), em que os pesquisadores aumentaram o número de canais de comunicação da NoC NePA (Network-based Processor Array), estabeleceram ligações diagonais entre os roteadores da Malha 2D e propuseram um algoritmo de roteamento para reduzir o número de saltos entre roteadores em diferentes dimensões nos eixos X e

(17)

Y. Os trabalhos apresentados no Capítulo 3 (Estado da Arte) desta dissertação também utilizam essa mesma abordagem, uma proposta sendo feita e comparada a uma arquitetura de referência.

Também foram analisados trabalhos sobre ferramentas e ambientes especializados para avaliação de NoCs. Nesse caso, o estudo realizado por Achballah e Saoud (2013) serviu como ponto de partida para a busca por ferramentas. Foi feito um levantamento bibliográfico nesse tema em específico. Do estudo, foi verificado que as ferramentas descritas possuíam foco na análise de arquiteturas específicas sem muitos componentes para exploração arquitetural.

Nessa busca por ferramentas, foram encontrados trabalhos relacionados à avaliação de NoCs realizados por um grupo de pesquisa da Universidade de Stanford, Estados Unidos. Balfour e Dally (2006) realizaram um estudo com foco na análise de área e consumo de energia junto à avaliação de desempenho de diferentes topologias de NoC. Posteriormente, Becker (2012), investigou o consumo de energia, o custo em área e realizou a avaliação de desempenho de componentes arquiteturais de NoCs, tais como: árbitros, alocadores, canais virtuais e gerenciamento de buffers. Jiang et al. (2013) sumarizaram e compilaram esses estudos e outros trabalhos do grupo e propuseram uma nova versão do simulador BookSim (DALLY; TOWLES, 2004), desenvolvido inicialmente para exploração do espaço de projeto de redes de interconexão.

Diante dos trabalhos analisados, não foi encontrado nenhum estudo comparativo baseado em experimentos de várias propostas arquiteturais descritas da literatura com foco na análise de desempenho, como proposto nesta dissertação. O trabalho mais próximo foi o realizado por Jiang et al. (2013). Porém, nesse trabalho, apenas foi apresentado o simulador com comparativos da versão simulável com a descrição RTL (Register Transfer Level) dos componentes modelados. Com isso, observou-se uma carência no suporte ao projetista de NoCs que dê subsídios para validar escolhas arquiteturais com base em métricas de desempenho.

O desempenho de uma NoC é avaliado por diferentes métricas, sendo que as principais são a latência média e a vazão (tráfego aceito). A obtenção dessas métricas é geralmente feita por simulação e cada grupo de pesquisa usualmente desenvolve um simulador próprio para avaliar suas propostas em comparação a uma arquitetura de referência, o que dificulta a análise diante de várias arquiteturas de diferentes grupos de pesquisa.

(18)

Nesse sentido, percebe-se a carência de uma plataforma ou ambiente de simulação unificado que contemple um conjunto de arquiteturas de NoCs representativas na literatura e forneça métricas de desempenho, para que sirva de base no comparativo de novas propostas. Essa unificação permitirá ao projetista verificar sua proposta diante de arquiteturas consolidadas, dará subsídios quantitativos na avaliação e facilitará o posicionamento do seu trabalho na literatura, além de acelerar a exploração do espaço de projeto. Também contribuirá na investigação arquitetural entre diferentes grupos de pesquisa.

Do exposto, este trabalho buscou explorar a lacuna identificada na literatura quanto à caracterização e comparação de diferentes arquiteturas de NoC numa plataforma unificada que permitiu a realização de experimentos e possibilitou responder às seguintes perguntas, diante de um conjunto de arquiteturas avaliadas:

1. Qual arquitetura de comunicação possui a menor latência média e quão melhor em relação às demais?

2. Qual arquitetura de comunicação possui a menor flutuação de latências (jitter) e quão melhor em relação às demais?

3. Qual arquitetura de comunicação possui o maior tráfego aceito (vazão) e quão melhor em relação às demais?

1.1.1 Solução Proposta

A solução proposta para o problema apresentado no item anterior consistiu no desenvolvimento de uma biblioteca de componentes simuláveis que permitiu a caracterização de diferentes arquiteturas de NoCs da literatura. Com essa caracterização, métricas de desempenho foram extraídas para responder as perguntas de pesquisa elencadas e uma análise comparativa foi feita para auxiliar a tomada de decisão diante das alternativas arquiteturais disponíveis.

A biblioteca de componentes foi integrada ao ambiente de avaliação de desempenho RedScarf (SILVA, 2014) para facilitar a parametrização, experimentação e análise. Esse ambiente é baseado

(19)

em modelos de simulação SystemC1 e oferece ferramentas e interface gráfica que facilitam a configuração, execução e análise de experimentos de forma automatizada. A ferramenta é multiplataforma, possui interface multilíngue, execução multi-thread e permite a visualização dos resultados por meio de gráficos e tabelas.

Tendo em vista que diferentes arquiteturas foram avaliadas por meio de um ambiente de simulação unificado, a seguinte hipótese foi levantada durante a realização do estudo:

H0: Uma única arquitetura de comunicação é superior em latência média, vazão e jitter para

os cenários convencionais de tráfego sintético.

1.1.2 Delimitação de Escopo

Neste trabalho, foi produzida uma biblioteca de componentes de arquiteturas simuláveis em SystemC e integrada ao RedScarf (SILVA, 2014) para análise de desempenho. Este trabalho faz parte de um projeto maior em que se deseja a análise de custos em área e consumo de energia dos modelos produzidos. Porém, esta análise não foi proposta neste trabalho para não comprometer os resultados a serem obtidos, dado o tempo de sua execução e a necessidade de implementação destes componentes em uma HDL (Hardware Description Language – Linguagem de descrição de hardware) como VHDL (VHSIC2 HDL).

A SoCIN já possuía alguns modelos arquiteturais simuláveis em SystemC, o que deu suporte para o ponto de partida deste estudo. Esses modelos foram reestruturados e incrementados de forma a permitir a instanciação de roteadores/comutadores configuráveis em relação à quantidade de portas de comunicação, tornando possível a utilização de diferentes arquiteturas e topologias de NoCs. Porém, para isso foi necessária a implementação de roteamentos específicos para cada arquitetura, bem como, a adequação do protocolo de comunicação e classificação em três tipos de arquiteturas, redes 2D, 3D e não-ortogonais.

1 SystemC é uma biblioteca de classes C++ padronizada pelo ANSI (American National Standards

Institute) para projeto e implementação de hardware e software (IEEE COMPUTER SOCIETY, 2012).

(20)

Esquemas de memorização, arbitragem e controle de fluxo também foram avaliados. Características essas que fazem parte da microarquitetura dos roteadores e geram impacto direto no desempenho.

Com isso, buscou-se realizar um comparativo quantitativo de desempenho das alternativas avaliadas, como: o comutador Nx1 (emulação do barramento - pior caso de desempenho, devido à concorrência pelo mesmo recurso), as NoCs modeladas (possivelmente melhor tradeoff3) e o comutador NxN (possivelmente melhor caso de desempenho).

As alternativas de arquiteturas eleitas são baseadas em NoCs descritas na literatura. Destaca-se que essas foram construídas a partir dos componentes da SoCIN.

1.1.3 Contribuições da dissertação

O diferencial e a principal contribuição deste trabalho estão na análise quantitativa de desempenho dos modelos de arquiteturas de NoC. Modelos esses que foram integrados à uma ferramenta de avaliação de desempenho, o que possibilitou disponibilizar uma plataforma unificada para a exploração do espaço de projeto de NoCs. Esses modelos são simuláveis, com acurácia em nível de ciclos e permitem caracterizar o desempenho de redes da literatura. Os modelos também permitem realizar comparações baseadas em dados quantitativos, não apenas na análise das características da rede, como feitos em outros trabalhos descritos na literatura.

1.2 OBJETIVOS

1.2.1 Objetivo Geral

Avaliar o desempenho de arquiteturas de Redes-em-Chip por meio de simulação.

1.2.2 Objetivos Específicos

1. Disponibilizar um ambiente unificado para avaliação de desempenho de NoCs;

3 Um tradeoff é uma relação de alternativas a serem exploradas por um critério em relação a outro.

Por exemplo, melhorar o desempenho pode ocasionar em aumento de custo, ou seja, beneficiar um critério à custa de outro (VAHID, 2008).

(21)

2. Disponibilizar uma análise que dê subsídios às escolhas arquiteturais de NoCs com base no desempenho; e

3. Identificar quais arquiteturas de NoCs são mais eficientes em diferentes cenários de tráfego em relação às métricas: latência média, vazão e jitter.

1.3 METODOLOGIA

1.3.1 Metodologia da Pesquisa

Este trabalho adotou o método hipotético-dedutivo, pois buscou a solução de um problema com base na formulação de uma hipótese. Esta pesquisa também se caracteriza como aplicada, uma vez que a hipótese foi rejeitada com base nas investigações realizadas. Quanto à abordagem, enquadra-se como quantitativo, pois foram aferidas métricas geradas pelo ferramental de experimentação. Por fim, este trabalho classifica-se como pesquisa exploratória devido à busca pela elucidação dos resultados experimentais devidamente justificados pelas características comportamentais dos componentes avaliados.

1.3.2 Procedimentos Metodológicos

O processo de pesquisa adotado neste trabalho foi focado primeiramente em uma revisão bibliográfica das publicações mais recentes sobre avaliação de desempenho e exploração do espaço de projeto em NoCs com comparativos de arquiteturas. A fundamentação teórica por sua vez foi baseada em pesquisas na literatura consolidada a respeito dos assuntos abordados. Foram adotados como referência artigos publicados em veículos reconhecidos pela comunidade científica, livros, teses de doutorado e dissertações de mestrado.

Da pesquisa foi identificada uma lacuna a ser explorada com a carência de trabalhos que provessem suporte para mensuração quantitativa dos componentes de arquiteturas de NoCs. Com isso, foi então desenvolvido um projeto que considerou o reuso de uma biblioteca de componentes de uma NoC específica para realizar sua extensão e prover o suporte a uma maior abrangência arquitetural na tentativa de preencher a lacuna observada. Sendo assim, um conjunto representativo de componentes arquiteturais foi selecionado para ser desenvolvido, de modo que contemplasse uma maior abrangência arquitetural. Com o conjunto de componentes desenvolvido, foram realizados os

(22)

experimentos, extraídos os resultados e realizada a análise necessária para gerar as contribuições deste trabalho.

Além disso, uma ferramenta, já desenvolvida pelo autor, foi adotada para facilitar a experimentação e prover uma plataforma unificada para exploração do espaço de projeto.

1.4 ESTRUTURA DA DISSERTAÇÃO

O trabalho está organizado em cinco capítulos correlacionados. O Capítulo 1, Introdução, contextualizou o trabalho, identificando o problema de pesquisa, a solução proposta, as contribuições da dissertação e seus objetivos.

O Capítulo 2 apresenta o referencial teórico que embasa o trabalho em relação ao tema alvo da pesquisa. O capítulo apresenta ainda os aspectos arquiteturais de Redes-em-Chip, seus mecanismos de comunicação e alguns exemplos de redes representativas descritas na literatura. Também são apresentados os métodos e conceitos envolvidos na avaliação de desempenho, bem como métricas e técnicas utilizadas para reduzir os erros de vieses sistemáticos na análise e correlação dos dados na obtenção dos resultados.

O Capítulo 3 apresenta a revisão do estado da arte dos trabalhos que realizam comparativos de arquiteturas de comunicação com avaliação de desempenho. No capítulo, é apresentado um resumo do protocolo utilizado no levantamento dos trabalhos analisados. Também é feito o posicionamento dos trabalhos em relação às perguntas de pesquisa apresentadas no Capítulo 1 e é efetuada uma análise dos trabalhos mais aderentes encontrados no processo de pesquisa bibliográfica.

O Capítulo 4 apresenta os detalhes do desenvolvimento deste trabalho, com as características, dimensionamento e delimitação do projeto de acordo com as premissas estabelecidas. Também é feita a descrição das soluções adotadas no desenvolvimento da biblioteca de componentes simuláveis e alterações realizadas na ferramenta de referência utilizada no trabalho.

No Capítulo 5, os resultados obtidos são apresentados e é feita análise de desempenho das diferentes arquiteturas de NoCs avaliadas. Composto por seções que identificam cada mecanismo avaliado.

(23)

No Capítulo 6 são apresentadas as conclusões do trabalho realizado, relacionando os objetivos identificados com o trabalho realizado e resultados obtidos. Também são indicadas as contribuições e os trabalhos futuros.

O texto é complementado por apêndices que detalham aspectos que não são essenciais para o seu entendimento, mas que são importantes para uma análise aprofundada e para estudos posteriores que possam ser realizados em desdobramento a esta dissertação.

(24)

2 REFERENCIAL TEÓRICO

Neste capítulo, são apresentados os principais temas deste trabalho para contextualizar e dar ao leitor o embasamento para compreensão desta dissertação. Inicialmente, são apresentados os aspectos gerais das Redes-em-Chip, junto a uma descrição mais detalhada dos seus componentes e algumas NoCs são sucintamente descritas. Por fim, são relatadas as técnicas de avaliação de desempenho.

2.1 REDES-EM-CHIP

As Redes-em-Chip (NoCs – Networks-on-Chip) surgiram da necessidade de uma infraestrutura de comunicação que atendesse aos requisitos de desempenho de aplicações em sistemas integrados (SoCs) com múltiplos núcleos (ou sistemas multinúcleo – do inglês multicore). Além disso, essa infraestrutura deveria prover escalabilidade, reusabilidade e paralelismo de comunicação (ANDRIAHANTENAINA et al., 2003). O termo Network-on-Chip foi proposto por Hemani et al. (2000) para denominar esse tipo de arquitetura de comunicação intrachip.

As NoCs são baseadas nas redes de interconexão adotadas em computadores para processamento paralelo e foram propostas para atender as demandas de comunicação que não seriam suportadas pelo barramento. Zeferino (2003) apontou que os requisitos de desempenho em comunicação de SoC com dezenas de núcleos, como largura de banda escalável e baixa latência, dificilmente seriam atendidos pelas arquiteturas baseadas no barramento.

Os três principais componentes de uma NoC são o roteador, os enlaces e a interface de rede (BENINI; DE MICHELI, 2006, p. 37-39). O roteador tem o papel de encaminhar pacotes pela rede, sendo que suas principais funções são: receber um pacote na porta de entrada, determinar o destino de acordo com o roteamento e encaminhar o pacote para uma porta de saída (DALLY; TOWLES, 2004, p. 33). Os enlaces representam as ligações físicas entre os roteadores, os fios (RUGGIERO, 2011, p. 106). E a interface de rede é o componente que realiza a conexão lógica entre a rede e o nodo de processamento, também chamado de núcleo ou IP (Intelectual Property – Propriedade Intelectual). Ela é responsável pela adaptação dos protocolos. Também é a interface de rede que separa a computação da comunicação, o que permite o reuso independente tanto do núcleo quanto da

(25)

infraestrutura de comunicação (BJERREGAARD; MAHADEVAN, 2006). A organização dos blocos citados é apresentada na Figura 1.

Figura 1. Componentes de uma Rede-em-Chip Fonte: Melo, Wangham e Zeferino (2014).

2.1.1 Topologia

A topologia determina o leiaute físico e as conexões entre os nodos e canais na rede (JERGER; PEH, 2009, p. 4). Para Zeferino (2003, p. 32), a estrutura ou organização das ligações entre roteadores determina a topologia, a qual é representada por um grafo G(N, C), onde N é o conjunto de roteadores e C é o conjunto de canais de comunicação. A topologia se refere ao arranjo estático dos canais e nodos na rede – os caminhos pelos quais os pacotes percorrem. A seleção da topologia é o primeiro passo no projeto da rede porque a estratégia de roteamento e o método de controle de fluxo dependem profundamente dessa escolha (DALLY; TOWLES, 2004, p. 45).

A topologia pode ser classificada como direta ou indireta. Na topologia direta, cada nodo terminal (ex. processador, cache, DSP4 etc.) é associado a um roteador, assim todos os roteadores são fonte e destino de tráfego (JERGER; PEH, 2009, p. 32). Nessa arquitetura, cada nodo é diretamente conectado a um subconjunto de outros nodos, chamados de nodos vizinhos (BENINI; DE MICHELI, 2006, p. 28). Uma troca de mensagens entre dois nodos não vizinhos deve passar por um ou mais nodos intermediários (ZEFERINO, 2003, p. 33). Na topologia indireta, os roteadores são distintos dos nodos terminais e somente os nodos terminais são fontes e destinos de tráfego. Os nodos

4 Digital Signal Processor – Processador de Sinais Digitais

Núcleo

Interface Roteador

Núcleo

(26)

intermediários apenas realizam o chaveamento de e para nodos terminais (JERGER; PEH, 2009, p. 32) e, portanto, não são acoplados a processadores (ZEFERINO, 2003, p. 34).

Exemplos de topologias utilizadas em NoCs, incluem o Anel Cordal, a Malha 2D (Figura 2.a), o Toroide 2D, a Malha 3D, que são topologias diretas, e a Árvore Gorda (Figura 2.b), que é uma topologia indireta. As topologias diretas têm sido mais utilizadas em NoCs (JERGER; PEH, 2009, p. 32), sendo a Malha 2D a mais adotada, conforme relatado por Fernandez-Alonso et al. (2012).

(a) (b)

Figura 2. Topologias: (a) Malha 2D; (b) Árvore Gorda

Onde: EP: Elemento de Processamento; Rot: Roteador

2.1.2 Roteamento

Após a topologia definida, o roteamento é o segundo passo na definição da arquitetura (DALLY; TOWLES, 2004, p. 159). O roteamento consiste na seleção do caminho a ser percorrido pelo pacote do nodo fonte ao destino em determinada topologia. Em outras palavras, é responsável por corretamente e eficientemente rotear pacotes da fonte para o destino (PASRICHA; DUTT, 2008, p. 451). O objetivo do algoritmo de roteamento é distribuir o tráfego pela rede nos caminhos disponíveis na topologia de modo a evitar pontos críticos e minimizar a contenção, desse modo melhorando a vazão e latência da rede (JERGER; PEH, 2009, p. 45).

O roteamento, além de encaminhar um pacote da fonte ao destino, também é responsável por evitar situações de deadlock (dependência cíclica) e livelock (quando os pacotes permanecem trafegando pela rede sem chegar ao seu destino). Algoritmos de roteamento determinísticos podem facilmente evitar essas situações (OGRAS; MARCULESCU, 2013, p. 40). O esquema de roteamento pode ser classificado segundo diferentes critérios, conforme segue.

EP + Rot. Rot E P E P E P E P E P E P E P E P E P E P E P E P E P E P E P E P

(27)

Quanto ao momento em que o roteamento é definido, o algoritmo pode ser classificado como estático ou dinâmico. No primeiro, também chamado de oblívio, as decisões de roteamento são feitas em tempo de compilação e não levam em consideração o estado da rede. No segundo, também chamado de adaptativo, as decisões de roteamento são feitas em tempo de execução e levam em consideração o estado da rede (PASRICHA; DUTT, 2008, p. 451).

Quanto ao local da decisão de roteamento, o algoritmo pode ser classificado em centralizado, fonte ou distribuído. No centralizado, um controlador central na rede estabelece o caminho dos pacotes (ZEFERINO, 2003). No roteamento fonte, as decisões são feitas no momento da geração dos dados antes de injetá-los na rede (DUATO; YALAMANCHILI; NI, 2003, p. 140), geralmente na interface de rede. Por último, no roteamento distribuído, as decisões de roteamento são feitas à medida em que os pacotes atravessam a rede (RUGGIERO, 2011, p. 93). Destaca-se que não há relatos na literatura de uso da abordagem centralizada em NoCs.

Em relação à distância do caminho, o roteamento pode ser mínimo ou não-mínimo. O roteamento é mínimo quando a distância do caminho da fonte ao destino é sempre a menor possível. Já no roteamento não-mínimo, a distância do caminho entre a fonte e o destino pode variar e é possível utilizar caminhos que não são permitidos no roteamento mínimo (PASRICHA; DUTT, 2008, p. 453). O algoritmo de roteamento mais utilizado em NoCs é o XY, o qual é adotado em redes com topologia em Malha 2D. Nesse algoritmo, o roteamento é ordenado por dimensão e um pacote deve primeiro percorrer o eixo X até atingir a coluna do destinatário, quando então percorre o eixo Y para completar o seu caminho. Esse algoritmo é classificado como estático, distribuído e de caminho mínimo.

2.1.3 Chaveamento

Pasricha e Dutt (2008) descrevem chaveamento da seguinte maneira:

A estratégia de chaveamento determina como os dados trafegam através dos roteadores na rede. A estratégia de chaveamento também define a granularidade da transferência dos dados e a técnica utilizada. Os nodos geram mensagens que possivelmente são particionadas em vários pacotes de dados. Um pacote é dividido em múltiplos flits (flow control units – unidade de controle de fluxo). Um flit é um elemento do pacote no qual as operações de controle de fluxo de enlace são realizadas e é essencialmente uma unidade de sincronização entre roteadores. Cada flit é construído com base em um ou mais phits (physical units – unidades físicas). Um phit é uma unidade de dado que é transferida no enlace e tipicamente o tamanho de um phit é o mesmo da largura do canal de dados, a largura do enlace (PASRICHA; DUTT, 2008, p. 448).

(28)

Os termos chaveamento e controle de fluxo têm sido usados intercambiavelmente no contexto de NoCs (OGRAS; MARCULESCU, 2013, p. 13). Isso porque a estratégia de chaveamento e as técnicas de controle de fluxo estão associadas com a alocação de recursos na rede, em diferentes níveis. No nível de chaveamento, a alocação está relacionada com a granularidade da informação (mensagem, pacote ou flit - Figura 3), em que são necessários elementos como buffers e chaveadores compatíveis com as unidades utilizadas. Essa distinção entre os níveis de alocação de recursos em nível de chaveamento e controle de fluxo é a adotada por Duato, Yalamanchili e Ni (2003) e foi adotada neste trabalho.

Figura 3. Granularidade da informação Fonte: Adaptado de Pasricha e Dutt (2008).

Além da granularidade da informação, o modo de transmissão também é considerado. No chaveamento por circuito, um caminho completo pode ser estabelecido entre a fonte e o destino. No chaveamento por pacotes, a alocação é feita dinamicamente à medida em que a informação avança pela rede (ZEFERINO, 2003, p. 39).

No chaveamento por circuito, a transmissão ocorre em quatro fases: requisição do circuito, confirmação do estabelecimento do circuito, transmissão dos dados e liberação do circuito (DALLY; TOWLES, 2004, p. 288). Essas fases podem ser vistas na Figura 4, que ilustra o processo de transmissão no chaveamento por circuito. O chaveamento por circuito é pouco comum em NoCs, conforme apresentado por Fernandez-Alonso et al. (2012).

Mensagem

Pacote

Pacote

Flit Cabeçalho

Flit Carga Flit Carga Flit Cauda

Flit

(29)

Figura 4. Processo de envio de mensagem no chaveamento por circuito sem contenção Fonte: Adaptado de Dally e Towles (2004).

No chaveamento por pacote, a alocação é feita nodo a nodo, não havendo qualquer pré-alocação entre roteadores que não são vizinhos (ZEFERINO, 2003, p. 39). A granularidade por flits ou pacotes depende da técnica utilizada. As principais técnicas de chaveamento por pacote são: armazena e repassa (SAF – Store-and-Forward), transpasse virtual (VCT – Virtual Cut-Through) e Wormhole. Sendo que a última é a única que possui granularidade em nível de flits e é a mais utilizada no contexto de NoCs.

A técnica Wormhole reduz os requisitos de armazenamento em relação à SAF e VCT pois possui granularidade em nível de flits. Assim como no VCT, o roteamento do pacote é realizado tão logo seu cabeçalho é recebido, porém o receptor precisa dispor de espaço para armazenar apenas um

flit e não um pacote inteiro. Com a técnica Wormhole, um pacote pode ficar contido em vários

roteadores (JERGER; PEH, 2009, p. 64). Logo, esta técnica é utilizada em NoC por apresentar menores custo e latência que as demais alternativas de chaveamento por pacotes.

2.1.4 Controle de Fluxo

O controle de fluxo determina como os recursos da rede (enlaces, buffers e chaveadores) são alocados para a travessia dos pacotes, pode ser visto como um problema de alocação de recursos ou resolução de contenção (DALLY; TOWLES, 2004, p. 221). O controle de fluxo pode ser tratado em nível de chaveamento e alocação de buffers e chaveadores, conforme já foi discutido nas técnicas de chaveamento, e em nível de enlace, que é como são tratados nas redes de interconexão (ZEFERINO, 2003, p. 42). Nesta seção, são discutidas algumas técnicas de controle de fluxo em nível de enlace. As técnicas discutidas aqui também são referenciadas como técnicas de retropropagação de buffers (DALLY; TOWLES, 2004, p. 245). C a n a l 0 1 2 3 4 Ciclo

(30)

O controle de fluxo é responsável pelo sincronismo das transferências entre roteadores para que não haja perda de informação. Por exemplo, para um roteador encaminhar um pacote ao próximo roteador, é necessário verificar se há espaço disponível em buffer no destinatário para que o pacote ou flit (conforme a técnica de chaveamento) seja recebido. E é nesse aspecto que entra a alocação dos recursos, para o canal de comunicação e buffers (PASRICHA; DUTT, 2008, p. 454).

Duas técnicas de controle de fluxo são comumente utilizadas: baseada em créditos e

handshake. O controle de fluxo baseado em créditos produz uma rede de comunicação que não

descarta dados (ZEFERINO, 2003, p. 44). Cada roteador possui contadores de crédito que informam o espaço disponível em buffer nos seus roteadores vizinhos. Sempre que uma posição em buffer de um canal de entrada de um roteador é liberada, um crédito é enviado (retropropagado) ao roteador vizinho que está conectado a esse canal. A troca de informações entre roteadores só ocorre quando há crédito suficiente para envio da informação (JERGER; PEH, 2009, p. 70).

Já o controle de fluxo handshake é baseado em dois sinais de estado, REQ (Request - Requisição) e ACK (Confirmação/Resposta). Esta técnica caracteriza-se por ser assíncrona e há quatro alternativas de implementação. Pode ser implementado com apenas um fio entre os roteadores (implementação menos comum) em que o sinal REQ é interpretado quando houver transição lógica de “0” para “1”, e o ACK quando houver uma transição de “1” para “0”. As demais implementações utilizam dois fios, um para o REQ e outro para o ACK e utiliza uma, duas ou quatro fases. O de uma fase usa um esquema de coloração para indicar a validade e aceitação do dado, porém é muito complexo e consome muita energia. O de duas fases (non-return-to-zero) tem duas transições, inicia com a transição do sinal REQ e é finalizado com a transição do sinal ACK, é o mais comum em NoCs. O de quatro fases (return-to-zero) tem quatro transições, inicia com a asserção dos sinais REQ e ACK e conclui com a desasserção de ambos (EZZ-ELDIN; EL-MOURSY; HAMED, 2015, p. 26-27).

As transições dos esquemas de controle de fluxo baseado em créditos são ilustradas na Figura 5. As transições dos tipos de controle de fluxo handshake são ilustradas na Figura 6.

(31)

Figura 5. Transições do controle de fluxo baseado em créditos Fonte: Adaptado de Dally e Towles (2004).

(a) (b) (c)

Figura 6. Controle de fluxo handshake: (a) monofilar; (b) duas fases; (c) quatro fases Fonte: Adaptado de Ezz-Eldin, El-Moursy e Hamed (2015).

2.1.5 Arbitragem

Enquanto o roteamento é responsável por selecionar uma porta de saída para um pacote, a arbitragem é responsável por selecionar uma porta de entrada quando múltiplos pacotes chegam no roteador simultaneamente requisitando a mesma porta de saída, ou seja, é responsável por estabelecer a ordem de concessão dos recursos. O árbitro pode ser centralizado (um por roteador – Figura 7.a) ou distribuído (um por canal de comunicação – Figura 7.b). Além disso, pode ser baseado em prioridades estáticas (fixas) ou dinâmicas (variáveis) (ZEFERINO, 2003, p. 47-48).

Alguns exemplos de árbitros apresentados por Jain et al. (2015) e Becker (2012) são:

 Prioridade fixa: é a implementação mais simples e possui uma ordem predefinida de concessão dos recursos que nunca é alterada. O principal problema nessa técnica é a possibilidade de postergação indefinida (do inglês - starvation);

Crédito Nodo 1 Nodo 2 t1 t2 t3 t4 t5 Flit Processa Crédito Flit Processa Crédito Flit Tempo Int. Ida/ Volta Req ACK Dado Req ACK Dado Dado Dado Req ACK

(32)

 Round-Robin: provê alto grau de equidade na concessão dos recursos. É baseado no princípio de que o recurso que ganhou a concessão terá menor prioridade na próxima rodada de arbitragem;

 Árbitro em matriz: provê alto grau de equidade e é baseado no princípio LRS (Least Recently Served – Servido menos recentemente), ou seja, o recurso a mais tempo sem concessão na arbitragem atual, possuirá a maior prioridade na próxima rodada;

 Árbitro em árvore: as requisições são organizadas logicamente em múltiplos grupos, ou seja, possui uma organização hierárquica. Esse tipo de árbitro é utilizado quando a aplicação requer grandes árbitros, que possui muitas requisições;

 Árbitro multi-prioridade: tem a capacidade de priorizar um subconjunto de requisições que satisfazem um certo critério sobre outras requisições;

 Árbitro dinâmico adaptativo: leva em consideração o estado dos buffers. Quando um

buffer fica totalmente ocupado sua prioridade se torna a mais alta. Para eliminar o

problema de postergação indefinida um mecanismo com o princípio do Round-Robin é utilizado;

 Round-Robin hierárquico: fragmenta o processo de arbitragem em vários passos consecutivos. Utiliza a política do Round-Robin. O objetivo é aumentar o desempenho geral da arbitragem.

(a) (b)

Figura 7. Organizações de árbitro: (a) centralizado (b) distribuído Fonte: Zeferino (2003).

(33)

2.1.6 Memorização

A memorização é utilizada para armazenar pacotes/flits recebidos no roteador quando não podem ser encaminhados devido a recursos ocupados (JERGER; PEH, 2009, p. 81). A estratégia de memorização leva em consideração o número de buffers, seus locais e dimensionamentos, e causa impacto direto no tráfego e desempenho da rede (COTA; AMORY, LUBASZEWSKI, 2012, p. 15).

Em relação ao número e locais dos buffers, a abordagem adotada pode ser centralizada, com os buffers compartilhados por todos os canais de comunicação, ou distribuída, com os buffers alocados nas portas de entrada e/ou saída de um roteador, sendo que estes ainda podem ser particionados em canais virtuais (JERGER; PEH, 2009, p. 81; DALLY; TOWLES, 2004, p. 325-328; ZEFERINO, 2003, p. 44-47). O dimensionamento é a quantidade de pacotes/flits que o buffer suportará e, dependendo dos requisitos da aplicação, diferentes dimensionamentos devem ser avaliados. Na Figura 8, é possível ter uma noção das organizações de buffers que podem ser utilizadas em NoCs.

(a) (b)

(c)

Figura 8. Organizações de buffer: (a) centralizado; (b) distribuído; (c) distribuído com canais virtuais

Fonte: Adaptado de Dally e Towles (2004)

Memória

Memória Memória Memória Memória

(34)

2.1.7 Exemplos de NoC

Nesta subseção, são descritas arquiteturas de NoC que representam as abordagens mais convencionais5 e são utilizadas como referência em muitos dos trabalhos sobre NoCs. Uma síntese dos parâmetros arquiteturais dessas redes é apresentada no Quadro 1 ao final da subseção.

A SPIN – Scalable and Programmable Integrated Network (GUERRIER; GREINER, 2000) foi a primeira NoC proposta na literatura. A rede foi desenvolvida por pesquisadores da Universidade Pierre et Marie Curie na França e possui topologia em Árvore Gorda. A Octagon (KARIM et al., 2001), desenvolvida por pesquisadores da STMicroeletronics Inc. e da Universidade da Califórnia nos Estados Unidos, possui topologia em Anel Cordal e implementa chaveamento por circuito ou pacote. A AEthereal (DIELISSEN et al., 2003), desenvolvida por pesquisadores da Philips na Holanda, possui topologia irregular e provê diferenciação de fluxos com canais virtuais e multiplexação no tempo (TDM – Time Division Multiplexed). A SoCIN (ZEFERINO; SUSIN, 2003) foi a primeira NoC brasileira, desenvolvida por pesquisadores da UFRGS (Universidade Federal do Rio Grande do Sul) e da Univali (Universidade do Vale do Itajaí), possui topologia em Malha 2D. Em 2004, essa rede foi atualizada e a nova versão foi denominada SoCINfp (ZEFERINO; SANTO; SUSIN, 2004). A NoC Hermes (MORAES et al., 2004), também brasileira, desenvolvida por pesquisadores da PUCRS (Pontifícia Universidade Católica do Rio Grande do Sul), possui uma estrutura semelhante à SoCIN, sendo que a principal diferença está no uso de arbitragem centralizada, enquanto na SoCIN é distribuída. A QNoC (BOLOTIN et al., 2004), desenvolvida por pesquisadores do Instituto Technion de Israel, possui topologia em Malha Irregular e realiza diferenciação de fluxos com canais virtuais, diferindo da AEthereal que utiliza TDM. A Xpipes (BERTOZZI; BENINI, 2004), desenvolvida por pesquisadores da Universidade de Bolonha, foi projetada como uma biblioteca de componentes para permitir a definição de topologias irregulares para sistemas heterogêneos. Por fim, a FlexNoC foi a primeira NoC comercial, lançada pela Arteris em 2005 e conta com uma biblioteca de componentes classificados em camadas que permitem definições

ad-hoc para a rede6.

5 Foram buscadas as primeiras NoCs da literatura que implementaram mecanismos de comunicação

comumente utilizados atualmente.

(35)

Arquiteturas de NoCs de referência na literatura

NoC Topologia Roteamento Chaveamento Controle de fluxo Arbitragem Memorização SPIN Árvore Gorda Dinâmico, Distribuído e Mínimo Wormhole Baseado em créditos 2 níveis (RR e estática) Distribuída e centralizada Octagon Anel Cordal Estático, Distribuído e Mínimo

Pacote/ Circuito Handshake n.d. Distribuída

AEthereal Irregular Fonte Circuito/

Wormhole

Baseado em créditos

RR Distribuída

SoCINfp Malha 2D Estático*,

Distribuído e Mínimo Wormhole Baseado em créditos e Handshake Distribuída e Estática, Randômica ou RR Distribuída

Hermes Malha 2D Estático,

Distribuído e mínimo

Wormhole Handshake Centralizada

e RR Distribuída QNoC Malha Irregular Estático, Distribuído e Mínimo Wormhole Baseado em créditos Preempção e RR Particionada e distribuída

Xpipes Irregular Fonte Wormhole ACK/NACK Estática ou

RR Particionada e distribuída FlexNoC Definida pelo usuário Ad-hoc Wormhole e armazena e repassa n.d. n.d. Definida pelo usuário

* Determinístico ou parcialmente adaptativo RR: Round-Robin

n.d.: Informação não disponível

Do Quadro 1, observa-se que a topologia Malha é a mais convencional. Quanto aos mecanismos de comunicação, observa-se a preferência pelo uso de roteamento distribuído, chaveamento Wormhole, controle de fluxo baseado em créditos, política de arbitragem Round-Robin e memorização distribuída. Além disso, algumas redes oferecem alternativas na implementação de seus mecanismos de comunicação para permitir a busca por tradeoffs em cenários/aplicações específicas.

2.2 AVALIAÇÃO DE DESEMPENHO

Assim como nas redes de interconexão, o princípio das NoCs é atender os requisitos de comunicação para determinada aplicação. E, para isso, as escolhas de projeto em relação aos componentes da rede são feitas para satisfazer esses requisitos (DALLY; TOWLES, 2004, p. 449).

As arquiteturas de comunicação em chip têm várias fontes de atraso devido aos seus mecanismos. O atraso tem influência direta no desempenho das aplicações e são a maior causa dos

(36)

gargalos no projeto (PASRICHA; DUTT, 2008, p. 101). Por isso, fazer uma exploração na arquitetura de comunicação com base na avaliação de desempenho ajuda na tomada de decisões.

A avaliação de desempenho está relacionada com a mensuração e verificação da aplicabilidade de uma solução para determinado sistema. Os requisitos de desempenho geralmente norteiam as definições arquiteturais. O desempenho das NoCs é medido pela observação do tempo e quantidade de informações que a rede suporta, verificado pela análise de tráfego na comunicação entre os nodos. As principais métricas utilizadas na avaliação de desempenho de uma rede são a latência e a vazão (JERGER; PEH, 2009, p. 4), descritas a seguir:

 Vazão: é a taxa na qual os pacotes são entregues nos nodos de destino, ou seja, quantos pacotes/flits por ciclo são entregues nos destinos (OGRAS; MARCULESCU, 2013, p. 65). Também é chamada de tráfego aceito.

 Latência: é o tempo decorrido do momento em que o cabeçalho da mensagem é injetado pelo nodo fonte na rede até o recebimento da última informação pelo nodo destino (DUATO; YALAMANCHILI; NI, 2003, p. 476). A latência ainda pode ser avaliada em diferentes aspectos, que são:

o Em carga Zero (mínima): dá um limite inferior da latência média de um pacote através da rede. A suposição é que um pacote nunca compete pelos recursos da rede com outros pacotes. É calculada com a multiplicação entre a distância média da rede (em saltos – número de enlaces e roteadores) e a latência do salto (JERGER; PEH, 2009, p. 4);

o Média: a média das latências de todos os pacotes avaliados. É a métrica mais utilizada na avaliação de desempenho de NoCs;

o Flutuação (jitter): é a distribuição das latências experimentadas pelos pacotes. Serve para verificar a estabilidade da rede, sendo que, quanto menor a dispersão, mais estável é a rede. Pode ser vista também como a diferença máxima de latências entre dois pacotes em um mesmo fluxo, uma vez que se tem a menor e a maior latência experimentada por pacotes na rede (DALLY; TOWLES, 2004, p. 455);

Pasricha e Dutt (2008, p. 101-139) classificam a análise de desempenho em três tipos: modelos estáticos, modelos dinâmicos (baseados em simulação) e modelos híbridos. Os modelos estáticos

Referências

Documentos relacionados

Devido ao facto de uma bicicleta em posição vertical e sem considerar a capacidade de articulação das rodas (considerando-as diretamente alinhadas com o eixo

Na entrevista a seguir, Capovilla revisita a própria trajetória intelectual, debate a sua passagem pelo Centro Popular de Cultura de São Paulo e as críticas que escreveu para

Ao longo deste trabalho, analisamos como os profissionais da Escola Estadual Normandia, localizada na cidade de Cruzeiro do Sul, no Acre, promovem seus processos

O objetivo principal desta ação será tornar o material pedagógico utilizado e as dinâmicas mais próximas às deficiências de aprendizado apresentadas pelos alunos,

A opinião dos alunos que frequentam o PA sobre a implementação do Programa de Correção de Fluxo Escolar é de extrema importância, visto serem eles os protagonistas

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo

Na primeira, pesquisa teórica, apresentamos de modo sistematizado a teoria e normas sobre os meios não adversarias de solução de conflitos enfocados pela pesquisa, as características

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo