O Passado - Barramento VLB

O Passado - Barramento VLB

28/11/2018

| Escrito por:

  Esta série de artigos é exclusiva para detalhar o funcionamento de interfaces de comunicação muito antigas, aparelhos antigos e componentes eletrônicos que foram muito importantes durante a evolução do computador!

 

  A interface VLB foi criada pela VESA, acrônimo de Vídeo Electronics Standards Association, um grupo de empresas que desenvolve soluções para o mundo da tecnologia.

  O nome VLB significa VESA Local Bus, um barramento de 32 bits com taxa de transferência bem mais alta que o barramento MCA, ISA e EISA. Este barramento era ligado diretamente ao processador da placa-mãe, e por este motivo a frequência de operação poderia variar, mas os valores comuns eram 25 Mhz, 33 Mhz e 40 Mhz.

  O VLB era utilizado exclusivamente por placas de vídeo, e no período em que esta interface foi lançada, o Windows 3.11 já estava no mercado e a demanda por placas de vídeo com maior desempenho era grande. Este "maior desempenho" era atualizar a tela do PC em tempo real enquanto se fazia uma edição de imagem, pois na época não se falava em 3D ou imagens em HD e resoluções superiores.

  Veja abaixo uma placa de expansão ISA 8 bits com VLB feita para interfaces de baixa taxa de transferência e interfaces de armazenamento:

  Em pouco tempo surgiram também placas de expansão com controladores IDE e SCSI, ambos interfaces para armazenamento de dados, já que o barramento VLB tinha uma boa taxa de transferência.

  Um dos grandes problemas foi que, não queriam abandonar o padrão anterior, e por isto o VLB se tornou uma extensão do slot ISA de 16 bits, o que lhe rendeu o apelido de "Very Long Bus", que em português significa "Barramento Muito Longo".

  O VLB funcionava como um canal de alta velocidade para operações de Entrada e Saída (E / S) e DMA mapeados em memória RAM, enquanto o barramento ISA tratou de Interrupções e Entrada e Saída (E / S) mapeadas por porta.

Veja o diagrama de uma placa de expansão ISA-VLB:

  Não só o apelido, o VLB rendeu dores de cabeça com o mal contato, pois se a placa-mãe não estivesse bem parafusada ao gabinete, a pressão feita para encaixar a placa de expansão poderia envergar a MOBO, podendo danificar o slot ISA-VLB. A pressão necessária para encaixar a placa de expansão também provocava danos nos contatos, que combinado com a oxidação natural, acabavam fazendo com que muitas placas pifassem ao conecta-las e desconecta-las algumas vezes no slot.

  Veja abaixo uma placa-mãe com um slot ISA-VLB:

  O VLB não tinha suporte ao Plug And Play, tecnologia que permite a auto configuração de endereços de I/O, IRQ e DMA, e também não tinha suporte ao Bus Mastering, que permite gravação e leitura na memória RAM sem a necessidade da criação de um processo. A ausência desta duas tecnologias fez com que as placas de expansão tivessem que ser configuradas manualmente através de jumpers ou pelo BIOS, além de ter uma alta taxa de utilização do processador, fazendo com que ele fique sobrecarregado.

  Devido a alta utilização do processador, projetar uma placa-mãe com mais de 3 slot's VLB seria criar uma gargalo enorme, portanto as fabricantes implementaram de 1 à 3 slot's nas placas, sendo que, normalmente os usuários conectavam apenas uma placa de vídeo e uma placa Super-IDE VLB (mais explicações sobre as limitações do VLB no final do artigo). Recomendações informais foram dadas:

 > Quando operando com o clock de 33 Mhz, era recomendado instalar no máximo três placas VLB;

 > Quando operando com o clock de 40 Mhz, era recomendado instalar no máximo duas placas VLB (sem levar o consumo elétrico em conta);

 > Quando operando em 50 MHz (clock utilizado pelo processador 80486 DX-50 apenas) se recomendava utilizar apenas uma placa VLB, e mesmo assim poderia haver instabilidades.

 

  O VLB não tinha um controlador próprio, ele era ligado diretamente aos pinos do barramento do processador, igual a interface ISA (que na época do VLB já tinha um controlador próprio), tornando o projeto da placa mais barato. Veja o diagrama abaixo:

  Repare os três slot's VLB em marrom.

  Veja abaixo, a tabela de processadores 486 e seus clock's:

  Um processador 486 DX-2 50, onde o clock do sistema era 25 Mhz, o barramento VLB também trabalhava à 25 Mhz. Um processador 486 DX-4 100, onde o clock do sistema era 33 Mhz, o barramento VLB também trabalhava à 33 Mhz.

  Quando a primeira geração do Pentium chegou ao mercado, com versões de 60 e 66 Mhz e um novo barramento de 64 bits, o barramento VLB foi adaptado, isto é, foi feito as pressas uma espécie de "revisão 2.0" com 64 bits e o dobro da taxa de transferência, mas na verdade se utilizava o mesmo slot, sem a adição de nenhum pino (veja mais detalhes no tópico "FUNCIONAMENTO"). Nesta época da primeira geração do Pentium, o barramento PCI já dava seus primeiros passos, e em pouco tempo o VLB foi abandonado.

  Por ser um barramento de 32 bits e trabalhar com clock's na faixa dos 30 Mhz, a taxa de transferência teórica desta interface é semelhante ao do barramento PCI, ou seja, cerca de 132 MB/s (teoricamente).

  Abaixo é mostrado a tabela de pinos do slot VLB:

Tabela 01

 

  Agora, a explicação de cada pino:

 

 > D0 ao D31: Barramento de dados;

 > A2 ao A31: Barramento de endereços. As Linhas "M/IO#" e "W/R#" representam as linhas de endereços "A0" e "A1";

 > ADS#: Estroboscópio de endereço. Quando é enviado um endereço, esta linha fica em nível LOW durante meio ciclo de clock;

> LEADS#: Utilizado pelo dispositivo mestre VLB (não é a CPU) como estroboscópio para o sinal de endereço, isto é, apenas dentro do barramento VLB, sem ter contato com os outros componentes conectados pelo mesmo barramento do processador. Este sinal permanece em LOW e pode ser utilizado também como sinal de invalidade de cache;

 > BE0# ao BE3#: Byte ativado. 32 bits é igual à 4 Bytes. 1 Byte é enviado através de 8 linhas de dados, sendo que cada grupo de 8 linhas possui um "BEx#" para indicar ao receptor se o Byte enviado é válido ou não;

 > M/IO#: Isso é usado para indicar se o ciclo de barramento atual é uma operação de leitura / escrita ("Leitura de memória" ou "Escrita de memória") ou uma operação de Entrada / Saída ("I/O Leitura", "I/O Escrita"). Veja a Tabela 02 para entender melhor;

 > W/R#: Escrever ou ler. Usado para indicar se o ciclo de barramento atual é uma operação de leitura ou gravação. Veja a Tabela 02 para entender melhor;

 > DC#: Comando / Dados. É utilizado em conjunto com M/IO e W/R para indicar o tipo de operação a ser feita. Observe a tabela abaixo:

 Tabela 02

 

 > LDEV: Quando o endereço for aplicado e os sinais de "M/IO#", "W/R#" e "D/C#" foram aplicados, esta linha é puxada no mesmo instante para LOW e indica um dispositivo VLB em operação;

> RDYRTN#: Indica que o ciclo de atividade no barramento VLB foi concluído. Pode preceder "LRDY#" por um ciclo de clock;

 > LRDY#: Indica uma transferência de dados durante a execução de uma operação ("I/O Leitura", "I/O Escrita", "Leitura de memória" ou "Escrita de memória" - ver Tabela 02) pelo barramento;

 > BLAST#: Significa que está acontecendo uma "rajada de dados". Quando o "BLAST#" está ativado, após a fase de endereço, quatro fases de dados são transferidas;

 > BRDY#: Significa que a rajada de dados acabou. Este sinal é enviado após as quatro fases de dados ativadas por "BLAST#" serem enviadas;

> ID0 ao ID4: Sinais de identificação. Veja a tabela abaixo:

Tabela 03

 

  Os campos marcados com "Res." indica que é um código sem uso, reservado para futuras atualizações (que nunca aconteceram!). A tabela de ID's mostra se há a capacidade de Burst (rajada de dados) e também a largura de banda (16, 32 ou 64 bits) aceita pelos processadores 386 e 486.

  Para o ID2 e ID3 se utiliza a seguinte tabela:

Tabela 04

 

  É esta tabela para ID2 e ID3 que indica se o clock está abaixo ou acima de 33,3 Mhz.

 

 > IRQ9: Pedido de interrupção nível 9 ao controlador de interrupções. Esta linha é conectada ao IRQ9 no barramento ISA. Isso permite que adaptadores VLB independentes, isto é, não relacionados à parte ISA do barramento, tenham um IRQ;

> LBS16#: Utilizado para mostrar que o dispositivo conectado ao barramento VLB suporta uma largura de apenas 16 bits;

 > LCLK: Sinal de clock. Como foi dito mais acima, este sinal é de acordo com a CPU instalada;

 > LGNT: Significa que um sinal "LREQ" foi concedido e o controle de barramento será transferido para outro mestre do barramento VLB (não é a CPU);

 > LREQ: Usado pelo dispositivo conectado ao barramento VLB para obter o controle, ser o mestre de barramento;

 > RESET#: Reinicia todos os dispositivos conectados ao barramento VLB;

 > WBACK#: Indica uma reescrita;

 > LKEN#: Não há necessidade de uso obrigatório. Significa que o dispositivo está ativo.

 

  Existe um método para fazer o VLB trabalhar transferindo 64 bits de dados sem que haja (quase) nenhuma alteração na parte física do slot e no barramento: as linhas de endereço passam a transmitir dados também! Os endereços são multiplexados com os dados, isto é, no primeiro ciclo de clock é enviado o endereço, e no segundo ciclo tanto as linhas dados quanto as de endereço passam a transmitir dados, totalizando 8 Bytes transmitidos.

  Para que este método funcione, há algumas linhas extras que são implementadas no barramento VLB. Veja-as abaixo:

 > ACK64: Indica que o dispositivo conectado pode executar uma transferência de 64 bits se a ele for solicitado;

 > BE4# ao BE7#: Funcionam de forma idêntica as linhas "BE0#" ao "BE3#" do barramento VLB de 32 bits;

 > D32 ao D63: São as linhas de endereço "A2" ao "A31", que passam a transmitir tanto endereços quanto dados. Lembre-se que, não há as linhas "A0" e "A1" no barramento VLB, portanto dois bits são transmitidos pelas linhas "M/IO#" e "W/R#".

 > LBS64#Utilizado para mostrar que o dispositivo conectado ao barramento VLB suporta uma largura de 64 bits.

  Assim como a interface ISA, o VLB funciona executando 4 operações básicas: "I/O Leitura", "I/O Escrita", "Leitura de memória" ou "Escrita de memória". Estas 4 operações são feitas de acordo com o gráfico abaixo:

  Veja agora uma transferência de 64 bits;

  Compare estas informações dos dois gráficos com a Tabela 2 para ter uma noção maior do funcionamento de "W/R#", "M/IO" e "D/C#". Após "LRDY#", o terceiro ciclo de clock é precedido por "RDYRTN#", que indica o fim de uma atividade no barramento.

 

  OBS.: Repare que, quando digo "atividade", estou me referindo à fase de endereço e operação e à fase de dados. Quando digo "operação" estou me referindo as quatro operações que podem ser feitas pelo barramento ("I/O Leitura", "I/O Escrita", "Leitura de memória" ou "Escrita de memória").

 

   Quando a linha "BLAST#" é jogada para nível LOW, significa que, após a fase de endereço e operação terão 4 fases de dados seguidas, para que então a linha "BRDY#" vá à nível LOW indicando o fim da atividade no barramento VLB.

 

  Quando a linha "LBS16" vai a nível LOW durante a fase de endereço e operação, significa que apenas as linhas de dados do "D0" ao "D15" serão utilizadas para transmitir dados. Consequentemente, apenas as linhas BE0# e BE1# serão utilizadas para validar os dois Bytes transmitidos.

 

  No início do texto foi dito que, devido a limitações elétricas e devido a sobrecarga excessiva no processador, no máximo três slot's VLB eram projetados na placa-mãe. A explicação mais detalhada é que, como foi visto nos gráficos acima, todas as linhas permanecem sempre em nível HIGH, somente durante as atividade que elas podem ou não mudar pra nível LOW. Quando um sinal elétrico precisa percorrer uma distância muito longa, ele perde força, e quando este sinal chega em vários dispositivos simultaneamente, ele também perde força, desta maneira, o barramento do processador não tem condições de manter vários dispositivos conectados devido a deterioração do sinal, pois não havia nenhum mecanismo Pull Up ou algo semelhante.

  Este foi mais um artigo detalhando coisas antigas no mundo da tecnologia. Para enviar dúvidas, sugestões, reclamações, escreva para hardwarecentrallr@gmail.com

  Curta e compartilhe nas redes sociais!

FONTES e CRÉDITOS

 

Texto, tabelas e gráficos: Leonardo Ritter

Imagens: Google Imagens; Leonardo Ritter.

Fontes: Hardware.com; Pinouts.ru; Blog do Michael; Wikipédia (Somente artigos com fontes verificadas!).

Please reload

© 2019 Hardware Central Tecnologia Entretenimento e Comunicação do Brasil Ltda. Todos os direitos reservados.

Wix Editor / Revisão da web page: 3.0/2019 (07/10/19)