4.1 REDE SOCIN
4.1.1 Arquitetura da rede SoCIN
Nesta seção, são discutidos a topologia, o enlace, o modelo de comunicação, o chaveamento, o roteamento, a arbitragem, o controle de fluxo e o armazenamento na rede SoCIN.
Topologias
A rede SoCIN pode ser construída usando uma topologia direta 2-D como do tipo grelha ou a do tipo toróide. A primeira topologia apresenta baixo custo e a segunda reduz a latência da rede (ZEFERINO; SANTO; SUSIN, 2004). A Figura 10 ilustra as duas topologias da SoCIN.
(a) (b) Figura 10. As duas topologias da SoCIN: (a) grelha e (b) toróide Fonte: Susin e Zeferino (2003).
Modelo de comunicação
Segundo Susin e Zeferino (2003), na SoCIN existem dois tipos de núcleos: iniciador (initiator) e alvo (target). O iniciador (ex.: processador) faz requisições para o alvo (ex.: memória) e o alvo responde as requisições do iniciador. Um núcleo pode ser um iniciador e um alvo ao mesmo tempo (ex.: co-processador). O modelo de comunicação utilizado é baseado em troca de mensagens, ou seja, as requisições e as respostas são sempre enviadas por mensagens.
Chaveamento
Segundo Susin e Zeferino (2003), a abordagem de chaveamento de pacote da SoCIN é wormhole. As mensagens são enviadas por meio de pacotes, os quais são compostos por flits (flow control unit). Na SoCIN, um flit é igual à largura do canal (ou um phit – physical unit), tendo o tamanho da largura do canal mais dois bits.
Enlace
Segundo Susin e Zeferino (2003), o enlace da SoCIN (Figura 11) inclui dois canais unidirecionais opostos, cada um para dados, framing e sinais de controle de fluxo. Cada canal inclui n bits para dados e dois bits para o enquadramento do pacote: (i) bop (begin-of-packet, ou inicio do pacote) para o pacote de cabeçalho; e (ii) eop (end-of-packet, ou final de pacote) na última palavra de payload. Os n bits de dados podem ser estendidos para incluir sinais para serviços não previstos no protocolo, como por exemplo, sinais para controle de integridade de dados (de paridade e de erro). Os valores típicos para n são 8, 16 ou 32 bits. Os sinais val (validate signal) e ret (return signal) são usados para o controle de fluxo. O sinal val indica a presença de informação válida no canal de dados. Já o significado do sinal ret pode variar conforme a técnica de controle de fluxo utilizada (handshake ou baseado em crédito).
n+2
n+2
ret val
bop eop n data
Figura 11. Enlace da SoCIN
Fonte: Zeferino, Santo e Susin (2004).
Roteamento
Segundo Zeferino, Santo e Susin (2004), na versão atual da rede SoCIN (a SoCINfp), o roteamento ocorre no roteador usando o sistema de coordenadas ilustrado na Figura 12. Essa abordagem permite a implementação de diferentes algoritmos de roteamento, desde roteamentos determinísticos a totalmente adaptativos12.
0 ,0 1 ,0 2 ,0 3 ,0
0 ,1 1 ,1 2 ,1 3 ,1
0 ,2 1 ,2 2 ,2 3 ,2
0 ,3 1 ,3 2 ,3 3 ,3
0 1 2
X 3 0
1 2 3
Y
Figura 12. Sistema de coordenadas da SoCINfp Fonte: Zeferino, Santo e Susin (2004).
12 Atualmente a SoCINfp somente possui implementado roteamentos determinísticos e parcialmente adaptativos.
Pacote
O formato do pacote da SoCIN é apresentado na Figura 13. O pacote inclui um flit de cabeçalho e um número ilimitado de flits de payload. Cada flit tem a largura de (n+2) bits e o enésimo bit é o marcador de bop e o (enésimo+1) bit é o marcador eop. O campo HLP (Higher Level Protocol, ou protocolo de nível superior) está reservado para a implementação de protocolos acima da camada de rede, como por exemplo, a informação para reordenação de pacotes, e não é processado pelos roteadores. O HLP tem o tamanho de (n-m) bits de largura e pode ser estendido pelo aumento da largura do canal ou pelo uso do flit seguinte do pacote. O campo RIB (Routing Information Bits) carrega a informação utilizada por cada roteador para realizar o encaminhamento de pacote, em outras palavras, as coordenadas de destino (subcampos: xdest e ydest). O campo RIB possui m bits de largura e, por consequência, a rede é limitada a 2m/2×2m/2 roteadores.
HLP RIB.xdest RIB.ydest
Flits de payload
Último flit de payload 0
1 0 1
0 0 eop
bop n bits
m bits
ilimitado
Figura 13. Formato do pacote e bits de informação roteamento da SoCIN Fonte: Zeferino, Santo e Susin (2004).
Arbitragem
Segundo Zeferino, Santo e Susin (2004), a arbitragem da SoCIN baseia-se em uma abordagem distribuída do tipo estática ou dinâmica (randômica ou round-robin) em cada canal de saída do roteador. Essa solução tem por característica permitir a arbitragem simultânea de múltiplos recursos, dado que cada canal de saída possui um árbitro dimensionado de acordo com o número de canais de entrada que pode requisitar esse canal de saída (isso varia com a posição da porta de saída no roteador, com a posição do roteador na rede e com o algoritmo de roteamento utilizado).
Controle de fluxo
Segundo Zeferino, Santo e Susin (2004), o controle de fluxo da SoCIN é em nível de enlace e pode ser handshake ou baseado em créditos. Na abordagem handshake, quando um dado é colocado no enlace pelo remetente, o sinal de validade (val) é ativado e quando o dado estiver pronto para ser consumido pelo destinatário, este deve ativar o sinal de reconhecimento (ret). Na abordagem baseada em créditos, o sinal ret informa que uma posição foi liberada no buffer de entrada do destinatário e um crédito está sendo retornado ao remetente. O remetente só pode enviar um novo flit se a capacidade de armazenamento (buffer) do destinatário não for atingida. O estado desses buffers é monitorado usando um contador up-down, que é inicializado com um número de créditos igual à profundidade do buffer do destinatário. O contador é decrementado quando é enviado um flit e incrementado quando um crédito é retornado. Se o contador for igual à zero, significa que a capacidade de armazenamento do destinatário foi atingida e nenhum novo flit deve ser enviado.
Buffer
Na SoCIN existem um buffer FIFO com capacidade de p flits em cada entrada ou saída do canal, onde p depende dos requisitos de custo e desempenho da aplicação (ZEFERINO; SANTO;
SUSIN, 2004). O tamanho de cada buffer é igual a p × n bits.