Выделенные и мультиплексируемые линии
В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, поскольку цикл шины разбит на временной интервал для передачи адреса и временной интервал для передачи данных. Структура такой шины показана на рис. 4.10. Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на его дру- | ||
Арбитраж шин 1 7 1 | ||
гом конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств. Мультиплексирование позволяет сократить общее число линий, но требует усложнения логики связи с шиной. Кроме того, оно ведет к потенциальному снижению производительности, поскольку исключает возможность параллельной передачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на ША адрес, а на ТТТД — записываемое слово. Примером применения мультиплексируемой шины адреса/данных может служить шина Futurebus+. | ||
Арбитраж шин
Арбитраж шины
До этого момента мы неявно предполагали, что существует только одно задающее устройство шины — центральный процессор. В действительности микросхемы ввода-вывода могут становиться задающими устройствами при считывании информации из памяти и записи информации в память. Кроме того, они могут вызывать прерывания. Сопроцессоры также могут становиться задающими устройствами шины. Возникает вопрос: «Что происходит, когда задающим устройством шины становятся два или более устройства одновременно?» Чтобы предотвратить хаос, который может при этом возникнуть, нужен специальный механизм, называемый арбитражем шины.
Арбитраж может быть централизованным или децентрализованным. Рассмотрим сначала централизованный арбитраж. Простой пример централизованного арбитража показан на рис. 3.37, а. В данном примере один арбитр шины определяет, чья очередь следующая. Часто механизм арбитража встраивается в микросхему процессора, но иногда используется отдельная микросхема. Шина содержит одну линию запроса (монтажное ИЛИ), которая может запускаться одним или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов.
Рис. 3.37. Одноуровневый централизованный арбитраж шины с последовательным опросом (а); двухуровневый централизованный арбитраж (б)
Когда арбитр обнаруживает запрос шины, он устанавливает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вы вода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство получает сигнал предоставления шины, это устройство проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству. Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса. Передача сигнала предоставления шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной. Такая система называется системой последовательного опроса. При этом приоритеты устройств зависят от того, насколько близко они находятся к арбитру. Ближайшее к арбитру устройство обладает наивысшим приоритетом.
Синхронный протокол
В синхронном протоколе все сигналы «привязаны» к импульсам единого центрального генератора тактовых импульсов. Тактовые импульсы распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период такой последовательности называется тактовым периодом шины . Именно он определяет минимальный квант времени на шине (временной слот). Все подключенные к шине устройства могут считывать состояние тактовой линии, и все события на шине отсчитываются от начала тактового периода. Изменение управляющих сигналов на шине обычно совпадает с передним или задним фронтом тактового импульса, иными словами, момент смены состояния на синхронной шине известен заранее и определяется тактовыми импульсами. Стартовый сигнал отмечает присутствие на линиях шины адресной или управляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения. Операция записи выглядит сходно. Отличие состоит в том, что данные выдаются ведущим устройством в тактовом периоде, следующем за периодом выставления адреса, и остаются на шине до отправки ведомым устройством сигнала подтверждения и информации состояния. Отметим, что в каждой транзакции присутствуют элементы чтения и записи, и для каждого направления пересылки имеется свой сигнал подтверждения достоверности информации на шине . Сигналы управления и адрес всегда перемещаются от ведущего устройства. Информация состояния всегда поступает от ведомого устройства. Данные могут перемещаться в обоих направлениях. Хотя скорость распространения сигналов в синхронном протоколе явно не фигурирует, она должна учитываться при проектировании шины . Тактовые импульсы обычно распространяются вдоль шины с обычной скоростью прохождения сигналов, и за счет определенных технических усилий можно добиться практически одновременной доставки тактовых импульсов к каждому разъему шины . Выбираться тактовая частота должна таким образом, чтобы сигнал от любой точки на шине мог достичь любой другой точки несколько раньше, чем завершится тактовый период, то есть шина должна допускать расхождение в моментах поступления тактовых импульсов. Поэтому, более короткие шины могут быть спроектированы на более высокую тактовую частоту. Синхронные протоколы требуют меньше сигнальных линий, они проще для реализации и тестирования. Поскольку для реализации синхронного протокола практически не требуется дополнительной логики, эти шины могут быть быстрыми и дешевыми. С другой стороны, они менее гибки, поскольку привязаны к конкретной максимальной тактовой частоте и, следовательно, к конкретному уровню технологии. По этой причине существующие шины часто не в состоянии реализовать потенциал производительности подключаемых к ним новых устройств. Кроме того, из-за проблемы перекоса синхросигналов синхронные шины не могут быть длинными, а ведущий должен работать со скоростью самого медленного из участвующих в пересылке данных ведомых.
Асинхронный протокол
Асинхронные протоколы представляют собой наиболее старый способ связи. Эти протоколы оперируют не с кадрами, а с отдельными символами, которые представлены байтами со старт-стоповыми символами. Асинхронные протоколы ведут свое происхождение от тех времен, когда два человека связывались с помощью телетайпов по каналу «точка-точка». С развитием техники асинхронные протоколы стали применяться для связи телетайпов, разного рода клавиатур и дисплеев с вычислительными машинами. Единицей передаваемых данных был не кадр данных, а отдельный символ. Некоторые символы имели управляющий характер, например символ CR предписывал телетайпу или дисплею выполнить возврат каретки на начало строки. В этих протоколах существуют управляющие последовательности, обычно начинающиеся с символа ESC. Эти последовательности вызывали на управляемом устройстве достаточно сложные действия - например, загрузку нового шрифта на принтер. В асинхронных протоколах применяются стандартные наборы символов, чаще всего ASCII или EBCDIC. Так как первые 32 или 27 кодов в этих наборах являются специальными кодами, которые не отображаются на дисплее или принтере, то они использовались асинхронными протоколами для управления режимом обмена данными. В самих пользовательских данных, которые представляли собой буквы, цифры, а также такие знаки, как и т. п., специальные символы никогда не встречались, так что проблемы их отделения от пользовательских данных не существовало. Постепенно асинхронные протоколы усложнялись и стали наряду с отдельными символами использовать целые блоки данных, то есть кадры. Например, популярный протокол XMODEM передает файлы между двумя компьютерами по асинхронному модему. Начало приема очередного блока файла инициируется символьной командой - принимающая сторона постоянно передает символ ASCII NAK. Передающая сторона, приняв NAK, отправляет очередной блок файла, состоящий из 128 байт данных, заголовка и концевика. Заголовок состоит из специального символа SOH (Start Of Header) и номера блока. Концевик содержит контрольную сумму блока данных. Приемная сторона, получив новый блок, проверяла его номер и контрольную сумму. В случае совпадения этих параметров с ожидаемыми приемник отправлял символ АСК, а в противном случае - символ NAK, после чего передатчик должен был повторить передачу данного блока. В конце передачи файла передавался символ ЕОХ. Как видно из описания протокола XMODEM, часть управляющих операций выполнялась в асинхронных протоколах посылкой в асинхронном режиме отдельных символов, в то же время часть данных пересылалась блоками, что более характерно для синхронных протоколов .