КОМАНДА ЗАЩИЩЕННОЙ ЛОГИЧЕСКОЙ ЗАГРУЗКИ И СДВИГА Российский патент 2020 года по МПК G06F9/30 

Описание патента на изобретение RU2731327C1

УРОВЕНЬ ТЕХНИКИ

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

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

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

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

Сущность изобретения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 1Б изображает дополнительные подробности процессора на фиг. 1А, согласно аспекту настоящего изобретения,

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

Фиг. 2Б изображает более подробную информацию в отношении памяти на фиг. 2А,

Фиг. 3 изображает один пример регистра обозначения защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 4 изображает один пример взаимоотношения между характеристиками защищенного сохранения, адресом начала защищенного сохранения и объемом участка защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 5 изображает один пример регистра маски участка защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 6А изображает один пример адресного регистра списка параметров события защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 6Б изображает один пример списка параметров события защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 7 изображает один пример управляющего блока для защищенного сохранения, согласно аспекту настоящего изобретения,

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

Фиг. 9 изображает один пример команды защищенной логической загрузки и сдвига, согласно аспекту настоящего изобретения,

Фиг. 10 изображает один пример команды загрузки элементов управления защищенным сохранением, согласно аспекту настоящего изобретения,

Фиг. 11 изображает один пример команды сохранения элементов управления защищенным сохранением, согласно аспекту настоящего изобретения,

Фиг. 12 изображает один пример обнаружения события защищенного сохранения, согласно аспекту настоящего изобретения,

Фиг. 13А изображает один пример формата расширенной области сохранения машинного контроля, согласно аспекту настоящего изобретения,

Фиг. 13Б изображает один пример назначенного для расширенной области сохранения машинного контроля регистра, согласно аспекту настоящего изобретения,

Фиг. 13В изображает один пример регистра параметров процессора обработки сигналов, согласно аспекту настоящего изобретения, и

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

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

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

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

Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения описан с отсылками на фиг. 1А. В одном примере вычислительное окружение основано на z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления z/Архитектуры описан в публикации IBM под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация IBM №SA22-7832-10, март 2015, включенной в настоящий документ путем отсылки в полном объеме. z/Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорк, США.

В другом примере вычислительное окружение основано на Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления Архитектуры Power описан в публикации «Power ISA™ версия 2.07В» (Power ISA™ Version 2.07В), International Business Machines Corporation, от 9 апреля 2015, включенной в настоящий документ путем отсылки в полном объеме. Power Architecture является

зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорка, США.

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

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

Компьютерная система 102 может включать в себя, но этим не ограничивается, один или несколько процессоров или вычислительных устройств 104 (например, центральных вычислительных устройств (CPU)), память 106 (называемую основной памятью или запоминающим устройством, в качестве примеров), и один или несколько интерфейсов 108 ввода/вывода (I/O), соединенных друг с другом через одну или несколько шин и/или других присоединений 110.

Шина 110 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (МСА), шину Расширенной ISA архитектуры (EISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).

Память 106 может включать в себя, например, кеш 120, такой как совместно используемый кеш, который может быть соединен с локальными кешами 122 процессоров 104. Кроме того, память 106 может включать в себя одну или несколько программ или приложений 130, операционную систему 132, а также одну или несколько машиночитаемых программных команд 134. Машиночитаемые программные команды 134 могут быть сконфигурированы для выполнения функций вариантов осуществления аспектов изобретения.

Компьютерная система 102 также может быть сообщена через, например, интерфейсы 108 ввода-вывода с одним или несколькими внешними устройствами 140 ввода-вывода, одним или несколькими сетевыми интерфейсами 142 и/или одним или несколькими устройствами хранения данных 144. Типовые внешние устройства включают в себя пользовательское оконечное устройство, лентопротяжное устройство, позиционирующее устройство, дисплей и т.д. Сетевой интерфейс 142 обеспечивает компьютерной системе 102 возможность сообщения с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет), предоставляя связь с другими вычислительными устройствами или системами.

Устройство 144 хранения данных имеет возможность сохранения одной или нескольких программ 146, одной или нескольких машиночитаемых программных команд 148 и/или данных и т.д. Машиночитаемые программные команды 134 могут быть сконфигурированы для выполнения функций вариантов осуществления аспектов изобретения.

Компьютерная система 102 может включать в себя другие съемные и несъемные, энергозависимые и энергонезависимые информационные носители компьютерной системы, и/или быть соединена с ними. Например, она может включать в себя и/или быть соединена с несъемным, энергонезависимым магнитным носителем (обычно называемым «жестким диском»), с магнитным дисководом для считывания со съемного, энергонезависимого магнитного диска (например, «гибкого диска») и для записи на него, и/или с оптическим дисководом для считывания со съемного, энергонезависимого оптического диска, такого как CDROM, DVD-ROM или другой оптический носитель, и для записи на него. Подразумевается, что в связи с компьютерной системой 102 могут быть использованы и другие аппаратные средства и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.

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

Более подробная информация относительно одного примера процессора 104 описана с отсылками на фиг. 1Б. Процессор 104 включает в себя несколько функциональных компонентов, используемых для выполнения команд. Эти функциональные компоненты включают в себя, например, компонент 150 выборки команды для выборки подлежащих выполнению команд, устройство 152 декодирования команд для декодирования выбранных команд и для получения операндов декодированных команд, компонент 154 выполнения команд для выполнения декодированных команд, компонент 156 доступа к памяти для доступа, в случае необходимости, к памяти для выполнения команд, и компонент 160 перезаписи для предоставления результатов выполненных команд. Один или несколько из этих компонентов, согласно аспекту настоящего изобретения, могут быть использованы для выполнения одной или нескольких команд 166 средства защищенного сохранения, как дополнительно описано ниже.

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

Другой вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 2А. В этом примере, вычислительное окружение 200 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (CPU) 202, память 204, а также одно или несколько устройств ввода-вывода и/или интерфейсов 206, соединенных друг с другом, например, через одну или несколько шин 208 и/или других присоединений. В качестве примеров, вычислительное окружение 200 может включать в себя процессор PowerPC или pSeries сервер, предлагаемый International Business Machines Corporation, Армонк, Нью-Йорк, и/или другие устройства, основанные на архитектуре, предлагаемой International Business Machines Corporation или другими компаниями.

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

Кроме того, предназначенное для исходной среды центральное вычислительное устройство 202 выполняет команды и код, которые сохраняются в памяти 204. В одном конкретном примере центральное вычислительное устройство выполняет код 212 эмулятора, сохраняемый в памяти 204. Этот код позволяет вычислительному окружению, сконфигурированному в одной архитектуре, эмулировать другую архитектуру. Например, код 212 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы pSeries или другие серверы или процессоры, эмулировать z/Архитектуру и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.

Дополнительные, относящиеся к коду 212 эмулятора подробности, приведены с отсылками на фиг. 2Б. Сохраняемые в памяти 204 гостевые команды 250 содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды CPU 202. Например, гостевые команды 250 могут быть разработаны для выполнения на процессоре z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды CPU 202, которое может быть представлено, например, процессором Intel. В одном примере код 212 эмулятора включает в себя подпрограмму 252 выборки команд для получения одной или нескольких гостевых команд 250 из памяти 204 и, факультативно, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 254 трансляции команд для выявления типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих команд 256 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.

Кроме того, код 212 эмулятора включает в себя подпрограмму 260 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 260 управления эмуляцией может принудить предназначенное для исходной среды CPU 202 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 256 исходной среды может включать в себя загрузку данных в регистр из памяти 204, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.

Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 202. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 210 предназначенного для исходной среды CPU или при помощи местоположений в памяти 204. В вариантах осуществления, гостевые команды 250, команды 256 исходной среды и код 212 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств. При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод и/или милликод процессора. Оно включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления оно включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования и управляющий доступом операционной системы к оборудованию системы.

Гостевая команда 250, которую получают, транслируют и выполняют, представлена, например, командой средства защищенного сохранения, несколько из которых описаны в настоящем документе. Команду, которая имеет одну архитектуру (например, z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 256 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Такие команды исходной среды затем выполняют.

Ниже описаны детали, относящиеся к одному варианту осуществления средства защищенного сохранения, включая сюда связанные с ним команды. Средство защищенного сохранения предоставляет механизм, посредством которого программа является способной к обозначению области логической памяти, которая содержит несколько участков защищенного сохранения (например, от 0 до 64), и которая может быть использована, например, различными языками программирования, в которых реализованы методы освобождения динамической памяти. Средство включает в себя, например, несколько команд, таких как, например: команда защищенной загрузки (LGG), команда защищенной логической загрузки и сдвига (LLGFSG), команда загрузки элементов управления защищенным сохранением (LGSC), и команда сохранения элементов управления защищенным сохранением (STGSC), каждая из которых дополнительно описана ниже.

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

В одном варианте осуществления средством защищенного сохранения управляют посредством бита в управляющем регистре, например, управляющем регистре 2, а также посредством следующих трех регистров: регистра обозначения защищенного сохранения (GSD), регистра маски участка защищенного сохранения (GSSM), и регистра адреса списка параметров события защищенного сохранения (GSEPLA). Содержимое этих трех регистров может быть загружено и просмотрено посредством команд загрузки элементов управления защищенным сохранением и сохранения элементов управления защищенным сохранением, соответственно. Более подробная информация о каждом из этих регистров, а также о управляющем регистре 2 приведена ниже. В описании приведены конкретные значения для конкретных битов или байтов. Эти значения и/или конкретные биты и/или байты являются всего лишь примерами. Могут быть использованы другие значения, биты и/или байты.

В одном примере, когда средство защищенного сохранения инсталлировано, выбранный бит, например бит 59 управляющего регистра 2, является элементом управления активацией защищенного сохранения (GSE). Когда бит 59 представлен нолем, попытка выполнения команд загрузки элементов управления защищенным сохранением (LGSC) и сохранения элементов управления защищенным сохранением (STGSC) имеет результатом распознавание условия исключения, например исключения специальной операции. Однако, когда элемент управления активацией защищенного сохранения представлен единицей, средство защищенного сохранения называется активированным, и попытка выполнения команд LGSC и STGSC является разрешенной, с учетом других, описанных ниже ограничений.

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

Как указано выше, в дополнение к элементу управления активацией защищенного сохранения, например биту 59 управляющего регистра 2, средство защищенного сохранения использует несколько регистров, включая сюда регистр обозначения защищенного сохранения (GSD), который является, например, 64-битовым регистром, задающим атрибуты области защищенного сохранения.

Один вариант осуществления регистра обозначения защищенного сохранения (GSD) описан с отсылками на фиг. 3. Регистр 300 обозначения защищенного сохранения включает в себя, например, следующие поля:

Адрес 302 начала защищенного сохранения (GSO) 302: Это поле обозначает адрес блока памяти, к которому может быть применена защита защищенного сохранения. Местоположение области защищенного сохранения задано крайними левыми битами регистра GSD. В одном варианте осуществления число крайних левых битов обозначено значением характеристики защищенного сохранения (GSC) в битах 58-63 регистра. Позиции битов на всем протяжении от 0 до (63 - GSC) регистра обозначения защищенного сохранения, дополненные справа двоичными нулями в позициях битов на всем протяжении от (64 GSC) до 63, формируют 64-битовый логический адрес крайнего левого байта области защищенного сохранения. В других вариантах осуществления может быть использован отличный механизм обозначения адреса начала области защищенного сохранения.

В одном варианте осуществления, когда GSC превышает 25, позиции битов на всем протяжении от (64 - GSC) до 38 резервируются, и должны содержать ноли, в противном случае, результаты обнаружения события защищенного сохранения являются непредсказуемыми. В одном варианте осуществления позиции битов 39-52 и 56-57 регистра GSD резервируются, и должны содержать ноли, в противном случае, программа может не иметь совместимости в будущем. Другие варианты осуществления могут обеспечивать возможность реализации отличного диапазона значений GSC с соответствующими изменениями в объеме GSO.

Сдвиг 304 защищенной загрузки (GLS) 304: В одном варианте осуществления биты 53-55 регистра обозначения защищенного сохранения содержат 3-битовое не имеющее знака двоичное целое число, использующееся при формировании промежуточного результата команды защищенной логической загрузки и сдвига. Допустимыми значениями GLS, в одном варианте осуществления являются 0-4, значения 5-7 резервируются, и могут привести к непредсказуемой величине сдвига.

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

Характеристика 306 защищенного сохранения (GSC) 306: В одном варианте осуществления позиции битов 58-63 регистра обозначения защищенного сохранения содержат 6-битовое не имеющее знака двоичное целое число, которое обрабатывают как степень числа два. Допустимыми значениями GSC являются, например, 25-56, значения 0-24 и 57-63 резервируются, и могут привести к непредсказуемому обнаружению события защищенного сохранения. GSC обозначает, например, следующее:

Выравнивание источника защищенного сохранения. Значение GSC 25 указывает на 32-мегабайтовое выравнивание, значение 26 указывает на 64-мегабайтовое выравнивание и т.д.

Объем участка защищенного сохранения. Значение GSC 25 указывает на 512-килобайтовые участки, значение 26 указывает на участки на 1 мегабайт и т.д. Другие варианты осуществления могут позволить различные механизмы обозначения GSC с соответствующими изменениями в обозначении источника защищенного сохранения и объема участка защищенного сохранения. Взаимоотношения между характеристикой защищенного сохранения, адресом начала защищенного сохранения и объемом участка защищенного сохранения показаны на фиг. 4. На фиг. 4, G обозначает гигабайты (230), GSC является характеристикой защищенного сохранения, GSD является обозначением защищенного сохранения, GSO является адресом начала защищенного сохранения, М обозначает мегабайты (220), Р обозначает петабайты (250), и Т обозначает терабайты (240).

В дополнение к регистру обозначения защищенного сохранения, средство защищенного сохранения включает в себя регистр маски участка защищенного сохранения, один вариант осуществления которого описан с отсылками на фиг. 5. В одном примере регистр маски участка защищенного сохранения (GSSM) 500 является 64-битовым регистром, причем каждый бит 502 соответствует одному из 64 участков защищенного сохранения в области защищенного сохранения. В качестве примера, бит 0 регистра соответствует крайнему левому участку, а бит 63, соответствует самому правому участку. Каждый бит, называемый битом защищенного участка, управляет доступом к соответствующему участку области защищенного сохранения посредством команд защищенной загрузки (LGG) и защищенной логической загрузки и сдвига (LLGFSG), как описано ниже.

Когда все 64 бита регистра GSSM являются нолями, события защищенного сохранения не распознаются. В других вариантах осуществления, GSSM регистр 500 может иметь отличное число битов, соответствующее отличному числу защищенных участков, и/или один бит может быть использован для представления более чем одного защищенного участка. Являются возможными разнообразные изменения.

Третий регистр средства защищенного сохранения является регистром адреса списка параметров события защищенного сохранения (GSEPLA), пример которого изображен на фиг. 6А. Как показано, регистр 600 адреса списка параметров события защищенного сохранения включает в себя, например, 64-битовый адрес 602, который используют для обнаружения списка параметров события защищенного сохранения (GSEPL) при распознавании события защищенного сохранения. В одном варианте осуществления когда CPU не находится в режиме регистра доступа, GSEPLA является логическим адресом, когда CPU находится в режиме регистра доступа, GSEPLA является первичным виртуальным адресом.

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

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

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

Как показано на фиг. 6Б, например, содержимое списка 610 параметров события защищенного сохранения включает в себя:

Зарезервировано: Байты 0 и 4-7 в составе GSEPL резервируют и, например, им задают нулевое значение при распознавании события защищенного сохранения,

Режим 612 адресации события защищенного сохранения (GSEAM): Байт 1 в составе GSEPL содержит указатель режима адресации CPU при распознавании события защищенного сохранения, как представлено ниже:

Зарезервировано: Биты 0-5 в составе GSEAM резервируют, и сохраняют как ноли.

Расширенный режим 614 адресации (Е): Бит 6 в составе GSEAM содержит бит расширенного режима адресации, например бит 31 слова состояния программы. Слово состояния программы является управляющим регистром, выполняющим функции регистра состояния и счетчика программы. Оно содержит информацию, используемую для надлежащего выполнения программы, в том числе, но не ограничиваясь, условный код, адрес команды и другую информацию, как описано в настоящем документе.

Основной режим 616 адресации (В): Бит 7 в составе GSEAM содержит бит основного режима адресации, например бит 32 слова состояния программы. Битам 6 и 7 задают значение, например, битов 31 и 32 в составе PSW при распознавании события защищенного сохранения (то есть, в одном варианте осуществления прежде замены битов 31 и 32 PSW аварийного прекращения транзакции, как описано ниже).

Указатели 620 причины события защищенного сохранения (GSECI): Байт 2 в составе GSEPL содержит указатели причины события защищенного сохранения. GSECI кодируют, например, следующим образом: Указатель 622 режима транзакционного выполнения (ТХ): Когда бит 0 в составе GSECI представлен нолем, CPU не пребывало в режиме транзакционного выполнения при распознавании события защищенного сохранения. Когда бит 0 в составе GSECI представлен единицей, CPU пребывало в режиме транзакционного выполнения при распознавании события защищенного сохранения.

CPU может пребывать в режиме нетранзакционного выполнения или в режиме транзакционного выполнения, и при пребывании в режиме транзакционного выполнения, оно может пребывать в режиме ограниченного транзакционного выполнения или в режиме неограниченного транзакционного выполнения. CPU входит в режим транзакционного выполнения посредством команды начала транзакции, и покидает режим транзакционного выполнения посредством либо команды окончания транзакции, либо в результате аварийного прекращения работы команды. Команда начала транзакции может быть представлена командой начала транзакции (TBEGIN) неограниченного режима транзакционного выполнения, или ограниченной командой начала транзакции (TBEGINC) ограниченного режима транзакционного выполнения. Когда команда начала транзакции относится к ограниченному режиму транзакционного выполнения, CPU входит в ограниченный режим транзакционного выполнения, который подвергается нескольким ограничениям (например, доступным является только подмножество общих команд, может быть выполнено ограниченное число команд, получение доступа является возможным только к ограниченному числу местоположений операнда памяти, и/или транзакция ограничена единственным уровнем вложенности). В неограниченном режиме транзакционного выполнения (называемым попросту режимом транзакционного выполнения), ограничения ограниченного режима транзакционного выполнения не применяются.

В одном варианте осуществления во время выполнения команды TBEGIN, когда глубина вложения первоначально является нулевой (транзакции могут быть вложенными), слову состояния программы (PSW) аварийного прекращения работы транзакции задают значение содержимого действующего слова состояния программы (PSW), а адрес команды PSW аварийного прекращения транзакции обозначает очередную последовательную команду (то есть, команду, следующую за самым внешним TBEGIN).

Во время выполнения команды TEGINC, когда глубина вложения первоначально является нолем, PSW аварийного прекращения транзакции задают значение содержимого действующего PSW, за исключением того, что адрес команды PSW аварийного прекращения транзакции обозначает команду TBEGINC (а не очередную последовательную команду, следующую за TBEGINC).

Когда транзакция прерывается, различная информация о состоянии может быть сохранена в транзакционном диагностическом блоке (TDB).

Указатель 624 режима ограниченного транзакционного выполнения (СХ): Когда бит 1 в составе GSECI представлен нолем, CPU не пребывало в режиме ограниченного транзакционного выполнения при распознавании события защищенного сохранения. Когда бит 1 в составе GSECI представлен единицей, CPU пребывало в режиме ограниченного транзакционного выполнения при распознавании защищенного события сохранения. Бит 1 в составе GSECI является значащим, когда бит 0 представлен единицей.

Зарезервировано: Байты 2-6 в составе GSEPL резервируют, и, например, им задают нулевое значение при распознавании события защищенного сохранения.

Причина 626 команды (IN): Бит 7 в составе GSECI указывает на команду, вызвавшую событие защищенного сохранения. Когда бит 7 представлен нолем, событие было вызвано выполнением команды защищенной загрузки. Когда бит 7 представлен единицей, событие было вызвано выполнением команды защищенной логической загрузки и сдвига. Другие причины также могут быть обозначены при помощи более чем одного бита.

Информация 630 по доступу к событию защищенного сохранения (GSEAI): Байт 3 в составе GSEPL содержит информацию, описывающую, в качестве примеров, следующие атрибуты CPU:

Зарезервировано: Бит 0 в составе GSEAI резервируют, и, например, ему задают нулевое значение при распознавании события защищенного сохранения.

Режим 632 DAT (Т): Бит 1 в составе GSEAI указывает на действующий режим динамической трансляции адресов (DAT) (то есть, бит Т является копией бита 5 PSW).

Указатель 634 адресного пространства (AS): Биты 2-3 в составе GSEAI указывают на элементы управления пространством действующего адреса (то есть, поле AS является копией битов 16-17 в составе PSW). Поле AS является значащим, когда DAT активирован (то есть, когда бит Т представлен единицей), в противном случае, поле AS является непредсказуемым.

Номер 636 регистра доступа (AR): Когда CPU находится в режиме регистра доступа, биты 4-7 в составе GSEAI указывают на номер регистра доступа, используемый командами LGG или LLGFSG, которые вызывают возникновение события (то есть, поле AR является копией поля В2 команд LGG или LLGFSG). Когда CPU не находится в режиме регистра доступа, поле AR является непредсказуемым.

Адрес 640 обработчика события защищенного сохранения (GSEHA): Байты 8-15 в составе GSEPL содержат адрес обработчика события защищенного сохранения. Содержимое поля GSEHA, рассматривается в качестве адреса перехода, который подвергается воздействию действующего режима адресации в слове состояния программы (PSW). При распознавании события защищенного сохранения, поле GSEHA формирует адрес перехода, использующийся для завершения выполнения команд защищенной загрузки или защищенной логической загрузки и сдвига.

Адрес команды в PSW заменяют на содержимое GESHA.

Адрес обработчика события защищенного сохранения задан программой во время выполнение команды загрузки элементов управления защищенным сохранением.

Событие защищенного сохранения рассматривается в качестве события успешного перехода в рамках регистрации программных событий (PER). Если PER активирован, например, в PSW, а элемент управления адреса перехода PER представлен единицей, например, в управляющем регистре 9, GSEHA является значением, которое подвергают сравнению, например, с управляющими регистрами 10 и 11.

Адрес 650 команды события защищенного сохранения (GSEIA): Байты 16-23 из GSEPL содержат адрес команды события защищенного сохранения. При распознавании события защищенного сохранения адрес вызывающей событие команды сохраняют в поле GSEIA. Размещенный в GSEIAA адрес, является либо адресом команды защищенной загрузки или команды защищенной логической загрузки и сдвига, либо той команды исполнительного типа, адресатом которой является команда защищенной загрузки или команда защищенной логической загрузки и сдвига, в качестве примеров.

Когда событие обнаружено, сохранение поля GSEIA подлежит действующему режиму адресации. В рамках 24-битового режима адресации битам 0-39 в составе GSEIA задают нулевые значения. В рамках 31-битового режима адресации битам 0-32 в составе GSEIA задают нулевые значения.

Адрес 660 операнда события защищенного сохранения (GSEOA): Байты 24-31 в составе GSEPL содержат адрес операнда события защищенного сохранения. При распознавании события защищенного сохранения, адрес второго операнда команды защищенной загрузки или команды защищенной логической загрузки и сдвига, вызывающих событие, сохраняют в поле GSEOA.

При обнаружении события, сохранение поля GSEOA подлежит действующему режиму адресации. В рамках 24-битового режима адресации битам 0-39 в составе GSEOA задают нулевые значения. В рамках 31-битового режима адресации битам 0-32 в составе GSEOA задают нулевые значения.

Если транзакционное выполнение прерывается вследствие распознавания события защищенного сохранения, поле GSEOA содержит адрес операнда, сформированный в ходе транзакционного выполнения. Это является верным также и в том случае, когда адрес операнда был сформирован с помощью одного или нескольких общих регистров, измененных в ходе транзакционного выполнения, и независимо от того, был ли регистр (регистры) восстановлены при прерывании транзакционного выполнения.

Промежуточный результат 670 события защищенного сохранения (GSEIR): Байты 32-39 из GSEPL содержат промежуточный результат события защищенного сохранения. При распознавании события защищенного сохранения, промежуточный результат, сформированный посредством команды защищенной загрузки или команды защищенной логической загрузки и сдвига, сохраняют в поле GSEIR.

Если транзакционное выполнение прерывается вследствие распознавания события защищенного сохранения, поле GSEIR содержит промежуточный результат, сформированный по местоположению второго операнда после покидания CPU режима транзакционного выполнения (например, после прерывания транзакции).

Адрес 680 возврата события защищенного сохранения (GSERA): Байты 40-47 из GSEPL содержат адрес возврата события защищенного сохранения.

При распознавании события защищенного сохранения, в то время как CPU находится в режиме транзакционного выполнения, адрес команды PSW аварийного прекращения транзакции размещают в GSERA. В ограниченном режиме транзакционного выполнения адрес команды (то есть, GSERA) обозначает команду TBEGINC. В неограниченном режиме транзакционного выполнения адрес команды (то есть, GSERA) обозначает команду, следующую за командой TBEGIN.

При распознавании события защищенного сохранения, в то время как CPU не находится в режиме транзакционного выполнения, содержимое GSERA является идентичным GSEIA.

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

Доступы к GSEPL в ходе обработки события защищенного сохранения рассматриваются в качестве побочных доступов. Исключения по доступу типа сохранения распознают для любого байта GSEPL, включая сюда поля GSEHA и зарезервированные поля. При распознавании исключения по доступу кроме адресации при получении доступа к GSEPL, указателю побочного доступа, биту 54 в составе идентификации исключения по трансляции, например, в реальном местоположении 168-175 задают значение единица, а команду защищенной загрузки или команду защищенной логической загрузки и сдвига, вызывающую событие защищенного сохранения, аннулируют.

Когда режим DAT включен, к GSEPL получают доступ с помощью режима управления пространством действующих адресов (ASC), кроме тех случаев, когда CPU находится в режиме регистра доступа, в режиме регистра доступа к GSEPL получают доступ в первичном адресном пространстве.

Три регистра защищенного сохранения могут быть заданы и просмотрены посредством команд загрузки элементов управления защищенным сохранением и сохранения элементов управления защищенным сохранением, соответственно. Операнд сохранения для каждой из этих команд, например 32-байтовый управляющий блок защищенного сохранения (GSCB), и содержимое регистров защищенного сохранения занимает последние три восьмибайтовых поля блока, как показано на фиг. 7.

Как изображено, в одном примере управляющий блок защищенного сохранения (GSCB) 700 включает в себя содержимое 702 регистра обозначения защищенного сохранения, содержимое 704 регистра маски участка защищенного сохранения и содержимое 706 регистра адреса списка параметров GSE.

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

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

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

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

В одном варианте осуществления ожидаемое использование состоит в том, что программа не переключает режим ASC между установлением элементов управления защищенным сохранением и распознаванием события защищенного сохранения. Если программа переключает режим ASC, то, например, GSEPL подлежит соотнесению с общими адресами как в пространстве, где он был установлен, так и в пространстве, где было распознано событие защищенного сохранения. Если событие защищенного сохранения распознано в режиме регистра доступа, программа обработчика события защищенного сохранения может нуждаться в проверке поля GSEAI для выявления подходящего ALET (маркера записи списка доступа), с помощью которого она имеет возможность получения доступа к операнду защищенного сохранения.

Кроме того, когда неограниченная транзакция прерывается вследствие события защищенного сохранения, вступает в силу режим адресации PSW аварийного прекращения транзакции. Режим адресации, который действовал во время события защищенного сохранения, может быть выявлен путем просмотра поля GSEAM в списке параметров GSE.

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

Более подробная информация по каждой из команд средства защищенного сохранения, включая сюда, например, команды защищенной загрузки, защищенной логической загрузки и сдвига, загрузки элементов управления защищенным сохранением и сохранения элементов управления защищенным сохранением, приведена ниже. Каждая команда может быть представлена отдельной архитектурно выполненной машинной командой на аппаратном/программном интерфейсе. Кроме того, каждая команда может включать в себя несколько полей. В одном варианте осуществления поля команды являются отдельными и независимыми друг от друга. Однако в другом варианте осуществления поля в числе более одного могут быть объединены друг с другом. Кроме того, связанный с полем команды нижний индекс обозначает операнд, к которому относится поле. Например, любое поле, имеющее нижний индекс 1, связано с первым операндом, любое поле, имеющее нижний индекс 2, связано со вторым операндом и т.д.

Один пример команды защищенной загрузки (LGG) описан с отсылками на фиг. 8. Команда 800 защищенной загрузки включает в себя, например, поля 802а, 802b операционного кода (кода операции) для обозначения операции защищенной загрузки, поле (R1) 804 регистра, индексное поле (Х2) 806, основное поле (В2) 808, и поле смещения, содержащее первое поле 810а (DL2) смещения и второе поле 810b (DH2) смещения. Содержимое второго поля смещения и первого поля смещения объединяют в цепочку для предоставления смещения, которое обрабатывают, например, как 20-битовое двоичное имеющее знак целое число.

Когда поля Х2 806 и В2 808 обозначают отличный от регистра 0 общий регистр, содержимое соответствующих регистров добавляют к смещению для предоставления при сохранении адреса, который включает в себя второй операнд. Второй операнд является при сохранении, например, двойным словом. В одном примере распознается исключение по спецификации, и операция подавляется, если адрес второго операнда не является границей двойного слова.

При функционировании команды защищенной загрузки 64-битовый промежуточный результат формируют следующим образом:

Например, в рамках 24-битового режима адресации, промежуточный результат формируют из объединения в цепочку 40 двоичных нулей с битами 40 63 второго операнда. В рамках 31-битового режима адресации, промежуточный результат формируют из объединения в цепочку 33 двоичных нулей с битами 33 63 второго операнда. В рамках 64-битового режима адресации, промежуточный результат формируют из полного второго операнда.

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

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

Доступ к списку параметров события защищенного сохранения (GSEPL) получают при распознавании события защищенного сохранения. Доступы типа сохранения относятся ко всему GSEPL. Условный код остается неизменным.

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

В одном конкретном примере данные представлены 32-битовым значением, которое сдвинуто влево на число позиций битов, заданное в регистре обозначения защищенного сохранения, для формирования, например, промежуточного 64-битового значения. 64-битовое значение приспособлено для режима адресации, то есть в рамках 24-битового режима адресации битам 0-39 задают нулевые значения, в рамках 31-битового режима адресации битам 0-32 задают нулевые значения, и в рамках 64-битового режима адресации, значение остается неизменным. Выбранные биты промежуточного значения сравнивают с адресом начала защищенного сохранения (в регистре GSD), а другие выбранные биты промежуточного значения используют для индексации бита в регистре маски участка защищенного сохранения (GSSM). Если результатом сравнения является равенство, а индексируемый GSSM бит представлен единицей, обнаружено событие защищенного сохранения. В противном случае, команда попросту загружает промежуточное значение в регистр.

Один пример команды защищенной логической загрузки и сдвига (LLGFSG) описан с отсылками на фиг. 9. Команда 900 защищенной логической загрузки и сдвига включает в себя, например, поля 902а, 902b кода операции для обозначения операции защищенной логической загрузки и сдвига, поле (R1) 904 регистра, индексное поле (Х2) 906, основное поле (В2) 908, и поле смещения, которое содержит первое поле 910а (DL2) смещения и второе поле 910b (DH2) смещения. Содержимое второго поля смещения и первого поля смещения объединяют в цепочку для предоставления смещения, которое обрабатывают, например, как 20-битовое двоичное имеющее знак целое число.

Когда поля Х2 906 и В2 908 обозначают отличный от регистра 0 общий регистр, содержимое соответствующих регистров добавляют к смещению для предоставления при сохранении адреса, который включает в себя второй операнд. Второй операнд, например, при сохранении является словом. В одном примере распознается исключение по спецификации, и операция подавляется, если адрес второго операнда не является границей двойного слова. При функционировании команды защищенной логической загрузки и сдвига 64-битовый промежуточный результат формируют следующим образом:

Когда средство защищенного сохранения активировано (например, посредством бита 59 управляющего регистра 2), промежуточный результат формируют с помощью значения сдвига защищенной нагрузки (GLS, в битах 53-55 регистра обозначения защищенного сохранения). Когда средство защищенного сохранения не активировано, значение GLS, как предполагается, является нолем.

В качестве примеров, в рамках 24-битового режима адресации, промежуточный результат формируют из объединения в цепочку 40 двоичных нулей, битов на всем протяжении от (8+GLS) до 31 второго операнда и двоичных нулей GLS (то есть, числа нулей, равного GLS). В рамках 31-битового режима адресации, промежуточный результат формируют из объединения в цепочку 33 двоичных нулей, битов на всем протяжении от (8+GLS) до 31 второго операнда, и двоичных нулей GLS. В рамках 64-битового режима адресации, промежуточный результат формируют из объединения в цепочку (32-GLS) двоичных нулей, полного 32-битового второго операнда и двоичных нулей GLS.

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

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

Доступ к списку параметров события защищенного сохранения (GSEPL) получают при распознавании события защищенного сохранения. Доступы типа сохранения относятся ко всему GSEPL. Условный код остается неизменным. При выполнением команды защищенной загрузки или команды защищенной логической загрузки и сдвига, могут возникать следующие программные исключения: По доступу (выборка, второй операнд, при распознавании события защищенного сохранения, выборка и сохранение, поля GSEPL), по операции (средство защищенного сохранения не инсталлировано), и по спецификации.

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

1.-7. Исключения с тем же приоритетом, что и приоритет условий прерывания программы для общего случая.

8. Исключения по доступу при сохранении для второго операнда.

9. Завершение без распознанного события защищенного сохранения.

10. Побочные исключения по доступу для списка параметров события защищенного сохранения.

11. Завершение с распознанным событием защищенного сохранения.

Команда защищенной логической загрузки и сдвига может быть полезной при загрузке объектов, которые иногда называют упакованными ссылочными указателями, в которых некоторое число самых правых битов адреса ссылочного указателя отсутствуют при сохранении, и предположительно, являются нолями. Например, различные языки, такие как Java, имеют возможность выделения объектов данных для своих приложений на целочисленных границах памяти (то есть, на границах, которые являются степенью числа два). Например, объекты могут быть выделены по границам слова (4 байта), двойного слова (8 байтов) или учетверенного слова (16-байтов). Когда объект выделен на такой границе, некоторое число самых правых битов адреса объекта являются нолями. Для эффективности программирования может оказаться выгодным представление ссылочных указателей на такие объекты с помощью 32-битового ссылочного указателя, но это ограничивает диапазон адресуемости до 4 гигабайтов (или, в случае z/Архитектуры, использующей 31-битовые адреса, диапазон адресуемости ограничивается 2 гигабайтами), также и в случае выполнения в рамках 64-битового режима адресации.

Поскольку известно, что некоторое число самых правых битов такого объекта (выровненного по целочисленной границе) являются нолями, эти биты могут быть исключены из представления в оперативной памяти ссылочного указателя путем сдвига ссылочного указателя вправо на число ожидаемых нулевых битов. За счет этого обеспечена возможность добавления соответствующего числа крайних левых битов к ссылочному указателю при сохранении, таким образом обеспечивая ссылочному указателю возможность для адресации большего объема памяти, чем является возможным при использовании несмещенной версии. Например, если известно, что ссылочные указатели указывают на двойные слова, путем сдвига ссылочного указателя вправо на три бита, диапазон адресуемости может быть расширен слева на 3 бита, таким образом обеспечивая 32-битовому ссылочному указателю возможность адресации до 32 гигабайтов памяти (в противоположность 4 гигабайтам, которые могут быть адресованы с помощью несдвинутого указателя). Кроме того, когда ссылочный указатель загружен для использования подсистемой памяти CPU, его сдвигают влево на 3 бита для формирования 35-разрядного ссылочного указателя.

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

Когда средство защищенного сохранения инсталлировано в конфигурации, команды защищенной загрузки (LGG) и защищенной логической загрузки и сдвига (LLGFSG) могут быть выполнены независимо от содержимого элемента управления активацией защищенного сохранения (например, бита 59 управляющего регистра 2). Однако события защищенного сохранения могут быть распознаны в результате выполнения LGG или LLGFSG, когда (А) элемент управления GSE представлен единицей, и (Б) маска выбора защищенного сохранения является отличной от нуля. Маска выбора защищенного сохранения не подлежит загрузке, если элемент управления GSE не представлен единицей.

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

Один пример команды загрузки элементов управления защищенным сохранением (LGSC) описан с отсылками на фиг. 10. Команда загрузки элементов управления защищенным сохранением предоставляет параметры, регулирующие обработку события защищенного сохранения в CPU, и предоставляет информацию, описывающую состояние CPU по отношению к программе во время события защищенного сохранения.

Как показано на фиг. 10, команда 1000 загрузки элементов управления защищенным сохранением включает в себя поля 1002а, 1002b кода операции для обозначения операции загрузки элементов управления защищенным сохранением, поле (R1) 1004 регистра, индексное поле (Х2) 1006, основное поле (В2) 1008, и поле смещения, которое содержит первое поле 1010а (DL2) смещения и второе поле 1010b (DH2) смещения. Содержимое второго поля смещения и первого поля смещения объединяют в цепочку для предоставления смещения, которое обрабатывают, например, как 20-битовое двоичное имеющее знак целое число.

Когда поля Х2 1006 и В2 1008 обозначают отличный от регистра 0 общий регистр, содержимое соответствующих регистров добавляют к смещению для предоставления при сохранении адреса, который включает в себя второй операнд.

При функционировании содержимое управляющего блока защищенного сохранения (GSCB) в адресе второго операнда загружают в три регистра защищенного сохранения. Формат управляющего блока защищенного сохранения (GSCB) показан на фиг. 7. Поле R1 команды резервируется, и должно содержать ноль, в противном случае, программа может не иметь совместимости в будущем.

Исключения по доступу распознают для всех 32 байтов GSCB.

Если какое-либо из полей GLS или GSC регистра GSD после загрузки содержит недопустимые значения, или если зарезервированные позиции битов регистра не содержат нолей, результаты являются непредсказуемыми. Если второй операнд содержит либо (А) недопустимые значения GLS или GSC, либо (Б) ненулевые значения в зарезервированных позициях битов, замена CPU недопустимых или ненулевых значений исправленными значениями является зависящей от модели. Кроме того, является не поддающейся предсказанию успешность последующего сохранения таких исправленных значений посредством команды сохранения элементов управления защищенным сохранением.

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

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

Если поле GSC регистра GSD содержит недопустимое значение, события защищенного сохранения могут не произойти, или могут быть обнаружены ошибочные события защищенного сохранения.

Если поле GLS регистра GSD содержит недопустимое значение, промежуточный результат, используемый командой защищенной логической загрузки и сдвига может быть сформирован по непредсказуемому диапазону битов во втором операнде, смещенном на непредсказуемое число битов.

Один пример команды сохранения элементов управления защищенным сохранением описан с отсылками на фиг. 11. Команда 1100 сохранения элементов управления защищенным сохранением включает в себя, например, поля 1102а, 1102b кода операции для обозначения операции сохранения элементов управления защищенным сохранением, поле (R1) 1104 регистра, индексное поле (Х2) 1106, основное поле (В2) 1108, и поле смещения, которое содержит первое поле 1110а (DL2) смещения и второе поле 1110b (DH2) смещения. Содержимое второго поля смещения и первого поля смещения объединяют в цепочку для предоставления смещения, которое обрабатывают, например, как 20-битовое двоичное имеющее знак целое число. Когда поля Х2 1106 и В2 1108 обозначают отличный от регистра 0 общий регистр, содержимое соответствующих регистров добавляют к смещению для предоставления при сохранении адреса, который включает в себя второй операнд.

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

Исключения по доступу распознают для всех 32 байтов GSCB.

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

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

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

Одна или несколько из вышеописанных команд и/или регистров могут быть применены при обнаружении события защищенного сохранения. Как показано на фиг. 12, в одном варианте осуществления при обнаружении 1200 события защищенного сохранения используют, например, два значения, которые сформированы из промежуточного результата 1202 команды защищенной загрузки (LGG) или команды защищенной логической загрузки и сдвига (LLGFSG), и включают в себя, например, компаранд 1204 операнда защищенного сохранения (GSOC), и индекс 1206 маски защищенного сохранения (GSMX).

Компаранд 1204 операнда защищенного сохранения (GSOC) сформирован из промежуточного результата команды защищенной загрузки или команды защищенной логической загрузки и сдвига. Например, GSOC содержит позиции битов промежуточного результата на всем протяжении от 0 до (63 - GSC) включительно (где GSC является характеристикой защищенного сохранения, например, в позициях битов 58-63 регистра обозначения защищенного сохранения).

GSOC подвергают сравнению 1210 с адресом 1212 начала защищенного сохранения (GSO) в соответствующих позициях битов регистра GSD 1214, также включающих в себя характеристику 1216 защищенного сохранения. Когда GSOC не равен GSO, событие защищенного сохранения не распознают, и выполнение команды защищенной загрузки или команды защищенной логической загрузки и сдвига завершают путем размещения промежуточного результата в общем регистре R1.

Когда GSOC равен GSO 1220, шесть битов промежуточного результата справа от GSOC образуют не имеющее знака двоичное целое число, называемое индексом маски защищенного сохранения (GSMX). Соответствующий GSMX бит (G) 1224 защищенного участка регистра 1226 маски участка защищенного сохранения (GSSM) подвергают исследованию 1222. Если бит защищенного участка представлен нолем, событие защищенного сохранения не распознают, а выполнение команды защищенной загрузки или команды защищенной логической загрузки и сдвига завершают путем размещения промежуточного результата в общем регистре R1. Тем не менее, когда бит защищенного участка представлен единицей, событие защищенного сохранения распознают 1228.

Обнаружение события защищенного сохранения не выполняют, когда либо (А) средство защищенного сохранения не активировано (посредством, например, бита 59 управляющего регистра 2), либо (Б) все позиции битов регистра маски участка защищенного сохранения (GSSM) содержит ноли, в качестве примеров.

В одном варианте осуществления элементы управления защищенным сохранением могут быть получены на машинном контроле, или на процессоре обработки сигналов (SIGP), сохраняющем дополнительное состояние при адресной операции. Например, когда машинный контроль происходит на CPU, архитектурно выполненный регистровый контекст CPU регистрируют при сохранении. Большую часть архитектурно выполненного регистрового контекста, включая сюда слово состояния программы (PSW), общие регистры, регистры доступа, управляющие регистры, регистры с плавающей точкой, управляющий регистр с плавающей точкой, компаратор часов, таймер CPU, программируемый регистр TOD (истинного времени), адресный регистр события прерывания и регистр префикса, сохраняют в приписанных местоположениях памяти в нижних двух блоках реальной памяти (то есть, в области префикса).

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

Как показано на фиг. 13А, в одном примере расширенная область 1300 сохранения машинного контроля включает в себя содержимое 1304, указывающее на сохраненную информацию. В одном примере смещения содержимого показаны в 1302, а сохраняемый объем расширенной области сохранения основан на характеристике длины (LC), показанной в 1306.

В одном примере содержимое 1304 включает в себя содержимое регистров защищенного сохранения, содержащее содержимое 1306 регистра обозначения защищенного сохранения, содержимое 1308 регистра маски участка защищенного сохранения и содержимое 1310 регистра списка параметров события защищенного сохранения. В одном примере регистры защищенного сохранения сохраняют в том же формате, что и у управляющего блока защищенного сохранения.

Допустимость содержимого местоположений 1024-1055 расширенной области сохранения машинного контроля обозначается, например, посредством бита допустимости регистра защищенного сохранения, например бита 36 из кода прерывания машинного контроля (MCIC), сохраненного, например, в реальных местоположениях 232-239. Когда его значение равно единице, это указывает на то, что содержимое соответствующих местоположений отображает корректное состояние регистров защищенного сохранения при прерывании.

Расширенная область сохранения машинного контроля обозначена посредством обозначения расширенной области сохранения машинного контроля (MCESAD), пример которого изображен на фиг. 13Б. Обозначение 1350 расширенной области сохранения машинного контроля включает в себя, например, адрес 1352 начала расширенной области сохранения машинного контроля (MCESAO), используемый для указания на адрес начала расширенной области сохранения машинного контроля, и характеристику 1354 длины (LC), представляющую объем и выравнивание MCESA.

В одном примере характеристика длины является степенью числа два, и эффекты характеристики длины включают в себя, например, следующее:

Когда средство защищенного сохранения не инсталлировано, или когда средство инсталлировано, но поле LC представлено нолем, объем расширенной области сохранения машинного контроля, как предполагается, составляет 1.024 байта, за счет этого обеспечена совместимость функционирования для более старого программного обеспечения, для которого не предусмотрено взаимодействие со средством защищенного сохранения.

Когда средство защищенного сохранения инсталлировано, и поле LC представлено любым значением, например от 1 до 9, это рассматривается как ошибка, и весь MCESAO обрабатывают таким образом, как если он содержит ноли (то есть, не сохраняют никакой MCESA).

Когда средство защищенного сохранения инсталлировано, и поле LC содержит значение, которое превышает, например, 10 или равно ему, объем и выравнивание MCESA представлены 2LC байтами. В этом случае, биты на всем протяжении от 0 до 63-LC в составе MCESAD формируют адрес начала расширенной области сохранения машинного контроля (MCESAO). MCESAO, совместно с представленными нолями битами числом LC, которые добавлены справа, образуют 64-битовый адрес расширенной области сохранения машинного контроля.

Подобно расширенной области сохранения машинного контроля, когда средство защищенного сохранения инсталлировано, регистр параметров, например, команды процессора обработки сигналов (SIGP), используемой для захвата содержимого выбранных регистров CPU, расширяют для включения в него дополнительной информации о состоянии. Как показано на фиг. 13В, регистр 1380 параметров SIGP для сохранения дополнительного состояния в адресной команде включает в себя дополнительный адрес 1382 начала области состояния, используемый для указания на адрес начала дополнительной области, и характеристику 1384 длины (LC), представляющую объем и выравнивание дополнительной области состояния.

В одном примере, когда средство защищенного сохранения инсталлировано, если задано зарезервированное значение LC, или если какая-либо зарезервированная позиция бита в регистре параметров не является нолем, адресную команду SIGP не принимает адресуемый CPU, производится отображение бита недопустимого параметра (например, бита 55) в регистре состояния, обозначенном полем R1 команды SIGP, и команда завершается путем задания условного кода 1.

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

Некоторые детали описаны с отсылками на z/Архитектуру, однако, один или несколько аспектов применимы к другим архитектурам. z/Архитектура является только одним из примеров.

При распознавании события защищенного сохранения во время нахождения CPU в режиме транзакционного выполнения, происходят следующие события: 1. Транзакция прерывается, например, с кодом 19 аварийного прекращения работы. Если адрес транзакционного диагностического блока (TDB) не является допустимым, или если адрес TDB является допустимым и доступным, условному коду, например, в PSW аварийного прекращения транзакции задают значение 2. Если адрес TDB является допустимым, но TDB не является доступным, условному коду, например, в PSW аварийного прекращения транзакции задают значение 1.

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

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

Когда второй операнд повторно не выбирают, или когда его повторно выбирают, а условие события защищенного сохранения продолжает существовать, обработка события защищенного сохранения происходит, как описано в настоящем документе (вместо загрузки PSW аварийного прекращения транзакции), то есть без средства защищенного сохранения, когда транзакционное выполнение прерывается, управление передается команде, обозначенной посредством PSW аварийного прекращения транзакции. Для неограниченной транзакции, запускающей транзакционное выполнение командой является команда, следующая за самой внешней командой TBEGIN. Как правило, она передает управление обработчику аварийного прекращения работы транзакции, который является потенциально способным к изменению состояний программы с целью обеспечения успешности последующей попытки транзакционного выполнения. Для ограниченной транзакции, PSW аварийного прекращения транзакции обозначает команду TBEGINC. Таким образом, транзакция повторно запускается без какого-либо вмешательства со стороны обработчика аварийного прекращения работы. Когда GSE распознают во время транзакционного выполнения, транзакцию прерывают. Повторный запуск транзакции без разрешения GSE не может быть продуктивным. Таким образом, после аварийного прекращения работы транзакции, управление передают обработчику GSE, и обработчик GSE администрирует событие, как описано в настоящем документе.

В этом случае задают значение биту ТХ в поле GSECI, и если CPU пребывало в ограниченном режиме транзакционного выполнения, также задают значение биту СХ.

Когда происходит событие защищенного сохранения, адрес команды GSE (GSEIA) содержит адрес вызвавшей событие команды LGG или команды LLGFSG. Как правило, после разрешения GSE, программа является способной к выполнению обратного перехода к этому адресу, и к попытке продолжения обращения к объекту, который первоначально вызвал событие. Однако в режиме транзакционного выполнения (ТХ), транзакция прерывается событием защищенного сохранения, и выполнение обратного перехода к команде LGG/LLGFSG является нецелесообразным, поскольку другие команды в приводящей к GSE транзакции окажутся отброшенными. Таким образом, согласно аспекту настоящего изобретения, на основании аварийного прекращения работы вследствие GSE, обработка включает в себя, например, переход к обработчику GSE после прекращения транзакции, для разрешения GSE, предоставление обработчику GSE указателя на пребывание CPU в транзакционном режиме, и предоставление адреса команды TBEGIN/TBEGINC, инициировавшей вызвавшую GSE транзакцию таким образом, что обработчик GSE является способным к повторному запуску транзакции.

Вне зависимости от пребывания CPU в режиме транзакционного выполнения при распознавании события защищенного сохранения, регистр адреса списка параметров события защищенного сохранения (GSEPLA) используют для размещения в нем списка параметров события защищенного сохранения (GSEPL). Содержимое регистра GSEPLA является 64-битовым адресом, и 64 бита адреса используют независимо от действующего режима адресации. К GSEPL получают доступ с помощью действующего режима трансляции, за исключением тех случаев, когда CPU находится в режиме регистра доступа, в этом случае, к GSEPL получают доступ с помощью первичного адресного пространства.

Если исключение по доступу распознают при обращении к GSEPL, обработка происходит следующим образом:

Происходит прерывание программы.

Если CPU не пребывало в режиме транзакционного выполнения, адресу команды в старом PSW программы значение задают следующим образом: Если условие исключения привело к аннулированию, адрес команды указывает на команду, вызывающую событие защищенного сохранения (то есть, адрес LGG или LLGFSG, или на адрес команды выполняемого типа, мишенью которой является LGG или LLGFSG, в качестве примеров).

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

- Если CPU пребывало в режиме транзакционного выполнения, PSW аварийного прекращения транзакции размещают в старом PSW программы.

Для всех условий исключения по доступу кроме адресации, указателю побочных доступов, например, биту 54 в составе идентификации исключения по трансляции (ТЕID) в реальных местоположениях 168-175, задают значение единица. (ТЕID) не сохраняют для исключений адресации.)

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

Если GSEPL является доступным, с помощью полей GSEPL выполняют следующие действия:

Байтам 0 и 4-7 из GSEPL задают нулевые значения.

Указатель режима адресации размещают в режиме адресации события защищенного сохранения (GSEAM, байт 1 из GSEPL) следующим образом:

- Битам 0-5 из GSEAM задают нулевые значения.

- Битам 6 и 7 из GSEAM задают значения битов 31 и 32 из PSW на момент времени распознавания события защищенного сохранения.

Указатель причины события размещают в поле указателя причины события защищенного сохранения (GSECI, байт 2 из GSEPL) следующим образом:

Если CPU пребывало в режиме транзакционного выполнения при распознавании события защищенного сохранения, биту 0 из GSECI задают значение единица, в противном случае, биту 0 из байта 2 задают нулевое значение.

- Если CPU пребывало в в режиме ограниченного транзакционного выполнения при распознавании события защищенного сохранения, биту 1 из GSECI задают значение единица, в противном случае, биту 1 из GSECI задают нулевое значение.

- Битам 2-6 из GSECI задают нулевые значения.

- Биту 7 из GSECI задают значение для обозначения команды, вызвавшей событие защищенного сохранения. Нолевое значение означает, что событие было вызвано командой LGG, значение единица означает, что событие было вызвано командой LLGFSG, в качестве примеров.

Указатель PSW DAT, режим адресации и элементы управления адресным пространством размещают в поле указателя доступа события защищенного сохранения (GSEAI, байт 3 из GSEPL), следующим образом:

- Бит 0 из GSEAI резервируют и задают ему нулевое значение.

- Действующий режим трансляции, бит 5 из PSW, размещают в бите 1 из GSEAI.

- Если DAT включен, биты 16-17 из PSW размещают в битах 2-3 из GSEAI. Если DAT выключен, биты 2-3 из GSEAI являются непредсказуемыми.

- Если CPU находится в режиме регистра доступа, номер регистра доступа, соответствующий полю В2 вызывающей событие команды LGG или LLGFSG, размещают в битах 4-7 из GSEAI. Если CPU не находится в режиме регистра доступа, биты 4-7 из GSEAI являются непредсказуемыми.

Адрес команды в PSW заменяют на содержимое поля адреса обработчика события защищенного сохранения (GSEHA, байты 8-15 из GSEPL). Поле GSEHA рассматривается в качестве адреса перехода. Действующий режим адресации остается неизменным.

Адрес вызывающей событие защищенного сохранения команды размещают в поле адреса команды события защищенного сохранения (GSEIA, байты 16-23 из GSEPL). Адрес, размещенный в GSEIA, является либо адресом команды LGG или LLGFSG, либо команды выполняемого типа, мишенью которой является LGG или LLGFSG, в качестве примеров. GSEIA также размещают в регистре адреса события прерывания.

Адрес второго операнда команды LGG или LLGFSG размещают в адресе операнда события защищенного сохранения (GSEOA, байты 24-31 из GSEPL). Если транзакционное выполнение прерывается вследствие распознавания события защищенного сохранения, поле GSEOA содержит адрес операнда, сформированный в ходе транзакционного выполнения.

Промежуточный результат команды LGG или LLGFSG размещают в поле промежуточного результата события защищенного сохранения (GSEIR, байты 32-39 из GSEPL). Если транзакционное выполнение прерывается вследствие распознавания события защищенного сохранения, поле GSEIR формируют с использованием поля адреса операнда защищенного сохранения (GSEOA).

Однако если событие защищенного сохранения было распознано во время транзакционного выполнения, является зависимым от модели, содержит ли GSEIR значение, которое было выбрано транзакционным способом, или значение, выбранное после прерывания транзакции.

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

Если CPU пребывало в режиме транзакционного выполнения при распознавании события защищенного сохранения, адрес команды PSW аварийного прекращения транзакции размещают в поле адреса возврата события защищенного сохранения (GSERA, байты 40-47 из GSEPL). Если CPU пребывало в ограниченном режиме транзакционного выполнения, GSERA обозначает команду TBEGINC (ограниченную команду начала транзакции). Если CPU пребывало в неограниченном режиме транзакционного выполнения, GSERA обозначает команду, следующую за командой TBEGIN (командой начала транзакции). Следуя обработке GSE, обработчик может перейти к этому адресу для повторного выполнения транзакции.

Если CPU не пребывало в режиме транзакционного выполнения при распознавании события защищенного сохранения, содержимое поля GSERA является идентичным таковому поля GSEIA.

Наконец, команда LGG или LLGFSG считаются завершенными без изменения общего регистра R1.

Как описано в настоящем документе, языки программирования, реализующие технику сращивания памяти, известную как освобождение динамической памяти или «сборка мусора», могут извлечь выгоду из средства защищенного сохранения. В такой модели программирования, ссылка на объект программы выполняется путем, прежде всего, загрузки ссылочного указателя на объект. Команды защищенной загрузки, а также защищенной логической загрузки и сдвига предоставляют средства, посредством которых программа может загружать ссылочный указатель на объект и выявлять применимость этого ссылочного указателя. При отсутствии распознавания какого-либо события защищенного сохранения (GSE), ссылочный указатель может быть использован для обращения к объекту. Тем не менее, при распознавании GSE, он может указывать на то, что действующий указатель обозначает реорганизованное местоположение памяти, в этом случае объект, возможно, был перемещен в другое место. Подпрограмма обработчика GSE, в этом случае, имеет возможность изменения ссылочного указателя для обозначения нового местоположения объекта, и последующего перехода к обозначенному посредством GSEIA местоположению для возобновления нормального выполнения программы.

В ответ на GSE, которое было распознано при пребывании CPU в режиме транзакционного выполнения, обработчик GSE программы может совершить попытку исправления вызвавшего событие условия (то есть, обновления операнда LGG или LLGFSG), и последующего повторного выполнения транзакции путем перехода к обозначенному посредством GSERA местоположению. Если было прервано неограниченное транзакционное выполнение, программа, до перехода к GSERA, должна задать условному коду значение 2 или 3 в зависимости от того, было исправлено вызывающее событие условие или нет, соответственно. Если было прервано ограниченное транзакционное выполнение, программа не должна переходить к обозначенному посредством GSERA местоположению, если не было исправлено вызывающее событие условие, в противном случае, может возникнуть цикл в программе. Для обеспечения надежного сохранения содержимого поля промежуточного результата события защищенного сохранения (GSEIR), выполняемая в режиме транзакционного выполнения программа должна использовать команду нетранзакционного сохранения (которая выполняет нетранзакционный доступ к памяти), если она изменяет местоположение второго операнда команды защищенной загрузки, которая впоследствии выполняется в рамках той же транзакции.

Подобно другим командам, изменяющим адрес команды PSW, исключение по спецификации распознается, если адрес команды PSW (загруженный из поля GSEHA) является нечетным адресом после события защищенного сохранения.

Во время обработки GSE, CPU имеет возможность распознавания исключения по доступу при попытке обновления списка параметров события защищенного сохранения (GSEPL). Такое исключение по доступу может быть полностью безвредным, например, за счет временной постраничной откачки под воздейстием GSEPL из оперативной памяти во вспомогательную память посредством операционной системы. Исходя из того, что операционная система исправляет исключение, она загружает старое PSW программы для возобновления выполнения прерванной программы.

Если исключение по доступу распознано при обращении к GSEPL, и CPU не пребывало в режиме транзакционного выполнения, адресу команды старого PSW программы задают значение, например, следующим образом:

Если исключение привело к аннулированию, адрес команды указывает на команду LGG или LLGFSG, вызвавшую GSE (или команду выполняемого типа, операндом которой была LGG или LLGFSG), в качестве примеров.

Если исключение привело к подавлению или завершению, адрес команды указывает на очередную последовательную команду, следующую за вызвавшей GSE командой, для подавления или завершения исключений.

Если исключение по доступу распознано при обращении к GSEPL, и CPU пребывало в неограниченном режиме транзакционного выполнения, старое PSW программы обозначает команду, следующую за наиболее удаленной TBEGIN, если CPU пребывало в ограниченном режиме транзакционного выполнения, старое PSW программы обозначает команду TBEGINC.

Если CPU пребывало в неограниченном режиме транзакционного выполнения, и TDB (транзакционный диагностический блок) сохранен, код аварийного прекращения работы 19 указывает на то, что транзакционное выполнение было прервано вследствие GSE. Тем не менее, подпрограмма обработчика аварийного прекращения работы транзакции не может исходить из предпосылки, что код 19 аварийного прекращения работы обязательно указывает на исправление подпрограммой обработчика GSE причины GSE (вследствие возможного условия исключения по доступу при обращении к GSEPL). В этом сценарии подпрограмма обработчика аварийного прекращения работы может многократным образом повторно выполнять транзакцию, что обеспечивает для операционной системы возможность разрешения одного или нескольких исключений по трансляции, и позволяет обработчику GSE производить исправление причины GSE.

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

Один вариант осуществления аспектов изобретения, относящихся к обеспечению обработки в вычислительном окружении, описан с отсылками на фиг. 14А-14Б. Как показано на фиг. 6А, в одном примере получают команду на выполнение операции загрузки и сдвига (1400), и команду выполняют (1402). Выполнение включает в себя загрузку данных (например, ссылочного указателя) из местоположения в памяти, причем местоположение в памяти обозначено посредством одного или нескольких связанных с командой полей (1404), сдвиг (например, влево) данных на величину сдвига для получения сдвинутого значения (1406), получение промежуточного результата с помощью сдвинутого значения (1408), и выполнение обнаружения защищенного сохранения на основании промежуточного результата (1410).

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

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

Кроме того, в одном варианте осуществления как показано на фиг. 14Б, величину сдвига получают из регистра, используемого для задания одного или нескольких атрибутов области защищенного сохранения (1420).

Кроме того, в качестве примера, получение промежуточного результата включает в себя коррекцию сдвинутого значения на основании режима адресации выполняющего команду процессора (1422).

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

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

Являются возможными разнообразные изменения.

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

Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством устройства выполнения команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемых информационных носителей включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или выступающие структуры в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.

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

Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, конфигурационными данными для интегральной схемотехники, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно-ориентированные языки программирования, такие как Smalltalk, С++ и т.п., а также языки процедурного программирования, такие как язык программирования «С» или подобные языки программирования.

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

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

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

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

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

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

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

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

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

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

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

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

Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры ввода-вывода. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.

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

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

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

Похожие патенты RU2731327C1

название год авторы номер документа
ОБРАБОТКА СОБЫТИЯ ЗАЩИЩЕННОГО СОХРАНЕНИЯ В ХОДЕ ТРАНЗАКЦИОННОГО ВЫПОЛНЕНИЯ 2017
  • Грайнер Дэн
  • Джекоби Кристиан
  • Сапорито Энтони
  • Следжел Тимоти
  • Сам Чхунлун
  • Папроцкий Володимир
RU2728849C1
ЗАГРУЗКА И СОХРАНЕНИЕ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ, РЕГУЛИРУЮЩИХ ФУНКЦИОНИРОВАНИЕ СРЕДСТВА ЗАЩИЩЕННОГО СОХРАНЕНИЯ 2018
  • Грайнер Дэн
  • Следжел Тимоти
  • Джекоби Кристиан
  • Сапорито Энтони
  • Папроцкий Володимир
  • Митран Марсель
RU2727614C1
СОХРАНЕНИЕ/ВОССТАНОВЛЕНИЕ ВЫБРАННЫХ РЕГИСТРОВ ПРИ ТРАНЗАКЦИОННОЙ ОБРАБОТКЕ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
RU2562424C2
БЛОК ДИАГНОСТИКИ ТРАНЗАКЦИЙ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
  • Марсель Митран
RU2571397C2
ФИЛЬТРАЦИЯ ПРОГРАММНОГО ПРЕРЫВАНИЯ В ТРАНЗАКЦИОННОМ ВЫПОЛНЕНИИ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
  • Марсель Митран
RU2568923C2
СПОСОБ И СИСТЕМА ДЛЯ УПРАВЛЕНИЯ ВЫПОЛНЕНИЕМ ВНУТРИ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ 2012
  • Дан Ф. Грейнер
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
  • Питер Джереми Релсон
  • Рандалл Уилльям Филли
RU2577487C2
КОМАНДА НА НЕТРАНЗАКЦИОННОЕ СОХРАНЕНИЕ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
RU2568324C2
ВЫПОЛНЕНИЕ ВЫНУЖДЕННОЙ ТРАНЗАКЦИИ 2012
  • Дан Ф. Грейнер
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
RU2549112C2
Связанное с выбранными архитектурными функциями администрирование обработки 2015
  • Гшвинд Михаэль Карл
  • Гейни Чарлз
RU2665243C2
ОБРАБОТКА ТРАНЗАКЦИЙ 2013
  • Грейнер Дан
  • Джейкоби Кристиан
  • Слегел Тимоти
RU2606878C2

Иллюстрации к изобретению RU 2 731 327 C1

Реферат патента 2020 года КОМАНДА ЗАЩИЩЕННОЙ ЛОГИЧЕСКОЙ ЗАГРУЗКИ И СДВИГА

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

Формула изобретения RU 2 731 327 C1

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

получение команды на выполнение операции загрузки и сдвига и выполнение команды, причем выполнение содержит:

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

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

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

2. Машиночитаемый информационный носитель по п. 1, причем данные содержат ссылочный указатель.

3. Машиночитаемый информационный носитель по п. 1, причем сдвиг содержит сдвиг данных влево на величину сдвига для получения сдвинутого значения.

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

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

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

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

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

6. Машиночитаемый информационный носитель по п. 5, причем

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

7. Машиночитаемый информационный носитель по п. 6, причем выбранное местоположение является заданным посредством поля команды регистром.

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

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

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

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

получение команды на выполнение операции загрузки и сдвига и выполнение команды, причем выполнение содержит:

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

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

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

12. Компьютерная система по п. 11, причем выполнение обнаружения защищенного сохранения содержит:

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

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

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

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

14. Компьютерная система по п. 11, причем получение промежуточного результата содержит коррекцию сдвинутого значения на основании режима адресации выполняющего команду процессора.

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

16. Компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении, включающий:

получение команды на выполнение операции загрузки и сдвига и выполнение команды, причем выполнение содержит:

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

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

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

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

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

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2020 года RU2731327C1

Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
Многоступенчатая активно-реактивная турбина 1924
  • Ф. Лезель
SU2013A1
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРЕДСКАЗАНИЯ ВЕТВЛЕНИЙ 2012
  • Сметс Жан-Поль
  • Рейсхаувер Эрик
RU2602335C2

RU 2 731 327 C1

Авторы

Грайнер Дэн

Следжел Тимоти

Джекоби Кристиан

Сапорито Энтони

Папроцкий Володимир

Митран Марсель

Даты

2020-09-01Публикация

2018-01-03Подача