| Anterior | Inicial | Próximo |
2.3.2.1 – Arbitração
Uma das partes mais importantes da especificação IEEE 1394b é a que se refere à mudança no método de arbitração do Firewire. O modelo original apresentava ineficiências, tendo sofrido algumas modificações na especificação 1394a. Finalmente, no 1394b foi então proposto um novo modelo, chamado Bus Owner/Supervisor/Selector (BOSS).
Nas seções a seguir irei descrever como funcionava o método de arbitração original, as melhorias no 1394a e as mudanças feitas no método BOSS, analisando a evolução da metodologia.
2.3.2.1.1 – Método de arbitração original
Na especificação IEEE 1394 original, a arbitração para o acesso ao barramento consistia nas seguintes etapas:
1 – esperar o barramento ficar ocioso por um intervalo mínimo de tempo
2 – enviar um sinal para controlar o barramento
3 – após receber um sinal de “grant”, enviar o pacote de dados
4 – esperar um ack do receptor (para procedimentos realizados em transferências assíncronas)
Havia um intervalo de tempo ocioso entre cada uma destas etapas. Este intervalo de tempo mínimo é definido pelo tempo de propagação entre os nós mais distantes envolvidos. O tempo de espera necessário entre o envio do último pacote de dados e a próxima arbitração pelo barramento existe para evitar que um novo sinal de arbitração interfira em uma mensagem de ack.
Da forma como era o método de acesso original, a eficiência do barramento era boa para pacotes grandes, mas caía muito quando o tamanho médio dos pacotes era pequeno. Com velocidades de 100 Mbps, a eficiência ficava acima de 80% para pacotes grandes e em torno de 20% quando o tamanho médio dos pacotes era pequeno. Aumentando a taxa para 400 Mbps, a eficiência era ainda pior, variando aproximadamente entre 50% e 10% das condições anteriores.
2.3.2.1.2 – Melhorias na especificação IEEE 1394a
Alguns aspectos do método de arbitração foram melhorados na especificação 1394a. As principais mudanças foram:
1 – Melhoria na arbitração após o ack. Com esta mudança, um nó pode enviar um sinal de arbitração logo após detectar que um sinal de ack foi enviado, sem ter que esperar um tempo mínimo.
2 – Concatenação “fly-by”. Com isto um nó pode enviar um pacote de dados logo após receber um ack ou um pacote de transmissão a taxa constante, sem ter que pedir acesso ao meio primeiro.
3 – Transmissão concatenada de pacotes a diferentes taxas. No padrão original, a cada mudança na taxa de transmissão, um nó tinha que pedir novo acesso ao meio. Nesta atualização, possibilitou-se que ele envie vários pacotes de diferentes taxas de transmissão concatenados, pedindo acesso ao meio uma única vez
2.3.2.1.3 – Método BOSS
O novo método de arbitração definido no IEEE 1394b manteve as melhorias conseguidas pela atualização do IEEE 1394a e avançou bastante na eficiência do controle de acesso ao meio. Uma característica importante deste novo método é que ele funciona mesmo quando há dispositivos que não operam ainda de acordo com a especificação 1394b. Outra vantagem é que neste novo método, os pacotes de sinalização podem ser enviados misturados com os de dados, o que torna a negociação pelo acesso ao meio mais rápida. A seguir será feita uma descrição detalhada do funcionamento do método.
O último nó a enviar um ack em uma comunicação assíncrona ou o gerador primário de pacotes em todos os outros casos se torna o “BOSS” e é o responsável por tomar a próxima decisão de arbitração. Durante a transmissão de pacotes, o gerador primário de pacotes é o único que pode estar recebendo sinais de arbitração em todas as suas portas ativas, portanto é o que tem mais condições de observar as solicitações de arbitração e decidir quem será o próximo a controlar o meio. Este funcionamento fica melhor descrito através da figura abaixo (figura 3)

Figura 3 – O método BOSS
Como pode ser visto na figura 3, as solicitações vão sempre no sentido oposto ao fluxo de dados. Desta forma pode ser feita a sobreposição dos pacotes de sinalização com os pacotes de dados, fazendo uso da comunicação full-duplex (transmissão e recepção simultâneas) existente entre os dispositivos.
Além disso, existe sempre em um barramento um nó que é o raiz, que se torna o “BOSS” caso ocorram longas inatividades. Isto é feito devido à possibilidade de um sinal de ack ter sido perdido ou que algum outro erro tenha ocorrido. Neste caso, o barramento ficaria sem um “BOSS” definido, e a comunicação entre os dispositivos teria problemas.
Um nó pode se tornar o “BOSS” de 2 formas: explícita ou implicitamente. A forma explícita consiste no recebimento de um sinal de GRANT de um outro dispositivo que estava atuando como “BOSS”. A forma implícita ocorre quando um nó percebe por conta própria que uma transmissão terminou (através de um sinal de ack por exemplo) e começa a transmitir.
No método original de arbitração, a separação entre etapas da comunicação (como inicialização do barramento, intervalo a taxas constantes e intervalos assíncronos) era feita através de períodos inativos do meio. Para melhorar isto, no método BOSS a separação entre etapas da comunicação é feita através de tokens, que são transmitidos pelo dispositivo “BOSS” durante um intervalo de tempo que seja suficiente para que todas as máquinas do barramento recebam a sinalização.
Assim como no método original, a transmissão de pacotes é dividida em intervalos síncronos (a taxas constantes) e assíncronos. Um intervalo síncrono começa quando um sinal chamado CYCLE_START_EVEN/ODD é enviado pelo controlador da comunicação. O intervalo síncrono termina quando o BOSS atual não tem mais nenhuma comunicação síncrona em andamento. Quando isto acontece, o BOSS manda um sinal chamado ASYNC_EVEN/ODD, que representa o começo do intervalo assíncrono.
O intervalo assíncrono fica ativo durante todo o tempo em que não há comunicação síncrona. Para encerrar uma comunicação assíncrona, é enviado o mesmo sinal ASYNC_EVEN/ODD. Além disso, quando o meio fica ocioso, o nó raiz fica continuamente enviando este mesmo sinal.
No método original de arbitração, havia apenas um símbolo para as requisições de arbitração. No método BOSS há múltiplos símbolos, o que permitiu que fossem implementados múltiplos tipos de solicitações e prioridades.
O método BOSS usa um conceito chamado pipeline de arbitração, no qual as solicitações de arbitração chegam ao “BOSS” com bastante antecedência em relação ao momento em que ele terá que tomar uma decisão quanto a eles. Além disso, o conceito de fase de arbitração é introduzido, com esta alternando entre par e ímpar (EVEN/ODD). Tanto o intervalo síncrono quanto o assíncrono tem fase, e as 2 fases são independentes entre si. As fases mudam ao final de cada intervalo síncrono/assíncrono. Quando há um reset no barramento, as 2 fases assumem valor par (even).
Os dispositivos constantemente enviam os pedidos de mais alta prioridade recebidos para o “BOSS”. A prioridade de cada solicitação dependerá do intervalo e da fase em que o barramento estiver no momento. Ao final de um intervalo síncrono/assíncrono, o “BOSS” irá conceder acesso ao pedido de mais alta prioridade para o dado intervalo e fase do barramento. Entretanto, se neste momento o “BOSS” não tiver nenhuma solicitação pendente com o intervalo e a fase atual, ele irá transmitir um ou mais tokens para alterar o intervalo/fase. São possíveis as seguintes situações:
- se o barramento estiver no final do intervalo síncrono e não houver nenhuma solicitação síncrona pendente, o “BOSS” irá enviar um token ASYNC_EVEN/ODD para terminar o intervalo síncrono, mas sem alterar a fase assíncrona.
- se o barramento está no intervalo assíncrono ao final de uma transmissão de pacotes ou entrou no intervalo assíncrono pela situação acima e não houver nenhuma solicitação assíncrona pendente, o “BOSS” irá enviar o token ASYNC_EVEN/ODD para mudar a fase do intervalo assíncrono.
- se não há nenhuma solicitação pendente para esta nova fase também, o “BOSS” concede acesso ao seu “senior” - na figura 3, nós adjacentes que estejam logo acima de um outro nó são “seniors” deste último. Por exemplo, o nó 3 é “senior” de 1 e 2 - de forma que eventualmente o nó raiz ganhe controle sobre o barramento. Após o token de mudança de fase ser enviado, nenhuma outro token de mudança de fase pode ocorrer ser enviado antes que alguma transmissão ocorra durante aquela fase.
Há diversas outras características e funcionalidades do método “BOSS”, incluindo método de acesso híbrido (quando há dispositivos seguindo a especificação 1394b e outros seguindo a especificação original) e o controle da prioridade, mas que devido à complexidade e nível de detalhe dos mesmos fogem ao escopo deste texto.
| Anterior | Inicial | Próximo |