Q-Bus

Q-Bus (также известная как LSI-11 Bus) — одна из разновидностей шин, применяемых в компьютерах PDP-11 и MicroVAX фирмы Digital Equipment Corporation.

Q-Bus являлась удешевленным вариантом шины Unibus и использовала мультиплексирование, так что линии данных и адреса использовали те же самые контакты. Это позволяло как уменьшить размер, так и удешевить конструкцию, при сохранении практически такой же функциональности.

Спустя некоторое время адресное пространство шины было увеличено с 16 до 18 и далее до 22 бит. Также были добавлены режимы пересылки блоков данных.

Технические особенности

[править | править код]
LSI-11/23, видны платы и коннекторы Q-Bus
Корпус DEC BA213; 12 слотов Q-Bus-22

Так же, как и Unibus, Q-Bus использует:

  • Ввод-вывод с отображением на память
  • Адресацию с точностью до байта
  • Строгие отношения главный-подчинённый на шине
  • Асинхронный протокол взаимодействия

Ввод-вывод с отображением на память означает, что при обмене данными между любыми двумя устройствами на шине, такими, как ЦП, память, порты ввода-вывода, используются одни и те же протоколы. На шине Unibus специальный блок адресов был выделен для устройств ввода-вывода. В Q-Bus это соглашение упростили, введя дополнительный сигнал (изначально назывался BBS7 Bus Bank Select 7, позднее получил более общее название BBSIO, Bus Bank Select I/O, в МПИВН ВВ или ВУ), который выбирает блок адресов, предназначенных для устройств ввода-вывода.

Адресацию с точностью до байта означает, что минимальной адресуемой единицей на шине является 8-битный байт. Операция чтения на шине всегда происходит пословно по четному адресу (AD0=0), и ненужный байт просто отбрасывается. При записи байта адресная линия AD0 используется специальным образом, в качестве индексной — для указания смещения в передаваемом слове к передаваемому байту. При AD0=0 байт передаётся по линиям AD0—AD7 и должен быть записан в младший байт адресуемого слова, тогда как при AD0=1 байт передаётся по линиям AD8—AD15 и должен быть записан в старший байт адресуемого слова. Существует специальная линия — WTBT (на МПИБАЙТ или ПЗП), обозначающая, что происходит операция записи только одного байта слова. При записи целого слова (WTBT=0) состояние адресной линии AD0 игнорируется. При работе программы все 16-битные операции (операции со словом) могут обращаться только по чётным адресам, а 16-битная операция по нечётному адресу, в зависимости от типа процессора, или вызывает прерывание особого вида (ошибка шины), или осуществляется по чётному адресу.

Строгие отношения главный-подчинённый на шине означает, что в каждый текущий момент времени только одно устройство может быть в состоянии Главный (Master или Ведущий) на шине. Ведущее устройство инициирует операцию на шине и ему отвечает максимум одно ведомое устройство. Ведущее устройство может инициировать любую операцию — чтение или запись. После окончания цикла шины механизм арбитража выбирает новое устройство, которое будет главным на шине в следующем цикле.

Асинхронный протокол взаимодействия означает что длина цикла шины не зафиксирована во времени; продолжительность каждого отдельного цикла на шине определяется исключительно взаимодействием Ведущего и Ведомого (Master и Slave) устройств в текущем цикле. Эти устройства используют специальные сигналы готовности (RPLY или СИП) для управления длительностью цикла шины. Кроме того, специальная логика Ведущего устройства ограничивает максимальную длительность цикла для предотвращения зависания.

В зависимости от поколения, Q-Bus содержала 16, 18, или 22 линии адреса-данных BDAL (Bus Data/Address Line). При этом, в цикле шины 16, 18, или 22 линии использовались в фазе адреса для передачи физического адреса, а затем 8 или 16 младших линий использовались для передачи данных в фазе передачи данных. В некоторых системах по старшим линиям в фазе передачи данных передавались контрольные разряды или биты четности. Системы нового поколения могли поддерживать блочный режим работы шины, когда после фазы передачи адреса следовала одна или более фаз передачи данных (при этом данные должны были располагаться в последовательных адресах). Поскольку шина Q-Bus мультиплексирована и при передаче адреса передача данных невозможна, блочный режим позволял уменьшить количество фаз адреса и дать больше времени на передачу данных, позволяя увеличить пропускную способность шины.

В СССР был выпущен функциональный аналог шины Q-Bus — Магистральный параллельный интерфейс (иногда Межмодульный параллельный интерфейс) МПИ, который использовался в компьютерах ДВК, Электроника 60 и СМ-1425.