Средство для установки ключа без перевода в пассивное состояние

Иллюстрации

Показать все

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

Реферат

Предпосылки создания изобретения

Настоящее изобретение относится в целом к облегчению обработки в вычислительной среде, более точно, к облегчению обработки, связанной с установкой ключей хранения, используемых в вычислительной среде.

Ключи хранения применяются в вычислительных средах, таких как мультипроцессорные системы на основе z/Architecture®, предлагаемые International Business Machines Corporation (Армонк, штат Нью-Йорк, США), для облегчения обработки в вычислительной среде. В качестве одного из примеров, ключ хранения связан с каждым блоком физической памяти (также именуемым кадром). Такая привязка ключа обеспечивает надежный механизм, который используется для разделения блоков запоминающего устройства, за счет чего программы, выполняемые с использованием одного ключа, ошибочно не сохраняются в блоках или под управлением средства управления в ключе не выбираются из блоков, имеющих отличающийся ключ. Ключ хранения также может указывать операционной системе, обращение к каким блокам и изменение каких блоков было осуществлено, что позволяет операционной системе определять, какие блоки может требоваться записать во вспомогательное запоминающее устройство.

Ключ хранения может устанавливаться (обновляться) командами, выполняемыми в вычислительной среде. Например, для манипуляций ключом хранения, доступным для множества процессоров в вычислительной среде, в системе z/Architecture® используются команды установки расширенного ключа хранения (Set Storage Key Extended) и выполнения функции управления кадрами (Perform Frame Management Function).

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

Краткое изложение сущности изобретения

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

Для преодоления недостатков известного уровня техники и достижения дополнительных преимуществ предложен способ обеспечения обработки в вычислительной среде, заявленный в пункте 1 формулы изобретения.

Также предложена мультипроцессорная система, содержащая средства, приспособленные для осуществления всех шагов заявленного способа.

Дополнительные признаки и преимущества настоящего изобретения реализуются за счет предложенной в нем методики. В изобретении подробно описаны другие его варианты осуществления и особенности, считающиеся входящими в заявленное изобретение.

Краткое описание чертежей

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

на фиг. 1А проиллюстрирован один из вариантов осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

на фиг. 1Б - один из примеров процессора показанной на фиг. 1А вычислительной среды согласно одной из особенностей настоящего изобретения,

на фиг. 1В - один из примеров логически разделенной системы, в которой может содержаться и использоваться одна или несколько особенностей настоящего изобретения,

на фиг. 2 - один из вариантов осуществления дополнительных подробностей показанного на фиг. 1А или 1Б контроллера согласно одной из особенностей настоящего изобретения,

на фиг. 3 - один из вариантов осуществления хост-компьютера, способного эмулировать другой компьютер, согласно одной из особенностей настоящего изобретения,

на фиг. 4 - один из примеров различных компонентов ключа хранения согласно одной из особенностей настоящего изобретения,

на фиг. 5 - один из наглядных примеров влияния операции перевода в пассивное состояние на процессор вычислительной среды,

на фиг. 6 - один из наглядных примеров влияния манипуляции ключом хранения без перевода в пассивное состояние какого-либо из процессоров согласно одной из особенностей настоящего изобретения,

на фиг. 7А - один из вариантов осуществления одного из форматов команды установки расширенного ключа хранения (SSKE), используемой согласно одной из особенностей настоящего изобретения,

на фиг. 7Б - один из вариантов осуществления полей, связанных с операндом М3 показанной на фиг. 7А команды SSKE согласно одной из особенностей настоящего изобретения,

на фиг. 8 - один из вариантов осуществления логики, связанной с командой SSKE без перевода в пассивное состояние, согласно одной из особенностей настоящего изобретения,

на фиг. 9А-9Б - один из вариантов осуществления логики управления обработкой, зависящей от обновления ключа хранения без перевода в пассивное состояние, согласно одной из особенностей настоящего изобретения,

на фиг. 10 - один из вариантов осуществления компьютерного программного продукта, содержащего одну или несколько особенностей настоящего изобретения,

на фиг. 11 - один из вариантов осуществления хост-компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

на фиг. 12 - один из дополнительных примеров компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

на фиг. 13 - другой пример компьютерной системы, содержащей компьютерную сеть, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

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

на фиг.15А - один из вариантов осуществления блока выполнения показанной на фиг.14 компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

на фиг.15Б - один из вариантов осуществления блока перехода показанной на фиг.14 компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения,

на фиг.15В - один из вариантов осуществления блока загрузки/сохранения показанной на фиг.14 компьютерной системы, в которой содержится и используется одна или несколько особенностей настоящего изобретения, и

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

Подробное описание

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

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

В одном из вариантов осуществления средство без перевода в пассивное состояние реализовано для команд, которые ранее требовали перевода в пассивное состояние. Например, команды установки расширенного ключа хранения (SSKE) и выполнения функции управления кадрами (PFMF), предлагаемые International Business Machines Corporation, традиционно требовали перевода в пассивное состояние для обновления ключа хранения. Тем не менее, согласно одной из особенностей настоящего изобретения эти и, возможно, другие команды могут быть избирательно реализованы без перевода в пассивное состояние. Согласно одной из особенностей настоящего изобретения каждая команда может выполняться в обоих режимах обработки (с переводом в пассивное состояние и без перевода в пассивное состояние), при этом конкретный режим для использования для заданного выполнения выбирается путем установки индикатора в команде.

Далее со ссылкой на фиг.1А описан один из вариантов осуществления вычислительной среды, в которой содержится и используется одна или несколько особенностей настоящего изобретения. В качестве одного из примеров, вычислительной средой является мультипроцессорная система, такая как симметричная мультипроцессорная система (SMP) на основе z/Architecture®, предлагаемая International Business Machines Corporation (Армонк, штат Нью-Йорк, США). В качестве одного из частных примеров, системой является сервер System z®, предлагаемый International Business Machines Corporation. Система z/Architecture® описана в публикации IBM №SA22-7832-07 под названием "z/Architecture-Principles of Operation" (февраль 2009 г.) IBM®, z/Architecture® и System z® являются зарегистрированными товарными знаками International Business Machines Corporation (Армонк, штат Нью-Йорк, США). Другие названия, используемые в заявке, могут являться зарегистрированными товарными знаками, товарными знаками или названиями продуктов International Business Machines Corporation или других компаний.

В качестве одного из примеров в мультипроцессорную систему 100 входит множество процессоров 110, контроллер 120 памяти и центральная память 130. Процессоры 110 связаны друг с другом и с центральной памятью 130 посредством одной или нескольких шин 115 и контроллера 120 памяти. Как показано на фиг.1Б, каждый процессор содержит, например, центральный процессор (ЦП) 140, который может быть связан с локальным кэшем 142 посредством, например, одной или нескольких шин или других соединений 144.

В другом варианте осуществления система разделена на один или несколько разделов или зон. Например, системой является логически разделенный сервер System z®, предлагаемый International Business Machines

Corporation. В этом примере, как показано на фиг.1В, сервер 150 содержит, например, один или несколько разделов или зон 152 (например, логических разделов LP0-LP3), гипервизор 156 (например, диспетчер логических разделов) и один или несколько центральных процессоров 158 (например, ЦП 0-ЦП 3). Хотя показаны четыре раздела и четыре центральных процессора, система может содержать большее или меньшее число разделов и(или) центральных процессоров.

Каждый логический раздел 152 способен функционировать как отдельная система. Иными словами, каждый логический раздел может независимо возвращаться в исходное состояние, если желательно, в него может осуществляться начальная загрузка операционной системы, и он может оперировать различными программами. Операционная система или прикладная программа, выполняемая в логическом разделе, выглядит как имеющая доступ ко всей системе в целом, но, в действительности, для нее доступна только ее часть. За счет сочетания аппаратного обеспечения и лицензионного внутреннего кода (также называемого микрокодом и милликодом) предотвращается взаимное влияние программы в одном логическом разделе и программы в другом логическом разделе. Это позволяет нескольким различным логическим разделам использовать один или множество физических процессоров в режиме квантования времени. В этом частности примере каждый логический раздел имеет резидентную операционную систему (ОС) 160, которая может различаться в одном или нескольких логических разделах. В одном из вариантов осуществления операционная системой 160 является операционной системой z/OS®, предлагаемой International Business Machines Corporation (Армонк, штат Нью-Йорк, США). z/OS® является зарегистрированным товарным знаком International Business Machines Corporation (Армонк, штат Нью-Йорк, США).

Каждый логический раздел может содержать один или несколько центральных процессоров. Центральные процессоры 158 представляют собой физические процессорные ресурсы, которые распределены среди логических разделов. Например, логический раздел 152 содержит один или несколько логических процессоров, каждый из которых целиком или частично отображает физический процессорный ресурс, выделенный разделу.

Логическими разделами 152 управляет гипервизор 156, реализованный посредством микрокода, выполняемого процессорами 158. Логические разделы 152 и гипервизор 156 содержат одну или несколько программ, которые постоянно хранятся в соответствующих частях центральной памяти, связанной с центральными процессорами. Одним из примеров гипервизора 156 является администратор процессорных ресурсов/систем (Processor Resource/Systems Manager) (PR/SM), предлагаемый International Business Machines Corporation (Армонк, штат Нью-Йорк, США).

В одном из вариантов осуществления сервер связан с контроллером 170 памяти, который содержит централизованную логику, играющую роль посредника между различными процессорами, генерирующими запросы. Например, когда контроллер 170 принимает запрос, он определяет, что его инициатором является запросчик, а остальные процессоры являются получателями; осуществляет широковещательную передачу сообщений; и иным способом обрабатывает запросы. Дополнительные подробности, касающиеся контроллера памяти (например, контроллера 120 памяти или контроллера 170 памяти), описаны со ссылкой на фиг.2.

На фиг.2 проиллюстрирован один из примеров контроллера 200, связанного с множеством процессоров (ЦП) 201. В этом примере показаны два центральных процессора. Тем не менее, подразумевается, что с контроллером 200 может быть связано более двух процессоров. Контроллер 200 содержит различные средства управления, одним из которых является, например, средство 202 управления последовательным упорядочением системы. Средство управления последовательным упорядочением системы используется, чтобы обеспечивать последовательное упорядочение операций, таких как операции обновления, которые должны последовательно упорядочиваться, таким образом, чтобы в вычислительной среде одновременно выполнялась только одна такая операция (или ограниченное их число). Оно также контролирует последовательность событий такой операции и входит в механизм, в котором реализована функция перевода в пассивное состояние.

Контроллер 200 связан с каждым центральным процессором посредством различных интерфейсов. Например, для передачи контроллеру команд "управления", указывающих действие, которое должно быть осуществлено, и для передачи команд "уточненного состояния", содержащих информацию от контроллера, в центральном процессоре лицензионным внутренним кодом используется интерфейс 204. Другим интерфейсом является шина 206 реагирования, которая используется для возврата от контроллера информации команд "уточненного состояния". Шина реагирования также используется для сообщения порядка подчинения команд "управления" и может быть задана на основании множества ресурсов в контроллере, включая средство управления последовательным упорядочением системы. Центральный процессор может использовать этот интерфейс для уточнения состояния средства управления последовательным упорядочением системы в контроллере 200.

Одним из дополнительных интерфейсов является интерфейс 208, который используется контроллером для передачи команд каждому процессору. Он также может управляться из множества ресурсов в контроллере, включая средство 202 управления последовательным упорядочением системы. Еще одним из дополнительных интерфейсов является интерфейс 210 для передачи сигналов средству 212 управления кэшем центрального процессора 201. Средство 212 управления кэшем обрабатывает команды в ответ на сигналы. В одном из примеров средство 212 управление кэшем обрабатывают команды, которые влияют на буферы, такие как буферы 213 быстрого преобразования адреса (TLB).

Помимо средства 212 управления кэшем процессор 201 содержит различные другие средства управления, включая, например, средство 220 управления прерываниями и средство 222 управления выполнением. В ответ на конкретные события средство 220 управления прерываниями инициирует отложенное внутреннее прерывание в ЦП, который, в свою очередь, инициирует приостановку обработки команды управляющей программы средством 222 управления выполнением в очередной момент прерывания. Согласно одной из особенностей настоящего изобретения средство 220 управления прерываниями содержит флаг 223, используемый, чтобы определять, должна ли быть заблокирована исключительная ситуация при нарушении защиты, как описано далее.

В ответ на прерывание средство 222 управления выполнением вызывает подпрограмму лицензионного внутреннего кода, чтобы установить защелку 224 разрешения широковещательной передачи, позволяющую средству 212 управления кэшем обрабатывать ожидающие команды.

Центральный процессор 201 также содержит защелку 226 перевода ЦП в пассивное состояние, которая указывает, переведен ли центральный процессор в пассивное состояние.

Перечисленные вычислительные среды служат лишь примерами. Возможно множество разновидностей, не выходящих за пределы существа настоящего изобретения. Например, среда необязательно должна иметь своей основой систему z/Architecture®, и вместо этого ее основой могут являться другие архитектуры, предлагаемые компаниями Intel, Sun Microsystems, а также другими. Кроме того, среда может содержать эмулятор (например, программные или другие механизмы эмуляции), в котором эмулируется конкретная архитектура или ее сокращенная версия. В такой среде посредством одной или нескольких эмулирующих функций эмулятора может быть реализована одна или несколько особенностей настоящего изобретения, несмотря на то, что компьютер, в котором выполняется эмулятор, может иметь архитектуру, отличающуюся от эмулируемых возможностей. В качестве одного из примеров в режиме эмуляции декодируется конкретная эмулируемая команда или операция и создается соответствующая эмулирующая функция с целью реализации отдельной команды или операции.

Дополнительные подробности эмулирующей среды описаны со ссылкой на фиг.3. В качестве одного из примеров, хост-компьютер 300 способе эмулировать другую архитектуру и(или) способности к обработке другого компьютера. Например, хост-компьютер 300 основан на архитектуре Intel; архитектуре с сокращенным набором команд, такой как PowerPC; наращиваемой архитектуре процессора (SPARC), предлагаемой компанией Sun Microsystems; или другой архитектуре, и способен эмулировать систему IBM® z/Architecture® или другую архитектуру IBM® или другой объект.

Хост-компьютер 300 содержит, например, память 302 для хранения команд и данных; блок 304 выборки команд для выборки команд из памяти 302 и необязательно локальной буферизации выбранных команд; блок 306 декодирования команд для приема команд от блока 304 выборки команд и определения типа команд, которые были выбраны; и блок 308 выполнения команд для выполнения команд. Выполнение может предусматривать загрузку данных из памяти 302 в регистр; сохранение данных из регистра в памяти; или выполнение арифметической или логической операции какого-либо типа, определяемой блоком декодирования.

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

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

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

Один из примеров ключа хранения описан со ссылкой на фиг.4. Ключ 400 хранения содержит, например, компонент 402 управления доступом (АСС), компонент (F) 404 защиты от выборки, компонент (R) 406 обращения и компонент (С) 408 изменения, каждый из которых описан далее.

Разряды 402 управления доступом (АСС) (например, разряды 0-3): если обращение подлежит управляемой ключом защите, разряды управления доступом согласуются с ключом доступа (например, слова состояния программы или из операнда команды) при сохранении информации или при выборке информации из местоположения, которое защищено от выборки.

Разряд (F) 404 защиты от выборки (например, разряд 4): если обращение подлежит управляемой ключом защите, разряд защиты от выборки регулирует, применима ли управляемая ключом защита к обращениям вызываемого типа; 0 указывает, что контролируются только обращения хранимого типа и разрешена выборка с любым ключом доступа; 1 указывает, что управляемая ключом защита применима как к выборке, так и к сохранению. Между выборкой команд и операндов не делается различие.

Разряд (R) 406 обращения (например, разряд 5): каждый раз при обращении к какому-либо местоположению в соответствующем блоке памяти с целью сохранения или выборки информации обычно устанавливается разряд обращения 1.

Разряд (С) 408 изменения (например, разряд б): каждый раз при сохранении информации в каком-либо местоположении в соответствующем блоке памяти устанавливается разряд изменения 1.

Ключи хранения не хранятся в запоминающем устройстве с обращением по адресу. Так, в одном из примеров для установки ключа хранения используются команды. Одной такой командой является команда установки расширенного ключа хранения (SSKE), один из вариантов осуществления которой описан в публикации IBM №SA22-7832-07 под названием "z/Architecture-Principles of Operation" (февраль 2009 г.). В этой команде установлены все компоненты ключа хранения даже, если при обновлении одного или нескольких из компонентов их значение становится таким же, как ранее. Кроме того, согласно этой команде требуется последовательное упорядочение системы, чтобы обеспечить возможность наблюдения изменений ключа всеми ЦП. При последовательном упорядочении используются операции перевода в пассивное состояние.

В одном из дополнительных вариантов осуществления для установки ключа хранения может использоваться команда условной SSKE. Эта команда позволяет условно обходить обновление, например, компонента обращения, компонента изменения или того и другого, когда позволяют обстоятельства. Иными словами, программное обеспечение (например, программа операционной системы) может указывать, что не требуется обновлять один или оба этих компонента. За счет этого обеспечивается гибкость реализации ЦП, когда ключ доступа и управление защитой от выборки, устанавливаемые командой SSKE, согласуются с теми, которые в данный момент содержатся в обновляемом ключе. В этой команде избирательно используются операции перевода в пассивное состояние в зависимости от устанавливаемых полей. Тем не менее, существует множество случаев, в которых программному обеспечению требуется изменить управление доступом и управление защитой от выборки ключа хранения, и, соответственно, команда условной SSKE не может использоваться.

Далее со ссылкой на фиг.5 рассмотрен один из примеров обработки, связанной с командой установки расширенного ключа хранения с использованием операции перевода в пассивное состояние. Как показано в этом частном примере, предусмотрено четыре центральных процессора ЦП 0-ЦП 3. ЦП 0 выполняет операцию 500 SSKE. Так, на шаге 1 он инициирует операцию перевода в пассивное состояние всех остальных центральных процессоров. После завершению любых текущих единиц действия остальные ЦП из конфигурации подтверждают прием команды перевода в пассивное состояние (например, на шагах 2а, 2b, 2с). После подтверждения каждый ЦП удаляет любые копии ключей из локальных кэшей. ЦП, за исключением ЦП 0, способны продолжать выполнение операций, для которых не требуется доступ к блоку, затронутому командой SSKE (шаги 3а и 3b). Тем не менее, если ЦП требуется доступ к тому же блоку, для которого устанавливается ключ, происходит задержка 500 следующей операции.

Выполнение команды SSKE задерживается (шаг 4), пока все ЦП не подтвердят прием команды перевода в пассивное состояние, и в этот момент может быть установлен ключ хранения для блока (шаг 5). Затем ЦП, выполняющий команду SSKE, передает другим ЦП сигнал перевода в пассивное состояние (шаг 6). Для ЦП 2, которому требуется доступ к тому же блоку, для которого устанавливается ключ, последующая операция задерживается (шаг 7), пока не будет передан сигнал выхода из пассивного состояния.

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

А, В и С являются возрастающими ячейками памяти в одном 4-килобайтовом блоке. Ключом для блока в этом примере изначально является любая величина, кроме 1.

Хотя ЦП-получателям не передается широковещательный сигнал перевода в пассивное состояние, ЦП-инициатор все же передает ЦП-получателям сигналы взаимного запрета (XI), чтобы инициировать удаление ими любых копий ключа из кэша.

Описанное далее новое управление (шаг 1) SSKE обеспечивает операцию без перевода в пассивное состояние. Если разряд является нулевым или операнд М3 не закодирован, выполняется исходная операция перевода в пассивное состояние.

Установка ключа происходит согласно существующим правилам. После того как ЦП 0 устанавливает ключ и осуществляет передачу на шаге 600 остальным ЦП сигналам взаимного запрета, ЦП 1 может наблюдать новый ключ в общем регистре 3 (шаг 2) и наблюдать разряд изменения, установленный посредством команды перемещения символа большой длины (Move Character Long, (MVCL)), которую одновременно выполняет ЦП 2.

Проверка всех ключей единицы действия осуществляется в начале операции. При последующих доступах к единице действия используется изначально наблюдаемый ключ (шаг 3). Если допустить, что ключ слова состояния программы (PSW) для ЦП 2 изначально соответствовал ключу для блока, содержащего ячейку А, выполнение команды MVCL продолжится даже после того, как ЦП 0 изменит ключ.

Хотя ЦП 3 может наблюдать новый ключ в общем регистре 5, результаты, загруженные в общий регистр 7 и 8 (шаг 4), могут содержать старые/старые, старые/новые, новые/старые или новые/новые данные, соответственно, в зависимости от хода выполнения команды MVCL и времени осуществления загрузки.

Согласно одной из особенностей настоящего изобретения во время выполнения команды SSKE определяется, должно ли это конкретное выполнение команды SSKE вызывать перевод в пассивное состояние. Это делается путем установки индикатора в команде и с учетом совместимости с более ранними конфигурациями.

Один из вариантов осуществления формата команды 700 команды установки расширенного ключа хранения (SSKE) без перевода в пассивное состояние описан со ссылкой на фиг.7А. В этом примере команда имеет формат RRF, обозначающий межрегистровую операцию, содержит поле расширенного кода операции и дополнительное поле R, поле М или то и другое. Команда SSKE 700 без перевода в пассивное состояние содержит, например, код 702 операции, обозначающий команду установки расширенного ключа хранения (например, 'В22В'); операнд 704 М3, используемый программой (например, операционной системой), чтобы определять, например, должна ли эта операция SSKE вызывать перевод в пассивное состояние; указание 706 регистра (R1) для выбора регистра, в котором содержатся значения для установки в ключе хранения; и указание 708 регистра (R2) для выбора регистра, в котором содержится адрес ключа хранения для установки.

Дополнительные подробности, касающиеся операнда М3, описаны со ссылкой на фиг.7Б. В одном из примеров операнд М3 704 содержит управляющий разряд (NQ) 710 (например, разряд 0) без перевода в пассивное состояние, который определяет, должна ли осуществляться операция перевода в пассивное состояние; маску (MR) 712 обновления разряда обращения (например, разряда 1), которая определяет, могут ли быть обойдены обновления разряда обращения в ключе хранения; маску (МС) 714 обновления разряда изменения (например, разряда 2), которая определяет, могут ли быть обойдены обновления разряда изменения в ключе хранения; и управляющий разряд (MB) 716 для управления множеством блоков (например, разряд 3), который определяет, могут ли быть установлены ключи хранения для множества 4-килобайтовых блоков запоминающего устройства.

Если для управляющего разряда без перевода в пассивное состояние установлено, например, значение 1, операция перевода в пассивное состояние команды SSKE не выполняется. Это более подробно описано со ссылкой на фиг.8. Сначала на шаге 800 выполняется милликод команды SSKE (например, вертикальный микрокод, выполняемый процессором), и на шаге 802 запроса (INQUIRY) определяется, действует ли управляющий разряд без перевода в пассивное состояние в команде SSKE. Если он не действует, т.е. должна быть выполнена операция перевода в пассивное состояние команды SSKE, на шаге 804 всем процессорам системы передается широковещательная команда удаления ключей с целью перевода обработки в пассивное состояние.

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

Если на шаге 802 запроса определено, что управляющий разряд без перевода в пассивное состояние действует, т.е. перевод в пассивное состояние должен быть обойден, не применяется широковещательная команда удаления ключей, ожидание перевода процессоров в пассивное состояние и выход из пассивного состояния. Вместо этого просто изменяется ключ хранения, а в одном из вариантов осуществления, остальным ЦП на шаге 820 может передаваться сигнал взаимного запрета (XI), чтобы они удалили из локальных кэшей любые копии ключа. Этот обход операции перевода в пассивное состояние не зависит от изменяемых полей ключа хранения. Единственным разрядом, управляющим этим обходом, является значение поля NQ (при условии поддержки режима без перевода в пассивное состояние). Когда определяется, должен ли быть обойден перевод в пассивное состояние, для средства без перевода в пассивное состояние не проверяются поля ключа хранения, которые должны быть изменены, и(или) их значения.

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

Когда средство условной SSKE установлено, в ходе выполнения могут быть обойдены некоторые функции операции установки ключа. Когда средство условной SSKE не установлено или когда средство условной SSKE установлено и разряды MR и МС поля М3 в обоих случаях имеют нулевое значение, содержимое ключа хранения для 4-килобайтового блока, по адресу которого обращается общий регистр R2, заменяется разрядами из общего регистра R1. Выполнение команды завершается без изменения кода условия.

Когда средство условной SSKE установлено и один или оба разряда MR и МС поля М3 имеют значение, равное единице, разряды управления доступом, содержимое разряда защиты от выборки и необязательно разряда обращения и разряда изменения ключа хранения, по адресу которого обращается общий регистр R2, сравнивается с соответствующими разрядами общего регистра R1. Если сравниваемые разряды являются одинаковыми, в ключ не вносятся изменения; в противном случае выбранные разряды ключа заменяются соответствующими разрядами общего регистра R1. До любого изменения ключ хранения вводится в общий регистр R1, а результат указывается посредством кода условия.

Когда средство усовершенствованного DAT установлено, описанные выше операции могут повторяться для ключей хранения множества 4-килобайтовых блоков в одном и том же 1-мегабайтовом блоке под управлением разряда управлением множеством блоков поля М3.

Когда средство установки ключа без перевода в пассивное состояние не установлено, не учитывается разряд 0 поля М3. Когда средство условной SSKE не установлено, не учитываются двоичные разряды 1 и 2 поля М3. Когда средство усовершенствованного DAT не установлено, не учитывается двоичный разряд 3 поля М3.

Когда средство условной SSKE установлено, обработка происходит