Movimentação de Dados

A tecnologia Fibre Channel deve oferecer mecanismos capazes de garantir a integridade dos bits de dados transportados através do meio físico. Para isto, o Fibre Channel faz o uso de um clock de referência, o qual assegura que cada bit foi recebido da forma como foi transmitido.

Em topologias paralelas, isto pode ser feito através do uso de um clock separado ou de uma linha strobe. Conforme os dados são transmitidos em paralelo a partir da fonte, a linha strobe alterna entre alto ou baixo para sinalizar ao receptor que um byte completo foi enviado. [IBM Redbook]

Podem ocorrer diferenças reflexivas no cabeamento de fibra ótica, resultando na chegada de frames em períodos diferentes. Este tipo de erro é conhecido como jitter. Nenhum produto é imune a jitter, que também afeta os componentes de um SAN.

Como o transporte serial de dados se dá através de duas ligações, a transmissão e a recepção, não é possível utilizar o clock em linhas separadas. Desta forma, os dados seriais devem carregar o tempo de referência. Isto pode ser feito de diferentes formas.

O padrão Fibre Channel utiliza um esquema lógico de codificação de bytes e de recuperação de clock e dados para recuperar o clock

Esquemas de codificação de bytes

O processo de codificação (Figura 6) se dá antes da transmissão e a decodificação ocorre depois da recepção. A codificação garante que informações do clock estejam presentes nos dados seriais transferidos. Assim, o receptor pode sincronizar a informação do clock e recuperar com sucesso os dados. A codificação lógica utilizada, 8b/10b, pode encontrar quase todos os erros.

O processo de codificação 8b/10b converte cada byte (8 bits) em dois possíveis caracteres de 10 bits. Este esquema é chamado 8b/10b por se referir à quantidade de bits de dados que entram no codificador e a quantidade de bits que saem do codificador. [IBM Redbook]

O formato do caracter 8b/10b é Ann.m, onde:

  • A assume o valor D para dados ou K para caracteres especiais
  • nn é o valor decimal dos 5bits menos significativos  (EDCBA)
  •  “.”  é um ponto
  • M é o valor decimal para os 3 bits mais significativos (HGF)

Codificador

Figura 6: Processo de Codificação
(Adaptado de IBM Redbook)

Neste exemplo de codificação ocorrem os seguintes passos:

1. A representação hexadecimal x’59’ é convertida para binário: 01011001.
2. Os três bits mais significativos são separados dos cinco bits menos significativos: 010 11001.
3. A ordem é invertida e cada grupo é convertido para decimal: 25 2.
4. É acrescentada a letra D (para dados): D25.2.

Paridade

Como resultado da conversão 8b/10b, tem-se dois caracteres de 10 bits, o codificador precisa ainda escolher qual dos resultados irá usar. Isto é feito através do monitoramento do cálculo da paridade do caracter processado. Ou seja, se o caracter anterior tiver uma paridade positiva, então o próximo caracter a ser utilizado deve ter um valor codificado que represente a paridade negativa.
Os resultados possíveis para a codificação 8b/10b são os seguintes:

  • Se cinco bits forem iguais a 1, então o byte assume paridade neutra.
  • Se quatro bits forem iguais a 1 e seis forem iguais a 0, então o byte assume paridade negativa.
  • Se seis bits forem iguais a 1 e quatro forem iguais a 0, então o byte assume paridade positiva.

Como no exemplo acima o valor codificado tem cinco bits iguais a 1 e cinco bits iguais a 0, o cálculo da sua paridade tanto positiva quanto negativa irá encontrar o mesmo valor.

K28.5

Alguns números de 10 bits não podem ser gerados a partir de números de 8 bits através do processo de codificação 8b/10b. Os números de 10 bits que não podem ser gerados são utilizados pelo protocolo para a sinalização e controle. Estes caracteres assumem o prefixo K e o único utilizado pelo Fibre Channel é conhecido como K28.5. Este é o único caracter utilizado em Fibre Channel que tem cinco bits consecutivos iguais.

Em um meio como a fibra ótica, os 0’s e 1’s representam pulsos de luz na fibra. Uma sequência como 010 produz um pulso de luz entre dois períodos de “escuridão”. O mesmo acontece para a sequência 0110, mas o pulso de luz tem duração duas vezes maior nesta sequência.

Como os dois dispositivos têm o seu próprio clock, o número de 1’s consecutivos é importante. Por exemplo, em um cenário em que um dispositivo 1 envia dados a um dispositivo 2 e em que o dispositivo 2 executa 10% mais rápido do que o dispositivo 1; se o dispositivo 1 enviar 20 períodos de clock de dados, o dispositivo 2 irá contar 22 conjuntos de dados. O pior caso ocorre com cinco bits consecutivos iguais em um único byte, o K28.5. [IBM Redbook]

Outra vantagem deste caracter especial é que por ter cinco bits iguais consecutivos, o hardware pode procurar pelo caracter K28.5 especificamente. Como este caracter é utilizado para fins de controle, isto permite que o hardware seja projetado para ter eficiência máxima.
Design downloaded from free website templates.