Шины
Необходимость обнаружения коллизий и арбитража накладывает ограничения на физический размер шины: сигналы распространяются по шине с конечной скоростью, а любые два конфликтующих устройства должны узнать коллизии за время, меньшее чем минимальный цикл передачи данных (цикл шины). Описанная выше шина 12С предназначена для низкоскоростной связи в пределах одной печатной платы, поэтому для нее эта проблема не актуальна, однако для локальных сетей, протяженность которых составляет сотни метров или даже километры, и для системных шин компьютеров с большим количеством процессоров и банков памяти это превращается в серьезную проблему. Кроме того, большое количество коллизий само по себе снижает производительность системы.
Один из основных путей решения этой проблемы упоминался в разд. "Многопроцессорные архитектуры": замена шины центральным коммутатором, либо более или менее сложной сетью коммутаторов. Устройства соединяются с ближайшим коммутатором полнодуплексными двухточечными каналами, такие же каналы используются для соединения коммутаторов друг с другом, а все коллизии возникают и разрешаются только внутри коммутаторов.
Внутренняя шина коммутатора, как правило, имеет большую пропускную способность, чем внешние соединения – у многих практически используемых коммутаторов несколько внутренних шин, поэтому разрешение коллизии внутри коммутатора часто состоит в отправке данных другим путем (рис. 9.18).
Рис. 9.18. Коммутатор с несколькими внутренними шинами
Таким образом, коммутируемая магистраль позволяет уменьшить производительности, порождаемые коллизиями, и повысить реальную пропускную способность магистрали. Однако коммутируемая магистраль значительно повышает общую стоимость системы и далеко не всегда оправдана этой точки зрения.
Применяются также гибридные топологии, когда все или некоторые устройства подключаются к коммутатору полудуплексным портом или коротки участком шины – при этом возможны локальные коллизии, но их гораздо меньше, чем при единой шине. Гибридная топология позволяет использовать устройства с одними и теми же приемопередатчиками как в обычной шинной, так и в коммутируемой топологии (рис. 9.19). В частности, именно такую гибридную топологию имеют описанные в разд. "Многопроцессорные архитектуры" многопроцессорные системы IBM NUMA-Q и SGI Origin – процессоры и память подключаются к локальной шине процессорного модуля, а сами модули соединяются коммутируемой сетью.
Гибридная топология также позволяет снизить стоимость системы по сравнению с полностью коммутируемой сетью – коммутаторы можно устанавливать только в тех участках шины, где расстояния или большое количество коллизий становятся проблемой. В таких сетях часто используются двухпортовые коммутаторы, называемые мостами (bridge). Так же называются и адаптеры, используемые для соединения двух шин с разными протоколами.
Рис. 9.19. Гибридная топология