Основы AS/400
Шрифт:
Как мы уже говорили в главе 8, для уникальной идентификации шины, IOBU и устройства процессор использует адрес прямого сохранения. IOBU получает команду от процессора системы, заставляет устройство выполнить запрошенную операцию и управляет всей передачей данных в основную память и обратно. По завершении операции ввода-вывода, IOBU передает системному процессору информацию, позволяющую определить, успешна ли операция.
Мы обсудим эти операции подробнее в следующих разделах. Давайте сначала рассмотрим способ физического соединения и некоторые характеристики перечисленных компонентов.
Соединения
Шина SPD работает асинхронно. Чтобы понять, почему был выбран именно этот вариант, вспомните кольцо SAN. Как отмечалось выше, синхронная шина требует, чтобы все подключенные к ней устройства работали с одинаковой тактовой частотой, что предполагает достаточно близкое расположение таких устройств. PCI — именно такая синхронная шина с тактовой частотой 33 МГц. Шины такого типа быстры и их адаптеры обычно дешевле адаптеров асинхронной шины, которые должны поддерживать собственную синхронизацию. Однако, поскольку асинхронная шина не тактирована, она допускает использование разнообразных устройств, размещенных на большем расстоянии и без угрозы искажения сигнала. Именно эта гибкость послужила причиной первоначального выбора для AS/400 асинхронной шины SPD.
В отличие от SAN, шина SPD не закольцована и должна использовать протокол. Такой протокол требует, чтобы передатчик и приемник начинали следующую операцию только после того, как оба они к этому готовы. Для этого шина имеет отдельные линии управления. Например, отправитель может установить на линиях управления запрос на считывание, а на линиях данных — адрес. Управляющие сигналы не снимаются до тех пор, пока приемник не подтвердит их получение, поместив сигнал на управляющую линию подтверждения.
К каждой шине SPD подключено как минимум два IOBU. И основной процессор, и контроллер устройства работают как IOBU. Таким образом, на шине SPD никогда не бывает только одного IOBU; ведь основной процессор — это IOBU, так же как и контроллер любого устройства. К одной шине SPD может быть подключено максимально до 32 IOBU. При подключении к шине нескольких IOBU необходим арбитраж, если два или более устройств захотят использовать ее одновременно. Для арбитража используется механизм приоритетности. Каждому IOBU назначается приоритет, определяющий, какой IOBU может использовать шину, если на это претендуют несколько устройств.
Прежде чем закончить эту тему и продолжить обсуждение ввода-вывода, следует отметить, что IOP можно использовать не только для функций управления вводом-выводом. Совершенно ясно, что IOP — это полноценный процессор со своей собственной ОС и прикладными программами. Он также имеет непосредственный доступ к основной памяти и, посредством шины ввода-вывода, к дисковой системе AS/ 400. Таким образом, IOP годится и для выполнения пользовательских приложений, и такая возможность интенсивно реализуется в AS/400. Подробнее об этом — в следующей главе.
Работа шины ввода-вывода SPD
Каждая плата ввода-вывода SPD предоставляет BCU для одной шины SPD. BCU осуществляет основное управление работой шины. Обычно BCU выполняет восстановление после ошибки и повторное выполнение операции. Он также проводит арбитраж, если несколько IOBU пытаются использовать шину одновременно.
Кроме того, BCU инициализирует шину при каждой загрузке системы, назначая подключенным IOBU логические адреса. Это означает, что к AS/400 может быть подключен новый IOBU, возможно, вместе с новым устройством. При перезагрузке системы новый IOBU конфигурируется автоматически, никакого вмешательства со стороны пользователя не требуется. Эта технология аналогична plug-and-play, применяемой в ПК.
Еще одна функция BCU — назначать каждому устройству приоритет шины. BCU проверяет способность каждого IOBU работать по шине и загружает код в память IOP.
При нормальной работе все коммуникации осуществляются между IOBU. Как говорилось выше, и в качестве IOBU, и в качестве всех IOP на платах адаптеров ввода-вывода SPD функционируют системные процессоры. Обмен информацией всегда происходит между IOBU, начавшим операцию шины (ведущим), и другим IOBU, который был выбран (ведомым).
• Информация передается между IOBU в форме сообщений фиксированной длины или операций прямого доступа к памяти DMA (direct memory access) переменной длины. Во многих вычислительных системах аппаратура DMA позволяет IOBU осуществлять блочную передачу определенного числа слов в основную память и обратно напрямую, без вмешательства процессора.
• Операцию шины можно определить как кратковременное соединение между двумя IOBU. Каждая такая операция шины состоит из двух частей. Сначала ведущий выбирает ведомого, а также определяет тип и направление передачи данных. Вторая часть операции состоит из тактов данных (от 1 до 16), во время которых происходит пересылка данных (за один такт —32 бита).
Шина SPD поддерживает два типа операций: операции устройств и операции памяти. При операции устройств сообщение передается от ведущего к ведомому. Длина сообщения всегда равна 12 байтам. Формат сообщений мы рассмотрим в следующем разделе.
Операция памяти позволяет осуществлять пересылку DMA между памятью IOP на плате адаптера и основной памятью системы. Пересылка управляется ведущим, который устанавливает соединение и определяет направление пересылки. Максимальное число байтов, пересылаемое за одну операцию памяти — 64 (4 байта за такт Г16 тактов данных = 64).
В ходе операции и системный процессор, и IOP могут функционировать и как ведущий, и как ведомый. При выполнении операции памяти системный процессор может быть как ведущим, так и ведомым, а IOP — только ведущим. Последнее ограничение означает, что данные никогда не пересылаются из памяти одного IOP в память другого IOP, то есть, что по шине SPD невозможен ввод-вывод типа «точка-точка». Следовательно, чтобы переслать, например, данные непосредственно от дискового IOP к IOP ленты, надо обязательно использовать основную память. Это снижает общую гибкость структуры системы.
Хочу еще раз напомнить, что в этом разделе мы обсуждаем только шину SPD. IOP PCI также управляют платами адаптеров, подключенных к шине PCI. Но так как шина PCI синхронна, и адаптеры не требуют установки собственных отдельных процессоров, то управление и протоколирование гораздо проще.
Операции ввода-вывода в AS/400
Теперь от аппаратной архитектуры ввода-вывода AS/400 перейдем к совместной работе OS/400, SLIC и аппаратуры при выполнении операции ввода-вывода для прикладной программы. Сначала рассмотрим объекты, поддерживающие ввод-вывод, затем — многоуровневую структуру, включающую OS/400, SLIC и аппаратуру. А в заключение — проследим весь путь ввода-вывода от OS/400 до устройства и обратно.