stringtranslate.com

Подсчет ключевых данных

Данные подсчета ключей ( CKD ) — это формат записи данных на устройстве хранения данных с прямым доступом (DASD) [a], представленный в 1964 году компанией IBM с ее IBM System/360 и до сих пор эмулируемый на мэйнфреймах IBM. Это самоопределяемый формат, в котором каждая запись данных представлена ​​областью подсчета, которая идентифицирует запись и предоставляет количество байтов в дополнительной области ключей и дополнительной области данных. Это отличается от устройств, использующих фиксированный размер сектора или отдельную дорожку формата.

Данные подсчета ключей (CKD) также относятся к набору команд канала (совместно именуемых Channel Command Words, CCW), которые генерируются мэйнфреймом IBM для выполнения подсистемой DASD, использующей формат записи CKD. [1] Первоначальный набор CKD CCW, представленный в 1964 году, был существенно улучшен и усовершенствован в 1990-х годах.

Формат трека CKD

Блок-схема формата дорожки данных подсчета ключей, используемого на мэйнфреймах IBM, начиная с поставки S/360 в 1965 году

Формат дорожки CKD предназначен для того, чтобы разрешить варьировать длину полей данных; каждый записанный блок данных на дорожке DASD, называемый записью, имеет связанное с ним поле счетчика, которое идентифицирует запись и указывает размер ключа, если он используется (определяется пользователем до 255 байт), а также размер области данных, если он используется. [2] [b] Поле счетчика содержит идентификацию записи [c] в формате «цилиндр-головка-запись», длину ключа и длину данных. Ключ может быть опущен или состоять из строки символов.

"Начало дорожки сигнализируется при обнаружении индексного маркера (индексной точки). ... Маркер автоматически распознается специальным сенсорным устройством". [3] : 5  После индексного маркера идет домашний адрес , который указывает местоположение этой дорожки на диске и содержит другую внутреннюю для блока управления информацию управления. За домашним адресом следует промежуток фиксированной длины. Далее каждая дорожка содержит запись 0 (R0), запись дескриптора дорожки, которая "предназначена для того, чтобы позволить всему содержимому дорожки быть перемещенным на альтернативные дорожки, если часть основной дорожки становится дефектной". [3] : 7  После R0 идут записи данных, разделенные пробелами. [3] : 9 

Из-за пробелов и другой информации записанное пространство больше, чем требуется только для данных счетчика, ключевых данных или пользовательских данных. IBM предоставляет «справочную карту» для каждого устройства, которую можно использовать для вычисления количества записей на дорожку для различных размеров полей ключей и данных, а также для оптимизации емкости устройства. [4] Позже были написаны программы для выполнения этих вычислений. Поскольку записи обычно не разделяются между дорожками, указание неправильного размера записи создает проблемы.

Чаще всего ключ опускается, и запись располагается последовательно или путем прямой адресации «цилиндр-головка-запись». Если он присутствует, ключом являются любые данные, используемые для поиска записи, обычно с использованием Search Key Equal или Search Key High или Equal CCW. Ключ (и, следовательно, запись) можно найти с помощью аппаратных команд. [5] [ нужна страница ] С момента появления IBM System/360 в 1964 году почти все большие и средние системные DASD IBM использовали формат записи данных count key. [6] [ нужна страница ]

Преимущества формата записи данных подсчета ключей:

Снижение цен на процессоры и память, а также более высокая скорость устройств и интерфейсов в некоторой степени свели на нет преимущества CKD, и она сохраняется только потому, что флагманская операционная система IBM z/OS не поддерживает секторно-ориентированные интерфейсы.

Первоначально записи CKD имели однозначное соответствие физической дорожке устройства DASD; однако со временем записи становились все более виртуализированными, так что в современных мэйнфреймах IBM больше нет прямого соответствия между идентификатором записи CKD и физической компоновкой дорожки.

Подсистемы CKD DASD от IBM

Упаковка

Операции ввода-вывода IBM S/360 и S/370 для CKD DASD, показывающие канал, блок управления хранилищем и устройство DASD

Первоначально существовала высокая степень соответствия между логическим представлением доступа DASD и фактическим оборудованием, как показано на иллюстрации. Трехзначные метки обычно прикреплялись [d] для идентификации адреса канала, блока управления и устройства.

В системах начального уровня Channel и Control Unit часто были физически интегрированы, но оставались логически разделенными. Новая стратегия IBM [7], начавшаяся с 3830 Model 2 в 1972 году, физически разделила SCU на два физических объекта, директора и контроллера, сохраняя их логически одинаковыми. Контроллер обрабатывает форматирование дорожек CKD и упакован с первым диском или дисками в цепочке дисков и имеет номер модели с буквой «A» в качестве префикса, «A-Unit» (или «A-Box»), как в 3350 Model A2, содержащей контроллер и два DASD. DASD без контроллера, то есть B-Units, имеют префикс «B» в своем номере модели.

Подсистемы CKD [e] и директора предлагались IBM и совместимыми с plug-in конкурентами по крайней мере до 1996 года (2301 по 3390 Model 9); [8] в общей сложности 22 уникальных [f] DASD, предлагаемых IBM, сконфигурированных по крайней мере в 35 различных конфигурациях подсистем . Совместимые с plug-in предлагали многие из тех же DASD, включая 4 подсистемы CKD с уникальными DASD. [g]

Программирование

Доступ к определенным классам устройств ввода-вывода мэйнфреймом IBM находится под контролем командных слов канала (CCW), некоторые из которых являются общими (например, No Operation), но многие из которых специфичны для типа устройства ввода-вывода (например, Read Backwards для ленточного накопителя). Группа CCW, определенная IBM для DASD, делится на пять широких категорий:

CKD CCW — это определенный набор CCW, используемых для доступа к подсистемам CKD DASD. Это отличается от CCW с фиксированной блочной архитектурой (FBA), которые используются для доступа к подсистемам FBA DASD.

CKD DASD адресуются так же, как и другие устройства ввода/вывода; для System/360 и System/370 DASD адресуются напрямую, через каналы и соответствующие блоки управления [9] [10] [11] (SCU или Storage Control Unit), изначально используя три шестнадцатеричные цифры, одну для канала и две для блока управления и устройства, обеспечивая адресацию до 16 каналов, до 256 механизмов доступа DASD/канал и 4096 адресов DASD в общей сложности. Современные мэйнфреймы IBM используют четыре шестнадцатеричные цифры в качестве произвольного номера подканала в подмножестве подсистемы канала, определение которого включает фактические каналы, блоки управления и устройства, обеспечивая адресацию до 65 536 DASD на подмножество подсистемы канала. На практике физические и конструктивные ограничения канала и контроллеров ограничивали максимальное количество подключенных DASD, подключаемых к системе, меньшим количеством, чем количество, которое могло быть адресовано.

Начальный набор функций CKD

Первоначальный набор функций, предоставленный IBM в 1964 году с введением формата дорожек CKD и связанных с ним CCW, включал: .

Также был предусмотрен набор функций сканирования, но он не был продолжен в будущих подсистемах CKD после 2314.

Сорок один CCW реализовал набор функций:

Примечания:

O = дополнительная функция
S = стандартная функция
MT = многодорожечный: при поддержке CCW продолжит работу со следующими головками в последовательности до конца цилиндра
‡ = TIC (передача по каналу) и другие стандартные команды не показаны.
† = код тот же, что и у MT Off, за исключением указанного
1. Функция сканирования файлов (9 CCW) доступна только на 2841 для 2302, 2311 и 2321; она не была доступна на последующих контроллерах DASD для DASD после 2314.
2. Count — количество байтов в аргументе поиска, включая байты маски.

Первоначально CCW выполнялись двумя типами SCU, подключенными к высокоскоростным селекторным каналам системы . SCU 2820 [16] управлял барабаном 2301, а SCU 2841 [12] управлял комбинациями дискового хранилища 2302 , дискового накопителя 2311 , ячейки данных 2321 и/или барабанного хранилища 7320. IBM быстро заменила 7320 на более быстрый и большой 2303.

Впоследствии набор функций был реализован в семействе устройств управления хранением 2314 и интегрированном дополнении System 370 Model 25 .

Следующий пример программы канала [18] считывает запись с диска, идентифицированную полем Key. Дорожка, содержащая запись и требуемое значение ключа, известна. SCU будет искать дорожку, чтобы найти запрошенную запись. В этом примере <> указывает, что программа канала содержит адрес хранения указанного поля.

 SEEK <номер цилиндра/головки> ПОИСК КЛЮЧА РАВНО <значение ключа> TIC *-8 Вернуться к поиску, если не равно ЧИТАТЬ ДАННЫЕ <буфер>
TIC (передача в канале) заставит программу канала перейти к команде SEARCH до тех пор, пока не будет обнаружена запись с соответствующим ключом (или конец дорожки). Когда будет найдена запись с соответствующим ключом, SCU включит модификатор состояния в статус канала, заставив канал пропустить TIC CCW; таким образом, программа канала не будет переходить, и канал выполнит команду READ.

Улучшения канала блочного мультиплексора

Канал блочного мультиплексора был представлен в начале 1971 года на некоторых высокопроизводительных системах System/360 вместе с блоком управления 2835 и связанным с ним DASD 2305, [19] Этот канал затем был стандартным для IBM System/370 и последующих мэйнфреймов; в отличие от предыдущего канала селектора он предлагал улучшения производительности для высокоскоростных устройств, таких как DASD, в том числе:

Множественный запрос

Разрешил нескольким канальным программам, [j] быть одновременно активными в объекте [19] в отличие от только одной с каналом селектора. Фактическое количество предоставляемых подканалов зависит от модели системы и ее конфигурации. [20] Иногда описываемое как отключенная цепочка команд, блок управления может отключаться в разное время во время связанного набора CCW, например, отключение для Seek CCW, освобождая канал для другого подканала.

Повторная попытка команды

Канал и управление хранилищем при определенных условиях могут взаимодействовать, вызывая повторную попытку CCW без прерывания ввода-вывода. [19] Эта процедура инициируется управлением хранилищем и используется для восстановления после исправимых ошибок.

Определение вращательного положения

Датчик положения вращения (RPS) был реализован с двумя новыми CCW, SET SECTOR и READ SECTOR позволили каналу задержать цепочку команд до тех пор, пока диск не повернется в указанное угловое положение дорожки. RPS допускает отключение канала в течение большей части периода задержки вращения и, таким образом, способствует повышению использования канала. Блок управления реализует RPS, разделяя каждую дорожку на равные угловые сегменты. [19]

Пример программы канала

Следующий пример программы канала отформатирует дорожку с R0 и тремя записями CKD. [19]

 SEEK <номер цилиндра/головки> УСТАНОВИТЬ МАСКУ ФАЙЛА <разрешить операции записи> УСТАНОВИТЬ СЕКТОР <номер сектора=0> WRITE R0 <цилиндр/головка/R0, длина ключа=0, длина данных=6> WRITE CKD <цилиндр/головка/R1, длина ключа, длина данных> WRITE CKD <цилиндр/головка/R2, длина ключа, длина данных> WRITE CKD <цилиндр/головка/R3, длина ключа, длина данных> 

В этом примере запись 0 соответствует стандартам программирования IBM. С каналом блочного мультиплексора канал свободен в то время, когда DASD ищет, и снова, пока диск вращается к началу дорожки. Канал селектора будет занят в течение всего времени выполнения этого примера программы.

Пропуск дефекта

Пропуск дефектов позволяет записывать данные до и после одного или нескольких дефектов поверхности [k], что позволяет использовать всю дорожку, за исключением той части, которая имеет дефект. Это также исключает время, которое раньше требовалось для поиска альтернативной дорожки. [21] Только ограниченное количество дефектов можно было пропустить, поэтому альтернативные дорожки оставались поддерживаемыми для тех дорожек с избыточными дефектами.

Пропуск дефектов был введен в 1974 году с 3340, подключенным через 3830 Model 2 Storage Control Unit [21] или интегрированными насадками на небольших системах. Пропуск дефектов был по сути только заводской функцией до 1981 года, когда были выпущены CCW для управления вместе с соответствующими утилитами. [22]

Динамические пути

Впервые представленная с 3380 DASD на 3880 Storage Control Unit [23] в 1981 году эта функция была включена в более поздние подсистемы CKD DASD. Функция динамического выбора пути управляет работой двух контроллеров, включая одновременную передачу данных по двум путям. При поддержке операционной системы каждый контроллер может служить альтернативным путем в случае недоступности другого контроллера. [24]

Три дополнительные команды: Set Path Group ID, Sense Path Group ID и Suspend Multipath Reconnection используются для поддержки подключения моделей 3380 с двумя контроллерами во главе цепочки. [23]

Команда Set Path Group ID с функцией динамического выбора пути (DPS) обеспечивает большую гибкость в операциях на зарезервированных устройствах. После того, как группа путей для устройства установлена, к нему можно получить доступ по любому пути, который является членом группы, в которой оно зарезервировано. Кроме того, в системах 370-XA, которые устанавливают бит многопутевого режима в байте управления функцией (байт 0) на 1, блочные мультиплексные повторные соединения будут происходить на первом доступном пути, который является членом группы, по которой была инициирована программа канала (независимо от состояния резервирования устройства). [23]

Если контроллер, указанный в адресе ввода-вывода, занят или отключен, динамический выбор пути позволяет установить альтернативный путь к устройству через другой директор хранилища и другой контроллер в модели AA. [24]

Несинхронная работа

До появления в 1981 году директора 3880 доступ к записям CKD осуществлялся синхронно, все действия требовали завершения одного CCW и начала следующего в промежутках между полями CKD. [13] Размер промежутка накладывал ограничения на длину кабеля, но обеспечивал очень высокую производительность, поскольку сложные цепочки CCW могли выполняться подсистемой в реальном времени без использования памяти ЦП или циклов.

Несинхронная работа, обеспечиваемая набором CCW Extended CKD («ECKD»), устраняет ограничение по времени разрыва. [13] Пять дополнительных CCW ECKD — это Define Extent, Locate Record, Write Update Data, Write Update Key and Data и Write CKD Next Track. [23]

При несинхронной работе передача данных между каналом и управлением хранилищем не синхронизирована с передачей данных между управлением хранилищем и устройством. Программы канала могут быть выполнены таким образом, что действия канала и управления хранилищем, необходимые для завершения выполнения одной команды и перехода к следующей, не должны происходить во время межзаписного промежутка между двумя соседними полями. Промежуточный буфер в управлении хранилищем позволяет выполнять независимые операции между каналом и устройством. Главным преимуществом ECKD являются гораздо более длинные кабели; в зависимости от приложения это может повысить производительность. [13]

ECKD CCW поддерживаются во всех последующих подсистемах CKD.

Этот пример программы несинхронного канала считывает записи R1 и R2 с дорожки X'0E' в цилиндре X'007F'. Обе записи имеют длину ключа 8 и длину данных X'64' (100 10 ) байт. [23]

 Определить экстент <extent= X'007F 0000' через трек X'0081 000E'> Найти запись <цилиндр = X'007F', головка = X'000E' Считать ключ и данные <запись ключа = X'001038'> Чтение данных <record = X'001108'>

Кэширование

Кэширование , впервые представленное в подсистемах DASD CKD компаниями Memorex [25] (1978) и StorageTek [l] (1981), впоследствии было представлено в конце 1981 года компанией IBM в модели 3880 Model 13 для моделей 3380 с динамическим выбором пути. [m]

Кэш динамически управляется алгоритмом; данные с высокой активностью доступны из высокопроизводительного кэша, а данные с низкой активностью доступны из менее дорогого хранилища DASD. Большая память в Director, кэш, разделена на слоты дорожек, которые хранят данные из 3380 дорожек. Меньшая область представляет собой каталог, содержащий записи, которые позволяют размещать данные в кэше. [26]

Кэши также были предусмотрены для введенных впоследствии элементов управления хранением.

Другие расширения

Со временем ряд CCW управления путями, диагностики и/или восстановления ошибок были реализованы на одном или нескольких элементах управления хранением. Например:

За пределами системы/370

Снижение цен на процессоры и память, а также более высокая скорость устройств и интерфейсов в некоторой степени свели на нет преимущества CKD, однако IBM продолжает поддерживать его по сей день, поскольку ее флагманская операционная система z/OS продолжает использовать CKD CCW для многих функций.

Первоначально записи CKD имели однозначное соответствие физическому треку устройства DASD; однако со временем записи становились все более и более виртуализированными, так что в современном мэйнфрейме IBM больше нет прямого соответствия между идентификатором записи CKD и физической компоновкой трека. Мэйнфрейм IBM создает образы треков CKD в памяти и выполняет программы каналов ECKD и CKD по отношению к образу. Для соединения собственных дисков с фиксированным размером блока и формата записи ECKD/CKD переменной длины образы треков CKD в памяти отображаются на ряд фиксированных блоков, подходящих для передачи в дисковую подсистему FBA и из нее. [27]

Из 83 CKD CCW, реализованных для каналов System/360 и System/370, 56 эмулируются в System/390 и более поздних системах. [27]

Смотрите также

Примечания

  1. ^ Чаще всего это жесткий диск.
  2. ^ длина данных 0 указывает на EOF
  3. ^ Поскольку записи имеют переменную длину и поскольку номер записи на дорожке не обязательно должен быть уникальным, номер записи не соответствует угловому смещению.
  4. ^ В некоторых ранних DASD метка находилась на штекере, что позволяло перемещать адрес между DASD
  5. ^ Это комбинация SCU и одного или нескольких DASD или A-Unit с любыми присоединенными B-Unit.
  6. ^ Уникальная комбинация количества дорожек и максимальной длины дорожки. При таком определении DASD двойной плотности считается уникальным DASD.
  7. ^ двойная плотность 2314, тройная плотность 3330, двойная плотность 3350 и твердотельный диск
  8. ^ Технически пишет
  9. Модель 2302 заменила модель 7230. Datamation, март 1966 г., стр. 81.
  10. ^ В случае 2305, до 8 канальных программ для одного и того же диска и 16 на одном SCU
  11. ^ Количество пропускаемых дефектов зависит от модели DASD.
  12. ^ STK 8890 CyberCache для совместимости с STK 3350
  13. ^ Одновременно был анонсирован 3880-11, использующий свой кэш в страничном режиме 3350s в качестве страничных устройств

Ссылки

  1. ^ IBM 3990 Storage Control Introduction – 6th Ed . IBM. Февраль 1994. GA32-0098-05.
  2. ^ "Count key data". IBM Knowledge Center . IBM . Получено 6 августа 2014 г. .
  3. ^ abc IBM Corporation (сентябрь 1969 г.). IBM System/360 Component Descriptions 2314 Direct Access Storage Facility и 2844 Auxiliary Storage Control (PDF) . Архивировано из оригинала (PDF) 30 марта 2020 г. . Получено 5 декабря 2019 г. .
  4. ^ IBM Corporation (ноябрь 1973 г.). Дисковые накопители серии 3330 3333 Модели 1 и 11 3330 Модели 1, 2 и 11 Справочное руководство (PDF) . Получено 5 декабря 2019 г. .
  5. ^ Хоутекамер, Гилберт Э.; Артис, Х. Пэт (1993). Подсистемы ввода-вывода MVS: Управление конфигурацией и анализ производительности . Нью-Йорк: McGraw-Hill. ISBN 978-0-07-002553-0. OCLC  26096983.
  6. ^ abc "Синхронные операции DASD". Введение в несинхронные подсистемы хранения с прямым доступом . International Business Machines Corporation. Январь 1990 г. GC46–4519–0.
  7. ^ «Историческое повествование о 1970-х годах, США против IBM, Приложение 14971». Июль 1980 г. стр. 1051.
  8. ^ "Прямой доступ к хранилищу * 22,7 ГБ, 12 приводов". Архивировано из оригинала 22 декабря 2015 г.
  9. ^ Принципы работы IBM System/360 (PDF) . IBM. Операции ввода-вывода. GA22-6821-7.
  10. ^ IBM System/370 Principles of Operation (PDF) . IBM. Операции ввода-вывода. GA22-7000-0.
  11. ^ "Глава 13. Обзор ввода-вывода". IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) . IBM. SA22-7000-0.
  12. ^ abcdefg Описания компонентов IBM System/360 - 2841 и связанные с ними DASD (PDF) . Восьмое издание. IBM. Декабрь 1969 г. GA26-5988-7. Архивировано (PDF) из оригинала 14.10.2011 . Получено 07.12.2015 .
  13. ^ abcd Введение в несинхронные подсистемы хранения данных с прямым доступом . IBM. Январь 1990 г. GC26-4519-0.
  14. ^ J. Buzen (июнь 1975 г.). «Архитектура подсистемы ввода-вывода». Труды IEEE . 63 (6): 871. doi :10.1109/PROC.1975.9852. S2CID  68000.
  15. ^ Получено из справочной карты IBM System/360 (зеленая), GX20-1703-9
  16. ^ ab IBM System/360 Component Descriptions-2820 Storage Control And 2301 Drum Storage (PDF) . Архивировано (PDF) из оригинала 2016-03-04 . Получено 2015-08-28 .
  17. ^ Описания компонентов IBM System/360 - 2841 и связанные с ними DASD (PDF) . Первое издание. IBM. A26-5988-0.
  18. ^ ab IBM System/360 Component Descriptions 2314 Direct Access Storage Facility и 2844 Auxiliary Storage Control (PDF) (седьмое издание), ноябрь 1971 г., GA26-3599-6
  19. ^ abcde Справочное руководство по IBM 2835 Storage Control и IBM 2305 Fixed Head Storage Module (PDF) . Октябрь 1983 г. GA26-1589-5. Архивировано (PDF) из оригинала 2016-03-04 . Получено 2015-12-21 .
  20. ^ J. Kettner (ноябрь 2007 г.). "Input/Output - A White Paper" (PDF) . IBM. Архивировано из оригинала (PDF) 4 марта 2016 г.
  21. ^ ab Справочное руководство для модели 3830 1. Март 1974 г.
  22. ^ «Средства поддержки устройств, руководство пользователя и справочник. Выпуск 4.0» (PDF) . Май 1981 г. стр. vi, 46, 61, 87.
  23. ^ abcde IBM 3880 Storage Control Models 1, 2, 3 и 4. Описание руководства. IBM. Сентябрь 1987 г. Раздел 4. GA26-1661-9.
  24. ^ ab IBM 3380 Direct Access Storage Описание и руководство пользователя (PDF) . IBM. Декабрь 1981 г. GA26-1664-1.
  25. ^ «Теперь Memorex заполняет пробел в производительности вашей системы» (PDF) . Datamation . Август 1978 г., стр. 85–86.
  26. ^ Введение в IBM 3880 Storage Control Model 13 (PDF) . IBM. Сентябрь 1981 г. GA32-0062-0.
  27. ^ ab IBM S/390 Multiprise 3000 Enterprise Server, Внутренняя дисковая подсистема: Справочное руководство. IBM. Ноябрь 1999 г. Архивировано из оригинала 4 марта 2016 г.

Дальнейшее чтение