Основы AS/400 - Фрэнк Солтис
Шрифт:
Интервал:
Закладка:
Рисунок 10.1. Аппаратная структура ввода-вывода
Для иллюстрации структуры ввода-вывода в новых корпусах Mako я использую 12-канальную конфигурацию SMP, описанную в главе 2. По сути, рисунок 10.1 — это рисунок 2.6 с 12-канальной конфигурацией SMP, добавлена лишь структура ввода-вывода. Для подключения всей системы ввода-вывода в корпусах Mako используется SAN (System Area Network)[ 78 ]. На рисунке показаны локальные шины 6хх адреса и данных, связанные интерфейсами шины ввода-вывода и распределенные с помощью
одного или нескольких соединений SAN по кольцевой топологии. В старших моделях AS/400е адаптеры шины SPD содержатся в отдельном корпусе и подключаются к Mako с помощью SAN. Соединение SAN может быть либо медным, либо оптоволоконным, в зависимости от расстояния между корпусами. На рисунке показано подключение шин SPD и PCI. В V4R1 поддерживается только подключение шины SPD. Подключение шины PCI будет добавлено позднее и проиллюстрировано здесь только для того, чтобы показать, как похожи подключения этих двух шин.
IBM SAN поддерживает протокол SCIL (Scalable Coherent Interface Link) основанный на стандарте IEEE 1596 SCI. Протокол модифицирован для обеспечения уровня целостности данных, необходимой коммерческим заказчикам. Посмотрите еще раз на рисунок 10.1. SAN AS/400 предоставляет два дуплексных порта соединения для каждого интерфейса шины ввода-вывода. Каждый из портов состоит из двух однонаправленных 1-байтовых линий данных, которые «гонят» данные в противоположных направлениях для обеспечения полного дуплекса. Эти две линии данных могут быть соединены по кольцевой топологии, которая используется для подключения плат ввода-вывода. На рисунке показано два таких кольца. На тактовой частоте 250 МГц каждый из них обеспечивает скорость передачи 250 МБ/с.
Еще одна интересная особенность SAN — способ, используемый для «прокачки» данных через соединение. Так как соединение SAN является асинхронным, то с передачей данных не связана какая-либо тактовая частота. В противоположность этому, при синхронном соединении среди управляющих линий есть линия тактового сигнала, а также применяется фиксированный протокол коммуникации, зависящий от тактовых импульсов. Синхронная связь требуется от каждого подключения работы на одной и той же частоте. Это обычно означает, что все такие подключения должны быть расположены достаточно близко. Асинхронные соединения отлично работают на больших расстояниях, но, как правило, требуют использования некоторого протокола: приемник и передатчик начинают следующую операцию только после того, как оба к этому готовы. Использование такого протокола может сократить производительность соединения, так как передатчику приходится ждать от приемника подтверждения получения данных.
При использовании в кольце SAN может обойти этот протокол, что позволяет передатчику непрерывно подавать на линию связи новые пакеты. Приемник добавляет в полученный им пакет информацию о получении, которая возвращается и извлекается приемником, когда пакет завершает круг. Данный подход позволяет множественным устройствам, подключенным к SAN, эффективней использовать пропускную способность линии.
Еще одно применение SAN — связь между системами. На рисунке 10.1 показаны два дополнительных порта SAN, выходящих из системы. Обратите внимание, что если вместо использования кольцевой топологии эти два порта напрямую связывают две системы, то общая скорость на каждый порт составляет 500 МБ/с (250 МБ/с в каждом направлении). Для повышенной надежности межсистемного соединения два порта обычно работают параллельно, что дает избыточную линию связи. Если одно из соединений по какой-то причине нарушено, то системы используют резервную линию. Новейшие реализации SAN работают со скоростью 1 ГБ/с даже в случае резервирования. Как мы увидим в главе 11, это идеально для соединения систем в кластер.
Платы ввода-вывода, показанные на рисунке 10.1, содержат IOP на базе процессора PowerPC, его память и вспомогательную аппаратуру, необходимую для предоставления интерфейса шины либо SPD, либо PCI. Затем платы адаптеров ввода-вывода (на рисунке не показаны) подключаются либо к обойме плат SPD, либо к плате адаптеров PCI, которая присоединяется к соответствующей шине. Обратите внимание, что адаптеры ввода-вывода SPD по-прежнему имеют собственные IOP. В данном случае мы имеем дело с двумя уровнями IOP: один — между соединением SAN и шиной SPD и второй — между шиной SPD и устройством.
Конструкция плат ввода-вывода серии AS/400е предназначена также для RS/6000 и, возможно, других систем IBM. Так как RS/6000 не использует IOP для ввода-вывода, а выполняет всю обработку основными процессорами (аналогично ПК), нужно было найти способ устранить IOP с платы ввода-вывода PCI. С этой целью IOP был замещен микросхемой моста, которая фактически подключает шину PCI непосредственно к кольцу SAN и, таким образом, к шинам 6хх. Это позволяет основным процессорам управлять шиной PCI непосредственно.
Шина SPD
Итак, компьютеры серии AS/400е могут поддерживать шины SPD, PCI или обе одновременно. Шина PCI — промышленный стандарт и известна лучше, чем шина SPD, так что мы не будем тратить время на ее детальное описание. К тому же для большинства пользователей основным способом подключения устройств ввода-вывода к системе по-прежнему остается шина SPD, особенно на старших моделях, где поддерживается только она. Поэтому, прежде чем перейти к операциям ввода-вывода на AS/ 400, давайте рассмотрим шину SPD несколько подробнее.
Работу шины SPD обеспечивают платы ввода-вывода, показанные на рисунке 10.1. В терминологии первых моделей AS/400, каждая плата ввода-вывода предоставляет эквивалент устройства управления шиной BCU (bus control unit) для одной шины SPD в системе. К каждой шине может быть подключено до 32 адаптеров ввода-вывода SPD (на рисунке не показаны). Плата адаптера ввода-вывода SPD содержит IOP, а также соответствующую аппаратуру для подключения к системе одного или нескольких устройств.
Каждый IOP на плате адаптера ввода-вывода SPD имеет собственную память и собственную ОС. Эти специализированные ОС реального времени предназначены, в основном, для управления устройствами ввода-вывода. Очевидно, что приложение, выполняющееся на IOP, настроено на поддерживаемый IOP интерфейс конкретного устройства, коммуникационный или ЛВС. С точки зрения функционирования ввода-вывода, IOP, включая все его ПО, является устройством ввода-вывода на шине и называется IOBU (I/O bus unit). Таким образом, к шинам SPD подключаются IOBU, которые предоставляют интерфейс к устройствам ввода-вывода.
Как мы уже говорили в главе 8, для уникальной идентификации шины, IOBU и устройства процессор использует адрес прямого сохранения. IOBU получает команду от процессора системы, заставляет устройство выполнить запрошенную операцию и управляет всей передачей данных в основную память и обратно. По завершении операции ввода-вывода, IOBU передает системному процессору информацию, позволяющую определить, успешна ли операция.
Мы обсудим эти операции подробнее в следующих разделах. Давайте сначала рассмотрим способ физического соединения и некоторые характеристики перечисленных компонентов.
Соединения аппаратуры ввода-вывода SPD
Шина SPD работает асинхронно. Чтобы понять, почему был выбран именно этот вариант, вспомните кольцо SAN. Как отмечалось выше, синхронная шина требует, чтобы все подключенные к ней устройства работали с одинаковой тактовой частотой, что предполагает достаточно близкое расположение таких устройств. PCI — именно такая синхронная шина с тактовой частотой 33 МГц. Шины такого типа быстры и их адаптеры обычно дешевле адаптеров асинхронной шины, которые должны поддерживать собственную синхронизацию. Однако, поскольку асинхронная шина не тактирована, она допускает использование разнообразных устройств, размещенных на большем расстоянии и без угрозы искажения сигнала. Именно эта гибкость послужила причиной первоначального выбора для AS/400 асинхронной шины SPD.
В отличие от SAN, шина SPD не закольцована и должна использовать протокол. Такой протокол требует, чтобы передатчик и приемник начинали следующую операцию только после того, как оба они к этому готовы. Для этого шина имеет отдельные линии управления. Например, отправитель может установить на линиях управления запрос на считывание, а на линиях данных — адрес. Управляющие сигналы не снимаются до тех пор, пока приемник не подтвердит их получение, поместив сигнал на управляющую линию подтверждения.
К каждой шине SPD подключено как минимум два IOBU. И основной процессор, и контроллер устройства работают как IOBU. Таким образом, на шине SPD никогда не бывает только одного IOBU; ведь основной процессор — это IOBU, так же как и контроллер любого устройства. К одной шине SPD может быть подключено максимально до 32 IOBU. При подключении к шине нескольких IOBU необходим арбитраж, если два или более устройств захотят использовать ее одновременно. Для арбитража используется механизм приоритетности. Каждому IOBU назначается приоритет, определяющий, какой IOBU может использовать шину, если на это претендуют несколько устройств.