Архитектура платформ IBM eServer zSeries

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

Показывать лекцию целиком

Организация канальной подсистемы

Операции ввода-вывода включают процедуры настройки и управления периферийными устройствами, необходимые для выполнения обмена информацией между ними и внутренней памятью сервера. Для их реализации в состав сервера введена подсистема ввода-вывода или канальная подсистема (Channel Subsystem - CSS) [2.1, 2.3, 2.8 $$\div$$ 2.11]. Основу канальной подсистемы составляют каналы (Channels), выполняющие операции ввода-вывода под управлением канальных программ (Channel Program). Канальная подсистема освобождает центральные процессоры от рутинных операций ввода-вывода и функционирует параллельно с ними, что позволяет существенно увеличить как производительность сервера, так и пропускную способность системы ввода-вывода. Кроме того, CSS позволяет организовать виртуальные соединения между логическими разделами сервера внутри физического сервера, используя для этих целей внутренние каналы.

Основными компонентами канальной подсистемы являются:

  • Периферийные устройства (I/O Devices), к которым относятся внешние запоминающие устройства и устройства ввода-вывода информации. Номер устройства задается 16-разрядным кодом, что допускает использование до 65536 устройств.
  • Устройства управления или контроллеры CU периферийных устройств, обеспечивающие адаптацию типовых процедур управления CSS к конкретным особенностям периферийных устройств. CU принимает команды от CSS, дешифрирует их и вырабатывает последовательность управляющих сигналов для периферийного устройства, необходимую для выполнения требуемой операции. CU может быть выполнено в виде отдельного устройства или встроено физически и логически в периферийное устройство, CSS или сервер.
  • Канальные пути (Channel Path) или каналы, каждый из которых является интерфейсом для обмена информацией между сервером и одним или несколькими CU. Через такой интерфейс передаются команды, состояния и данные, необходимые для операций ввода-вывода. Один контроллер CU может быть подключен к нескольким канальным путям и периферийное устройство может быть связано с несколькими CU. В совокупности число канальных путей для связи с одним периферийным устройством через подканал может достигать восьми, и устройство может использовать любой из этих путей. Каждому канальному пути присваивается уникальный идентификатор (Channel Path Identifier - CHPID). Одна канальная система поддерживает до 256 CHPID.
  • Подканалы (Subchannels) предназначены для хранения управляющей информации об одной операции ввода-вывода в CSS в течение всего времени ее исполнения. Каждому периферийному устройству CSS, доступному из программ, соответствует выделенный подканал. Подканал является фрагментом внутренней памяти, в котором хранится информация об операции ввода-вывода: адрес команды ввода-вывода, CHPID, номер периферийного устройства, счетчик данных, состояния и др. Число подканалов зависит от модели и может достигать 65536, каждый подканал адресуется 16-разрядным кодом.
  • Таким образом, одна CSS предусматривает использование до 256 канальных путей, каждый из которых допускает подключение до 256 периферийных устройств, что в совокупности обеспечивает подключение до 64К периферийных устройств. В последних моделях серверов возможности канальной подсистемы расширены за счет введения множественной канальной подсистемы (Multiple LCSS - MCSS) [2.8, 2.9]. MCSS состоит из одной или нескольких (до 256) логических канальных подсистем (Logical CSS - LCSS). Внутри каждой LCSS полностью поддерживается архитектура и возможности одной канальной подсистемы, что позволяет сохранить программную совместимость с предыдущими моделями серверов. Каждая из LCSS имеет свой идентификатор - CSSID, с помощью которого управляющая программа hypervisor реализует полное адресное пространство системы ввода-вывода. В моделях z990, z890 используются две LCSS (LCSS 0 и LCSS 1), что расширяет число канальных путей до 512.

    Все перечисленные компоненты CSS (MCSS) подключаются к центральному процессорному комплексу CPC (central processor complex) и распределяются между логическими разделами сервера, включающими вычислительные мощности центральных процессоров и основную память сервера. В более ранних моделях серверов распределение было фиксированным, и допускалась его ручная реконфигурация (рис. 2.11а). В последних моделях компоненты могут совместно использоваться несколькими логическими разделами (рис. 2.11б) без ручной реконфигурации путем использования функций MCSS и MIF (Multiple Image Facility).

    (рис 2.11) Варианты распределения компонентов CSS между LPAR

    Общая организация канальной подсистемы приведена на рис. 2.12. От одного до 15 логических разделов LPAR1 - LPAR15 могут быть подключены к каждой из LCSS, входящей в состав MCSS (LPAR0 используется управляющей программой hypervisor). Каждый из логических разделов соотносится с одной из LCSS и использует канальные пути, выделенные внутри LCSS для этого раздела. В отдельном LPAR может быть запущена собственная операционная система, что требует использования в каждом из 15 LPAR, связанных с одной LCSS, полных архитектурных возможностей LCSS. С этой целью применяется механизм Multiple Image Facility, с помощью которого для каждого LPAR создаются MIF-образы полного набора из 64К подканалов Subchannel Images (SCI) и 256 канальных путей Channel Path Images (CPI). Совокупность всех SCI и CPI для одного LPAR называется MIF-образом раздела. Совокупность MIF-образов всех разделов LCSS образует MIF-образ канальной подсистемы. Внутри каждой LCSS каждому MIF-образу присваивается идентификатор (IID) в диапазоне 1-15.

    (рис 2.12) Организация MCSS

    Программы, исполняемые в LPAR, оперируют образами подканалов SCI и канальных путей CPI. Образы канальных путей, используемые в LPAR внутри каждой LCSS, накладываются на множество из 256 канальных путей LCSS (Channel Path Set - CPS), каждый из которых имеет свой идентификатор CHPID в диапазоне 0-255. Канальные пути в разных LCSS могут иметь одинаковые идентификаторы CHPID. Соответствие канальных путей LCSS и их MIF-образов поддерживается управляющей программой hypervisor на уровне милликодов. Канальный путь LCSS, которому соответствуют несколько MIF-образов канальных путей, называется MIF-совмещенным (MIF shared).

    Множество канальных путей всех LCSS накладывается на множество физических канальных путей. Каждый физический канальный путь имеет уникальный идентификатор (Physical Channel ID - PCHID), соответствующий физическому интерфейсу и элементам его конструктивного исполнения: каркасу ввода-вывода, слоту, порту. Для идентификаторов CHPID устанавливается соответствие идентификаторам PCHID, поддерживаемое на уровне hypervisor.

    Каждой LCSS соответствует группа физических каналов, принадлежащих только этой LCSS, кроме объединенных каналов (Spanning Channel). Объединенные каналы могут использоваться логическими разделами разных LCSS. Канальный путь считается объединенным, если один и тот же физический канальный путь PCHID соответствует канальным путям CHPID в разных LCSS. Это позволяет задействовать один физический канальный путь более чем 15 разделами LPAR и делает его доступным из многих LCSS.

    В случае объединения внутренних каналов вместо физического канала может применяться виртуальный канал (Virtual Channel) с идентификатором VCHID. Такие каналы реализованы на уровне милликодов и позволяют реализовать обмен между логическими разделами без использования физических каналов.

    Основные количественные параметры канальных подсистем разных моделей eServer определяются помимо архитектурных характеристик конструктивно-технологическими ограничениями и представлены в таблице 2.25.

    Параметры канальных подсистем
      S390 (G5/G6) z800, z900 z990
    CSS 1 на сервер 1 на сервер 2 на сервер
    Логические разделы 15 на сервер 15 на сервер 15 на LCSS 30 на сервер
    Подканалы 288 К на сервер 512 К на сервер 945 К на LCSS 1890 К на сервер
    Канальные пути 256 на CSS 256 на сервер 256 на сервер 256 на LCSS 256 на CSS 512 на сервер
    Периферийные устройства 36 К на сервер 63 К на сервер 63 К на LCSS 126 К на сервер

    Адресация в подсистеме ввода-вывода

    На рис. 2.13 приведена общая структура идентификации объектов, используемая при адресации в канальной подсистеме. Каждый логический раздел имеет уникальное для всего сервера имя (LPAR Name), идентификатор (LPAR ID) и номер (LPAR Number), использующийся в моделях, предшествующих z990. Для каждого LPAR задан MIF-образ своим идентификатором IID. В каждом MIF-образе LCSS используется полное пространство идентификаторов образов подканалов SCI и канальных путей CPI. Переход от этих образов к физическим канальным путям PHPID осуществляется с использованием идентификаторов IID, CSSID и CHPID. Применение многопортовых коммутаторов (Directors) позволяет создавать несколько альтернативных канальных путей к одному CU.

    В командах ввода-вывода центральных процессоров, исполняемых в LPAR, для обращения к конкретному периферийному устройству используется 16-разрядный код номера подканала (Subchannel Number - SCBNUM), соответствующего этому устройству, и адрес памяти B2, D2, где расположен блок информации о выполняемой операции ввода-вывода (табл. 2.26).

    Номер подканала, задаваемый как подразумеваемый операнд команды в регистре общего назначения GR1, адресует образ подканала, и для его преобразования в адрес памяти, где фактически размещен подканал, hypervisor формирует идентификатор подсистемы - Subsystem Identification Word (SID) (табл. 2.27). Помимо номера подканала из команды ввода-вывода в SID включены идентификатор используемой LCSS (CSSID) и идентификатор MIF-образа раздела (IID).

    (рис 2.13) Идентификация объектов канальной системы
    Адресация устройств в командах ввода-вывода
    0      15
    19 31
    Команда ввода-выводаCOP B2 D2
    0        31
    47 63
    GR 1$$\tilde{}$$ 0000000000000001 SCBNUM

    При выполнении обменов между периферийными устройствами и LPAR (памятью, отнесенной к LPAR) используются фреймы, в которые, помимо собственно управляющей информации и данных, включаются адреса источника (Source Logical Address - SLA) и приемника (Destination Logical Address - DLA). Это позволяет передавать информацию между разными источниками и приемниками по одним и тем же физическим канальным путям.

    Идентификатор подсистемы
    0         31
    39 43 47 63
    $$\tilde{}$$ CSSID IID 0001 SCBNUM

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

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

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

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

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

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

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

    Информационный блок подканала 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 в один из центральных процессоров.

    Канальные программы и способы их выполнения

    Каждая канальная программа реализует определенную операцию ввода-вывода и состоит из последовательности управляющих слов канала CCW, являющихся командами для процессорного ядра каналов. В z/Architecture используются два формата CCW, приведенные на таблице 2.30. Оба формата являются общими для всех типов периферийных устройств [2.1].

    Форматы CCW
    Код операции Адрес данных Формат 0
    0
    8                 31
    Флаги 0 00000000 Счетчик данных
    32 40
    48       63

    Код операции Флаги 0 Счетчик данных Формат 1
    0 8
    16        31
    0 Адрес данных
    32                63

    Каждое CCW содержит восьмиразрядный код операции, который определяет приказ, передаваемый в устройство для выполнения в нем одной из возможных операций, и действия, выполняемые в канале. Перечень возможных значений кодов операций CCW и соответствующих им действий приведен в таблице 2.31. Биты m используются для кодирования модификаций приказов, исполняемых в периферийных устройствах различных типов.

    Коды операции CCW
    Код операции Выполняемые действия
    ~ ~ ~ ~ 0 0 0 0 не используется
    m m m m m m 0 1 записать
    m m m m m m 1 0 прочитать
    m m m m 1 1 0 0 прочитать в обратном направлении
    m m m m m m 1 1 управление
    m m m m 0 1 0 0 прочитать состояние
    1 1 1 0 0 1 0 0 прочитать уточненное состояние
    ~ ~ ~ ~ 1 0 0 0 переход в канале (формат 0)
    0 0 0 0 1 0 0 0 переход в канале (формат 1)
    m m m m 1 0 0 0 не используется

    m - биты модификации кодов в зависимости от типов устройств

    Для задания области памяти, с которой канал производит обмен, в CCW указывается начальный адрес этой области (адрес данных) и количество байт, участвующих в обмене (счетчик данных). Форматы 0 и 1 отличаются разрядностью адреса, равной, соответственно, 24 и 31 разрядам. Возможно использование косвенной адресации при установке в CCW флага IDA (Indirect Access). В этом случае адрес данных указывает на список косвенных адресов (Indirect Data Address Word - IDAW), каждый из которых адресует страницу памяти емкостью 2КB или 4КB. Разрядность IDAW определяется одним из двух его форматов (1 или 2) и равна, соответственно, 31 или 64 бита. Количество IDAW в списке косвенных адресов определяется полем счетчика данных.

    Поле флагов CCW дополняет код операции и используется в канале для управления выборкой CCW и выполнения специальных функций. Помимо флага IDA используются следующие флаги. Флаг цепочки данных (Chain-Data) предназначен для указания каналу, что следующее CCW имеет тот же код операции и продолжает ее выполнение с другой областью памяти. Флаг цепочки команд (Chain-Command) указывает каналу на наличие нового кода операции в следующем CCW. Флаг пропуска (Skip) определяет блокировку записи в память данных, принимаемых от периферийного устройства, что позволяет каналу осуществлять выборочное чтение информации из зон физических носителей устройств. Флаг блокировки неправильной длины (Suppress-Length-Indication) позволяет каналу исключить прерывание основной программы при обнаружении несовпадения размеров блока данных, указанного в CCW, и блока данных, формируемого в устройстве. Флаг программно управляемого прерывания (Program-Controlled-Interruption) вызывает запрос на прерывание основной программы и позволяет информировать ее о ходе выполнения канальной программы в контрольных точках. Флаг останова (Suspend) позволяет приостановить выполнение канальной программы до команды на продолжение работы подканала.

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

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

    В зависимости от типа каналов в z/Architecture возможны три способа выполнения канальных программ:

  • байт-мультиплексный (byte-multiplex mode);
  • блок-мультиплексный (burst mode);
  • фрейм-мультиплексный (frame-multiplex mode).
  • В байт-мультиплексном режиме периферийное устройство остается логически подключенным к каналу в течение небольшого промежутка времени - сеанса, достаточного для передачи одного или нескольких байт информации. После этого канал отключается от устройства с сохранением текущего состояния выполняемой канальной программы в соответствующем подканале. Продолжение исполнения канальной программы может осуществляться по запросу периферийного устройства по мере его готовности. Одновременно в канале могут быть активны несколько канальных программ, сеансы для которых чередуются в соответствии с запросами от устройств.

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

    Фрейм-мультиплексный режим реализует вариант организации обмена между каналами и периферийными устройствами с использованием элементов сетевых технологий. Обмен реализуется с использованием фреймов (или кадров) информации, соответствующих канальному уровню модели открытых систем OSI, и протоколов типа "точка-точка" (PPP). Каждый фрейм информации имеет многоуровневую структуру и содержит следующие стандартные поля (рис. 2.16):

  • заголовок, включающий начало фрейма (SOF), адрес источника (S_ID), адрес приемника (D_ID) и другую управляющую информацию;
  • поле передаваемых в фрейме данных;
  • концевик, включающий контрольный код (CRC) и конец фрейма (EOF).
  • В поле данных фрейма инкапсулируется сообщение следующего, более высокого, уровня протоколов и т.д. Таким образом, передаваемый фрейм содержит поле данных самого высокого уровня и заголовки и концевики сообщений всех уровней, что позволяет принимающему узлу организовать правильную обработку фрейма на каждом из уровней.

    (рис 2.16) Структура фрейма

    Канал, функционирующий во фрейм-мультиплексном режиме, остается логически подключенным к периферийному устройству на все время исполнения канальной программы. Одновременно к каналу могут быть подключены несколько периферийных устройств, работающих параллельно. Фреймы от этих устройств передаются в канальном пути поочередно по мере их формирования.

    Вернуться к учебному плану