Московский государственный университет путей сообщения
Опубликован: 11.04.2006 | Доступ: свободный | Студентов: 1311 / 300 | Оценка: 4.39 / 4.00 | Длительность: 17:21:00
ISBN: 978-5-9556-0036-1
Специальности: Разработчик аппаратуры
Лекция 3:

Организация подсистемы ввода вывода

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

Принципы выполнения операций ввода-вывода в канальных подсистемах

Высокая пропускная способность системы ввода-вывода серверов zSeries во многом определяется высокой степенью распараллеливания работы большого числа периферийных устройств. Такое распараллеливание достигается за счет использования в канальной подсистеме большого числа параллельно функционирующих каналов, в каждом из которых выполняется одна или несколько операций ввода-вывода с периферийными устройствами. Каждой операции ввода-вывода, реализующей обмен информацией между периферийным устройством и основной памятью, соответствует канальная программа, определяющая параметры обмена: приказы для периферийных устройств, количество передаваемых данных, используемые адреса основной памяти и др. Для возможности автономного исполнения канальных программ каналы реализуются как процессоры со специализированной системой команд. Благодаря такому подходу центральные процессоры почти полностью освобождаются от рутинных операций, связанных с вводом-выводом, и осуществляют только запуск этих операций одной из команд ввода-вывода с последующим минимальным контролем хода их исполнения через систему прерываний.

Принципы выполнения операций ввода-вывода в базовой архитектуре

Рис. 2.14. Принципы выполнения операций ввода-вывода в базовой архитектуре

Базовые принципы функционирования канальной подсистемы были заложены в первых моделях серверов IBM и совершенствовались в последующих моделях по мере развития их архитектуры. На рис. 2.14 приведены основные компоненты канальной подсистемы базовой архитектуры и этапы их взаимодействия в процессе выполнения операций ввода-вывода. Основными этапами являются:

  1. Формирование в фиксированной области основной памяти задания на требуемую операцию ввода-вывода. В простейшем случае такое задание состоит из адресного слова канала (Channel-Address Word - CAW), включающего адрес соответствующей заданию канальной программы и ключ защиты памяти, который канал должен использовать при обращениях в память.
  2. Исполнение в центральном процессоре команды ввода-вывода, запускающей операцию ввода-вывода. К таким командам относятся команды Start Subchannel (SSCH), а в более ранних моделях - Start I/O (SIO), Start I /0 Fast Release (SIOFR). Команда ввода-вывода определяет адрес устройства, с которым выполняется операция ввода - вывода, а также адрес задания на операцию ввода-вывода (адрес задания может быть фиксированным). Указанные адреса передаются в канальную подсистему, и центральный процессор переходит к исполнению следующей команды программы, а операция ввода-вывода продолжает исполняться канальной подсистемой.
  3. Канальная подсистема определяет канал или канальный путь, который подключен к адресуемому устройству и запускает в нем процедуру связи для определения готовности устройства. Одновременно в соответствии с заданием канал считывает из памяти первое командное слово канальной программы Channel-Command Word - CCW. При нормальной готовности устройства к выполнению операции ввода-вывода канал начинает исполнять канальную программу, в противном случае в процессор передается запрос на прерывание по вводу-выводу, сопровождаемый информацией о причинах прерывания. Такая информация формируется в слове состояния канала (Channel-Status Word - CSW), загружаемом в фиксированную область памяти.
  4. Исполнение канальной программы путем последовательного считывания из памяти команд CCW канальной программы и выполнения задаваемых в командах операций с периферийным устройством. При возникновении в таких операциях особых ситуаций и при завершении операций в центральный процессор передаются прерывания, сопровождаемые загрузкой слова состояния канала CSW в память.

Исполнение канальных программ в зависимости от типа и режима работы канала осуществляется в монопольном или мультиплексном режимах. В монопольном режиме канал остается подключенным к периферийному устройству на все время исполнения канальной программы и в нем активна только эта программа. Такой способ обеспечивает наибольшую скорость выполнения операций ввода-вывода и предназначен для работы с быстродействующими устройствами. Мультиплексный режим предполагает сохранение соединения между периферийным устройством и каналом только на время сеанса передачи блока информации, который является фрагментом передаваемых в операции ввода-вывода данных. После такого сеанса канал отключается от устройства с запоминанием текущего состояния прерванной операции в соответствующем подканале и может выполнять подобные сеансы для других активных устройств. Возврат к приостановленной операции ввода-вывода может быть осуществлен по инициативе как устройства, так и канала. Передаваемые в сеансе блоки данных в зависимости от типа канала могут иметь разную длину, от нескольких байтов до размеров физических зон носителей периферийных устройств. Мультиплексный режим предназначен для работы с периферийными устройствами с невысокой скоростью обмена или с нежестким ритмом работы.

Совершенствование канальной подсистемы и способов ее функционирования по мере развития архитектуры серверов IBM связано с их новыми характеристиками, такими, как:

  • многопроцессорная организация и существенное увеличение вычислительной мощности серверов;
  • введение логических разделов LPAR с оптимизацией их загрузки для повышения эффективности выполнения задач пользователей;
  • расширение канальной подсистемы для увеличения пропускной способности системы ввода-вывода и др.
Выполнение операций ввода-вывода в архитектуре zSeries

Рис. 2.15. Выполнение операций ввода-вывода в архитектуре zSeries

Принципы построения и функционирования канальной подсистемы последних моделей серверов zSeries приведены на рис. 2.15 [2.4]. Основными дополнениями в структуре канальной подсистемы, разработанными в разное время, являются:

  • Использование сервисных процессоров SAP (System Assist Processor) для дальнейшей разгрузки центральных процессоров от участия в операциях ввода-вывода и реализации новых функций в канальной подсистеме. Сервисные и центральные процессоры имеют одно и то же процессорное ядро и специализируются за счет милликодов на этапе конфигурирования сервера.
  • Введение коммутаторов ввода-вывода (Director) для создания альтернативных канальных путей между ядром сервера и периферийными устройствами.
  • Выделение в основной памяти системной области HSA (Hardware System Area) для размещения подканалов и другой управляющей информации. Данная область программно недоступна и используется на уровне управляющих программ hypervisor и милликодов.
  • Применение механизма Multiple Image Facility для создания MIF-образов полного набора логических подканалов и канальных путей для каждого LPAR.
  • Введение множественной канальной подсистемы MCSS, состоящей из логических канальных подсистем, внутри которых полностью поддерживается архитектура и возможности одной канальной подсистемы.
  • Расширение форматов управляющей информации, используемой в операциях ввода-вывода, с целью введения новых функций.

Основными отличиями этапов функционирования канальной системы z/Architecture по отношению к базовой архитектуре являются:

1. На этапе 1 вместо CAW, определяющего задание на операцию, в память загружается блок запроса операции - Operation-Request Block (ORB). Формат блока приведен в таблице 2.28 и помимо адреса канальной программы и ключа защиты памяти включает следующую информацию [2.1]:

  • параметры прерываний - код, используемый для указания причин прерывания;
  • маска каналов указывает на допустимость использования каждого из восьми канальных путей, посредством которых адресуемое устройство может быть подключено в канальной подсистеме;
  • приоритет CSS определяет порядок выбора подканалов в случае активизации нескольких подканалов;
  • приоритет CU определяет порядок обращения к CU, подключенным к канальному пути;
  • управляющие биты используются для задания различных режимов исполнения процедур в операциях ввода-вывода.
Таблица 2.28. Формат блока запроса операции ORB
0 Параметры прерываний
1 Ключ Управляющие биты Маска каналов Управ. биты
2 Адрес канальной программы
3 Приоритет CSS Резерв Приоритет CU Резерв
4 Резерв
5 Резерв
6 Резерв
7 Резерв
0 8 16
24    31

Таблица 2.29. Информационный блок подканала SCHIB
0 Параметры прерываний Слово управления каналом
1 Управляющие биты Номер периф. устройства
2 LPM PNOM LPUM PIM
3 MBI POM PAM
4 CHPID-0 CHPID-1 CHPID-2 CHPID-3
5 CHPID-4 CHPID-5 CHPID- CHPID-7
6 00000000 00000000 00000000 Упр. биты
7 Ключ Флаги состояния и режимов Слово состояния подканала
8 Текущий адрес CCW
9 Состояние устройства Состояние подканала Текущий счетчик данных
10
11 Область, определяемая моделью/адрес блока измерений
12
0 8 16
24      31
Область, определяемая моделью

LPM - маска действительности каждого из восьми возможных логических путей к устройству.

PNOM - маска отключенных путей.

LPUM - маска последнего использования пути.

PIM - маска физически инсталлированных путей.

РОМ - маска использованных путей с исправным состоянием устройства.

РАМ - маска готовности физически инсталлированных путей.

MBI - адресный индекс блока измерений подканала.

CHIPID0-CHPID7 - идентификаторы восьми возможных логических путей к устройству.

2. Команда ввода-вывода исполняется в одном из процессоров LPAR и содержит номер логического подканала SCBNUM , соответствующего устройству, с которым выполняется операция. При этом под управлением hypervisor и с использованием идентификаторов CSSID, IID формируется идентификатор подсистемы SID, определяющий адрес размещения подканала в HSA. Адресуемый подканал содержит информационный блок подканала (Subchannel-Information Block - SCHIB), формат которого приведен втаблице 2.29. Формат включает четыре области [2.1]:

  • Слово управления каналом, используемое для выбора и управления каналом, через который осуществляется связь с периферийным устройством. Включает номер периферийного устройства, к которому относится подканал; перечень идентификаторов канальных путей CHPID0 - CHPID7, которые могут применяться для доступа к устройству; маски, определяющие возможность использования канальных путей; управляющие биты для задания различных способов применения и режимов функционирования каналов.
  • Слово состояния подканала, предназначенное для хранения текущей информации о выполняемой операции ввода-вывода, включая текущий адрес CCW, текущий счетчик данных, байты состояния устройства и подканала, ключ подканала и флаги состояния и режимов.
  • Оставшиеся две области используются для хранения информации, определяемой моделью, или для задания адреса размещения блока измерений.

Выполнение команды ввода-вывода завершается передачей параметров задания из указанного в команде блока ORB в информационный блок SCHIB адресуемого подканала, загрузкой в очередь заданий (Work Queues - WQ) одного из SAP запроса на обработку данного подканала и сигнализацией SAP о наличии запроса. Далее SAP считывает из WQ запрос, по указанному в нем адресу подканала обращается в подканал и по информации из слова управления каналом осуществляет оптимальный выбор канального пути для обмена с устройством. В выбранный канал передается адрес активного подканала и запускается операция ввода-вывода.

3. Канал осуществляет доступ в подканал, модифицирует его состояние и формирует информационный фрейм для обращения к периферийному устройству. Фрейм содержит адреса подканала SLA и устройства DLA, а также промежуточные адреса портов коммутатора, через которые осуществляется обмен. Фрейм передается в устройство, которое передает обратный фрейм с состоянием устройства и с переставленными адресами SLA, DLA. Канал по полученному фрейму обновляет состояние подканала и сообщает о начале выполнения операции ввода-вывода. SAP, в свою очередь, корректирует SCHIB и загружает в очередь прерываний (Interupt Queue - IQ) запрос на прерывание одного из процессоров LPAR вместе с параметрами прерывания SCHIB.

4. При нормальной готовности устройства к выполнению операции ввода-вывода канал начинает исполнять канальную программу и при возникновении особых ситуаций и завершении операций формирует прерывания в SAP или через IQ в один из центральных процессоров.

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >