Связанное с выбранными архитектурными функциями администрирование обработки Российский патент 2018 года по МПК G06F9/455 

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

Область техники

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

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

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

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

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

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

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

Поэтому на уровне техники существует потребность в рассмотрении вышеупомянутой проблемы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 3Б более подробно изображает память на фиг. 3А согласно предпочтительному варианту осуществления настоящего изобретения,

Фиг. 4 изображает один вариант осуществления 64-битовой трансляции адресов согласно предпочтительному варианту осуществления настоящего изобретения,

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

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

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

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

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

Фиг. 10 изображает один вариант осуществления ассоциированной со средством No-DAT обработки согласно предпочтительному варианту осуществления настоящего изобретения,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В одном конкретном варианте обеспечивается вычислительное окружение, которое сконфигурировано для поддержки нескольких архитектурных режимов, например первого архитектурного режима, такого как расширенный режим, например z/Архитектура, и второго архитектурного режима, такого как устаревший режим, например ESA/390. В одном варианте осуществления первый архитектурный режим имеет архитектурные отличия от второго архитектурного режима, такие как обеспечение первым архитектурным режимом 64-битовой адресации и использование им 64-битовых регистров общего назначения, и обеспечение вторым архитектурным режимом 31-битовой адресации и использование им 32-битовых регистров общего назначения. Кроме того, определенные архитектурные функции, такие как DAT, поддерживаются первым архитектурным режимом и не могут быть поддержаны вторым архитектурным режимом.

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

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

В другом варианте осуществления второй архитектурный режим может предложить функции или средства, отличающиеся от первой архитектуры, но специальные архитектурные инструменты могут быть обеспечены в первом архитектурном режиме и не обеспечены во втором архитектурном режиме. В одном типовом варианте осуществления трансляция DAT обеспечивается в первой архитектуре, но не обеспечивается (в виде, заданном первой архитектурой, или в любом другом виде, например обеспечиваемом согласно одному или нескольким из числа архитектур ESA/390, S/390, S/370, S/360, Power PC, Power PC согласно Book 3E, Intel/AMD x86, Itanium или любой другой спецификации архитектуры, соответствующей DAT или подобному DAT средству) во второй архитектуре. IBM, z/OS, z/VM, z/Architecture, Processor Resource/Systems Manager, PowerPC и Power Systems являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру. Другие используемые здесь наименования могут быть представлены зарегистрированными торговыми марками, торговыми марками или названиями продукта International Business Machines Corporation или других компаний. Intel и Itanium являются торговыми марками или зарегистрированными торговыми марками Intel Corporation или ее филиалов в Соединенных Штатах и других странах.

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

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

В одном варианте осуществления средство NDAT может быть избирательно активировано в одном или нескольких вычислительных окружениях (например, процессоры, LPAR, гости). Однако, когда это средство активировано в вычислительном окружении, окружение не может использовать DAT во второй архитектуре (то есть, в ESA/390 отсутствует DAT) независимо от параметров настройки других управляющих элементов в пределах окружения.

Такие другие управляющие элементы обходят или отменяют.

Один пример вычислительного окружения для охвата и использования одного или нескольких аспектов средства No-DAT описан со ссылками на фиг. 1А. Согласно фиг. 1А в одном примере вычислительное окружение 100 основано на z/Архитектуре, предлагаемой IBM (IBM® Corporation, Армонк, Нью-Йорк), z/Архитектура описана в публикации патента IBM под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация №SA22-7932-09, 10-й выпуск, сентябрь 2012. Хотя вычислительное окружение основано на z/Архитектуре, в одном варианте осуществления оно также поддерживает одну или несколько других архитектурных конфигураций, таких как ESA/390 или подверсия ESA/390.

В качестве примера, вычислительное окружение 100 включает в себя центральный вычислительный комплекс (СРС) 102, присоединенный к одному или нескольким устройствам 106 ввода/вывода через одно или несколько устройств 108 управления. Центральный вычислительный комплекс 102 включает в себя, например, память 104 процессора (известную также под названием оперативная память, основная память, центральная память), соединенную с одним или несколькими центральными процессорами (известными также под названием центральных вычислительных устройств (ЦП)) 110, и с подсистемой 111 ввода/вывода, каждый из указанных элементов описан ниже.

Память 104 процессора включает в себя, например, один или несколько разделов 112 (например, логических разделов), а также встроенное программное обеспечение 113 процессора, которое включает в себя гипервизор 114 логического раздела и другое встроенное программное обеспечение 115 процессора. Один пример гипервизора 114 логического раздела представлен администратором ресурсов процессора/системы Processor Resource/Systems Manager™ (PR/SM), предлагаемым International Business Machines Corporation, Армонк, Нью-Йорк.

Логический раздел функционирует как отдельная система и имеет в себе одно или несколько приложений 120 и, факультативно, резидентную операционную систему 122, которая может отличаться для каждого логического раздела. В одном варианте осуществления операционная система является z/OS операционной системой, z/VM операционной системой, z/Linux операционной системой или операционной системой TPF, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Логическими разделами 112 управляет гипервизор 114 логических разделов, который реализован посредством встроенного программного обеспечения, функционирующего на процессорах 110. При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод и/или милликод процессора. Он включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте он включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования и управляющий доступом операционной системы к оборудованию системы.

Центральные процессоры 110 являются физическими процессорными ресурсами, выделенными логическим разделам. Конкретно, каждый логический раздел 112 имеет один или несколько логических процессоров, каждый из которых представляет собой, полностью или частично, выделенный разделу физический процессор 110. Логические процессоры конкретного раздела 112 могут быть либо выделены разделу таким образом, что базовый процессорный ресурс 110 резервируется для данного раздела, либо быть используемыми совместно с другим разделом таким образом, что базовый процессорный ресурс является потенциально доступным другому разделу. В одном из вариантов, один или несколько из ЦП включают в себя описанные в настоящем документе аспекты средства (функции) 130 No-DAT (NDAT).

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

Для обеспечения связи подсистема ввода/вывода использует коммуникационные адаптеры ввода/вывода.

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

Подсистема ввода/вывода использует один или несколько трактов ввода/вывода в качестве коммуникационных каналов при управлении потоком информации к устройствам 106 ввода-вывода или от них. В этом конкретном примере эти тракты называются канальными трактами, поскольку коммуникационные адаптеры являются каналами.

Другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов средства No-DAT описан со ссылками на фиг. 1Б. В этом примере вычислительное окружение 150 включает в себя центральный вычислительный комплекс 152, обеспечивающий поддержку виртуальной машине. СРС (центральный вычислительный комплекс) 152 соединен с одним или несколькими устройствами 106 ввода/вывода (ввода/вывода) через одно или несколько устройств 108 управления. Центральный вычислительный комплекс 152 включает в себя, например, память 154 процессора (известную также под названием оперативная память, основная память, центральная память), соединенную с одним или несколькими центральными процессорами (известными также под названием центральных вычислительных устройств (ЦП)) 110, и с подсистемой 111 ввода/вывода.

Память процессора 154 включает в себя, например, одну или несколько виртуальных машин 162, а также встроенное программное обеспечение 163 процессора, который включает в себя хост-гипервизор 164 и другое встроенное программное обеспечение 165 процессора. Один пример хост-гипервизора 164 представлен z/VM®, предлагаемым International Business Machines Corporation, Армонк, Нью-Йорк.

Поддержка виртуальной машины со стороны СРС обеспечивает возможность управления большим количеством виртуальных машин 162, каждая из которых способна к хостингу гостевой операционной системы 172, такой как Linux®. Каждая виртуальная машина 162 способна к функционированию в качестве отдельной системы. Таким образом, каждая виртуальная машина может быть независимо сброшена, может служить хостом для гостевой операционной системы и может работать с различными программами 120. Операционная система или прикладная программа, работающая в виртуальной машине, представляется как имеющая доступ к полной системе, но в действительности, только ее часть является доступной. Linux является зарегистрированной торговой маркой Linus Torvalds в Соединенных Штатах, в других странах, или в обеих юрисдикциях.

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

Такая модель виртуальной машины V=V (то есть, гость со страничной организацией) подразумевает, что взаимодействиями между гостевыми операционными системами и физическими совместно используемыми ресурсами машины управляет хост, поскольку большое количество гостей обычно исключает для хоста возможность простого разделения и присвоения аппаратных ресурсов сконфигурированным гостям. Один или несколько аспектов модели V=V, кроме того, описаны в публикации IBM® под названием «z/VM: Выполнение гостевых операционных систем» (z/VM: Running Guest Operating Systems), IBM® публикация № SC24-5997-02, октябрь 2001.

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

В одном варианте осуществления аппаратного оборудование/встроенное программное обеспечение хоста (например, z/VM®) и процессора (например, System z) взаимодействуют друг с другом управляемым совместным способом с целью обработки операций гостевой операционной системы V=V без необходимости в передаче управления между гостевой операционной системой и хостом. Гостевые операции могут быть выполнены непосредственно, без вмешательства хоста, с помощью средства, позволяющего командам выполняться в режиме интерпретации для гостя с режимом записи в память со страничной организацией. Это средство обеспечивает команду запуска выполнения в режиме интерпретации (Start Interpretive Execution) (SIE), которую хост может выдавать путем назначения блока управления, называемого описанием состояния, который содержит состояние и управляющие воздействия гостя (виртуальной машины), такие как управляющие элементы выполнения и управляющие элементы режима. Команда переводит машину в режим интерпретационного выполнения, в котором гостевые команды и прерывания обрабатываются непосредственно до тех пор, пока не возникает состояние, требующее вмешательства хоста. Когда такое состояние возникает, выполнение в режиме интерпретации заканчивается и, либо реализуется прерывание хоста, либо команда SIE завершает сохранение деталей возникшего состояния. Это последнее действие вызывают перехватом. Один пример выполнения в режиме интерпретации описан в работе «Система/370 - Расширенная архитектура/Выполнение в режиме интерпретации» (System/370 Extended Architecture/Interpretive Execution), IBM публикация № SA22-7095-01, сентябрь 1985.

Конкретно, в одном варианте осуществления средство выполнения в режиме интерпретации обеспечивает команду для выполнения виртуальных машин. Эта команда, называемая запуском выполнения в режиме интерпретации (Start Interpretative Execution) (SIE), выпускается хостом, создающим гостевое окружение выполнения. Хост является управляющей программой, которая непосредственно управляет реальной машиной, а гость относится к любой виртуальной или интерпретируемой машине. Машина переводится в режим интерпретационного выполнения посредством хоста, выдающим команду SIE. В этом режиме машина обеспечивает функции выбранной архитектуры (например, z/Архитектуры, ESA/390). Функции включают в себя, например, среди прочего, выполнение привилегированных и проблемных программных команд, трансляцию адресов, обработку прерываний и согласование по времени. Считается, что машина интерпретирует выполняемые ею функции в контексте виртуальной машины.

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

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

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

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

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

В дополнение к управляющим элементам выполнения, в описании состояния выполнение гостя в режиме ESA/390 или z/Архитектуры задают управляющие элементы режима, которые также осуществляют выбор одного из нескольких способов представления гостевой основной памяти гостевой виртуальной машины в памяти хоста.

Согласно одному предпочтительному варианту настоящего изобретения, в управляющем элементе состояния обеспечивается бит управления для выбора между пребыванием гостя в первом или втором архитектурном режиме (например, z/Архитектуре или ESA/390, соответственно). Согласно другому предпочтительному варианту настоящего изобретения, две различные команды могут обеспечивать хосту способность по созданию первой и второй гостевой виртуальной машины, например, могут быть обеспечены различные команды SIEz и SIEe для запуска гостевых машин в режиме z/Архитектуры и ESA/390, соответственно.

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

Более подробная информация относительно SIE изложена в работе «Интерпретирующе-выполняющая архитектура ESA/390, основания для VM/ESA» (ESA/390 interpretive-execution architecture, foundation for VM/ESA), Осисек и др. (Osisek et al), IBM Systems Journal, том 30, №1, январь 1991, стр. 34-51.

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

Другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов средства No-DAT описан со ссылками на фиг. 2. В этом примере вычислительное окружение 200 включает в себя неразбитое на разделы окружение, сконфигурированное для нескольких архитектурных режимов, включая сюда z/Архитектуру и ESA/390 или подверсию ESA/390. Это окружение включает в себя, например, процессор (центральное вычислительное устройство - ЦП) 202, который включает в себя, например, средство No-DAT (NDAT) 204, а также один или несколько кэшей 206. Процессор 202 коммуникативно соединен с имеющим один или несколько кэшей 210 участком 208 памяти и с подсистемой 212 ввода/вывода (ввода/вывода). Подсистема ввода/вывода 212 коммуникативно соединена с внешними устройствами 214 ввода-вывода, которые могут включать в себя, например, устройства ввода данных, датчики и/или устройства вывода, такие как дисплеи.

Другой предпочтительный вариант настоящего изобретения вычислительного окружения для охвата и использования одного или нескольких аспектов средства No-DAT описан со ссылками на фиг. 3А. В этом примере вычислительное окружение 300 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (ЦП) 302, память 304, а также одно или несколько устройств ввода-вывода и/или интерфейсов 306, соединенных друг с другом, например, через одну или несколько шин 308 и/или другие присоединения. Например, вычислительное окружение 300 может включать в себя процессор PowerPC или сервер Power Systems, предлагаемые International Business Machines Corporation, Армонк, Нью-Йорк, HP Superdome с процессорами Intel Itanium II, предлагаемые Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектурах, предлагаемых International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими.

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

Кроме того, предназначенное для исходной среды центральное вычислительное устройство 302 выполняет команды и код, которые сохраняются в памяти 304. В одном конкретном примере центральное вычислительное устройство выполняет код 312 эмулятора, сохраняемый в памяти 304. Этот код активирует вычислительное окружение, сконфигурированное в одной архитектуре, для эмуляции одной или нескольких других архитектур. Например, код 312 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы Power Systems, серверы HP Superdome или другие, эмулировать z/Архитектуру (и/или ESA/390) и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.

Более подробная информация относительно кода 312 эмулятора приведена со ссылками на фиг. 3Б. Сохраняемые в памяти 304 гостевые команды 350 содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды ЦП 302. Например, гостевые команды 350 могут быть разработанными для выполнения на процессоре 202 z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды ЦП 302, которое может быть представлено, например, процессором Intel Itanium II. В одном примере, код 312 эмулятора включает в себя подпрограмму 352 выборки команд для получения одной или нескольких гостевых команд 350 из памяти 304 и, факультативно, для обеспечения локальной буферизации для полученных команд. Данный код также включает в себя подпрограмму 354 трансляции команд для определения типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих команд 356 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.

Кроме того, код 312 эмулятора включает в себя подпрограмму 360 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 360 управления эмуляцией может принудить предназначенное для исходной среды ЦП 302 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение собственных команд 356 может включать в себя загрузку данных в регистр из памяти 304, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.

Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 302. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 310 предназначенного для исходной среды ЦП или посредством использования местоположений в памяти 304. В вариантах осуществления гостевые команды 350, собственные команды 356 и код 312 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены между различными запоминающими устройствами.

Согласно по меньшей мере одному предпочтительному варианту настоящего изобретения относительно системы эмуляции на фиг. 3А и 3Б, эмулятор для системы со средством NDAT, инсталлированным для второй архитектуры (например, ESA/390), но не для первой архитектуры (например, z/Архитектуры), содержит подпрограммы эмуляции для реализации трансляции DAT для режима z/Архитектуры и не содержит подпрограммы эмуляции для реализации трансляции DAT для режима архитектуры ESA/390. Вместо этого код 312 эмулятора для второго архитектурного режима включает в себя тесты для выявления попыток выполняющейся во втором архитектурном режиме эмулированной программы по активации трансляции DAT и, в случае обнаружения таковых, для непосредственной генерации одной или нескольких индикаций ошибки. В другом предпочтительном варианте настоящего изобретения при использовании подпрограмм общего кода для реализации первой и второй архитектуры, когда относящиеся к DAT функции вызываются программой, первый тест выполняется для выявления текущего архитектурного режима. Если текущий архитектурный режим соответствует первому архитектурному режиму, управление переходит к коду для реализации DAT для первого архитектурного режима. Когда текущий режим соответствует второму архитектурному режиму, управление переходит к подпрограмме обработки ошибок, и вызывается код, соответствующий активации трансляции DAT или выполнению трансляции DAT.

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

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

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

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

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

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

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

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

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

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

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

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

После выбора соответствующего для адресного пространства управляющего элемента процесс трансляции является одинаковым для всех четырех типов виртуальных адресов. Управляющий элемент адресного пространства может быть представлен обозначением таблицы сегментов, задающим адресное пространство в 2 Гбайт, обозначением таблицы областей, задающим пространство в 4 Тбайт, 8 Пбайт или 16 Эбайт или обозначением действительного пространства, задающим пространство в 16 Эбайт. (Буквы K, М, Г, Т, П и Э представляют, соответственно, кило - 210, мега - 220, гига - 230, тера - 240, пета - 250, и экса - 260.) Обозначение таблицы сегментов или обозначение таблицы областей принуждают трансляцию к выполнению посредством таблиц, созданных посредством операционной системы в реальной или абсолютной памяти. Обозначение действительного пространства попросту принуждает виртуальный адрес к обработке в качестве действительного адреса без использования таблиц в памяти.

В процессе трансляции при использовании обозначения таблицы сегментов или обозначения таблицы областей распознаются три типа единиц информации - области, сегменты и страницы. Область является блоком последовательного распределения виртуальных адресов с длиной, например, 2 Гбайт и с началом на границе 2 Гбайт. Сегмент является блоком последовательного распределения виртуальных адресов с длиной, например, 1 Мбайт и с началом на границе 1 Мбайт. Страница является блоком последовательного распределения виртуальных адресов с длиной, например, 4 Кбайт и с началом на границе 4 Кбайт.

Виртуальный адрес, соответственно, разделен на четыре основных поля. Биты 0-32 называют индексом (RX) области, биты 33-43 называют индексом (SX) сегмента, биты 44-51 называют индексом (РХ) страницы, и биты 52-63 называют индексом (ВХ) байта.

Как задано его управляющим элементом адресного пространства, виртуальное адресное пространство может быть представлено 2 Гбайтовым пространством, включающим в себя одну область, или оно может быть представлено пространством с длиной до 16 Эбайт, включающим в себя области числом до 8Г. Часть RX виртуального адреса, относящегося к 2 Гбайтовому адресному пространству, должна быть представлена исключительно нолями. В противном случае, в одном примере, распознается исключение.

Часть RX виртуального адреса как таковая разделена на три поля. Биты 0-10 называют первым индексом (RFX) области, биты 11-21 называют вторым индексом (RSX) области и биты 22-32 называют третьим индексом (RTX) области.

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

Затем, на основании таблицы биты виртуального адреса используют для индексации в специальной таблице для получения источника таблицы следующего уровня. Например, если выбрана первая таблица 406 областей, то биты 0-10 (RFX) 408 виртуального адреса используют для индексации в первой таблице областей для получения источника второй таблицы 410 областей. Затем биты 11-21 (RSX) 412 виртуального адреса используют для индексации во второй таблице 410 областей для получения источника третьей таблицы 414 областей. Точно так же, биты 22-32 (RTX) 416 виртуального адреса используют для индексации в третьей таблице 414 областей для получения источника таблицы 418 сегментов. Затем биты 33-43 (SX) 420 виртуального адреса используют для индексации в таблице 418 сегментов для получения источника таблицы 422 страниц, и биты, 44-51 (РХ) 424 виртуального адреса используют для индексации в таблице 422 страниц для получения записи (РТЕ) 425 таблицы страниц, имеющей действительный адрес 426 страничного блока. Действительный адрес страничного блока затем сочетают (например, объединяют в цепочку) со смещением 428 (биты 52-63) для получения действительного адреса.

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

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

Кроме того, средство No-DAT может быть обеспечено путем предложения подверсии или сокращенного набора выбранной архитектуры, не включающего в себя средство DAT. В таком окружении может отсутствовать какой-либо явный указатель отсутствия его поддержки. Средство попросту отсутствует в архитектуре. В одном варианте осуществления средство No-DAT (также называемое NDAT, ESA/390-No-DAT или 390NDAT), может быть доступным в модели, реализующей z/Архитектуру. Средство удаляет возможность при нахождении в архитектурном режиме ESA/390 осуществления конфигурации с включенной динамической трансляцией (DAT) адресов. Иными словами, конфигурация в архитектурном режиме ESA/390 не может иметь включенную DAT, когда имеется средство NDAT. Попытка включения DAT вызывает прерывание программы по исключению по No-DAT в одном варианте осуществления. В других вариантах осуществления обеспечиваются другие коды прерывания программы или другие способы индикации ошибки. В еще одном варианте осуществления ошибка не обозначается, но DAT остается деактивированным.

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

В такой конфигурации, если гость-2 инициализируется в ESA/390, он не способен использовать DAT. Несмотря на это, гость-1 и хост-процессоры могут быть инициализированы в z/Архитектуре и, поэтому, имеют возможность использования DAT. Кроме того, в одном варианте осуществления, гость-1 или хост может быть инициализирован в ESA/390, а средство No-DAT не быть активированным. Таким образом, гость-1 или хост может использовать DAT, в то время как No-DAT инсталлировано для гостя-2 и, поэтому, гость-2 не может использовать DAT, когда он пребывает в ESA/390.

Когда средство No-DAT инсталлировано в поддерживающем множественные архитектурные режимы вычислительном окружении, DAT может быть выполнена, когда окружение находится в первом архитектурном режиме, таком как архитектурный режим z/Архитектуры, но не тогда, когда окружение находится во втором архитектурном режиме, таком как архитектурный режим ESA/390.

Любая попытка выполнения DAT при пребывании в архитектурном режиме ESA/390 и при обеспечении NDAT, имеет результатом, например, прерывание программы по исключению по No-DAT, в одном примере. В других вариантах осуществления для указания на ошибку используется другое прерывание программы. В еще одном варианте осуществления ошибка не обозначается, выполнение продолжается, но DAT остается отключенным.

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

Исключение распознается в следующих случаях, в качестве примеров:

1. Производится попытка включения DAT при выполнении команды LOAD PSW (загрузки PSW). Подлежащее загрузке значение не проверяется перед изменением PSW.

2. Выполняется команда LOAD REAL ADDRESS (загрузки действительного адреса). Выполнение подавляется, а коду длины команды задается значение 2.

3. Производится попытка включения DAT при выполнении команды SET SYSTEM MASK (задания системной маски). Подлежащее загрузке значение не проверяется перед изменением текущего PSW.

4. Производится попытка включения DAT при выполнении команды STORE THEN OR SYSTEM MASK (изначального сохранения или системной маски). Пропускаемое через схему ИЛИ к системной маске значение не проверяется перед изменением системной маски текущего PSW.

5. Подобно случаю 1, происходит прерывание, и новое по прерыванию PSW имеет значение бита на позиции 5 равное единице.

Каждый из вышеупомянутых случаев дополнительно описан ниже: Более подробная информация относительно команды загрузки PSW приводится со ссылками на фиг. 5. В одном варианте осуществления команда 500 загрузки PSW включает в себя поле 502 кода операции, включающее в себя код операции (opcode) для указания на операцию загрузки PSW, основное поле (В2) 504, и поле (D2) 506 смещения. Содержимое общего регистра, на которое указывает поле В2, добавляется к содержимому поля D2 для формирования адреса второго операнда в памяти (называемого вторым адресом операнда).

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

Бит 12 двойного слова должен иметь значение единица. В противном случае, в зависимости от модели, может быть распознано исключение по спецификации. Если инсталлировано средство конфигурации (CZAM) архитектурного режима для z/Архитектуры, то исключение по спецификации распознается в том случае, если бит 12 двойного слова не является единицей. В одном варианте осуществления средство CZAM реконфигурирует вычислительное окружение (например, процессор, LPAR, гость) таким образом, что в поддерживающем множественные архитектуры окружении более не поддерживаются один или несколько аспектов архитектуры, такой как ESA/390. Инсталляция CZAM затрагивает некоторые процессы в вычислительном окружении, такие как включение питания, сброс и т.д. Например, если CZAM инсталлировано и активировано, то последовательность включения питания или сброса более вероятно инициирует z/Архитектуру, но, например, не ESA/390. Аспекты CZAM описаны в связанной и принадлежащей тому же правообладателю заявке под названием «Конфигурация архитектурного режима» (Architectural Mode Configuration), Гэйни и др. (Gainey et al), (номер досье IBM POU920140021US1).

Биты 0-32 двойного слова, за исключением бита 12, который имеет инвертированное значение, размещаются в положениях 0-32 текущего PSW. Биты 33-63 двойного слова размещаются в положениях 97-127 текущего PSW. Битам 33-96 текущего PSW задаются нулевые значения.

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

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

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

- Любой из битов 0, 2-4, 12 или 24-30 представлен единицей.

- Биты 31 и 32 оба равны нолю, но не все биты 97-103 представлены нолями.

- Биты 31 и 32 представлены единицей и нолем, соответственно.

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

Операция подавляется на всех исключениях адресации и защиты.

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

- Доступ (выборка, операнд 2)

- Привилегированная операция

- Спецификация

Примечание по программированию: Второй операнд должен иметь формат ESA/390 PSW, пример которого описан ниже. Если бит 12 операнда представлен нолем, исключение по спецификации распознается в процессе или после выполнения команды LOAD PSW.

Более подробная информация относительно PSW приведена в статье «Разработка и реквизиты z/Архитектуры» (Development and Attributes of z/Architecture), Пламбек и др. (Plambeck et al), IBM J. Res. & Dev., Vol. 46, №4/5, июль/сентябрь 2002.

Один вариант осуществления формата слова состояния программы (PSW) описан со ссылками на фиг. 6. Согласно фиг. 6, в этом примере формат слова состояния программы является форматом ESA/390, за исключением того, что бит 31 показан как ЕА, как обозначено ниже.

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

Маска PER (R) 602: Бит 1 управляет активацией в ЦП прерываний, связанных с регистрацией (PER) программных событий. Когда бит представлен нолем, никакое событие PER не может вызвать прерывание. Когда бит представлен единицей, прерывания разрешены согласно битам маски события PER в регистре 9 управления.

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

Маска ввода/вывода (IO) 606: Бит 6 управляет активацией в ЦП прерываний для ввода/вывода. Когда бит представлен нолем, прерывание ввода/вывода не может произойти. Когда бит представлен единицей, прерывания ввода/вывода подвергаются воздействию битов маски подкласса прерывания ввода/вывода в регистре 6 управления. Когда бит маски подкласса прерывания ввода/вывода представлен нолем, прерывание ввода/вывода для данного подкласса прерывания ввода/вывода не может произойти. Когда бит маски подкласса прерывания ввода/вывода представлен единицей, прерывание ввода/вывода для данного подкласса прерывания ввода/вывода может произойти.

Внешняя маска (ЕХ) 608: Бит 7 управляет активацией в ЦП прерываний посредством условий, включаемых во внешний класс. Когда бит представлен нолем, внешнее прерывание не может произойти. Когда бит представлен единицей, внешнее прерывание подвергается воздействию соответствующих битов подкласса внешней маски в регистре 0 управления. Когда бит подкласса представлен нолем, связанные с подклассом условия не могут вызвать прерывание. Когда бит подкласса представлен единицей, прерывание в этом подклассе может произойти.

Ключ PSW (Key) 610: Биты 9-11 формируют ключ доступа для обращения к памяти посредством ЦП. Если обращение является объектом управляемой ключом защиты, ключ PSW согласовывается с ключом защиты памяти при сохранении информации или при выборке информации из защищенного от выборки местоположения. Тем не менее, для каждого из числа операндов Перейти к первичному выражению, Перейти ко вторичному выражению, Перейти с ключом, Перейти с исходным ключом и Перейти с целевым ключом, а также для одного или для обоих операндов Перейти с необязательными спецификациями, вместо ключа PSW используется ключ доступа, определенный как операнд.

Бит 12 612: Этот бит указывает на текущий архитектурный режим. Он имеет значение единица для формата PSW для ESA/390. Для формата PSW для z/Архитектуры это значение бита задается нолем. При пребывании в режиме z/Архитектуры, загрузка расширенной PSW команды (LPSWE) задана для загрузки истинного PSW для z/Архитектуры (которое имеет другой формат, отличный от описанного в настоящем документе формата, и включающий в себя наличие адреса команды в битах 64-127). Тем не менее, загрузка PSW (LPSW) в ESA/390 все еще поддерживается и может быть использована для загрузки формата PSW для ESA/390. Когда LPSW выполняется, а вычислительное окружение находится в режиме z/Архитектуры, процессор расширяет формат PSW для ESA/390 до формата для z/Архитектуры, включая сюда инвертирующий бит 12. Эта операция является обратной к сворачиванию формата PSW для z/Архитектуры, которое операционная система выполняет для создания формата PSW для ESA/390. Таким образом, в вычислительных окружениях, поддерживающих и ESA/390 и z/Архитектуру, когда копия PSW размещается в памяти, операционная система сворачивает полное PSW для z/Архитектуры к размеру и формату PSW для ESA/390. Таким образом, другое программное обеспечение с зависимостями от формата PSW может не знать о PSW для z/Архитектуры.

Маска машинного контроля (М) 614: Бит 13 управляет активацией в ЦП прерываний посредством условий машинного контроля. Когда бит представлен нолем, прерывание машинного контроля не может произойти. Когда бит представлен единицей, прерывания машинного контроля вследствие повреждения системы и повреждения обработки команд являются разрешенными, но прерывания вследствие других условий подкласса машинного контроля подвергаются воздействию битов маски подкласса в регистре 14 управления.

Состояние ожидания (W) 616: Когда бит 14 представлен единицей, ЦП ожидает, то есть посредством ЦП никакие команды не обрабатываются, но могут иметь место прерывания. Когда бит 14 представлен нолем, выборка и выполнение команды происходят нормальным способом. Когда бит представлен единицей, индикатор ожидания представлен единицей.

Заданный режим (Р) 618: Когда бит 15 представлен единицей, ЦП находится в заданном режиме. Когда бит 15 представлен нолем, ЦП находится в супервизорном режиме. В супервизорном режиме все команды являются допустимыми. В заданном режиме являются допустимыми только те команды, которые обеспечивают значащую информацию заданной программе, и которые не могут затронуть целостность системы. Такие команды называют непривилегированными командами. Команды, которые не являются допустимыми в заданном режиме, называют привилегированными командами. Когда ЦП в заданном режиме пытается выполнить привилегированную команду, распознается исключение по привилегированной операции. Другая группа команд, называемых полупривилегированными командами, выполняется посредством ЦП в задачном режиме только в том случае, когда выполняются специальные проверки полномочий. В противном случае, распознается исключение по привилегированной операции или какое-либо другое программное исключение, в зависимости от того конкретного требования, которое было нарушено.

Управление адресным пространством (AS) 620: Биты 16 и 17 совместно с битом 5 PSW управляют режимом трансляции.

Условный код (СС) 622: Биты 18 и 19 представляют собой два бита условного кода. Условному коду присваивают значения 0, 1, 2 или 3 в зависимости от результата, полученного при выполнении конкретных команд. Большинство арифметических и логических операций, а также некоторые другие операции присваивают значения условного кода. Команда BRANCH ON CONDITION (перехода по условию) может задавать любой выбор значений условного кода в качестве критерия ветвления.

Программная маска 624: Биты 20-23 представляют собой четыре бита программной маски. Каждый бит связан с программным исключением нижеследующим образом.

Бит программной маски Программное исключение 20 Переполнение с фиксированной точкой 21 Десятичное переполнение 22 Исчезновение порядка HFP 23 Значимость разряда HFP

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

Расширенный режим адресации (ЕА) 626: Бит 31 управляет размером исполнительных адресов и образованием исполнительных адресов совместно с битом 32, основным битом режима адресации. Когда бит 31 представлен нолем, режимом адресации управляет бит 32. Когда оба бита 31 и 32 представлены единицами, задается 64-битовая адресация.

Основной режим адресации (ВА) 628: Биты 31 и 32 управляют размером исполнительных адресов и образованием исполнительных адресов. Когда оба бита 31 и 32 представлены нолями, задается 24-битовая адресация. Когда бит 31 представлен нолем, а бит 32 представлен единицей, задается 31-битовая адресация. Когда оба бита 31 и 32 представлены единицами, задается 64-битовая адресация. Бит 31 равный единице и бит 32 равный нолю представляют собой недопустимую комбинацию, вызывающую распознавание исключения по спецификации. Режим адресации не управляет размером адресов PER, или адресов, используемых для получения доступа к DAT, ASN, вызываемому управлению блоком, таблицам связей, входных записей и слежения или спискам доступа или стеку соединений. Управление режимом адресации посредством битов 31 и 32 PSW можно подытожить следующим образом.

PSW:31 PSW:32 Режим адресации 0 0 24-битовый 0 1 31-битовый 1 1 64-битовый

Адрес 630 команды: Биты 33-63 PSW представляют собой адрес команды. Адрес обозначает местоположение крайнего левого байта следующей подлежащей выполнению команды, если ЦП не находится в состоянии ожидания (бит 14 PSW равен единице).

Как описано выше, в дополнение к команде загрузки PSW, также и команда загрузки действительного адреса может вызывать распознавание исключения по No-DAT.

Типовые форматы команды загрузки действительного адреса изображены на фиг. 7А-7В. Как показано на фиг. 7А, в одном варианте осуществления, команда 700 загрузки действительного адреса имеет совокупность полей, включая сюда, например, поле 702 кода операции, содержащее код операции, указывающий на операцию загрузки действительного адреса, первое поле (R1) 704 регистра, индексное поле (Х2) 706, основное поле (В2) 708, и поле (D2) 710 смещения.

В другом варианте осуществления, как показано на фиг. 7Б, команда 720 загрузки действительного адреса имеет совокупность полей, включая сюда, например, поле 722а, 722b кода операции, содержащее код операции, указывающий на операцию загрузки действительного адреса, первое поле (R1) 724 регистра, индексное поле (Х2) 726, основное поле (В2) 728, и совокупность полей смещения (DL2, DH2) 730а, 730b.

В еще одном варианте осуществления, как показано на фиг. 7В, команда 740 загрузки действительного адреса имеет совокупность полей, включая сюда, например, поле 742а, 742b кода операции, содержащее код операции, указывающий на операцию загрузки действительного адреса, первое поле (R1) 744, индексное поле (Х2) 746, основное поле (В2) 748, и совокупность полей смещения (DL2, DH2) 750а, 750b.

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

Для команды загрузки действительного адреса (LRA, LRAY) в 24-битовом или 31-битовом режиме адресации, если все биты 0-32 в составе 64-битового действительного или абсолютного адреса, соответствующего второму виртуальному адресу операнда, представлены нолями, биты 32-63 в составе действительного или абсолютного адреса размещаются в позициях 32-63 битов общего регистра R1, а биты, 0-31 данного регистра остаются неизменными. Если не все биты 0-32 действительного или абсолютного адреса представлены нолями, распознается исключение по специальной операции.

Для команды LRA или LRAY в 64-битовом режиме адресации, и для команды загрузки действительного адреса (LRAG) в любом режиме адресации, 64-битовый действительный или абсолютный адрес, соответствующий второму виртуальному адресу операнда, размещается в общем регистре R1.

Когда EDAT-1 (расширенный DAT-1) не применяется, или когда EDAT-1 применяется, но второй операнд транслируется посредством записи (STE) таблицы сегментов, в которой управляющий STE-форматом элемент представлен нолем, размещенный в общем регистре R1 адрес является действительным. Когда EDAT-1 применяется, а второй операнд транслируется посредством записи таблицы сегментов, в которой управляющий STE-форматом элемент представлен единицей, или когда EDAT-2 применяется, а второй операнд транслируется посредством записи третьей таблицы области, в которой управляющий RTTE-форматом элемент представлен единицей, размещенный в общем регистре R1 адрес является абсолютным.

Виртуальный адрес, задаваемый полями Х2, В2 и D2, транслируется посредством функции динамической трансляции адресов, независимо от того, включена DAT или нет.

Смещение для LRA обрабатывается как 12-битовое двоичное целое число без знака. Смещение для LRAY и LRAG обрабатывается как 20-битовое двоичное целое число со знаком.

DAT выполняется при помощи управляющего элемента адресного пространства, зависящего от текущих значений битов управляющего элемента адресного пространства, битов 16 и 17 в составе PSW, как показано в следующей таблице:

Биты PSW 16 и 17 Используемый DAT управляющий элемент адресного пространства 00 Содержимое регистра 1 управления. 10 Содержимое регистра 7 управления. 01 Управляющий элемент адресного пространства, полученный путем применения процесса трансляции (ART) регистров доступа к регистру доступа, на который указывает поле В2. 11 Содержимое регистра 13 управления.

ART и DAT могут быть выполнены, соответственно, с использованием ассоциативного буфера ART (ALB) и ассоциативного буфера трансляции (TLB). Вычисление виртуального адреса выполняется согласно текущему способу адресации, задаваемому битами 31 и 32 текущего PSW.

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

Значение условного кода 0 задается, когда ART, если применимо, равно как и DAT могут быть завершены, а исключение по специальной операции не распознается, то есть, когда управляющий элемент адресного пространства может быть получен, запись в каждой таблице DAT находится в пределах таблицы и имеет нулевое значение бита I, а для LRA или LRAY в 24-битовом или 31-битовом режиме адресации биты 0-32 получающегося действительного или абсолютного адреса представлены нолями. Транслированный адрес не подвергают проверке на выравнивание границ или на исключения по адресации или защите.

Когда биты 16 и 17 PSW представлены двоичным кодом 01, и управляющий элемент адресного пространства не может быть получен вследствие условия, которое обычно вызывает одно из показанных ниже исключений, (1) присвоенный исключению код прерывания размещается в позициях 48-63 битов общего регистра R1, биту 32 этого регистра задается значение единица, битам 33-47 задается нулевое значение, а биты 0-31 остаются неизменными, и (2) команда завершается посредством задания условного кода 3.

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

Когда запись таблицы сегментов располагается вне таблицы, а все биты 0-32 действительного или абсолютного адреса записи являются нолями, задается условный код 3, биты 32-63 адреса записи размещаются в битовых позициях 32-63 общего регистра R1, а биты 0-31 данного регистра остаются неизменными. Если не все биты 0-32 адреса являются нолями, результат является таким, как показано ниже.

Для LRA или LRAY в 64-битовом режиме адресации, и для LRAG в любом режиме адресации, когда бит I в записи таблицы сегментов представлен единицей, задается условный код 1, а 64-битовый действительный или абсолютный адрес записи таблицы сегментов размещается в общем регистре R1. В этом случае, за исключением варианта пребывания LRA или LRAY в 24-битовом или 31-битовом режиме адресации, если все биты 0-32 адреса записи таблицы сегментов являются нолями, результат является тем же самым, за исключением того, что биты 0-31 общего регистра R1 остаются неизменными. Если не все биты 0-32 адреса являются нолями, результат является таким, как показано ниже.

Для LRA или LRAY в 64-битовом режиме адресации или для LRAG в любом режим адресации, когда бит I в записи таблицы страниц представлен единицей, задается условный код 2 и 64-битовый действительный или абсолютный адрес записи таблицы страниц размещается в общем регистре R1. В этом случае, за исключением варианта пребывания LRA или LRAY в 24-битовом или 31-битовом режиме адресации, если все биты 0-32 адреса записи таблицы страниц являются нолями, результат является тем же самым, за исключением того, что биты 0-31 общего регистра R1 остаются неизменными. Если не все биты 0-32 адреса являются нолями, результат является таким, как показано ниже.

Запись таблицы сегментов или адрес записи таблицы страниц, размещенный в общем регистре R1, является действительным или абсолютным согласно типу адреса, использовавшегося в процессе предпринятой трансляции.

Если существует условие, которое обычно вызывает одно из показанных ниже исключений, (1) присвоенный исключению код прерывания размещается в битовых позициях 48-63 общего регистра R1, биту 32 этого регистра задается значение единица, битам 33-47 задается значение ноль, а биты 0-31 остаются неизменными, и (2) команда завершается путем задания условного кода 3.

Особые условия

Исключение по специальной операции распознается в том случае, когда для LRA или LRAY в 24-битовом или 31-битовом режиме адресации не все биты 0-32 результирующего 64-битового действительного адреса представлены нолями.

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

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

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

Операция подавляется при всех исключениях по адресации.

Получающийся условный код:

0 Трансляция является доступной.

1 Недопустимая запись таблицы сегментов (бит I имеет значение единица).

2 Недопустимая запись таблицы страниц (бит I имеет значение единица).

3 Управляющий элемент адресного пространства, не является доступным, запись таблицы областей располагается вне таблицы или является недопустимой (бит I имеет значение единица), запись таблицы сегментов располагается вне таблицы, или, только для LRA и LRAY, и только в 24-битовом или 31-битовом режиме адресации, когда не все биты 0-32 адреса записи представлены нолями, запись таблицы сегментов или запись таблицы страниц является недопустимой (бит I имеет значение единица).

Программные исключения:

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

- Операция (LRAY, если средство длинного смещения не инсталлировано)

- Привилегированная операция

- Специальная операция (только LRA, LRAY)

- Ограничение транзакции

- Спецификация трансляции

Примечания по программированию:

1. Следует проявлять осторожность при использовании команды загрузки действительного адреса в многопроцессорной конфигурации. Поскольку команды денонсирования записи таблицы DAT или денонсирования записи таблицы страниц могут задавать битам I в памяти значение единица прежде принуждения соответствующих записей в TLB других ЦП к очистке, одновременное выполнение команды загрузки действительного адреса на данном ЦП и команды денонсирования записи таблицы DAT или денонсирования записи таблицы страниц на другом ЦП может привести к несогласованным результатам. Поскольку команда загрузки действительного адреса может получать доступ к таблицам в памяти, записи таблицы областей, запись таблицы сегментов или запись таблицы страниц могут представляться недопустимыми (условные коды 3, 1 или 2, соответственно) также и в том случае, когда соответствующая запись TLB еще не была очищена, и запись TLB может оставаться в TLB до завершения команд денонсирования записи таблицы DAT или денонсирования записи таблицы страниц на другом ЦП. Отсутствует какой-либо гарантированный предел для числа команд, которые могут быть выполнены в промежутке между командой загрузки действительного адреса и очисткой TLB от записи.

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

Кроме того, для команд загрузки PSW и загрузки действительного адреса команда задания системной маски может также вызывать распознавание исключения по No-DAT.

Один предпочтительный вариант настоящего изобретения формата команды задания системной маски описан со ссылками на фиг. 8. Согласно фиг. 8 команда 800 задания системной маски включает в себя, например, поле 802 кода операции, содержащее код операции (opcode) для задания операции по заданию системной маски, основное поле (В2) 804, и поле (D2) 806 смещения.

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

Особые условия

Когда бит управления подавлением SSM (заданием системной маски), бит 33 регистра 0 управления, представлен единицей, и ЦП находится в супервизорном режиме, распознается исключение по специальной операции.

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

Операция подавляется на всех исключениях по адресации и защите.

Условный код: Код остается неизменным.

Программные исключения:

- Доступ (выборка, операнд 2)

- Привилегированная операция

- Специальная операция

- Спецификация

- Ограничение транзакции

Кроме того, команда изначального сохранения или системной маски может вызывать распознавание исключения по No-DAT. Один предпочтительный вариант настоящего изобретения формата команды изначального сохранения или системной маски описан со ссылками на фиг. 9. Согласно фиг. 9 команда 900 изначального сохранения или системной маски включает в себя, например, поле 902 кода операции, содержащее код операции для задания операции изначального сохранения или системной маски, поле (12) 904 непосредственной адресации, основное поле (В1) 906, и поле (D1) 908 смещения. В одном примере, содержимое задаваемого посредством В1 регистра добавляется к значению поля смещения для обеспечения адреса первого операнда. Поле непосредственной адресации является вторым операндом.

При функционировании биты 0-7 текущего PSW сохраняются в местоположении первого операнда.

Затем содержимое позиций 0-7 битов текущего PSW заменяется посредством логического ИЛИ на их исходное содержимое или на содержимое второго операнда (поле 12).

Особые условия

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

Операция подавляется на всех исключениях по адресации и защите.

Условный код: Код остается неизменным.

Программные исключения:

- Доступ (сохранение, операнд 1)

- Привилегированная операция

- Спецификация

- Транзакция ограничивается

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

Для описанных выше случаев 1 (загрузки PSW) и 3-5 (задания системной маски, изначального сохранения или системной маски, прерывания), непосредственно после изменения бита 5 PSW с ноля до единицы распознается исключение по No-DAT и происходит прерывание программы. В этих случаях завершается, в зависимости от обстоятельств, выполнение команды или свопинг PSW, а код длины команды равен нулю. Исключение по No-DAT может быть рассмотрено как происходящее рано в процессе подготовки к выполнению следующей последовательной команды. Таким образом, аннулируется команда, расположенная по адресу команды, задаваемому старым программный PSW. Исключение по No-DAT обозначается шестнадцатеричным кодом 003D прерывания программы (или шестнадцатеричным кодом 00BD, если обозначается совмещенное событие PER).

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

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

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

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

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

Например, когда (А) первый операнд команды MOVE (MVC) пересекает границу сегмента, (Б) недопустимый бит представлен единицей в записи таблицы сегментов, используемой для трансляции крайней левой части операнда, и (В) бит защиты DAT представлен единицей в допустимой записи таблицы страниц, используемой для трансляции самой правой части операнда, является непредсказуемым, распознается исключение по трансляции сегмента или исключение по защите.

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

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

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

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

Согласно фиг. 10, в одном примере вычислительное окружение сконфигурировано для одновременной поддержки нескольких архитектур: первой архитектуры (например, расширенной архитектуры, например z/Архитектуры), сконфигурированной для выбранной архитектурной функции и поддерживающей ее (например, DAT), и второй архитектуры (например, устаревшей архитектуры, например ESA/390), сконфигурированной для выбранной архитектурной функции, но избирательно удаляющей ее, ЭТАП 1000. При удалении функции (например, включении No-DAT или обеспечении No-DAT в качестве постоянной инсталлированной изготовителем опции), DAT не может быть включена также и в том случае, когда другому управляющему элементу задано ее включение.

Процессор вычислительного окружения получает запрос на выполнение операции, включающей в себя выбранную архитектурную функцию, ЭТАП 1002. Производится выявление относительно того, производит ли процессор обработку во втором архитектурном режиме на основе второй архитектуры, ИНФОРМАЦИОННЫЙ ЗАПРОС 1004. Если процессор производит обработку в архитектурном режиме, отличном от второй архитектуры, таком как первая архитектура, например z/Архитектура, выбранная архитектурная функция выполняется, ЭТАП 1006.

Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1004, если процессор находится во втором архитектурном режиме, то производится выявление относительно того, была ли выбранная архитектурная функция удалена, ИНФОРМАЦИОННЫЙ ЗАПРОС 1008. В одном предпочтительном варианте осуществления настоящего изобретения, это выявляется путем проверки индикатора функции и/или другого индикатора. Если функция не была удалена (например, No-DAT не инсталлирована), то выбранная архитектурная функция (например, DAT) выполняется, ЭТАП 1006. В противном случае, обеспечивается указатель того, что выбранная архитектурная функция не должна быть выполнена, ЭТАП 1010. Например, обеспечивается сообщение об ошибке. Ошибка может быть представлена исключением, при этом может быть использован известный тип исключения или новый тип исключения.

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

В другом предпочтительном варианте осуществления настоящего изобретения средство NDAT входит в состав вычислительного окружения, которое включает в себя гостей со страничной организацией режима записи в память. В таком окружении, в одном примере, хост инициализируется и производит обработку в первом архитектурном режиме (например, z/Архитектуре), а гости могут быть инициализированы или в первом архитектурном режиме или в другом архитектурном режиме, таком как второй архитектурный режим (например, ESA/390 или его подверсия). В одном примере, в режиме записи в память со страничной организацией в архитектурном режиме ESA/390, когда средство No-DAT инсталлировано, происходят следующие действия:

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

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

Один предпочтительный вариант осуществления настоящего изобретения логики для обеспечения средства No-DAT в гостевом окружении описан со ссылками на фиг. 11А-11Б. Согласно фиг. 11А производящий обработку в первом архитектурном режиме (например, z/Архитектуре) хост, ЭТАП 1100, выдает команду на запуск интерпретационного выполнения для инициирования одной или нескольких гостевых виртуальных машин, ЭТАП 1102. Первая гостевая виртуальная машина должна производить обработку в первом архитектурном режиме, причем первый архитектурный режим имеет первую архитектуру системы команд и включает в себя первый набор архитектурных функций, ЭТАП 1104. Однако вторая гостевая виртуальная машина должна производить обработку во втором архитектурном режиме, ЭТАП 1106, и второй архитектурный режим имеет вторую архитектуру системы команд и включает в себя второй набор архитектурных функций. Второй набор архитектурных функций является уменьшенным набором первого набора, в котором отсутствуют одна или несколько функций (например, выбранная архитектурная функция, такая как DAT). Таким образом, второй архитектурный режим является режимом запрета функции, который блокирует функцию, такую как DAT. В одном примере, отсутствие выбранной архитектурной функции обозначается посредством бита средства. Это, однако, является факультативным в одном или нескольких вариантах осуществления.

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

Вторая гостевая виртуальная машина выполняет обработку во втором архитектурном режиме, и эта обработка отменяет один или несколько управляющих элементов, связанных с выбранной архитектурной функцией, которые могут быть использованы для управления выполнением второй гостевой виртуальной машины, ЭТАП 1108. Например, если используется индикатор для указания на включение DAT, этот индикатор является отменяемым управляющим элементом, когда для второй гостевой виртуальной машины инсталлировано средство No-DAT. В качестве другого примера, спецификация соответствующей виртуальной машине архитектуры управляет доступностью конкретных признаков, и эта спецификация является также управляющим элементом, отменяемым средством NDAT. Другие примеры отменяемых управляющих элементов также являются возможными.

В одном предпочтительном варианте осуществления настоящего изобретения второй гость получает запрос на выполнение операции, которая должна использовать или активировать выбранную функцию (например, DAT), ЭТАП 1120. Производится выявление относительно того, производит ли второй гость обработку во втором архитектурном режиме, ИНФОРМАЦИОННЫЙ ЗАПРОС 1122. Если второй гость не производит обработку во втором архитектурном режиме, то может быть выполнена операция, которая может использовать или активировать выбранную архитектурную функцию, ЭТАП 1124. Однако если второй гость производит обработку во втором архитектурном режиме и, таким образом, выбранная функция не поддерживается (то есть, она удалена), тогда операция не выполняется, ЭТАП 1126, и обеспечивается сообщение об ошибке, ЭТАП 1128.

Хотя в описанном выше предпочтительном варианте осуществления настоящего изобретения оба гостя являются гостями первого уровня (то есть, каждый из них инициализируется посредством хоста), в другом примере, один или несколько гостей являются гостями второго уровня, в котором случае гость инициализируется посредством другого гостя. В таком предпочтительном варианте осуществления настоящего изобретения, если гость второго уровня должен быть обработан в ESA/390, то No-DAT является средством по умолчанию. Таким образом, инициализируемый в ESA/390 гость второго уровня не должен использовать DAT, независимо от состояний других управляющих элементов (например, управляющих элементов SIE), которые могут указывать иным образом. Любые другие имеющие отношение к DAT управляющие элементы отменяются. Кроме того, в одном предпочтительном варианте осуществления для гостя второго уровня данная особенность реализуется по умолчанию также и в том случае, когда гость первого уровня и/или хост являются способными к выполнению DAT в ESA/390 или в z/Архитектуре. В еще одном предпочтительном варианте настоящего изобретения виртуальные машины ESA/390 могут быть созданы только в качестве виртуальных машин гостей-2, и не являются доступными в одной или в обоих режимах из числа хоста и гостя-1.

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

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

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

В одном предпочтительном варианте осуществления настоящего изобретения средство No-DAT может использоваться совместно с одним или несколькими другими средствами, в состав которых входят, например, средство CZAM и/или средство начальной загрузки управляющей сервисной программы, описываемые в следующих связанных и принадлежащих одному правообладателю заявках под названиями «Конфигурация архитектурную режима» (Architectural Mode Configuration), Гэйни и др. (Gainey et al), (номер заявки: 14/217840, и «Общая последовательность загрузки для управляющей сервисной программы, способной к инициализации в множественных архитектурах» (Common Boot Sequence for Control Utility Able to be Initialized in Multiple Architectures), Майкл K. Гшвинд (Michael K. Gschwind), (номер заявки: 14/217800).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На фиг. 13 изображены характерные компоненты системы 5000 хост (главного)-компьютера для реализации одного или нескольких вариантов осуществления. Характерная система 5000 хост-компьютера содержит один или несколько ЦП 5001, находящихся в связи с памятью 5002 компьютера (то есть, центральной памятью), а также интерфейсы ввода/вывода к устройствам 5011 хранения данных и сетям 5010 для сообщения с другими компьютерами или SAN (системными сетями) и т.п. ЦП 5001 является совместимым с архитектурой, имеющей архитектурно спроектированную систему команд и архитектурно спроектированную функциональность. ЦП 5001 может иметь трансляцию (ART) 5012 регистров доступа, что включает в себя ассоциативный буфер (ALB) 5013 ART для выбора адресного пространства, которое используются динамической трансляцией (DAT) 5003 адресов для преобразования адресов программы (виртуальных адресов) в действительные адреса памяти. DAT обычно включает в себя ассоциативный буфер (TLB) 5007 трансляции для кэширования трансляций таким образом, что более поздние доступы к блоку памяти 5002 компьютера не вызывают задержек при трансляции адресов. Как правило, кэш 5009 используется между памятью 5002 компьютера и процессором 5001. Кэш 5009 может быть построен иерархическим образом, то есть, иметь большой кэш, доступный для более чем одного ЦП, и меньшие, более быстрые (нижнего уровня) кэши, размещенные между большим кэшем и каждым из ЦП. В некоторых реализациях кэши нижнего уровня разделены для обеспечения отдельных низкоуровневых кэшей для выборки команд и доступов к данным.

В одном варианте осуществления команда выбирается из памяти 5002 посредством устройства 5004 выборки команд через кэш 5009. Команда декодируется в устройстве 5006 декодирования команд и диспетчеризируется (совместно с другими командами в некоторых вариантах осуществления) к устройству или устройствам 5008 выполнения команд. Обычно используют несколько устройств 5008 выполнения, например арифметическое устройство выполнения, сопроцессор для операций с плавающей точкой и устройство выполнения команд ветвления. Команда выполняется устройством выполнения, которое по мере необходимости получает доступ к операндам из заданных командой регистров или к памяти. Если нужно получить доступ к операнду (загруженному или сохраненному) из памяти 5002, устройство 5005 загрузки и хранения, как правило, осуществляет доступ под управлением выполняемой команды. Команды могут быть выполнены в аппаратных схемах или во внутреннем микрокоде (встроенном программном обеспечении) или в комбинации обоих способов.

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

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

Для операндов команд и данных могут содержаться отдельные кэши. Информация в пределах кэша сохраняется в непрерывных байтах на целочисленной границе, называемой блоком кэша или строкой кэша (или строкой, если коротко). Модель может обеспечить команду EXTRACT CACHE ATTRIBUTE (извлечь реквизит кэша), возвращающую размер строки кэша в байтах. В другом варианте осуществления эта информация может быть получена из встроенного программного обеспечения, например, согласно интерфейсам, заданным в документе «Руководящие технические условия по платформе архитектуры Power» (Power Architecture Platform Reference specification). Модель может также обеспечивать одну или несколько команд предварительного контакта с блоком кэша данных (debt), такие как PREFETCH DATA и PREFETCH DATA RELATIVE LONG, которые производят упреждающую выборку памяти в кэше данных или команд или разблокирование данных из кэша.

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

Смежные местоположения байта имеют последовательные адреса, начинающиеся с 0 слева и продолжающиеся в последовательности слева направо. Адреса являются двоичными целыми числами без знака и равняются 24, 31 или 64 битам.

Информация передается между памятью и ЦП или канальной подсистемой по одному байту или по группе байтов за один раз. Если иного не указано, например, в Power ISA и z/Архитектуре, группа байтов в памяти адресуется по крайнему левому байту группы. Число байтов в группе либо подразумевается, либо явно задается подлежащей выполнению операцией. При использовании в операции ЦП, группу байтов называют полем. В пределах каждой группы байтов, например, в Power ISA и z/Архитектуре, биты пронумерованы в последовательности слева направо. В Power ISA и z/Архитектуре крайние левые биты иногда упоминаются как биты «старшего разряда», а самые правые биты - как биты «младшего разряда». Тем не менее, номера битов не являются адресами памяти. Только байты могут адресоваться. Для действия с отдельными битами байта в памяти доступ получают ко всему байту. Биты в байте пронумерованы от 0 до 7, слева направо (например, в z/Архитектуре). Биты в адресе могут быть пронумерованы 8-31 или 40-63 для 24-битовых адресов, или 1-31 или 33-63 для 31-битовых адресов, они пронумерованы 0-63 для 64-битовых адресов. В одном примере, биты 8-31 и 1-31 относятся к адресам, которые находятся в местоположении (например, регистре), который имеет ширину в 32 бита, тогда как биты 40-63 и 33-63 относятся к адресам, которые находятся в местоположении шириной 64 бита. В пределах любого другого формата фиксированной длины для множественных байтов, составляющие формат биты пронумерованы последовательно, начиная от 0. В целях обнаружения ошибок и, предпочтительно, для их исправления, с каждым байтом или с группой байтов могут быть переданы один или несколько контрольных битов. Такие контрольные биты генерируются автоматически посредством машины, и не могут непосредственно управляться посредством программы. Емкости памяти выражаются в числе байтов. Когда длина поля операнда хранения неявно задается кодом операции команды, считается, что поле имеет фиксированную длину, которая может составлять один, два, четыре, восемь или шестнадцать байтов. Для некоторых команд могут неявно задаваться более крупные поля. Когда длина поля операнда хранения задается не неявно, но заявлена явным образом, считается, что поле имеет переменную длину. Операнды переменной длины могут изменяться по длине посредством приращений в один байт (или с некоторыми командами, с кратностью в два байта или с другой кратностью). Когда информация размещается в памяти, заменяется содержимое только тех местоположений байтов, которые входят в состав указанного поля, также и в том случае, когда ширина физического тракта к памяти может быть больше, чем длина сохраняемого поля.

Некоторые единицы информации должны располагаться в памяти на целочисленной границе. Границу называют целочисленной для единицы информации, когда ее адрес в памяти является кратным длине модуля в байтах. Полям величиной в 2, 4, 8, 16 и 32 байта на целочисленной границе дают специальные наименования. Полуслово является группой из двух последовательных байтов на двухбайтовой границе и является основным конструкционным блоком команд. Слово является группой из четырех последовательных байтов на четырехбайтовой границе. Двойное слово является группой из восьми последовательных байтов на восьмибайтовой границе. Учетверенное слово является группой из 16 последовательных байтов на 16-байтовой границе. Восьмикратное слово является группой из 32 последовательных байтов на 32-байтовой границе. Когда адреса памяти обозначают полуслова, слова, двойные слова, учетверенные слова, и восьмикратные слова, двоичное представление адреса, соответственно, содержит один, два, три, четыре, или пять самых правых нулевых битов. Команды должны располагаться на двухбайтовых целочисленных границах. Операнды хранения большинства команд не имеют требований по выравниванию границ.

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

В одном примере вариант осуществления может быть реализован посредством программного обеспечения (иногда называемого лицензированным внутренним кодом, встроенным программным обеспечением, микрокодом, милликодом, пикокодом и т.п., каждый из которых должен быть совместимым с одним или несколькими вариантами осуществления). Согласно фиг. 13 к программному коду программного обеспечения, воплощающему один или несколько аспектов, доступ может быть получен процессором 5001 хост-системы 5000 в долговременных запоминающих устройствах 5011, таких как дисковод для компакт-дисков, устройство записи на ленту или жесткий диск. Программный код программного обеспечения может быть воплощен на любом из ряда известных носителей для использования с системой обработки данных, таких как дискета, жесткий диск или компакт-диск. Код может распространяться на упомянутых носителях или может распространяться к пользователям из памяти 5002 компьютера или памяти одной компьютерной системы по сети 5010 к другим компьютерным системам для использования пользователями таких других систем.

Программный код программного обеспечения включает в себя операционную систему, которая управляет функционированием и взаимодействием различных компьютерных компонентов, а также одну или несколько прикладных программ. Программный код обычно поставляется с разбиением на страницы от устройства 5011 хранения данных к относительно более высоко-скоростной компьютерной памяти 5002, где он является доступным для обработки посредством процессора 5001. Методы и способы воплощения программного кода программного обеспечения в памяти, на физических носителях и/или распространения программного кода через сети являются хорошо известными и далее не обсуждаются в настоящем документе. Программный код, когда он создан и сохранен на материальном носителе (в том числе, но не ограничиваясь, модулях электронной памяти (RAM), флеш-памяти, компакт-дисках (CD), DVD, устройствах записи на магнитная ленту и т.п.), зачастую называют «компьютерным программным продуктом».

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

Фиг. 14 показывает характерные аппаратные средства системы рабочей станции или сервера, в которых могут быть осуществлены один или несколько вариантов осуществления. Система 5020 на фиг. 14 содержит характерную основную компьютерную систему 5021, такую как персональный компьютер, рабочая станция или сервер, включающую в себя факультативные периферийные устройства. Основная компьютерная система 5021 включает в себя один или несколько процессоров 5026 и шину, используемую для соединения и обеспечения коммуникации между процессором (процессорами) 5026 и другими компонентами системы 5021 согласно известным методам. Шина соединяет процессор 5026 с памятью 5025 и с долговременным запоминающим устройством 5027, которое может включать в себя жесткий диск (включающий в себя, например, любой из магнитных носителей, CD, DVD и флеш-память) или, например, устройство записи на ленту. Система 5021 может также включать в себя адаптер пользовательского интерфейса, соединяющий микропроцессор 5026 через шину с одним или несколькими устройствами интерфейса, такими как клавиатура 5024, мышь 5023, принтер/сканер 5030 и/или с другими устройствами интерфейса, которые могут быть представлены любыми устройствами пользовательского интерфейса, такими как сенсорный экран, цифровая контактная панель и т.д. Шина также соединяет через дисплейный адаптер дисплей 5022, такой как жидкокристаллический экран или монитор с микропроцессором 5026.

Система 5021 может сообщаться с другими компьютерами или компьютерными сетями посредством сетевого адаптера, способного к сообщению 5028 с сетью 5029.

Типовые сетевые адаптеры представлены коммуникационными каналами, кольцом с маркерным доступом, сетью Ethernet или модемами. Альтернативно, система 5021 способна к сообщению с использованием беспроводного интерфейса, такого как карта CDPD (сотовые цифровые пакетные данные). Система 5021 может быть связана с другими подобными компьютерами по локальной сети (LAN) или глобальной сети (WAN), или система 5021 может быть клиентом в клиент-серверной структуре с другим компьютером и т.д. Все эти конфигурации, а также соответствующее коммуникационное аппаратное и программное обеспечение являются известными из уровня техники.

Фиг. 15 показывает сеть 5040 обработки данных, в которой могут быть осуществлены один или несколько вариантов осуществления. Сеть обработки данных 5040 может включать в себя несколько отдельных сетей, таких как беспроводная сеть и проводная сеть, каждая из которых может включать в себя несколько отдельных рабочих станций 5041, 5042, 5043, 5044. Кроме того, как осведомлены специалисты в данной области техники, в состав такой сети могут входить одна или несколько LAN, причем LAN может содержать несколько интеллектуальных рабочих станций, соединенных с хост-процессором.

Продолжая рассмотрение фиг. 15, сети могут также включать в себя мэйнфреймные компьютеры или серверы, такие как шлюзовой компьютер (клиент-сервер 5046) или сервер приложений (удаленный сервер 5048, который может получить доступ к репозиторию данных, и к которому доступ также может быть получен непосредственно с рабочей станции 5045). Шлюзовой компьютер 5046 служит точкой входа в каждую отдельную сеть. Шлюз является необходимым при присоединении одного сетевого протокола к другому. Шлюз 5046 может быть, предпочтительно, соединен с другой сетью (например, с Интернетом 5047) посредством линии связи. Шлюз 5046 также может быть непосредственно соединен с использованием линии связи с одной или несколькими рабочими станциями 5041, 5042, 5043, 5044. Шлюз может быть реализован с использованием одного из серверов IBM Power Systems и IBM System z ®, поставляемых International Business Machines Corporation.

При одновременном рассмотрении фиг. 14 и фиг. 15, к программному коду 5031 программного обеспечения, который может воплощать один или несколько аспектов, может получить доступ процессор 5026 системы 5020 в долговременных запоминающих устройствах 5027, таких как дисковод для компакт-дисков или жесткий диск. Программный код программного обеспечения может быть воплощен на любом из ряда известных носителей для использования с системой обработки данных, таких как дискета, жесткий диск или компакт-диск. Код может распространяться на упомянутых носителях или может распространяться к пользователям 5050, 5051 из памяти или устройства хранения одной компьютерной системы по сети к другим компьютерным системам для использования пользователями таких других систем.

Альтернативно, программный код может быть воплощен в памяти 5025, и к нему может быть получен доступ процессором 5026 с помощью шины процессора. Такой программный код включает в себя операционную систему, которая управляет функционированием и взаимодействием различных компьютерных компонентов, а также одну или несколько прикладных программ 5032. Программный код обычно поставляется с разбиением на страницы от устройства 5027 хранения данных к высоко-скоростной компьютерной памяти 5025, где он является доступным для обработки посредством процессора 5026. Методы и способы воплощения программного кода программного обеспечения в памяти, на физических носителях и/или распространения программного кода через сети являются хорошо известными и далее не обсуждаются в настоящем документе. Программный код, когда он создан и сохранен на материальном носителе (в том числе, но не ограничиваясь, модулях электронной памяти (RAM), флеш-памяти, компакт-дисках (CD), DVD, устройствах записи на магнитная ленту и т.п.), зачастую называют «компьютерным программным продуктом». Носитель компьютерного программного продукта обычно является считываемым посредством устройства обработки данных, предпочтительно, в составе компьютерной системы, для выполнения посредством устройства обработки данных.

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

На фиг. 16 типовой вариант осуществления процессора изображен для процессора 5026. Обычно один или несколько уровней кэша 5053 используются для буферизации блоков данных в памяти с целью повышения производительности процессора. Кэш 5053 является высокоскоростным буфером, содержащим строки кэша данных памяти, использование которых является вероятным. Типичные строки кэша вмещают 64, 128 или 256 байтов данных памяти. Отдельные кэши чаще используются для кэширования команд, а не для кэширования данных. Согласованность кэша (синхронизация копий строк в памяти и кэшах) зачастую обеспечивается посредством различных отслеживающих алгоритмов, известных из уровня техники. Основную память 5025 процессорной системы зачастую называют кэшем. В процессорной системе, имеющей 4 уровня кэша 5053, основную память 5025 иногда называют кэшем уровня 5 (L5), поскольку она обычно является более быстрой и удерживает только часть энергонезависимой памяти (DASD, устройство записи на ленту и т.д.), которая является доступной для компьютерной системы. Основная память 5025 «кэширует» страницы данных, подкачиваемые постранично в основную память 5025 и из нее посредством операционной системы.

Счетчик программы (счетчик команд) 5061 отслеживает адрес текущей подлежащей выполнению команды. Счетчик программы в процессоре z/Архитектуры составляет 64 бита и может быть усечен до 31 или 24 битов для поддержки прежних пределов адресации. Счетчик программы в процессоре Power Architecture составляет 64 бита и может быть усечен до 32 битов для поддержки прежних пределов адресации. Счетчик программы обычно воплощается в PSW (слово состояния программы) компьютера таким образом, что он сохраняется в процессе переключения контекста. Таким образом, выполняющаяся программа, имеющая значение счетчика программы, может быть прервана, например, посредством операционной системы (переключение контекста от окружения программы к среде операционной системы). PSW программы поддерживает значение счетчика программы во время неактивности программы, и счетчик программы (в PSW) операционной системы используется во время выполнения операционной системы. Как правило, счетчик программы увеличивает отсчет на величину, равную числу байтов текущей команды. Команды RISC (компьютера с сокращенной системой команд) обычно имеют фиксированную длину, в то время как команды CISC (компьютера со сложной системой команд) обычно имеют переменную длину. Команды z/Архитектуры IBM являются командами CISC, имеющими длину 2, 4 или 6 байтов. Команды IBM Power ISA являются командами RISC, имеющими длину 4 байта. Счетчик 5061 программы изменяется посредством либо операции по переключению контекста, либо, например, операции принятия ветвления команды ветвления. В операции по переключению контекста текущее значение счетчика программы сохраняется в слове состояния программы наряду с другой информацией о состоянии относительно выполняемой программы (такой как условные коды), и загружается новое значение счетчика программы, указывающее на подлежащую выполнению команду нового программного модуля. Операция принятия ветвления выполняется с целью разрешения программе принятия решений или реализации в рамках программы оператора цикла путем загрузки результата команды ветвления в счетчик 5061 программы.

Обычно устройство 5055 выборки команд используется для выборки команд в интересах процессора 5026. Устройство выборки либо выбирает «следующие последовательные команды», целевые команды команд принятия ветвления, либо первые команды программы после переключения контекста. Современные устройства выборки команд зачастую используют методы упреждающей выборки для предположительной упреждающей выборки команд на основании вероятности использования выбранных с упреждением команд. Например, устройство выборки может выбрать 16 байтов команды, включающей в себя следующую последовательную команду и дополнительные байты других последовательных команд.

Выбранные команды затем выполняются посредством процессора 5026. В варианте осуществления выбранная команда (команды) передаются к устройству 5056 диспетчера устройства выборки. Устройство диспетчера декодирует команду (команды) и передает информацию относительно декодируемой команды (команд) в соответствующие устройства 5057, 5058, 5060. Устройство 5057 выполнения обычно получает информацию относительно декодированных арифметических команд от устройства 5055 выборки команд, и выполняет арифметические операции на операндах согласно коду операции команды. Операнды обеспечиваются устройству 5057 выполнения, предпочтительно, либо из памяти 5025, архитектурно спроектированных регистров 5059, либо из поля непосредственной адресации выполняемой команды. Результаты выполнения, при сохранении, сохраняются либо в памяти 5025, регистрах 5059, либо в других аппаратных средствах машины (таких как регистры управления, регистры PSW и т.п.).

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

Процессор 5026 обычно имеет одно или несколько устройств 5057, 5058, 5060 для выполнения функции команды. Согласно фиг. 17А устройство 5057 выполнения может сообщаться 5071 с архитектурно спроектированными общими регистрами 5059, с устройством 5056 декодирования/диспетчеризации, с устройством 5060 загрузки и хранения, а также с другими процессорами 5065 посредством взаимодействия посредством интерфейсной логики 5071. Устройство 5057 выполнения может использовать несколько контуров 5067, 5068, 5069 регистров для содержания информации, которой оперирует арифметико-логическое устройство (ALU) 5066. ALU выполняет арифметические операции, такие как сложение, вычитание, умножение и деление, а также логические функции, такие как И, Или, а также Исключающее или (XOR), Циклического сдвига и Смещения. Предпочтительно, ALU поддерживает специализированные операции, которые являются зависимыми от проектного решения. Другие контуры могут обеспечивать другие архитектурно спроектированные функции 5072, включающие в себя, например, условные коды и логику поддержки восстановления. Обычно результат операции ALU содержится в контуре 5070 выходного регистра, который может передавать результат к ряду других функций обработки. Имеются самые разнообразные процессорные структуры, настоящее описание предназначается только для обеспечения понимания одного варианта осуществления.

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

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

Устройство 5057 выполнения выполняет арифметическое сложение на двух операндах и сохраняет результат в третьем операнде, причем третий операнд может быть представлен третьим регистром или одним из двух исходных регистров. Устройство выполнения предпочтительно использует арифметико-логическое устройство (ALU) 5066, которое является способным к выполнению ряда логических функций, таких как Смещение, Циклический сдвиг, И, Или и Исключающее или, а также ряда алгебраических функций, включающих в себя любую операцию из числа сложения, вычитания, умножения, деления. Некоторые ALU 5066 разработаны для скалярных операций, а некоторые - для операций с плавающей точкой. Данные могут быть представлены, в зависимости от архитектуры, в порядке следования, начиная со старшего (где наименее значащий байт располагается по адресу старшего байта), или в порядке следования, начиная с младшего (где наименее значащий байт располагается по адресу младшего байта), z/Архитектура IBM имеет порядок следования, начиная со старшего. IBM Power ISA поддерживает режимы выполнения как в порядке следования, начиная со старшего, так и в порядке следования, начиная с младшего. Поля значения со знаком, в зависимости от архитектуры, могут быть представлены знаком и порядком величины, представленным в обратном двоичном коде числом или представленным в дополнительном двоичном коде числом. Представленное в дополнительном двоичном коде число является выгодным в том плане, что для ALU не требуется проектирование инструмента для вычитания, поскольку как отрицательная величина, так и положительная величина в дополнительном двоичном коде требуют только сложения в пределах ALU. Числа обычно описываются в сокращенном виде, когда 12 битовое поле задает адрес 4096-байтового блока и обычно описывается, например, как 4 кбайтовый (килобайтовый) блок.

Согласно фиг. 17Б информация о команде ветвления для выполнения команды ветвления обычно отправляется в устройство 5058 обработки ветвлений, которое зачастую использует алгоритм предсказания ветвлений, такой как таблица 5082 истории ветвлений для предсказания результата ветвления прежде завершения других условных операций. Цель текущей команды ветвления выбирается и упреждающим образом выполняется прежде завершения условных операций. Когда условные операции завершаются, выполняемые упреждающим образом команды ветвления или завершаются или сбрасываются на основании условий условной операции и упреждающего результата. Типичная команда ветвления может проверять условные коды и выполнять ветвление к целевому адресу, если условные коды отвечают требованию ветвления команды ветвления, целевой адрес может быть вычислен на основании нескольких чисел, включая сюда, например, найденные в полях регистра или в поле непосредственной адресации команды. Устройство 5058 обработки ветвлений может использовать ALU 5074, имеющий несколько входных контуров 5075, 5076, 5077 регистров и контур 5080 выходного регистра. Устройство 5058 обработки ветвлений может сообщаться 5081 с общими регистрами 5059, с устройством 5056 декодирования/диспетчеризации или, например, с другими контурами 5073.

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

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

Согласно фиг. 17В процессор получает доступ к памяти с помощью устройства 5060 загрузки и хранения. Устройство 5060 загрузки и хранения может выполнять операцию загрузки путем получения адреса целевого операнда в памяти 5053 и загрузки операнда в регистре 5059 или в другом местоположении памяти 5053, или может выполнять операцию сохранения путем получения адреса целевого операнда в памяти 5053 и сохранения данных, полученных из регистра 5059 или другого местоположения памяти 5053, в целевом местоположении операнда в памяти 5053. Устройство 5060 загрузки и хранения может быть упреждающим, и может получать доступ к памяти в последовательности, порядок которой не соответствует таковому для последовательности команды, однако устройство 5060 загрузки и хранения должно поддерживать внешнее представление по отношению к программам, команды которых выполняются по порядку. Устройство 5060 загрузки и хранения может сообщаться 5084 с общими регистрами 5059, с устройством 5056 декодирования/диспетчеризации, с интерфейсом 5053 кэша/памяти или с другими элементами 5083, и содержит различные контуры 5086, 5087, 5088 и 5089 регистра, ALU 5085 и управляющую логику (CLT) 5090 для вычисления адресов памяти и для обеспечения конвейерного упорядочивания для поддержания операций упорядоченными. Некоторые операции могут располагаться не по порядку, но устройство загрузки и хранения обеспечивает функциональность для предложения находящихся вне порядка операций программе в виде выполненных по порядку, как это хорошо известно из уровня техники.

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

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

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

Устройства ввода/вывода 5054 (фиг. 16) обеспечивают процессору средства для присоединения к периферийным устройствам, включающим в себя, например, устройства записи на ленту, дисководы, принтеры, дисплеи и сети. Устройства ввода/вывода зачастую обеспечиваются компьютерной программе посредством программных драйверов. В мэйнфреймах, таких как System z от IBM®, канальные адаптеры и адаптеры открытой системы являются устройствами ввода/вывода мэйнфрейма, обеспечивающими сообщение между операционной системой и периферийными устройствами. В серверах RISC, таких как Power Systems от IBM®, проприетарные адаптеры и адаптеры открытой системы являются устройствами ввода/вывода, обеспечивающими сообщение между операционной системой и периферийными устройствами.

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

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

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

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

Эти сохраненные в информационном носителе команды в исходной среде могут быть выполнены в серверах Power Systems или z/Архитектуры IBM®, или альтернативно, в машинах, выполняющих другие архитектуры. Они могут быть эмулированы в существующих и в будущих мэйнфреймных серверах IBM®, серверах Power Systems, а также на других машинах IBM® (например, серверах IBM System х). Они могут быть выполнены в использующих Linux машинах на большом разнообразии машин с помощью аппаратных средств, изготовленных IBM®, Intel®, AMD и другими компаниями. Помимо выполнения на аппаратных средствах под архитектурой Power или z/Архитектурой, может использоваться Linux, равно как и машины, использующие эмуляцию посредством Hercules, UMX или FSI (корпорация Fundamental Software), где в основном выполнение производится в режиме эмуляции. В режиме эмуляции программное обеспечение эмуляции выполняется собственным процессором для эмуляции архитектуры эмулируемого процессора.

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

Эмулируемая конкретная команда декодируется, и вызывается подпрограмма для выполнения функции отдельной команды. Функция эмуляционного программного обеспечения, эмулирующая функцию эмулируемого процессора реализуется, например, в подпрограмме «С» или в драйвере или некоторым другим способом обеспечения драйвера для специальных аппаратных средств, как должно быть ясно специалистам уровня техники после понимания описания предпочтительного варианта осуществления. Различные патенты по программной и аппаратной эмуляции, в том числе, но не ограничиваясь, патент на изобретение США №5551013, под названием «Многопроцессорная система для аппаратной эмуляции» (Multiprocessor for Hardware Emulation), Босолей и др. (Beausoleil et al), и патент на изобретение США №6009261, под названием «Предварительная обработка сохраненных целевых подпрограмм для эмуляции несовместимых команд на целевом процессоре» (Preprocessing of Stored Target Routines for Emulating Incompatible Instructions on a Target Processo), Скальци и др. (Scalzi et al), и патент на изобретение США №5574873, под названием «Гостевая команда декодирования для непосредственного доступа к подпрограммам эмуляции, которые эмулируют гостевые команды» (Decoding Guest Instruction to Directly Access Emulation Routines that Emulate the Guest Instructions), Давидян и др. (Davidian et al), и патент на изобретение США №6308255, под названием «Симметричная многопроцессорная шина и чипсет, используемые для поддержки сопроцессора и позволяющие выполнение в системе несобственного кода» (Symmetrical Multiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System), Горишек и др. (Gorishek et al), и патент на изобретение США №6463582, под названием «Динамический оптимизирующий транслятор объектного кода для эмуляции архитектуры и способ динамической оптимизирующей трансляции объектного кода» (Dynamic Optimizing Object Code Translator for Architecture Emulation and Dynamic Optimizing Object Code Translation Method), Летин и др. (Lethin et al), и патент на изобретение США №5790825, под названием «Способ эмуляции гостевых команд на главном компьютере посредством динамической рекомпиляции команд главного компьютера» (Method for Emulating Guest Instructions on a Host Computer Through Dynamic Recompilation of Host Instructions), Эрик Траут (Eric Traut), а также многие другие, демонстрируют ряд известных и доступных специалистам в данной области техники способов достижения эмуляции для целевой машины формата архитектурно спроектированных для различных машин команд.

На фиг. 18 обеспечен пример эмулированной системы 5092 хост-компьютера, которая эмулирует систему 5000' хост-архитектуры. В эмулированной системе 5092 хост-компьютера хост-процессор (ЦП) 5091 является эмулированным хост-процессором (или виртуальным хост-процессором) и содержит процессор 5093 эмуляции, имеющий собственную архитектуру системы команд, отличную от таковой процессора 5091 хост-компьютера 5000'. Эмулированная система 5092 хост-компьютера имеет память 5094, доступную для процессора 5093 эмуляции.

В типовом варианте осуществления настоящего изобретения, память 5094 подразделяется на участок памяти 5096 хост-компьютера и участок подпрограмм 5097 эмуляции. Память хост-компьютера 5096 является доступной для программ эмулированного хост-компьютера 5092 согласно архитектуре хост-компьютера. Процессор 5093 эмуляции выполняет команды исходной среды архитектурно спроектированной системы команд архитектуры, отличной от таковой эмулированного процессора 5091, команды исходной среды, полученные из памяти 5097 подпрограмм эмуляции, а также может получать доступ к подлежащей выполнению команде хост-компьютера из программы в памяти 5096 хост-компьютера путем использования одной команды или нескольких команд, полученных в подпрограмме контроля последовательности команд и доступа/декодирования, которая может декодировать команду (команды) хост-компьютера, к которой получают доступ для выявления подпрограммы выполнения команды в исходной среде для эмуляции функции команды хост-компьютера, к которой получен доступ. Другие заданные для архитектуры системы 5000' хост-компьютера функции могут быть эмулированы посредством архитектурно спроектированных функциональных подпрограмм, включая сюда такие функции, например, как регистры общего назначения, регистры управления, динамическая трансляция адресов и поддержка подсистемы ввода/вывода и кэша процессора. Подпрограммы эмуляции могут также использовать в своих интересах функции, доступные в процессоре 5093 эмуляции (такие как общие регистры и динамическая трансляция виртуальных адресов) для повышения производительности подпрограмм эмуляции. Специальное оборудование и разгрузочные подсистемы также могут быть обеспечены в помощь процессору 5093 при эмуляции функционирования хост-компьютера 5000'.

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

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

Характеристики представлены следующим образом.

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

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

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

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

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

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

Модели услуги представлены следующим образом.

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

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

Модели развертывания представлены следующим образом.

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

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

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

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

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

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

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

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

Как показано на фиг. 19, компьютерная система/сервер 6012 в узле 6010 облачных вычислений показана в виде вычислительного устройства общего назначения. Компоненты компьютерной системы/сервера 6012 могут включать в себя, но не ими ограничиваются, один или несколько процессоров или вычислительных устройств 6016, системную память 6028, и шину 6018, которая соединяет с процессором 6016 различные компоненты системы, включающие в себя системную память 6028.

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

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

Системная память 6028 может включать в себя считываемые компьютерной системой носители в виде энергозависимой памяти, такие как оперативная память (RAM) 6030 и/или кэш-память 6032. Компьютерная система/сервер 6012, кроме того, может включать в себя и другие съемные и несъемные, энергозависимые и энергонезависимые информационные носители компьютерной системы. Исключительно в качестве примера, может быть обеспечена система 6034 хранения для считывания из несъемных, энергонезависимых магнитных носителей (не показанных и обычно называемых «жестким диском») и для записи в них. Хотя не показаны, могут быть обеспечены магнитный дисковод для считывания из несъемного, энергонезависимого магнитного диска (например, «гибкого диска») и для записи в него, и оптический дисковод для считывания из несъемного, энергонезависимого оптического диска, такого как CD-ROM, DVD-ROM или другие оптические носители, и для записи в них. В таких реализациях каждый дисковод может быть присоединен к шине 6018 посредством одного или нескольких интерфейсов носителей данных. Как будет, кроме того, изображено и описано ниже, память 6028 может включать в себя по меньшей мере один программный продукт, имеющий набор (например, по меньшей мере один) программных модулей, которые сконфигурированы для выполнения функций вариантов осуществления настоящего изобретения.

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

Компьютерная система/сервер 6012 может также сообщаться с одним или несколькими внешними устройствами 6014, такими как клавиатура, позиционирующее устройство, дисплей 6024, и т.д., с одним или несколькими устройствами, обеспечивающими пользователю взаимодействие с компьютерной системой/сервером 6012, и/или любыми устройствами (например, сетевой платой, модемом и т.д.), которые обеспечивают компьютерной системе/серверу 6012 сообщение с одним или несколькими другими вычислительными устройствами. Такая коммуникация может происходить через вводные/выводные (ввода/вывода) интерфейсы 6022. Кроме того, компьютерная система/сервер 6012 может сообщаться через сетевой адаптер 6020 с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет). Как изображено, сетевой адаптер 6020 сообщается с другими компонентами компьютерной системы/сервера 6012 через шину 6018. Следует понимать, что совместно с компьютерной системой/сервером 6012 могут быть использованы, хотя и не показаны, другие аппаратные компоненты и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.

На фиг. 20 изображено показательное окружение 6050 облачных вычислений. Как показано, окружение 6050 облачных вычислений содержит один или несколько узлов 6010 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 6054А, настольный компьютер 6054В, портативный компьютер 6054С, и/или автомобильная компьютерная система 6054N. Узлы 6010 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет окружению 6050 облачных вычислений предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. 28 типы 6054A-N вычислительных устройств предназначаются исключительно для разъяснений и, что вычислительные узлы 6010 и окружение 6050 облачных вычислений могут сообщаться с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб-браузера).

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

Аппаратный и программный уровень 6060 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают в себя мэйнфреймы, в одном примере, системы IBM® zSeries®, основанные на архитектуре RISC (компьютер с сокращенной системой команд) серверы, в одном примере, системы IBM pSeries®, системы IBM xSeries®, системы IBM BladeCenter®, запоминающие устройства, сети и сетевые компоненты. Примеры компонентов программного обеспечения включают в себя серверное программное обеспечение сетевых приложений. В одном примере серверное программное обеспечение приложений IBM WebSphere® и программное обеспечение базы данных. В одном примере программное обеспечение базы данных IBM DB2®. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere и DB2 являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру).

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

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

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

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

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

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

название год авторы номер документа
КОНФИГУРАЦИЯ АРХИТЕКТУРНОГО РЕЖИМА В ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ 2015
  • Гшвинд Михаэль Карл
RU2664413C2
ОБЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ЗАГРУЗКИ ДЛЯ УПРАВЛЯЮЩЕЙ СЕРВИСНОЙ ПРОГРАММЫ, СПОСОБНОЙ К ИНИЦИАЛИЗАЦИИ ВО МНОЖЕСТВЕННЫХ АРХИТЕКТУРАХ 2015
  • Гшвинд Михаэль Карл
RU2665238C2
СРЕДСТВО ФУНКЦИОНАЛЬНОЙ ВИРТУАЛИЗАЦИИ ДЛЯ БЛОКИРОВКИ КОМАНДНОЙ ФУНКЦИИ МНОГОФУНКЦИОНАЛЬНОЙ КОМАНДЫ ВИРТУАЛЬНОГО ПРОЦЕССА 2010
  • Дан Грейнер
  • Деймиан Лео Осайсек
  • Тимоти Слиджл
  • Лайза Хеллер
RU2565514C2
СРЕДСТВО ПРЕДУПРЕЖДАЮЩЕГО ПРЕРЫВАНИЯ 2012
  • Марк С. Фаррелл
  • Чарлз У. Гейни Джр.
  • Джеффри Пол Кьюбала
  • Джеймс Х. Малдер
  • Бернард Пирс
  • Роберт Р. Роджерс
  • Доналд Уилльям Шмидт.
RU2577470C2
ИСПОЛЬЗОВАНИЕ СРЕДСТВА ПРЕДУПРЕЖДАЮЩЕГО ПРЕРЫВАНИЯ ПРОГРАММОЙ 2012
  • Чарлз У. Гейни Джр.
  • Джеффри Пол Кьюбала
  • Марк С. Фаррелл
  • Доналд Уилльям Шмидт
  • Джеймс Х. Малдер
  • Бернард Пирс
  • Роберт Р. Роджерс
RU2565495C2
ФИЛЬТРАЦИЯ ПРОГРАММНОГО ПРЕРЫВАНИЯ В ТРАНЗАКЦИОННОМ ВЫПОЛНЕНИИ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
  • Марсель Митран
RU2568923C2
КОМАНДА НА НЕТРАНЗАКЦИОННОЕ СОХРАНЕНИЕ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
RU2568324C2
СОХРАНЕНИЕ/ВОССТАНОВЛЕНИЕ ВЫБРАННЫХ РЕГИСТРОВ ПРИ ТРАНЗАКЦИОННОЙ ОБРАБОТКЕ 2012
  • Дан Ф. Грейнер
  • Кристиан Якоби
  • Тимоти Дж. Слиджл
RU2562424C2
СПОСОБ И СИСТЕМА ДЛЯ УПРАВЛЕНИЯ ВЫПОЛНЕНИЕМ ВНУТРИ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ 2012
  • Дан Ф. Грейнер
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
  • Питер Джереми Релсон
  • Рандалл Уилльям Филли
RU2577487C2
ВЫПОЛНЕНИЕ ВЫНУЖДЕННОЙ ТРАНЗАКЦИИ 2012
  • Дан Ф. Грейнер
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
RU2549112C2

Иллюстрации к изобретению RU 2 665 243 C2

Реферат патента 2018 года Связанное с выбранными архитектурными функциями администрирование обработки

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

Формула изобретения RU 2 665 243 C2

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

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

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

2. Способ по п. 1, причем выбранная архитектурная функция содержит динамическую трансляцию адресов.

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

4. Способ по одному из предшествующих пунктов, причем способ, кроме того, содержит:

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

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

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

5. Способ по п. 4, причем обеспечение указателя включает в себя индикацию ошибки.

6. Способ по п. 5, причем ошибка является исключением.

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

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

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

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

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

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

- выполнение на основании выявления обработки процессором в первом архитектурном режиме операции,

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

11. Способ по п. 10, причем выбранная архитектурная функция содержит динамическую трансляцию адресов.

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

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

- память,

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

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

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

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

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

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

16. Компьютерная система по одному из пп. 12-15, причем способ, кроме того, содержит:

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

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

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

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

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

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

US 20050223225 A1, 06.10.2005
WO 2011160724 A1, 29.12.2011
US 20130138907 A1, 30.05.2013
АРХИТЕКТУРА ВИРТУАЛЬНОГО МОДУЛЯ БЕЗОПАСНОСТИ 2007
  • О'Конор Деннис М.
  • Бризек Джон П.
RU2444783C2
СПОСОБ ОБРАБОТКИ ЦИФРОВЫХ ДАННЫХ 2005
  • Шестаков Павел Михайлович
RU2294010C1
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СИНТЕЗИРОВАННЫХ КОМАНД В ВИРТУАЛЬНОЙ МАШИНЕ 2004
  • Траут Эрик
RU2374675C2

RU 2 665 243 C2

Авторы

Гшвинд Михаэль Карл

Гейни Чарлз

Даты

2018-08-28Публикация

2015-03-09Подача