Спосіб і комп'ютерна система для виконання команди запуску субканала в комп'ютерному середовищі

 

ПОПЕРЕДНІЙ РІВЕНЬ ТЕХНІКИ

[0001] Одна або кілька особливостей цього винаходу відносяться, в загальному, до допоміжного запам'ятовуючого пристрою обчислювальної середовища і, зокрема, до особливостей управління допоміжним запам'ятовуючим пристроєм.

[0002] Обчислювальне середовище може містити основне запам'ятовуючий пристрій (також відоме як основна пам'ять), а також допоміжне запам'ятовуючий пристрій. Основне запам'ятовуючий пристрій - це запам'ятовуючий пристрій, доступне для процесора, який є довільно адресованим допомогою, наприклад, абсолютної адреси. Основне запам'ятовуючий пристрій розглядається як запам'ятовуючий пристрій з швидкою вибіркою порівняно з таким допоміжним запам'ятовуючим пристроєм, як запам'ятовуючі пристрої прямого доступу (DASD) або твердотільне запам'ятовуючий пристрій. Крім того, адресація основного пристрою вважається більш простий, ніж адресація DASD або твердотільного накопичувача.

[0003] Твердотільне запам'ятовуючий пристрій, який являє собою обсяг зовнішнього запам'ятовуючого пристрою зовні класичного основного пристрою, про запам'ятовуючий пристрій, як правило, не реалізовано як обертові диски з механічною рукою, але, замість цього, - як немеханічні твердотільні частини. Як правило, твердотільне запам'ятовуючий пристрій реалізовано як групи твердотільних пристроїв, сполучені з обчислювальною системою за допомогою декількох адаптерів вводу-виводу (I/O), які застосовують для відображення технології пристрої введення-виведення даних на шину пам'яті центрального процесора (процесорів).

КОРОТКИЙ ВИКЛАД СУТІ ВИНАХОДУ

[0004] На основі вивчення недоліків рівня техніки запропоновано спосіб і система для виконання команди запуску субканала (далі - Start Subchannel) в обчислювальному середовищі, що містить основне запам'ятовуючий пристрій і твердотільне запам'ятовуючий пристрій. Спосіб, здійснюваний, зокрема, за допомогою комп'ютерного програмного продукту, що містить машиночитаемую запоминающую середу, считиваемую пристроєм обробки даних і зберігає відповідні команди для виконання пристроєм обробки даних, що включає, наприклад, з урахуванням визначення того, що субканал, що ідентифікується командою Start Subchannel, являє собою субканал асинхронного переміщення даних (ADM), виконання: отримання блоку зции; отримання блоку операції з основного пристрою на підставі адреси блоку операції, де блок операції складається з блоку запиту, блоку відповіді і одного або декількох перших блоків специфікації переміщення (MSB), де блок запиту містить поле лічильника блоків MSB, що містить значення, яке вказує кількість одного або кількох блоків MSB, які блок містить операції і на які посилається, де блок відповіді сконфігурований для утримання виняткових ситуацій, де кожен блок специфікації переміщення налаштований містити поле коду операції, поле лічильника блоків, поле адреси основного пристрою для адресації основного пристрою, поля адреси пам'яті твердотільного накопичувача для адресації твердотільного накопичувача, поле розміру блоків і поле прапорів; отримання блоку специфікації переміщення одного або кількох блоків специфікації переміщення; на основі коду операції в отриманому блоці специфікації переміщення визначення операції, для здійснення якої на блоках твердотільного накопичувача налаштований отриманий блок специфікації переміщення; на основі блоку спецификасом пам'яті твердотільного накопичувача поля адреси пам'яті твердотілого накопичувача; і з урахуванням, по меншою мірою, ініціювання операції і виявлення виняткової ситуації, збереження інформації у блоці відповіді, де блок відповіді містить поле прапорів виняткової ситуації, поле достовірності поля, поле невірного адреси MSB, поле невірного адреси непрямого адресного слова даних (AIDAW), поле невірного адреси основного пристрою і поле невірного адреси твердотільного накопичувача, де інформація стосується однієї або більше виняткових ситуацій, що є результатом операції, де одна чи кілька виняткових ситуацій відносяться щонайменше до одного з наступного: основним запам'ятовуючого пристрою, пов'язаній з адресою основного пристрою з поля адреси основного пристрою; твердотільному запам'ятовуючого пристрою, пов'язаній з адресою твердотільного накопичувача з поля адреси твердотілого накопичувача; або отриманого блоку специфікації переміщення, причому інформація містить ознаку виняткової ситуації і додаткову інформацію, що відноситься до виключної ситуації, при цьому додаткова інформація визначає одну або більше виняткових ситу кілька особливостей цього винаходу. Крім того, в цьому винаході також описані і можуть бути заявлені сервіси, що відносяться до однієї або кількох особливостям цього винаходу.

[0006] Додаткові ознаки і переваги реалізуються за допомогою методик відповідно до цього винаходу. Інші варіанти здійснення та ознаки винаходу докладно описані в цьому винаході і вважаються частиною заявленого винаходу.

КОРОТКИЙ ОПИС ГРАФІЧНИХ МАТЕРІАЛІВ

[0007] Варіанти здійснення винаходу буду описані тільки у вигляді прикладу з відсиланням до супровідним графічним матеріалів, на яких:

ФІГ.1A ілюструє один варіант здійснення обчислювальної середовища, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.1B ілюструє інший варіант здійснення обчислювальної середовища, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.2A ілюструє один варіант здійснення блоку запиту операцій розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.2B ілюструє один варіант здійснення блоку запиту�астоящего винаходу;

ФІГ.2C ілюструє один варіант здійснення блоку запиту операцій розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.2D ілюструє один варіант здійснення блоку відповіді розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.2E ілюструє один варіант здійснення блоку специфікації переміщення розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.2F ілюструє один варіант здійснення непрямого адресного слова даних розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.3A ілюструє один варіант здійснення команди Start Subchannel, використовується згідно з однією з особливостей цього винаходу;

ФІГ.3B ілюструє один варіант здійснення логіки, пов'язаної з командою Start Subchannel, згідно з однією з особливостей цього винаходу;

ФІГ.3C ілюструє один варіант здійснення команди Clear Subchannel, використовується згідно з однією з особливостей гласно однією з особливостей цього винаходу;

ФІГ.3E ілюструє один варіант здійснення команди Modify Subchannel, використовується згідно з однією з особливостей цього винаходу;

ФІГ.3F ілюструє один варіант здійснення команди Store Subchannel, використовується згідно з однією з особливостей цього винаходу;

ФІГ.4A ілюструє один варіант здійснення блоку інформації про субканале розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.4B ілюструє один варіант здійснення керуючого слова управління трактами розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.4C ілюструє один варіант здійснення слова статусу субканала, використовується згідно з однією з особливостей цього винаходу;

ФІГ.4D ілюструє один варіант здійснення розширеного слова статусу розширеної схеми асинхронного переміщення даних, використовуваного згідно з однією з особливостей цього винаходу;

ФІГ.5A ілюструє один варіант здійснення блоку запиту збереження інформації про твердотільному накопичувачі, використовуваного згідно �збереження інформації про твердотільному накопичувачі, використовується згідно з однією з особливостей цього винаходу;

ФІГ.5C ілюструє один варіант здійснення запису списку адрес запам'ятовуючого пристрою, що використовується згідно з однією з особливостей цього винаходу;

ФІГ.5D ілюструє один варіант здійснення логіки, пов'язаної з командою Store Storage Class Memory Information, згідно з однією з особливостей цього винаходу;

ФІГ.6A ілюструє один приклад діаграми станів, що відображає різні стани твердотільного накопичувача, згідно з однією з особливостей цього винаходу;

ФІГ.6B ілюструє один варіант здійснення діаграми станів, показує стану операцій і стану даних, згідно з однією з особливостей цього винаходу;

ФІГ.7A ілюструє один варіант здійснення блоку запиту конфігурування твердотільного накопичувача, використовується згідно з однією з особливостей цього винаходу;

ФІГ.7B ілюструє один варіант здійснення блоку відповіді конфігурування твердотільного накопичувача, використовується згідно з однією з особливостей цього винаходу;

ФІГ.7C-7D ілюструють один варианастоящего винаходу;

ФІГ.8A ілюструє один приклад блоку відповіді на повідомлення, використовується згідно з однією з особливостей цього винаходу;

ФІГ.8B ілюструє один варіант здійснення блоку запиту збереження інформації про події, що використовується згідно з однією з особливостей цього винаходу;

ФІГ.8C ілюструє один варіант здійснення блоку відповіді збереження інформації про події, що використовується згідно з однією з особливостей цього винаходу;

ФІГ.9A ілюструє один варіант здійснення блоку запиту деконфигурирования твердотільного накопичувача, використовується згідно з однією з особливостей цього винаходу;

ФІГ.9B ілюструє один варіант здійснення запису списку запиту приростів твердотільного накопичувача, використовується згідно з однією з особливостей цього винаходу;

ФІГ.9C ілюструє один варіант здійснення блоку відповіді деконфигурирования пам'яті твердотільного накопичувача, використовується згідно з однією з особливостей цього винаходу;

ФІГ.9D-9E ілюструють один варіант здійснення логіки, пов'язаної з командою Deconfigure Storage Class Memory, використовуваної згідно ого програмного продукту, в якому міститься одна або кілька особливостей цього винаходу;

ФІГ.11 ілюструє один варіант здійснення хост-комп'ютерної системи, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.12 ілюструє додатковий приклад комп'ютерної системи, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.13 ілюструє інший приклад комп'ютерної системи, що містить комп'ютерну мережу, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.14 ілюструє один варіант здійснення різних елементів комп'ютерної системи, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.15A ілюструє один варіант здійснення виконавчого пристрої комп'ютерної системи по ФІГ.14, в якій міститься використовується одна або кілька особливостей цього винаходу;

ФІГ.15B ілюструє один варіант здійснення пристрою переходу комп'ютерної системи по ФІГ.14, в якому міститься і використовується одна або кілька особливостей цього винаходу;

ФІГ.15C илой міститься і використовується одна або кілька особливостей цього винаходу; і ФІГ.16 ілюструє один варіант здійснення эмулированной хост-комп'ютерної системи, в якій міститься використовується одна або кілька особливостей цього винаходу.

ДЕТАЛЬНИЙ ОПИС

[0008] Згідно з одним або кількома варіантами здійснення винаходу для твердотільного накопичувача передбачена абстракція, яка приховує подробиці реалізації твердотільного накопичувача від програми (наприклад, від операційної системи) і передбачає стандартний програмний інтерфейс каналу для здійснення певних дій, таких як управління переміщенням даних між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм.

[0009] В одному прикладі передбачено засіб, зване засобом розширеного асинхронного переміщення даних (EADM), яке дозволяє програмам запитувати передачу блоків даних між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм, а також вимагати інші операції. Нижче докладно описуються особливості даного засобу.

[0010] пов'язаним із засобом EADM є додатковий засіб, зване засобом звільнення EADM.більше не потребує зберігання даних в одному або кількох блоках твердотільного накопичувача. То, підтримується операція звільнення для всіх блоків твердотільного накопичувача або тільки для підмножини твердотільних запам'ятовуючих пристроїв, залежить від моделі.

[0011] Коли блок твердотільного накопичувача звільнений, програма може передавати в блок нові дані, в іншому випадку подальші запити на передавання даних з блоку в основний запам'ятовуючий пристрій будуть невдалими.

[0012] Один варіант здійснення обчислювальної середовища, який містить і/або використовує одну або кілька особливостей цього винаходу, описується з відсиланням до ФІГ.1А. Обчислювальна середа 100 заснована, наприклад, на архітектурі z/Architecture® пропонованої International Business Machines Corporation (IBM®), Армонк, штат Нью-Йорк. Один варіант здійснення архітектури z/Architecture® IBM опі® z/Architecture Principles of Operation», IBM Publication No. SA22-7832-08, August, 2010 р., яка посиланням повністю включена в даний опис. В одному прикладі обчислювальна середа, заснована на архітектурі z/Architecture® zEnterprise 196 (z196), пропоновану International Business Machines Corporation. IBM® z/Architecture® є зареєстрованими товарними знаками, і zEnterprise 196 і z196 є товарними знаками International Business Machines Corporation, Армонк, Нью-Йорк, США. Інші зв�званнями продуктів International Business Machines Corporation або інших компаній.

[0013] В одному прикладі обчислювальна середа 100 містить один або декілька центральних процесорів 102, пов'язаних з основною пам'яттю 104 допомогою однієї або декількох шин 106. Один або декілька центральних процесорів можуть виконувати операційну систему 108, таку як операційна система z/OS® International Business Machines Corporation. В інших прикладах один або кілька центральних процесорів можуть виконувати інші операційні системи або не виконувати ні однієї операційної системи. z/OS® є зареєстрованим товарним знаком International Business Machines Corporation, Армонк, Нью-Йорк, США.

[0014] Центральні процесори 102 і основна пам'ять 104 також можуть бути пов'язані з концентратором 120 вводу-виводу за допомогою одного або декількох з'єднань 122 (наприклад, шин або інших сполук). Концентратор вводу-виводу забезпечує соединяемость з одним або кількома адаптерами 130 вводу-виводу, які додатково пов'язані з одним або кількома твердотільними пристроями 140. Адаптери і твердотільні пристрої являють собою реалізацію твердотільного накопичувача (наприклад, флеш-пам'яті). Концентратор вводу-виводу є частиною підсистеми 145 вводу-виводу, що допомагає одній або нескольквления винаходу, як показано на ФІГ.1B, обчислювальна середа 150 може містити центральний процесорний комплекс (CPC) 152, який заснований на архітектурі z/Architecture® пропонованої International Business Machines Corporation. Центральний процесорний комплекс 152 містить, наприклад, одне або кілька розділів 154, гіпервізор 156, один або кілька центральних процесорів 158 і один або кілька компонентів підсистеми 160 вводу-виводу. В даному прикладі розділи 154 являють собою логічні розділи (наприклад, LPAR), кожен з яких містить набір апаратних ресурсів системи, віртуалізований як окрема система.

[0016] Кожен логічний розділ 154 здатний функціонувати як окрема система. Тобто кожен логічний розділ може бути незалежно переустановлений, при необхідності, у вихідному положенні до нього може бути завантажена операційна система або інший керуючий код, і він може працювати з різними програмами. Виявляється, що операційна система, або прикладна програма, що виконується в логічному розділі, має доступ до системи у всій повноті, але, насправді, є доступною лише її частину. Поєднання апаратного забезпечення і ліцензійного внутрішнього коду (LIC), званого апаратно-прогрдругом логічному розділі. Це дозволяє декільком різним логічним розділам працювати на одному або декількох фізичних процесорах способом квантування часу. Використовується в даному описі програмно-апаратне забезпечення містить, наприклад, мікрокод, милликод та/або макрокод процесора (або суті, здійснює обробку даних). Воно містить, наприклад, команди апаратного рівня та/або структури даних, що використовуються при реалізації високорівневого машинного коду. В одному варіанті здійснення винаходу воно містить, наприклад, власний код, який, як правило, постачають як мікрокод, який містить вивірене програмне забезпечення, або мікрокод, характерний для базового апаратного забезпечення, і управляє доступом операційної системи до апаратного забезпечення системи.

[0017] У цьому прикладі деякі з логічних розділів містять резидентну операційної системи (OS), 170, яка може відрізнятися для одного або декількох логічних розділів. В одному варіанті здійснення винаходу, щонайменше, один логічний розділ виконує операційну систему z/OS® International Business Machines Corporation, Армонк, Нью-Йорк.

[0018] Логічні розділи 154 адмініструються гіпервізором 156, 158. Кожен з логічних розділів 154 і гіпервізор 156 містять одну або кілька програм, що постійно знаходяться у відповідних частинах основної пам'яті 159, пов'язаного з центральними процесорами. Одним прикладом гіпервізора 156 є Processor Resource/Systems Manager (PR/SM™), пропонований International Business Machines Corporation, Армонк, Нью-Йорк.

[0019] Центральні процесори 158 являють собою фізичні процесорні ресурси, які виділені логічними розділами. Наприклад, логічний розділ 154 містить один або декілька логічних процесорів, кожен з яких відображає весь виділений розділу фізичний процесорний ресурс 158 або його частина. Логічні процесори конкретного розділу 154 можуть бути виділені розділу, і тоді базовий процесорний ресурс є зарезервованим для цього розділу; або вони можуть використовуватися спільно з іншим розділом, і тоді базовий процесорний ресурс потенційно є доступним і для іншого розділу.

[0020] Підсистема 160 введення-виведення (лише частина якої проілюстрована) забезпечує соединяемость з твердотілим запам'ятовуючим пристроєм 180. У даному прикладі для твердотільного накопичувача передбачено адресний простір, якого�ре, для твердотільного накопичувача існує один адресний простір у масштабі системи, але з точки зору конфігурації (наприклад, LPAR або в іншому варіанті здійснення винаходу виртуализированного гостя) існує один адресний простір, який для кожної конфігурації системи заповнюється приростами твердотільного накопичувача. Адресний простір твердотільного накопичувача є окремим і не залежних від адресного простору основного пристрою.

[0021] В одному приватному прикладі архітектури z/Architecture®, підсистема введення-виведення містить канальну підсистему, яка не тільки направляє потік інформації не тільки між периферійними блоками управління (і пристроями) введенням-виведенням і основною пам'яттю, але також і між твердотілим запам'ятовуючим пристроєм і основною пам'яттю. Однак підсистема вводу-виводу може являти собою і іншу систему, ніж канальна підсистема.

[0022] У разі канальної підсистеми для здійснення операцій EADM використовують субканали. Ці субканали називаються субканалами, що відносяться до типу схеми асинхронного переміщення даних (ADM), і вони пов'язані з операціями EADM, а н�жит ні номер пристрою, ні інформацію про канальному тракті. Кількість субканалов ADM-типу, що передбачаються для деякої конфігурації залежить від моделі. Субканали ADM-типу адресуються словом ідентифікації підсистеми (SID).

[0023] Субканали ADM-типу використовують засобом розширеного асинхронного переміщення даних, яке являє собою одне з розширень канальної підсистеми. Як описується в даному описі, засіб EADM дозволяє програмі запитувати передачу блоків даних між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм, а також здійснення інших операцій, таких як скидання блоку твердотільного накопичувача або звільнення блоку твердотільного накопичувача. В одному варіанті здійснення винаходу, коли засіб EADM встановлено:

[0024] * Передбачений один або кілька субканалов ADM-типу, які використовують для операцій EADM.

[0025] * Операції EADM вказані зазначеним блоком операцій EADM (АОВ). АОВ містить блок запиту EADM (ARQB) і блок відповіді EADM (ARSB) і вказує перелік блоків специфікації переміщення EADM (MSB). Для операції переміщення блоки MSB містять таку інформацію про блоки даних, які підлягають переміщенню, як розмір блоків, исходнколичество блоків MSB, яке може вказуватися за допомогою AOB, залежить від моделі. Максимальна кількість блоків, яка MSB може вказувати, як підлягають переміщенню або операціями на них, також залежить від моделі.

[0027] * Програма ініціює операції EADM, видаючи команду Start Subchannel, яка вказує субканал ADM-типу і блок запиту операцій (ORB) EADM. У свою чергу, EADM ORB вказує AOB. Команда передає вміст EADM ORB в зазначений субканал.

[0028] * Коли для ініціювання операцій EADM видається команда Start

Subchannel, канальна підсистема асинхронно здійснює зазначену операцію.

[0029] * Програма стежить, що твердотільне запам'ятовуючий пристрій при залежному від моделі мінімальному розмірі блоків здається паралельної по блокам. Ця залежить від моделі величина називається розміром паралельності блоків SCM.

[0030] * Коли операції EADM завершені, переривання вводу-виводу для субканала ADM-типу, на якому були ініційовані операції, робиться очікують програму.

[0031] EADM ORB містить специфікацію ключа субканала та адресу AOB, який підлягає використанню. AOB вказується, наприклад, на кордоні 4 Кбайт і може мати розмір до 4 Кбайт. Якщо потрібно більше блоків MSB, ніж може поміститися в 4 Кбайта AOB, AOB може вказувати спивместо вказівки області пам'яті, підлягає використанню для передачі даних, вказують адресу наступного MSB в списку.

[0032] Перша операція EADM запускається канальної підсистемою, що використовує інформацію у зазначеному EADM ORB і ARQB у зазначеному AOB для вилучення MSB. MSB містить інформацію, яка вказує операцію EADM, що підлягає обробці, і керує цією операцією.

[0033] Кожна операція EADM відображається одним MSB. MSB може вказувати, наприклад, передачу блоків даних з основного пристрою твердотільне запам'ятовуючий пристрій; передачу блоків даних з твердотільного накопичувача в основний запам'ятовуючий пристрій; скидання блоків твердотілого накопичувача; і звільнення блоків твердотільного накопичувача.

[0034] Якщо блоки, що підлягають передачі, не є неперервними в основному запам'ятовуючому пристрої, може використовуватися новий MSB, або MSB може використовувати непряму адресацію шляхом визначення списку непрямих адресних даних слів (AIDAW) для вказівки блоків, які не є безперервними.

[0035] Так як MSB визначає передачу даних тільки в одному напрямку, у разі, коли відбувається зміна у напрямку передачі, слід використовувати новий MSB.

<а і закінчення роботи пристрою. Зазначена комбінація статусів відображає комбінацію первинного і вторинного статусу, вказує, що після скидання статусу субканал буде доступний для наступної функції запуску.

[0037] Операція EADM може бути передчасно припинено за допомогою команди Clear Subchannel. Виконання команди Clear Subchannel припиняє виконання AOB в субканале, очищає субканал від покажчиків виконується AOB і асинхронно здійснює функцію скидання.

[0038] Додаткові подробиці, що відносяться до EADM ORB і пов'язаних з ним керуючим структурам, описані нижче, з посиланням на ФІГ.2A-2F. На початку з посиланням на ФІГ.2A описується один варіант здійснення EADM ORB.

[0039] В одному прикладі, EADM ORB 200 містить:

[0040] Параметр 202 переривання: дане поле зберігається незмінним субканале до тих пір, поки воно не буде заміщено допомогою наступної команди Modify Subchannel або Start Subchannel. Зазначені біти поміщені в код переривання вводу-виводу, коли для субканала відбувається переривання вводу виводу, і коли запит переривання скидається шляхом виконання, наприклад, команди Test Pending Interruption.

[0041] Ключ 204 субканала: дане поле утворює ключ субканала для операцій EADM, які визначаються за допомогою ARQB, і застосовується для вилучення ARQB, витяги)�начение цього поля є певним значенням; в іншому випадку, або канальної підсистемою розпізнається ситуація перевірки програми, або розпізнається виняткова ситуація операнда.

[0042] Управління (X) 205 розширенням ORB: це поле вказує, є чи ORB розширеним. Дане поле являє собою певне значення, коли субканал ADM-типу є вказаними; у іншому випадку, розпізнається або виняткова ситуація операнда, або ситуація перевірки програми.

[0043] Адреса 206 блоку операцій EADM (AOB): це поле вказує адресу блоку операцій EADM (AOB). Якщо деякі біти даного поля не включають певне значення, розпізнається або виняткова ситуація операнда, або ситуація перевірки програми.

[0044] Якщо це поле вказує місце, захищене від вилучення, або вказує місце розташування за межами конфігурації, функція запуску не ініціюється. У цьому випадку субканал є очікують статус з первинним, вторинним і запобіжних статусом.

[0045] Пріоритет 208 канальної підсистеми (CSS): це поле містить вказівник пріоритету канальної підсистеми, який призначений вказаною субканалу і використовується для впорядкування вибору субканалов ADM-типу тоді, коли функція запуску підлягає иниѵрдотельного запам'ятовуючого пристрою (SCM): це поле містить вказівник пріоритету твердотільного накопичувача (SCM), який вказує рівень пріоритету, який застосовується до всіх операцій EADM, пов'язаних з функцією запуску.

[0047], розпізнається поле пріоритету SCM засобом EADM, залежить від моделі. На моделях, які не розпізнають це поле, вміст поля ігнорується, і всіма операціями EADM, пов'язаних з функцією запуску, призначається неявний покажчик пріоритету.

[0048] Формат (FMT) 212: це поле вказує структуру ORB. Це поле призначене для утримання певного значення тоді, коли вказано субканал ADM-типу; у іншому випадку, розпізнається виняткова ситуація операнда або встановлюється код особливої ситуації.

[0049] Блок операцій EADM (AOB), указується адресою 206 AOB EADM в EADM ORB, містить інформацію, яка використовується для виклику операцій EADM. AOB виділяється, в одному прикладі, на кордоні 4 Кбайт і має змінну довжину.

[0050] В одному прикладі, як показано на ФІГ.2B, AOB 220 EADM містить три секції: блок (ARQB) 222 запиту EADM; блок (ARSB) 224 відповіді EADM; і область 226 MSB, що містить блоки MSB до певної кількості (наприклад, 124). ARQB може вказувати використання більшої кількості блоків MSB, ніж певний, однак тільки при використанні переходу блоків MSB (тобто шляхом використання переходу до прапора слід�имере, ARQB 222 містить:

[0052] Формат 230 (FMT): це поле вказує структуру ARQB. Значення цього поля являє собою певне значення; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, або в поле код кваліфікатор виняткових ситуацій ARSB вказується помилка коду команди.

[0053] Код 232 команди: це поле призначене для вказівки команди переміщення блоків EADM; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, або в поле код кваліфікатор виняткових ситуацій ARSB вказується помилка коду команди.

[0054] Лічильник 234 блоків MSB: Це поле вказує лічильник блоків MSB, які складають запит EADM. Максимальне число блоків MSB, яке може бути зазначено, залежить від моделі. Значення цього поля має бути більше нуля і менше або дорівнює залежить від моделі максимального значення лічильника блоків MSB; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, або в поле код кваліфікатор виняткових ситуацій ARSB вказується помилка в коді команди.

[0055] На додаток до блоку запиту EADM, EADM ORB також вказує блок відповіді EADM (ARSB). В даному варіанті здійснення винаходу, блок відповіді EADMлько тоді, коли в слові статусу субканала EADM (SCSW) присутній застережливий статус, розширене слово статусу EADM (ESW) є значущим, і блок відповіді EADM, зберігає (R) біт дорівнює одиниці у розширеному слові звіту EADM (ERW), кожне з них описуються нижче. Коли ARSB не є значущим, вміст ARSB в AOB є непред сказу емим.

[0056] Якщо програма зберігається в ARSB, в той час як пов'язаний субканал є чинним субканалом, можуть виникати непередбачувані результати.

[0057] Коли ARSB зберігається, обсяг даних, які були передані, якщо це має місце, є непред присудком.

[0058] Один варіант здійснення блоку відповіді EADM описується з посиланням на ФІГ. 2D. В одному прикладі, ARSB 224 містить:

[0059] формат 240 (FMT): це поле вказує структуру ARSB. Коли ARSB зберігається, значення цього поля зберігається як певне значення.

[0060] Прапори 242 виняткових ситуацій (EF): коли ARSB зберігається, це поле, якщо воно встановлено, вказує причину виняткової ситуації, за якої зберігається ARSB. Приклади причин виняткової ситуації включають:

[0061] перевірку програми: виявлена помилка програмування.

[0062] Перевірку захисту: доступу до запам'ятовуючого пристрою перешкоджає мо запам'ятовуючий пристрій, і на збереження інформації в ARSB та дані, що передаються з твердотільного накопичувача.

[0063] Перевірку канальних даних: невиправлених помилка запам'ятовуючого пристрою була виявлена стосовно даних, які містяться в основному запам'ятовуючому пристрої і в даний час використовуються для виконання операції EADM. У разі виявлення, дана ситуація може зазначатися, навіть якщо дані не використовуються при попередньому отриманні. Перевірка канальних даних вказується тоді, коли дані, або пов'язаний ключ, мають недостовірний код перевірки блоку (СВС) в основному запам'ятовуючому пристрої, коли до цих даних звертається канальна підсистема.

[0064] Перевірку управління каналом: перевірка управління каналом викликається будь збоєм системи, що робить вплив на елементи управління канальної підсистеми. Ситуація включає недостовірний CBC на ARQB, ARSB, MSB, AIDAW або відповідному пов'язаному ключі. Ситуація може бути зазначена, коли недостовірний CBC виявляється на підданому попередньою отримання ARQB, MSB, AIDAW або відповідному пов'язаному ключі, навіть якщо цей ARQB, MSB або AIDAW не використовується.

[0065] Перевірку кошти розширеного асинхронного переміщення дає пристрої і в даний час використовуються для виконання операції EADM.

[0066] Ідентифікатори 244 блоків керування винятковими ситуаціями (ECBI): коли ARSB зберігається, дане поле являє собою маску з декількох біт, біти якої, коли вони встановлені, вказують який-небудь один з наступних компонентів, які пов'язані з розпізнаванням виняткової ситуації, що вказується полем EF, або їх поєднання:

[0067] * блок, або блоки, управління.

[0068] * Область даних основного пристрою.

[0069] * Твердотільне запам'ятовуючий пристрій.

[0070] Біти, які можуть бути встановлені, відображають, наприклад, блок специфікації переміщення EADM, непрямий адресу даних EADM, дані в основному запам'ятовуючому пристрої та/або дані в твердотільному накопичувачі.

[0071] Біти в поле ECBI описують компоненти, пов'язані з одиничною винятковою ситуацією. Якщо для виняткової ситуації не можна ідентифікувати жодного компонента, це поле містить, наприклад, нулі.

[0072] Прапор 246 достовірності полів (FVF): коли ARSB зберігається, це поле містить маску з декількох біт, біти якій вказують достовірність деяких полів в ARSB. Якщо біт достовірності встановлено, відповідне поле було збережено і є придатним для цілей ерного AIDAW, поле невірного адреси основного пристрою та/або поле невірного адреси твердотільного накопичувача.

[0073] Код 248 кваліфікатор виняткових ситуацій (EQC): якщо ARSB зберігається, це поле містить кодове значення, яке додатково описує виняткова ситуація, що визначене полем прапорів виняткових ситуацій. Кодові значення можуть відображати, в якості прикладів, наступне.

[0074] Не надано додатковий опис. У цьому випадку поле ідентифікаторів блоків керування винятковими ситуаціями (ECBI) та ті поля, достовірність яких підтверджена полем прапорів достовірності полів, можуть ідентифікувати блоки управління, для яких розпізнана виняткова ситуація.

[0075] Помилка формату. Формат, зазначений полем формату, є зарезервованим. У цьому випадку поле ідентифікаторів блоків керування винятковими ситуаціями (ECBI) та ті поля, достовірність яких підтверджена полем прапорів достовірності полів, можуть ідентифікувати блоки управління, для яких розпізнана виняткова ситуація.

[0076] Помилка коду команди. Значення, вказане в полі коду команди ARQB, не розпізнано.

[0077] Помилка лічильника блоків MSB. З�блоків MSB, який може бути вказаний.

[0078] Помилка прапорів. Біти прапорів, зазначені полем прапорів, є зарезервованими. У цьому випадку, поле ідентифікаторів блоків керування винятковими ситуаціями (ECBI) та ті поля, достовірність яких підтверджена полем прапорів достовірності полів, можуть ідентифікувати блоки управління, для яких розпізнана виняткова ситуація.

[0079] Помилка коду операції. Зазначається потрібне значення коду операції. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація.

[0080] Помилка розміру блоків. Зазначається потрібне значення розміру блоків. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація.

[0081] Помилка лічильника блоків. Значення, визначене в полі лічильника блоків MSB, дорівнює нулю або перевищує залежне від моделі максимальне число блоків, які можуть вказуватися за допомогою MSB. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле содержиѽающего пристрою. Адреса основного запам'ятовуючого пристрою наведено на неправильній кордоні. Такий адресу міг бути вказаний допомогою блоку MSB або AIDAW. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси основного пристрою є достовірним, поле містить адресу основного пристрою, для якого розпізнана виняткова ситуація.

[0083] Помилка зазначення адреси твердотільного накопичувача. Адреса твердотільного накопичувача вказано на неправильній кордоні. Адреса вказується допомогою MSB. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить �поле невірного адреси твердотільного накопичувача є достовірним, поле містить адресу твердотільного накопичувача, для якого розпізнана виняткова ситуація.

[0084] Виняткова ситуація адреси основного пристрою. Засіб EADM спробував використати адресу, який є недоступним в даній конфігурації або охоплює максимальний адресу. Такий адресу міг бути вказаний MSB або є результатом прирощення адрес основного пристрою під час передачі даних. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси основного пристрою є достовірним, поле містить адресу основного пристрою, для якого розпізнана виняткова ситуація.

[0085] Виняткова ситуація адреси твердотільного накопичувача. Засіб EADM спробував використовувати адресу твердотільного запоминающег результатом прирощення адрес твердотільного накопичувача в ході передачі даних. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси твердотільного накопичувача є достовірним, поле містить адресу твердотільного накопичувача, для якого розпізнана виняткова ситуація.

[0086] Помилка основного пристрою. Виявлена невиправлених помилка основного пристрою. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси основного пристрою є достоверн�.

[0087] Помилка списку блоків MSB.: AOB вказує перелік блоків MSB, який перетинає кордон 4 Кбайт без вказівки переходу до наступного MSB (BNM) для перетину кордону, або MSB являє собою останній MSB у зазначеному списку MSB, і BNM вказується цим MSB. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація.

[0088] Помилка переходу MSB. AOB вказує перелік блоків MSB, в якому один з блоків MSB (вихідний MSB переходу) вказує на перехід до наступного MSB (BNM), і MSB, який є метою переходу, також вказує BNM. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу вихідного MSB переходу, для якого розпізнана виняткова ситуація.

[0089] Помилка списку AIDAW. MSB вказує список непрямих адресних даних слів EADM (AIDAW), який перетинає кордон 4 Кбайт без вказівки переходу до наступного AIDAW (BNA) для перетину кордону. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності�пізнана виняткова ситуація.

[0090] Помилка переходу AIDAW. MSB вказує список непрямих адресних даних слів EADM (AIDAW), в якому AIDAW (вихідне AIDAW переходу) вказує на перехід до AIDAW (BNA), і AIDAW, яке є метою переходу, також вказує BNA. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу вихідного AIDAW переходу, для якого розпізнана виняткова ситуація.

[0091] Тимчасова помилка твердотільного накопичувача.

Виявлена відновлювана помилка твердотільного накопичувача. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси твердотільного накопичувача виняткова ситуація.

[0092] Помилка відсутності підтримки операції звільнення. Операція звільнення вказана для твердотільного накопичувача, для якого операція звільнення не підтримується. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси AIDAW є достовірним, поле містить адресу AIDAW, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси твердотільного накопичувача є достовірним, поле містить адресу твердотільного накопичувача, для якого розпізнана виняткова ситуація.

[0093] Помилка читання звільнених даних. Операція читання вказана для твердотільного накопичувача, для якого останньої успішною операцією була операція звільнення. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси MSB є достовірним, поле містить адресу MSB, для якого розпізнана виняткова ситуація. Якщо поле прапорів достовірності полів указиваЇительная ситуація. Якщо поле прапорів достовірності полів вказує, що поле невірного адреси твердотільного накопичувача є достовірним, поле містить адресу твердотільного накопичувача, для якого розпізнана виняткова ситуація.

[0094] Неправильну адресу 250 MSB.: Якщо встановлено зазначений біт поля прапорів достовірності полів, дане поле вказує адресу MSB, для якого розпізнана виняткова ситуація.

[0095] Неправильну адресу 252 AIDAW. Якщо встановлено зазначений біт поля прапорів достовірності полів, дане поле вказує адресу AIDAW, для якого розпізнана виняткова ситуація.

[0096] Неправильну адресу 254 основного пристрою. Якщо встановлено зазначений біт поля прапорів достовірності полів, дане поле вказує адресу блоку основного пристрою, для якого розпізнана виняткова ситуація.

[0097] Неправильну адресу 256 твердотільного накопичувача. Коли встановлено зазначений біт поля прапорів достовірності полів, це поле містить адресу (наприклад, 64-бітний) SCM блоку твердотільного накопичувача, для якого розпізнана виняткова ситуація.

[0098] На додаток до блоку запиту EADM і блоку відповіді EADM, блок операц�єр, до 124 блоків MSB. Однак програма може вказувати більш ніж 124 блоку MSB шляхом вказівки більшої кількості блоків MSB в полі лічильника ARQB і шляхом використання прапора переходу до наступного MSB (BNM) для переходу до продовження списку блоків MSB. Можливо безліч продовжень списку блоків MSB, але, в одному варіанті здійснення винаходу, ні одне з цих продовжень не може перетинати кордон 4 Кбайт без використання BNM для перетину цього кордону. Від продовжень списку блоків MSB не потрібно, щоб вони були безперервними. Кожне продовження списку блоків MSB, якщо вказано його початок на кордоні 4Кбайт, може містити до 128 блоків MSB. Загальна кількість блоків MSB в списку блоків MSB вказується полем лічильника блоків MSB в ARQB.

[0099] Блок специфікації переміщення EADM описує, наприклад, блоки пристрою, які підлягають переміщенню між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм, або операцію, що підлягає здійсненню на блоці запам'ятовуючого пристрою. Один варіант здійснення MSB 226 описується з посиланням на ФІГ.2E, і містить, наприклад:

[00100] формат (FMT) 260. Це поле вказує структуру MSB. Значення цього поля являє собою певне зна�.

[00101] Код 262 операції (OC). Це поле вказує операцію, що підлягає здійсненню. В одному прикладі, коли зазначений біт у наведеному нижче полі прапорів, являє собою певне значення, дане поле вказує операцію, що підлягає здійсненню. Приклади операцій включають:

[00102] скидання твердотільного накопичувача. Коли вказується цей код, скидається (наприклад, встановлюється на нуль) осередок твердотільного накопичувача, вказується адресою твердотільного накопичувача, розміром блоку і полем лічильника блоків. Поле адреси основного пристрою не має значення для даної операції.

[00103] Читання: коли вказується цей код, дані вказуються як такі, що підлягають передачі з твердотільного накопичувача в основний запам'ятовуючий пристрій. Поля лічильника блоків, розміру блоків, адреси основного пристрою і адреси твердотільного накопичувача не мають значення для даної операції.

[00104] Запис: коли вказується цей код, дані вказуються як такі, що підлягають передачі з основного пристрою твердотільне запам'ятовуючий пристрій. Поля лічильника блоків, розміру бло�ачения для даної операції.

[00105] Звільнення: коли вказується цей код, і встановлено засіб звільнення EADM, звільняється твердотільне запам'ятовуючий пристрій, назване полями адреси твердотільного накопичувача, розміром блоків і лічильника блоків. Поле адреси основного пристрою не має значення для даної операції. Коли засіб звільнення EADM не встановлено, даний код резервується.

[00106] Якщо вказується значення зарезервоване, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка коду операції.

[00107] Коли біт зазначеного прапора не є певним значенням, дане поле є зарезервованим і не перевіряються.

[00108] Прапори 264. Дане поле ідентифікує один або кілька прапорів, які можуть бути встановлені. Біти прапорів, які є зарезервованими, встановлюються на певне значення; в іншому випадку в поле коду кваліфікатор виняткових ситуацій ARSB вказується помилка прапорів. Приклади прапорів включають:

[00109] * прапор переходу до наступного MSB (BNM): Цей прапор, якщо вона встановлена, вказує, що MSB не вказує операцію EADM і не ісс наступного MSB, підлягає використанню для вказівки операції EADM.

[00110] Якщо встановлений прапор BNM (наприклад, один), і поле адреси основного пристрою вказує MSB, в якому також встановлено прапор BNM, канальної підсистемою розпізнається ситуація перевірки програми, адреса вихідного MSB переходу зберігається в полі невірного адреси MSB в ARSB, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка переходу MSB.

[00111] Якщо MSB закінчується на кордоні 4 Кбайт, АОВ вказує додаткові блоки MSB, і прапор BNM не встановлений, канальної підсистемою розпізнається ситуація перевірки програми, адресу цього MSB зберігається в полі невірного адреси MSB в ARSB, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка списку блоків MSB.

[00112] Якщо MSB є останнім MSB у зазначеному списку блоків MSB, і встановлений прапор BNM, канальної підсистемою розпізнається ситуація перевірки програми, адресу цього MSB зберігається в полі невірного адреси MSB в ARSB, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка списку блоків MSB.

[00113] Коли встановлений прапор BNM, інші прапори, поле коду операції, поле розміру блоків, поле лічильника блоків в наборі та адресу твердотільного �єп, вказує, що поле адреси основного пристрою вказує адресу непрямого адресного слова даних EADM (AIDAW) або першого AIDAW зі списку AIDAW, яке вказує місце розташування або, відповідно, розташування в основному запам'ятовуючому пристрої, що підлягають використанню для передачі даних. Даний прапор, якщо він не встановлений, вказує, що поле адреси основного пристрою вказує адресу розташування в основному запам'ятовуючому пристрої, що підлягає використанню для передачі даних.

[00115] Розмір 266 блоків (BS). Це поле вказує розмір і кордон підлягають передачі блоків даних, а для основного пристрою, так і для твердотільного накопичувача, або розмір і кордон блоку твердотільного накопичувача, що підлягає виконанню операції на ньому (наприклад, скиду або звільнення). Приклади включають:

[00116] 4K: коли кодовою значенням є одне визначене значення, що підлягають передачі блоки даних знаходяться на кордоні 4 Кбайт і мають розмір 4 Кбайт.

[00117] 1M: коли кодовою значенням є інше визначене значення, що підлягають передачі блоки даних знаходяться на кордоні 1 Мбайт і мають розмір 1 Мбайт.<� програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка розміру блоків.

[00119] Коли встановлений прапор BNM, дане поле ігнорується.

[00120] Лічильник 268 блоків: це поле містить кількість блоків даних, що підлягають передачі або операціями на них (наприклад, скиду або звільнення). На основі поля розміру блоків, даний лічильник являє собою лічильник блоків розміром 4 Кбайт або 1 Мбайт.

[00121] Значення даного поля має бути більше нуля і менше або дорівнює залежить від моделі максимального числа блоків, яка може вказуватися за допомогою MSB; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка лічильника блоків.

[00122] Коли встановлений прапор BNM, дане поле є зарезервованим і не перевіряються.

[00123] Адреса 270 основного пристрою. Коли поле коду операції має значення (наприклад, прапор BNM не встановлений) указує або операцію читання, або операцію запису, і не встановлений покажчик непрямої адресації в поле прапорів, це поле містить адресу основного запам'ятовуючого пристрою, що підлягає використанню для передачі даних, і при поля містять певне значення (наприклад, нуль); у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00125] * Коли поле розміру блоків вказує блоки розміру 1 Мбайт, зазначені біти цього поля містять певне значення (наприклад, нулі); у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00126] Коли поле коду операції має сенс і вказує чи операцію читання, або операцію запису, і в полі прапорів встановлений покажчик непрямої адресації, це поле містить адресу одного з слів AIDAW до основного пристрою або перше слово зі списку слів AIDAW, підлягає використанню для передачі даних. У цьому випадку, певні біти даного поля містять певне значення; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, я в поле код кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00127] Коли устано�рес основного пристрою наступного MSB, який вказує операцію EADM. У цьому випадку, зазначені біти даного поля містять певне значення; у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00128] Поле 272 адреси твердотільного накопичувача: Коли поле коду операції має сенс, це поле містить адресу (наприклад, 64-бітний) твердотільного накопичувача, підлягає використанню для передачі даних або для операцій на ній (наприклад, для скидання, звільнення), і застосовується наступне:

[00129] * Коли поле розміру блоків вказує блоки розміру 4 Кбайт, зазначені біти цього поля містять певне значення (наприклад, нулі); у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації твердотілого накопичувача.

[00130] * Коли поле розміру блоків вказує блоки розміру 1 Мбайт, зазначені біти цього поля містять певне значення (наприклад, нулі); у іншому випадку, канальної підсистемою распознаетс�цификации твердотільного накопичувача.

[00131] Коли встановлена прапор BNM, дане поле є зарезервованим і не перевіряються.

[00132] Як зазначено вище, може бути зазначено непряме адресний слово даних EADM. Непряме адресний слово даних EADM (AIDAW) дозволяє програмі вказувати передачу блоків даних між твердотілим запам'ятовуючим пристроєм і блоками основного пристрою, які не є безперервними. Одне з слів AIDAW, або список слів AIDAW, указується за допомогою одного з блоків MSB, коли в MSB встановлена прапор непрямої адресації.

[00133] Обсяг даних, який передається єдиним AIDAW, вказується в MSB в поле розміру блоків. Кількість слів AIDAW в списку слів AIDAW являє собою суму кількості, зазначеної в MSB полем лічильника блоків, плюс кількість слів AIDAW, які вказують на перехід до наступного AIDAW. Передачі даних можуть оброблятися у порядках, які відрізняються від таких, що вказуються в списку слів AIDAW. Крім того, передачі даних, зазначені кількома словами AIDAW в списку слів AIDAW, можуть оброблятися паралельно.

[00134] AIDAW розміщується, наприклад, на кордоні учетверенного слова. Список слів AIDAW може мати будь-яку довжину, але в одному прикладі, він не перетинає кордон 4 Кбайт, якщо для пересече, �ило безперервним з AIDAW, що вказує BNA, відсутня. Однак програма повинна створювати список AIDAW як можна в меншій кількості блоків розміру 4 Кбайт; в іншому випадку, може проявлятися погіршення продуктивності.

[00135] Згідно ФІГ.2F, в одному прикладі, непряме адресний слово 280 даних EADM містить:

[00136] Прапори 282. Один приклад прапора містить:

[00137] прапор переходу до наступного AIDAW (BNA). Цей прапор, коли він встановлений, вказує, що поле адреси основного пристрою не вказує адресу основного запам'ятовуючого пристрою, що підлягає використанню для передачі даних. Замість цього, поле адреси основного пристрою вказує адресу наступного AIDAW, який підлягає використанню для передачі даних.

[00138] Коли встановлений прапор BNA, і поле адреси основного пристрою вказує AIDAW, в якому також встановлено прапор BNA, адреса MSB зберігається в полі невірного адреси MSB в ARSB, адреса вихідного AIDAW переходу зберігається в полі невірного адреси основного пристрою ARSB, і в полі коду кваліфікатор виняткових ситуацій в ARSB вказується помилка переходу AIDAW.

[00139] Якщо AIDAW закінчується на кордоні 4 Кбайт, MSB вказує додаткові AIDAW, иого адреси основного пристрою ARSB, і в полі коду кваліфікатор виняткових ситуацій в ARSB вказується помилка слів AIDAW.

[00140] Адреса 284 основного пристрою. Коли поле BNA не встановлено, це поле містить адресу в основному запам'ятовуючому пристрої, що підлягає використанню для передачі даних, і застосовується наступне.

[00141] * Коли поле розміру блоків в MSB вказує блоки розміру 4 Кбайт, зазначені біти цього поля містять певне значення (наприклад, нуль); у іншому випадку, канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00142] * Коли поле розміру блоків в MSB вказує блоки розміру 1 Мбайт, зазначені біти цього поля містять певне значення (наприклад, нулі); в іншому випадку канальної підсистемою розпізнається ситуація перевірки програми, і в полі коду кваліфікатор виняткових ситуацій ARSB вказується помилка специфікації основного пристрою.

[00143] * Коли встановлений прапор BNA, це поле містить адресу основного пристрою наступного AIDAW, який підлягає використанню для передачі даних.

[00144] Як опис�у Start Subchannel, яка вказує субканал ADM-типу і EADM ORB. Виконання вказаної команди передає вміст EADM ORB в зазначений субканал. EADM ORB містить опис ключа субканала (використовується для захисту та адресу AOB, який підлягає використанню.

[00145] В одному прикладі, як показано на ФІГ.3A, команда 300 Start Subchannel містить код 302 операції, вказує функцію Start Subchannel, перший операнд 304, який являє собою уявний операнд, розташований, наприклад, в регістрі 1 загального призначення, який містить ідентифікатор підсистеми, що вказує субканал ADM-типу, який підлягає запуску; і другий операнд 306, який представляє собою логічний адресу EADM ORB. EADM ORB вказує параметри, використовувані в управлінні функцією запуску. Вміст EADM ORB поміщається в зазначений субканал в ході виконання команди Start Subchannel перед установкою коду ситуації. Якщо виконання команди Start Subchannel призводить до встановлення іншого коду ситуації, ніж код, що вказує успіх, вміст EADM ORB не поміщається у вказану субканал.

[00146] Слідом за виконанням команди Start Subchannel для субканала ADM-типу канальна підсистема асинхронно здійснює функцію запуску для ініціювання засобом EADM операцій EADM. Функція запуску містить, �про ARQB і блоками MSB, які він позначає.

[00149] 3. Умовне збереження інформації про завершення ARSB в AOB.

[00150] 4. Змушування субканала ADM-типу до того, щоб він був зроблений очікують статус, що вказує завершення функції запуску.

[00151] В одному варіанті здійснення винаходу, з посиланням на ФІГ.3B, коли виконана команда Start Subchannel і SID вказує субканал ADM-типу, і другий операнд вказує EADM ORB, на етапі 320 вказується операція EADM. Параметри EADM ORB передаються в зазначений субканал на етапі 322, і на етапі 324 канальна підсистема запит на виконання засобом EADM функції запуску. Канальна підсистема асинхронно здійснює функцію запуску шляхом використання інформації в субканале, в тому числі, інформації, переданої в ході виконання команди Start Subchannel, для ініціалізації операцій EADM на етапі 326.

[00152] Виконання операції EADM (наприклад, першої операції) включає використання інформації з EADM ORB для отримання AOB на етапі 328, і використання інформації в AOB для отримання блоку запиту EADM (ARQB) і вказання одного чи декількох блоків специфікації переміщення EADM (блоків MSB) на етапі 330. Один або кілька зазначених блоків MSB потім піддаються вилучення з основного пристрою на ця�ація вважається запущеної, коли канальна підсистема робить спробу ініціювання передачі даних або спробу операції скидання або звільнення.

[00153] Канальна підсистема здійснює операцію (операції), запитувану в блоці (блоках) MSB, на етапі 334. Дана обробка даних є асинхронної для виконання команди запуску.

[00154] Коли операції EADM, ініційовані командою Start Subchannel закінчуються на етапі 336, канальна підсистема на етапі 338 генерує ситуації статусу. Генерування зазначених ситуацій на етапі 339 доводиться до відома програми допомогою переривання вводу-виводу. Програма також може запитувати зазначені ситуації шляхом виконання команди Test Pending Interruption.

[00155] Генеруються ситуації статусу представляються програмі у формі слова статусу субканала EADM (SCSW). Зазначене SCSW EADM зберігається як частина блоку відповіді на переривання (IRB) EADM шляхом виконання команди Test Subchannel.

[00156] Коли операції EADM, вказані блоком операцій EADM (AOB) закінчуються, канальна підсистема генерує первинний і вторинний статуси переривання. Операції EADM можуть бути завершені командою Clear Subchannel або ненормальною ситуацією, розпізнаної при здійсненні функції запуску.

[00157] Обробка MSB канальнйство або основного пристрою. Для зміни напрямку переміщення даних в ході обробки MSB необхідний новий MSB. ARQB вказує число блоків MSB, які включають запит.

[00158] Кожна операція EADM відображається одним MSB. MSB може вказувати будь-яке з наступного:

[00159] * передачу блоків даних з основного пристрою твердотільне запам'ятовуючий пристрій.

[00160] * Передачу блоків даних з твердотільного накопичувача в основний запам'ятовуючий пристрій.

[00161] * Скидання блоків твердотільного накопичувача.

[00162] * Звільнення блоків твердотільного накопичувача, коли встановлено засіб звільнення EADM.

[00163] Якщо блоки запам'ятовуючого пристрою, що підлягають передачі для операції переміщення, не є неперервними в основному запам'ятовуючому пристрої, може використовуватися новий MSB, або MSB може використовувати непряму адресацію шляхом зазначення списку непрямих адресних даних слів EADM (AIDAW) для вказівки блоків, які не є безперервними. Оскільки MSB може вказувати передачу даних тільки в одному напрямку, коли відбувається зміна у напрямку передачі даних, повинен використовуватися новий MSB.

[00164] Характеристиками передач даних EADM являютсяуказанного списку MSB.

[00166] * Передачі даних, що вказуються кількома блоками MSB в списку MSB, можуть оброблятися паралельно.

[00167] * Передачі даних можуть оброблятися поза чергою щодо порядку вказується списку AIDAW.

[00168] * Передачі даних, що вказуються кількома AIDAW в списку AIDAW, можуть оброблятися паралельно.

[00169] * Доступи до основного запам'ятовуючого пристрою і до твердотільному запам'ятовуючого пристрою необов'язково є зверненнями одиночного доступу і необов'язково здійснюються в напрямку зліва направо, як спостерігається програмою та іншими ЦП.

[00170] * Якщо дві або більше операцій EADM зараз діють і

адресують одні і ті ж місця розташування SCM, розташування в основному запам'ятовуючому пристрої або ті й інші місця, операції можуть здійснюватися паралельно, і вміст різних операцій може чергуватися; однак:

[00171] - для операцій вводу - дані, збережені засобом EADM в кожен блок основного пристрою, тобто розмір, рівний розміру паралелізму блоків SCM, складається з даних, переданих з твердотільного накопичувача за допомогою тільки однієї з паралельних операцій EADM.

[00172] - Для операц� дорівнює розміру паралелізму блоків SCM, містить дані, зазначені допомогою тільки однієї з паралельних операцій EADM.

[00173] Вищесказане вірно незалежно від того, вказуються чи операції EADM одиничним AOB і є обробляються одним і тим же варіантом функції запуску, або операції EADM вказуються різними блоками AOB і є обробляються різними варіантами функції запуску.

[00174] * Коли для субканала є чинними операції EADM, є непередбачуваним, будуть спостерігатися засобом EADM зміни, внесені програмою в ARQB, блоках MSB, словах AIDAW і переданих даних, пов'язані з діючою операцією.

[00175] Коли всі блоки, зазначені всіма блоками MSB, зазначеними допомогою AOB, були передані або скинуті, або звільнені, субканал генерує статус, який зберігається в субканале, і запитує для субканала ADM-типу переривання вводу-виводу.

[00176] Завершення операції EADM зазвичай вказується комбінованими ситуаціями статусів закінчення роботи каналу і закінчення роботи пристрою. Дана комбінація статусів відображає комбінацію первинного і вторинного статусів, вказує, що після скидання статусу субканал є доступним для іншої функції запуску.

[00177] Як описано вх описується нижче.

[00178] Коли запитується операція переміщення, один або кілька блоків даних переміщуються між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм. Наприклад, для операції читання дані SCM отримують з SSD, які доставляють вміст, що позначається вказаною адресою SCM, і потім це вміст зберігається в основну пам'ять. Для операції запису процес є зворотним. Збереження здійснює адаптер (адаптери), керуючий SSD. Більш докладно, для здійснення операції переміщення системне програмно-апаратне забезпечення, в першу чергу, транслює даний адреса SCM адреса адаптера (наприклад, адреса логічного томи, в якому логічний том містить один або декілька SSD). Наприклад, використовується таблиця трансляції, яка корелює адреса SCM за адресою адаптера. Системне програмно-апаратне забезпечення потім подає одному або декільком адаптерам вводу-виводу одну або кілька відповідних адаптерних команд переміщення (наприклад, читання чи запису). Адаптерний команда переміщення містить адресу основного пристрою, адреса адаптера і розмір передачі. Потім адаптер використовує іншу таблицю трансляції для визначення �вода-виводу виконує операцію переміщення або шляхом вилучення даних з основного пристрою і їх збереження на SSD, або шляхом вилучення даних з SSD і їх збереження в основну пам'ять. Додаткові подробиці додатково надані спільно подається патентній заявці під назвою «Firmware Management of Storage Class Memory», POU920110090US1, яка посиланням повністю включена в даний опис.

[00179] Коли здійснюється операція скидання, зазначені збільшення твердотільного накопичувача скидаються шляхом встановлення вмісту на нуль.

[00180] Додатково, коли здійснюється операція звільнення, SSD, що містить відповідні адреси SCM, може подаватися одна або декілька стандартних команд TRIM. Команда TRIM дозволяє програмі підказувати використання блоків, що дозволяє краще виконувати очищення від непотрібних даних за допомогою SSD. Команда TRIM дозволяє операційній системі інформувати SSD про те, які блоки пристрою більше не вважаються такими, що знаходяться в користуванні та можуть бути стерті.

[00181] Операція EADM може бути передчасно закінчена командою Clear Subchannel. Виконання команди Clear Subchannel завершує виконання AOB в субканале, скидає субканал від покажчиків виконання AOB і асинхронно здійснює функцію скидання. Коли здійснюється функція скидання, перед тим, до�редсказуемим. Виконання функції скидання не призводить до генерування статусу, але змушує канальну підсистему зробити переривання вводу-виводу очікують.

[00182] В одному варіанті здійснення винаходу, з посиланням на ФІГ.3C, команда 350 Clear Subchannel включає код 352 операцій, що вказує функцію Clear Subchannel. Субканал, що підлягає скиданню, вказується словом ідентифікації підсистеми, наприклад, в регістрі 1 загального призначення.

[00183] Функція скидання для субканала ADM-типу включає:

[00184] 1. Перевірку того, що поточна передача даних завершена.

[00185] 2. Модифікацію полів в субканале і, умовно, в ARSB. Наприклад, слово статусу субканала модифікується так, щоб воно вказувало функцію скидання в поле керування функціями і в полі керування діями. ARSB може бути модифікований для відображення будь-яких виявляються помилок.

[00186] 3. Виклик того, що субканал робиться очікують статус, що вказує на завершення функції скидання.

[00187] Також можуть видаватися інші команди, які можуть вказувати субканал ADM-типу, в тому числі команди Test Subchannel, Modify Subchannel і Store Subchannel, кожна з яких описується нижче.

[00188] З посиланням на ФІГ.3D, в одному прикладі, команда 360 Test Subchannel включає, наприклад, код 362 операцій, що вказує ф�ний, наприклад, в регістрі 1 загального призначення, який містить слово ідентифікації підсистеми, що вказує субканал, який підлягає перевірці; і другий операнд 366, який представляє собою логічний адресу блоку відповіді на інформацію (IRB), в якому зберігається інформація.

[00189] Коли виконується команда Test Subchannel, що вказує субканал ADM-типу, субканал є очікують статус, і інформація збережена в зазначеному IRB (блоці відповіді на переривання) EADM, встановлюється код зазначеної ситуації. Коли субканал не є очікують статус, та інформація про статус збережено у вказаному IRB EADM, встановлюється код певній ситуації. Коли субканал не надано або не є деблокированним, ніякі дії не робляться.

[00190] В одному прикладі IRB EADM містить слово статусу субканала (SSW) і розширене слово статусу (ESW), а також розширене слово управління, які можуть забезпечувати додаткову залежить від моделі інформацію, що описує ситуації, які можуть існувати в засобі. Кожне із зазначених слів надалі описується нижче після опису різних команд, які можуть вказувати субканал ADM-типу.

[00191] З посиланням на ФІГ. 3E, в одному варіанті здійснення изоий являє собою уявний операнд, розташований, наприклад, в регістрі 1 загального призначення, який містить слово ідентифікації підсистеми, що вказує субканал, який підлягає модифікації; і другий операнд 376, який представляє собою логічний адресу блоку інформації про субканале (SCHIB), пов'язаний з субканалом.

[00192] Коли виконується команда Modify Subchannel, що вказує субканал ADM-типу, і інформація із зазначеного блоку інформації про субканале (SCHIB) розміщена в субканале, встановлюється спеціальний код ситуації. Коли субканал є очікують статусу, ніякі дії не робляться, і встановлюється код певній ситуації. Коли субканал зайнятий для функції запуску або скидання, ніякі дії не робляться.

[00193] З посиланням на ФІГ.3F описаний один приклад команди збереження субканала (Store Subchannel). В одному прикладі, команда 380 Store Subchannel містить код 382 операції, ідентифікуючу функцію Store Subchannel; перший операнд 384, який являє собою уявний операнд, розташований, наприклад, в регістрі 1 загального призначення, який містить слово ідентифікації підсистеми, що вказує субканал, для якого зберігається інформація; і другий операнд 386, який представляє собою логічний адресу SCHIB.

[00 код зазначеної ситуації. Коли зазначений субканал не передбачається у канальної підсистемі, ніякі дії не робляться.

[00195] Один приклад блоку інформації про субканале для субканала ADM-типу (SCHIB EADM) описується з посиланням на ФІГ.4A. В одному прикладі SCHIB 400 EADM містить залежну від моделі область 401, яка містить залежну від моделі інформацію. Додатково SCHIB 400 містить керуюче слово 402 управління трактами (PMCW) і слово 404 статусу субканала (SCSW), кожне з яких буде описано нижче.

[00196] В одному прикладі PMCW 402 EADM містить, наприклад, такі поля, як показано на ФІГ.4B:

[00197] Параметр 410 переривання: дане поле містить параметр переривання, який зберігається в коді переривання вводу-виводу. Параметр переривання може бути встановлений на будь-яке значення допомогою команд Start Subchannel і Modify Subchannel. Початкове значення параметра переривання субканале дорівнює нулю.

[00198] Підклас 412 переривання (ISC): дане поле містить ряд бітів, які являють собою беззнакове ціле двійкове число в зазначеному інтервалі, що відповідає позиції біта біт маски підкласу переривання вводу-виводу в зазначеному керуючому регістрі для кожного ЦП в конфігурації. Установка біта маски в керуючому рег�влено на деяке значення командою Modify Subchannel. Початкове значення поля ISC в субканале одно, наприклад, нулю.

[00199] Поле 414 деблокування (Е): поле, коли воно встановлено, вказує, що субканал розблоковано для всіх функцій EADM.

[00200] Тип 416 субканала (ST): це поле вказує тип субканала. Залежно від моделі та конфігурації може передбачатися один або кілька наступних типів субканалов: субканал вводу-виводу або субканал ADM.

[00201] Таке значення даного поля визначається, коли субканал є сконфігурованим і не може бути змінений командою Modify Subchannel.

[00202] Коли команда Modify Subchannel виконується і вказує субканал ADM-типу, ST призначений для вказівки субканала ADM; в іншому випадку розпізнається виняткова ситуація операнда.

[00203] Згідно ФІГ.4A, блок інформації про субканале також містить слово 404 статусу субканала. Слово статусу субканала EADM (SCSW) забезпечує для програми покажчики, які описують статус субканала ADM-типу і пов'язані операції EADM. В одному прикладі, як показано на ФІГ.4C, слово 404 статусу субканала містить:

[00204] ключ 420 субканала: коли в поле управління функціями (описуваному нижче) встановлений індикатор функції запуску EADM, це поле містить ключ доступу до запомина�і виконанні команди Start Subchannel.

[00205] Формат 422 розширеного слова статусу (L): коли встановлений індикатор очікування статусу в поле елементів управління статусами (описуваному нижче), це поле, якщо воно встановлено, вказує, що був збережений ESW з форматом 0. ESW з форматом 0 зберігається, коли командою Test Subchannel скидається ситуація переривання, що містить будь-який з таких покажчиків:

[00206] * Перевірка програми

[00207] * Перевірка захисту

[00208] * Перевірка канальних даних

[00209] * Перевірка управління каналом

[00210] * Перевірка кошти розширеного асинхронного переміщення даних (EADMF).

[00211] Код 424 відкладеної ситуації (СС): коли індикатор функції запуску EADM встановлений, індикатор очікування статусу також встановлено, дане поле вказує загальну причину того, що субканал був очікують статус, коли виконувалися команди Test Subchannel або Store Subchannel. Код відкладеної ситуації має сенс, коли субканал є очікують статус з будь-якою комбінацією статусів, і тільки тоді, коли встановлений індикатор функції запуску в полі управління функціями в SCSW.

[00212] Код відкладеної ситуації, якщо він встановлений, використовується для вказівки того, чи були які-небудь ситуації, які перешкоджали того, щоб субканал �тложенной ситуації включають наступне.

[00214] * Було представлено нормальніші переривання вводу-виводу.

[00215] * В SCSW EADM присутній статус, який був згенерований канальної підсистемою для ситуацій, які перешкоджали того, щоб функція запуску EADM була успішно ініційована. Тобто субканал не перейшов до чинного стан субканала.

[00216] Формат 426 CCW (F): коли встановлений індикатор функції запуску EADM, дане поле зберігається як певне значення.

[00217] Попереднє витяг 428 (P): коли встановлений індикатор функції запуску EADM, дане поле зберігається як певне значення.

[00218] Розширене управління 430 (E): поле, коли воно встановлено, вказує, що залежить від моделі інформація збережена в розширеному керуючому слові EADM (ECW).

[00219] Управління 432 функціями (FC): поле управління функціями вказує функції EADM, які вказані в субканале. Приклади функцій включають наступне.

[00220] * Функцію запуску EADM: коли вона встановлена, вона вказує, що функція запуску EADM була запрошена, і вона або є очікує, або в даний момент виконується в субканале ADM-типу. Функція запуску EADM вказується в субканале, коли для команди Start Subchannel встановлений код успішної ситуації. Функція запункция запуску EADM в субканале також скидається в ході виконання функції Clear Subchannel.

[00221] * Функцію скидання EADM: коли вона встановлена, вказує, що була запрошена функція скидання EADM, і вона або є очікує, або в даний момент виконується в субканале ADM-типу. Функція скидання EADM вказується в субканале, коли для команди Start Subchannel встановлений код успішної ситуації. Коли виконується команда Test Subchannel, покажчик функції скидання EADM в субканале скидається, і субканал є очікують статус.

[00222] Управління 434 діями (АС): поле управління діями вказує поточний прогрес функції EADM, раніше прийнятої в субканале.

[00223] Всі ситуації, які відображаються бітами в полі управління діями, скидаються в субканале ADM-типу, коли виконується команда Test Subchannel, і субканал є очікують статус.

[00224] Приклади дій включають наступне.

[00225] * Очікування запуску: при установці вказує, що субканал є очікують запуск. Канальна підсистема може перебувати або не перебувати у процесі здійснення функції запуску EADM. Субканал стає освітленим запуск, коли для команди Start Subchannel встановлений код успішної ситуації. Субканал залишається очікують запуск, коли здійснюється функція запуску EADM, і канальна підсистема визначає я очікують запуск, коли відбувається будь-яка з наступного:

[00227] * канальна підсистема робить спробу ініціювання першої передачі даних, зазначеної допомогою AOB.

[00228] * Виконується команда Clear Subchannel.

[00229] * Команда Test Subchannel скидає ситуацію статусу в субканале.

[00230] Очікування скидання: коли воно встановлено, субканал є очікують скидання. Канальна підсистема може перебувати або не перебувати у процесі здійснення функції скидання EADM. Субканал стає освітленим скидання, коли для команди Clear Subchannel встановлений код зазначеної ситуації.

[00231] Субканал більше не є очікують скидання, коли відбувається будь-яка з наступного.

[00232] * Здійснюється функція скидання EADM.

[00233] * Команда Test Subchannel скидає тільки ситуацію очікування статусу.

[00234] Субканал діє: коли воно встановлено, вказує, що субканал ADM-типу є чинним субканалом. Субканал ADM-типу вважається чинним субканалом, коли канальна підсистема робить першу спробу ініціювати передачу даних, зазначається допомогою AOB, або здійснює першу операцію (в залежності від того, що відбувається в першу чергу).

[00235] Субканал більше не є чинним субканало�я команда Clear Subchannel.

[00238] Управління 436 статусами (SC): поле управління статусами постачає програму покажчиком узагальненого рівня для ситуації переривання, представленою інформацією в полях статусу субканала і статусу пристрою. В результаті ситуацій в субканале може встановлюватися більше одного індикатора управління статусами.

[00239] Приклади елементів управління статусами включають наступне:

[00240] Застережливий статус: коли він встановлено, вказує, що існує ситуація попереджувального переривання. Ситуація попереджувального переривання розпізнається, коли в субканале присутній застережливий статус. Попереджувальний статус генерується канальної підсистемою в будь-якій з наведених нижче ситуацій.

[00241] * Субканал ADM-типу є очікують запуск, і ситуація статусу перешкоджає ініціювання першої передачі даних.

[00242] * Субканал є чинним субканалом, і ненормальна ситуація, яка була повідомлена як статус субканала, завершила операції EADM.

[00243] Коли виконується команда Test Subchannel або Clear Subchannel, застережливий статус в субканале скидається.

[00244] Первинний статус: коли він встановлено, вказує, що існує ситуація первинного переривання. Ситуація пе переривання являє собою ситуацію обумовленого переривання, яка, коли вона супроводжується ситуацією вторинного переривання, вказує завершення функції запуску EADM в субканале.

[00245] Коли виконується команда Test Subchannel або Clear Subchannel, ситуація первинного переривання субканале скидається.

[00246] Вторинний статус: коли він встановлено, вказує існування ситуації вторинного переривання. Ситуація вторинного переривання розпізнається, коли в субканале присутній вторинний статус. Ситуація вторинного переривання являє собою ситуацію обумовленого переривання, яка, коли вона супроводжується ситуацією первинного переривання, вказує завершення функції запуску EADM в субканале.

[00247] Коли виконується команда Test Subchannel або Clear Subchannel, ситуація вторинного переривання субканале скидається.

[00248] Очікування статусу: коли воно встановлено, вказує, що субканал є очікують статус, і що доступна інформація, що описує причину ситуації переривання. Коли виконується команда Test Subchannel, зберігає SCSW EADM з набором бітів очікування статусу, всі покажчики SCSW EADM в субканале скидаються, поміщаючи субканал в стані бездіяльності. Ситуація очікування статусу також скидається в субканале в ході виконання команди Clear S�тву та твердотільному запам'ятовуючого пристрою для субканала.

[00250] Статус 438 субканала: ситуації статусу субканала ADM-типу виявляються і зберігаються канальної підсистемою в полі статусу субканала. Поле статусу субканала є значущим, коли субканал є очікують статус. За винятком ситуацій, викликаних збоями обладнання, статус субканала може виникати лише тоді, коли канальна підсистема включена в обробку функції EADM.

[00251] Приклади ситуацій статусу включають наступне.

[00252] * Перевірку програми: перевірка програми відбувається, коли канальної підсистемою виявляються помилки програмування.

[00253] * Перевірку захисту: перевірка захисту відбувається, коли канальна підсистема робить спробу доступу до запам'ятовуючого пристрою, який заборонений механізмом захисту. Захист поширюється на витяг ARQB, блоків MSB, слів AIDAW, даних, що підлягають передачі в твердотільне запам'ятовуючий пристрій, на збереження інформації в ARSB та дані, що передаються з твердотільного накопичувача.

[00254] * Перевірку канальних даних: перевірка канальних даних вказує, що стосовно вилучення даних з основного пристрою або збереження даних в основний накопичувач була об�управління каналом вказує, що стосовно вилучення чи збереження АОВ, блоків MSB або слів AIDAW була виявлена невиправлених помилка запам'ятовуючого пристрою, або що канальна підсистема зіткнулася з машинним збоєм, і збій вплинув на операції EADM.

[00256] * Перевірку кошти розширеного асинхронного переміщення даних (EADM): перевірка кошти EADM вказує, що засобом EADM була виявлена помилка у відношенні передачі даних в твердотільне запам'ятовуючий пристрій або твердотільного накопичувача, або щодо здійснення операції на твердотільному накопичувачі.

[00257] Коли канальної підсистемою розпізнається ситуація програми перевірки, перевірки захисту, перевірки канальних даних, перевірки управління каналом або перевірки засоби EADM, операції EADM завершуються, і канал робиться очікують статус з первинним, вторинним і запобіжних статусом.

[00258] Адреса 440 блоку операцій EADM: це поле містить адресу блоку операцій EADM.

[00259] Статус 442 пристрою: дане поле містить закінчення роботи пристрою або закінчення роботи каналу.

[00260] Коли формат 422 ESW в слові статусу субканала встановлений, і субканал є очікують статусу, передбачається розширене слово �прикладі, з посиланням на ФІГ.4D, розширене слово 450 статусу субканала EADM містить наступне.

[00262] Відключення 452 субканала EADM: відключення субканала EADM включає, в одному прикладі:

[00263] * розширені прапори статусів (ESF): поле, біти якого, якщо вони присутні, вказує, що канальної підсистемою була виявлена помилка.

[00264] Приклади розширених прапорів статусів включають:

[00265] перевірку ключа: коли вона встановлена, вказує, що канальна підсистема виявила недостовірний код перевірки блоку (CBC) на пов'язаному ключі зберігання при зверненні до даних в блоці операцій EADM (AOB), у блоці специфікації переміщення EADM (MSB) або в непрямому адресному слові даних EADM (AIDAW).

[00266] * Достовірність адреси AOB: коли вона встановлена, вказує, що адреса, що зберігається в полі адреси AOB в SCSW, застосовується для цілей відновлення.

[00267] Розширене слово 454 звіту EADM, яке містить, наприклад:

[00268 індикатор помилки блоку операцій EADM (В), який, коли він встановлений, вказує, що статус виняткової ситуації, збережений у SCSW EADM, пов'язаний із зазначеним блоком операцій EADM (AOB); і індикатор збереженого блоку відповіді EADM (R), який, коли він встановлений, вказує, що блок відповіді EADM (ARSB) збережений.

[00269] Коли усталово управління EADM забезпечує додаткову інформацію про що залежить від моделі сутності, яка описує ситуації, які можуть існувати в засобі EADM.

[00270] Крім того, для субканалов ADM-типу можуть повідомлятися наступні слова звіту про канали (CRW): ініціалізується встановлені параметри субканала; відновлені встановлені параметри субканала; субканали доступні; очікування інформації про події в субканалах.

[00271] Необумовлені події і збої, які відбуваються в засобі EADM, можуть повідомлятися допомогою CRW очікування інформації про події в субканалах.

[00272] Вище було докладно описано засіб розширеного асинхронного переміщення даних, що використовується для переміщення блоків даних між основним запам'ятовуючим пристроєм і твердотілим запам'ятовуючим пристроєм і для інших операцій на твердотільному накопичувачі. В одному варіанті здійснення винаходу інформація про засіб EADM та твердотільному накопичувачі отримують з використанням команди EADM. Зокрема, оскільки твердотільне запам'ятовуючий пристрій не є безпосередньо доступними, забезпечується засіб для визначення того, виділено чи твердотільне запам'ятовуючий пристрій, і, якщо воно виділено, для отримання інформації щодо конфігурації. В �іонної системою) про те, виділено чи ні твердотільне запам'ятовуючий пристрій, і, якщо воно виділено, то в якому обсязі і в яких місцях розташування. Можливість визначення доступного твердотільного накопичувача в даному описі називається отисканием, і один прикладі функції відшукання передбачається командою Store Storage Class Memory (SCM) Information (SSI).

[00273] Команда Store Storage Class Memory Information (SSI) використовується для отримання інформації про твердотільні накопичувачі і про засіб розширеного асинхронного переміщення даних. Команда SSI видає наступну інформацію, отриману, наприклад, з канальної підсистеми. Зазначена інформація більш докладно описано нижче.

[00274] 1. Характеристики кошти EADM, що включають:

[00275] * максимальне число блоків специфікації переміщення (MSB), що припадають на один AOB.

[00276] * Максимальне число блоків, що припадають на один MSB.

[00277] 2. Характеристики твердотільного накопичувача, що включають:

[00278] * розмір приростів SCM.

[00279] * Список приростів адрес SCM в межах адресного простору SCM.

[00280] * Залежить від моделі максимальний адреса SCM.

[00281] Виконання команди Store SCM Information, яке є синхронним, не змінює яку-небудь информаиваются згідно ФІГ.5A-5D. На початку, згідно ФІГ.5A, в одному варіанті здійснення винаходу, блок 500 запиту команди для команди Store SCM Information містить, наприклад:

[00283] Довжину 502: значення, яке вказує довжину блоку запиту команди.

[00284] Код 504 команди: значення, яке вказує код команди для команди Store SCM Information.

[00285] Формат 506 (FMT): значення, яке вказує формат блоку запиту команди.

[00286] Маркер 508 продовження: значення, яке може запитувати точку продовження для відновлення щодо попереднього відповіді, який не був завершений. Якщо значення маркера продовження дорівнює нулю, здійснюється запуск з початку. Якщо значення маркера продовження є ненульовим і нерозпізнаним, здійснюється запуск з початку.

[00287] Один варіант здійснення блоку 520 відповіді на команду SSI описується згідно ФІГ.5B, і містить, наприклад:

[00288] Довжину 522: значення, яке вказує довжину в байтах блоку відповіді на команду.

[00289] Код 524 відповіді: значення, яке описує результати спроби виконання команди SSI. Значення коду відповіді обумовлює довжину блоку відповіді. Наприклад, якщо зберігається вибраний код відповіді, довжина вказує 96+N×16 байт, де N - кількість записів у списку адрес твердотільного �ормат 526 (FMT): значення, яка вказує формат блоку відповіді на команду. Значення цього поля дорівнює, наприклад, нулю.

[00291] RQ 528: значення кваліфікатор відповіді, як визначено нижче:

[00292] Кваліфікації відповіді не існує.

[00293] Зазначений маркер продовження не розпізнається і обробляється так, ніби був вказаний нуль.

[00294] Поле 530 максимального лічильника блоків, що припадають на один MSB (MBC): значення, яке вказує максимальне значення, яке може використовуватися в полі лічильника блоків блоку специфікації переміщення (MSB).

[00295] Максимальний адреса SCM (MSA) 532: значення, яке вказує залежить від моделі максимальний адреса SCM. Воно являє собою адресу SCM останнього байта в найвищому адресуемом збільшенні SCM.

[00296] Розмір приростів SCM (IS) 534: значення, яке відображає розмір кожного прирощення SCM у списку адрес SCM і являє собою, наприклад, ступінь двійки.

[00297] Максимальний лічильник 536 блоків MSB (MMC): значення, яке вказує максимальну кількість блоків специфікації переміщення (MSB), яке може бути зазначено в блоці операцій EADM (AOB).

[00298] Максимальні конфігуровані збільшення SCM (MCI) 538: значення, яке являє собою максимальну кількість збільшень SCM, яке мІ не перевищує 2(64-IS). Наприклад, для збільшення розміру SCM 16 Гбайт, MCI≤2(64-34)оскільки всі прирощення SCM 16 Гбайт повинні бути адресованими в межах обмеження адресації 64-бітового адреси. Крім того, ((MCI+1)% IS)-1 не перевищує залежить від моделі максимальний адреса SCM.

[00300] Кількість конфігурованих приростів SCM (NCI) зменшує загальний розмір (TS), який може зазначатися, коли виконується описувана нижче успішна команда Configure Storage Class Memory, так що TS≤(MCI-NCI). Однак ґрунтуючись на пропускної здатності системи в цілому і виділень, вже зроблених для інших конфігурацій, прирощення SCM инициализированном стані можуть бути або можуть не бути здатні повністю задовольняти запит на в іншому випадку достовірне конфігурування аж до межі MCI для запитуваного конфігурування.

[00301] Поле 540 загальної кількості ініціалізований приростів SCM CPC: значення, яке відображає кількість збільшень SCM инициализированном стані для системи (наприклад, для центрального процесорного комплексу (CPC)). Якщо система логічно розбита, воно являє собою кількість збільшень, доступне в цілому для виділення розділів/розділами.

[00302] Поле 542 загальної кількості неинициалиостоянии для системи (наприклад, (СРС)).

[00303] Розмір 544 блоку вимірювання SCM: значення, яке представляє собою розмір блоку (BS) в байтах для блока вимірювання SCM. В одному прикладі воно являє собою ступінь 2, і максимальний розмір блоку вимірювання SCM становить, наприклад, 4096 байт.

[00304] Максимальну кількість частин 546 ресурсу SCM: значення, яке являє собою максимальну кількість частин ресурсу (RP) (наприклад, адаптери вводу-виводу) SCM на CPC. Кожне прирощення SCM пов'язано з однією з частин ресурсу SCM. Кожен ресурс SCM (наприклад, один або кілька адаптерів вводу-виводу і один або декілька SSD) містить одну або декілька частин. Максимальна кількість частин ресурсу SCM становить, наприклад, 509.

[00305] В одному прикладі термін «частина ресурсу» визначений для використання для отримання вимірювальної інформації, що відноситься до твердотільному запам'ятовуючого пристрою. Кожне прирощення SCM може розподілятися за кількома адаптерам, і кожен адаптер містить для передачі деякі дані про використання/вимірі. Так, кожен видається блок вимірювання ідентифікується кортежем, що складається з ідентифікатора збільшення плюс ідентифікатор ресурсу.

[00306] Розмір 548 одиниці даних SCM: Залежне від моделі �анних визначається для використання при отримання вимірювальної інформації, відноситься до твердотільному запам'ятовуючого пристрою. Число, яке повідомляється, представляє собою кількість одиниць даних, а не число байтів.

[00307] Маркер 550 продовження: залежне від моделі значення, за допомогою якого подальша видача команди SSI може тривати в точці продовження, відображення маркером. Вміст маркера продовження залежить від моделі.

[00308] Список 552 адрес твердотільного накопичувача: початок списку адрес SCM. Коли збережений код відповіді являє собою попередньо визначене значення, зберігається ряд записів списку адрес SCM (SALE) (наприклад, зберігається (Length - 96)/16 записів SALE).

[00309] В одному прикладі кількість записів збереженого SALE залежить від кількості приростів SCM конфігурації запитувача, від статусу кожної з них при виконанні команди, і від канальної моделі підсистеми. Зберігається нульове або більшу кількість записів SALE, і фактичне збережене кількість визначається, наприклад, шляхом вирахування 96 з розміру блоку відповіді (довжина), а потім ділення цього результату на 16.

[00310] Кожна запис у списку адрес SCM (SALE) відображає приріст SCM, яке займає діапазон адрес SCM. Початковий адресу SCM збільшення SCM, про�ий адреса обчислюється, в одному прикладі, шляхом додавання розміру приросту SCM в байтах до початкового адресою SCM і потім віднімання одиниці. Він являє собою адресу SCM останнього байта збільшення SCM. Твердотільне запам'ятовуючий пристрій, який відображається допомогою SALE, являє собою безперервний набір розташування байтів SCM, який, в одному варіанті здійснення винаходу, починається природної межі 2IS

[00311] SALE зберігається, коли відповідне прирощення SCM знаходиться в сконфігурованом стані, і в блоці відповіді доступно простір для SALE. Якщо простір у списку адрес SCM блоку відповіді вичерпано, значення зберігається в маркері продовження, і виконання завершується зі спеціальним кодом відповіді.

[00312] Два або більша кількість записів SALE зберігаються в порядку зростання їх адрес SCM.

[00313] Один варіант здійснення SALE описується згідно ФІГ.5C. В одному прикладі SALE 552 містить, наприклад:

[00314] Адреса 560 SCM (SA): значення, яке являє собою початковий адресу SCM байти 0 відповідного збільшення SCM в адресному просторі SCM, вирівняного по природної межі, яка визначається розміром приросту SCM (2ISбайт).

[00315] Атрибут 562 зберігання (P): значеует будь-яке розташування в межах приросту SCM. Можливі правила зберігання включають:

[00316] правило 1 - зберігати дані при відключенні живлення.

[00317] Правило 2 - зберігати дані до скидання по включенню живлення або IML.

[00318] Стан 564 операцій: значення, яке вказує стан операцій прирощення твердотільного накопичувача, відображуваного за допомогою SALE. Стан операцій достовірно тільки тоді, коли пов'язане прирощення SCM знаходиться в сконфігурованом стані.

[00319] Приклади станів операцій включають:

[00320] робочу (Op): твердотільне запам'ятовуючий пристрій, який відображається допомогою SALE, доступне для всіх операцій вводу-виводу. Вхід в робочий стан відбувається при успішному конфігуруванні і може відбуватися повторно при виході зі стану тимчасової або постійної помилки.

[00321] Тимчасова помилка (ТІ): твердотільне запам'ятовуючий пристрій, який відображається допомогою SALE, не доступна для жодних операцій вводу-виводу. Стан даних недостовірно, але вміст даних збережено при переході з робочого стану до тимчасової помилку. Вхід у стан тимчасової помилки відбувається з робочого стану, коли відсутній доступ до збільшенню SCM.

[00322] Постійна помилка (РЕ): т�ивода. Стан даних недостовірно, і дані втрачені. Вхід у стан постійної помилки відбувається з тимчасової помилки або з робочого стану, коли розпізнається непоправна помилкова ситуація.

[00323] Коли операція завершується з покажчиком постійної помилки, встановленим у коді кваліфікатор виняткових ситуацій блоку відповіді EADM, щонайменше, це відповідне прирощення SCM увійшло в стан постійної помилки. Проте в стан постійної помилки могло ввійти більше одного прирощення SCM.

[00324] Коли прирощення SCM не знаходиться в робочому стані, операція вводу-виводу, яка звертається до розташування в прирості, розпізнає перевірку кошти розширеного асинхронного переміщення даних або з тимчасової, або з постійною помилкою, встановленої в коді кваліфікатор виняткових ситуацій блоку відповіді EADM.

[00325] Стан 566 даних: значення, яке вказує стан даних вмісту збільшення твердотільного накопичувача, відображуваного за допомогою SALE. Стан даних є достовірним, коли пов'язане прирощення SCM знаходиться в сконфігурованом і початковому станах.

[00326] Приклади станів даних включають:

[00327] встанов SCM представляє собою накопичення всіх успішних операцій, відносяться до типу запису. Ще не записані розташування в прирості залишаються або встановленими на нуль, або непередбачуваними.

[00329] Непередбачуване - вміст збільшення SCM перед будь-якою операцією введення-виведення, що відноситься до типу запису, невідомо. Після того, як здійснено одна або кілька операцій, що відносяться до типу запису, вміст даних інших незаписаних місцезнаходжень залишається непередбачуваним, навіть якщо успішно записані розташування призводять до стану даних прирощення SCM, яка стає достовірним.

[00330] Перехід або від встановленого на нуль, або від непередбачуваного стану в стан відбувається достовірне з першої успішної записом. З причини будь-якої різниці між розміром записаних даних та розміром цільового приросту SCM, зміна в достовірне стан не описує фактичну ситуацію будь-якого ще не записаного розташування даних. Зазначене місце, ще не доступна для запису, як і раніше, ефективно описується як встановлений на нуль або непередбачуване.

[00331] Ранг 568: значення, яке вказує концептуальне якість збільшення твердотільного накопичувача, відображуваного за допомогою SALE. Р�м станах. Нульове значення означає, що рангу не існує. Ненульове значення у вказаному діапазоні означає, що ранг існує. В даному прикладі значення рангу, рівне одиниці, являє собою вищий, або кращий, ранг. Значення рангу, дорівнює п'ятнадцяти, являє собою нижчий, або гірший, ранг. При інших рівних умовах, SCM з більш високим рангом повинна бути кращою перед SCM з менш високим рангом.

[00332] R 570: це поле вказує, що приріст SCM розпізнає операцію звільнення. З цим пов'язані такі поведінки.

[00333] 1. Звільнений блок є першим, що підлягає запису перед тим, як він буде прочитано, в іншому випадку, якщо читання передує запису, розпізнається помилка операції читання. При такій помилці прирощення SCM залишається в робочому стані.

[00334] 2. При початковій конфігурації стан даних встановлено на нуль.

[00335] 3. Програма може здійснювати спеціальну операцію, звану звільненням, яка поміщає зазначений блок в звільнену ситуацію.

[00336] ID 572 ресурсу: ненульове значення являє собою ідентифікатор ресурсу (RID) для ресурсу, який забезпечує прирощення SCM коротке допомогою SALE. Коли RID дорівнює нулю, не ють для збільшення SCM запам'ятовуючий пристрій. Оскільки можуть застосовуватися деякі алгоритми RAID, або розшарування з метою поліпшення продуктивності шляхом допуску паралельних операцій вводу-виводу на декількох адаптерах/SSD, RID може відображати складову сутність.

[00337] Нижче описуються додаткові подробиці, що відносяться до станів конфігурації твердотільного накопичувача і до станів операцій і даних списку адрес твердотільного накопичувача.

[00338] З посиланням, у першу чергу, на ФІГ.6A описуються стану конфігурації і події/дії, які призводять до переходів в цих станах. Як показано, стану SCM представляють сконфігуроване стан, стан простою і зарезервоване стан. SCM може поміщатися в стан простою з зарезервованого стану, а потім зі стану простою в сконфігуроване стан. З настроєний стану SCM може бути деконфигурирована і введена в потрібне стан.

[00339] З посиланням на ФІГ.6B показано стану операцій та події, які призводять до переходів у зазначених станах. Для того щоб стати сконфігурованим, прирощення SCM повинно перебувати в стані простою, і при успішному завер�ленном на нуль стані переводить його в достовірне стан. Проміжне відключення живлення, а потім включення живлення на збільшенні SCM, яке не зазначено, як має збереженість за правилом 1, переводить прирощення SCM непередбачуване стан.

[00340] Помилка (E) може викликати перехід в стан тимчасової помилки (TE) або в стан постійної помилки (РІ) залежно від залежить від моделі специфіки помилки. Придбання (A) соединяемости може призводити до переходу з стану тимчасової помилки в робоче (Op) стан. Деконфигурирование збільшення SCM може відбуватися незалежно від його стану операцій.

[00341] ФІГ.6B також ілюструє стану даних при знаходженні в робочому стані відповідно до того, яким чином відбувався вхід в робочий стан. Стан даних є достовірним і поширюється на відповідне прирощення SCM, коли воно є сконфігурованим і знаходиться в робочому стані. Достовірними станами даних є: встановлений на нуль, непередбачуване і достовірне стану. Наступне являє собою можливі стани даних при різних входах в робочий стан.

[00342] * стани простою - встановлений на нуль (z)

[00343] * Зі стану тимчасової помилки - достовірне чого стану - достовірне (v) - перша запис

[00346] * З робочого стану - непередбачуване (u) - силовий цикл і сохраняемость не за правилом 1.

[00347] Якщо прирощення не знаходиться в робочому стані, стан даних є недостовірним.

[00348] При першому конфігуруванні і перед першим записом дані прирощення SCM знаходяться в установленому на нуль стані, що означає, що всі його вміст являє собою нулі.

[00349] Незважаючи на те, що зміст даних прирощення SCM не змінюється при переході в стан тимчасової помилки, прирощення не є доступним. Таким чином, вислів про те, що дані є достовірними, може бути описовим, але не надто значущим через відсутність доступності програми. Тому стан даних у такому сценарії є недостовірним. Також на основі помилки, яка викликає перехід з робочого стану до тимчасової помилку, якщо порушується цілісність даних, відбувається вхід в стан постійної помилки, стан даних залишається недостовірним, і дані є втраченими. Якщо паралельне виправлення може перевести прирощення SCM, яке перебуває у стані постійної помилки, в робочий стан як без деконфигурирования, т�стояння даних непередбачуваним або встановленим на нуль, залежить від моделі.

[00350] Сохраняемость збільшення SCM і його характеристики RAS (надійність, доступність та придатність до експлуатації) також можуть визначати зміну стану даних від достовірного до непередбачуваного. Якщо сохраняемость перевищується, очікується, що стан даних перейде з достовірного в непередбачуване.

[00351] Перехід або з встановленого на нуль, або з непередбачуваного стану даних в достовірне стан даних відбувається з першої успішної записом. З-за будь-якої різниці між розміром записаних даних та розміром цільового приросту SCM, зміна в достовірне стан не описує фактичну ситуацію для будь-якого ще не записаного розташування даних. Таке розташування перед першим доступ для запису фактично, як і раніше описується як встановлений на нуль або непередбачуване.

[00352] Після того, як прирощення SCM налаштовано, незапитуваний повідомлення тоді робиться дожидаючи, коли відбувається будь-яка одна або декілька подій, які є спостережуваними у відповідь на команду Store SCM Information. Приклади:

[00353] 1. Стан операцій змінюється від робітника до тимчасової помилку або постійної помилку, але не повідомляється в невірної оий змінюється від тимчасової помилки до постійної помилку.

[00356] 4. Зміна рангу.

100357] Приклади, коли запрошувані повідомлення не робляться очікують, включають наступне:

[00358] 1. Стан даних змінюється від встановленого на нуль або непередбачуваного до достовірного.

[00359] 2. Завершена команда Configure Storage Class Memory.

[00360] 3. Завершена команда Deconfigure Storage Class Memory.

[00361] Коли повідомлення є очікують, програма вивчає повідомлення та може видати команду Store SCM Information для отримання інформації. Команда Store SCM Information також може видаватися в інші моменти часу, в які програма хотіла б отримати інформацію про SCM та/або про SALE.

[00362] В одному прикладі повідомлення містить видане програмі переривання автоматичної перевірки з відповідним CRW, що вказує звіт про подію. Програма видає команду CHSC Store Event Information і отримує блок відповіді з кодом вмісту, що містить сигнал попередження про зміну твердотільного накопичувача.

[00363] В одному варіанті здійснення винаходу, команда Store SCM Information(SSI) являє собою команду канальної підсистеми, що видається програмою (наприклад, операційною системою) для отримання інформації про твердотільні накопичувачі та/або про записи списку адрес SCM.�орая направляється канальної підсистемі. Команда здійснюється в канальної підсистемі, і відповідь видається в блоці відповіді, який представляє собою залишається частина блоку управління розміру 4 Кбайт (тобто запитувана інформація зберігається в області основного пристрою, зазначеної для блоку відповіді). Додаткові подробиці, що відносяться до роботи даної команди, описуються з посиланням на ФІГ.5D.

[00364] На початку на етапі 580 програма генерує вищевказаний блок запиту для запиту Store SCM Information. Блок запиту приймається канальної підсистемою на етапі 582, та стосовно достовірності блоку запиту (наприклад, достовірного поля довжини, достовірного формату блоку запиту команди, встановленої команди і т. д.) робиться одна або кілька перевірок достовірності. Якщо на етапі запиту 584 запит не є достовірним, то на етапі 586 у блок відповіді міститься код відповіді, що вказує на проблему, і на етапі 592 видається блок відповіді.

[00365] Однак якщо на етапі запиту 584 запит є достовірним, то канальна підсистема на етапі 588 отримує інформацію від машини (наприклад, процесорів і т. д.), і на етапі 590 заповнює блок відповіді. На етапі 592 видається блок відповіді. Наприклад, інформація міститься в енергонезалежному запам�тво, лише доступне для програмно-апаратного забезпечення в ході ініціалізації системи. Канальна підсистема (тобто, в даному випадку, програмно-апаратне забезпечення) отримує інформацію шляхом її зчитування з основного пристрою, доступного тільки для програмно-апаратного забезпечення, і заповнює блок відповіді.

[00366] З урахуванням отримання інформації про твердотільні накопичувачі або в іншому випадку може бути прийнято рішення про зміну конфігурації твердотільного накопичувача. Рішення може прийматися вручну або автоматично за допомогою програми або іншої сутності.

Конфігурацію можна змінити шляхом додавання збільшень або видалення приростів так, як це описано нижче.

[00367] В одному прикладі для конфігурування твердотільного накопичувача використовується команда Configure Storage Class Memory. Ця команда запитує обсяг твердотільного накопичувача, що підлягає конфігурації, з доступного пулу системи. Обсяг вказується розмір, який кодується як кількість збільшень SCM.

[00368] Якщо не визначено інше, дана кількість збільшень SCM, що використовуються для задоволення запиту, знаходиться в инициализирконфигурируемих приростів SCM, передбачається спеціальний код відповіді.

[00369] Вміст кожного приросту становлять нулі з достовірним СВС. Застосовне правило збереженості, пов'язану з кожним конфігуровані приростом SCM, встановлюється, наприклад, за допомогою елементів ручного управління.

[00370] Один варіант здійснення блоку запиту команди для команди Configure Storage Class Memory проілюстрований на ФІГ.7A. В одному прикладі блок 700 запиту конфігурування твердотільного накопичувача містить:

[00371] Довжину 702: значення, яке вказує довжину блоку запиту команди.

[00372] Код 704 команди: значення, яке вказує код команди для команди Configure Storage Class Memory.

[00373] Формат 706 (FMT): значення, яке вказує формат блоку запиту команди.

[00374] Загальний розміру (TS) 708: значення, яке вказує розмір запитуваної твердотільного накопичувача, який кодується як кількість збільшень SCM. Число вже сконфігурованих приростів SCM плюс TS не повинно перевищувати максимуму конфігурованих приростів SCM (MCI). Якщо кількість збільшень SCM инициализированном стані менше зазначеного загального розміру, передбачається спеціальний код відповіді.

[00375] Корелятора асинхронного завершенЉего відповіді. Корелятор служить для продовження оригінального потоку, який ініціював запит.

[00376] Один варіант здійснення блоку відповіді на команду для команди Configure Storage Class Memory проілюстрований на ФІГ.7B. В одному варіанті здійснення винаходу блок 730 відповіді на команду містить:

[00377] Довжину 732: значення, яке вказує довжину блоку відповіді команди.

[00378] Код 734 відповіді: значення, яке описує результати спроби виконання команди Configure Storage Class Memory.

[00379] Якщо поле коду відповіді зберігається певний код відповіді, для закінчення обробки команди ініціюється асинхронний процес. Якщо в полі коду відповіді зберігається інший код відповіді, ніж певний код, жодне збільшення SCM не конфігурується, жоден асинхронний процес не ініціюється і не робиться ніякого подальшого повідомлення. Завершення асинхронного процесу вказується в уведомляющем відповіді.

[00380] Формат 736 (FMT): значення, яке вказує формат блоку відповіді команди.

[00381] Команда Configure Storage Class Memory видається програмою для запиту обсягу твердотільного накопичувача, що підлягає конфігурації в адресний простір SCM. Один варіант здійснення логіки, використовуваної для конфигурированЀая містить команду Configure SCM. Блок запиту команди Configure SCM на етапі 742 приймається канальної підсистемою, і канальна підсистема на етапі 744 робить спробу виконання команди. Якщо на етапі запиту 746 спроба виконання зазначеної команди генерує код відповіді, який не вказує на успіх, то код відповіді на етапі 748 поміщається в блок відповіді на кнопку Configure SCM, і на етапі 750 видається блок відповіді.

[00383] Якщо на етапі запиту 746 вказується успішний код відповіді, то код відповіді на етапі 752 поміщається в блок відповіді, і блок відповіді видається на етапі 754. В даному прикладі успішний код відповіді вказує, що поле довжини блоку запиту є достовірним; команда є доступною в системі; блок запиту команди має достовірний формат; канальна підсистема здатна здійснити команду (тобто не зайнята); запитаний загальний розмір не перевищує межу максимуму конфігурованих приростів SCM запитуваної конфігурації; і запитаний загальний розмір не перевищує кількість збільшень SCM инициализированном стані.

[00384] Крім того, на етапі 756 для завершення конфігурування ініціюється асинхронний процес. Додаткові подробиці, що відносяться до даної обробці, описуються з посиланням на ФІГ.7D.

[00385] В одному ваѵния одного або декількох приростів. Наприклад, для кожного настроєний збільшення SCM внутрішні елементи управління змінюються так, щоб дозволити знову сконфигурированному збільшенню бути доступним для запитів переміщення вводу-виводу в даний розділ. Зокрема, з урахуванням отримання канальної підсистемою команди CHSC Configure програмно-апаратне забезпечення канальної підсистеми опитує внутрішні таблиці для підтвердження того, що є досить збільшень для задоволення запиту, і для гарантії того, що запит не перевищує максимум конфігурованих приростів SCM для даної конфігурації. Якщо запит є достовірним, програмно-апаратне забезпечення оновлює одну або кілька таблиць для виділення приросту (приростів) конфігурації приміщення приросту (приростів) в робочий стан для конфігурування. Збільшення потім є доступними для запитів переміщення вводу-виводу (описаних вище) з конфігурації. Завершення асинхронного процесу вказується на етапі 762 в уведомляющем відповіді.

[00386] Дані відповіді повідомлення для команди Configure Storage Class Memory видаються в блоці відповіді на команду збереження інформації про події (SEI). Один варіант здійснення формату блоку відповіді �нте здійснення винаходу блок 800 відповіді повідомлення на команду Configure Storage Class Memory містить:

[00388] Довжину 802: значення, яке вказує довжину блоку відповіді на команду.

[00389] Код 804 відповіді: значення, яке описує результати спроби виконання команди Store Event Information CHSC.

[00390] Формат 806 (FMT): значення, яке вказує формат блоку відповіді на команду.

[00391] Тип 808 повідомлення: значення, яке вказує, що дане повідомлення є що належать до EADM.

[00392] P 810: якщо воно встановлено, вказує, що канальна підсистема містить очікує інформацію про події в доповнення до інформації, що надається у відповідь на цю команду CHSC.

[00393] V 812: якщо воно встановлено, вказує, що канальна підсистема розпізнала ситуацію переповнення, і інформація про події була втрачена.

[00394] Код 814 вмісту: значення, яке вказує, що воно являє собою відповідь на завершення виконання асинхронного процесу, ініційованого запитом команди Configure Storage Class Memory.

[00395] Вторинний код 816 відповіді: значення, яке додатково описує результати спроби виконання команди Configure SCM.

[00396] Коли вторинний код відповіді являє собою певне значення, повний обсяг твердотільного накопичувача був налаштований, як вимагалось спочатку�е довжини, на те, що не встановлено команда Configure SCM, блок команди конфігурування SCM має неприпустимий формат, загальний найпопулярніший розмір може перевищувати MCI, загальний найпопулярніший розмір перевищує кількість збільшень SCM инициализированном стані, канальна підсистема зайнята.

[00397] Корелятор 818 асинхронного завершення (АСС): значення, яке спочатку зазначається у відповідному блоці запиту команди.

[00398] Один варіант здійснення команди Store Event Information, використовуваної для видачі блоку повідомляючого відповіді для команди Configure Storage Class Memory, описується з посиланням на ФІГ.8B-8C.

[00399] Команда Store Event Information використовується для збереження інформації про події, яка канальної підсистемою була зроблена очікує. Зазвичай, ця команда виконується в результаті того, що програма отримала звіт каналу про очікує інформації про деяке подію.

[00400] Виконання команди Store Event Information може змінювати інформацію, що міститься в канальної підсистемі. Команда Store Event Information виконується синхронно.

[00401] Один варіант здійснення блоку запиту команди для команди Store Event Information описується з посиланням на ФІГ.8B. В одному прикладі блок 830 запиту містить:

[00402] Довжину 832: данно/p>

[00404] Формат 836 (FMT): значення, яке вказує формат блоку запиту команди.

[00405] Маска 838 вибору типу повідомлення (NTSM): макса, де кожна позиція біта відповідає значенню селектора логічного процесора (LPS) з тим же чисельним значенням. В одному прикладі, біт 0 ігнорується і вважається рівним одиниці. Коли позиція біта в зазначеному діапазоні, починаючи з 1, дорівнює нулю, тип повідомлення, відповідний цієї позиції бита, не зберігається в блоці відповіді, і, якщо розпізнається як очікує, відкидається. Коли зазначений біт дорівнює одиниці, тип повідомлення, відповідний цієї позиції біта, може зберігатися в блоці відповіді.

[00406] В одному варіанті здійснення винаходу, з посиланням на ФІГ.8C, нижче описується блок 850 відповіді для команди Store Event Information.

[00407] Довжина 852: значення, яке вказує вихідну довжину блоку відповіді на команду. Довжина по завершенні залежить від коду відповіді, який зберігається у результаті спроби виконання команди Store Event Information.

[00408] Якщо поле коду відповіді зберігається інший код відповіді, чим код, що вказує на успіх, інформація не зберігається в області даних відповіді.

[00409] Якщо поле коду відповіді зберігається код відповіді, що вказує на успіх, інформація про з�тки виконання команди Store Event Information.

[00411] Для команди Store Event Information область даних відповіді містить частину фіксованої довжини і частина змінної довжини.

[00412] Для відповіді зазначеного формату, коли NT є ненульовим, формат залежить від конкретного типу повідомлення, і формат поля, залежного від коду вмісту, залежить від конкретного типу повідомлення поля коду вмісту (CC) разом узятих.

[00413] Формат 856 (FMT): значення, яке вказує формат блоку відповіді на команду.

[00414] Тип 858 повідомлення (NT): значення, яке вказує тип повідомлення (NT). Для команди Configure SCM передбачається спеціальне значення.

[00415] Прапор 860 P: якщо встановлено, вказує, що канальна підсистема містить очікує інформацію про події в доповнення до інформації, що надається у відповідь на цю команду CHSC. Програма може отримувати додаткову інформацію шляхом повторного виконання команди Store Event Information. Якщо не встановлена, цей прапорець вказує, що канальна підсистема не містить додаткової очікує інформації про події.

[00416] Прапор 862 V: коли встановлено, вказує, що канальна підсистема розпізнала ситуацію переповнення, і інформація про події була втрачена. Ситуація переповнення була розпізнана в той час, каией. Переповнення не чинить впливу на інформацію, що міститься в області даних відповіді.

[00417] Код 864 вмісту (CC): значення, яке описує тип інформації, яка міститься в області даних відповіді. В одному прикладі, це значення вказує повідомлення про зміну твердотільного накопичувача, в якому один або декілька приростів SCM змінили стан або статус.

[00418] Поле 866, залежне від коду вмісту: це поле може містити додаткову інформацію, що відноситься до події.

[00419] Успішне повідомлення про зміну конфігурації може підказати програмі видачу команди Store SCM Information для отримання подробиць, що відносяться до конфігурації.

[00420] Крім збільшення пам'яті твердотільного накопичувача, пам'ять твердотільного накопичувача може бути зменшена. Команда Deconfigure Storage Class Memory запитує обсяг твердотільного накопичувача, що підлягає видаленню з адресного простору SCM запитуваної конфігурації. Приріст SCM, що підлягає деконфигурированию, повинно знаходитися в сконфігурованом стані.

[00421] Прирощення SCM, що підлягають деконфигурированию, зазначаються в запису списку запиту приращеесколько безперервних приростів SCM. Для кожного списку збільшень (також відомого як экстент), який не є безперервним з будь-яким іншим списком збільшень, може вказуватися окрема SIRLE.

[00422] Незалежно від правил зберігання, успішне деконфигурирование збільшення SCM поміщає збільшення у неинициализированное стан. Коли завершується встановлення на нуль, прирощення SCM переходить з неинициализированного стану в инициализированное стан.

[00423] Один варіант здійснення блоку запиту команди для команди Deconfigwe Storage Class Memory проілюстрований на ФІГ.9A. Блок 900 запиту команди для команди Deconfigure Storage Class Memory містить, наприклад:

[00424] Довжину 902: значення, яке вказує довжину блоку запиту команди. В одному прикладі довжина дорівнює 32+(N% 16) байт, де N - кількість записів списку запиту приростів SCM (записів SIRLE). Достовірна довжина в даному прикладі без залишку ділиться на 16 і знаходиться в діапазоні (32+1%16)≤L1≤(32+253% 16).

[00425] Код 904 команди: значення, яке вказує код команди для команди Deconfigure Storage Class Memory.

[00426] Формат 906 (FMT): значення, яке вказує формат блоку запиту команди.

[00427] Корелятор 908 асинхронного завершення (АСС): значення, яке видається у вищеописаному повідомленні про асинхронному�исок запиту приростів SCM містить одну або кілька записів (SIRLE). Довжина SIRL визначається із значення поля довжини.

[00429] Запис списку запиту приростів SCM (SIRLE) вказує розмір і місце розташування зазначеного экстента твердотільного накопичувача (наприклад, списку приростів). Экстент, або экстент SCM, являє собою зазначений розмір твердотільного накопичувача.

[00430] З посиланням на ФІГ.9B, в одному прикладі, SIRLE 920 містить:

[00431] загальний розмір 922 (TS): значення, яке вказує розмір твердотільного накопичувача, що підлягає деконфигурированию, який кодується як кількість збільшень SCM.

[00432] Початковий адресу 924 SCM (SA): значення, яке являє собою адресу SCM і є місцем розташування в адресному просторі SCM, з якого слід видалити перше, чи єдине, прирощення SCM, деконфигурируемое допомогою SIRLE. Положення молодших бітів, які можуть становити зміщення в межах першого приросту SCM, в даному прикладі ігноруються і покладаються рівними нулю.

[00433] Коли загальний розмір більше одиниці, кожне додаткове збільшення SCM за першим приростом розташовується за адресою SCM, який ділиться без залишку на розмір збільшення SCM, яке містить сконфігуроване прирощення SCM, і положення которогместоположении.

[00434] Якщо простір, описуване початковим адресою та загальним розміром разом узятими, не цілком заповнений сконфігурованими приростами SCM, передбачається зазначений код відповіді, не деконфигурируется жодне збільшення SCM, не ініціюється жоден асинхронний процес, і не з'являється жодного подальшого повідомлення.

[00435] При успішному завершенні, кожне деконфигурированное прирощення SCM входить в зарезервоване стан і потім встановлюється на нуль перед приміщенням в стан простою.

[00436] Блок відповіді на команду для команди Deconfigure Storage Class Memory проілюстрований на ФІГ.9C. В одному варіанті здійснення винаходу, блок 950 відповіді на команду містить:

[00437] довжині 952: значення, яке вказує довжину блоку відповіді на команду.

[00438] Код 954 відповіді: значення, яке описує результати спроби виконання команди Deconfigure Storage Class Memory.

[00439] Якщо поле коду відповіді зберігається код відповіді з вказаним значенням, для закінчення обробки команди ініціюється асинхронний процес. Якщо в полі коду відповіді зберігається інший код відповіді, ніж вказане значення, жодне збільшення SCM не деконфигурируется, не ініціюється ніякої асинхронний процес, і не робиться нік�0] Перед тим, як синхронна частина команди Deconfigure Storage Class Memory завершується з вказаним кодом відповіді, у списку всі записи запиту приростів SCM опитуються з тим, щоб гарантувати, що всі зазначені збільшення SCM знаходяться в сконфігурованом стані.

[00441] Формат 956 (FMT): значення, яке вказує формат блоку відповіді на команду.

[00442] Один варіант здійснення логіки, пов'язаної з командою Deconfigure SCM описується з посиланням на ФІГ.9D-9E.

[00443] На початку на етапі 970 програма видає команду Channel Subsystem Call, яка містить команду (Reconfigure SCM). Блок запиту команди Deconfigure SCM приймається канальної підсистемою на етапі 972, і канальна підсистема на етапі 974 робить спробу виконання цієї команди. Якщо спроба виконання команди на етапі запиту 976 дає код відповіді, який не вказує на успіх, то на етапі 978 код відповіді поміщається в блок відповіді на команду Deconfigure SCM, і на етапі 980 видається блок відповіді.

[00444] Якщо на етапі запиту 976 вказується успішний код відповіді, то на етапі 982 код відповіді поміщається в блок відповіді, і на етапі 984 видається блок відповіді. В даному прикладі успішний код відповіді вказує, що поле довжини блоку запиту є достовірним; команда в даній системі є доступною; блок заприращения SCM спочатку знаходяться в сконфігурованом стані.

[00445] Крім того, для завершення деконфигурирования на етапі 986 ініціюється асинхронний процес. Додаткові подробиці, що відносяться до даної обробці, описуються з посиланням на ФІГ.9E.

[00446] В одному варіанті здійснення винаходу, деконфигурирование на етапі 990 здійснює асинхронна обробка. Наприклад, звільняється одне або кілька приростів. Приріст SCM перекладається з настроєний стану в потрібне стан. За входом в зарезервоване стан слід процес установки на нуль, і після його завершення, збільшення SCM переходить в стан простою. Завершення асинхронного процесу вказується на етапі 992 в уведомляющем відповіді.

[00447] Дані повідомляючого відповіді для команди Deconfigure Storage Class Memory видаються в блоці відповіді на команду Store Event Information CHSC (SEI). Один приклад такого блоку відповіді описаний з посиланням на ФІГ.8A. Однак, в даному прикладі, код вмісту вказує, що це відповідь на завершення виконання асинхронного процесу, ініційованого запитом команди Deconfigure Storage Class Memory.

Аналогічно, вторинний код відповіді додатково описує результати спроби виконання команди Deconfigure Storage Class Memory.

[00448] В одному з додаткових вариантредоставленной користувачеві. Наприклад, для забезпечення графічного інтерфейсу, через який користувач може вказувати системі параметри, може використовуватися сервісний елемент. Для твердотільного накопичувача панель, звана панель розподілу твердотільного накопичувача, що дозволяє користувачеві здійснювати такі операції.

[00449] 1. Вказувати для даної конфігурації максимум конфігурованих збільшень (MCI);

[00450] 2. Виділяти прирощення для конфігурації;

[00451] 3. Звільняти збільшення конфігурації.

[00452] Панель також дозволяє переглядати виділені конфігурації прирощення і MCI, а також кількість збільшень у доступному, недоступному і неинициализированном пулах. Коли, через дії SE, розподіл приростів змінюється, або коли змінюється розмір одного з пулів, конфігурацій надсилається повідомлення.

[00453] Вище детально було описано засіб для адміністрування твердотільного накопичувача. Воно передбачає абстракцію, що дозволяє програмі отримувати доступ до пам'яті без знання специфіки цієї пам'яті. Відповідно одній або кільком особливостям цього винаходу запропоновано засіб для переміщення даних межЀования SCM; і для відшукання конфігурації SCM. Також передбачаються і інші засоби.

[00454] В одному варіанті здійснення винаходу твердотільне запам'ятовуючий пристрій представляється для програм користувача рівня як область лінійної пам'яті, яка не залежить від її фізичної реалізації для ряду пристроїв і адаптерів вводу-виводу.

[00455] Подробиці, що відносяться до канальним підсистем та/або засобу ADM, описані в патенті США №5377337 під назвою «Method and Means for Enabling Virtual Addressing Control By Software Users Over A Hardware Page Transfer Control Entity», виданому на ім'я Antognini et al. 27 грудня 1994 р.; патенті США №5442802 під назвою «Asynchronous Co-Processor Data Mover Method and Means», виданому на ім'я Brent et al. 15 серпня 1995 р.; і в патенті США №5526484 під назвою «Method and System for Pipelining the Processing of Channel Command Words», виданому 11 червня 1996 р., кожен з яких посиланням повністю міститься у даний опис.

[00456] Крім того, подальша інформація, що відноситься до канальної підсистемі і командам, пов'язаних з нею (для конкретної реалізації архітектури z/Architecture®

[00457] Введення-виведення (I/O)

[00458] Терміни «введення» і «висновок» використовуються для опису передачі даних між пристроями введення-виведення і основним запам'ятовуючим пристроєм. Операція, що включає такий тип передачі�ності називаються канальної підсистемою. (Пристрої введення-виведення та їх пристрою управління приєднуються до канальної підсистемі.)

[00459] Канальна підсистема

[00460] Канальна підсистема направляє потік інформації між пристроями введення-виведення і основним запам'ятовуючим пристроєм. Вона звільняє центральні процесори від завдання прямого зв'язку з пристроями введення-виведення і дозволяє обробці даних відбуватися паралельно з обробкою вводу-виводу. При управлінні потоком інформації в пристрої вводу-виводу або з них канальна підсистема використовує в якості лінії зв'язку один або кілька канальних трактів. Як частина обробки вводу-виводу канальна підсистема також здійснює операцію управління трактами шляхом перевірки доступності канального тракту, обирає доступний канальний тракт і ініціює здійснення пристроєм операції вводу-виводу.

[00461] Всередині канальної підсистеми знаходяться субканали. Для кожного пристрою вводу-виводу, доступного для програми допомогою канальної підсистеми, передбачається і призначається один субканал.

[00462] Засіб декількох наборів субканалов є обов'язковим засобом. Коли воно встановлено, субканали розбиваються на кілька набору�канал. В залежності від використовуваної моделі та інтерфейсу для деяких пристроїв введення-виведення доступ дозволяється тільки через певні набори субканалов.

[00463] Кожен субканал забезпечує інформацію, що стосується пов'язаного пристрої вводу-виводу та його приєднання до канальної підсистемі. Субканал також забезпечує інформацію, що стосується операцій вводу-виводу та інших функцій, які включаються до пов'язане пристрій вводу-виводу. Субканал являє собою засоби, за допомогою яких канальна підсистема доставляє інформацію про пов'язаних пристрої введення виведення центральних процесорів, які отримують цю інформацію шляхом виконання команд вводу-виводу. Фактична кількість наданих субканалов залежить від моделі та конфігурації; максимальна адресується в кожному наборі субканалов становить 0-65,535.

[00464] Пристрою введення-висновку приєднуються до канальної підсистемі через пристрої керування за допомогою канальних трактів. Пристрої управління можуть приєднуватися до канальної підсистемі допомогою більш ніж одного канального тракту, а пристрій вводу-виводу може приєднуватися більше ніж до одного пристрою управління. В залежності від моделі і конканал допомогою не більше ніж восьми різних канальних трактів. Загальна кількість канальних трактів, передбачені канальної підсистемою, залежить від моделі та конфігурації; максимальна адресується становить 0-255.

[00465] Продуктивність канальної підсистеми залежить від її застосування і від моделі системи, в якій вона реалізується. Канальні тракти забезпечуються різними засобами передачі даних, і пристрій введення-виведення, розраховане на передачу даних тільки з конкретною швидкістю (наприклад, накопичувач на магнітній стрічці, дисковий запам'ятовуючий пристрій) може діяти тільки на канальному тракті, який здатний пристосовуватися, щонайменше, до такої швидкості передачі даних.

[00466] Канальна підсистема містить загальні засоби управління операціями вводу-виводу. Коли зазначені кошти передбачаються у формі окремого, автономного обладнання, спеціально розрахованого на керування пристроями введення-виведення, операції вводу-виводу повністю поєднуються з діями центральних процесорах. Єдиними циклами роботи основного пристрою, необхідними канальної підсистемою в ході операцій вводу-виводу, є ті з них, які необхідні для передачі даних і керуючої�, поряд з тими циклами роботи, які можуть знадобитися канальної підсистемі для доступу до субканалам, коли вони реалізуються як частина неадресуемого основного пристрою. Зазначені цикли не затримують програми ЦП, за винятком випадків, коли і ЦП, і канальна підсистема паралельно роблять спроби звернення до однієї і тієї ж області основного пристрою.

[00467] Набори субканалов

[00468] Коли засіб декількох наборів субканалов встановлено, субканали розбиваються на кілька наборів субканалов. Може існувати до чотирьох наборів субканалов, кожен з яких ідентифікується за ідентифікатором набору субканалов (SSID). Коли засіб декількох наборів субканалов не встановлено, є тільки один набір субканалов з SSID, рівним нулю. Коли засіб декількох наборів субканалов не розблоковано, видимим для програми є лише нульовий набір субканалов.

[00469] Субканали

[00470] Субканал доставляє програмі логічний зовнішній вигляд пристрою і містить інформацію, необхідну для підтримки одиничної операції вводу-виводу. Субканал складається з внутрішнього пристрою, який містить інформацію у формі�атусов, коду підкласу переривання вводу-виводу, а також інформацію про доступність тракту і функціях, які є незавершеними або здійснюваними. Операції введення-виведення ініціюються пристроєм шляхом виконання команд вводу-виводу, які вказують субканал, пов'язаний з цим пристроєм.

[00471] Кожне пристрій є доступним допомогою одного субканала в кожній канальної підсистемі, для якої воно призначено в ході конфігурування під час установки. Пристрій може являти собою фізично ідентифіковану грошову одиницю, або воно може монтуватися всередині корпусу пристрою управління. Наприклад, в деяких дискових запам'ятовуючих пристроях, кожен привід, який використовується при пошуку даних, розглядається як пристрій. У всіх випадках пристрій, з точки зору канальної підсистеми, являє собою сутність, яка однозначно пов'язана з одним субканалом і яка відповідає на її вибір канальної підсистемою шляхом використання протоколів зв'язку, визначених для певного типу канального тракту, за допомогою якого вона є доступною.

[00472] На деяких моделях субканали передбачаються в блоках. На таких моделях може передбачатися більше субкм пристроїв, не використовуються канальної підсистемою для здійснення яких-небудь функцій, і вказуються шляхом збереження пов'язаного біта достовірності номера пристрою як нуля в блоці інформації про субканале в субканале.

[00473] Кількість субканалов, що передбачаються канальної підсистемою не залежить від кількості канальних трактів до пов'язаних пристроїв. Наприклад, пристрій, доступне через альтернативні канальні тракти, як і раніше відображається як єдиний субканал. Коли встановлено засіб наборів субканалов, кожен субканал адресується з використанням 16-бітного номери субканала і двухбитного SSID.

[00474] Після обробки вводу-виводу в субканале, що запитується шляхом виконання команди START SUBCHANNEL, ЦП звільняється для іншої роботи, а канальна підсистема збирає або розбирає дані і синхронізує передачу байтів даних між пристроєм вводу-виводу і основним запам'ятовуючим пристроєм. Для виконання цієї задачі, канальна підсистема підтримує та оновлює адресу та число, які описують адресу призначення або джерела даних в основному запам'ятовуючому пристрої. Аналогічно, коли пристрої введення-виведення створює сигнали, які слід довести до уваги прог�анале, де вона може бути отискана програмою.

[00475] Приєднання пристроїв вводу-виводу

[00476] Канальні тракти

[00477] Канальна підсистема зв'язується з пристроями введення-виведення допомогою канальних трактів між канальної підсистемою і пристроями управління. Пристрій управління може бути доступно для канальної підсистеми допомогою більш ніж одного канального тракту. Аналогічно, пристрій вводу-виводу може бути доступно для канальної підсистеми через більш ніж один пристрій управління, кожне з яких містить один або декілька канальних трактів до канальної підсистемі.

[00478] Пристрої, які приєднуються до канальної підсистемі допомогою декількох канальних трактів, сконфігурованих в субканал, можуть бути доступні для канальної підсистеми з використанням будь-якого з доступних канальних трактів. Аналогічно, пристрій, що містить засіб динамічної перебудови з'єднань і діє многотрактном режимі, може бути ініціалізований для роботи таким чином, щоб пристрій міг вибирати будь-який з доступних канальних трактів, сконфігурованих в субканал, при логічної перебудові сполук з канальною підсистемою для прод�загальноосвітніх трактів. Прикладами типів канальних трактів, використовуваних канальної підсистемою, є: інтерфейс вводу-виводу ESCON, перетворений інтерфейс вводу-виводу FICON і інтерфейс вводу-виводу IBM System/360 і System/370. Термін «інтерфейс послідовного вводу-виводу» використовується для звернення до інтерфейсу вводу-виводу ESCON інтерфейсу вводу-виводу FICON і перетвореному інтерфейсу вводу-виводу FICON. Термін «інтерфейс паралельного вводу-виводу» використовується для звернення до інтерфейсу вводу-виводу IBM System/360 and System/370.

[00480] Інтерфейс вводу-виводу ESCON описано в публікації системної бібліотеки IBM Enterprise Systems Architecture / 390 ESCON I/O Interface, SA22-7202, яка посиланням повністю включена в даний опис.

[00481] Інтерфейс вводу-виводу FICON описаний в документі стандартів ANSI Fibre Channel - Single-Byte Command Code Sets-2 (FC-SB-2).

[00482] Інтерфейс вводу-виводу IBM System/360 і System/370 описано в публікації системної бібліотеки IBM System/360 and System/370 I/O Interface Channel to Control Unit OEMI, GA22-6974, яка посиланням повністю включена в даний опис.

[00483] В залежності від типу канального тракту засобів, забезпечуваних канальним трактом і пристроєм вводу-виводу, і пристрою введення-виведення, операція вводу-виводу може відбуватися в одному з трьох режимів: кадровий мультиплексний р� пристрій вводу-виводу може залишатися логічно сполученим з канальним трактом протягом всієї тривалості виконання канальної програми. Кошти канального тракту, допускають роботу в кадровому мультиплексному режимі, можуть спільно використовуватися декількома паралельно працюючими пристроями введення-виведення. У цьому режимі інформація, необхідна для завершення операції вводу-виводу, поділяється на кадри, які можуть чергуватися з кадрами з інших пристроїв введення-виведення. В ході зазначеного періоду часу логічно сполученими з канальним трактом вважаються кілька пристроїв.

[00485] В пакетно-монопольному режимі пристрій вводу-виводу монополізує канальний тракт і залишається логічно сполученим з канальним трактом протягом передачі пакета інформації. Жодне інше пристрій не може зв'язуватися по канальному тракту протягом часу передачі пакету. Пакет може складатися з декількох байтів, всього блоку даних, послідовності блоків пов'язаної з керуючою інформацією та інформацією про статус (довжина блоку може бути рівною нулю) або з інформації про статус, яка монополізує канальний тракт. Кошти канального тракту, допускають роботу в пакетно-монопольному режимі, можуть спільно використовуватися декількома паралельно працюючими пристроями введення-виведення.

[00486] Деякі иблизительно половини хвилини, як, наприклад, відбувається, коли зчитується довгий проміжок на магнітній стрічці. Коли відсутність передачі даних перевищує встановлену межу, може вказуватися збій обладнання.

[00487] байтовому мультиплексному режимі пристрій вводу-виводу залишається логічно сполученим з канальним трактом тільки протягом короткого проміжку часу. Кошти канального тракту, допускають роботу в байтовому мультиплексному режимі, можуть спільно використовуватися декількома паралельно працюючими пристроями введення-виведення. У цьому режимі всі операції вводу-виводу поділяються на короткі проміжки часу, в ході яких по канальному тракту передається лише певний сегмент інформації. Протягом зазначеного проміжку з канальним трактом логічно поєднано тільки один пристрій і пов'язаний субканал. Проміжки, пов'язані з паралельною роботою декількох пристроїв вводу-виводу, шикуються в послідовність у відповідь на потреби пристроїв. Засіб канальної підсистеми, пов'язане з субканалом, застосовує свої керуючі елементи для будь-якої операції лише протягом часу, необхідного для передачі сегмента інформації. Сегмент може складатися з единственногЂи, використовується для ініціювання нової операції.

[00488] Звичайно пристрої з високими вимогами до швидкостей передачі даних працюють з канальними трактами в кадровому мультиплексному режимі, більш повільні пристрої працюють в пакетно-монопольному режимі, і самі повільні пристрої працюють в байтовому мультиплексному режимі. Деякі пристрої керування містять ручний перемикач для встановлення бажаного режиму роботи.

[00489] Операція вводу-виводу, яка відбувається на канальному тракті з паралельним типом інтерфейсу вводу-виводу, може відбуватися або в пакетно-монопольному режимі, або в байтовому мультиплексному режимі в залежності від засобів, забезпечуваних канальним трактом і пристроєм вводу-виводу. Для збільшення продуктивності деякі канальні тракти і пристрою управління оснащуються засобами для високошвидкісної і потокової передачі даних. Опис двох таких коштів див. публікації System Library publication IBM System/360 and System/370 I/O Interface Channel to Control Unit OEMI, GA22-6974, яка посиланням повністю включена в даний опис.

[00490] Операція вводу-виводу, яка відбувається на канальному тракті з послідовним типом інтерфейсу вводу-виводу, може відбуватися або які пристрої керування, приєднувані до послідовного інтерфейсу вводу-виводу, передбачають засіб доставки програмі даних відчуттів паралельно з наданням статусу перевірки пристрою, якщо таке діяння допускається програмою.

[00491] В залежності від пристрою керування або канальної підсистеми доступ до пристрою через субканал може бути обмежений типом з єдиним канальним трактом.

[00492] Вищеописані режими та ознаки впливають тільки на протокол, використовуваний для передачі інформації по канальному тракту, і на швидкість передачі. ЦП або канальними програмами не можуть спостерігатися ніякі впливу щодо способів, якими виконуються зазначені програми.

[00493] Пристрою управління

[00494] Пристрій керування забезпечує логічні потужності, необхідні, щоб приводити в дію і управляти пристроєм вводу-виводу, і пристосовує ознаки кожного пристрою так, що воно може відповідати на стандартну форму управління, забезпечувану канальної підсистемою.

[00495] Зв'язок між пристроєм управління і канальної підсистемою відбувається по канальному тракту. Пристрій управління приймає сигнали керування від канальної подсисносительно статусу пристрою.

[00496] Пристрій вводу-виводу, підключений до пристрою управління, може бути призначено виконувати тільки певні обмежені операції, або воно може виконувати безліч різних операцій. Звичайною операцією є переміщення середовища запису і запису даних. Щоб виконувати свої операції, пристрій потребує докладних сигнальних послідовностей, специфічних для свого типу пристрою. Пристрій управління декодує команди, отримані від канальної підсистеми, інтерпретує їх для конкретного типу пристрою, і надає сигнальну послідовність, що вимагається для виконання операції.

[00497] Пристрій управління може розміщуватися окремо, або воно може бути фізично і логічно поєднано з пристроєм вводу-виводу, канальної підсистемою або ЦП. Для більшості електромеханічних пристроїв існує добре певний інтерфейс між пристроєм і пристроєм управління із-за відмінності в типі обладнання, необхідного пристроєм управління і пристроєм. Ці електромеханічні пристрої часто бувають пристроями типу, в якому з групи, підключеного пристрою управління, щоб передавати дані в момент часу (напримеуправления розділяється між деяким числом пристроїв вводу-виводу. З іншого боку, в деяких електронних пристроях введення-виводу, таких як адаптер канал-канал, пристрій управління не має власної сутності.

[00498] З точки зору програміста, більшість функцій, виконуваних пристроєм управління, можуть бути об'єднані з функціями, виконуваними пристроєм вводу-виводу. Отже, як правило, в цьому описі не робиться конкретної згадки про пристрій управління; виконання операцій введення-виведення описується, як якщо б пристрою вводу-виводу повідомлялися безпосередньо з канальною підсистемою. Посилання на пристрій керування робиться тільки при особливому згадці функції, виконуваної ним, або при описі того, як поділ пристрою керування серед ряду пристроїв впливає на продуктивність операцій вводу-виводу.

[00499] Пристрою вводу-виводу

[00500] Пристрій вводу-виводу (I/O) забезпечує зовнішнє запам'ятовуючий пристрій, засоби зв'язку між системами обробки даних або засоби зв'язку між системою і її середовищем. Пристрої вводу-виводу включають таке обладнання як пристрої на магнітних стрічках, запам'ятовуючі пристрої прямого доступу (наприклад, диски), пристрою відображення, клавіатурні печает бути фізично окремим обладнанням або воно може розділяти обладнання з іншими пристроями введення-виведення.

[00501] Більшість пристроїв вводу-виводу, такі як принтери, або стрічкові пристрої, що використовують зовнішні середовища, і ці пристрої фізично відрізняються і идентифицируеми. Інші типи є виключно електронними і прямо не працюють з фізичними середовищами запису. Адаптер канал-канал, наприклад, забезпечує передачу даних між двома канальними трактами, і дані ніколи не досягають фізичної середовища записи за межами основного пристрою. Аналогічно, контролери зв'язку можуть керувати передачею інформації між системою обробки даних та віддаленого станцією, і її входом і виходом є сигнали на лінії передачі.

[00502] У найпростішому випадку пристрій вводу-виводу підключається до одного пристрою керування і доступна з одного канального тракту. Перемикаючий обладнання доступно, щоб робити деякі пристрої досяжним з одного або декількох канальних трактів шляхом перемикання пристроїв між пристроями управління і перемикання пристроїв управління між канальними трактами. Таке перемикаючий обладнання надає безліч трактів, за якими можна отримати доступ до пристрою вводу-виводу. Безліч канальних трактів клі і те, і інше, в системі. Управління багатьма канальними трактами до пристроїв знаходиться під контролем канальної підсистеми і пристрої, але канальні тракти можуть побічно управлятися програмою.

[00503] Адресація вводу-виводу

[00504] Чотири різних типи адресації введення-виведення забезпечуються канальної підсистемою необхідної для адресації різних компонентів: ідентифікатори канального тракту, номери субканалов, номери пристроїв і, хоча невидимі для програм, адреси, залежні від типу канального тракту. Коли встановлено засіб декількох наборів субканалов, в адресації введення-виведення також використовується ідентифікатор набору субканалов (SSID).

[00505] Ідентифікатор набору субканалов

[00506] Ідентифікатор набору субканалов (SSID) являє собою двубитное значення, приписане до кожного наданого набору субканалов.

[00507] Ідентифікатор канального тракту

[00508] Ідентифікатор канального тракту (CHPID) являє собою унікальне для системи восьмибитное значення, приписане до кожного встановленим канальному тракту системи. CHPID використовується для адресації канального тракту. CHPID визначається адресою другого операнда RESET CHANNEL PATH і використовується, щоб указиватво, ідентифікуються в блоці інформації субканала (SCHIB), кожен своїм пов'язаним CHPID, коли виконується STORE SUBCHANNEL. CHPID також може використовуватися в повідомленнях оператора, коли необхідно ідентифікувати конкретний канальний тракт. Модель системи може забезпечувати цілих 256 канальних трактів. Максимальна кількість канальних трактів і призначення ідентифікаторів CHPID для канальних трактів залежить від моделі системи.

[00509] Номер субканала

[00510] Номер субканала являє собою унікальне для системи 16-бітове значення, що використовується для адресації субканала. Це значення є унікальним в наборі субканалов канальної підсистеми. Адресація до субканалу здійснюється з допомогою восьми команд вводу-виводу: CANCEL SUBCHANNEL, CLEAR SUBCHANNEL, HALT SUBCHANNEL, MODIFY SUBCHANNEL, RESUME SUBCHANNEL, START SUBCHANNEL, STORE SUBCHANNEL і TEST SUBCHANNEL.

Всі функції вводу-виводу щодо конкретного пристрою вводу-виводу визначаються програмою шляхом вказівки субканала, приписаного до пристрою вводу-виводу. Субканалам в кожному наборі субканалов завжди приписуються номери субканалов з одного діапазону суміжних чисел. Субканалом з найменшим номером є субканал 0. Субканалом з найбільшим номером у канальної підсистемі є лов може надаватися не більше 65536 субканалов. Як правило, номери субканалов використовуються тільки при зв'язку між програмою ЦП і канальної підсистемою.

[00511] Номер пристрою

[00512] Кожен субканал, який має призначене пристрій вводу-виводу, також містить параметр, званий номером пристрою. Номер пристрою являє собою 16-бітове значення, яке приписується в якості одного з параметрів субканала, коли субканалу призначається пристрій. Номер пристрою унікальним чином ідентифікує пристрій для програми.

[00513] Номер пристрою забезпечує спосіб ідентифікації пристрою, незалежний від яких-небудь обмежень, що накладаються системної моделлю, конфігурацією або протоколами канального тракту. Номер пристрою використовується в процесах передачі інформації, що стосуються пристрою, які мають місце між системою і оператором системи. Наприклад, номер пристрою вводиться оператором системи, щоб вказувати пристрій введення, яке треба використовувати для початкового завантаження програми.

[00514] Зауваження для програмування: Номер пристрою призначається під час установки пристрою і може мати будь-яке значення. Проте користувач повинен брати до уваги будь обмежений�рограммами або конкретним пристроєм керування пристроєм введення-виведення.

[00515] Ідентифікатор пристрою

[00516] Ідентифікатор пристрою являє собою адресу, невидимий програмі, який використовується канальної підсистемою для зв'язку з пристроями введення-виведення. Тип ідентифікатора пристрою залежить від типу конкретного канального тракту і забезпечуваних протоколів. Кожен субканал містить один або декілька ідентифікаторів пристрою.

[00517] Для канального тракту інтерфейсу вводу-виводу паралельного типу ідентифікатор пристрою називається адресою пристрою і має восьмибитное значення. Для інтерфейсу вводу-виводу ESCON ідентифікатор пристрою складається з четирехбитного адреси пристрою управління і восьмибитного адреси пристрою. Для інтерфейсу вводу-виводу FICON ідентифікатор пристрою складається з восьмибитного ID способу пристрою управління і восьмибитного адреси пристрою. Для FICON-перетвореного інтерфейсу вводу-виводу ідентифікатор пристрою складається з четирехбитного адреси пристрою управління і восьмибитного адреси пристрою.

[00518] Адреса пристрою ідентифікує конкретний пристрій вводу-виводу (і, на паралельному інтерфейсу вводу-виводу - пристрій управління), пов'язане пристрій доступу до диска або лінію передачі даних. В якості адреси пристрою може бути призначено будь-яке число в діапазоні 0-255.

[00519] Розширення Fibre-Channel

[00520] Засобу розширення Fibre Channel (FCX) являють собою додаткові засоби, які забезпечують формування канальної програми, яка складається з слова (TCW) управління передачею, яке вказує блок (TCCB) управління командами передачі і блок (TSB) статусу передачі. TCCB включає область (TCA) команд передачі, яка містить до 30 список команд вводу-виводу, які мають форму слів (DCW) команд пристроїв. TCW і його TCCB можуть визначати операцію або читання або запису. На додаток до IRB, TSB містить статус завершення та іншу інформацію, що відноситься до канальної програмі TCW.

[00521] Кошти FCX забезпечують можливість прямо або побічно вказувати один або всі TCCB, область пам'яті вхідних даних і область пам'яті вихідних даних. Коли область пам'яті вказана прямо, TCW визначає місцеположення одного безперервного блоку пам'яті. Коли область пам'яті вказана побічно, TCW вказує місце розташування списку одного або декількох слів (TIDAW) непрямого адреси передачі даних. Списки TIDAW і область пам'яті, зазначена кожним TIDAW у списку, не можуть перевищувати меж 4 кбайт.

[00522] Кошти FCX таие операції вводу-виводу.

[00523] Слова команд вводу-виводу

[00524] Слово команди вводу-виводу визначає команду і містить інформацію, пов'язану з командою. Коли кошти FCX встановлені, є дві прості форми слів команд вводу-виводу, а саме командне слово (CCW) каналу і командне слово (DCW) пристрою.

[00525] CCW має розмір 8 байт і визначає команду, що підлягає виконанню. Для команд, які ініціюють певні операції, CCW також вказує область пам'яті, пов'язану з операцією, підрахунок байтів даних, дія, що необхідно зробити, коли команда завершується, і інші настройки. Усі пристрої введення-виведення розпізнають слова CCW.

[00526] DCW має розмір 8 байт і визначає команду, що підлягає виконанню, підрахунок байтів даних і інші настройки. Пристрої введення-виведення, які підтримують FCX, розпізнають слова DCW.

[00527] Командне слово (TCW) передачі

[00528] TCW вказує блок (TCCB) управління командами передачі, який містить список команд, які необхідно передати і на пристрій вводу-виводу і виконати на ньому. TCW також вказує області пам'яті для команд у TCCB, а також блок (TSB) статусу передачі, який повинен містити статус операції вводу-виводу.

[00529] Організація канальннно канальна програма CCW. Коли кошти FCX встановлені, є додаткова форма канальної програми, а саме канальна програма TCW. Обидві форми канальних програм описуються нижче.

[00531] Канальна програма CCW

[00532] Канальна програма, що складається з одного або декількох слів CCW, називається канальної програмою CCW (CCP). Така канальна програма містить одне або кілька слів CCW, які логічно пов'язані та впорядковано для послідовного виконання канальної підсистемою.

[00533] Канальна програма TCW

[00534] Канальна програма, яка складається з одного слова TCW, називається канальної програмою TCW. TCW вказує блок (TCCB) управління командами передачі, який містить від 1 до 30 слів DCW. Слова DCW в TCCB логічно пов'язані та впорядковано для послідовного виконання. Для слів DCW, які визначають інформацію управління, TCCB також містить інформацію управління для цих команд. TCW також вказує область або області пам'яті для слів DCW, які визначають передачу даних від пристрою або на пристрій і місце розташування блоку (TSB) статусу передачі для статусу завершення. TCCB та області пам'яті для передачі даних можуть визначатися або як безперервна, або як перервна пам'ять.

[00535] TCW також указииируются і управляються за допомогою інформації з чотирма типами форматів: командою START SUBCHANNEL, словами команд передачі, словами команд вводу-виводу і вказівками. Команда START SUBCHANNEL виконується ЦП і є частиною програми ЦП, яка здійснює управління потоком запитів для операцій вводу-виводу від інших програм, які управляють або обробляють дані вводу-виводу.

[00538] Коли виконується START SUBCHANNEL, параметри передаються на цільовий субканал, запитуючи, щоб канальна підсистема виконала функцію запуску з пристроєм вводу-виводу, пов'язаних з субканалом. Канальна підсистема виконує функцію запуску, використовуючи інформацію на субканале, включаючи інформацію, передану під час виконання команди START SUBCHANNEL, щоб знайти доступний канальний тракт до пристрою. Коли пристрій було обрано, виконання операції введення-виведення здійснюється шляхом декодування і виконання CCW канальної підсистемою і пристроєм вводу-виводу, для канальних програм CCW або, для канальних програм TCW, - шляхом передачі TCCB на пристрій вводу-виводу канальної підсистемою і декодування і виконання DCW пристроєм. Слова команд вводу-виводу і слова команд передачі вилучаються з основного пристрою, хоча модифікуючі біти в командному коді CCW DCW можуть визначати зависимиа, такі як перемотування плівки чи розташування пристрою доступу на дисковому накопичувачі, визначаються вказівками, які декодуються і виконуються пристроями введення-виведення. Вказівки можуть передаватися на пристрій у вигляді модифікуючих бітів у командному коді команди управління, можуть передаватися на пристрій у вигляді даних під час операції управління або запису, або можуть отримувати доступ до пристрою іншими способами.

[00540] Ініціація функції запуску

[00541] Програми ЦП ініціюють операції вводу-виводу командою START SUBCHANNEL. Ця команда передає вміст блоку (ORB) запиту операції на субканал.

[00542] Якщо ORB визначає канальну програму CCW, вміст ORB включає ключ субканала, адресу першого CCW, що підлягає виконанню, та специфікацію формату слів CCW. CCW визначає команду, що підлягає виконанню, та область пам'яті, якщо є, яку необхідно використовувати. Якщо ORB визначає канальну програму TCW, вміст ORB включає ключ субканала та адресу слова TCW, що підлягає виконанню. TCW вказує TCCB, який містить команди, що підлягають передачі на пристрій для виконання, область або області пам'яті, якщо є, які треба використовувати для передачі даних, і TSB, котор�лнение START SUBCHANNEL завершується. Результати виконання команди позначаються набором кодів ситуацій у слові статусу програми.

[00544] Коли кошти стають доступними, і ORB визначає канальну програму CCW, канальна підсистема отримує перше CCW і декодує його в відповідності з бітом формату, визначеним у ORB. Якщо біт формату дорівнює нулю, визначається формат - 0 слів CCW. Якщо біт формату дорівнює одиниці, визначається формат - 1 слів CCW. Слова CCW формату - 0 і формату - 1 містять однакову інформацію, але поля в CCW форматі - 1 організовані іншим чином, так що 31-бітові адреси можуть визначатися безпосередньо у CCW. Коли кошти стають доступними, і ORB визначає канальну програму TCW, канальна підсистема витягує зазначене TCW та передає зазначений ТССВ на пристрій. Області пам'яті, зазначені TCW для передачі даних на пристрій або з пристрою, є 64-бітовими адресами.

[00545] Режими роботи субканалов

[00546] Є два режими роботи субканалов. Субканал входить в режим передачі, коли засіб FCX встановлено, і функція запуску встановлена на субканале у результаті виконання команди START SUBCHANNEL, яка визначає канальну програму TCW. Субканал залишається в режимі передачі, поки функція запуску у субк�ок в ток трактами

[00548] Якщо ORB визначає канальну програму CCW, і перше CCW проходить певні перевірки достовірності та не має прапора припинення, заданого в одиницю, або якщо ORB визначає канальну програму TCW, і вказане TCW проходить певні перевірки достовірності, канальна підсистема робить вибір пристрою шляхом вибору канального тракту з групи канальних трактів, які доступні для вибору. Пристрій управління, яке розпізнає ідентифікатор пристрою, логічно з'єднується з канальним трактом і відповідає на його вибір.

[00549] Якщо ORB визначає канальну програму CCW, канальна підсистема відправляє частину CCW з кодом команд по канальному тракту, і пристрій відповідає байтом статусу, який вказує, чи може команда бути виконана. Пристрій управління в цей час може логічно відключатися від канального тракту або може залишатися підключеним, щоб ініціювати передачу даних.

[00550] Якщо ORB визначає канальну програму TCW, канальна підсистема використовує інформацію у зазначеному TCW, щоб передавати TCCB на пристрій керування. Вміст TCCB ігнорується канальної підсистемою і має значення лише для пристрою управління і пристрою вводу-виводу.<� тракту, канальна підсистема намагається вибрати пристрій по альтернативному канальному тракту, якщо він доступний. Якщо вибір був зроблений по всім доступним для вибору трактах, а ситуація зайнятості зберігається, операція залишається в очікуванні, поки тракт не звільниться. Якщо ситуація неробочого тракту виявляється на одному або декількох канальних трактах, на яких предпринимался вибір пристрою, програма отримує попередження подальшим перериванням вводу-виводу. Переривання вводу-виводу виникає або після виконання канальної програми (у припущенні, що пристрій було обрано по альтернативному канальному тракту) або в результаті того, що виконання було припинено через виявлення ситуацій неробочого тракту на всіх канальних трактах, на яких був зроблений вибір пристрою.

[00552] Виконання канальної програми

[00553] Якщо команда ініціюється на пристрої, і виконання команди не вимагає передачі яких-небудь даних на пристрій або від нього, пристрій може подавати сигнал про завершення операції безпосередньо по отриманні командного коду. В операціях, які включають передачу даних, субканал встановлюється так, що канальна підсистема відповідали�а-виводу може включати передачу даних в одній області пам'яті, зазначених одним CCW або TCW, або в або з ряду преривних областей пам'яті. В останньому випадку зазвичай для виконання операції вводу-виводу використовується список слів CCW, причому кожне CCW вказує безперервну область пам'яті, і слова CCW об'єднуються зчепленням даних. Зчеплення даних визначається прапором у CCW і змушує канальну підсистему витягувати інше CCW після вичерпання або заповнення області пам'яті, зазначеної поточним CCW. Область пам'яті, зазначена CCW, добутих за допомогою зчеплення даних, відноситься до вже відбувається операції вводу-виводу на пристрої вводу-виводу, і пристрій введення-виведення при витяганні нового CCW не повідомляється.

[00555] Для програміста в форматі CCW дається можливість задавати, щоб при декодуванні CCW канальна підсистема запитувала переривання вводу-виводу як можна швидше, тим самим повідомляючи програму ЦП, що зчеплення просунулося щонайменше до цього CCW в канальної програмі.

[00556] Для доповнення динамічної трансляції адрес в центральних процесорах надаються непряма адресація даних CCW і модифікована непряма адресація даних CCW.

[00557] Коли ORB визначає канальну програму CCW, і використовується непряма адресація даних адрес даних. Кожен раз, коли досягається межа блоку пам'яті, провадиться звернення до списку, щоб визначити наступний блок пам'яті, який треба використовувати. ORB визначає, дорівнює розмір кожного блоку пам'яті 2 кб або 4 кб.

[00558] Коли ORB визначає канальну програму CCW, і використовується модифікована непряма адресація даних CCW, прапор в ORB і прапор в CCW вказують, що для вказівки областей пам'яті для цього CCW повинен використовуватися список модифікованих непрямих адрес даних. Кожен раз, коли досягається підсумкове число байтів, визначене для блоку пам'яті, здійснюється звернення до списку, щоб визначити наступний блок пам'яті, який треба використовувати. На відміну від випадку використання непрямої адресації даних, блок може визначатися на будь кордоні та розміром 4 кб, за умови, що не визначається передача даних через кордон 4 кб.

[00559] Коли ORB визначає канальну програму TCW і використовується непряма адресація передачі даних, прапори в TCW вказують, чи буде список передачі непрямих адрес даних використовуватися, щоб вказувати області пам'яті, що містять TCCB, і використовується список передачі непрямих адрес даних, щоб вказувати області запам'ятовуючого пристрою�е для блоку пам'яті, здійснюється звернення до відповідного списку передачі непрямих адрес даних, щоб визначити наступний блок пам'яті, який треба використовувати.

[00560] Непряма адресація даних CCW і модифікована непряма адресація даних CCW дозволяє використовувати по суті ті ж послідовності CCW для програми, яка працює з динамічною трансляцією адреси, активної у ЦП, які використовувалися б, якби ЦП працював з еквівалентним безперервним реальним запам'ятовуючим пристроєм. Непряма адресація даних CCW дозволяє програмі позначати блоки даних, що мають абсолютні адреси пам'яті до 264-1, незалежно від того, чи визначено в ORB формат - 0 або формат - 1. Модифікована непряма адресація даних CCW дозволяє програмі вказувати блоки даних, що мають абсолютні адреси пам'яті до 264-1, незалежно від того, чи визначено в ORB формат - 0 або формат - 1.

[00561] В цілому, виконання операції введення-виведення або ланцюжка операцій включає цілих три рівня участі:

[00562] 1. За винятком ефектів, викликаних інтеграцією ЦП та обладнання канальної підсистеми, ЦП зайнятий протягом виконання START SUBCHANNEL, яке триває, поки адресуемому субканалу не передано вміст ORB.<ситуація переривання не буде скинута на субканале.

[00564] 3. Пристрій вводу-виводу зайнято від ініціації першої операції на пристрої до моменту, коли або субканал припиняється, або на субканал накладається вторинна ситуація переривання. У разі припиненого субканала пристрій знову стає зайнятим, коли виконання припиненою канальної програми поновлюється.

[00565] Завершення операцій вводу-виводу

[00566] На завершення операції введення-виведення, як правило, вказують дві ситуації статусу: закінчення роботи каналу і закінчення роботи пристрою. Ситуація закінчення роботи каналу вказує, що пристрій вводу-виводу отримало або надало всі дані, пов'язані з операцією, і більше не потребує засобах канальної підсистеми. Ця ситуація називається первинної ситуацією переривання, і закінчення роботи каналу в цьому випадку є первинним статусом. Як правило, первинна ситуація переривання - це будь-яка ситуація переривання, яка відноситься до операції вводу-виводу і яка сигналізує про завершення операції вводу-виводу або ланцюжків операцій вводу-виводу на субканале.

[00567] Сигнал закінчення роботи пристрою вказує, що пристрій вводу-виводу завершило виконання і готово виполняэтом випадку є вторинним статусом. Як правило, вторинна ситуація переривання - це будь-яка ситуація переривання, яка відноситься до операції вводу-виводу і яка сигналізує про завершення операції вводу-виводу або ланцюжка операцій на пристрої. Вторинна ситуація переривання може виникати одночасно з первинної ситуацією переривання або пізніше неї.

[00568] Паралельно з первинної або вторинної ситуаціями переривання і канальна підсистема, і пристрій вводу-виводу можуть надавати вказівки на незвичайні ситуації.

[00569] Ситуації, що сигналізують про завершення операції введення-виведення, можуть доводитися до відома програми перериваннями вводу-виводу або, коли центральні процесори відключені для переривань вводу-виводу, - програмним опитуванням канальної підсистеми. У першому випадку ці ситуації викликають збереження коду переривання вводу-виводу, який містить інформацію, що стосується джерела переривання. В останньому випадку код переривання зберігається у результаті виконання TEST PENDING INTERRUPTION.

[00570] Коли розпізнається первинна ситуація переривання, канальна підсистема намагається повідомити програму, за допомогою запиту переривання, що субканал містить інформацію, що описує завершення операції вводаCW і може надавати його залишковий лічильник байтів, таким чином описуючи розмір використаної пам'яті основного пристрою. Для переривань транспортного режиму інформація ідентифікує поточне TCW і TSB, пов'язаний з канальною програмою, що містить додатковий статус про операції вводу-виводу, такий як залишковий лічильник байтів. В доповнення до інформації про канальної програмі і канальна підсистема, і пристрій вводу-виводу можуть надавати додаткові вказівки на незвичайні ситуації в якості частини або первинної або вторинної ситуації переривання. Інформація, що міститься на субканале, може зберігатися виконанням TEST SUBCHANNEL або виконанням STORE SUBCHANNEL. Збережена, ця інформація називається словом статусу субканала (SCSW).

[00571] Зчеплення при використанні канальної програми (SCSW).

[00572] Коли ORB визначає канальну програму CCW, надаються кошти для ініціації програмою виконання ланцюжка операцій вводу-виводу однією командою START SUBCHANNEL. Коли поточне CCW визначає зчеплення команд, і під час операції не було виявлено ніяких незвичайних ситуацій, отримання сигналу закінчення роботи пристрою змушує канальну підсистему отримувати нову CCW. Якщо CCW проходить певні перевірку�ї команди. Якщо CCW не проходить перевірки достовірності, нова команда не ініціюється, зчеплення команд пригнічується, і статус, пов'язаний з новим CCW, призводить до генерації ситуації переривання. Якщо прапор припинення встановлений в одиницю, і це значення є достовірним через одиничного значення в контролі припинення, біт 4 слова 1 пов'язаного ORB, виконання нової команди не ініціюється, та зчеплення команд завершується.

[00573] Виконання нової команди ініціюється канальної підсистемою тим же чином, що і в попередній операції. Сигнали закінчення, що виникають при завершенні операції, викликаному CCW, визначальним зчеплення команд, не робляться доступними програмі. Коли зчепленням команд ініціюється інша операція вводу-виводу, канальна підсистема продовжує виконання канальної програми. Однак якщо була виявлена незвичайна ситуація, зчеплення команд пригнічується, канальна програма переривається, генерується ситуація переривання, а сигнали закінчення, що викликають переривання, робляться доступними програмі.

[00574] Функція призупинення та відновлення забезпечує програму контролем над виконанням канальної програми. Ініціація функції призупинення контролюється установкою б�вання канальної програми, коли біт контролю призупинення в ORB дорівнює одиниці і прапор припинення в першому CCW або в CCW, витягнутому під час зчеплення команд, дорівнює одиниці.

[00575] Призупинення виникає, коли канальна підсистема витягує CCW з прапором припинення правомірно (через одиничного значення біта контролю призупинення в ORB) встановленим в одиницю. Команда в цьому CCW не відправляється на пристрій вводу-виводу, і пристрою передається сигнал про те, що ланцюжок команд завершується. Наступна команда RESUME SUBCHANNEL інформує канальну підсистему, що CCW, яке викликало призупинення, могло бути змінено та що канальна підсистема повинна повторно отримати CCW і перевірити поточну установку прапора припинення. Якщо виявляється, що прапор припинення в CCW дорівнює нулю, канальна підсистема відновлює виконання ланцюжка команд з пристроєм вводу-виводу.

[00576] Зчеплення при використанні канальної програми TCW

[00577] Коли ORB визначає канальну програму TCW, також надаються кошти для ініціації програмою виконання ланцюжка операцій пристрою однією командою START SUBCHANNEL. Зчеплення команд може визначатися для тих слів DCW, які вказані одним TCW. Коли поточне DCW визначає зчеплення * DCW призводить до обробки наступного DCW в поточному ТССВ.

[00578] Якщо таке DCW проходить певні перевірки достовірності, на пристрої ініціюється виконання нової команди, і це DCW стає поточним DCW. Якщо DCW не проходить перевірки достовірності, нова команда не ініціюється, зчеплення команд пригнічується, канальна програма переривається, і статус, пов'язаний з новим DCW, призводить до генерації ситуації переривання.

[00579] Виконання нової команди ініціюється тим же чином, що і в попередній операції. Сигнали закінчення, що виникають при завершенні операції, викликаному DCW, яке не є останнім певним DCW, не робляться доступними програмі. Коли зчепленням команд ініціюється інша операція вводу-виводу, виконання канальної програми триває. Однак якщо була виявлена незвичайна ситуація, зчеплення команд пригнічується, канальна програма переривається, генерується умова переривання, і програмі робиться доступним статус, ідентифікує незвичайну ситуацію.

[00580] Передчасне завершення операцій вводу-виводу

[00581] Виконання канальної програми може передчасно перериватися допомогою CANCEL SUBCHANNEL. HALT SUBCHANNEL або CLEAR SUBCHANNEL. Виконання CANCEL SUBCHANNEL змушує канальну підсистему переривати функ�еривается виконанням CANCEL SUBCHANNEL, у відповідь на команду CANCEL SUBCHANNEL канальна підсистема встановлює код 0 ситуації. Виконання HALT SUBCHANNEL змушує канальну підсистему подавати сигнал зупинки на пристрій вводу-виводу і переривати виконання канальної програми на субканале. Коли виконання канальної програми переривається виконанням HALT SUBCHANNEL, програма повідомляється про завершення запитом переривання вводу-виводу. Коли субканал знаходиться в командному режимі, запит переривання генерується, коли пристрій передає статус для перерваної операції. Коли субканал знаходиться в режимі передачі, запит переривання генерується негайно. Однак якщо сигнал зупинки був поданий на пристрій під час зчеплення команд після прийому закінчення роботи пристрою, але до того, як на пристрій була передана наступна команда, запит переривання генерується після того, як сигнал був поданий на пристрій. В останньому випадку поле статусу пристрою SCSW містить нулі. Виконання CLEAR SUBCHANNEL очищає субканал від ознак виконується канальної програми, змушує канальну підсистему подавати сигнал скидання на пристрій вводу-виводу і змушує канальну підсистему генерувати запит переривання вводу-виводу, щоб такі запити переривання вводу-виводу, є асинхронними щодо активності у центральних процесорах, і одночасно може виникати більш однієї ситуації. Ситуації зберігаються на субканалах, поки не скидаються допомогою TEST SUBCHANNEL або CLEAR SUBCHANNEL, або не переустанавливаются перезапуском пристрою вводу-виводу.

[00584] Коли ситуація переривання була розпізнана канальної підсистемою і зазначена на субканале, запит переривання вводу-виводу перекладається в очікування для підкласу переривання вводу-виводу, визначеного на субканале. Підклас переривання вводу-виводу, якого чекає переривання, знаходиться під програмним управлінням за допомогою використання MODIFY SUBCHANNEL. Відкладені переривання вводу-виводу може прийматися будь-ЦП, який активований для переривань від свого підкласу переривань вводу-виводу. Кожний ЦП має вісім біт маски, в керуючому регістрі 6, які керують активуванням цього ЦП для кожного з восьми підкласів переривань вводу-виводу, де маска вводу-виводу, 6 біт в PSW, є головною маскою переривань вводу-виводу для ЦП.

[00585] Коли на ЦП виникає переривання вводу-виводу, код переривання вводу-виводу зберігається в галузі зв'язку вводу-виводу цього ЦП, і запит переривання про дожидаючи. Ситуації, що викликають генерацію запиту переривання, потім можуть бути витягнуті з субканала допомогою TEST SUBCHANNEL або STORE SUBCHANNEL.

[00586] Очікує запит переривання вводу-виводу також може бути скинутий за допомогою TEST PENDING INTERRUPTION, коли відповідний підклас переривання вводу-виводу активований, але у PSW переривання вводу-виводу відключені, або за допомогою TEST SUBCHANNEL, коли ЦП відключений для переривань вводу-виводу від відповідного підкласу переривань вводу-виводу. Очікує запит переривання вводу-виводу також може скидатися CLEAR SUBCHANNEL. Як CLEAR SUBCHANNEL, так і TEST SUBCHANNEL скидають збережену ситуацію переривання також і на субканале.

[00587] Як правило, якщо запит переривання скидається CLEAR SUBCHANNEL, програма запускає TEST SUBCHANNEL, щоб отримати інформацію щодо виконання операції.

[00588] CLEAR SUBCHANNEL

[00589] Зазначений субканал скидається, поточна функція запуску або зупинки, якщо є, переривається на зазначеному субканале, і канальної підсистемі подається сигнал асинхронно виконувати функцію скидання на зазначеному субканале і на пов'язаному пристрої.

[00590] Регістр 1 загального призначення містить слово (SID) ідентифікації підсистеми, яке вказує субкансубканале.

[00592] Субканал виводиться з очікування статусу. Вся активність, як вказано в полі контролю активності слова SCSW, на субканале скидається, тільки субканал наводиться в очікування скидання. Будь-які працюють функції, як вказано в полі контролю функцій слова SCSW, на субканале скидаються, крім функції скидання, яка повинна бути виконана внаслідок виконання цієї команди.

[00593] Коли субканал працює в режимі передачі і встановлений код 2 ситуації, ЦП може подавати сигнал канальної підсистемі асинхронно виконувати функцію опитування і завершувати команду.

[00594] Канальної підсистемі подається сигнал асинхронно виконувати функцію скидання. Функція скидання коротко описано нижче в розділі «Пов'язані функції», а більш детально описується згодом.

[00595] Встановлюється код 0 ситуації, щоб вказувати, що були зроблені дії, описані вище.

[00596] Пов'язані функції

[00597] Слідом за виконанням CLEAR SUBCHANNEL, канальна підсистема асинхронно виконує функцію скидання. Якщо дозволяє ситуація, канальна підсистема вибирає канальний тракт і намагається подати сигнал скидання на пристрій, щоб перервати операцію введення-виведення, якщо така має місце. Потім субканал стає ала скидання на пристрій, не заважають субканалу ставати очікують статус.

[00598] Коли субканал стає освітленим статус в результаті виконання функції скидання, передача даних, якщо має місце, пов'язаним з пристроєм була перервана. Збережене SCSW, коли результуючий статус скидається допомогою TEST SUBCHANNEL, має біт функції скидання, встановлений в одиницю. Якщо канальна підсистема може визначити, що сигнал скидання був поданий на пристрій, біт очікування скидання в SCSW зберігається як нуль. Інакше біт очікування скидання зберігається як одиниця, і надаються інші вказівки, більш докладно описують ситуацію, з якою довелося зіткнутися.

[00599] Дані вимірювань не накопичуються, і час з'єднання з пристроєм не зберігається у слові розширеного статусу для субканала, для функції запуску, яка переривається допомогою CLEAR SUBCHANNEL.

[00600] Особливі ситуації

[00601] Код 3 ситуації встановлюється, і ніяке інше дію не робиться, коли субканал не є робочим для CLEAR SUBCHANNEL. Субканал не є робочим для CLEAR SUBCHANNEL, коли субканал не надається у канальної підсистемі, не має приписаного до нього достовірного номера пристрою або не активовано.

[00602] CLEAR SUBCHANNEL могла засіб декількох наборів субканалов не встановлено, біти 32-47 регістра 1 загального призначення повинні містити шістнадцяткове значення 0001; інакше розпізнається виняткова ситуація операнда.

[00604] Коли засіб декількох наборів субканалов встановлено, біти 32-44 регістра 1 загального призначення повинні містити нулі, біти 45-46 повинні містити достовірне значення, а біт 47 повинен містити одиничне значення; інакше розпізнається виняткова ситуація операнда.

[00605] Результуючий код ситуації:

[00606] 0 Функція ініційована

[00607] 1 -

[00608] 2 -

[00609] 3 неробочий

[00610] Програмні виняткові ситуації:

[00611] - Операнда

[00612] - Пріоритетною операції

[00613] Функція скидання

[00614] Слідом за виконанням CLEAR SUBCHANNEL, канальна підсистема виконує функцію скидання. Виконання функції скидання полягає в (1) виконання операції управління трактами, (2) зміну полів на субканале, (3) подачі сигналу скидання на пов'язане пристрій і (4) переведення субканала в очікуванні статусу, що вказує на завершення функції скидання.

[00615] Управління трактами у функції скидання

[00616] Операція управління трактами виконується як частина функції скидання, щоб перевірити ситуації канального тракту для пов'язаного субканала і спробувати вибции канального тракту перевіряються в наступному порядку:

[00618] 1. Якщо канальна підсистема активно здійснює зв'язок або намагається встановити активну зв'язок з пристроєм, на яке необхідно передати сигнал, вибирається використовуваний канальний тракт.

[00619] 2. Якщо канальна підсистема знаходиться в процесі отримання вказівки на завершення зайнятості (яке не призведе до розпізнавання ситуації переривання) від пристрою, на яке потрібно передати сигнал, і пов'язаний субканал не прив'язаний ні до якого канальному тракту, вибирається використовуваний канальний тракт.

[00620] 3. Якщо пов'язаний субканал має призначену прив'язку для канального тракту, вибирається цей канальний тракт.

[00621] 4. Якщо пов'язаний субканал має працюючу прив'язку для одного або декількох канальних трактів, вибирається один з цих канальних трактів.

[00622] 5. Якщо пов'язаний субканал не має прив'язки ні для якого канального тракту, якщо вказано останній використаний канальний тракт і якщо цей канальний тракт доступний для вибору, вибирається цей канальний тракт. Якщо цей канальний тракт недоступний для вибору, то або не вибирається ніякої канальний тракт, або канальний тракт вибирається з набору канальних трактів, якщо такі є, які д�ий субканал не має прив'язки ні для якого канального тракту, якщо не вказано останній використаний канальний тракт і якщо існують один або кілька канальних трактів, які доступні для вибору, вибирається один з цих канальних трактів.

[00624] Якщо ні одна з перерахованих вище ситуацій для канальних трактів не має місця, не вибирається ніякої канальний тракт.

[00625] Для пункту 4, для пункту 5 при зазначених умовах, і для пункту 6, канальна підсистема вибирає канальний тракт з набору канальних трактів. У цих випадках канальна підсистема може намагатися вибрати канальний тракт за умови, що такі ситуації не мають місця:

[00626] 1. Для канального тракту існує термінальна ситуація канального тракту.

[00627] 2. Для паралельного канального тракту або канального тракту ESCON: Інший субканал має активну прив'язку для канального тракту.

[00628] Для канального тракту FICON: Канальний тракт в даний час використовується, щоб активно підтримувати зв'язок з максимальним числом субканалов, які можуть підтримувати одночасно активні процеси зв'язку.

[00629] 3. Пристрій, на який необхідно передати сигнал, підключений до пристрою керування типу-1, і субканал для іншого пристрою, підключеного до того ж пристрій�щей прив'язкою і первинний статус був прийнятий цим субканалом.

[00630] 4. Пристрій, на який необхідно передати сигнал, підключений до пристрою керування типу-3, і субканал для іншого пристрою, підключеного до того ж пристрою управління, має спеціальну прив'язку до того ж канальному тракту.

[00631] Зміна субканалов функцією скидання

[00632] Контрольні вказівки управління трактами на субканале змінюються під час виконання функції скидання. Фактично, ця зміна відбувається після спроби вибрати канальний тракт, але до спроби вибрати пристрій для подачі сигналу скидання. Змінні контрольні вказівки управління трактами наступні:

[00633] 1. Стан усіх восьми можливих канальних трактів на субканале встановлюється в робоче для субканала.

[00634] 2. Зазначення останнього використаного тракту переустановлюється, щоб не вказувати ніякого останнього використаного канального тракту.

[00635] 3. Ситуації вільного тракту, якщо є, - переустанавливаются.

[00636] Передача сигналів і завершення у функції скидання

[00637] Слідом за спробою вибрати канальний тракт і зміною контрольних полів управління трактами, канальна підсистема, якщо дозволяє ситуація, намагається вибрати пристрій, щоб подати слается спроба подати сигнал скидання, і (2) є спроба подати сигнал скидання успішною. Незалежно від цих ситуацій субканал потім встановлюється в очікуванні статусу, і виконання функції скидання завершується. Ці ситуації та їх вплив на функцію скидання описуються нижче:

[00638] Спроба подати сигнал скидання не робиться: Канальна підсистема не намагається подати сигнал скидання на пристрій, якщо існує будь-яка з наступних ситуацій:

[00639] 1. Ніякої канальний тракт не був обраний

[00640] 2. Вибраний канальний тракт більше недоступний для вибору.

[00641] 3. Для вибраного канального тракту існує термінальна ситуація канального тракту.

[00642] 4. Для паралельних канальних трактів і канальних трактів ESCON: Вибраний канальний тракт в даний час використовується для активної підтримки зв'язку з іншим пристроєм. Для канальних трактів FICON: Вибраний канальний тракт в даний час використовується для активної підтримки зв'язку з максимальною кількістю пристроїв, які можуть підтримувати одночасно активні сеанси зв'язку.

[00643] 5. Пристрій, на який необхідно передати сигнал, підключений до пристрою керування типу - 1, і субканал для іншого пристрою, підключеного до того ж пристрою уп�зкой і первинний статус був прийнятий цим субканалом.

[00644] 6. Пристрій, на який необхідно передати сигнал, підключений до пристрою керування типу - 3, і субканал для іншого пристрою, підключеного до того ж пристрою управління, має призначену прив'язку до того ж канальному тракту.

[00645] Якщо будь-яка з вищевказаних ситуацій має місце, субканал залишається очікують скидання і встановлюється очікують статус, і виконання функції скидання завершується.

[00646] Спроба подати сигнал скидання безуспішна: Коли канальна підсистема намагається подати на пристрій сигнал скидання, спроба може бути марної з-за наступних ситуацій:

[00647] 1. Коли канальна підсистема намагається вибрати пристрій, щоб подати сигнал скидання, пристрій керування або пристрій подає сигнал про ситуацію зайнятості.

[00648] 2. Коли канальна підсистема намагається вибрати пристрій, щоб подати сигнал скидання, розпізнається ситуація неробочого тракту.

[00649] 3. Коли канальна підсистема намагається подати сигнал скидання, зустрічається ситуація помилки.

[00650] Якщо будь-яка з вищевказаних ситуацій має місце, і канальна підсистема або визначає, що спроба подати сигнал скидання була безуспішною, або не може визначити, чи була спроба успішною, �ся.

[00651] Спроба подати сигнал скидання успішна: Коли канальна підсистема визначає, що спроба подати сигнал скидання була успішною, субканал більше не є очікують скидання і встановлюється очікують статус, і виконання функції скидання завершується. Коли субканал стає освітленим статус, операція вводу-виводу, якщо така є, з пов'язаним пристроєм була перервана.

[00652] Зауваження для програмування: Слідом за виконанням функції скидання, будь-який ненульовий статус, крім єдино закінчення роботи пристрою управління, яке передається канальної підсистемі пристроєм, передається програмі як незапрашиваемий застережливий статус. Незапрашиваемий статус, що складається з єдино закінчення роботи пристрою керування або нульового стану, програмі не передається.

[00653] MODIFY SUBCHANNEL

[00654] Інформація, що міститься в блоці (SCHIB) інформації субканала, розташовується в програмно-змінних полях на субканале. В результаті програма впливає, для цього субканала, на певні особливості обробки вводу-виводу що стосується функцій скидання, зупинення, поновлення і запуску і певні допоміжні функції вводу-виводу.

[00655] Регістр 1 загально�вживання як зазначено певними полями блоку SCHIB. Адреса другого операнда являє собою логічний адресу SCHIB і має бути поставлене на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00656] Операції канальної підсистеми, на які може впливати розташування інформації SCHIB в субканале, такі:

[00657] - Обробка вводу-виводу (поле E)

[00658] - Обробка переривань (параметр переривань і поле ISC)

[00659] - Управління трактами (поля D, LPM і POM)

[00660] - Відстеження та перевірка адресних обмежень (показник блоку вимірювання, поля LM і MM)

[00661] - Контроль формату блоку вимірювання (поле F)

[00662] - Включення режиму розширеного слова вимірювання (поле X)

[00663] - Засіб виявлення одночасності (поле S)

[00664] - Адресу блоку вимірювання (MBA)

[00665] Біти 0, 1, 6 та 7 слова 1 і біти 0-28 слова 6 операнда SCHIB повинні бути нулями, а біти 9 і 10 слова 1 не повинні бути обидва одиницями. Коли розширене засіб блоку вимірювання вводу-виводу встановлено і визначено блок вимірювання формату - 1, біти 26-31 слова 11 повинні бути встановлені в нулі. Коли розширене засіб блоку вимірювання вводу-виводу не встановлено, біт 29 слова 6 повинен бути встановлений в нуль; інакше розпізнається виняткова ситуація операнда. Коли розширено�ен бути встановлений в нуль; інакше розпізнається виняткова ситуація операнда. Інші поля SCHIB ігноруються та не мають впливу на обробку MODIFY SUBCHANNEL.

[00666] Встановлюється код 0 ситуації, щоб вказувати, що інформація з SCHIB була розміщена в програмно-змінних полях на субканале, за винятком того, що коли біт (V) достовірності номера пристрою на зазначеному субканале дорівнює нулю, то встановлюється код 0 ситуації, а інформація з SCHIB не розміщується в програмно-змінних полях.

[00667] Особливі ситуації

[00668] Код 1 ситуації встановлюється і ніяке інше дію не провадиться, коли субканал очікує статус.

[00669] Код 2 ситуації встановлюється і ніяке інше дію не провадиться, коли на субканале виконується функція скидання, зупинки або запуску.

[00670] Код 3 ситуації встановлюється і ніяке інше дію не провадиться, коли субканал є неробочим для MODIFY SUBCHANNEL. Субканал є неробочим для MODIFY SUBCHANNEL, коли субканал не надається у канальної підсистемі.

[00671] MODIFY SUBCHANNEL може стикатися з програмними винятковими ситуаціями, описаними або перерахованими нижче.

[00672] В слові 1 SCHIB біти 0, 1, 6 і 7 мають бути нулями і, коли встановлено средстми. Інакше розпізнається виняткова ситуація операнда.

[00673] Коли розширене засіб блоку вимірювання вводу-виводу встановлено і визначено блок вимірювання формату - 1, біти 26-31 слова 11 повинні бути встановлені в нулі; інакше розпізнається виняткова ситуація операнда. Коли розширене засіб блоку вимірювання вводу-виводу не встановлено, біт 29 слова 6 повинен бути встановлений в нуль; інакше розпізнається виняткова ситуація операнда. Коли розширене засіб слова вимірювання вводу-виводу не встановлено або встановлено, але не активовано, 30 біт слова 6 повинен бути встановлений в нуль; інакше розпізнається виняткова ситуація операнда.

[00674] Коли засіб декількох наборів субканалов не встановлено, біти 32-47 регістра 1 загального призначення повинні містити шістнадцяткове значення 0001;

інакше розпізнається виняткова ситуація операнда.

[00675] Коли засіб декількох наборів субканалов встановлено, біти 32-44 регістра 1 загального призначення повинні містити нулі, біти 45-46 повинні містити достовірне значення, а біт 47 повинен містити одиницю; інакше розпізнається виняткова ситуація операнда.

[00676] Другий операнд повинен бути заданий на кордоні слова; інакше растуациях адресації і захисту.

[00677] Результуючий код ситуації:

[00678] 0 Функція завершено

[00679] 1 Очікування статусу

[00680] 2 Зайнятий

[00681] 3 Неробочий

[00682] Програмні виняткові ситуації:

[00683] - Доступу (вилучення, операнд 2)

[00684] - Операнда

[00685] - Пріоритетною операції

[00686] - Специфікації

[00687] Зауваження для програмування:

[00688] 1. Якщо пристрій подає сигнал попередження про помилку вводу-виводу, в той час як пов'язаний субканал відключений, канальна підсистема подає сигнал скидання на пристрій і відкидає вказівку попередження про помилку вводу-виводу без генерації ситуації переривання вводу-виводу.

[00689] 2. Якщо пристрій передає незапитаний статус, в той час як пов'язаний субканал відключений, це стан відкидається канальної підсистемою без генерації ситуації переривання вводу-виводу. Однак якщо переданий статус містить перевірку блоку, канальна підсистема подає сигнал скидання для пов'язаного субканала і не генерує ситуації переривання вводу-виводу. Це необхідно брати до уваги, коли програма використовує MODIFY SUBCHANNEL для активації субканала. Наприклад, середовище на пов'язаному пристрої, яка була присутня, коли субканал став неактивним, в змозі�я, щоб програма обстежила вміст субканала допомогою наступної подачі STORE SUBCHANNEL, коли MODIFY SUBCHANNEL встановлює код 0 ситуації. Використання STORE SUBCHANNEL являє собою спосіб для визначення, чи був змінений зазначений субканал. Невдача обстеження субканала після установки коду 0 ситуації допомогою MODIFY SUBCHANNEL може призводити до ситуацій, появи яких програма не чекає.

[00691] START SUBCHANNEL

[00692] Канальної підсистемі передається сигнал асинхронно виконати функцію запуску пов'язаного пристрою, параметри виконання, які містяться у вказаному ORB, розташовуються на зазначеному субканале.

[00693] Регістр 1 загального призначення містить слово ідентифікації підсистеми, яке вказує субканал, який необхідно запустити. Адреса другого операнда є логічним адресою ORB і повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00694] Параметри виконання, що містяться в ORB, розташовуються на субканале.

[00695] При виконанні START SUBCHANNEL субканал є очікують статус тільки з вторинним статусом, і біт (L) формату слова розширеного статусу дорівнює нулю, ситуація очікування статусу на субканале отбрасиваетсѽд вказує ORB командного режиму, субканал залишається в командному режимі. Якщо другий операнд вказує ORB режиму передачі, субканал входить у режим передачі. Коли субканал входить в режим передачі, LPUM встановлюється в нуль, якщо не існує попередньої спеціальної прив'язки; інакше LPUM не змінюється.

[00697] Логічно установки коду 0 ситуації, ситуації неробочого тракту на субканале, якщо такі є, скидаються.

[00698] Канальної підсистемі подається сигнал асинхронно виконувати функцію запуску. Функція запуску коротко описано нижче в розділі «Пов'язані функції», а детально описується згодом.

[00699] Встановлюється код 0 ситуації, щоб вказувати, що дії, описані вище, були зроблені.

[00700] Пов'язані функції

[00701] Після виконання START SUBCHANNEL канальна підсистема асинхронно виконує функцію запуску.

[00702] Вміст ORB, відмінне від полів, які повинні містити всі нулі, перевіряється на достовірність. По деяким моделям поля ORB, які повинні містити нулі, перевіряються асинхронно, а не під час виконання команди. Коли недостовірні поля виявляються асинхронно, субканал стає освітленим статус з первинним, вторинним і запобіжних статусом і з зазначеними ковода-виведення на пристрої не ініціюється, а ситуація вказується бітом очікування запуску, що зберігається як одиниця, коли SCSW скидається виконанням TEST SUBCHANNEL.

[00703] По деяким моделям доступність тракту перевіряється асинхронно, а не під час виконання команди. Коли ніякої канальний тракт недоступний для вибору, субканал стає освітленим статус з первинним і вторинним статусами і з вказаним кодом 3 відкладеної ситуації. Операція вводу-виводу або ланцюжок операцій вводу-виводу на пристрої не ініціюється, і ця ситуація вказується бітом очікування запуску, що зберігається як одиниця, коли SCSW скидається виконанням TEST SUBCHANNEL.

[00704] Якщо дозволяє ситуація, вибирається канальний тракт, і ініціюється виконання канальної програми, яка вказана в ORB.

[00705] Особливі ситуації

[00706] Код 1 ситуації встановлюється, і ніяке інше дію не провадиться, коли субканал є очікують статус, коли виконується START SUBCHANNEL. По деяким моделям код 1 ситуації не встановлюється, коли субканал є очікують статус тільки з вторинним статусом; замість цього ситуація очікування статусу відхиляється.

[00707] Код 2 ситуації встановлюється, і ніяка інша дія не здійснюється, коли на субканале в теку�е інша дія не здійснюється, коли субканал є неробочим для START SUBCHANNEL. Субканал є неробочим для START SUBCHANNEL, якщо субканал не надано в канальній системі, не має пов'язаного з ним достовірного номера пристрою або не активовано.

[00709] Субканал також є неробочим для START SUBCHANNEL, no деяким моделям, коли для вибору недоступний ніякої канальний тракт. За цим моделям відсутність доступного канального тракту виявляється як частина виконання START SUBCHANNEL. По іншим моделям доступність канального тракту перевіряється тільки як частина асинхронної функції запуску.

[00710] START SUBCHANNEL може стикатися з програмними винятковими ситуаціями, описаними або перерахованими нижче.

[00711] В слові 1 ORB командного режиму біти 26-30 повинні бути нулями, а в слові 2 ORB командного режиму біт 0 повинен бути нулем. Інакше, по деяким моделям, розпізнається виняткова ситуація операнда. По іншим моделям генерується ситуація переривання вводу-виводу, що позначає програмну перевірку, як частина асинхронної функції запуску.

[00712] START SUBCHANNEL також може стикатися з програмними винятковими ситуаціями, перерахованими нижче.

[00713] Коли засіб декількох наборів субканалов не встановлено,�лючительная ситуація операнда.

[00714] Коли засіб декількох наборів субканалов встановлено, біти 32-44 регістра 1 загального призначення повинні містити нулі, біти 45-46 повинні містити достовірне значення, а біт 47 повинен містити одиницю; інакше розпізнається виняткова ситуація операнда.

[00715] Другий операнд повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації. Виконання START SUBCHANNEL пригнічується у всіх виняткових ситуаціях адресації і захисту.

[00716] Результуючий код ситуації:

[00717] 0 Функція ініційована

[00718] 1 Очікування статусу

[00719] 2 Зайнятий

[00720] 3 Неробочий

[00721] Програмні виняткові ситуації:

[00722] - Доступ (витяг, операнд 2)

[00723] - Операнд

[00724] - Пріоритетна операція

[00725] - Специфікація

[00726] Функція запуску і функція відновлення

[00727] Функції запуску і відновлення ініціюють операції вводу-виводу, як описано нижче. Функція запуску застосовується для субканалов, які працюють або в командному режимі, або в режимі передачі. Функція відновлення застосовується тільки для субканалов, що працюють в командному режимі.

[00728] Після виконання START SUBCHANNEL і RESUME SUBCHANNEL канальна підсистема виконує функції запуску і возобнции запуску або відновлення складається з: (1) виконання операції управління трактами, (2) виконання операції введення-виведення або ланцюжка операцій введення-виведення зі зв'язаним пристроєм, і (3) переведення субканала в очікуванні статусу, вказуючи на завершення функції запуску. Функція запуску ініціює виконання канальної програми, яка вказана в ORB, який, у свою чергу, зазначений в операнді START SUBCHANNEL, на відміну від функції відновлення, яка ініціює виконання відкладеної канальної програми, якщо є, починаючи CCW, яке викликало призупинення; інакше функція відновлення виконується так, як якщо б вона була функцією запуску.

[00729] Управління трактами у функції запуску і функції відновлення [00730] Операція управління трактами виконується канальної підсистемою під час виконання функції запуску або відновлення, щоб вибрати доступний канальний тракт, який може бути використаний для вибору пристрою, щоб ініціювати операцію введення-виведення з цим пристроєм. Дії, що вживаються такі:

[00731] 1. Якщо субканал в поточний час очікує старту і пристрій активно, функція запуску залишається очікує на субканале, поки вторинний статус для попередньої функції запуску не приймається від пов'язаного пристрою, і субканал робиться єдин�е робиться очікують статус, і потім ініціюється виконання очікує функції запуску. Якщо статус описує ситуацію попереджувального переривання, субканал стає освітленим статус з вторинним статусом і запобіжних статусом, ця функція запуску не ініціюється, встановлюється код 1 відкладеної ситуації, а біт очікування запуску залишається рівним одиниці. Якщо субканал в поточний час є єдино очікують запуск, ініціюється виконання функції запуску, як описано нижче.

[00732] 2. Якщо на субканале для канального тракту існує виділена прив'язка, канальна підсистема вибирає цей тракт для вибору пристрою. Якщо при спробі вибрати пристрій зустрічається зайнята ситуація, і на субканале існує призначена прив'язка, функція запуску залишається в стані очікування, поки для цього канального тракту не скидається внутрішній вказівку зайнятості. Коли внутрішнє вказівку зайнятості скидається, виконання очікує функції запуску ініціюється на цьому канальному тракті.

[00733] 3. Якщо для вибору немає доступного канального тракту, і призначеної прив'язки в субканале для канального тракту не існує, канальний тракт не вибирається.

[00734] 4. Якщо всі канальні тракти, ко�іншими пристроями, або, в іншому випадку, якщо канальна підсистема на одному або декількох з цих канальних трактів зіткнулася з ситуацією зайнятості пристрою керування зайнятості або пристрою, або поєднанням цих ситуацій на одному або декількох з цих канальних трактів, функція запуску залишається очікує на субканале, поки канальний тракт, пристрій керування або пристрій, за необхідності, не стануть доступними.

[00735] 5. Якщо (1) функція запуску повинна бути ініційована на канальному тракті з пристроєм, підключеним до пристрою керування типу - 1, і (2) ніяке інше пристрій не підключено до того ж пристрою управління, субканал якого має або призначену прив'язку до того ж канальному тракту, або працюючу прив'язку до того ж канальному тракту, де первинний статус не був прийнятий для цього субканала, то цей канальний тракт вибирається, якщо він доступний для вибору; інакше цей канальний тракт не вибирається. Однак якщо інший канальний тракт до пристрою доступний для вибору, і не існує прив'язок, описаних вище, вибирається цей канальний тракт. Якщо ніякий інший канальний тракт не доступний для вибору, функція запуску або відновлення, за необхідності, залишається в состоянивления типу - 3, і якщо принаймні одна інший пристрій підключено до того ж пристрою управління, субканал якого має призначену прив'язку до того ж канальному тракту, може бути обраний інший канальний тракт, доступних для вибору, або функція запуску залишається в стані очікування, поки не скинеться призначена прив'язка для іншого пристрою.

[00737] 7. Якщо канальний тракт був обраний, і отримано вказівку зайнятості під час вибору пристрою, щоб ініціювати виконання першої команди очікує канальної програми CCW або щоб передати TCCB очікує канальної програми TCW, канальний тракт, по якому отримано вказівку зайнятості, знову для цього пристрою чи пристрою управління (в залежності від отриманого вказівки зайнятості пристрою або пристрою управління) не використовується, поки внутрішнє вказівку зайнятості не скинеться.

[00738] 8. Якщо під час спроби вибору пристрою, щоб ініціювати виконання першої команди, визначеної для функції запуску або неявної функції відновлення для канальної програми CCW, або ініціювати передачу TCCB для функції для запуску канальної програми TCW (як описано в кроці 7 вище), канальна підсистема одержує указаноготрактном режимі, і отримане вказівку зайнятості являє зайнятість пристрою, то функція запуску або відновлення залишається очікує, поки внутрішнє вказівку зайнятості не скинеться.

[00740] b. Якщо пристрій визначено для роботи в многотрактном режимі, і отримане вказівку зайнятості являє зайнятість пристрою управління, або якщо пристрій визначено для роботи в однотрактном режимі, канальна підсистема пробує вибір пристрою шляхом вибору альтернативного канального тракту, який доступний для вибору, і продовжує операцію управління трактами, поки або функція запуску або відновлення не ініціюється, або вибір пристрою не буде випробуваний по всьому канальним трактах, доступним для вибору. Якщо функція запуску або відновлення не була ініційована канальної підсистемою після того, як були випробувані всі канальні тракти, доступні для вибору, функція запуску або відновлення залишається очікує, поки внутрішнє вказівку зайнятості не скинеться.

[00741] с. Якщо субканал має призначену прив'язку, то застосовується дія 2, описане на стор. 15-20.

[00742] 9. Коли, під час спроби вибору передати першу команду для канальної програми CCW або передати TCCB для кан�я субканала, розпізнається ситуація неробочого тракту, і стан канального тракту на субканале змінюється з робочого для субканала на неробочий для субканала. Ситуації вільного тракту на субканале, якщо такі є, зберігаються, поки субканал потім не стає освітленим скидання, які очікують запуск або очікують відновлення (якщо канал був припинений), під час чого ситуації неробочого тракту скидаються. Однак якщо відповідний канальний тракт є неробочим для субканала, ситуація неробочого тракту не розпізнається. Коли пристрій виявляється неробочим під час спроби вибору передати першу команду або TCCB по канальному тракту, який доступний для вибору, відбувається одне з наступних дій:

[00743] a. Якщо для цього канального тракту існує призначена прив'язка, то це єдиний канальний тракт, який доступний для вибору; отже, подальші спроби ініціювати функцію запуску або відновлення припиняються, і розпізнається ситуація переривання.

[00744] b. Якщо не існує призначеної прив'язки і є альтернативні канальні тракти, доступні для вибору, які не були випробувані, один з цих канальних трактів вибирається, щоб попроб�TCW.

[00745] c Якщо не існує призначеної прив'язки, немає альтернативних канальних трактів, доступних для вибору, які не були випробувані, і пристрій виявився робочим на щонайменше одному з канальних трактів, які були випробувані, функція запуску або відновлення залишається очікує на субканале, поки канальний тракт, пристрій керування або пристрій, за необхідності, не стане доступним.

[00746] d. Якщо не існує призначеної прив'язки, немає альтернативних канальних трактів, доступних для вибору, які не були випробувані, і пристрій виявився неробочим на всіх канальних трактах, які були випробувані, подальші спроби ініціювати функцію запуску або відновлення припиняються, і розпізнається ситуація переривання.

[00747] 10. Коли субканал активний і повинна бути ініційована операція вводу-виводу з пристроєм, відбуваються всі вибори пристрою, відповідно із зазначенням LPUM, якщо на субканале не визначено многотрактний режим. Наприклад, якщо для канальної програми CCW визначено зчеплення команд, канальна підсистема передає першу і всі наступні команди, що описують ланцюжок операцій введення-введення, по одному і тому ж канальному тракту.

[00748]�дає можливість ситуація, ініціює виконання операції введення-виведення зі зв'язаним пристроєм. Виконання додаткових операцій вводу-виводу може слідувати за ініціацією і виконанням першої операції вводу-виводу.

[00750] Для субканалов, що працюють в командному режимі, канальна підсистема може виконувати сім типів команд: записати, читати, читати в зворотному напрямку, контролювати, пізнати, пізнати ID і передати в каналі. Кожна команда, крім передати в каналі, ініціює відповідну операцію вводу-виводу. За винятком періодів, коли виконання канальної програми на субканале відкладено, субканал активний від прийому першої команди до розпізнавання на субканале первинної ситуації переривання. Якщо первинна ситуація переривання розпізнається до отримання першої команди, субканал не стає активним. Як правило, первинна ситуація переривання викликається сигналом закінчення роботи каналу або, у разі зчеплення команд, - сигналом закінчення роботи каналу для останнього CCW ланцюжка. Пристрій є активним до розпізнавання на субканале вторинної ситуації переривання. Як правило, вторинна ситуація переривання викликається сигналом закінчення роботи пристрою, або, у разі зчеплення до режимі передачі, канальна підсистема може передавати шість типів команд для виконання: записати, читати, контролювати, пізнати, пізнати ID і опитати. Кожна команда ініціює відповідну операцію пристрою. Коли одна або декілька команд передаються на пристрій вводу-виводу в TCCB, субканал залишається очікує на старт поки не буде переданий первинний статус.

[00752] Зауваження для програмування:

[00753] однотрактном режимі всі передачі команд, даних і статусів для операції введення-виведення або ланцюжка операцій вводу-виводу відбуваються на канальному тракті, за яким на пристрій була передана перша команда.

[00754] Коли пристрій має встановлене засіб динамічного від'єднання, операція вводу-виводу або ланцюжок операцій вводу-виводу може виконуватися в многотрактном режимі. Щоб працювати у многотрактном режимі, MODIFY SUBCHANNEL повинна була бути попередньо виконана для субканала з бітом 13 слова 1 SCHIB, заданим в одиницю. Крім того, пристрій має бути встановлено для многотрактного режиму виконанням певних залежать від моделі команд, що відповідають цьому типу пристрою. Загальні процедури для виконання операцій многотрактного режиму наступні:

[00755] 1. �а кожному канальному тракті, яким має бути елементом встановлюється многотрактной групи; інакше многотрактний режим роботи може призвести до непередбачуваних результатів на субканале. Якщо, з якоїсь причини, один або кілька фізично доступних канальних трактів до пристрою не включаються в многотрактную групу, ці канальні тракти не повинні бути доступні для вибору, поки субканал працює в многотрактном режимі. Канальний тракт може робитися недоступним для вибору шляхом встановлення відповідного біта LPM в нуль або в SCHIB до виконання MODIFY SUBCHANNEL, або в ORB до виконання START SUBCHANNEL.

[00757] b. Коли команда типу установки многотрактного режиму передається на пристрій, тільки один канальний тракт повинен бути логічно доступний, щоб уникнути вибору альтернативного канального тракту для виконання цієї функції запуску; інакше ситуації зайнятості пристрої можуть бути виявлені канальної підсистемою на більш ніж одному канальному тракті, що може призвести до непередбачуваних результатів для подальших операцій многотрактного режиму. Цей тип процедури установки слід використовувати всякий раз, коли змінюється кількість елементів многотрактной групи.

[00758] 2. Вихід з многотрактного Ѿльзоваться будь-яка з наступних двох процедур:

[00760] a. Команда типу розформування многотрактного режиму може виконуватися для будь-якого канального тракту многотрактной групи. За цією командою повинні слідувати або (1) виконання MODIFY SUBCHANNEL з 13 бітом слова 1 SCHIB встановленим в нуль, або (2) визначення тільки одного канального тракту як логічно доступного в LPM. Функція запуску не повинна виконуватися на субканале, працюючому в многотрактном режимі з безліччю канальних трактів, доступних для вибору, в той час як пристрій працює в однотрактном режимі; інакше на субканале для цієї функції або наступних функцій запуску можуть виникнути непередбачувані результати.

[00761] b. Команда типу розформування многотрактного режиму виконується на кожному канальному тракті многотрактной групи (звернення установки). Після цієї команди повинні слідувати або (1) виконання MODIFY SUBCHANNEL з 13 бітом слова 1 SCHIB встановленим в нуль, або (2) визначення тільки одного канального тракту як логічно доступного в LPM. Жодна функція запуску не може виконуватися на субканале, працюючому в многотрактном режимі з безліччю канальних трактів, доступних для вибору, в той час як пристрій працює в однотрактном режимі; інакше на субканале для цієї ф�анних

[00763] Дані, записані пристроєм вводу-виводу, поділяються на блоки. Розмір блоку залежить від пристрою; наприклад, блок може бути карткою, рядком друку або інформацією, записаною між двома послідовними проміжками на магнітній стрічці.

[00764] Максимальний розмір інформації, яка може бути передана в одній операції вводу-виводу, становить один блок. Операція вводу-виводу переривається, коли пов'язана область основного пристрою вичерпується або досягається кінець блоку, в залежності від того, що відбувається першим. Для деяких операцій, таких як запис на магнитопротяжном пристрої або на терміналі запитів, блоки не визначені, і кількість переданої інформації контролюється тільки програмою.

[00765] Блок запиту операції

[00766] Блок (ORB) запиту операції є операндом START SUBCHANNEL. ORB визначає параметри, які повинні використовуватися при управлінні цією конкретною функцією запуску. Ці параметри включають параметр переривання, ключ субканала, адресу першого CCW або TCW, біти управління операцією, числа управління пріоритетом і специфікацію логічної доступності канальних трактів до зазначеного пристрою.

[00767] Вміст �ие призводить до ненулевому кодом ситуації, вміст ORB не поміщається на вказаний субканал.

[00768] Два крайніх праворуч біта адреси ORB повинні бути нулями, розташовуючи ORB на кордоні слова; інакше розпізнається виняткова ситуація специфікації. Коли встановлено засіб (FCX) розширень fibre channel, контроль (В) (слово 1, біт 13) типу канальної програми ORB визначає тип канальної програми, яка вказана допомогою ORB. Коли В одно нулю, ORB вказує канальну програму CCW. Коли В дорівнює одиниці, ORB вказує канальну програму TCW. Тільки пристрої введення-виведення, які підтримують FCX, розпізнають канальні програми TCW.

[00769] Якщо вміст ORB, який вказує канальну програму CCW, розташовується на зазначеному субканале під час виконання START SUBCHANNEL, субканал залишається в командному режимі. Таким чином, такий ORB, також відомий як ORB командного режиму. Якщо вміст ORB, який вказує канальну програму TCW, розташовується на зазначеному субканале під час виконання START SUBCHANNEL, субканал входить у режим передачі. Таким чином, такий ORB, також відомий як ORB режиму передачі.

[00770] TEST PENDING INTERRUPTION

[00771] Код переривання вводу-виводу для очікує переривання вводу-виводу на субканале зберігається в місці розташування, зазначеному ад�гда не дорівнює нулю, є логічним адресою місця, в якому повинен зберігатися код переривання вводу-виводу з двох слів, що складається зі слів 0 і 1. Адреса другого операнда повинен бути вказаний на кордоні слова;

інакше розпізнається виняткова ситуація специфікації.

[00773] Якщо адреса другого операнда дорівнює нулю, код переривання вводу-виводу з трьох слів, що складається зі слів 0-2, зберігається в реальних місцях розташування 184-195. У цьому випадку захист молодшого адреси і захист з контролем по ключу не використовуються.

[00774] В режимі регістра доступу, коли адреса другого операнда дорівнює нулю, неможливо передбачити, відбувається трансляція регістра доступу для регістра B2 доступу. Якщо трансляція відбувається, кінцевий елемент управління адресного простору не використовується; тобто код переривання, як і раніше зберігається в реальних місцях розташування 184-195.

[00775] Очікують запитів переривання вводу-виводу приймаються тільки для тих підкласів переривань введення-виведення, які можна маскою підкласу переривань вводу-виводу в керуючому регістрі 6 центрального процесора, що виконує команду. Якщо не існує запитів переривання вводу-виводу, дозволених керуючим регістром 6, код переривання�>p>[00776] Якщо очікує запит переривання вводу-виводу приймається, код переривання вводу-виводу зберігається, очікує запит переривання вводу-виводу скидається, і встановлюється код 1 ситуації. Код переривання вводу-виводу, який зберігається, є таким же, який зберігався б, якби відбулося переривання вводу-виводу. Однак слова PSW не підкачуються, як при виникненні переривання вводу-виводу. Виконання команди визначається наступним чином:

[00777] Слово ідентифікації підсистеми (SID):

[00778] Біти 32-63 SID розташовуються в слові 0.

[00779] Параметр переривання: Слово 1 містить четирехбайтний параметр, який був визначений програмою і переданий на субканал в слові 0 ORB або PMCW. Коли пристрій передає застережливий статус, а параметр переривання не був раніше переданий на субканал шляхом виконання START SUBCHANNEL або MODIFY SUBCHANNEL, це поле містить нулі.

[00780] Слово ідентифікації переривання: Збережене слово 2 містить слово ідентифікації переривання, яке додатково ідентифікує джерело переривання вводу-виводу. Слово 2 зберігається тільки коли адреса другого операнда дорівнює нулю.

[00781] Слово ідентифікації переривання визначається наступним чином:

[00782] Біт (А): � скинуто. Коли біт 0 дорівнює нулю, запит переривання вводу-виводу був пов'язаний з субканалом.

[00783] Підклас (ISC) переривання вводу-виводу: Позиції бітів 2-4 слова ідентифікації переривання містять беззнакове ціле двійкове число в діапазоні 0-7, яке визначає підклас переривання вводу-виводу, пов'язаний з субканалом, для якого був скинутий очікує запит переривання вводу-виводу. Інші позиції бітів зарезервовані і встановлені в нулі.

[00784] Особливі ситуації

[00785] TEST PENDING INTERRUPTION може стикатися з програмними винятковими ситуаціями, описаними або перерахованими нижче.

[00786] Другий операнд повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00787] Виконання TEST PENDING INTERRUPTION пригнічується у всіх виняткових ситуаціях адресації і захисту.

[00788] Результуючий код ситуації:

[00789] 0 Код переривання не збережено

[00790] 1 Код переривання збережений

[00791] 2 -

[00792] 3 -

[00793] Програмні виняткові ситуації:

[007941 - Доступу (збереження, операнда 2, тільки ненульового адреси другого операнда)

[00795] - Пріоритетною операції

[00796] - Специфікації

[00797] Зауваження для програмування:

[00798] 1. TEST PENDING INTERRUPTION сліду�переривання вводу-виводу, збережений командою, може бути втрачено, якщо виникає переривання вводу-виводу. Код переривання вводу-виводу, який ідентифікує джерело переривання вводу-виводу, прийнятого після TEST PENDING INTERRUPTION, також зберігається в місцях розташування 184-195, замінюючи код переривання вводу-виводу, який був збережений командою.

[00799] 2. В режимі регістра доступу, коли адреса другого операнда дорівнює нулю, виняткова ситуація доступу розпізнається, якщо виникає трансляція регістра доступу і регістр доступу перебуває у стані помилки. Це виняток можна запобігти шляхом встановлення поля B2 в нуль або шляхом розташування шістнадцяткового значення 00000000, 00000001 або будь-якого іншого достовірного вмісту в регістр доступу.

[00800] STORE SUBCHANNEL

[00801] Інформація управління і статусу для зазначеного субканала зберігається в зазначеному SCHIB.

[00802] Регістр 1 загального призначення містить слово ідентифікації підсистеми, яке вказує субканал, для якого необхідно зберегти інформацію. Адреса другого операнда є логічним адресою SCHIB і повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00803] Коли розширене засіб блоку вимірювання введення-CSW і трьох слів залежить від моделі інформації. Коли розширене засіб блоку вимірювання вводу-виводу встановлено, що інформація, яка зберігається в SCHIB, складається із слова контролю управління трактами, SCSW, поля адреси блоку вимірювання і одного слова залежить від моделі інформації.

[00804] Виконання STORE SUBCHANNEL не зраджує жодної інформації на субканале.

[00805] Код 0 ситуації встановлюється, щоб вказувати, що інформація управління і статусу для зазначеного субканала була збережена в SCHIB. Коли виконання STORE SUBCHANNEL призводить до встановлення коду 0 ситуації, інформація в SCHIB вказує на узгоджене стан субканала.

[00806] Особливі ситуації

[00807] Код 3 ситуації встановлюється, і ніяке інше дію не робиться, коли зазначений субканал є неробочим для STORE SUBCHANNEL. Субканал є неробочим для STORE SUBCHANNEL, якщо субканал не надано канальної підсистемі.

[00808] STORE SUBCHANNEL може зустрічати програмні виняткові ситуації, описані або перераховані нижче.

[00809] Коли засіб декількох наборів субканалов не встановлено, біти 32-47 регістра 1 загального призначення повинні містити шістнадцяткове значення 0001 hex; інакше розпізнається виняткова ситуація операнда.

[00810] Коли засіб нескольки містити достовірне значення, а біт 47 повинен містити одиничне значення; інакше розпізнається виняткова ситуація операнда.

[00811] Другий операнд повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00812] Результуючий код ситуації:

[00813] 0 SCHIB збережений

[00814] 1 -

[00815] 2 -

[00816] 3 Неробочий

[00817] Програмні виняткові ситуації:

[00818] - Доступу (збереження, операнда 2)

[00819] - Операнда

[00820] - Пріоритетною операції

[00821] - Специфікації

[00822] Зауваження для програмування:

[00823] 1. Статус пристрою, яке зберігається в SCSW, може включати вказівки на зайнятість пристрою, зайнятість пристрою керування або закінчення роботи пристрою управління.

[00824] 2. Інформація, яка зберігається в SCHIB, виходить з субканала. Команда STORE SUBCHANNEL не призводить до опитування канальної підсистемою адресуемого пристрою.

[00825] 3. STORE SUBCHANNEL може виконуватися в будь-який час, щоб заміряти ситуації, існуючі на субканале, не викликаючи скидання ніяких очікують статус ситуацій.

[00826] 4. Повторюваного виконання STORE SUBCHANNEL без проміжної затримки (наприклад, щоб визначити, коли субканал змінює стан) слід уникати, оскільки повторюю�и канальної системи з метою оновлення субканала.

[00827] TEST SUBCHANNEL

[00828] Інформація управління і статусу для субканала зберігається в зазначеному IRB.

[00829] Регістр 1 загального призначення містить слово ідентифікації підсистеми, яке вказує субканал, для якого необхідно зберегти інформацію. Адреса другого операнда є логічним адресою IRB і повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00830] Інформація, яка зберігається в IRB, складається з SCSW, слова розширеного статусу і слова розширеного управління.

[00831] Якщо субканал є очікують статус, біт очікування статусу поля управління статусом встановлюється в одиницю. Те, є чи ні субканал очікують статус, впливає на функції, які виконуються при виконанні TEST SUBCHANNEL.

[00832] Коли субканал є очікують статус і виконується TEST SUBCHANNEL, інформація, як описано вище, зберігається в IRB, після чого слід скидання певних ситуацій і вказівок, які існують на субканале. Якщо субканал знаходиться в режимі передачі, скидання цих ситуацій, особливо функції запуску, поміщає субканал в командний режим. Якщо запит переривання вводу-виводу є дожидаючи для субканала, запит скидав не є очікують статус і виконується TEST SUBCHANNEL, інформація зберігається в IRB, і ніякі ситуації або вказівки не скидаються. Код 1 ситуації встановлюється, щоб вказати, що ці дії були зроблені.

[00834] Особливі ситуації

[00835] Код 3 стану встановлюється, і ніякі інші дії не вдаються, коли субканал є неробочим для TEST SUBCHANNEL. Субканал є неробочим для TEST SUBCHANNEL, якщо субканал не надано, не має достовірного номера пристрою, пов'язаного з ним, або не активовано.

[00836] TEST SUBCHANNEL може стикатися з програмними винятковими ситуаціями, описаними або перерахованими нижче.

[00837] Коли засіб декількох наборів субканалов не встановлено, біти 32-47 регістра 1 загального призначення повинні містити шістнадцяткове значення 0001; інакше розпізнається виняткова ситуація операнда.

[00838] Коли засіб декількох наборів субканалов встановлено, біти 32-44 регістра 1 загального призначення повинні містити нулі, біти 45-46 повинні містити достовірне значення, а біт 47 повинен містити одиницю; інакше розпізнається виняткова ситуація операнда.

[00839] Другий операнд повинен бути вказаний на кордоні слова; інакше розпізнається виняткова ситуація специфікації.

[00840] Коли вся.

[00841] Результуючий код ситуації:

[00842] 0 IRB збережений; субканал очікує статус

[00843] 1 IRB збережений; субканал не очікує статус

[00844] 2 -

[00845] 3 Неробочий

[00846] Програмні виняткові ситуації:

[00847] - Доступу (збереження, операнда 2)

[00848] - Операнда

[00849] - Пріоритетною операції

[00850] - Специфікації

[00851] Зауваження для програмування:

[00852] 1. Статус пристрою, яке зберігається в SCSW, може включати вказівки на зайнятість пристрою, зайнятість пристрою керування або закінчення роботи пристрою керування.

[00853] 2. Інформація, яка зберігається в IRB, виходить з субканала. Команда TEST SUBCHANNEL не змушує канальну підсистему опитувати адресується пристрій.

[00854] 3. Коли відбувається переривання вводу-виводу, це є результатом ситуації очікування статусу на субканале, і, як правило, TEST SUBCHANNEL виконується, щоб скинути статус.TEST SUBCHANNEL також може виконуватися в будь який інший час, щоб заміряти ситуації, існуючі на субканале.

[00855] 4. Повторюваного виконання TEST SUBCHANNEL, щоб визначити, коли була завершена функція запуску, слід уникати, оскільки існують ситуації, в яких завершення функції запуску може бути або ерфейса (IFCC) в очікуванні (для будь-якого субканала), оскільки іншого субканал вже є очікують статус, і якщо функція запуску, перевіряється за допомогою TEST SUBCHANNEL, має в якості єдиного доступного для вибору тракту канальний тракт з ситуацією IFCC, то стартова функція не може бути ініційована до тих пір, поки ситуація очікування статусу в іншому субканале не буде скинута, дозволяючи ситуації IFCC бути вказана на субканале, до якого вона застосовується.

[00856] 5. Повторюваного виконання TEST SUBCHANNEL без проміжної затримки, наприклад, щоб визначити, коли субканал змінює стан, слід уникати, оскільки повторювані звернення до субканалу з боку ЦП можуть затримувати чи перешкоджати доступу до субканалу з боку канальної системи. Виконання TEST SUBCHANNEL безліччю центральних процесорів для одного субканала приблизно в один час може мати той самий ефект, і його також слід уникати.

[00857] 6. Пріоритет обробки переривань вводу-виводу центральним процесором можна змінювати за допомогою виконання TEST SUBCHANNEL. Коли виконується TEST SUBCHANNEL, і зазначений субканал має очікує запит переривання вводу-виводу, цей запит переривання вводу-виводу скидається, і SCSW зберігається, в незалежності від будь-якого ра� незмінним.

[00858] Як буде зрозуміло фахівця в даній області техніки, особливості цього винаходу можуть бути реалізовані системою, способом або комп'ютерним програмним продуктом. Відповідно, особливості цього винаходу можуть мати форму повністю апаратного варіанту здійснення, повністю програмного варіанти здійснення (включаючи вбудоване програмне забезпечення, резидентне програмне забезпечення, мікрокод тощо) або варіанту здійснення, що поєднує програмні і апаратні особливості, які всі в даному документі в цілому можуть називатися «контуром», «модулем» або «системою». Крім того, особливості цього винаходу можуть мати форму комп'ютерного програмного продукту, реалізованого в одній або декількох машиночитаній середовищі(-ах), з реалізованим на них машиночитаних програмним кодом.

[00859] Може використовуватися будь-яка комбінація однієї або декількох машиночитаних середовищ. Машиночитаемая середовище може бути машиночитаній запам'ятовує середовищем. Машиночитаемая запам'ятовує середовище може бути, наприклад, без обмеження, електронної, магнітній, оптичної, електромагнітного, інфрачервоного або напівпровідникової системою, апаратом або уск) машиночитаних запам'ятовуючих середовищ включають таке: електричне з'єднання, має один або кілька проводів, знімний диск для комп'ютера, жорсткий диск, оперативне запам'ятовуючий пристрій (ОЗП), постійне запам'ятовуючий пристрій (ПЗУ), зтирається програмоване постійне запам'ятовуючий пристрій (СПЗУ або флеш-пам'ять), оптоволокно, постійний запам'ятовуючий пристрій на знімному диску (CD-ROM), оптичне запам'ятовуючий пристрій, магнітне запам'ятовуючий пристрій чи будь-яке відповідне поєднання вищевказаного. В контексті цього документа машиночитаемая запам'ятовує середовище може бути будь-якої матеріальної середовищем, яка може містити або зберігати програму для використання за допомогою системи, апарати або пристрої виконання команд або у зв'язку з ними.

[00860] Як показано на фіг.10, в одному прикладі комп'ютерний програмний продукт 1000 містить, наприклад, одну або декілька постійних машиночитаних запам'ятовуючих середовищ 1002 для зберігання в них машиночитаемого програмного коду або логіки 1004 для забезпечення і поліпшення одного або декількох особливостей цього винаходу.

[00861] Програмний код, втілений в машиночитаній середовищі, може передаватися з використанням відповідного середовища, включаючи без обмеження бездротову, дротову лінії�й програмний код для виконання операцій, забезпечують особливості цього винаходу, може бути написана на будь-якому сполученні одного або декількох мов програмування, включаючи об'єктно-орієнтована мова програмування, такій як Java, Smalltalk, C++ тощо, і традиційні процедурні мови програмування, такі як мова програмування C, assembler або подібні мови програмування. Програмний код може повністю виконуватися на комп'ютері користувача, частково на комп'ютері користувача, в якості автономного пакету програмного забезпечення, частково на комп'ютері користувача і частково на віддаленому комп'ютері або повністю віддаленому комп'ютері або сервері. В останньому випадку віддалений комп'ютер може бути з'єднаний з комп'ютером за допомогою мережі будь-якого типу, включаючи локальну обчислювальну мережу (LAN) або глобальну обчислювальну мережу (WAN), або з'єднання може здійснюватися з зовнішнім комп'ютером (наприклад, по мережі Інтернет за допомогою Інтернет-провайдера).

[00863] Особливості цього винаходу описані в цьому документі, з посиланням на структурні схеми та/або блок-схеми способів, пристроїв (систем) і комп'ютерних програмних продуктів у відповідності з варіантами здійснення�структурних схемах та/або блок-схеми можуть бути реалізовані за допомогою команд управління комп'ютерних програм. Ці команди управління комп'ютерною програмою можуть подаватися на процесор комп'ютера загального призначення, комп'ютера спеціального призначення або іншого програмованого пристрою для обробки даних з метою створення машини, в якій команди, які виконуються за допомогою процесора комп'ютера або іншого програмованого пристрою для обробки даних, створюють засіб для реалізації функцій/дій, визначених блоком або блоками на структурних схемах та/або блок-схемах.

[00864] Ці команди управління комп'ютерною програмою також можуть зберігатися в машиночитаній середовищі, яка може наказувати комп'ютера, іншого программируемому пристрою обробки даних або інших пристроїв діяти певним чином, так що команди, які зберігаються в машиночитаній середовищі, утворюють виріб обробки, що містить команди, які реалізують функцію/дію, визначені блоком або блоками на структурних схемах та/або блок-схемах.

[00865] Команди управління комп'ютерною програмою також можуть завантажуватися на комп'ютер, інше програмований пристрій обробки даних або інші пристрої, щоб викликати виконання послідовності оперативних етапів компьюѽий процес, так що команди, які виконуються на комп'ютері або іншому програмованому пристрої, що забезпечують процеси для реалізації функцій/дій, заданих блоком або блоками на структурних схемах та/або блок-схемах.

[00866] Наведені на кресленнях структурні схеми і блок-схеми ілюструють архітектуру, функціональні можливості і роботу можливих осуществлений систем, способів і комп'ютерних програмних продуктів у відповідності з різними варіантами здійснення цього винаходу. У зв'язку з цим кожен блок на структурних схемах або блок-схемах може представляти модуль, сегмент або частину коду, яка містить одну або кілька виконуваних команд для реалізації заданої логічної функції(-ї). Слід також зазначити, що в деяких альтернативних осуществлениях вказані в блоці функції можуть відбуватися не в тому порядку, в якому вони представлені на графічних матеріалах. Наприклад, два блоки, показані послідовно, насправді можуть виконуватися в значній мірі одночасно, або блоки можуть іноді виконуватись у зворотному порядку, у залежності від пов'язаних функціональних можливостей. Слід також зазначити, що кожен блок на блок-схемах та/або ст�му спеціалізованих апаратних систем, які виконують задані функції або дії, або поєднань спеціалізованого апаратного забезпечення і комп'ютерних команд.

[00867] В додачу до вищесказаного, одна або кілька особливостей цього винаходу може надаватися, пропонуватися, вводитися, управлятися, обслуговуватися і т. п. постачальником послуг, який пропонує управління користувацькими середовищами. Наприклад, постачальник послуг може створювати, підтримувати, обслуговувати і т. п. комп'ютерний код і/або обчислювальну інфраструктуру, яка виконує одну або кілька особливостей цього винаходу для одного або декількох користувачів. У відповідь постачальник послуг може отримувати оплату від користувача, наприклад, згідно з передплатою та/або угоди. Додатково або в якості альтернативи, постачальник послуг може отримувати плату за продаж реклами одній або кільком третім сторонам.

[00868] Згідно з однією з особливостей цього винаходу для виконання однієї або декількох особливостей цього винаходу може бути розгорнуто додаток. В якості одного з прикладів, розгортання програми включає надання обчислювальної інфраструктури, здатної виконувати одну або �ения, розгортання обчислювальної інфраструктури може включати інтегрування машиночитаемого коду в обчислювальну систему, в якій код в поєднанні з обчислювальною системою здатний виконувати одну або кілька особливостей цього винаходу.

[00870] В якості ще однієї особливості цього винаходу може бути представлений спосіб інтегрування обчислювальної інфраструктури, що включає інтегрування машиночитаемого коду в комп'ютерну систему. Комп'ютерна система містить машиночитаемую середовище, причому машиночитаемая середовище містить одну або кілька особливостей цього винаходу. Код в поєднанні з комп'ютерною системою здатний виконувати одну або кілька особливостей цього винаходу.

[00871] Хоча вище описані різні варіанти здійснення, вони є лише прикладами. Наприклад, обчислювальні середовища інших архітектур можуть включати і використовувати одну або кілька особливостей цього винаходу. Наприклад, сервери, що відрізняються від серверів z196, можуть включати, використовувати і/або отримувати переваги від однієї або декількох особливостей цього винаходу. Крім того, можуть використовуватися інші команди управління і/іл�, �порівняно з описаної в даному документі. Можливі варіанти.

[00872] Крім того, інші типи обчислювальних середовищ можуть отримувати переваги від однієї або декількох особливостей цього винаходу. Наприклад, може застосовуватися система обробки даних призначена для зберігання та/або виконання програмного коду, яка включає щонайменше два процесора, прямо або непрямо сполучених з елементами пам'яті через системну шину. Елементи пам'яті включають, наприклад, локальну пам'ять, яка використовується під час фактичного виконання програмного коду, пристрій масової пам'яті і кеш-пам'ять, яка забезпечує тимчасове зберігання щонайменше деякого програмного коду з метою зменшення кількості витягів коду з пристрою масової пам'яті під час виконання.

[00873] Пристрою вводу-виводу (включаючи без обмеження клавіатури, екрани, пристрої вказівки, DASD (пристрої пам'яті з прямим доступом), стрічку, CD, DVD диски, флеш-пристроїв та інших середовища пам'яті, тощо) можуть підключатися до системи або прямо, або за допомогою проміжних контролерів вводу-виводу. Мережеві адаптери також можуть підключатися до системи, щоб дозволяти системі обробки даних м проміжних приватних або загальних мереж. Модеми, кабельні модеми і мережні карти Ethernet є лише деякими з доступних типів мережевих адаптерів.

[00874] Фіг.11 являє собою зображення характерних компонентів хост-комп'ютерної системи 5000 для реалізації однієї або декількох особливостей цього винаходу. Характерний хост-комп'ютер 5000 містить один або кілька ЦП 5001, пов'язаних з пам'яттю (тобто центральним запам'ятовуючим пристроєм) 5002 комп'ютера, а також інтерфейси введення-виведення до запам'ятовуючим пристроям 5011 і мережі 5010 для зв'язку з іншими комп'ютерами або SAN і т. п. ЦП 5001 сумісний з архітектурою, що має структурований набір команд і структуровані функціональні можливості. ЦП 5001 може мати динамічну трансляцію 5003 адреси (DAT) для перетворення програмних адрес (віртуальних адрес) в дійсні адреси пам'яті. DAT зазвичай містить буфер 5007 швидкого перетворення адреси (TLB) для кешування трансляцій, щоб при наступних доступи до блоку пам'яті 5002 комп'ютера не потрібна затримка трансляції адреси. Зазвичай між пам'яттю 5002 комп'ютера і процесором 5001 використовується кеш 5009. Кеш 5009 може бути ієрархічним, мають кеш великої ємності, доступний для більш ніж одного ЦП, і більш бистродейсениях кеші низького рівня поділяються, щоб надавати окремі кеші низького рівня для вибірки команд і доступу до даних. В одному варіанті здійснення команда витягається з пам'яті 5002 блоком 5004 вибірки команд допомогою кешу 5009. Команда декодується в блоці 5006 декодування команд і відправляється (з іншими командами у деяких варіантах здійснення) в блок або блоки 5008 виконання команд. Зазвичай використовується кілька блоків 5008 виконання, наприклад, блок виконання арифметичних команд, блок виконання з плаваючою точкою і блок виконання команд переходу. Команда виконується блоком виконання, який здійснює доступ до операндам із визначаються командами регістрів пам'яті або по мірі необхідності. Якщо доступ (завантаження або збереження) до операнду необхідно здійснювати з пам'яті 5002, блок 5005 завантаження/збереження зазвичай здійснює доступ під управлінням виконуваної команди. Команди можуть виконуватися в апаратних схемах або у внутрішньому мікрокоді (апаратно-програмному забезпеченні), або з використанням їх поєднання.

[00875] Як зазначено, комп'ютерна система містить інформацію в локальному (чи переважно) запам'ятовуючому пристрої, а також адресні, захисні, контрольні та коригувальні записи. Н�сов і спосіб, яким адресу одного типу транслюється на адресу іншого типу. Деякі з основних запам'ятовуючих пристроїв містять постійно призначені розташування в запам'ятовуючому пристрої. Основне запам'ятовуючий пристрій забезпечує систему з запам'ятовуючим пристроєм з прямою адресацією і швидким доступом до даних. В основний запам'ятовуючий пристрій повинні завантажуватися (з пристроїв введення) і дані, і програми, до того як вони можуть бути оброблені.

[00876] Основне запам'ятовуючий пристрій може містити одне або кілька буферних пристроїв меншої ємності більш швидкого доступу, іноді званих кэшами. Кеш зазвичай фізично пов'язаний з ЦП або процесором введення-виведення. Фізична структура і використання різних запам'ятовуючих середовищ, як правило, не видимі програмою, за винятком продуктивності.

[00877] Для команд і операндів, що зберігаються в пам'яті, можу бути передбачені окремі кеш. Інформація в кеші міститься у формі безперервних байтів на цілочисельний кордоні, званої блоком кешу або рядком кеша (або, для стислості, -рядком). Одна модель може надавати команду EXTRACT CACHE ATTRIBUTE (команда вилучення атрибута кешу), яка повертає розмір рядка ку PREFETCH DATA RELATIVE LONG (попередньої вибірки даних щодо великої довжини) для попередньої вибірки даних з пам'яті в кеш даних або команд або для звільнення даних з кеша.

[00878] Запам'ятовуючий пристрій розглядається як довга горизонтальна рядок бітів. Для більшості операцій доступ до запам'ятовуючого пристрою здійснюється послідовно зліва направо. Рядок бітів поділяється на блоки з восьми бітів. Восьмирозрядний блок називається байтом, який є основним конструктивним блоком всіх форматів представлення інформації. Розташування кожного байта в запам'ятовуючому пристрої ідентифікується унікальним невід'ємним цілим числом, яке є адресою розташування цього байта або просто адресою байта. Сусідні місця розташування байтів мають послідовні адреси, що починаються зліва з 0 і послідовно наступні зліва направо. Адреси являють собою беззнакові двійкові цілі числа, що містять 24, 31 або 64 біта.

[00879] Інформацією між запам'ятовуючим пристроєм і ЦП або канальної підсистемою передається по одному байту або групою байтів за один раз. Якщо не обумовлено інше, наприклад, у системі z/Architecture® зберігається група байтів адресується за допомогою крайнього лівого байта групи. Число байтів у групі мається на увазі або прямо визначається операцією, яку необхідно виконати. Використовувана в роботі ЦПя зліва направо. В z/Architecture® крайні ліві біти іноді іменуються "старшими" бітами, а крайні праві розряди - "молодшими" бітами. Однак номера бітів не є адресами комірок запам'ятовуючого пристрою. Звертатися за адресою можна тільки до байтам. Щоб працювати з окремими бітами зберігається байта, здійснюється доступ до всього байту. Біти в байті пронумеровані зліва направо від 0 до 7 (наприклад, в Architecture®. Біти в адресі можуть бути пронумеровані від 8 до 31, або від 40 до 63 у разі 24-бітових адрес або від 1 до 31, або від 33 до 63 у разі 31-бітових адрес і від 0 до 63 у разі 64-бітових адрес. В будь-якому іншому форматі фіксованої довжини з безлічі байтів біти, що утворюють формат, послідовно нумеруються, починаючи з 0. В цілях виявлення помилок, і переважно їх виправлення, з кожним байтом або групою байтів може передаватися один або декілька контрольних бітів. Такі контрольні розряди генеруються автоматично машиною і не можуть безпосередньо управлятися програмою. Ємність запам'ятовуючого пристрою виражається в числі байтів. Коли довжина зберігається поля операнда мається на увазі кодом операцій команди, кажуть, що поле має фіксовану довжину, яка може становити 1, 2, 4, 8 або 16 байтів. Для некоттся, а прямо вказується, кажуть, що поле має змінну довжину. Операнди змінної довжини можуть розрізнятися по довжині з кроком в 1 байт (або для деяких команд з кроком в 2 байта і іншими кроками). При збереженні інформації в запам'ятовуючому пристрої заміщається вміст розташування тільки тих байтів, які включені у вказане поле, незважаючи на те, що ширина фізичного шляху до запам'ятовуючого пристрою може бути більше довжини зберігається поля.

[00880] Деякі одиниці інформації повинні перебувати на цілочисельний кордоні в запам'ятовуючому пристрої. Стосовно до одиниці інформації межа називається цілочисловою, коли її адресу комірки пристрою кратний довжині одиниці інформації в байтах. Полів довжиною 2, 4, 8 і 16 байтів на цілочисельний кордоні даються особливі назви. Півслово являє собою групу з 2 послідовних байтів на двухбайтной кордоні і є основним структурним блоком команд. Слово являє собою групу з 4 послідовних байтів на четирехбайтной кордоні. Подвійне слово являє собою групу з 8 послідовних байтів на восьмибайтной кордоні. Учетверенное слово являє собою групу з 16 послідовних байтів на шестнадцатиба�ті слова, двійкове подання адреси містить один, два, три або чотири крайніх правих нульових біт, відповідно. Команди повинні знаходитися на двухбайтних цілочисельних кордонах. Зберігаються операнди більшості команд не містять вимоги вирівнювання на кордонах.

[00881] У пристроях, у яких реалізовані роздільні кеші для команд і операндів, що зберігаються в пам'яті, можуть відбуватися значні затримки, якщо програма зберігається в рядку кешу, з якої згодом здійснюється витяг команд, незалежно від того, чи змінюються при збереженні команди, витяг яких здійснюється згодом.

[00882] В одному варіанті здійснення винахід може бути реалізовано на практиці програмним забезпеченням (іноді званих ліцензійних внутрішнім кодом, апаратно-програмним забезпеченням, мікрокодом, милликодом, пикокодом і т. п., будь з чого буде узгоджуватися з цим винаходом). Як показано на фіг.11, до програмного коду програмного забезпечення, яке втілює даний винахід, зазвичай отримує доступ процесор 5001 хост-системи 5000 з запам'ятовуючих пристроїв 5011 довготривалої пам'яті, таких накопичувач на КОМПАКТ-диску, накопичувач на магнітній стрічці�ожества відомих середовищ для використання з системою обробки даних, такий дискета, накопичувач на жорстких дисках або CD-диск. Код може розподілятися в таких середовищах або може розподілятися користувачам з комп'ютерної пам'яті 5002 або запам'ятовуючого пристрою однієї комп'ютерної системи по мережі 5010 іншим комп'ютерним системам для використання користувачами таких систем.

[00883] Програмний код включає операційну систему, яка управляє функцією і взаємодією різних компонентів комп'ютера і однієї або декількох прикладних програм. Зазвичай програмний код підкачується по частинам із запам'ятовуючого пристрою 5011 у відносно більш швидкодіючий запам'ятовуючий пристрій 5002 комп'ютера, в якій він доступний для обробки процесором 5001. Методи і способи для втілення програмного коду системи програмного забезпечення в пам'яті, у фізичних середовищах та/або розподілу програмного коду через мережі добре відомі і більш глибоко в даному документі обговорюватися не будуть. Програмний код, створений і зберігається в матеріальному середовищі (включаючи без обмеження модулі електронної пам'яті (ОЗП), флеш-пам'ять, компакт-диски (CD, DVD, магнітну стрічку тощо) часто називають «комп'ютерним програмним продуктом». Містить компьютерЌютерной системі для виконання пристроєм обробки даних.

[00884] ФІГ.12 являє собою зображення характерною робочої станції або сервера апаратної системи, в якій даний винахід може бути реалізовано на практиці. Система 5020, представлена на фіг.12, містить характерну базову комп'ютерну систему 5021, таку як персональний комп'ютер, робоча станція або сервер, включаючи додаткові периферійні пристрої. Базова комп'ютерна система 5021 має один або кілька процесорів 5026 і шину, яка використовується для з'єднання та зв'язку процесора(-ів) 5026 та інших компонентів системи 5021 і у відповідності з відомими способами. Шина з'єднує процесор 5026 з пам'яттю 5025 і довготривалим запам'ятовуючим пристроєм 5027, яке може включати накопичувач на жорстких дисках (наприклад, включає будь-яке з магнітного накопичувача, CD-диски, DVD-диски і флеш-пам'яті) або, наприклад, накопичувач на магнітній стрічці. Система 5021 також може включати адаптер інтерфейсу, який з'єднує мікропроцесор 5026 через шину з одним або кількома інтерфейсними пристроями, такими як клавіатура 5024, миша 5023, принтер/сканер 5030 та/або інші інтерфейсні пристрої, які можуть бути будь-якими пристроями користувальницького інтерфейсу, такими �е як РК-екран або монітор, з мікропроцесором 5026 допомогою адаптера пристрої відтворення.

[00885] Система 5021 може підтримувати зв'язок з іншими комп'ютерами або комп'ютерними мережами за допомогою мережевого адаптера, здатного підтримувати зв'язок 5028 з мережею 5029. Прикладами мережевих адаптерів є канали зв'язку, кільцева мережа з маркерним доступом, мережа Ethernet або модеми. В іншому випадку система 5021 може підтримувати зв'язок за допомогою бездротового інтерфейсу, такого як карта CDPD (стільникової системи передачі пакетів цифрових даних). Система 5021 може бути пов'язана з іншими такими комп'ютерами в локальної обчислювальної мережі (LAN) або глобальної обчислювальної мережі (WAN), або система 5021 може бути клієнтом в клієнт/серверної розподіленої системи з іншим комп'ютером, і т. п. Всі ці конфігурації, а також відповідне комунікаційне апаратне і програмне забезпечення, відомі в даній області техніки.

[00886] Фіг. 13 являє собою зображення мережі 5040 обробки даних, в якій даний винахід може бути реалізовано на практиці. Мережа 5040 обробки даних може включати безліч окремих мереж, таких як бездротова мережа і дротова мережа, кожна з яких може включати безліч отдельнержать одну або декілька мереж LAN, де LAN може включати безліч інтелектуальних робочих станцій, з'єднаних з хост-процесором.

[00887] Все ще звертаючись до фіг. 13, мережі також можуть містити мейнфрейми або сервери, такі як шлюз (клієнт-сервер 5046) або сервер додатків (віддалений сервер 5048, який може здійснювати доступ до сховища даних, а також може бути доступний безпосередньо з робочої станції 5045). Шлюз 5046 служить точкою входу в кожну окрему мережу. Шлюз необхідний при з'єднанні одного мережевого протоколу з іншим. Шлюз 5046 переважно може бути з'єднаний лінією зв'язку з іншою мережею (наприклад, мережею Інтернет 5047). Шлюз 5046 також може бути прямо з'єднаний з однією або кількома робочими станціями 5041, 5042, 5043, 5044 допомогою лінії зв'язку. Шлюз може бути реалізований з використанням сервера IBM eServer™ System z®, що поставляється на ринок International Business Machines Corporation.

[00888] Одночасно на фіг. 12 і фіг. 13 представлений програмний код програмного забезпечення, який може реалізовувати даний винахід може бути доступний процесору 5026 системи 5020 з довготривалих запам'ятовуючих середовищ 5027, таких накопичувач на КОМПАКТ-дисках або накопичувач на жорстких дисках. Программнийкод програмного забезпечення може бути втілений в лю�до або CD-диск. Код може розподілятися в таких середовищах або може розподілятися користувачам 5050, 5051 з пам'яті або пристрою однієї комп'ютерної системи по мережі іншим комп'ютерним системам для використання користувачами таких систем.

[00889] У іншому випадку, програмний код може бути здійснено в пам'яті 5025, з доступом до нього процесором 5026 із застосуванням процесорної шини. Такий програмний код включає операційну систему, яка управляє функцією і взаємодією різних компонентів комп'ютера і однієї або декількох прикладних програм 5032. Програмний код зазвичай підкачується по частинах з запам'ятовуючих середовищ 5027 в швидкодіючу пам'ять 5025, де він доступний для обробки процесором 5026. Методи і способи здійснення програмного коду програмного забезпечення в пам'яті, у фізичних середовищах та/або розподілу коду програмного забезпечення за допомогою мереж добре відомі і в даному документі детальніше обговорюватися не будуть. Програмний код, створений і зберігається в матеріальному середовищі (включаючи без обмеження модулі електронної пам'яті (ОЗП), флеш-пам'ять, компакт-диски (CD), DVD-диски, магнітну стрічку тощо) часто називають «комп'ютерним програмним продуктом». �едпочтительно в комп'ютерній системі для виконання пристроєм обробки даних.

[00890] Кеш, який є найбільш легкодоступним для процесора (зазвичай більш швидкодіючий і менш об'ємна, ніж інші кеші процесора), являє собою нижчий (L1 або рівня 1) кеш, а основне запам'ятовуючий пристрій (основна пам'ять) являє собою кеш вищого рівня (L3, якщо є 3 рівня). Кеш нижчого рівня часто ділиться на кеш команд (1-кеш), зберігає машинні команди, що підлягають виконанню, і кеш даних (D-кеш), що містить операнди, що зберігаються в пам'яті.

[00891] Фіг.14 являє собою зображення ілюстративного варіанту здійснення процесора для процесора 5026. Зазвичай, щоб буферізіровать блоки пам'яті з метою підвищення продуктивності процесора, використовується один або кілька рівнів кешу 5053. Кеш 5053 являє собою високошвидкісний буфер, що зберігає рядка кеша даних пам'яті, які, ймовірно, будуть використовуватися. Типові рядка кеша містять 64, 128 або 256 байтів даних пам'яті. Для кешування команд і кешування даних часто використовуються окремі кеш. Узгодженість кешей (синхронізація копій рядків в пам'яті і в кешах) часто забезпечується різними алгоритмами стеження, добре відомими в даній галузі техніки. Основне запоминающосновное запам'ятовуючий пристрій 5025 іноді називають кешем 5 рівня (L5), оскільки воно зазвичай є більш швидкодіючими і містить лише частину енергонезалежного запам'ятовуючого пристрою (DASD, стрічка тощо), яке доступне для комп'ютерної системи. Основне запам'ятовуючий пристрій 5025 "кешує" сторінки даних, які посторінково переміщуються в основний запам'ятовуючий пристрій 5025 і з нього операційною системою.

[00892] Програмний лічильник (лічильник команд) 5061 відстежує адреса поточної команди, що підлягає виконанню. Лічильник команд в процесорі z/Architecture® є 64-бітним і може бути усічений до 31 або 24 біт з метою підтримки попередніх обмежень адресації. Лічильник команд зазвичай втілений у слові статусу програми (PSW) комп'ютера, так що він зберігається при перемиканні контексту. Таким чином, працююча програма, що має значення лічильника команд, може перериватися, наприклад, операційною системою (при перемиканні контексту з програмної середовища в середовище операційної системи). PSW програми зберігає значення лічильника команд, поки програма неактивна, і програмний лічильник (PSW) операційної системи використовується, поки виконується операційна система. Зазвичай лічильник команд збільшується на величину, рівну числу байтів поточної команди. Rичисления зі складним набором команд) зазвичай мають змінну довжину. Команди IBM z/Architecture® є CISC-командами, що мають довжину 2, 4 або 6 байтів. Лічильник 5061 команд змінюється, наприклад, або операцією перемикання контексту, або операцією обраного переходу команди переходу. В операції перемикання контексту поточне значення лічильника команд зберігається у слові статусу програми зберігається разом з іншою інформацією про стан виконуваної програми (такий як коди станів), і завантажується нове значення лічильника команд, що вказує на команду нового програмного модуля, який необхідно виконати. Операція обраного переходу виконується, щоб дозволити програмі приймати рішення чи виконувати цикл у програмі шляхом завантаження результату команди переходу в лічильник 5061 команд.

[00893 j Зазвичай для вибірки команд від імені процесора 5026 використовується блок 5055 вибірки команд. Блок вибірки або витягує «наступні послідовні команди», цільові команди команд обраного переходу, або перші команди програми, наступного за перемиканням контексту. В сучасних блоках вибірки команд часто застосовують методи попередньої вибірки, щоб емпірично здійснювати попередню вибірку команд на підставі ймовірності того, що під сумнівом�команди, яка містить таку послідовну команду, і додаткових байтів інших послідовних команд.

[00894] Потім витягнуті команди виконуються процесором 5026. В одному варіанті здійснення зіграна команда(-и) передаються блоку 5056 диспетчеризації блоку вибірки. Блок диспетчеризації декодує команду(-и) і пересилає інформацію про декодированной команді(-ах) відповідним блокам 5057, 5058, 5060. Блок 5057 виконання зазвичай приймає інформацію про декодованих арифметичних командах від блоку 5055 вибірки команд і виконує арифметичні операції з операндами відповідно до коду операції команди. Операнди подаються на блок 5057 виконання переважно або з пам'яті 5025, структурованих регістрів 5059 або з найближчого поля виконуваної команди. Збережені результати виконання зберігаються або в пам'яті 5025, регістрах 5059 або в іншому машинному апаратному забезпеченні (такому як керуючі регістри, регістри PSW і тощо).

[00895] Процесор 5026 зазвичай має один або кілька блоків 5057, 5058, 5060 для виконання функції команди. Звертаючись до фіг.15A, блок 5057 виконання може взаємодіяти зі структурованими регістрами 5059 загального призначення, блоком 5056 декодування/диспетчеризації, � виконання може застосовувати кілька регістрових схем 5067, 5068, 5069, щоб зберігати інформацію, з якою буде працювати арифметичний логічний пристрій (ALU) 5066. ALU виконує арифметичні операції, такі як додавання, віднімання, множення і ділення, а також логічні функції, такі як І, АБО і виключає АБО (XOR), циклічний зсув і зміщення. ALU переважно підтримує спеціалізовані операції, що залежать від структури. Інші схеми можуть забезпечувати інші структуровані кошти 5072, що включають, наприклад, коди ситуацій та логіку підтримки відновлення. Зазвичай результат операції ALU зберігається в схемі 5070 вихідного регістра, яка може направляти результат низки інших функцій обробки. Хоча існує безліч конструкцій процесорів, даний опис призначене лише забезпечити характерне розуміння одного варіанта здійснення.

[00896] Наприклад, команда ADD виконується блоком 5057 виконання, володіє арифметичними й логічними функціональними можливостями, тоді як, наприклад, команда з плаваючою точкою виконується блоком обчислень з плаваючою точкою, що володіє спеціальними можливостями роботи з плаваючою точкою. Блок виконання переважно працює з зазначеними командою операндами шляхом вип�иполнения на операндах, знаходяться в двох регістрах 5059, зазначених в регістрових полях команди.

[00897] Блок 5057 виконання виконує арифметичне додавання двох операндів і зберігає результат у третьому операнді, де третій операнд може бути третім регістром або одним з двох вихідних регістрів. Блок виконання переважно використовує арифметичний логічний пристрій (ALU) 5066, здатне виконувати ряд логічних функцій, таких як зсув, циклічний зсув, І, АБО і виключає АБО, а також ряд алгебраїчних функцій, включаючи будь-яку з додавання, віднімання, множення, ділення. Деякі ALU 5066 розроблені для скалярних операцій, а деякі - для плаваючою точки. В залежності від архітектури дані можуть мати зворотний порядок проходження байтів (коли найменший значущий байт відповідає старшому байтовому адресою) або прямий порядок розташування байтів (коли найменший значущий байт відповідає молодшому байтовому адресою). IBM z/Architecture® має зворотний порядок проходження байтів. В залежності від архітектури поля чисел зі знаком можуть бути представлені у вигляді прямого коду, доповнення до одиниці або доповнення до двох. Число у формі доповнення до двох вигідно в тому сенсі, що ALU не потрібно підтримує� вимагає тільки додавання. Числа зазвичай описані в скороченому вигляді, в якому 12-бітове поле визначає адресу блоку з 4096 байтів і зазвичай описується, наприклад, 4 кб (кілобайтний) блок.

[00898] Звертаючись до фіг.15B, інформація команди переходу для виконання команди переходу зазвичай передається блоку 5058 переходу, який часто застосовує алгоритм передбачення переходів, такий як таблиця 5082 історії переходів, щоб пророкувати результат переходу до завершення інших умовних операцій. Мета поточної команди переходу витягується і виконується за припущенням до завершення умовних операцій. Коли умовні операції завершуються, виконані за припущенням команди переходу або завершуються, або відкидаються на підставі ситуацій умовної операції і припущеного результату. Типова команда переходу може перевіряти коди ситуацій та перехід до цільового адресою, якщо коди ситуацій відповідають вимогу переходу команди переходу, причому цільової адреса може розраховуватися на підставі кількох чисел, включаючи, наприклад, числа з полів реєстру або безпосереднього поля команди. Блок 5058 переходу може застосують ALU 5074-vi, має безліч схем 5075, 5076, 5077 вхідних регістрів і схему 5080 вихідного регістра. Блок 5058 переходу, мо� або іншими схемами 5073.

[00899] Виконання групи команд може перериватися з ряду причин, включаючи, наприклад, перемикання контексту, ініційоване операційною системою, виняткову ситуацію або помилку програми, що приводить до перемикання контексту, сигнал переривання вводу-виводу, що приводить до перемикання контексту, або багатопотокову діяльність безлічі програм (многопоточной середовищі). Переважно перемикання контексту зберігає інформації про стан виконуваної в даний момент програмі, а потім завантажує інформацію про стан іншої запущеної програми. Інформація про стан може зберігатися, наприклад, в апаратних регістрах або в пам'яті. Інформація про стан переважно містить значення лічильника команд, що вказує на чергову команду, яку потрібно виконати, коди ситуацій, інформацію про трансляції пам'яті і вміст структурованого регістра. Діяльність по перемикання контексту може здійснюватися апаратними схемами, прикладними програмами, програмами операційної системи або апаратно-програмним кодом (мікрокодом, пикокодом або ліцензійним внутрішнім кодом (LIC) окремо або в поєднанні).

[00900] Процесор здійснює доступ до оперЀанд, використовує значення частині команди, може надавати одне або кілька регістрових полів, що прямо вказують або на регістри загального призначення або на регістри особливого призначення (наприклад, регістри з плаваючою точкою). Команда може використовувати непрямі регістри, ідентифікуються полем коду операції як операнди. Команда може використовувати для операндів розташування в запам'ятовуючому пристрої. Розташування у запам'ятовуючому пристрої операнда може надаватися регістром, безпосереднім полем або поєднанням регістрів і безпосереднього поля, прикладом чого є засіб далекого зміщення z/Architecture®, в якому команда визначає базовий регістр, індексний регістр і безпосереднє поле (поле зсуву), які сумуються, щоб надавати, наприклад, адресу операнда в пам'яті. Під місцем розташування в даному документі розуміється місце в основній пам'яті (основного пристрою), якщо не зазначено інше.

[00901] Звертаючись до фіг.15C, процесор здійснює доступ до запам'ятовуючого пристрою, використовуючи блоку 5060 завантаження/збереження. Блок 5060 завантаження/збереження може виконувати операцію завантаження шляхом отримання адреси цільового операнда в Ў збереження шляхом отримання адреси цільового операнда в пам'яті 5053 і збереження даних, отриманих з регістра 5059 або іншої комірки пам'яті 5053, в комірці цільового операнда в пам'яті 5053. Блок 5060 завантаження/збереження може діяти за припущенням і здійснювати доступ до пам'яті в послідовності, яка по порядку не відповідає послідовності команд, проте блок 5060 завантаження/збереження повинен підтримувати для програм видимість того, що команди виконувалися по порядку. Блок 5060 завантаження/збереження може підтримувати зв'язок з регістрами 5059 загального призначення, блоком 5056 декодування/диспетчеризації, інтерфейсом 5053 кеша/пам'яті або іншими елементами 5083 і містить різні регістрові схеми, пристрої ALU 5085 та керуючу логіку 5090, щоб обчислювати адреси пам'яті і забезпечувати формування послідовності конвеєра для збереження порядку операцій. Деякі операції можуть не зберігати порядок, але блок завантаження/збереження забезпечує функціональні можливості для того, щоб операції з порушеним порядком здавалися програмі виконаними по порядку, як добре відомо в даній області техніки.

[00902] Переважно адреси, що «бачить» прикладна програма, часто називають віртуальними адресами. Віртуальні адреси іноді називають «логічним перенаправляються в розташування фізичної пам'яті за допомогою однієї з ряду технологій динамічної трансляції адреси (DAT), включаючи без обмеження просту префиксацию віртуального адреси величиною зміщення, трансляцію віртуального адреси за допомогою однієї або декількох таблиць трансляції, причому таблиці трансляції переважно містять щонайменше таблицю сегментів і таблицю сторінок окремо або в поєднанні, переважно таблицю сегментів, що містить запис, що вказує на таблицю сторінок. В z/Architecture® надається ієрархія трансляції, що включає першу таблицю області, другу таблицю області, третю таблицю області, таблицю сегментів та необов'язкову таблицю сторінок. Ефективність трансляції адрес часто підвищується за рахунок використання буфера (TLB) асоціативної трансляції, який містить записи, що відображають віртуальний адреса для відповідного розташування фізичної пам'яті. Записи створюються, коли DAT транслює віртуальний адресу з допомогою таблиці трансляції. Подальше використання віртуального адреси може потім використовувати запис швидкодіючого TLB, а не повільний послідовний доступ до таблиці трансляції. Вмістом TLB може керувати ряд алгоритмів заміщення, включаючи алгоритм заміщення найбільш давньою по використанню сторінки (LRU).

[00903]�зберігання спільно використовуваних ресурсів, таких як засоби введення-виведення, кеші, буфер TLB і пам'ять, взаємно заблокованих для забезпечення несуперечності. Зазвичай для підтримки несуперечності кешей використовуються технології «стеження». Щоб полегшувати спільне використання, в середовищі стеження кожна рядок кеша може відзначатися як що знаходиться в будь-якому стані стану спільного використання, стану монопольного використання, зміненого стану, недостовірного стану і т. п.

[00904] Блоки 5054 вводу-виводу (фіг.14) забезпечують процесор засобами підключення до периферійних пристроїв, включаючи, наприклад, накопичувачі на магнітній стрічці, диски, принтери, пристрої відображення та мережі. Блоки введення-виведення часто представляються комп'ютерній програмі драйверами програмного забезпечення. У мэйнфреймах, таких як System z® виробництва IBM®, канальні адаптери та адаптери відкритих систем є блоками вводу-виводу мейнфрейма, які забезпечують зв'язок між операційною системою і периферійними пристроями.

[00905] Вигоду від однієї або декількох особливостей цього винаходу можуть отримувати й інші типи обчислювальних середовищ. Наприклад, середовище може містити емулятор (наприклад, программн�е команд, структуровані функції, такі як трансляція адреси структуровані регістри) або її частину (наприклад, у приватній комп'ютерній системі, що має процесор і пам'ять). У такому середовищі одна або декілька функцій емуляції емулятора можуть здійснювати одну або кілька особливостей цього винаходу, навіть якщо комп'ютер, на якому працює емулятор, може мати архітектуру, яка відрізняється від емульованих потужностей. Наприклад, в режимі емуляції, декодується конкретна емуліруемой команда або операція, і для реалізації окремої команди або операції створюється відповідна функція емуляції.

[00906] эмулирующей середовищі хост-комп'ютер містить, наприклад, пам'ять для зберігання команд і даних; блок вибірки команд для вилучення команд з пам'яті і необов'язково забезпечення локальної буферизації витягнутої команди; блок декодування команд для прийому вилучені команд і визначення типу команд, які були витягнуті; і блок виконання команд для виконання команд. Виконання може включати завантаження даних з пам'яті в регістр; збереження даних назад пам'ять з регістра; або виконання арифметичної або логічної операції деякого типу, як визначається блококами операції реалізуються у вигляді однієї або декількох підпрограм в програмному забезпеченні емулятора.

[00907] конкретніше, мэйнфрейме структуровані машинні команди використовуються програмістами, сьогодні, як правило, програмістами, що працюють на мові С, часто за допомогою програми-компиллятора. Ці команди, що зберігаються в запам'ятовує середовищі, можуть виконуватися у вихідному форматі на сервері z/Architecture® IBM® або в іншому випадку в машинах, що реалізують інші архітектури. Вони можуть емулюватися в існуючих і майбутніх мэйнфрейм-серверах IBM® і на інших машинах IBM® (наприклад, серверах Power Systems і серверах System x®). Вони можуть виконуватись в машинах, що працюють на Linux на широкому ряді машин, які використовують апаратне забезпечення виробництва IBM®, Intel®, AMD™ та інших. Крім виконання на цьому апаратному забезпеченні під z/Architecture®, може використовуватися Linux, так само як і машини, які використовують емуляцію допомогою Hercules, UMX або FSI (Fundamental Software, Inc), коли зазвичай відбувається в режимі емуляції. В режимі емуляції програмне забезпечення емуляції виконується власним процесором, щоб емулювати архітектуру емульованого процесора.

[00908] Власний процесор, щоб виконувати емуляцію емульованого процесора, як правило, виконує програмне забезпечення емуляції, що містить і�і відповідає за отримання та виконання команд архітектури емульованого процесора. Програмне забезпечення емуляції підтримує лічильник емульованих програм, щоб відстежувати кордону команд. Програмне забезпечення емуляції може витягувати одну або кілька емульованих машинних команд за раз і перетворювати одну або кілька емульованих машинних команд у відповідну групу власних машинних команд для виконання власним процесором. Ці перетворені команди можуть кешуватися, так що можна домогтися більш швидкого перетворення. Тим не менш, програмне забезпечення емуляції має підтримувати правила архітектури емульованого процесора, щоб забезпечувати коректну роботу операційних систем і додатків, написаних для емульованого процесора. Крім того, програмне забезпечення емуляції повинно забезпечувати ресурси, визначені архітектурою емульованого процесора, включаючи без обмеження керуючі регістри, регістри загального призначення, регістри з плаваючою точкою, функцію динамічної трансляції адреси, включаючи, наприклад, таблиці сегментів і таблиці сторінок, механізми переривання, механізми перемикання контексту, годинник істинного часу (TOD) і структуровані інтерфейси до підсистем вводу-виводу, щоб операциоЕобственном процесорі, має програмне забезпечення емуляції.

[00909] Конкретна емуліруемой команда декодується, і для виконання функції окремої команди викликається підпрограма. Функція програмного забезпечення емуляції, эмулирующая функцію емульованого процесора, реалізується, наприклад, в підпрограмі або драйвері мовою або яким-небудь іншим способом надання драйвера для конкретного апаратного забезпечення, який буде доступний фахівцям в даній області техніки після розуміння опису кращого варіанту здійснення. Безліч патентів, що належать до емуляції програмного і апаратного забезпечення, включаючи без обмеження патент на винахід №5551013 під назвою «Multiprocessor for Hardware Emulation», виданий Beausoleil та ін.; патент на винахід №6009261 під назвою «Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processor», виданий Scalzi та ін.; патент на винахід №5,574,873 під назвою «Decoding Guest Instruction Directly to Access Emulation Routines that Emulate the Guest Instructions», виданий Davidian та ін; і патент на винахід №6,308,255 під назвою «Symmetrical Multiprocessing Bus and Used for Chipset Coprocessor Support Allowing Non-Native Code to Run in a System», виданий Gorishek та ін.; патент на винахід №6,463,582 під назвою «Dynamic Optimizing Object д назвою «Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions», виданий Eric Traut, кожен з яких ці включається в даний документ за допомогою посилання у всій своїй повноті; і багато інших, демонструють безліч відомих способів одержання емуляції формату команд, структурованого для іншої машини, на цільовій машині, доступних фахівцям в даній області техніки.

[00910] Фіг.16 являє собою зображення прикладу емуліруемой комп'ютерної хост-системи 5092, яка емулює комп'ютерну хост-систему 5000' хост-архітектури. У емуліруемой комп'ютерної хост-системі 5092 хост-процесором (ЦП) 5091 є емульованим хост-процесором (або віртуальним хост-процесором) і містить процесор 5093 емуляції, має іншу власну архітектуру набору команд, ніж у процесора 5091 хост-комп'ютера 5000'. Емуліруемой комп'ютерна хост-система 5092 містить пам'ять 5094, доступну для процесора 5093эмуляции. В ілюстративному варіанті здійснення пам'ять 5094 розділена на частину пам'яті 5096 хост-комп'ютера і частина 5097 програм емуляції. Пам'ять 5096 хост-комп'ютера доступна для програм емульованого хост-комп'ютера 5092 у відповідності з архітектурою хост-комп'ютера. Процесор 5093 емуляції виконує власні команди структурованого набору команд, що мають стру� підпрограм емуляції, і може здійснювати доступ до хост-команді для виконання програми в пам'яті 5096 хост-комп'ютера шляхом застосування однієї або декількох команд, отриманих в підпрограмі послідовності і доступу/декодування, яка може декодувати хост-команду(-и), до якої здійснюється доступ, щоб визначати підпрограму виконання власних команд для емуляції функції хост-команди, до якої здійснюється доступ. Інші кошти, які визначені для архітектури комп'ютерної хост-системи 5000', можуть емулюватися подпрограммами структурованих засобів, включаючи такі засоби, як, наприклад, регістри загального призначення, керуючі регістри, підтримка підсистеми динамічного перетворення адреси введення-виводу і кеш процесора. Підпрограми емуляції також можуть отримувати перевагу від функцій, доступних в процесорі 5093 емуляції (таких як регістри загального призначення і динамічна трансляція віртуальних адрес), щоб покращувати продуктивність підпрограм емуляції. Також може надаватися спеціальне апаратне забезпечення і механізми розвантаження, щоб допомагати процесору 5093 емулювати функції хост-комп'ютера 5000'.

[00911] Використовувана в даному докумеать винахід. Як використовуються в даному документі, форми однини також включають форми множини, якщо інше прямо не випливає з контексту. Також буде зрозуміло, що терміни "містить" та/або "містить", коли використовуються в цьому описі, визначають наявність зазначених ознак, чисел, етапів, операцій, елементів і/або компонентів, але не виключають наявності або додавання одного або декількох інших ознак, чисел, кроків, операцій, елементів, компонентів та/або їх груп.

[00912] мається на Увазі, що відповідні структури, матеріали, дії та еквіваленти всіх елементів «засіб або етап плюс функція» у наданій нижче формулі винаходу, якщо такі є, включають будь-яку структуру, матеріал або дія для виконання функції в поєднанні з іншими заявленими елементами, як заявлено конкретним чином. Опис цього винаходу було представлено з метою демонстрації і опису, та не мається на увазі повним або обмеженим винаходом у формі розкритої. Фахівцям звичайної кваліфікації в даній області техніки будуть очевидні численні модифікації і зміни, що не виходять за межі обсягу і духу винаходу. Варіант здійснення був вибір� фахівцям в даній області техніки зрозуміти винахід для різних варіантів здійснення з різними змінами, які підходять для конкретного цільового застосування.

1. Спосіб виконання команди запуску субканала в обчислювальному середовищі, що містить основне запам'ятовуючий пристрій і твердотільне запам'ятовуючий пристрій, при цьому зазначений спосіб включає:
з урахуванням визначення того, що субканал, ідентифікований командою запуску субканала, є субканалом переміщення асинхронних даних (ADM), виконання:
отримання блоку запиту операції з основного пристрою, при цьому блок запиту операції містить адресу блоку операції;
отримання блоку операції з основного пристрою на підставі адреси блоку операції, при цьому блок операції складається з блоку запиту, блоку відповіді і одного або більше блоків (MSB) специфікації першого переміщення, причому блок запиту містить поле лічильника MSB, що містить значення, яке вказує кількість одного або більше блоків MSB, які блок містить операції і на які посилається, причому блок відповіді налаштований містити умови виняткових ситуацій, причому кожен блок специфікації переміщення налаштований містити поле коду операції, поле лічильника блоків, поле адреси основного пристрою для адр�іі твердотільного накопичувача, поле розміру блоку і поле прапорів;
отримання блоку специфікації переміщення з одного або більше блоків специфікації переміщення;
визначення на підставі коду операції в отриманому блоці специфікації переміщення операції, яку отриманий блок специфікації переміщення налаштований виконувати на блоках твердотілого накопичувача;
на підставі блоку специфікації переміщення запуску операції на блоках твердотільного накопичувача, пов'язаних з адресою твердотільного накопичувача поля адреси твердотілого накопичувача;
з урахуванням, по меншою мірою, запуску операції і виявлення умови виняткової ситуації збереження інформації в блоці відповіді, причому блок відповіді містить поле прапорів виняткової ситуації, поле достовірності поля, поле невірного адреси MSB, поле невірного адреси непрямого адресного слова даних (AIDAW), поле невірного адреси основного пристрою і поле невірного адреси твердотільного накопичувача, при цьому інформація стосується однієї або більше виняткових ситуацій, що є результатом операції, причому одна або більше виняткових ситуацій відносяться мен�ойства з поля адреси основного пристрою; твердотільний запам'ятовуючого пристрою, пов'язаній з адресою твердотільного накопичувача з поля адреси твердотілого накопичувача; або отриманого блоку специфікації переміщення, причому інформація містить ознаку виняткової ситуації і додаткову інформацію, що відноситься до виключної ситуації, при цьому додаткова інформація визначає одну або більше виняткових ситуацій адресації.

2. Спосіб за п. 1, який відрізняється тим, що:
з урахуванням того, що поле достовірності поля містить перше значення, блок відповіді вказує, що невірна адреса MSB збережений;
з урахуванням того, що поле достовірності поля містить друге значення, блок відповіді вказує, що невірна адреса основного пристрою збережений;
з урахуванням того, що поле достовірності поля містить третє значення, блок відповіді вказує, що невірна адреса твердотільного накопичувача збережений.

3. Спосіб за п. 1, який відрізняється тим, що:
з урахуванням того, що поле прапорів виняткової ситуації містить перше значення, блок відповіді вказує на перевірку програми;
з урахуванням того, що поле прапорів виняткової ситуації містить друге значення, блок отвеѸсключительной ситуації містить третє значення, блок відповіді вказує на невиправну помилку даних твердотільного накопичувача.

4. Спосіб за п. 1, який відрізняється тим, що блок відповіді додатково містить код уточнення виняткової ситуації, що надає додаткову інформацію щодо виняткової ситуації.

5. Спосіб за п. 4, який відрізняється тим, що:
з урахуванням того, що код уточнення виняткової ситуації містить перше значення, блок відповіді вказує на помилку лічильника MSB;
з урахуванням того, що код уточнення виняткової ситуації містить друге значення, блок відповіді вказує на помилку розміру блоку;
з урахуванням того, що код уточнення виняткової ситуації містить третє значення, блок відповіді вказує на помилку лічильника блоків;
з урахуванням того, що код уточнення виняткової ситуації містить четверте значення, блок відповіді вказує на помилку специфікації адреси основного пристрою;
з урахуванням того, що код уточнення виняткової ситуації містить п'яте значення, блок відповіді вказує на помилку специфікації адреси твердотілого накопичувача;
з урахуванням того, що код уточнення виняткової ситуації містить шосте значення, блок відповіді указ�ения виняткової ситуації містить сьоме значення, блок відповіді вказує на виняткову ситуацію адресації твердотільного накопичувача.

6. Спосіб за п. 4, який відрізняється тим, що:
з урахуванням того, що код уточнення виняткової ситуації містить восьме значення, блок відповіді вказує на помилку основного пристрою;
з урахуванням того, що код уточнення виняткової ситуації містить дев'яте значення, блок відповіді вказує на помилку списку MSB;
з урахуванням того, що код уточнення виняткової ситуації містить десяте значення, блок відповіді вказує на помилку переходу MSB;
з урахуванням того, що код уточнення виняткової ситуації містить одинадцяте значення, блок відповіді вказує на помилку списку AIDAW;
з урахуванням того, що код уточнення виняткової ситуації містить дванадцяте значення, блок відповіді вказує на помилку переходу AIDAW.

7. Спосіб за п. 4, який відрізняється тим, що з урахуванням того, що код уточнення виняткової ситуації містить тринадцяте значення, блок відповіді вказує на одну або більше помилок звільнення.

8. Комп'ютерна система для виконання команди запуску субканала в обчислювальному середовищі, що містить основне запам'ятовуючий пристрій і твердотільне запам'ятовуючий усичем комп'ютерна система налаштована для здійснення способу по кожному з попередніх пунктів.



 

Схожі патенти:

Полегшення операцій введення-виведення в режимі передачі між канальної підсистемою і пристроями введення-виведення

Група винаходів відноситься до обробці операцій введення-виведення. Технічний результат полягає в спрощенні обробки зазначених операцій. У способі генерують в канальної підсистемі комп'ютерної хост-системи щонайменше одне командне повідомлення, що містить одне або кілька командних слів пристроїв (КСУ), при цьому щонайменше одне КСУ з одного або декількох КСУ містить індикатор придушення довжини (ІПД), сконфігурований на те, щоб вказувати пристрою управління, слід продовжувати здійснення операції вводу-виводу при виявленні пристроєм управління невідповідності рахунку даних необхідного обсягу даних; прийом значення неправильної довжини (НД), при цьому значенням неправильної довжини є перше значення НД, якщо значенням ІПД є перше значення ІПД, а рахунок даних не відповідає обсягу необхідних даних; і у відповідь на прийом значення НД від пристрою управління - збереження індикатора НД в слові стану підканали. 3 н. і 22 з.п. ф-ли, 23 іл.

Способи і системи обміну даними

Винахід відноситься до галузі обміну даними між генератором і споживачем

Пристрій і спосіб комп'ютерного управління з мереж віддаленого доступу

Винахід відноситься до комп'ютерної техніки і може бути використано в якості обладнання віддаленого доступу до мереж передачі даних з метою управління ПК клієнта для обслуговування і ремонту ПК клієнта

Блок (варіанти) і спосіб підключення для обміну інформацією між комп'ютером і польовим приладом

Винахід відноситься до способу і пристроїв обміну інформацією з інтелектуальними польовими приладами, використовуваними в системах вимірювання та контролю процесів

Архітектура програмного забезпечення usb в ігровій машині

Винахід відноситься до системи ігрових пристроїв

Система для контролю конфігурації з'єднання портів даних

Винахід відноситься до комп'ютерної техніки, зокрема до пристроїв з'єднання комп'ютерних зовнішніх пристроїв

Виконавча програма для регенерації допоміжної програми резервного копіювання

Винахід відноситься до обчислювальної техніки

Селекторний канал

Винахід відноситься до обчислювальній техніці, зокрема, до селекторною каналах для введення-виведення інформації в ЕОМ
Up!