Условный переход к заданному непрямым образом местоположению

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

 

Уровень техники

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

Обработка в вычислительном окружении зачастую включает в себя использование команд перехода, передающих управление от одной части компьютерной программы к другой части программы. Имеются различные типы команд перехода, включая сюда команды условного перехода, передающие управление к другой части программы в зависимости от результатов ранее установленного условия, например, в зависимости от результатов команды сравнения. Одним из примеров команды условного перехода является команда Перехода по условию, включенная в состав Архитектуры системы команд (ISA) z/Архитектуры, предлагаемой International Business Machines Corporation, Армонк, Нью -Йорк.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 3Б изображает более подробную информацию по памяти на фиг. 2А, Фиг. 3А изображает один пример Команды непрямого перехода по условию, согласно аспекту настоящего изобретения,

Фиг. 3Б изображает один пример информации, относящейся к полю маски на фиг. 3А, согласно аспекту настоящего изобретения,

Фиг. 3В изображает один пример слова состояния программы (PSW), используемого согласно аспекту настоящего изобретения,

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

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

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

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

команды является дополнительно описанная ниже Команда непрямого перехода по условию.

Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 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.07B» (Power ISA™ Version 2.07B), International Business Machines Corporation, от 9 апреля 2015, включённой в настоящий документ путём отсылки в полном объёме. Power Architecture является

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

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

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

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

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

Компьютерная система 102 также может быть сообщена через, например, I/O интерфейсы 108 с одним или несколькими внешними I/O устройствами 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, Intel или другими компаниями.

Предназначенное для исходной среды центральное вычислительное устройство 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 и т.д.). Такие команды исходной среды затем выполняют.

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

Как показано на фиг. 3А, в одном варианте осуществления, Команда 300 непрямого перехода по условию (BIC) включает в себя поля 302a, 302b операционного кода (кода операции) (OPCODE), указывающие на операцию непрямого перехода по условию, поле (M1) 304 маски, индексное поле (X2) 306, основное поле (B2) 308, и поле смещения, которое содержит первое поле 310a смещения (DL2) и второе поле 310b смещения (DH 2), каждое из которых описано ниже. В одном варианте осуществления, поля являются отдельными инезависимыми друг от друга, однако, в других вариантах осуществления, поля в числе более одного могут быть объединены друг с другом. Кроме того, связанный с полем команды нижний индекс обозначает операнд, к которому применяют поле. Например, любое поле, имеющее нижний индекс 1, связано с первым операндом, любое поле, имеющее нижний индекс 2, связано со вторым операндом и т.д.

В одном примере, поле 304 маски используют в качестве четырех-битовой маски. Как показано на фиг. 3Б, четыре условных кода 320 (например, 0, 1, 2, и 3) соответствуют, слева направо, четырем битам маски. Действующий условный код (например, условный код ранее выполненной команды) используют для выбора соответствующего бита маски. Когда выбранный посредством условного кода бит маски, например, представлен единицей, переход является успешным. Когда выбранный бит маски, например, представлен нолем, нормальный порядок следования команд продолжается очередной последовательной командой.

Как показано на фиг. 3Б, в одном варианте осуществления, каждый условный код 320 соответствует номеру 322 бита команды маски 304, и имеет связанное значение 324 разряда маски. Например, условный код 0 соответствует номеру бита команды 8 и имеет значение разряда маски 8 (то есть, поскольку условные коды заданы в маске слева направо, условный код 0 находится в крайнем левом положении четырех-битовой маски (23=8)), условный код 1 соответствует номеру бита команды 9 и имеет значение разряда маски 4, условный код 2 соответствует номеру бита команды 10 и имеет значение разряда маски 2, и условный код 3 соответствует номеру бита команды 11 и имеет значение разряда маски 1.

Действующий условный код сохраняют, например, в управляющем регистре, таком как слово состояния программы (PSW). Слово состояния программы выполняет функции регистра состояния и счетчика программы. Оно содержит используемую для надлежащего выполнения программы информацию. Например, его используют для управления порядком следования команд, а также для удержания и отображения состояния процессора относительно выполняемой в настоящее время программы. В одном примере, как показано на фиг. 3В, слово 350 состояния программы включает в себя условный код 352, режим 354 адресации (например, 64-битовый режим, 31 -битовый режим, 24-битовый режим), другую информацию 356, такую как, но ею не ограничиваясь,действующая динамическая трансляция адресов (DAT) и элементы управления адресным пространством, а также адрес 358 команды (показаны без соблюдения какого-либо конкретного порядка или местоположения в регистре). Условному коду 352 задают значения 0, 1, 2, или 3 в зависимости от результата, полученного при выполнении некоторых команд, условный код в PSW является действующим условным кодом. Адрес 358 команды обозначает местоположение крайнего левого байта очередной подлежащей выполнению команды.

Возвращаясь к фиг. 3А, поля 306-310b используют для определения местоположения второго операнда, то есть, местоположения в памяти, которое обозначает местоположение перехода. DL 2 в 310a и DH2 в 310b предоставляют смещение, которое обрабатывается как, например, 20-битовое двоичное целое имеющее знак число. Для определения местоположения в памяти, содержимое регистра, обозначаемое как X2 в 306 с добавлением к нему содержимого регистра, обозначаемого как B 2 в 308, добавляют к смещению, предоставленному посредством DL2 в 310a и DH2 в 301b. Это местоположение в памяти включает в себя местоположение перехода (например, адрес перехода).

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

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

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

В одном примере функционирования Команды 300 непрямого перехода по условию, адрес 358 команды в действующем слове 350 состояния программы заменяют на адрес перехода (полученный из памяти), когда условный код 352 в действующем слове 350 состояния программы обозначает позицию бита в поле 304 маски, содержащем, например, 1, в противном случае, нормальный порядок следования команд продолжается обновленным адресом команды. Обновленный адрес команды находится в PSW в поле 358. Таким образом, в z/Архитектуре, когда CPU собирается выполнить команду, но до ее выполнения, оно выбирает команду на основании адреса команды в PSW. Затем CPU выявляет на основании, например, первых двух битов команды, длину команды, и добавляет эту длину (например, 2 байта, 4 байта или 6 байтов) к адресу команды 358. Полученный адрес является обновленным адресом.

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

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

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

Графическое описание выполнения Команды непрямого перехода по условию описано с отсылками на фиг. 4. Как показано на фиг. 4, поля 306, 308, 310a и 310b команды используют 400 для выявления местоположения в памяти для получения адреса перехода. Они указывают, например, двойное слово 401 в памяти, обозначающее адрес или местоположение перехода. Этот адреснаходится под воздействием действующего способа адресации (Amode), заданного в PSW (например, Amode 64 (402), Amode 31 (404) или Amode 24 (406)), и используется для замены адреса 410 команды действующего слова состояния программы в зависимости от условного кода в PSW. Например, когда условный код в действующем слове состояния программы обозначает позицию бита в поле маски, содержащем, например, единицу, действующий адрес команды слова состояния программы заменяют на адрес перехода.

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

Как показано на фиг. 5, например, команду получают (например, предоставляют, принимают, получают обратно и т.д.), ЭТАП 500. Эта команда является, например, командой непрямого перехода по условию. Полученную команду затем выполняют, ЭТАП 502. В одном примере, выполнение включает в себя, например, получение условного кода из управляющего регистра (например, действующего слова состояния программы), ЭТАП 504. Кроме того, из обозначенного командой местоположения в памяти получают адрес перехода, ЭТАП 506. Например, содержимое заданных полями X2 и B2 регистров добавляют к смещениям в полях DL2 и DH2 для получения двойного слова в памяти, которое обозначает адрес перехода. Производят выявление относительно того, обозначает ли условный код другой команды (например, ранее выполненной команды) в действующем слове состояния программы позицию бита в поле M1, содержащую, например, 1, ИНФОРМАЦИОННЫЙ ЗАПРОС 508. Если условный код в действующем PSW не обозначает позицию бита в поле M1, содержащем, например, 1, нормальный порядок следования команд продолжается с обновленным адресом команды в PSW, ЭТАП 510. Однако если условный код в действующем слове состояния программы обозначает позицию бита в поле маски, содержащем, например, 1, имеется необходимость осуществления перехода. Таким образом, адрес команды в действующем слове состояния программы заменяется адресом перехода, а обработка продолжается к адресу перехода, ЭТАП 512.

В другом варианте осуществления, получение адреса перехода (то есть, выборка второго операнда) происходит только в случае необходимостиосуществления перехода (например, когда ИНФОРМАЦИОННЫЙ ЗАПРОС 508 имеет результатом ответ ДА, и до ЭТАПА 512). Другие изменения также являются возможными.

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

Один конкретный пример использования Команды непрямого перехода по условию показан в следующем коде:

LHI 2,0 Очистка функционального кода TRT.

TRT Буфер, ASCII Трансляция и проверка буфера на текст ASCII.

BIC Таблица (2) Переход на основании обнаруженных результатов.

Таблица DC AD (Ничего_не_обнаружено) 00 DC AD (Пробел) 08

DC AD (Алфавит_верхний) 16 (включающий в себя подчеркивание) DC AD (Алфавит_нижний) 24 DC (Числовой) AD 32 DC AD (Оператор) 40

ASCII DS 0x_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 А _B _C _D _E _F

DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) 00-0F DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) 10-1F DC AL1 (08,40,00,40,00,40,40,00,40,40,40,40,00,40,40,40) 20-2F DC AL1 (32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40) 30-3F DC AL1 (00,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16) 40-4F DC AL1 (16,16,16,16,16,16,16,16,16,16,16,40,40,40,40,16) 50-5F DC AL1 (00,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24) 60-6F DC AL1 (24,24,24,24,24,24,24,24,24,24,24,40,40,40,40,00) 70-7F DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) 80-8F DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) 90-9F DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) A0-AF

DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) B0-BF DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) C0-CF DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) D0-DF DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) E0-EF DC AL1 (00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00) F0-FF В настоящем документе подробно описана команда (например, единственная архитектурно выполненная команда), которая переходит по условию к местоположению, которое задано в памяти, в противоположность регистру (то есть, аппаратным средствам в процессоре), регистру в совокупности с основанием или относительным смещением. Предоставлена команда условного перехода, которая переходит к местоположению, которое статически или динамически выявляется посредством программы (например, местоположению памяти), причем переходит без потребности в дополнительном регистре сверх тех, которые уже доступны для программы. Например, она переходит к местоположению, когда, кроме стекового регистра программы, никакой другой регистр не является доступным или не подлежит использованию.

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

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

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

Один вариант осуществления аспектов изобретения, относящихся к обеспечению обработки в вычислительном окружении, описан с отсылками на фиг. 6A-6Б. Как показано на фиг. 6А, в одном примере, команду на выполнение условного перехода к заданному непрямым образом местоположению получают (600), и команду выполняют (602). Выполнение включает в себя, например, получение адреса перехода из местоположения в памяти, причем местоположение в памяти обозначено командой (604), выявление на основании условного кода другой команды, такой как ранее выполненная команда, необходимости осуществления перехода (606), и переход к адресу перехода, полученному из местоположения в памяти, на основании выявления необходимости осуществления перехода (608).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.

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

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

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

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

- выполнение команды, включающее в себя:

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

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

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

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

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

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

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

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

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

- проверку значения компонента и

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

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

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

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

10. Машиночитаемый информационный носитель по п. 1, причем переход содержит:

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

- продвижение к адресу перехода для продолжения обработки.

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

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

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

- выполнение команды, включающее в себя:

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

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

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

12. Компьютерная система по п. 11, причем смещение предоставляется в одном или нескольких полях команды.

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

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

- проверку значения компонента и

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

14. Компьютерная система по п. 13, причем маска является полем команды, а компонент является битом.

15. Компьютерная система по п. 11, причем переход содержит:

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

- продвижение к адресу перехода для продолжения обработки.

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

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

- выполнение команды, включающее в себя:

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

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

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

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

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

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

- проверку значения компонента и

- указание на переход на основании выявления проверкой, что значение является конкретным значением.

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

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

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

- продвижение к адресу перехода для продолжения обработки.



 

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

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

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

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

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

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

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

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

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

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

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