IV Congresso Tecnológico InfoBrasil - 2011
1
Modelagem de redes intrachip tridimensionais por redes de Petri
Ibiapina, W. R. 1, Silveira, J. A. N. 1, Pinheiro, A. C. 1, Castro, H. S. 1,
Barroso, G. 2, Cortez, P. C. 1, Silveira, R. J. N. 1, Coelho, A1.
1
Departamento de Engenharia de Teleinformática, Universidade Federal do Ceará, Fortaleza, Brasil
2
Departamento de Física, Universidade Federal do Ceará
Este artigo trata da modelagem de redes intrachip com múltiplos planos de roteamento através da representação em redes de Petri,
visando à criação de um parâmetro o mais próximo possível da rede almejada. O foco está na análise do algoritmo de roteamento
adotado da rede em questão, tomando como referência um modelo computacional ideal de mesmas especificações. O processo de
modelagem e análise será comentado no desenvolvimento do artigo.
Palavras Chave— Redes intrachip, roteamento, modelagem, redes de Petri
I. INTRODUÇÃO – NOCS
E
no mercado atual uma necessidade de se utilizar
circuitos eletrônicos de consumo, custo e tempo de projeto
mínimos, integração e confiabilidade máximas. Em meio a
essa demanda, surgiram circuitos integrados que condensam
um sistema completo em um único chip, chamados de
Systems-on-a-Chip, ou simplesmente SOCs [1]. E uma forma
de diminuir o tempo de projeto é interligar e reutilizar
circuitos lógicos existentes, vindo daí o uso das Networks-onChip, ou NOCs [2].
Núcleos de SOCs exigem um nível mínimo de velocidade,
qualidade de serviço e garantia de funcionamento. Caso esse
requisito não seja atendido, as conseqüências podem ser
catastróficas. Em sistemas de tempo real, esse nível mínimo é
bastante alto. Assim, tem-se o desafio de produzir uma rede
abrangendo aspectos de aumento de confiabilidade e
tolerância a falhas.
As NOCs são um paradigma emergente para comunicações
em sistemas VLSI grandes implementados em um único chip
de silício. Nesses sistemas, módulos como cores de
processador, memórias e blocos IP especializados realizam
troca de informações usando uma rede como subsistema de
“transporte público” para o tráfego dos dados.
Uma NOC pode executar tarefas paralelas, o que leva à
análise da interferência do tráfego na rede, a fim de utilizar os
métodos mais adequados para transmissão dos dados na rede.
Um estudo recente fala sobre o grande impacto no
desempenho do microprocessador causado pela variabilidade
das cargas de trabalho. Logo variabilidade é um recente
problema nas várias atividades e aplicações. Entretanto, as
possíveis aplicações futuras para NOCs ainda não são
plenamente conhecidas. [3]
XISTE
II. INTRODUÇÃO – REDES DE PETRI
Muitas vezes, pode ocorrer que seja inviável, ou mesmo
impossível, elaborar uma NOC completa sem um estudo
esquemático prévio. Assim, faz-se necessário o uso de um
modelo de especificações idênticas, ou pelo menos similares,
às da rede real pretendida. Uma representação matemática
bastante útil para tal fim é a de redes de Petri.
Utilizando lugares e transições interligadas por arcos
direcionados, pode-se definir graficamente a estrutura da rede.
Uma vantagem das redes de Petri é a possibilidade de se
construir modelos mais próximos da realidade, pois a
linguagem permite manipulação de variáveis de modo a
introduzir, interpretar, contornar ou mesmo evitar a incidência
de erros no sistema. Dessa forma, torna-se possível modelar de
forma eficiente o sistema com vários detalhes importantes, de
forma básica e com um esforço menor, além de usar essas
técnicas para a modelagem de sistemas mais complexos [4],
facilitando o entendimento da estrutura e do algoritmo de
roteamento adotados na rede e o aperfeiçoamento dos
resultados alcançados por simulação.
Figura 1 – exemplo básico de rede de Petri.
Dependendo da profundidade do problema em questão, em
alguns casos a rede de Petri tradicional pode não ser suficiente
para especificação e verificação mais precisas de um sistema.
Na figura acima, por exemplo, tem-se uma rede simples com
duas fichas no primeiro lugar. Em redes de Petri tradicionais
essas fichas são indistinguíveis, algo muito improvável numa
representação de um sistema complexo, no qual pode haver a
necessidade de se representar fichas de tipos diferentes num
mesmo lugar [5]. Assim, a união da versatilidade das redes de
Petri à necessidade de definição e manipulação de tipos de
dados resultou no advento das redes de Petri coloridas, ou
CPNs.
IV Congresso Tecnológico InfoBrasil - 2011
2
III. SOBRE O CPN TOOLS
dito, que apresenta a idéia básica por trás do algoritmo de
roteamento adotado para a NOC Thor, com desenhos
esquemáticos do modelo projetados no CPN Tools.
A ferramenta computacional utilizada foi o programa CPN
Tools, que edita, simula e analisa redes de Petri. Ele apresenta
checagem de sintaxe e geração de código simultâneas à
construção gráfica da rede e um simulador rápido que
manipula redes temporizadas e não-temporizadas com
eficiência. [6]
O CPN Tools foi criado por meio de um projeto de pesquisa
chamado CPN2000, da Universiade de Aarhus, com patrocínio
de empresas de nome mundial, como Nokia e Microsoft. [7]
1 1`0
counter
INT
n
n+1
gather
data
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
circuit
routing
high
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
planilha^^[(poz,pox,poy,paz,pax
,pay,pdz,pdx,pdy,str)]
1 1`[]
define
priority
routes
end
Sheet
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
Data
planilha
packet
routing
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
IV. TRABALHOS CORRELATOS
Figura 2 – configuração inicial da rede.
Embora seja um novo conceito em tecnologia, a análise das
NOCs já foi tema de vários outros trabalhos nos últimos anos.
Como exemplo, pode-se citar a análise off-line de
agendamento de tarefas em NOCs, proposta por Zheng Shi,
com base na comparação de atraso de fluxo em alta e baixa
prioridade. Em sua pesquisa, o autor tomou como abordagem
a previsão do comportamento da rede [8].
Outro ponto de vista muito considerado é a melhoria de
qualidade de serviço, ou QOS, por meio da inclusão de
software e/ou hardware. Em seu trabalho, M. L. Kaddachi
apresenta um protocolo de comunicação capaz de mapear
requisitos para maior QOS através de mecanismos de
sinalização. Por outro lado, o autor não menciona se houve
aumento na área da rede [9]. Yijun Liu, por sua vez, fez uso da
técnica de prioridade em canais virtuais, obtendo resultados
positivos sem aumento de hardware [10].
Apesar do bom número de pesquisas já feitas sobre NOCs,
aplicações em tempo real crítico, o principal objetivo da NOC
abordada neste artigo, não foi muito explorado. Em aplicações
dessa natureza, são necessárias análises sobre qualidade de
serviço e tolerância a falhas, pois sistemas em tempo real
apresentam restrições de funcionamento, tempo e
confiabilidade que devem ser estudadas [11].
Cada lugar e transição específicos são denominados de
forma a designar a função que desempenha no modelo. A
saber:
 Counter: faz a contagem dos pacotes de dados
(representados por fichas do tipo Data – isso será
tratado adiante) que entram na rede;
 Gather data: nesta transição, os pacotes saem dos
respectivos processadores de origem e entram numa
rota aleatoriamente determinada. Os pacotes são
armazenados em “start”;
 Define priority: aqui, os pacotes são separados pela
prioridade, aleatoriamente definida pela variável f.
Pacotes com prioridade baixa (f = 0) são mantidos na
camada central da rede (coordenada z = 1) e
armazenados em “low”. Os de prioridade alta (f = 1)
são roteados pelas camadas up e down (z = 2 ou z =
3) e alocados em “high”;
 Circuit routing / Packet routing: nestas transições é
feito o roteamento propriamente dito. O
deslocamento na rede é feito nos eixos x e y, nessa
ordem. Em “circuit routing” é feito o roteamento por
circuito (ou seja, nas camadas up e down) e em
“packet routing” é realizado o roteamento por pacote
(camada central). Ao ser alcançado o processador de
destino, o pacote é transferido para “end”;
 Routes: neste lugar, é organizada uma lista (do tipo
Sheet) de fichas Data, numa representação simples da
trajetória percorrida pelos pacotes na rede. Detalhe
importante é que somente são alocadas as fichas
referentes às transições entre roteadores, ou seja, a
troca de informações entre um roteador e seu
respectivo processador não são contadas na planilha.
Os tipos de fichas, por sua vez, seguem a seguinte
classificação:
 Priority: a prioridade dos pacotes de dados a serem
roteados, definida por um booleano de valor baixo
(low) ou alto (high);
 RotaXY: as coordenadas dos eixos x e y que
designam os roteadores de cada camada (e, por
extensão, os respectivos processadores da camada
central), definidas por dois inteiros de valor
pertencente ao intervalo [1, 4];
V. DESENVOLVIMENTO
A NOC abordada neste trabalho, denominada Thor, é uma
rede tridimensional 4x4x3, ou seja, tem três camadas de 16
roteadores arrumados na topologia mesh. Enquanto a camada
central abrange também processadores associados, nela então
sendo realizado roteamento por pacote, as camadas up
(superior) e down (inferior) apresentam somente roteadores,
nos quais a transmissão é feita por circuito.
A rede Thor também trabalha com pacotes de prioridade.
Assim, as camadas up e down são reservadas aos pacotes de
dados de alta prioridade, devido ao tempo menor de
transmissão das informações no roteamento por circuito, e a
camada central é utilizada para transmissão de dados de baixa
prioridade. Porém, independentemente da prioridade, todos os
pacotes são armazenados nos processadores da rede, iniciando
e terminando a rota, portanto, pela camada central.
A seguir temos uma explicação do modelo propriamente
IV Congresso Tecnológico InfoBrasil - 2011
3

RotaZ: a coordenada do eixo z que designa a camada
(central, up ou down) pela qual o pacote será roteado,
definida por um inteiro de valor pertencente ao
intervalo [1, 3]. Diferentemente do tipo RotaXY, os
números do tipo RotaZ não mudam de valor durante
o roteamento, pois este modelo considera a rede
ideal, não havendo a necessidade de permuta de
camadas;
 Data: o pacote de dados propriamente dito, dividido
em duas partes – um cabeçalho, o qual apresenta três
triplas ordenadas, que designam respectivamente os
roteadores inicial, atual e final da rota, e a informação
a ser roteada, que neste modelo é representada pela
string simples “dado”. Importante salientar que a
ordem do algoritmo usado é ZXY, tanto em
prioridade de deslocamento como na ordenação das
coordenadas;
 Sheet: a lista de pacotes de dados, que recebe as
fichas referentes a todo o caminho percorrido na rede.
Essa lista é única, não havendo separação por rota
(isso será mencionado mais à frente).
Nos próximos parágrafos temos uma explicação mais
detalhada do modelo.
1 1`1
counter
INT
n
n+1
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
gather
data
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
1 1`(1,4,1,1,4,1,1,3,4,”dado”)
define
priority
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
planilha^^[(poz,pox,poy,paz,pax
,pay,pdz,pdx,pdy,str)]
1 1`[]
routes
start
1`(1,a,b,1,a,b,1,c,d,"dado")
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
circuit
routing
high
end
Sheet
Data
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
packet
routing
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 3 – um pacote de dados é inserido na rede.
A transição “gather data” estará sempre habilitada, pois
precisa apenas de um inteiro n, já disponível em “counter”,
para tal. Assim, após um disparo, uma ficha do tipo Data é
alocada em “start”, e as coordenadas das triplas ordenadas da
ficha são aleatoriamente definidas. Na figura acima, a ficha é
dada por (1, 4, 1, 1, 4, 1, 1, 3, 4, “dado”). Ou seja, o pacote de
dados representado pela ficha se encontra no processador (4,
1) e deve ser enviado ao processador (3, 4). A rota que o
pacote seguirá pela rede dependerá da sua prioridade, que é
definida através da transição “define priority”. Ao ser feito o
disparo desta, vem a seguinte figura:
1 1`1
counter
INT
n
n+1
gather
data
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
1 1`(1,4,1,2,4,1,1,3,4,”dado”)
high
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
circuit
routing
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
planilha^^[(poz,pox,poy,paz,pax
,pay,pdz,pdx,pdy,str)]
1 1`[]
routes
define
priority
end
Sheet
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
packet
routing
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 4 – definida prioridade do primeiro pacote.
Data
A ficha é retirada de “start” e alocada em “high” ou “low”,
dependendo do valor da variável booleana f. No caso, o pacote
tem alta prioridade (f = high), sendo, portanto, levado a um
roteamento por circuito pela camada up ou down (note que a
coordenada z da segunda tripla ordenada, correspondente ao
roteador corrente da rota, mudou de valor para 2; caso o novo
valor seja 3, o resultado é o mesmo). A partir daí, começa o
tráfego propriamente dito do pacote de dados pela rede:
1 1`1
counter
INT
n
n+1
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
gather
data
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
1 1`(1,4,1,2,3,1,1,3,4,”dado”)
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
circuit
routing
high
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
planilha^^[(poz,pox,poy,paz,pax
,pay,pdz,pdx,pdy,str)]
1 1`[(1,4,1,2,4,1,1,3,4,”dado”)]
routes
end
define
priority
Sheet
Data
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
planilha
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
packet
routing
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 5 – roteamento do pacote de dados em andamento.
Através da transição “circuit routing”, o pacote percorre a
rota cujos extremos são os roteadores definidos pela primeira e
terceira triplas ordenadas da ficha, e seu deslocamento é feito
pelos eixos x e y, nessa ordem e sem interrupções ou rupturas
(lembrando que a rede modelada é ideal). Dessa forma, as
coordenadas x e y da segunda tripla ordenada serão
incrementadas ou decrementadas de acordo com as
coordenadas das outras duas triplas e com a ordem de
deslocamento. Tais operações são implementadas na função
“rota”. À medida que as coordenadas do roteador corrente da
rota forem mudando, as fichas contendo os valores anteriores
são alocadas em “routes”, numa planilha representada por uma
lista FIFO.
Seguindo tais especificações, ao final do tráfego se tem a
seguinte figura:
1 1`1
counter
INT
n
n+1
gather
data
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
circuit
routing 1`[(1,4,1,2,4,1,1,3,4,”dado”),(1,4,
1,2,3,1,1,3,4,”dado”),(1,4,1,2,3,2,
1,3,4,”dado”),(1,4,1,2,3,3,1,3,4,”
1 dado”),(1,4,1,2,3,4,1,3,4,”dado”)]
routes
end
high
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
define
priority
Sheet
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
Data
1 1`(1,4,1,1,3,4,1,3,4,”dado”)
planilha
packet
routing
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 6 – roteamento do pacote finalizado.
Em “routes” estão alocadas as fichas correspondentes ao
caminho percorrido pelo pacote de dados, e em “end” se
encontra a ficha correspondente ao pacote já armazenado no
processador referente ao roteador final da rota. A transferência
do roteador final para seu respectivo processador é
implementada na função “fimdarota”.
Analogamente, havendo um pacote de baixa prioridade a ser
roteado, tem-se a seguinte situação:
IV Congresso Tecnológico InfoBrasil - 2011
4
1 1`2
VII. CONCLUSÃO
counter
INT
n
n+1
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
gather
data
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
circuit
routing 1`[(1,4,1,2,4,1,1,3,4,”dado”),(1,4,
1,2,3,1,1,3,4,”dado”),(1,4,1,2,3,2,
1,3,4,”dado”),(1,4,1,2,3,3,1,3,4,”
1 dado”),(1,4,1,2,3,4,1,3,4,”dado”)]
routes
end
high
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
define
priority
Sheet
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
Data
1 1`(1,4,1,1,3,4,1,3,4,”dado”)
planilha
1 rota(poz,pox,poy,paz,pax,pay,p
1`(1,1,3,1,1,3,1,4,2,”dado”)
packet
routing
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 7 – segundo pacote entra na rede.
A ficha da vez é (1, 1, 3, 1, 1, 3, 1, 4, 2, “dado”) e f = low,
ou seja, o pacote é de baixa prioridade e está no buffer do
roteador (1, 3) com destino ao processador (4, 2). Assim, ao
final do roteamento se tem o seguinte resultado:
1 1`2
Mesmo representando uma rede ideal, o modelo estudado
neste trabalho dá uma idéia básica, mas importante, sobre o
algoritmo de roteamento da NOC. Além disso, a versatilidade
da representação por redes de Petri permite que, a partir dele,
incremente-se a modelagem com características mais
próximas do real, tais como: temporização, para simular um
cálculo estimado do tempo de latência da rede; limitação de
slots nos buffers dos roteadores da camada central, de forma a
estudar soluções para congestionamento na rede; uso de
variáveis para simular incidência de erros como perda de
pacotes; implementação de um algoritmo para verificar se a
rota na comutação por circuito está livre e, em caso
afirmativo, alocar o espaço para a transmissão.
counter
INT
n
n+1
gather
data
if (f=high) then
1`(1,a,b,e,a,b,1,c,d,"dado")
else empty
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
start
Data
1`(1,a,b,1,a,b,1,c,d,"dado")
1`[(1,4,1,2,4,1,1,3,4,”dado”),(1,4,1
,2,3,1,1,3,4,”dado”),(1,4,1,2,3,2,1,
circuit 3,4,”dado”),(1,4,1,2,3,3,1,3,4,”dad
routing o”),(1,4,1,2,3,4,1,3,4,”dado”),(1,1,
1`(poz,pox,poy,paz,pax,pay,pdz
3,1,1,3,1,4,2,”dado”),(1,1,3,1,2,3,1
,pdx,pdy,str)
,4,2,”dado”),(1,1,3,1,31,3,3,1,4,2,”
planilha
dado”),(1,1,3,1,4,3,1,4,2,”dado”),(
1
1,1,3,1,4,2,1,4,2,”dado”)]
routes
end
define
priority
Sheet
planilha^^[(poz,pox,poy,paz,pax,pay,pdz,pdx,pdy,str)]
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
low
if (f=low) then
1`(1,a,b,1,a,b,1,c,d,"dado")
else empty
VIII. REFERÊNCIAS BIBLIOGRÁFICAS
rota(poz,pox,poy,paz,pax,pay,p
dz,pdx,pdy,str)
high
Data
1`(poz,pox,poy,paz,pax,pay,pdz
,pdx,pdy,str)
planilha
packet
routing
Data
2 1`(1,4,1,1,3,4,1,3,4,”dado”)++
1`(1,4,1,1,3,4,1,3,4,”dado”)
fimdarota(poz,pox,poy,paz,pax,
pay,pdz,pdx,pdy,str)
Figura 8 – roteamento do segundo pacote finalizado.
A transição “packet routing” opera de forma análoga à
“circuit routing”, assim o resultado final é similar. Detalhe
importante é o fato de a planilha em “routes” ser uma fila
única, não diferenciando as fichas por rota ou por processador
de origem ou destino. Os elementos da fila correspondentes a
rotas diferentes também podem estar embaralhados,
dependendo da ordem de disparo das transições.
VI. ANÁLISE DOS RESULTADOS
Como foi mostrado, o modelo apresenta uma idéia básica e
geral sobre o algoritmo de roteamento adotado na Thor. Vale
ressaltar que este modelo simula uma NOC não-temporizada
ideal, não havendo, portanto, diferença visível de tempo entre
o roteamento por pacote e por circuito ou problemas como
perda de pacotes de dados e sobrecarga nos buffers de entrada
dos roteadores. A partir deste modelo, entretanto, pode-se
introduzir tais limitações expandindo-se a rede e/ou fazendo
uso de novas variáveis locais.
Outro ponto inconveniente no modelo é a implementação da
“planilha de roteamento”. O algoritmo de FIFO ajuda a
visualizar a rota seguida pelos pacotes (representada pela
segunda tripla ordenada de cada ficha), mas por uma limitação
do próprio, não é possível dividir as listas de fichas por pacote
de dados ou de acordo com os extremos (roteador inicial e
final) da rota. Assim, a planilha é apresentada como uma fila
única contendo todas as fichas do roteamento. Além disso, não
há representação direta dos processadores, a prioridade de
envio é aleatoriamente determinada para cada pacote de dados
e, visto que este trabalho é focado no estudo do algoritmo de
roteamento, a string que representa a informação a ser roteada
se mantém inalterada.
[1]
ALI, M., WELZL, M., ZWICKNAGL, M. Networks on Chips: Scalable
Interconnects for Future Systems on Chips. Circuits and Systems for
Communications, ECCSC 2008. 4th European Conference on,
Bucharest, p. 240-245, 2008. DOI 10.1109/ECCSC.2008.4611685.
[2] BENINI, L., MICHELI, G. “Networks on chips: A new SoC paradigm”,
Computer, v. 35(1), p. 70-78, Janeiro de 2002.
[3] A. Alameldeen and D. Wood. Addressing Workload Variability in
Architectural Simulations . IEEE Micro, 23(6):94–98, November December 2003.
[4] H. Blume, T. von Sydow, T.G. Noll, Performance analysis of SoC
communication by application of deterministic and stochastic Petri Nets.
in: Proceedings of the Samos’2004 Workshop, Samos, Greece, July 19–
21, 2004, Springer, LCNS 3133, pp. 484–493.
[5] “Very Brief Introduction to CP-nets”, Department of Computer Science,
University of Aarhus, Denmark –
http://daimi.au.dk/CPnets/proxy.php?url=/CPnets/intro/verybrief;
[6] CPNTools Homepage – http://cpntools.org;
[7] CPN Samples – http://di.uern.br/cpnsamples/?page_id=4;
[8] Zheng Shi; Burns, A.; , "Real-Time Communication Analysis for OnChip Networks with Wormhole Switching," Networks-on-Chip, 2008.
NoCS 2008. Second ACM/IEEE International Symposium on , vol., no.,
pp.161-170, 7-10 April 2008. Doi: 10.1109/NOCS.2008.4492735.
[9] Kaddachi, M.L.; Soudani, A.; Tourki, R.; , "Signaling approach for NoC
quality of service requirements," Signals, Circuits and Systems, 2008.
SCS 2008. 2nd International Conference on , vol., no., pp.1-5, 7-9 Nov.
2008. Doi: 10.1109/ICSCS.2008.4746920.
[10] Yijun Liu; Zhenkun Li; Pinghua Chen; Zhusong Liu; , "A Stacked NoC
Architecture for Quality-of-Service," Information Science and
Engineering, 2008. ISISE '08. International Symposium on , vol.1, no.,
pp.609-612, 20-22 Dec. 2008. Doi: 10.1109/ISISE.2008.241.
[11] Hermann Kopetz, ``Real-Time Systems: Design Principles for
Distributed Embedded Applications'', Kluwer Academic
Publishers,1997.
Download

Modelagem de redes intrachip tridimensionais por redes