Шины
Описанные в предыдущем разделе порты передачи данных соединяют друг с другом два устройства. Однако часто оказывается целесообразно подключить к одному порту передачи данных несколько устройств, причем необязательно однотипных. Каждая передаваемая по такому порту порция данных обязана сопровождаться указанием, какому из подключенных устройств она предназначена – адресом или селектором устройства. Такие многоточечные порты называются шинами (bus) (рис. 9.14).
Как и двухточечные порты передачи данных, шины бывают синхронные и асинхронные, а также последовательные и параллельные. При описании шин термины "синхронный" и "асинхронный" используют в ином значении, чем при описании портов. Асинхронными называют шины, в которых ведомое устройство не выставляет (или не обязано выставлять) сигнал завершения операции, а синхронными, соответственно, шины, где ведомый обязан это делать.
Рис. 9.14. Шина
Подключение N устройств двухточечными портами требует, чтобы центральный процессор имел N приемопередатчиков, использование же многоточечного порта позволяет обойтись одним. В частности, за счет этого Удается уменьшить количество выводов микросхемы процессора или периферийного контроллера. Кроме того, при удачном размещении устройств Можно получить значительный выигрыш в общей длине проводов и, таким образом, например, уменьшить количество проводников на печатной плате. Во многих случаях это приводит к столь значительному снижению общей стоимости системы, что оказывается целесообразным смириться с усложнением протокола передачи данных и другими недостатками, присущими шинной архитектуре.
Основной недостаток шин состоит в том, что в каждый момент времени только одно устройство на шине может передавать данные. Если у двухточечных портов часто оказывается целесообразным реализовать полуподуплексный обмен данными при помощи двух комплектов линий (один прием, другой на передачу, как в описанном выше RS232), то в случае шинной топологии это невозможно. Поэтому шины бывают только полудуплексные или симплексные.
Невозможность параллельно осуществлять обмен с двумя устройствами может привести к падению производительности по сравнению с собственным портом обмена данными у каждого устройства. Если устройства не занимают пропускную способность каналов передачи полностью, проигрыш оказывается не так уж велик. Благодаря этому шины широко используются даже в ситуациях, когда только одно устройство имеет возможность инициировать обмены данными.
Если передачу данных могут инициировать несколько устройств (как, например, в случае системной шины с несколькими процессорами и/или контроллерами ПДП), шинная топология оказывается наиболее естественным выбором. Такая конфигурация требует решения еще одной проблемы: обеспечения арбитража доступа к шине со стороны возможных инициаторов обмена – задатчиков шины (рис. 9.15). Методы арбитража отличаются большим разнообразием.
Рис. 9.15. Шина с несколькими задатчиками