VMEbus

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

Содержание

История шины

В 1979 компания Motorola разрабатывала свой новый микропроцессор 68000, и один из её инженеров, Jack Kister, поднять вопрос о создании стандартизированной шины для систем, использующих 68000, которую он назвал VERSAbus.

Шина VME была использована при разработке очень похожего стандарта VXIbus.

Характеристики шины

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

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

Описание шины

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

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

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

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

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

Для управления шиной используется набор из девяти линий, известный как arbitration bus. Всю передачу информации по шине контроллирует арбитр шины, расположенный на плате, установленной в слот номер 1 шасси Eurocard, такая плата называется 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 это не является большим недостатком.

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home