O algoritmo de roteamento negative first é adaptativo. Nele, os flits que compõem um pa- cote podem ser inicialmente roteados em direções negativas. Quando uma direção positiva é as- sumida, não é mais permitido realizar curvas para direções negativas. O roteamento para direções negativas, em uma rede malha 2D, caracteriza-se pelo envio de pacotes para as portas OESTE ou SUL, enquanto LESTE e NORTE são consideradas direções positivas. A Figura 3.6 detalha as curvas não permitidas pelo algoritmo e que garantem a ausência de deadlock [GLA94].
(a) (b) Curvas proibidas Curvas permitidas
Figura 3.6 – Diagrama de curvas para o algoritmo de roteamento negative first. Proíbe-se curvas para direções negativas se uma direção anteriormente tomada seguiu um sentido positivo. Em (a) proíbe-se curvas para OESTE (direção negativa) se o pacote está subindo e em (b) proíbe-se curvas para SUL (direção
negativa) se o pacote está indo para a direita. Note-se que não há restrições para iniciar o caminho de um pacote seguindo para OESTE ou para o SUL, e mesmo relizar curvas entre estas direções.
O algoritmo negative first foi explorado nas versões mínima e não mínima. No algoritmo mínimo define-se um “quadrado envolvente” (QE) (em inglês, bounding box) que limita as opções de roteamento. O QE é reduzido cada vez que o pacote avança para seu destino, nunca se afastan- do de seu alvo. Na versão não mínima, o QE com o destino pode ser inicialmente desconsiderado enquanto se utiliza apenas direções negativas. Porém, o QE passa a ser respeitado uma vez iniciado
o caminhamento no sentido positivo. A desvantagem do algoritmo mínimo é a redução do número de opções de rotas entre uma origem de comunicação e seu destino. O número de rotas entre uma origem e um destino, no algoritmo negative first, depende da minimalidade do algoritmo, da posi- ção da origem em relação ao destino da comunicação e de suas posições, relativas aos limites da rede. Pressupondo uma topologia malha 2D de dimensões NxM, podem ocorrer as seguintes situa- ções:
• Se o destino da comunicação encontra-se em uma posição negativa em relação à o- rigem da comunicação sobre ambos os eixos coordenados, ou seja, se Xdestino<Xorigem
e Ydestino<Yorigem, então necessariamente haverá roteamento inicial para direções ne-
gativas, independente da minimalidade;
• Se a posição do destino da comunicação é positiva em relação à origem sobre am- bos eixos coordenados, ou seja se Xdestino>Xorigem e Ydestino>Yorigem, então somente po-
derá ocorrer roteamento em direções negativas se adotado o algoritmo não míni- mo. Para o algoritmo mínimo, restringe-se o roteamento em direções positivas.
Para o algoritmo de roteamento negative first mínimo (nfm), a exploração de rotas deve respeitar o QE, conforme descrito anteriormente. O roteamento em direções negativas somente ocorre se alguma das coordenadas (X,Y) que define o posicionamento do destino na rede for nega- tiva em relação à origem da comunicação. Se apenas um dos eixos coordenados do destino for ne- gativo em relação à origem ou um dos eixos for igual ao da origem, então existe somente uma rota possível entre este par comunicante, conforme ilustrado na Figura 3.7.
X-- Y + + (a) X++ Y -- (b) (c) (c.2) (c.1) (c .3 ) (c .4 ) Caminho inválido Caminho válido Destino Origem
Figura 3.7 – Situações de rota única no algoritmo nfm. Em (a), o destino possui o valor de coordenada x menor que o destino. Em (b), o destino possui o valor de coordenada y menor que o destino. Em (c), o
destino encontra-se sobre a mesma linha (c.1) e (c.2) ou sobre a mesma coluna (c.3) e (c.4).
Caso a posição do destino seja totalmente negativa ou totalmente positiva em relação à o- rigem da comunicação, ou seja, ambos os valores da coordenada (X,Y) do destino são menores (po-
sição relativa negativa), ou maiores (posição relativa positiva) respectivamente, em relação à ori- gem, as rotas serão unicamente compostas por caminhamento em sentidos negativos ou positivos. Este roteamento caracteriza o deslocamento sobre o QE. A Figura 3.8 exemplifica um posiciona- mento totalmente positivo (Figura 3.8 (a)) e um posicionamento totalmente negativo (Figura 3.8 (b)) entre uma dada origem de comunicação e seu destino.
(a) (b)
Destino Caminho válido Origem
Figura 3.8 - Caminhos válidos entre origem e destino com distância 2 em X e em Y. Em (a) mostra-se o posicionamento totalmente positivo do destino em relação a origem. Em (b) mostra-se o posicionamento
totalmente negativo do destino em relação a origem. Em ambos os casos, nota-se o respeito aos limites impostos pelo QE.
O roteamento realizado com algoritmos mínimos em uma rede com topologia malha 2D implica a avaliação de no máximo 2 arcos, no caso do algoritmo negative first sendo em direções positivas ou negativas. Para o roteamento mínimo sobre um QE, o número de rotas possíveis entre um par origem/destino é dado pela soma sucessiva do número de direções válidas a partir de vér- tices adjacentes. Quando mais de uma rota pode existir entre um par origem/destino sobre o QE, o número de rotas pode ser calculado tomando por base sua distância. Definindo-se a posição da origem como o par de coordenadas (XOrigem,YOrigem) e as coordenadas do destino como (XDesti- no,YDestino), a distância ∆x=|XOrigem-XDestino| e a distância ∆y=|YOrigem-YDestino|, se ambos ∆x e ∆y forem
diferentes de zero então a quantidade de opções de rotas é expressa pela Equação 3.2. Caso con- trário, existe apenas 1 rota [GLA94].
Equação 3.2
(
)
! ! ! y x y x NRotasMín ∆ ∆ ∆ + ∆ =Na Figura 3.9, ilustra-se o crescimento do número de rotas possíveis quando origens e des- tino distam de até 9 hops em X e 9 hops em Y. Supondo-se uma origem da comunicação no rotea- dor do canto inferior esquerdo (i.e. XOrigem=0 e YOrigem=0), detalha-se o número de rotas possíveis
tre cada par origem/destino é proporcional às distâncias sobre os eixos X e Y. 1 10 55 220 715 2002 5005 11440 24310 48620 0 1 1 1 1 1 1 1 1 1 1 9 45 165 495 1287 3003 6435 12870 24310 1 8 36 120 330 792 1716 3432 6435 11440 1 7 28 84 210 462 924 1716 3003 5005 1 6 21 56 126 252 462 792 1287 2002 1 5 15 35 70 126 210 330 495 715 1 4 10 20 35 56 84 120 165 220 1 3 6 10 15 21 28 36 45 55 1 2 3 4 5 6 7 8 9 10 Distância em X 0 1 2 3 4 5 6 7 8 9 D i s t â n c i a e m Y 0 1 2 3 4 5 6 7 8 9
Figura 3.9 – Crescimento do número de rotas possíveis par a o roteador localizado no canto inferior esquerdo tendo como destino qualquer dos demais roteadores quando é assumido os algoritmo de
roteamento mínimo explorados no presente trabalho.
Para o algoritmo negative first não mínimo (nfnm), o roteamento inicial em direções nega- tivas é permitido mesmo quando o destino encontra-se em posição positiva em relação à origem da comunicação, mas é mandatório quando o destino está em uma posição negativa em relação à origem. A Figura 3.10 apresenta a situação onde se permite roteamento inicial em direções negati- vas, apesar de não ser obrigatório. Nela, o destino encontra-se a uma distância 2 em X e 2 em Y em relação à origem. Se o algoritmo nfm fosse assumido, somente seis rotas seriam possíveis. Porém, com a possibilidade de iniciar o roteamento em direções negativas, o número de rotas possíveis entre uma origem e seu destino aumenta. Quando o roteamento inicial ocorre em direções negati- vas, qualquer um dos pontos destacados da Figura 3.10(a) pode reverter o roteamento para dire- ções positivas para alcançar o destino.
Nota-se que o número de pontos possíveis quando o roteamento inicial em direções nega- tivas tem relação com a posição da origem e não do destino. No caso apresentado na Figura 3.10, além da origem da comunicação, 19 outros pontos podem iniciar o roteamento em direções positi- vas. Na Figura 3.10(a), são apresentados os roteadores que o roteamento não mínimo pode usar afastando-se do destino e a quantidade de opções de rotas para alcançar cada um destes roteado- res. Já na Figura 3.10(b), é apresentado o número total de rotas possíveis a partir de um dos rotea-
dores Salientados na Figura 3.10 (a) até o destino. (a) 1 1 1 1 5 1 4 10 20 1 3 6 10 1 2 3 4 15 35 10 15 21 28 84 210 462 21 56 126 252 15 35 70 126 10 20 35 56 6 (b)
Destino n Número de rotas válidas
Origem
Figura 3.10 - Alternativas de rotas quando inicialmente se usa algoritmo nfnm. Em (a) apresenta-se a quantidade de rotas a partir da origem para chegar a algum roteador alcançável, ao afastar-se do destino. Em (b), mostra-se a quantidade de rotas possíveis quando, ao alcançar um roteador mais afastado, assume-
se direção positiva.
No exemplo apresentado na Figura 3.10, se inicialmente toma-se uma direção positiva, a quantidade de rotas possíveis seria seis. Com o afastamento do destino, permitida pelo algoritmo não mínimo, a quantidade de rotas possíveis para alcançar o destino utilizando-se o algoritmo
nfnm é definido pelo somatório da quantidade de rotas possíveis para cada roteador intermediário
que se afasta do destino (RotInt) multiplicado pela quantidade de rotas possíveis entre o roteador RotInt até o destino, conforme a Equação 3.3. Nesta Equação, a função NRotasMin representa a
quantidade de rotas entre um par origem/destino usando o algoritmo nfm, NRotInt representa o número de roteadores intermediários RotInt podem ser utilizadas durante o afastamento do desti- no, Orig e Dest caracterizam o par origem/destino da comunicação. No caso da Figura 3.10, este número é igual a 28544.
Equação 3.3 ( , ) 1 ( , )* ( , )
_
_ NRotas Orig Dest NRotas Orig RotInt NRotas RotInt Dest
NRotas Min i NRotInt i i Min Min Minimo Nao NF