Você está na página 1de 242

UNIVERSIDADE FEDERAL DE RIO GRANDE DO SUL

INSTITUTO DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM COMPUTAO

Redes-em-Chip:
Arquiteturas e Modelos para
Avaliao de rea e Desempenho

por

CESAR ALBENES ZEFERINO

Tese submetida avaliao


como requisito parcial para a obteno
do grau de Doutor em Cincia da Computao

Dr. Altamiro Amadeu Susin


Orientador

Dr. Sergio Bampi


Co-orientador

Porto Alegre, junho de 2003.


2

CIP CATLOGO NA PUBLICAO

Zeferino, Cesar Albenes


Redes-em-Chip: Arquiteturas e Modelos para Avaliao
de rea e Desempenho / por Cesar Albenes Zeferino.
Porto Alegre: PPGC da UFRGS, 2003.
242 p.: il. + 1 CD-ROM
Tese (doutorado) Universidade Federal do Rio Grande
do Sul. Programa de Ps Graduao em Computao, Porto
Alegre, BR-RS, 2003. Orientador: Susin, Altamiro
Amadeu; Co-orientador: Bampi, Sergio.
1. Microeletrnica. 2.Sistemas Integrados. 3. Redes-em-
Chip. I. Susin, Altamiro Amadeu. II. Bampi, Sergio.
III. Ttulo

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL


Reitora: Profa. Wrana Panizzi
Pr-Reitor de Ensino: Prof. Jos Carlos Ferraz Hennemann
Pr-Reitora Adjunta de Ps-Graduao: Profa. Joclia Grazia
Diretor do Instituto de Informtica: Prof. Philippe Olivier Alexandre Navaux
Coordenador do PGCC: Prof. Carlos Alberto Heuser
Bibliotecria-Chefe do Instituto de Informtica: Beatriz Regina Bastos Haro
3

Agradecimentos

todos aqueles que de uma forma ou de outra contriburam minha formao


no Programa de Ps-Graduao em Computao da Universidade Federal do Rio
Grande do Sul (UFRGS) e, principalmente, realizao desta tese.

Ao professor Altamiro Amadeu Susin, pela sua confiana, amizade, respeito e


orientao na conduo dos trabalhos. A ele deixo minha eterna homenagem sob a
forma de uma arquitetura de rede-em-chip denominada SoCIN.

Ao professor Sergio Bampi, pela sua co-orientao e por instigar-me a estudar


temas importantes que fomentaram a minha formao e a realizao desta tese.

Ao professor Alain Greiner, da Universidade de Paris, pela sua confiana e por


oportunizar a participao no projeto SPIN, cuja experincia que foi de vital
importncia para a focalizao do tema desta tese.

Ao professor Luigi Carro que associou-se nossa idia e com sua amizade, seu
esprito crtico e sua objetividade ajudou-nos a obter resultados importantes.

Aos demais professores que me orientaram no curso de minha vida acadmica,


agradeo pelos seus ensinamentos e deixo aqui registrados os seus nomes: Jos Renes
Pinheiro, Humberto Pinheiro, Fbio Antnio Baldissera, Mrio Imaguire, Hermann
Adolf Harry Lcke (in memorium) e Mrcio Cherem Schneider.

A todos os professores do Grupo de Microeletrnica (GME) da UFRGS que


com seus esforos pessoais construram um grupo de pesquisa de excelncia, do qual
sinto orgulho de ter participado e contribudo para a sua qualificao.

A todos os colegas do GME, alunos de graduao, mestrado e doutorado, com os


quais convivi durante esses cinco anos de trabalho. Em especial, deixo meu
agradecimento ao Rogrio Rizzi, ao Ricardo Vargas Dorneles, ao Mrcio Eduardo
Kreutz e ao Edgard de Faria Corra, que acompanharam e apoiaram mais de perto a
evoluo deste trabalho em diferentes fases do seu desenvolvimento.

Ao CNPq, pelo apoio financeiro para realizao da tese e do estgio sanduche.

Aos meus pais, Elpdio e Elenita, minha irm Enelise, ao meu cunhado,
Mauro, ao meu sobrinho Artur, minha cunhada Soriane e aos meus sogros, Luis e
Iracema, os quais sempre torceram por mim e tiveram a compreenso necessria.
Agradeo, por propiciarem um ambiente familiar harmonioso e pleno de amor.

Um agradecimento especial minha me que durante todo esse perodo orou


para que eu tivesse xito em cada etapa deste caminho.

minha esposa, Jaine, pelo seu amor, apoio, compreenso, pacincia e por
sacrificar sua vida profissional em meu favor. Principalmente, agradeo a ela por existir
e fazer-me feliz.

Deus.
4
5

Sumrio
Lista de Abreviaturas.................................................................................. 9

Lista de Figuras ......................................................................................... 13


Lista de Tabelas......................................................................................... 19

Resumo ....................................................................................................... 21

Abstract ...................................................................................................... 23

1 Introduo.............................................................................................. 25

2 Noes Fundamentais sobre Redes de Interconexo Chaveada


para Computadores Paralelos.............................................................. 29
2.1 Definies Bsicas ................................................................................................29
2.1.1 Roteador.............................................................................................................. 30
2.1.2 Enlaces ................................................................................................................ 30
2.1.3 Mensagens e pacotes........................................................................................... 30
2.1.4 Parmetros de desempenho de uma rede de interconexo.................................. 31
2.1.5 Caractersticas de uma rede de interconexo...................................................... 32
2.2 Topologia...............................................................................................................32
2.2.1 Redes diretas ....................................................................................................... 33
2.2.2 Redes indiretas.................................................................................................... 34
2.3 Starvation, Livelock e Deadlock ...........................................................................35
2.3.1 Starvation............................................................................................................ 35
2.3.2 Livelock............................................................................................................... 35
2.3.3 Deadlock ............................................................................................................. 35
2.4 Roteamento ...........................................................................................................37
2.5 Chaveamento ........................................................................................................39
2.5.1 Chaveamento por circuito................................................................................... 39
2.5.2 Chaveamento por pacote armazena e repassa (store-and-forward) ................... 39
2.5.3 Chaveamento por pacote com transpasse virtual (virtual cut-through).............. 40
2.5.4 Chaveamento por pacote wormhole.................................................................... 40
2.5.5 Modelos de latncia ............................................................................................ 41
2.6 Controle de Fluxo.................................................................................................42
2.6.1 Controle de fluxo baseado em slack buffer......................................................... 43
2.6.2 Controle de fluxo baseado em canais virtuais .................................................... 43
2.6.3 Controle de fluxo baseado em crditos............................................................... 44
2.7 Memorizao ........................................................................................................44
2.7.1 Memorizao centralizada compartilhada .......................................................... 45
2.7.2 Memorizao na entrada..................................................................................... 45
2.7.3 Memorizao na sada ........................................................................................ 47
2.8 Arbitragem............................................................................................................47
2.9 Exemplos ...............................................................................................................49
2.10 Consideraes .......................................................................................................51
6

3 A Comunicao em Sistemas Integrados ............................................ 53


3.1 Os Sistemas Integrados em um nico Chip.......................................................53
3.1.1 Iniciativas da comunidade em sistemas integrados ............................................ 55
3.1.2 O teste em sistemas integrados ........................................................................... 56
3.1.3 Bibliotecas de ncleos para o desenvolvimento de sistemas integrados ............ 57
3.1.4 Ferramentas de auxlio ao projeto de sistemas integrados.................................. 58
3.2 Arquiteturas de Comunicao dos SoCs Atuais................................................58
3.2.1 Definies bsicas sobre barramentos para sistemas integrados ........................ 62
3.2.2 A arquitetura de comunicao CoreConnect ...................................................... 64
3.2.3 A arquitetura de comunicao AMBA ............................................................... 66
3.3 Arquiteturas de Comunicao para os Futuros SoCs ......................................67
3.3.1 Arquitetura de interconexo SPIN...................................................................... 68
3.3.2 A arquitetura de interconexo aSoC ................................................................... 74
3.3.3 Outras redes-em-chip.......................................................................................... 79
3.4 Consideraes .......................................................................................................82

4 Modelagem e Simulao de Redes-em-Chip....................................... 83


4.1 O Simulador CASS ..............................................................................................83
4.1.1 Fluxo de modelagem e simulao....................................................................... 84
4.1.2 Descrio de um modelo CASS ......................................................................... 85
4.2 O Padro VCI.......................................................................................................87
4.3 O Barramento PI-Bus ..........................................................................................88
4.4 Modelagem da Rede SPIN no CASS ..................................................................90
4.4.1 Organizao do roteador RSPIN ........................................................................ 90
4.4.2 Estrutura do modelo CASS................................................................................. 98
4.5 Avaliao de Desempenho .................................................................................100
4.5.1 Avaliao da escalabilidade da arquitetura de comunicao............................ 100
4.5.2 Avaliao da capacidade da arquitetura de comunicao................................. 103
4.5.3 Avaliao de um sistema multiprocessado executando a FFT ......................... 106
4.6 Consideraes .....................................................................................................112

5 Uma Arquitetura de Rede-em-Chip para Sistemas Integrados ..... 115


5.1 Topologia.............................................................................................................116
5.2 Enlaces.................................................................................................................118
5.3 Modelo de Comunicao Nativo .......................................................................119
5.4 Chaveamento ......................................................................................................121
5.5 Roteamento .........................................................................................................121
5.5.1 Implementao do roteamento XY na rede SoCIN .......................................... 123
5.6 Formato do Pacote .............................................................................................125
5.7 Memorizao ......................................................................................................127
5.8 Controle de Fluxo...............................................................................................127
5.9 Arbitragem..........................................................................................................128
5.10 Viso Geral da Arquitetura do Roteador RASoC ..........................................129
5.10.1 A interface do roteador RASoC........................................................................ 129
5.10.2 A organizao interna do roteador RASoC ...................................................... 130
5.11 Estrutura do modelo VHDL do roteador RASoC...........................................133
5.12 Simulao ............................................................................................................135
5.12.1 Simulao da interface do roteador RASoC ..................................................... 135
5.12.2 Simulao de redes SoCIN de pequena escala ................................................. 140
7

5.13 Sntese..................................................................................................................144
5.13.1 Sntese do roteador RASoC .............................................................................. 144
5.13.2 Sntese de redes SoCIN .................................................................................... 147
5.14 Consideraes .....................................................................................................149

6 Modelos Analticos para a Estimativa da rea de Arquiteturas de


Comunicao para Sistemas Integrados ........................................... 153
6.1 Arquiteturas de Comunicao ..........................................................................153
6.2 Avaliao do Custo das Redes-em-Chip ..........................................................154
6.3 Modelos de Referncia para Estimativa de rea de Arquiteturas de
Comunicao Intrachip .....................................................................................156
6.3.1 Modelo para a estimativa da rea do barramento central ................................. 157
6.3.2 Modelo para a estimativa da rea do crossbar central ...................................... 157
6.3.3 Avaliao dos modelos de referncia para a estimativa de rea....................... 159
6.3.4 Consideraes para a extenso dos modelos de referncia para arquiteturas de
comunicao atuais ........................................................................................... 160
6.4 Modelos para Estimativa da rea de Silcio de Barramentos Similares ao
PI-Bus ..................................................................................................................163
6.5 Modelos para Estimativa da rea de Silcio da Rede SPIN...........................166
6.5.1 Modelo para a estimativa do nmero de portas lgicas no roteador RSPIN .... 166
6.5.2 Modelo para a estimativa do nmero de portas lgicas na rede SPIN ............. 170
6.6 Modelos para Estimativa de rea da Rede SoCIN .........................................174
6.6.1 Modelo para a estimativa do nmero de portas lgicas no roteador RASoC ... 174
6.6.2 Modelo para a estimativa do nmero de portas lgicas na rede SoCIN ........... 177
6.7 Comparao das Sobrecargas de rea do Barramento e das Redes-em-
Chip .....................................................................................................................183
6.8 Consideraes .....................................................................................................185

7 Modelos Analticos para a Estimativa de Desempenho de


Arquiteturas de Comunicao para Sistemas Integrados............... 187
7.1 Modelos para a Estimativa do Desempenho dos Canais de Comunicao ...187
7.1.1 Estruturas dos canais de comunicao.............................................................. 187
7.1.2 Estimativa da carga capacitiva.......................................................................... 190
7.1.3 Exemplo de aplicao dos modelos de estimativa de carga capacitiva ............ 192
7.2 Modelos para a Estimativa da Latncia...........................................................198
7.2.1 Modelos de latncia com carga zero................................................................. 198
7.2.2 Modelos de latncia com carga no-nula.......................................................... 199
7.2.3 Exemplo de aplicao dos modelos de estimativa de latncia.......................... 201
7.3 Consideraes .....................................................................................................209

8 Consideraes Finais........................................................................... 211


8.1 Viso Geral sobre o Trabalho e suas Contribuies .......................................211
8.2 Histrico da Tese ................................................................................................213
8.3 Projetos Futuros e Oportunidades de Pesquisa ..............................................215

Apndice A Organizao do Roteador RASoC................................. 217


Apndice B Arquivos do CD-ROM .................................................... 231

Referncias ............................................................................................... 233


8
9

Lista de Abreviaturas

AHB Advanced High-perfomance Bus


AMBA Advanced Microcontoller Bus Architecture
APB Advanced Peripheral Bus
ASIM Architecture des Systmes intgrs et Microlectronique
aSoC adaptive System-on-Chip
BCU Bus Control Unit
BFW Buffered Wormhole Switching
BIST Built-In Self Test
bop begin-of-packet
BPS Backbone-Platform-System
bps bits por segundo
CASS Cycle-Accurate System Simulator
CBDA Centrally-Buffered, Dynamically-Allocated
CBS CrossBar Switch
CLICH Chip-Level Integration of Communicating Heterogeneous Elements
CMOS Complementary Metal-Oxide Semiconductor
CPE Codificador de Prioridade Esttica
CPLD Complex Programmable Logic Device
CPU Central Processing Unit
DAMQ Dynamically-Allocated, Multi-Queue
DCR Device Control Register bus
DFT Design For Test
DSP Digital Signal Processor
E/S Entrada-e-Sada
eop end-of-packet
FCFS First-Come-First-Served
FFT Fast Fourier Transform
FIFO First-In, First-Out
FPGA Field Programmable Gate Array
GT Gerador de Trfego
HDL Hardware Description Language
HLP High Level Protocol
HOL Head-of-Line blocking
10

HSL High-Speed Link


I/F Interface
I/O Input/Output
IB Input Buffer
IC Input Controller
ICB Input Control Block
IFC Input Flow Controller
IIR Infinite Impulse Response
IP Intelectual Property
IRS Input Rd Switch
LIP6 Laboratoire d'Informatique, Universit Paris VI
LRS Least Recently Served
MAC Mulitply-And-Accumulate
OC Output Controller
OCB Output Control Block
OCN On-Chip Network
OCP Open Core Protocol
ODS Output Data Switch
OFC Output Flow Controller
OMI Open Microprocessor Systems Initiative
OPB On-chip Peripheral Bus
ORS Output Rok Switch
PBD Platform-Based Design
PC Parte Controle
PHIT Physical unIT
PI-Bus Peripheral Interconnect Bus
PLB Processor Local Bus
PO Parte Operativa
QoS Quality of Service
RAM Random Acess Memory
RASoC Router Architecture for Systems-on-Chip
RIB Routing Information Bits
RR Round-Robin
RSPIN Router SPIN
RTL Register Transfer Level
11

SAF Store-And-Forward
SAFC Statically Allocated, Fully Connected
SAMQ Statically Allocated Multi-Queue
SoC System-on-Chip
SoCIN System-on-Chip, Interconnection Network
SPIN Scalable Programmable Integrated Network
SRAM Static Random Access Memory
UART Universal Asynchronous Receiver/Transmitter
ULSI Utra Large Scale Integration
VCI Virtual Component Interface
VCT Virtual Cut-Through
VHDL VHSIC Hardware Description Language
VHSIC Very High Speed Integrated Circuit
VLSI Very Large Scale Integration
VSIA Virtual Socket Interface Alliance
12
13

Lista de Figuras
FIGURA 2.1 Redes diretas: (a) grelha 2-D; (b) toride 2-D; (c) hipercubo 3-D. ... 33
FIGURA 2.2 Redes indiretas: (a) crossbar 44; (b) multiestgio 88
bidirecional......................................................................................... 34
FIGURA 2.3 Deadlock: (a) roteador; (b) pacotes em deadlock;
(c) dependncia cclica. ...................................................................... 36
FIGURA 2.4 Classificaes para os algoritmos de roteamento............................... 38
FIGURA 2.5 Roteador com quatro buffers FIFO. ................................................... 45
FIGURA 2.6 Roteador com quatro buffers: (a) SAFC; (b) SAMQ; (c) DAMQ. .... 46
FIGURA 2.7 Abordagens para implementao de rbitros: (a) centralizada;
(b) distribuda. .................................................................................... 48
FIGURA 3.1 Arquitetura genrica de um sistema integrado [MAD 97 p.44]...... 54
FIGURA 3.2 Um sistema genrico integrado via padro VCI (onde I/F =
interface). ........................................................................................... 56
FIGURA 3.3 Arquiteturas de comunicao atuais: (a) ponto-a-ponto; (b) multi-
ponto................................................................................................... 59
FIGURA 3.4 Exemplo de arquitetura hierrquica com dois barramentos. .............. 62
FIGURA 3.5 Arquitetura genrica de um SoC baseado em barramento. ................ 63
FIGURA 3.6 Sistema genrico baseado na arquitetura CoreConnect. .................... 64
FIGURA 3.7 Interfaces da macro PLB. ................................................................... 65
FIGURA 3.8 Um sistema com mltiplas macros PLBs e uma macro
PLB CBS [IBM 99]............................................................................ 65
FIGURA 3.9 O barramento de sistema da arquitetura de interconexo AMBA. .... 66
FIGURA 3.10 SoC com 16 ncleos interconectados por uma rede SPIN. ................ 69
FIGURA 3.11 Roteador RSPIN [GUE 2000a]. ......................................................... 71
FIGURA 3.12 Sistema com 9 ncleos interconectados por uma rede em
grelha 2-D........................................................................................... 75
FIGURA 3.13 Padres de comunicao da execuo de duas aplicaes em um
SoC heterogneo com nove ncleos: (a) filtro IIR;
(b) decodificador Viterbi.................................................................... 75
FIGURA 3.14 O roteador aSoC. ................................................................................ 77
FIGURA 3.15 Rede proposta em [DAL 2001]: (a) topologia; (b) roteador
distribudo; (c) interface leste do roteador. ........................................ 80
FIGURA 3.16 Rede Octagon [KAR 2002]: (a) topologia bsica com 8 nodos;
(b) escalabilidade. .............................................................................. 81
FIGURA 3.17 Sistema baseado na rede CLICH [KUM 2002]. .............................. 82
FIGURA 4.1 Implementao de aplicaes multi-threaded no CASS: (a)
threads comunicantes; (b) mapeamento da aplicao em um
sistema multiprocessado..................................................................... 84
FIGURA 4.2 Fluxo de modelagem e simulao usando o CASS............................ 85
FIGURA 4.3 Arquivos de um modelo CASS. ......................................................... 86
FIGURA 4.4 Conexo VCI ponto-a-ponto. ............................................................. 87
FIGURA 4.5 Uso da interface VCI: (a) processador; (b) memria ;
(c) coprocessador; (d) processador no-VCI com adaptador
iniciador-VCI. .................................................................................... 88
FIGURA 4.6 Sistema integrado baseado no PI-Bus. ............................................... 89
FIGURA 4.7 O enlace SPIN. ................................................................................... 91
14

FIGURA 4.8 A interface do roteador RSPIN e os sinais da porta D0. .................... 91


FIGURA 4.9 As unidades do modelo RSPIN-CASS. ............................................. 92
FIGURA 4.10 Conexes possveis no crossbar do roteador RSPIN. ........................ 93
FIGURA 4.11 A parte operativa do modelo RSPIN-CASS. ..................................... 94
FIGURA 4.12 Controladores ICB e OCB do RSPIN. ............................................... 95
FIGURA 4.13 Redes SPIN com: (a) 8 terminais; (b) 16 terminais; e (c) 32
terminais. ............................................................................................ 97
FIGURA 4.14 Diagrama de hierarquia de funes do modelo CASS do
roteador RSPIN. ................................................................................. 98
FIGURA 4.15 Estrutura da funo SequentialRouter................................................ 99
FIGURA 4.16 Mensagens emitidas em um sistema com quatro ncleos: (a)
originadas pelos iniciadores; (b) originadas pelos alvos.................. 101
FIGURA 4.17 Posicionamento de iniciadores e alvos em uma rede SPIN com
oito terminais.................................................................................... 102
FIGURA 4.18 Nmero de ciclos do PI-Bus e da SPIN para pacotes com uma
clula VCI. ....................................................................................... 102
FIGURA 4.19 Benefcios do protocolo split para a rede SPIN. .............................. 103
FIGURA 4.20 Posicionamento de iniciadores e alvos em uma rede SPIN com
32 terminais. ..................................................................................... 104
FIGURA 4.21 Latncia mdia do PI-Bus e da SPIN para Ncell = 1. ........................ 105
FIGURA 4.22 Latncia mdia do PI-Bus e da SPIN para Ncell = 2. ........................ 105
FIGURA 4.23 Sistema integrado de referncia para a avaliao de desempenho
das arquiteturas de comunicao...................................................... 107
FIGURA 4.24 Fluxo de dados em uma FFT com oito pontos processada por
quatro threads fft. ............................................................................. 109
FIGURA 4.25 Sistema multiprocessado para a execuo da FFT........................... 110
FIGURA 4.26 Nmero de ciclos para a execuo da FFT com diferentes
nmeros de pontos no barramento PI-Bus e na rede SPIN. ............. 112
FIGURA 5.1 Topologia em grelha 2-D utilizada na rede SoCIN.......................... 116
FIGURA 5.2 Topologias alternativas para a rede SoCIN:
(a) toride 2-D; (b) toride dobrado 2-D. ........................................ 117
FIGURA 5.3 Um sistema heterogneo baseado em uma rede em grelha 2-D....... 117
FIGURA 5.4 Enlace da rede SoCIN. ..................................................................... 118
FIGURA 5.5 Um sistema genrico baseado na rede SoCIN. ................................ 120
FIGURA 5.6 Exemplo de um SoC multiprocessado: (a) baseado em um
barramento; (b) baseado na rede SoCIN. ......................................... 120
FIGURA 5.7 Exemplos de rotas permitidas no roteamento XY............................ 122
FIGURA 5.8 Dependncias cclicas: (a) ciclos abstratos (b) voltas permitidas
no roteamento XY [DUA 97]........................................................... 122
FIGURA 5.9 Exemplo de limitao do uso dos canais da rede com
roteamento XY. ................................................................................ 123
FIGURA 5.10 Exemplo de roteamento de um pacote na rede SoCIN..................... 124
FIGURA 5.11 O algoritmo de roteamento XY baseado em endereamento
relativo.............................................................................................. 125
FIGURA 5.12 Formato do pacote SoCIN................................................................ 126
FIGURA 5.13 Formato do cabealho do pacote SoCIN: (a) HLP e RIB; e
(b) campos do RIB. .......................................................................... 126
FIGURA 5.14 Controle de fluxo baseado no protocolo de handshake. .................. 128
FIGURA 5.15 Interface do roteador RASoC: (a) portas bidirecionais
(b) representao alternativa mostrando os canais unidirecionais. .. 130
15

FIGURA 5.16 Organizao do roteador RASoC: (a) mdulos associados aos


canais; (b) exemplos de sinais internos do canal Lin. ...................... 130
FIGURA 5.17 Interface e estrutura do mdulo Input Channel................................ 131
FIGURA 5.18 Interface e estrutura do mdulo Output Channel............................. 132
FIGURA 5.19 Estrutura do modelo VHDL do roteador RASoC. ........................... 133
FIGURA 5.20 Instncias e sinais da entidade rasoc................................................ 134
FIGURA 5.21 Configurao de trfego de pacotes em um roteador....................... 135
FIGURA 5.22 Formato do pacote para n = 8 e m = 8.............................................. 136
FIGURA 5.23 Transferncia do pacote 0 entre os canais Win e Eout. .................... 138
FIGURA 5.24 Transferncia dos pacotes 1 e 2 entre os canais Nin, Ein e Sout...... 139
FIGURA 5.25 Transferncia do pacote 3 entre os canais Sin e Lout....................... 139
FIGURA 5.26 Arquitetura simplificada de um gerador de trfegos para dois
padres diferentes de gerao de pacotes......................................... 141
FIGURA 5.27 Sistema com quatro GTs interconectados por uma grelha 22........ 142
FIGURA 5.28 Exemplo de padro de comunicao simulado. ............................... 142
FIGURA 5.29 Diagrama de formas de onda geral da simulao de um SoC 22... 143
FIGURA 5.30 Aproximao do diagrama de formas de onda da simulao........... 143
FIGURA 5.31 Impacto da profundidade dos buffers na rea do roteador RASoC
para diferentes configuraes de largura de canal (8, 16 e 32 bits). 144
FIGURA 5.32 Estruturas sintetizadas em FPGA: (a) multiplexador baseado em
LUTs; (b) buffers FIFO. ................................................................... 146
FIGURA 5.33 Impacto da profundidade dos buffers no desempenho do roteador
RASoC para diferentes configuraes de largura de canal (8, 16 e
32 bits).............................................................................................. 146
FIGURA 5.34 Impacto da largura do campo RIB do cabealho no custo e no
desempenho de roteadores de 32 bits com buffers de profundidade
igual a dois. ...................................................................................... 147
FIGURA 5.35 Redes 22: (a) toride; (b) grelha. ................................................... 148
FIGURA 5.36 Comparativo da rea das redes toride 22 e grelha 22. ............... 148
FIGURA 6.1 Modelo de crossbar: (a) matriz de chaveamento; (b) estrutura de
um ponto de chaveamento................................................................ 158
FIGURA 6.2 Sobrecarga % de rea de silcio do barramento para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2).......................................... 164
FIGURA 6.3 Sobrecarga % de rea de silcio do barramento para ncleos com
50 mil portas lgicas (Acore = 2,75 mm2).......................................... 165
FIGURA 6.4 Sobrecarga % de rea de silcio do barramento para ncleos com
100 mil portas lgicas (Acore = 5,50 mm2)........................................ 165
FIGURA 6.5 A parte operativa do roteador RSPIN. ............................................. 166
FIGURA 6.6 Multiplexadores do roteador RSPIN: (a) buffers centrais QUP e
QDN; (b) canais de sada superiores U0-3; (c) canais de sada
inferiores D0-3 [AND 2001]............................................................ 167
FIGURA 6.7 Conexes possveis no crossbar do roteador RSPIN. ...................... 168
FIGURA 6.8 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2).......................................... 172
FIGURA 6.9 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) visualizao da faixa
de 10%.............................................................................................. 172
FIGURA 6.10 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
50 mil portas lgicas (Acore = 2,75 mm2).......................................... 173
16

FIGURA 6.11 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
100 mil portas lgicas (Acore = 5,50 mm2)........................................ 173
FIGURA 6.12 Estruturas de chaves 41 de 1 bit baseadas na biblioteca de
clulas da AMS: (a) arranjo de NANDs; (b) buffers tri-state; (c)
multiplexadores 21......................................................................... 174
FIGURA 6.13 Implementaes da rede em grelha: (a) roteadores da periferia
sintetizados completamente; (b) roteadores da periferia
sintetizados parcialmente. ................................................................ 177
FIGURA 6.14 Implementao alternativa da rede em grelha.................................. 178
FIGURA 6.15 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2).......................................... 181
FIGURA 6.16 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) visualizao da faixa
de 10%.............................................................................................. 181
FIGURA 6.17 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
50 mil portas lgicas (Acore = 2,75 mm2).......................................... 181
FIGURA 6.18 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
100 mil portas lgicas (Acore = 5,50 mm2)........................................ 182
FIGURA 6.19 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) na abordagem alternativa
visualizao da faixa de 10%. ....................................................... 182
FIGURA 6.20 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e
SoCIN para sistemas baseados em ncleos com
2
10 mil portas lgicas (Acore = 0,55 mm ) e palavra de 32 bits.......... 183
FIGURA 6.21 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e
SoCIN para sistemas baseados em ncleos com
10 mil portas lgicas aproximao da faixa de 10%..................... 183
FIGURA 6.22 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e
SoCIN para sistemas baseados em ncleos com
50 mil portas lgicas (Acore = 2,75 mm2) e palavra de 32 bits.......... 184
FIGURA 6.23 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e
SoCIN para sistemas baseados em ncleos com
2
100 mil portas lgicas (Acore = 5,5 mm ) e palavra de 32 bits.......... 184
FIGURA 7.1 Canais das arquiteturas de comunicao: (a) multiponto no
barramento; (b) ponto-a-ponto na rede-em-chip. ............................. 188
FIGURA 7.2 Canais das arquiteturas de comunicao: (a) multiponto no
barramento; (b) ponto-a-ponto na rede-em-chip. ............................. 188
FIGURA 7.3 Dois inversores em cascata: (a) portas lgicas; (b) transistores
NMOS e PMOS [RAB 96]............................................................... 189
FIGURA 7.4 Elementos conectados a um fio dos canais de um barramento. ....... 190
FIGURA 7.5 Elementos conectados a um fio dos canais de uma rede-em-chip. .. 190
FIGURA 7.6 Caminho crtico mximo: (a) barramento; (b) rede-em-chip. .......... 191
FIGURA 7.7 Carga capacitiva dos canais do barramento e das redes-em-chip
(ncleos com 50 mil portas lgicas)................................................. 194
FIGURA 7.8 Sistema baseado na rede CLICH [KUM 2002]. ............................ 194
FIGURA 7.9 Rede proposta em [DAL 2001]. ....................................................... 195
FIGURA 7.10 Carga capacitiva dos canais de comunicao da rede SoCIN para
diferentes comprimentos de canal. ................................................... 195
FIGURA 7.11 Aumento da carga capacitiva do barramento com a largura das
linhas (0,5 a 4,0 m). ...................................................................... 197
17

FIGURA 7.12 Aumento da carga capacitiva do barramento com a largura das


linhas (0,5 e 4,0 m) e com a capacidade dos buffers (1 e 4)..... 197
FIGURA 7.13 Estgios do pipeline [PEH 2001]. .................................................... 199
FIGURA 7.14 Mensagens emitidas em um sistema com quatro ncleos: (a)
originadas pelos iniciadores; (b) originadas pelos alvos.................. 201
FIGURA 7.15 Latncias medida e estimada para o barramento PI-Bus. ................ 202
FIGURA 7.16 Posicionamento de iniciadores e alvos em uma rede SPIN com
oito terminais.................................................................................... 202
FIGURA 7.17 Latncias medida e estimada para a rede SPIN. .............................. 203
FIGURA 7.18 Erros percentuais entre os resultados estimados e os dados
medidos por simulao para diferentes tamanhos de mensagem
(m) e nmero de ncleos (n)............................................................. 203
FIGURA 7.19 Latncias estimadas para o barramento PI-Bus e para a rede SPIN
para diferentes tamanhos de sistema com m = 1. ............................. 204
FIGURA 7.20 Latncias medidas por simulao para o barramento PI-Bus e para
a rede SPIN para diferentes tamanhos de sistema com m = 1.......... 204
FIGURA 7.21 Ganho percentual estimado da rede SPIN sobre o barramento
PI-Bus............................................................................................... 205
FIGURA 7.22 Ganhos percentuais da latncia da rede SPIN para diferentes
tamanhos de mensagem (m = 1 a 8)................................................. 206
FIGURA 7.23 Ganhos percentuais da latncia da rede SPIN para mensagens de
tamanho 1 e diferentes cargas (50, 40, 30, 20 e 10%). .................... 206
FIGURA 7.24 Ganhos percentuais da latncia da rede SPIN para mensagens de
tamanho 4 e diferentes cargas (50, 40, 30, 20 e 10%). .................... 207
FIGURA 7.25 Ganhos percentuais da latncia da rede SPIN para diferentes
larguras de canal de dados na rede (8 a 128 bits) e uma largura
fixa no barramento (32 bits). ............................................................ 208
FIGURA 7.26 Ganhos percentuais da latncia da rede SPIN para diferentes
perodos de operao do barramento PI-Bus. .................................. 208
FIGURA A.1 Interface e estrutura do mdulo Input Channel................................ 217
FIGURA A.2 Estrutura do bloco IFC. .................................................................... 220
FIGURA A.3 Estrutura do bloco IB. ...................................................................... 220
FIGURA A.4 Mquina de estados do buffer FIFO................................................. 221
FIGURA A.5 Estrutura do bloco IC. ...................................................................... 222
FIGURA A.6 Estrutura do bloco IRS: (a) multiplexador 4x1; (b) arranjo AND-
OR; (c) estrutura baseada em buffers tri-state; (d) estrutura
baseada em buffers tri-state com resistor de pull-up. ...................... 223
FIGURA A.7 Interface e estrutura do mdulo Output Channel............................. 224
FIGURA A.8 Estrutura do bloco ODS. .................................................................. 226
FIGURA A.9 Estrutura do bloco ORS. .................................................................. 227
FIGURA A.10 Estrutura do bloco OFC. .................................................................. 227
FIGURA A.11 Estrutura do bloco OC...................................................................... 228
FIGURA A.12 Estrutura da parte operativa do bloco OC. ....................................... 229
FIGURA A.13 Mquina de estados da parte controle do bloco OC......................... 230
18
19

Lista de Tabelas
TABELA 2.1
Termos da equao da latncia. ..........................................................32
TABELA 2.2
Caractersticas de uma rede de interconexo. .....................................32
TABELA 2.3
Parmetros utilizados nos modelos de latncia. ..................................42
TABELA 2.4
Modelos de latncia.............................................................................42
TABELA 2.5
Exemplos de redes de interconexo para multiprocessadores. ...........49
TABELA 4.1
Significado de cada sinal do enlace SPIN...........................................91
TABELA 4.2
Nmero de roteadores RSPIN na rede SPIN.......................................98
TABELA 4.3
Pacotes VCI e flits transferidos no barramento PI-Bus e na rede
SPIN ..................................................................................................101
TABELA 4.4 Saturao das arquiteturas de comunicao para diferentes
tamanhos de pacote. ..........................................................................106
TABELA 4.5 Mapa de endereos dos ncleos do sistema. .....................................108
TABELA 5.1 Campos constituintes da informao de roteamento.........................124
TABELA 5.2 Parmetros do roteador RASoC. .......................................................133
TABELA 5.3 Exemplos de palavras de cabealho para m = 8. ...............................136
TABELA 5.4 Pacotes utilizados na simulao. .......................................................137
TABELA 5.5 Contedo do RIB dos pacotes antes e aps o roteamento.................137
TABELA 5.6 Resumo dos parmetros utilizados na configurao do padro de
comunicao da Figura 5.28. ............................................................142
TABELA 5.7 Custo em LCs de ncleos de processamento e do roteador
RASoC. .............................................................................................145
TABELA 6.1 Exemplos de clulas da biblioteca AMS 0.35 m CMOS [AUS
2001a]................................................................................................159
TABELA 6.2 Clulas da biblioteca da AMS 0.35 m CMOS [AUS 2001a]..........162
TABELA 6.3 Custos dos decodificadores para diferentes tamanhos de sistema. ...163
TABELA 6.4 Custo por bit do crossbar de dados do roteador RSPIN....................167
TABELA 6.5 Custo do roteador RSPIN em clulas NA2 da biblioteca da AMS. ..169
TABELA 6.6 Nmero de roteadores na rede SPIN. ................................................170
TABELA 6.7 Nmero de portas lgicas na rede SPIN. ..........................................171
TABELA 6.8 Nmero equivalente clulas NA2 em diferentes estruturas de
chaves de multiplexao baseadas na biblioteca de clulas da
AMS [AUS 2001a]............................................................................175
TABELA 6.9 Custo do roteador RASoC em clulas NA2 da biblioteca da AMS. .176
TABELA 6.10 Relao entre o nmero de portas lgicas para diferentes
implementaes da rede. ...................................................................178
TABELA 6.11 Capacidade da rede conectando-se ncleos s portas perifricas. ....179
TABELA 6.12 Relao entre os custos de diferentes alternativas de redes SoCIN..180
TABELA 7.1 Clculo das mdias das capacitncias de rea e de permetro para
AMS Metal 3.....................................................................................193
TABELA A.1 Definio dos sinais da interface do mdulo Input Channel. ...........218
TABELA A.2 Significado de x_rdi e x_gnti para cada instncia de Input
Channel. ............................................................................................219
TABELA A.3 Uso das linhas de requisio nas instncias de Input Channel. ........219
TABELA A.4 Sadas da mquina de estados do buffer FIFO..................................221
TABELA A.5 Definio dos sinais da interface do mdulo Output Channel. ........225
TABELA A.6 Significado de x_dini e x_roki para cada instncia de Output
Channel. ............................................................................................225
20

TABELA A.7 Significado de x_reqi e x_gnti para cada instncia de Output


Channel. ............................................................................................226
TABELA A.8 Sadas da mquina de estados do bloco OC......................................230
TABELA B.1 Arquivos contidos no CD-ROM. ......................................................231
21

Resumo

Com o advento dos processos submicrnicos, a capacidade de integrao de


transistores tem atingido nveis que possibilitam a construo de um sistema completo
em uma nica pastilha de silcio. Esses sistemas, denominados sistemas integrados,
baseiam-se no reuso de blocos previamente projetados e verificados, os quais so
chamados de ncleos ou blocos de propriedade intelectual. Os sistemas integrados
atuais incluem algumas poucas dezenas de ncleos, os quais so interconectados por
meio de arquiteturas de comunicao baseadas em estruturas dedicadas de canais
ponto-a-ponto ou em estruturas reutilizveis constitudas por canais multiponto,
denominadas barramentos. Os futuros sistemas integrados iro incluir de dezenas a
centenas de ncleos em um mesmo chip com at alguns bilhes de transistores, sendo
que, para atender s presses do mercado e amortizar os custos de projeto entre vrios
sistemas, importante que todos os seus componentes sejam reutilizveis, incluindo a
arquitetura de comunicao. Das arquiteturas utilizadas atualmente, o barramento a
nica que oferece reusabilidade. Porm, o seu desempenho em comunicao e o seu
consumo de energia degradam com o crescimento do sistema. Para atender aos
requisitos dos futuros sistemas integrados, uma nova alternativa de arquitetura de
comunicao tem sido proposta na comunidade acadmica. Essa arquitetura,
denominada rede-em-chip, baseia-se nos conceitos utilizados nas redes de interconexo
para computadores paralelos. Esta tese se situa nesse contexto e apresenta uma
arquitetura de rede-em-chip e um conjunto de modelos para a avaliao de rea e
desempenho de arquiteturas de comunicao para sistemas integrados. A arquitetura
apresentada denominada SoCIN (System-on-Chip Interconnection Network) e
apresenta como diferencial o fato de poder ser dimensionada de modo a atender a
requisitos de custo e desempenho da aplicao alvo. Os modelos desenvolvidos
permitem a estimativa em alto nvel da rea em silcio e do desempenho de arquiteturas
de comunicao do tipo barramento e rede-em-chip. So apresentados resultados que
demonstram a efetividade das redes-em-chip e indicam as condies que definem a
aplicabilidade das mesmas.

Palavras-chave: Microeletrnica. Sistemas Integrados. Redes-em-Chip.


22
23

TITLE: NETWORKS-ON-CHIP: ARCHITECTURES AND MODELS TO


EVALUATE AREA AND PERFORMANCE

Abstract

With the developing of new submicron process technologies, it has been


possible to integrate an entire system on a single chip. Such kind of system is named
System-on-Chip (SoC) and its design methodologies are based on the reuse of pre-
designed and pre-verified components named cores or intellectual property blocks.
Current SoCs include a few dozens of cores interconnected by communication
architectures based on point-to-point dedicated channels or in multi-point channels (also
named shared busses). However, the future SoCs will integrate up to hundreds of cores
on a single billion-transistor chip. To meet the market pressures and to amortize the
design costs among several systems, it is important that all the systems components are
reusable, including the communication architecture. Considering the current on-chip
communication architectures, only the bus-based one offers reusability. Meanwhile,
their performance and power consumption degrade with the system growing. To meet
the requirements of the future SoCs, a new approach has been proposed in the academia.
It is named Network-on-Chip (NoC) and is based on the concepts used in
interconnection networks for parallel computers. The current thesis is inserted in this
context and presents a new NoC architecture and a set of models to allow the evaluation
of area and performance of on-chip communication architectures. The network
architecture is named SoCIN (System-on-Chip Interconnection Network) and presents
scalability features which allow to the designer to tune the network dimensions in order
to meet costs and performance requirements of the target application. The models allow
to get a high level estimation of silicon area and performance of busses and NoCs.
Several results are presented and they demonstrate the effectiveness of the NoC
approach and indicate the conditions defining the applicability of a NoC.

Keywords: Microelectronics. System-on-Chip. Network-on-Chip.


24
25

1 Introduo

O advento dos processos submicrnicos tem permitido um aumento do nvel de


integrao de transistores em uma mesma pastilha de silcio, e possibilitar a
sustentao da Lei de Moore por ainda muitos anos. Esse avano na tecnologia tem
possibilitado a integrao de mltiplos componentes, como processadores,
controladores e memria, em um nico chip, resultando na integrao de um sistema
completo em uma mesma pastilha. Esses sistemas so denominados sistemas integrados
ou SoCs (Systems-On-Chip).

Para atender s presses do mercado e amortizar os custos de projeto entre


vrios sistemas, importante que os componentes integrados em um SoC sejam
reutilizveis. Dessa forma, as metodologias de projeto adotadas devem ser baseadas no
reuso de componentes pr-projetados e pr-verificados. Esses componentes reutilizveis
so denominados ncleos e podem ser desenvolvidos pela empresa responsvel pelo
projeto do sistema ou adquiridos de terceiros.

Os ncleos de um sistema integrado so interconectados por meio de uma


estrutura de canais denominada arquitetura de comunicao (tambm referenciada pelos
termos arquitetura, estrutura ou rede de interconexo). Atualmente, so utilizadas duas
abordagens para a interconexo dos ncleos: canais ponto-a-ponto dedicados e canais
multiponto compartilhados. A primeira alternativa a que oferece o melhor
desempenho, pois cada comunicao ocorre independentemente das demais por meio de
canais exclusivos. Contudo, ela requer um projeto especfico e, portanto, possui
reusabilidade limitada. J na arquitetura multiponto, conhecida por barramento, a
mesma estrutura pode ser reutilizada em diferentes sistemas, reduzindo o tempo de
projeto.

Nesse contexto, muitos fabricantes oferecem solues de integrao de sistema


que incluem bibliotecas completas com ncleos para componentes de processamento e
de comunicao. Tipicamente, a arquitetura de comunicao utilizada o barramento
(ou uma hierarquia com dois ou mais barramentos), pois oferece, como vantagem,
caractersticas de reusabilidade e baixo custo de silcio.

Porm, os canais multiponto do barramento so conectados a vrios ncleos e


compartilhados pelas diferentes comunicaes entre os ncleos do sistema. Com o
aumento do nmero de ncleos conectados aos canais do barramento, a carga capacitiva
desses canais incrementada, resultando em um aumento na energia e no tempo
necessrios propagao dos sinais pelos fios do barramento. Alm disso, a largura de
banda do barramento definida pelo tempo de propagao dos sinais e pelo nmero de
bits do seu canal de dados. Desde que a largura desse canal fixa e o tempo de
propagao se degrada com o aumento do sistema, a largura de banda do barramento
tambm sofre com esse aumento. Alm disso, quanto maior for o nmero de ncleos
capazes de iniciar uma comunicao, menor ser a largura de banda disponvel a cada
um deles, pois os mesmos devero competir pelo uso do barramento. Portanto, para
sistemas que possuem perspectivas de serem escalados pelo acrscimo do nmero de
ncleos, sabido, a priori, que o desempenho da arquitetura de comunicao ser
menor nas novas geraes.
26

Segundo estudos do ITRS (International Technology Roadmap for


Semiconductors) [ITR 2003], at o final desta dcada, estaro sendo disponibilizadas
tecnologias de processo de 100 - 50 nm. Com tais tecnologias, ser possvel a integrao
de at quatro bilhes de transistores e dezenas a centenas de ncleos em uma mesma
pastilha de silcio [BEN 2002], o que permitir o desenvolvimento de novas aplicaes
nas reas de multimdia, telecomunicaes e eletrnica de consumo. Contudo, enquanto
isso abre novas oportunidades de projeto, surgem tambm novas dificuldades com
relao especificao, mapeamento e avaliao das opes de projeto, assim como
questes associadas s arquiteturas de comunicao.

Do ponto de vista da comunicao, o problema reside no fato de que esses


sistemas sero to complexos que inviabilizaro o uso de interconexes dedicadas face
s dificuldades envolvidas e falta de reusabilidade dessa abordagem. Por outro lado,
os requisitos de desempenho em comunicao, como largura de banda escalvel e baixa
latncia, dificilmente sero atendidos pelas arquiteturas baseadas no barramento. Isso
decorre da natureza arquitetural do barramento que impe uma srie de problemas j
identificados. Nos futuros sistemas integrados, os comprimentos dos fios de um
barramento iro se manter proporcionais ao tamanho da pastilha (die size) e no iro
diminuir com o aumento da freqncia de relgio devida reduo dos transistores.
Como foi visto acima, por utilizar conexes do tipo multiponto, quanto maior for o
nmero de ncleos conectados ao barramento, maior ser a sua capacitncia parasita.
Assim, o atraso na movimentao de dados ao longo dos fios ir se tornar incrivelmente
significativo e limitar o desempenho do sistema. Quanto potncia, o problema que
o barramento opera por difuso e cada sinal deve chegar a todos os pontos do
barramento, exigindo uma grande quantidade de energia. Alm desses, existem outros
problemas, como largura de banda no escalvel e arbitragem centralizada, que
dificultaro em muito o uso de barramentos em SoCs complexos.

Logo, evidente a necessidade de desenvolvimento de novos sistemas de


comunicao que ataquem os problemas acima enumerados. Nesse contexto, a soluo
proposta pela comunidade cientfica est no uso de redes de interconexo chaveada,
como aquelas encontradas em computadores paralelos. Essas redes tm como vantagens
a largura de banda escalvel, o uso de conexes ponto-a-ponto curtas e o paralelismo na
comunicao, entre outras. Embora tenham como desvantagem maiores custos e
latncia na comunicao, esses problemas sero certamente atenuados pela grande
disponibilidade de transistores e por solues arquiteturais que permitiro reduzir a
latncia da rede e seus efeitos no desempenho da aplicao.

Essas redes chaveadas, quando aplicadas comunicao intrachip, recebem


mltiplas denominaes na literatura: micronetworks, On-Chip Networks (OCNs) e
Networks-on-Chip (NoC). Contudo, todas elas se referem mesma base arquitetural
(redes de interconexo chaveada para computadores paralelos), sendo que, neste texto,
ser adotado o terceiro termo (e a sua traduo para o portugus: redes-em-chip).

Existem alguns trabalhos que propem arquiteturas de comunicao intrachip


baseadas nos conceitos adotados em redes de computadores. O mais antigo conhecido
nessa linha data de 1992 e discute o problema da interconexo em sistemas ULSI (Ultra
Large Scale Integration), propondo a adoo de arquiteturas semelhantes s de uma
rede local, com melhorias [TEW 92]. Um trabalho recente, de 2002, prope uma
arquitetura de interconexo intrachip tambm com caractersticas similares s de uma
rede de computadores [BRI 2002]. Essas arquiteturas diferem em muitos pontos das
27

redes de interconexo chaveada para computadores paralelos, as quais so projetadas


visando oferecer, ao mesmo tempo, alto desempenho, baixo custo e escalabilidade, e, no
entendimento deste autor, no podem ser includas na categoria das redes-em-chip.

Desde o ano de 2000, quando foram publicados alguns dos primeiros trabalhos
conhecidos com resultados efetivos sobre redes-em-chip [GUE 2000a, LAN 2000], o
interesse pelo assunto tem crescido significativamente e tem sido tema de sesses
especiais em importantes conferncias internacionais (DAC2001 e DATE2002), nas
quais foram apresentadas e discutidas diversas questes sobre o assunto. Da mesma
forma, o espao em publicaes peridicas tem crescido de forma importante, com
edies especiais dedicadas ao tema.

Disso percebe-se a importncia e a necessidade de se inserir em um contexto que


oferece um grande nmero de oportunidades de pesquisa. A tese aqui apresentada se
estabelece nesse contexto e o resultado de uma srie de estudos e atividades de
pesquisa iniciadas em 1998 com o objetivo principal de tratar das questes associadas s
redes de interconexo chaveada de aplicao especfica em nvel de chip ou de agregado
de computadores. A focalizao do tema foi dada aps diversos estudos e,
principalmente, com a participao em um dos projetos de pesquisa pioneiros na rea
das redes-em-chip: o Projeto SPIN (Scalable, Programmable Integrated Network),
desenvolvido no departamento ASIM (Architecture des Systmes intgrs et
Microlectronique) do LIP6 (Laboratoire d'Informatique Paris 6). No contexto do
Projeto SPIN, trabalhou-se na modelagem e na avaliao de arquiteturas de
comunicao para sistemas integrados por meio de simulao computacional. Foram
avaliadas e comparadas duas arquiteturas: o barramento PI-Bus e a rede SPIN.

Dada a quantidade de oportunidades de pesquisa em aberto na rea das


redes em-chip, identificou-se uma carncia por instrumentos de alto nvel que
auxiliassem a avaliao da aplicabilidade dessas redes em sistemas integrados. Ou seja,
a partir de um sistema integrado com caractersticas e requisitos conhecidos, o problema
reside em determinar qual a arquitetura de comunicao mais adequada a esse sistema e
a partir de qual configurao uma rede-em-chip se faz necessria. Nesse contexto, foi
desenvolvido um conjunto de modelos para avaliao de rea e desempenho de
arquiteturas de comunicao para sistemas integrados.

Uma outra questo atacada na tese foi a especificao de uma arquitetura de


rede-em-chip e o desenvolvimento de um modelo VHDL parametrizvel do seu
roteador. Essa rede denominada SoCIN (System-on-Chip Interconnection Network) e
sua caracterstica principal, e que a diferencia das demais redes-em-chip encontradas na
literatura, que ela se baseia em um ncleo de roteador configurvel (denominado
RASoC Routing Architecture for System-on-Chip), cuja largura de canais e
profundidade dos buffers podem ser dimensionadas em funo dos requisitos do
sistema. Alm disso, a descrio altamente modularizada e permite a explorao do
espao arquitetural pela substituio das alternativas utilizadas por outras que melhor
atendam aos requisitos estabelecidos. A disponibilidade desse modelo tem fomentado o
desenvolvimento de muitos projetos de pesquisa.

Esta tese organizada como segue. No Captulo 2, apresentada uma reviso


sobre redes de interconexo chaveada para computadores paralelos que permitem
familiarizar o leitor com os conceitos envolvidos nesse tipo de rede. Essa reviso no
28

exaustiva e se baseia em um estudo previamente efetuado e que resultou em uma


monografia de Exame de Qualificao [ZEF 99c].

No Captulo 3, so discutidos conceitos a respeito de sistemas integrados com


nfase ao problema da comunicao em SoCs. So apresentadas algumas das
arquiteturas que representam o estado da arte das redes-em-chip sem, contudo, esgotar
todos os exemplos possveis de serem descritos.

O Captulo 4 apresenta os resultados das atividades de pesquisa realizadas junto


ao Projeto SPIN. So descritos os conceitos e tecnologias estudadas, o processo de
modelagem da rede SPIN e os sistemas integrados modelados visando a avaliao e a
comparao do desempenho da rede SPIN e do barramento PI-Bus. O captulo inclui,
tambm, os resultados dessa avaliao.

No Captulo 5, realizada uma descrio da arquitetura da rede SoCIN, bem


como resultados de sntese, incluindo custos e freqncias de operao do seu roteador e
de redes bsicas para diferentes configuraes dos parmetros de entrada. A arquitetura
do roteador RASoC detalhada no Apndice 1.

O Captulo 6 apresenta um conjunto de modelos analticos para a estimativa do


custo em silcio de arquiteturas de comunicao atuais, incluindo o barramento PI-Bus,
a rede SPIN e a rede SoCIN. Esses modelos permitem avaliar o impacto das
configuraes do sistema e da rede na sobrecarga de rea de silcio adicionada pelos
componentes de cada arquitetura.

No Captulo 7, so descritos modelos analticos que permitem uma estimativa


em alto nvel do desempenho das arquiteturas de comunicao consideradas no Captulo
6. So apresentados resultados de avaliaes das caractersticas de desempenho de cada
arquitetura para diferentes configuraes de sistema.

Ao trmino de cada captulo, so apresentadas consideraes que fazem uma


avaliao local do texto e dos resultados associados. Dessa forma, o Captulo 8,
apresenta as consideraes finais da tese de modo a oferecer um apanhado geral sobre
os resultados, as contribuies deste trabalho, projetos futuros e oportunidades de
pesquisa em redes-em-chip.

Por fim, preciso destacar que o escopo da tese limitado e busca atacar
questes pontuais da rea estudada. no entendimento do autor que sua contribuio
principal reside no desenvolvimento e na disponibilizao de modelos de simulao,
sntese e estimativa de rea e desempenho de redes-em-chip, assim como um conjunto
de dados e anlises sobre a aplicabilidade dessas redes. Acredita-se que os resultados
aqui obtidos iro fomentar um nmero de trabalhos a serem realizados em continuidade
tese e ajudar a consolidar uma linha de pesquisa por ela introduzida no Grupo de
Microeletrnica da Universidade Federal do Rio Grande do Sul.
29

2 Noes Fundamentais sobre Redes de Interconexo


Chaveada para Computadores Paralelos
Este captulo apresenta uma reviso dos principais conceitos relacionados s
redes de interconexo chaveada para computadores paralelos, mais comumente
conhecidas pela expresso redes de interconexo (do ingls, interconnection networks
ou INs). So discutidos os atributos que caracterizam as redes de interconexo, bem
como os mecanismos de comunicao utilizados para a transferncia de dados pela rede.
O captulo inicia com a apresentao de alguns conceitos e definies bsicas, aps o
qu as topologias de redes de interconexo so apresentadas. Em seguida, so discutidos
os problemas de starvation, livelock e deadlock, e os principais mecanismos e
caractersticas das redes de interconexo: roteamento, chaveamento, controle de fluxo,
memorizao e arbitragem. Por fim, so apresentados alguns exemplos representativos
de redes de interconexo chaveada para sistemas de computao paralela, de modo a
ilustrar as alternativas arquiteturais utilizadas nesse nvel.

2.1 Definies Bsicas

As redes de interconexo so tipicamente utilizadas para interconectar os nodos


de um computador paralelo, sendo que um nodo pode ser simplesmente um processador,
um mdulo de memria ou at um computador completo com processador e memria
local e uma interface de rede. Em um multiprocessador, a rede de interconexo oferece
a infra-estrutura necessria para que os diversos processadores acessem os mdulos de
memria compartilhada. A comunicao entre os processos executados nos
processadores ocorre pelo acesso a variveis compartilhadas em memria, sendo que os
acessos a essas variveis so protegidos por mecanismos de excluso mtua. J em um
multicomputador, a rede interconecta os computadores da mquina e, por no haver
compartilhamento de memria, a comunicao ocorre pela troca de mensagens. Esse
tipo de computador tambm chamado de multiprocessador de memria distribuda.
Existem tambm variaes desses modelos, como os multiprocessadores de memria
compartilhada distribuda, mas o estudo sobre os mesmos foge do escopo deste texto.

Uma rede de interconexo constituda basicamente por roteadores e enlaces


(links). Os enlaces ligam os roteadores entre si e aos nodos do computador paralelo,
enquanto que os roteadores estabelecem o caminho necessrio transferncia de dados
pela rede. Esses dados so transferidos sob a forma de mensagens, as quais podem ser
divididas em unidades menores chamadas pacotes. Uma rede de interconexo
caracterizada pela sua topologia e por um conjunto de mecanismos que definem a forma
como ocorrer a transferncia de mensagens pela rede. As diferentes alternativas de
topologia e de mecanismos de comunicao tm impacto direto no desempenho da rede,
o qual pode ser avaliado atravs de algumas mtricas, como a largura de banda, a vazo
e a latncia. Todos esses aspectos, citados neste pargrafo, so discutidos abaixo e nas
subsees que se seguem.
30

2.1.1 Roteador
Um roteador constitudo por um ncleo de chaveamento (crossbar), uma
lgica de controle para roteamento e arbitragem, e portas de entrada-e-sada para
comunicao com outros roteadores e/ou com os nodos do computador paralelo. Essas
portas de comunicao incluem canais de entrada e de sada, os quais podem possuir
uma pequena memria para armazenamento temporrio de informaes (a qual
denominada buffer de memorizao ou, simplesmente, buffer). As portas possuem ainda
controladores de enlace para a implementao do protocolo fsico de comunicao. Eles
regulam o trfego das informaes que entram e saem do roteador.

2.1.2 Enlaces
Um enlace liga um roteador a outro roteador ou a um nodo do computador
paralelo e pode possuir um ou dois canais fsicos de comunicao, sendo implementado
sob a forma de um cabo eltrico ou ptico. Tipicamente, os enlaces utilizados em redes
de interconexo so full-duplex, sendo constitudos por dois canais unidirecionais
opostos de modo a permitir a transferncia simultnea de informao nas duas direes
do enlace.

2.1.3 Mensagens e pacotes


As informaes trocadas pelos nodos fonte (emissor) e destinatrio (receptor) de
uma comunicao so organizadas sob a forma de mensagens. Em geral, uma
mensagem possui trs partes: um cabealho (header), a carga til (payload) e um
terminador (trailer), sendo que o cabealho e o terminador formam um envelope ao
redor da carga til da mensagem. O cabealho inclui informaes de roteamento e de
controle utilizadas pelos roteadores para propagar a mensagem em direo ao nodo
destinatrio da comunicao. O terminador, por sua vez, inclui informaes usadas para
a deteco de erros e para a sinalizao do fim da mensagem.

Tipicamente, as mensagens so quebradas em pacotes para transmisso. Um


pacote a menor unidade de informao que contm detalhes sobre o roteamento e
seqenciamento dos dados e mantm uma estrutura semelhante de uma mensagem,
com um cabealho, uma carga til e um terminador. Um pacote constitudo por uma
seqncia de palavras cuja largura igual largura fsica do canal, a qual denominada
phit1. Em outras palavras, um phit definido pelo nmero de bits de dado transmitidos
simultaneamente, sendo igual a 1 bit nos enlaces seriais e a n bits nos enlaces paralelos
de n bits. Alm dos bits de dado, o phit pode incluir sinais de enquadramento e de
controle da integridade do dado.

1
PHIT = PHysical unIT
31

2.1.4 Parmetros de desempenho de uma rede de interconexo


O desempenho de uma rede de interconexo pode ser avaliado pela sua largura
de banda, pela vazo e/ou pela latncia da rede.

A largura de banda (bandwitdh) refere-se taxa mxima com a qual a rede de


interconexo pode propagar as informaes uma vez que uma mensagem entra na rede.
Tradicionalmente, no clculo da largura de banda, so contados os bits do cabealho, da
carga til e do terminador da mensagem, sendo que a unidade de medida utilizada bit
por segundo (ou bps) [PAT 96].

A vazo (throughput) definida em [DAL 91] como o nmero de mensagens


que a rede entrega na unidade de tempo e, em [PAT 96], como a largura de banda da
rede para uma dada aplicao. Essas duas definies no so muito claras, pois, na
primeira, o tamanho das mensagens pode variar e, na segunda, a vazo pode ser
confundida com a largura de banda mxima da rede. Em [DUA 97], apresentado um
conceito mais ntido para a vazo, a qual definida como o trfego mximo aceito pela
rede ou, em outras palavras, a quantidade mxima de informao entregue na unidade
de tempo. Para que a vazo seja independente do tamanho das mensagens e da rede, seu
valor pode ser normalizado, dividindo-o pelo tamanho das mensagens e pelo tamanho
da rede. Como resultado, a vazo normalizada medida em bits por nodo por ciclo de
relgio (ou por microssegundo).

A latncia o tempo envolvido desde o incio da transmisso de uma mensagem


at o momento em que ela completamente recebida. Em geral, a latncia individual de
cada mensagem de pouca importncia, principalmente quando so utilizadas cargas
sintticas [DUA 97]. Nesse caso, o valor mdio das latncias (ou latncia mdia) mais
significativo para a avaliao da rede. Porm, se algumas mensagens experimentam
latncias muito maiores que o valor mdio, isso pode ter um impacto importante no
desempenho de algumas aplicaes. Logo, alm da latncia mdia, o desvio padro
pode ser importante para ajudar a identificar essas situaes.

A latncia medida em unidades de tempo. Porm, como muitas comparaes


de alternativas de projeto so realizadas utilizando-se simuladores de rede, a latncia
pode ser medida em ciclos de relgio do simulador.

A latncia L de uma rede com carga dada por (2.1), na qual os quatro termos
do lado direito da equao so definidos na Tabela 2.1. A ocupao do canal depende
do nmero de enlaces utilizados na rota da mensagem, sendo que a ocupao de cada
enlace dependente da largura de banda do canal em bps. O nmero de enlaces
utilizados denominado distncia e quanto maior for o seu valor, maiores sero os
atrasos acumulados pela ocupao do canal e tambm pelo roteamento. A latncia total
depende ainda das estratgias utilizadas para roteamento e chaveamento.

L = S + O + ARC + C (2.1)
32

TABELA 2.1 Termos da equao da latncia.


Termo Definio
S Sobrecarga (overhead) Refere-se aos tempos gastos pelos nodos fonte e destinatrio
para, respectivamente, injetar e retirar a mensagem da rede.
O Ocupao do canal uma medida do tempo gasto para transferir a mensagem
pelos enlaces utilizados na rota entre os nodos fonte e
destinatrio.
ARC Atrasos de roteamento o tempo gasto para a determinao da rota a ser utilizada
e de chaveamento para a propagao da mensagem atravs do roteador.
C Atraso de conteno Refere-se aos perodos de tempo durante os quais a mensagem
impedida de avanar devido ao congestionamento da rede.

2.1.5 Caractersticas de uma rede de interconexo


Uma rede de interconexo pode ser caracterizada pela sua topologia e pelas
estratgias utilizadas para roteamento, controle de fluxo, chaveamento e arbitragem que
ela utiliza, conforme resume a Tabela 2.2.

TABELA 2.2 Caractersticas de uma rede de interconexo.


Caracterstica Definio/Funo
Topologia Define o arranjo dos roteadores e enlaces sob a forma de um grafo.

Roteamento Determina como uma mensagem escolhe um caminho dentro do grafo.

Chaveamento Define como e quando um canal de entrada de um roteador conectado


a um canal de sada selecionado pelo algoritmo de roteamento.
Controle de fluxo Lida com a alocao de canais e buffers para uma mensagem que
atravessa o grafo.
Arbitragem Determina qual canal de entrada pode utilizar um determinado canal de
sada do roteador.
Memorizao Define como e onde sero armazenadas mensagens bloqueadas em um
roteador.

2.2 Topologia

Uma rede de interconexo pode ser caracterizada pela estrutura como seus
roteadores so interligados. Essa estrutura tipicamente representa por um grafo
G(N,C) no qual N representa o conjunto de roteadores da rede e C representa o conjunto
de canais de comunicao. Quanto topologia, as redes de interconexo podem ser
agrupadas em duas classes principais: as redes diretas e as redes indiretas.
33

2.2.1 Redes diretas


Nas redes diretas, cada roteador est associado a um processador e esse par pode
ser visto como um elemento nico dentro do computador (o qual pode ser referenciado
simplesmente pelo termo "nodo"). Cada nodo possui ligaes ponto-a-ponto diretas para
um determinado nmero de nodos vizinhos. Uma mensagem trocada entre dois nodos
no-vizinhos deve passar por um ou mais nodos intermedirios. Se uma mensagem
recebida por um nodo destinada a outro nodo dentro da rede, o roteador do primeiro
deve repass-la para algum dos seus nodos vizinhos para que a mensagem avance em
direo ao seu destinatrio. Apenas os roteadores so envolvidos nessa comunicao,
sem interferncia aos processadores dos nodos intermedirios. Um algoritmo de
roteamento utilizado pelo roteador a fim de decidir para qual nodo vizinho a
mensagem deve ser repassada.

Em termos de conectividade, a rede direta ideal a completamente conectada.


Porm, sua escalabilidade restrita e seu custo proibitivo para um nmero de nodos
moderado ou grande, pois o grau do nodo (nmero de canais por nodo) N1, no qual
N o nmero de nodos da rede.

Face s dificuldades de se implementar uma rede direta ideal, como a


completamente conectada, diversas alternativas foram propostas na tentativa de obter
uma boa relao entre desempenho e custo. A grande maioria das implementaes
prticas se restringe a alguns modelos de rede que possuem topologia ortogonal. Uma
rede apresenta topologia ortogonal se, e somente se, seus nodos podem ser arranjados
em um espao n-dimensional e cada enlace entre nodos vizinhos produz um
deslocamento em uma nica dimenso. As topologias de redes diretas ortogonais mais
utilizadas so a grelha (ou malha) n-dimensional, o toride (ou k-ary n-cube) e o
hipercubo, exemplificados na Figura 2.1. Conforme ilustrado, um nodo composto
pelo processador e pelo roteador, alm de outros componentes, como memria e
entrada-e-sada (E/S).

Nodo = CPU +
roteador

(a) (b) (c)

FIGURA 2.1 Redes diretas: (a) grelha 2-D; (b) toride 2-D; (c) hipercubo 3-D.
34

2.2.2 Redes indiretas


Nas redes indiretas, os roteadores no so acoplados a processadores, formando
um elemento nico, como nas redes diretas. Os nodos (neste caso, processadores,
mdulos de memria ou computadores completos) possuem uma interface para uma
rede de roteadores. Cada roteador possui um conjunto de portas bidirecionais para
ligaes com outros roteadores e/ou com os nodos da mquina. Somente alguns
roteadores possuem conexes para os nodos e apenas estes ltimos podem servir de
fonte ou destinatrio de uma mensagem. A topologia da rede definida pela estrutura de
interconexo desses roteadores.

A topologia de uma rede indireta vista como um grafo de roteadores e canais,


no sendo necessrio explicitar a presena dos nodos da mquina. Duas topologias
clssicas de redes indiretas se destacam: o crossbar e as redes multiestgio. Para
conexo indireta de N nodos, o crossbar a topologia ideal, pois consiste de um nico
roteador com uma chave N N. Embora seja mais econmico que uma rede direta
completamente conectada (a qual necessitaria de N roteadores, cada um com uma chave
crossbar N N), o crossbar possui uma complexidade da ordem de N2, o que torna o seu
custo proibitivo para redes grandes.

Existem diversas topologias alternativas de redes indiretas. Nessas topologias,


uma mensagem tem que atravessar alguns roteadores para chegar ao nodo destinatrio.
Em redes regulares, esses roteadores so usualmente idnticos e so organizados como
um conjunto de estgios. Os estgios de entrada e de sada possuem ligaes para os
nodos e para os estgios internos da rede. Esses, por sua vez, so ligados aos seus
estgios vizinhos atravs de padres de conexo regulares. Essas redes so chamadas de
redes multiestgio e podem ser caracterizadas, tambm, pelo nmero de estgios e pela
forma como eles so arranjados. A Figura 2.2 mostra uma rede crossbar constituda por
um roteador 44 (quatro portas de entrada e quatro portas de sada) e uma rede
multiestgio 88 bidirecional do tipo borboleta (butterfly).

elemento de
chaveamento

(a) (b)

FIGURA 2.2 Redes indiretas: (a) crossbar 44; (b) multiestgio 88 bidirecional.
35

2.3 Starvation, Livelock e Deadlock

Uma rede de interconexo tem a funo principal de oferecer o suporte fsico


necessrio comunicao entre os processos alocados aos nodos de processamento de
um computador paralelo. A rede transporta pacotes atravs dos seus canais fsicos e dos
buffers dos roteadores. Uma comunicao realizada com sucesso quando a informao
enviada devidamente recebida pelo destinatrio. Entretanto, existem trs situaes que
podem impedir que um pacote chegue ao seu destinatrio: starvation, livelock e
deadlock, as quais so descritas a seguir.

2.3.1 Starvation
Muitas vezes, em um roteador, podem existir dois ou mais buffers de entrada
com pacotes destinados a uma mesma sada. Quando isso acontece, uma poltica de
arbitragem deve ser utilizada para selecionar qual dos buffers de entrada deve ser
conectado sada. Em geral, a arbitragem pode ser realizada atravs de critrios
baseados em prioridades estticas ou dinmicas. Dependendo do esquema de arbitragem
adotado, um pacote em um buffer de entrada, ao competir com outros pacotes por uma
mesma sada, pode ficar bloqueado permanentemente se o recurso requisitado for
sempre concedido a outros pacotes. Essa situao conhecida pelo nome starvation e
pode ser evitada pelo uso de um mecanismo de arbitragem adequado. Se alguns tipos de
pacotes prioritrios em relao a outros ocuparem toda a banda, a soluo ser reservar
uma parte dessa banda para os pacotes de menor prioridade.

2.3.2 Livelock
Uma outra situao, conhecida pelo nome de livelock, ocorre quando um pacote
mantm-se trafegando permanentemente pela rede porque os canais necessrios para ele
chegar ao nodo destinatrio nunca se encontram disponveis. Esse tipo de problema
ocorre, tipicamente, em algoritmos de roteamento tolerantes a falhas, os quais utilizam
caminhos no-mnimos para rotear os pacotes. A forma mais simples de se evitar o
livelock justamente permitir apenas o uso de caminhos mnimos, ou seja, os caminhos
mais curtos at o destinatrio. Entretanto, quando o uso de caminhos no-mnimos
vital para oferecer tolerncia a falhas, pode-se prevenir o livelock atravs da limitao
do nmero de operaes de desvio atravs de caminhos no-mnimos.

2.3.3 Deadlock
O terceiro problema que pode impedir um pacote de atingir o seu destinatrio, e
o mais difcil de ser resolvido, o deadlock. Esse problema ocorre quando existe uma
dependncia cclica de recursos na rede, o que melhor entendido pelo exemplo
ilustrado na Figura 2.3.
36

A D

4 2
Cda

1
X
1 3 Cab Ccd

B C
Cbc

3
2 4

(a) (b) (c)

FIGURA 2.3 Deadlock: (a) roteador; (b) pacotes em deadlock;


(c) dependncia cclica.

Na Figura 2.3.a mostrado um modelo de roteador com quatro portas


bidirecionais (1, 2, 3 e 4) conectadas a um ncleo crossbar (X). A Figura 2.3.b ilustra
uma parte de uma rede de interconexo com quatro roteadores (A, B, C e D) interligados
atravs dos canais Cab, Cbc, Ccd e Cda. A dependncia cclica ocorre porque existem
quatro pacotes no segmento de rede ilustrado e cada um dos pacotes mantm um canal
de enlace, mas requer outro canal j alocado para um segundo pacote. Por exemplo, o
canal Cab (e o buffer a ele associado) foi reservado a um determinado pacote, o qual
necessita do canal Cbc para avanar. Isso indicado pelo nmero da porta de sada
desejada (no caso, porta 3) no cabealho do pacote bloqueado no buffer de entrada da
porta 4 do roteador B. A Figura 2.3.c ilustra com maior clareza essa dependncia cclica.

Existem trs estratgias diferentes utilizadas para lidar com o deadlock:


(i) prevenir, (ii) evitar e (iii) recuperar. Na preveno, os recursos (canais e buffers) so
garantidos a um pacote de modo que uma requisio nunca leve a rede ao deadlock. Isso
pode ser obtido reservando-se todos os recursos necessrios antes do incio da
transmisso do pacote e tornando estruturalmente impossvel o deadlock. Na estratgia
de evitar o deadlock, os recursos so requisitados na medida em que um pacote avana
pela rede. Um recurso qualquer garantido a um pacote apenas se sua alocao no
levar a um estado global inseguro. Uma forma de evitar o deadlock limitar as voltas
que o algoritmo de roteamento pode realizar de modo a impedir a ocorrncia de ciclos
como o mostrado na Figura 2.3.c. J na recuperao de deadlock, qualquer recurso
garantido a um pacote sem nenhuma verificao. Essa situao pode levar ao deadlock
e, por isso, so necessrios mecanismos para detect-lo e para realocar alguns recursos
entre os pacotes de modo a levantar o deadlock. Nesse caso, os pacotes que perdem
recursos j alocados so, ento, descartados ou re-roteados. A preveno de deadlock
uma estratgia altamente conservadora e conduz a uma baixa utilizao dos recursos da
rede. A estratgia de evitar o deadlock menos conservadora, pois os recursos so
alocados na medida em que os pacotes avanam, melhorando a utilizao da rede. J a
deteco de deadlock uma estratgia otimista, a qual deve ser utilizada apenas quando
os deadlocks so raros e suas conseqncias podem ser toleradas [DUA 97].
37

2.4 Roteamento

O roteamento o mtodo usado por um pacote (ou mensagem) para escolher um


caminho atravs dos canais da rede. O desempenho da comunicao na rede de
interconexo depende fortemente do algoritmo utilizado. Em geral, o algoritmo de
roteamento visa atender a alguns objetivos especficos, os quais tm conseqncia direta
em algumas propriedades da rede de interconexo, como:

a) Conectividade capacidade de rotear pacotes de qualquer nodo fonte para qualquer


nodo destinatrio.

b) Liberdade de deadlock e livelock capacidade de garantir que nenhum pacote ficar


bloqueado ou circulando pela rede sem atingir o seu destinatrio.

c) Adaptatividade capacidade de rotear pacotes atravs de caminhos alternativos


quando ocorrer congestionamento ou falha em algum componente do caminho em
uso.

d) Tolerncia a falhas capacidade de rotear pacotes na presena de falhas em


componentes. A tolerncia a falhas pode ser obtida sem adaptatividade, roteando-se
um pacote em duas ou mais fases.

Na literatura, existe um grande nmero de algoritmos de roteamento que visam


atender a requisitos distintos. Esses algoritmos podem ser agrupados em diferentes
classes segundo critrios especficos. Algumas taxionomias para os algoritmos de
roteamento tm sido propostas [DUA 97, ASH 98] e, de uma forma geral, esses
algoritmos podem ser classificados quanto ao momento da realizao do roteamento, ao
nmero de destinatrios de um mesmo pacote, ao local onde as decises de roteamento
so tomadas, implementao e adaptatividade.

Quanto ao momento da realizao do roteamento, o algoritmo pode ser


classificado como dinmico, se ele realizado no tempo de execuo da aplicao, ou
esttico, se o algoritmo de roteamento executado no tempo de compilao da
aplicao.

Quanto ao nmero de destinatrios de um mesmo pacote, o algoritmo pode ser


classificado como unicast, se cada pacote possuir um nico destinatrio, ou multicast,
se um pacote pode ser encaminhado para mltiplos destinatrios.

Considerando o local onde as decises de roteamento so tomadas, o algoritmo


de roteamento pode ser centralizado, fonte ou distribudo. No primeiro tipo, os
caminhos so estabelecidos por um controlador central na rede. No roteamento fonte, o
nodo emissor (ou fonte) define o caminho a ser seguido pelo pacote antes de injet-lo na
rede. J no roteamento distribudo, o caminho definido pelos roteadores enquanto o
pacote atravessa a rede.

No que tange a implementao, o algoritmo pode ser baseado em tabela, se o


roteamento feito a partir de uma consulta a uma tabela em memria, ou baseado em
mquina de estado, se o roteamento realizado a partir da execuo de um algoritmo
implementado em software ou em hardware.
38

Quanto adaptatividade, o algoritmo de roteamento pode ser classificado como


determinstico ou adaptativo. Em um algoritmo determinstico, o roteamento fornece
sempre o mesmo caminho entre um determinado par fonte-destinatrio. J em uma
abordagem adaptativa, o roteamento utiliza alguma informao a respeito do trfego da
rede e/ou do estado dos canais para evitar regies congestionadas ou com falhas.

Os algoritmos adaptativos podem ainda ser classificados quanto


progressividade, minimalidade e ao nmero de caminhos. No primeiro critrio de
classificao, o roteamento considerado progressivo quando os cabealhos dos pacotes
sempre avanam pela rede, reservando um novo canal a cada passo de roteamento, ou
regressivo (backtracking) quando o cabealho de um pacote puder retornar pela rede,
liberando canais previamente reservados. No segundo critrio (minimalidade), o
roteamento adaptativo classificado como mnimo (ou profitable), se o algoritmo pode
selecionar apenas canais de sada que aproximem cada vez mais o pacote do seu
destinatrio, ou no-mnimo (ou misrouting), se ele pode selecionar canais que levem o
pacote a se afastar do seu destinatrio. Por fim, no que tange o nmero de caminhos, um
algoritmo adaptativo pode ser classificado como completo (ou total), se o algoritmo de
roteamento puder utilizar todos os caminhos disponveis, ou parcial, se apenas um
subconjunto desses caminhos puder ser considerado.

Na Figura 2.4, apresentado um resumo das classificaes dos algoritmos de


roteamento descritas nos pargrafos anteriores.

Critrio Dinmico Critrio Unicast


Momento da realizao do Nmero de destinatrios
roteamento Esttico Multicast

Critrio Centralizado Critrio Tabela


Local onde as decises de Implementao baseada em
roteamento so tomadas Fonte Mquina de estado

Distribudo

Critrio Determinstico
Adaptatividade Progressivo
Critrio
Adaptativo
Progressividade
Regressivo

Mnimo
Critrio
Minimalidade
No mnimo

Completo
Critrio
Nmero de caminhos
Parcial

FIGURA 2.4 Classificaes para os algoritmos de roteamento.


39

2.5 Chaveamento

Em uma rede de interconexo, os dados so transferidos entre os nodos da rede


atravs dos canais fsicos que interligam esses nodos. O chaveamento define a forma
pela qual esses dados so transferidos de um canal de entrada de um nodo para um dos
seus canais de sada. Os dois tipos principais de tcnicas de chaveamento so baseados
ou no estabelecimento de um caminho completo entre o fonte e o destinatrio da
mensagem (circuito) ou na diviso das mensagens em pacotes os quais reservam seus
caminhos dinamicamente na medida em que avanam em direo ao destinatrio. A
seguir, so descritas as principais tcnicas de chaveamento.

2.5.1 Chaveamento por circuito


No chaveamento por circuito, um caminho fsico fonte-destinatrio completo
estabelecido para a transferncia de uma mensagem, sendo mantido at o trmino da
comunicao, a qual realizada em duas etapas. Na primeira, o nodo fonte injeta, na
rede, um cabealho de roteamento com o endereo do destinatrio e com algumas
informaes de controle. Esse cabealho avana pela rede, reservando canais fsicos
para o estabelecimento do circuito. Se um canal desejado j estiver sendo ocupado por
uma outra mensagem, o cabealho fica bloqueado at que esse canal lhe seja alocado.
Quando o cabealho atinge o nodo destinatrio, uma informao de reconhecimento
enviada ao nodo fonte atravs do caminho de retorno do circuito estabelecido. A partir
desse momento, ocorre a segunda etapa da comunicao, a qual consiste na
transferncia dos dados da mensagem. O circuito pode ser desfeito durante o avano do
terminador da mensagem em direo ao destinatrio. A cada roteador, a passagem
desse terminador sinaliza que o recurso previamente alocado pode ser liberado.

O chaveamento por circuito tem sua origem em redes telefnicas e sua vantagem
est no fato de que, uma vez estabelecido o caminho entre os nodos fonte e destinatrio,
a mensagem transferida sem conteno, como se utilizasse um fio. O uso de buffers
nos roteadores mnimo, pois necessria apenas uma posio para manter o cabealho
enquanto um canal desejado encontrar-se indisponvel. A maior desvantagem desta
tcnica que os canais j alocados a um cabealho bloqueado em algum ponto da rede
no podem ser utilizados por outro circuito, o que reduz a utilizao da rede e aumenta
o tempo para o estabelecimento dos caminhos. O uso do chaveamento por circuito se
justifica apenas nos casos nos quais as mensagens so longas e pouco freqentes.
Alguns exemplos de computadores paralelos que utilizaram o chaveamento por circuito
incluem o Intel iPSC/2 [NUG 88], o Intel iPSC/860 e o BBN GP 1000.

2.5.2 Chaveamento por pacote armazena e repassa (store-and-forward)


Quando as mensagens trocadas entre nodos da rede so curtas e freqentes, o
uso do chaveamento por circuito injustificvel, pois aumenta a conteno na rede e o
tempo para o estabelecimento do circuito torna-se muito maior que o tempo envolvido
na transferncia dos dados. Alternativamente, pode-se dividir as mensagens em pacotes
de comprimento fixo, cada um incluindo um cabealho com as informaes necessrias
para o seu roteamento pela rede. Os pacotes so enviados um a um e cada pacote
reserva apenas os recursos necessrios para avanar de nodo em nodo. Em cada canal de
40

entrada do roteador, deve ser includo um buffer (tipicamente uma fila) com capacidade
para armazenar um pacote inteiro. Quando um roteador recebe um pacote, ele
armazenado no buffer do canal de entrada pelo qual chegou ao roteador. Aps, um
circuito de roteamento identifica o destinatrio do pacote e requisita um canal de sada.
Essa requisio escalonada por um rbitro que determina quando o cada canal de
entrada ser conectado ao canal de sada requisitado. Quando a conexo realizada, os
pacotes armazenados nos buffers de entrada so encaminhados para os roteadores
adjacentes ou para o nodo de processamento local, caso este seja o destinatrio. Por esse
motivo, esta tcnica denominada armazena-e-repassa (do ingls, store-and-forward
ou SAF).

Diferentemente do chaveamento por circuito, no qual os recursos so reservados


mesmo quando o caminho no est completamente estabelecido, no chaveamento SAF,
cada pacote aloca apenas os recursos necessrios para avanar de nodo para nodo na
rede. Porm, isso implica em uma sobrecarga adicional comunicao, pois cada um
dos pacotes deve transportar um cabealho de endereamento e os roteadores precisam
gastar um tempo para efetuar o roteamento individual de cada pacote. Desde que um
pacote s pode ser repassado aps ter sido completamente recebido, a latncia de
comunicao aumenta com o tamanho do pacote. Por fim, deve haver espao em buffer
suficiente em todos os roteadores para manter esses pacotes, o que aumenta o custo da
rede.

O chaveamento SAF foi inicialmente utilizado em redes de comunicao de


computadores. Os primeiros computadores paralelos que utilizaram este tipo de
chaveamento foram: o Intel iPSC/1, o MIT Tagged Dataflow Machine [ARV 90] e o
Manchester Dynamic Dataflow Machine [GUR 85, GUR 87].

2.5.3 Chaveamento por pacote com transpasse virtual (virtual cut-through)


O chaveamento por pacote com transpasse virtual (do ingls, virtual cut-through
ou VCT) foi proposto por Kermani e Kleinrock [KER 79] como uma alternativa ao
chaveamento SAF. Ele visa reduzir a latncia na comunicao quando um pacote chega
a um roteador e o canal desejado j encontra-se disponvel. Na tcnica SAF, quando isso
ocorre, o pacote deve ser armazenado inteiramente para ento ser retransmitido pelo
canal de sada desejado, mesmo que ele esteja ocioso. No chaveamento VCT, quando o
cabealho do pacote contendo as informaes de roteamento chega a um roteador e o
canal de sada desejado encontra-se disponvel, o restante do pacote (carga til e
terminador) desvia o buffer, reduzindo a latncia da comunicao. Um pacote s
armazenado em buffer se o canal desejado estiver alocado a outro pacote. Para isso, o
roteador deve ter espao em buffer suficiente para armazenar completamente o pacote
bloqueado. No pior caso, quando a rede est muito carregada, o VCT se comporta como
o chaveamento SAF. Um exemplo de aplicao do chaveamento VCT o roteador
Chaos [KON 91].

2.5.4 Chaveamento por pacote wormhole


O chaveamento por pacote wormhole (ou, simplesmente, chaveamento
wormhole), introduzido por Dally e Seitz [DAL 86], uma variao do chaveamento
VCT e tem como objetivo principal reduzir a quantidade de buffer necessria para
manter pacotes bloqueados na rede. Um pacote dividido em flits que avanam pela
41

rede em um modo pipeline. Um flit2 a menor unidade de dados sobre a qual


realizado o controle de fluxo e pode ser pequeno e ter tantos bits quanto um phit
(largura do canal fsico de dados), ou ser to grande quanto um pacote. Em geral, um flit
tem o tamanho de um a quatro phits, para conter, no mnimo, a informao necessria
ao roteamento do pacote, ou seja, o cabealho.

Nas redes baseadas nesta tcnica, os buffers dos roteadores tm capacidade para
armazenar poucos flits, de modo que os flits de um pacote bloqueado so mantidos em
diferentes roteadores na rede se o tamanho do pacote for maior que o espao livre no
buffer. Como a informao de roteamento includa no flit de cabealho, os flits de
dado devem seguir o flit do cabealho atravs da rede. Como resultado disso, no
possvel realizar a multiplexao de flits de diferentes pacotes em mesmo canal lgico.
Um pacote deve atravessar completamente um canal antes de liber-lo para outro
pacote. Essa uma das principais desvantagens desta tcnica de chaveamento, pois a
probabilidade de ocorrer o deadlock maior. Entretanto, essa restrio pode ser
contornada atravs do uso de canais virtuais, onde mltiplos canais lgicos
compartilham um nico canal fsico, como ser descrito na seo sobre controle de
fluxo.

A grande vantagem do chaveamento wormhole que os requisitos de buffer so


menores que os das abordagens SAF e VCT, possibilitando a construo de roteadores
pequenos e rpidos. Em geral, o chaveamento wormhole o mais vantajoso com relao
utilizao da rede e ao custo dos roteadores, sendo o mais usado atualmente.
Exemplos de computadores paralelos com redes de interconexo baseadas no
chaveamento wormhole incluem o Cray T3D [KES 93], o Cray T3E [SGI 99], o
IBM SP [STU 94], o Meiko CS-2 [BEE 94], o SGI Origin 2000 [LAU 97] e o
Intel/ASCI Option Red [MAT 98].

2.5.5 Modelos de latncia


Em [DUA 97], so apresentados modelos de latncia para as diferentes tcnicas
de chaveamento. Nesses modelos, so desconsiderados os termos S e C utilizados em
(2.1), os quais correspondem, respectivamente, sobrecarga de comunicao dos nodos
fonte e destinatrio e ao atraso devido conteno na rede (conforme definies
apresentadas previamente na Tabela 2.1). Em outras palavras, os modelos assumem que
a rede trabalha sem carga e leva-se em conta apenas a ocupao do canal e os atrasos de
roteamento e chaveamento, ou seja, os termos O e ARC em (2.1).

Na Tabela 2.3, so apresentados os parmetros utilizados nos modelos de


latncia. assumido que a mensagem (ou o pacote) possui um cabealho com tamanho
igual a W bits (largura fsica do canal) e uma carga til de tamanho igual a L bits (ou
L/W palavras de 1 phit). Os canais dos enlaces da rede operam a uma freqncia de
B Hz, com um tempo de propagao igual a tw. Em cada roteador, so gastos tr segundos
para rotear o cabealho mais ts segundos para propagao de um phit (palavra de
W bits). Os nodos fonte e destinatrio da mensagem so separados por D enlaces, sendo
que o nmero de roteadores percorridos pela mensagem igual a D+1.

2
FLIT = FLow control unIT (unidade de controle de fluxo)
42

TABELA 2.3 Parmetros utilizados nos modelos de latncia.


Parmetro Unidade Definio
L Bits Tamanho da carga til da mensagem
W Bits Tamanho do phit
B Hz Freqncia de transmisso
Tw segundos Tempo de propagao nos canais dos enlaces ( = 1/B)
Ts segundos Tempo de propagao nos canais internos do roteador
Tr segundos Tempo para o roteador fazer o roteamento
D Nmero de enlaces entre os nodos fonte e destinatrio

Na Tabela 2.4, so resumidos os modelos de latncia apresentados em


[DUA 97]. A tabela inclui tambm o requisito de memorizao mnima de cada tcnica.

TABELA 2.4 Modelos de latncia.


Tcnica de Latncia sem conteno Memorizao
chaveamento (desconsiderando a sobrecarga) mnima
Circuito D[ tr + 2.(ts + tw) ] + tw (L/W) 1 flit
Store-and-forward D{ tr + (ts + tw) [(L + W)/W] } 1 pacote
Virtual cut-through D ( tr + ts + tw) + max{ts, tw} [L/W] 1 pacote
Wormhole D (tr + ts + tw) + max{ts, tw} [L/W] 1 flit

2.6 Controle de Fluxo

Uma rede de interconexo pode ter muitos canais e buffers. Os pacotes3 que
trafegam pela rede competem por esses recursos para avanarem em direo aos seus
destinatrios. Quando um pacote no pode prosseguir pois algum recurso que ele
necessita j est sendo utilizado por um outro pacote, dito que ocorreu uma coliso de
recurso (ou, simplesmente, uma coliso). Nesse caso, alguma poltica deve ser usada
para decidir se o pacote deve ser descartado, bloqueado no lugar onde est, recebido e
armazenado temporariamente ou, ento, desviado para um outro caminho. Essa poltica
denominada controle de fluxo e lida com a alocao de canais e buffers para um
pacote enquanto o mesmo trafega pela rede [NI 93].

Em geral, todas as redes de interconexo realizam controle de fluxo em nvel de


enlace. Em cada terminal de um enlace, o nodo ou roteador a ele conectado pode
possuir um buffer para o armazenamento do dado em transferncia. Se, por algum
motivo, o buffer de entrada do receptor estiver cheio, o transmissor deve manter o dado
a ser enviado em um buffer local at que o receptor esteja pronto para realizar a
comunicao. Um mecanismo de controle deve ento ser usado para bloquear a sada de

3
Como a maioria das redes de interconexo atuais utiliza variaes do chaveamento por pacotes
(principalmente o wormhole), a partir deste ponto, neste captulo, ser dada a preferncia ao uso do termo
pacote ao invs de mensagem.
43

dados do transmissor e o receptor deve enviar uma informao de controle ao


transmissor notificando-lhe quando estiver pronto para receber novos dados.

A forma mais simples de controle de fluxo em nvel de enlace aquela na qual o


receptor possui um buffer FIFO de entrada e uma linha de retorno ao transmissor para
informar se h espao disponvel nesse buffer. Essa informao pode ser interpretada
pelo transmissor como sendo um crdito e ele s pode enviar um dado se tiver crdito
disponvel. Uma abordagem semelhante baseia-se no protocolo de handshake, no qual o
emissor informa a inteno de enviar um dado ao receptor atravs de uma linha de
validao e o receptor confirma a disponibilidade de espao em buffer para receber esse
dado atravs de uma linha de reconhecimento (acknowledgement). Outras abordagens
de controle de fluxo em nvel de enlace incluem o uso de slack buffers e de canais-
virtuais, discutidos a seguir.

2.6.1 Controle de fluxo baseado em slack buffer


O controle de fluxo baseado em slack buffer [SEI 93] pode ser visto como o
controle de nvel em um reservatrio com marcas de nvel baixo e de nvel alto, no qual
o contedo do mesmo deve ser mantido entre esses limites, na chamada regio de
histerese. Sempre que o contedo do buffer ultrapassar um desses limites, um pacote de
controle (geralmente um caracter Stop ou Go) deve ser enviado pelo receptor ao
transmissor de modo a regular o fluxo de dados, seja pela suspenso (caracter Stop) ou
pelo reestabelecimento (caracter Go) do envio de dados pelo transmissor.

O slack buffer serve para ocultar a latncia associada transmisso dos pacotes
de controle de fluxo. A regio de histerese entre as marcas de nvel alto e de nvel baixo
dimensionada de modo a evitar o envio excessivo de caracteres de controle, o que
consumiria uma largura de banda demasiada no canal oposto ao de entrada de dados.

Este tipo de controle de fluxo particularmente adequado para redes que usam
chaveamento wormhole e um exemplo de rede que utiliza essa estratgia a Myrinet
[BOD 95]. Nessa rede, o slack buffer possui uma regio de histerese de 16 bytes e as
demais regies possuem 32 bytes cada uma.

2.6.2 Controle de fluxo baseado em canais virtuais


Em redes de interconexo com chaveamento wormhole, cada roteador possui um
conjunto de buffers e uma chave. Para cada canal fsico, h um buffer (ou fila) de
entrada que armazena os flits recebidos para que depois os mesmos sejam direcionados
a uma ou outra porta de sada em funo do roteamento realizado. Se o primeiro pacote
desse buffer for bloqueado por conta de uma coliso e o pacote for maior do que o
espao livre disponvel no buffer, o canal fsico tambm restar bloqueado e nenhum
outro pacote poder utilizar esse canal. Esse problema conhecido como bloqueio de
cabea de linha (HOL Head-of-Line blocking).

Se o buffer de entrada for organizado em filas de profundidade menor,


denominadas canais-virtuais, obtm-se uma coleo de filas que podem ser alocadas
independentemente umas das outras. Com isso, se um canal-virtual estiver bloqueado
por algum motivo, o canal fsico poder ainda ser usado por um outro canal-virtual,
resolvendo o problema do bloqueio HOL e aumentando a utilizao do canal fsico.
44

Essa organizao pode ser chamada de multi-via, pois existem mltiplas vias virtuais
em uma mesma via fsica. Da mesma forma, a organizao anterior pode ser chamada
de mono-via. Os canais-virtuais foram originalmente introduzidos por Dally e Seitz
[DAL 87] para resolver o problema do deadlock em redes com chaveamento wormhole.

2.6.3 Controle de fluxo baseado em crditos


O controle de fluxo baseado em crditos um tipo de controle que produz uma
rede de comunicao que nunca descarta dados. Uma transmisso s realizada quando
o receptor tem espao suficiente em seu buffer para armazenar o pacote a ser recebido
[KOR 99]. Para isso, o seguinte protocolo utilizado: (i) o receptor envia ao transmissor
uma informao de crditos relativa ao espao disponvel para recepo de dados em
seu buffer; (ii) o transmissor, por sua vez, inicia uma transmisso apenas quando possuir
crdito suficiente; e (iii) o crdito do transmissor diminui com o envio de dados e
aumenta com o recebimento de informaes de controle apropriadas.

Esta tcnica de controle de fluxo pode ser associada a canais fsicos com uma
nica via ou com mltiplas vias. O controle de fluxo baseado em crditos com mltiplas
vias baseia-se no controle com canais virtuais. Essa estratgia utilizada na rede do
multiprocessador SGI Origin 2000 [GAL 97], na qual cada canal fsico possui quatro
canais-virtuais. Aps a inicializao do sistema, todos os receptores creditam seus pares
com base no tamanho dos buffers de recepo dos canais virtuais. A informao a
respeito do crdito disponvel enviada atravs do canal oposto ao canal de entrada de
um mesmo enlace bidirecional.

2.7 Memorizao

Todo roteador com chaveamento por pacote (seja do tipo SAF, VCT ou
wormhole) deve ser capaz de armazenar aqueles pacotes destinados a sadas que j
estejam sendo utilizadas por outros pacotes e, ento, realizar o controle de fluxo de
modo a evitar a perda de dados recebidos em cada canal de entrada. Isso exige a
implementao de algum esquema de memorizao para a manuteno dos pacotes
bloqueados dentro do roteador.

Um roteador ideal deveria dispor de uma capacidade de armazenamento infinita


e garantir que um pacote armazenado no seja bloqueado por outros pacotes quando a
sua sada for liberada. Entretanto, nos casos reais, a memria do roteador limitada e,
dependendo da estratgia utilizada, o bloqueio de um pacote por outro inevitvel. A
organizao dos buffers de memria (independentes ou compartilhados) e suas posies
(na entrada, na sada ou centralizados) afetam o desempenho do roteador. A seguir, so
apresentadas algumas das estratgias de memorizao possveis de serem utilizadas em
um roteador.
45

2.7.1 Memorizao centralizada compartilhada


Nessa abordagem, um buffer centralizado utilizado para armazenar os pacotes
bloqueados em todos os canais de entrada e o espao de endereamento
dinamicamente distribudo entre os pacotes bloqueados. Esse buffer denominado
CBDA (Centrally-Buffered, Dynamically-Allocated) e, no pior caso, deve oferecer uma
largura de banda igual soma das larguras de banda de todas os canais. Ou seja, em um
roteador NN, o buffer deve possuir 2N portas de modo a permitir N acessos
simultneos de leitura e N acessos simultneos de escrita. Por outro lado essa
abordagem oferece uma utilizao do espao de memria melhor do que aquelas
proporcionadas pelas abordagens nas quais esse espao previa e estaticamente alocado
aos canais de entrada. Um problema pode surgir no caso de uma sada estar em uso por
uma entrada e outra entrada com pacotes destinados a essa sada continuar a receber
dados, levando ao enchimento do buffer e afetando as outras comunicaes. Esse
problema pode ser evitado pela limitao do espao alocvel a cada canal. Um exemplo
de roteador que utiliza um esquema de memorizao centralizada compartilhada o
roteador Vulcan do computador IBM SP-2 [IBM 99a, IBM 99b].

2.7.2 Memorizao na entrada


Nesta abordagem, o espao de memria distribudo sob a forma de parties
entre os canais de entrada do roteador. Essas parties so implementadas atravs de
buffers independentes, cada um com portas de entrada prprias. Existem vrias
alternativas possveis de implementao, entre as quais podem ser destacadas as
estratgias buffer FIFO, buffers SAFC, buffers SAMQ e buffers DAMQ, as quais so
comparadas em [TAM 92] e descritas brevemente a seguir.

Buffers FIFO

Essa a alternativa mais simples e de menor custo. Cada buffer FIFO (First-In,
First-Out) possui um espao de memria fixo onde os dados so lidos na mesma ordem
em que so escritos. Porm, o seu grande inconveniente o problema do bloqueio HOL,
no qual um pacote bloqueado na sada do buffer impede o avano de outro pacote que
esteja atrs dele e para o qual a sada desejada esteja disponvel, o que resulta em uma
subutilizao das portas de sada. Na Figura 2.5, mostrado um roteador com quatro
buffers FIFO nos canais de entrada e um crossbar 44.

FIGURA 2.5 Roteador com quatro buffers FIFO.


46

Buffers SAFC

Uma alternativa para contornar o problema do bloqueio HOL, que ocorre nos
buffers FIFO, consiste em dividir cada buffer de entrada em N parties com tamanho
igual a 1/N do tamanho do buffer original, conforme mostrado na Figura 2.6.a. Cada
uma dessas parties deve ser atribuda estaticamente a um canal de sada e, por isso,
esta estratgia denominada SAFC (Statically Allocated, Fully Connected). Isso requer
o uso de um crossbar N 2N ou, ento, de N crossbars N1 ao invs de um nico
crossbar NN. Esta estratgia apresenta uma srie de inconvenientes. Primeiramente, h
um custo adicional referente ao controle do crossbar e ao controle dos N buffers por
porta de entrada. Em segundo lugar, a taxa de utilizao dos buffers limitada a 1/N do
espao de armazenamento total, ou seja, ela pior que a dos buffers FIFO. Por fim, o
controle de fluxo mais complexo, pois deve ser realizado para cada buffer de entrada,
e exige um pr-roteamento dos pacotes recebidos para que os mesmos sejam
direcionados partio correspondente sada a ser requisitada [TAM 92].

Buffers SAMQ

A fim de simplificar o gerenciamento do crossbar, as sadas dos buffers de


entrada atribudos a um mesmo canal de sada podem ser multiplexadas, resultando em
uma estratgia chamada SAMQ (Statically Allocated Multi-Queue), ilustrada na Figura
2.6.b. Essa estratgia elimina alguns dos inconvenientes da SAFC, pois reduz o custo do
crossbar. Entretanto, ela ainda mantm os outros dois problemas relacionados
utilizao dos buffers e ao controle de fluxo.

(a) (b) (c)

FIGURA 2.6 Roteador com quatro buffers: (a) SAFC; (b) SAMQ; (c) DAMQ.

Buffers DAMQ

Com o objetivo de remediar os problemas das estratgias anteriores, Tamir


[TAM 92] props uma arquitetura de buffer denominada DAMQ (Dynamically-
Allocated, Multi-Queue), a qual representada na Figura 2.6.c. Nessa estratgia, o
espao de memorizao associado a um canal de entrada particionado dinamicamente
entre os canais de sada conforme a demanda dos pacotes recebidos. Dessa forma, evita-
se o problema do bloqueio HOL dos buffers FIFO, aumenta-se a utilizao do espao de
47

memria disponvel e o controle de fluxo mais simples que nas estratgias SAFC e
SAMQ, no requerendo pr-roteamento. Entretando, o gerenciamento do buffer DAMQ,
baseado em listas encadeadas, torna a sua implementao fsica mais complexa.

2.7.3 Memorizao na sada


Esta estratgia consiste em particionar o espao de memorizao entre as sadas,
sendo que as parties podem ser implementadas como buffers FIFO. O problema,
nesse caso, que cada buffer deve ser capaz de suportar a demanda simultnea das N
entradas. O buffer pode ser implementado com N portas de escrita ou com uma porta de
escrita operando a uma velocidade N vezes maior que a das entradas. Alm disso, esta
estratgia requer um controle de fluxo interno entre portas de entrada e de sada do
roteador.

2.8 Arbitragem

Enquanto o roteamento determina qual canal de sada dever ser usado por um
pacote que chega a um canal de entrada, a arbitragem define qual canal de entrada
(ou buffer de entrada) poder utilizar um determinado canal de sada (ou buffer de
sada). Em outras palavras, o roteamento um mecanismo de seleo de sada e a
arbitragem um mecanismo de seleo de entrada.

A arbitragem fundamental para a resoluo de conflitos decorrentes da


existncia de mltiplos pacotes competindo por um mesmo canal de sada.
O mecanismo de arbitragem deve ser capaz de resolver esses conflitos, selecionando um
dos pacotes com base em algum critrio e sem levar qualquer pacote a sofrer starvation,
ou seja, ficar indefinidamente esperando por uma oportunidade para avanar em direo
ao nodo destinatrio.

O rbitro de um roteador pode ser implementado de forma centralizada ou


distribuda. Na abordagem centralizada, mostrada na Figura 2.7.a, os mecanismos de
roteamento e de arbitragem so implementados em um nico mdulo. Esse mdulo
recebe os cabealhos dos pacotes, executa o roteamento e determina o canal de sada a
ser utilizado por cada pacote. A partir disso, ele faz a arbitragem, selecionando os
pacotes a serem conectados em cada sada, configura o crossbar e habilita os buffers
selecionados para os mesmos avanarem seus pacotes. Essa abordagem utilizada em
rbitros que procuram maximizar a utilizao do crossbar, realizando uma arbitragem
global, a qual considera todos os pacotes que estejam prontos para serem transmitidos
nos buffers dos canais de entrada, bem como o estado presente dos canais de sada.
Entretanto, essa centralizao impe maiores restries quanto capacidade de
roteamento de pacotes no tempo.
48

rot

rot

rot

rot

a a a a
roteamento r r r r
arbitragem b b b b

(a) (b)

FIGURA 2.7 Abordagens para implementao de rbitros: (a) centralizada;


(b) distribuda.

Na abordagem distribuda, ilustrada na Figura 2.7.b, o roteamento e a arbitragem


so realizados de forma independente para cada porta bidirecional do roteador. Cada
uma das portas possui um mdulo de roteamento associado ao seu canal de entrada e
um mdulo de arbitragem no seu canal de sada. Essa abordagem aumenta a capacidade
de roteamento de pacotes mas apresenta limitaes quanto sua aplicao em redes
baseadas em algoritmos de roteamento adaptativo. Isso ocorre pois o mecanismo de
roteamento pode determinar mltiplas sadas candidatas e ento enviar requisies a
todos os rbitros selecionados [CUL 97]. Se pelo menos dois dos rbitros requisitados
selecionarem a mesma entrada, uma sada ser escolhida e as sadas preteridas ficaro
ociosas, quando poderiam ter selecionado outras entradas, aumentando a taxa de
utilizao do crossbar. Para esse problema ser resolvido preciso que o rbitro tenha
uma viso global, o que s possvel em uma abordagem centralizada. Portanto, a
implementao distribuda parece ser mais adequada em redes baseadas em roteamento
determinstico.

O mecanismo de arbitragem pode ser baseado em diferentes critrios:


prioridades estticas, prioridades rotativas (round-robin), escalonamentos por idade (ou
deadline), FCFS (First-Come-First-Served), LRS (Least Recently Served), entre outros.
O esquema de prioridades estticas o mais simples de ser implementado, pois consiste
de um circuito codificador de prioridade esttico. Nesse esquema, cada requisio
considerada pelo rbitro tem um nvel de prioridade fixo, de modo que, dependendo do
trfego da rede, uma requisio pode ser sempre preterida em favor das outras de maior
prioridade, vindo a sofrer starvation. Para solucionar esse problema, um esquema de
prioridades dinmicas deve ser utilizado. Contudo, tambm desejvel que ele oferea
uma distribuio equilibrada do recurso arbitrado entre seus requisitantes. Por exemplo,
em um rbitro com prioridades rotativas, um requisitante selecionado em um ciclo de
arbitragem recebe o menor nvel de prioridade para o ciclo de arbitragem seguinte. Se
existirem N requisitantes para o mesmo circuito, todos os requisitantes tero
oportunidades iguais para utilizar o recurso requisitado. A implementao de um rbitro
com prioridades rotativas baseada no uso de um codificador de prioridade
programvel. Em [GUT 99], Gupta e McKeown descrevem diferentes alternativas para
implementao desse tipo de codificador de prioridade programvel.
49

2.9 Exemplos

Nesta seo, so exemplificadas algumas redes de interconexo para


multiprocessadores. Elas possuem alguns pontos em comum, os quais demonstram
quais solues de projeto so mais apropriadas para a obteno de uma alta largura de
banda e de uma baixa latncia de comunicao. O objetivo apenas de ilustrar as
definies e caractersticas apresentadas neste captulo. Maiores detalhes sobre as redes
aqui apresentadas podem ser encontrados nas referncias indicadas na Tabela 2.5.

TABELA 2.5 Exemplos de redes de interconexo para multiprocessadores.


Caracterstica Intel/ASCI SGI Origin IBM SP Cray T3E
Topologia Grelha 3-D Hipercubo Multiestgio Toride 3-D
Roteamento Fonte e Distribudo e Fonte e Fonte e
determinstico determinstico determinstico determinstico;
Adaptativo
Chaveamento Wormhole Wormhole Wormhole* Wormhole
Controle Crditos e Crditos e Crditos Crditos e
de fluxo canais virtuais canais virtuais canais virtuais
Memorizao Entrada Entrada Entrada e Entrada
Centralizada
Arbitragem (No disponvel) Deadline LRS Round-Robin
Referncias [MAS 98] [LAU 97] [IBM 99a] [SGI 99]
[CAJ 96] [GAL 97] [IBM 99b]
* BFW = Buffered Wormhole Switching

Analisando-se as redes mostradas na tabela, observa-se que as topologias com


estruturas regulares so preferidas porque facilitam o roteamento. Em uma topologia
n-dimensional, como a grelha, por exemplo, o roteamento fonte implementado com
bastante facilidade a partir de deslocamentos relativos nos eixos da rede. A maioria
dessas redes utiliza topologias diretas, com exceo da rede do IBM SP, a qual foi
baseada em uma rede indireta do tipo multiestgio.

Quanto ao roteamento, todas as redes utilizam roteamento dinmico, sendo que a


abordagem mais utilizada a baseada no roteamento fonte e determinstico, o qual
oferece o menor custo de implementao. Nas redes com topologia direta, o
ordenamento por dimenso utilizado. Nas redes com topologia indireta (IBM SP), o
cabealho inclui o endereo da porta de sada em cada chave no caminho do pacote.
Essa abordagem possui o inconveniente de aumentar o tamanho do cabealho com a
distncia do nodo destinatrio, o que no ocorre no roteamento ordenado pela dimenso.
O grande problema do roteamento fonte que ele no oferece adaptatividade para falhas
na rede. A rede do SGI Origin oferece uma espcie de adaptatividade esttica. Ao invs
de utilizar roteamento fonte, ele usa roteamento distribudo. O cabealho do pacote
inclui o endereo do destinatrio, o qual utilizado para uma consulta em tabela em
cada roteador a fim de determinar a porta de sada. Essas tabelas incluem rotas estticas
as quais podem ser reconfiguradas em funo de alteraes na rede. O grande problema
do uso de tabelas distribudas que, com o aumento do tamanho da rede, o nmero de
entradas em cada tabela cresce, aumentando, tambm, o tempo de consulta tabela e
piorando a latncia de roteamento. No SGI Origin, esse problema foi contornado pela
organizao da rede em uma forma hierrquica e pelo particionamento da tabela em
50

duas partes, sendo que apenas uma delas consultada em cada roteamento. A rede do
SGI Origin inclui ainda um mecanismo de roteamento fonte, o qual utilizado para a
configurao das rotas nas tabelas distribudas e para o gerenciamento da rede. Ainda
sobre o roteamento no SGI Origin, a liberdade de deadlock garantida atravs da
programao adequada das tabelas de roteamento, evitando-se a ocorrncia de ciclos nas
rotas estticas. Por fim, das redes descritas acima, apenas o Cray T3E inclui uma
alternativa de roteamento adaptativo com a incluso de um canal virtual adicional
exclusivamente para esse fim.

Com relao ao mtodo de chaveamento, todas as redes descritas utilizam


chaveamento wormhole. Isso se justifica pois essa a tcnica que consegue oferecer, ao
mesmo tempo, uma baixa latncia de chaveamento e um baixo custo de implementao,
j que os buffers so menores e os flits de um pacote podem ser bloqueados em
diferentes roteadores. Entretanto, um pacote bloqueado reserva um grande nmero de
recursos da rede, o que aumenta o risco do deadlock. A soluo mais utilizada para
minimizar esses efeitos a implementao de mltiplos canais virtuais em cada canal
fsico. Tipicamente, costuma-se utilizar quatro canais virtuais, como, por exemplo, no
Intel/ASCI e no SGI Origin. O Cray T3E adota ainda um quinto canal virtual, o qual
usado na implementao de roteamento adaptativo. O IBM SP no implementa canais
virtuais, mas, alternativamente, ele inclui uma fila central utilizada para remover
pacotes bloqueados na rede. Dependendo das condies de trfego, o mecanismo de
chaveamento se comporta como o wormhole ou como o chaveamento por pacote e, por
esse motivo, ele denominado de chaveamento buffered wormhole.

Quanto ao controle de fluxo, a tcnica mais utilizada a baseada em crditos


combinada com a de canais virtuais. Nas redes do Intel/ASCI, do SGI Origin e do Cray
T3E, vrios crditos so transferidos de uma nica vez, informando o total de espao
disponvel no buffer de recepo. J na rede do SP2, cada crdito transferido
individualmente. As duas abordagens tm as suas vantagens e desvantagens. Na
primeira, as linhas de dados do canal oposto do enlace podem ser utilizadas para
transferir os crditos, o que dispensa o uso de linhas adicionais e permite que mais de
um crdito seja transferido de uma nica vez. Entretanto isso consome uma parte da
largura de banda do enlace e, em alguns casos, como no Origin 2000, uma banda lateral
reservada mesmo que no seja necessrio atualizar os crditos, degradando a largura
de banda disponvel. Na segunda abordagem, um sinal reservado para o controle de
fluxo, o que dispensa o uso do canal de dados do enlace. Contudo, esse sinal nico
permite que apenas um crdito seja transferido por vez. Para incrementar a quantidade
de crditos em uma mesma transferncia seria necessrio incluir fios adicionais, o que
aumentaria o custo do enlace.

Quanto memorizao todas as redes utilizam memorizao na entrada, sendo


que o IBM SP inclui ainda um buffer central para armazenar os flits de pacotes
bloqueados e evitar o bloqueio HOL nos buffers de entrada. Em geral, os espao de
armazenamento implementado em cada roteador situa-se entre 3,5 Kbytes e 6 Kbytes.

Finalmente, quanto ao rbitro, todas as redes acima utilizam algum tipo de


arbitragem com prioridades dinmicas de modo a garantir a ausncia de starvation.
51

2.10 Consideraes

Neste captulo, foram apresentados os conceitos fundamentais sobre redes de


interconexo e foram discutidas as principais caractersticas e tcnicas de projeto. O
texto procurou oferecer apenas uma viso geral sobre o assunto, evitando um
detalhamento excessivo. Referncias mais completas, como [DUA 97], discutem esses
temas com mais profundidade. Conforme pde ser observado, as principais topologias
de redes de interconexo utilizadas atualmente so as redes diretas ortogonais (grelha,
toride e hipercubo) e as redes indiretas com mltiplos estgios. Com relao ao
roteamento, foi apresentada uma classificao para os diferentes tipos de algoritmo
disponveis conforme alguns critrios estabelecidos. Os algoritmos de roteamento mais
simples e, portanto mais baratos so tambm os mais utilizados. Quanto ao
chaveamento, foram apresentadas as principais tcnicas utilizadas, sendo que a tcnica
de chaveamento por pacote wormhole a mais adotada atualmente pois permite a
construo de roteadores menores, mais baratos e mais rpidos. Quanto ao controle de
fluxo, foram vistas diferentes tcnicas, sendo a baseada em crditos a mais utilizada,
combinada ou no com o controle de fluxo por canais virtuais. Quanto memorizao,
foi mostrado que podem ser utilizados buffers na entrada, na sada ou buffers
centralizados compartilhados. Porm, em geral, a primeira abordagem a mais adotada.
Alm disso, foram feitos alguns comentrios a respeito da arbitragem, sua importncia
para evitar o problema de starvation e os tipos de critrios utilizados. Outros dois
aspectos relativos ao projeto de uma rede de interconexo consite na garantia da
ausncia de livelock e deadlock, sendo que esses problemas so evitados atravs do uso
de uma estratgia de roteamento adequada.

No captulo a seguir, ser apresentada uma reviso da literatura a respeito de


sistemas integrados e do estado da arte das arquiteturas de comunicao utilizadas
nesses sistemas.
52
53

3 A Comunicao em Sistemas Integrados

O advento das tecnologias de processo submicrnico tem permitido o projeto de


sistemas completos em um nico chip, os quais so denominados sistemas integrados,
sistemas-em-ship ou SoCs (Systems-on-Chip)4. Neste captulo, primeiramente, so
tratados diferentes aspectos relacionados aos sistemas integrados de modo a estabelecer
um cenrio para o foco principal do texto. Aps, enfatizam-se as questes relacionadas
comunicao em SoCs, com uma discusso sobre as alternativas de arquiteturas de
comunicaao, vantagens e desvantagens de cada alternativa e exemplos representativos
de arquiteturas utilizadas nos SoCs atuais e daquelas que esto sendo desenvolvidas
com o objetivo de atender aos requisitos de comunicao dos futuros sistemas
integrados.

3.1 Os Sistemas Integrados em um nico Chip

As metodologias de projeto de sistemas integrados so, em geral, baseadas no


reuso de blocos previamente projetados e verificados, os quais so denominados ncleos
(em ingls, cores). Conforme definem Gupta e Zorian [GUP 97], um ncleo um bloco
de circuito pr-projetado e pr-verificado que pode ser usado na construo de uma
aplicao maior ou mais complexa em uma pastilha de material semicondutor (chip),
sendo que os diferentes tipos de ncleo podem ser classificados em funo da forma
como so implementados e disponibilizados ao projetista do sistema integrado5:

a) Soft-core consiste de uma descrio em linguagem de descrio de hardware


(HDL Hardware Description Language) que pode ser mapeada para diferentes
processos de fabricao;
b) Firm-core contm mais informao, normalmente um netlist ou at informaes
sobre o posicionamento e o roteamento; e
c) Hard-core inclui o leiaute e informaes referentes temporizao do circuito
para uma determinada tecnologia e j est pronto para ser utilizado no sistema.
Normalmente, os ncleos so produtos de tecnologia, software e experincia que
so sujeitos a patentes e a direitos autorais. Em outras palavras, um ncleo representa
uma propriedade intelectual (IP Intelectual Property) que o construtor licencia ao
usurio. Por isso, os ncleos so tambm denominados blocos de propriedade
intelectual, ou, em ingls, IP Blocks.

Um sistema integrado no constitudo apenas por ncleos. Conforme Madisetti


e Shen [MAD 97], ele formado por um conjunto de ncleos integrados atravs de uma
arquitetura de comunicao, incluindo, ainda, um controlador e uma interface para o
mundo externo (Figura 3.1). Entretanto, conforme ser visto posteriormente a prpria
arquitetura de comunicao pode ser um bloco reutilizvel. No que tange a
terminologia, na literatura, a arquitetura de comunicao de um SoC tambm
denominada rede de comunicao ou rede de interconexo (seja ela chaveada ou no).

4
Neste texto, ser usado tanto o termo sistema integrado quanto o acrnimo SoC (SoCs no plural).
5
Nessa classificao, mantm-se a terminologia em ingls apresentada por Gupta e Zorian [GUP97].
54

Biblioteca Biblioteca
A B

Ncleo 1 Ncleo 2 Ncleo 3

Interface
entrada
Arquitetura de Comunicao
e sada

Controlador (em HDL) ou


microprocessador

FIGURA 3.1 Arquitetura genrica de um sistema integrado [MAD 97 p.44].

Os ncleos utilizados em um SoC podem ser novos ou herdados de projetos j


existentes, e podem tambm ser obtidos de uma ou mais bibliotecas. Se os ncleos so
provenientes de fontes independentes, a integrao e o teste podem ser difceis,
requerendo, possivelmente, o reprojeto do ncleo para adequ-lo a um protocolo de
interface comum.

Para facilitar o projeto de SoCs, existem fabricantes que oferecem ferramentas


de projeto e bibliotecas completas com ncleos baseados em uma interface definida para
uma arquitetura de comunicao disponvel juntamente com a biblioteca. Esse tipo de
metodologia denominado projeto baseado em plataforma (PBD Platform-
Based Design) [VAH 2001, KEU 2000].

Uma plataforma uma arquitetura de hardware e software especfica para um


domnio de aplicao [DEM 2001, DUT 2001, PAU 97], mas altamente parametrizvel.
Ela inclui ferramentas de apoio ao projeto e bibliotecas com componentes de hardware
(eg. processadores, memrias, dispositivos de E/S) e de software (eg. drivers de
dispostivos, sistemas operacionais de tempo-real e cdigos de aplicao), os quais
podem ser parametrizados para atender aos requisitos do sistema alvo. A idia bsica
que uma arquitetura adequada e eficiente para uma aplicao tambm ser adequada e
eficiente para muitas aplicaes similares. O uso da mesma arquitetura para o
desenvolvimento de uma aplicao no apenas acelera o projeto da aplicao como
tambm reduz o seu tempo de verificao [KUM 2002].

Segundo Bergamaschi [BER 2002], os SoCs baseados em plataforma so


desenvolvidos a partir de uma arquitetura de referncia que satisfaz um conjunto de
restries arquiteturais e permite o reuso de componentes de hardware e de software. Na
prtica, um SoC baseado em uma plataforma construdo removendo-se componentes
desnecessrios da arquitetura de referncia e adicionando-se componentes necessrios
que no so oferecidos nessa arquitetura. O custo inicial do desenvolvimento da
plataforma alto. Os projetos subsequentes, entretanto, desenvolvidos com base na
mesma plataforma, necessitaro muito menos recursos pela reutilizao de componentes
de hardware e de software. Alm da reduo do custo de projeto, o tempo para a
realizao do mesmo tambm reduzido devido ao reuso dos componentes.
55

3.1.1 Iniciativas da comunidade em sistemas integrados


justamente no sentido de evitar os problemas de interligao entre ncleos de
diferentes fabricantes que a VSIA6 (Virtual Socket Interface Alliance) tem desenvolvido
padres abertos para o interfaceamento de ncleos, como, por exemplo, o padro VCI
(Virtual Component Interface) [VSI 2000]. O VCI consiste de uma especificao de
interface para interligao ponto-a-ponto entre ncleos de um SoC, independentemente
da arquitetura da comunicao utilizada para interconectar esses ncleos.
O estabelecimento desse padro baseado na premissa de que somente ser possvel
explorar completamente o poder do reuso de projeto se forem suportadas descries
comuns de propriedade intelectual.

Uma segunda iniciativa na mesma direo do VCI o OCP7 (Open Core


Protocol) [OCP 2001]. Desenvolvido pela empresa Sonics Inc.8, ele define uma
interface de alto desempenho entre ncleos, a qual independe da arquitetura de
comunicao utilizada. O OCP apresenta, como diferencial ao VCI, a incluso de sinais
de teste (scan e JTAG) e de controle (eg. interrupo) em sua interface, os quais no so
contemplados pelo padro proposto pela VSIA.

O OCP e o VCI exigem que o ncleo disponha de uma interface compatvel com
o padro ou que o mesmo seja envolvido por uma lgica de adaptao de protocolo,
caso o ncleo possua uma interface diferente. Essa lgica denomina wrapper e no
contexto da comunicao ela pode ser entendida como um adaptador de protocolo de
comunicao. Caso a arquitetura de comunicao alvo utilize uma interface diferente
daquela usada pelo ncleo (baseado ou no em um protocolo padro), necessrio um
adaptador adicional para fazer a compatibilizao das diferentes interfaces Esse
conjunto de adaptadores exige uma rea adicional no chip e acrescenta uma latncia na
comunicao. Contudo, seu uso facilita em muito a integrao de um sistema, sobretudo
se os ncleos forem provenientes de diferentes fabricantes.

Um SoC genrico no qual o padro VCI utilizado como interface (I/F) de


integrao mostrado na Figura 3.2. Conforme ilustrado, os fornecedores dos ncleos
podem disponibilizar verses compatveis com o padro VCI ou acompanhadas de
adaptadores de protocolo, caso o ncleo possua uma interface diferente da VCI
(proprietria ou no). De maneira semelhante, o fornecedor da arquitetura de
comunicao pode disponibilizar ao integrador do sistema os adaptadores necessrios
para realizar a converso entre a interface da sua arquitetura e o padro VCI. A
vantagem dessa abordagem para o fornecedor da arquitetura de comunicao que ela
permite que a mesma arquitetura seja reutilizada na integrao de ncleos com
diferentes interfaces. Ao mesmo tempo, isenta o fornecedor do ncleo de disponibilizar
uma verso para cada arquitetura de comunicao qual seus produtos podem ser
conectados. Sob o ponto de vista do integrador, essa abordagem evita que o mesmo
tenha que conhecer vrias interfaces e implementar os adaptadores necessrios
compatibilizao dos ncleos e da arquitetura de comunicao a serem integrados em
seu sistema.
6
A VSIA uma coaliso internacional de companhias formada em 1996 com o objetivo de estabelecer
uma viso unificada para a indstria de sistemas integrados, bem como definir os padres tcnicos
necessrios para a integrao de ncleos de diferentes fontes. Informaes disponveis por WWW em
http://www.vsi.org (acesso em 20 de julho de 2003).
7
Informaes disponveis por WWW em http://www.ocpip.org/home (acesso em 20 de julho de 2003).
8
Informaes disponveis por WWW em http://www.sonicsinc.com (acesso em 20 de julho de 2003).
56

Arquitetura de Comunicao
Responsabilidade I/F no-VCI I/F no-VCI I/F no-VCI
do fornecedor da
rede
I/F no-VCI I/F no-VCI I/F no-VCI
I/F VCI I/F VCI I/F VCI

I/F VCI I/F VCI I/F VCI


I/F no-VCI
Ncleo 2 Ncleo 3
Responsabilidade
do fornecedor do
ncleo I/F no-VCI

Ncleo 1

FIGURA 3.2 Um sistema genrico integrado via padro VCI (onde I/F = interface).

Alm das iniciativas acima destacadas, existem comunidades organizadas a


respeito do tema sistemas integrados. Por exemplo, a TechOnLine mantm uma
comunidade on-line dedicada ao projeto de SoCs, tecnologias de processo, componentes
virtuais e propriedade intelectual em silcio. Essa comunidade denominada SoCnet9 e,
em sua publicao on-line, oferece boletins e anncios, calendrio de eventos, artigos e
banco de dados para consulta.

3.1.2 O teste em sistemas integrados


Um dos principais aspectos relacionados ao desenvolvimento de um sistema
integrado diz respeito ao teste. Em [GUP 97], Gupta e Zorian discorrem sobre a questo
do teste em sistemas integrados baseados no reuso de ncleos. Dois tipos de teste so
geralmente necessrios, o teste interno para a verificao do ncleo e o teste externo
para a verificao da integrao do sistema no que tange interconexo entre os ncleos
integrados no SoC.

Como o integrador do sistema tem pouco ou nenhum conhecimento a respeito da


estrutura interna do ncleo utilizado (exceto para os soft-cores), o construtor do ncleo
quem deve preparar o teste interno. Esse teste interno consiste de estruturas DFT
(Design For Test) e dos padres de teste associados, os quais podem ser gerados
internamente por BIST (Built-In Self Test) ou externamente atravs de vetores de teste.
Os vetores so aplicados ou capturados na periferia do ncleo sob teste. Porm, o
construtor do ncleo determina os requisitos desse teste interno sem conhecer o
processo e a aplicao alvos. Ele no sabe qual mtodo de teste deve adotar, o tipo ou
tipos de falhas (esttica, dinmica ou paramtrica) ou, ainda, o nvel de cobertura de
falhas desejado. Como resultado, o construtor pode no fornecer um teste de qualidade
adequada. Alm disso, o construtor do ncleo precisa preparar um teste interno que seja
descrito apropriadamente, portado e que esteja pronto para ser utilizado, ou seja, para a
interoperabilidade com o sistema de teste. Para isso, o teste deve ser descrito em um
padro aceito comumente.

9
Informaes disponveis por WWW em http://www.techonline.com (acesso em 20 de julho de 2003).
57

Um ncleo tpico montado em um SoC de modo que o acesso fsico direto


sua periferia no normalmente disponvel. Como resultado disso, os engenheiros de
teste precisam de um mecanismo de acesso eletrnico, ou seja, lgica e fios adicionais
para conectar a periferia do ncleo aos recursos de teste. Para estabelecer um
mecanismo de acesso eletrnico, o projetista deve fornecer dois elementos bsicos: um
conjunto de caminhos de acesso e uma rede de controle para habilitar e desabilitar o
caminho de acesso desejado. Esse caminho de acesso contm as estruturas DFT
necessrias de todas as periferias dos ncleos para o chaveamento entre os modos
normal e de teste. Existem vrios tipos de caminhos de acesso, sendo que o mais
utilizado baseado na serializao dos padres de teste. Por exemplo, vrios
fornecedores utilizam a cadeia de boundary scan IEEE Std. 1149.1 [TEX 97].

Alm dos modos de teste e de operao normal, um sistema baseado em ncleos


requer, freqentemente, vrios outros modos relacionados ao teste. Um deles o modo
de teste externo para a deteco de falhas de interconexo (estticas ou dinmicas) entre
ncleos. Adicionalmente aplicao e captura de padres de teste durante os modos
de teste interno e externo, os engenheiros de teste podem usar caminhos de acesso
perifrico para isolar os ncleos. Isso leva o ncleo a um estado seguro, se for
necessria uma isolao no lado da entrada do ncleo, ou coloca as sadas do ncleo no
modo de terceiro estado. Algumas vezes, outros modos de isolao do ncleo so
necessrios, seja para coloc-lo nos modos de espera, de baixa dissipao de potncia
ou de desvio, ou para controlar uma fonte de corrente do ncleo para teste I .
DDQ

3.1.3 Bibliotecas de ncleos para o desenvolvimento de sistemas


integrados
Existem diversos fabricantes de circuitos integrados que oferecem bibliotecas de
ncleos para a construo de SoCs. Em geral essas bibliotecas so desenhadas visando
uma famlia de processadores e os seus ncleos utilizam uma interface padro baseada
no processador de referncia. A biblioteca tambm pode incluir ncleos para a
arquitetura de comunicao, geralmente um barramento hierrquico multi-mestre.

A IBM, por exemplo, prov a biblioteca BlueLogic com ncleos de


processadores e perifricos para a famlia IBM PowerPC4xx (eg. 401, 405 e 440), alm
de ncleos para DSPs (eg. IBM C54XDSP) e processadores de outros fabricantes
(eg. ARM ARM7TDMI). Inclui tambm diversos ncleos para os diferentes tipos de
controladores de entrada e sada, como controladores de rede (eg. Ethernet 10/100),
enlaces de alta velocidade (eg. HSL), interfaces seriais (eg. UART, USB), interfaces de
barramento (eg. AGP4X, PCI), compresso de dados (eg. JPEG), entre outros.
A biblioteca inclui ainda uma arquitetura de comunicao padro, denominada
CoreConnect, e ferramentas de projeto que facilitam a integrao do sistema
[IBM 2000b].
58

3.1.4 Ferramentas de auxlio ao projeto de sistemas integrados


A implementao de um sistema complexo em um SoC ainda uma tarefa
bastante rdua. Bergamaschi e Lee [BER 2000] enumeram as diversas razes que
dificultam o projeto de um SoC. Primeiramente, o projetista deve escolher os
componentes a serem utilizados, definir os requisitos de desempenho do sistema e,
ainda, conhecer as caractersticas, as funcionalidades e as interfaces dos componentes a
serem utilizados. Uma vez completada essa etapa, necessrio realizar a integrao do
sistema. Porm, mesmo que cada ncleo tenha sido pr-projetado e pr-verificado
individualmente, o projeto fsico e a verificao do sistema so dificultados pelo
surgimento de efeitos imprevisveis, como rudos e acoplamentos capacitivos. Alm
disso, a falta de padres estabelecidos e adotados amplamente pela indstria torna ainda
mais difcil a integrao de ncleos fornecidos por diferentes fabricantes. Por fim, h
ainda o problema da integrao hardware-software, a qual geralmente feita em uma
fase posterior do projeto e afeta diretamente o tempo de lanamento do produto no
mercado. Ainda, segundo Bergamaschi e Lee, h poucas ferramentas de auxlio ao
projeto de sistemas integrados que permitam a integrao e a configurao facilitadas de
ncleos em um sistema. A complexidade dos SoCs atuais e a falta de ferramentas de
alto nvel apropriadas tornam difceis a reusabilidade e a aplicao direta de ncleos.

Recentemente, tem-se verificado uma srie de esforos para solucionar ou


minimizar as limitaes acima descritas. Com relao ao interfaceamento, conforme j
foi citado, existem algumas propostas de interface padro (como VCI e OCP) que ainda
no esto sendo amplamente utilizadas. Contudo, acredita-se que uma delas venha a se
tornar um padro de fato no projeto de sistemas integrados. Quanto s ferramentas de
apoio ao projeto, existem diversos trabalhos de pesquisa em desenvolvimento, porm, a
discusso desses trabalhos foge do escopo deste texto.

3.2 Arquiteturas de Comunicao dos SoCs Atuais

Nos sistemas integrados atuais, a interconexo entre os ncleos realizada


atravs de canais ponto-a-ponto ou de canais multi-ponto (Figura 3.3). Na primeira
abordagem, tipicamente utilizada em sistemas baseados no modelo de comunicao de
fluxo de dados (eg. codificadores/decodificadores de udio ou de vdeo), os ncleos so
interligados por canais dedicados, sendo que cada canal constitudo por um conjunto
de condutores ligando dois ncleos. J na segunda abordagem, geralmente usada em
sistemas orientados ao modelo de comunicao de espao de endereamento
(eg. processadormemriaE/S), a arquitetura de comunicao estruturada sob a
forma de um barramento compartilhado ao qual os ncleos do sistema so conectados
[GUE 2000a]. Essas duas abordagens podem ser comparadas quanto ao paralelismo,
consumo de energia10, freqncia de operao, escalabilidade, rea e reusabilidade.

10
Nos textos tcnicos em ingls o termo mais utilizado power consumption, o qual, segundo Rabaey
[RAB96], determina as quantidades de energia consumida e de potncia (ou calor) dissipada por um
circuito.
59

Ncleo Ncleo
1 2
Ncleo Ncleo Ncleo Ncleo
rbitro
1 2 3 4
Ncleo Ncleo
3 4

(a) (b)
FIGURA 3.3 Arquiteturas de comunicao atuais: (a) ponto-a-ponto; (b) multi-ponto.

Quanto ao paralelismo, os canais ponto-a-ponto so independentes entre si e


permitem que mltiplas comunicaes sejam realizadas simultaneamente. J em um
barramento, apenas uma comunicao pode ocorrer a cada momento, e os mltiplos
ncleos do sistema concorrem pelo uso do barramento, o qual possui um controlador
central para escalonar a sua utilizao.

Com relao ao consumo de energia, ele maior em canais com fios mais
longos e que alimentam mltiplas cargas. Isso ocorre porque esses fatores impactam
diretamente na capacitncia parasita do fio e o consumo de energia aumenta com essa
capacitncia [RAB 96]. Em uma arquitetura baseada em canais ponto-a-ponto, os fios
tendem a ser mais curtos e com uma nica carga. J em uma arquitetura multiponto, os
fios tendem a ser mais longos e carregados por todos os ncleos a ela conectados. Alm
disso, o consumo de energia proporcional freqncia de mudana de estado. Como
um barramento responsvel por todas as comunicaes, a sua taxa de utilizao
prxima dos 100% [LIA 2000] e a atividade de chaveamento nos seus fios intensa. Por
outro lado, em canais ponto-a-ponto, a taxa de utilizao muito menor e, portanto, o
consumo de energia em cada segmento bem inferior.

No que tange a freqncia de operao, os tempos de transio (subida e


descida) nos fios aumentam com a carga capacitiva associada. Esses tempos definem o
ciclo de operao e, portanto, a freqncia de operao dos fios de um canal de
comunicao. Quanto maior for a carga capacitiva, maiores sero os tempos de
transio e menor ser a freqncia de operao dos canais. Com base no que foi visto
no pargrafo acima, pode-se avaliar que as arquiteturas com canais ponto-a-ponto
podem operar em freqncias maiores que as arquiteturas baseadas em canais
multi-ponto, pois as cargas capacitivas aos quais os fios so submetidos so menores.
Para lidar com esse problema nos barramentos, so utilizam drivers maiores e que
tenham capacidade de suprir uma maior corrente eltrica de modo a reduzir os tempos
subida e de descida dos fios. Contudo, isso aumenta ainda mais o consumo de energia
no barramento.

Quanto escalabilidade, uma arquitetura de comunicao dita escalvel se a


sua largura de banda cresce com o tamanho do sistema [HWA 93]. Em uma arquitetura
com canais ponto-a-ponto, cada ncleo adicionado ao sistema requer a implementao
de novos canais para a comunicao com os ncleos j existentes. A largura de banda
desses novos canais ento agregada largura de banda j disponvel. Em uma
arquitetura multiponto, tipicamente, um ncleo adicionado ao sistema conectado aos
canais j compartilhados pelos demais ncleos sem aumentar a largura de banda da
arquitetura. Pelo contrrio, esse ncleo ir competir pela banda disponvel, sendo que a
largura de banda por ncleo ser ainda menor. Alm disso, esse novo ncleo contribuir
60

para aumentar a carga capacitiva, aumentando o consumo de energia e reduzindo a


freqncia de operao.

Com relao rea, o custo de uma arquitetura de comunicao dado pelo


custo do metal para a implementao dos canais fsicos e pelo custo de silcio para a
realizao de funes lgicas como arbitragem, decodificao de endereos,
chaveamento, entre outras. Em uma abordagem ponto-a-ponto, cada canal fsico
constitudo por fios unidirecionais e pode ser otimizado independentemente (eg. largura
do canal fsico, insero de drivers etc). J em uma abordagem multi-ponto, a largura
fsica dos canais do barramento deve ser dimensionada de modo a atender aos requisitos
de latncia e de largura de banda de todos os ncleos do sistema, sendo que a
otimizao de um barramento compartilhado com mltiplas cargas pode ser muito
difcil [HU 2002]. Em geral, em um sistema baseado em canais ponto-a-ponto, os
ncleos que se comunicam so posicionados o mais prximo possvel uns dos outros de
modo a reduzir o comprimento dos canais de comunicao. J em sistema baseado em
uma arquitetura multi-ponto, os canais de comunicao do barramento devem alcanar
todos os ncleos do sistema, sendo que, tipicamente, assume-se que o comprimento
total do barramento igual metade do permetro do chip [LAN 2000]. Disso poder-se-
ia concluir que o barramento possui um custo de metal superior ao de uma arquitetura
baseada em canais ponto-a-ponto. Contudo, na abordagem ponto-a-ponto, cada ncleo
pode ter mltiplos canais de comunicao para outros ncleos do sistema, o que
aumenta os custos de metal e de silcio devido implementao de mltiplas portas.
Alm disso, dependendo da complexidade da estrutura lgica de comunicao, pode ser
difcil posicionar os ncleos de modo que todos os canais dos ncleos que se
comunicam tenham um comprimento mnimo, tornando o roteamento dos fios uma
tarefa ainda mais rdua ao projetista. Nesses casos, torna-se necessrio o uso de
metodologias que permitam a obteno automtica de arquiteturas de comunicao
ponto-a-ponto otimizadas quando ao custo e, tambm, ao consumo de energia
[HU 2002].

Ainda no que tange a rea, sabido que o custo de silcio em uma abordagem
ponto-a-ponto dado pelas estruturas associadas s mltiplas portas de comunicao em
cada ncleo, como drivers (ou buffers) de sinal e filas de sincronismo de comunicao
(ou buffers de memorizao). Eventualmente, esse custo de silcio pode ser ainda maior
se for realizada a multiplexao do canal lgico de modo a reduzir o nmero de fios no
canal fsico. J em um sistema baseado em barramento, cada ncleo possui uma nica
porta de comunicao cuja interface deve ser compatvel ou adaptada ao protocolo do
barramento. Como em um barramento existem mltiplos ncleos que podem injetar
sinais nos seus fios, preciso implementar buffers tri-state nas interfaces dos ncleos
com o barramento, alm de eventuais registradores ou filas de sincronismo para o
armazenamento temporrio dos dados transferidos. O barramento exige o
estabelecimento de um protocolo para acesso ao meio fsico, o qual normalmente
implementado sob a forma de um rbitro central que recebe requisies dos ncleos do
tipo mestre, os quais possuem habilidade para iniciar uma transferncia de dados, aplica
um critrio de prioridade para selecionar uma entre mltiplas requisies e envia um
sinal de confirmao ao mestre selecionado. Como em um barramento todos escutam
o que um fala, preciso que seja implementado um mecanismo de seleo do ncleo
destinatrio da mensagem (o escravo). Essa seleo pode ser feita de diferentes formas
(centralizada no rbitro ou distribuda entre os escravos), mas, em qualquer uma, ela
implica em um custo adicional de silcio. Em resumo, a rea de silcio de uma
abordagem ponto-a-ponto depende do nmero de ncleos, do nmero de portas por
61

ncleo e do tamanho dessas portas. J em um barramento, o nmero de portas


por ncleo e o tamanho delas fixo, porm o aumento do nmero de ncleos implica no
aumento do custo do rbitro e do(s) circuito(s) de seleo. Dadas essas dependncia,
uma avaliao de qual abordagem ocupa a maior rea depende da avaliao do tamanho
e da complexidade do sistema.

A partir das caractersticas avaliadas acima, poder-se-ia concluir que a melhor


soluo para interconexo de ncleos em SoCs consistiria no uso de canais
ponto-a-ponto, pois oferecem paralelismo, consomem menos energia, operam em
freqncias maiores, oferecem escalabilidade e, dependendo do sistema, podem ocupar
menos rea. Contudo, resta ainda avaliar uma ltima caracterstica das arquiteturas de
comunicao para SoCs: a reusabilidade. Essa caracterstica na verdade um requisito
fundamental no mercado de microeletrnica, o qual altamente competitivo e exige que
o tempo para lanamento de um produto (do ingls, time-to-market) seja o menor
possvel de modo a garantir o seu sucesso e a conquista do maior nmero de clientes. O
reuso de ncleos pr-projetados e pr-verificados reduz o tempo de projeto e ajuda a
atingir essa meta pois, a cada novo sistema, o projeto do SoC consistir na integrao de
ncleos j validados. Alm disso, o reuso permite amortizar os custos de projeto de um
componente entre vrios sistemas baseados nesse componente [KUM 2002]. Nessa
direo, se a arquitetura de comunicao e os componentes a ela associados forem
tambm reutilizveis, a integrao do sistema ser ainda mais facilitada, ajudando a
atingir os requisitos de tempo e custo de projeto do sistema. Contudo, uma arquitetura
de comunicao baseada em canais ponto-a-ponto dedicados fundamentada em uma
abordagem ad-hoc e o seu reuso em sistemas diferentes bastante restrito. Alm disso,
com o aumento da complexidade dos SoCs, o tempo para o projeto da arquitetura de
comunicao tende a ser ainda maior [DAL 2001], o que inviabiliza essa abordagem
como soluo de interconexo em sistemas complexos com requisitos restritos de tempo
de projeto.

A disponibilidade de uma arquitetura de comunicao reutilizvel de vital


importncia para abreviar o tempo de projeto de um sistema. Arquiteturas multi-ponto,
como o barramento, so totalmente reutilizveis e, por conta disso, tm sido a
abordagem preferida para a construo dos SoCs atuais, apesar das suas desvantagens
em relao abordagem ponto-a-ponto. Como exemplo, podem ser citadas diversas
arquiteturas de comunicao em barramento usadas atualmente: OMI PI-Bus,
IBM CoreConnect, ARM AMBA, Silicore Corp. WISHBONE, PalmChip CoreFrame,
Mentor Graphics FISPbus, Motorola IP Interface, Sonics SiliconBackplane, Sonics
Micronetwork, IDT Peripheral Bus e University of Manchester MARBLE11.

Para contornar as limitaes inerentes de uma arquitetura em barramento, a


principal soluo utilizada atualmente consiste no uso de hierarquias com mltiplos
barramentos. Por exemplo, atravs do uso de uma arquitetura com dois barramentos
interconectados por um circuito ponte, conforme ilustrado na Figura 3.4, consegue-se
aumentar o nmero de transaes simultneas, reduzir a carga capacitiva de cada
barramento (e, portanto, a energia consumida e o ciclo de operao) e aumentar a
largura de banda do sistema. Alm disso, os dois barramentos so implementados com
caractersticas diferentes. Um destinado interconexo de ncleos com requisitos de

11
A pgina Summary of SoC Interconnection Buses, mantida pela empresa Silicore, apresenta resumos
e links para pginas a respeito de cada um desses barramentos. Informaes disponveis por WWW em
http://www.silicore.net/uCbusum.htm (acesso em 20 de julho de 2003).
62

grande largura de banda (como processadores e controladores de memria) e o outro


usado para a conexo de ncleos lentos ao sistema (como controladores de portas seriais
e paralelas). Portanto, isso requer um mapeamento adequado dos ncleos ao sistema de
modo que aqueles mais lentos fiquem isolados daqueles mais rpidos, evitando que
ncleos rpidos fiquem parados esperando que os ncleos lentos completem suas
operaes de comunicao.

Ncleo Ncleo Ncleo Ncleo


1 2 6 5
barramento barramento
rbitro "rpido" "lento" rbitro
Ponte
1 2

Ncleo Ncleo Ncleo Ncleo


3 4 8 7

FIGURA 3.4 Exemplo de arquitetura hierrquica com dois barramentos.

Essa soluo pode ser ainda melhorada, porm existem limites. Por exemplo,
podem ser implementados barramentos mais largos de modo a aumentar o nmero de
bits transferidos a cada ciclo, mas um barramento muito largo no eficiente para a
transferncia de palavras de dado menores. Como soluo, pode-se concatenar mais de
uma transao, mas isso leva a um aumento da latncia. Uma outra alternativa para se
obter uma maior largura de banda seria o aumento da freqncia do relgio, mas isso
no pode ser feito arbitrariamente devido a restries eltricas decorrentes das
capacitncias parasitas associadas s unidades conectadas ao barramento e tambm ao
longo comprimento de suas linhas [GUE 2000a].

Como os barramentos constituem na abordagem mais utilizada para a


interconexo de ncleos nos SoCs atuais, nas sees a seguir, so apresentadas
definies bsicas sobre esses barramentos e alguns exemplos representativos de
barramentos utilizados em SoCs comerciais.

3.2.1 Definies bsicas sobre barramentos para sistemas integrados


Um barramento de sistema para SoCs constitudo por vias exclusivas para
dado, endereo e controle, alm de uma unidade de controle responsvel pela
arbitragem do barramento, sendo, por isso, tambm denominado rbitro, conforme
mostra a Figura 3.5. O rbitro necessrio nos sistemas onde mais de um componente
precisa iniciar a transferncia de dados entre ele e outro componente do sistema. Ao
componente que tem a habilidade de iniciar uma transferncia, d-se o nome de
mestre, enquanto que ao seu parceiro, d o nome de escravo. Em sistemas com
mltiplos mestres, cada um dos mestres envia uma requisio ao rbitro toda vez que
precisa realizar uma transferncia de dados com algum escravo. Se houverem vrias
requisies concorrentes, o rbitro deve utilizar algum critrio para eleger uma delas e
ento notificar o mestre selecionado atravs de uma linha de confirmao. O critrio de
arbitragem pode ser baseado em prioridades estticas ou dinmicas (eg. aleatrias, fila
circular etc). Desde que o rbitro tambm um recurso compartilhado, o incremento do
nmero de mestres no sistema aumenta o atraso na arbitragem [GUE 2000a].
63

Ncleo Ncleo Ncleo Ncleo


Mestre Mestre Mestre Mestre

endereo Unidade de
Controle do
dado Barramento
controle (rbitro)

Ncleo Ncleo Ncleo Ncleo


Escravo Escravo Escravo Escravo

FIGURA 3.5 Arquitetura genrica de um SoC baseado em barramento.

Alm de cumprir o papel de rbitro, em alguns sistemas, a unidade de controle


do barramento tambm integra a funo de decodificar o endereo fornecido pelo
mestre da transao em curso e selecionar o escravo que deve responder a essa
transao. Essa centralizao da arbitragem e da decodificao uma das caractersticas
especficas que distinguem os barramentos de sistema dos barramentos de perifricos,
os quais podem ser mais facilmente estendidos por utilizarem decodificao distribuda,
na qual o escravo responsvel pela decodificao do endereo. Contudo, existem
barramentos em chip para interconexo de perifricos que utilizam decodificao
centralizada, como, por exemplo, o PI-Bus [SIE 94].

As transferncias de dados entre um mestre e um escravo so denominadas


transaes, sendo que existem dois tipos bsicos. Na transao de escrita, o mestre
envia dados ao escravo, enquanto que, na transao de leitura, o mestre solicita dados
do escravo, o qual os envia ao mestre. Essas transaes podem ser realizadas em um
modo denominado rajada (burst), o qual permite que sejam transferidos vrios dados
de endereos adjacentes entre o mestre e o escravo em uma nica transao e de forma
atmica. Esse tipo de modo de operao tipicamente utilizado em acessos a caches de
instruo e de dado.

Segundo Guerrier e Greiner [GUE 2000a], alm do fato de ser reutilizvel, o


barramento apresenta outras vantagens que justificam o seu uso como arquitetura de
comunicao nos sistemas integrados atuais:

a) Suporta diretamente o modelo de comunicao de endereamento em memria,


sendo compatvel com a maioria dos ncleos disponveis;
b) A latncia da comunicao zero, uma vez que o mestre tenha sido autorizado pelo
rbitro a utilizar o barramento;
c) Existe uma cultura bem estabelecida no uso do barramento em sistemas digitais; e
d) O custo de silcio pequeno.
64

3.2.2 A arquitetura de comunicao CoreConnect


A arquitetura de comunicao IBM CoreConnect consiste de uma estrutura de
interconexo reutilizvel organizada em uma hierarquia de barramentos e integra a
biblioteca de ncleos denominada BlueLogic. Os ncleos dessa biblioteca so
pr-projetados e pr-verificados para trabalharem com os protocolos da arquitetura
CoreConnect, possibilitando o reuso de chip para chip [IBM 99].

A arquitetura CoreConnect prov trs barramentos para a interconexo de


ncleos: PLB (Processor Local Bus), OPB (On-chip Peripheral Bus) e DCR (Device
Control Register bus), os quais so ilustrados na Figura 3.6 e descritos a seguir.

Device Control Register (DCR) bus

Ncleo de Ncleo de Ncleo de Ncleo de Ncleo de


Sistema Sistema Sistema Perifrico Perifrico
rbitro

rbitro
Circuito
Processor Local Bus (PLB) CircuitoPonte On-chip Peripheral Bus (OPB)
Ponte

Memria Ncleo de Processador Ncleo de Ncleo de


On-chip Processador Auxiliar Perifrico Perifrico

FIGURA 3.6 Sistema genrico baseado na arquitetura CoreConnect.

PLB - Processor Local Bus

O PLB dedicado interconexo de dispositivos com grande largura de banda


como ncleos de processadores, interfaces de memria externa e controladores de
DMA. Os barramentos podem ser de 32, 64 e 128 bits (extensveis em at 256 bits) e
existem vias separadas para leitura e escrita de dados, o que possibilita a realizao de
duas transferncias simultneas (de leitura e de escrita) por ciclo de relgio. A latncia
da rede reduzida pelo endereamento em pipeline, o qual permite a sobreposio de
trs requisies de leitura com uma leitura em execuo e uma requisio de escrita com
um acesso de escrita em andamento. Alm disso, possibilita a sobreposio de uma
transferncia em andamento com a arbitragem do barramento para futuras
transferncias. A largura de banda mxima estimada em at 23,2 Gbit/s para uma
arquitetura de 128 bits operando a 183 MHz [IBM 2000b].

A interconexo de diversos ncleos mestres e escravos pelo PLB requer o uso de


uma macrofuno chamada macro PLB (Figura 3.7), a qual um ncleo reutilizvel.
Essa macrofuno oferece interfaces de controle e endereo, assim como portas
separadas para leitura e escrita de dados para cada mestre do sistema. Ela suporta at
oito mestres, mas implementaes especficas podem suportar um nmero maior. Pelo
lado dos escravos, a macro PLB oferece uma nica interface compartilhada. Entretanto,
independentemente do nmero de interfaces mestre, o PLB limita o nmero de
transaes simultneas em cada ciclo de relgio a uma transao de escrita e outra de
leitura.
65

Mestre 0 Escravo 0

Mestre 1 Escravo 1
Macro
PLB

Mestre n-1 Escravo m-1

FIGURA 3.7 Interfaces da macro PLB.

importante destacar que o aumento do nmero de mestres e/ou escravos


conectados macro PLB afeta diretamente a freqncia de operao mxima
alcanvel. Para contornar essa limitao, a arquitetura CoreConnect prev a
implementao de mltiplos barramentos locais separados, interconectados por uma
macro chamada PLB CBS (PLB CrossBar Switch). Na Figura 3.8, a macro PLB CBS
colocada entre os rbitros PLB e seus barramentos escravos. Quando um mestre inicia
uma transao, a macro PLB CBS utiliza o endereo associado para selecionar o
barramento escravo apropriado. A vantagem do uso dessa macro que, por ser uma
chave crossbar, permite a realizao de mltiplas transferncias de dados simultneas
utilizando um esquema de arbitragem para manipular requisies concorrentes para um
mesmo barramento escravo. Essa soluo resulta em uma arquitetura hbrida, pois inclui
uma arquitetura de comunicao chaveada no sistema de comunicao baseado em
barramentos.

Mestre 0 Escravo 0
Macro
PLB Escravo 1
Mestre 1
Macro
PLB CBS
Mestre 2 Escravo 2
Macro
PLB
Mestre 3 Escravo 3

FIGURA 3.8 Um sistema com mltiplas macros PLBs e uma macro


PLB CBS [IBM 99].

OPB - Peripheral On-chip Bus

O OPB um barramento secundrio projetado para aliviar os gargalos de


desempenho do sistema atravs da reduo da carga capacitiva no PLB. Os tipos de
perifricos que so passveis de serem conectados no OPB incluem portas de
comunicao serial e paralela, UARTs (Universal Assynchronous Receiver/Transmitter)
e outros perifricos com baixos requisitos de largura de banda. Diferentemente do PLB,
existe apenas um barramento de dados de 32 bits, o qual permite o dimensionamento
dinmico da largura do barramento (8, 16 e 32 bits), suporta transferncias em rajadas e
a conexo de mltiplos mestres ao barramento.
66

DCR Device Control Register bus

O DCR um barramento de baixo desempenho com estrutura em anel utilizado


apenas para a transferncia de informaes de configurao e de estado entre o mestre
desse barramento (um ncleo tipo processador) e os demais ncleos.

3.2.3 A arquitetura de comunicao AMBA


Um outro exemplo representativo de arquitetura de comunicao a arquitetura
AMBA (Advanced Microcontoller Bus Architecture), uma especificao padro e aberta
de barramento em chip desenvolvida pela ARM para a integrao de ncleos em um
SoC. Ela apresenta um barramento de sistema de alto desempenho (AHB Advanced
High-perfomance Bus) e um barramento de perifricos (APB Advanced Peripheral
Bus), os quais so interconectados por um circuito ponte [ARM 2003].

As arquiteturas AMBA e CoreConnect apresentam muitas caractersticas em


comum. Os barramentos de alto desempenho das duas arquiteturas possuem vias
separadas para leitura e escrita de dados, as quais podem ser de 32, 64 e de 128 bits,
porm o PLB da arquitetura CoreConnect pode ser estendido a at 256 bits. Ambos os
barramentos suportam operao com mltiplos mestres, transaes divididas,
transferncias em pipeline, em rajadas e em linha. J com relao aos barramentos de
perifricos, o APB da arquitetura AMBA suporta apenas um mestre conectado ao
barramento, enquanto que o OPB da arquitetura CoreConnect suporta a conexo de
mltiplos mestres.

Contudo, a principal diferena entre as arquiteturas CoreConnect e AMBA est


nas alternativas de implementao utilizadas para contornar as restries ao
desempenho do sistema de comunicao. Enquanto que a CoreConnect prev a incluso
de um crossbar a fim de isolar os diferentes barramentos e possibilitar mltiplos acessos
simultneos, na arquitetura AMBA, os barramentos so implementados como
multiplexadores sob a forma de um OU-por-fio (ver Figura 3.9). Isso isenta os ncleos
de implementarem sadas em terceiro estado e transforma as conexes dos barramentos
em ligaes ponto-a-ponto, evitando o problema da degradao do desempenho
decorrente de ligaes multi-ponto, tpico dos barramentos.

rbitro

Mestre A endereo Escravo A

dado
Mestre B escrita Escravo B

Mestre C Escravo C
dado
leitura

FIGURA 3.9 O barramento de sistema da arquitetura de interconexo AMBA.


67

3.3 Arquiteturas de Comunicao para os Futuros SoCs

Os SoCs atuais podem integrar diversos tipos de ncleos com requisitos de


comunicao na faixa de Gbit/s por ncleo, como processadores escalares, DSPs
(Digital Signal Processors), processadores de vdeo, memria e dispositivos de E/S de
alta largura de banda.

Um sistema integrado com uma dezena de ncleos operando em modo


multi-mestre pode requerer uma largura de banda agregada maior que 10 Gbit/s e
a expectativa que os futuros SoCs apresentem requisitos de comunicao ainda
maiores. Por exemplo, para explorar o paralelismo em nvel de tarefa entre ncleos de
processamento com uma comunicao concorrente reconfigurvel, necessria uma
vazo agregada de 50 Gbit/s [GUE 2000a]. Aplicaes com requisitos de comunicao
como esse incluem os processadores de rede e sistemas para televiso de alta definio.
Por exemplo, os processadores de rede OC-768 [KAR 2001] a serem utilizados nos
backbones da Internet trabalharo com uma taxa de dados de 40 Gbit/s, requerendo uma
capacidade de processamento s alcanvel atravs de arquiteturas paralelas e um
desempenho em comunicao maior do que o oferecido pelos barramentos atuais.

Como foi visto na seo anterior, o barramento tem sido a alternativa de


arquitetura de comunicao preferencial nos SoCs atuais devido sua reusabilidade.
Contudo, como tambm foi destacado, o ele apresenta srias limitaes quanto ao
consumo de energia e, principalmente, ao desempenho em comunicao. Sua freqncia
de operao se degrada com o crescimento do sistema, ele no oferece paralelismo em
comunicao e a sua largura de banda compartilhada pelos ncleos conectados ao
barramento.

Algumas das limitaes do barramento podem ser amenizadas com a


implementao de barramentos separados, interconectados por pontes. Entretanto, isso
exige um agrupamento especfico para cada caso, levando perda da flexibilidade e da
generalidade do barramento [GUE 2000a]. Alm do mais, uma transao entre
sub-unidades em barramentos diferentes ocupa diversos recursos do sistema de
comunicao (todos os barramentos e pontes atravessadas), bloqueando outras
comunicaes. Somando-se a isso, essa alternativa exige um hardware adicional, o que
implica no aumento do custo em silcio do barramento.

Uma forma de se obter uma arquitetura de comunicao reutilizvel e com


desempenho escalvel consiste no uso de redes de interconexo chaveada, semelhantes
quelas utilizadas em computadores paralelos. Essas redes baseiam-se em ligaes
ponto-a-ponto, e apresentam boas caractersticas quanto ao paralelismo, consumo de
energia, freqncia de operao e escalabilidade, atendendo ainda ao requisito de
reusabilidade.

Como o uso de tais redes na interconexo de ncleos em sistemas integrados


um tema emergente, no existe ainda uma terminologia nica estabelecida nas
comunidades acadmica e industrial para referenciar esse novo tipo de arquitetura de
comunicao intra-chip. Trs termos diferentes tm sido utilizados na literatura:
micronetworks, On-Chip Networks (OCNs) e Networks-on-Chip (NoCs), sendo que o
ltimo, por apresentar um acrnimo similar a SoC, tem tido a maior aceitao. Neste
68

texto, sero utilizados indistintamente os termos em rede-em-chip e o acrnimo NoC


para referenciar essa nova abordagem.

As primeiras redes-em-chip utilizadas em SoCs consistiam basicamente de um


crossbar central interligando os ncleos do sistema. Em geral, esses sistemas eram
pequenos, com at uma dezena de ncleos, e a chave crossbar possua um nmero de
portas limitado. Um exemplo o processador TMS320C80 MVP da Texas Instruments
[KIM 97], um multiprocessador heterogneo em um nico chip combinando um
processador RISC, quatro DSPs LIW, um controlador de DMA, dois controladores de
vdeo e mltiplos mdulos de memria interna, todos interconectados por um crossbar
com uma largura de banda agregada de 19,2 Gbit/s.

Atualmente, existem diversos projetos em andamento que visam a construo de


redes-em-chip. Essas NoCs so formadas por um conjunto de roteadores interligados
por meio de canais ponto-a-ponto. Cada roteador possui um crossbar (centralizado ou
distribudo entre os canais de sada), alm de buffers de memria (ou filas) e circuitos de
controle que implementam os mecanismos necessrios transferncia de dados.

Dois projetos podem ser destacados por desenvolverem redes-em-chip com


caractersticas diferentes: o SPIN e o aSoC. A rede SPIN utiliza topologia indireta e
roteamento dinmico, feito em tempo de execuo, enquanto que a rede aSoC baseia-se
em uma topologia direta e utiliza roteamento esttico, realizado em tempo de
compilao. Essas duas redes so descritas a seguir, de maneira sistemtica, buscando
caracteriz-las com base nas taxionomias apresentadas no captulo anterior. Aps, so
dadas breves descries sobre NoCs apresentadas mais recentemente na literatura.

3.3.1 Arquitetura de interconexo SPIN


A rede experimental SPIN (Scalable Programmable Integrated Network), em
desenvolvimento no departamento ASIM (Architecture des Systmes intgrs et
Microlectronique) do Laboratrio de Informtica da Universidade Paris VI
(LIP6 - Laboratoire d'Informatique Paris 6) resultado de um projeto de pesquisa
denominado Projeto SPIN12. Esse projeto focaliza os aspectos relacionados s
arquiteturas de interconexo visando oferecer melhores escalabilidade, desempenho e
facilidade de manufatura para os futuros sistemas integrados desenvolvidos com
tecnologias de processo submicrnico. Ela foi inicialmente descrita em [GUE 99] e os
primeiros resultados experimentais foram apresentados em [GUE 2000] e [GUE 2000a].
Um estudo comparativo entre o desempenho em comunicao da rede SPIN e do
barramento PI-Bus foi desenvolvido no escopo deste trabalho [AND 2003].

Topologia

A arquitetura SPIN uma rede indireta com topologia em rvore-gorda


quaternria, com roteadores nos nodos e ncleos (ou terminais) nas folhas
[GUE 2000a], conforme ilustrado na Figura 3.10. Essa topologia pode tambm ser
classificada como uma rede multiestgio bidirecional [DUA 97]. Os enlaces que
interligam os elementos da rvore (nodos e folhas) so bidirecionais full-duplex,

12
Pgina do Projeto SPIN disponvel por WWW em http://asim.lip6.fr/~adrijean (acesso em 20 de julho
de 2003).
69

implementados por dois canais unidirecionais simplex. Cada canal simplex constitudo
por 32 bits para dados e quatro bits de banda lateral (do ingls, sideband) para
enquadramento do pacote (bits marcadores de incio e fim), sinalizao de paridade da
palavra de dado e sinalizao de erro de paridade. Ou seja, o tamanho do phit (largura
fsica do canal) igual a 36 bits, porm, alm desses, cada canal simplex inclui um par
de sinais necessrios ao controle de fluxo, os quais no so contabilizados no clculo do
phit do canal.

Roteador Roteador SPIN Roteador Roteador

Roteador Roteador Roteador Roteador

Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo

Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo Ncleo

FIGURA 3.10 SoC com 16 ncleos interconectados por uma rede SPIN.

Roteamento

O mecanismo de roteamento utilizado na rede SPIN varia com o sentido de


deslocamento de um pacote pela rede. Quando um cabealho de pacote chega em um
roteador, feita a comparao de um conjunto de bits do endereo do destinatrio
contidos no cabealho com a prpria identificao do roteador. Em funo do resultado
dessa comparao, o roteador decide se o pacote deve subir na rede, afastando-se das
folhas da rvore, ou descer, aproximando-se do seu destinatrio. Para os pacotes que
sobem, o mecanismo de roteamento adaptativo e qualquer canal de sada em direo
ao nvel superior da rede pode ser utilizado, conforme a disponibilidade dos mesmos e
em funo de um mecanismo de escolha aleatria. Para pacotes que descem, o
roteamento determinstico e o canal de sada a ser utilizado em direo ao nvel
inferior est identificado no endereo do destinatrio, sendo, portanto, pr-determinado
pelo emissor do pacote. Com relao ao local onde as decises so tomadas, o
roteamento distribudo para os pacotes que sobem e fonte para os pacotes que descem
na rede, pois, no primeiro caso so os roteadores que escolhem os canais de sada a
serem utilizados, enquanto que, no segundo caso, so as interfaces de rede dos nodos
fontes que tomam essa deciso. Em ambos os casos, os mecanismos de roteamento so
dinmicos, pois so realizados em tempo de execuo. Observando-se a Figura 3.10,
pode-se concluir que as comunicaes entre ncleos conectados a um mesmo roteador
jamais utilizaro o roteamento adaptativo, enquanto que as comunicaes entre ncleos
conectados a diferentes roteadores devero subir pela rvore de maneira adaptativa.

Um problema do roteamento adaptativo aplicado aos pacotes que sobem pela


rede a possibilidade de perda do ordenamento original dos pacotes enviados, pois cada
pacote poder tomar um caminho diferente e chegar no destinatrio em uma ordem
diversa daquela na qual foram emitidos, pois a latncia pode variar de um caminho para
outro. Esse problema deve ser resolvido pelo protocolo de comunicao, conforme ser
discutido no final desta subseo.
70

Chaveamento
A rede SPIN utiliza uma variao do chaveamento wormhole, a qual
semelhante tcnica denominada buffered wormhole switching utilizada na rede de
interconexo do multiprocessador IBM SP [STU 94]. Essa tcnica combina aspectos
dos chaveamentos por pacote armazena-e-repassa (ou SAF) e wormhole, sendo que seu
nome justificado pelo fato de que cada roteador possui um buffer central para absorver
pequenos pacotes bloqueados na rede, mas o controle de fluxo feito em nvel de flit.
Dessa forma, dependendo das condies de trfego e do tamanho dos pacotes, ele pode
se comportar de forma anloga ao wormhole ou ao chaveamento por pacotes. Na rede
SPIN, so implementados dois buffers centrais um para cada lado do roteador (superior
e inferior) e quando um pacote bloqueado em um canal de entrada, seus flits so
movidos para o buffer central correspondente, conforme a disponibilidade de espao
para absorv-los. A primeira vantagem dos buffers centrais que seu uso ameniza o
problema do bloqueio de cabea de linha13, pois quando um pacote bloqueado
completamente movido para um buffer central, a sada do buffer de entrada em que ele
estava armazenado fica liberada para o pacote seguinte na fila. Uma segunda vantagem
que, no esquema de arbitragem, descrito logo a seguir, a prioridade maior dada aos
pacotes armazenados nos buffers centrais. Isso permite reduzir a latncia de um pacote
na rede e tambm estabelecer um certo grau de qualidade de servio, pois os pacotes so
classificados em dois tipos: os que podem ser movidos para os buffers centrais e os que
no podem. Os pacotes do primeiro tipo tero um atendimento mais privilegiado que os
do segundo e sero submetidos uma latncia mdia menor para atingir seus
destinatrios.
Desde que o chaveamento da rede SPIN um variante do chaveamento
wormhole, os pacotes so divididos em flits14 (unidades de controle de fluxo), sendo que
cada flit possui o tamanho de um phit (largura do canal), ou seja, 36 bits.

Formato do pacote

O primeiro flit de um pacote carrega o cabealho, no qual oito dos 32 bits da


parte de dado so utilizados para identificar um entre 256 destinatrios possveis. Dos
24 bits restantes da parte de dado do cabealho, um usado identificar se o pacote est
habilitado ou no a utilizar os buffers centrais e os demais so reservados ao protocolo
de nvel mais alto, como, por exemplo, para enumerar os pacotes emitidos de modo que
o receptor possa reorden-los em caso de recebimento fora da ordem de emisso. A
carga til do pacote pode ter qualquer tamanho e o terminador um flit no qual o bit
marcador de fim de pacote (eop) da banda lateral estabelecido em um. previsto que
um pacote tpico tenha um tamanho mdio correspondente ao nmero de flits
necessrios para a transferncia de uma linha de cache com quatro palavras de 32 bits,
ou seja, um flit de cabealho e quatro pares de flits para endereo e dado, totalizando
nove flits.

13
Ver definio nas subsees 2.6.2 (Controle de fluxo baseado em canais virtuais) e 2.7.1 (Memorizao
centralizada compartilhada).
14
Ver definio na subseo 2.5.4 (Chaveamento por pacote wormhole).
71

Roteador

O bloco construtivo bsico da rede SPIN o roteador RSPIN mostrado na


Figura 3.11. Ele possui quatro portas bidirecionais dirigidas ao nvel inferior da rede e
quatro portas bidirecionais dirigidas ao nvel superior da rede, as quais so
denominadas, respectivamente, portas inferiores e portas superiores. Nos canais de
entrada de cada porta, h um buffer tipo FIFO com capacidade para armazenar quatro
flits. Alm desses, existem dois buffers (ou filas) centrais compartilhados com
capacidade para armazenar 18 flits de pacotes bloqueados nos buffers dos canais de
entrada, minimizando o problema do bloqueio de cabea de linha. Um buffer central
dedicado s portas inferiores e o outro s portas superiores, sendo que a capacidade de
cada buffer central permite o armazenamento de dois pacotes do tamanho de uma linha
de cache de 32 bits. As sadas dos buffers, os canais de sada e as entradas dos buffers
centrais so interconectados por uma chave crossbar 1010 parcial, na qual nem todas
as conexes so implementadas devido a restries impostas pelo algoritmo de
roteamento. Essa chave crossbar construda de forma distribuda por meio de
multiplexadores baseados em buffers tri-state. Cada multiplexador alocado a um dos
recursos compartilhados do roteador, ou seja, aos canais de sada e s filas centrais.

canais canais
Arbitragem e Roteamento

de entrada de sada
superiores superiores

canais canais
de entrada de sada
inferiores inferiores

Crossbar
10x10
parcial

filas centrais (inferior e superior)

FIGURA 3.11 Roteador RSPIN [GUE 2000a].

Quanto ao bloco de arbitragem e de roteamento, ele tambm implementado de


maneira distribuda. Cada canal de entrada possui um bloco de roteamento que detecta a
presena de um cabealho de pacote na sada do buffer de entrada, aplica o algoritmo de
roteamento e requisita o canal de sada necessrio para o encaminhamento do pacote. Se
o canal de sada estiver ocupado, o bloco de roteamento ento requisita o buffer central
associado ao tipo de canal do buffer de entrada (desde que o pacote esteja habilitado a
ser encaminhado para um buffer central). As filas centrais tambm possuem seus blocos
de roteamento para a seleo do canal de sada. J os blocos de arbitragem so
associados a cada recurso compartilhado do roteador, ou seja, canais de sada e entradas
dos buffers centrais. Eles aplicam um algoritmo de arbitragem baseado em prioridades
dinmicas rotativas de modo a oferecer uma utilizao balanceada desses recursos.
Contudo, os buffers centrais possuem prioridade maior em relao aos canais de
entrada.
72

No que tange a realizao fsica, o roteador RSPIN implementado como uma


macroclula de hardware (um hard-core) e possui 9144 portas lgicas, ocupando uma
rea de 4400 4560. Em um processo .25 CMOS com seis camadas de metal, a
2 2
rea de 0,8 mm , sendo reduzida para 0,45 mm em um processo .18 CMOS. Da rea
total, 29,6% ocupada pela parte de memorizao (buffers de entrada e centrais).

Estudos preliminares sugerem que o custo em rea para uma rede SPIN com
2
32 terminais menor que 13 mm em um processo .25 CMOS. Estima-se que, em uma
2
rea de silcio com menos de 20 mm , seja possvel implementar uma rede com
64 terminais em um processo .18 CMOS ou com 128 terminais em um processo
.13 CMOS [GUE 2002b]. Nessas estimativas, assumido o uso do roteador RSPIN
com canais de dados de 32 bits e com as mesmas profundidades de buffer.

Memorizao

Em funo da tcnica de chaveamento buffered wormhole, a rede SPIN utiliza


memorizao na entrada e memorizao centralizada compartilhada. Cada roteador
RSPIN inclui 144 bytes nos oito buffers de entrada com capacidade de 4 flits
(8 4 36 bits = 1152 bits) e 162 bytes nos dois buffers centrais com capacidade de
18 flits (2 18 36 bits = 1296 bits), totalizando 306 bytes de memorizao. Nesses
dados, no esto contabilizados os registradores necessrios ao armazenamento dos
estados dos autmatos do roteador.

Desempenho

O ciclo de relgio obtido por simulao eltrica para uma rede SPIN com
32 terminais em um processo .25 CMOS de 5 ns (200 MHz). Para essa rede, a
largura de banda agregada mxima estimada ser de 204.8 Gbit/s
(32 200 MHz 32 bits). Apenas para comparao, a largura de banda mxima
estimada para o barramento de sistema (PLB) da arquitetura CoreConnect de
23,2 Gbit/s para uma arquitetura de 128 bits [IBM 99]. J em um rede SPIN com 128
terminais, a largura de banda agregada mxima estimada de 1,82 Tbit/s, considerando
um processo .13 CMOS [GUE 2000a].

Controle de fluxo

A rede SPIN utiliza controle de fluxo baseado em crditos. Um crdito inicial


dado ao transmissor e esse crdito decrementado a cada flit enviado. Quando o
receptor consome esse flit, ele notifica o transmissor, enviando-lhe um crdito atravs
de uma das linhas de controle de fluxo. Quando o sistema inicia seu funcionamento, os
crditos dos emissores so estabelecidos no valor correspondente capacidade dos
buffers de entrada dos receptores (quatro posies).

Reusabilidade e interconectividade

O protocolo de comunicao utilizado na rede SPIN baseado no modelo de


troca de mensagens, o qual difere dos protocolos usados na maioria dos ncleos
disponveis para a construo de SoCs. Esses ncleos utilizam ou o modelo de espao
73

de endereamento ou o modelo de fluxo de dados (eg. processamento de vdeo), sendo


que este ltimo e algumas verses do primeiro no admitem o recebimento de pacotes
em uma ordem diferente daquela enviada [GUE 2000a], o que pode ocorrer na rede
SPIN devido ao uso de roteamento adaptativo.

Para oferecer a capacidade de reordenamento de pacotes, necessrio que,


primeiramente, o emissor enumere os pacotes emitidos, utilizando os bits de protocolo
de alto nvel disponveis no cabealho do pacote SPIN. Aps, preciso que o receptor
implemente um buffer para armazenar esses pacotes e entreg-los na ordem correta.
Esse protocolo deve ser implementado pelo adaptador que conecta o ncleo rede.

A identificao dos pacotes se faz necessria tambm em SoCs que utilizem


processadores multi-threaded. Se uma thread executando em um processador envia um
pacote de requisio para a leitura de dados em uma memria remota por exemplo, uma
nova thread poder ser escalonada enquanto a primeira aguarda pelo recebimento do
pacote de resposta. Quando esse pacote chegar, preciso identificar a qual thread ele se
refere a fim garantir o funcionamento correto do sistema. Embora, nesse caso, o
problema no decorra do roteamento adaptativo, preciso assegurar que o protocolo de
comunicao permita estabelecer a identificao dos pacotes em funo das threads s
quais eles esto associados.

Para garantir a reusabilidade e a interconectividade com ncleos de diferentes


fabricantes, a rede SPIN prev o uso de interfaces de rede (tambm denominadas
adaptadores ou wrappers) para realizar a traduo entre o protocolo nativo SPIN e o
padro VCI (Virtual Component Interface). O adaptador SPIN/VCI colocado entre o
ncleo e a rede, sendo que existem dois tipos de adaptadores: um para componentes que
operam como mestres da comunicao ou iniciadores de requisies (eg. processadores)
e outro para componentes escravos ou alvos de requisies (eg. memria). O ncleo
conectado ao adaptador SPIN/VCI deve possui uma interface VCI ou, se sua interface
for proprietria, utilizar um segundo adaptador para fazer a traduo entre o seu
protocolo e o protocolo VCI. Os adaptadores SPIN/VCI utilizam transaes divididas
(protocolo split) para permitir que um mestre envie uma srie de pacotes de requisio a
um ou vrios escravos mesmo antes do recebimento do primeiro pacote de resposta. Se
esse recurso no fosse usado, a latncia da rede iria impor restries significativas
comunicao, pois o mestre teria que aguardar o retorno do pacote de resposta para
enviar um novo pacote de requisio. Como os pacotes de resposta podem ser recebidos
em uma ordem diferente daquela na qual os pacotes de requisio foram emitidos, um
buffer utilizado para garantir a entrega das respostas ao ncleo na mesma ordem das
requisies por ele enviadas.

Como o mecanismo de controle de fluxo baseado em crditos garante que os


flits de pacotes s so emitidos se o receptor tiver capacidade de absorv-los, a
possibilidade de perda de pacotes mnima, salvo falhas na rede. Mecanismos de
retransmisso podem ser implementados nos adaptadores seja para reenviar um pacote
para o qual foi detectado um erro de paridade na transmisso ou para retransmitir um
pacote perdido devido a uma falha na rede.
74

Limitaes da arquitetura SPIN

Um problema muito importante em sistemas multiprocessados com


compartilhamento de dados em memria o da coerncia de cache. Enquanto o
barramento oferece suporte em hardware para garantir a coerncia das cpias dos dados
compartilhados em memria, a rede SPIN no oferece nenhum mecanismo especfico
para esse fim. A ausncia desse suporte justificada pela complexidade e pelo custo de
sua implementao em sistemas embarcados e pelo fato de que esses sistemas so
multiprocessadores preferencialmente heterogneos e assimtricos, com primitivas de
sincronizao simples e invalidao explcita, as quais so facilmente suportadas por
protocolos mais simples.

Uma segunda limitao diz respeito ao fato de no se ter garantido a ausncia de


deadlock na rede SPIN. Uma soluo aplicada foi reservar metade dos canais de sada
das portas superiores do roteador a pacotes que transportam uma requisio
(eg. requisio de leitura) e a outra metade a pacotes que transportam uma resposta
(eg. dados lidos). Essa soluo confirmou ser efetiva por simulao, mas at o momento
da publicao desta tese, ainda no se havia provado formalmente se ela garante a
liberdade de deadlock.

3.3.2 A arquitetura de interconexo aSoC


A arquitetura aSoC (adaptive System-on-Chip)15 uma rede de interconexo
chaveada experimental com largura de banda escalvel dirigida a sistemas orientados ao
fluxo de dados. Essa rede difere da arquitetura SPIN por utilizar roteamento esttico
definido em tempo de compilao [LIA 2000].

Topologia

A topologia da rede de interconexo aSoC do tipo direta, sendo que cada nodo
da rede constitudo pelo ncleo e seu roteador. O roteador possui quatro portas
bidirecionais para conexo com nodos vizinhos e uma interface bidirecional para
conexo com o ncleo local, sendo que o canal possui uma largura de 32 bits (tamanho
do phit).

A estrutura da rede determinada pelo projetista em funo dos requisitos do


sistema, entretanto ela limitada pelo grau do nodo, o qual permite que cada nodo seja
conectado a no mximo outros quatro nodos. Com isso, pode-se implementar topologias
como a grelha 2-D ou uma topologia irregular qualquer. Na Figura 3.12, apresentado
um sistema integrado aSoC genrico utilizando uma rede de interconexo com
topologia em grelha 2-D.

15
Pgina do Projeto aSoC disponvel por WWW em http://vsp2.ecs.umass.edu/vspg/ASOC/index.html
(acesso em 20 de julho de 2003).
75

Ncleo Ncleo Ncleo

Ncleo Ncleo Ncleo

Ncleo Ncleo Ncleo

FIGURA 3.12 Sistema com 9 ncleos interconectados por uma rede em grelha 2-D.

A arquitetura aSoC foi projetada para uso em sistemas reconfigurveis


heterogneos, como os exemplos ilustrados no sistema da Figura 2.13. No sistema
mostrado, existem trs tipos de ncleos: FPGA, processador RISC (Reduced
Instruction-Set Computer) e multiplicador-acumulador (MAC). Na Figura 3.13.a, so
mostradas as comunicaes necessrias para a execuo de uma aplicao de
filtro IIR (Infinite Impulse Response) de cinco estgios. Primeiramente, um ncleo
RISC realiza um pr-processamento e, aps, cinco MACs executam os estgios de
multiplicao e acumulao. O resultado final colhido pelo segundo processador
RISC, sendo que nem todos os ncleos disponveis no sistema so utilizados por essa
aplicao. No entanto, eles podem ser aproveitados em outras aplicaes. O FPGA, por
exemplo, pode ser utilizado para implementaes especficas aplicao, como o
decodificador Viterbi da Figura 3.13.b. Nas figuras, cada passo de comunicao est
identificado por um nmero de seqncia. Observa-se que o modelo de comunicao
utilizado por essas duas aplicaes o de fluxo de dados e que o padro de
comunicao de cada aplicao pode ser completamente determinado em tempo de
compilao.

RISC MAC FPGA RISC MAC FPGA

1
MAC MAC MAC MAC MAC MAC
3 4 3
2
4

2
RISC MAC MAC RISC MAC MAC

6 5 6 5

(a) (b)

FIGURA 3.13 Padres de comunicao da execuo de duas aplicaes em um SoC


heterogneo com nove ncleos: (a) filtro IIR; (b) decodificador Viterbi.
76

Roteamento

O mecanismo de roteamento usado na rede aSoC pode ser classificado como


esttico, centralizado e determinstico. A configurao de cada roteador, para cada ciclo
de execuo da aplicao, determinada pelo escalonador durante a compilao e
carregada em uma memria interna do roteador, a qual denominada memria de
interconexo. Um contador de programa indica a posio de memria a ser utilizada
para configurar o crossbar em cada ciclo.

Esse escalonamento da comunicao em tempo de compilao feito com base


na premissa de que a maior parte da comunicao em aplicaes intensivas em dados
pode ser determinada em tempo de compilao. Isso permite uma reduo do hardware
e um aumento do desempenho da comunicao ao custo da perda de flexibilidade. O
escalonador maximiza a quantidade de mensagens trocadas simultaneamente,
colocando, em um mesmo ciclo, comunicaes que no requerem o uso dos mesmos
recursos de comunicao (eg. canais). Essa abordagem tem sido utilizada em diversos
sistemas de processamento paralelo, como o iWarp [BOR 90], o NuMesh [SHU 96] e o
RAW (Reconfigurable Architecture Workstation) [WAI 97].

Chaveamento

A rede aSoC utiliza uma variao do chaveamento por circuito. A cada ciclo de
relgio, so estabelecidos caminhos diretos entre pares fonte-destinatrio, sendo que
cada caminho pode ocupar um ou mais canais da rede. O algoritmo de escalonamento
analisa o perfil de comunicao da aplicao e determina os circuitos que podem ser
estabelecidos simultaneamente, maximizando o paralelismo nas comunicaes. A
diferena principal com o chaveamento por circuito clssico que o uso de roteamento
esttico permite que os circuitos sejam determinados antes da execuo da aplicao.
Isso evita a necessidade de uma fase inicial de envio de um cabealho para o
estabelecimento do caminho fonte-destinatrio.

Roteador

O roteador da arquitetura aSoC, mostrado na Figura 3.14, consiste de um


crossbar 56 no qual uma das interfaces usada para conexo com o ncleo local e as
outras quatro para conexo com os nodos vizinhos. Uma sexta sada do crossbar
utilizada internamente para configurar um contador usado em transferncias de
mensagens de tamanho arbitrrio. O roteador inclui ainda uma memria de
interconexo, um contador de programa, buffers de entrada e buffers FIFO para
comunicao com o ncleo local. A memria de interconexo armazena diferentes
padres de configurao determinados pelo compilador, enquanto que o contador de
programa seleciona a configurao a ser utilizada em cada ciclo, selecionando uma
posio da memria de interconexo.
77

Interface para o core

F F
I I
F F
O O

Norte Norte
Sul Sul
Leste Leste
Oeste Oeste
Crossbar 5x6

+1

PC
...

Memria de
interconexo

FIGURA 3.14 O roteador aSoC.

O roteador aSoC possui 50.000 transistores ocupando uma rea de


6000 5000, sendo que o crossbar ocupa uma rea de 4000 2800 e possui 2.300
transistores. Nenhuma informao adicional sobre a realizao fsica do roteador foi
encontrada na literatura disponvel.

Memorizao

A rede aSoC utiliza um esquema de memorizao particular. Em funo de seus


mecanismos de roteamento e chaveamento, seus roteadores incluem uma memria de
interconexo de tamanho varivel, conforme as aplicaes-alvo do sistema. Por
exemplo, a implementao realizada em [LIA 2000] utilizou uma memria
de 25632 bits (1 Kbyte). A memorizao de entrada mnima (54 bytes = 20 bytes,
para uma palavra de 32 bits), enquanto que os buffers FIFO da interface com o ncleo
local possuem uma profundidade de quatro palavras (2 4 4 bytes = 16 bytes) e o
contador de programa ocupa 16 bits (2 bytes). Com isso, um roteador aSoC com uma
memria de 256 posies ter um total de 1062 bytes (1024 + 20 + 16 + 2).

Desempenho

Estimativas indicam que em uma implementao usando um processo


.3 m CMOS, o perodo mnimo de operao do relgio ser de 3 ns (333 MHz)16. Uma
rede aSoC com 16 terminais usando uma topologia em grelha 2-D ter uma largura de
biseco igual a 8, considerando dois canais em cada enlace. Com a tecnologia citada
acima, essa rede ter uma largura de banda agregada mxima estimada de
aproximadamente 85,2 Gbit/s (8 333 MHz 32 bits).

16
Esse valor refere-se a uma estimativa conservadora, a qual foi feita sobre um valor escalado dos
resultados de simulao obtidos para um roteador projetado com tecnologia de 1.2 m CMOS (caminho
crtico igual a 8,5 ns obtido por simulao via SPICE [LIA 2000]).
78

Uma rede SPIN equivalente, com 16 terminais, usando um processo


.25m CMOS, ter uma largura de banda mxima estimada de 102,4 Gbit/s
(16 200 MHz 32 bits), considerando o mesmo ciclo de relgio estimado para a rede
com 32 terminais. Nesse caso, mesmo que a rede aSoC opere em uma freqncia mais
alta, a rede SPIN possuir uma largura de banda agregada maior em funo da largura
de biseco da sua topologia em rvore gorda ser maior que a da grelha.

Controle de fluxo

Na interface entre o roteador e o ncleo local, os buffers FIFO provem um meio


de compatibilizar a diferena de velocidade entre o ncleo e o roteador, sendo, neste
caso, utilizado um controle de fluxo do tipo FIFO. O ncleo s pode escrever no buffer
de entrada do roteador se o mesmo no estiver cheio e s pode ler do buffer de sada se
o mesmo no estiver vazio. O estado de cada buffer indicado por um bit de controle.

Interconectividade e reusabilidade

O roteamento esttico e determinstico utilizado na rede aSoC a torna bastante


adequada para uso em aplicaes orientadas ao fluxo de dados, como, por exemplo,
aplicaes em processamento digital de sinais, com a vantagem de oferecer uma
estrutura adaptvel ao padro de comunicao de cada aplicao.

As informaes disponveis na literatura a respeito da rede aSoC do a entender


que a interface entre o ncleo e o roteador constituda apenas pelos FIFOs de entrada e
de sada, utilizando o mecanismo de controle de fluxo tipo FIFO. Ou seja, para conectar
qualquer ncleo ao roteador aSoC, preciso adicionar um adaptador para esse tipo de
interface. possvel que essa limitao seja decorrente do aparente uso restrito da rede
ao escopo do projeto. Enquanto a rede SPIN j inclui adaptadores de protocolo para o
padro VCI, a literatura sobre a rede aSoC no menciona a disponibilidade de
adaptadores para interfaces padro (eg. VCI ou OCP).

Limitaes

Em [LIA 2000], so apresentados resultados de simulao de sistemas com 9 e


16 ncleos executando trs aplicaes de processamento digital de sinais. Utilizando o
simulador NSIM [MET 92], foram modeladas verses desses sistemas usando trs tipos
de arquitetura de comunicao: barramento, rede aSoC e rede chaveada com roteamento
dinmico e chaveamento por pacotes (os autores no oferecem detalhes sobre a
arquitetura dessa rede). Os resultados finais mostram que ambas as redes-em-chip
proporcionam uma reduo no tempo de execuo das aplicaes quando comparadas
com o barramento. A rede aSoC mostrou-se mais eficiente, com menores tempos de
execuo e taxas de utilizao de enlace. Contudo, os resultados obtidos com a rede
chaveada com roteamento dinmico so bastante prximos aos da aSoC. Embora os
resultados do trabalho supracitado mostrem que a rede aSoC com roteamento esttico
oferece um desempenho melhor que o de uma rede com roteamento dinmico para as
aplicaes simuladas, justamente a falta de roteamento em tempo de execuo que
identificada pelos autores como uma limitao significativa da rede aSoC.
Considerando a necessidade desse tipo de roteamento, eles propem, como abordagem
alternativa, realizar alguns ciclos do escalonamento em tempo de execuo. Nessa
abordagem, os cabealhos dos pacotes so examinados pelo roteador e a informao
79

resultante do roteamento armazenada em uma pequena memria. Transferncias de


dados subseqentes podem ento utilizar essa informao armazenada para encaminhar
os dados em direo ao destinatrio correto.

Outra limitao comentada pelos autores diz respeito ao tamanho da memria de


interconexo, a qual deve ser grande o suficiente para acomodar um espectro largo de
aplicaes, o que pode encarecer o roteador. Finalmente, assim como na rede SPIN,
nenhum mecanismo em hardware oferecido para suportar a coerncia de cache, o que
provavelmente deve ser justificado pelo tipo de sistemas e aplicaes visadas pelo
projeto aSoC.

3.3.3 Outras redes-em-chip


As redes-em-chip descritas acima constituem dois exemplos de alternativas ao
barramento que utilizam caractersticas arquiteturais diferentes. Enquanto a SPIN adota
roteamento dinmico e um tipo de chaveamento por pacotes, a rede aSoC
utiliza roteamento esttico e uma variante do chaveamento por circuito. A primeira
abordagem bastante questionada por muitos pesquisadores face latncia de
comunicao decorrente do roteamento dinmico. Entretanto, ela a soluo mais
flexvel e genrica, permitindo seu uso em sistemas baseados em diferentes modelos de
computao e de comunicao, sobretudo em aplicaes com trfego dinmico. Tal
afirmativa pode ser confirmada pelo aumento recente de trabalhos baseados nessa
abordagem. Nesta subseo, so apresentadas algumas arquiteturas de redes-em-chip
mais recentes de modo a ilustrar opes de projeto mais utilizadas atualmente.

O toride dobrado de Dally e Towles

Em [DAL 2001], Dally e Towles propem o uso das redes-em-chip baseadas em


roteamento dinmico e chaveamento por pacotes do tipo wormhole como alternativa de
interconexo em sistemas integrados. Segundo os autores, o uso dessas redes no lugar
de conexes multi-ponto ad-hoc permite a aplicao de circuitos de sinalizao
agressivos de modo a reduzir a dissipao de potncia e aumentar a velocidade de
propagao, reduzindo a latncia e aumentando a largura de banda. Em resumo, a idia
estruturar um SoC como uma matriz de blocos de tamanho regular que se comunicam
pela troca de pacotes atravs de uma rede de interconexo chaveada com topologia
direta do tipo toride dobrado (uma variao do toride 2-D). Os autores apresentam um
exemplo de rede que apresenta um custo adicional de silcio estimado em 6,6 %. Essa
rede possui muitas caractersticas semelhantes s da rede SPIN, contudo, algumas
diferenas devem ser destacadas:

a) O SoC organizado como uma matriz de blocos quadrados, denominados tiles.


Cada ncleo mapeado em um desses blocos e os roteadores so ento
implementados de forma distribuda ao redor dos blocos.
b) O canal de comunicao extremamente largo, com um campo de dado de 256 bits
mais 38 bits para sinais de controle e identificao da rota, entre outros
(phit = 294 bits). Com isso, em um nico flit pode ser transferida uma linha de
cache completa ou mesmo todos os sinais lgicos de uma interface de um ncleo
qualquer com at 256 sinais de entrada-e-sada;
80

c) Para cada canal fsico, existem oito canais virtuais que possibilitam o provimento de
maior qualidade de servio para alguns tipos de pacotes, como, por exemplo,
pacotes pr-escalonados referentes a aplicaes que apresentam um perfil de
comunicao quase esttico, com grandes fluxos de dados e que exigem alta largura
de banda e latncia reduzida. Alm disso, os canais virtuais minimizam o problema
do bloqueio de cabea de linha e permitem que se evite o congelamento da rede por
deadlock.
d) Cada roteador requer aproximadamente 6000 bytes de memorizao (cerca de
20 vezes mais que no RSPIN). Tal requisito deve-se ao tamanho do phit e ao
nmero de canais virtuais.

Na Figura 3.15, ilustrada a organizao da rede proposta, mostrando-se sua


topologia, as interfaces do roteador distribudo (denominadas N, E, S, W e L) e a
organizao interna da interface E (leste).

W L E
N
W VC1
E in
L
S
S VC8

N
W
Eout
L
S

(a) (b) (c)

FIGURA 3.15 Rede proposta em [DAL 2001]: (a) topologia; (b) roteador distribudo;
(c) interface leste do roteador.

A rede Octagon

Em [KAR 2002], Karim, Nguyem e Dey descrevem uma rede de interconexo


chaveada para um processador de rede OC-768 destinado a operar como roteador de
backbone da Internet. Com base, nos requisitos de processamento e de comunicao
intra-chip da aplicao, os autores afirmam que um roteador OC-768 requer uma
arquitetura multiprocessada com memria distribuda capaz de executar mais de
57 GIPS e uma arquitetura de comunicao que suporte uma taxa de dados da ordem de
40 Gbit/s [KAR 2001]. A arquitetura ideal para tal aplicao seria o crossbar, mas tal
arquitetura possui uma escalabilidade cara O(n2). Dessa forma, os autores propem
uma rede de interconexo chaveada cujo custo cresce linearmente com o nmero de
nodos. A configurao bsica dessa rede um agregado com oito nodos, denominado
Octagon, e utiliza uma topologia direta do tipo anel-cordal [HWA 93]. Cada nodo
constitudo por um roteador 44 e um processador e/ou memria, conforme ilustrado
na Figura 3.16. A principal caracterstica dessa topologia que a distncia mxima entre
dois nodos igual a dois. Ou seja, para nodos conectados a um mesmo agregado, esse
o nmero mximo de enlaces entre roteadores a serem percorridos por um pacote
qualquer.
81

(a) (b)

FIGURA 3.16 Rede Octagon [KAR 2002]: (a) topologia bsica com 8 nodos;
(b) escalabilidade.

A rede Octagon utiliza roteamento dinmico e distribudo, e pode operar com


chaveamento por circuito ou por pacotes. No chaveamento por circuito, um mecanismo
utilizado para escalonar comunicaes que no ofeream conflitos de recursos e que
possam ser estabelecidas simultaneamente. Segundo uma anlise de desempenho, para
sistemas equivalentes, a vazo oferecida pela Octagon oito vezes maior que a do
barramento e duas vezes maior que a do crossbar. Alm disso, a arquitetura Octagon
apresenta escalabilidade linear atravs do uso de nodos-ponte para interconectar
agregados (conforme ilustrado na Figura 3.16.b) ou pela incluso de nodos com uma
porta adicional para interconexo de cada nodo com quatro nodos vizinhos, abordagem
que produz uma arquitetura mais compacta quanto ao nmero de enlaces e rea do
leiaute fsico.

A rede CLICH

Em [KUM 2002], Kumar et al. propem uma rede-em-chip baseada em uma


topologia em grelha 2-D e denominada CLICH (Chip-Level Integration of
Communicating Heterogeneous Elements), a qual mostrada na Figura 3.17. Segundo a
terminologia utilizada pelos autores, a rede possui mn chaves (roteadores), nas quais
so conectados os recursos do sistema (ncleos ou agregados de ncleos). Os recursos
so posicionados nas lacunas (slots) disponveis entre as chaves, sendo que recursos
maiores que a rea de uma lacuna podem ocupar mltiplas lacunas organizadas sob a
forma de regies. Uma regio uma rea dentro da rede que pode ter diferentes
topologias e mecanismos de comunicao, sendo conectada rede atravs de um
adaptador de comunicao (wrapper). Essa abordagem permite separar o
desenvolvimento, o gerenciamento e a instanciao das diferentes regies. Os autores
prevem que a rea de um recurso ser limitada mxima regio sncrona de uma dada
tecnologia. Com avano dos processos de fabricao essa rea ser reduzida e o nmero
de recursos ir aumentar, assim como a largura de banda das comunicaes entre as
chaves e entre os recursos e as chaves. Porm, os protocolos de comunicao da rede
no sero afetados.

Para uma tecnologia 60 nm CMOS, esperada para 2008, os autores prevem que,
em um chip com rea de 22 mm 22 mm, ser possvel construir um sistema que
acomode 10 10 recursos, cada um com uma rea de 2 mm 2 mm. Quanto infra-
82

estrutura da rede, os autores prevem que cada chave ocupar 30 m 30 m e os


canais de comunicao tero uma largura de 30 m, com a disponibilidade de 300 fios
por canal, sendo que 256 desses fios sero reservados aos dados e os outros 44 fios
sero alocados para as funes de enquadramento, controle de fluxo e roteamento.

S S S
rni rni rni
P
D
P onde:
C M M C M S = chave
re re
C
P = processador escalar
S S S
rni rni rni
D = processador digitais de sinais (DSP)
P C P P C
M = memria principal
M
M
C
re
M C = memria cache
S S S
re = bloco reconfigurvel
rni rni rni rni = interface de rede do recurso
P C
re D
M
M
C

FIGURA 3.17 Sistema baseado na rede CLICH [KUM 2002].

Alm da rede CLICH, os autores tambm propem uma metodologia de


projeto baseada em plataforma denominada BPS (Backbone-Platform-System). Ela
baseada na idia de se ter uma plataforma de aplicao especfica baseada em uma
espinha dorsal (backbone) na qual as aplicaes finais possam ser mapeadas como
software ou hardware configurvel. A metodologia estabelece trs fases diferentes no
projeto de um SoC baseado na rede CLICH. Durante a fase denominada
desenvolvimento do backbone, o foco do projeto a rede-em-chip (chaves, interfaces,
canais e protocolos de comunicao) e a definio dos tipos de regio. Na fase
denominada desenvolvimento da plataforma, criada a plataforma de computao
para uma dada rea de aplicao, envolvendo o escalamento da rede, a definio das
regies, o projeto dos recursos e a definio do sistema de controle. Por fim, na fase
denominada desenvolvimento da aplicao, a funcionalidade da aplicao mapeada
para os recursos. Em resumo, a metodologia estabelece a criao de uma arquitetura a
partir de um modelo geral de rede e o mapeamento da aplicao na arquitetura.

3.4 Consideraes

Neste captulo, procurou-se tratar das questes relativas comunicao em


sistemas integrados. Aps a apresentao de alguns conceitos, classificaes e
generalidades a respeito de SoCs, buscou-se aprofundar o tema proposto atravs de
estudos de caso, identificando-se limitaes e solues encontradas para o problema da
comunicao. Pde-se ver que, embora o barramento seja a soluo de melhor relao
custo/desempenho para os sistemas integrados atuais, os futuros SoCs, com dezenas a
centenas de ncleos, tero requisitos de comunicao difceis de serem suportados por
estruturas de tempo compartilhado, como o barramento. Para tais sistemas, a soluo
que atende a todos os requisitos identificados consiste nas redes-em-chip, pois so
reutilizveis, possuem largura de banda escalvel, oferecem paralelismo em
comunicao e apresentam melhores caractersticas quanto ao consumo de energia e
freqncia de operao. No captulo a seguir, apresentada uma metodologia para
avaliao do desempenho de comunicao de redes-em-chip, a qual foi aplicada durante
na modelagem e na avaliao da rede SPIN.
83

4 Modelagem e Simulao de Redes-em-Chip

Este captulo apresenta uma metodologia para avaliao do desempenho em


comunicao de redes-em-chip, a qual se baseia no uso de um simulador para sistemas
integrados com preciso de ciclos denominado CASS (Cycle-Accurate System
Simulator). Nessa metodologia, a rede a ser avaliada modelada utilizando uma
extenso da linguagem C para a descrio de sistemas sncronos no nvel de
transferncia entre registradores. Aps, a rede instanciada em conjunto com outros
modelos de ncleos, disponveis em uma biblioteca de componentes, para a construo
de um modelo de sistema integrado. Esse sistema simulado e obtm-se o dados para a
avaliao da rede, como, por exemplo, o nmero de ciclos para completar a execuo da
aplicao ou a latncia mdia de comunicao. O desempenho medido pode ento ser
comparado ao obtido com outras arquiteturas de comunicao, como, por exemplo, um
barramento central.

Essa metodologia foi aplicada durante estgio realizado no Departamento ASIM


do LIP6 sob a orientao do professor Alain Greiner. Foram desenvolvidos um modelo
CASS do roteador RSPIN, modelos de sistemas integrados baseados na rede SPIN e
benchmarks para validao dos modelos e avaliao de desempenho desses sistemas. Os
resultados obtidos foram ento comparados com medidas de execues dos benchmarks
em modelos de sistemas equivalentes baseados no barramento PI-Bus. Todos os
componentes de processamento utilizados na modelagem desses sistemas possuem
interface VCI e so utilizados adaptadores para conect-los s arquiteturas de
comunicao. Alguns dos resultados obtidos foram publicados nos Designers Forum
da conferncia Design Automation and Test on Europe DATE2003 [AND 2003].

Na organizao deste captulo, primeiramente, so apresentados aspectos


relacionados ao simulador CASS, ao padro VCI e ao barramento PI-Bus. Aps,
mostrado o processo de modelagem do roteador, descrevendo-se a organizao do
roteador e a estrutura do modelo desenvolvido. Finalmente, so descritos os sistemas
utilizados na avaliao de desempenho e os resultados obtidos.

4.1 O Simulador CASS

O simulador CASS (Cycle Accurate System Simulator) um simulador


ciclo-a-ciclo para modelagem e simulao de sistemas sncronos [PET 97, GRE 2001].
Ele baseado no modelo de autmatos comunicantes e permite a descrio de uma
arquitetura como um conjunto de mdulos interconectados por sinais, sendo que os
mdulos so descritos no nvel de transferncia entre registradores (RTL Register
Transfer Level).

No CASS, a arquitetura do sistema especificada atravs de um arquivo VHDL


estrutural (extenso .vst), no qual so instanciados componentes disponveis nas
bibliotecas (arquivos com extenso .a) e definidas as interconexes entre as instncias.
No arquivo .vst, pode-se instanciar vrias vezes um mesmo componente, como, por
exemplo, o modelo de um processador ou de uma memria RAM. Cada mdulo deve
ser descrito em linguagem C e compilado de modo a obter-se a biblioteca
correspondente [AND 2003].
84

Atualmente, as bibliotecas de componentes do CASS incluem modelos para a


construo de sistemas mono ou multiprocessados baseados no processador
MIPS R3000. Elas incluem tambm modelos para mdulos de memria RAM,
controladores de E/S, geradores de trfego e dois tipos de arquitetura de comunicao: o
barramento PI-Bus e a rede SPIN (cujo modelo foi implementado no contexto deste
trabalho). As bibliotecas incluem verses de componentes com interfaces compatveis
com o barramento PI-Bus e com o padro VCI. Alm disso, so disponibilizados
adaptadores de comunicao para a converso de protocolo PI-Bus/VCI e SPIN/VCI,
pois os componentes compatveis com o padro VCI requerem o uso desses adaptadores
para serem conectados a uma das arquiteturas de comunicao.

O simulador CASS dispe ainda de um sistema operacional multithread


denominado Mutek, o qual implementa as funes thread Posix. No Mutek, as
aplicaes podem ser implementadas como threads comunicantes que trocam
mensagens atravs de acessos de escrita e leitura em canais de comunicao. As threads
podem ser mapeadas em mltiplos processadores de modo a acelerar a computao. Os
canais de comunicao, por sua vez, so mapeados em um componente de memria
RAM compartilhada pelas threads. Por exemplo, na Figura 4.1.a, mostrada uma
aplicao hipottica implementada por trs threads comunicantes (numeradas de 0 a 2),
as quais trocam mensagens utilizando quatro canais (ou FIFOs) de comunicao. Essa
aplicao mapeada para um sistema igualmente hipottico (Figura 4.1.b), sendo que as
threads so mapeadas para trs instncias do modelo de processador MIPS R3000 e os
canais de comunicao so mapeados para uma instncia de um modelo de memria
RAM (denominada dat), na qual tambm so colocados os dados do sistema
operacional e das threads da aplicao. Por ser irrelevante explicao, na figura,
omitido o tipo de arquitetura de comunicao utilizado no sistema.

canal 0
thread 1 Arquitetura de Comunicao
canal 1

thread 0 canal 0
canal 1
thread 2 thread 1 thread 0
canal 2 canal 2

thread 2 canal 3

canal 3 dat mips2 mips1 mips0

(a) (b)
FIGURA 4.1 Implementao de aplicaes multi-threaded no CASS: (a) threads
comunicantes; (b) mapeamento da aplicao em um sistema multiprocessado.

4.1.1 Fluxo de modelagem e simulao


Na Figura 4.2, ilustrado o fluxo de modelagem e simulao de sistemas usando
o CASS. A simulao executada a partir do arquivo de descrio do sistema (.vst), das
bibliotecas de componentes (.a) e do arquivo executvel da aplicao (.out) gerado pelo
compilador/ligador C com base na descrio da aplicao (arquivos .c e .h). Ao executar
a simulao, o CASS pode gerar dois tipos de arquivo de sada. Se o sistema incluir uma
instncia do modelo TTY, ser possvel imprimir mensagens em um arquivo de sada
atravs do uso da funo C printf. De fato, esse componente um controlador de sada
que imprime mensagens em uma janela do monitor do computador, as quais so
85

tambm registradas em um arquivo denominado tty.out. O segundo arquivo de sada,


denominado simulation.txt, permite o registro do estado dos registradores e dos sinais
das interfaces dos componentes a cada ciclo de relgio, o que facilita a depurao dos
modelos utilizados.

Descrio de Hardware Aplicao

Descrio Bibliotecas
do SoC .h .c

.vst .a ... .a
Compilador C

.out

CASS/Mutek

simulation.txt tty.out

FIGURA 4.2 Fluxo de modelagem e simulao usando o CASS.

Em sistemas que no utilizem modelos de componentes programveis


(eg. processador MIPS R3000), no h aplicao a ser desenvolvida e carregada. Um
exemplo de sistema desse tipo pode incluir apenas instncias dos modelos de gerador de
trfego e de memria RAM, como ser visto mais tarde.

4.1.2 Descrio de um modelo CASS


Conforme apresentado em [GRE 2001], um modelo CASS de um componente
denominado XXX 17 descrito em linguagem C atravs dos arquivos XXX.h e XXX.c,
ilustrados na Figura 4.3. O primeiro arquivo (XXX.h) contm a estrutura de dados XXX,
a qual inclui os parmetros estruturais do componente, sua interface (portas de entrada e
de sada) e os registradores que representam o estado interno de uma instncia do
modelo. O segundo arquivo (XXX.c) inclui de duas a trs funes utilizadas para a
criao de uma instncia e para a descrio dos comportamentos seqencial e
combinacional do componente. Essas funes so denominadas, respectivamente:
CreateXXX( ), SequentialXXX( ) e CombinationalXXX( ), sendo que esta ltima no
implementada quando o componente baseado em um autmato de Moore. O arquivo
XXX.c deve incluir os arquivos access.h e beginner.h, os quais definem as primitivas
utilizadas para acessar a estrutura de dados, permitindo a leitura e escrita nas portas e
registradores do modelo. Essas funes so denominadas ReadPORT( ),
ReadREGISTER( ), WritePORT( ) e WriteREGISTER( ).

17
XXX o nome de um mdulo genrico qualquer (eg. router, vciram).
86

XXX.h XXX.c

Estrutura XXX Funes


- Parmetros - CreateXXX( )
- Interface - SequentialXXX( )
- Registradores - CombinationalXXX( )

FIGURA 4.3 Arquivos de um modelo CASS.

A funo CreateXXX( ) cria uma instncia particular do modelo XXX e deve


declarar todas as portas de entrada e sada por meio do uso da primitiva
DeclareModelPort( ). Ela chamada uma nica vez no incio da simulao e carrega os
parmetros estruturais da instncia.

A funo SequentialXXX( ) inclui as funes de transio e de gerao de


Moore. Ela chamada uma vez em cada ciclo de simulao e constituda por trs
sees:

a) Descrio da funo de transio nesta seo, podem ser utilizadas as primitivas


ReadPORT( ), ReadREGISTER( ) e WriteREGISTER( ). Podem ser feitas vrias
leituras de uma mesma porta ou de um mesmo registrador. Contudo, s permitida
uma nica escrita em cada registrador, sendo que as escritas nos registradores so
realmente efetuadas aps a chamada da funo UpdateREGISTER( ). Dessa forma,
duas leituras efetuadas antes e aps uma escrita em um registrador retornaro o
mesmo valor se elas forem posicionadas acima da chamada UpdateREGISTER( ) no
arquivo que descreve o modelo. Isso permite a descrio facilitada de vrios
autmatos operando em paralelo, sem a preocupao com a ordem na qual so
calculados os novos valores dos registradores. Por fim, a utilizao da primitiva
WritePORT( ) proibida nesta seo.

b) Atualizao dos registradores nesta seo, implementada a barreira de


sincronizao a partir da qual as escritas realizadas nos registradores sero
realmente efetivadas. Isso feito pela chamada funo UpdateREGISTER( ).

c) Descrio da funo de gerao de Moore nesta seo, so feitas as escritas nas


portas de sada atravs da utilizao da primitiva WritePORT( ). Os valores a serem
escritos so calculados a partir de leituras dos registradores atualizados na seo
anterior. Qualquer varivel intermediria que dependa do valor desses registradores
deve ser recalculada. As primitivas ReadPORT( ) e WriteREGISTER( ) no podem
ser usadas nesta seo.

A funo de gerao de Mealy descrita na funo CombinationalXXX( ), a qual


deve ser vazia quando descrito um autmato de Moore. Contudo, no caso de um
autmato de Mealy, ela pode ser chamada vrias vezes em um mesmo ciclo de
simulao. Logo, importante que se limite o nmero de sinais de Mealy para melhorar
o desempenho da simulao. Nessa funo, que tem uma nica seo, devem ser
utilizadas as primitivas ReadREGISTER( ) e ReadPORT( ) para ler o contedo dos
registradores e das portas de entrada. As sadas de Mealy so atualizadas atravs da
primitiva WritePORT( ), sendo que proibido o uso da primitiva WriteREGISTER( ).
87

4.2 O Padro VCI

O VCI (Virtual Component Interconnect) um padro de interface para a


interconexo de ncleos em sistemas integrados [VSI 2000], sejam esses sistemas
baseados em canais ponto-a-ponto, em um barramento ou uma rede-em-chip. Ele
estabelece conexes lgicas ponto-a-ponto entre os ncleos iniciador-VCI e alvo-VCI
da comunicao. O iniciador aquele que tem a capacidade de iniciar a comunicao e
enviar uma requisio ao alvo, o qual executa a requisio e envia uma resposta ao
iniciador. Ao iniciador, s permitido o envio de requisies e, ao alvo, o envio de
respostas. Uma conexo VCI ento formada por dois canais lunidirecionais, sendo um
para o iniciador enviar requisies e outro para o alvo enviar as respostas (Figura 4.4).
As larguras das vias de endereo e dado so definidas pelos requisitos dos componentes
ligados pela conexo VCI. Exemplos de requisio VCI e resposta VCI incluem,
respectivamente, uma requisio para leitura de um dado de uma posio do alvo e uma
resposta incluindo o dado lido.

requisio
Iniciador resposta Alvo

FIGURA 4.4 Conexo VCI ponto-a-ponto.

Em uma transao VCI, as informaes so transferidas sob a forma de pacotes


de requisio e de resposta. Por definio, um pacote VCI o objeto de transporte pelo
qual so transferidas uma ou mais clulas VCI, de forma ordenada e atmica, atravs de
um canal VCI. (transferncias simples e em rajada). Uma clula VCI corresponde
unidade de informao bsica transferida no canal VCI em um nico ciclo, sendo
definida pela largura fsica em bytes da via de dados implementada no canal. Um pacote
de resposta deve conter o mesmo nmero de clulas do pacote de requisio ao qual ele
se refere. Alm disso, um protocolo de handshake deve ser aplicado a cada clula do
pacote de modo a garantir o controle do fluxo de dados no canal VCI.

Cada ncleo compatvel com o VCI deve implementar o tipo de interface


correspondente sua funcionalidade: iniciador-VCI ou alvo-VCI, conforme os
exemplos da Figura 4.5.a e da Figura 4.5.b, respectivamente. Se um determinado ncleo
possui as duas funcionalidades (por exemplo, um coprocessador), ele deve implementar
os dois tipos de interface (Figura 4.5.c). Contudo, se a interface do ncleo no for
compatvel com o VCI, um circuito adicional deve ser utilizado para realizar a
adaptao dos dois protocolos (Figura 4.5.d). Esse circuito denominado adaptador,
sendo que ele deve implementar o mnimo de armazenamento de endereo e de dado,
enquanto que a latncia por ele acrescentada deve ser a menor possvel. Em ingls, esse
tipo de circuito referenciado pelo termo wrapper (envolvedor ou envelopador) por
envolver o circuito original.
88

req rsp

iniciador-VCI
no-VCI
req rsp req rsp req rsp req rsp

Iniciador-VCI alvo-VCI Iniciador-VCI alvo-VCI no-VCI


Processador Memria Coprocessador Processador
(a) (b) (c) (d)

FIGURA 4.5 Uso da interface VCI: (a) processador; (b) memria ; (c) coprocessador;
(d) processador no-VCI com adaptador iniciador-VCI.

Para interconectar ncleos compatveis com o padro VCI, necessrio que a


arquitetura de comunicao a ser utilizada oferea terminais tambm compatveis com o
padro VCI. Em geral, as arquiteturas de comunicao utilizam protocolos proprietrios
e cabe ao seu desenvolvedor oferecer os adaptadores necessrios traduo entre o
protocolo proprietrio e o protocolo VCI a fim de facilitar o trabalho do integrador.

O padro VCI estabelece trs nveis de complexidade visando aplicaes com


diferentes requisitos: VCI perifrico, VCI bsico e VCI avanado. O primeiro
estabelece uma interface mais simples e de menor custo. O segundo define uma
interface adequada maioria das aplicaes. J o ltimo inclui caractersticas
adicionais, as quais incluem o suporte necessrio a aplicaes de alto desempenho,
como, por exemplo, identificao das threads emissora da requisio VCI.

O VCI utiliza o conceito de transao divida (protocolo split), na qual as fases


de requisio e de resposta so desvinculadas uma da outra. Assim, um iniciador pode
enviar tantas requisies quantas forem necessrias, sem precisar aguardar pelas
respostas. Esse protocolo utilizado na verso bsica e na verso avanada, sendo que,
na primeira, a ordem das respostas deve ser a mesma das requisies. J no VCI
avanado, as requisies podem ser rotuladas com identificadores, o que permite que a
ordem das respostas possa ser recuperada, caso seja perdida. Alm disso, esse recurso
possibilita que requisies de diferentes threads sejam intercaladas e as respostas sejam
entregues corretamente s threads requisitoras. Contudo, tal recurso requer que a
interface VCI do iniciador inclua um buffer de reordenao que permita a recuperao
da ordem das respostas.

4.3 O Barramento PI-Bus

A arquitetura de referncia nos trabalhos de modelagem e avaliao de


arquiteturas de comunicao intra-chip apresentados neste texto o barramento PI-Bus
(Peripheral Interconnect Bus) [SIE 94]. Esse barramento resultado de um trabalho de
especificao realizado pela entidade OMI (Open Microprocessor Systems Initiative),
integrante do programa ESPRIT da Comunidade Europia. Entre as empresas
envolvidas nesse trabalho de especificao, esto includas a ARM, a INMOS, a Philips
e a Siemens.

O PI-Bus um protocolo de barramento para ser usado em SoCs com foco


principal nos requisitos de comunicao de vrios tipos de perifricos integrados no
sistema. Ele foi especificado para a realizao de transferncias mapeadas em memria
89

entre seus agentes, sendo que cada agente deve possuir ao menos um tipo de interface:
mestre ou escravo. Alguns tipos de agentes, como coprocessadores, devem incluir os
dois tipos de interface.

Para usar o PI-Bus, o sistema deve possuir um controlador de barramento


denominado BCU (Bus Control Unit) para realizar as funes de arbitragem do
barramento, decodificao de endereos (para a seleo do agente escravo de cada
transferncia) e controle de time-out.

O PI-Bus suporta a conexo de mltiplos mestres ao barramento e possui


arquitetura independente de processador e vias separadas para endereo e dado, as quais
podem ser escaladas para at 32 bits. As transferncias de dados podem ser simples ou
em rajadas, sendo que a via de dados pode ser suportar palavras de 8, 16 ou 32 bits,
porm sem dimensionamento dinmico do barramento. Alm disso, o protocolo permite
operaes de leitura e escrita em uma mesma transferncia para a realizao de
operaes atmicas do tipo leitura-modificao-escrita, tipicamente utilizadas em
acessos a semforos.

Na Figura 4.6, ilustrado um sistema PI-Bus genrico e so mostrados alguns


dos sinais do barramento: via de endereos, via de dados, linha de requisio do
mestre X (REQX), linha de confirmao do mestre X (GNTX) e linha de seleo do
escravo Y (SELY). Diversos outros sinais so omitidos na figura para tornar mais clara a
visualizao da estrutura do barramento PI-Bus. Quando um mestre deseja realizar uma
transferncia de dados com um escravo, ele deve, primeiramente, solicitar ao BCU o
direito de uso do barramento, ativando a sua linha de requisio (REQ). O rbitro do
BCU recebe essa requisio e as de outros mestres e aplica um mecanismo de
arbitragem para selecionar uma delas. Uma vez concluda a arbitragem e quando o
barramento estiver disponvel, o rbitro ativa a linha de confirmao (GNT) do agente
mestre selecionado, informando-lhe que o barramento lhe foi concedido e que ele pode
iniciar a transao. Quando o mestre inicia uma transferncia de dados, a primeira fase
da transao refere-se ao endereamento do escravo alvo. Nesse momento, de
responsabilidade do BCU a decodificao dos bits mais significativos do endereo e a
seleo do escravo, o que feito com a ativao da linha SEL do escravo selecionado. A
especificao do barramento PI-Bus no determina o esquema de arbitragem a ser
utilizado no BCU, ficando a critrio do desenvolvedor a escolha do esquema mais
adequado ao seu sistema (eg. prioridades estticas, dinmicas etc).

ENDEREO
E
M
S
Agente E Agente
DADO C
S
Mestre T
R Escravo
X A Y ...
R REQX V
E
SELY O
GNTX

rbitro Decodificador
BCU
(Unidade de Controle do Barramento)

FIGURA 4.6 Sistema integrado baseado no PI-Bus.


90

O simulador CASS inclui bibliotecas de modelos de ncleos orientados ao


barramento PI-Bus, incluindo o processador MIPS R3000 com caches de instruo e de
dado, mdulo de memria RAM e controladores de E/S com interfaces mestre e/ou
escravo PI-Bus. Inclui tambm bibliotecas de modelos de ncleos equivalentes com
interface VCI e adaptadores VCI/PI-Bus para a conexo desses modelos ao barramento
PI-Bus.

4.4 Modelagem da Rede SPIN no CASS

Enquanto um barramento pode ser modelado basicamente atravs de sua unidade


de controle, como, por exemplo, o BCU do PI-Bus, uma rede-em-chip modelada pela
descrio de seus roteadores. Durante o estgio realizado no Departamento ASIM do
LIP6, foi efetuada a modelagem da rede SPIN atravs da descrio do modelo CASS do
roteador RSPIN. A descrio desse modelo foi feita com base em um modelo VHDL
sintetizvel do roteador. Esses dois modelos so equivalentes ciclo-a-ciclo, contudo, o
modelo CASS apresenta uma simplificao no que tange a no incluso das estruturas
relacionadas ao teste do roteador. A seguir, so apresentadas a organizao do roteador
modelado e a estrutura do modelo CASS.

4.4.1 Organizao do roteador RSPIN


O roteador RSPIN o bloco construtivo bsico de uma rede SPIN, na qual os
roteadores so conectados entre si e com os ncleos do sistema atravs de enlaces SPIN
constituindo uma topologia em rvore gorda. Cada roteador possui oito portas externas,
compatveis com o protocolo fsico definido por esse enlace, e, internamente,
organizado em unidades que incluem os buffers, multiplexadores e autmatos que
realizam a transferncia de pacotes pelo roteador.

O enlace SPIN

O enlace SPIN constitudo por dois canais fsicos unidirecionais. A largura do


canal (tamanho do phit) de 36 bits, com 32 bits para dado e 4 bits de banda lateral
dedicados ao enquadramento do pacote (marcadores de incio e de fim) e sinalizao de
paridade e de erro. No modelo CASS, essas duas partes (de 32 e de 4 bits) e os recursos
a elas associados so descritos em campos separados, denominados data e fanion. Tal
partionamento necessrio pois o CASS trabalha com variveis inteiras de 32 bits para
implementar qualquer sinal, seja um bit ou uma palavra com n bits. Logo, um canal
fsico de 36 bits no pode ser representado por uma nica varivel.

Cada canal do enlace SPIN inclui dois sinais adicionais usados pelo mecanismo
de controle de fluxo: dv (data valid) sinaliza a presena de um dado vlido no canal e cr
(credito return) indica a liberao de uma posio no buffer de entrada do receptor sob a
forma de um crdito, como mostrado na Figura 4.7 e na Tabela 4.1. A largura de
banda do enlace SPIN de 12,8 Gbit/s para uma freqncia de operao de 200 MHz
(2 32 bits 200 MHz), ou seja, 6,4 Gbit/s por canal.
91

32 36
data
bp dv
fanion ep cr
par
er Enlace SPIN
36

FIGURA 4.7 O enlace SPIN.

TABELA 4.1 Significado de cada sinal do enlace SPIN.


Sinal Largura Definio
data 32-bit Dados
bp 1-bit Marcador de incio do pacote (ativado somente no flit de cabealho)
ep 1-bit Marcador de final do pacote (ativado somente no flit terminador)
par 1-bit Paridade sobre os 36 bits
er 1-bit Sinalizador de erro
dv 1-bit Validao de dado
cr 1-bit Retorno de crdito
OBS: Os sinais par e er no so avaliados pelo roteador. Cabe aos adaptadores das interfaces dos
ncleos realizar a gerao e a verificao dos sinais de paridade e erro, respectivamente

A interface do roteador RSPIN

A interface do roteador RSPIN, ilustrada na Figura 4.8, composta por oito


portas bidirecionais compatveis com o enlace SPIN. Existem quatro portas inferiores
(D0-3), utilizadas para conectar o roteador a roteadores de um nvel inferior na rede ou a
adaptadores SPIN, e quatro portas superiores (U0-3), reservadas exclusivamente para a
conexo com roteadores situados um nvel acima na rede SPIN. Cada porta possui dois
canais unidirecionais em oposio: o canal de entrada e o canal de sada.

D0
canal de sada canal de entrada

U3 U2 U1 U0

RSPIN
D0_DV_IN
D0_CR_IN

D0_DATA_IN

D0_CR_OUT
D0_FANION_IN
D0_DV_OUT
D0_DATA_OUT
D0_FANION_OUT

D3 D2 D1 D0

FIGURA 4.8 A interface do roteador RSPIN e os sinais da porta D0.

Conforme o tamanho da rede, a topologia em rvore-gorda no inclui conexes


entre os roteador do nvel superior da rede. Nesses roteadore, as portas superiores no
so sintetizadas, reduzindo o custo de silcio desse nvel da rede.
92

A estrutura interna do roteador RSPIN

Internamente, o roteador RSPIN modelado sob CASS constitudo por dez


unidades bsicas que implementam os buffers, multiplexadores e autmatos do roteador,
sendo que existem trs tipos de unidade. Nas unidades tipo DN (0 a 3), so
implementados os canais de entrada das portas inferiores e os canais de sada das portas
superiores. As unidades tipo UP (0 a 3) implementam os canais de entrada das portas
superiores e os canais de sada das portas inferiores. Os nomes desses dois tipos de
unidade esto diretamente ligados aos canais de entrada aos quais elas esto associadas,
conforme mostrado na Figura 4.9.

U3 U2 U1 U0

QUP
UP3 DN3 UP2 DN2 UP1 DN1 UP0 DN0
QDN

D3 D2 D1 D0

FIGURA 4.9 As unidades do modelo RSPIN-CASS.

Como foi visto na descrio da rede SPIN (subseo 3.3.1), o roteador RSPIN
inclui duas filas centrais compartilhadas utilizadas para armazenar pacotes bloqueados
nos buffers de entrada do roteador, liberando-os para serem utilizados por outros
pacotes. Existe uma fila central para cada lado do roteador e elas so implementadas e
gerenciadas pelas unidades tipo Q (QDN e QUP).

O crossbar do roteador RSPIN

O crossbar do roteador RSPIN realizado de forma distribuda nas unidades do


roteador e atende s restries impostas pelo algoritmo de roteamento, a qual restringe o
uso dos canais de sada e das filas centrais, conforme segue:

a) Canais de sada superiores s podem ser utilizados por pacotes provenientes dos
canais de entrada inferiores. Ou seja, nem os canais de entrada superiores nem as
filas centrais podem requer-los18;
b) Canais de sada inferiores podem ser utilizados por pacotes provenientes de todos
os canais de entrada e de todas as filas centrais;
c) Fila central superior pode ser utilizada apenas por pacotes bloqueados nos buffers
dos canais de entrada superiores. Ao retirar pacotes bloqueados nos buffers de
entrada, as filas centrais incrementam a prioridade desses pacotes para que eles

18
O algoritmo de roteamento usado na rede SPIN estabelece que um pacote que entra por uma porta
superior s pode deixar o roteador atravs de uma porta inferior, no lhe sendo permitido realizar o
retorno por um mesmo enlace.
93

sejam privilegiados no momento de competir por uma sada inferior na rede. O


objetivo que os pacotes permaneam o menor tempo possvel dentro da rede de
modo a reduzir a latncia mdia da comunicao;
d) Fila central inferior pode ser utilizada apenas por pacotes bloqueados nos buffers
dos canais de entrada inferiores que sejam destinados a canais de sadas inferiores.

Considerando essas restries, o crossbar implementa apenas as conexes


permitidas pelo algoritmo de roteamento, conforme mostrado na Figura 4.10, o que
leva a uma simplificao do crossbar e a uma conseqente reduo do seu custo.

QUP_OUT
QDN_OUT
U3_IN
U2_IN
U1_IN
U0_IN
D3_IN
D2_IN
D1_IN
D0_IN
QUP_IN
QDN_IN
U3_OUT
U2_OUT
U1_OUT
U0_OUT
D3_OUT
D2_OUT
D1_OUT
D0_OUT

FIGURA 4.10 Conexes possveis no crossbar do roteador RSPIN.

A parte operativa do roteador RSPIN

O roteador RSPIN organizado conforme o modelo parte controle parte


operativa (PCPO) [DAV 83, CLA 73, FLE 80]. Nesse modelo, a parte operativa inclui
o conjunto de registradores, operadores e conexes, enquanto que a parte controle inclui
a(s) mquina(s) de estado(s) que realiza(m) o seqenciamento das operaes,
selecionando a rede de conexes, os registradores e os operadores que devem atuar em
cada passo do algoritmo implementado [CAR 2001].

A parte operativa do roteador RSPIN modelado sob CASS representada na


Figura 4.11, na qual so mostrados os buffers e multiplexadores de chaveamento
associados a cada unidade, bem como os canais de dado que interligam cada um desses
componentes. Comparando-se esta figura com a anterior, pode-se verificar que cada
coluna da Figura 4.10 corresponde a um multiplexador da Figura 4.11, enquanto que
cada entrada de multiplexador nesta ltima figura corresponde a um ponto de conexo
na Figura 4.10.
94

U3 U2 U1 U0

UP3 UP2 UP1 UP0


QUP

QDN
DN3 DN2 DN1 DN0

D3 D2 D1 D0

FIGURA 4.11 A parte operativa do modelo RSPIN-CASS.

A parte controle do roteador RSPIN

A parte controle do roteador RSPIN implementada de forma distribuda. Cada


unidade possui um conjunto de autmatos responsveis pelos mecanismos de
roteamento, chaveamento, arbitragem e controle de fluxo. Esses mecanismos so
integrados em dois blocos de controle principais, chamados ICB (Input Control Block) e
OCB (Output Control Block). Um terceiro bloco de controle responsvel pelo
gerenciamento do acesso (escrita e leitura) ao buffer local.

O ICB conectado diretamente sada do buffer local da unidade qual ele


associado. Esse bloco realiza o roteamento dos pacotes, identificando a presena de um
cabealho de pacote, executando o algoritmo de roteamento e enviando uma requisio
sada ou fila central selecionada pelo algoritmo. Uma requisio ser enviada fila
central quando o canal de sada desejado j estiver ocupado e, se, alm disso, o pacote
estiver habilitado a utilizar esse recurso atravs da sinalizao em um bit especfico no
cabealho. Existem trs tipos de ICBs, um para cada tipo de unidade (DN, UP e Q), os
quais podem requisitar apenas os recursos definidos pelo algoritmo de roteamento.

Para implementar o roteamento adaptativo para os pacotes direcionados s


sadas superiores, o ICB-DN utiliza um mecanismo que permite selecionar qualquer
sada superior disponvel (UP0-3), minimizando a conteno na rede. A seleo da sada
superior a ser requisitada feita utilizando um rbitro cuja ordem das prioridades varia a
cada ciclo de relgio, sendo a seleo de sada realizada de forma aleatria. Para isso,
utilizado um contador mdulo quatro que serve de ndice para a seleo da ordem de
prioridades a ser aplicada. Assim, a cada ciclo de relgio, uma ordem de prioridades
diferente usada. A garantia da minimizao da conteno dada inciando-se o
contador de cada unidade com o ndice da sua identidade. Com isso, em um mesmo
ciclo de relgio, se todas as sadas superiores estiverem disponveis e cada entrada
inferior tiver um pacote direcionado a um nvel superior na rede, cada pacote ir
requisitar uma sada diferente. A conteno ir surgir quando o nmero de sadas
superiores implementadas for menor que o nmero de pacotes requerendo esse tipo de
sada.
95

O outro bloco de controle, denominado OCB, responsvel pelas funes de


arbitragem, chaveamento e controle de fluxo. Ele recebe requisies dos blocos ICB,
aplica a poltica de arbitragem adequada para eleger uma das requisies e comanda o
multiplexador para efetuar o chaveamento de modo a conectar a sada do buffer
selecionado ao recurso por ele gerenciado (canal de sada, nas unidades tipo UP e DN,
ou fila central, nas unidades tipo Q). A poltica de arbitragem varia com o tipo de
unidade associada, mas todas elas aplicam, ao menos, uma fila circular (funo round-
robin) para avaliar um subconjunto das requisies recebidas, conforme segue:

a) OCB-DN aplica uma poltica de arbitragem de dois nveis. Para requisies


provenientes das unidades UP e DN, o rbitro seleciona uma requisio aplicando a
funo round-robin. Aps, realiza a seleo final utilizando um esquema de
prioridades estticas, conforme o seguinte critrio19:
PICB-QUP > PICB-QDN > Pround-robin(ICBs-UP) > Pround-robin(ICBs-DN)

b) OCB-UP aplica uma poltica de arbitragem de um nico nvel, utilizando a funo


round-robin para selecionar uma entre as quatro requisies permitidas, as quais so
oriundas dos ICBs-DN;

c) OCB-Q aplica uma poltica de arbitragem idntica quela utilizada pelos


OCBs-UP. Contudo, para a unidade QUP, as requisies analisadas so as
provenientes dos ICBs-UP e, para as unidades QDN, so consideradas as
requisies oriundas dos ICBs-DN.

Na Figura 4.12, so ilustrados os controladores ICB e OCB de todas as


unidades. Pode-se observar que o ICB l a sada do buffer local e envia requisies aos
OCBs (na figura, so mostradas as linhas de requisio possveis para o ICB-UP1). O
OCB, por sua vez, recebe as requisies dos ICBs e comanda o multiplexador local para
efetuar o chaveamento.

U3 U2 U1 U0

UP3 UP2 UP1 UP0


OCB
QUP ICB
ICB OCB ICB OCB ICB OCB ICB OCB

OCB ICB OCB ICB OCB ICB OCB ICB QDNICB


OCB
DN3 DN2 DN1 DN0

D3 D2 D1 D0

FIGURA 4.12 Controladores ICB e OCB do RSPIN.

19
PICB-X significa prioridade da requisio ICB do tipo X, onde X pode ser QUP, QDN, UP ou DN; e
Pround-robin(ICBs-X) significa prioridade da requisio selecionada pela funo round-robin aplicada s
requisies ICBs do tipo X.
96

Latncia do roteador RSPIN

A latncia mnima para um pacote atravessar o roteador RSPIN determinada


pela quantidade de ciclos necessria para:

a) Registro do cabealho do pacote no buffer do canal de entrada;

b) Execuo do algoritmo de roteamento pelo ICB do canal de entrada e o conseqente


envio de requisio ao OCB selecionado; e

c) Arbitragem das requisies recebidas pelo OCB do canal de sada e estabelecimento


do caminho entre o buffer do canal de entrada selecionado pelo OCB e o canal de
sada (chaveamento).

Como uma dessas tarefas consome um ciclo de relgio, a latncia mnima seria
de trs ciclos. Contudo, o mecanismo utilizado para implementar o roteamento
adaptativo produz um problema denominado: problema da dupla requisio. Quando
um pacote destinado a uma porta superior, o algoritmo de roteamento utiliza um
contador para selecionar o canal de sada a ser requisitado. Esse contador
incrementado, ciclicamente, a cada ciclo de relgio e, se o algoritmo de roteamento
executado em todos os ciclos, a informao de referncia para a seleo do canal de
sada a ser requisitado ser diferente a cada ciclo. Com isso, pode ocorrer de o rbitro de
um canal de sada superior selecionar uma requisio enviada por canal de entrada em
um ciclo anterior, enquanto que o ICB responsvel por essa requisio esteja enviando
uma nova requisio para um outro canal de sada apontado pelo contador no ciclo
corrente. Essa segunda requisio poderia provocar o estabelecimento de um caminho
para um segundo canal de sada, levando ao funcionamento incorreto do roteador.

A soluo encontrada pelos arquitetos da rede SPIN foi estabelecer ciclos


separados para a execuo dos algoritmos de roteamento e arbitragem. Um autmato de
dois estados rotula os ciclos do relgio em ciclos dos tipos mpar e par. O
roteamento executado somente nos ciclos mpares e a arbitragem nos ciclos pares.
Assim, enquanto as requisies esto sendo arbitradas, nenhuma nova requisio pode
ser emitida e, no ciclo de roteamento seguinte, os buffers selecionados pelos rbitros
no contero mais cabealhos de pacotes, os quais j tero sido encaminhados aos
canais de sada. Isso evita que esses mesmos pacotes requisitem duas sadas diferentes.

Contudo, a limitao dessa soluo reside no fato de que se o cabealho de um


pacote registrado durante um ciclo mpar, o ciclo seguinte ser um ciclo de arbitragem
(par). Assim, o pacote ter de esperar um ciclo a mais para ser roteado. Logo, a latncia
mnima para um pacote atravessar o roteador ir variar de trs a quatro ciclos, sendo, na
mdia, igual a 3,5 ciclos.

A latncia calculada acima considerada a latncia mnima mdia sem


conteno. Ou seja, quando os pacotes no competem pelo mesmo recurso no roteador.
Esse valor serve de referncia para calcular a latncia da comunicao em uma rede
SPIN na qual um pacote deve atravessar um ou mais roteadores para chegar ao seu
destinatrio. Nas referncias sobre a rede SPIN, o ciclo referente ao registro do
cabealho do pacote omitido e a latncia informada de 2,5 ciclos. Contudo, segundo
o entendimento deste autor, importante deixar claro que existe o custo de um ciclo de
relgio para registrar o cabealho de um pacote a cada roteador em uma rede-em-chip.
97

Modelos de rede SPIN

Na Figura 4.13, so apresentados trs exemplos de rede SPIN com 8, 16 e 32


terminais. Na rede com 8 terminais (Figura 4.13.a), as comunicaes entre ncleos
conectados ao mesmo roteador so submetidas a uma latncia mnima mdia de 3,5
ciclos na ausncia de conteno. J as comunicaes entre ncleos conectados a
diferentes roteadores so submetidas a uma latncia mnima mdia de 7 ciclos. Essas
latncias levam em conta apenas o tempo entre a injeo do cabealho do pacote na rede
e a ejeo desse cabealho no terminal destinatrio. A latncia total depende ainda do
tamanho da carga til transportada no pacote e dos atrasos referentes aos adaptadores de
comunicao.

Na rede com 16 terminais (Figura 4.13.b), a latncia mnima mdia das


comunicaes entre ncleos conectados a roteadores diferentes correspondente
latncia necessria para atravessar trs roteadores, ou seja, 10,5 ciclos. A rede
com 32 terminais (Figura 4.13.c) constituda por duas subredes (ou agregados) de
16 terminais interconectadas atravs de enlaces SPIN ligados s portas superiores dos
roteadores do segundo nvel de cada subrede. As comunicaes entre ncleos
conectados a roteadores de subredes diferentes so submetidas a uma latncia mnima
mdia de 14 ciclos.
U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0

D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0

D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

(a) (b)

U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0

D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0

D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

(c)
FIGURA 4.13 Redes SPIN com: (a) 8 terminais; (b) 16 terminais; e (c) 32 terminais.
98

A escalabilidade da rede SPIN indicada por Guerrier e Greiner em


[GUE 2000a] e reproduzida na Tabela 4.2. Na tabela, mostrado o nmero necessrio
de roteadores RSPIN para cada tamanho de sistema, onde n indica o nmero de
terminais da rede.

TABELA 4.2 Nmero de roteadores RSPIN na rede SPIN.


n Nmero de RSPINs
4 1
8 2
16 8
32 16
64 48
128 96

4.4.2 Estrutura do modelo CASS


O modelo CASS do roteador RSPIN constitudo por dois arquivos
denominados router.h e router.c. O primeiro arquivo uma descrio em linguagem C
com 370 linhas de cdigo que realiza a declarao dos parmetros, interface e
registradores do roteador. O segundo arquivo uma descrio com cerca de 3800 linhas
de cdigo C (incluindo comentrios) no qual so feitas as definies de todas as funes
do modelo.

A modelagem do roteador foi realizada utilizando-se uma abordagem


hierrquica de modo a manter a compatibilidade estrutural com o modelo VHDL. Dessa
forma, para cada entidade VHDL, foi criada uma funo C, sendo que algumas
entidades foram agrupadas em uma nica funo e algumas funes adicionais foram
definidas. No nvel mais alto da hierarquia, a qual mostrada na Figura 4.14, esto as
funes obrigatrias em qualquer modelo CASS: a funo de criao de uma instncia
(chamada CreateRouter) e a funo que define o seu comportamento seqencial
(denominada SequentialRouter). O modelo no inclui nenhum autmato de Mealy e,
portanto, dispensa a implementao de uma funo para o comportamento
combinacional.

CreateRouter SequentialRouter

DN UP Q

Mux Fifo Icb Ocb Mux Fifo Icb Ocb Mux Fifo Icb Ocb

FIGURA 4.14 Diagrama de hierarquia de funes do modelo CASS do


roteador RSPIN.

Conforme mostrado na Figura 4.14, a funo SequentialRouter chama um


conjunto de funes que implementam as unidades do roteador, sendo que cada uma
dessas funes faz uso de funes que definem os seus controladores (Icb e Ocb), buffer
99

local (Fifo) e multiplexador (Mux). Outras nove funes so utilizadas nos diferentes
nveis, mas elas no so mostradas na Figura 4.14 de modo a conferir uma maior
legibilidade ao diagrama. As funes UP, DN e Q so referenciadas mltiplas vezes, o
que representado pela repetio e superposio de blocos.

A estrutura bsica da funo SequentialRouter ilustrada na Figura 4.15. Ela


constitui um lao que executado a cada ciclo de relgio para determinar os estados dos
registradores e das portas de sada do modelo. A execuo desse lao explicada logo a
seguir.

Se RESET ativado:
Reinicializa todos os registradores

Se RESET no-ativado:
1. Calcula variveis intermedirias dependentes do estado corrente
dos registradores. Essas variveis so utilizadas pelas funes
das unidades Q, DN e UP.

2. Executa a funo da unidade QUP e escreve nos seus registradores


3. Executa a funo da unidade QDN e escreve nos seus registradores
4. Executa a funo da unidade DN0 e escreve nos seus registradores
5. Executa a funo da unidade DN1 e escreve nos seus registradores
6. Executa a funo da unidade DN2 e escreve nos seus registradores
7. Executa a funo da unidade DN3 e escreve nos seus registradores
8. Executa a funo da unidade UP0 e escreve nos seus registradores
9. Executa a funo da unidade UP1 e escreve nos seus registradores
10. Executa a funo da unidade UP2 e escreve nos seus registradores
11. Executa a funo da unidade UP3 e escreve nos seus registradores

12. Executa funo que atualiza os registradores com os valores


escritos aps a execuo de cada uma das funes anteriores
(passos 2 a 11)

13. Recalcula as variveis intermedirias utilizando os estados


atualizados dos registradores. Essas variveis so utilizadas no
clculo dos valores a serem escritos nas portas de sada.

14. Escreve nas portas de sada da interface externa do roteador.

FIGURA 4.15 Estrutura da funo SequentialRouter.

Durante a simulao, se o sinal RESET ativado, o simulador reinicializa todos


os registradores do roteador. Caso contrrio, ele calcula os valores de um conjunto de
variveis intermedirias, as quais correspondem a sinais internos do roteador e
dependem do estado dos registradores no incio do ciclo (passo 1). Posteriormente, so
executadas as funes das unidades do roteador para calcular os novos valores dos
registradores (passos 2 a 11), sendo que, aps a execuo de cada funo, os valores
calculados so escritos nos registradores associados unidade executada. Contudo,
esses valores so atualizados apenas com a execuo da funo UpdateREGISTER
(passo 12). No passo 13, so recalculados os sinais internos do roteador com base no
novo estado dos seus registradores. Finalmente, no passo 14, feito o calculo e a
atualizao dos contedos das portas de sada do modelo (passo 14).
100

A validao do modelo CASS do roteador foi feita atravs da modelagem de


diferentes sistemas integrados utilizando redes SPIN com 4, 8, 16 e 32 terminais. Sobre
esses sistemas foram executadas diferentes aplicaes que permitiram verificar a
correo do modelo descrito.

4.5 Avaliao de Desempenho

Nesta seo, so apresentados os resultados de experimentos realizados


utilizando o simulador CASS para a simulao de sistemas baseados no barramento
PI-Bus e na rede SPIN. Essas simulaes foram realizadas visando a avaliao e a
comparao do desempenho em comunicao dessas arquiteturas em diferentes
configuraes de tamanho de sistema, tamanho de mensagem e carga de comunicao.
Nos primeiros experimentos, foram utilizados geradores de trfego parametrizveis que
permitiram a execuo de dois tipos de avaliao. Incialmente, fez-se variar o tamanho
do sistema, mantendo-se fixo o tamanho dos pacotes VCI e mediu-se o nmero de
ciclos necessrios para a entrega de todas as mensagens trocadas pelos ncleos. Aps,
fixou-se o tamanho do sistema e fez-se variar a taxa de gerao de pacotes a fim de
determinar os pontos de saturao das arquiteturas de comunicao para diferentes
tamanhos de pacote. Em um terceiro conjunto de experimentos, foram modelados
sistemas programveis multiprocessados baseados em mltiplas instncias de modelos
do processador MIPS R3000 de memrias RAM. Alm desses sistemas, foi
desenvolvido um benchmark paralelo baseado na Transformada Rpida de Fourier
(FFT Fast Fourier Transform). Essa aplicao foi executada sobre os sistemas
baseados nas duas arquiteturas de comunicao e foi medido o nmero de ciclos gastos
na execuo da aplicao em cada sistema.

4.5.1 Avaliao da escalabilidade da arquitetura de comunicao


Nesta avaliao, foram modelados sistemas integrados com diferentes tamanhos
com o objetivo de avaliar e comparar a escalabilidade do PI-Bus e da rede SPIN. Foram
considerados sistemas com 4, 8, 16 e 32 ncleos, sendo metade do ncleos do tipo
iniciador-VCI e a outra metade do tipo alvo-VCI. Os ncleos do tipo iniciador-VCI so
instncias de um modelo de gerador de trfego (GT) que envia uma requisio VCI de
tamanho configurvel a cada um dos alvos-VCI do sistema. Os ncleos do tipo alvo-
VCI so instncias de um modelo de memria RAM que espera por requisies VCI e
retorna respostas VCI com o tamanho das requisies recebidas.

Na Figura 4.16, ilustrado um sistema integrado com quatro ncleos


denominados iniciador0, iniciador1, alvo0 e alvo1, sendo que os dois primeiros so do
tipo iniciador-VCI e os dois ltimos so do tipo alvo-VCI. Ambos os ncleos so
conectados arquitetura de comunicao atravs de adaptadores que realizam a
converso entre o protocolo VCI e o protocolo da arquitetura utilizada. Na
Figura 4.16.a, podem ser visualizadas as requisies VCI enviadas pelos ncleos
iniciadores, enquanto que as respostas enviadas pelos ncleos do tipo alvo so ilustradas
na Figura 4.16.b.
101

PI/SPIN PI/SPIN

pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin


vci vci vci vci vci vci vci vci

vci vci vci vci vci vci vci vci

RAM RAM GT GT RAM RAM GT GT


alvo 1 alvo 0 iniciador 1 iniciador 0 alvo 1 alvo 0 iniciador 1 iniciador 0

(a) (b)
FIGURA 4.16 Mensagens emitidas em um sistema com quatro ncleos: (a) originadas
pelos iniciadores; (b) originadas pelos alvos.

Na carga de comunicao definida, cada iniciador envia uma requisio VCI a


cada um dos alvos do sistema e estes ltimos, aps receberem uma requisio, devem
enviar uma resposta ao ncleo iniciador requisitante. O objetivo ento medir o nmero
de ciclos gastos pela arquitetura de comunicao para entregar todas as requisies e
respostas VCI enviadas pelos ncleos do sistema.

Na Tabela 4.3, so mostradas as quantidades de pacotes de requisio e de


resposta, bem como a quantidade de flits transferidos em cada arquitetura de
comunicao para pacotes VCI transportando uma nica clula. Como pode ser
observado, embora o nmero de pacotes VCI gerados seja o mesmo em ambas as
arquiteturas, o nmero de flits transferidos maior na rede SPIN. Isso ocorre porque
enquanto que no barramento PI-Bus as palavras de endereo e dado so
demultiplexadas, na rede SPIN, o flit limitado a 32 bits e as palavras de endereo e
dado devem ser multiplexadas e, alm disso, serem precedidas por um cabealho de
roteamento.

TABELA 4.3 Pacotes VCI e flits transferidos no barramento PI-Bus e na rede SPIN.
Nmero de Pacotes de Pacotes de Flits transferidos Flits transferidos
ncleos requisio VCI resposta VCI no PI-Bus na SPIN
4 22 = 4 22 = 4 4+4 = 8 3(4+4) = 24
8 44 = 16 44 = 16 16+16 = 32 3(16+16) = 96
16 88 = 64 88 = 64 64+64 = 128 3(64+64) = 384
32 1616 = 256 1616 = 256 256+256 = 512 3(256+256) = 1536

Nesta avaliao, os sistemas baseados na rede SPIN foram modelados com base
na pior condio de posicionamento em termos de latncia de comunicao. Todos os
iniciadores foram colocados em uma metade da rede, enquanto que os alvos foram
posicionados na outra metade, conforme ilustrado no exemplo da Figura 4.17. Nessa
configurao, a latncia mnima (sem carga) dada em funo da maior distncia entre
dois ncleos na rede.
102

RSPIN RSPIN

spin spin spin spin spin spin spin spin


vci vci vci vci vci vci vci vci
vci vci vci vci vci vci vci vci

RAM RAM RAM RAM GT GT GT GT

FIGURA 4.17 Posicionamento de iniciadores e alvos em uma rede SPIN com


oito terminais.

Resultados experimentais

Na Figura 4.18, so apresentados os resultados de experimentos de simulao


realizados com os sistemas descritos acima. A figura mostra um grfico relacionando o
nmero de ciclos gastos (em escala logartmica) pelo barramento PI-Bus e pela rede
SPIN para diferentes tamanhos de sistema. Como pode ser observado, para essa carga
de comunicao, a rede SPIN supera o barramento PI-Bus em sistemas com um pouco
mais de oito de ncleos, se for considerado o ponto de interseco das curvas
interpoladas. Contudo, deve-se levar em conta que o tamanho de mensagem utilizado
pode ser considerado o pior caso para a rede SPIN. Para pacotes VCI com um maior
nmero de clulas como, por exemplo, em uma transferncia de linha de cache, o
desempenho da rede SPIN ser ainda melhor. Isso porque o custo da sobrecarga de
comunicao devida ao cabealho de roteamento ser menor com o aumento da carga
til do pacote.

PI-Bus SPIN
1000
Nmero de ciclos

100

10

1
4 8 16 32

Nmero de ncleos

FIGURA 4.18 Nmero de ciclos do PI-Bus e da SPIN para pacotes com uma
clula VCI.

Ainda analisando os resultados mostrados na Figura 4.18, destaca-se que o


melhor desempenho obtido pela rede SPIN se deve ao uso do protocolo split, o qual
permite a realizao de transaes divididas. Ou seja, os iniciadores-VCI podem enviar
novas requisies antes do recebimento das respostas para as requisies pendentes,
103

assim escondendo a latncia da rede. Para ilustrar isso, na Figura 4.19, so comparados
os resultados de experimentos de simulao realizados com e sem o uso do protocolo
split. Como pode ser visto, quando o protocolo split no utilizado, o nmero de ciclos
gastos no sistema baseado na rede SPIN maior que o nmero de ciclos gastos nos
sistemas baseados no barramento PI-Bus, para qualquer tamanho de sistema.

PI-Bus SPIN (c/ split) SPIN (s/ split)


1000
Nmero de ciclos

100

10

1
4 8 16 32

Nmero de ncleos

FIGURA 4.19 Benefcios do protocolo split para a rede SPIN.

4.5.2 Avaliao da capacidade da arquitetura de comunicao


Em qualquer arquitetura de comunicao, existe um limite de saturao que
surge quando o trfego gerado pelos iniciadores maior que a carga suportada pela
arquitetura. Em outras palavras, dada uma carga oferecida arquitetura de
comunicao, se essa carga estiver abaixo do seu ponto de saturao, ela ir aceit-la e a
latncia mdia das mensagens estar dentro de um limite considerado igualmente
aceitvel (eg. at 100 ciclos). Contudo, se a carga aplicada estiver acima do ponto de
saturao, a arquitetura de comunicao no ser capaz de aceitar toda a carga aplicada
e a latncia mdia das mensagens crescer de modo significativo. Nos experimentos de
avaliao da capacidade da arquitetura de comunicao, fixou-se o tamanho do sistema
em 32 ncleos (16 iniciadores e 16 alvos), fez-se variar a carga oferecida para diferentes
tamanhos de mensagem e foi medida a latncia mdia das mensagens para cada carga a
fim de determinar o ponto de saturao da arquitetura para essa configurao de
sistema. Os ncleos iniciadores utilizados so instncias de um modelo de gerador de
trfego que emite uma grande quantidade de pacotes VCI (eg. 10 mil) para endereos
distribudos randomicamente, sendo que cada memria RAM responsvel por uma
faixa de endereos.

Os parmetros de entrada dos experimentos so o nmero de pacotes VCI a


serem emitidos pelos iniciadores (Npacket), a quantidade de clulas em cada pacote VCI
(Ncell) e o nmero mdio de ciclos entre o envio de dois pacotes de requisio sucessivos
(Gav). Este ltimo serve como parmetro de controle para a varivel G, a qual determina
um intervalo (gap) randmico entre dois pacotes sucessivos. A carga oferecida (Loff)
define o percentual de largura de banda de canal usado por cada iniciador, ou seja:
104

Loff = Ncell / (Ncell + Gav) (4.1)

Uma carga oferecida de 100% corresponde configurao na qual Gav = 0.


Quanto maior for o valor de Gav, menor ser a carga oferecida. Como exemplo, se Ncell
igual a 4 e Gav igual a 8, ento a carga oferecida de 33,33%.

Nos geradores de trfego, para cada pacote de requisio a ser enviado


atribudo um rtulo de tempo. A latncia correspondente transao iniciada pelo
pacote medida pela diferena entre o momento da chegada do pacote de resposta
correspondente requisio emitida e o valor do rtulo de tempo do pacote de
requisio. Cada gerador de trfego possui uma tabela na qual ele guarda as
informaes a respeito dos pacotes emitidos de modo a poder calcular a latncia da
comunicao.

Na avaliao da rede SPIN, os ncleos foram distribudos de uma maneira


diferente em relao avaliao anterior. Em cada roteador do nvel mais baixo da rede,
foram conectados dois iniciadores e dois alvos de maneira intercalada, conforme
ilustrado no exemplo da Figura 4.20. Com isso, cada iniciador pode estar separado de
um alvo na rede por um, trs ou quatro roteadores, caso eles estejam conectados no
mesmo roteador, no mesmo agregado de 16 terminais ou em agregados diferentes,
respectivamente. Essa configurao se fez necessria pois esses experimentos foram
conduzidos em uma fase posterior aos primeiros, aps o que adotou-se, como soluo
para o problema do deadlock, a diviso reservada dos canais de sadas superiores do
roteador RSPIN entre pacotes de requisio e de resposta (conforme comentado no item
Limitaes da arquitetura SPIN, na subseo 3.3.1).

U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0
D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0 U3 U2 U1 U0
D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0 D3 D2 D1 D0

spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin spin
vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci
vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci

RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT RAM GT

FIGURA 4.20 Posicionamento de iniciadores e alvos em uma rede SPIN com


32 terminais.

Resultados experimentais

A seguir, so apresentados resultados que mostram a carga mxima aceita pelo


barramento PI-Bus e pela rede SPIN para um tamanho fixo de pacote (Ncell). Essas
simulaes foram feitas considerando a realizao de 160 mil transaes do tipo
requisio-resposta (10 mil por iniciador).

A Figura 4.21 apresenta curvas que ilustram os pontos de saturao do


barramento PI-Bus e da rede SPIN para pacotes com apenas uma clula VCI. No eixo
das abcissas mostrada a carga aceita por cada arquitetura e no eixo das ordenadas a
105

latncia mdia para a execuo das transaes requisio-resposta. Como pode ser
observado, o barramento PI-Bus aceita somente 3% da carga mxima, acima da qual a
latncia mdia ultrapassa o nvel de 100 ciclos de relgio para execuo de transaes
requisio-resposta. J para a rede SPIN, o limite de carga aceita fica em 14%, porm,
sua a latncia mdia para as cargas muito leves (menor que 3%) cerca de quatro vezes
maior que a latncia do barramento PI-Bus. Considerando a apenas a latncia, esses
resultados ilustram que o barramento possui desempenho satisfatrio em aplicaes no
intensivas em comunicao. Contudo, para aplicaes com comunicao intensiva, a
aplicabilidade do barramento limitada e, embora a latncia da rede SPIN seja maior,
ela aceita uma carga de comunicao muito maior que o barramento.

PI-Bus SPIN
300
Latncia Mdia (ciclos)

250

200

150

100

50

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Carga Aceita (%)

FIGURA 4.21 Latncia mdia do PI-Bus e da SPIN para Ncell = 1.

A Figura 4.22 apresenta a latncia mdia para pacotes com duas clulas VCI.
Observa-se que o ponto de saturao das duas arquiteturas estendido. O barramento
satura com uma carga oferecida de 4% enquanto que a rede SPIN satura com uma carga
prxima aos 20%. Esse efeito justificado pelo fato de que o aumento do tamanho do
pacote reduz o nmero de requisies simultneas para os recursos da arquitetura,
atenuando os conflitos de arbitragem. Um outro fator que favorece a rede-em-chip que
as mensagens so transferidas em modo pipeline. Segundo [DUA 97], o tempo de
estabelecimento do caminho pelos cabealhos amortizado entre mais flits quando a
mensagem mais longa. Uma vez que o caminho estabelecido pelo cabealho, os flits
da carga o seguem avanando mais rapidamente do que este.

PI-Bus SPIN
300
Latncia Mdia (ciclos)

250
200
150
100
50
0
1 3 5 7 9 11 14 16 19 20 23 24 25 30 31
Carga Oferecida (%)

FIGURA 4.22 Latncia mdia do PI-Bus e da SPIN para Ncell = 2.


106

Na Tabela 4.4, so listados os limites de carga oferecida suportada pelas duas


arquiteturas de comunicao para diferentes tamanhos de pacotes. Foi considerado
como ponto de saturao latncias superiores a 100 ciclos. Observa-se que o aumento
do tamanho do pacote permite estender muito pouco a capacidade de carga do
barramento. Entretanto, para a rede SPIN, pacotes com 2 e 4 clulas VCI resultam em
um ponto de saturao cerca de 33% maior que o ponto de saturao correspondente a
pacotes com apenas uma clula. Para pacotes maiores, o ponto de saturao estendido
ainda mais. Porm, a partir de pacotes com 16 clulas, o ponto de saturao limitado a
31%. Acima dessa configurao de tamanho de pacote, o efeito produzido uma
extenso do ponto de saturao se forem consideradas latncias mdias de at 300
ciclos. Por exemplo, para pacotes com 64 clulas, a latncia mdia de 236 ciclos para
uma carga oferecida de 38%, enquanto que, para pacotes com 16 clulas, qualquer carga
oferecida superior a 34,7% conduz a uma latncia mdia maior que 300 ciclos.

TABELA 4.4 Saturao das arquiteturas de comunicao para diferentes


tamanhos de pacote.
Ncell PI-Bus SPIN
1 4% 15%
2 5% 20%
4 5% 20%
8 6% 28%
16 6% 31%
32 6% 31%
64 6% 31%

4.5.3 Avaliao de um sistema multiprocessado executando a FFT


Esta subseo descreve o desenvolvimento de modelos de sistemas
multiprocessados baseados no barramento PI-Bus e na rede SPIN. Esses sistemas foram
modelados com o objetivo de comparar o desempenho das duas arquiteturas com
relao execuo de um benchmark tipicamente utilizado na avaliao de redes de
interconexo. O benchmark escolhido foi a FFT (Fast Fourier Transform), sendo que,
alm da descrio dos modelos dos sistemas, foi necessrio implementar uma verso
paralela da FFT com base nas primitivas de comunicao suportadas pelo sistema
operacional Mutek do simulador CASS.

Arquitetura de referncia

Na avaliao de desempenho baseada na FFT, primeiramente foi estabelecida


uma arquitetura de um sistema integrado monoprocessado definida como arquitetura de
referncia para o desenvolvimento dos sistemas que seriam avaliados. Nessa arquitetura,
ilustrada na Figura 4.23, todos os ncleos de processamento so compatveis com o
padro VCI e so conectados arquitetura de comunicao atravs de adaptadores que
realizam a converso ente o protocolo VCI e o protocolo da arquitetura utilizada (PI Bus
ou SPIN).
107

Arquitetura de comunicao
e seus adaptadores
no-vci no-vci no-vci no-vci no-vci no-vci
vci vci vci vci vci vci

vci vci vci vci vci vci


$D $I
T S M R
T E U A
R3000
Y M L M
tty sem prg dat
rst
exc

FIGURA 4.23 Sistema integrado de referncia para a avaliao de desempenho das


arquiteturas de comunicao.

Os modelos de ncleos includos nesse sistema so os seguintes:


a) R3000 um modelo de processador MIPS sem unidade de ponto flutuante com
interfaces para conexo a caches separadas para dados em instruo.
b) $D cache de dado com interface iniciador-VCI.
c) $I cache de instruo com interface iniciador-VCI.
d) RAM um modelo de memria RAM que instanciado para a implementao de
memrias destinadas ao armazenamento da zona de dados (dat) do espao de
endereamento do MIPS R3000. Este modelo possui interface alvo-VCI.
e) MUL um modelo de memria RAM que suporta o mapeamento de trs zonas de
memria no contguas. Ele utilizado para o mapeamento das zonas de cdigo de
programa (prg), reinicializao (rst) e exceo (dat) do espao de endereamento do
MIPS R3000. Este modelo possui interface alvo-VCI.
f) SEM trata-se de um modelo especializado de memria RAM que implementa
semforos binrios utilizados para a implementao de excluso mtua no acesso a
dados compartilhados (eg. canais de comunicao). Esses semforos so mapeados
em uma zona de endereos denominada sem. Este modelo possui interface
alvo-VCI.
g) TTY um modelo utilizado para a impresso de mensagens em uma janela no
monitor do computador e registro em um arquivo de sada. Sua zona de endereos
referenciada pelo termo tty. Este modelo possui interface alvo-VCI.

Mapa de endereos

Cada um dos ncleos com interface alvo-VCI mapeado em uma ou mais zonas
de endereos mostradas na Tabela 4.2. Todas as zonas possuem um tamanho de
1 Mbyte. Contudo, o ncleo TTY mapeia quatro zonas contguas de 1 Mbyte, as quais
so referenciadas por um nico nome: tty.
108

TABELA 4.5 Mapa de endereos dos ncleos do sistema.


Zona Endereos
dat 0x10000000 0x100FFFFF
prg 0x00400000 0x004FFFFF
exc 0x80000000 0x800FFFFF
rst 0xBFC00000 0xBFCFFFFF
sem 0xB0000000 0xB00FFFFF
tty 0xA0000000 0xA03FFFFF

Na zona dat so mantidas a pilha e os dados do sistema operacional e da


aplicao. Por exemplo, os canais utilizados para comunicao entre threads so
estruturas de dados manipuladas pelo sistema operacional e alocadas nessa zona.

Benchmark

A aplicao escolhida como benchmark para a avaliao e comparao das redes


acima descritas foi a Transformada Rpida de Fourier (FFT Fast Fourier Transform).
O algoritmo utilizado foi baseado naquele apresentado em [QUI 94]. Na verso
implementada, a aplicao conta com threads (denominadas fft) que realizam o
processamento da FFT em paralelo e uma thread adicional para colher o resultado final
do processamento realizado pelas demais e imprimir esses resultados no terminal de
sada, sincronizando o trmino da aplicao (denominada sync). O nmero de threads fft
foi limitado em quatro, o qual corresponde ao nmero de processadores a utilizados na
avaliao.

Na Figura 4.24, mostrado o fluxo de dados para uma FFT de oito pontos
processada atravs de quatro threads fft e uma thread sync. Conforme ilustrado na
figura, o algoritmo executado em quatro estgios: (i) permutao de pontos entre as
threads fft; (ii) iteraes com processamento e sem comunicao; (iii) interaes com
processamento e comunicao; e (iv) sincronizao. A primeira etapa pode ser
eliminada se os pontos forem lidos pelas threads fft na ordem permutada.

Durante o estgio de processamento com comunicao, a cada iterao, as


threads fft devem trocar informaes sobre todos os seus pontos com uma thread fft
parceira. Isso feito pela leitura e escrita em canais de comunicao cuja profundidade
proporcional ao tamanho do vetor de pontos a ser trocado (igual ao nmero de pontos
por thread). Da mesma forma, ao trmino do estgio de processamento com
comunicao, as threads fft enviam seus resultados finais para a thread sync escrevendo
em canais de comunicao reservados para essa finalidade.

O cdigo dessa verso da FFT paralela escalvel e o nmero de threads fft


pode ser aumentado se o sistema integrado alvo permitir o aumento do paralelismo da
execuo. Ou seja, teoricamente, quanto maior for o nmero de processadores
disponvel no sistema, maior ser a capacidade de processamento paralelo instalada e os
pontos da FFT podero ser distribudos entre um nmero maior de threads fft. Contudo,
esse nmero dever escalar de forma que o nmero de threads fft seja uma potncia de
dois.
109

Processamento Processamento
Permutao sem com Sincronizao
comunicao comunicao

A0 Y0

fft0
A1 Y1

A2 Y2

fft1
A3 Y3

sync
A4 Y4

fft2
A5 Y5

A6 Y6

fft3
A7 Y7

FIGURA 4.24 Fluxo de dados em uma FFT com oito pontos processada por quatro
threads fft.

Sistemas multiprocessados

Em sistemas multiprocessados, a vantagem do paralelismo da rede SPIN sobre o


PI-Bus ser verificada se, e somente se, os dados puderem ser distribudos entre
diferentes RAMs de dados. Caso contrrio, apesar de a rede oferecer mltiplos
caminhos paralelos, uma RAM de dados nica iria seqencializar as comunicaes.
Com esse objetivo, para cada thread fft, foi definida uma estrutura para manter os dados
privativos de cada thread em uma RAM particular. Cada uma dessas memrias pode
receber as estruturas de dados de uma ou mais threads, conforme o nmero de RAMs
instanciadas. Essa alocao feita estaticamente atravs de ponteiros que apontam para
endereos sabidamente no utilizados pelo sistema operacional dentro da zona de dados
de 0x100A0000 a 0x100DFFFF.

Em um sistema com quatro processadores (Figura 4.25), cada thread fft deve ser
carregada pelo sistema operacional em um processador diferente. Havendo cinco RAMs
de dados, a estrutura de dados de cada thread colocada em uma RAM exclusiva e a
quinta memria utilizada para manter os dados do sistema operacional e a pilha. O
objetivo dessa distribuio manual das estruturas de dados das threads em diferentes
memrias seria contornar uma caracterstica do sistema operacional que refere-se
alocao de todos os dados de todas as threads em uma mesma zona de endereos, a
qual mapeada em nica memria de dados. Contudo, conforme ser apresentado
abaixo, essa soluo mostrou-se infrutfera.
110

Rede de Interconexo e adaptadores


no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci
vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci

vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci
$D $I $D $I $D $I $D $I
T S M R R R R R
T E U A A A A A
R3000 R3000 R3000 R3000
Y M L M M M M M
tty sem prg dat dat dat dat dat fft3 fft2 fft1 fft0
rst fft3 fft2 fft1 fft0 OS
exc

FIGURA 4.25 Sistema multiprocessado para a execuo da FFT.

Rede de Interconexo e adaptadores


no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci no-vci
vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci

vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci vci
$D $I $D $I $D $I $D $I
T S M R R R R R
T E U A A A A A
R3000 R3000 R3000 R3000
Y M L M M M M M
tty sem prg dat dat dat dat dat fft3 fft2 fft1 fft0
rst fft3 fft2 fft1 fft0 OS
exc

FIGURA 4.25 Sistema multiprocessado para a execuo da FFT.

Limitaes da plataforma de simulao

Considerando-se como plataforma de simulao o conjunto formado pelo


simulador CASS, pelo sistema operacional Mutek e pelas bibliotecas de componentes
para a modelagem de sistemas integrados (processadores, memrias, adaptadores e
arquiteturas de comunicao), foram identificadas trs limitaes que impedem a
avaliao adequada do desempenho da rede SPIN quando aplicada modelagem de
sistemas integrados multiprocessados como o descrito na Figura 4.25.

A primeira limitao refere-se ausncia de mecanismos de hardware ou de


software que suportem a coerncia de cache para os dados compartilhados entre as
threads, problema que no ocorre com os modelos orientados ao barramento PI-Bus.
Para contornar essa limitao e tentar obter uma carga de comunicao semelhante para
as duas arquiteturas, nas avaliaes realizadas, a cache de dados foi desabilitada para
ambas as arquiteturas.

A segunda limitao decorre de duas caractersticas do simulador.


Primeiramente, o sistema operacional Mutek foi desenvolvido visando sistemas
baseados no barramento PI-Bus e todos os dados das aplicaes e do sistema so
alocados em uma mesma zona de endereos mapeada para uma mesma memria RAM
(denominada dat OS na Figura 4.25). Em segundo lugar, o sistema operacional no
111

oferece primitivas que propiciem a alocao dos dados de cada thread em memrias
fsicas diferentes. A soluo apresentada anteriormente baseia-se na organizao dos
dados de uma thread em uma estrutura alocada para uma zona de memria desejada. O
procedimento utilizado consiste em criar um ponteiro para essa estrutura e fazer esse
ponteiro apontar para uma zona de dados desejada. Contudo, embora se tenha controle
sobre o mapeamento dos dados da thread, o ponteiro para a estrutura de dados continua
sendo alocado e mapeado pelo sistema operacional na memria dat OS. Essa memria
ser acessada por todas as threads que precisarem acessar os dados de suas estruturas
mapeadas em memrias diferentes e se tornar um gargalo para o sistema.

A terceira limitao est fortemente associada limitao descrita no pargrafo


acima. As comunicaes entre as threads so tambm realizadas por meio do acesso a
estruturas de dados alocadas e mapeadas pelo sistema operacional (os canais lgicos de
comunicao). Essas estruturas so todas mapeadas para a memria dat OS e todas as
comunicaes entre as threads devem passar por ela. Dessa forma, embora a rede
oferea largura de banda e paralelismo superiores ao barramento, o fato de sua latncia
ser maior e de haver um ponto de estrangulamento no sistema leva a rede SPIN a ter um
desempenho inferior ao do barramento.

Em resumo, a modelagem dos sistemas multiprocessados orientados ao


barramento PI-Bus e rede SPIN, bem como o desenvolvimento do benchmark
paralelo, foram atividades que consumiram tempo e esforo e cujos resultados no
atenderam s expectativas. Contudo, permitiram a obteno de uma experincia na
modelagem e avaliao de sistemas reais e na identificao das limitaes do ambiente
de simulao. Assim, destaca-se que o ambiente CASS/Mutek requer a implementao
de suporte coerncia de cache alocao e mapeamento dos dados da threads e dos
canais de comunicao em memrias distribudas para que uma soluo
multiprocessada baseada na rede SPIN tenha um desempenho efetivo.

Resultados experimentais

Os resultados mostrados a seguir ilustram as questes destacadas acima. So


apresentadas curvas que indicam o nmero de ciclos gastos na execuo da FFT
utilizando-se quatro threads mapeadas no sistema multiprocessado da Figura 4.25 com
quatro processadores (com caches de dado desabilitadas). Cada curva mostra o tempo
gasto na soluo da FFT para diferentes quantidades de pontos (4, 8, 16, 32 e 64).
Conforme pode ser observado, o desempenho da rede SPIN bastante inferior ao do
barramento PI-Bus, o qual apresenta uma latncia significativamente menor que a da
rede SPIN.
112

SPIN PI-Bus
1000000

800000

Nmero de Ciclos
600000

400000

200000

0
4 8 16 32 64
Nmero de pontos na FFT

FIGURA 4.26 Nmero de ciclos para a execuo da FFT com diferentes nmeros de
pontos no barramento PI-Bus e na rede SPIN.

4.6 Consideraes

Este captulo apresentou as atividades e os resultados associados ao estgio


sanduche realizado no departamento ASIM do LIP6 sob a orientao do professor
Alain Greiner. Como foi destacado, o estgio focou o estudo de conceitos associados
avaliao de arquiteturas de comunicao para sistemas integrados, incluindo o
simulador CASS, o padro VCI, o barramento PI-Bus e a prpria rede SPIN. Desse
estudo, desenvolveu-se um modelo CASS do roteador RSPIN, assim como sistemas
integrados baseados no barramento PI-Bus e na rede SPIN e um benchmark paralelo
para a avaliao de sistemas reais. Os modelos foram aplicados na avaliao do
desempenho dessas arquiteturas.

Os experimentos baseados em geradores de trfego demonstraram a efetividade


da rede SPIN. Foi possvel observar que a rede SPIN se mostra superior em
desempenho ao barramento PI-Bus em sistemas com mais de oitos ncleos,
considerando-se a carga de comunicao modelada. Para sistemas com 32 ncleos,
verificou-se que a rede SPIN se apresenta como a nica das duas arquiteturas a sustentar
uma latncia mdia aceitvel (at 100 ciclos) para valores de carga oferecida superiores
a 6% (ou at menores, dependendo do tamanho dos pacotes). Esses resultados foram
divulgados em artigo publicado no Designers Forum da conferncia DATE2003
[AND 2003]. J os experimentos baseados em modelos de sistemas reais no atenderam
as expectativas devido a limitaes no simulador CASS. Contudo, acredita-se que caso
no houvessem tais limitaes, os resultados confirmariam o melhor desempenho da
rede-em-chip relao ao barramento.

No perodo de estgio realizado no departamento ASIM foi possvel verificar-se


a efetividade da metodologia de modelagem e avaliao de arquiteturas de comunicao
para sistemas integrados utilizando-se o simulador CASS. Como destacado acima, o
simulador mostrou-se efetivo na avaliao de sistemas sintticos, mas foi bastante
restritivo quando da avaliao de modelos de sistemas reais. Acredita-se que as
limitaes apresentadas so passveis de serem contornadas pela incluso de chamadas
de funo no sistema operacional Mutek que permitam a alocao e o mapeamento de
113

dados privativos das threads e dos canais de comunicao em diferentes memrias


distribudas do sistema.

Durante o processo de estudo e modelagem do roteador RSPIN foi possvel


colaborar com os pesquisadores do Projeto SPIN no sentido de identificar solues
arquiteturais para o roteador, como, por exemplo, a definio da arquitetura dos rbitros
do roteador, e tambm auxiliar na depurao de modelos de componentes do simulador
CASS (eg. processador e adaptadores de comunicao). Essa interao foi mantida
quando do retorno ao Brasil, uma vez que as atividades de experimentao e
composio do artigo publicado no Designers Frum do DATE2003 foram
conduzidas aps a concluso do estgio.

A experincia obtida com esses estudos foi fundamental para o desenvolvimento


dos projetos de pesquisa realizados posteriormente, principalmente na definio de uma
arquitetura alternativa de rede-em-chip com vistas sntese de redes de menor custo.
Essa arquitetura de rede, denominada SoCIN (System-on-Chip Interconnection
Network) descrita no captulo a seguir.
114
115

5 Uma Arquitetura de Rede-em-Chip para Sistemas


Integrados

Este captulo apresenta a arquitetura de uma rede-em-chip denominada SoCIN


(System-on-Chip, Interconnection Network), a qual possui topologia direta e pode ser
configurada como uma grelha 2-D ou um toride 2-D (ou um toride dobrado). Ela se
baseia em controle de fluxo do tipo handshake, roteamento do tipo fonte e
determinstico, chaveamento por pacotes do tipo wormhole, arbitragem dinmica
distribuda e memorizao de entrada.

O bloco construtivo bsico da rede SoCIN o roteador RASoC (Router


Architecture for Systems-on-Chip) e trata-se de um soft-core VHDL parametrizvel em
trs dimenses: largura dos canais de comunicao, profundidade dos buffers e largura
da informao de roteamento no cabealho do pacote. Alm disso, o roteador RASoC
pode ser configurado quanto ao nmero de portas a serem sintetizadas. Contudo, essa
parametrizao deve ser feita no momento da modelagem da rede, aterrando-se as
entradas das portas no utilizadas e deixando em aberto as sadas dessas portas. Essas
caractersticas oferecem um nvel de customizao rede que permite que a mesma seja
dirigida a diferentes aplicaes.

As alternativas arquiteturais utilizadas no roteador RASoC buscam atender a


diferentes objetivos, algumas esto entre as de menor custo, enquanto que outras esto
entre as de melhor desempenho. A explorao do espao de projeto foi limitada, pois
entende-se que, em um primeiro momento, mais importante dispor de um modelo
validado que estabelea as bases para tal explorao. A estrutura do roteador
distribuda e modularizada, sendo que cada mdulo possui uma interface que permite o
reuso do bloco na implementao de outras alternativas arquiteturais.

Devido limitao de acesso a tecnologias para a validao do modelo e


obteno de resultados de sntese, a modelagem do roteador RASoC foi orientada a
dispositivos lgicos programveis de alta densidade, tambm denominados CPLDs
(Complex Programmable Logic Devices) ou FPGAs (Field Programmable Gate
Arrays). Contudo, o modelo pode ser facilmente portado para a sntese em outras
tecnologias.

Neste captulo, so apresentados detalhes e discusses a respeito da escolhas de


projeto para a rede (topologia, enlaces, modelo de comunicao nativo, chaveamento,
rotamento, formato do pacote, memorizao, controle de fluxo e arbitragem) e uma
viso geral da organizao do roteador RASoC (os detalhes da organizao e da
implementao do modelo VHDL so apresentados no Apndice 1). Este captulo
tambm apresenta alguns dos principais diagramas de formas de onda utilizados na
validao do modelo, assim como resultados da sntese do roteador e de redes de
pequena escala em FPGA.
116

5.1 Topologia

A rede SoCIN utiliza como topologia topologia de referncia a grelha 2-D, a


qual mostrada na Figura 5.1. Na figura, as caixas representam roteadores e os arcos
entre os roteadores representam enlaces de comunicao. O arco no canto superior
esquerdo de cada caixa representa um enlace terminal para conexo de um ncleo
rede. Do ponto de vista do roteador, esse enlace terminal denominado porta local.

Roteador Enlace

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

FIGURA 5.1 Topologia em grelha 2-D utilizada na rede SoCIN.

A escolha dessa topologia deve-se ao fato de que as estruturas 2-D constituem-se


nas mais fceis de se implementar com as tecnologias de fabricao correntes
[TAY 99], pela possibilidade de crescimento da rede sem modificaes aos roteadores e
pela capacidade dessa topologia em explorar a localidade espacial das aplicaes,
oferecendo, juntamente com a rvore-gorda, as melhores oportunidades de ganho de
desempenho para um conjunto maior de aplicaes [BAR 99].

Uma caracterstica da grelha 2-D que ela pode ser facilmente estendida para
um toride 2-D (Figura 5.2.a) pela incluso de enlaces interligando os roteadores da
periferia da rede. O toride tem a vantagem de reduzir o dimetro da rede, um
parmetro determinado pelo caminho mais curto entre os nodos mais distantes na rede
[HWA 93]. Contudo, essa topologia possui um conjunto de enlaces mais longos que os
da grelha, sendo que o maior comprimento desses canais resulta em uma carga
capacitiva maior e uma freqncia de operao menor. No que tange a topologia, essa
limitao pode ser amenizada utilizando-se variantes como o toride dobrado ilustrado
na Figura 5.2.b. Nessa topologia, os enlaces mais longos so menores que os
correspondentes no toride convencional, o que resulta em uma carga capacitiva menor
e uma freqncia de operao maior. Na figura, os enlaces entre os roteadores so
representados em um tom mais claro para uma maior legibilidade.
117

0 1 2 3 0 2
1 3

4 5 6 7 4 6
5 7

8 9 10 11 8 10
9 11

12 13 14 15 12 14
13 15

(a) (b)
FIGURA 5.2 Topologias alternativas para a rede SoCIN:
(a) toride 2-D; (b) toride dobrado 2-D.

As topologias ilustradas nas Figuras 5.1 e 5.2 possuem estrutura regular.


Contudo, tipicamente, os ncleos de um sistema integrado tm dimenses diferentes e,
para no desperdiar rea de silcio, preciso que a rede assuma uma estrutura irregular
como, por exemplo, a da Figura 5.3. Um aspecto interessante que pode ser observado
nessa figura que o roteador 4 no possui nenhum ncleo conectado ao seu enlace
terminal, mas ele includo devido a requisitos do algoritmo de roteamento. Por
exemplo, se o algoritmo determinar que um pacote deve percorrer primeiramente os
enlaces na direo X para s depois deslocar-se na direo Y (sem poder retomar um
enlace da direo X), seria impossvel o envio de um pacote do ncleo conectado ao
roteador 3 para o ncleo conectado ao roteador 7, por exemplo.

0 1 2

3 4 5

6 7 8

FIGURA 5.3 Um sistema heterogneo baseado em uma rede em grelha 2-D.

Em [ZHA 99], foi investigado o problema da interconexo de ncleos


heterogneos nos futuros sistemas integrados baseados em redes-em-chip. Esse estudo
foi realizado no mbito de um sistema com ncleos reconfigurveis e, com base na
heterogeneidade dos ncleos, os autores propuseram o uso de uma estrutura de
interconexo baseada em uma grelha 2-D com leiaute irregular. Um problema que surge
da irregularidade da rede que seus canais so diferentes e precisam ser otimizados
individualmente para atender aos requisitos de conectividade de cada ncleo [ZHA 99].
A principal limitao de um projeto heterogneo a sua falta de generalizao para uma
metodologia de projeto organizada. Uma alternativa para se garantir a regularidade da
rede e ainda a latncia da rede em grelha para longas distncias consiste no uso de uma
rede com estrutura hierrquica. Essa hierarquia constituda por uma grelha 2-D regular
no topo da hierarquia e por arquiteturas de comunicao locais (eg. em barrramento ou
118

em grelha) interconectando os ncleos organizados sob a forma de agregados (clusters),


os quais so conectados aos terminais da rede do topo [TAY 99].

Consideradas as restries para o acesso a tecnologias de fabricao de circuitos


integrados, a rede SoCIN foi modelada e validada visando sua aplicao inicial em
sistemas integrados sintetizados em dispositivos do tipo FPGA [ROS 93], os quais
constituem-se em uma tecnologia acessvel para a integrao de sistemas digitais.
Entretanto, sabido que essa abordagem limitada a sistemas experimentais e no
utilizada em sistemas integrados comerciais. De fato, os FPGAs constituem em partes
integrantes de muitos sistemas integrados, mas so utilizados para a sntese de partes
reconfigurveis das aplicaes [LIA 2000, KUM 2002], no para a sntese da
arquitetura de comunicao. Por isso, o modelo da rede SoCIN foi planejado de modo a
ser facilmente portado para outras tecnologias, alm do FPGA.

5.2 Enlaces

Os enlaces da rede SoCIN so similares aos da rede SPIN [GUE 2000a] e so


implementados por dois canais unidirecionais simplex (Figura 5.4). Cada canal simplex
constitudo por n bits de dados e dois bits de banda lateral, sendo n+2 o valor da
largura fsica do canal (phit). Os dois bits de banda lateral correspondem aos sinais
usados para o enquadramento do pacote, os quais constituem os marcadores de incio de
pacote (bop begin-of-packet) e fim de pacote (eop end-of-packet). O parmetro n
deve ser definido em funo dos requisitos do sistema e pode incluir, alm dos sinais
necessrios para o transporte dos dados do pacote, sinais adicionais a serem
manipulados por um protocolo de mais alto nvel. Um exemplo seria a implementao
de sinalizadores de paridade e de erro de paridade, como na rede SPIN [GUE 2000]. Tal
protocolo seria transparente aos roteadores da rede, mas visvel aos adaptadores de
comunicao. Alm dos n+2 bits, cada canal simplex inclui um par de sinais necessrios
ao controle de fluxo (val e ack), os quais no so contabilizados no clculo do phit da
rede, pois no atravessam os roteadores e no armazenados em seus buffers. O uso
desses bits de enquadramento do pacote e de controle de fluxo ser melhor explicado
em sees que seguem.

n n+2
data
bop val
eop ack
Enlace
n+2 SoCIN

FIGURA 5.4 Enlace da rede SoCIN.


119

5.3 Modelo de Comunicao Nativo

O modelo de comunicao nativo da rede SoCIN o de troca de mensagens. Em


um sistema integrado baseado na rede SoCIN, os ncleos comunicam-se entre si
enviando e recebendo pacotes de requisio e de resposta. Os ncleos com capacidade
de iniciar uma comunicao e enviar um pacote de requisio so denominados
iniciadores-SoCIN (eg. processador), enquanto que os que devem responder s
requisies enviando pacotes de resposta so denominados alvos-SoCIN
(eg. memrias). Essa terminologia derivada daquela utilizada no padro VCI
[VSI 2000].

A maioria dos ncleos para sistemas integrados baseia-se em modelos de


comunicao diferentes do modelo nativo da rede SoCIN, utilizando, tipicamente, o
modelo de comunicao de fluxo de dados (dataflow) ou modelo do espao de
endereamento [GUE 2000a]. Na verdade, sabido que os futuros sistemas integrados
iro incluir um conjunto diversificado de tarefas heterogneas [KUM 2002], integrando
ncleos orientados a um ou a outro modelo de comunicao. Dessa forma, padres de
trfego com comportamentos dinmico e esttico iro coexistir em um mesmo sistema.

Qualquer rede-em-chip que se proponha ser reutilizvel para diferentes domnios


de aplicao deve ser capaz de suportar os modelos de comunicao utilizados por essas
aplicaes. Esse suporte pode ser dado atravs da implementao de adaptadores de
comunicao, os quais tm a funo de realizar a adaptao entre os modelos de
comunicao dos ncleos e da rede. Alternativamente, os ncleos podem ser
implementados incluindo uma interface compatvel com o protocolo da rede. Contudo,
mais provvel que os ncleos a serem integrados em um sistema no ofeream tal
compatibilidade, exigindo o uso de adaptadores.

Na rede SoCIN, os adaptadores de comunicao devem ter um nmero de


identificao exclusivo correspondente posio do roteador ao qual est conectado, e
uma tabela de roteamento a ser utilizada para determinar a rota a ser tomada por cada
pacote enviado de um ncleo a outro. Aps consultar a tabela, o adaptador constri o
cabealho do pacote, nele incluindo a informao de roteamento correspondente ao
caminho a ser tomado pelo pacote e a prpria identificao do adaptador. Essa
identificao necessria para que o adaptador do ncleo alvo da comunicao possa
determinar o emissor do pacote de requisio e estabelecer a rota a ser tomada pelo
pacote de resposta.

Na Figura 5.5, ilustrado um exemplo de sistema baseado em uma rede SoCIN


com topologia em grelha 22. Nesse sistema existem dois iniciadores-SoCIN e dois
alvos-SoCIN (caixas escuras) conectados rede atravs de adaptadores de comunicao
(caixas claras). Na figura, assume-se que os adaptadores dos iniciadores implementam
tabelas de roteamento para os alvos e vice-versa.
120

destino rota destino rota


Iniciador Alvo
1 (0,1) 0 (1,0)
3 (0,1,3) 2 (1,0,2)
0 1

Iniciador Alvo

destino rota destino rota


1 (2,3,1) 2 3 0 (3,2,0)
3 (2,3) 2 (3,2)

FIGURA 5.5 Um sistema genrico baseado na rede SoCIN.

A adaptao dos diferentes modelos de comunicao ao modelo nativo da rede


SoCIN consiste na implementao dos circuitos de converso dos protocolos e das
interfaces, bem como a configurao adequada das tabelas de roteamento. Por exemplo,
na Figura 5.6.a mostrado um sistema integrado multiprocessado baseado no modelo de
comunicao de espao de endereamento. Ele composto por dois ncleos de
processamento (CPUs Central Processing Units), um controlador de E/S e uma
quantidade de memria RAM interconectados por um barramento controlado pelo BCU
(BCU Bus Controller Unit). O BCU possui uma tabela de mapeamento utilizada na
decodificao de endereos para a seleo do escravo alvo de cada comunicao.
A implementao de um sistema semelhante baseado na rede SoCIN exigiria o uso de
adaptadores de comunicao cujas tabelas de roteamento dos adaptadores inclussem o
mapeamento necessrio para o estabelecimento das rotas a serem includas em cada
pacote (Figura 5.6.b). Nos adaptadores dos iniciadores-SoCIN, as tabelas efetuam o
mapeamento de zonas de endereos do espao de endereamento de memria para rotas
a serem tomadas pelos pacotes de requisio (no exemplo, assume-se que a E/S
mapeada no espao de memria). J nos adaptadores dos alvos-SoCIN, as tabelas
realizam o mapeamento entre endereos de rede e as rotas a serem tomadas pelos
pacotes de resposta.

destino rota CPU RAM destino rota


destino sel_ram sel_es
0x0000-0xEFFF (0,1) Iniciador Alvo 0 (1,0)
0x0000-0xEFFF 1 0
RAM CPU 0xF000-0xFFFF (0,1,3) 2 (1,0,2)
0xF000-0xFFFF 0 1
Escravo Mestre 0 1
B sel_ram CPU E/S
C Iniciador Alvo
U sel_es
E/S CPU destino rota destino rota
Escravo Mestre 0x0000-0xEFFF (2,3,1) 2 3 0 (3,2,0)
0xF000-0xFFFF (2,3) 2 (3,2)

(a) (b)
FIGURA 5.6 Exemplo de um SoC multiprocessado: (a) baseado em um barramento;
(b) baseado na rede SoCIN.

Procedimento anlogo ao mostrado na Figura 5.6 deve ser utilizado para a


interconexo de ncleos em aplicaes baseadas no modelo de comunicao de fluxo de
dados.
121

5.4 Chaveamento
A rede SoCIN utiliza o chaveamento por pacotes do tipo wormhole. Os pacotes
so constitudos por flits sendo que cada flit possui o tamanho de um phit, o qual igual
a n+2 bits. O primeiro flit do pacote constitui o seu cabealho e inclui as informaes
necessrias ao estabelecimento do caminho do pacote na rede. Os demais flits incluem a
informao a ser transferida pelo pacote, sendo que eles seguem o flit de cabealho pela
rede em um modo pipeline. Cada roteador da rede tem capacidade para armazenar
poucos flits de um pacote bloqueado. Assim, quando o cabealho de um pacote chega a
um roteador e a porta de sada necessria ao seu encaminhamento no est disponvel, o
roteador absorve os flits possveis de serem armazenados no espao disponvel em seu
buffer e os demais flits so mantidos nos buffers dos roteadores anteriores no caminho
do pacote.

5.5 Roteamento

A rede SoCIN utiliza roteamento baseado no ordenamento por dimenso


[DUA 97]. Com base na classificao das tcnicas de roteamento apresentada na
seo 2.4, essa tcnica pode ser classificada como dinmica, unicast, fonte, baseada em
tabela e determinstica. Em outras palavras, as rotas a serem utilizadas pelos pacotes so
determinadas em tempo de execuo, sendo que cada pacote pode ter apenas um
destinatrio e a rota a ser seguida definida pelo emissor do pacote por meio da
consulta a uma tabela de roteamento. Por ser determinstico, os pacotes transferidos de
um dado emissor para um dado receptor utilizam sempre o mesmo caminho, sem
qualquer capacidade de adaptao s falhas ou ao trfego na rede.

As tcnicas de roteamento baseadas no ordenamento por dimenso so muito


utilizadas em redes de interconexo com topologias dos tipos grelha, toride e
hipercubo n-dimensionais. Elas recebem diferentes denominaes, como roteamento
XY para as redes 2-D ou e-cube para as redes hipercbicas [DUA 97]. A grande
vantagem do roteamento baseado no ordenamento por dimenso que ele garante a
liberdade de deadlock a um baixo custo de implementao, porm, reduz a utilizao da
rede, conforme ser explicado posteriormente.

No roteamento XY utilizado na rede SoCIN, um pacote deve percorrer


totalmente uma linha na direo X at chegar coluna na qual se situa o destinatrio.
Aps isso, ele deve percorrer essa coluna at atingir o roteador ao qual o ncleo
destinatrio est conectado, quando ento ele entregue a esse ncleo. Uma vez que um
pacote toma a direo Y, ele no pode mais tomar a direo X. Se os ncleos fonte e
destinatrio estiverem na mesma linha, o pacote no precisa ser roteado na direo Y.
De maneira anloga, se eles estiverem na mesma coluna, o pacote no precisa ser
roteado na direo X.
122

Na Figura 5.7, so apresentados alguns exemplos de rotas permitidas pelo


roteamento XY em uma rede com topologia em grelha 2-D (a tabela ao lado lista a rotas
ilustradas na figura). Destaca-se a comunicao entre os ncleos conectados aos
roteadores 10 e 15. Como pode ser observado, o caminho tomado pelos pacotes
emitidos por cada um dos dois ncleos diferente, pois a direo Y s pode ser
utilizada aps serem esgotados os deslocamentos na direo X.

0 1 2 3
0 1 2 3
Origem Destino Rota
0 6 0-1-2-6
4 5 6 7
4 5 6 7 5 8 5-4-8
7 3 7-3
8 9 10 11 12 16 12-13
8 9 10 11
10 15 10-11-15
15 10 15-14-10
12 13 14 15
12 13 14 15

FIGURA 5.7 Exemplos de rotas permitidas no roteamento XY.

Conforme foi discutido na subseo 2.3.3, o deadlock surge quando ocorre uma
dependncia cclica entre quatro pacotes na rede. Uma dependncia cclica pode surgir
em uma grelha 2-D quando o algoritmo de roteamento permitir a ocorrncia de qualquer
um dos dois ciclos abstratos ilustrados na Figura 5.8.a. Cada um desses ciclos
constitudo por quatro voltas (ou curvas) e se o roteamento permitir que todas essas
voltas sejam realizadas, ento esses ciclos podero ocorrer e provocar dependncias
cclicas, levando a rede ao estado de deadlock.

(a) (b)
FIGURA 5.8 Dependncias cclicas: (a) ciclos abstratos (b) voltas permitidas no
roteamento XY [DUA 97].

O roteamento XY garante a liberdade de deadlock proibindo a ocorrncia das


voltas Y-para-X, ilustradas por linhas tracejadas na Figura 5.8.b. Como somente so
permitidas as voltas do tipo X-para-Y, ilustradas por linhas contnuas na mesma figura,
os ciclos abstratos da Figura 5.8.a jamais iro ocorrer e a rede nunca entrar em
deadlock. Contudo, ao limitar os tipos de volta permitidos em uma rota, o roteamento
tambm limita as rotas possveis de serem utilizadas entre os ncleos conectados rede.
Essa questo ilustrada na Figura 5.9. Dada uma grelha 44 com roteadores
identificados pelos nmeros de 0 a 15, se, por exemplo, o ncleo conectado ao roteador
0 estiver enviando um pacote longo (que ocupe muitos canais simultaneamente) ao
ncleo conectado ao roteador 2, os canais e os buffers associados rota 0-1-2 estaro
reservados para essa comunicao at que o terminador do pacote avance por esse
caminho liberando os recursos alocados. Se, durante o envio desse pacote, o ncleo
conectado ao roteador 1 tiver um pacote para ser enviado ao ncleo conectado ao
roteador 6, ele ter que esperar a liberao do canal 1-2 pelo pacote em curso para poder
123

avanar ao seu destinatrio utilizando a rota 1-2-5. Se no houvesse a restrio de voltas


do tipo Y-para-X, a rota 1-5-6 poderia ser utilizada, reduzindo a conteno na rede.

0 1 2 3
0 1 2 3

4 5 6 7
4 5 6 7 Origem Destino Rota
0 2 0-1-2
8 9 10 11 1 6 1-2-6
8 9 10 11

12 13 14 15
12 13 14 15

FIGURA 5.9 Exemplo de limitao do uso dos canais da rede com roteamento XY.

Em resumo, a garantia da ausncia de deadlock por restrio de voltas tem um


preo a ser pago: a reduo do nmero de rotas possveis e, portanto, a reduo da taxa
de utilizao da rede e da largura de banda agregada disponvel. Contudo, existem
alternativas de algoritmos de roteamento livres de deadlock menos restritivos com
relao aos tipos de volta permitidos. Por exemplo, o modelo de volta (turn model),
proposto por Glass e Ni [GLA 92], probe apenas uma volta em cada ciclo abstrato,
propiciando diferentes algoritmos de roteamento parcialmente adaptativos e com uma
melhor taxa de utilizao da rede. J os algoritmos de roteamento totalmente
adaptativos oferecem uma taxa de utilizao da rede ainda maior. Contudo, a garantia
da liberdade de deadlock nesses algoritmos mais onerosa, especialmente em redes
com chaveamento por pacotes do tipo wormhole, nas quais a soluo consiste no uso de
controle de fluxo baseado em canais virtuais [DAL 87]. Estudos apresentados em
[VAI 2001] mostram que o uso de roteamento adaptativo e canais virtuais em redes de
interconexo para computadores paralelos s justificvel se a aplicao apresentar
uma demanda de largura de banda de comunicao que compense o custo adicional para
a implementao da rede. No nvel das redes-em-chip, as restries de custo podem ser
ainda maiores conforme a quantidade de silcio disponibilizada para a implementao
da rede. Por isso, das redes-em-chip conhecidas que utilizam topologia em grelha e
chaveamento por pacotes do tipo wormhole [KUM 2002], o roteamento XY tem sido a
opo preferencial, pois permite a construo de roteadores de baixo custo e de redes
livres de deadlock.

5.5.1 Implementao do roteamento XY na rede SoCIN


O roteamento XY implementado na rede SoCIN do tipo fonte e baseado em
endereamento relativo. Em outras palavras, o adaptador de comunicao do ncleo
emissor do pacote consulta sua tabela de roteamento e obtm a informao que define a
quantidade de deslocamentos a serem realizados nas direes X e Y para o pacote
chegar no seu destinatrio (ou seja, o nmero de enlaces em cada direo). Na medida
em que o cabealho do pacote avana pela rede, de roteador em roteador, essa
informao deve ser atualizada no cabealho para refletir o nmero de deslocamentos
que restam ser realizados. A informao de roteamento utilizada em cada roteador
para determinar a porta de sada a ser requisitada para o encaminhamento do pacote.
Enquanto o valor do deslocamento em X for no nulo, o pacote encaminhado na
direo X. proporo em que ele avana nessa direo, esse valor decrementado at
124

chegar a 0. No roteador seguinte, se o valor do deslocamento em Y for no nulo, o


pacote roteado nessa direo. Ao passo em que cabealho do pacote avana pela rede
na direo Y, esse valor decrementado at chegar a 0. Quando um roteador recebe um
cabealho de pacote com os valores de deslocamento em X e em Y nulos, o pacote
entregue ao ncleo conectado porta local do roteador.

A informao de roteamento constituda por quatro campos que definem a


quantidade de deslocamentos a serem dados nas direes X e Y, assim como o sentido a
ser tomado. Esses campos so denominados Xmod, Xdir, Ymod e Ydir, sendo que Xmod
e Ymod informam o nmero de enlaces a serem percorridos pelo pacote em X e em Y,
respectivamente. J os campos Xdir e Ydir definem se o pacote deve ser dirigido nos
sentidos leste ou oeste, para a direo X, e norte ou sul para a direo Y, conforme
mostra a Tabela 5.1.

TABELA 5.1 Campos constituintes da informao de roteamento.


Campo Tipo Significado
Xmod Natural Quantidade de deslocamentos em X (nmero de enlaces em X)
Xdir Bit Sentido do deslocamento em X: 0 = leste, 1 = oeste
Ymod Natural Quantidade de deslocamentos em Y (nmero de enlaces em Y)
Ydir Bit Sentido do deslocamento em Y: 0 = norte, 1 = sul

Na Figura 5.10, exemplificada a transferncia do cabealho de um pacote pela


rede, destacando-se a atualizao da informao de roteamento em cada roteador. Um
pacote destinado ao ncleo conectado ao roteador 10 injetado na rede pelo adaptador
de comunicao do ncleo conectado ao roteador 4. Como pode ser observado, a
informao de roteamento no momento da injeo do pacote na rede igual 0,2,1,1 e
indica que o pacote deve percorrer dois enlaces em direo ao leste e um enlace em
direo ao sul. O exemplo explicado a seguir.

0 1 2 3
0 1 2 3

0,2,1,1
4 5 6 7
4 5 6 7
0,1,1,1 0,0,1,1
0,0,1,0
Origem Destino Xdir,Ymod,Ydir,Ymod
0,0,1,0
4 10 0,2,1,1
8 9 10 11
8 9 10 11

12 13 14 15
12 13 14 15

FIGURA 5.10 Exemplo de roteamento de um pacote na rede SoCIN.

No exemplo da Figura 5.10, o roteador 4 avalia o campo Xmod e, aps


identificar que o mesmo no nulo, avalia o campo Xdir para determinar se o pacote
ser encaminhado em direo ao oeste ou ao leste (nica opo possvel para esse
roteador). Desde que Xdir igual a 0, o pacote encaminhado em direo ao leste e o
campo Xmod decrementado, passando a valer 1. Procedimento semelhante se repete
no roteador 5, o qual atualiza o campo Xmod tornando-o nulo. O roteador 6, por sua vez,
verifica que Xmod igual a 0 e ento avalia o campo Ymod para verificar se o mesmo
no nulo. No exemplo, como Ymod igual a 1, o roteador avalia o campo Ydir para
determinar se o pacote deve ser encaminhado em direo ao norte ou ao sul. Antes de
125

enviar o pacote pela sada sul (pois Ydir igual a 1), o roteador 6 atualiza o campo
Ymod decrementando-o para 0. O roteador 10 recebe esse pacote e, aps determinar que
tanto Xmod quando Ymod so nulos, entrega o pacote ao ncleo conectado sua porta
local. O algoritmo de roteamento XY baseado em endereamento relativo ilustrado no
cdigo C apresentado na Figura 5.11.

Entradas: mdulo e direo em X e em Y (Xmod, Xdir, Ymod, Ydir)


Sadas: porta de sada selecionada (Sel)
Constantes: portas de sada (West, East, North, South, Local)
int RoutingXY(int Xdir, int *Xmod, int Ydir, int *Ymod)
{
int Sel;
if (*Xmod != 0) {
if (Xdir = 1)
Sel = West;
else
Sel = East;
*Xmod--;
}
else {
if (*Ymod != 0) {
if (Ydir = 1)
Sel = South;
else
Sel = North;
*Ymod--;
}
else
Sel = Local;
}
return Sel;
}

FIGURA 5.11 O algoritmo de roteamento XY baseado em endereamento relativo.

Uma outra alternativa para a implementao do roteamento XY baseada no


endereamento absoluto [DUA 97], no qual os roteadores possuem coordenadas XY e a
informao de roteamento contm as coordenadas do destinatrio. Cada roteador
compara suas coordenadas com as do destinatrio e determina a porta de sada a ser
utilizada. Essa alternativa tem a vantagem de dispensar a atualizao do cabealho e de
ter uma informao de roteamento mais curta, pois no necessrio codificar os bits
indicadores do sentido do deslocamento.

5.6 Formato do Pacote

No protocolo da rede SoCIN, o pacote composto por um flit de cabealho e por


um nmero irrestrito de flits que compem a carga til do pacote, sendo que o ltimo
flit da carga til tambm o terminador do pacote. Cada flit possui n+2 bits, dos quais n
bits so reservados ao transporte de informao (ou dado) e dois bits so destinados ao
enquadramento do pacote. Esses bits de enquadramento so denominados bop (begin of-
packet) e eop (end-of-packet), correspondendo, respectivamente, aos marcadores de
incio (cabealho) e de fim (terminador) do pacote. Conforme pode ser observado na
Figura 5.12, o cabealho marcado pelo bit bop em 1, enquanto que o terminador
marcado pelo bit eop em 1.
126

n+2 bits
e b
o o n bits
p p
0 1 Cabealho

0 0 ...
Carga
til
1 0 Terminador

FIGURA 5.12 Formato do pacote SoCIN.

No cabealho de um pacote SoCIN, m bits so reservados informao de


roteamento. Esse parmetro pode ser configurado em funo do tamanho da rede a ser
sintetizada, sendo que m deve ser menor ou, no mximo, igual a n. Na terminologia da
rede SoCIN, esses bits so denominados RIB (Routing Information Bits) e incluem os
campos relacionados ao deslocamento em X e em Y. Dos m bits do RIB, (m2)/2 so
reservados ao campo Xmod e (m-2)/2 so reservados ao campo Ymod. Os outros dois
bits so reservados aos campos Xdir e Ydir, conforme ilustrado na Figura 5.13. Os
demais bits do cabealho no so manipulados pelos roteadores e so reservados ao
protocolo de alto nvel (HLP High Level Protocol) dos adaptadores de comunicao.
Esses bits podem ser utilizados, por exemplo, para a identificao do emissor do pacote,
identificao da thread que enviou o pacote em um processador multithreaded ou para
implementar protocolos de deteco e sinalizao de erro de paridade.

m bits
n+2 bits
m-2 m-2
e b 2
bits
2
bits
o o n bits
n-m bits m bits X Y
p p
d d
i
Xmod i
Ymod
0 1 HLP RIB r r

(a) (b)
FIGURA 5.13 Formato do cabealho do pacote SoCIN: (a) HLP e RIB; e
(b) campos do RIB.

O valor definido para m limita o tamanho da rede pois o nmero mximo de


deslocamentos em cada direo igual a:

Xmodmax = Ymodmax = 2(m/2 1) 1 (5.1)

J a dimenso mxima da rede ser kmax kmax, onde:

kmax = 2(m-2)/2 (5.2)

A partir de (5.1) e (5.2), se m for igual a 10, por exemplo, cada campo de
mdulo ter 4 bits com valor mximo igual a 15. A dimenso mxima de uma rede com
topologia em grelha 2-D ser 1616, com 15 enlaces em cada direo. Essa
parametrizao da largura da parte de dados do pacote e da informao de roteamento
(parmetros n e m) permite a sntese de redes com custo mais adequado aos requisitos
do sistema e, ao mesmo tempo, oferece escalabilidade ao modelo do roteador.
127

5.7 Memorizao

A rede SoCIN utiliza memorizao na entrada, abordagem na qual os espao de


memria para o armazenamento de flits de pacotes em cada roteador distribudo sob a
forma de parties entre os canais de entrada do roteador. Essas parties so
implementadas sob a forma de buffers FIFO (First-In, First-Out) e os flits so lidos das
parties na mesma ordem em que so escritos. Essa abordagem apresenta como
limitao o problema do bloqueio de cabea de linha. Contudo, a mais econmica para
a implementao de roteadores de baixo custo. Existem solues para amenizar esse
problema, as quais so baseadas na implementao de mltiplos buffers FIFO em cada
canal de entrada (tipicamente, um para cada sada possvel de ser utilizada), mas essas
solues so mais caras, pois, alm dos mltiplos buffers, requerem crossbars de maior
dimenso [TAM 92].

Nos roteadores da rede SoCIN, cada entrada possui um buffer FIFO com
capacidade de armazenar p flits de n+2 bits, sendo p um parmetro ajustado em funo
dos requisitos do sistema. Quanto maior o seu valor, mais profundos so os buffers e
menor a conteno na rede, pois os pacotes tendem a ocupar menos canais quando so
bloqueados em algum ponto da rede. Contudo, o custo dos roteadores aumenta com p,
sendo que, tipicamente, em redes de interconexo baseadas em chaveamento wormhole,
p igual a quatro [DUA 97].

Como o roteador da rede SoCIN tm at cinco portas de entrada, conforme a


topologia implementada e a posio do roteador na rede, o nmero mximo de bits de
memria por roteador na rede SoCIN dado por:

Memmax/rot = 5 p (n+2) (bits) (5.3)

5.8 Controle de Fluxo

A tcnica de controle de fluxo utilizada na rede SoCIN baseada no protocolo


de handshake, no qual o emissor informa a inteno de enviar um dado ao receptor
atravs de uma linha de validao e o receptor confirma a disponibilidade de espao em
buffer para receber esse dado atravs de uma linha de reconhecimento
(acknowledgement). De fato esse sinal de reconhecimento sinaliza ao emissor que o flit
por ele injetado no canal de comunicao ser consumido pelo receptor no ciclo
seguinte do relgio. O reconhecimento dado sob a condio de haver uma validao
no canal e o buffer de entrada do receptor no estiver cheio.

Cada canal de um enlace SoCIN inclui um par de linhas de controle de fluxo


denominadas val e ack. Essas linhas so conectadas a circuitos de controle em cada
extremidade do canal de modo a implementar o protocolo de handshake que regula o
fluxo de dados no canal. A linha val alimentada pelo emissor do canal, o qual a ativa
quando possuir um flit pronto para ser enviado ao receptor. A linha ack, por sua vez,
alimentada pelo receptor do canal, o qual a ativa quando detecta val em um e possui
espao no seu buffer de entrada para absorver o flit a ser enviado pelo emissor. Esse
mecanismo bastante conservador garante que nenhum flit ser descartado pois a
transmisso s realizada aps um acordo entre os envolvidos na negociao (emissor e
receptor).
128

Em sua implementao, o protocolo de handshake derivado do protocolo FIFO


associado aos buffers de entrada. Como ilustrado na Figura 5.14, a linha val
conectada diretamente sada de estado rok do buffer de entrada do emissor, a qual
sinaliza se o buffer possui algum dado para ser lido. No receptor, a linha val conectada
entrada de controle wr do seu buffer de entrada, a qual comanda a escrita do flit
recebido. Essa escrita s ser realizada se houver espao disponvel para tal, o que
indicado pelo sinal wok, do qual derivado o sinal ack retornado ao emissor. Na figura,
so ilustrados dois autmatos de Mealy que representam o comportamento do controle
de fluxo handshake. Em cada autmato, o nico estado utilizado representa a mquina
de estados do buffer FIFO ao qual est associado. No caso do emissor, quando rok for
igual a 1 (transio superior), a sada val (valor no denominador da expresso) tambm
ser igual a 1. Por outro lado, se rok for igual a 0 (transio inferior), val ser igual a 0.
No caso do receptor, a sada ack ser ativada em 1 somente quando wok e val forem
simultaneamente iguais a 1. Do contrrio, ack ser igual a 0.

Emissor Receptor
val
wr rok wr rok
flit (eop+bop+data)
din FIFO dout din FIFO dout
ack
wok rd wok rd

rok wok . val


1 1

FIFO Emissor FIFO Receptor


/rok /wok + /val
0 0

FIGURA 5.14 Controle de fluxo baseado no protocolo de handshake.

O esquema da Figura 5.14 uma abstrao que busca ilustrar os sinais


envolvidos no controle de fluxo de dados em um canal. So omitidos detalhes a respeito
do chaveamento desses sinais no lado do emissor, j que podem haver at quatro buffers
de entrada possveis de serem conectados ao canal de sada de um dado emissor.

Uma alternativa tcnica de controle de fluxo ilustrada acima seria aquela


baseada em crditos. Nessa tcnica, cada emissor possui um contador que inicializado
com o valor correspondente capacidade de armazenamento de flits do buffer do
receptor. A cada flit enviado, esse contador decrementado e o emissor no poder
enviar nenhum flit quando os crditos se esgotarem (contador igual a zero). Quando o
receptor consome um flit armazenado em seu buffer, repassando-o a outro roteador, ele
envia um bit de crdito ao emissor, o qual incrementa o seu contador de crditos. Essa
tcnica de controle de fluxo aplicada na rede SPIN [GUE 2000a].

5.9 Arbitragem

A rede SoCIN utiliza um esquema de arbitragem distribuda no qual cada porta


de um roteador possui um rbitro que seleciona o buffer de entrada do roteador a ser
conectado ao canal de sada dessa porta. Os rbitros utilizam um critrio baseado em
prioridades dinmicas rotativas (Round-Robin) que garante que nenhum pacote sofrer
com o problema de starvation (discutido na subseo 2.3.1).
129

Na estrutura do roteador, cada buffer de entrada possui um controlador de


entrada que detecta a presena de um cabealho de pacote na sada do buffer e avalia a
informao de roteamento desse cabealho para determinar a porta a ser utilizada para o
encaminhamento do pacote em direo ao seu destinatrio. Aps concluda a seleo, o
controlador de entrada informa o rbitro da porta selecionada atravs de um sinal de
requisio. Esse rbitro recebe outros trs sinais de requisio oriundos de outros
controladores de entrada do roteador. Se o canal de sada estiver livre, o rbitro aplica o
critrio de prioridades corrente para selecionar uma das requisies. Aps completar a
arbitragem, o rbitro ativa um sinal de confirmao que utilizado para comandar
circuitos de chaveamento do roteador a fim de conectar a sada do buffer de entrada
selecionado ao canal de sada da porta. Alm disso, o rbitro atualiza o critrio de
prioridade de modo que o canal de entrada selecionado na arbitragem corrente ter o
menor nvel de prioridade na arbitragem seguinte, o que proporciona uma distribuio
mais igualitria no uso dos canais de sada.

O rbitro de cada canal de sada integrado junto a um circuito controlador de


sada. Esse circuito responsvel por controlar a temporizao dos sinais de
confirmao que comandam os circuitos de chaveamento. A conexo entre o buffer de
entrada selecionado e o canal de sada deve ser mantida at que o pacote que gerou a
requisio seja completamente transferido pelo canal. Isso sinalizado pela passagem
do ltimo flit do pacote pelo canal de sada e pelo recebimento de um sinal de
reconhecimento enviado pelo canal de entrada do receptor do pacote.

5.10 Viso Geral da Arquitetura do Roteador RASoC

O roteador da rede SoCIN denominado RASoC (Router Architecture for


System-on-Chip). Ele consiste de um soft-core implementado sob a forma de um
modelo VHDL parametrizvel para sntese de redes-em-chip em sistemas integrados.
O modelo VHDL foi desenvolvido com base na arquitetura dos FPGAs da Altera, os
quais apresentam a restrio de no oferecerem buffers tri-state internos. Com isso, os
circuitos de chaveamento so modelados de forma a serem sintetizados atravs de
circuitos multiplexadores baseados em arranjos AND-OR. Contudo, a portabilidade
para outras estruturas (como rvores de multiplexadores 21, buffers tri-state, arranjos
NAND-NAND etc) pode ser feita com poucas modificaes no cdigo VHDL.

Esta verso do roteador RASoC possui como parmetros de sntese os mesmos


parmetros arquiteturais descritos nas sees anteriores: a largura do canal de dados (n),
a largura da informao de roteamento (m) e a profundidade dos buffers de entrada (p).
No cdigo VHDL, esses parmetros recebem outras denominaes, sendo chamados,
respectivamente DATA_WIDTH, ROUTE_WIDTH e FIFO_DEPTH.

5.10.1 A interface do roteador RASoC


Conforme ilustrado na Figura 5.15.a, o roteador RASoC possui cinco portas
bidirecionais denominadas L (Local ou local), N (North ou norte), E (East ou leste),
S (South ou sul) e W (West ou oeste). Cada porta compatvel com os sinais do enlace
SoCIN e possui dois canais unidirecionais: canal de entrada (sufixo in) e canal de sada
(sufixo out), conforme ilustrado na Figura 5.15.b. Como pode ser observado,
internamente, o roteador RASoC possui um crossbar 55 parcial que implementa
130

apenas 20 das 25 conexes que poderiam ser realizadas em um crossbar com essas
dimenses. Isso se deve ao fato de que no permitido a um canal de entrada de uma
porta ser conectado ao canal de sada associado mesma porta. Em outras palavras, um
pacote que chega ao canal de entrada da porta W de um roteador, por exemplo, no pode
ser encaminhado ao canal de sada dessa porta. Nesse caso, os nicos canais de sada
possveis de serem utilizados por esse pacote so aqueles associados s portas
L, N, E e S.

L N
Lin Lout
Nin Nout
W E Ein Eout
Sin Sout
Win Wout
S

(a) (b)
FIGURA 5.15 Interface do roteador RASoC: (a) portas bidirecionais (b) representao
alternativa mostrando os canais unidirecionais.

5.10.2 A organizao interna do roteador RASoC


O roteador RASoC tem uma organizao baseada em uma abordagem
distribuda. Tanto o crossbar quanto os controladores que realizam as funes de
roteamento, arbitragem e controle de fluxo so distribudos em mdulos associados aos
canais de entrada e de sada de cada porta bidirecional. Conforme ilustrado na Figura
5.16.a, existe um mdulo associado a cada canal do roteador e esses mdulos so
interconectados por sinais internos de dado, estado e controle. Na Figura 5.16.b, so
ilustrados alguns dos sinais de sada do mdulo Lin (canal de entrada da porta local). As
linhas mais finas representam sinais de requisio para os rbitros dos mdulos dos
canais de sada das outras portas e a linha espessa representa o canal de dados usado
para a transferncia de flits para esses canais de sada.

Lin Lout Lin Lout

Nin Nout Nin Nout

Ein Eout Ein Eout

Sin Sout Sin Sout

Win Wout Win Wout

(a) (b)
FIGURA 5.16 Organizao do roteador RASoC: (a) mdulos associados aos
canais; (b) exemplos de sinais internos do canal Lin.
131

No momento da modelagem da rede, o compilador pode ser orientado a no


realizar a sntese de uma ou de outra porta do roteador. Isso feito conectando-se as
entradas dos canais associados ao nvel 0 e deixando-se as sadas desses canais
desconectadas. Como ser visto, na seo a respeito dos resultados de sntese, isso
permite a gerao de redes de menor custo quando as mesmas no utilizam todas as
portas do roteador (eg. grelha 2-D).

Os mdulos mostrados na Figura 5.16 so baseados em dois circuitos


denominados Input Channel e Output Channel. Esses circuitos so descritos brevemente
a seguir, sendo que maiores detalhes so fornecidos no Apndice 1.

O mdulo Input Channel

O mdulo Input Channel ilustrado na Figura 5.17. Como pode ser observado,
ele composto por quatro blocos que so denominados Input Flow Controller (IFC),
Input Buffer (IB), Input Controller (IC) e Input Rd Switch (IRS). O bloco IFC realiza o
controle do fluxo de entrada, adaptando o protocolo de handshake do enlace SoCIN ao
protocolo FIFO. O bloco IB, por sua vez, executa a memorizao dos flits dos pacotes
que chegam pelo canal de entrada at que eles possam ser encaminhados atravs de um
canal de sada. J o bloco IC realiza o roteamento dos pacotes que chegam ao bloco IB.
Ele verifica a presena de um cabealho na sada de dado do bloco IB, aplica o
algoritmo de roteamento com base no campo RIB do cabealho, envia uma requisio
sada selecionada por esse algoritmo e atualiza o valor do RIB para computar o
deslocamento j realizado. Desde que cada mdulo de canal de entrada conectado a
quatro mdulos de canal de sada, preciso realizar a conexo dos sinais de controle de
fluxo da sada do bloco IB com os sinais de controle de fluxo do canal de sada
selecionado pelo algoritmo de roteamento. Essa conexo realizada, em parte, pelo
bloco IRS, o qual conecta os sinais de controle de fluxo no sentido sada-entrada. Ele
recebe os sinais de comando de leitura (rd) dos quatro canais de sada possveis de
serem requisitados e, baseado em sinais de confirmao enviados por esses canais de
sada (gnt), conecta o sinal rd do canal de sada solicitado ao sinal rd do bloco IB. A
conexo dos sinais de controle de fluxo no sentido entrada-sada feita no mdulo
Output Channel.

x_req[L,N,E,S,W]
IC
IB
in_data din dout x_dout
in_val wr IB rok
IFC x_rok
in_ack IFC
IFC wok rd
x_rd[3..0]
IRS
IRS
x_gnt[3..0]

FIGURA 5.17 Interface e estrutura do mdulo Input Channel.

Na Figura 5.17, os nomes dos sinais conectados interface externa do roteador


utilizam o prefixo in_, enquanto que os sinais conectados aos mdulos de sada do
roteador utilizam o prefixo x_. Os sinais de interface com prefixo in_ so compatveis
com o enlace SoCIN. Os demais sinais incluem: os sinais de requisio enviados aos
132

mdulos Output Channel das outras portas (x_req); o canal de dados com n+2 bits
(x_dout); o sinal de estado que informa a disponibilidade de um flit a ser lido do bloco
IB (x_rok); os sinais de comando de leitura dos canais de sada (x_rdi, onde i varia de
3 a 0); e os sinais de confirmao gerados pelos mdulos Output Channel (x_gnti).

O mdulo Output Channel

O mdulo Output Channel ilustrado na Figura 5.18. Ele composto por quatro
blocos denominados Output Controller (OC), Output Data Switch (ODS), Output Rok
Switch (ORS) e Output Flow Controller (OFC). O bloco ODS conecta a sada de dado
do bloco IB do canal de entrada selecionado ao canal de dados do canal de sada. O
bloco ORS, por sua vez, seleciona o sinal rok do bloco IB do canal de entrada conectado
ao canal de sada. Esse sinal dirigido ao bloco OFC, o qual realiza o controle do fluxo
de sada de dados, adaptando o protocolo o FIFO ao protocolo de handshake do enlace
SoCIN. O bloco OC recebe as requisies oriundas dos canais de entrada, seleciona
uma das requisies e envia um sinal de confirmao ao canal de entrada selecionado.
Esse sinal de confirmao utilizado como sinal de comando pelos blocos ODS e ORS,
assim como pelo bloco IRS do canal de entrada selecionado, para efetuar o
chaveamento dos sinais internos do roteador. Como o sinal de confirmao que
comanda os blocos de chaveamento, o bloco OC monitora a transferncia do ltimo flit
ao receptor conectado no outro extremo do enlace associado ao canal de sada. Uma vez
que essa transferncia tenha sido completada, o bloco OC desativa a linha de
confirmao de modo a desfazer a conexo previamente estabelecida.

x_din[3..0]
ODS
IRS out_data
eop
x_rd
x_req[3..0]
out_val
OC
IRS OFC
IFC out_ack
x_gnt[3..0]

ORS
IRS
x_rok[3..0]

FIGURA 5.18 Interface e estrutura do mdulo Output Channel.

Na interface do mdulo Output Channel, mostrada na Figura 5.18, os nomes


dos sinais conectados interface externa do roteador utilizam o prefixo out_,
enquanto que os sinais conectados aos mdulos de entrada do roteador utilizam o
prefixo x_. Os sinais de interface do tipo out so compatveis com o enlace SoCIN.
Os demais sinais incluem: os canais de dado dos blocos IB que podem ser conectados
ao canal de sada (x_dini, onde i varia de 3 a 0); o comando de leitura para o bloco IB
selecionado (x_rd); os sinais de requisio de uso do canal de sada (x_reqi); os sinais de
confirmao de seleo para uso do canal de sada (x_gnti); e os sinais de estado que
informam a disponibilidade de um flit a ser lido desses blocos IB (x_roki).
133

5.11 Estrutura do modelo VHDL do roteador RASoC

O modelo VHDL do roteador RASoC composto por trs nveis de entidade


que descrevem a arquitetura do roteador. No primeiro nvel (nvel mais alto), definida
a entidade rasoc, a qual descreve a estrutura do roteador baseada na interconexo de
instncias das entidades input_channel e output_channel. Essas entidades constituem o
segundo nvel da descrio e definem a estrutura dos mdulos de entrada e de sada,
respectivamente. No terceiro nvel da descrio VHDL, so definidas as entidades que
implementam os blocos que compem os mdulos de entrada (IC, IFC, IB e IRS) e de
sada (OC, OFC, ODS e ORS), conforme ilustrado na hierarquia apresentada na
Figura 5.19.

rasoc

input_channel
input_channel
input_channel output_channel
output_channel
output_channel
input_channel
input_channel output_channel
output_channel

input_flow_controller input_buffer output_flow_controller output_data_switch

input_controller input_read_switch output_controller output_rok_switch

FIGURA 5.19 Estrutura do modelo VHDL do roteador RASoC.

A entidade RASoC possui trs parmetros de entradas: FIFO_DEPTH (p),


DATA_WIDTH (n) e ROUTE_WIDTH (m), descritos na Tabela 5.2. Esses parmetros
so transmitidos s demais entidades de modo a configurar as dimenses de seus
componentes. Por exemplo, a entidade input_buffer recebe os dois primeiros parmetros
listados acima e modela um buffer com FIFO_DEPTH palavras de DATA_WIDTH+2
bits. J a entidade output_data_switch recebe apenas o parmetro DATA_WIDTH e
modela um multiplexador 41 com canais de DATA_WIDTH+2 bits.

TABELA 5.2 Parmetros do roteador RASoC.


Parmetro Descrio
FIFO_DEPTH Capacidade dos buffers FIFO quanto ao nmero de flits (p)
DATA_WIDTH Largura do canal de dados (n)
ROUTE_WIDTH Largura do campo RIB do cabealho (m)

A arquitetura da entidade rasoc consiste de uma descrio estrutural baseada nos


diagrama de bloco ilustrado na Figura 5.20. Esse diagrama apresenta apenas as
instncias das entidades input_controller (Lin, Nin, Ein, Sin e Win) e output_controller
(Lout, Nout, Eout, Sout e Wout) e inclui, tambm, os sinais que interconectam essas
instncias. Para oferecer uma melhor legibilidade figura, esses sinais so agrupados
em cinco barramentos denominados Lbus, Nbus, Ebus, Sbus e Wbus.
134

Wbus
Sbus
Ebus
Lin Nbus Lin
Lbus
Lin_data in_data x_dout Ldata Ndata x_din0 out_data Lout_data
Lin_val in_val x_rok Lrok Edata x_din1 out_val Lout_val
Lin_ack in_ack x_rd0 Nrd Sdata x_din2 out_ack Lout_ack
x_rd1 Erd Wdata x_din3
x_rd2 Srd Nrok x_rok0
x_rd3 Wrd Erok x_rok1
x_reqL Srok x_rok2
x_reqN LreqN Wrok x_rok3
x_reqE LreqE Lrd x_rd
x_reqS LreqS NreqL x_req0
x_reqW LreqW EreqL x_req1
x_gnt0 NgntL SreqL x_req2
x_gnt1 EgntL WreqL x_req3
x_gnt2 SgntL LgntN x_gnt0
x_gnt3 WgntL LgntE x_gnt1
Input LgntS x_gnt2 Output
LgntW x_gnt3
Channel Channel

Nin Nin
Nin_data in_data x_dout Ndata Ldata x_din0 out_data Nout_data
Nin_val in_val x_rok Nrok Edata x_din1 out_val Nout_val
Nin_ack in_ack x_rd0 Lrd Sdata x_din2 out_ack Nout_ack
x_rd1 Erd Wdata x_din3
x_rd2 Srd Lrok x_rok0
x_rd3 Wrd Erok x_rok1
x_reqL NreqL Srok x_rok2
x_reqN Wrok x_rok3
x_reqE NreqE Nrd x_rd
x_reqS NreqS LreqN x_req0
x_reqW NreqW EreqN x_req1
x_gnt0 LgntN SreqN x_req2
x_gnt1 LgntE WreqN x_req3
x_gnt2 LgntS NgntL x_gnt0
x_gnt3 LgntW NgntE x_gnt1
Input NgntS x_gnt2 Output
NgntW x_gnt3
Channel Channel

Ein Eout
Ein_data in_data x_dout Edata Ldata x_din0 out_data Eout_data
Ein_val in_val x_rok Erok Ndata x_din1 out_val Eout_val
Ein_ack in_ack x_rd0 Lrd Sdata x_din2 out_ack Eout_ack
x_rd1 Nrd Wdata x_din3
x_rd2 Srd Lrok x_rok0
x_rd3 Wrd Nrok x_rok1
x_reqL EreqL Srok x_rok2
x_reqN EreqN Wrok x_rok3
x_reqE Erd x_rd
x_reqS EreqS LreqE x_req0
x_reqW EreqW NreqE x_req1
x_gnt0 LgntE SreqE x_req2
x_gnt1 LgntN WreqE x_req3
x_gnt2 LgntS EgntL x_gnt0
x_gnt3 LgntW EgntN x_gnt1
Input EgntS x_gnt2 Output
EgntW x_gnt3
Channel Channel

Sin Sout
Sin_data in_data x_dout Sdata Ldata x_din0 out_data Sout_data
Sin_val in_val x_rok Srok Ndata x_din1 out_val Sout_val
Sin_ack in_ack x_rd0 Lrd Edata x_din2 out_ack Sout_ack
x_rd1 Nrd Wdata x_din3
x_rd2 Erd Lrok x_rok0
x_rd3 Wrd Nrok x_rok1
x_reqL SreqL Erok x_rok2
x_reqN SreqN Wrok x_rok3
x_reqE SreqE Srd x_rd
x_reqS LreqS x_req0
x_reqW SreqW NreqS x_req1
x_gnt0 LgntS EreqS x_req2
x_gnt1 NgntS WreqS x_req3
x_gnt2 EgntS SgntL x_gnt0
x_gnt3 WgntS SgntN x_gnt1
Input SgntE x_gnt2 Output
SgntW x_gnt3
Channel Channel

Win Wout
Win_data in_data x_dout Wdata Ldata x_din0 out_data Wout_data
Win_val in_val x_rok Wrok Ndata x_din1 out_val Wout_val
Win_ack in_ack x_rd0 Lrd Edata x_din2 out_ack Wout_ack
x_rd1 Nrd Sdata x_din3
x_rd2 Erd Lrok x_rok0
x_rd3 Srd Nrok x_rok1
x_reqL WreqL Erok x_rok2
x_reqN WreqN Srok x_rok3
x_reqE WreqE Wrd x_rd
x_reqS WreqS LreqW x_req0
x_reqW NreqW x_req1
x_gnt0 LgntW EreqW x_req2
x_gnt1 NgntW SreqW x_req3
x_gnt2 EgntW WgntL x_gnt0
x_gnt3 SgntW WgntN x_gnt1
Input WgntE x_gnt2 Output
WgntS x_gnt3
Channel Channel

FIGURA 5.20 Instncias e sinais da entidade rasoc.


135

5.12 Simulao

A validao do modelo VHDL do roteador RASoC for realizada por simulao


utilizando-se o simulador do ambiente Quartus II da Altera [ALT 2003]. A validao foi
efetuada em diferentes nveis, simulando-se, primeiramente, cada bloco componente do
roteador. Aps, foram simulados e validados os mdulos dos canais de entrada e de
sada, bem como a interface de um roteador completo com cinco portas. Por fim, foram
simuladas redes de pequena escala submetidas a uma carga de comunicao fornecida
por um modelo de gerador de trfego. Nesta seo, apresentado um subconjunto dos
diagramas de formas de onda obtidos nessas simulaes, incluindo a simulao da
interface do roteador e de uma rede em grelha 22.

5.12.1 Simulao da interface do roteador RASoC


Para ilustrar a validao e o funcionamento do modelo VHDL do roteador
RASoC foram utilizados vetores de entrada baseados na situao representada na Figura
5.21, na qual pode-se observar que quatro pacotes atravessam o roteador concorrendo
por seus recursos. Os pacotes chegam ao roteador pelos canais de entrada Nin, Ein, Sin e
Win, e devem ser encaminhados aos canais de sada Sout, Sout, Eout e Lout,
respectivamente. Como os pacotes que chegam pelos canais Nin e Ein precisam
compartilhar o canal de sada Sout, o mecanismo de arbitragem deve escalonar o uso
desse canal pelos pacotes requisitantes.

N
L

Lin Lout
Nin Nout
W E Ein Eout
Sin Sout
Win Wout

FIGURA 5.21 Configurao de trfego de pacotes em um roteador.

Para garantir uma maior legibilidade aos diagramas de forma de onda, as


simulaes baseiam-se em um roteador com os seguintes parmetros:

a) Largura fsica canal de dados (parmetro n ou DATA_WIDTH) = 8 bits;


b) Largura da informao de roteamento (parmetro m ou ROUTE_WIDTH) = 8 bits; e
c) Capacidade dos buffers (parmetro p ou FIFO_DEPTH) = 2 flits.

Com essa configurao, principalmente para os parmetros n e m, torna-se mais


clara a identificao do contedo dos pacotes e, principalmente, dos seus cabealhos.
136

Cada canal fsico possui n+2 bits para incluir os bits de enquadramento (bop e eop). Nos
diagramas de formas de onda, cada flit ser composto por trs dgitos hexadecimais
(eg. 131h), sendo que o dgito mais significativo pode assumir os seguintes valores:
1 (no cabealho do pacote), 2 (no terminador do pacote) e 0 (nos demais flits da carga
til do pacote). Com relao ao cabealho, a informao de roteamento ocupa todos os n
bits do canal de dados (pois m igual n). Dessa forma, nesta configurao, no existem
bits reservados para um protocolo de mais alto nvel. Com isso, o dgito hexadecimal
menos significativo do cabealho destinado identificao da rota na direo Y
enquanto que o dgito intermedirio destinado identificao da rota na direo X,
conforme ilustrado na Figura 5.22. Destaca-se que, embora seja uma palavra separada,
o terminador parte integrante da carga til do pacote.

10 bits
e b 8 bits
o o
p p 4 bits 4 bits
X Y
0 1 dir Xmod
Cabealho
dir Ymod

0 0 Carga
til

1 0 Terminador

FIGURA 5.22 Formato do pacote para n = 8 e m = 8.

Na Tabela 5.3, so apresentados alguns exemplos de palavras de cabealho para


configurao de parmetros a ser utilizada (no esto includos os bits de
enquadramento).

TABELA 5.3 Exemplos de palavras de cabealho para m = 8.


Palavra Significado
00h = 0000.0000b pacote deve ser encaminhado pela porta local
10h = 0001.0000b pacote deve percorrer 1 enlace em direo ao leste (Xdir = 0)
90h = 1001.0000b pacote deve percorrer 1 enlace em direo ao oeste (Xdir = 1)
01h = 0000.0001b pacote deve percorrer 1 enlace em direo ao norte (Ydir = 0)
09h = 0000.1001b pacote deve percorrer 1 enlace em direo ao sul (Ydir = 1)
2Ah = 0010.1010b pacote deve percorrer 2 enlaces em direo ao leste (Xdir = 0)
e 2 enlaces em direo ao sul (Ydir = 1)

Nas simulaes realizadas para a obteno dos diagramas de formas de onda


mostrados a seguir, foi considerado que todos os pacotes possuem o mesmo tamanho
(4 flits). Embora o contedo da parte de dados da carga til de um pacote seja
irrelevante para o roteador, foram definidos valores exclusivos para cada flit da carga
til de cada pacote a fim de facilitar a identificao dos mesmos. Na Tabela 5.4, so
apresentados os pacotes utilizados nas simulaes para a configurao de trfego de
pacotes em um roteador mostrada previamente na Figura 5.21. Em cada linha da tabela,
mostrado o canal de entrada atravs do qual o pacote chega ao roteador, o canal de
sada pelo qual ele deve ser encaminhado e os contedos do cabealho e dos quatro flits
da carga til, incluindo o terminador.
137

TABELA 5.4 Pacotes utilizados na simulao.


No. do Canal de Canal de Cabealho Flit0 Flit1 Flit2 Flit3
pacote entrada sada bop = 1 bop = 0 bop = 0 bop = 0 bop = 0
eop = 0 eop = 0 eop = 0 eop = 0 eop = 1
0 Win Eout 132h 000h 001h 002h 203h
1 Nin Sout 10Ah 010h 011h 012h 213h
2 Ein Sout 10Bh 020h 021h 022h 223h
3 Sin Lout 100h 030h 031h 032h 233h

Na Tabela 5.5, explicado o roteamento a ser realizado por cada um dos pacotes
mostrados na Tabela 5.4. So apresentados os campos do cabealho antes e depois do
roteamento, assim como a porta de sada utilizada para encaminhar os pacotes.

TABELA 5.5 Contedo do RIB dos pacotes antes e aps o roteamento.


Cabealho Cabealho
antes do roteamento depois do roteamento
No. do RIB X X Y Y Canal de RIB X X Y Y
pacote dir mod dir mod sada dir mod dir mod
0 32h 0 011 0 010 Eout 22h 0 010 0 010
1 0Ah 0 000 1 010 Sout 09h 0 000 1 001
2 0Bh 0 000 1 011 Sout 0Ah 0 000 1 010
3 00h 0 000 0 000 Lout 00h 0 000 0 000

Nos diagramas de forma de onda a seguir, obtidos pela simulao do modelo


VHDL no ambiente Quartus II da Altera, assumido que o ncleo e os roteadores
conectados aos canais de sada do roteador sendo simulado possuem buffers de entrada
com profundidade infinita. Ou seja, os destinatrios imediatos dos pacotes que
atravessam o roteador sendo simulado possuem capacidade de consumir imediatamente
todos os flits dos pacotes a eles encaminhados. Essa considerao foi tomada para poder
identificar pontualmente a latncia devida a um nico roteador.

Na Figura 5.23, ilustrado o roteamento do pacote 0 que entra pelo canal Win e
sai pelo canal Eout. Analisando-se cada onda do diagrama, observa-se que o sinal
Win_val mantido alto at que todo o pacote seja absorvido pelo buffer do canal de
entrada. O sinal Win_ack ativado apenas quando o buffer de entrada tem capacidade
de absorver algum flit, sendo que apenas nas transies de subida do relgio nas quais
Win_val = Win_ack = 1 que o flit em Win_data efetivamente transferido. O sinal
Eout_val ativado quando o caminho entre Win e Eout estabelecido, sendo mantido
alto enquanto houver algum flit do pacote na sada do buffer de entrada. A conexo
entre os canais de entrada e de sada se mantm at que o terminador do pacote
(flit 203h) seja completamente transferido (eop = 1 e Eout_ack = 1).
138

FIGURA 5.23 Transferncia do pacote 0 entre os canais Win e Eout.

Ainda a respeito da Figura 5.23, destaca-se que, devido pouca profundidade do


buffer do canal de entrada (igual a dois) e latncia de registro, roteamento, arbitragem
e chaveamento (igual a trs), o sinal de controle de fluxo Win_ack mantido alto por
apenas dois ciclos de relgio, correspondentes ao registro do flit de cabealho (132h) e
do primeiro flit de dado (000h) do pacote, desativado at que o flit de cabealho seja
encaminhado liberando espao no buffer para o recebimento de um novo flit.

Conforme foi antecipado, assumido que o buffer de entrada do roteador


conectado ao outro extremo do enlace associado porta leste do roteador sendo
simulado tem profundidade infinita. Por isso, a linha Eout_ack ativada to logo a linha
Eout_val o seja e se mantm em nvel alto durante toda a transferncia. Finalmente,
observa-se que o campo de mdulo da direo X decrementado (de 3 para 2) de modo
a computar o deslocamento realizado. A latncia para transferncia do pacote 0 pelo
roteador igual a sete ciclos de relgio, dos quais trs so devidos ao encaminhamento
do cabealho (registro, roteamento, arbitragem e chaveamento) e quatro so devidos ao
tamanho da carga til.

Na Figura 5.24, ilustrado o encaminhamento dos pacotes 1 e 2 pelo canal de


sada Sout do roteador. Como os dois pacotes chegam simultaneamente aos canais de
entrada Nin e Ein, respectivamente, um desses canais selecionado pelo rbitro
associado ao canal Sout e conectado a essa sada. O outro canal de entrada mantido em
estado de espera at que o pacote do primeiro canal selecionado seja completamente
encaminhado ao prximo roteador. Na figura, observa-se que o primeiro pacote
encaminhado o pacote 1, o qual chega ao roteador pelo canal de entrada Nin. A
temporizao da transferncia desse pacote idntica quela ilustrada no exemplo
anterior. Por outro lado, a temporizao do pacote 2, o qual chega ao roteador pelo canal
Ein, tem como particularidade a espera pela liberao do canal de sada e conexo do
canal de entrada Ein ao canal de sada Sout. A latncia de conteno sofrida por esse
pacote igual a sete ciclos de relgio. Incluindo-se as latncias devidas ao cabealho
(trs) e carga til (quatro), a latncia do pacote 2 para atravessar o roteador igual a
14 ciclos de relgio.
139

FIGURA 5.24 Transferncia dos pacotes 1 e 2 entre os canais Nin, Ein e Sout.

Na Figura 5.24, ilustrado o roteamento do pacote 3, o qual entra pelo canal Sin
e sai pelo canal Lout. A temporizao desse pacote idntica quela do pacote 0,
mostrada na Figura 5.23. Porm, destaca-se que o cabealho no atualizado, pois,
quando o cabealho do pacote 3 chega ao canal Sin, seus campos de mdulo so ambos
iguais a 0, o que indica que no h mais deslocamentos a serem realizados nas direes
X e Y e que o pacote deve ser encaminhado ao pelo canal Lout.

FIGURA 5.25 Transferncia do pacote 3 entre os canais Sin e Lout.


140

5.12.2 Simulao de redes SoCIN de pequena escala


Aps a validao individual do roteador RASoC, foram modelados sistemas
integrados de pequena escala utilizando redes SoCIN com topologias em grelha e em
toride 22. Os ncleos de processamento desses sistemas foram baseados em um
modelo de gerador de trfego parametrizvel desenvolvido especialmente para essa
validao e que realiza a gerao de pacotes para envio a diferentes destinatrios. As
simulaes desses sistemas permitiram confirmar a correo do modelo do roteador,
pois todos os pacotes gerados foram entregues aos seus destinatrios sem a ocorrncia
de bloqueios na rede.

Arquitetura do gerador de trfego

O modelo de gerador de trfego (GT) desenvolvido para a validao do roteador


RASoC e da rede SoCIN trata-se de um soft-core VHDL parametrizvel com interface
compatvel com o protocolo SoCIN. Sua arquitetura utiliza um conjunto de subunidades
baseadas em um modelo de gerador de trfego simples (GTS). Cada subunidade GTS
responsvel por um padro de gerao de pacotes definido pelos seguintes parmetros:

a) SOURCE_ID identificador da instncia de GT ao qual o GTS est associado;

b) TARGET_ID identificador da instncia de GT em direo qual sero


encaminhados os pacotes gerados pelo GTS;

c) ROUTE_WIDTH largura da informao de roteamento (RIB) a ser includa no


cabealho do pacote;

d) DATA_WIDTH largura do canal de dados da rede;

e) RIB informao de roteamento a ser colocada no cabealho dos pacotes. Ela


define a rota a ser utilizada para o encaminhamento dos pacotes ao nodo
destinatrio;

f) PACKET_LENGTH nmero de flits da carga til dos pacotes a serem gerados pelo
GTS;

g) GAP intervalo de gerao de pacotes que define o nmero de ciclos de relgio


entre o envio do terminador de um pacote e a gerao do pacote seguinte a ser
enviado ao destinatrio definido pelo parmetro RIB; e

h) NUMB_PACKETS nmero de pacotes a serem gerados.

Em cada instncia do modelo GT pode haver mais de uma instncia do modelo


GTS, confome o nmero de padres de gerao de pacotes necessrios. Os parmetros
SOURCE_ID, ROUTE_WIDTH e DATA_WIDTH sero iguais para todas as instncias
de GTS de uma mesma GT, porm, os demais parmetros podem diferir de modo que
cada GTS descreva um padro exclusivo de gerao de pacotes.
141

As mltiplas instncias de GTS de um mesmo GT concorrem pelo uso da porta


do roteador qual o GT est conectado. Essa concorrncia gerenciada por um rbitro
que recebe requisies dos GTSs, aplica um critrio de arbitragem quando existirem
mltiplas requisies simultneas, seleciona um dos mdulos e comanda um
multiplexador para conectar o mdulo selecionado porta local do roteador. Para
garantir o uso balanceado dessa porta pelos diversos GTSs, o rbitro utiliza uma poltica
de prioridades baseada em uma fila circular (round-robin) que determina que o GTS
selecionado em um ciclo de arbitragem receba o menor nvel de prioridade na no ciclo
de arbitragem seguinte.

Uma representao simplificada de uma instncia de modelo GT apresentada


na Figura 5.26. Ela inclui duas instncias de GTS, cada qual responsvel pela gerao
de um padro de trfego. Na figura, mostrada a tabela que que descreve a
configurao de cada GTS. Por exemplo, o GTS0 configurado para gerar 100 pacotes
(NUMB_PACKETS) com 2 flits na carga til (PACKET_LENGTH) em intervalos de
gerao de 10 ciclos (GAP). Esses pacotes sero encaminhados ao GT de identidade 2
(TARGET_ID) por meio da rota descrita pelo RIB de 8 bits (ROUTE_WIDTH) igual a
09h (um enlace em direo ao sul).

NUMB_TARGETS = 2 GTS0 GTS1


SOURCE_ID 0 0
sel RBITRO TARGET_ID 2 1
ROUTE_WIDTH 8 8
req0 gnt0 req1 gnt1 DATA_WIDTH 16 16
RIB 09h 10h
PACKET_LENGTH 2 1
GAP 10 100
GTS0 GTS1 NUMB_PACKETS 100 10

0 1

FIGURA 5.26 Arquitetura simplificada de um gerador de trfegos para dois padres


diferentes de gerao de pacotes.

Alm do canal de sada, pelo qual so encaminhados os pacotes gerados, o


mdulo GT tambm possui um canal de entrada. Esse canal recebe pacotes e os repassa
a uma interface de sada de modo a retirar da rede os pacotes encaminhados ao GT.
Esses pacotes no so processados pelo GT e a interface de sada utilizada somente
para observar os pacotes recebidos por cada GT aps a simulao.

Esse modelo de gerador de trfego tem algumas limitaes e sua arquitetura


requer ainda um nmero de melhorias a fim de estender a sua funcionalidade e permitir
o seu uso no apenas para a validao da rede, mas, tambm, para a obteno de
parmetros de desempenho (eg. latncia mdia de comunicao e vazo).
142

Simulao de sistemas integrados

Para validar o roteador RASoC, foram modelados SoCs baseados em redes


SoCIN com topologias diretas dos tipos grelha 2-D e toride 2-D. Um dos sistemas
utilizados ilustrado na Figura 5.27. Ele constitudo por quatro mdulos GT
interconectados atravs de uma grelha 22.

GT0 GT2

GT1 GT3

FIGURA 5.27 Sistema com quatro GTs interconectados por uma grelha 22.

Um dos sistemas simulados foi baseado no padro de comunicao ilustrado na


Figura 5.28. Conforme mostrado, existem quatro tarefas comunicantes, sendo que
cada tarefa comunica-se com outras duas. Por exemplo, a Tarefa 0 envia mensagens
com 1 palavra a cada 100 ciclos de relgio (1/100) Tarefa 2 e mensagens com 2
palavras a cada 10 ciclos de relgio (2/10) Tarefa 1. Essas quatro tarefas foram
mapeadas em um sistema semelhante ao da Figura 5.27 e seus geradores de trfego
foram configurados utilizando os parmetros resumidos na Tabela 5.6.
1/100
Tarefa Tarefa
0 2
1/100

2/10 2/10 1/100 1/100

2/10
Tarefa Tarefa
1 3
2/10

FIGURA 5.28 Exemplo de padro de comunicao simulado.

TABELA 5.6 Resumo dos parmetros utilizados na configurao do padro de


comunicao da Figura 5.28.
GT GTS TARGET_ID PACKET_LENGTH GAP NUMB_PACKETS
0 1 2 10 100
0
1 2 1 100 10
0 0 2 10 100
1
1 3 2 10 100
0 0 1 100 10
2
1 3 1 100 10
0 1 2 10 100
3
1 2 1 100 10
143

Esse sistema integrado foi ento validado por simulao e os resultados


confirmaram a correo dos modelos do roteador e do gerador de trfego. A Figura 5.29
apresenta a viso geral da simulao do sistema descrito anteriormente. O sinal
denominado CoreXY_data (onde XY igual a 00, 01, 10 ou 11) representa o canal
de dados da interface de sada do gerador de trfego XY pela qual so observados os
pacotes recebidos pelo gerador. J o sinal CoreXY_rok informa a disponibilidade de
um flit a ser lido nessa interface. Observa-se, pela densidade de pulsos do sinal rok
associado que o gerador de trfego 01 o que recebe o maior nmero de mensagens,
enquanto que o gerador de trfego 10 o menos requisitado. O trmino da simulao
indicado pelo sinal eot, o qual ativado quando todos os geradores de trfego
concluem o envio de suas mensagens. O diagrama conta ainda com um sinal
denominado ticks que rotula cada perodo de relgio a fim de auxiliar a avaliao da
simulao.

FIGURA 5.29 Diagrama de formas de onda geral da simulao de um SoC 22.

A Figura 5.30 ilustra uma regio do diagrama de formas de onda acima


apresentado. Nele, pode-se observar, por exemplo, que o gerador de trfego 00 recebe
uma mensagem com uma palavra de dado emitida pelo gerador 10 (indicado pelo
nmero 2 no dgito central do cabealho) e outra com duas palavras de dado emitida
pelo gerador de trfego 01.

FIGURA 5.30 Aproximao do diagrama de formas de onda da simulao.


144

5.13 Sntese

Nesta seo, so apresentados resultados da sntese do roteador RASoC para


diferentes configuraes dos parmetros n, m e p (denominados DATA_WIDTH,
ROUTE_WIDTH e FIFO_DEPTH no modelo VHDL, respectivamente). Os resultados so
baseados na sntese do modelo VDHL em FPGA utilizando-se o ambiente
QUARTUS II da Altera [ALT 2003]. So indicadas as quantidades de clulas lgicas
consumidas em cada configurao, bem como parmetros de desempenho obtidos
atravs da ferramenta anlise de temporizao. Nos resultados apresentados, o
compilador foi orientado realizao de sntese sem otimizaes e o FPGA alvo foi o
dispositivo EPF10K200SFC672-1 [ALT 2003a]. A escolha por tal dispositivo deve-se
sua disponibilidade de pinos para a sntese de roteadores com canais largos (eg. 32 bits)
e tambm ao fato que os ncleos de processamento utilizados como referncia para
comparao de rea so apresentados, na literatura, com base em disposivtios dessa
famlia de FPGA (FLEX10K). Com relao ao nmero de pinos, destaca-se que, no
momento da implementao da rede, tipicamente desnecessrio externar os pinos dos
roteadores, e o requisito do nmero de pinos ser definido em funo das interfaces dos
ncleos de processamento.

5.13.1 Sntese do roteador RASoC

Avaliao do impacto da profundidade dos buffers e da largura dos canais no custo


do roteador

No grfico de colunas da Figura 5.31, so apresentados os resultados de rea da


sntese do roteador RASoC no FPGA EPF10K200SFC672-1 para diferentes
configuraes de largura de canal e profundidade de buffers. Cada padro de coluna
expressa o nmero de clulas lgicas (LCs Logic Cells) necessrias para uma
determinada largura de canal (n igual a 8 16 ou 32 bits) e para quatro valores de
profundidade de buffer (p igual a 1, 2, 3 e 4 flits), sendo que a largura do campo RIB do
cabealho foi fixada em 8 bits (parmetro m). Na configurao de menor custo
(n = 8 e p = 1), o roteador ocupa 463 LCs, enquanto que, na configurao mais cara
(n = 32 e p = 4), o seu custo de 1830 LCs.

2000
1800
1600
1400
Custo (LCs)

1200
8 bits
1000
800 16 bits
600 32 bits
400
200
0
1 2 3 4
Profundidade dos buffers (flits)

FIGURA 5.31 Impacto da profundidade dos buffers na rea do roteador RASoC para
145

diferentes configuraes de largura de canal (8, 16 e 32 bits).

Esses valores podem ser comparados com os resultados de rea para ncleos de
processamento de 8, 16 e 32 bits apresentados por Mattos e Carro em [MAT 2002].
Nesse trabalho, os autores comparam os custos em LCs para a sntese de dois ncleos de
microcontrolador (FemtoJava e MCS8051) e um ncleo de processador escalar
(RISCO) em FPGAs da famlia FLEX10K da Altera. O FemtoJava [ITO 2000] um
microcontrolador baseado em pilha que roda bytecodes Java. Suas caractersticas
incluem: conjunto de instrues bytecode reduzido, arquitetura Harvard, ortogonalidade
de execuo e facilidade de insero e remoo de instrues conforme os requisitos da
aplicao alvo. O ncleo do microcontrolador MCS8051 uma verso reduzida da
arquitetura original desse microcontrolador, pois implementa um subconjunto de seu
conjunto de instrues. O RISCO um microprocessador RISC de 32 bits com um
pipeline de trs estgios. Uma diferena importante entre o FemtoJava e os demais
ncleos que ele inclui um hadware para manipulao de interrupes, o que implica
em um custo adicional ausente no MCS8051 e no RISCO. A Tabela 5.7 apresenta um
comparativo dos resultados de sntese desses processadores com o roteador RASoC para
os tamanhos de palavra disponveis.

TABELA 5.7 Custo em LCs de ncleos de processamento e do roteador RASoC.


FemtoJava MCS8051 RISCO RASoC (p = 1) RASoC (p = 4)
8 bits 1481 659 463 795
16 bits 1979 583 1115
32 bits 1271 823 1830

Para buffers de profundidade mnima (p = 1), o custo do roteador RASoC em


relao aos custos dos processadores varia de 29,5% (para o FemtoJava de 16 bits) a
70,3% (para o MCS8051). J para p = 4, as relaes de custo mnima e mxima so
iguais a 53,7% (para o FemtoJava de 8 bits) e 144% (para o RISCO), respectivamente.
Nota-se, ento, que, para ncleos com essas granularidades, o custo do roteador
implementado em FPGA pode ser bastante significativo. Isso ocorre porque, nos FPGAs
da Altera, os circuitos de chaveamento so sintetizados sob a forma de LUTs (Look-Up
Tables), o que onera a implementao do roteador (Figura 5.32.a). Em outras
tecnologias (eg. standard-cell), as chaves poderiam ser implementadas utilizando-se
estruturas mais simples, o que reduziria o custo associado ao chaveamento. Alm disso,
os buffers FIFO foram descritos no modelo do roteador RASoC de modo a no
utilizarem blocos de memria RAM do FPGA, deixando-os livres para a sntese de
ncleos de processamento. Com isso, sua implementao baseada em flip-flops e chaves
de seleo (multiplexadores), representada na Figura 5.32.b, possui um custo bastante
elevado. Em outras tecnologias, esse custo seria menor, pois o FIFO poderia ser
implementado utilizando-se bits de memria SRAM CMOS.
146

LUT

LUT

LUT

(a) (b)
FIGURA 5.32 Estruturas sintetizadas em FPGA: (a) multiplexador baseado em LUTs;
(b) buffers FIFO.

Avaliao do impacto da profundidade dos buffers e da largura dos canais no


desempenho do roteador

Na Figura 5.33, so apresentados os resultados da medio de freqncia


mxima do roteador aps a sntese. Pode-se observar que, nos resultados para larguras
de canal de 8 bits, o aumento da profundidade dos buffers resulta em uma reduo da
freqncia mxima de operao. Contudo, para as outras configuraes esse
comportamento no se reproduz. Por exemplo, para as configuraes de 16 bits, a
diferena entre as freqncias de operao dos roteadores com buffers com um e com
dois flits muito menos significativa que na configurao de 8 bits. J na configurao
de 32 bits, h um aumento da freqncia quando a profundidade do buffer aumentada
de duas para trs posies. Alm disso, no h como relacionar a largura de canal a uma
maior ou menor freqncia de operao, pois, em cada configurao de profundidade de
buffer, uma ou outra configurao de largura de canal atingiu o maior desempenho,
efeito que pode ser atribudo ao compilador e arquitetura do FPGA.

80
Freqncia de Operao (MHz)

70

60

50
8 bits
40
16 bits
30 32 bits

20

10

0
1 2 3 4
Profundidade dos buffers (flits)

FIGURA 5.33 Impacto da profundidade dos buffers no desempenho do roteador


RASoC para diferentes configuraes de largura de canal (8, 16 e 32 bits).
147

Avaliao da largura do campo RIB no custo e no desempenho do roteador

Na Figura 5.34, so apresentados resultados de rea e freqncia para roteadores


de 32 bits com duas posies nos buffers de entrada (n = 32, p = 2). O parmetro m foi
variado de 6 a 12 bits, o que permitiria a construo de redes com 88 a 3232
roteadores. Como pode ser observado, na medida em que a largura do campo RIB
aumentada, o custo do roteador (grfico de linha com eixo das ordenadas direita)
tambm cresce e sua freqncia de operao (grfico de colunas com eixo das
ordenadas esquerda) diminui, pois o caminho crtico do circuito de atualizao do
cabealho torna-se maior.

Freqncia Custo
100 1300
Freqncia (MHz)

Nmero de LCs
80 1250
60 1200
40 1150
20 1100
0 1050
6 8 10 12

Largura do campo RIB do cabealho (bits)

FIGURA 5.34 Impacto da largura do campo RIB do cabealho no custo e no


desempenho de roteadores de 32 bits com buffers de profundidade igual a dois.

5.13.2 Sntese de redes SoCIN


Nesta subseo so apresentados alguns resultados a respeito da sntese de duas
redes SoCIN 22, uma com topologia toroidal e outra com topologia em grelha.
O objetivo bsico comparar a diferena entre custo e a freqncia de operao de
redes que implementam todas as portas do roteador (toride) ou apenas parte dessas
portas (grelha), como ilustrado na Figura 5.35. Na grelha 2-D, cada roteador
implementa apenas trs portas, sendo que a gerao do roteador com menos portas
realizada automaticamente pelo compilador. Contudo, na descrio VHDL, preciso
aterrar as entradas dos canais que no sero sintetizados, mapeando-se zeros essas
entradas na interface do roteador. Alm disso, deve-se conectar as sadas no utilizadas
a sinais que no so conectados a nenhuma entrada de outro roteador.
148

R0 R1 R0 R1

R2 R3 R2 R3

(a) (b)
FIGURA 5.35 Redes 22: (a) toride; (b) grelha.

Na Figura 5.36, so apresentados os resultados de sntese dessas redes para


configuraes com m e p fixos (iguais a 8 bits e a 2 flits, respectivamente) e n varivel
(8, 16 e 32 bits). No eixo da ordenadas esquerda, so mostrados os custos em LCs para
a sntese do toride 22 e da grelha 22 no FPGA EPF10K200SFC672-1 [ALT 2003a].
No eixo da ordenadas direitas, apresenta-se reduo pecentual de rea proporcionada
pela grelha calculada pela expresso indicada na legenda. Observa-se que para ambas as
configuraes, a grelha apresentou uma reduo percentual significativa (de 49,4 a
52,7%). Contudo, com o aumento das dimenses das redes, essa reduo ser menor,
pois a quantidade de roteadores internos, que implementam todas as portas, cresce
quadraticamente com o tamanho da rede, enquanto que a quantidade de roteadores de
periferia, os quais, na grelha, no implementam todas as portas, cresce linearmente.

Toride Grelha (1-Grelha/Toride)

5000 53%
Reduo de rea (%)

4000 52%
51%
rea (LCs)

3000
50%
2000
49%
1000 48%
0 47%
8 bits 16 bits 32 bits
Largura do canal de dados (bits)

FIGURA 5.36 Comparativo da rea das redes toride 22 e grelha 22.

Quanto freqncia de operao, os resultados obtidos mostram que, no toride,


o enlace entre os roteadores da periferia produz uma perda de desempenho importante.
Por exemplo, para as configuraes de 8 bits, a freqncia mxima de operao da
grelha (51,3 MHz) trs vezes maior que a freqncia do toride (16,4 MHz).
149

Tambm foi considerado o impacto da incluso de ncleos de processamento na


sntese das redes de modo a avaliar se os ganhos percebidos anterioremente eram
reproduzidos. Nesses experimentos, foram modelados SoCs baseados nas redes
apresentadas acima e em instncias do modelo de gerador de trfego descrito
anteriormente. Configurando-se os parmetros dessas instncias, foi possvel gerar
ncleos de processamento de diferentes tamanhos e SoCs homogneos e heterogneos.
Em um SoC homogneo, todas as instncias do gerador de trfego ocupam,
aproximadamente, o mesmo nmero de LCs, enquanto que, nos SoCs heterogneos,
cada instncia ocupa um nmero diferente de LCs. Foi tomado, como referncia, o custo
do roteador da grelha para uma configurao com n = 8 bits, m = 8 bits e p = 2 flits, e
foram criadas instncias do gerador de trfego com rea aproximadamente igual a
1, 2, 4 e 8 esse valor. Os resultados obtidos mostraram que a relao entre as reas
dos SoCs baseados na grelha e no toride aproximadamente a mesma, variando de
54,4% a 54,8% nos diferentes tipos de sistema (homogneo ou heterogneo) e tamanhos
de instncias (1, 2, 4 e 8), para um mesmo valor de n.

5.14 Consideraes

Neste captulo, foi apresentada a arquitetura da rede SoCIN e do seu bloco


construtivo bsico o roteador RASoC, assim como consideraes a respeito da
modelagem em VHDL, validao por simulao e sntese em FPGA. Embora o texto
deste captulo no tenha apresentado os detalhes a respeito dos componentes do roteador
RASoC, importante destacar que os mesmos baseiam-se em arquiteturas que almejam
atender ou a requisitos de baixo custo ou a requisitos de melhor desempenho, ou a
ambos. Contudo, a modelagem dos componentes foi orientada pelas limitaes impostas
pela arquitetura da tecnologia disponvel (FPGA).

Quanto ao controle de fluxo, a tcnica utilizada (handshake) est entre as de


menor custo. Alm disso, a modularidade dos blocos IFC e OFC permite a substituio
facilitada dessa tcnica por uma outra que implemente um protocolo de controle de
fluxo baseado em dois fios, como, por exemplo, a baseada em crditos.

Quanto ao roteamento, a estratgia utilizada (roteamento XY) destacada na


literatura como aquela que melhor permite a obteno de roteadores de baixo custo e
redes totalmente livres de deadlock. Contudo, destaca-se que ela limita a utilizao dos
canais da rede. Alternativamente, poderiam ter sido utilizadas tcnicas de roteamento
baseadas no modelo de volta, por exemplo. Contudo, procurou-se limitar a explorao
do espao de projeto no escopo desta tese de modo a permitir a realizao de outros
estudos, como os que sero apresentados nos captulos a seguir.

No que tange arbitragem, a arquitetura de rbitro round-robin utilizada no


est entre as de menor custo, mas uma das que oferece o menor caminho crtico e,
portanto, propicia a realizao de rbitros e roteadores mais rpidos. Outras alternativas
menos custosas foram estudas e modeladas. Contudo, optou-se por uma arquitetura mais
rpida, pois o gargalo no desempenho de um roteador est justamente em seu rbitro.

Com relao ao chaveamento, a tcnica de chaveamento por pacotes do tipo


wormhole a mais utilizada em redes de interconexo de computadores paralelos por
propiciar a construo de roteadores de baixo custo. Outras tcnicas, como o
150

chaveamento por circuito, tambm apresentam um baixo custo de implementao, mas


o desempenho da rede inferior quando as mensagens so curtas e freqentes. Quanto
implementao dos elementos de chaveamento, a modelagem foi dirigida sntese em
FPGA, tecnologia disponvel para validao do modelo. Porm procurou-se oferecer
uma portabilidade facilitada para outras tecnologias de fabricao.

Quanto estratgia de memorizao adotada, o uso de buffers FIFO nos canais


de entrada a abordagem mais utilizada em redes de interconexo de computadores
paralelos. Outras alternativas, como memorizao centralizada ou de sada, tambm
podem ser utilizadas para melhorar o desempenho, mas o custo do roteador
aumentado. Da mesma forma, o particionamento do buffer de entrada em mltiplas filas
reduz o problema do bloqueio de cabea de linha, mas tambm encarece o roteador.
Conforme discutido na literatura [VAI 2001], tais solues so vlidas somente se a
aplicao demandar um desempenho superior ao oferecido com uma abordagem
convencional. Com relao arquitetura de buffer FIFO utilizada, destaca-se que seu
custo cresce de maneira indesejada com a profundidade do buffer. Uma alternativa
adequada, no caso de uma implementao full-custom, por exemplo, seria uma
implementao baseada em clulas de memria SRAM, cujo custo bem inferior.

Com relao validao do modelo, foram mostrados diagramas de formas de


onda extrados de simulaes que auxiliaram na confirmao da sua correo. As
anlises de custo e desempenho tambm permitiram a obteno de informaes a
respeito da viabilidade da aplicao desse modelo na sntese de redes-em-chip,
sobretudo integradas em FPGA. Dado o custo de implementao de algumas estruturas
particulares do roteador (multiplexadores e buffers), acredita-se que sua aplicao nos
FPGAs atuais se restrinja a redes baseadas em palavras de largura igual a 8 bits ou 16
bits (no mximo). Ainda, com relao profundidade do buffer, estima-se que a mesma
deva ser limitada a duas palavras tanto por causa do custo como pelo desempenho do
roteador. Porm, importante lembrar que buffers menos profundos provocam uma
conteno maior na rede quando os pacotes so maiores que a profundidade do buffer.
Por exemplo, um pacote bloqueado que tenha um tamanho igual a quatro vezes a
profundidade dos buffers ir bloquear trs canais de comunicao da rede. Entretanto,
com a evoluo dos processos de fabricao e o aumento da densidade lgica dos
FPGAs, acredita-se que podero ser sintetizadas redes com configuraes maiores.

A rede SoCIN tem sido utilizada como rede de referncia para diversas
atividades de pesquisa do Grupo de Microeletrnica (GME) da UFRGS do grupo de
Concepo de Sistemas Embarcados e Distribudos (CSED) da Universidade do Vale do
Itaja (UNIVALI). Alguns trabalhos j foram publicados tendo como base a arquitetura
da rede SoCIN e sua descrio VHDL. Em [ZEF 2002] e [ZEF 2002a] foram
apresentados modelos analticos para estimativa de desempenho de redes-em-chip,
sendo que uma das redes consideradas foi a rede SoCIN. Em [COT 2003], a arquitetura
da rede SoCIN serviu de base para a realizao de experimentos de validao de uma
proposta de reuso da rede-em-chip de um sistema integrado para a realizao do teste de
seus ncleos. Em [BEC 2003], a arquitetura SoCIN foi utilizada em um estudo
comparativo do desempenho e do consumo de energia de um barramento e de duas
redes-em-chip (toride e rvore-gorda). Em [CAS 2002], realizada uma anlise sobre
aplicaes mapeadas para um sistema integrado baseado na arquitetura da rede SoCIN.
Em [COR 2003], foram discutidos mtodos para o teste de adaptadores de comunicao
para um sistema integrado baseado na rede SoCIN. Em [ESP 2002], foram descritas e
comparadas duas alternativas de implementao do rbitro round-robin do roteador
151

RASoC, enquanto que, em [ESP 2003], so descritos modelos parametrizveis de


rbitros distribudos de baixo custo a serem utilizados em verses de mais baixo custo
do roteador RASoC. Por fim, em [ZEF 2003], feito o detalhamento da arquitetura da
rede SoCIN e de seu roteador.

Nos captulos a seguir, sero apresentados modelos analticos desenvolvidos


com o objetivo de oferecer estimativas de alto nvel sobre o custo e o desempenho de
arquiteturas de comunicao para sistemas integrados.
152
153

6 Modelos Analticos para a Estimativa da rea de


Arquiteturas de Comunicao para Sistemas
Integrados

Este captulo apresenta um conjunto de modelos analticos que foram


desenvolvidos para propiciar estimativas de alto nvel para avaliao e comparao do
custo de arquiteturas de comunicao para sistemas integrados. Esses modelos visam,
especialmente, a comparao entre uma arquitetura de referncia em barramento e duas
arquiteturas de redes-em-chip de modo a determinar para qual tamanho de sistema cada
rede apresenta um custo dentro de um limite de sobrecarga de rea definido.
Primeiramente, so apresentadas as arquiteturas de comunicao e consideraes gerais
a respeito da avaliao do custo de redes-em-chip. Aps, so apresentados os modelos
de Langen, Brinkmann e Rckert [LAN 2000] para a estimativa de alto nvel da rea de
um barramento central e de um crossbar central. Esses modelos so avaliados e, a partir
deles, so propostas extenses que permitem a modelagem do nmero equivalente de
portas lgicas dos circuitos que compem a parte operativa de um barramento tpico
para sistemas integrados (PI-Bus) e de duas redes-em-chip (SPIN e SoCIN). Esses
modelos so aplicados para a avaliao da sobrecarga de rea de silcio para diferentes
configuraes de sistema, nas quais so variados os tamanhos dos ncleos do sistema, o
nmero de ncleos e a largura da palavra de dados dos canais de comunicao. Por fim
esses modelos so comparados para configuraes de sistemas baseadas em palavras de
32 bits.

6.1 Arquiteturas de Comunicao

As arquiteturas de comunicao consideradas neste trabalho foram um


barramento central e duas redes-em-chip, uma com topologia indireta e outra com
topologia direta. O barramento central baseado nas caractersticas da arquitetura do
barramento PI-Bus [SIE 94]. Ele possui vias de dado e de endereo demultiplexadas,
cada uma com largura de 32 bits e suporte a mltiplos mestres, sendo que o controle do
acesso realizado pela unidade de controle do barramento (BCU Bus Controller
Unit), a qual tambm realiza a decodificao de endereos e a seleo do escravo alvo
de cada transao.

A rede-em-chip com topologia indireta baseada na rede SPIN [GUE 2000], a


qual foi descrita no Captulo 4. Ela possui topologia em rvore-gorda quaternria e
canais bidirecionais de 32 bits, nos quais as palavras de endereo e de dado de 32 bits
devem ser multiplexadas no tempo. A rede SPIN baseada no modelo de comunicao
de troca de mensagens e utiliza chaveamento por pacotes do tipo wormhole e controle
de fluxo baseado em crditos. Os ncleos conectados rede comunicam-se enviando e
recebendo pacotes de requisio e de resposta, sendo que cada pacote constitudo por
um cabealho e uma seqncia de palavras de 32 bits. A rede SPIN utiliza roteamento
adaptativo, o qual permite que pacotes trocados entre um mesmo par emissor-receptor
utilizem caminhos diferentes na rede de modo a se adaptarem ao trfego da mesma.

A rede direta baseada na rede SoCIN, a qual foi descrita no Captulo 5. Ela
possui canais de largura parametrizvel (eg. 8, 16, 32 bits), utiliza o modelo de
154

comunicao de troca de mensagens, chaveamento por pacotes do tipo wormhole e


controle de fluxo baseado no protocolo handshake. O roteamento determinstico e
baseia-se no ordenamento por dimenso. Um pacote primeiramente roteado em uma
linha na direo X e, somente aps atingir a mesma coluna do destinatrio, ele pode ser
encaminhado na direo Y. Uma vez tomada essa direo o pacote no pode mais ser
roteado na direo X. A limitao dessa tcnica de roteamento que, embora existam
mltiplos caminhos entre um par fonte-destinatrio, apenas um pequeno subconjunto
desses caminhos pode ser efetivamente utilizado. Isso reduz em muito a utilizao da
rede, mas, pelo fato de impedir o surgimento de ciclos, garante a ausncia de deadlock a
um baixo custo.

6.2 Avaliao do Custo das Redes-em-Chip

Segundo Guerrier e Greiner [GUE 2000a], o custo em silcio de um barramento


central mnimo se comparado ao custo de uma rede-em-chip. Isso se deve ao fato de
que a lgica associada ao barramento constituda apenas por um rbitro que seleciona
um entre mltiplos mestres passveis de iniciar uma comunicao, pelos circuitos de
decodificao de endereo para a seleo do escravo alvo de cada comunicao e pelos
buffers tri-state que conectam e isolam os ncleos do barramento. J em uma rede-em-
chip, cada roteador composto por buffers de memorizao, multiplexadores de
chaveamento, rbitros para seleo de entrada, decodificadores para a seleo de sada
(circuitos de roteamento) e controladores de fluxo de entrada e de sada.

Em [HWA 93], Kai Hwang apresenta um quadro comparativo sobre os custos


para implementao de diferentes redes de interconexo para computadores paralelos
em termos da complexidade de chaveamento (switching complexity) e da complexidade
de fiao (wiring complexity). A complexidade de chaveamento diz respeito aos custos
relacionados aos circuitos lgicos necessrios para a transferncia das mensagens,
enquanto que a complexidade de fiao reflete os custos associados aos fios que
compem os canais fsicos de comunicao necessrios transferncia dessas
mensagens.

Quanto complexidade de chaveamento, Hwang situa o barramento em um


extremo e o crossbar em outro. Segundo ele, a complexidade do barramento cresce
linearmente com o nmero de nodos (n) conectados ao barramento, ou seja, O(n). J a
complexidade de chaveamento do crossbar cresce quadradicamente com o nmero de
nodos no sistema, ou seja, O(n2). Entre esses dois extremos o autor coloca as redes de
interconexo constitudas por arranjos de mltiplos roteadores baseados em crossbars de
dimenses limitadas (tipicamente, 4 a 8 portas por roteador). Em uma rede
multi-estgio, por exemplo, a complexidade de silcio O(nlogkn), onde 2k define o
nmero de portas em cada roteador, enquanto que em um toride 2-D O(n). Quanto
complexidade de fiao, Kai Hwang estima que, em um barramento, ela O(w), onde w
define o nmero de fios paralelos que compem os canais fsicos de comunicao. Por
outro lado, ele estima que a complexidade de fios de um crossbar O(wn2), enquanto
que O(wnlogkn) em uma rede multi-estgio e O(wn) em um toride 2-D.

A complexidade de chaveamento de uma rede de interconexo para


computadores paralelos pode ser entendida como custo de silcio em uma arquitetura de
comunicao intrachip (barramento ou rede-em-chip). Esse custo de silcio pode ser
155

medido pelo nmero equivalente de portas lgicas necessrias implementao dos


circuitos lgicos associados transferncia de mensagens ou, ento, pela prpria rea
ocupada por essas portas lgicas. J a complexidade de fiao pode ser vista como custo
de metal nas arquiteturas intrachip. Ou seja, a rea gasta na implementao dos canais
fsicos de comunicao, a qual funo do nmero de canais fsicos, do comprimento
dos canais fsicos, do nmero de fios por canal e da largura desses fios.

Nas tecnologias atuais, a rea de silcio consumida na implementao da


arquitetura de comunicao (ou sobrecarga20) implica em um custo adicional ao sistema
integrado. Isso devido ao fato de que os circuitos lgicos associados arquitetura de
comunicao so montados sobre a mesma camada do chip na qual so montados os
circuitos lgicos relacionados aos ncleos do sistema. Portanto, desejvel que essa
sobrecarga de silcio seja mnima, sendo que, em [BRI 2002] estabelecido um limite
de mximo de 10%, o qual, segundo os autores, permite garantir a obteno de um
sistema bem balanceado. Contudo, deve-se considerar que cada sistema possui
requisitos particulares e, embora neste trabalho tambm se utilize esse valor referncia
para fins comparativos, o limite de sobrecarga de rea de silcio associada arquitetura
de comunicao ser especfico ao sistema alvo.

Por outro lado, as tecnologias correntes dispem de mltiplas camadas de metal


(eg. 4 ou mais) e, tipicamente, a interconexo entre os ncleos feita nas camadas de
metal mais elevadas. Dessa forma, o roteamento dos fios associados aos canais de
comunicao feito sobre a rea de silcio devida aos ncleos e aos componentes da
arquitetura de comunicao. Nessa condio, pode-se assumir que, na maioria dos
casos, a rea de metal associada arquitetura de comunicao no implicar em uma
sobrecarga na rea do die.

Embora as dimenses dos canais fsicos possam no ter impacto direto na rea
do chip, elas so de fundamental importncia para o desempenho da comunicao.
A freqncia de operao de um canal de comunicao depende da capacitncia e da
resistncia dos seus fios e essas caractersticas fsicas so funo das dimenses desses
fios (comprimento e largura).

Neste captulo, o foco principal dado estimativa do impacto da arquitetura de


comunicao no custo do sistema integrado. Dessa forma, nas sees a seguir, ser
considerado apenas o custo de silcio devido a essas arquiteturas. Contudo, no
Captulo 7, ser considerado o impacto das interconexes de metal no desempenho da
da arquitetura de comunicao.

20
O termo sobrecarga deriva do ingls overhead e, no contexto deste captulo, indica a rea adicional
gasta com a arquitetura de comunicao em relao rea devida aos ncleos do sistema integrado.
156

6.3 Modelos de Referncia para Estimativa de rea de


Arquiteturas de Comunicao Intrachip

Em [LAN 2000], Langen, Brinkmann e Rckert apresentam modelos analticos


para a estimativa de alto nvel da rea e do consumo de energia de trs tipos de
arquiteturas de comunicao intrachip centralizadas: barramento, crossbar e
multiplexador. Esses modelos so apresentados a seguir e serviro de referncia para os
modelos a serem desenvolvidos para a estimativa da sobrecarga de rea das
redes-em-chip21. Os modelos apresentados por Langen, Brinkmann e Rckert foram
desenvolvidos assumindo-se as seguintes condies:

1. Foi modelada a infra-estrutura mnima necessria para habilitar a


transferncia de dados entre dois ncleos (ou mdulos, na terminologia dos
autores), de modo que os protocolos de controle de fluxo e arbitragem no
so considerados nos modelos. Os autores assumem que o espao de projeto
para protocolos e rbitros bastante amplo e que os mesmos podem ser
considerados em uma segunda camada de modelagem;

2. Apenas os bits de endereo necessrios para identificar todos os n ncleos


so codificados/decodificados. Do nmero total de W fios paralelos em um
canal fsico, log2n so reservados ao transporte de endereos e Wlog2n ao
transporte de dados;

3. Os ncleos so quadrados e possuem o mesmo tamanho, sendo que o


comprimento de cada aresta dos ncleos referenciado pela letra B.

Feitas essas consideraes, os autores expressam a rea total consumida a partir


da soma das reas devidas s portas lgicas e aos canais fsicos:

Atotal = (Agate Ngates) + (L width) (6.1)


onde Agate a rea de uma porta lgica bsica (eg. NAND com duas entradas), Ngates o
nmero equivalente de portas lgicas bsicas, L o comprimento do canal fsico e width
a largura de cada fio do canal fsico.

Como pode ser observado, em (6.1), o modelo inclui a rea de metal na


estimativa da rea total ocupada pela arquitetura de comunicao, o que pode ser
atribudo ao fato de que os autores consideraram uma tecnologia 0.6 m CMOS com
duas camadas de metal. Contudo, conforme foi afirmado na seo anterior, os modelos
desenvolvidos neste captulo visam tecnologias com um nmero maior de camadas de
metal, as quais permitem a sobreposio dos canais fsicos da arquitetura de
comunicao rea de silcio ocupada pelos ncleos e pelos componentes da
arquitetura. Apesar disso, nas subsees as seguir, as quais descrevem os modelos de
referncia, ser reproduzida a modelagem completa efetuada em [LAN 2000] para
oferecer uma viso clara sobre esses modelos.

21
No decorrer deste captulo, os modelos de rea apresentados por Langen, Brinkmann e Rckert
[LAN 2000] sero citados pelo termo modelos de referncia.
157

6.3.1 Modelo para a estimativa da rea do barramento central


Na modelagem do barramento, os autores assumem que os fios do barramento
cruzam todo o chip e que seu comprimento total pode ser estimado como sendo igual
metade do permetro do die. Desde que cada aresta do die dada pelo somatrio das
arestas (B) dos n1/2 ncleos posicionados em cada lado do chip, o comprimento total de
fio para os W fios que compem o barramento definido por:

Lbus = W 2 B n1/2 (6.2)

Com relao ao nmero de portas lgicas, os autores consideram que cada um


dos W fios do barramento pode ser alimentado por diferentes ncleos e necessrio
incluir buffers tri-state em cada sada de ncleo. Alm disso, cada ncleo requer um
decodificador de endereos cujo custo dado pelo parmetro Ngates,addr. Assim, o
nmero de portas lgicas do barramento dado por:

Ngates,bus = (n W) + Ngates,addr (6.3)


onde Ngates,addr estimado em funo do nmero de bits de endereo que devem ser
decodificados. Os autores assumem que so necessrias log2n portas de duas entradas
para comparar o endereo fornecido com o endereo do ncleo mais uma porta de sada
para a ativao do sinal de seleo. Para um sistema com at 64 ncleos, o endereo tem
no mximo 8 bits e as portas de comparao de endereo podem ser ligadas por uma
nica porta AND. Como existem n ncleos conectados ao barramento, o nmero total
de portas consumidas pelos circuitos de decodificao de endereos assumido como
sendo dado por:

Ngates,addr = n (log2n + 1) (6.4)

Associando-se (6.1) a (6.4), obtm-se o modelo que estima o custo total do


barramento:

Atotal,bus = Agate {(n W) + [n (log2n + 1)]} + (W 2 B n1/2 width) (6.5)

6.3.2 Modelo para a estimativa da rea do crossbar central


Enquanto que no modelo do barramento os buffers tri-state e os decodificadores
so distribudos entre os ncleos conectados ao barramento, no modelo do crossbar,
essas estruturas so centralizadas em um nico componente. Esse componente
denominado distribuidor e o modelo considera que os ncleos do sistema so
posicionados ao redor do distribuidor. Langen, Brinkmann e Rckert transformam a
rea total do chip em uma rea circular, a qual dividida em duas partes iguais por um
crculo com o raio mdio do crossbar dado por:

rav2 = 0,5 n B 2 (6.6)


da qual se obtm:

rav = (n1/2 B) (2)1/2 (6.7)


158

Para cada ncleo do sistema, o distribuidor associa dois canais unidirecionais:


um canal de entrada, composto por W fios (endereo e dado), e um canal de sada,
composto por Wlog2n fios (apenas para os dados). Alm desses fios, os autores
assumem a necessidade de um sinal adicional para cada ncleo na entrada do
distribuidor, o qual utilizado para indicar que o ncleo est escrevendo um dado, e um
sinal de sada para indicar que o ncleo foi endereado. Alm disso, assumido que
nem sempre possvel rotear um canal diretamente do distribuidor para o ncleo. Sendo
assim, para a tecnologia utilizada (0.6 m CMOS, metal-duplo), considerado um fator
de multiplicao para o raio mdio, o qual igual a 2. Dessa forma, o comprimento total
de fio para um sistema baseado no crossbar central dado por:

Lcrossbar = n [(2 W) log2n + 2] 2 rav (6.8)

O distribuidor modelado por uma matriz na qual as linhas e as colunas so


conectadas por buffers tri-state. assumido que a sada de um ncleo no pode ser
conectada entrada desse ncleo. Sendo assim, como pode ser observado na
Figura 6.1.a, os pontos de chaveamento que conectariam os canais de entrada e de sada
de um mesmo ncleo no so implementados e, dessa forma, existem (n 1)2 pontos de
chaveamento.

Decodificador
de endereos
w - log 2 n

(a) (b)
FIGURA 6.1 Modelo de crossbar: (a) matriz de chaveamento; (b) estrutura de um
ponto de chaveamento.

Como pode ser observado na Figura 6.1.b, cada ponto de chaveamento


constitudo por Wlog2n buffers tri-state. Alm disso, os buffers tri-state de um mesmo
ponto de chaveamento devem ter um sinal de habilitao comum, o qual depende da
ativao simultnea da sada de seleo do decodificador de endereos associado ao
canal de entrada e do sinal de indicao de escrita daquele canal de entrada. Essa funo
de habilitao implementada por uma porta lgica AND e, dessa forma, existe uma
porta adicional de controle para cada um dos (n 1)2 pontos de chaveamento do
crossbar. Por fim, necessrio associar um decodificador de endereos a cada ponto de
chaveamento para indicar se aquela conexo est sendo requerida. A partir disso, a
equao que determina o nmero de portas lgicas no crossbar :

Ngates,crossbar = [(n 1)2 (W log2n + 1)] + n Ngates,addr (6.9)


ou, ento:

Ngates,crossbar = [(n 1)2 (W log2n + 1)] + [n2 (log2n + 1)] (6.10)


159

na qual possvel se observar claramente que o custo de silcio do crossbar cresce


quadradicamente com o nmero de ncleos a ele conectados. A rea total do crossbar
ento dada por:

Atotal,crossbar = Agate {[(n 1)2 (W log2n + 1)] + [n2 (log2n + 1)]} (6.11)
+ {n [(2 W) log2n + 2] 2 rav } width

6.3.3 Avaliao dos modelos de referncia para a estimativa de rea


Em [LAN 2000], os modelos de rea para o barramento e para o crossbar foram
comparados com resultados da sntese dessas arquiteturas, descritas em VHDL,
utilizando uma tecnologia 0.6 m CMOS com duas camadas de metal. Foram avaliados
sistemas baseados em diferentes tamanhos de ncleos, com mil, dez mil e cem mil
portas lgicas, sendo que todos os ncleos possuam portas com largura de 16 bits. O
erro mdio dos valores estimados de rea em relao aos valores obtidos com a sntese
foi de 25% aps uma etapa de calibrao. Essa calibrao foi realizada para incluir
drivers no modelados pelas equaes de rea e potncia.

Uma limitao dos modelos de referncias que seus autores consideraram que
as diferentes portas e buffers tri-state possuem o mesmo custo de uma porta lgica
NAND de duas entradas. Essa simplificao inclui um erro adicional estimativa que
pode ser evitado utilizando-se fatores de multiplicao que expressem a relao entre a
rea da porta considerada e a rea de uma porta NAND para uma tecnologia alvo. Por
exemplo, na Tabela 6.1, so listadas as reas de algumas portas utilizadas nesses
modelos com base na biblioteca de clulas desenvolvida pela AMS
(austriamicrosystems) para a sua tecnologia 0.35 m CMOS [AUS 2001a]. As clulas
apresentadas possuem dimenses mnimas, o que indicado pelo termo (1). A tabela
tambm inclui o nmero equivalente de portas NAND com duas entradas para cada uma
das clulas. Como pode ser observado, o custo de um buffer tri-state 2,7 vezes maior
que o de uma porta NAND com duas entradas.

TABELA 6.1 Exemplos de clulas da biblioteca AMS 0.35 m CMOS [AUS 2001a].
Clula Descrio m2)
rea ( Qtd. NA2
NA2 Porta NAND com 2 entradas (1) 55 1,0
AND2 Porta AND com 2 entradas (1) 73 1,3
AND8 Porta AND com 8 entradas (1) 237 4,3
BT1 Buffer tri-state com habilitao em nvel alto (1) 146 2,7

Uma outra limitao dos modelos diz respeito ao fato de que, ao ignorarem os
buffers que reforam o sinal injetado nos fios, os autores no consideraram que, em um
barramento, so necessrios buffers maiores que no crossbar devido maior
capacitncia dos fios que compem os canais do barramento, que so mais longos que
os do crossbar. Em [BEC 2003], Beck Filho e Carro efetuam a comparao de
diferentes topologias de arquiteturas de comunicao para SoC. Segundo os autores, os
transistores dos buffers de um ncleo conectado a um barramento devem ter um canal
quatro vezes mais largo que os dos transistores dos buffers de um ncleo conectado a
uma rede-em-chip para que os canais do barramento possam operar na mesma
160

freqncia que os canais da rede-em-chip. Se isso fosse levado em conta nos modelos
apresentados em [LAN 2000], a sobrecarga de rea do barramento seria maior do que a
modelada.

Desde que, no modelo de rea (6.1), os autores consideram a rea de metal no


clculo da rea total do chip, eles incorrem no erro de assumir que os canais do
barramento e do crossbar utilizam fios com a mesma largura. Tipicamente, para que os
canais do barramento possam atingir freqncias de operao do mesmo nvel dos
canais ponto-a-ponto do crossbar (e de uma rede-em-chip) preciso reduzir a resistncia
dos fios atravs do aumento da largura dos mesmos. Conforme os resultados
apresentados em [BEC 2003], com uma largura de linha de 4 m (8 vezes maior que o
valor mnimo), o perodo de operao do barramento chega prximo a 2 ns quando se
utilizam buffers com transistores PMOS de largura de canal superior a 70 m. Esse
mesmo perodo de operao obtido nos canais de uma rede-em-chip utilizando fios de
largura mnima (0.5 m) e buffers com transistores PMOS de largura de canal inferior a
18 m. Alm disso, para a uma configurao de largura de linha de 4 m e largura de
canal do transistor PMOS superior a 70 m, os canais da NoC atingiriam um perodo de
operao de 0,75 ns, aproximadamente.

Outra limitao dos modelos est na simplificao do nmero de fios utilizados


para o endereamento dos ncleos. Em geral, os barramentos re-utilizveis destinados a
interconexo em SoCs possuem vias de endereo e dado demultiplexadas, sendo que a
via de endereos implementa tantos fios quanto o nmero de bits associados ao espao
de endereamento (eg. 32 bis no PI-Bus).

6.3.4 Consideraes para a extenso dos modelos de referncia para


arquiteturas de comunicao atuais
Em [BRI 2002], Brinkmann et al. estendem o modelo por eles apresentados em
[LAN 2000] a fim de modelar a rea ocupada por uma arquitetura de comunicao
intrachip por eles proposta. Essa arquitetura possui estrutura baseada em uma hierarquia
com dois nveis de rede. No nvel mais baixo, os ncleos so interconectados por
arquiteturas centralizadas, como o barramento o crossbar ou o multiplexador. No nvel
mais alto, as arquiteturas centralizadas so interligadas por roteadores distribudos,
organizados em uma topologia arbitrria (eg. malha, toride, multiestgio etc).
O modelo de comunicao adotado da troca de mensagens com chaveamento por
pacotes do tipo armazena-e-repassa (SAF Store and Forward). Alm disso, em cada
roteador, a seleo do caminho a ser tomado por cada pacote realizada atravs da
consulta a uma tabela de roteamento. Os buffers de entrada tem capacidade de
armazenar pacotes completos, sendo que, em uma configurao avaliada, os autores
consideraram que cada roteador deveria ser capaz de armazenar at 80 pacotes com
1 Kbit cada (ou seja, 10 KBytes de memorizao por roteador). Ainda, quando um
pacote chega a um roteador e no h condies para o seu encaminhamento ou
armazenamento, o pacote deve ser descartado.

Como pode ser observado acima, a arquitetura proposta em [BRI 2002]


baseia-se em caractersticas arquiteturais de roteadores para redes de computadores.
Contudo, as arquiteturas de rede-em-chip desenvolvidas atualmente baseiam-se nos
conceitos e nas caractersticas de redes de interconexo para computadores paralelos.
Tipicamente, a tcnica de chaveamento utilizada a wormhole, o roteamento do tipo
161

fonte e os buffers tem capacidade de armazenar poucos flits de um pacote, entre outras
caractersticas que visam a obteno de roteadores rpidos, de baixo custo e com
consumo reduzido de energia. Logo, o modelo desenvolvido para a estimativa de rea
do roteador dessa rede tem um escopo limitado e no considera caractersticas
arquiteturais de redes-em-chip atuais, como a SPIN, a Octagon, a SoCIN e a CLICH,
entre outras.

Disso e a partir da anlise das limitaes dos modelos apresentados em


[LAN 2000], prope-se, a seguir, uma extenso desses modelos visando propiciar uma
estimativa da sobrecarga de silcio de arquiteturas de comunicao para a integrao de
SoC atuais e das prximas geraes, as quais, so baseadas em redes de interconexo de
computadores paralelos. Destaca-se que os modelos aqui propostos, no se baseiam na
extenso apresentada em [BRI 2002], mas sim em uma anlise crtica das limitaes do
modelo original e das caractersticas das arquiteturas de comunicao alvo. Nesse
contexto, sero apresentados modelos para um barramento de referncia similar ao
PI-Bus e para as redes SPIN e SoCIN.

Algumas consideraes realizadas em [LAN 2000] so mantidas para ambos os


modelos, porm, outras consideraes so introduzidas:

1. modelada a infra-estrutura mnima necessria para habilitar a transferncia


de dados entre dois ncleos (ou mais ncleos) e, portanto, os protocolos de
controle de fluxo e de arbitragem tambm no so levados em conta;

2. Os buffers de sinal (ou drivers) dos ncleos conectados a um barramento


possuem canais 4 vezes mais largos que os dos buffers de sinal dos ncleos
conectados a uma rede chaveada;

3. A via de endereos do barramento inclui todos os bits correspondentes ao


espao de endereamento e possui a mesma largura da via de dados;

4. No barramento, a decodificao de endereos para a seleo do escravo de


cada comunicao feita considerando-se apenas os bits correspondentes ao
nmero de ncleos escravos no sistema. No limite mximo, esse nmero ser
igual a n1 se for considerado que o sistema possui apenas um ncleo
mestre. Contudo, da mesma forma que em [LAN 2000], assume-se que todos
os ncleos do sistema podem operar como mestre ou escravo do barramento
e, portanto, o nmero de bits necessrios decodificao de endereo e
seleo de escravos ser igual a log2n.

5. Nas redes-em-chip, assume-se que, para cada ponto de chaveamento no


crossbar, existe um circuito de decodificao de endereos e que a largura da
palavra de endereo a ser decodificada definida pela capacidade de
endereamento da rede (eg. 8 bits para 256 ncleos).

6. No barramento, a decodificao de endereos para seleo dos escravos


feita pelo controlador do barramento e no pelos prprios ncleos. Assim,
deve existir uma linha de seleo entre o controlador e cada ncleo escravo
do sistema. Desde que foi assumido que todos os ncleos podem ser mestre
ou escravo, o nmero de linhas de seleo ser igual a n;
162

7. Para simplificar a modelagem, tambm se considera que os ncleos so


quadrados e possuem o mesmo tamanho, sendo que o tamanho de um lado
do quadrado referenciado pela letra B. Contudo, destaca-se que os ncleos
de um sistema integrado so tipicamente heterogneos.

8. Considera-se o custo dos diferentes tipos de portas lgicas utilizadas a partir


do nmero equivalente de portas lgicas NAND para uma tecnologia alvo.

Os modelos sero baseados na tecnologia AMS 0.35 m CMOS [AUS 2001], a


qual apresenta variaes com trs e quatro camadas de metal. A partir das informaes
contidas no manual sobre a biblioteca de clulas correspondente a essa tecnologia
[AUS 2001a], determinado o nmero equivalente de portas lgicas NAND para cada
tipo de clula. A clula de referncia corresponde porta NAND de duas entradas com
dimenses mnimas, a qual denominada NA2. Na Tabela 6.2, so listados alguns
exemplos de clulas da biblioteca referida com a rea correspondente em m2 e o
nmero equivalente de clulas NA2. As clulas com dimenses mnimas so indicadas
pelo termo (1). As clulas com capacidade maior de injetar corrente (strength) so
indicadas pelos termos (2), (3), (4) e (8).

TABELA 6.2 Clulas da biblioteca da AMS 0.35 m CMOS [AUS 2001a].


Clula Descrio m2)
rea ( Qtd. NA2
NA2 Porta NAND com 2 entradas (1) 55 1,0
AND2 Porta AND com 2 entradas (1) 73 1,3
AND8 Porta AND com 8 entradas (1) 237 4,3
BT1 Buffer tri-state com habilitao em nvel alto (1) 146 2,7
BT14 Buffer tri-state com habilitao em nvel alto (4) 164 3,0
BU1 Buffer (1) 73 1,3
BU2 Buffer (2) 73 1,3
BU3 Buffer (3) 91 1,7
BU4 Buffer (4) 91 1,7
BU8 Buffer (8) 127 2,3
DF8 Flip-flop tipo D (1) 273 5,0
IMU2 Multiplexador 21 com sada invertida (1) 109 2,0
MU2 Multiplexador 21 (1) 127 2,3
MU4 Multiplexador 41 (1) 273 5,0
MU8 Multiplexador 81 (1) 619 11,3
NO2 Porta NOR com 2 entradas (1) 55 1,0
IN1 Porta NOT (1) 36 0,7
OR2 Porta OR com 2 entradas (1) 73 1,3
EO1 Porta XOR com 2 entradas (1) 146 2,7
163

6.4 Modelos para Estimativa da rea de Silcio de


Barramentos Similares ao PI-Bus

Assumindo-se um barramento com caractersticas similares s do PI-Bus


[SIE 94] e levando-se em conta as consideraes apresentadas na seo anterior,
desenvolve-se, a seguir, um modelo para estimativa da rea ocupada por um barramento
centralizado.

Quanto ao nmero de portas lgicas dos decodificadores de endereos,


assume-se que cada decodificador possui uma estrutura baseada em um arranjo de
portas lgicas NOT-NOR [RAB 96]. Considera-se que, na mdia, cada decodificador
utiliza (log2n)/2 portas lgicas NOT, pois existem log2n bits de endereo e, no espao de
endereamento correspondente, cada um dos log2n bits assume valor 0 para metade dos
endereos e 1 para a outra metade dos endereos. Como cada clula correspondente
porta lgica NOT possui um custo de 0,7NA2, o custo devido a essas portas lgicas
dado por 0,35(log2n)NA2 em cada decodificador. Ainda, a porta NOR de sada
possui log2n entradas e seu custo estimado por [1 + 0,73(log2n2)]NA2. Essa
expresso computa o custo das entradas adicionais em relao porta lgica NOR com
duas entradas para cada tamanho de decodificador. O erro mdio da estimativa de rea
da porta lgica NOR com log2n entradas dada por essa expresso de 7,53%, se forem
consideradas portas com 3 a 8 entradas. Dessa forma, o custo total devido aos
decodificadores associados aos n ncleos do sistema ser:

Ngates,addr = n [0,35log2n + 1 + 0,73 (log2n2)] (6.12)

ou

Ngates,addr = n (1,08log2n 0,46) (6.13)

Na Tabela 6.3, aplica-se (6.13) para determinar as quantidades equivalentes de


clulas NA2 e as reas correspondentes em mm2 para os decodificadores em sistemas de
diferentes tamanho. A rea da clula NA2 igual a 55 m2

TABELA 6.3 Custos dos decodificadores para diferentes tamanhos de sistema.


n Ngates,addr Aaddr (mm2)
4 6,8 0,0004
8 22,2 0,0012
16 61,8 0,0034
32 158,1 0,0087

A quantidade de buffers tri-state no canal de sada da porta de comunicao de


cada ncleo dado por duas vezes a largura da via de dados (2Wdata). Desde que foi
assumido que os buffers posuem uma capacidade de corrente quatro vezes maior que a
dos buffers de dimenses mnimas, considerado o uso da clula BT14, a qual equivale
a trs clulas NA2. Dessa forma, o custo de buffers tri-state para o barramento igual a
6WdataNA2 para cada ncleo do sistema, enquanto que o nmero equivalente de
portas lgicas do barramento ser:
164

Ngates,Bus = (n 6 Wdata) + [n (1,08log2n 0,46)] (6.14)


na qual o primeiro termo define o nmero de buffers tri-state, enquanto que o segundo
computa o custo dos decodificadores de endereos. Disso, o modelo simplificado de
rea de silcio para o barramento dado por:

Atotal,Bus = Agate {(n 6 Wdata) + [n (1,08log2n 0,46)]} (6.15)

Esse modelo aplicado a seguir para avaliar a sobrecarga de rea de silcio do


barramento em sistemas baseados em ncleos com dez mil, cinqenta mil e cem mil
portas lgicas, dimenses tipicamente encontradas nos ncleos dos sistemas integrados
atuais e das prximas geraes. So apresentados resultados para diferentes larguras de
vias de dado, dos quais deve-se destacar os resultados correspondentes largura de
32 bits, a qual utilizada no barramento PI-Bus [SIE 94]. So destacados, tambm, os
resultados cuja sobrecarga de rea de silcio igual ou inferior a 10% da rea de silcio
devida aos ncleos, a qual dada pelo produto do nmero de ncleos no sistema pela
rea de cada ncleo. Esse percentual foi extrado de [BRI 2002], onde, segundo os
autores, tal valor permitiria a obteno de um sistema bem balanceado. Contudo,
destaca-se que, neste texto, ele serve apenas como um valor de referncia para as
anlises a serem realizadas, pois se entende que a definio da sobrecarga de rea
mxima aceitvel para a arquitetura de comunicao varia de aplicao para aplicao,
conforme os requisitos da aplicao alvo (eg. custo, desempenho, potncia etc).

Na Figura 6.2, so mostrados os resultados para sistemas baseados em ncleos


com 10 mil portas lgicas. Observa-se que, na maioria das configuraes de tamanho de
palavra de dado (Wdata), a sobrecarga de rea de silcio inferior a 10% da rea devida
aos ncleos do sistema. A exceo reside nos sistemas em que Wdata = 256 bits.
Contudo, destaca-se que essas configuraes so irreais, pois, tipicamente, ncleos na
faixa de 10 mil portas lgicas baseiam-se em palavras de dado de 8 ou 16 bits (eg.
microcontrolador 8051). Observa-se, tambm, que com o aumento do nmero de
ncleos, a sobrecarga percentual se mantm quase constante, pois a rea devida ao
barramento cresce na mesma proporo que a rea devida aos ncleos. Contudo,
aumentando-se apenas a largura do barramento, a sobrecarga percentual de rea cresce
na proporo desse aumento, pois o nmero de buffers necessrios maior, mas a rea
devida aos ncleos mantida constante. Finalmente, destaca-se que a sobrecarga
estimada para um barramento similar ao PI-Bus (Wdata = 32 bits) inferior a 2%.

18,0%
16,0%
14,0%
Sobrecarga % de rea

256
12,0%
128
10,0%
8,0% 64
6,0% 32
4,0% 16
2,0% 8
0,0%
48 16 32 64 128 256
Nm e ro de ncle os

FIGURA 6.2 Sobrecarga % de rea de silcio do barramento para ncleos com


10 mil portas lgicas (Acore = 0,55 mm2).
165

Na Figura 6.3 e Figura 6.4, so mostrados os resultados para sistemas baseados


em ncleos com 50 mil e 100 mil portas lgicas, respectivamente. Observa-se que, a
sobrecarga de rea de silcio inferior a 10%, para qualquer configurao, sendo
prxima a zero para sistemas com 100 mil portas lgicas e palavra de dado de 32 bits, o
que confirma a afirmao por Guerrier e Greiner [GUE 2000a] de que o custo de silcio
do barramento quase nulo.

3,5%
3,0%
Sobrecarga % de rea

2,5% 256

2,0% 128
64
1,5%
32
1,0%
16
0,5%
8
0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.3 Sobrecarga % de rea de silcio do barramento para ncleos com


50 mil portas lgicas (Acore = 2,75 mm2).

1,8%
1,6%
1,4%
Sobrecarga % de rea

256
1,2%
128
1,0%
0,8% 64
0,6% 32
0,4% 16
0,2% 8
0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.4 Sobrecarga % de rea de silcio do barramento para ncleos com


100 mil portas lgicas (Acore = 5,50 mm2).

Com relao aos sistemas baseados em ncleos com 100 mil portas lgicas e
rea de 5,50 mm2, exemplificados na Figura 6.4, importante destacar que alguns deles
so irrealizveis. Segundo manual de referncia do CMP (Circuit Multi-Projets)
[CIR 2003], na tecnologia AMS 0.35 m CMOS, o tamanho mximo de die igual a
2 cm2, ou 200 mm2. Isso comportaria sistemas integrando no mximo 36 ncleos com
rea de 5,50 mm2. Alm disso, a prpria conexo de vrias dezenas ou centenas de
ncleos atravs de um barramento resultaria em um baixssimo desempenho e um alto
consumo de energia. As configuraes com 64, 128 e 256 ncleos apresentadas nas
figuras acima foram includas com o intuito de estabelecer uma referncia para
comparao com as redes-em-chip, as quais possuem maior escalabilidade, e, tambm,
para ilustrar o impacto do aumento do nmero de ncleos na sobrecarga de rea de
silcio do barramento.
166

6.5 Modelos para Estimativa da rea de Silcio da Rede SPIN

Os modelos para estimativa de rea da rede SPIN, apresentados a seguir,


baseiam-se na arquitetura apresentada no Captulo 4 e em informaes sobre a
implementao da rede contidas em [AND 2001]. Assumindo-se que as interconexes
de metal entre os roteadores da rede e entre os ncleos e os roteadores so realizadas nas
camadas de metal mais elevadas, ento, em uma abordagem simplificada, considera-se
apenas a rea de silcio da rede para a avaliao do seu impacto na rea do sistema.
Primeiramente, desenvolve-se uma equao para a estimativa do nmero equivalente de
portas lgicas no roteador RSPIN, aps, obtm-se uma equao que determina o nmero
de roteadores em diferentes configuraes de rede. Essas duas equaes so ento
associadas para a definio do modelo de estimativa de rea da rede SPIN.

6.5.1 Modelo para a estimativa do nmero de portas lgicas no roteador


RSPIN
O roteador RSPIN, cuja arquitetura foi apresentada no Captulo 4, constitudo,
basicamente, por um crossbar 1010 parcial, uma coleo de buffers de armazenamento
e controladores que comandam a operao de cada recurso do roteador (crossbar e
buffers). No modelo apresentado a seguir, so considerados os custos do crossbar, dos
buffers e dos decodificadores associados seleo da sada a ser utilizada com base no
tamanho de endereo definido no cabealho do pacote SPIN (8 bits na verso atual do
roteador [AND 2003]). O custo total do roteador em portas lgicas ento estimado a
partir de detalhes da implementao do roteador disponibilizados em [AND 2001].

O roteador RSPIN constitudo por um crossbar de dados e um crossbar de


controle. O crossbar de dados, por sua vez, formado por estruturas baseadas em
rvores de multiplexadores 21 (com sada invertida ou direta), buffers tri-state,
inversores e portas NAND. Para facilitar a identificao do custo do crossbar, a parte
operativa do roteador reapresentada na Figura 6.5. A estrutura dos multiplexadores
que compem o crossbar de dados mostrada na Figura 6.6 [AND 2001], na qual so
identificadas as clulas correspondentes ao se considerar um projeto baseado na
biblioteca da AMS [AUS 2001a].

U3 U2 U1 U0

UP3 UP2 UP1 UP0


QUP

QDN
DN3 DN2 DN1 DN0

D3 D2 D1 D0

FIGURA 6.5 A parte operativa do roteador RSPIN.


167

IMU2
IMU2

MU2
IMU2 BT1
IMU2

IMU2
IMU2

(a)
IMU2 IMU2

MU2
BT1
IMU2 IMU2
NA2 IN1

IMU2 IMU2

(b) (c)

FIGURA 6.6 Multiplexadores do roteador RSPIN: (a) buffers centrais QUP e QDN;
(b) canais de sada superiores U0-3; (c) canais de sada inferiores D0-3 [AND 2001].

Na Tabela 6.4, computado o custo para cada bit do crossbar de dados. Na


primeira linha da tabela, so listadas as clulas utilizadas e a quantidade equivalente de
clulas NA2. Na coluna mais esquerda, so listadas as quantidades de cada tipo de
multiplexador usado no crossbar. No interior da tabela, indicada a quantidade de cada
tipo de clula utilizada em cada tipo de multiplexador, assim como o custo equivalente
em clulas NA2. Por exemplo, o multiplexador de cada canal de sada superior utiliza
trs clulas IMU2, cada qual correspondendo a duas clulas NA2. Assim, como existem
quatro canais superiores, o nmero equivalente de clulas NA2 igual a
432,0 = 24,0. O custo do crossbar de dados igual a 130,8 clulas NA2 por bit de
dado.

TABELA 6.4 Custo por bit do crossbar de dados do roteador RSPIN.


NA2 IN1 IMU2 MU2 BT1 Custo parcial
(1,0) (0,7) (2,0) (2,3) (2,7) (Qtd. NA2)
2 buffers centrais 3 12,0 12,0
4 canais superiores 1 4 1 2,8 3 24,0 30,8
4 canais inferiores 6 48,0 2 18,4 2 21,6 88,0
= 130,8

O crossbar de controle realiza o chaveamento dos sinais de controle de fluxo


internos do roteador e constitudo, basicamente, por buffers tri-state. Para cada ponto
de chaveamento do crossbar representado na Figura 6.7, existe um par de buffers
tri-state. Sendo assim, o nmero total de buffers tri-state dado por 2 64 = 128.
Como cada buffer tri-state corresponde a 2,7 clulas NA2, o nmero total de clulas
NA2 no crossbar de controle igual a 345,6.
168

QUP_OUT
QDN_OUT
U3_IN
U2_IN
U1_IN
U0_IN
D3_IN
D2_IN
D1_IN
D0_IN
QUP_IN
QDN_IN
U3_OUT
U2_OUT
U1_OUT
U0_OUT
D3_OUT
D2_OUT
D1_OUT
D0_OUT

FIGURA 6.7 Conexes possveis no crossbar do roteador RSPIN.

Dado o custo por bit do crossbar de dado e o custo total do crossbar de controle,
o nmero equivalente de clulas NA2 gastas com o chaveamento de dados no roteador
RSPIN :

Ngates,RSPINswitch = 345,6 + 130,8 (Wdata + 4) (6.16)


na qual so includos os quatro bits de banda lateral que atravessam o roteador. Embora
o tamanho da palavra de dado do roteador RSPIN seja conhecido (= 32 bits), essa
informao mantida como um parmetro configurvel para as avaliaes a seguir.

Quanto rea de silcio gasta na implementao dos buffers de memorizao de


entrada e central, o custo dos mesmos estimado como uma funo da profundidade
(pin e pcq, respectivamente) e da largura da palavra de dados (Wdata). Considera-se que os
buffers so construdos utilizando-se uma arquitetura de memria RWM (Read-Write
Memory) com acesso do tipo FIFO (First-In, First-Out) [RAB 96] e que cada clula de
um bit dos buffers de memorizao implementada como uma clula de memria
SRAM CMOS. Tal escolha baseia na afirmativa de Carro [CAR 99], segundo o qual o
uso de flip-flops ou latches para implementar bits de memria possvel, mas aumenta
significativamente o custo do circuito. De fato, uma clula de flip-flop tipo D na
biblioteca da AMS possui um custo equivalente ao de cinco portas clulas NA2
[AUS 2001a]. Em uma abordagem simplificada, assume-se que cada bit de memria
implementado atravs de uma clula SRAM CMOS tenha um custo equivalente ao de
uma clula NA2 da biblioteca considerada, de onde se obtm:

Ngates,RSPINmem = (8 pin + 2 pcq) (Wdata + 4) (6.17)

Continuando, desde que o modelo do barramento considera o custo do


endereamento, no modelo da rede SPIN esse custo seria dado pelo circuito de
roteamento associado sada de cada buffer de armazenamento. Contudo, para
simplificar a modelagem, assume-se que o circuito de roteamento equivale a um
decodificador de endereos para um endereo de largura Wroute, a qual consiste na
largura do campo de roteamento do cabealho do pacote SPIN (8 bits). Como existem
64 pontos de chaveamento no crossbar e para cada um deles deve ser atribudo um
circuito de roteamento, a partir de (6.13), obtm-se:
169

Ngates,RSPINaddr = 64 (1,08Wroute 0,46) (6.18)

Finalmente, o nmero equivalente de portas lgicas do roteador RSPIN dado


por:

Ngates,RSPIN = Ngates,RSPINswitch + Ngates,RSPINmem + Ngates,RSPINaddr (6.19)


ou seja:

Ngates,RSPIN = [345,6 + 130,8 (Wdata + 4)] (6.20)


+ [(8 pin + 2 pcq) (Wdata + 4)]
+ [64 (1,08Wroute 0,46)]

Na tabela abaixo, so apresentadas as estimativas de custo do roteador RSPIN


para a configurao utilizada pelos seus projetistas [GRE 2003]: Wdata = 32 bits,
pin = 4 flits, pcq = 18 flits e Wroute = 8 bits.

TABELA 6.5 Custo do roteador RSPIN em clulas NA2 da biblioteca da AMS.


Qtd. NA2 % Ngates, RSPIN
Ngates,RSPINswitch 5054 63,0%
Ngates,RSPINmem 2448 30,5%
Ngates,RSPINaddr 523 6,5%
Ngates, RSPIN 8025 100%

Conforme indicado em [AND 2001], o roteador RSPIN com as caractersticas


listadas acima possui 9144 portas lgicas. Com isso, o erro percentual do valor estimado
por (6.20) de 12,23%. Esse erro pode ser atribudo no incluso dos custos dos
circuitos de controle de acesso aos buffers de memorizao e dos blocos controladores
de sada (OCBs), os quais implementam os rbitros do roteador. Uma segunda fonte de
erro est na considerao de que os blocos controladores de entrada (ICBs) que
implementam os circuitos de roteamento sejam equivalentes a agregados de
decodificadores de endereos semelhantes aos utilizados no barramento. Finalmente,
uma outra fonte de erro est na relao utilizada para indicar o nmero equivalente de
clulas NA2 para cada porta lgica do modelo, a qual foi tomada a partir da relao
entre as reas das clulas na tecnologia da AMS. Essa relao varia entre diferentes
bibliotecas e tecnologias. Contudo, apesar das diferentes fontes de erro, pode-se
considerar aceitvel o erro percentual do valor estimado, dado o nvel de abstrao
utilizado. Alm disso, na coluna mais direita na Tabela 6.5, nota-se que cerca de
30,5% das portas lgicas so reservadas aos buffers de memorizao. Conforme
indicado em [AND 2001], essa relao de 29,6% no roteador sintetizado. Concluindo,
pode-se afirmar que a abordagem utilizada para a determinao do modelo para
estimativa do nmero equivalente de portas lgicas para o roteador RSPIN pode ser
aplicada para a obteno de modelos para roteadores com caractersticas similares.
170

6.5.2 Modelo para a estimativa do nmero de portas lgicas na rede SPIN


O nmero de portas lgicas na rede SPIN dado pelo produto do nmero de
portas do roteador RSPIN pelo nmero de roteadores utilizados na rede:

Ngates,SPIN = Ngates,RSPIN Nrouters,RSPIN (6.21)

Segundo Guerrier e Greiner [GUE 2002b], o nmero de roteadores em uma rede


SPIN com n terminais cresce com n(logn)/8, onde n dado por 2m, e m um nmero
natural. Contudo, como pode ser observado na Tabela 6.6, essa expresso no vlida
quando log4n tambm no um nmero natural (ou seja, quando n = 8, 32 e 128).
Nesses casos, a expresso a ser utilizada para a determinao do nmero de roteadores
dada por n(logn1)/8. Dessa forma, o nmero de roteadores na rede SPIN (Nrouters,SPIN)
seria dado por:

Nrouters,SPIN = n (logn)/8 quando log4n (6.22)

Nrouters,SPIN = n (logn 1)/8 quando log4n (6.23)

TABELA 6.6 Nmero de roteadores na rede SPIN.


Nrouters,SPIN Nrouters,SPIN Nrouters,SPIN
n
Indicado em Calculado por Calculado por
[GUE 2000b] (6.22) (6.22) e (6.23)
4 1 1 1
8 2 3 2
16 8 8 8
32 16 20 16
64 48 48 48
128 96 112 96
256 256 256 256

Contudo, quando log4n um nmero natural (n dado por uma potncia de 4),
as portas de comunicao superiores dos roteadores do nvel mais alto da rvore no so
utilizadas. Por isso, tanto essas portas como a fila central superior de cada um desses
roteadores no precisam ser sintetizadas, permitindo uma reduo do custo desses
roteadores. De uma maneira simplificada, pode-se afirmar que tal custo dado pela
metade do custo de um roteador completo. Assim, (6.22) deve ser reescrita de modo que
quando log4n for nmero natural, [(nlogn)/8 n/4] roteadores sero completamente
implementados e n/4 roteadores tero seus custos reduzidos em 50%. Disso obtm-se
um modelo igual ao modelo especificado para a condio de log4n no pertencer aos
nmeros naturais. Portanto, pode-se assumir (6.23) como o modelo final para a
determinao do nmero equivalente de roteadores para ambas as configuraes
tratadas nos modelos (6.22) e (6.23), ou seja:

Nrouters,SPIN = n (logn 1)/8 (6.24)


171

Aplicando-se (6.24) no clculo do custo do nmero equivalente de portas lgicas


para cada tamanho de rede SPIN, obtm-se os valores mostrados na Tabela 6.7,
destacando-se que foi utilizado o valor estimado para o nmero de portas lgicas, o qual
possui um erro de 12,23%.

TABELA 6.7 Nmero de portas lgicas na rede SPIN.


n Nrouters,SPIN Ngates,SPIN
4 0,5 4013
8 2 16052
16 6 48156
32 16 128415
64 40 321037
128 96 770488
256 224 1797806

De fato, em uma rede SPIN com quatro ncleos, todos os ncleos so


conectados s portas inferiores de um nico roteador e as portas superiores no so
utilizadas. Por outro lado, em uma rede com oito ncleos, os dois roteadores utilizados
so interconectados por meio de suas portas superiores.

Finalmente o custo em silcio de uma rede SPIN estimado por:

Atotal,SPIN = Agate Ngates,RSPIN Nrouters,RSPIN (6.25)

Aplicando-se (6.25) na estimativa da sobrecarga da rea de silcio da rede SPIN


para diferentes configuraes de tamanho dos ncleos, nmero de ncleos no sistema e
largura do canal de dados, obtm os grficos a seguir. As profundidades dos buffers de
entrada (pin) e central (pcq) foram definidas em 4 e 18 flits, respectivamente.
Destacam-se as configuraes com palavra de dado de 32 bits (largura efetivamente
utilizada na rede SPIN), bem como os resultados de sobrecarga inferiores ou iguais a
10% da rea de silcio devida aos ncleos do sistema.

Na Figura 6.8 e na Figura 6.9, so mostrados os resultados para sistemas


baseados em ncleos com 10 mil portas lgicas. Observa-se que poucas configuraes
apresentam a sobrecarga de rea de silcio inferior a 10%, pois a rea do roteador
muito prxima da rea dos ncleos. Apenas em sistemas com at oito ncleos e com
palavra de dados de inferior a 64 bits foi possvel atender ao limite de sobrecarga de
rea desejado.
172

500,0%

400,0%
Sobrecarga % de rea 256
300,0% 128
64
200,0%
32
100,0% 16
8
0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.8 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2).

20,0%
Sobrecarga % de rea

15,0% 256
128
10,0% 64
32
5,0% 16
8
0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.9 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) visualizao da faixa de 10%.

Nos sistemas baseados em ncleos com 50 mil portas lgicas (Figura 6.10), o
nmero de configuraes com sobrecarga na faixa dos 10% maior. Em todos os
sistemas de 8 e 16 bits esse limite foi respeitado. Nas configuraes de 32 bits,
possvel a construo de sistemas com at 64 ncleos e ainda manter uma sobrecarga de
rea de at 10%. Em sistemas com palavras mais largas, o nmero de ncleos
permitidos seria muito limitado (8 ou 4 ncleos).
173

100,0%

256
80,0%
Sobrecarga % de rea

128
60,0% 64
32
40,0%
16
20,0% 8

0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.10 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
50 mil portas lgicas (Acore = 2,75 mm2).

Nos sistemas baseados em ncleos com 100 mil portas lgicas, todas as
configuraes com palavra de 8 a 32 bits e a maioria das configuraes com palavra de
64 bits atendem ao requisito de sobrecarga de at 10%. Novamente, sistemas baseados
em palavras mais largas apresentam um sobrecarga muito grande com o aumento do
nmero de ncleos no sistema.

50,0%
256
40,0%
Sobrecarga % de rea

128
30,0% 64
32
20,0%
16
10,0% 8

0,0%
4816 32 64 128 256
Nm ero de ncleos

FIGURA 6.11 Sobrecarga % de rea de silcio da rede SPIN para ncleos com
100 mil portas lgicas (Acore = 5,50 mm2).

Os resultados obtidos com a aplicao do modelo de estimativa de rea de silcio


da rede SPIN para as configuraes utilizadas apontam para algumas concluses a
respeito da sua aplicabilidade em sistemas integrados. As caractersticas do roteador
RSPIN tornam a rede SPIN muito cara para a construo de sistemas baseados em
ncleos com at 10 mil portas lgicas. As nicas configuraes possveis encontrariam
no barramento a melhor soluo em termos de custo e o desempenho seria satisfatrio
devido a pouca quantidade de ncleos (at oito unidades). Contudo, os resultados
tambm mostram que a sobrecarga da rede SPIN torna-se aceitvel em sistemas com
ncleos maiores, sendo que, para a palavra de referncia (32 bits), a rede SPIN poderia
ser utilizada em quase todas as configuraes, atendendo ao requisito de sobrecarga.
174

6.6 Modelos para Estimativa de rea da Rede SoCIN

A determinao dos modelos para a estimativa de rea da rede SoCIN adota uma
abordagem anloga utilizada para a rede SPIN. Ou seja, determinado um modelo
para estimativa do nmero equivalente de portas lgicas do roteador RASoC com base
na biblioteca de clulas da AMS e, aps isso, determinado o modelo para a estimativa
da rea de silcio da rede SoCIN.

6.6.1 Modelo para a estimativa do nmero de portas lgicas no roteador


RASoC
O roteador RASoC, cuja arquitetura foi apresentada no Captulo 5, possui cinco
portas de comunicao bidirecionais, cada uma composta por um canal de entrada e um
canal de sada. Internamente, ele constitudo por um crossbar 55 parcial, cinco
buffers de armazenamento nos canais de entrada e controladores que comandam a
operao de cada recurso do roteador (crossbar e buffers). No modelo apresentado a
seguir, so considerados os custos do crossbar, dos buffers e dos circuitos de roteamento
associados seleo da sada a ser utilizada. O custo total do roteador em portas lgicas
ento estimado pela soma dos custos das instncias de cada um desses componentes.

O crossbar do roteador RASoC implementado de maneira distribuda por meio


de chaves de multiplexao baseadas em um circuito de chaveamento com quatro canais
de entrada de 1 bit. Para o chaveamento dos canais de dados so necessrias
Wdata+2 chaves 41 de 1 bit para cada porta do roteador (onde Wdata corresponde ao
parmetro DATA_WIDTH do modelo VHDL do roteador). Portanto, para o chaveamento
dos canais de dados, so necessrias 5(Wdata + 2) chaves 41 de 1 bit. J com relao
ao chaveamento dos sinais de controle de fluxo interno, cada uma das cinco portas de
comunicao do roteador requer um par de chaves 41 de 1 bit, o que resulta em
52 chaves 41 de 1 bit.

Com relao ao custo de cada chave 41 de 1 bit, seu valor depende da estrutura
a ser utilizada na sntese do roteador. Por exemplo, a seguir so ilustradas trs
alternativas de implementao com base na biblioteca de clulas da AMS [AUS 2001a],
utilizada nas modelagens anteriores.

NA2 IT1
gnt0 IMU2
gnt0

VCC
gnt1 IMU2
gnt1
NA4 IN1 AND2
sel0

gnt2 IMU2
gnt2
sel1 idle

gnt3
gnt3
sel0

(a) (b) (c)


FIGURA 6.12 Estruturas de chaves 41 de 1 bit baseadas na biblioteca de clulas da
AMS: (a) arranjo de NANDs; (b) buffers tri-state; (c) multiplexadores 21.
175

Como pode ser observado na Figura 6.12, as chaves so projetadas de modo a


garantir uma sada estvel em 0 quando nenhuma entrada selecionada. Na estrutura da
Figura 6.12.a, a seleo feita diretamente a partir dos sinais de confirmao (gnt) e
sada garantida em 0 pela prpria lgica quando nenhum dos sinais de confirmao
ativado. J na segunda estrutura (Figura 6.12.b), as sadas dos buffers flutuam quando
nenhuma confirmao dada e o resistor de pull-up assegura o nvel estvel necessrio.
Por fim, na estrutura da Figura 6.12.c, utilizada uma rvore de multiplexadores 21 e
uma porta lgica AND para garantir um nvel lgico 0 na sada quando nenhuma
confirmao dada.

O nmero equivalente de portas NA2 para cada alternativa mostrado na


Tabela 6.8. Como pode ser observado, a necessidade de uma porta lgica AND de duas
entradas torna a soluo baseada em multiplexadores 21 um pouco mais cara que a
soluo baseada em um arranjo de dois nveis de portas NAND. Alm disso, observa-se
a necessidade de uma lgica adicional para a gerao dos sinais sel1, sel0 e idle, a qual
pode ser implementada junto ao crossbar ou gerada pelo prprio controlador associado.
Disso, nos modelos que seguem, ser considerado que cada chave 41 de 1 bit tem um
custo equivalente a sete portas lgicas NAND.

TABELA 6.8 Nmero equivalente clulas NA2 em diferentes estruturas de chaves de


multiplexao baseadas na biblioteca de clulas da AMS [AUS 2001a].
NA2 NA4 IT1 IN1 IMU2 AND2 Qtd.
(1,0) (3,0) (3,3) (0,7) (2,0) (2,0) NA2
Arranjo de NANDs 4 4 1 3 7,0
Buffers tri-state 4 13,2 1 0,7 13,9
1
Multiplexadores 2 3 6 1 1,3 7,3

Finalmente, o nmero equivalente de portas lgicas associadas aos circuitos de


chaveamento do crossbar dado por:

Ngates,RASoCswitch = [5(Wdata + 2) + 52] 7 (6.26)

ou

Ngates,RASoCswitch = 35(Wdata + 4) (6.27)

Por exemplo, aplicando-se (6.27) para o clculo do custo do crossbar de um


roteador RASoC com canais de dado de 32 bits (Wdata) obtm um total de 1260 clulas
NA2.

Quanto rea de silcio gasta na implementao dos buffers de memorizao dos


canais de entrada, o custo desses buffers estimado como uma funo da
profundidade (pin) e da largura da palavra de dados (Wdata). Considerando-se,
novamente, que cada clula de um bit dos buffers de memorizao implementada
como uma clula de memria SRAM CMOS e que a mesma possua rea equivalente ao
de uma porta NAND com duas entradas, o nmero total de clulas NA2 dos buffers de
memorizao do roteador RASoC dado por:

Ngates,RASoCmem = 1,0 (Wdata + 2) pin 5 (6.28)


176

Por exemplo, o nmero equivalente de portas lgicas associadas aos buffers de


um roteador RASoC com palavra de dado de 32 bits e buffers com capacidade de
armazenar at quatro flits seria igual a 680 clulas NA2.

Com relao aos custos associados ao roteamento, foram comparados os


resultados obtidos por (6.13), assumindo-se um decodificador de Wroute bits para cada
um dos 20 pontos de chaveamento, com uma estimativa efetuada a partir do circuito de
roteamento descrito no Captulo 5. O erro entre as duas estimativas foi de
aproximadamente 40%. Dessa forma, tendo-se disponvel um modelo baseado
diretamente no circuito projetado, optou-se por utilizar esse modelo na estimativa do
nmero de portas lgicas do roteador RASoC. A equao (6.29) calcula o custo dos
cinco circuitos de roteamento, sendo que cada um deles possui um custo dado por
(7,73Wroute 8,28).

Ngates,RASoCaddr = 5 (7,73Wroute 8,28) (6.29)

Por exemplo, se Wroute igual a 10 bits, largura suficiente para se construir uma
rede em grelha quadrada com at 256 roteadores, o nmero equivalente de portas
lgicas dos circuitos de roteamento igual a 345,1, enquanto que o valor calculado por
(6.13) igual a 206,8 (erro de 40,0%).

O nmero equivalente de portas lgicas do roteador RASoC ento dado por:

Ngates,RASoC = Ngates,RASoCswitch + Ngates,RASoCmem + Ngates,RASoCaddr (6.30)


ou, substituindo-se (6.27), (6.28) e (6.29) em (6.30):

Ngates,RASoC = [35(Wdata + 4)] (6.31)


+ [(Wdata + 2) 5 pin]
+ [5 (7,73Wroute 8,28)]

A Tabela 6.9 apresenta as estimativas de custo do roteador RASoC para uma


configurao equivalente utilizada na verso atual do roteador RSPIN [ADR 2003]:
Wdata = 32 bits, pin = 4 flits, e Wroute = 10 bits. O valor de Wroute consiste na largura
necessria para se rotear um pacote por uma rede SoCIN com capacidade de
interconectar tantos ncleos quanto o nmero de ncleos possveis de serem
interconectados por uma rede SPIN com Wroute = 8 bits, ou seja, 256 ncleos. Como
pode ser observado, comparando-se o nmero equivalente de portas lgicas estimado
para o roteador RSPIN (8205) e para o roteador RASoC (2285), o segundo roteador
apresenta um custo estimado aproximadamente 3,5 vezes menor que o do primeiro.

TABELA 6.9 Custo do roteador RASoC em clulas NA2 da biblioteca da AMS.


Qtd. NA2
Ngates,RASoCswitch 1260
Ngates,RASoCmem 680
Ngates,RASoCaddr 345
Ngates, RASoC 2285

Assumindo-se que o modelo apresenta uma margem de erro semelhante obtida


com o modelo da rede SPIN, pode-se estimar que, levando-se em conta os circuitos de
177

controle, o nmero equivalente de portas lgicas do roteador RASoC seja


aproximadamente igual a 2564.

6.6.2 Modelo para a estimativa do nmero de portas lgicas na rede


SoCIN
O nmero de portas lgicas na rede SoCIN dado pelo produto do nmero de
portas lgicas do roteador RASoC pelo nmero de roteadores utilizados na rede:

Ngates,SoCIN = Ngates,RASoC Nrouters,RASoC (6.32)

Considerando-se uma topologia em grelha, algumas abordagens alternativas de


sntese da rede podem ser tomadas, as quais conduzem a modelos variantes de (6.32)
que resultam em diferentes custos. Em ambas abordagens, considerado que todos os
ncleos so conectados diretamente a um roteador RASoC, mas, para um mesmo
nmero de ncleos, podem ser obtidas redes com tamanhos e custos diferentes,
dependendo da quantidade de ncleos conectada a um mesmo roteador, conforme
segue.

Na primeira abordagem, cada ncleo conectado porta de comunicao local


de um roteador e existem tantos roteadores quantos so os ncleos do sistema
(ou seja, n). Dessa abordagem, podem ser derivadas duas implementaes. Em uma
delas, ilustrada na Figura 6.13.a, todos os roteadores so baseados em um mesmo
modelo e as portas de comunicao no utilizadas so desperdiadas. Porm, a
topologia pode ser facilmente estendida para um toride simples ou dobrado. Na outra,
ilustrada na Figura 6.13.b, so implementadas apenas as portas de comunicao
necessrias conexo com roteadores vizinhos. Nesse caso, em uma abordagem
simplificada (como foi adotado na rede SPIN), assume-se que cada porta de
comunicao do roteador custa Ngates,RASoC/5 e o custo de um roteador na periferia da
rede seria igual a 60 ou 80% do custo de um roteador completo, conforme a sua posio.
Deve-se destacar que as figuras apresentadas abaixo no representam o posicionamento
real de ncleos e roteadores, nem o roteamento dos canais fsico em um chip real.

(a) (b)
FIGURA 6.13 Implementaes da rede em grelha: (a) roteadores da periferia
sintetizados completamente; (b) roteadores da periferia sintetizados parcialmente.

Considerando-se apenas as topologias de grelha quadradas com k roteadores em


cada dimenso e fazendo-se o nmero de roteadores na rede (r = k k) igual ao nmero
de ncleos no sistema (n), pode-se expressar o nmero equivalente de portas lgicas em
cada implementao por:
178

Ngates,SoCIN = Ngates,RASoC r (6.33)

na primeira alternativa e

Ngates,SoCIN = Ngates,RASoC (r 4/5 r1/2) (6.34)

na segunda alternativa de implementao. Essa equao expressa que r1/2 portas de


comunicao de cada um dos quatro lados da rede no devem ser implementadas, sendo
que cada porta de comunicao apresenta um custo igual a 1/5 do custo do roteador.

Aplicando-se (6.33) e (6.34) para redes de diferentes tamanhos obtm-se a


Tabela 6.10, na qual observa-se que a reduo percentual de rea decresce com o
tamanho da rede devido ao crescimento quadrtico da quantidade de roteadores internos
que possuem maior custo que os roteadores perifricos, cuja quantidade cresce
linearmente com o tamanho da rede. Em uma rede com capacidade de conectar 256
ncleos, a reduo de apenas 5%.

TABELA 6.10 Relao entre o nmero de portas lgicas para diferentes


implementaes da rede.
k r Ngates,SoCIN Ngates,SoCIN Reduo %
(6.33) (6.34) 1 (6.33)/(6.34)
2 4 9140 5484 40,0%
3 9 20565 15081 26,7%
4 16 36560 29248 20,0%
5 25 57125 47985 16,0%
6 36 82260 71292 13,3%

Em uma abordagem alternativa, todas as portas de comunicao perifricas no


utilizadas para interconexo entre roteadores da rede so alocadas para a conexo direta
de ncleos. Assim, poderiam ser conectados de dois a trs ncleos em um mesmo
roteador, reduzindo o nmero de roteadores necessrios. Dessa forma, a relao r = n
no seria mais vlida e r seria determinado pela capacidade da rede em oferecer n portas
de comunicao para a conexo de ncleos. Por exemplo, um sistema com nove ncleos
poderia ser baseado em uma grelha 22 (Figura 6.14), sendo que essa rede teria
capacidade de interconectar at 12 ncleos. Destaca-se que a figura no representa o
posicionamento real de ncleos e roteadores, nem o roteamento dos canais fsicos em
um chip real.

FIGURA 6.14 Implementao alternativa da rede em grelha.


179

Assumindo-se uma topologia quadrada com k roteadores em cada dimenso e


um total de r roteadores (onde r = k k), a capacidade de conexo (c) de ncleos aos
roteadores da rede dada por:

c = r + (4 r1/2) (6.35)
ou seja, a rede possui r portas locais para conexo de ncleos mais r1/2 portas em cada
um dos quatro lados do roteador.

Na Tabela 6.11, so listadas as capacidades de conexo de topologias em grelha


2-D com diferentes nmeros de roteadores.

TABELA 6.11 Capacidade da rede conectando-se ncleos s portas perifricas.


k r c
1 1 5
2 4 12
3 9 21
4 16 32
5 25 45

Em uma abordagem simplificada, estima-se o custo para implementar uma


grelha quadrada com r roteadores para a conexo de n ncleos, sendo que so
descontados os custos das portas de comunicao no utilizadas. O parmetro r
definido por (n1/2 1)2 de tal forma que r seja o menor nmero de roteadores (em uma
rede quadrada k k com k roteadores em cada dimenso) e c(r) seja suficiente para a
conexo direta dos n ncleos do sistema. Em outras palavras, c(rmin) n. A partir do
valor determinado para r, calcula-se a capacidade da rede aplicando-se (6.35). Desse
valor, descontam-se as portas de comunicao no utilizadas fazendo-se (c n). Por
fim, do custo devido aos r roteadores, descontado o custo associado s (c n) portas
de comunicao no implementadas, sendo que cada uma dessas portas possui um custo
igual a 1/5 do custo do roteador. Disso obtm-se o modelo de custo que estima o
nmero equivalente de portas lgicas para a rede SoCIN segundo esta abordagem, o
qual dado por:

Ngates,SoCIN = Ngates,RASoC [r (c n)/5] (6.36)

ou

Ngates,SoCIN = Ngates,RASoC [(5 n) (12 n1/2) + 8]/5 (6.37)

A reduo percentual do nmero de portas lgicas dessa abordagem em relao


s outras abordagens mostrada na Tabela 6.12. Como pode ser observado, conforme o
modelo utilizado como referncia, a reduo do custo pode ser considerada significativa
(maior ou igual a 50%) para sistemas com at 16 ncleos. Destaca-se que o valor da
reduo do nmero de portas lgicas decresce com o tamanho do sistema, pois o
nmero de roteadores com capacidade de conectar apenas um ncleo cresce
quadradicamente com n, enquanto que o nmero de roteadores com maior capacidade
de conexo cresce linearmente com n. Em uma rede com capacidade de conectar 256
ncleos, a reduo de 14,4% no primeiro caso e de 9,9% no segundo.
180

TABELA 6.12 Relao entre os custos de diferentes alternativas de redes SoCIN.


Ngates,SoCIN Ngates,SoCIN Ngates,SoCIN Reduo % Reduo %
n (6.33) (6.34) (6.37) 1 (6.37)/(6.33) 1 (6.37)/(6.34)
4 9140 5484 1828 80,0% 66,7%
9 20565 15081 7769 62,2% 48,5%
16 36560 29248 18280 50,0% 37,5%
25 57125 47985 33361 41,6% 30,5%
36 82260 71292 53012 35,6% 25,6%

Avaliando-se os modelos desenvolvidos, conclui-se que a melhor alternativa de


construo de uma rede SoCIN em termos de rea a baseada no modelo (6.37).
Contudo, se alm do custo for considerada a largura de banda agregada da rede e sua
escalabilidade, a melhor soluo a baseada no modelo (6.34). Alm, disso, deve-se
destacar que a mesma arquitetura de roteador pode ser utilizada em ambos os modelos,
o que atende aos requisitos de reusabilidade dos sistemas integrados. Por exemplo, em
uma primeira avaliao para a explorao do espao projeto para a construo de um
determinado SoC, pode-se partir de uma arquitetura baseada no modelo (6.37) e, se a
mesma no satisfazer aos requisitos de comunicao da aplicao, tem-se como
alternativa utilizar uma rede SoCIN baseada no modelo (6.34). No Captulo 7, sero
apresentados modelos de estimativa de alto nvel do desempenho de comunicao da
rede que devero servir de apoio para esse tipo de avaliao.

Finalmente o custo em silcio de uma rede SoCIN estimado por:

Atotal,SoCIN = Agate Ngates,RASoC Nrouters,RASoC (6.38)

Aplicando-se (6.34) e (6.38) no calculo da rea de silcio para diferentes


configuraes de tamanho de ncleos, nmero de ncleos no sistema e largura do canal
de dados, so obtidos os grficos mostrados a seguir, os quais expressam a sobrecarga
de rea da rede SoCIN para cada configurao. So consideradas as configuraes de
redes com k k roteadores, onde k varia de 2 a 16, com destaque s configuraes com
palavra de dado de 32 bits (largura utilizada no barramento PI-Bus e na rede SPIN),
bem como aos resultados de sobrecarga inferiores ou iguais a 10% da rea de silcio
devida aos ncleos do sistema. As profundidades dos buffers de entrada (pin) foram
definidas em 4 flits e campo Wroute foi estabelecido igual a 10 bits.

Na Figura 6.15 e na Figura 6.16, so mostrados os resultados para sistemas


baseados em ncleos com 10 mil portas lgicas. Observa-se que apenas as
configuraes baseadas em palavras de 8 bits e o menor sistema com palavra de 16 bits
apresentam a sobrecarga de rea de silcio inferior a 10%. Alm disso, pode ser notado
que a sobrecarga menor nas configuraes com mais ncleos na periferia do que no
interior da rede. Com o aumento do nmero de ncleos no sistema, essa relao se
inverte a sobrecarga satura em um valor prximo relao entre os nmeros de portas
lgicas do roteador e de um ncleo (eg. 23,3% para as configuraes de 32 bits).
181

160,0%
140,0%
256

Sobrecarga % de rea
120,0%
128
100,0%
64
80,0% 32
60,0% 16
40,0% 8
20,0%
0,0%
481625 36 49 64 81 100 121 144 169 196 225 256

Nmero de ncleos

FIGURA 6.15 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2).

10,0%
256
Sobrecarga % de rea

8,0%
128
6,0% 64
32
4,0%
16
2,0% 8

0,0%
481625 36 49 64 81 100 121 144 169 196 225 256

Nmero de ncleos

FIGURA 6.16 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) visualizao da faixa de 10%.

Para sistemas baseados em ncleos com um maior nmero de portas lgicas (eg.
50 mil), as configuraes com tamanhos de palavra maiores atendem ao requisito de
sobrecarga de rea estabelecido. Por exemplo, na Figura 6.17, todos os sistemas com
palavra de dado igual ou inferior a 64 bits apresentaram sobrecarga inferior a 10%.

30,0%

25,0% 256
Sobrecarga % de rea

20,0% 128
64
15,0% 32

10,0% 16
8
5,0%

0,0%
481625 36 49 64 81 100 121 144 169 196 225 256

Nmero de ncleos

FIGURA 6.17 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
50 mil portas lgicas (Acore = 2,75 mm2).
182

J na Figura 6.18, observa-se que inclusive os sistemas com tamanho de palavra


de 128 bits possuem sobrecarga dentro do nvel desejado.

16,0%
14,0%
Sobrecarga % de rea 256
12,0%
128
10,0%
64
8,0% 32
6,0% 16
4,0% 8
2,0%
0,0% 481625 36 49 64 81 100 121 144 169 196 225 256

Nmero de ncleos

FIGURA 6.18 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
100 mil portas lgicas (Acore = 5,50 mm2).

Analisando-se os trs casos representados nos grficos acima, observa-se que a


rede SoCIN apresenta um nvel de sobrecarga aceitvel para uma larga faixa de
configuraes em sistemas com 50 e 100 mil portas lgicas. Contudo, sua aplicabilidade
restrita no caso de sistemas com 10 mil portas lgicas, se for considerado o limite de
sobrecarga estabelecido. Entretanto, se for considerada a abordagem alternativa, na qual
os ncleos podem ser conectados a diferentes portas dos roteadores perifricos, maior
o nmero de configuraes com sobrecarga inferior a 10%. Como pode ser observado,
na Figura 6.19, diversas configuraes de 16 bits e algumas de 32 e 64 bits atingem essa
meta.

10,0%

8,0% 256
Sobrecarga % de rea

128
6,0% 64
32
4,0%
16
2,0% 8

0,0%
481625 36 49 64 81 100 121 144 169 196 225 256

Nmero de ncleos

FIGURA 6.19 Sobrecarga % de rea de silcio da rede SoCIN para ncleos com
10 mil portas lgicas (Acore = 0,55 mm2) na abordagem alternativa visualizao da
faixa de 10%.
183

6.7 Comparao das Sobrecargas de rea do Barramento e


das Redes-em-Chip

Os grficos a seguir resumem os resultados ilustrados nas tabelas de sobrecarga


de rea de silcio para o barramento PI-Bus e para as redes-em-chip SPIN e SoCIN. So
apresentadas as sobrecargas percentuais dessas arquiteturas para sistemas baseados em
uma palavra de dados de 32 bits em configuraes com 4, 16, 64 e 256 ncleos. Para a
rede SoCIN, so utilizados os modelos (6.34) e (6.37) para o clculo do nmero
equivalente de portas lgicas na rede.

Como pode ser observado na Figura 6.20 e na Figura 6.21, para sistemas
baseados em ncleos com dez mil portas lgicas, o barramento a nica arquitetura
com sobrecarga de rea de silcio inferior a 10% em todas as configuraes (valor de
referncia estabelecido). Comparando-se as duas arquiteturas de redes-em-chip,
percebe-se que o nmero equivalente de portas lgicas da rede SoCIN satura prximo
do valor correspondente relao entre a rea do roteador RASoC e a rea de um
ncleo. Por outro lado, a sobrecarga de rea da rede SPIN mantm uma taxa de
crescimento com o aumento do tamanho do sistema.

80,0%
Sobrecarga % de rea

70,0%
60,0%
SPIN
50,0%
SoCIN (6.34)
40,0%
30,0%
SoCIN (6.37)
20,0% PI-Bus
10,0%
0,0%
4 16 64 256

Nmero de ncleos

FIGURA 6.20 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e


SoCIN para sistemas baseados em ncleos com 10 mil portas lgicas (Acore = 0,55 mm2)
e palavra de 32 bits.

10,0%
Sobrecarga % de rea

8,0%
SPIN
6,0% SoCIN (6.34)
4,0% SoCIN (6.37)
Barramento
2,0%

0,0%
4 16 64 256

Nmero de ncleos

FIGURA 6.21 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e


SoCIN para sistemas baseados em ncleos com 10 mil portas lgicas aproximao da
faixa de 10%.
184

Com relao ao valor de referncia de sobrecarga de rea (10%), como pode ser
observado na Figura 6.21, as redes SPIN e SoCIN atingem esse valor apenas em
sistemas com quatro ncleos, sendo que a rede SoCIN s obtm esse resultado se for
utilizada a abordagem alternativa de conexo dos ncleos rede, obtida com (6.37), a
qual exige apenas um roteador RASoC.

Para sistemas baseados em ncleos com 50 mil portas lgicas (Figura 6.22), a
rede SoCIN mantm uma sobrecarga abaixo de 10% em todas as configuraes,
enquanto que a rede SPIN ultrapassa esse limite para sistemas com mais de 64 ncleos.
Nesse caso, destaca-se que se houver um requisito rgido com relao a uma sobrecarga
de rea nessa faixa de valores, a rede SoCIN se apresenta como a soluo mais
adequada de rede-em-chip (sem levar em conta o desempenho das redes).

16,0%
Sobrecarga % de rea

14,0%
12,0% SPIN
10,0%
SoCIN (6.34)
8,0%
SoCIN (6.37)
6,0%
4,0%
PI-Bus
2,0%
0,0%
4 16 64 256

Nmero de ncleos

FIGURA 6.22 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e


SoCIN para sistemas baseados em ncleos com 50 mil portas lgicas (Acore = 2,75 mm2)
e palavra de 32 bits.

Por fim, para sistemas baseados em ncleos com 100 mil portas lgicas (Figura
6.23), ambas as redes-em-chip oferecem sobrecargas inferiores ao limite de 10%, sendo
que a sobrecarga percentual de rea de silcio do barramento prxima de zero, a da
rede SoCIN limitada a 2% e da rede SPIN cresce com o tamanho do sistema.

8,0%
7,0%
Sobrecarga % de rea

6,0%
SPIN
5,0%
SoCIN (6.34)
4,0%
3,0%
SoCIN (6.37)
2,0% PI-Bus
1,0%
0,0%
4 16 64 256

Nmero de ncleos

FIGURA 6.23 Comparativo da sobrecarga de rea do PI-Bus e das redes SPIN e


SoCIN para sistemas baseados em ncleos com 100 mil portas lgicas (Acore = 5,5 mm2)
e palavra de 32 bits.
185

6.8 Consideraes

Neste captulo, foi apresentado o desenvolvimento de um conjunto de modelos


analticos para a estimativa da rea de arquiteturas de comunicao para sistemas
integrados. Os modelos foram baseados em algumas consideraes que buscaram
oferecer um grau de abstrao, focalizando nos custos relacionados parte operativa das
arquiteturas, a qual, tipicamente, representa a seo mais cara de um sistema como os
considerados no texto.

No que tange a modelagem da rea das redes-em-chip, no foram considerados


os custos referentes aos adaptadores de comunicao, dado que esses adaptadores so
fortemente dependentes da interface de cada ncleo conectado ao sistema. Para a
incluso desses custos, trs hipteses poderiam ser consideradas: todos os ncleos
possurem interface compatvel com o protocolo da rede, todos os ncleos
implementarem uma interface padro (eg. VCI ou OCP) ou cada ncleo possuir uma
interface diferente (eg. proprietria, PI-Bus, VCI, OCP etc). No primeiro caso, no
existe a necessidade do uso de adaptadores, enquanto que, no segundo caso, preciso
utilizar adaptadores para efetuar a traduo entre o protocolo padro e o protocolo da
rede. Por fim, no terceiro caso, cada ncleo poderia requerer de um a dois adaptadores,
conforme o tipo de interface utilizado e os adaptadores disponveis. Para se estender os
modelos de estimativa de rea de modo a considerar os adaptadores de comunicao,
seria preciso avaliar os protocolos envolvidos e o modelo de comunicao da aplicao
alvo de modo a determinar a infra-estrutura necessria, a qual pode incluir circuitos para
compatibilizao de tamanho de palavra, buffers do tipo FIFO e buffers de
reordenamento de pacotes.

Quanto aplicao dos modelos desenvolvidos neste captulo, eles permitiram


uma avaliao dos custos das redes consideradas, para diferentes configuraes de
sistema, comprovando que o custo de silcio do barramento mnimo e que a rede
SoCIN apresenta uma sobrecarga de rea menor que a da rede SPIN, exceto para uma
configurao com quatro ncleos. Os modelos mostram-se uma ferramenta til para a
obteno de uma estimativa inicial do custo de um sistema baseado em uma dessas
redes.
186
187

7 Modelos Analticos para a Estimativa de


Desempenho de Arquiteturas de Comunicao para
Sistemas Integrados

Este captulo apresenta um conjunto de modelos analticos que foram


desenvolvidos com intuito de estabelecer as condies de contorno que determinam a
aplicabilidade de uma ou outra arquitetura de comunicao para uma dada configurao
de sistema. Os modelos so baseados em uma abordagem de alto nvel que propicia uma
primeira estimativa a respeito do desempenho em comunicao das arquiteturas
consideradas. O primeiro conjunto de modelos visa estimar a carga capacitiva associada
aos canais de comunicao, j que a freqncia de operao desses canais funo do
valor dessa carga. apresentado um exemplo de aplicao dos modelos e os resultados
ilustram os efeitos do tamanho do sistema e das caractersticas dos componentes dos
canais de comunicao (buffers e fio) na carga capacitiva dos fios desses canais. Aps,
descreve-se o segundo conjunto de modelos, o qual visa oferecer uma estimativa de alto
nvel do desempenho em comunicao da rede atravs da modelagem da latncia da
rede para executar cargas de comunicao sintticas, as quais no representam o perfil
de comunicao de alguma aplicao. Os modelos so aplicados a sistemas baseados no
barramento e na rvore-gorda e as estimativas so comparadas com dados experimentais
obtidos por simulao no CASS. Os resultados indicam para quais configuraes de
sistema e carga de comunicao o barramento e a rvore-gorda apresentam o melhor
desempenho.

7.1 Modelos para a Estimativa do Desempenho dos Canais de


Comunicao

O desempenho dos fios de um canal de comunicao determinado pelos


atrasos de propagao aos quais so submetidos os sinais aplicados a esses fios. Tais
atrasos so funo das cargas capacitivas dos fios, as quais dependem do nmero de
ncleos conectados aos fios e dos comprimentos desses fios. A seguir so apresentados
modelos para estimativa desse atraso de propagao.

7.1.1 Estruturas dos canais de comunicao


sabido que os n ncleos de um sistema baseado em um barramento central
compartilham os canais de comunicao do barramento e que os ncleos so conectados
aos fios do barramento atravs de conexes multiponto bidirecionais, nas quais vrios
ncleos do sistema tm capacidade de injetar sinais em um mesmo fio (Figura 7.1.a). J
nas redes-em-chip, os ncleos so interligados por meio de canais chaveados de
conexo ponto-a-ponto (Figura 7.1.b). Os canais entre um ncleo e um roteador (ou
entre dois roteadores) so na verdade compostos por um par de canais unidirecionais em
oposio, sendo que cada fio de um canal possui uma nica fonte (ncleo ou roteador)
injetando sinal no fio.
188

(a) (b)
FIGURA 7.1 Canais das arquiteturas de comunicao: (a) multiponto no barramento;
(b) ponto-a-ponto na rede-em-chip.

Conforme ilustrado na Figura 7.2.a, a seguir, um ncleo conectado ao


barramento atravs de uma interface bidirecional half-duplex. Essa interface
constituda por um canal de entrada e por um canal de sada, sendo que ambos so
conectados ao mesmo canal fsico do barramento. Todos os ncleos conectados ao
barramento recebem um sinal injetado por um outro ncleo e apenas um dos ncleos
conectados ao barramento pode injetar sinais em um dado momento. Em outras
palavras, todos os ncleos podem ler do barramento em um mesmo instante, mas apenas
um ncleo pode escrever no barramento. Essa funcionalidade garantida por meio de
buffers tri-state colocados no canal de sada da interface do ncleo. Esses buffers so
controlados de modo a estabelecer ou cancelar o contato eltrico do canal de sada do
ncleo aos fios do barramento. O protocolo de uso do barramento garante que apenas
uma dessas interfaces habilitar os seus buffers tri-state. J no canal de entrada da
interface dos ncleos, so includos buffers inversores que reforam o sinal recebido e
recuperam seu valor original, invertido inicialmente na sada do buffer tri-state do
ncleo que gerou o sinal. As estruturas que implementam os canais ilustrados na Figura
7.2.a serviro de base para a modelagem do atraso devido s cargas capacitivas no
barramento.

(a) (b)
FIGURA 7.2 Canais das arquiteturas de comunicao: (a) multiponto no barramento;
(b) ponto-a-ponto na rede-em-chip.
189

Por outro lado, em uma rede-em-chip, os ncleos so conectados aos roteadores


(e estes entre si) atravs de uma interface bidirecional full-duplex, tambm composta
por um canal de entrada e um canal de sada, mas cada um deles conectado a um canal
fsico diferente. Em cada canal fsico, so conectados um canal de sada e um canal de
entrada de diferentes interfaces (emissor e receptor). Como no h risco de conteno,
no necessria a incluso de buffers tri-state. Os canais de entrada e de sada podem
incluir buffers (com sada invertida ou direta) para reforar a intensidade do sinal
transferido, dimensionados de acordo com o comprimento dos canais. Se a topologia da
rede for irregular e os canais tiverem comprimentos variados, ento caber ao projetista
dimensionar os buffers de modo que os canais possam operar na freqncia
especificada.

Considerando uma cascata de dois inversores CMOS como o da Figura 7.3, a


carga capacitiva (CL) aplicada ao primeiro inversor a soma das capacitncias de dreno
desse inversor (CdP1 e CdN1) com as capacitncias de porta do segundo inversor (CgP2 e
CgN2) e com a capacitncia do fio (CW) [RAB 96].

VDD VDD

P1 P2
Vin Vout Vin Vout
N1 CL N2

(a) (b)
FIGURA 7.3 Dois inversores em cascata: (a) portas lgicas; (b) transistores NMOS e
PMOS [RAB 96].

Dessa forma, obtm-se:

CL = (CdP1 + CdN1) + (CgP2 e CgN2) + CW (7.1)

Esse modelo pode ser representado de uma maneira mais simples fazendo-se Cd1
igual ao somatrio das capacitncias de dreno dos transistores NMOS e PMOS do
primeiro inversor e Cg2 a soma das capacitncias de porta dos transistores NMOS e
PMOS do segundo inversor. Ou seja:

CL = Cd1 + Cg2 + CW (7.2)

A freqncia mxima (fmax) de operao de um canal inversamente


proporcional ao perodo mnimo (Tmin) suportado pelos fios desse canal. Esse perodo
determinado pelos tempos de propagao de subida (tpLH) e de descida (tpHL), os quais
dependem da carga capacitiva (CL) e de parmetros da tecnologia utilizada
(eg. mobilidade de portadores, dimenses dos buffers). Assumindo-se que esses
parmetros possam ser reunidos em uma nica constante tecnolgica (Ktec), define-se,
ento, em uma estimativa de alto nvel, que o perodo mnimo de operao dos fios de
um canal de comunicao ser dado por:

Tmin = CL Ktec (7.3)


190

Assumindo-se que Ktec seja o mesmo tanto para o barramento central como para
as redes-em-chip, ento o foco da estimativa deve ser dirigido determinao da carga
capacitiva associada a cada arquitetura, a qual ir determinar a freqncia de operao
dos canais dessas arquiteturas. Dessa forma, a seguir, so apresentados modelos que
visam obter uma estimava da carga capacitiva dos fios desses canais de comunicao.

7.1.2 Estimativa da carga capacitiva

Carga capacitiva devida aos buffers

Conforme ilustrado na Figura 7.4, cada fio de um barramento conectado s


sadas dos buffers tri-state do canal de sada de cada ncleo, assim como s entradas dos
inversores dos canais de entrada dos ncleos, sendo submetido s capacitncia de dreno
e de porta desses componentes.

Ncleo n Ncleo 2 Ncleo 1

FIGURA 7.4 Elementos conectados a um fio dos canais de um barramento.

Assumindo-se, por simplificao, que todos os n ncleos de um sistema


integrado podem operar como mestre e escravo do fio considerado, existiro n
capacitncias de dreno e n capacitncias de porta carregando cada fio. Conforme
estabelecido no modelo representado na Figura 7.4, as sadas dos ncleos so
conectadas aos barramentos atravs de buffers tri-state, ento Cd1 pode ser substitudo
por Cd,tri. Da mesma forma, como as entradas so baseadas em buffers de dois estados,
Cg2 pode ser substitudo por Cg,buf. Assim, considerando-se todos os n ncleos do
sistema, para os fios do barramento, (7.2) pode ser reescrita como:

CL,bus = n (Cd,tri + Cg,buf) + CW,bus (7.4)

J em uma rede-em-chip, assumido que cada fio conecta a sada de um buffer


inversor entrada de outro buffer inversor, conforme ilustrado na Figura 7.5.

Ncleo i Ncleo j

FIGURA 7.5 Elementos conectados a um fio dos canais de uma rede-em-chip.

Dessa forma, para os fios de uma rede-em-chip, Cd1 em (7.2) pode ser
substitudo por Cd,buf e (7.2) reescrita como:

CL,noc = Cd,buf + Cg,buf + CW,noc (7.5)


191

Carga capacitiva devida ao comprimento dos fios

Com relao capacitncia devida ao fio (CW), ela funo da capacitncia


linear (Cm, medida em fF/m) e do comprimento desse fio (L, medido em m), sendo
dada por:

CW = L Cm (7.6)

O comprimento do fio varia com a arquitetura de comunicao utilizada e com o


posicionamento dos ncleos e dos componentes da arquitetura de comunicao
(roteadores, no caso das redes-em-chip). Tipicamente, assume-se que, no pior caso, o
comprimento dos fios do barramento dado por metade do permetro do die
[LAN 2000, ZEF 2002, ZEF 2002a]. J o comprimento dos fios de uma rede em chip
depender fortemente da topologia da rede e das dimenses do ncleo, fatores que tero
impacto direto no posicionamento e no aproveitamento da rea do die. Em uma grelha e
em uma rvore-gorda, os canais tendem a ser curtos. Porm, em um toride, alguns
canais so bem mais longos que outros. Em uma primeira estimativa, toma-se uma
condio de pior caso, na qual assume-se que o comprimento mximo dos fios dos
canais de uma rede-em-chip dado por dado por uma diagonal cruzando o die
[ZEF 2002, ZEF 2002a]. Destaca-se que tal condio deprecia em muito a
escalabilidade da rede e, na prtica, o comprimento dos canais tende a ser menos
sensvel ao crescimento do sistema, conforme ser melhor comentado posteriormente.

Sendo Adie a rea de silcio do chip, considerando-se a rea devida aos ncleos e
sobrecarga associada arquitetura de comunicao, a Figura 7.6 ilustra o caminho
crtico (L) assumido para o barramento e para as redes-em-chip. Na figura, os dois dies
so representados com o mesmo tamanho, porm, destaca-se que, para uma mesma
configurao de sistema (quantidade e tamanho de ncleos), o die do sistema baseado
em rede-em-chip ser maior.

Adie,bus Adie,noc

Adie,bus Adie,noc

LW,bus = 2 x Adie,bus LW,noc = 2 x Adie,noc

(a) (b)
FIGURA 7.6 Caminho crtico mximo: (a) barramento; (b) rede-em-chip.

Considerando-se um sistema integrado com n ncleos homogneos e quadrados


(largura e altura iguais), cada um com aresta igual a B, ento a rea do die do sistema
baseado no barramento ser dada por:

Adie,bus = (n B2) + Abus (7.7)


onde Abus corresponde sobrecarga de rea de silcio devida ao barramento. O modelo
(7.6) pode ento ser reescrito como:

CW,bus = 2 [(n B2) + Abus]1/2 Cm,bus (7.8)


192

De maneira anloga, a rea do die para um sistema baseado em uma rede-em-


chip dada por:

Adie,noc = (n B2) + Anoc (7.9)


onde Abus corresponde sobrecarga de rea de silcio devida aos roteadores da
rede-em-chip. Dessa forma, para as redes-em-chip, considerando a condio de pior
caso, (7.6) pode ser reescrita como:

CW,noc = {2 [(n B2) + Anoc]}1/2 Cm,noc (7.10)

Comparando-se (7.8) e (7.10), so identificadas duas diferenas importantes que


vo impactar nas capacitncias devidas aos fios dos canais em cada tipo de arquitetura.
Considerando-se os piores casos assumidos, a capacitncia da rede-em-chip submetida
a uma constante igual 21/2, enquanto que, no barramento, essa constante igual a 2.
Contudo, destaca-se que a sobrecarga de rea da rede-em-chip ser maior que a
sobrecarga do barramento. Conforme foi apresentado no Captulo 6, a sobrecarga de
rea do barramento quase nula para sistemas baseados em ncleos com 50 e 100 mil
portas lgicas, enquanto que a sobrecarga de rea das redes-em-chip no desprezvel.

Carga capacitiva total

A partir dos modelos desenvolvidos acima, (7.4) e (7.5) podem ser reescritas
como:

CL,bus = n (Cd,tri + Cg,buf) + 2 [(n B2) + Abus]1/2 Cm,bus (7.11)


e

CL,noc = Cd, buf + Cg, buf + {2 [(n B2) + Anoc]}1/2 Cm,noc (7.12)

A capacitncia linear (Cm), presente em (7.11) e (7.12) dada por:

Cm = (width Carea) + (0,4 Cperi) + Ccoup (7.13)

Essa equao foi derivada de um modelo apresentado em [BEC 2003], sendo


que width representa a largura do fio, Carea a capacitncia de rea do fio (dada em
fF/m2), Cperi a capacitncia de permetro do fio (dada em fF/m) e Ccoup a
capacitncia de acoplamento (dada em fF/m). Se a largura do fio utilizada no
barramento for igual largura dos fios da rede-em-chip, ento Cm,bus = Cm,noc.

7.1.3 Exemplo de aplicao dos modelos de estimativa de carga capacitiva


Os modelos acima foram aplicados na estimativa da carga capacitiva de sistemas
baseados na tecnologia AMS .35m CMOS com trs camadas de metal [AUS 2001b] e
na biblioteca de clulas da mesma tecnologia [AUS 2001a]. Como dados de entrada
foram considerados os parmetros obtidos da documentao disponvel sobre o processo
e sobre a biblioteca de clulas, onde:
193

Ccoup,met3-met3 = 0,087 fF/m

widthmin = 0,5 m

Cd,tri = 0,007 pF

Cg,buf = 0,006 pF

Na documentao da biblioteca utilizada, a capacitncia de dreno dos buffers de


dois estados no informada.

Com relao s capacitncias de rea e de permetro, utiliza-se a abordagem


adotada em [BEC 2003]. Como no possvel se saber a priori qual camada ser
implementada abaixo dos fios da interconexo em Metal 3 (poo, polisilcio 1 ou 2,
metal 1 ou 2), calcula-se um valor mdio para essas capacitncias atravs de uma media
aritmtica das mesmas. Essa abordagem implica na considerao de que a probabilidade
de existir uma outra camada abaixo de Metal 3 a igual para todas as camadas
inferiores.

TABELA 7.1 Clculo das mdias das capacitncias para AMS Metal 3.
-well -poly1 -poly2 -met1 -met2 -avg
Carea,met3- 0,008 0,009 0,009 0,013 0,035 0,0148 fF/m2
Cperi,met3- 0,025 0,026 0,026 0,030 0,042 0,0298 fF/m
Aplicando-se esses valores mdios no clculo da capacitncia linear e
considerando-se fios de largura mnima, obtm-se:

Cm = 0,010632 fF/m

Esses parmetros foram aplicados em associao com os resultados de


estimativa de sobrecarga obtidos no Captulo 6 para sistemas com tamanho de palavra
igual a 32 bis. Foram consideradas configuraes com 4, 16, 64 e 265 ncleos com 50
mil portas lgicas por ncleo (1658 m de lado).

Na Figura 7.7, mostrado o efeito do aumento do nmero de ncleos na carga


capacitiva dos canais do barramento central e das redes-em-chip. Primeiramente,
observa-se que as curvas das redes-em-chip se sobrepem, pois, embora elas possuam
sobrecargas de rea diferentes, o impacto dessa diferena de sobrecarga sobre a
capacitncia do fio mnimo. Em segundo lugar, destaca-se o fato de que a carga
capacitiva do barramento significativamente maior que as das redes-em-chip. Por
exemplo, para a configurao com 64 ncleos, a carga capacitiva do barramento de
3,7 pF, ou seja, 82% maior que a das redes-em-chip. Isso pode ser traduzido em uma
maior limitao freqncia de operao e um maior consumo de energia por parte dos
fios. Por isso, tipicamente, os barramentos centrais so limitados interconexo de at
32 ncleos. Para sistemas maiores (ou at mesmo menores), costuma-se segmentar o
barramento atravs de uma organizao hierrquica na qual os barramentos so mais
curtos e interligados por dispositivos do tipo ponte. Neste exemplo, so apresentados
resultados para sistemas no usuais (com 64 ou 256 ncleos conectados a um mesmo
barramento) apenas como uma forma de ilustrar o ganho proporcionado pelas redes-em-
chip em relao ao barramento central.
194

CL,bus CL,spin CL,socin


10,0
9,0
8,0
7,0
6,0

C (pF)
5,0
4,0
3,0
2,0
1,0
0,0
4 16 64 256

Nmero de ncleos

FIGURA 7.7 Carga capacitiva dos canais do barramento e das redes-em-chip


(ncleos com 50 mil portas lgicas).

Com relao ao comprimento dos canais das redes-em-chip, a considerao


assumida bastante desfavorvel s NoCs. Por exemplo, em uma rede-em-chip baseada
em uma grelha com topologia regular interconectando ncleos de mesmo tamanho, os
canais de comunicao entre os roteadores possuem comprimento fixo, independente do
nmero de ncleos no sistema. Essa abordagem utilizada na rede CLICH
[KUM 2002], na qual os roteadores interconectam unidades denominadas regies e cada
regio pode ser um nico ncleo ou um subsistema com mltiplos ncleos
interconectados por um barramento, conforme ilustrado na Figura 7.8.

S S S
rni rni rni
P
D
P onde:
C M M C M S = chave
re re
C
P = processador escalar
S S S
rni rni rni
D = processador de sinais digitais (DSP)
P C P P C
M = memria principal
M
M
C
re
M C = memria cache
S S S
re = bloco reconfigurvel
rni rni rni rni = interface de rede do recurso
P C
re D
M
M
C

FIGURA 7.8 Sistema baseado na rede CLICH [KUM 2002].

O sistema desenhado na Figura 7.8 no representa o posicionamento real dos


ncleos e canais. Contudo, ele permite estimar que, idealmente, os canais de
comunicao entre roteadores possuem um comprimento quase uniforme e igual
lateral de um quadrado correspondente a uma regio. Abordagem semelhante
assumida no toride dobrado proposto por Dally e Towlles [DAL 2001], o qual
ilustrado na Figura 7.9. O sistema organizado em regies denominadas tiles, dentra
dos quais so posicionados os ncleos. Os roteadores so implementados de maneira
distribuda ao redor dos tiles, sendo que, para os autores, essa distribuio uniforme
facilita o projeto dos drivers dos canais de comunicao e o reuso da rede. Como pode
ser observado, na estrutura lgica da rede, os canais mais longos tm comprimento um
pouco maior que valor correspondente ao de duas laterais de tiles. Novamente, a figura
no representa o posicionamento fsico, contudo ele dever ser bastante prximo ao
ilustrado e ainda sem o espaamento representado entre os tiles.
195

FIGURA 7.9 Rede proposta em [DAL 2001].

As duas redes indicadas acima possuem topologia regular, o que facilita


identificar o possvel comprimento mximo dos fios. Mesmo para um sistema
heterogneo possvel supor que o comprimento do canal mais longo do sistema ser
menor do que a diagonal do die. Por exemplo, em um sistema heterogneo baseado em
uma grelha, poderia se considerar que o canal mais longo seria aproximadamente igual
maior dimenso (largura ou altura) do maior ncleo do sistema. Por outro lado, pode-se
discutir a validade dessa considerao, argumentando-se que difcil estimar o
posicionamento real dos ncleos e dos roteadores e que, eventualmente, um ncleo pode
ser posicionado longe do roteador ao qual ele est conectado. Em um exemplo, os
roteadores poderiam ser posicionados no centro do die e os ncleos ao seu redor com
alguns ncleos na periferia do die. Nesse caso, o comprimento mximo dos canais pode
ser assumido como equivalente metade da diagonal do die. Tal abordagem sugerida
na implementao de uma rede SPIN com 32 terminais SPIN [AND 2001].

Dadas as consideraes acima, a Figura 7.10 ilustra o efeito do tamanho do


sistema na carga capacitiva dos canais de comunicao da rede SoCIN quando os
mesmos tm comprimento igual diagonal do die, metade dessa diagonal, lateral do die,
lateral de ncleo e duas laterais de ncleo (assume-se que todos os ncleos possuem 50
mil portas lgicas). Como pode ser observado, desejvel que a topologia utilizada
favorea a obteno de um posicionamento que produza um comprimento de canal
uniforme e independente do tamanho do sistema.

4,5

4,0

3,5

3,0
diagonal do die
2,5
CL (fF)

lateral do die
2,0
1/2 diagonal do die
1,5 diagonal do ncleo
1,0 lateral do ncleo

0,5

0,0
4 16 64 256
Nmero de ncleos

FIGURA 7.10 Carga capacitiva dos canais de comunicao da rede SoCIN para
diferentes comprimentos de canal.
196

Nos casos nos quais o comprimento dos canais da rede seja no-uniforme,
preciso dimensionar os buffers dos canais mais longos de modo a compensar a maior
capacitncia desses canais. Caso contrrio, a freqncia de operao da rede ser
determinada pelo tempo de propagao do canal mais longo da rede.

Nos modelos e resultados mostrados acima, foi considerado que tanto os buffers
de sada como a largura dos fios, em um sistema baseado em barramento, so iguais aos
correspondentes em um sistema baseado em uma rede-em-chip. Porm, conforme
mostrado em [BEC 2003], para que os canais de um barramento operem na mesma
freqncia dos canais de uma rede-em-chip, necessrio que suas linhas sejam mais
largas e que os buffers de sada dos ncleos conectados ao barramento tenham uma
maior capacidade de corrente (strength). Essa concluso foi obtida atravs da aplicao
do modelo de Sakurai [SAK 83] para avaliar o desempenho dos canais de um
barramento e de duas redes-em-chip (toride e rvore-gorda) interconectando sistemas
com dez ncleos heterogneos (com 7 mil a 280 mil portas lgicas, aproximadamente).
Esses sistemas foram simulados via SPICE visando a tecnologia AMS .35m CMOS
com trs camadas de metal [AUS 2001].

No modelo de Sakurai, um canal de comunicao modelado como uma linha


de transmisso com perdas em que, alm da carga capacitiva, a resistncia equivalente
do amplificador (rt) e a resistncia da linha (R) tambm so consideradas para estimar o
tempo de propagao nos fios. Alm disso, a resistncia e a capacitncia da linha so
distribudas ao longo de seu comprimento, enquanto que no modelo aqui considerado a
capacitncia concentrada em um nico parmetro.

Mais importante do que a concluso a respeito do aumento das dimenses das


linhas e dos buffers de sada em um sistema baseado em barramento est a avaliao
feita pelos autores de que existe um limite para essas melhorias. Primeiramente, para
uma linha de largura mnima (0,5 m), o alargamento do canal dos transistores dos
buffers de 9/0,3 a 36/0,3 m (W/L PMOS) produz um aumento na freqncia de
operao. Porm, acima dessa faixa, o ganho na freqncia de operao mnimo.
Utilizando-se uma linha com largura maior (4,0 m), a resistncia dos fios reduzida e
o limite de saturao da freqncia estendido. Entretanto, destaca-se que a freqncia
de operao obtida com buffers maiores (72/0,3 m) e linhas de largura igual a 4,0 m
pouco superior freqncia dos canais de uma rvore-gorda baseada em buffers quatro
vezes menores (18/0,3 m) e linhas de largura mnima (0,5 m).

As concluses destacadas acima so aproveitadas neste texto para ilustrar o


efeito das melhorias aplicadas ao barramento na carga capacitiva das suas linhas.
Aumentando-se a largura das linhas, aumenta-se tambm a carga capacitiva, conforme
ilustrado na Figura 7.11. A linha com largura igual a 4 m, considerada de largura
tima em [BEC 2003], apresenta uma carga capacitiva superior, variando de 33 a 50%
do valor da capacitncia da linha de largura mnima (0,5 m). J na Figura7.12,
ilustrado o impacto do aumento da capacidade dos buffers (alargamento dos canais de
seus transistores) em associao com o aumento da largura das linhas. A carga
capacitiva da configurao de maiores dimenses (4,0 m e 4) varia de 45 a 56% em
relao ao valor da capacitncia da configurao mnima, para os diferentes tamanhos
de sistema.
197

4,0 3,0 2,0 1,0 0,5

14

12

10

8
CL (fF)

0
4 16 64 256

Nmero de ncleos

FIGURA 7.11 Aumento da carga capacitiva do barramento com a largura das linhas
(0,5 a 4,0 m).

4,0 (4x) 4,0 (1x) 0,5 (4x) 0,5 (1x)

14

12

10

8
CL (fF)

0
4 16 64 256

Nmero de ncleos

FIGURA 7.12 Aumento da carga capacitiva do barramento com a largura das linhas
(0,5 e 4,0 m) e com a capacidade dos buffers (1 e 4).

Em resumo, os resultados apresentados nesse exemplo demonstram que os


canais de comunicao das redes-em-chip consideradas apresentam carga capacitiva
inferior em relao aos canais de um barramento. Alm de propiciar uma maior
freqncia de operao, uma carga capacitiva menor produz benefcios quanto a um
consumo de energia mais reduzido, aspecto fundamental em muitos sistemas integrados
destinados a aplicaes embarcadas alimentadas por baterias. O estudo das questes
relacionadas ao consumo de energia foge do escopo proposto para esta tese. No entanto,
pode-se apontar trabalhos nos quais esse assunto discutido e/ou avaliado, como o
prprio relatrio de pesquisa de Beck Filho e Carro [BEC 2003], alguns artigos
publicados recentemente no cenrio das redes-em-chip [BEN 2001, DAL 2001] e outros
no contexto mais amplo da interconexo intra-chip [LAN 2000, HO 2001].
198

7.2 Modelos para a Estimativa da Latncia

Nesta seo, so apresentados modelos que visam propiciar a obteno de uma


estimativa em alto nvel do desempenho em comunicao de arquiteturas de
comunicao para sistemas integrados. Esses modelos so baseados em modelos de
latncia com carga zero, os quais so estendidos de modo a incluir condies que
consideram uma carga de comunicao particular e o paralelismo de algumas redes. Os
modelos so aplicados e seus resultados so comparados com os obtidos por simulao.

7.2.1 Modelos de latncia com carga zero


O modelo de latncia com carga zero para o barramento central obtido
considerando-se o tempo associado arbitragem do barramento (Tarb) e o tempo para a
transferncia da mensagem. Assumindo-se que o barramento requer um ciclo de relgio
para transferir cada palavra de largura igual largura da via de dados do barramento
(Wdata), a latncia para transferir uma mensagem com m palavras no barramento
expressa por:

tmsg,bus = Tarb + (Tbus m) (7.14)

Um modelo de latncia com carga zero para as redes-em-chip pode ser obtido a
partir do modelo apresentado em [DUA 97] para a estimativa da latncia em redes de
interconexo baseadas no chaveamento wormhole. Segundo aquele modelo, a latncia
para transferir uma mensagem com M bits entre um emissor e um receptor separados
por D enlaces do tipo roteador-roteador com canal de dados igual a Wdata dada por:

tmsg,wormhole = (tr + ts + tw) D + max(ts,tw) [M/Wdata] (7.15)

onde tr o tempo gasto pelo roteador para efetuar o escalonamento do pacote


(roteamento e a arbitragem), ts o atraso de propagao devido aos canais internos do
roteador e tw o atraso de propagao associado aos canais dos enlaces da rede. O
tamanho da carga til do pacote definifo por M/Wdata e indica o nmero de flits
necessrios para a transferncia dos M bits do pacote. Caso o canal de dados de uma
rede-em-chip seja da mesma largura do canal de dados do barramento central e for
preciso incluir endereo e dado no pacote, para uma mensagem com m palavras de
dado, a carga til conter 2m flits.

Em (7.15), a primeira expresso computa a latncia para transferir o cabealho


do pacote, enquanto que o segundo termo determina o tempo gasto pela carga til do
pacote para chegar ao destinatrio, seguindo o cabealho em um modo pipeline. O
tempo de ciclo desse pipeline determinado pelo maior valor entre os tempos de
propagao nos canais internos do roteador (ts) e nos canais dos enlaces da rede (tw).

O modelo (7.15) estendido de modo a considerar as caractersticas de operao


das redes-em-chip. Nesse novo modelo, o parmetro D no tomado como o nmero de
enlaces roteador-roteador no caminho da mensagem, mas sim como o nmero de
roteadores nesse caminho. Isso se justifica pelo fato de que a latncia (em ciclos de
relgio) adicionada por cada roteador maior que a latncia adicionada pelos enlaces
intra-chip. Alm disso, para aplicar o modelo na computao da latncia com carga zero
199

para as redes-em-chip, considerado que cada roteador organizado em um pipeline


com um ciclo de relgio (Tnoc) definido pelo maior atraso na rede.

Em [PEH 2001], Peh e Dally descrevem um roteador wormhole organizado em


um pipeline com trs estgios: roteamento, arbitragem e chaveamento. Cada estgio no
pipeline corresponde a um ciclo de relgio e, como mostrado na Figura 7.13, os dois
primeiros estgios (roteamento e arbitragem) correspondem ao parmetro tr em (7.15),
enquanto que o terceiro estgio corresponde ao parmetro ts.

Tnoc

Roteamento Arbitragem Chaveamento

tr ts
3xT noc

FIGURA 7.13 Estgios do pipeline [PEH 2001].

Se for levado em conta o perodo de operao do pipeline (parmetro Tnoc ) e a


latncia para o cabealho encher o pipeline, obtm-se um novo parmetro denominado
noc. Esse parmetro representa o nmero de ciclos gastos pelo cabealho do pacote para
avanar de um roteador a outro na ausncia de conteno. Por exemplo, noc pode ser
definido como igual a quatro, onde trs ciclos de relgio so devidos ao pipeline do
roteador e um ciclo devido ao atraso no enlace entre os roteadores. Dessa forma,
(7.15) pode ser reescrita como:

tmsg,pipelined-wormhole = Tnoc [(noc D) + M/Wdata] (7.16)

A equao (7.16) considera a latncia para um pacote atravessar os roteadores da


rede, porm no inclui a latncia devida insero e extrao do cabealho do pacote
realizadas pelas operaes de empacotamento e desempacotamento. Essas operaes
no so normalmente necessrias em arquiteturas baseadas em um barramento, pois,
tipicamente, os ncleos utilizados so compatveis com o protocolo do barramento.
Contudo, elas so comuns em sistemas baseados em redes-em-chip, pois a maioria dos
ncleos orientada a outros protocolos de comunicao. Dessa forma, para se obter
uma estimativa mais realista, esses custos so includos em (7.16), assumindo-se que
cada operao consome um ciclo de relgio para ser realizada, de onde se obtm o
modelo abaixo.

tmsg,noc = Tnoc [2 + (noc D) + M/Wdata] (7.17)

7.2.2 Modelos de latncia com carga no-nula


As equaes (7.14) e (7.17) so modelos simples que descrevem a latncia para
transferir uma mensagem em uma condio de carga zero em arquiteturas do tipo
barramento central e rede-em-chip, respectivamente. Essas equaes podem ser
estendidas incluindo condies de carga no-nula de modo a propiciar uma primeira
estimativa do desempenho em comunicao dessas arquiteturas para diferentes
configuraes de tamanho de sistema e carga de comunicao. Considerando-se uma
situao na qual cada um dos n ncleos no sistema deseja enviar uma mensagem aos
outros n1 ncleos, computado o nmero de ciclos gastos pela rede para entregar
200

n(n1) mensagens (ou pacotes). Considerando-se, ainda, que tal carga de comunicao
represente a condio de pior caso, pode-se obter cargas mais leves aplicando-se um
fator de reduo (Rd) que conduz ao modelo do nmero de mensagens (Nmsg) a serem
entregues pela rede:

Nmsg = n (n 1) Rd (7.18)

Na condio de pior caso, apresentada acima, cada ncleo envia mensagens aos
outros n1 ncleos do sistema. Em uma carga de comunicao mais leve, cada ncleo
enviaria mensagens a um menor nmero de ncleos, o que pode ser definido por um
parmetro que indique o nmero de mdio parceiros de comunicao de cada ncleo
para aquela carga (nload). Disso obtm-se o modelo abaixo:

Rd = nload / (n 1) (7.19)

Dessa forma, a latncia total requerida pelo barramento para entregar Nmsg
mensagens em um sistema com n ncleos, submetido a um fator de reduo de carga
definido por Rd dada por:

tbus = Nmsg Rd [Tarb + (Tbus m)] (7.20)

Contudo, na maioria das arquiteturas de barramento central, a arbitragem pode


ser realizada em paralelo com uma transferncia de dado em um modo pipeline. Desse
modo, apenas o primeiro ciclo de arbitragem precisa ser contabilizado, resultando em:

tbus = Tarb + (Nmsg Rd m) Tbus (7.21)

Substituindo-se (7.19) e (7.20) em (7.21) obtm-se o modelo de latncia do


barramento para o tipo de carga considerado, o qual dado por:

tbus = Tarb + (n nload m) Tbus (7.22)

Para as redes-em-chip, aplicando-se o mesmo procedimento, obtm-se o modelo


abaixo:

tnoc = n nload Tnoc [2 + (noc D) + M/Wdata] (7.23)

o qual ainda deve ser estendido para incluir o paralelismo oferecido pelas redes-em-chip
e que permite a transferncia simultnea de mltiplas mensagens. Esse paralelismo
expresso sob a forma de um parmetro (noc) utilizado como divisor do valor gerado por
(7.23). Disso obtm-se:

tnoc = n nload Tnoc [2 + (noc D) + M/Wdata] / noc (7.24)

O paralelismo realmente explorvel em uma rede-em-chip depende da sua


topologia, da carga oferecida pela aplicao e da localidade de comunicao da
aplicao, a qual pode ser derivada da distncia mdia entre os emissores e receptores
das transferncias realizadas na rede. Em [ZEF 2002a], o parmetro noc estimado
como:

noc = n Rd D (7.25)
201

7.2.3 Exemplo de aplicao dos modelos de estimativa de latncia


Os modelos acima apresentados foram aplicados na estimativa da latncia de
comunicao de um barramento central e de uma rvore-gorda. Os resultados da
estimativa foram comparados com os obtidos por meio da simulao do barramento PI-
Bus e da rede SPIN no simulador CASS [PET 97]. Aps, os modelos analticos foram
aplicados na comparao de estimativas de desempenho do barramento PI-Bus e da rede
SPIN em diferentes configuraes de sistema.

Sistemas modelados

Os sistemas modelados no CASS foram baseados em dois tipos de ncleo com


interface VCI: um gerador de trfego (iniciador-VCI) e uma memria RAM (alvo-VCI).
Em um sistema com n ncleos, metade dos ncleos de um tipo e outra metade de
outro tipo. Desde que iniciadores-VCI s podem se comunicar com alvos-VCI e vice-
versa, a carga de comunicao no sistema limitada a n/2 ncleos para cada ncleo do
sistema (ou seja nload,max = 0,5n). Logo, no modelo de carga utilizado, os geradores de
trfego so configurados a emitir uma mensagem de requisio de tamanho m a cada
uma das n/2 memrias RAM do sistema e estas devem enviar uma mensagem de
resposta com o mesmo tamanho aos n/2 geradores de trfego. Logo, para a carga
considerada, o nmero de mensagens ser dado por:

Nmsg = n nload = n 0,5 n = 0,5 n2 (7.27)

Por exemplo, em um sistema com quatro ncleos sero trocadas oito mensagens
de tamanho m. Na Figura 7.14.a, so ilustrada as quatro mensagens emitidas pelos
geradores de trfego (GT), enquanto as mensagens emitidas pelas memrias RAM so
mostradas na Figura 7.14.b. A configurao ilustrada na figura vlida tanto para
sistemas baseados no barramento PI-Bus quanto na rede SPIN.

PI/SPIN PI/SPIN

pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin pi/spin


vci vci vci vci vci vci vci vci

vci vci vci vci vci vci vci vci

RAM RAM GT GT RAM RAM GT GT


alvo 1 alvo 0 iniciador 1 iniciador 0 alvo 1 alvo 0 iniciador 1 iniciador 0

(a) (b)
FIGURA 7.14 Mensagens emitidas em um sistema com quatro ncleos: (a) originadas
pelos iniciadores; (b) originadas pelos alvos.

Resultados analticos resultados experimentais

Os grficos a seguir ilustram a comparao entre os resultados experimentais e


analticos para sistemas com 4, 8, 16 e 32 ncleos trocando mensagens de tamanho
mnimo (m = 1). considerado o pior tamanho de mensagem para uma rede-em-chip,
pois a sobrecarga devida ao cabealho a mais significativa (50% da carga til, a qual
composta por dois flits: endereo e dado). Na estimativa de desempenho do barramento
202

foi assumido o modelo em pipeline (7.22), com Tarb igual a trs ciclos de relgio do
barramento (3 Tbus).

Na Figura 7.15, so mostrados os resultados analtico e experimental para o


barramento PI-Bus. No eixo vertical esquerda (em escala logartmica), indicado o
nmero de ciclos para a entrega das mensagens, enquanto que o erro percentual absoluto
entre os valores estimado analiticamente e medido por simulao indicado no eixo
vertical direita (em escala linear). Como pode ser observado, o erro percentual de
21% para o sistema com quatro ncleos, decrescendo at 0,4% para o sistema com 32
ncleos. Para a obteno desse grfico, os parmetros utilizados foram: Tbus = 1, Tarb = 3
ciclos, Wdata = 32 bits, m = 1 palavra de dado e n = 4, 8, 16 e 32 ncleos.
Analtico Experimental Erro%
1000 25%

20%
Nmero de ciclos

100
15%

Erro%
10%
10
5%

1 0%
4 8 16 32
Nmero de ncleos

FIGURA 7.15 Latncias medida e estimada para o barramento PI-Bus.

Na comparao do modelo analtico para a rede SPIN com os resultados


experimentais, foi considerado que, em um mesmo roteador, so conectados apenas
ncleos do mesmo tipo (iniciador ou alvo) e que a rede dividida em duas metades. Os
iniciadores (GTs) so posicionados em uma das metades, enquanto que os alvos
(RAMs) so posicionados na outra metade, conforme ilustrado no exemplo da Figura
4.17. Essa configurao estabelece uma condio de pior caso em que a localidade na
comunicao dada pela maior distncia entre dois ncleos na rede. No exemplo da
figura, D igual a 2 dois roteadores ou log2(n/2).

RSPIN RSPIN

spin spin spin spin spin spin spin spin


vci vci vci vci vci vci vci vci
vci vci vci vci vci vci vci vci

RAM RAM RAM RAM GT GT GT GT

FIGURA 7.16 Posicionamento de iniciadores e alvos em uma rede SPIN com oito
terminais.
203

Os resultados analtico e experimental para a rede SPIN so mostrados na Figura


7.17. Nota-se que o erro percentual absoluto nulo para sistemas com 4 e 8 ncleos.
Porm, para sistemas maiores, com 16 e 32 ncleos, o erro igual a 7 e a 18%,
respectivamente. Para a obteno desse grfico, os parmetros utilizados foram:
Tnoc = 1, noc = 4 ciclos, Wdata = 32 bits, m = 1 palavra de dado, M = 64 bits (M/W = 2),
D = log2(n/2) e n = 4, 8, 16 e 32 ncleos.
Analtico Analtico Error %
1000 20%
Nmero de ciclos

15%
100

Erro%
10%
10
5%

1 0%
4 8 16 32
Nmero de ncleos

FIGURA 7.17 Latncias medida e estimada para a rede SPIN.

A Figura 7.18 ilustra os erros percentuais entre os resultados estimados e os


medidos por simulao para diferentes tamanhos de mensagem (m = 1, 2, 3, 4 e 8) em
sistemas com quatro e oito ncleos. O grfico mostra que o erro percentual absoluto
inferior a 45%, sendo que, na mdia, seu valor de 20,5%.

50%
PI-Bus (n = 8)
40%
PI-Bus (n = 4)
30% S P I N (n = 8)
20% S P I N (n = 4)
Erro%

10%
0%
-10%
-20%
-30%
-40%
1 2 3 4 8

Tamanho das mensagens (m)

FIGURA 7.18 Erros percentuais entre os resultados estimados e os dados medidos por
simulao para diferentes tamanhos de mensagem (m) e nmero de ncleos (n).

Esses valores de erro percentual podem ser considerados aceitveis, pois os


modelos analticos desenvolvidos baseiam-se em uma abordagem de alto nvel. Alm
disso, esses modelos pretendem apenas fornecer uma estimativa do desempenho em
204

comunicao das redes consideradas de modo a permitir uma avaliao inicial sobre a
arquitetura mais adequada para uma dada configurao de sistema e carga de trabalho.

Comparao das latncias do barramento PI-Bus e da rede SPIN

Nos grfico da Figura 7.19, ilustrada a comparao das estimativas de latncia


para o PI-Bus e para a rede SPIN correspondentes s configuraes apresentadas acima
(sendo que Tbus = Tnoc). Como pode ser observado, para sistemas com 4 e 8 ncleos, o
barramento consome menos ciclos para a entrega de todas as mensagens. Porm, nos
sistemas maiores (16 e 32 ncleos), a rede SPIN demanda um nmero menor de ciclos
para executar a carga de comunicao aplicada.

SPIN PI-Bus
1000
Nmero de ciclos

100

10

1
4 8 16 32
Nmero de ncleos

FIGURA 7.19 Latncias estimadas para o barramento PI-Bus e para a rede SPIN para
diferentes tamanhos de sistema com m = 1.

Como pode ser observado, o comportamento das curvas na Figura 7.19


bastante prximo das curvas obtidas com aplicao dessa carga em sistemas
equivalentes no simulador CASS, conforme mostrado na Figura 7.20. Destaca-se que
existe uma diferena de valores entre os dois grficos a qual decorre do erro inerente da
estimativa em alto nvel, conforme visto na Figura 7.15 e na Figura 7.17 .

SPIN PI-Bus
1000
Nmero de ciclos

100

10

1
4 8 16 32
Nmero de ncleos

FIGURA 7.20 Latncias medidas por simulao para o barramento PI-Bus e para a
rede SPIN para diferentes tamanhos de sistema com m = 1.
205

A Figura 7.21 apresenta uma curva que indica a relao entre as latncias do
barramento PI-Bus e da rede SPIN para diferentes tamanhos de sistema. Ela obtida
pela aplicao da expresso tbus/tnoc 1, de modo que seu resultado negativo quando
tbus menor que tnoc ou positivo quando tbus maior que tnoc. Com isso, possvel
identificar, visualmente, em uma nica curva, para qual tamanho de sistema o
desempenho da rede SoCIN apresenta um ganho positivo relao ao desempenho do
barramento PI-Bus, para o modelo de carga considerado. Conforme pode ser observado,
o ganho de desempenho positivo para sistemas com um nmero de ncleos superior a
oito.

250%
200%
150%
Ganho%

100%
50%
0%
-50%
-100%
4 8 16 32
Nmero de ncleos

FIGURA 7.21 Ganho percentual estimado da rede SPIN sobre o barramento PI-Bus.

Impacto do tamanho da mensagem na latncia da rede SPIN

Com relao aos resultados acima, o desempenho da rede s supera o do


barramento quando o paralelismo incrementado. Isso reflete a escalabilidade da
rede-em-chip, cuja largura de banda agregada aumenta com o crescimento do sistema. O
desempenho da rede s no superior pois mensagens muito curtas implicam em duas
sobrecargas importantes. Primeiramente, desde que cada pacote constitudo por apenas
dois flits (endereo + dado), o cabealho da rede gera uma sobrecarga de informao de
50%. Alm disso, quanto menor o tamanho dos pacotes transferidos em uma rede
chaveada, maior o impacto do tempo devido ao escalonamento dos pacotes nos
roteadores (roteamento e arbitragem). Conforme discutido em [DUA 97], o tempo gasto
no escalonamento amortizado entre mais flits quando as mensagens so mais longas.
Ainda, segundo os autores, os flits da carga til avanam mais rapidamente que o
cabealho, pois este tem que ser escalonado a cada roteador. Esses efeitos so ilustrados
na Figura 7.22, onde so apresentadas curvas de ganho de desempenho para diferentes
tamanhos de mensagem ( exceo de m, os parmetros so os mesmos utilizados
anteriormente). Como pode ser observado, o ganho de desempenho da rede SPIN
positivo em sistemas com oito ncleos (e maiores) para mensagens com tamanho igual a
dois (m = 2, M/Wdata = 4) ou maiores. Para mensagens muito curtas (m = 1), a latncia
da rede s menor que a do barramento em sistemas com 16 ou mais ncleos.
206

700%
m=8
600%
m=4
500%
m=2
400% m=1
Ganho%

300%
200%
100%
0%
-100%
4 8 16
Nmero de ncleos

FIGURA 7.22 Ganhos percentuais da latncia da rede SPIN para diferentes tamanhos
de mensagem (m = 1 a 8).

Impacto do peso da carga na latncia do PI-Bus e da rede SPIN

A carga aplicada nos exemplos acima pode ser caracterizada como tendo um
peso de 50%, pois cada ncleo emite mensagens para metade dos ncleos do sistema.
Reduzindo-se o nmero de destinatrios (nload), cargas mais leves podem ser obtidas de
modo a avaliar a latncia do barramento e da rede nessas condies. Por exemplo, no
grfico da Figura 7.23, ilustrado o ganho percentual da rede SPIN sobre o barramento
PI-Bus para cargas de 50, 40, 30, 20 e 10% baseadas em mensagens com apenas uma
palavra de dado (m = 1). Como pode ser observado, para cargas mais leves, o
desempenho da rede e o ganho percentual em relao ao barramento diminuem com a
reduo da carga. Para uma carga de 10%, o barramento apresenta-se como a melhor
soluo em todas as configuraes de sistema.

250%
50%
200%
40%
150% 30%
20%
Ganho%

100%
10%
50%

0%

-50%

-100%
4 8 16 32
Nmero de ncleos

FIGURA 7.23 Ganhos percentuais da latncia da rede SPIN para mensagens de


tamanho 1 e diferentes cargas (50, 40, 30, 20 e 10%).
207

No grfico da Figura 7.24, ilustrado o mesmo efeito quando as mensagens


incluem quatro palavras de dado (m = 4). Como pode ser observado, o aumento do
tamanho das mensagens incrementa o desempenho da rede, tornando-a a soluo de
menor latncia para sistemas com 32 ncleos em qualquer configurao de carga
(inclusive para a mais leve). J para os sistemas menores (com 4 e 8 ncleos), o
barramento apresenta-se como a melhor soluo em desempenho para cargas de 10% e
de 20%.

1000%
50%
800% 40%
30%
600%
20%
Ganho%

400% 10%

200%

0%

-200%
4 8 16 32
Nmero de ncleos

FIGURA 7.24 Ganhos percentuais da latncia da rede SPIN para mensagens de


tamanho 4 e diferentes cargas (50, 40, 30, 20 e 10%).

Os resultados acima demonstram que, para configuraes de carga leve e de


mensagens curtas, o barramento oferece um desempenho superior ao da rede-em-chip.
Contudo, com o aumento da carga e do tamanho das mensagens, a rede passa a tomar
vantagem do seu paralelismo e da sua maior largura de banda.

Impacto da largura do canal de dados na latncia da rede SPIN

Os modelos de latncia foram tambm aplicados na avaliao do impacto da


largura do canal da rede na execuo da carga de comunicao modelada. Fazendo-se m
igual a quatro (tamanho de uma linha de cache de processador RISC de 32 bits),
variou-se o parmetro Wdata de modo a determinar qual a largura mnima de canal que
permite rede-em-chip sustentar uma latncia inferior do barramento PI-Bus com
palavra de 32 bits.

No exemplo da Figura 7.25, para sistemas com quatro ncleos, apenas os canais
com largura igual a 64 bits ou maior superam o desempenho do barramento, requerendo
um nmero menor de ciclos para entregar as mensagens (ganho % positivo). J em
sistemas com oito ncleos, todas as configuraes acima de 8 bits apresentam latncia
inferior do barramento. Por fim, em sistemas com 16 ncleos (ou maiores), qualquer
largura de canal oferece latncia menor que do PI-Bus. Esse exemplo ilustra que os
modelos de latncia oferecem a possibilidade de se realizar uma estimativa da
configurao de menor custo da rede-em-chip que sustente um desempenho superior ao
do barramento.
208

800%
700%
Wdata = 128
600% Wdata = 64
500% Wdata = 32
Ganho%

400% Wdata = 16
300%
Wdata = 8
200%
100%
0%
-100%
-200%
4 8 16 32
Nmero de ncleos

FIGURA 7.25 Ganhos percentuais da latncia da rede SPIN para diferentes larguras
de canal de dados na rede (8 a 128 bits) e uma largura fixa no barramento (32 bits).

Impacto da freqncia de operao na latncia do barramento PI-Bus

Em todos os exemplos ilustrados acima, foi utilizado o mesmo perodo de


relgio para o barramento PI-Bus e para a rede SPIN (Tbus = Tnoc). Contudo, conforme
foi discutido na seo 7.1, a carga capacitiva associada ao barramento cresce com o
tamanho do sistema em uma razo maior que a de uma rede-em-chip. Para ilustrar o
efeito da freqncia de operao do barramento na sua latncia de comunicao, o
grfico da Figura 7.26 apresenta curvas de ganho percentual de latncia para relaes
Tbus/Tnoc iguais a 1 e superiores. Nos casos ilustrados a seguir, foram consideradas
mensagens com apenas uma palavra de dados (m = 1) e uma rede SPIN com canal de
32 bits. As curvas mostram que o aumento da capacitncia e, conseqentemente, do
perodo de operao, torna ainda maior a latncia do barramento. Por exemplo, se
Tbus = 2,0Tnoc, a latncia do barramento maior que a da rede-em-chip para qualquer
tamanho de sistema considerado.

500%
Tbus = 2,5xTnoc
400% Tbus = 2,0xTnoc
300% Tbus = 1,5xTnoc
Ganho%

Tbus = 1,0xTnoc
200%

100%

0%

-100%
4 8 16 32
Nmero de ncleos

FIGURA 7.26 Ganhos percentuais da latncia da rede SPIN para diferentes perodos
de operao do barramento PI-Bus.
209

7.3 Consideraes

Neste captulo, foi apresentado o desenvolvimento de um conjunto de modelos


analticos para a estimativa em alto nvel do desempenho de arquiteturas de
comunicao para sistemas integrados. Os modelos foram estabelecidos em um
contexto limitado, no qual algumas variveis no foram consideradas. Por exemplo, foi
avaliado apenas o impacto da carga capacitiva como parmetro para comparao de
desempenhos dos fios dos canais de comunicao. Contudo, sabido que a resistncia
do fio exerce um papel importante na determinao do tempo de propagao, sobretudo
em tecnologias submicrnicas em que os fios so cada vez mais estreitos e as
resistncias tornam-se mais significativas. Com relao latncia, assumiu-se ser
possvel obter uma estimativa de desempenho de arquiteturas de comunicao atravs
de uma anlise analtica e esttica. sabido que existem vrios fatores dinmicos e no
linearidades que impactam no desempenho de uma arquitetura de comunicao, como a
profundidade dos FIFOs e o intervalo entre a gerao de mensagens, que levam
conteno e saturao da rede. Tais fatores so difceis de serem capturados por
modelos analticos simples. De fato, o impacto desses fatores tipicamente avaliado por
simulao, como foi visto no Captulo 4. Apesar dessas limitaes, acredita-se que os
modelos aqui desenvolvidos podem tornar-se uma ferramenta bastante til para uma
primeira anlise a fim de orientar as escolhas de projeto, contudo, eles no dispensam o
uso de metodologias baseadas em simulao.

Quanto aplicao dos modelos desenvolvidos neste captulo, eles permitiram


avaliar o impacto do tamanho do sistema na carga capacitiva dos canais de comunicao
para uma dada tecnologia de fabricao. Os resultados permitiram a observao de
algumas questes associadas ao tamanho do sistema no desempenho dos canais. Por
exemplo, foi visto que a capacitncia do barramento tem um crescimento
significativamente maior que a das redes-em-chip. Alm disso, foi observado que as
topologias de rede-em-chip que oferecem alguma regularidade no comprimento dos
canais e uma certa independncia com relao ao tamanho dos sistemas apresentam a
vantagem de manter uma carga capacitiva constante em seus canais, facilitando o
projeto dos seus buffers.

Com relao latncia, destaca-se que, para uma configurao tpica de 32 bits e
para o modelo de carga de comunicao considerada, o barramento oferece desempenho
satisfatrio em sistemas com at oito ncleos (ou um pouco mais) e para as cargas mais
leves. Para os sistemas maiores, o paralelismo da rede permite a obteno de uma
latncia de comunicao menor. Alm disso, observou-se que possvel estimar uma
configurao de menor custo de rede-em-chip (Wdata menor) que consiga suprir um
desempenho superior ao do barramento. Por fim, destacou-se que, se for considerado o
efeito da carga capacitiva no desempenho dos fios do barramento, a latncia total do
barramento para a execuo da aplicao ser ainda mais degradada.
210
211

8 Consideraes Finais

Este texto apresentou um conjunto de estudos e atividades de pesquisa que


nortearam a questo da comunicao em sistemas integrados em um nico chip. Fez-se
uma reviso bibliogrfica sobre os conceitos que fundamentam as redes de interconexo
para computadores paralelos, arquiteturas base para as estruturas de comunicao que se
apresentam como a melhor alternativa de interconexo intrachip para os futuros
sistemas integrados: as chamadas redes-em-chip. Tambm foi realizado um estudo a
respeito do contexto do trabalho, com conceitos e terminologias da rea de projeto de
sistemas integrados. Nesse estudo, focalizou-se a questo da comunicao,
procurando-se identificar os principais tipos de arquiteturas de comunicao atuais, bem
como as arquiteturas emergentes e que se propem a atender aos requisitos dos futuros
sistemas integrados. Aps, foram identificadas as limitaes das abordagens baseadas
no barramento e nos canais ponto-a-ponto dedicados. Disso buscou-se oferecer uma
viso sobre as arquiteturas atuais de redes-em-chip, identificando-se as caractersticas
de algumas das principais arquiteturas correntes. Esse estudo no foi totalmente
exaustivo, mas acredita-se ter identificado os trabalhos que apresentaram as
contribuies mais significativas rea. Continuando, o texto descreveu atividades de
pesquisa que envolveram o desenvolvimento de modelos de redes-em-chip e sistemas
integrados para avaliao de desempenho por simulao; a especificao arquitetural,
modelagem e sntese em alto nvel de uma rede-em-chip; e o desenvolvimento de
modelos de alto nvel para a estimativa de custo e desempenho de arquiteturas de
comunicao para sistemas integrados.

Ao trmino de cada captulo, procurou-se apresentar um conjunto de


consideraes locais que tornasse a avaliao dos resultados obtidos mais prxima do
texto no qual foram descritos. Dessa forma, no cabe a esta sesso fazer uma anlise
individual de cada captulo, mas sim um apanhado geral sobre seus resultados, suas
inter-relaes e a contribuio dada ao contexto em que se insere este trabalho.
Tambm, acreditando-se que este espao seja o local para se fazer uma avaliao a
respeito do perodo passado durante o desenvolvimento da tese, buscar-se- fazer um
relato sobre o histrico do acadmico e de suas atividades de pesquisa no Curso de
Doutorado do Programa de Ps-Graduao em Computao da Universidade Federal do
Rio Grande do Sul (PPGC-UFRGS). Por fim, na certeza de que esta tese no conclui um
projeto de vida profissional, mas sim o encaminha, sero discutidas idias de atividades
de pesquisa que se pretende desenvolver no futuro e sero listadas algumas
oportunidades de pesquisa no contexto deste trabalho.

8.1 Viso Geral sobre o Trabalho e suas Contribuies

Os modelos de simulao, sntese e de estimativa de rea e desempenho


desenvolvidos neste trabalho permitiram a obteno de uma srie de resultados
conclusivos a respeito da aplicabilidade das redes-em-chip, os quais foram apresentados
no decorrer do texto. Torna-se relevante aqui emitir algumas consideraes adicionais
que sintetizem esses resultados.
212

Primeiramente, deve-se destacar que ainda existe uma srie de aplicaes que
podem ser atendidas por uma arquitetura de comunicao baseada em um barramento
central ou em uma hierarquia de barramentos, mas essa aplicabilidade est cada vez
mais restrita. Com o aumento crescente da demanda por funcionalidades ainda mais
sofisticadas em produtos de eletrnica de consumo, telecomunicaes e de computao
embarcadas, faz-se necessrio o desenvolvimento de novos componentes de
processamento e de comunicao. Em um mercado competitivo e com altas presses de
projeto, necessrio que o tempo de projeto de cada produto seja mnimo. Uma
abordagem utilizada para suportar essas presses consiste em acrescentar novas
funcionalidades a produtos j existentes. Considerando que cada nova funcionalidade
represente um ncleo adicional a uma arquitetura j existente de sistema integrado, o
nmero de ncleos no sistema ir crescer a cada nova gerao de produtos. Uma
arquitetura de comunicao baseada no barramento que hoje atende aos requisitos da
aplicao poder no faz-lo em um futuro prximo, pois sua escalabilidade pobre e o
consumo de energia e o desempenho da comunicao iro se degradar com o
crescimento do sistema.

Os resultados apresentados nos Captulos 4, 6 e 7 ajudam a determinar o escopo


de aplicao de uma arquitetura em barramento e o momento a partir do qual uma
arquitetura do tipo rede-em-chip se faz necessria. Se no for levada em considerao
uma perspectiva futura de crescimento do sistema, o barramento central encontra
utilidade em aplicaes que apresentem uma baixa carga de comunicao e/ou em
sistemas com menos de uma dezena de ncleos. Se for considerado que o sistema
poder crescer, mesmo que sua demanda de largura de banda no aumente, mas ele
apresente fortes requisitos quanto ao consumo de energia, ento o barramento possui
espao limitado e deve-se partir para uma arquitetura de rede-em-chip. Nesse contexto,
a rede parametrizvel aqui proposta se insere como uma soluo intermediria, pois sua
largura de banda escalvel em vrias dimenses: tamanho do sistema, largura dos
canais e profundidade dos buffers. Uma rede SoCIN de baixo custo pode ser construda
utilizando-se canais estreitos (eg. 8 bits) e buffers de pouca profundidade (eg. um ou
dois flits). Sua largura de banda ser limitada, porm ela pode ser escalada com
facilidade. Em um terceiro contexto, considerando-se aplicaes com altos requisitos de
largura de banda, como televiso digital de alta definio e processadores de rede (ou
network processors), no h mais espao para o barramento. Atualmente, dependendo
do nvel do paralelismo utilizado para a implementao dessas aplicaes (eg. tarefa,
instruo ou bit) diferentes tipos de arquiteturas de comunicao podem ser usadas, mas
todas elas excluem o barramento central. Para os processadores de rede, so utilizadas
solues como canais ponto-a-ponto dedicados e hierarquias de barramento
[SHA 2002]. Contudo, as redes-em-chip j comeam a ser utilizadas em solues que
adotam o paralelismo em nvel de tarefa [KAR 2002].

Algumas contribuies podem ser identificadas neste trabalho:

O estudo comparativo entre o barramento PI-Bus e a rede SPIN, feito atravs


de simulao com preciso de ciclo, auxiliou a demonstrar a efetividade da
rede SPIN. Os resultados tambm permitiram identificar que de nada adianta
uma arquitetura de comunicao que oferea paralelismo se a aplicao
apresentar pontos de estrangulamento que limitam a utilizao do
desempenho disponvel.
213

A rede SoCIN no apresenta nenhuma inovao arquitetural. Assim como as


demais redes-em-chip, ela baseia-se em conceitos j estabelecidos de redes
de interconexo para computadores paralelos. Contudo, o modelo VHDL
parametrizvel sintetizvel do roteador RASoC oferece um diferencial rede
SoCIN, pois as arquiteturas encontradas na literatura so rgidas com relao
aos parmetros configurveis na rede SoCIN. A flexibilidade do modelo do
roteador permite a sntese de redes mais adequadas a cada aplicao, seja
pela reduo do custo ou pelo aumento da largura de banda da rede.
Contudo, destaca-se que no foi realizada uma explorao exaustiva do
espao das redes-em-chip. Longe disso, foram escolhidas alternativas
arquiteturais que oferecessem um equilbrio entre custo e desempenho.

Os modelos de estimativa de alto nvel constituem-se em uma ferramenta til


para uma estimativa inicial sobre o custo e o desempenho de uma rede-em-
chip. No se conhece na literatura trabalhos semelhantes visando arquiteturas
de redes-em-chip. Os modelos apresentados em [BRI 2002] servem ao tipo
de rede proposta pelos autores, a qual difere em um nmero de
caractersticas das redes-em-chip baseadas em redes de interconexo. Os
modelos aqui apresentados sero inseridos em uma metodologia de projeto a
ser desenvolvida visando sntese automtica de redes-em-chip para uma
dada aplicao.

Os estudos e as pesquisas realizados no decorrer desta tese e a difuso dos


conhecimentos adquiridos fomentaram o estabelecimento de uma linha de
pesquisa sobre redes-em-chip no Grupo de Microeletrnica (GME) do
PPGC-UFRGS. Desde a consolidao do tema desta tese, em 2000, diversos
alunos de ps-graduao se associaram investigao de diferentes questes
relacionadas ao projeto e aplicao de redes-em-chip em sistemas
integrados.

A partir das contribuies indicadas acima, identifica-se, como contribuio


geral deste trabalho, o desenvolvimento e a disponibilizao de modelos de simulao,
sntese e estimativa de rea e desempenho de redes-em-chip, assim com um conjunto de
dados e anlises sobre a aplicabilidade dessas redes.

8.2 Histrico da Tese

As atividades relacionadas a esta tese tiveram seu incio em maro de 1998 com
o ingresso deste acadmico no PPGC-UFRGS. O projeto original proposto ao programa
previa o estudo e desenvolvimento de redes de aplicao especfica sem determinar o
nvel da implementao. Durante esse ano, foram cursadas disciplinas da rea de
microeletrnica e foram realizados estudos sobre o tema proposto. Desse perodo, foi
publicado artigo no Iberchip1999 [ZEF 99] e outro no SIM1999 [ZEF 99a]. O
primeiro apresentava o projeto de uma rede de interconexo experimental baseada em
um roteador wormhole sintetizado para FPGA, enquanto que o segundo consistia em um
estudo sistemtico sobre conceitos de redes de interconexo com estudos de caso.
214

J no ano de 1999, avaliando-se a hiptese de se desenvolver a tese no contexto


de redes para aplicaes especficas integradas em um nico chip, foram realizados
estudos sobre conceitos na rea de processamento de imagem e vdeo. Foi realizado um
Trabalho Individual no qual se estudou acerca da aplicao da Transformada Discreta
do Cosseno na compresso de vdeo digital [ZEF 99b]. Desse trabalho e de outros
estudos, identificou-se, naquele momento, que havia pouco espao para as solues que
se buscava explorar, pois acreditava-se que, para as aplicaes vislumbradas, a melhor
soluo seria baseada no uso de canais ponto-a-ponto dedicados. Disso partiu-se para o
estudo da interconexo de computadores em agregados, contexto no qual o acadmico
j havia trabalhado em sua dissertao de mestrado no Programa de Ps-Graduao em
Cincia da Computao da Universidade Federal de Santa Catarina (PPGCC-UFSC)
[ZEF 96]. Ainda em 1999, realizou-se o Exame de Qualificao cuja rea de
abrangncia tratou de temas sobre processamento paralelo e a de parte de profundidade
focalizou as redes de interconexo [ZEF 99c].

Nesse novo contexto, no ano de 2000, buscou-se uma integrao com


pesquisadores do Grupo de Processamento Paralelo e Distribudo (GPPD) e do Grupo
de Matemtica da Computao e Processamento de Alto Desempenho (GMCPAD) do
PPGC-UFRGS a fim de identificar aplicaes que pudessem requer uma rede de
interconexo com projeto especfico. Este acadmico associou-se a um projeto de
pesquisa que almejava o desenvolvimento de solues em processamento paralelo para
aplicaes de simulao numrica, no qual foram publicados quatro artigos com os
resultados intermedirios do projeto [RIZ 2000, DOR 2000, ZEF 2000, DOR 2000a].
Nesse contexto, e vislumbrando-se o desenvolvimento de redes especficas para
agregados de computadores, manteve-se contato com o professor Alain Greiner para a
realizao de estgio sanduche no departamento Architecture des Systmes Intgrs et
Microlectronique do Laboratoire dInformatique Paris 6 (ASIM/LIP6), o qual
apresentava competncia no desenvolvimento de um agregado de PCs chamado MPC.
Nas tratativas com o professor Alain discutiu-se diferentes alternativas de projetos que
acabaram por conduzir ao Projeto SPIN. Dessa forma, o contexto da tese foi novamente
focado para a integrao de redes em um nico chip e comeou-se a direcionar todos os
esforos nessa rea trabalhando-se em cooperao com outros pesquisadores do
PPGC-UFRGS. Desses trabalhos, foram publicados artigos no IBERCHIP2001
[KRE 2001], no SIM2001 [KRE 2001a] e no SBCCI2001 [KRE 2001b], os quais
tratavam da anlise e seleo de redes-em-chip-para sistemas integrados. Tambm foi
publicado artigo na Revista de Informtica Terica e Aplicada [KRE 2001c].

Em 2001, j realizando estgio no LIP6, desenvolveu-se o modelo CASS do


roteador RSPIN e foram efetuados os experimentos de avaliao de desempenho da rede
SPIN e do barramento PI-Bus, descritos nesta tese. Desses trabalhos, foram publicados
artigos no DATE2003 [AND 2003] e no SIM2002 [ZEF 2002c]. No final do segundo
semestre de 2001, aps o retorno do estgio, foi desenvolvida a primeira verso do
modelo VHDL do roteador RASoC.

Em 2002, os esforos foram dirigidos redao e defesa da proposta de tese e


aos estudos que resultaram nos modelos analticos apresentados nos Captulos 6 e 7. A
evoluo dos modelos de estimativa de desempenho foi apresentada em artigos
publicados no SBCCI2002 [ZEF 2002], IP-Based Design2002 [ZEF 2002a] e
SIM2002 [ZEF 2002b]. Em paralelo, foram desenvolvidos projetos com pesquisadores
do GME na rea de teste de sistemas integrados baseados em redes-em-chip, e com
215

pesquisadores da UNIVALI, na rea de modelagem e de componentes para roteadores


de redes-em-chip. O primeiro trabalho resultou em um artigo publicado no VTS2003
[COT 2003] e o segundo em um artigo publicado na Revisa Hfen [ESP 2002].

No ano de 2003, foi publicado um artigo no SBCCI2003, no qual foi


apresentada a arquitetura da rede SoCIN e o detalhamento da organizao do roteador
RASoC [ZEF 2003].

8.3 Projetos Futuros e Oportunidades de Pesquisa

Durante o desenvolvimento do modelo do roteador RASoC, ressentiu-se de um


suporte mais elaborado para a parametrizao do modelo VHDL e isso restringiu o
nmero de variveis possveis de serem configuradas. Dando continuidade a esta tese,
ser desenvolvido o projeto ParIS (Parameterized Interconnect Switch), o qual atacar
esse problema sob uma outra ptica. Sero desenvolvidos modelos de componentes para
a construo de modelos de roteador. Para cada componente, sero disponibilizados
modelos parametrizveis que implementaro alternativas arquiteturais com diferentes
caractersticas de custo e desempenho. Cada modelo ser caracterizado quanto rea
ocupada e ao seu caminho crtico para as tecnologias alvo. Eles tambm sero
caracterizados quando s suas respostas a cargas de comunicao aplicadas por
simulao. Procurar-se- tambm oferecer caracterizaes de alto nvel baseadas em
modelos analticos de estimativa de rea e desempenho. Em uma etapa posterior, sero
desenvolvidas verses DFT (Designed for Test) desses modelos de modo a oferecer
testabilidade aos mesmos.

A partir dos modelos caracterizados, ser construda uma biblioteca de


componentes que dar suporte a uma ferramenta computacional para a construo de
modelos de roteador e de redes-em-chip. Essa ferramenta ter uma interface visual e
gerar descries em VHDL e/ou C para sntese e avaliao da rede por simulao. A
ferramenta tambm oferecer estimativas preliminares baseadas em modelos de alto
nvel. Os arquivos de sada serviro de entrada para ferramentas de sntese e simulao,
como, por exemplo: o Quartus II da Altera, o CASS e/ou o SystemC.

Posteriormente, a ferramenta ser integrada a uma metodologia que dever


automatizar o processo de seleo de componentes, construo do roteador, avaliao
da rede de modo a atender aos requisitos de custo (rea e potncia) e desempenho de
uma dada aplicao.

Alm das oportunidades de pesquisa que sero cobertas pelo Projeto ParIS,
identifica-se uma srie de outras alternativas de projeto no contexto das redes-em-chip,
as quais so sucintamente enumeradas abaixo:

Avaliao da viabilidade de implementao de roteador com interface e


canais internos compatveis com alguma interface padro: VCI ou OCP;

Desenvolvimento de benchmarks a serem aplicados na avaliao de redes-


em-chip com base nas caractersticas de aplicaes tpicas de sistemas
integrados;
216

Avaliao de requisitos e caractersticas de aplicaes com alta demanda de


largura de banda (eg. processadores de rede) para a especificao e projeto
de redes-em-chip;

Modelo hbrido roteador/ponte/rbitro para a construo de redes


hierrquicas com barramentos locais de pequena capacidade na base e uma
rede chaveada no topo da hierarquia, construdas a partir de instncias um
nico componente que realiza a arbitragem do barramento local e o
roteamento de pacotes na rede;

Roteadores com QoS (Quality of Service) que possam comprometer-se com


nveis qualidade de servio para comunicaes crticas do sistema integrado.

Finalmente, conclui-se esta tese destacando-se a qualidade da formao


oferecida pelo PPGC-UFRGS e a reconhecida capacidade de seus professores e
pesquisadores que muito colaboraram para o desenvolvimento deste trabalho.
217

Apndice A Organizao do Roteador RASoC

Este apndice apresenta a descrio da organizao do roteador RASoC.


Conforme descrito na seo 5.10.1, o roteador RASoC constitudo, internamente, por
uma estrutura distribuda baseada em dois tipos de mdulo: Input Channel e Output
Channel. Cada porta de comunicao implementada por uma par de mdulos de
entrada e de sada e, dessa forma, um roteador completo, com cinco portas de
comunicao, ter cinco instncias do mdulo Input Channel e outras cinco do mdulo
Output Channel. Em um roteador com um nmero menor de portas, os mdulos
associados s portas no implementadas no so sintetizados pelo compilador. Isso
feito de forma automtica, desde que os sinais de entrada dessas portas sejam aterrados
(conectados em 0) e os sinais de sada sejam mantidos em aberto.

A seguir, so apresentados detalhes a respeito da organizao desses mdulos e


de seus blocos constituintes. Primeiramente, descreve-se a organizao do mdulo Input
Channel e os sinais de sua interface. Aps, apresenta-se a estrutura dos blocos que
compem esse mdulo. Continuando, descreve-se o mdulo Output Channel
(organizao e interface) e os blocos que o constituem.

A.1 O Mdulo Input Channel

Na Figura A.1, apresentado o smbolo do mdulo Input Channel (que


representa a sua interface) e os blocos que compem sua estrutura interna: Input Flow
Controller (IFC), Input Buffer (IB), Input Controller (IC) e Input Rd Switch (IRS). A
funcionalidade desses blocos j foi descrita na subseo 5.10.2.

in_data x_dout
in_val x_rok
in_ack x_rd0
x_rd1
x_rd2
x_rd3
x_reqL
x_reqN
x_reqE
x_reqS
x_reqW
x_gnt0
x_gnt1
x_gnt2 din reqL x_reqL
x_gnt3 rok reqN x_reqN
Input reqE x_reqE
Channel reqS x_reqS
Input reqW x_reqW
dout x_dout
Controller
in_data
din dout
in_val in_val wr wr rok x_rok
in_ack in_ack rok wok rd
rd rd0 x_rd0
Input Flow Controller Input Buffer rd1 x_rd1
rd2 x_rd2
rd3 x_rd3
gnt0 x_gnt0
gnt1 x_gnt1
gnt2 x_gnt2
Input gnt3 x_gnt3
Rd Switch

FIGURA A.1 Interface e estrutura do mdulo Input Channel.


218

Conforme foi apresentado na subseo 5.10.2, os nomes dos sinais conectados


interface externa do roteador utilizam o prefixo in_, enquanto que os sinais conectados
aos mdulos de sada do roteador utilizam o prefixo x_. Na Tabela A.1, apresentada a
descrio (largura e definio) de cada um dos sinais que compem a interface do
mdulo Input Channel.

TABELA A.1 Definio dos sinais da interface do mdulo Input Channel.


Nome Largura Definio
in_data (n+2) bits Canal de dados do canal de entrada (inclui os bits eop e bop)
in_val 1 bit Validao de flit no canal de dados do canal de entrada
in_ack 1 bit Reconhecimento da recepo do flit pelo canal de entrada
x_dout 1 bit Canal de dados com cabealho atualizado aps o roteamento
x_rok 1 bit Informa a disponibilidade de um flit a ser lido do bloco IB
x_rd0 1 bit Comando de leitura enviado pelo canal de sada 0
x_rd1 1 bit Comando de leitura enviado pelo canal de sada 1
x_rd2 1 bit Comando de leitura enviado pelo canal de sada 2
x_rd3 1 bit Comando de leitura enviado pelo canal de sada 3
x_reqL 1 bit Requisio de uso do canal de sada da porta Local (local)
x_reqN 1 bit Requisio de uso do canal de sada da porta North (norte)
x_reqE 1 bit Requisio de uso do canal de sada da porta East (leste)
x_reqS 1 bit Requisio de uso do canal de sada da porta South (sul)
x_reqW 1 bit Requisio de uso do canal de sada da porta West (oeste)
x_gnt0 1 bit Confirmao de seleo do canal de entrada pelo canal de sada 0
x_gnt1 1 bit Confirmao de seleo do canal de entrada pelo canal de sada 1
x_gnt2 1 bit Confirmao de seleo do canal de entrada pelo canal de sada 2
x_gnt3 1 bit Confirmao de seleo do canal de entrada pelo canal de sada 3

Embora cada canal de entrada possa requisitar apenas quatro dos cinco canais de
sada, o mdulo Input Channel um mdulo genrico e sua interface inclui sinais de
requisio para todos os canais de sada do roteador. Em cada instncia do mdulo Input
Channel, o sinal de requisio no utilizado ignorado. Tambm, devido generalidade
do modelo, os sinais rd e gnt possuem ndices genricos (de 0 a 3) e o significado dos
mesmos varia conforme o canal de entrada implementado. Por exemplo, para o canal
Lin, x_rd0 representa o sinal de comando de leitura originrio da primeira porta da lista
de portas que ele pode requisitar. Como essa lista definida na ordem N, E, S e W, a
porta correspondente ao sinal x_rd0 a porta N. Da mesma forma, x_gnt3 representa o
sinal de confirmao de seleo oriundo da quarta porta que a porta L pode requisitar
(ou seja, a porta W).

Na Tabela A.2, so listados os significados dos sinais com ndice genrico para
cada instncia do mdulo Input Channel. Como pode ser observado, na leitura da linha
correspondente instncia Lin, x_rd0 representa o sinal de comando de leitura oriundo
do canal de sada da porta N (Nrd), enquanto x_gnt3 representa o sinal de confirmao
gerado pelo canal de sada da porta W (WgntL). Deve-se destacar que existem tantos
sinais de confirmao (gnt) quanto o nmero de conexes possveis no crossbar do
roteador (ou seja, 20), sendo que, na nomenclatura utilizada, WgntL indica uma
confirmao do canal de sada Nout para o canal de entrada Lin. Por outro lado, existem
219

apenas cinco sinais de comando de leitura (rd) gerados pelos cinco canais de sada do
roteador. Na terminologia do modelo, Nrd indica o sinal de comando de leitura gerado
pelo canal de sada Nout, o qual deve ser conectado ao sinal rd do IB do canal de
entrada que estiver utilizando esse canal de sada.

TABELA A.2 Significado de x_rdi e x_gnti para cada instncia de Input Channel.
Entradas
Instncia
x_rd0 x_rd1 x_rd2 x_rd3 x_gnt0 x_gnt1 x_gnt2 x_gnt3
Lin Nrd Erd Srd Wrd NgntL EgntL SgntL WgntL
Nin Lrd Erd Srd Wrd LgntN EgntN SgntN WgntN
Ein Lrd Nrd Srd Wrd LgntE NgntE SgntE WgntE
Sin Lrd Nrd Erd Wrd LgntS NgntS EgntS WgntS
Win Lrd Nrd Erd Srd LgntW NgntW EgntW SgntW

Na Tabela A.3, so indicados os sinais de requisio efetivamente utilizados em


cada instncia do mdulo Input Channel. Da mesma forma que para os sinais de
confirmao, existem tantos sinais de requisio quanto o nmero de conexes possveis
no crossbar do roteador (ou seja, 20). Na terminologia do modelo, LreqN indica o sinal
de requisio do canal de entrada Lin para o canal de sada Nout. Observa-se que um
canal de entrada de uma dada porta no pode requisitar o canal de sada da mesma
porta.

TABELA A.3 Uso das linhas de requisio nas instncias de Input Channel.
Sadas
Instncia
x_reqL x_reqN x_reqE x_reqS x_reqW
Lin LreqN LreqE LreqS LreqW
Nin NreqL NreqE NreqS NreqW
Ein EreqL EreqN EreqS EreqW
Sin SreqL SreqN SreqE WreqW
Win WreqL WreqN WreqE WreqS

A.1.1 O bloco Input Flow Controller


O bloco Input Flow Controller (IFC) implementa o mecanismo de controle de
fluxo de entrada de um canal de entrada do roteador, adaptando o protocolo de
handshake ao protocolo FIFO. Nos dois protocolos, o controle de fluxo realizado por
meio do uso de dois sinais de controle: um de requisio (ou validao), no sentido
emissor-receptor, e outro de retorno (ou reconhecimento), no sentido receptor-emissor.
Como a diferena entre os dois protocolos resume-se temporizao do sinal de
retorno, a lgica necessria a essa adaptao bastante simples. No protocolo FIFO, o
sinal de retorno consiste de um bit de condio que informa, antecipadamente, a
habilidade de receber um novo dado, sendo ativado independentemente de haver ou no
uma requisio. No protocolo de handshake, o sinal de retorno s ativado aps o
recebimento de uma requisio e somente se o receptor for capaz de receber o dado a
ser enviado. Para o emissor, a ativao desse sinal interpretada como uma
confirmao de entrega do dado sendo transmitido. Com base nisso, a lgica de
adaptao dos protocolos consiste de uma operao lgica E que condiciona a
220

ativao do sinal de retorno do protocolo de handshake (ack) ativao do sinal de


requisio desse protocolo (val) e do sinal de retorno do protocolo FIFO (wok),
conforme ilustrado na Figura A.2.

in_val wr
in_ack rok

Input Flow Controller

in_val wr
in_ack wok

FIGURA A.2 Estrutura do bloco IFC.

A implementao do circuito de controle de fluxo de entrada sob a forma de uma


unidade independente das demais visa a permitir a substituio facilitada da tcnica
originalmente utilizada (handhake) por outra tcnica baseada em dois fios (eg. controle
de fluxo baseado em crditos) pela simples troca da arquitetura interna do bloco IFC.
Externamente, a nica diferena seria o significado do sinal in_ack que, no caso do
controle de fluxo baseado em crditos, passaria a indicar um retorno de crtido (in_cr).

A.1.2 O bloco Input Buffer


O bloco Input Buffer (IB) implementa o mecanismo de memorizao dos flits
que chegam no canal de entrada do roteador. Ele constitudo por um buffer FIFO com
capacidade de armazenar p flits de n+2 bits.

Internamente, o bloco IB organizado conforme o modelo PC-PO


(parte controle parte operativa). Na Figura A.3, apresentada a estrutura interna da
PO do buffer e os sinais da interface PC-PO. A PO constituda por um conjunto de
registradores paralelo-paralelo identificados pela posio de 0 a p1, por um
multiplexador de seleo de sada e por uma porta lgica que implementa a funo de
escrita nos registradores.

din dout
wr rok
wok rd

Input Buffer

din 0 1 p-1 n+2


n+2 0

ena

dout
n+2

rd_ptr
Parte
wr wr rok rok
Controle
wok wok rd rd

FIGURA A.3 Estrutura do bloco IB.


221

A PC do buffer FIFO baseada na mquina de estados de Moore ilustrada na


Figura A.4. Ela possui p+1 estados, numerados de 0 a p (onde p a profundidade do
buffer), sendo que o estado 0 representa a condio de buffer vazio e o estado p
representa a condio de buffer cheio. O estado i, por sua vez, representa os p-1 estados
intermedirios, nos quais existem ao menos uma posio ocupada e uma posio livre
(onde i varia de 1 a p-1). Em um buffer com quatro posies, por exemplo, a mquina
de estados tem trs estados intermedirios representando as condies nas quais existem
uma, duas ou trs posies ocupadas (ou seja, trs, duas ou uma posio livre,
respectivamente).

/wr Estado 0

wr /wr.rd

Estado i wr.rd

wr./rd /wr.rd

/rd Estado p wr.rd

onde: i = 1 a p-1

FIGURA A.4 Mquina de estados do buffer FIFO.


Na Tabela A.4, so apresentados os valores das sadas da PC para cada um dos
trs tipos de estado. A sada wok sinaliza a disponibilidade de espao no buffer para a
escrita de novos dados, enquanto que a sada rok sinaliza a disponibilidade de um dado
para ser lido do buffer. J a sada rd_ptr determina o registrador a ser conectado na
sada atravs do multiplexador. Destaca-se que, no estado p, o sinal wok depender da
ocorrncia de um sinal de rd durante o estado. Em outras palavras, na ausncia de rd, o
estado de wok igual a 0 e no permitida a escrita no buffer. Contudo se rd igual a 1,
ento wok tambm ser igual a 1, sinalizando a escrita do dado na entrada do buffer.
TABELA A.4 Sadas da mquina de estados do buffer FIFO.
Sadas
Estado
wok rok rd_ptr
0 1 0 0
i 1 1 i1
p rd 1 p1

Quanto arquitetura utilizada neste buffer FIFO, destaca-se que existem


solues mais econmicas se for considerada uma implementao full-custom
[RAB 96], como, por exemplo, a implementao de buffers baseados em clulas de
memria SRAM (Static Random Access Memory). Contudo, para a sntese em FPGA, a
arquitetura descrita acima se constitui em uma das poucas alternativas de
implementao. Alm dessa arquitetura, tambm foi implementada uma verso baseada
em fila circular, a qual, porm, no descrita neste texto.
222

A.1.3 O bloco Input Controller


O bloco Input Controller (IC) implementa o algoritmo de roteamento
apresentado na seo 5.5. Sua estrutura representada pelo circuito da Figura A.5. A
partir da sinalizao de disponibilidade de dados no bloco IB (rok = 1), o bloco IC
verifica a presena de um cabealho (bop = 1 e header_present = 1) e extrai os campos
Xdir, Xmod, Ydir e Ymod necessrios ao roteamento do pacote. Se Xmod for no nulo, o
roteamento realizado na direo X. Caso contrrio e se Ymod for diferente de zero, o
roteamento realizado na direo Y. Porm, se tanto Xmod quando Ymod forem nulos,
o pacote encaminhado pela porta local.

Um pacote a ser roteado na direo X deve ser encaminhado pela porta leste
(reqE = 1), se Xdir for nulo, ou pela porta oeste (reqW = 1), se Xdir for igual a 1. De
forma anloga, um pacote a ser roteado na direo Y deve ser encaminhado pela porta
norte (reqN = 1), se Ydir for nulo, ou pela porta sul (reqS = 1), se Ydir for igual a 1.
Alm disso, se o pacote for encaminhado nas direes X ou Y, o campo de mdulo
dessas direes decrementado para computar o passo de roteamento executado.

O valor de cada campo de direo pode ser entendido como um bit de sinal. Para
direes positivas, como leste ou norte (+X ou +Y, respectivamente), o campo de
direo igual a 0. Para direes negativas, como oeste ou sul (X ou Y,
respectivamente), o campo de direo igual a 1.
din reqL
rok reqN
reqE
reqS 1
Input reqW
dout
Controller
1

updateX

reqL

(m-2)/2
Xmod Xmod_null reqE

Xdir

reqW

din dout
bop
header_present
rok
rok reqS
Ydir

(m-2)/2
Ymod Ymod_null reqN

updateY

FIGURA A.5 Estrutura do bloco IC.


223

A.1.4 O bloco Input Rd Switch


O bloco Input Rd Switch (IRS), visto na Figura A .6.a, trata-se de um circuito
multiplexador 41 de um bit. Suas entradas de dado recebem os sinais de comando de
leitura rdi de quatro canais de sada do roteador (i varia de 0 a 3), e suas entradas de
seleo recebem sinais de confirmao gnti enviados por esses canais de sada. Com
base no valor dos sinais de seleo, o bloco IRS conecta o sinal rd do canal de sada
requisitado pelo bloco IC ao sinal rd do bloco IB.
Visando a sntese do modelo em FPGAs da Altera, os quais no dispem de
buffers tri-state internos, a estrutura do multiplexador do bloco IRS no modelo VHDL
foi descrita com base em um arranjo de primitivas (ou portas) AND-OR. O circuito
equivalente a esse cdigo ilustrado na Figura A .6.b.
Contudo, o modelo VHDL pode se facilmente portado para tecnologias que
disponham de buffers tri-state internos ou outras estruturas para a construo de
multiplexadores (como transistores de passagem, por exemplo). Basicamente,
necessrio eliminar a porta OR, trocar as primitivas AND por funes que instanciam
buffers tri-state e incluir uma outra funo para instanciar um buffer tri-state que
garanta que a sada do multiplexador seja mantida em 0 quando nenhum dos outros
buffers estiver habilitado, como ilustrado na Figura A .6.c. Do contrrio a sada ficaria
flutuante. Alternativamente, o ltimo buffer tri-state pode ser substitudo por um
resistor de pull-up e um inversor.

gnt0
gnt1
rd rd0 gnt2
rd1
rd2 gnt3
rd3
gnt0 rd0
gnt1
gnt2 rd1
Input rd
gnt3 rd2
Rd Switch rd3

(a)

gnt0 gnt0
rd0 rd0
gnt0
rd0
VCC
gnt1 gnt1
rd1 rd1
gnt1
rd rd1 rd rd
gnt2 gnt2
rd2 rd2
gnt2
rd2
gnt3 gnt3
rd3 rd3
gnt3
rd3

(b) (c) (d)


FIGURA A.6 Estrutura do bloco IRS: (a) multiplexador 4x1; (b) arranjo AND-OR;
(c) estrutura baseada em buffers tri-state; (d) estrutura baseada em buffers tri-state com
resistor de pull-up.
224

A.2 O Mdulo Output Channel

Na Figura A .7, apresentado o smbolo do mdulo Output Channel (que


representa a sua interface) e os blocos que compem sua estrutura interna: Output
Controller (OC), Output Data Switch (ODS), Output Rok Switch (ORS) e Output Flow
Controller (OFC). A funcionalidade desses blocos j foi descrita na subseo 5.10.2.

x_din0 out_data
x_din1 out_val
x_din2 out_ack
x_din3
x_rok0
x_rok1
x_rok2
x_rok3
x_ack
x_req0
x_req1
x_req2
x_req3
x_gnt0
x_gnt1
x_gnt2 Output
x_gnt3
Channel

x_din0 din0 out_data out_data


x_din1 din1
x_din2 din2
x_din3 din3
gnt0
gnt1
gnt2 Output
gnt3
x_rd
Data Switch
rok val out_val
rd ack out_ack
x_req0 req0 eop Output
x_req1 req1 rd
x_req2 req2 Flow Controller
x_req3 req3
x_gnt0 gnt0
x_gnt1 gnt1
x_gnt2 gnt2
x_gnt3 gnt3 Output
Controller

gnt0 rok
gnt1
gnt2
gnt3
x_rok0 rok0
x_rok1 rok1
x_rok2 rok2 Output
x_rok3 rok3
Rok Switch

FIGURA A.7 Interface e estrutura do mdulo Output Channel.

Conforme foi apresentado na subseo 5.10.2, os nomes dos sinais conectados


interface externa do roteador utilizam o prefixo out_, enquanto que os sinais conectados
aos mdulos de entrada do roteador utilizam o prefixo x_. Na Tabela A.5, apresentada
a descrio (largura e definio) de cada um dos sinais que compem a interface do
mdulo Output Channel.
225

TABELA A.5 Definio dos sinais da interface do mdulo Output Channel.


Nome Largura Definio
out_data (n+2) bits Canal de dados do canal de sada (inclui os bits eop e bop)
out _val 1 bit Validao de flit no canal de dados do canal de sada
out _ack 1 bit Reconhecimento da transferncia do flit pelo canal de sada
x_rd 1 bit Comando de leitura para o canal de entrada selecionado
x_din0 (n+2) bits Canal de dados do canal de entrada 0 com cabealho atualizado
x_din1 (n+2) bits Canal de dados do canal de entrada 1 com cabealho atualizado
x_din2 (n+2) bits Canal de dados do canal de entrada 2 com cabealho atualizado
x_din3 (n+2) bits Canal de dados do canal de entrada 3 com cabealho atualizado
x_rok0 1 bit Informa a disponibilidade de um flit a ser lido do IB do canal 0
x_rok1 1 bit Informa a disponibilidade de um flit a ser lido do IB do canal 1
x_rok2 1 bit Informa a disponibilidade de um flit a ser lido do IB do canal 2
x_rok3 1 bit Informa a disponibilidade de um flit a ser lido do IB do canal 3
x_req0 1 bit Requisio de uso do canal de sada pelo canal de entrada 0
x_req1 1 bit Requisio de uso do canal de sada pelo canal de entrada 1
x_req2 1 bit Requisio de uso do canal de sada pelo canal de entrada 2
x_req3 1 bit Requisio de uso do canal de sada pelo canal de entrada 3
x_gnt0 1 bit Confirmao de seleo do canal de sada ao canal requisitante 0
x_gnt1 1 bit Confirmao de seleo do canal de sada ao canal requisitante 1
x_gnt2 1 bit Confirmao de seleo do canal de sada ao canal requisitante 2
x_gnt3 1 bit Confirmao de seleo do canal de sada ao canal requisitante 3

Nas tabelas a seguir, so listados os significados dos sinais com ndice genrico
para cada instncia do mdulo Output Channel. Como pode ser observado na
Tabela A.6, para a instncia Lout, por exemplo, x_din0 e x_rok0 correspondem,
respectivamente, aos sinais Ndata e Nrok oriundos do bloco IB do canal de entrada Nin.

TABELA A.6 Significado de x_dini e x_roki para cada instncia de Output Channel.
Entradas
Instncia
x_din0 x_din1 x_din2 x_din3 x_rok0 x_rok1 x_rok2 x_rok3
Lout Ndata Edata Sdata Wdata Nrok Erok Srok Wrok
Nout Ldata Edata Sdata Wdata Lrok Erok Srok Wrok
Eout Ldata Ndata Sdata Wdata Lrok Nrok Srok Wrok
Sout Ldata Ndata Edata Wdata Lrok Nrok Erok Wrok
Wout Ldata Ndata Edata Sdata Lrok Nrok Erok Srok

De forma anloga, pode-se observar, na Tabela A.7, que, para a instncia Lout,
os sinais x_req0 e x_gnt0 correspondem, respectivamente, aos sinais NreqL e LgntN.
226

TABELA A.7 Significado de x_reqi e x_gnti para cada instncia de Output Channel.
Entradas Sadas
Instncia
x_req0 x_req1 x_req2 x_req3 x_gnt0 x_gnt1 x_gnt2 x_gnt3
Lout NreqL EreqL SreqL WreqL LgntN LgntE LgntS LgntW
Nout LreqN EreqN SreqN WeqN NgntL NgntE NgntS NgntW
Eout LreqE NreqE SReqE WreqE EgntL EgntN EgntS EgntW
Sout LreqS NreqS EreqS WreqS SgntL SgntN SgntE SgntW
Wout LreqW NreqW EreqW SreqW WgntL WgntN WgntE WgntS

A.2.1 O bloco Output Data Switch


O bloco Output Data Switch (ODS) conecta a sada de dado do bloco IB do
canal de entrada selecionado ao canal de dados do canal de sada. Ele recebe sinais de
confirmao de seleo do bloco OC e utiliza esses sinais para selecionar um dos canais
de entrada. Na Figura A .8, ilustrada a estrutura do bloco ODS, a qual composta por
n+2 multiplexadores 41 de 1 bit. A implementao desses multiplexadores varia com a
tecnologia alvo disponvel e, conforme foi visto na descrio do bloco IRS, pode ser
baseada em arranjos AND-OR, buffers tri-state ou transistores de passagem.

gnt0
din0 out_data
din1 gnt1
din2 gnt2
din3
gnt3
gnt0
gnt1
gnt2 Output din0(0)
gnt3
Data Switch din1(0)
out_data(0)
din2(0)
din3(0)

din0(1)
din1(1)
out_data(1)
din2(1)
din3(1)

din0(n+1)
din1(n+1)
out_data(n+1)
din2(n+1)
din3(n+1)

FIGURA A.8 Estrutura do bloco ODS.

Destaca-se que, no caso de canais de dado, no h restries quanto flutuao


do sinais de sada out_data. Contudo, para sinais de controle, essa flutuao deve ser
evitada, j que os mesmos devem ter um valor estvel definido o tempo inteiro.
227

A.2.2 O bloco Output Rok Switch


O bloco Output Rok Switch (ORS) seleciona o sinal rok do bloco IB do canal de
entrada conectado ao canal de sada. Com base nos sinais de confirmao de seleo
recebidos do bloco OC, ele seleciona o sinal rok do canal de entrada contemplado com a
autorizao de uso do canal de sada. Sua estrutura, mostrada na Figura A .9, baseada
em um multiplexador anlogo ao apresentado para o bloco IRS. Da mesma que para os
blocos IRS e ODS, a implementao desse multiplexador varia com a tecnologia alvo
disponvel, podendo ser baseada em arranjos AND-OR, buffers tri-state ou transistores
de passagem. Deve ser garantido um nvel estvel em 0 no sinal rok quando nenhum
sinal de confirmao ativado
gnt0
gnt1
gnt0 rok
gnt1 gnt2
gnt2 gnt3
gnt3
rok0
rok1 rok0
rok2 Output rok1
rok3 rok
rok2
Rok Switch
rok3

FIGURA A.9 Estrutura do bloco ORS.

A.2.3 O bloco Output Flow Controller


O bloco Output Flow Controller (OFC) realiza o controle do fluxo dos flits
emitidos atravs do canal de sada. Ele responsvel por adaptar o protocolo o FIFO ao
protocolo de handshake do enlace SoCIN. Porm, como do ponto de vista do emissor,
as temporizaes dos sinais dos sinais de controle de fluxo no protocolo FIFO (rok e rd)
e handshake (val e ack) so idnticas, o bloco OFC implementa apenas um par de fios
que realizam a conexo direta entre os sinais rd e val e os sinais rok e ack.

rok val
rd ack
Output
Flow Controller

rok val
rd ack

FIGURA A.10 Estrutura do bloco OFC.

Embora a adaptao dos protocolos FIFO e de handshake no bloco OFC no


implemente nenhuma lgica, o que poderia sugerir a irrelevncia desse bloco, ele foi
criado pensando-se na implementao de tcnicas alternativas de controle de fluxo que
requeiram a implementao de alguma lgica. Por exemplo, em uma abordagem de
controle de fluxo baseada em crditos, o bloco OFC implementaria um contador de
crditos para contabilizar o espao disponvel no bloco IB do canal de entrada
conectado ao outro extremo do enlace SoCIN.
228

A.2.4 O bloco Output Controller


O bloco Output Controller (OC) recebe as requisies oriundas dos canais de
entrada, seleciona uma das requisies e envia um sinal de confirmao ao canal de
entrada selecionado. Esse sinal de confirmao utilizado como sinal de comando pelos
blocos de chaveamento (ODS, ORS e IRS) para efetuar a conexo do canal de dados e
dos sinais de controle de fluxo do bloco IB com o canal de sada solicitado. Uma vez
estabelecida essa conexo, ela mantida at que o ltimo flit do pacote seja enviado e
sua entrega seja confirmada pelo receptor. O bloco OC monitora a linhas eop e rd para
avaliar essa condio, pois a ativao do bit eop sinaliza o envio do terminador do
pacote e a posterior ativao do sinal rd sinaliza que o terminador foi transferido com
sucesso. Quando essa seqncia de sinais detectada, o bloco OC desativa a linha de
confirmao que havia estabelecido a conexo corrente.

O bloco OC organizado segundo o modelo PC-PO (Figura A .11) e sua parte


operativa (PO) constituda por um rbitro Round-Robin do tipo exaustivo [GUT 99] e
por um circuito de registro dos sinais de confirmao. J a parte controle (PC) consiste
de uma mquina de estados que monitora as linhas de requisio e o fluxo dos dados no
canal de sada de modo a comandar a atualizao do apontador da fila do rbitro e do
registrador de sinais de confirmao.

Parte Operativa
nxt_gnt
req0 rbitro Registrador gnt0
req1 gnt1
Round-Robin de
req2 gnt2
req3 (Exaustivo) Confirmao gnt3

req_present selecting granting


eop eop
Parte Controle
rd rd

FIGURA A.11 Estrutura do bloco OC.

A estrutura detalhada da parte operativa do bloco OC ilustrada na Figura A.12,


na qual observa-se a organizao do rbitro e do registrador de confirmao. O rbitro
recebe quatro sinais de requisio (reqi, onde i varia de 0 a 3) enviados pelos blocos IC
dos canais de entrada que podem ser conectados ao canal de sada ao qual o bloco OC
est associado. Esses sinais de requisio so encaminhados a quatro codificadores de
prioridade esttica (CPEs), sendo rotacionados na entrada desses codificadores de modo
a gerar critrios de prioridade diferentes, cujas ordens de prioridade so indicadas pelo
nome do sinal de sada de cada CPE. Por exemplo, a sada do primeiro CPE
denominada req0123, pois, para esse CPE, o sinal req0 recebe a maior prioridade e o
sinal req3 recebe a menor prioridade. De maneira semelhante, a sada do terceiro CPE
denominada req2301, sendo que req2 recebe a maior prioridade e req1 recebe a menor.
Ao mesmo tempo, o rbitro aplica uma lgica OU sobre os sinais de requisio para
gerar o sinal req_present que enviado parte controle.
229

Aps serem codificadas, as sadas dos CPEs so encaminhadas para um


multiplexador que seleciona o CPE a ser utilizado com base em um ponteiro que indica
a requisio que ter prioridade mxima na arbitragem corrente. A sada do
multiplexador contm o ndice da requisio selecionada (sel), o qual encaminhado a
um decodificador que gera um cdigo de confirmao de seleo (nxt_gnt). Esse cdigo
ento armazenado em um registrador (gnt_reg) e mantido at o prximo ciclo de
arbitragem. A sada desse registrador conectada s sadas gnti (onde i varia de 0 a 3)
quando o sinal granting da PC igual a 1. Do contrrio, todas as sadas gnti so
mantidas em 0, sinalizando que nenhum canal de entrada est autorizado a ser
conectado ao canal de sada associado ao bloco OC.
req0 eop
req1 rd CPE
req2
req3
gnt0
gnt1
gnt2
gnt3 Output
Controller

req0 req0123 2
CPE 0

Decodificador
req1 req1230 2
CPE 1
sel 2 nxt_gnt
gnt0
req2301 2 gnt1
req2 CPE 2 4
gnt2
gnt3
req3012 2
sel1 sel0
ena
gnt_reg
CPE 3
4 4
req3 2 1 gnt

ena
round_ptr_reg 0
4
2
nxt_round_ptr

req_present selecting granting


eop eop
Parte Controle
rd rd

FIGURA A.12 Estrutura da parte operativa do bloco OC.

O ponteiro que seleciona o CPE a ser utilizado na arbitragem mantido no


registrador round_ptr_reg. Esse registrador atualizado a cada ciclo de arbitragem
quando a sada selecting da PC igual a 1. O novo valor desse ponteiro (nxt_round_ptr)
calculado de modo que a requisio selecionada na arbitragem corrente (indicada pelo
ndice sel) seja a de menor prioridade na arbitragem seguinte. Por exemplo, se
requisio selecionada em um ciclo de arbitragem a req2, no ciclo de arbitragem
seguinte, o valor do round_ptr_reg ser igual a 3 e o CPE a ser utilizado ser aquele
cuja sada denominada req3012, no qual req2 tem prioridade mnima [ESP 2002].

A parte controle do bloco OC baseada na mquina de estados de Moore


ilustrada na Figura A .13, a qual possui quatro estados denominados S_IDLE,
S_ARB, S_WAIT_EOP e S_WAIT_LAST_RD. Ela inicializada no estado S_IDLE e
nele se mantm at que o sinal req_present seja ativado pela chegada de alguma
requisio. Quando isso ocorre, a mquina transita para o estado S_ARB, no qual
ela ativa a sada selecting para notificar a parte operativa sobre a execuo de um ciclo
de arbitragem e comandar os registradores round_ptr_reg e gnt_reg para atualizarem
seus estados. A mquina permanece nesse estado por um ciclo de relgio e ento
transita de maneira incondicional para o estado S_WAIT_EOP, ativando a sada
granting. Esse sinal ativa o multiplexador que encaminha a sada do registrador gnt_reg
230

s sadas gnti, as quais comandam as chaves que conectam o canal de entrada


selecionado ao canal de sada. A mquina se mantm nesse estado at que o terminador
do pacote passe pelo canal de sada, o que sinalizado pela ativao do bit de
enquadramento eop. Se, simultaneamente a essa condio, ativado o sinal rd,
indicando que o terminador foi entregue ao receptor, a mquina retorna ao estado inicial
(S_IDLE). Caso contrrio, ela transita para o estado S_WAIT_LAST_RD, no qual se
mantm at que rd seja ativado para ento retornar ao estado S_IDLE. Uma vez que a
mquina entra no estado S_WAIT_EOP, a sada granting mantida ativada at que a
mquina retorne ao estado inicial, conforme indicado na Tabela A.8.

/req_present S_IDLE

req_present

S_ARB

eop & rd

/eop S_WAIT_EOP
rd
eop & /rd

/rd S_WAIT_LAST_RD

FIGURA A.13 Mquina de estados da parte controle do bloco OC.

TABELA A.8 Sadas da mquina de estados do bloco OC.


Sadas
Estado
selecting Granting
S_IDLE 0 0
S_ARB 1 0
S_WAIT_EOP 0 1
S_WAIT_LAST_RD 0 1
231

Apncice B Arquivos do CD-ROM

Na Tabela B.1 so descritos os arquivos contidos no CD-ROM em anexo.

TABELA B.1 Arquivos contidos no CD-ROM.


Diretrio Nome Descrio
SoCIN socin_grid_2x2.vhd Rede em grelha 2x2
RASoC rasoc.vhd Roteador RASoC
RASoC input_channel.vhd Canal de entrada
RASoC input_flow_controller.vhd Controlador de fluxo de entrada
RASoC input_buffer.vhd Buffer de entrada
RASoC input_controller.vhd Controlador de entrada
RASoC input_rd_switch.vhd Seletor de comando de leitura
RASoC output_channel.vhd Canal de sada
RASoC output_flow_controller.vhd Controlador de fluxo de sada
RASoC output_controller.vhd Controlador de sada
RASoC output_data_switch.vhd Seletor de comando de dado
RASoC output_rok_switch.vhd Selector de comando de rok
Traffic_Generator traffic_generator_package.vhd Pacote com definies de tipos
Traffic_Generator traffic_generator_01.vhd Gerador de mltiplos padres de trfego
Traffic_Generator traffic_generator_single.vhd Gerador de um nico padro de trfego
Traffic_Generator mux_Nx1.vhd Seletor de padro de trfego
Traffic_Generator ripple_rra.vhd rbitro round-robin
Traffic_Generator ripple_ppe.vhd Codificador de prioridades programvel
Traffic_Generator ripple_cell.vhd Clula de arbitragem
Traffic_Generator rrd.vhd Deslocador de bits
SoC_SoCIN soc_socin_grid_2x2.vhd Grelha 2x2 e quatro geradores de trfego
232
233

Referncias

[ALT 2003] ALTERA. Introduction to Quartus II. ver. 3.0. San Jose, 2003. 192 p.

[ALT 2003a] ALTERA. FLEX 10K embedded programmable logic family data
sheet. ver. 4.3. San Jose, 2003. 128 p.

[AND 2001] ANDRIAHANTENAINA, A.; GREINER, A. S.P.I.N. 2001. 65 f.


Relatrio de Pesquisa (Doutorado) Laboratoire dInformatique Paris 6,
Universit Pierre et Marie Curie, Paris.

[AND 2003] ANDRIAHANTENAINA, A. et al. SPIN: a scalable, packet switched on-


chip micro-network. In: DESIGN, AUTOMATION AND TEST IN
EUROPE CONFERENCE AND EXIBITION, DATE, 2003, Munich.
Proceedings... Los Alamitos: IEEE Computer Society, 2003. p. 70-73.

[ARM 2003] ARM. AMBA: the de facto standard for on-chip bus. Disponvel em:
<http://www.arm.com/armtech/AMBA?OpenDocument>. Acesso em: 12
maio 2003.

[ARV 90] ARVIND; NIKHIL, R. S. Executing a program on the MIT tagged token
dataflow architecture. IEEE Transactions on Computers, New York,
v. 39, n. 3, p. 300-318, Mar. 1990.

[ASH 98] ASHRAF, F. et al. Introduction to routing in multicomputer networks.


ACM Computer Architecture News, New York, v. 26, n. 5, p. 14-21,
Dec. 1998.

[AUS 2001] AUSTRIAMICROSYSTEMS. 0.35 m CMOS design rules. Austria,


2001. 30 p.

[AUS 2001a] AUSTRIAMICROSYSTEMS. 0.35 m CMOS standard cell


databook. Austria, 2001. 338 p.

[AUS 2001b] AUSTRIAMICROSYSTEMS. 0.35 m CMOS process parameters.


Austria, 2001. 55 p.

[BAR 99] BARUA, R. et al. Maps: A compiler-managed memory system for raw
machines. In: INTERNATIONAL SYMPOSIUM ON COMPUTER
ARCHITECTURE, ISCA, 26., 1999, Atlanta. Proceedings... Los
Alamitos: IEEE Computer Society, 1999. p. 4-15.

[BEC 2003] BECK FILHO, A. C. S.; CARRO, L. Comparao entre diferentes


topologias de comunicao entre SOC. 2003. 62 f. Relatrio de
Pesquisa (Mestrado) Programa de Ps-Graduao em Computao,
Universidade Federal do Rio Grande do Sul, Porto Alegre, 2003.

[BEE 94] BEECROFT, J. et al. Meiko CS-2 interconnect elan elite design. Parallel
Computing, [S.l.], v. 20, n. 10-11, p. 1627-1638, Nov. 1994.
234

[BEN 2001] BENINI, L.; DE MICHELI, G. Powering networks on chips. In:


INTERNATIONAL SYMPOSIUM ON SYSTEM SYNTHESIS, ISSS,
14., Montreal, 2001. Proceedings... Los Alamitos: IEEE Computer
Society , 2002. p.33-38.

[BEN 2002] BENINI, L.; DE MICHELI, G. Networks on chips: a new SoC paradigm.
IEEE Computer, [S.l.], v. 35, n. 1, p. 70-78, Jan. 2002.

[BER 2000] BERGAMASCHI, R. A.; LEE, W. R. Designing systems-on-chip using


cores. In: DESIGN AUTOMATION CONFERENCE, DAC, 37., 2000,
Los Angeles. Proceedings... New York: ACM Press, 2000. p. 420-425.

[BER 2002] BERGAMASCHI, R. A. The A to Z of SoCs. 2002. 79 transparncias,


color., 270 mm 297 mm.

[BOD 95] BODEN, N. J. et al. Myrinet: a gigabit-per-second local area network.


IEEE Micro, [S.l.], v. 15, n. 1, p. 29-36, Feb. 1995.

[BOR 90] BORKAR, S. et al. Supporting systolic and memory communication in


iWarp. In: INTERNATIONAL. SYMPOSIUM ON COMPUTER
ARCHITECTURE, ISCA, 17., 1990, Seatle. Proceedings... Los
Alamitos: IEEE Computer Society, 1990. p. 70-81.

[BRI 2002] BRINKMANN, A. et al. On-chip interconnects for next generation


system-on-chips. In: INTERNATIONAL ASIC/SOC CONFERENCE,
15., 2002, Rochester. Proceedings... Piscataway: IEEE Circuits and
Systems Society, 2002. p. 211-215.

[CAR 2001] CARRO, L. Projeto e protipao de sistemas. Porto Alegre: Ed. da


UFRGS, 2001. 171 p.

[CAR 99] CARRO, L. Memrias embarcadas. In: Escola de Microeletnica da


SBC-Sul, 1., Pelotas, 1999. Livro Texto. Porto Alegre: Instituto de
Informtica da UFRGS, 1999. p. 201-210.

[CAS 2002] CARDOSO, R. S. et al. Analysis of applications in a grid interconnection


network. In: SOUTH SYMPOSIUM ON MICROELECTRONICS, SIM,
17., 2002, Gramado. Proceedings... Porto Alegre: Instituto de
Informtica da UFRGS, 2002. p. 15-18.

[CAJ 96] CARBONARO, J.; VERHOORN, F. Cavallino: the teraflops router and
NIC. In: HOT INTERCONNECTS SYMPOSIUM, 4., 1996, Stanford.
Proceedings Stanford: Stanford University, Aug.1996. p. 157-166.

[CIR 2003] CIRCUIT MULTI-PROJETS. Manufacturing of ICs, Mems and


MCMs: reference manual. Grenoble, 2003. Disponvel em:
<http://cmp.imag.fr/CMPMan.html>. Acesso em: 15 mar. 2003.

[CLA 73] CLARE, C. C. Designing logic systems using state machines. New
York: McGraw-Hill, 1973.
235

[COR 2003] CORRA, E. et al. Testing the wrappers of a network on chip: a case
study. In: LATIN-AMERICAN TEST WORKSHOP, LATW, 4., Natal,
2003. Proceedings... Los Alamitos: IEEE Computer Society, 2003. p.
16-19.

[COT 2003] COTA, E. et al. The impact of NoC reuse on the testing of core-based
systems. In: VLSI TEST SYMPOSIUM, VTS, 21., Napa Valley Marriot,
2003. Proceedings... Los Alamitos: IEEE Computer Society , 2003.
p. 128-133.

[CUL 97] CULLER, D.; GUPTA, A.; SINGH, J. P. Parallel computer


architecture: a hardware software approach. Los Altos: Morgan
Kaufmann, 1998. 1100 p.

[DAL 2001] DALLY, W. J.; TOWLES, B. Route packets, not wires: on-chip
interconnection networks. In: DESIGN AUTOMATION
CONFERENCE, DAC, 38., LasVegas, 2001. Proceedings... Los
Alamitos: IEEE Computer Society Press, 2002. p. 684-689.

[DAL 86] DALLY, W. J.; SEITZ, C. L. The torus routing chip. Journal of
Distributed Computing, [S.l.], v. 1, n. 3, p. 187-196, Oct. 1986.

[DAL 87] DALLY, W. J.; SEITZ, C. L. Deadlock-free message routing in


multiprocessors interconnection networks. IEEE Transactions on
Computers, New York, v. C-36, n. 5, p. 547-553, May 1987.

[DAL 91] DALLY, W. J. Express cubes: improving the performance of k-ary n-


cube interconnection networks. IEEE Transactions on Computers,
New York, v. 40, n. 9, p. 1016-1023, Sept. 1991.

[DAV 83] DAVIO, M.; DESCHAMPS, J. P.; THAYSE, A. Machines


algorithmiques. Lausanne: Presses Polytechniques Romandes, 1983.

[DEM 2001] DEMMELER, T.; GIUSTO, P. A. Universal communication model for


an automotive system integration platform. In: DESIGN,
AUTOMATION AND TEST IN EUROPE CONFERENCE AND
EXHIBITION, DATE, Munich, 2001. Proceedings... Los Alamitos:
IEEE Computer Society, 2001. p. 47-53.

[DOR 2000] DORNELES, R. V. et al. Parallel solution for shallow water equations
using data decomposition. In: WORKSHOP DE SISTEMAS
DISTRIBUDOS Y PARALELISMO, WSDP, 4., 2000, Santiago.
Memorias... [S.l.: s.n], 2000. 1 CD-ROM.

[DOR 2000a] DORNELES, R. V. et al. PC cluster implementation of a mass transport


two-dimensional model. In: SYMPOSIUM ON COMPUTER
ARCHITECTURE AND HIGH PERFORMANCE COMPUTING,
SBAC, 12., 2000, So Pedro. Proceedings... So Carlos: UFSCar, 2000.
p. 191-198.
236

[DUA 97] DUATO, J.; YALAMANCHILI, S; NI, L. Interconnection networks:


an engineering approach . Los Alamitos: IEEE Computer Society, 1997.
515 p.

[DUT 2001] DUTTA, S.; JENSEN, R.; RIECKMANN, A. Viper: a multiprocessor


SOC for advanced set-top box and digital tv systems. IEEE Design and
Test of Computers, [S.l.], v. 18, n. 5, p. 21-31, Sept.-Oct. 2001.

[ESP 2002] ESPRITO SANTO, F. G. M.; ZEFERINO, C. A. Projeto e avaliao de


rbitros para redes-em-chip. Hfen, Uruguaiana, v. 26, n. 49/50, p. 81-86,
2002.

[FLE 80] FLETCHER, W. An engineering aproach to digital design. Englewodd


Cliffs: Prentice Hall, 1980.

[GAL 97] GALLES, M. Spider: a high speed network interconnect. IEEE Micro,
[S.l.], v. 17, n. 1, p. 34-39, Jan.-Feb. 1997.

[GLA 92] GLASS, C. J.; NI, L. M. The Turn Model for adaptive routing. In:
INTERNATIONAL SYMPOSIUM ON COMPUTER
ARCHITECTURE, ISCA, 19., 1992, Gold Coast. Proceedings... Los
Alamitos: IEEE Computer Societ, 1992. p. 278-287.

[GRE 2001] GREINER, A. Comment crire un modle CASS? Comment le


dboguer?: petit manuel a lusage des debutants. ver. 0.1. Paris:
Universit Pierre et Marie Curie, Jan. 2001. 7p.

[GUE 2000] GUERRIER, P. Un reseau d'interconnexion pour systmes intgrs.


2000. 146 f. Tese (Doutorado) Laboratoire dInformatique Paris 6,
Universit Pierre et Marie Curie, Paris, 2002.

[GUE 2000a] GUERRIER, P.; GREINER, A. A generic architecture for on-chip


packet-switched interconnections. In: DESIGN, AUTOMATION AND
TEST IN EUROPE CONFERENCE AND EXIBITION, DATE, 2000,
Paris. Proceedings... Los Alamitos, IEEE Computer Society Press, 2000.
p. 250-256.

[GUE 99] GUERRIER, P.; GREINER, A. A scalable architecure for system-on-


chip interconnections. In: SOPHIA-ANTIPOLIS MICRO-
ELECTRONICS CONFERENCE, SAME, 1999, France. Proceedings
Sophia Antipolis: [s.n.], 1999. p. 90-93.

[GUP 97] GUPTA, R. K.; ZORIAN, Y. Introducing core-based system design.


IEEE Design & Test of Computers, [S.l.], v. 14, n. 4, p. 15-25, Oct.-
Dec. 1997.

[GUR 85] GURD, J. et al. The Manchester prototype dataflow computer.


Communications of the ACM, New York, v. 28, n. 1, p. 34-53,
Jan. 1985.
237

[GUR 87] GURD, J. et al. The Manchester dataflow computing system.


In: DONGARRA, J. J. (Ed.) Experimental parallel computing systems,
Amsterdam: North-Holland, 1987. p. 177-219.

[GUT 99] GUPTA, P.; MCKEOWN, N. Designing and implementing a fast


crossbar scheduler. IEEE Micro, [S.l.], v. 19, n. 1, p.20-28,
Jan.-Feb. 1999.

[HO 2001] HO, R.; MAI, K.; HOROWITZ, M. A. The future of wires, Proceedings
of the IEEE, [S.l.], v. 89, n. 4, p. 490-504, Apr. 2001.

[HU 2002] HU, J.; DENG, Y.; MARCULESCU, R. System-level point-to-point


communication synthesis using floorplanning information. In:
INTERNATIONAL CONFERENDE ON VLSI DESIGN, 15., 2002,
Bangalore. Proceedings... Los Alamitos: IEEE Computer Society, 2002.
p. 297-301.

[HWA 93] HWANG, K. Advanced computer architecture: parallelism,


scalability, programmability. New York: McGraw-Hill, 1993. 770 p.

[IBM 99] IBM. The CoreConnectTM bus architecture (White Paper). New
York, 1999. 8 p.

[IBM 99a] IBM. The RS/6000 SP high performance communication network.


New York. Disponvel em: <http://www.rs6000.ibm.com/resource/
technology/sp_sw1/spswp1.book_1.html>. Acesso em: 15 ago. 1999.

[IBM 99b] IBM, Interconnection Technologies for High-Performance Computing


(RS/6000 SP). In: IBM POWERparallel Technology Briefing. New
York. Disponvel em: <http://www.rs6000.ibm.com/resource/
technology/sp_sw2/spswp2_1.html>. Acesso em: 20 ago. 1999.

[ITO 2000] ITO, S. A.; CARRO, L.; JACOBI, R. P. Making Java work for
microcontroller applications. IEEE Design & Test of Computers, [S.l.],
v. 18, n. 5, p. 100-110, Sept.-Oct. 2001.

[ITR 2003] ITRS. The international technology roadmap for semiconductors.


Disponvel em: <http://public.itrs.net/>. Acesso em: 15 jun. 2003.

[KAR 2001] KARIM, A. N. F.; DEY, R. R. S. On-chip Communication architecture


for OC-768 network processors. In: DESIGN AUTOMATION
CONFERENCE, DAC, 38., LasVegas, 2001. Proceedings... New York:
ACM Press, 2001. p. 678-683.

[KAR 2002] KARIM, A. N. F.; NGUYEN, A.; DEY, R. R. S. An interconnect


architecture for networking systems on chips. IEEE Micro, [S.l.], v. 22,
n. 5, p. 36-45, Sept.-Oct. 2002.

[KER 79] KERMANI, P.; KLEINROCK, L. Virtual cut-through: a new computer


communication switching technique. Computer Network, [S.l.], v. 3,
n. 4, p.267-286, Sept. 1979.
238

[KES 93] KESSLER, R. E.; SCHWARZMEIER, J. L. Cray T3D: a new dimension


for Cray research. In: COMPCON, 1993, San Francisco. Proceedings
Los Alamitos: IEEE Computer Society, 1993. p. 176-82.

[KEU 2000] KEUTZER, K. et al. System-level design: orthogonalization of concerns


and platform-based design. IEEE Transactions on Computer-Aided
Design of Integrated Circuits, New York, v. 19, n. 12, p. 1523-1543,
Dec. 2000.

[KIM 97] KIM, J.; KIM, Y. Performance analysis and tuning for a single-chip
multiprocessor DSP. IEEE Concurrency, [S.l.], v. 5, n. 1, p. 68-79,
Jan.-Mar. 1997.

[KON 91] KONSTANTINIDOU, S.; SNYDER, L. The Chaos router: architecture


and performance. In: INTERNATIONAL SYMPOSIUM ON
COMPUTER ARCHITECTURE, ISCA, 18., 1991, Toronto.
Proceedings New York: ACM Press, 1991. p. 79-88.

[KOR 99] KORNAROS, G. et al. ATLAS I: implementing a single-chip ATM


switch with backpressure. IEEE Micro, [S.l.], v.19, n.1, p.30-41, Jan.-
Feb. 1999.

[KRE 2001] KREUTZ, M. E. et al. Anlise e seleo de redes de interconexo para


sntese de sistemas no ambiente SES. In: WORKSHOP IBERCHIP, 7.,
2001, Montevideo. Memorias... [S.l: s.n.], 2001. 1 CD-ROM.

[KRE 2001a] KREUTZ, M. E.; ZEFERINO, C. A.; SUSIN, A. A. Trends in designing


complex systems. In: MICROELECTRONICS SEMINAR, SIM, 16.,
2001, Santa Maria. Proceedings... Porto Alegre: Instituto de Informtica
da UFRGS, 2000. p. 89-94.

[KRE 2001b] KREUTZ, M. E. et al. Communication architectures for system-on-chip.


In: SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEM
DESIGN, SBCCI, 14., 2001, Pirinpolis. Proceedings... Los Alamitos:
IEEE Computer Society, 2001. p. 14-19.

[KRE 2001c] KREUTZ, M. E. et al. Anlise e seleo de redes de interconexo para


sntese de sistemas no ambiente S3E2S. Revista de Informatica Terica
e Aplicada, Porto Alegre, v. 8, n. 1, p. 83-101, 2001.

[KUM 2002] KUMAR, S. et al. A network on chip architecture and design


methodology. In: SYMPOSIUM ON VERY LARGE SCALE
INTEGRATION, Pittsburg, 2002. Proceedings... Los Alamitos: IEEE
Computer Society, 2002. p. 105-112.

[LAN 2000] LANGEN, D.; BRINKMANN, A.; RUCKERT, U. High level estimation
of the area and power consumption of on-chip interconnects. In:
INTERNATIONAL ASIC/SOC CONFERENCE, 13., 2000, Arlington.
Proceedings... Piscataway: IEEE Computer Society, 2000. p. 297-301.
239

[LAU 97] LAUDON, J.; LENOSKI; D. The SGI Origin: a ccNUMA highly
scalable server. In: INTERNATIONAL SYMPOSIUM ON COMPUTER
ARCHITECTURE, ISCA, 24., 1997, Denver. Proceedings New York:
ACM Press, 1997. p. 241-251.

[LIA 2000] LIANG, J. ; SWAMINATHAN, S.; TESSIER, R. aSOC: a scalable,


single-chip communication architecture. In: INTERNATIONAL
CONFERENCE ON PARALLEL ARCHITECTURES AND
COMPILATION TECHNIQUES, ICPACT, 2000, Philadelphia.
Proceedings... Los Alamitos: IEEE Computer Society, 2000. p. 37-46.

[MAD 97] MADISETTI, V. K.; SHEN, L. Interface design for core-based systems.
IEEE Design & Test of Computers, [S.l.], v. 14, n. 4, p. 42-51,
Oct.-Dec. 1997.

[MAT 2002] MATTOS, J. C. B.; CARRO, L. Efficient architecture for FPGA-based


microcontrollers. In: INTERNATIONAL SYMPOSIUM ON CIRCUITS
AND SYSTEMS, ISCAS, 2002, Scottsdale. Proceedings Los
Alamitos: IEEE Computer Society, 2002. v. 5, p. V-805-V-808.

[MAS 98] MATTSON, T. G.; HENRY, G. An overview of the Intel TFLOPS


supercomputer. Intel Technological Journal. Disponvel em:
<http://developer.intel.com/technology/itj/q11998/articles/art_1.htm>.
Acesso em: 13 abr. 2003.

[MET 92] METCALF, C. The NuMesh simulator. In: MIT LAB for Computer
Science, NuMesh Memo, Cambridge, n. 5, Jan. 1992.

[NI 93] NI, L. M.; McKINLEY, P. K. A survey of wormhole routing techniques


in direct networks. IEEE Computer, [S.l.], v. 26, n. 2, p. 62-76,
Feb. 1993.

[NUG 88] NUGENT, S. The iPSC/2 direct connect communications technology.


In: CONFERENCE ON HYPERCUBE CONCURRENT COMPUTERS
AND APPLICATIONS, HCCA, 3., 1988, Pasadena. Proceedings
New York: ACM Press, 1988. p. 51-59.

[OCP 2001] OCP. Open core protocol specificaction release 1.0. USA: OCP
International Partnership, 2001. 202 p.

[PAT 96] PATTERSON, D.; HENNESSY, J. L. Computer architecture: a


quantitative approach. San Francisco: Morgan Kaufmann, 1996. 760 p.

[PAU 97] PAULIN, P. et al. Embedded software in real-time signal processing


systems: application and architecture trends. Proceedings of the IEEE,
[S.l.], v. 85, n. 3, p. 419-454, Mar. 1997.

[PEH 2001] PEH, L. S.; DALLY, W. J. A delay model for router micro-architectures,
In: IEEE Micro, [S.l.], v. 21, n. 1, p.27-34, Jan.-Feb. 2001.
240

[PET 97] PETROT, F. et al. Cycle-precise core based hardware/software system


simulation with predictable event propagation, In: EUROMICRO
CONFERENCE, 23., 1997. Proceedings... Los Alamitos: IEEE
Computer Society, 1997. p.182-187.

[QUI 94] QUINN, M. J. Parallel computing: theory and practice. New York:
Mc-Graw Hill, 1994. 446 p.

[RAB 96] RABAEY, J. M. Digital integrated circuits: a design perspective. Upper


Saddle River: Prentice Hall, 1996.702 p.

[RIZ 2000] RIZZI, R. et al. Fluvial flow of the guaba river: a parallel solution for the
shallow water equations model. In: INTERNATIONAL MEETING ON
VECTOR AND PARALLEL PROCESSING, VECPAR, 4., 2000, Porto.
Proceedings... Porto: Faculdade de Engenharia da Universidade do
Porto, 2000. p. 885-896.

[ROS 93] ROSE, J.; EL GAMAL, A.; SANGIOVANNI-VINCENTELLI.


Architecture of field-programmable gate arrays. Proceedings of IEEE,
[S.l.], v. 81, n. 7, p. 1013-1029, July 1997.

[SAK 83] SAKURAI, T. Approximation of wiring delay in MOSFET LSI. IEEE


Journal of Solid-State Circuits, New York, v. 18, n. 4, p. 418-426,
1983.

[SEI 93] SEITZ, C. L.; SU, W. A family of routing and communication chips
based on