VMEbus ( Versa Module Eurocard [1] bus) es un estándar de bus de computadora basado físicamente en tamaños de Eurocard .
En 1979, durante el desarrollo de la CPU Motorola 68000 , uno de sus ingenieros, Jack Kister, decidió crear un sistema de bus estandarizado para los sistemas basados en 68000. [2] El equipo de Motorola debatió ideas durante días para seleccionar el nombre VERSAbus. Las tarjetas VERSAbus eran grandes, 370 por 230 mm ( 14+1 ⁄ 2 por 9+1 ⁄ 4 in) y utilizó conectores de borde . [3] Solo unos pocos productos lo adoptaron, incluido el controlador de instrumentos IBM System 9000 y los sistemas de visión artificial y robótica Automatix .
Kister fue acompañado más tarde por John Black, quien refinó las especificaciones y creó el concepto de producto VERSAmodule . Una joven ingeniera que trabajaba para Black, Julie Keahey, diseñó la primera tarjeta VERSAmodule, el módulo adaptador VERSAbus, que se utilizó para ejecutar las tarjetas existentes en el nuevo VERSAbus. Sven Rau y Max Loesel de Motorola-Europe añadieron una especificación mecánica al sistema, basándose en el estándar Eurocard que entonces se encontraba en una fase avanzada del proceso de estandarización. El resultado se conoció primero como VERSAbus-E, pero más tarde se renombró como VMEbus , por VERSAmodule Eurocard bus (aunque algunos lo llaman Versa Module Europa ). [3]
En ese momento, varias otras empresas involucradas en el ecosistema del 68000 acordaron utilizar el estándar, entre ellas Signetics, Philips, Thomson y Mostek. Pronto fue estandarizado oficialmente por la IEC como IEC 821 VMEbus y por ANSI e IEEE como ANSI/IEEE 1014-1987.
El estándar original era un bus de 16 bits , diseñado para encajar dentro de los conectores DIN Eurocard existentes . Sin embargo, ha habido varias actualizaciones al sistema para permitir anchos de bus más amplios. El VME64 actual incluye un bus completo de 64 bits en tarjetas de tamaño 6U y de 32 bits en tarjetas de 3U. El protocolo VME64 tiene un rendimiento típico de 40 MB /s. [3] Otros estándares asociados han añadido intercambio en caliente ( plug-and-play ) en VME64x , tarjetas "IP" más pequeñas que se conectan a una sola tarjeta VMEbus y varios estándares de interconexión para vincular sistemas VME entre sí.
A finales de los años 90, los protocolos sincrónicos demostraron ser favorables. El proyecto de investigación se denominó VME320. La organización de estándares VITA solicitó un nuevo estándar para placas base VME32/64 sin modificar. [3] El nuevo protocolo 2eSST fue aprobado en ANSI/VITA 1.5 en 1999.
A lo largo de los años, se han añadido muchas extensiones a la interfaz VME, que proporcionan canales de comunicación de "banda lateral" en paralelo al propio VME. Algunos ejemplos son el módulo IP, RACEway Interlink, SCSA, Gigabit Ethernet en placas base VME64x, PCI Express, RapidIO, StarFabric e InfiniBand.
VMEbus también se utilizó para desarrollar estándares estrechamente relacionados, VXIbus y VPX . VMEbus tuvo una fuerte influencia en muchos buses de computadora posteriores, como STEbus .
Los conceptos arquitectónicos del VMEbus se basan en VERSAbus, [3] desarrollado a fines de la década de 1970 por Motorola. Posteriormente, Lyman (Lym) Hevle, entonces vicepresidente de operaciones de Motorola Microsystems, lo rebautizó como "VME", abreviatura de Versa Module European (módulo Versa europeo). (Más tarde, fue el fundador del VME Marketing Group, que posteriormente pasó a llamarse VME International Trade Association o VITA).
John Black de Motorola, Craig MacKenna de Mostek y Cecil Kaplinsky de Signetics desarrollaron el primer borrador de la especificación VMEbus. En octubre de 1981, en la feria comercial System '81 en Munich, Alemania Occidental, Motorola, Mostek, Signetics/Philips y Thomson CSF anunciaron su apoyo conjunto al VMEbus. También pusieron la Revisión A de la especificación en el dominio público.
En 1985, Aitech desarrolló, bajo contrato para el TACOM del ejército de los EE. UU ., la primera placa VMEbus 6U refrigerada por conducción. Si bien proporcionaba una interfaz de protocolo VMEbus compatible desde el punto de vista eléctrico, mecánicamente, esta placa no era intercambiable para su uso en chasis de desarrollo VMEbus de laboratorio refrigerados por aire.
A fines de 1987, se formó un comité técnico bajo la dirección de IEEE para crear la primera placa VMEbus de 6U × 160 mm refrigerada por conducción, totalmente compatible eléctrica y mecánicamente, de uso militar, copresidida por Dale Young (DY4 Systems) y Doug Patterson (Plessey Microsystems, entonces Radstone Technology). La norma ANSI/IEEE-1101.2-1992 fue ratificada y publicada posteriormente en 1992 y sigue vigente como estándar internacional refrigerado por conducción para todos los productos VMEbus de 6U.
En 1989, John Peters de Performance Technologies Inc. desarrolló el concepto inicial de VME64: multiplexación de líneas de datos y direcciones (A64/D64) en el VMEbus. El concepto se demostró ese mismo año y se presentó ante el Comité Técnico de VITA en 1990 como una mejora del rendimiento de la especificación VMEbus.
En 1993 se iniciaron nuevas actividades en la arquitectura base VME, que implicaron la implementación de subbuses seriales y paralelos de alta velocidad para su uso como interconexiones de E/S y subsistemas de transferencia de datos. Estas arquitecturas pueden utilizarse como conmutadores de mensajes, enrutadores y pequeñas arquitecturas paralelas de multiprocesadores.
La solicitud de VITA para ser reconocida como organización acreditada de desarrollo de estándares por ANSI fue concedida en junio de 1993. Numerosos otros documentos (incluidos los estándares mezzanine, P2 y de bus serial) han sido colocados ante VITA como Administrador de Dominio Público de estas tecnologías.
En muchos sentidos, el VMEbus es equivalente o análogo a los pines del 68000 que salen a una placa base .
Sin embargo, una de las características clave del 68000 es un modelo de memoria plana de 32 bits , libre de segmentación de memoria y otras "antifunciones". El resultado es que, si bien VME es muy similar al 68000, este último es lo suficientemente genérico como para que esto no sea un problema en la mayoría de los casos.
Al igual que el 68000, VME utiliza buses de datos y direcciones de 32 bits independientes. El bus de direcciones del 68000 es en realidad de 24 bits y el bus de datos de 16 bits (aunque internamente es de 32/32), pero los diseñadores ya estaban pensando en una implementación completa de 32 bits.
Para permitir ambos anchos de bus, VME utiliza dos conectores Eurocard diferentes, P1 y P2. P1 contiene tres filas de 32 pines cada una, que implementan los primeros 24 bits de dirección, 16 bits de datos y todas las señales de control. P2 contiene una fila más, que incluye los 8 bits de dirección y 16 bits de datos restantes.
Un protocolo de transferencia en bloque permite que se produzcan varias transferencias de bus con un único ciclo de dirección. En el modo de transferencia en bloque, la primera transferencia incluye un ciclo de dirección y las transferencias posteriores requieren solo ciclos de datos. El esclavo es responsable de garantizar que estas transferencias utilicen direcciones sucesivas.
Los maestros de bus pueden liberar el bus de dos maneras. Con la función de liberación cuando se realiza (RWD), el maestro libera el bus cuando completa una transferencia y debe volver a arbitrar para el bus antes de cada transferencia posterior. Con la función de liberación a pedido (ROR), el maestro retiene el bus al continuar afirmando BBSY* entre transferencias. ROR permite al maestro retener el control sobre el bus hasta que otro maestro que desee arbitrar para el bus afirme una liberación de bus (BCLR*). Por lo tanto, un maestro que genera ráfagas de tráfico puede optimizar su rendimiento al arbitrar para el bus solo en la primera transferencia de cada ráfaga. Esta disminución en la latencia de transferencia se produce a costa de una latencia de transferencia algo mayor para otros maestros.
Los modificadores de dirección se utilizan para dividir el espacio de direcciones del bus VME en varios subespacios distintos. El modificador de dirección es un conjunto de señales de 6 bits de ancho en la placa base. Los modificadores de dirección especifican la cantidad de bits de dirección significativos, el modo de privilegio (para permitir que los procesadores distingan entre los accesos al bus por software a nivel de usuario o a nivel de sistema) y si la transferencia es o no una transferencia en bloque. A continuación se muestra una tabla incompleta de modificadores de dirección:
En el bus VME, todas las transferencias son DMA y cada tarjeta es maestra o esclava. En la mayoría de los estándares de bus, se agrega una cantidad considerable de complejidad para admitir varios tipos de transferencia y selección maestro/esclavo. Por ejemplo, con el bus ISA , ambas características tuvieron que agregarse junto con el modelo de "canales" existente, por el cual todas las comunicaciones eran manejadas por la CPU host . Esto hace que VME sea considerablemente más simple a nivel conceptual y al mismo tiempo más potente, aunque requiere controladores más complejos en cada tarjeta.
Al desarrollar y/o solucionar problemas del bus VME, el examen de las señales de hardware puede ser muy importante. Los analizadores lógicos y los analizadores de bus son herramientas que recopilan, analizan, decodifican y almacenan señales para que las personas puedan ver las formas de onda de alta velocidad cuando lo deseen.
VITA ofrece una completa sección de preguntas frecuentes para ayudar con el diseño y desarrollo de la interfaz de usuario de los sistemas VME.
Las computadoras que utilizan VMEbus incluyen:
Visto mirando hacia el zócalo de la placa base. [5] [6]
P1
P2
Las filas a y c de P2 pueden ser utilizadas por un bus secundario, por ejemplo el STEbus .
Un equipo de ingenieros de Motorola Microsystems, dirigido por Jack Kister, diseñó un sistema de desarrollo 68000 llamado EXORmacs. La placa base de EXORmacs se denominó VERSAbus. Mientras coordinaba los esfuerzos de su equipo, Jack escribió una descripción del bus de 41 páginas de VERSAbus que se publicó en noviembre de 1979. El primer EXORmacs se envió en enero de 1980.