VMEbus - VMEbus

Caixa VME64 com, a partir da esquerda, um módulo ADC, um módulo scaler e um módulo processador

VMEbus ( Versa Module Europa ou Versa Module Eurocard bus) é um barramento padrão de computador , originalmente desenvolvido para a linha de CPUs Motorola 68000 , mas posteriormente amplamente utilizado para muitas aplicações e padronizado pelo IEC como ANSI / IEEE 1014-1987. É fisicamente baseado em tamanhos Eurocard , mecânicos e conectores ( DIN 41612 ), mas usa seu próprio sistema de sinalização, que o Eurocard não define. Foi desenvolvido pela primeira vez em 1981 e continua a ser amplamente utilizado hoje.

História

Em 1979, durante o desenvolvimento da CPU Motorola 68000 , um de seus engenheiros, Jack Kister, decidiu criar um sistema de barramento padronizado para sistemas baseados em 68000. A equipe da Motorola debateu durante dias para selecionar o nome VERSAbus. Os cartões VERSAbus eram grandes, 370 por 230 mm ( 14+12 por 9+14  pol.) E conectores de borda usados. Apenas alguns produtos o adotaram, incluindo ocontrolador de instrumento IBM System 9000 e orobô Automatix e sistemas de visão de máquina.

Cartão de memória VERSAbus

Mais tarde, John Black se juntou a Kister, que refinou as especificações e criou o conceito de produto VERSAmodule . Uma jovem engenheira trabalhando para a Black, Julie Keahey projetou a primeira placa VERSAmodule, o Módulo Adaptador VERSAbus, usado para executar placas existentes no novo VERSAbus. Sven Rau e Max Loesel da Motorola-Europe adicionaram uma especificação mecânica ao sistema, baseando-o no padrão Eurocard , que estava atrasado no processo de padronização. O resultado foi inicialmente conhecido como VERSAbus-E, mas mais tarde foi renomeado para VMEbus , para VERSAmodule Eurocard bus (embora alguns se refiram a ele como Versa Module Europa ).

Nesse ponto, várias outras empresas envolvidas no ecossistema do 68000 concordaram em usar o padrão, incluindo Signetics, Philips, Thomson e Mostek. Logo ele foi oficialmente padronizado pela IEC como IEC 821 VMEbus e pela ANSI e IEEE como ANSI / IEEE 1014-1987.

O padrão original era um barramento de 16 bits , projetado para caber nos conectores DIN Eurocard existentes . No entanto, houve várias atualizações no sistema para permitir larguras de barramento maiores. O VME64 atual inclui um barramento completo de 64 bits em placas de tamanho 6U e 32 bits em placas 3U. O protocolo VME64 tem um desempenho típico de 40 MB / s. Outros padrões associados adicionaram hot-swapping ( plug-and-play ) no VME64x , placas 'IP' menores que se conectam a uma única placa VMEbus e vários padrões de interconexão para conectar sistemas VME.

No final da década de 1990, os protocolos síncronos mostraram-se favoráveis. O projeto de pesquisa foi denominado VME320. A VITA Standards Organization pediu um novo padrão para backplanes VME32 / 64 não modificados. O novo protocolo 2eSST foi aprovado em ANSI / VITA 1.5 em 1999.

Com o passar dos anos, muitas extensões foram adicionadas à interface do VME, fornecendo canais de comunicação de 'banda lateral' em paralelo ao próprio VME. Alguns exemplos são Módulo IP, RACEway Interlink, SCSA, Gigabit Ethernet em Backplanes VME64x, PCI Express, RapidIO, StarFabric e InfiniBand.

O VMEbus também foi usado para desenvolver padrões intimamente relacionados, VXIbus e VPX . O VMEbus teve uma forte influência em muitos barramentos de computador posteriores, como o STEbus .

VME primeiros anos

Os conceitos arquitetônicos do VMEbus são baseados no VERSAbus, desenvolvido no final dos anos 1970 pela Motorola. O grupo European Microsystems da Motorola em Munique, Alemanha Ocidental, propôs o desenvolvimento de uma linha de produtos do tipo VERSAbus baseada no padrão mecânico Eurocard. Para demonstrar o conceito, Max Loesel e Sven Rau desenvolveram três placas protótipo: (1) uma placa de CPU 68000; (2) uma placa de memória dinâmica; (3) uma placa de memória estática. Eles chamaram o novo ônibus de VERSAbus-E. Posteriormente, foi renomeado como "VME", abreviação de Versa Module European, por Lyman (Lym) Hevle, então vice-presidente da Motorola Microsystems Operation. (Ele foi mais tarde o fundador do VME Marketing Group, posteriormente renomeado para VME International Trade Association, ou VITA). No início de 1981, a Motorola, Mostek e Signetics concordaram em desenvolver e oferecer suporte conjunto à nova arquitetura de ônibus. Todas essas empresas apoiaram a família de microprocessadores 68000.

John Black da Motorola, Craig MacKenna da Mostek e Cecil Kaplinsky da Signetics desenvolveram o primeiro rascunho da especificação VMEbus. Em outubro de 1981, na feira System '81 em Munique, Alemanha Ocidental, a Motorola, Mostek, Signetics / Philips e Thomson CSF anunciaram seu apoio conjunto ao VMEbus. Eles também colocaram a Revisão A da especificação no domínio público. Em agosto de 1982, a Revisão B da especificação VMEbus foi publicada pelo recém-formado VMEbus Manufacturers 'Group (VITA). Esta nova revisão refinou as especificações elétricas para os drivers e receptores da linha de sinal e trouxe a especificação mecânica ainda mais em linha com o padrão IEC 297 em desenvolvimento (a especificação formal para formatos mecânicos Eurocard). No final de 1982, a delegação francesa da Comissão Eletrotécnica Internacional (IEC) propôs a Revisão B do VMEbus como um padrão internacional. O subcomitê IEC SC47B nomeou Mira Pauker, da Philips, França, a presidente de um comitê editorial, iniciando formalmente a padronização internacional do VMEbus.

Em março de 1983, o IEEE Microprocessor Standards Committee (MSC) solicitou autorização para estabelecer um grupo de trabalho que pudesse padronizar o VMEbus nos Estados Unidos. Esta solicitação foi aprovada pelo IEEE Standards Board e o Grupo de Trabalho P1014 foi estabelecido. Wayne Fischer foi nomeado primeiro presidente do grupo de trabalho. John Black atuou como presidente do Subcomitê Técnico P1014. O IEC, IEEE e VMEbus Manufacturers Group (agora VITA) distribuiu cópias da Revisão B para comentários e recebeu as solicitações resultantes de alterações no documento. Esses comentários deixaram claro que era hora de ir além da Revisão B. Em dezembro de 1983, uma reunião foi realizada que incluía John Black, Mira Pauker, Wayne Fischer e Craig MacKenna. Ficou acordado que uma Revisão C deveria ser criada e que deveria levar em consideração todos os comentários recebidos pelas três organizações. John Black e Shlomo Pri-Tal da Motorola incorporaram as alterações de todas as fontes em um documento comum. O VMEbus Manufacturers Group rotulou o documento como Revisão C.1 e o colocou em domínio público. O IEEE o rotulou como P1014 Draft 1.2 e o IEC o rotulou como IEC 821 Bus. As votações subsequentes no Grupo de Trabalho IEEE P1014 e no MSC resultaram em mais comentários e exigiram que o rascunho do IEEE P1014 fosse atualizado. Isso resultou na especificação ANSI / IEEE 1014-1987.

Em 1985, a Aitech desenvolveu sob contrato para a US TACOM, a primeira placa VMEbus 6U resfriada por condução. Embora forneça eletricamente uma interface de protocolo VMEbus compatível, mecanicamente, esta placa não era intercambiável para uso em chassis de desenvolvimento VMEbus de laboratório resfriado a ar.

No final de 1987, um comitê técnico foi formado sob a VITA sob a direção do IEEE para criar o primeiro conselho militar VMEbus, resfriado por condução 6U  × 160  mm, totalmente eletricamente e mecanicamente compatível, co-presidido por Dale Young (DY4 Systems) e Doug Patterson (Plessey Microsystems, depois Radstone Technology). ANSI / IEEE-1101.2-1992 foi posteriormente ratificado e lançado em 1992 e permanece em vigor como o padrão internacional resfriado por condução para todos os produtos VMEbus 6U.

Em 1989, John Peters da Performance Technologies Inc. desenvolveu o conceito inicial de VME64: endereço de multiplexação e linhas de dados (A64 / D64) no VMEbus. O conceito foi demonstrado no mesmo ano e colocado no Comitê Técnico VITA em 1990 como um aprimoramento de desempenho para a especificação VMEbus. Em 1991, o PAR (Solicitação de Autorização de Projeto) para P1014R (revisões da especificação VMEbus) foi concedido pelo IEEE. Ray Alderman, Diretor Técnico da VITA, co-presidiu a atividade com Kim Clohessy da DY-4 Systems.

No final de 1992, os aprimoramentos adicionais para VMEbus (A40 / D32, Ciclos bloqueados, Rescinding DTACK *, Autoslot-ID, Auto System Controller e mecânicos de conector DIN aprimorados) exigiram mais trabalho para concluir este documento. O Comitê Técnico VITA suspendeu o trabalho com o IEEE e buscou o credenciamento como uma organização de desenvolvedor de padrões (SDO) com o American National Standards Institute (ANSI). O IEEE Par P1014R original foi posteriormente retirado pelo IEEE. O Comitê Técnico VITA voltou a usar a especificação VMEbus C.1 de domínio público como seu documento de nível básico, ao qual eles adicionaram novos aprimoramentos. Este trabalho de aprimoramento foi empreendido inteiramente pelo Comitê Técnico VITA e resultou em ANSI / VITA 1-1994. O tremendo empreendimento da edição do documento foi realizado por Kim Clohessy da DY-4 Systems, o co-presidente técnico da atividade, com grande ajuda de Frank Hom que criou os desenhos mecânicos e as contribuições excepcionais de cada editor de capítulo.

Aprimoramentos adicionais propostos ao Subcomitê VME64 foram colocados no Documento de Extensões do VME64. Duas outras atividades começaram no final de 1992: BLLI (VMEbus Board-level Live Insertion Especificações) e VSLI (VMEbus System-level Live Insertion with Fault Tolerance).

Em 1993, novas atividades começaram na arquitetura base-VME, envolvendo a implementação de sub-barramentos seriais e paralelos de alta velocidade para uso como interconexões de E / S e subsistemas movedores de dados. Essas arquiteturas podem ser usadas como switches de mensagem, roteadores e pequenas arquiteturas paralelas de multiprocessadores.

O pedido de VITA para o reconhecimento como uma organização de desenvolvedor de padrões credenciada de ANSI foi concedida em junho de 1993. Numerosos outros documentos (incluindo mezanino, P2 e padrões de barramento serial) foram colocados com VITA como o administrador de domínio público dessas tecnologias.

Evolução do VME
Topologia Ano Ciclo de ônibus Velocidade máxima (MB / s)
VMEbus32 Barramento Paralelo Rev. A 1981 BLT 40
VMEbus IEEE-1014 1987 BLT 40
VME64 1994 MBLT 80
VME64x 1997 2eVME 160
VME320 1997 2eSST 320

Descrição

Em muitos aspectos, o VMEbus é equivalente ou análogo aos pinos do 68000 executados em um painel traseiro .

No entanto, um dos principais recursos do 68000 é um modelo de memória plana de 32 bits , sem segmentação de memória e outros "anti-recursos". O resultado é que, embora o VME seja muito parecido com o 68000, o 68000 é genérico o suficiente para que isso não seja um problema na maioria dos casos.

Como o 68000, o VME usa dados de 32 bits e barramentos de endereço separados. O barramento de endereços 68000 é, na verdade, de 24 bits e o barramento de dados de 16 bits (embora seja de 32/32 internamente), mas os projetistas já estavam buscando uma implementação completa de 32 bits.

Para permitir ambas as larguras de barramento, o VME usa dois conectores Eurocard diferentes, P1 e P2. P1 contém três linhas de 32 pinos cada, implementando os primeiros 24 bits de endereço, 16 bits de dados e todos os sinais de controle. P2 contém mais uma linha, que inclui os 8 bits de endereço e 16 bits de dados restantes.

O barramento é controlado por um conjunto de nove linhas, conhecido como barramento de arbitragem . Todas as comunicações são controladas pelo cartão no slot um do chassi Eurocard, conhecido como módulo árbitro . Dois modos de arbitragem são suportados - Round Robin e Priorizado.

Independentemente do modo de arbitragem, uma placa pode tentar se tornar o mestre do barramento mantendo uma das quatro linhas de solicitação de barramento baixa. Com a arbitragem round-robin, o árbitro circula entre as linhas de solicitação de barramento BR0 – BR3 para determinar quais dos solicitantes potencialmente simultâneos receberão o barramento. Com a arbitragem de prioridade, BR0 – BR3 usa um esquema de prioridade fixa (BR0 mais baixo, até BR3 mais alto) e o árbitro concederá o barramento ao solicitante de maior prioridade.

Quando o árbitro determina qual dos pedidos de barramento conceder, ele afirma a linha de Concessão de Barramento correspondente (BG0 – BG3) para o nível que obteve o título de mestre no barramento. Se dois mestres solicitarem simultaneamente o barramento usando a mesma linha BR, uma cadeia de concessão de barramento efetivamente rompe o empate, concedendo o barramento ao módulo mais próximo do árbitro. O mestre que recebeu o barramento indicará que o barramento está em uso, declarando Bus Busy (BBSY *).

Neste ponto, o mestre ganhou acesso ao barramento. Para gravar dados, o cartão conduz um endereço, um modificador de endereço e dados no barramento. Em seguida, ele direciona a linha estroboscópica de endereço e as duas linhas estroboscópicas de dados para baixo, para indicar que os dados estão prontos, e direciona o pino de gravação para indicar a direção de transferência. Existem dois strobes de dados e uma linha * LWORD, de modo que os cartões podem indicar se a largura dos dados é 8, 16 ou 32 bits (ou 64 no VME64 ). O cartão no endereço de barramento lê os dados e puxa a linha baixa de reconhecimento de transferência de dados quando a transferência pode ser concluída. Se a transferência não puder ser concluída, ela pode puxar a linha de erro do barramento para baixo. A leitura de dados é essencialmente a mesma, mas a placa de controle conduz o barramento de endereço, deixa o barramento de dados tri-declarado e conduz o pino de leitura. As unidades de cartão escravo leem os dados no barramento de dados e baixam os pinos do strobe de dados quando os dados estão prontos. O esquema de sinalização é assíncrono , o que significa que a transferência não está vinculada ao tempo de um pino de clock do barramento (ao contrário dos barramentos síncronos como o PCI ).

Um protocolo de transferência de bloco permite que várias transferências de barramento ocorram com um único ciclo de endereço. No modo de transferência em bloco, a primeira transferência inclui um ciclo de endereço e as transferências subsequentes requerem apenas ciclos de dados. O escravo é responsável por garantir que essas transferências usem endereços sucessivos.

Os mestres de barramento podem liberar o barramento de duas maneiras. Com o Release When Done (RWD), o mestre libera o barramento quando completa uma transferência e deve arbitrar novamente para o barramento antes de cada transferência subsequente. Com o Release On Request (ROR), o mestre retém o barramento continuando a afirmar BBSY * entre as transferências. O ROR permite que o mestre retenha o controle sobre o barramento até que um Bus Clear (BCLR *) seja declarado por outro mestre que deseja arbitrar para o barramento. Assim, um mestre que gera rajadas de tráfego pode otimizar seu desempenho ao arbitrar para o barramento apenas na primeira transferência de cada rajada. Essa diminuição na latência de transferência tem o custo de uma latência de transferência um pouco maior para outros mestres.

Os modificadores de endereço são usados ​​para dividir o espaço de endereço do barramento VME em vários subespaços distintos. O modificador de endereço é um conjunto de sinais de 6 bits no painel traseiro. Os modificadores de endereço especificam o número de bits de endereço significativos, o modo de privilégio (para permitir aos processadores distinguir entre acessos de barramento por software de nível de usuário ou de sistema) e se a transferência é ou não uma transferência em bloco. Abaixo está uma tabela incompleta de modificadores de endereço:

Código Hex Função Explicação
3f Transferência de bloco de supervisão padrão Block transfer A24, privilegiado
3e Acesso ao programa de supervisão padrão Acesso à instrução A24, privilegiado
3d Acesso aos dados do supervisor padrão Acesso a dados A24, privilegiado
3b Transferência de bloco não privilegiada padrão Transferência de bloco A24 para programas normais
3a Acesso padrão não privilegiado ao programa Acesso à instrução A24, não privilegiado
39 Acesso a dados não privilegiado padrão Acesso a dados A24, sem privilégios
2d Acesso de supervisão curta Acesso privilegiado A16.
29 Acesso curto não privilegiado Acesso não privilegiado A16.
0f Transferência de bloco de supervisão estendida Transferência de bloco privilegiado A32.
0e Acesso estendido ao programa de supervisão Acesso privilegiado à instrução A32.
0d Acesso de dados de supervisão estendido. Acesso privilegiado a dados A32.
0b Transferência de bloco não privilegiada estendida Transferência de bloco não privilegiada A32.
0a Acesso estendido ao programa não privilegiado Acesso de instrução não privilegiado A32.
09 Acesso estendido a dados não privilegiados. Acesso a dados não privilegiado A32.
Observação A n como em A16, A24, A32 refere-se à largura do endereço

O VME também decodifica todos os sete níveis de interrupção do 68000 em um barramento de interrupção de 7 pinos. O esquema de interrupção é uma das interrupções vetorizadas priorizadas. As linhas de solicitação de interrupção (IRQ1 – IRQ7) priorizam as interrupções. Um módulo de interrupção ativa uma das linhas de solicitação de interrupção. Qualquer módulo no barramento pode potencialmente lidar com qualquer interrupção. Quando um módulo de tratamento de interrupção reconhece uma solicitação de interrupção em uma prioridade que ele controla, ele faz a arbitragem para o barramento da maneira usual descrita acima. Ele então executa uma leitura do vetor de interrupção conduzindo a versão binária da linha IRQ que ele trata (por exemplo, se IRQ5 está sendo manipulado, então o binário 101) no barramento de endereço. Ele também ativa a linha IACK, junto com os strobes de transferência de dados apropriados para a largura do status / ID que está sendo lido. Novamente, LWORD *, DS0 * e DS1 * permitem que os ciclos de leitura de status / ID sejam de 8, 16 ou 32 bits, mas a maioria dos interruptores de hardware existentes usam status / IDs de 8 bits. O interruptor responde transferindo um status / ID no barramento de dados para descrever a interrupção. O módulo de tratamento de interrupções (geralmente uma CPU) geralmente usará esse número de status / ID para identificar e executar a rotina de serviço de interrupção de software apropriada.

No barramento VME, todas as transferências são DMA e cada cartão é mestre ou escravo. Na maioria dos padrões de barramento, há uma quantidade considerável de complexidade adicionada para oferecer suporte a vários tipos de transferência e seleção de mestre / escravo. Por exemplo, com o barramento ISA , ambos os recursos tiveram que ser adicionados ao lado do modelo de "canais" existente, pelo qual todas as comunicações eram gerenciadas pela CPU host . Isso torna o VME consideravelmente mais simples em um nível conceitual, embora seja mais poderoso, embora exija controladores mais complexos em cada placa.

Ferramentas de desenvolvimento

Ao desenvolver e / ou solucionar problemas do barramento VME, o exame dos sinais de hardware pode ser muito importante. Analisadores lógicos e analisadores de barramento são ferramentas que coletam, analisam, decodificam e armazenam sinais para que as pessoas possam visualizar as formas de onda de alta velocidade em seu lazer.

VITA oferece um FAQ abrangente para auxiliar no design e desenvolvimento de sistemas VME.

Computadores usando um VMEbus

Os computadores que usam VMEbus incluem:

Pinagem

Visto olhando para o soquete do painel traseiro.

P1

Alfinete uma b c
1 D00 BBSY * D08
2 D01 BCLR * D09
3 D02 ACFAIL * D10
4 D03 BG0IN * D11
5 D04 BG0OUT * D12
6 D05 BG1IN * D13
7 D06 BG1OUT * D14
8 D07 BG2IN * D15
9 GND BG20UT * GND
10 SYSCLK G3IN * SYSFAIL *
11 GND BG3OUT * BERR *
12 DS1 * BR0 * SYSRESET *
13 DS0 * BR1 * LWORD *
14 ESCREVA* BR2 * AM5
15 GND BR3 * A23
16 DTACK * AM0 A22
17 GND AM1 A21
18 COMO* AM2 A20
19 GND AM3 A19
20 IACK * GND A18
21 IACKIN * SERCLK A17
22 IACKOUT * SERDAT * A16
23 SOU GND A15
24 A07 IRQ7 * A14
25 A06 IRQ6 * A13
26 A05 IRQ5 * A12
27 A04 IRQ4 * A11
28 A03 IRQ3 * A10
29 A02 IRQ2 * A09
30 A01 IRQ1 * A08
31 −12V + 5VSTDBY + 12V
32 + 5V + 5V + 5V

P2

Alfinete uma b c
1 Usuário definido + 5V Usuário definido
2 Usuário definido GND Usuário definido
3 Usuário definido RESERVADO Usuário definido
4 Usuário definido A24 Usuário definido
5 Usuário definido A25 Usuário definido
6 Usuário definido A26 Usuário definido
7 Usuário definido A27 Usuário definido
8 Usuário definido A28 Usuário definido
9 Usuário definido A29 Usuário definido
10 Usuário definido A30 Usuário definido
11 Usuário definido A31 Usuário definido
12 Usuário definido GND Usuário definido
13 Usuário definido + 5V Usuário definido
14 Usuário definido D16 Usuário definido
15 Usuário definido D17 Usuário definido
16 Usuário definido D18 Usuário definido
17 Usuário definido D19 Usuário definido
18 Usuário definido D20 Usuário definido
19 Usuário definido D21 Usuário definido
20 Usuário definido D22 Usuário definido
21 Usuário definido D23 Usuário definido
22 Usuário definido GND Usuário definido
23 Usuário definido D24 Usuário definido
24 Usuário definido D25 Usuário definido
25 Usuário definido D26 Usuário definido
26 Usuário definido D27 Usuário definido
27 Usuário definido D28 Usuário definido
28 Usuário definido D29 Usuário definido
29 Usuário definido D30 Usuário definido
30 Usuário definido D31 Usuário definido
31 Usuário definido GND Usuário definido
32 Usuário definido + 5V Usuário definido

As linhas P2 a e c podem ser usadas por um barramento secundário, por exemplo, o STEbus .

Veja também

Referências

links externos