
- •Глава 7
- •Глава 7
- •7.1.1 Доступ к внешним устройствам
- •7.1.2. Простые внешние устройства
- •7.1.3. Порты передачи данных
- •7.1.4 Шины
- •7.2 Задачи ос по управлению устройствами ввода-вывода
- •7.2.1 Организация параллельной работы устройств ввода-вывода и процессора
- •7.2.2 Согласование скоростей обмена и кэширование данных
- •7.2.3 Разделение устройств и данных между процессами
- •7.2.4 Обеспечение удобного логического интерфейса между устройствами
- •7.2.5 Поддержка широкого спектра драйверов и простота включения
- •7.2.6 Динамическая загрузка и выгрузка драйверов
- •7.2.7 Поддержка нескольких файловых систем
- •7.2.8 Поддержка синхронных и асинхронных операций ввода-вывода
- •7.3 Многослойная модель подсистемы ввода-вывода
- •7.3.1 Общая схема
- •7.3.2 Менеджер ввода-вывода
- •7.3.3 Многоуровневые драйверы
7.1.4 Шины
Описанные в предьщущем разделе порты передачи данных соединйют друг с другом два устройства. Однако часто оказнвается целесообразно подключить к одному порту передачи данных несколько устройств, причем необязательно однотипних. Каждая передаваемая по такому порту порция данных обязана сопровождаться указанием, какому из подключенных устройств она предназначена — адресом или селектором устройства. Такие многоточечные порты называются шинами (bus) (рис. 7.7). Шины бывают синхронные и асинхронные, а также последовательные и параллельные. При описаний шин термины "синхронный" и "асинхронный" используют в ином значений, чем при описаний портов. Асинхронними называют шины, в которых ведомое устройство не выставляет (или не обязано виставлять) сигнал завершення операции, а синхронными, соответственно, шины, где ведомый обязан зто делать.
Рис. 7.7 Шины
Подключение N устройств двухточечными портами требует, чтобы центральний процессор имел N приемопередатчиков, использование же многоточечного порта позволяет обойтись одним. В частности, за счет зтого удается уменьшить количество выводов микросхемы процессора или периферийного контроллера. Кроме того, при удачном размещении устройств можно получить значительньїй выигрыш в общей длине проводов и, таким образом, например, уменьшить количество проводников на печатной плате. Во многих случаях зто приводит к столь значительному снижению общей стоимости системи, что оказывается целесообразным смириться с усложнением протокола передачи данных и другими недостатками, присущими шинной архитектуре.
Основной недостаток шын состоит в том, что в каждый момент времени только одно устройство на шине может передавать данные. Если у двухточечныїх портов часто оказывается целесообразньм реализовать полнодуплексньїй обмен данными при помощи двух комплектов линий (один на прием, другой на передачу, как в описанном выше RS232), то в случае шинной топологии зто невозможно. Позтому шинs бывают только полудуплексные или симплексные.
Невозможность параллельно осуществлять обмен с двумя устройствами может привести к падению производительности по сравнению с собственным портом обмена данными у каждого устройства. Если устройства не занимают пропускную способность каналов передачи полностью, проигрыш оказывается не так уж велик. Благодаря зтому шины широко используются даже в ситуациях, когда только одно устройство имеет возможность инициировать обмены данными.
Если передачу данных могут инициировать несколько устройств (как, например, в случае системной шины с несколькими процессорами и/или контроллерами ПДП), шинная топология оказывается наиболее естественным выбором. Такая конфигурация требует решения еще одной проблемы: обеспечения, арбитража доступа к шине со сторони возможных инициаторов обмена — задатчиков шины (рис. 7.8). Методы арбитража отличаются большим разнообразием.
Рис. 7.8 Шины с несколькими задатчиками
Необходимость обнаружения коллизий и арбитража накладнвает ограничения на физический размер шины: сигнали распространяются по шине с конечной скоростью, а любые два конфликтующих устройства должны узнать о коллизий за время, меньшее чем минимальный цикл передачи данных (цикл шины). Описанная выше шина РС предназначена для низкоскоростной связи в пределах одной печатной плати, позтому для нее эта проблема не актуальна, однако для локальних сетей, протяженность которых составляет сотни метров или даже километры, и для системних шин компьютеров с большим количеством процессоров и банков памяти зто превращается в серьезную проблему.
Шины (как физические, так и логические) находят широчайшее применение в вычислительной технике. В частности, один из важнейших сетевых протоколов канального уровня, Еthernet, начинал свою карьеру как последовательная шина с совмещением синхросигнала и данных, да и современные реализации зтого протокола, хотя физически и представляют собой коммутируемую или, все реже и реже, гибридную сеть, с логаческой точки зрения по-прежнему являются шиной.
Связь центральньїх процессоров с банками ОЗУ и внешними устройствами в подавляющем большинстве современных компьютеров осуществляется параллельными стробируемыми шынами.
В вычислительных системах общего назначения чаще всего используется топология с двумя или более шинами. Процессоры и память связаны системной шиной. К зтой шине также присоединены один или несколько адаптеров периферийных шин, к которым и подключаются внешние устройства (рис. 7.9). Основное преимущество такого решения состоит в том, что одни и те же периферийные устройства могут использоваться в вычислительных системах с различными системными шинами.
Рис.7.9 Системные и периферийные шины
Шина РСІ
Шина РСІ (Peripheriat Component Interconnect), разработанная фирмой Іпіеі, в настоящее время используется в вычислительных системах разного уровня, начиная от персональних компьютеров с архитектурами х86 и РоwегМас и заканчивая старшими моделями серверов Suп Fіге. В конструктиве РСІ исполняется множество различных периферийных устройств— сетевые карты, адаптеры SCSI, графические и звуковые карты, платы видеоввода и видеовывода и др.
РСІ не рассчитана на использование в качестве системной шины. Напротив, спецификации шины предполагают ее подключение к процессорам и памяти через специальное устройство, мост системной шины (host-to-РСІ bгіdge) (рис. 7.10). Зто позволяет использовать РСІ в системах, основанных на различных процессорах, таких, как х86, Роwer, SPARС.
РСІ предусматривает как монтаж устройств на материнскую плату системы, так и их исполнение в виде плат расширения. Шина допускает подключение не болеє 4 устройств.
По исходным спецификациям, не более трех из них может подключаться через внешние разьемы, однако зто не мешает многим поставщикам оборудования изготавливать платы с четырьмя внешними разьемами без мостов. Предусмотренный стандартом способ обхода указанного ограничения состоит в установке в системе нескольких адаптеров РСІ, через собственные мосты системной шины или через РСI-to-РСІ. Bгіdge. Допустимы также мосты, подключающие другие периферийные шины, например ISA, USВ и т. д,
Рис. 7.10 Мост системной шины