КОМАНДА ПРОВЕРКИ НА ОЖИДАЮЩИЕ ВНЕШНИЕ ПРЕРЫВАНИЯ
CHECKING COMMAND FOR PENDING EXTERNAL INTERRUPTS

Область техники
Один или несколько аспектов относятся, в целом, к обработке в вычислительном окружении и, прежде всего, к обеспечению такой обработки.
Уровень техники
Вычислительные окружения зачастую предлагают механизм для обеспечения прерывания для изменения последовательности обработки в вычислительном окружении. Сигнал прерывания (также называемый прерыванием) является сигналом для операционной системы или процессора, в качестве примеров, служащий для временного прекращения выполнения конкретной программы с целью выполнения другой задачи. В качестве примера, один тип прерывания, внешнее прерывание, принуждает работающую в текущий момент времени программу к приостановке для обработки прерывания с целью выполнения подпрограммы операционной системы с более высоким приоритетом. Механизм прерывания в центральном вычислительном устройстве принуждает к ответвлению от действующей программы к выбранной подпрограмме для другой обработки. После того, как прерывание завершается, выполнение приостановленной программы может быть возобновлено.
Для операционной системы является выгодным предоставление ей возможности оповещения о наличии ожидающего прерывания для конкретного ресурса в то время, когда она остается деактивированной для этого класса прерываний. Также является полезным предоставления возможности выявления наличия ожидающего внешнего прерывания.
Этот тип обработки также может быть произведен и для других типов прерываний.
Поэтому на уровне техники имеется потребность в разрешении вышеуказанной проблемы.
Сущность изобретения
Одним объектом изобретения является компьютерно-реализуемый способ обеспечения обработки в вычислительном окружении, включающий получение команды на проверку наличия одного или нескольких ожидающих внешних прерываний, каковыми являются прерывания, происходящие из пределов компьютерной системы, являющиеся внешними по отношению к программе и отличные от прерывания ввода/вывода, происходящего из устройства ввода-вывода, и выполнение этой команды, включающее: выявление, на основе предоставленной командой информации, одного или нескольких подлежащих проверке подклассов внешних прерываний; проверку наличия одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний, причем проверку выполняют, когда управляющая программа вычислительного окружения деактивирована для одного или нескольких подклассов внешних прерываний; и указание на наличие одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний, причем внешнее прерывание считают ожидающим для подкласса внешнего прерывания независимо от того, активирован ли этот подкласс внешнего прерывания.
Другим объектом изобретения является компьютерная система для обеспечения обработки в вычислительном окружении, содержащая память и взаимодействующий с памятью процессор и выполненная для осуществления способа, включающего получение команды на проверку наличия одного или нескольких ожидающих внешних прерываний, каковыми являются прерывания, происходящие из пределов компьютерной системы, являющиеся внешними по отношению к программе и отличные от прерывания ввода/вывода, происходящего из устройства ввода-вывода, и выполнение этой команды, включающее: выявление, на основе предоставленной командой информации, одного или нескольких подлежащих проверке подклассов внешних прерываний; проверку наличия одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний, причем проверку выполняют, когда управляющая программа вычислительного окружения деактивирована для одного или нескольких подклассов внешних прерываний; и указание на наличие одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний, причем внешнее прерывание считают ожидающим для подкласса внешнего прерывания независимо от того, активирован ли этот подкласс внешнего прерывания.
Еще одним объектом изобретения является машиночитаемый информационный носитель, считываемый посредством устройства обработки данных и сохраняющий подлежащие выполнению посредством устройства обработки данных команды для осуществления предлагаемого в изобретении способа, описанного выше.
Настоящее изобретение также может быть реализовано в компьютерной программе, содержащей участки программного кода, сохраняемой на машиночитаемом носителе и загружаемой во внутреннюю память цифровой вычислительной машины, когда данная программа выполняется на компьютере для выполнения этапов изобретения.
Кроме того, настоящее изобретение также может быть реализовано в компьютерной программе, содержащей участки программного кода, сохраняемой на машиночитаемом носителе и загружаемой во внутреннюю память предлагаемой в изобретении системы, когда данная программа выполняется системой для выполнения этапов изобретения.
Недостатки известного уровня техники преодолены, а дополнительные преимущества обеспечены посредством предоставления компьютерного программного продукта для обеспечения обработки в вычислительном окружении. Компьютерный программный продукт содержит информационный носитель, который может быть считан посредством устройства обработки данных, и который сохраняет подлежащие выполнению для осуществления способа команды. Способ включает в себя, например, получение команды на проверку наличия одного или нескольких ожидающих внешних прерываний, а также выполнение команды, которое выполнение включает в себя: выявление на основе предоставленной командой информации одного или нескольких подлежащих проверке подклассов внешних прерываний, проверку наличия одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний, и указание на наличие или отсутствие одного или нескольких ожидающих внешних прерываний для одного или нескольких проверяемых подклассов внешних прерываний.
Относящиеся к одному или нескольким аспектам способы и системы также описаны и заявлены в настоящем документе. Кроме того, относящиеся к одному или нескольким аспектам услуги также описаны и могут быть заявлены в настоящем документе.
Посредством методов настоящего изобретения осуществляются дополнительные признаки и преимущества. Другие варианты осуществления и аспекты подробно описаны в настоящем документе и считаются частью заявленного изобретения.
Краткое описание чертежей
Настоящее изобретение в дальнейшем описывается исключительно в качестве примера с отсылками на предпочтительные варианты осуществления, как показано на последующих чертежах:
Фиг. 1А изображает один пример вычислительного окружения согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 1Б изображает дополнительные подробности процессора на фиг. 1А, согласно аспекту настоящего изобретения,
Фиг. 2А изображает другой пример вычислительного окружения, согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 2Б изображает более подробную информацию по памяти на фиг. 2А,
Фиг. 3 изображает один пример команды проверки на ожидающие внешние прерывания, согласно предпочтительному варианту осуществления настоящего изобретения, и
Фиг. 4 изображает один пример обработки, связанной с командой проверки на ожидающие внешние прерывания на фиг. 3, согласно предпочтительному варианту осуществления настоящего изобретения.
Подробное описание
Согласно одному или нескольким аспектам настоящего изобретения, обработка в вычислительном окружении облегчена путем предоставления возможности проверки на ожидающие внешние прерывания. При рассмотрении в настоящем документе, термин "внешнее прерывание" обозначает прерывание, которое происходит из пределов компьютерной системы, имеющей одни или несколько (например, сильно связанных) процессоров, но являющееся внешним по отношению к программе. Оно отличается от прерывания ввода/вывода, которое происходит из устройства ввода-вывода или канальной подсистемы.
Путем выявления наличия ожидающего внешнего прерывания, управляющая программа, такая как операционная система, является способной к принятию мер для обеспечения обработки в окружении, которые могут включать в себя выполнение задачи, или даже избегание или предупреждение появления задачи. Например, управляющая программа имеет потенциальную возможность ускорения разрешения конфликтов на уровне использования ресурсов или выхода из тупиковых сценариев путем предотвращения некоторых действий. Например, управляющая программа имеет возможность предотвращения выполнения услуги с длительным временем выполнения для задачи, временной промежуток которой истекает, или предотвращения получения блокировки, когда программа получает прерывание с заблаговременным предупреждением, указывающее на то, что логический процессор операционной системы приближается к моменту прекращения его диспетчеризации посредством программы гипервизора. Имеются также и другие подобные примеры.
Инструмент для проверки на ожидающие внешние прерывания включает в себя команду проверки на ожидающие внешние прерывания, которая проверяет на наличие ожидающих внешних прерываний на основании, например, одного или нескольких заданных программой подклассов, независимо от того, активирована ли целевая аппаратная платформа для этих классов прерываний, как дополнительно описано ниже.
Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 1А. В одном примере вычислительное окружение основано на IBM z/Архитектуре. Один вариант осуществления Z/Архитектуры описан в публикации IBM под названием "z/Архитектура, принципы работы" (z/Architecture, Principles of Operation), публикация IBM № SA22-7832-10, март 2015.
В другом примере вычислительное окружение основано на IBM Архитектуре Power. Один вариант осуществления Архитектуры Power описан в публикации "Power ISA Version 2.07B", International Business Machines Corporation, от 9 апреля 2015. IBM, Power, Power Architecture, PowerPC, System z, z/VM, and z/Architecture являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру.
Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектуре Intel x86. Имеются также и другие примеры.
Как показано на фиг. 1А, вычислительное окружение 100 включает в себя, например, компьютерную систему 102, показанную, например, в виде вычислительного устройства общего назначения. Компьютерная система 102 может включать в себя, но этим не ограничивается, один или несколько процессоров или вычислительных устройств 104 (например, центральных вычислительных устройств (CPU)), память 106 (называемую основной памятью или запоминающим устройством, в качестве примеров), и один или несколько интерфейсов 108 ввода/вывода, соединенных друг с другом через одну или несколько шин и/или других присоединений 110.
Шина 110 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (MCA), шину Расширенной 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 или сервер IBM pSeries, и/или другие машины, основанные на архитектуре, предлагаемой 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 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции. Intel является торговой маркой или зарегистрированной торговой маркой Intel Corporation или ее филиалов в Соединенных Штатах и других странах.
Кроме того, код 212 эмулятора включает в себя подпрограмму 260 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 260 управления эмуляцией может принудить предназначенное для исходной среды CPU 202 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 256 исходной среды может включать в себя загрузку данных в регистр из памяти 204, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 202. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 210 предназначенного для исходной среды CPU или при помощи местоположений в памяти 204. В вариантах осуществления гостевые команды 250, команды 256 исходной среды и код 212 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод и/или милликод процессора. Оно включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления оно включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования и управляющий доступом операционной системы к оборудованию системы.
Гостевая команда 250, которую получают, транслируют и выполняют, представлена, например, описанной в настоящем документе командой командой проверки на ожидающие внешние прерывания. Команду, которая имеет одну архитектуру (например, Z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 256 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Такие команды исходной среды затем выполняют.
В одном варианте осуществления, команда проверки на ожидающие внешние прерывания проверяет на наличие ожидающих внешних прерываний на основании, например, одного или нескольких заданных программой подклассов, независимо от того, активирована ли целевая аппаратная платформа для этих классов прерываний и без сброса состояния ожидающего внешнего прерывания. Может быть много причин для проверки на ожидающие внешние прерывания. Например, управляющая программа (например, операционная система) может функционировать деактивированным для прерываний образом по ряду причин, включая сюда, например, администрирование очередями, такими как очереди прерываний, диспетчеризацию задач, и т.д. Кроме того, в различных случаях, управляющая программа может нуждаться в выявлении эффективности действия до совершения попытки его осуществления. Такие типовые действия включают в себя диспетчеризацию в виртуальном окружении, процесс, удерживающий критическую блокировку системы, когда гипервизор, который администрирует виртуальными машинами окружения, приближается к моменту прекращения диспетчеризации логического CPU (потенциальная возможность таймаута блокировки), диспетчеризацию процесса при наличии высокоприоритетных ожидающих прерываний, которые имеют возможность вмешательства в процесс (например, сигнализация о сбое, аварийный сигнал), и т.д. Таким образом, согласно аспекту настоящего изобретения, предоставлен механизм проверки на незаконченные внешние прерывания. Это механизм включает в себя, например, команду проверки на ожидающие внешние прерывания. В одном варианте осуществления, команда проверки на ожидающие внешние прерывания является отдельной архитектурно выполненной машинной командой на аппаратном/программном интерфейсе.
Один пример команды проверки на ожидающие внешние прерывания описан с отсылками на фиг. 3. В одном примере, команда 300 проверки на ожидающие внешние прерывания (TPEI) включает в себя поле 302 операционного кода (кода операции) (OPCODE), имеющее код операции для обозначения операции проверки на ожидающие внешние прерывания, поле (R1) 304 первого регистра, и поле (R2) 306 второго регистра. В одном варианте осуществления, поля команды являются отдельными и независимыми друг от друга. Однако в другом варианте осуществления, поля в числе более одного могут быть объединены друг с другом. Кроме того, связанный с полем команды нижний индекс обозначает операнд, к которому применяют поле. Например, любое поле, имеющее нижний индекс 1, связано с первым операндом, любое поле, имеющее нижний индекс 2, связано со вторым операндом и т.д.
В одном примере, заданный в R2 306 регистр включает в себя маску 310, представляющую один или несколько подклассов внешних прерываний, которые могут быть выбраны для проверки на ожидающие внешние прерывания. В одном варианте осуществления эти внешние прерывания происходят из пределов компьютерной системы, имеющей один или несколько (например, сильносвязанных) процессоров, но являются внешними для программы, и не исходят от устройств ввода-вывода или канальной подсистемы. Типовые подклассы, которые могут быть выбраны для проверки, и связанные с ними типовые позиции битов в пределах маски показаны ниже. В одном варианте осуществления, другие биты в общем регистре R2 зарезервированы и должны содержать ноли, в противном случае, программа может не иметь совместимости в будущем.
Бит Подкласс внешнего прерывания
30 Прерывание с заблаговременным предупреждением (используемое, например, для предупреждения программы (например, операционной системы) или процессора о наличии периода отсрочки, в течение которого может быть выполнена функция (например, очистки и т.д.)).
48 Сигнализация о сбое (используемая, например, для предупреждения программы или процессора о том, что другое CPU в конфигурации испытало сбой (например, вошло в режим контрольного останова или потеряло питание)),
49 Аварийный сигнал (используемый, например, для высокоприоритетного межпроцессорного обмена сигналами в пределах компьютерной системы),
50 Внешний вызов (используемый, например, для межпроцессорного обмена сигналами в пределах компьютерной системы).
Могут быть предоставлены также многие другие подклассы. В другом варианте осуществления, для проверки могут быть выбраны один или несколько из следующих подклассов:
Бит Подкласс
52 Компаратор генератора импульсов (используемый, например, для указания на превышение действующими часами времени суток предварительно заданного компаранда),
53 Таймер CPU, используемый, например, для указания на истечение предварительно заданного периода процессорного времени),
54 Служебный сигнал (используемый, например, для сообщения с логическим служебным процессором),
57 Ключ прерывания (используемый, например, для указания на ручное вмешательство оператора), 58 Сигнализация об измерениях (используемая, например, для указания на различные изменения в измерительном средстве CPU),
59 Сигнализация о согласовании по времени (используемая, например, для указания на различные сигналы от внешних привязок по времени).
Имеются также и другие возможности.
В одном варианте осуществления, для этой команды, прерывание считают ожидающим для подкласса независимо от того, активирован ли подкласс в выбранном регистре управления, таком как элемент 0 управления, и независимо от настройки выбранного бита в другом регистре управления, таком как слово состояния программы (PSW), как далее описано в настоящем документе. В одном примере, управляющий регистр 0 используют для предоставления управляющей информации в CPU. Он включает в себя указатели для каждого из упомянутых выше подклассов. В одном примере, упомянутые выше номера битов представлены теми же номерами битов в управляющем регистре для соответствующих подклассов. Когда биту в управляющем регистре 0 задают значение, например единица, активируется соответствующий подкласс. Кроме того, например, слово состояния программы является управляющим регистром, выполняющим функции регистра состояния и счетчика программы. Оно содержит информацию, используемую для надлежащего выполнения программы, в том числе, но не ограничиваясь, условный код, адрес команды и другую информацию. Выбранный бит, например, бит 7 в составе PSW обозначает внешнюю маску и управляет активацией CPU для прерываний посредством включаемых во внешний класс условий, таких как упомянутые выше условия, в качестве примеров.
Как указано выше, в дополнение к полю R2, команда проверки на ожидающие внешние прерывания также включает в себя поле 304 R1, которое обозначает общий регистр, имеющий маску 320 подклассов ожидающих прерываний, то есть маску, указывающую на то, являются ли для выбранных подклассов внешние прерывания ожидающими.
В одном примере функционирования команды проверки на ожидающие внешние прерывания, когда внешнее прерывание является ожидающим для обозначенного подкласса, соответствующему биту в общем регистре R1 задают значение, например единица, в противном случае, соответствующему биту в общем регистре R1 задают значение, например ноль. Другим позициям битов в общем регистре R1 задают, например, нулевые значения.
Когда итоговая позиция бита в общем регистре R1 содержит, например, единицу, команда завершается путем задания условного кода 1, в качестве примера, в противном случае, команда завершается путем задания условного кода 0, в качестве примера. Прежде всего, в зависимости от выполнения, может быть представлен один из следующих итоговых условных кодов: 0 - ни один из проверенных подклассов внешних прерываний не является ожидающим, или никакие подклассы не были проверены, или 1 - один или несколько из проверенных подклассов внешних прерываний являются ожидающими.
Кроме того, могут произойти следующие программные исключения: операция (средство проверки на ожидающие внешние прерывания не инсталлировано), привилегированная операция, и/или ограничение транзакции (выполняющаяся транзакция является ограниченной).
В одном варианте осуществления, команда проверки на ожидающие внешние прерывания не учитывает активацию подкласса. Кроме того, в одном варианте осуществления для Z/Архитектуры, заданные позиции битов в общих регистрах R1 и R2 соответствуют позициям битов соответствующих управляющих элементов по активации подкласса внешних прерываний, например, в управляющем регистре 0.
В другом аспекте, команда проверки на ожидающие внешние прерывания может быть использована с выполнением в режиме интерпретации, например, в виртуальных окружениях. В одном варианте осуществления, аппаратное оборудование/встроенное программное обеспечение гипервизора или хоста (например, z/VM) и процессора (например, System z) взаимодействуют друг с другом управляемым совместным способом с целью обработки операций гостевой операционной системы без необходимости в передаче управления между гостевой операционной системой и хостом. Гостевые операции могут быть выполнены непосредственно, без вмешательства хоста, с помощью средства, позволяющего командам выполняться в режиме интерпретации для гостя с режимом записи в память со страничной организацией. Это средство предоставляет команду запуска выполнения в режиме интерпретации (Start Interpretive Execution) (SIE), которую хост может выдавать путем назначения блока управления, называемого описанием состояния, который содержит состояние и управляющие воздействия гостя (виртуальной машины), такие как, например, указатели архитектурного режима гостя, архитектурные признаки гостя, гостевые регистры, управляющие элементы выполнения и т.д. Команда SIE переводит машину в режим интерпретационного выполнения, в котором гостевые команды и прерывания обрабатываются непосредственно до тех пор, пока не возникает состояние, требующее вмешательства хоста. Когда такое состояние возникает, выполнение в режиме интерпретации заканчивается и, либо реализуется прерывание хоста, либо команда SIE завершает сохранение деталей возникшего состояния, это последнее действие называют перехватом. Команда проверки на ожидающие внешние прерывания может быть также использована и в описанном выше окружении.
Например, команда проверки на ожидающие внешние прерывания может быть использована для проверки на прерывания с заблаговременным предупреждением, которые являются доступными, в одном варианте осуществления, в гостевых конфигурациях, но не в негостевых конфигурациях. Поскольку, в одном варианте осуществления, средство с заблаговременным предупреждением является недоступным в негостевых конфигурациях, биту 30 общего регистра R1 не задают значение, например единица, для конфигурации, функционирующей на уровне 0 хоста (например, гипервизора). Имеются также и другие примеры.
В одном примере, выполнение в режиме интерпретации команды проверки на ожидающие внешние прерывания задает управляющий элемент выполнения в описании состояния. В одном варианте осуществления, выбранный бит, например, бит 3 поля управляющего элемента D (ECD) выполнения описания состояния управляет возможностью выполнения TPEI в режиме интерпретации.
Когда предпринимают попытку гостевого выполнения TPEI, но ECD.3 не задано значение, например единица, гостевое выполнение оказывается подавленным, и распознается состояние перехвата команды (например, код 4).
Кроме того, в зависимости от выполнения команды TPEI, может быть исследовано поле запроса на вмешательство (V) описания состояния. Например, биты заблаговременного предупреждения (T) и внешнего вызова (X) (то есть, биты 2 и 4, соответственно) поля V могут быть исследованы в зависимости от заданных в маске 310 битов, соответствующих данным подклассам (например, битов 30 и 50).
Кроме того, в описании состояния задают новое расширенное поле (VX) запроса на вмешательство. Биты 0 и 1 поля VX представляют собой специфичные для потока указатели на наличие ожидающих прерываний по гостевому аварийному сигналу и прерываний по гостевой сигнализации о сбое, соответственно. Значения этим битам задает и сбрасывает хост-программа, а их исследование производят в зависимости от выполнения в режиме интерпретации TPEI. Например, биты 0 и 1 поля VX исследуют в зависимости, например, от битов 49 и 48, заданных в маске 310.
Другие примеры также являются возможными.
Более подробная информация относительно аспектов команды проверки на ожидающие внешние прерывания описана с отсылками на фиг. 4. В одном примере, получают команду на проверку наличия ожидающих внешних прерываний, например команду проверки на ожидающие внешние прерывания, ЭТАП 400. Эта команда, например, является отдельной архитектурно выполненной командой. Затем команду выполняют посредством процессора, ЭТАП 402.
Выполнение включает в себя, например, выявление на основе предоставленной командой информации одного или нескольких подлежащих проверке подклассов внешних прерываний, ЭТАП 404. Например, включенная в состав обозначенного как R2 регистра команды маска включает в себя несколько индикаторов (например, несколько битов). Один или несколько индикаторов соответствуют одному или нескольким подклассам внешних прерываний, которые могут быть выбраны для проверки на ожидающие внешние прерывания. Например, один индикатор (например, бит 30) соответствует прерываниям с заблаговременным предупреждением, один индикатор (например, бит 48) соответствует сигнализации о сбое, один индикатор (например, бит 49) соответствует аварийному сигналу, и еще один индикатор (например, бит 50) соответствует внешнему вызову. Когда индикатору задано конкретное значение, например единица, соответствующий заданному индикатору подкласс подлежит проверке на ожидающие внешние прерывания. Например, когда биту 49 задано значение единица, выполняют проверку на ожидающие внешние прерывания для аварийных сигналов. Могут быть заданы один или несколько индикаторов.
Для каждого заданного индикатора осуществляют проверку относительно того, являются ли ожидающими внешние прерывания для подкласса, соответствующего заданному индикатору, ЭТАП 406. Например, когда задано значение биту 49, осуществляют проверку относительно того, являются ли ожидающими внешние прерывания для аварийных сигналов, ЭТАП 406. В одном примере, для этой проверки, в том случае, когда не является применимым какое-либо выполнение в режиме интерпретации, CPU отслеживает наличие ожидающих внешних прерываний, и CPU проверяет свои регистры-защёлки для ожидающих прерываний для выявления того, является ли прерывание ожидающим.
В том случае, когда выполнение в режиме интерпретации является применимым, аппаратные прерывания предоставляют хосту, и хост выявляет, направлены ли они гостю. Если они направлены гостю, хост задает значения битам ожидающего прерывания в описании состояния гостя. Если гость активирован для класса прерываний, когда он диспетчеризирован, прерывания предоставляют гостю, в противном случае, прерывание остается ожидающим. Когда гостевая программа выполняет команду TPEI, CPU (например, милликод) исследует ожидающие биты в описании состояния гостя с целью формулировки ответа.
Когда внешнее прерывание является ожидающим для проверяемого подкласса, предоставляют указатель как таковой, ЭТАП 408. Например, задают значение (например, единица) индикатору (например, биту) в маске, предоставляемой в заданном в R1 регистре, который соответствует проверяемому подклассу. Ту же обработку производят для каждого проверяемого подкласса, имеющего ожидающие внешние прерывания.
Кроме того, например, предоставляют, например в условном коде, итоговый указатель, который указывает на наличие любых ожидающих проверяемых подклассов прерываний. Например, когда ни один из проверяемых подклассов прерываний не является ожидающим, условному коду задают значение 0, когда какой-либо из проверяемых подклассов прерываний является ожидающим, условному коду задают значение 1.
В настоящем документе подробно описана команда проверки на ожидающие внешние прерывания (TPEI), которая выявляет наличие одного или нескольких выбранных внешних ожидающих прерываний для выполняющего команду CPU. В одном варианте осуществления, TPEI выявляет наличие одного или нескольких ожидающих внешних прерываний на основании одного или нескольких конкретных подклассов, причем команда осуществляет это без очистки одного или нескольких ожидающих внешних прерываний. Путем проверки на ожидающие внешние прерывания могут быть предприняты действия, включая сюда недействия, для обеспечения обработки в вычислительном окружении и повышения ее производительности. Управляющая программа является способной к выявлению наличия ожидающего прерывания для конкретного ресурса в то время, когда она остается деактивированной для этого класса прерываний. Один или несколько аспектов настоящего изобретения неразрывно связаны с компьютерной технологией и облегчают обработку в пределах компьютера, повышая его производительность.
Настоящее изобретение может быть представлено системой, способом и/или компьютерным программным продуктом на любом возможном уровне интеграции в плане технической детализации. Компьютерный программный продукт может включать в себя машиночитаемый информационный носитель (или носители), имеющий на нем машиночитаемые программные команды для принуждения процессора к выполнению аспектов настоящего изобретения.
Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством устройства выполнения команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемых информационных носителей включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или выступающие структуры в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.
Описанные в настоящем документе машиночитаемые программные команды могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого информационного носителя или во внешний компьютер или во внешнее устройство хранения через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волокна оптической передачи, беспроводную передачу, маршрутизаторы, брандмауэры, переключения, шлюзы и/или граничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве получает машиночитаемые программные команды из сети, и направляет машиночитаемые программные команды для сохранения в машиночитаемый информационный носитель в пределах соответствующего вычислительного/обрабатывающего устройства.
Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, конфигурационными данными для интегральной схемотехники, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно-ориентированные языки программирования, такие как Smalltalk, C++ и т.п., а также языки процедурного программирования, такие как язык программирования "C" или подобные языки программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный пакет программного обеспечения, частично на компьютере пользователя, и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть присоединен к компьютеру пользователя через любой тип сети, включая сюда локальную сеть (LAN) или глобальную сеть (WAN), или присоединение может быть сделано к внешнему компьютеру (например, через Интернет с использованием Интернет-провайдера). В некоторых вариантах осуществления, электронные схемы, включающие в себя, например, программируемые логические схемы, программируемые на месте вентильные матрицы (FPGA) или программируемые логические матрицы (PLA) могут выполнять машиночитаемые программные команды посредством использования информации о состоянии машиночитаемых программных команд для настройки электронной схемы с целью выполнения аспектов настоящего изобретения.
Аспекты настоящего изобретения описаны в настоящем документе с отсылками на иллюстрации в виде блок-схем и/или блок-диаграмм для способов, устройств (систем) и компьютерных программных продуктов согласно вариантам осуществления изобретения. Подразумевается, что каждый блок иллюстраций в виде блок-схем и/или блок-диаграмм, а также комбинации блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, могут быть реализованы посредством машиночитаемых программных команд.
Такие машиночитаемые программные команды могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для образования машины таким образом, что выполняющиеся посредством процессора компьютера или другого программируемого устройства обработки данных команды создают средства для реализации функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы. Такие машиночитаемые программные команды также могут быть сохранены в машиночитаемом информационном носителе, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами для их функционирования особым способом таким образом, что сохраняющий на нем команды машиночитаемый информационный носитель представляет собой изделие, содержащее команды, которые реализуют аспекты функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы.
Машиночитаемые программные команды могут также быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство для принуждения к выполнению на компьютере, другом программируемом устройстве или другом устройстве серии эксплуатационных этапов для получения такого компьютерно-реализованного процесса, что выполняемые на компьютере, другом программируемом устройстве или другом устройстве инструкции реализуют функции/действия, заданные в блоке или блоках блок-схемы и/или блок-диаграммы.
Блок-схемы и блок-диаграммы на чертежах показывают архитектуру, функциональность и функционирование возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении каждый блок в блок-схемах или блок-диаграммах может представлять модуль, сегмент или участок команд, который содержит одну или несколько исполнимых команд для реализации указанной логической функции (функций). В некоторых альтернативных реализациях указанные в блоках функции могут осуществляться в порядке, отличном от приведенного на чертежах. Например, два блока, показанные по очереди, могут, фактически, быть выполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от предусмотренной к выполнению функциональности. Необходимо также отметить, что каждый блок на иллюстрациях в виде блок-схем и/или блок-диаграмм, а также в комбинациях блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством основанных на аппаратных средствах систем особого назначения, которые выполняют указанные функции или действия или выполняют комбинации аппаратных и компьютерных команд особого назначения.
В дополнение к вышеупомянутому, один или несколько аспектов могут быть предоставлены, предложены, развернуты, управляемы, обслуживаемы и т.д. поставщиком услуг, предлагающим управление окружениями заказчика. Например, поставщик услуг может создавать, обслуживать, поддерживать и т.д. машинный код и/или компьютерную инфраструктуру, выполняющую один или несколько аспектов для одного или нескольких клиентов. В свою очередь, поставщик услуг может получать оплату от клиента в рамках соглашения о подписке и/или о сборах, в качестве примеров. Дополнительно или альтернативно, поставщик услуг может получать оплату от продажи рекламного содержимого одному или нескольким третьим лицам.
В одном аспекте приложение может быть развернуто для выполнения одного или нескольких предпочтительных вариантов осуществления. В качестве примера, развертывание приложения предусматривает обеспечение компьютерной инфраструктуры, действующей для выполнения одного или нескольких вариантов осуществления.
В качестве другого аспекта, может быть развернута вычислительная инфраструктура, содержащая в вычислительной системе интегрирующий машиночитаемый код, в которой код, в сочетании с вычислительной системой, способен к выполнению одного или нескольких вариантов осуществления.
В качестве еще одного аспекта, может быть предоставлен способ интеграции содержащей интегрирующий машиночитаемый код вычислительной инфраструктуры в компьютерную систему. Компьютерная система содержит машиночитаемый носитель, который компьютерный носитель содержит один или несколько вариантов осуществления. Код в сочетании с компьютерной системой способен к выполнению одного или нескольких вариантов осуществления.
Хотя различные варианты осуществления описаны выше, они являются только примерами. Например, вычислительные окружения другой архитектуры могут быть использованы для охвата и использования одного или нескольких вариантов осуществления. Кроме того, могут быть использованы различные команды, форматы команд, поля команд и/или значения команд. Являются возможными разнообразные изменения.
Кроме того, могут быть использованы и оказаться выгодными другие типы вычислительных окружений. В качестве примера, является применимой подходящая для сохранения и/или выполнения программного кода система обработки данных, которая включает в себя по меньшей мере два процессора, соединенных прямо или косвенно через системную шину с элементами памяти. Элементы памяти включают в себя, например, локальную память, используемую в процессе фактического выполнения программного кода, запоминающее устройство большого объема и кеш-память, которая предоставляет временное сохранение по меньшей мере части программного кода с целью уменьшения числа выборок из запоминающего устройства большого объема в процессе выполнения.
Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры ввода/вывода. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
Используемая в настоящем документе терминология служит исключительно целям описания конкретных вариантов осуществления и не предназначается для ограничения изобретения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. Кроме того, подразумевается, что термины "содержит" и/или "содержащий" при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.