VMEbus

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

VMEbus (англ. VersaModule Eurocard bus, иногда VME) — стандарт на компьютерную шину, первоначально разработанный для семейства микропроцессоров Motorola 68000, и в дальнейшем нашедший применение для множества других приложений. Шина VME была стандартизирована МЭК как ANSI/IEEE 1014—1987. Физически в VME используется конструктив Евромеханика. Впервые разработанная в 1981 году, шина VME находит широкое применение вплоть до сегодняшнего дня.

История шины[править | править код]

Ниже представлена краткая история VMEBus, опирающаяся в основном, на историческую страницу с сайта VMEbus International Trade Association.

В 1979 году компания Motorola разрабатывала свой новый микропроцессор 68000, и один из её инженеров, Джек Кистер, поднял вопрос о создании стандартизированной шины для систем, использующих 68000. Изначально предполагалось, что эта шина найдёт своё применение в системах, выполненных в стандарте Евромеханика. Для демонстрации концепции инженерами Motorola’s European Microsystems group Max Loesel и Sven Rau были разработаны прототипы платы CPU 68000, плат статической и динамической памяти. Названная этими разработчиками VERSAbus-E, шина достаточно быстро была переименована в VME. Аббревиатура VME не имеет официальной расшифровки, неофициально её часто раскрывают как VERSAmodule Europe.

1981[править | править код]

  • В начале года компании Motorola, Mostek, и Signetics[en] заключили соглащение о совместном продвижении продвижении шины на рынок.
  • Шина официально и публично представлена на выставке Systems '81 Show
  • Написана черновая версия формальной спецификации VMEbus
  • Revision A спецификации VMEbus передана в общественное достояние (Public Domain)

1982[править | править код]

  • Продукты на базе VMEbus вышли на рынок
  • Сформирована VMEbus Manufacturers Group, которая опубликовала Revision B спецификации VMEBus
  • Спецификация официально представлена в МЭК в качестве проекта международного стандарта. Начата процедура стандартизации VMEbus в качестве стандарта МЭК IEC-821.

1983[править | править код]

  • Представлены связанные с VMEBus стандарты шины расширения памяти VMX и последовательной шины VMS.
  • Начата процедура стандартизации VMEbus в качестве стандарта IEEE 1014.
  • В процессе совместной работы комитетов VMEbus Manufacturers Group, IEEE и IEC начата разработка документа, обозначенного как спецификация VMEBus Revision C.1 (он же IEC 60821 Bus). Впоследствии, ряд его доработок приводит к публикации версии стандарта ANSI/IEEE 1014-1987, официально действующей до сих пор.

1984[править | править код]

  • VME Manufacturers Group преобразуется VMEbus International Trade Association (VITA). Этой организации передаётся ответственность за дальнейшее формирование экосистемы VMEbus и связанных с ней технологий.
  • В рамках VITA начата разработка официальной спецификации VME Subsystem Bus (VSB)

1985[править | править код]

  • Публикуется Revision C.1 спецификации VMEbus
  • UNIX System V получает поддержку VMEbus
  • Появляется первая группа пользователей VME
  • Начинается выпуск первого периодического издания, целиком сфокусированного на VME - журнала VMEbus Systems.
  • Расширения VSB для высокоскоростного ввода вывода принимаются МЭК в качестве стандарта IEC-822.

1986[править | править код]

  • После 4 лет разработки, стандарт IEC-821 официально принят МСЭ.

1987[править | править код]

  • VMEbus официально утверждена IEEE в качестве стандарта IEEE 1014-87.
  • Стандарт VMEbus Extensions for Instrumentation (VXI) начинает совместно разрабатываться компаниями Colorado Data Systems, Hewlett-Packard, Racal Dana Instruments[en], Tektronix и Wavetec[en].

1988[править | править код]

  • Официальная стандартизация VXI

Характеристики шины[править | править код]

  • Разрядность шины — 32/64
  • Адрес/Данные — раздельные (VME32), мультиплексируемые (VME64)
  • Тип шины — Асинхронная
  • Конструктив — Евромеханика 3U, 6U, 9U
  • Максимальное количество модулей в крейте — 21 штука
  • Пропускная способность в 32-разрядном варианте — 40 Мбайт/с (VME32), 80 Мбайт/с (VME64)

В режиме блочных передач (когда на 1-у передачу адреса идёт несколько передач данных) скорость может достигать 320 Мбайт/с (VME64).

Описание шины[править | править код]

Во многом шина VMEbus представляет собой внешние интерфейсы процессора 68000, доработанные для соединения нескольких печатных плат. Обычно подобный дизайн является недостатком, так как принуждает создавать системы, подобные тем, для которых шина применялась изначально. Однако одной из ключевых особенностей процессора 68000 была плоская, 32-битная модель памяти и отсутствие деления памяти на сегменты, что делает шину VME достаточно универсальной для большинства применений.

Как и шина процессора 68000, VME использует отдельную адресную шину и отдельную шину данных, обе из которых являются 32-битными. На самом деле, во время разработки VME, внешняя шина процессора 68000 использовала 24-разрядную шину адреса и 16-разрядную шину данных (хотя внутри микропроцессора обе шины были 32-разрядными), но разработчики VME предвидели необходимость применения 32-разрядных шин в будущем. Для того, чтобы обеспечить возможность применения шин различной разрядности, была предусмотрена возможность применения двух различных типов разъёмов: P1 и P2. Разъём типа P1 содержит три ряда по 32 контакта, и позволяет использовать младшие 24 разряда адреса и 16-разрядную шину данных, а также все управляющие сигналы. Разъём типа P2 содержит на один ряд контактов больше; этот дополнительный ряд содержит оставшиеся 8 линий адреса и 16 линий данных.

Логически все устройства шины VME делятся на три типа:

  • ведущий;
  • ведомый;
  • арбитр.

Ведущий — инициирует циклы на шине. Ведомый — осуществляет операции по команде ведущего. Арбитр — осуществляет контроль над занятостью шины.

Для управления шиной используется набор из девяти линий, известный как arbitration bus. Всю передачу информации по шине контролирует арбитр шины, расположенный на плате, установленной в слот номер 1 шасси, такая плата называется arbiter module. В общем случае для передачи информации по шине каждая плата должна запросить доступ к шине, установив одну из линий bus request in на arbitration bus в активное состояние (лог. 0) для того, чтобы арбитр мог определить её номер слота. Когда арбитр освобождает шину, он сканирует линии bus request in, и проверяет, находятся какие-либо из них в активном состоянии. Если это так, то арбитр устанавливает линию bus busy в активное состояние, указывая таким образом всем устройствам на шине, что шина занята, и разрешает доступ к шине одному устройству путём установки линии bus grant out в активное состояние.

После этого устройство получает доступ к шине. Для того, чтобы записать данные, устройство выставляет адрес и данные на шину, и устанавливает в активное состояние линии address strobe и две линии data strobe, для указания того, что данные готовы, а также устанавливает линию write в активное состояние. Для указания разрядности данных, пересылаемых в данном цикле, используется две линии data strobe, с помощью которых кодируется размер данных: 8, 16 или 32 бита (или 64 для VME64). Ведомое устройство, прочитавшее адрес с шины и опознавшее его как свой, читает данные и устанавливает линию data transfer acknowledge по завершении (в случае ошибки устанавливается линия bus error). Чтение данных происходит аналогичным образом, но ведущее устройство устанавливает на шине только адрес и устанавливает линию read в активное состояние. Другое устройство устанавливает на шине данные и data strobe в активное состояние. Подобный способ обмена называется асинхронным, означая то, что на шине не существует сигнала общей синхронизации (который есть на синхронных шинах, таких, как PCI).

Шина VME имеет семь линий запроса на прерывание (именно столько их было у 68000). При приходе запроса на прерывание по одной из этих линий арбитр шины записывает уровень прерывания на шину адреса, чтобы указать, какое прерывание надо обработать. Следует отметить, что в этом случае не используется номер карты, так как карты во многих случаях могут разделять прерывания. Часто отмечают, что чрезмерное количество уровней прерываний является одним из немногих примеров избыточности в архитектуре 68000, однако для шины VME это не является большим недостатком.

См. также[править | править код]

Ссылки[править | править код]