• Nenhum resultado encontrado

1 I NTRODUÇÃO

5.3 ÁRBITROS

A abordagem de implementação dos árbitros no roteador ParIS é distribuída e cada canal de saída tem seu próprio árbitro. Foram avaliadas as políticas de arbitragem em diferentes cenários de tráfego com a topologia Toroide 2D num arranjo 4x4. Essa topologia foi escolhida pelo fato de todos os roteadores terem o mesmo número de portas de comunicação. Os demais mecanismos foram mantidos fixos (controle de fluxo baseado em créditos, roteamento XY e buffers FIFO nas entradas, sem canais virtuais com capacidade de 4 flits), assim como os requisitos de tráfego.

Os árbitros avaliados foram: estático com prioridade na porta 0 (Local) do roteador ParIS; rotativo baseado no Round-Robin, em que a cada concessão é rotacionado um bit no vetor de prioridades; o Round-Robin que implementa a política de que o recurso que ganha a concessão em uma rodada de arbitragem possuirá menor prioridade na próxima rodada; e um árbitro randômico uniformemente distribuído.

O árbitro randômico foi inicialmente implementado com a estrutura do Linear Feedback Shift Register (LFSR), o qual é utilizado para a geração de números pseudo-aleatórios em hardware e em software. Porém, nesse circuito, para cada número de portas em um árbitro, um polinômio diferente deve ser usado/implementado. Devido ao fato de que o roteador foi implementado para ser parametrizável no número de portas e comportar arquiteturas como a do Crossbar (um roteador de N portas), esse circuito foi descartado e foi usado o gerador aleatório uniformemente distribuído do C++11. Essa implementação não segue uma abordagem em nível RT, porém, mantém o modelo com a acurácia em nível de ciclos, pois a cada ciclo, um número é sorteado, sendo que seu processo é sensível a borda de subida do sinal de relógio.

A Figura 40 apresenta os gráficos da latência média pela carga oferecida dos árbitros avaliados nos diferentes cenários de tráfego. Do mesmo modo, a Figura 41 apresenta o tráfego aceito e a Figura 42 apresenta as distribuições de latências nos pontos próximos a saturação.

(a) (b)

(c) (d)

(e) (f)

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

(a) (b)

(c) (d)

(e) (f)

Figura 41. Tráfego aceito dos árbitros no Toroide 2D 4x4 sob diferentes cenários de tráfego: (a) Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f) Complemento

(a) (b)

(c) (d)

(e) (f)

Figura 42. Dispersões das latências dos árbitros no Toroide 2D 4x4 sob diferentes cenários de tráfego: (a) Uniforme; (b) Bit-reversal; (c) Perfect Shuffle; (d) Butterfly; (e) Transposto; e (f) Complemento

Um fenômeno interessante que pode ser visto nas figuras dos cenários Bit-reversal (Figura 41.b) e Butterfly (Figura 41.d) é o de instabilidade da rede com a arbitragem estática após a saturação, pois não há uma concessão “justa” dos recursos nessa política. Esse fenômeno também é explicado por Dally e Towles (2004) e o que acontece é que, após a saturação, o tráfego aceito decai bruscamente, o que impacta de forma crítica no desempenho da rede.

A frequência de operação próxima à saturação dos árbitros Estático, Rotativo, Randômico e Round-Robin no tráfego Uniforme é 40 MHz. O Quadro 34 exibe a relação de desempenho dos árbitros nesse padrão de tráfego. Assim como nos algoritmos de roteamento, na avaliação, foi considerado o ponto mais próximo da saturação.

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

Árbitros Estático Rotativo Randômico Round-Robin Métrica

Estático -x- -x- -x- Latência Média* Rotativo 1,36 1,0018 1,019 Randômico 1,35 -x- 1,017 Round-Robin 1,33 -x- -x- Estático -x- -x- -x- Tráfego Aceito Rotativo 1,11 0,16 0,36 Randômico 0,95 -x- 0,2 Round-Robin 0,75 -x- -x- Estático -x- -x- -x- Jitter* Rotativo 2,48 1,0027 1,03 Randômico 2,47 -x- 1,02 Round-Robin 2,4 -x- -x- *40 MHz

Nos demais padrões tráfego, todos os árbitros apresentaram o mesmo comportamento sob operação normal. Apenas sob rede saturada que houve diferença. Sendo assim, não são apresentados os quadros das relações de desempenho, pois o desempenho é o mesmo sob condições normais.

No árbitro estático, sempre uma porta de comunicação possui prioridade sobre as demais, portanto, sempre que houver pacotes requisitando essa porta, os pacotes nas demais sofrem postergação, o que pode causar starvation (postergação indefinida). Um experimento simples foi feito para ilustrar tal situação. Por exemplo, considerando-se um Crossbar de quatro portas e requisitos de tráfego que geram pacotes sem intervalos de tempo e nos mesmos instantes em cada nodo. Também que o tráfego segue uma distribuição hotspot, em que todos os nodos enviam 10 pacotes para um único destino, nesse caso o nodo 3. Como a porta 0 possui prioridade no árbitro estático, serão primeiro entregues os 10 pacotes dessa porta (nodo 0), na sequência são entregues os pacotes da porta

1 (nodo 1) e, por fim, os pacotes da porta 2 (nodo 2). O diagrama de formas de onda na Figura 43 ilustra essa situação.

Figura 43. Formas de ondas do caso que ilustra uma situação em que pode ser gerado

starvation no árbitro estático

Já no árbitro Round-Robin, há uma equidade na concessão dos recursos, tendo em vista que a porta servida em uma arbitragem possuirá menor prioridade na próxima. A Figura 44 ilustra essa situação. Com esses dois exemplos, é possível demonstrar a diferença nas técnicas de arbitragem e exemplificar o motivo pelo qual uma rede pode se tornar instável após a saturação.

Figura 44. Formas de ondas do caso que ilustra uma situação em que não ocorre starvation no árbitro Round-Robin

5.3.1 Análise dos Árbitros

Nos experimentos dos árbitros, apenas sob cenário de tráfego Uniforme é que houve diferença no comportamento da rede com diferentes políticas de arbitragem. Nos demais cenários, sob condições normais de operação, os árbitros apresentaram o mesmo desempenho. Pequenas diferenças em relação à frequência de operação na saturação foram percebidas.

O árbitro estático apresentou pior desempenho em relação aos demais. Isso já era esperado uma vez que não há equidade na concessão dos recursos. As demais políticas apresentaram desempenho semelhante, uma vez que todas lidam com critérios de mudança de prioridades. O árbitro estático também fez com que a rede se tornasse instável após a saturação. Além disso, foi o que apresentou maior dispersão nas latências, pois, apesar de muitos pacotes serem entregues com latência baixa, outros sofrem latências muito altas devido às suas postergações nas arbitragens.

Quanto aos árbitros dinâmicos, a diferença foi mínima no cenário verificado, isso porque de certa forma, todos os recursos tendem a serem utilizados igualitariamente e as mudanças de prioridade

também ocorrem da mesma maneira diante de tal situação. No Round-Robin, é provido um alto grau de equidade, conforme visto nas formas de ondas do exemplo supracitado. No Rotativo, também ocorre a equidade, uma vez que a cada concessão um bit de prioridade é deslocado, o que significa dizer que, para um roteador de cinco portas (todos no Toroide 2D) a cada cinco concessões, cada porta teve prioridade mais alta em uma dessas concessões. E quanto ao árbitro Randômico, este também tende a gerar prioridades igualitariamente, pois é baseado num gerador de números aleatórios uniformemente distribuídos.

Documentos relacionados