Redes que adotam topologia malha 2D podem ser representadas através de um grafo diri- gido N=<R, C>, onde o conjunto de vértices R={r0, ..., ri-1} representa os roteadores da rede e o A-
qui, i é o número de roteadores na rede e j é o número de canais da rede. Assim, em uma topologia malha 2D, cada roteador possui 4, 6 ou 8 canais, utilizados para encaminhar ou receber dados de roteadores adjacentes. Cada elemento do conjunto de canais C de uma rede N pode ser definido como um par ordenado:
∀ ci∈C, ci=(ra, rb), onde ra∈R, rb∈R.
Obs:Note-se que esta definição automaticamente exclui como canais da rede os compo- nentes de enlaces locais entre um roteador e um IP. Logo enlaces locais e por conseguintes
os IPs não fazem parte de uma rede assim definida.
Ou seja, um canal de C conecta dois roteadores da rede unidirecionalmente. Uma conexão bidirecional é um subconjunto de dois elementos E de C, com E={a, b}. Se a=(rx, ry), então b=(ry, rx).
Cada subconjunto de C com a forma de E corresponde a um enlace em redes malha 2D, onde um elemento de E representa, para cada roteador envolvido, um canal para recepção de pacotes e um canal para a transmissão de pacotes.
Uma aplicação pode ser caracterizada por um grafo dirigido A=<T, S>, onde T={t0, ..., tk-1}
representa o conjunto de tarefas da aplicação e S={ sod =((to, td), w) | to, td∈ T e w ∈ R+} representa
o conjunto de arcos que designa a comunicação entre pares de tarefas comunicantes. Aqui, k é o número de tarefas no qual a aplicação foi dividida, e S representa nos seus elementos cada fluxo unidirecional de informação que flui na rede. Um elemento sod de S possui um par de tarefas ori-
gem e destino do fluxo e a taxa de média de transmissão para o fluxo. A Figura 3.25 ilustra um gra- fo de caracterização da aplicação. Neste exemplo, k=6 e existem 9 elementos em S.
Figura 3.24
Figura 3.25 Exemplo de um grafo de aplicação hipotético, com taxas em Mbps.
Ao processo de definição de qual núcleo IP executará cada tarefa, seja uma tarefa de hard-
ware ou de software, é dado o nome de ligação de tarefas (em inglês, binding). O processo de ma- peamento de tarefas define qual a posição de cada tarefa e seu núcleo IP na infraestrutura de co-
municação. Apesar de terem sido explorados e terem contribuído para a proposição deste traba- lho, ambos os processos são aqui abstraídos. Com o objetivo de simplificar esta etapa, assume-se que a cada roteador, pertencente a R está associado um e somente um núcleo IP. Adicionalmente, a núcleo IP está ligado uma e somente uma tarefa, sendo que os núcleos IP são mono-tarefa. Dora- vante, sempre que se fizer referência a uma entidade ou par comunicante, estar-se-á referencian-
do o roteador ro origem da comunicação e o roteador rd, destino da comunicação.
Os algoritmos de roteamento permitem que uma ou mais direções sejam assumidas em ca- da roteador. No presente trabalho, o conjunto de direções possíveis D={dLeste, dOeste, dNorte, dSul} li-
mita-se àquelas definidas para o roteamento em redes de topologia malha 2D. Claramente, os con- ceitos podem ser estendidos para outras topologias, regulares ou não. Uma rota Rotaod=(d1, ..., dn)
de n hops entre dois roteadores ro (i. e. o roteador de origem da comunicação) e rd (i. e. o roteador
destino da comunicação) é definida por uma n-tupla ordenada, uma sequência linear de n dire- ções, sendo d1 a direção a ser tomada no roteador origem da comunicação e dn a direção a ser to-
mada no roteador que precede o roteador destino. Dada uma rede N=<R, C>, uma rota Rod=(d1, ...,
dn) é válida se e somente se ro ∈ R, rd ∈ R e um pacote saindo de ro atinge rd, após seguir exatamen-
te as direções d1, ..., dn nesta sequência. À sequência de direções estão relacionados os canais de
rede que serão utilizados pela Rotaod. Uma rota Rotaod, tem as seguintes propriedades:
• O primeiro elemento d0 da tupla Rotaod define a direção a ser tomada em ro, rotea-
dor origem da comunicação, e para qualquer rota válida, d1∈ D;
• O último elemento dn da tupla Rotaod define a direção a ser tomada em um roteador
que é vizinho do roteador destino da comunicação;
• ∀ d1 da tupla Rotaod assumido em ro, está associada à utilização de um canal ci=(ro,
rx);
• ∀ dn da tupla Rotaod assumido em ry, leva à utilização cy=(rx, rd), onde rd é o roteador
destino do pacote.
Com base nas definições dadas na elaboração de rotas, tem-se que a sequência de canais a ser utilizada por uma rota Rotaod respeita algumas propriedades. Seja o primeiro canal alocado por
uma rota Rotaod c0 e o último canal alocado por uma rota Rotaod cn:
• ∀ cp≠ cn, tem-se que cp=(ra, rb), e cp+1=(rb, rc); • ∀ cp≠ c0, tem-se que cp-1=(re, rf), e cp=(rf, rg).
Ou seja, dois canais consecutivos quaisquer utilizados em uma rota têm necessariamente um roteador em comum, que é destino do canal cp e origem do canal cp+1 (ou, equivalentemente, o
Como dito anteriormente, os algoritmos de roteamento permitem que uma ou mais dire- ções sejam tomadas em cada roteador. Com isto, diferentes opções de rotas podem existir para um mesmo par comunicante. Ao assumir-se uma das opções de rota para um dado par ori- gem/destino, acumula-se as taxas médias de transmissão deste par (i.e. os valores de w do grafo de aplicação) aos canais a serem utilizados por esta rota. Se para cada par de núcleos IP que se comunica for associada uma e somente uma rota, a combinação destas define um cenário de rotas. Formalmente, dada uma rede N, um cenário de rotas Scen é um conjunto de rotas definido sobre N tal que:
∀ ro, rd ∈R existe exatamente uma rota Rotaod em Scen ou não existe nenhuma Rotaod em
Scen.
Define-se naturalmente que, se um núcleo IP conectado a ro não se comunica com o núcleo
IP conectado a rd então não existe uma Rotaod em Scen.
A combinação de todas as opções de rota de todos pares comunicantes em uma aplicação ligada e mapeada em um sistema que emprega uma NoC como arquitetura de comunicação define o conjunto universo de cenários de rotas. O conjunto de todos cenários de rotas tem sua cardinali- dade definida pela Equação 3.4. Nesta equação, NScen é o número máximo de cenários de rota, NPares é o número de pares comunicantes e NRotas é o número de rotas existente para cada par. Por exemplo, assumindo-se uma rede de topologia malha 2D e de dimensões 2x2, onde todos os roteadores originam comunicação (NOrigem) e cada um destes tem como destino todos os outros
roteadores (NDestino), então NPares é igual a 12 (i.e para NOrigem=4 e NDestino=3, tem-se NPa-
res=NOrigem*NDestino=4*3=12). Supondo-se que 7 pares têm apenas 1 opção de rota entre eles e 5
pares têm 2 opções de rota, o número máximo de cenários de rotas neste caso é definido pelo produtório de NRotas de cada par comunicante, conforme Equação 3.4.
Equação 3.4