ОБЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ЗАГРУЗКИ ДЛЯ УПРАВЛЯЮЩЕЙ СЕРВИСНОЙ ПРОГРАММЫ, СПОСОБНОЙ К ИНИЦИАЛИЗАЦИИ ВО МНОЖЕСТВЕННЫХ АРХИТЕКТУРАХ
COMMON BOOT SEQUENCE FOR CONTROL UTILITY ABLE TO BE INITIALISED IN MULTIPLE ARCHITECTURES

Область техники
Один или несколько аспектов относятся, в общем, к конфигурациям вычислительных окружений и, прежде всего, к поддержке множественных конфигураций.
Уровень техники
Вычислительные окружения предлагают диапазон инструментов и функций в зависимости от архитектурных конфигураций окружений. Две предложенные IBM архитектуры включают в себя ESA/390 и z/Архитектуру. ESA/390 является предшествующей архитектурой по отношению к z/Архитектуре. Однако когда z/Архитектура была введена, поддержка ESA/390 была продолжена. Для поддержки обеих архитектур в одном окружении требуется следовать некоторым процедурам. Например, при включении загружается ESA/390, а затем, при желании, может быть сделано переключение на z/Архитектуру. Это позволяет унаследованному программному обеспечению продолжать выполнение без изменений. Другие такие процедуры предоставляются с целью поддержки обеих архитектурных конфигураций в одном окружении.
Сложность поддержки более ранней архитектуры усугубляется в случае перехода программного обеспечения к более поздней архитектуре.
Поэтому на уровне техники существует потребность в рассмотрении вышеупомянутой проблемы.
Сущность изобретения
При рассмотрении с позиции первого аспекта, настоящее изобретение предоставляет способ инициализации управляющей сервисной программы в вычислительном окружении, способ, содержащий: выполнение посредством процессора последовательности загрузки для начальной загрузки управляющей сервисной программы в выбранном архитектурном режиме, который основан на выбранной архитектуре, причем управляющая сервисная программа записана для выбранной архитектуры и сконфигурирована для инициализации по меньшей мере в одной из первой архитектурной конфигурации, которая инициализируется в одной архитектуре и переключается на выбранную архитектуру для обработки, или во второй архитектурной конфигурации, которая инициализируется и производит обработку в выбранной архитектуре, и причем выполнение последовательности загрузки содержит: выполнение одной или нескольких команд независимо от того, должен ли процессор выполнять инициализацию на основании первой архитектурной конфигурации или второй архитектурной конфигурации, причем одна или несколько команд являются общими для одной архитектуры и для выбранной архитектуры так, что одна или несколько команд заданы в одной архитектуре и в выбранной архитектуре, и выполнение содержит операцию переключения для запроса переключения архитектурных режимов для процессора независимо от того, должен ли процессор выполнять инициализацию в одной архитектуре или выбранной архитектуре, причем операция переключения выполняется различным образом на основании того, для какой архитектуры, одной архитектуры или выбранной архитектуры, процессор должен выполнять инициализацию, и на основании выполнения операции переключения управляющая сервисная программа загружается в выбранном архитектурном режиме.
При рассмотрении с позиции другого аспекта настоящее изобретение предоставляет компьютерную систему для инициализации управляющей сервисной программы в вычислительном окружении, причем компьютерная система содержит: память и соединенный с памятью процессор, причем компьютерная система выполнена для выполнения способа, причем способ содержит: выполнение процессором последовательности загрузки для начальной загрузки управляющей сервисной программы в выбранном архитектурном режиме, который основан на выбранной архитектуре, причем управляющая сервисная программа записана для выбранной архитектуры и сконфигурирована для инициализации по меньшей мере в одной из первой архитектурной конфигурации, которая инициализируется в одной архитектуре и переключается для обработки на выбранную архитектуру, или во второй архитектурной конфигурации, которая инициализируется и производит обработку в выбранной архитектуре, и причем выполнение последовательности загрузки содержит: выполнение одной или нескольких команд независимо от того, должен ли процессор выполнять инициализацию на основании первой архитектурной конфигурации или второй архитектурной конфигурации, причем одна или несколько команд являются общими для одной архитектуры и для выбранной архитектуры так, что одна или несколько команд заданы в одной архитектуре и в выбранной архитектуре, и выполнение содержит операцию переключения для запроса переключения архитектурных режимов для процессора независимо от того, должен ли процессор выполнять инициализацию в одной архитектуре или выбранной архитектуре, причем операция переключения выполняется различным образом на основании того, для какой архитектуры, одной архитектуры или выбранной архитектуры, процессор должен выполнять инициализацию, и на основании выполнения операции переключения управляющая сервисная программа загружается в выбранном архитектурном режиме.
При рассмотрении с позиции другого аспекта настоящее изобретение предоставляет компьютерный программный продукт для инициализации управляющей сервисной программы в вычислительном окружении, причем компьютерный программный продукт содержит машиночитаемый информационный носитель, выполненный с возможностью считывания посредством устройства обработки данных и сохраняющий команды для выполнения посредством устройства обработки данных для выполнения способа для выполнения этапов изобретения.
При рассмотрении с позиции другого аспекта настоящее изобретение предоставляет компьютерную программу, содержащую участки программного кода, сохраненную на машиночитаемом носителе и выполненную с возможностью загрузки во внутреннюю память цифровой вычислительной машины, когда данная программа выполняется на компьютере, для выполнения этапов изобретения.
Недостатки известного уровня техники преодолеваются, и преимущества обеспечиваются посредством предоставления компьютерного программного продукта для инициализации управляющей сервисной программы в пределах вычислительного окружения. Компьютерный программный продукт включает в себя, например, машиночитаемый информационный носитель, считываемый посредством устройства обработки данных, и сохраняющий команды для выполнения посредством устройства обработки данных для выполнения способа. Способ включает в себя, например, выполнение посредством процессора последовательности загрузки для начальной загрузки управляющей сервисной программы в выбранном архитектурном режиме, который основан на выбранной архитектуре, причем управляющая сервисная программа записана для выбранной архитектуры и сконфигурирована для инициализации по меньшей мере в одной из первой архитектурной конфигурации, которая инициализируется в одной архитектуре и переключается на выбранную архитектуру для обработки, или во второй архитектурной конфигурации, которая инициализируется и производит обработку в выбранной архитектуре, и причем выполнение последовательности загрузки содержит: выполнение одной или нескольких команд независимо от того, должен ли процессор выполнять инициализацию на основании первой архитектурной конфигурации или второй архитектурной конфигурации, причем одна или несколько команд являются общими для одной архитектуры и для выбранной архитектуры так, что одна или несколько команд заданы в одной архитектуре и в выбранной архитектуре, и выполнение содержит операцию переключения для запроса переключения архитектурных режимов для процессора независимо от того, должен ли процессор выполнять инициализацию в одной архитектуре или выбранной архитектуре, причем операция переключения выполняется различным образом на основании того, для какой архитектуры, одной архитектуры или выбранной архитектуры, процессор должен выполнять инициализацию, и на основании выполнения операции переключения управляющая сервисная программа загружается в выбранном архитектурном режиме.
Относящиеся к одному или нескольким предпочтительным вариантам осуществления способы и системы также описаны и заявлены в настоящем документе. Кроме того, относящиеся к одному или нескольким предпочтительным вариантам осуществления услуги также описаны и могут быть заявлены в настоящем документе.
Осуществлены дополнительные функции и преимущества. Другие предпочтительные варианты осуществления и аспекты подробно описываются в настоящем документе и считаются частью заявленного изобретения.
Краткое описание чертежей
В дальнейшем, настоящее изобретение описывается исключительно в качестве примера со ссылками на предпочтительные варианты осуществления, как показано на последующих чертежах:
Фиг. 1 изображает один пример вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 2 изображает другой пример вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 3А изображает еще один пример вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 3Б изображает более подробную информацию по памяти на фиг. 3А согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 4А изображает один вариант осуществления логики для включения вычислительного окружения в одном архитектурном режиме согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 4Б изображает один вариант осуществления последующей обработки, связанной с процессом включения на фиг. 4А согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 5 изображает один вариант осуществления формата слова состояния программы согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 6А изображает один вариант осуществления логики для включения вычислительного окружения в архитектурном режиме, отличающемся от одного архитектурного режима, включенного на фиг. 4А согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 6Б изображает один вариант осуществления последующей обработки, связанной с процессом включения на фиг. 6А согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 7 изображает один типовой формат команды слова состояния программы загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 8А изображает один типовой формат команды процессора обработки сигналов согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 8Б изображает один вариант осуществления обработки, связанной с командой процессора обработки сигналов на фиг. 8А согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 9 изображает один вариант осуществления логики для выполнения начальной загрузки, в котором управляющая сервисная программа инициализируется в ESA/390 согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 10 изображает один вариант осуществления логики для выполнения начальной загрузки, в котором управляющая сервисная программа инициализируется в z/Архитектуре,
Фиг. 11 изображает один вариант осуществления логики для общей последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 12 изображает другой вариант осуществления логики для общей последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 13 изображает один типовой формат команды слова состояния программы извлечения согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 14 изображает другой вариант осуществления логики для общей последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 15 изображает один вариант осуществления логики для выполнения сброса для перезагрузки управляющей сервисной программы согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 16 изображает другой вариант осуществления логики для выполнения сброса для перезагрузки управляющей сервисной программы согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 17 изображает еще один вариант осуществления логики для выполнения сброса для перезагрузки управляющей сервисной программы согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 18 изображает один вариант осуществления логики для обнаружения несовместимой управляющей сервисной программы по отношению к последовательности загрузки согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 19 изображает один вариант осуществления обработки связанной с выполнением начальной загрузки управляющей сервисной программы согласно предпочтительному варианту осуществления настоящего изобретения,
Фиг. 20 изображает один вариант осуществления компьютерного программного продукта согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 21 изображает один вариант осуществления системы главного компьютера согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 22 изображает другой пример компьютерной системы согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 23 изображает другой пример содержащей компьютерную сеть компьютерной системы согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 24 изображает один вариант осуществления различных элементов компьютерной системы согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 25А изображают один вариант осуществления функционального устройства компьютерной системы на фиг. 24 согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 25Б изображает один вариант осуществления устройства обработки ветвлений компьютерной системы на фиг. 24 согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 25В изображает один вариант осуществления устройства загрузки и хранения компьютерной системы на фиг. 24 согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 26 изображает один вариант осуществления эмулированной системы главного компьютера,
Фиг. 27 изображает один вариант осуществления узла облачных вычислений согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения,
Фиг. 28 изображает один вариант осуществления окружения облачных вычислений согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения, и
Фиг. 29 изображает один пример уровней модельной абстракции, согласно известному уровню техники, в котором может быть реализован предпочтительный вариант осуществления настоящего изобретения.
Подробное описание
Согласно одному или нескольким аспектам предоставляется общая функция последовательности загрузки, которая позволяет управляющей сервисной программе (например, операционной системе, управляющей программе или другому автономному программному средству, которое загружается без потребности в операционной системе, такому как сопровождающие и администрирующие (например, разгрузка памяти, формат диска) сервисные программы, в качестве примеров) быть загруженными во многих конфигурациях без изменения последовательности загрузки. Например, операционная система или другая управляющая сервисная программа использует общую последовательность загрузки для обеспечения своей способности загружаться или в первой архитектурной конфигурации, которая инициализируется в одной архитектуре, например в ESA/390, а затем для обработки переключается на другую архитектуру, такую как z/Архитектура, или во второй архитектурной конфигурации, которая инициализируется и производит обработку, например, в другой архитектуре, например в z/Архитектуре.
Когда z/Архитектура постепенно вводилась, управляющие сервисные программы продолжали загружаться в ESA/390, являющейся предшественницей z/Архитектуры, а затем в процессе последовательности загрузки, обработка переключалась на z/Архитектуру. Это позволяло унаследованному программному обеспечению продолжать выполняться без изменений. Однако, имеются случаи, когда может оказаться желательной загрузка непосредственно в z/Архитектуре. Таким образом, предоставляется общая последовательность загрузки, которая позволяет управляющей сервисной программе без перекодировки загружаться в любой конфигурации. Например, записанная для z/Архитектуры операционная система использует последовательность загрузки, которая или загружается в ESA/390, а затем переключается на z/Архитектуру, или просто загружается непосредственно в z/Архитектуре. Хотя варианты осуществления в настоящем документе описаны со ссылками на ESA/390 и z/Архитектуру, один или несколько аспектов также являются применимыми к другим архитектурам.
Один пример вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки, описан со ссылками на фиг. 1. Согласно фиг. 1, в этом примере, вычислительное окружение 100 основано на предлагаемой IBM z/Архитектуре, z/Архитектура описана в публикации патента IBM под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация патента № SA 22-7932-09, 10-й выпуск, сентябрь 2012. Хотя вычислительное окружение основано на z/Архитектуре, в одном предпочтительном варианте осуществления оно также поддерживает одну или несколько других архитектурных конфигураций, таких как ESA/390.
В качестве примера, вычислительное окружение 100 включает в себя центральный вычислительный комплекс (СРС) 102, присоединенный к одному или нескольким устройствам 106 ввода/вывода (I/O) через одно или несколько устройств 108 управления. Центральный вычислительный комплекс 102 включает в себя, например, память 104 процессора (известную также под названием оперативная память, основная память, центральная память), соединенную с одним или несколькими центральными процессорами (известными также под названием центральных вычислительных устройств (ЦП)) 110, и с подсистемой 111 ввода/вывода, каждый из которых элементов описан ниже.
Память 104 процессора включает в себя, например, один или несколько разделов 112 (например, логических разделов), а также встроенное программное обеспечение 113 процессора, которое включает в себя гипервизор 114 логического раздела и другое встроенное программное обеспечение 115 процессора. Один пример гипервизора 114 логического раздела представлен администратором ресурсов процессора/системы Processor Resource/Systems Manager™ (PR/SM). IBM, z/OS, z/VM, z/Архитектура и Processor Resource/Systems Manager являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру. Другие используемые здесь наименования могут быть представлены зарегистрированными торговыми марками, торговыми марками или названиями продукта International Business Machines Corporation или других компаний.
Логический раздел функционирует как отдельная система и имеет в себе одно или несколько приложений 120 и, опционально, резидентную операционную систему 122, которая может отличаться для каждого логического раздела. В одном предпочтительном варианте осуществления операционная система является z/OS операционной системой, z/VM операционной системой, z/Linux операционной системой или операционной системой TPF, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Например, операционная система может включать в себя общую функцию 124 последовательности загрузки, или общая функция последовательности загрузки может быть представлена отдельно от операционной системы, но используется для загрузки (или инициализации) операционной системы.
Логическими разделами 112 управляет гипервизор 114 логических разделов, который реализован посредством встроенного программного обеспечения, функционирующего на процессорах 110. При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод и/или милликод процессора. Он включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном предпочтительном варианте он включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования и управляющий доступом операционной системы к оборудованию системы.
Центральные процессоры 110 являются физическими процессорными ресурсами, выделенными логическим разделам. Конкретно, каждый логический раздел 112 имеет один или несколько логических процессоров, каждый из которых представляет собой, полностью или частично, выделенный разделу физический процессор 110. Логические процессоры конкретного раздела 112 могут быть либо выделены разделу таким образом, что базовый процессорный ресурс 110 резервируется для данного раздела, либо быть используемыми совместно с другим разделом таким образом, что базовый процессорный ресурс является потенциально доступным другому разделу. В одном из вариантов, один или несколько ЦП могут включать в себя аспекты описываемой в настоящем документе функции 130 конфигурации архитектурного режима (САМ).
Подсистема 111 ввода/вывода направляет поток информации между устройствами 106 ввода-вывода и основной памятью 104. Эта подсистема соединена с центральным вычислительным комплексом так, что она может быть как частью центрального вычислительного комплекса, так и быть выполненной отдельной от него. Подсистема ввода/вывода освобождает центральные процессоры от задач сообщения непосредственно с устройствами ввода-вывода и позволяет обработке данных продолжаться одновременно с обработкой ввода/вывода. Для обеспечения связи подсистема ввода/вывода использует коммуникационные адаптеры ввода/вывода. Существуют различные типы коммуникационных адаптеров, в том числе, например, каналы, адаптеры ввода/вывода, платы протокольной управляющей информации (PCI), платы Ethernet, платы интерфейса хранения малых вычислительных машин (SCSI) и т.д. В описанном здесь конкретном примере коммуникационные адаптеры ввода/вывода являются каналами, и поэтому подсистема ввода/вывода в настоящем документе называется канальной подсистемой. Это, однако, является лишь одним из возможных примеров. Другие типы подсистем ввода/вывода также могут быть использованы.
Подсистема ввода/вывода использует один или несколько трактов ввода/вывода в качестве коммуникационных каналов при управлении потоком информации к устройствам 106 ввода-вывода или от них. В этом конкретном примере эти тракты называются канальными трактами, поскольку коммуникационные адаптеры являются каналами.
Другой пример вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки, описан со ссылками на фиг. 2. В этом примере вычислительное окружение 200 включает в себя неразбитое на разделы окружение, которое может быть выполнено для многих архитектурных режимов, в том числе, z/Архитектуры и ESA/390. Это окружение включает в себя, например, процессор (центральное вычислительное устройство - ЦП) 202, который включает в себя, например, функцию 204 конфигурации архитектурного режима, а также один или несколько кэшей 206. Процессор 202 коммуникативно соединен с участком 208 памяти, имеющим один или несколько кэшей 210, и с подсистемой 212 ввода/вывода (I/O). Подсистема 212 ввода/вывода коммуникативно соединена с внешними устройствами 214 ввода/вывода, которые могут включать в себя, например, устройства ввода данных, датчики и/или устройства вывода, такие как дисплеи.
В одном из вариантов участок 208 памяти также включает в себя по меньшей мере одну управляющую сервисную программу 220, такую как операционная система, использующую общую последовательность 222 загрузки при начальной загрузке.
Другой предпочтительный вариант вычислительного окружения, охватывающего и использующего один или несколько аспектов общей функции последовательности загрузки, описан со ссылками на фиг. 3А. В этом примере вычислительное окружение 300 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (ЦП) 302, память 304, а также одно или несколько устройств ввода-вывода и/или интерфейсов 306, соединенных друг с другом, например, через одну или несколько шин 308 и/или других присоединений. Например, вычислительное окружение 300 может включать в себя процессор PowerPC или сервер Power SystemsTM, HP Superdome с процессорами Intel Itanium II, предлагаемыми Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектуре, предлагаемой International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими. PowerPC и Power Systems являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру. Intel и Itanium являются торговыми марками или зарегистрированными торговыми марками Intel Corporation или ее филиалов в Соединенных Штатах и других странах.
Предназначенное для исходной среды центральное вычислительное устройство 302 включает в себя один или несколько предназначенных для исходной среды регистров 310, таких как один или несколько регистров общего назначения и/или один или несколько регистров особого назначения, используемых в процессе обработки в пределах окружения и, опционально, функцию 311 конфигурации архитектурного режима. Эти регистры включают в себя информацию, представляющую состояние окружения в любой конкретный момент времени.
Кроме того, предназначенное для исходной среды центральное вычислительное устройство 302 выполняет команды и код, которые сохраняются в памяти 304. В одном конкретном примере центральное вычислительное устройство выполняет код 312 эмулятора, сохраняемые в памяти 304. Этот код позволяет вычислительному окружению, сконфигурированному в одной архитектуре, эмулировать одну или несколько других архитектур. Например, код 312 эмулятора позволяет машинам, основанным на отличных от z/Архитектуры архитектурам, таким как процессоры PowerPC, серверы Power Systems, серверы HP Superdome или другим, эмулировать z/Архитектуру (и/или ESA/390) и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.
Более подробная информация по коду 312 эмулятора изложена со ссылками на фиг. 3Б. Гостевые команды 350, сохраненные в памяти 304, содержат команды программного обеспечения (например, согласованные с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от предназначенного для исходной среды ЦП 302. Например, гостевые команды 350 могут быть разработаны для выполнения на процессоре 202 z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды ЦП 302, который может быть представлен, например, процессором Intel Itanium II. В одном из вариантов гостевые команды включают в себя общую последовательность 351 загрузки. В одном из вариантов код 312 эмулятора включает в себя подпрограмму 352 выборки команд для получения одной или нескольких гостевых команд 350 из памяти 304 и, опционально, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 354 трансляции команд для выявления типа полученной гостевой команды, и для трансляции гостевой команды в одну или несколько соответствующих предназначенных для исходной среды команд 356. Такая трансляция включает в себя, например, идентификацию функции, подлежащей выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.
Кроме того, код 312 эмулятора включает в себя подпрограмму 360 управления эмуляцией для принуждения предназначенных для исходной среды команд к выполнению. Подпрограмма 360 управления эмуляцией может принудить предназначенный для исходной среды ЦП 302 к выполнению подпрограммы предназначенных для исходной среды команд, которая эмулирует одну или несколько ранее полученных гостевых команд и, по завершении такого выполнения, возвращает управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение предназначенных для исходной среды команд 356 может включать в себя загрузку данных в регистр из памяти 304, сохранение данных обратно в памяти из регистра, или выполнение некоторого типа арифметической или логической операции, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализованная в программном обеспечении, сохраняется в памяти и выполняется посредством предназначенного для исходной среды центрального вычислительного устройства 302. В других примерах, одна или несколько из числа подпрограмм или операций реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из них. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 310 собственного ЦП или при помощи местоположений в памяти 304. В предпочтительных вариантов осуществления гостевые команды 350, предназначенные для исходной среды команды 356, и код 312 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
Описанные выше вычислительные окружения являются только примерами пригодных к использованию вычислительных окружений. Могут быть использованы другие окружения, в том числе, но не ограничиваясь, другие неразбитые на разделы окружения, другие разбитые на разделы окружения и/или другие эмулированные окружения, варианты осуществления не ограничиваются каким-либо окружением.
Как описано в настоящем документе, общая последовательность загрузки предоставляется для загрузки управляющей сервисной программы в одной из нескольких архитектурных конфигураций, включая сюда, например, первую конфигурацию, в которой управляющая сервисная программа инициализируется в первом архитектурном режиме (например, в устаревшем режиме, таком как ESA/390), а затем обработка переключается ко второму архитектурному режиму (например, расширенному режиму, такому как z/Архитектура), или вторую конфигурацию, в которой управляющая сервисная программа инициализируется и производит обработку, например, во втором архитектурном режиме. В одном варианте осуществления первый архитектурный режим включает в себя первую архитектуру системы команд и имеет первый набор поддерживаемых сервисов, таких как 31-битовая адресация, использование 32-битовых регистров общего назначения и различных функций. Кроме того, второй архитектурный режим включает в себя вторую архитектуру системы команд и имеет второй набор поддерживаемых сервисов, таких как 64-битовая адресация, использование 64-битовых регистров общего назначения и различных функций, таких как динамическая трансляция адресов и/или другие функции.
В одном варианте осуществления вторая конфигурация, в которой сервисная программа начальной загрузки инициализируется и производит обработку непосредственно в выбранном архитектурном режиме, таком как z/Архитектура, получает содействие за счет инсталляции функции конфигурации архитектурного режима. Эта функция, как описано в настоящем документе, предоставляет включение или последовательность загрузки для вычислительного окружения (например, процессора, LPAR (ресурсов доступа к логическим разделам), виртуального гостя), которая загружает вычислительное окружение в выбранном архитектурном режиме. Поэтому, прежде предоставления более подробной информации относительно общей последовательности загрузки описаны аспекты функции конфигурации архитектурного режима. Тем не менее, следует отметить, что инструмент общей последовательности загрузки также может быть использован в окружениях, не включающих в себя функцию конфигурации архитектурного режима.
В одном варианте осуществления функция конфигурации (САМ) архитектурного режима инсталлирована в одном или нескольких процессорах (например, центральных вычислительных устройствах) вычислительного окружения для управления реконфигурированием окружения. Например, когда САМ инсталлирована в поддерживающем несколько архитектурных режимов вычислительном окружении, вычислительное окружение реконфигурируется таким образом, что ограничивается использование одного или нескольких аспектов по меньшей мере одного из архитектурных режимов.
Один конкретный пример функции конфигурации архитектурного режима представлен функцией конфигурации (CZAM) архитектурного режима для z/Архитектуры. Инсталляция CZAM обозначается, например, индикатором установки функции, например битом 138, которому присваивается значение, например единица. В одном конкретном примере, когда биту 138 присвоено значение единица, функция CZAM инсталлирована, а когда она инсталлирована, нормальный сброс и чистый сброс переводят конфигурацию в архитектурный режим z/Архитектуры. Таким образом, биту функции, например биту 2, указывающему на активность архитектурного режима z/Архитектуры, также присваивается значение единица, в данном примере.
За счет инсталляции CZAM вычислительное окружение (например, одиночный процессор, логический раздел, виртуальный гость и т.д.) реконфигурируется таким образом, что более не поддерживаются один или несколько аспектов выбранной архитектуры, например, ESA/390. Различные более не поддерживаемые аспекты и/или некоторые затронутые установкой CZAM процессы описаны ниже. Хотя в описанных в настоящем документе предпочтительных вариантах осуществления совокупность архитектурных режимов включает в себя устаревшую архитектуру (например, ESA/390) и расширенную архитектуру (например, z/Архитектуру), и аспекты устаревшей архитектуры ESA/390 более не поддерживаются, другие предпочтительные варианты осуществления могут включать в себя другие архитектуры. ESA/390 и z/Архитектура являются только примерами.
Один из затронутых инсталляцией CZAM процессов представлен процессом включения. Для описания того, как этот процесс затрагивается, первоначально описан процесс включения для окружения, поддерживающего множественные архитектурные конфигурации и не включающего в себя функцию CZAM, со ссылками на фиг. 4А, 4Б, а затем описан процесс включения для окружения, сконфигурированного для множественных архитектурных конфигураций и включающего в себя функцию CZAM, со ссылками на фиг. 6А, 6Б. Включение для системы предусматривает, например, запуск системы и инициацию последовательности загрузки или других средств инициирования операций в системе. Это может соответствовать физическому включению, аппаратному сбросу и/или виртуальному включению (например, в эмулированной системе, виртуальной машине или гостевом окружении).
При обращении первоначально к фиг. 4А, при условии, что процессор вычислительного окружения был включен, а кнопка оператора, например, кнопка нормальной загрузки или кнопка чистой загрузки была активирована, процессор входит в состояние загрузки и задает вычислительному окружению конкретный архитектурный режим, например режим ESA/390, ЭТАП 400. Например, выполняется начальная загрузка программы (IPL), такой как управляющее слово канала (CCW) начальной загрузки программы (IPL), ЭТАП 402. Начальная загрузка программы предоставляет ручные средства для принуждения к считыванию программы из заданного устройства и для инициирования выполнения этой программы. IPL типа CCW инициируется вручную посредством присваивания средствам управления адресом загрузочного устройства значения в виде четырехзначного числа для обозначения устройства ввода данных, и посредством последующей активации кнопки чистой загрузки или нормальной загрузки для конкретного ЦП.
Активация кнопки чистой загрузки вызывает выполнение чистого сброса на конфигурации, а активация кнопки нормальной загрузки вызывает выполнение начального сброса ЦП на данном ЦП (ЦП, на котором кнопка была активирована), сброс ЦП подлежит распространению на все другие ЦП в конфигурации, а сброс подсистемы выполняется на остаточной части конфигурации. Активация кнопки чистой загрузки или кнопки нормальной загрузки задает архитектурный режим (например, ESA/390).
В загрузочной части операции, после выполнения сброса, этот ЦП входит в состояние загрузки. Данный ЦП не обязательно входит в остановленное состояние в процессе выполнение операций по сбросу. Индикатор загрузки включен, когда ЦП находится в состоянии загрузки.
Впоследствии, инициируется операция считывания из устройства ввода-вывода, указанного посредством средств управления адресом загрузочного устройства. Эффект выполнения программы управления работой канала ввода-вывода состоит в том, как если формат 0 управляющего слова CCW канала, начинающийся в абсолютной местоположении 0 памяти, задает команду считывания с нулевыми значениями битов модификатора, адресом данных ноль, отсчетом байтов 24, с метками команды с признаком цепочки и SLI(интерпретатора логики служб) равными единицам, и всеми другими метками равными нолям.
Когда операция ввода-вывода IPL завершается успешно, идентификационное слово подсистемы для устройства IPL сохраняется в выбранных абсолютных местоположениях памяти (например, ячейках 184-187), нули сохраняются в других выбранных абсолютных местоположениях памяти (например, местоположениях 188-191), а новое слово состояния программы (PSW) загружается из выбранных абсолютных местоположений памяти (например, местоположений 0-7), ЭТАП 404. Слово состояния программы управляет операциями вычислительного окружения.
Если загрузка PSW является успешной, и не обнаружено каких-либо сбоев машины, данный ЦП покидает состояние загрузки, и индикатор нагрузки выключается. Если управление производительностью задано в положение обработки, ЦП входит в рабочее состояние, и функционирование вычислительного окружения переходит под управление нового слова состояния программы (PSW), ЭТАП 406. Загруженное вычислительное окружение затем функционирует, ЭТАП 408, как далее описано со ссылками на фиг. 4Б. Согласно фиг. 4Б, загруженное вычислительное окружение инициируется в режиме ESA/390, ЭТАП 420 и, таким образом, операции выполняются в режиме ESA/390, ЭТАП 422. В некоторый момент может быть выполнен запрос на изменение архитектурного режима от ESA/390 к z/Архитектуре. Конкретно, программа отправляет код распоряжения (например, обозначающий заданную архитектуру код) к процессору, который выпускает команду процессора (SIGP) обработки сигналов с кодом распоряжения для переключения от режима ESA/390 к режиму z/Архитектуры, ЭТАП 424. Например, используется функция передачи сигналов и ответов ЦП, которая включает в себя команду процессора обработки сигналов (описанную ниже) и механизм для интерпретации кодов распоряжений сервера команды и действия на их основе, включая сюда также и код для задания архитектуры. Функция обеспечивает коммуникацию между ЦП, включая сюда передачу, получение и декодирование набора присвоенных кодов распоряжений, инициирование указанной операции, а также ответ к передавшему сигналы ЦП. При помощи кода задания архитектуры архитектурный режим задают в требуемой конфигурации, например, z/Архитектуре. Более подробная информация по этой обработке приведена ниже.
После этого, производится выявление относительно того, была ли операция SIGP принята, ИНФОРМАЦИОННЫЙ ЗАПРОС 426. На основании кода возврата могут быть диагностированы несколько состояний ошибки, включая сюда указание на «недопустимый параметр», когда было выявлено, что ЦП уже находится в заданном посредством кода архитектурном режиме (то есть, что задание архитектуры представляет собой переключение к текущему режиму как таковому в отличие от переключения с одного режима к другому режиму). Если SIGP принят, а задание архитектуры представляет собой допустимую операцию переключения режима, то все процессоры вычислительного окружения, получившие операцию SIGP, переходят в режим z/Архитектуры с использованием, например, обработки задания архитектуры, описанной в настоящем документе, ЭТАП 428. Однако, если операция SIGP не является допустимой, обозначается ошибка, ЭТАП 430.
Как описано выше, операция включения загружает слово состояния программы. Один вариант осуществления формата слова состояния программы (PSW) описан со ссылками на фиг. 5. Согласно фиг. 5, в этом примере формат слова состояния программы является форматом ESA/390, за исключением того, что бит 31 показан как ЕА, как обозначено ниже.
В одном варианте осуществления слово 500 состояния программы включает в себя последующие поля, в качестве примера:
Маска PER (R) 502: Бит 1 управляет оснащением ЦП прерываниями, связанными с регистрацией программных событий (PER). Когда бит представлен нолем, никакое событие PER не может вызвать прерывание. Когда бит представлен единицей, прерывания разрешены согласно битам маски события PER в регистре 9 управления,
Режим DAT (Т) 504: Бит 5 управляет наличием скрытой динамической трансляции (DAT) адресов логических адресов и адресов команд, используемых для получения доступа к памяти. Когда бит представлен нолем, DAT выключена, и логические адреса и адреса команд обрабатываются как действительные адреса. Когда бит представлен единицей, DAT включена, и механизм динамической трансляции адресов вызван.
Маска ввода/вывода (10) 506: Бит 6 управляет оснащением ЦП прерываниями для ввода/вывода. Когда бит представлен нолем, прерывание ввода/вывода не может произойти. Когда бит представлен единицей, прерывания ввода/вывода подвергаются воздействию битов маски подкласса прерывания ввода/вывода в регистре 6 управления. Когда бит маски подкласса прерывания ввода/вывода представлен нолем, прерывание ввода/вывода для данного подкласса прерывания ввода/вывода не может произойти, когда бит маски подкласса прерывания ввода/вывода представлен единицей, прерывание ввода/вывода для данного подкласса прерывания ввода/вывода может произойти,
Внешняя маска (ЕХ) 508: Бит 7 управляет оснащением ЦП прерываниями посредством условий, включаемых во внешний класс. Когда бит представлен нолем, внешнее прерывание не может произойти. Когда бит представлен единицей, внешнее прерывание подвергается воздействию соответствующих битов подкласса внешней маски в регистре 0 управления. Когда бит подкласса представлен нолем, связанные с подклассом условия не могут вызвать прерывание. Когда бит подкласса представлен единицей, прерывание в этом подклассе может произойти.
Ключ PSW (Key) 510: Биты 9-11 формируют ключ доступа для обращения к памяти посредством ЦП. Если обращение является объектом управляемой ключом защиты, ключ PSW согласовывается с ключом защиты памяти при сохранении информации или при выборке информации из защищенного от выборки местоположения. Тем не менее, для каждого из числа операндов Перейти к первичному выражению, Перейти ко вторичному выражению, Перейти с ключом, Перейти с исходным ключом и Перейти с целевым ключом, а также для одного или для обоих операндов Перейти с необязательными спецификациями вместо ключа PSW используется ключ доступа, определенный как операнд.
Бит 12 512: Этот бит указывает на текущий архитектурный режим. Он имеет значение единица для формата 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/Архитектуры.
Маска машинного контроля (М) 514: Бит 13 управляет оснащением ЦП прерываниями посредством условий машинного контроля. Когда бит представлен нолем, прерывание машинного контроля не может произойти. Когда бит представлен единицей, прерывания машинного контроля вследствие повреждения системы и повреждения обработки команд являются разрешенными, но прерывания вследствие других условий подкласса машинного контроля подвергаются воздействию битов маски подкласса в регистре 14 управления.
Состояние ожидания (W) 516: Когда бит 14 представлен единицей, ЦП ожидает, то есть посредством ЦП никакие команды не обрабатываются, но могут иметь место прерывания. Когда бит 14 представлен нолем, выборка и выполнение команды происходят нормальным способом. Когда бит представлен единицей, индикатор ожидания представлен единицей.
Заданный режим (Р) 518: Когда бит 15 представлен единицей, ЦП находится в заданном режиме. Когда бит 15 представлен нолем, ЦП находится в супервизорном режиме. В супервизорном режиме все команды являются допустимыми. В заданном режиме являются допустимыми только те команды, которые предоставляют значащую информацию заданной программе, и которые не могут затронуть целостность системы, такие команды называют непривилегированными командами. Команды, которые не являются допустимыми в заданном режиме, называют привилегированными командами. Когда ЦП в заданном режиме пытается выполнить привилегированную команду, распознается исключение привилегированной операции. Другая группа команд, называемых полупривилегированными командами, выполняется посредством ЦП в задачном режиме только в том случае, когда выполняются специальные проверки полномочий. В противном случае, распознается исключение привилегированной операции или исключение какой-либо другой программы, в зависимости от того конкретного требования, которое было нарушено.
Управление адресным пространством (AS) 520: Биты 16 и 17 совместно с битом 5 PSW управляют режимом трансляции.
Условный код (СС) 522: Биты 18 и 19 представляют собой два бита условного кода. Условному коду присваивают значения 0, 1, 2, или 3 в зависимости от результата, полученного при выполнении конкретных команд. Большинство арифметических и логических операций, а также некоторые другие операции присваивают значения условного кода. Команда BRANCH ON CONDITION может задавать любой выбор значений условного кода в качестве критерия ветвления.
Программная маска 524: Биты 20-23 представляют собой четыре бита программной маски. Каждый бит связан с исключением программы нижеследующим образом:
Бит программной маски
Исключение программы
20
Переполнение с фиксированной точкой
21
Десятичное переполнение
22
Исчезновение порядка HFP
23
Значимость разряда HFP
Когда бит маски представлен единицей, результатом исключения является прерывание. Когда бит маски представлен нолем, не происходит никакого прерывания. Задание биту маски исчезновения порядка HFP для бита маски значимости разряда HFP также задает способ завершения операции при осуществлении соответствующего исключения.
Расширенный режим адресации (ЕА) 526: Бит 31 управляет размером исполнительных адресов и образованием исполнительных адресов совместно с битом 32, основным битом режима адресации. Когда бит 31 представлен нолем, режимом адресации управляет бит 32. Когда оба бита 31 и 32 представлены единицами, задается 64-битовая адресация.
Основной режим адресации (ВА) 528: Биты 31 и 32 управляют размером исполнительных адресов и образованием исполнительных адресов. Когда оба бита 31 и 32 представлены нолями, задается 24-битовая адресация. Когда бит 31 представлен нолем, а бит 32 представлен единицей, задается 31-битовая адресация. Когда оба бита 31 и 32 представлены единицами, задается 64-битовая адресация. Бит 31 равный единице и бит 32 равный нолю представляют собой недопустимую комбинацию, вызывающую распознавание исключения по спецификации. Режим адресации не управляет размером адресов PER, или адресов, используемых для получения доступа к DAT, ASN, вызываемому управлению блоком, таблицам связей, входных записей и слежения или спискам доступа или стеку соединений. Управление режимом адресации посредством битов 31 и 32 PSW можно подытожить следующим образом:
Адрес команды 530: Биты 33-63 PSW представляют собой адрес команды. Адрес обозначает местоположение крайнего левого байта следующей подлежащей выполнению команды, если ЦП не находится в состоянии ожидания (бит 14 PSW равен единице).
Согласно аспекту изобретения, когда функция конфигурации архитектурного режима, такая как функция конфигурации (CZAM) архитектурного режима для z/Архитектуры инсталлирована и активизирована в вычислительном окружении, способ включения изменяется. Один вариант осуществления способа включения CZAM описан со ссылками на фиг. 6А.
Согласно фиг. 6А, на основании включения процессора вычислительного окружения, вычислительное окружение пребывает в конкретном архитектурном режиме, заданном функцией конфигурации архитектурного режима, например режима z/Архитектуры (также называемом ESAME), когда инсталлирована CZAM, ЭТАП 600. Например, начальная загрузка (IPL) программы, такая как начальная загрузка (IPL) программы управляющего слова (CCW) канала выполняется, как описано выше, ЭТАП 602, и когда операция ввода-вывода IPL успешно завершается, идентификационное слово подсистемы для устройства IPL сохраняется в выбранных абсолютных местоположениях памяти (например, местоположениях 184-187), причем ноли сохраняются в других выбранных абсолютных местоположениях памяти (например, местоположениях 188-191), и причем в этом варианте осуществления 16-байтовое новое слово (PSW) состояния программы создается из выбранных абсолютных местоположений памяти (например, местоположений 0-7), ЭТАП 604. Новое 16-байтовое PSW образуется, например, из содержимого выбранного двойного слова хранения (например, местоположений 0-7). Бит 12 двойного слова должен быть представлен единицей. В противном случае, может быть обозначена ошибка. (Ошибка может быть представлена распознанным исключением по спецификации, машинным контролем или индикации какой-либо другой ошибки.) Биты 0-32 недавно созданного PSW задаются по битам 0-32 выбранного двойного слова, за исключением бита 12, который имеет инвертированное значение. Битам 33-96 недавно созданного PSW задаются нулевые значения. Позиции битов 97-127 недавно созданного PSW инициализируются по битам 33-63 выбранного двойного слова.
В одном варианте осуществления поля PSW, которые должны быть загружены командой, не проверяются на допустимость перед их загрузкой. В одном варианте осуществления бит 12 PSW проверяется на допустимость. В еще одном варианте осуществления все поля проверяются на допустимость. В другом варианте осуществления любые биты, не проверенные до загрузки PSW, проверяются на допустимость после того, как PSW было инициализировано, и процессор может указать на ошибку (например, путем активации распознанного исключения по спецификации, машинного контроля или индикации какой-либо другой ошибки.)
Вычислительное окружение входит в рабочее состояние, и функционирование вычислительного окружения переходит под управление нового слова (PSW) состояния программы, ЭТАП 606. Загруженное вычислительное окружение затем функционирует, ЭТАП 608, как далее описано со ссылками на фиг. 6Б.
Согласно фиг. 6Б, загруженное вычислительное окружение инициируется в режиме z/Архитектуры, ЭТАП 620, и таким образом, операции выполняются в режиме z/Архитектуры, ЭТАП 622. Не является необходимым какое-либо переключение режима, и обработка непосредственно продолжается обработкой в режиме z/Архитектуры. Таким образом, в одном варианте осуществления следующие шаги не являются необходимыми: Операция процессора (SIGP) обработки сигналов по переключению из режима ESA/390 к режиму z/Архитектуры, выявление того, является ли операция SIGP допустимой операцией, переход к z/Архитектуре, в случае допустимости операции, или индикация ошибки в случае недопустимости операции SIGP.
Все процессоры вычислительного окружения (то есть, конфигурируемого окружения, например одиночный процессор, логический раздел, гостевая VM), находятся в режиме z/Архитектуры без выполнения вышеупомянутых этапов. Таким образом, как описано в настоящем документе, согласно одному аспекту, способность к загрузке или к включению в режиме ESA/390 удаляется из вычислительного окружения, сконфигурированного для обеих ESA/390 и z/Архитектуры. Конкретно, хотя вычислительное окружение сконфигурировано для поддержки множественных архитектур, предоставляется инструмент ограничения конкретных аспектов по меньшей мере одной из сконфигурированных архитектур, одним из аспектов которого является способность к включению в этой архитектуре.
В одном или нескольких предпочтительных вариантах осуществления включение в режиме z/Архитектуры предоставляет механизм для задания одного элемента из числа: (1) логического раздела (гость 1), и (2) логического раздела и гостя 2, в качестве загружаемого и сбрасываемого в режиме z/Архитектуры без потребности в загрузке в режиме ESA/390. Этот признак может быть инсталлирован безусловным образом или под управлением переключателя конфигураций.
Последовательность загрузки относительно инициализации PSW изменяется. Например, в конце IPL, загружается PSW IPL в абсолютные местоположения 0-7. Как делается в настоящее время, когда условием сброса является ESA/390, бит 12 является единицей, что делает допустимым ESA/390 IPL PSW, и программа продолжает выполнять команды в архитектурном режиме ESA/390. При инсталлированном CZAM условием сброса является zl Архитектура, бит 12 по прежнему равен единице, что делает допустимым ESA/390 IPL PSW, но бит 12 инвертируется в процессе формирования 16-байтового текущего PSW z/Архитектуры, как задано выше.
В дополнение к процессу включения, инсталляция функции конфигурации архитектурного режима также может изменить или затронуть и другие процессы, логики работы и/или операции. Эти затронутые процессы, логики работы и/или операции являются специфичными для режимов ESA/390 и z/Архитектуры. Однако подобные и/или различные процессы могут быть затронуты и при других типах архитектуры. Типовые процессы, логики работы и/или операции, которые могут быть затронуты в одном или нескольких предпочтительных вариантах осуществления, включают в себя, например:
(1) Предоставление возможности переключения из режима в тот же режим (например, из режима z/Архитектуры в режим z/Архитектуры) без генерации ошибки (или с игнорированием ошибки). Таким образом, процессор может дать команду SIGP для переключения в режим z/Архитектуры и, если он уже пребывает в этом режиме, то не генерируется какой-либо ошибки. Ранее, попытка переключения к режиму, соответствующему текущему режиму, генерировала ошибку.
(2) Отключение переключения к режиму ESA/390. На основе инсталлирования и активизации CZAM переключение к ESA/390 отключается, и теперь генерирует ошибку. Переключение назад к ESA/390 предотвращается путем проверки бита 12 PSW и принятия исключения, если бит 12 не задан для указания на режим z/Архитектуры (что представлено битом 12 со значением «1» в памяти, инвертированном к значению «0» для представления z/Архитектуры в PSW, когда PSW для ESA/390 преобразуют к допустимому PSW для z/Архитектуры).
(3) Изменение функционирования команды загрузки PSW для ограничения обработки бита 12. Если функция конфигурации архитектурного режима для z/Архитектуры инсталлирована, команда загрузки PSW распознает исключение по спецификации, если бит 12 ее второго операнда не является единицей. Команда загрузки PSW загружает биты 0-32 своего второго операнда, за исключением бита 12, который имеет инвертированное значение, а биты 33-63 операнда в качестве, соответственно, битов 0-32 и 97-127 текущего PSW, что задает битам 33-96 текущего PSW нулевые значения.
Более подробная информация относительно команды загрузки PSW описана со ссылками на фиг. 7. В одном варианте осуществления команда 700 загрузки PSW включает в себя поле 702 кода операции, включающее в себя код операции для указания на операцию загрузки PSW, основное поле (В2) 704, и поле (D2) 706 смещения. Содержимое общего регистра, на которое указывает поле В2, добавляется к содержанию поля D2 для формирования адреса второго операнда в памяти (называемого вторым адресом операнда).
При выполнении команды загрузки PSW текущее PSW заменяется на 16-байтовое PSW, образованное из содержимого двойного слова в местоположении, на которое указывает второй адрес операнда.
Бит 12 двойного слова должен быть равен единице. В противном случае, может быть распознано исключение по спецификации, в зависимости от модели. Если инсталлирована функция конфигурации архитектурного режима для z/Архитектуры, то исключение по спецификации распознается, если бит 12 двойного слова не является единицей.
Биты 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)
- Привилегированная операция
- По спецификации
Примечание по программированию: Второй операнд должен иметь формат PSW для ESA/390. Если бит 12 операнда представлен нолем, исключение по спецификации распознается в процессе или после выполнения команды LOAD PSW.
Более подробная информация относительно PSW приведена в статье «Разработка и реквизиты z/Архитектуры» (Development and Attributes of z/Architecture), Пламбек и др. (Plambeck et al), IBM J. Res. & Dev., Vol. 46, №4/5, июль/сентябрь 2002.
В дополнение к вышеупомянутым процессам, операциям и/или логикам работы, которые могут быть изменены вследствие инсталляции функции конфигурации архитектурного режима, в одном или нескольких предпочтительных вариантах осуществления также может быть изменен режим сброса, как объяснено ниже.
(4) Изменение режима сброса (например, для сброса, чистого сброса и других действий для сброса). Когда инсталлирована функция CZAM, сброс ЦП задает архитектурному режиму режим z/Архитектуры, если это вызывается посредством активации, например, посредством кнопки нормальной загрузки.
Имеется несколько функций сброса, которые включены в качестве составной части в режимы ESA/390 и z/Архитектуры, включая сюда, например, сброс ЦП, начальный сброс ЦП, сброс подсистемы, чистый сброс и сброс включения, каждая из которых описана ниже.
Сброс ЦП
Сброс ЦП предоставляет средства для очистки указателей проверки оборудования, а также какой-либо проистекающей непредсказуемости в состоянии ЦП с наименьшим возможным объемом уничтожаемой информации. Конкретно, эта функция используется для очистки условий проверки, когда состояние ЦП должно быть сохранено для анализа или возобновления функционирования. Если функция конфигурации (CZAM) архитектурного режима для z/Архитектуры не инсталлирована, сброс ЦП задает архитектурному режиму режим ESA/390, если это вызывается активацией кнопки нормальной загрузки (функция оператора). Когда функция CZAM инсталлирована, сброс ЦП задает архитектурному режиму режим z/Архитектуры, если это вызывается активацией кнопки нормальной загрузки. Когда сброс ЦП задает режим ESA/390, он сохраняет текущее PSW таким образом, что PSW может быть восстановлено посредством распоряжения на задание архитектуры от процессора обработки сигналов, которое изменяет архитектурный режим обратно к z/Архитектуре.
В одном варианте осуществления сброс ЦП вызывает следующие действия:
1. Выполнение текущей команды или другой последовательности обработки, такой как прерывание, завершается, и все условия прерывания программы и прерывания обслуживания вызова супервизора очищаются.
2. Очищаются какие бы то ни было незаконченные условия внешнего прерывания, которые являются локальными для данного ЦП. Перемещаемые условия внешнего прерывания не очищаются.
3. Очищаются какие бы то ни было незаконченные условия прерывания машинного контроля и индикации ошибки, которые являются локальными для данного ЦП и любые состояния контрольного останова. Перемещаемые условия прерывания машинного контроля не очищаются. Любое условие машинного контроля, о котором сообщается всем ЦП в конфигурации, и которое было сделано отложенным для ЦП, считается для данного ЦП локальным.
4. Очищаются все копии выбранных с упреждением команд или операндов. Кроме того, очищаются любые результаты, которые подлежат сохранению вследствие выполнения команд в текущем интервале контрольной точки.
5. ART (трансляция регистра доступа) - буфер предыстории и буфер быстрого преобразования адреса очищаются от записей.
6. Если сброс вызывается активацией кнопки нормальной загрузки на любом ЦП в конфигурации, происходят следующие действия:
А. Когда функция CZAM не инсталлирована, архитектурный режим ЦП (и всех других ЦП в конфигурации вследствие начального сброса ЦП или сбросов ЦП, выполненных ими), изменяется от режима z/Архитектуры к режиму ESA/390. Если функция CZAM инсталлирована, архитектурному режиму ЦП (и всех других ЦП в конфигурации вследствие начального сброса ЦП или сбросов ЦП, выполненных ими), задается режим z/Архитектуры.
Б. Когда функция CZAM не инсталлирована, текущее PSW сохраняется для последующего использования посредством распоряжения на задание архитектуры от процессора обработки сигналов, которое восстанавливает режим z/Архитектуры.
В. Когда функция CZAM не инсталлирована, текущее PSW изменяется с 16 байтов до восьми байтов. Биты восьмибайтового PSW задаются следующим образом: биты 0-11 и 13-32 задаются равными тем же самым битам 16-байтового PSW, бит 12 задается равным единице, а биты 33-63 задаются равными битам 97-127 16-байтового PSW.
Сброс ЦП, вызванный активацией системы кнопкой нормального сброса или распоряжением на сброс ЦП от процессора обработки сигналов, а также любой сброс ЦП в режиме ESA/390 не затрагивают захваченный словом PSW z/Архитектуры регистр (то есть, словом PSW, сохраненным при последнем переходе ЦП из режима z/Архитектуры к режиму ESA/390 вследствие распоряжения на задание архитектуры с кодом 0 или сброса ЦП вследствие активации кнопкой нормальной загрузки).
7. ЦП пребывает в остановленном состоянии по завершении действий 1-6. Когда за функцией сброса на таком ЦП следует последовательность IPL типа CCW, по завершении функции сброса ЦП входит в состояние загрузки, и не обязательно входит в остановленное состояние в процессе выполнения операции по сбросу. Когда за функцией сброса на таком ЦП следует управляемая списком последовательность IPL, ЦП входит в рабочее состояние и не обязательно входит в остановленное состояние в процессе выполнения операции по сбросу.
Регистры, содержание памяти и состояние внешних по отношению к ЦП условий остаются в результате сброса ЦП неизменными. Однако последующее содержимое регистра, местоположения или состояния являются непредсказуемыми, если происходит операция, изменяющая содержимое во время сброса. Удерживаемая посредством ЦП при выполнении команды PERFORM LOCKED OPERATION (выполнения заблокированной операции) блокировка не разблокируется при сбросе ЦП.
Когда функция сброса в ЦП инициируется во время выполнения ЦП команды ввода/вывода или выполнения прерывания ввода/вывода, текущая операция между ЦП и канальной подсистемой может быть или может не быть завершена, и результирующее состояние ассоциированной функции канальной подсистемы может быть непредсказуемым.
Примечания по программированию:
1. Большинство операций, которые могут изменить состояние, условие или содержимое поля, не могут произойти, когда ЦП находится в остановленном состоянии. Однако некоторые функции процессора обработки сигналов и некоторые функции оператора могут изменить эти поля. Для устранения возможности потери поля при выпуске сброса ЦП, ЦП должен быть остановлен, и никакие функции оператора не должны происходить.
2. Если архитектурный режим изменяется на режим ESA/390 и бит 31 текущего PSW равен единице, PSW является недопустимым.
Начальный сброс ЦП
Начальный сброс ЦП предоставляет функции сброса ЦП совместно с инициализацией программируемых регистров текущего PSW, захваченного PSW z/Архитектуры, таймера ЦП, компаратора часов, префикса, управления прерыванием адресов событий, управления операциями с плавающей точкой и времени (TOD) суток. Если функция CZAM не инсталлирована, начальный сброс ЦП задает архитектурному режиму режим ESA/390, если это вызывается активацией кнопки нормальной загрузки. Когда функция CZAM инсталлирована, начальный сброс ЦП задает архитектурному режиму режим z/Архитектуры, если это вызывается активацией кнопки нормальной загрузки.
Начальный сброс ЦП сочетает функции сброса ЦП со следующими функциями очистки и инициализации:
1. Когда функция CZAM не инсталлирована, если сброс вызывается активацией кнопки нормальной загрузки, архитектурному режиму ЦП (и всех других ЦП в конфигурации) задается режим ESA/390. В противном случае, если функция CZAM инсталлирована, архитектурному режиму ЦП (и всех других ЦП в конфигурации) задается режим z/Архитектуры.
2. Содержимому программируемых регистров текущего PSW, захваченного PSW z/Архитектуры, префикса, таймера ЦП, компаратора часов и TOD заданы нулевые значения. Когда последовательность IPL следует за функцией сброса на данном ЦП, содержимое PSW не обязательно задано нулевым.
3. Содержимому регистров управления заданы их начальные значения для z/Архитектуры. Значения всех 64 битов регистров управления заданы независимо от того, пребывает ЦП в архитектурном режиме ESA/390 или z/Архитектуры.
4. Содержимому регистра управления операциями с плавающей точкой задано нулевое значение.
5. Содержание регистра адреса события прерывания инициализируется к шестнадцатеричному числу 0000000000000001.
Эти функции очистки и инициализация включают в себя проверку правильности.
Когда ЦП находится в архитектурном режиме ESA/390, задание текущему PSW нулевого значения в конце операции принуждает PSW становиться недопустимым, поскольку бит 12 PSW в этом режиме должен быть равен единице. Таким образом, в этом случае, если ЦП пребывает в рабочем состоянии после сброса без предварительного введения нового PSW, распознается исключение по спецификации.
Сброс подсистемы
Сброс подсистемы предоставляет средства для очистки перемещаемых условий прерывания, а также для вызова сброса системы ввода/вывода.
Чистый сброс
Чистый сброс вызывает выполнение начального сброса ЦП и сброса подсистемы, а также, дополнительно, очищает или инициализирует все местоположения памяти и регистры во всех ЦП в конфигурации, за исключением часов TOD. Такая очистка является полезной при отладке программ и для обеспечения пользовательской конфиденциальности. Чистый сброс также разблокирует все блокировки, используемые командой PERFORM LOCKED OPERATION. Если функция CZAM не инсталлирована, чистый сброс задает архитектурному режиму режим ESA/390. Когда функция CZAM инсталлирована, чистый сброс задает архитектурному режиму режим т./Архитектуры. Очистка не затрагивает внешнюю память, такую как устройства хранения с прямым доступом, используемые управляющей программой для хранения содержимого неадресуемых страниц.
Чистый сброс сочетает функцию начального сброса ЦП с функцией инициализации, вызывающей следующие действия:
1. Когда функция CZAM не инсталлирована, архитектурному режиму всех ЦП в конфигурации задается режим ESA/390. Если функция CZAM инсталлирована, архитектурному режиму всех ЦП в конфигурации задается режим z/Архитектуры.
2. Регистрам доступа, общему и операций с плавающей точкой всех ЦП в конфигурации задаются нулевые значения. Всем 64 битам общих регистров задаются нулевые значения независимо от пребывания ЦП в архитектурном режиме ESA/390 или z/Архитектуры на момент инициирования функции чистого сброса.
3. Содержимому основной памяти в конфигурации и ассоциированных ключей защиты памяти задаются нулевые значения с допустимым кодом проверки блокировок.
4. Используемые каким-либо ЦП в конфигурации блокировки разблокируются при выполнении команды PERFORM LOCKED OPERATION.
5. Выполняется сброс подсистемы.
Проверка правильности входит в состав процессов задания значений регистрам, а также очистки памяти и ключей защиты памяти. Примечания по программированию:
1. Архитектурный режим не изменяется посредством активации кнопки нормального сброса системы или выполнения распоряжения процессора обработки сигналов на сброс ЦП или начальный сброс ЦП. Все ЦП в конфигурации находятся в том же самом архитектурном режиме.
2. Для предотвращения воздействия операции сброса ЦП на содержимое полей, которые должны оставаться неизменными, ЦП во время сброса не должен выполнять команды и должен быть дезактивирован для всех прерываний. За исключением функционирования таймера ЦП и для возможности появления прерывания машинного контроля, вся активность ЦП может быть остановлена путем перевода ЦП в состоянии ожидания и путем отключения его для ввода/вывода и внешних прерываний. Во избежание возможности вызывания сброса в то время, когда обновляется таймер ЦП или происходит прерывание машинного контроля, ЦП должен пребывать в остановленном состоянии.
3. Сброс ЦП, начальный сброс ЦП, сброс подсистемы и чистый сброс не затрагивают значение и состояние часов TOD.
4. Условия, при которых ЦП входит в состояние контрольного останова, являются модельно-зависимыми и включают в себя сбои, которые исключают завершение текущей операции. Следовательно, если сброс ЦП или начальный сброс ЦП выполняется в то время, когда ЦП находится в состоянии контрольного останова, содержимое PSW, регистров и местоположений памяти, включая сюда ключи защиты памяти и местоположения памяти, к которым получают доступ во время ошибки, может иметь непредсказуемые значения и, в некоторых случаях, содержимое может все еще пребывать в состоянии ошибки после того, как состояние контрольного останова очищено посредством этих сбросов. В этой ситуации, для очистки ошибки требуется чистый сброс.
Сброс по включении
Функция сброса по включении для компонента машины выполняется как часть последовательности включения для этого компонента. Последовательности включения для часов TOD, основной памяти, дополнительной памяти и канальной подсистемы могут составлять собой часть последовательности включения ЦП, либо последовательность включения для этих модулей может быть инициирована отдельно.
Сброс по включении ЦП: Сброс по включении вызывает выполнение начального сброса ЦП, и может вызывать или может не вызывать выполнение сброса системы ввода/вывода в канальной подсистеме. Содержимое общих регистров, регистров доступа и регистров с плавающей точкой очищается к нулевым значениям с помощью допустимого кода проверки блокировок. Используемые командой PERFORM LOCKED OPERATION и связанные с ЦП блокировки разблокируются, если они не сохраняются посредством уже включенного ЦП. Если функция CZAM не инсталлирована, и сброс связан с образованием конфигурации, ЦП переводится в режим ESA/390. В противном случае, ЦП переводится в тот же архитектурный режим, в котором находятся уже сконфигурированные ЦП. Если функция CZAM инсталлирована, ЦП переводится в режим z/Архитектуры.
Сброс ЦП, начальный сброс ЦП, сброс подсистемы и чистый сброс могут быть инициированы вручную при помощи функций оператора. Начальный сброс ЦП является частью функции начальной загрузки программы. Сброс по включении выполняется как часть процесса включения.
Когда функция CZAM не инсталлирована, если сброс инициируется посредством кнопки чистого сброса системы, нормальной загрузки, или чистой загрузки, либо сбросом по включении ЦП, что образует конфигурацию, архитектурному режиму задается режим ESA/390. В противном случае, архитектурный режим остается неизменным, за исключением того, что сброс по включении задает тот же режим, в котором находятся уже сконфигурированные ЦП. Если функция CZAM инсталлирована, архитектурному режиму задается режим z/Архитектуры.
Другие процессы, операции и/или логики работы, которые могут быть изменены вследствие инсталляции функции конфигурации архитектурного режима, описаны ниже:
(5) Подавляет другие связанные со сбросом действия, предпринимаемые для облегчения перехода между режимами ESA/390 и z/Архитектуры по выполнении сброса. Когда функция CZAM не инсталлирована, текущее PSW сохраняется для последующего использования посредством распоряжения на задание архитектуры от процессора обработки сигналов, восстанавливающего режим z/Архитектуры. Когда функция CZAM не инсталлирована, текущее PSW изменяется с 16 байтов до восьми байтов. Биты восьмибайтового PSW задаются следующим образом в одном примере: биты 0-11 и 13-32 задаются равными тем же самым битам 16-байтового PSW, бит 12 задается равным единице, а биты 33-63 задаются равными битам 97-127 16-байтового PSW. Когда функция CZAM инсталлирована, PSW не сохраняется для последующего использования посредством распоряжения на задание архитектуры от процессора обработки сигналов, восстанавливающего режим z/Архитектуры, а текущее PSW не изменяется с 16 байтов до 8 байтов.
(6) Изменяет процесс конфигурирования ЦП с помощью команды конфигурирования ЦП SCLP (служебный вызов логического процессора) и операций кнопки загрузки. Вместо конфигурирования в ESA/390, конфигурирует в заданном сбросом режиме. Конфигурирующая ЦП команда SCLP переводит подчиненный ЦП в архитектурный режим уже сконфигурированных ЦП. По меньшей мере первый ЦП, переведенный в конфигурацию, переведен туда в связи со сбросом по включении ЦП и, как часть этого сброса, переведен в архитектурный режим, задаваемый сбросом по включении ЦП. Модель, когда она задает режим сконфигурированных ЦП, может альтернативно задавать режим тех ЦП, которые находятся в резервном состоянии.
Включение кнопки чистой загрузки или кнопки нормальной загрузки задает архитектурный режим, как это, соответственно, предписано для чистого сброса или начального сброса ЦП.
7) Изменяет SIGP таким образом, что он не позволяет распоряжению на задание архитектуры изменять архитектурный режим на ESA/390.
Один вариант осуществления команды процессора (SIGP) обработки сигналов описан со ссылками на фиг.8А. В одном варианте осуществления команда 800 процессора обработки сигналов имеет совокупность полей, включая сюда, например, поле 802 кода операции (opcode), содержащее код операции, указывающий на операцию процессора обработки сигналов, первое поле (R1) 804 регистра, второе поле (R3) 806 регистра, основное поле (В2) 808, и поле (D2) 810 смещения. R1 обозначает общий регистр, содержимое которого является первым операндом, R3 обозначает общий регистр, содержимое которого является третьим операндом, и содержимое регистра, обозначаемого R2, добавляется к смещению в D2 для получения адреса второго операнда.
При функционировании восьмибитовый код распоряжения и, если запрошен, 32-битовый параметр передаются к ЦП, обозначаемому адресом ЦП, содержащимся в третьем операнде. Результат обозначается посредством условного кода и может быть детализирован посредством состояния, собранного в позициях битов 32-63 из местоположения первого операнда.
Адрес второго операнда не используется для обращения к данным.Вместо этого, биты 56-63 адреса содержат восьмибитовый код распоряжения. Биты 0-55 адреса второго операнда игнорируются. Код распоряжения задает функцию, которая выполняется посредством адресуемого ЦП. Присвоение и описание кодов распоряжения включает в себя, например, последующее, в одном примере:
Содержащееся в позициях 48-63 битов общего регистра R3 16-битовое двоичное число образует адрес ЦП. Биты 0-47 регистра игнорируются. Когда заданное распоряжение является распоряжением на задание архитектуры, адрес ЦП игнорируется. Все другие ЦП в конфигурации считаются адресованными.
Общий регистр, содержащий 32-битовый параметр в позициях 32-63 битов, является тем регистром из числа R1 или R1+1, который имеет нечетный номер. От кода распоряжения зависит предоставление параметра и цель его использования.
Непосредственно ранее описанные операнды имеют следующие форматы, в одном примере:
Общий регистр, на который указывает R1: Биты 0-31 не используются, биты 32-63 включают в себя состояние,
Общий регистр, на который указывает R1 или R1+1, который всегда является регистром с нечетным номером: Биты 0-31 не используются, биты 32-63 включают в себя параметр,
Общий регистр, на который указывает R3: Биты 0-48 не используются, биты 49-63 включают в себя адрес ЦП,
Адрес второго операнда: Биты 0-55 не используются, биты 56-63 включают в себя код распоряжения.
Функция преобразования в последовательную форму выполняется перед началом операции, и вновь после завершения операции.
Когда код распоряжения принят, и никакого ненулевого состояния не возвращается, задается значение условного кода 0. Когда информация о состоянии генерируется данным ЦП (ЦП, выполняющим роль SIGP), или возвращается адресуемым ЦП, состояние размещается в позициях 32-63 битов общего регистра R1, биты 0-31 регистра остаются неизменными, а условному коду задается значение 1.
Когда путь доступа к адресуемому ЦП занят, или адресуемый ЦП хотя и находится в рабочем состоянии, но его состояние не позволяет ему ответить на код распоряжения, условному коду задается значение 2.
Когда адресуемый ЦП не находится в рабочем состоянии (то есть, он не предоставлен в установке, он не входит в состав конфигурации, он находится в каком-либо из конкретных тестовых наладочных режимов, или он отключен от питания), условному коду задается значение 3.
Получающийся условный код:
0
Код распоряжения принят
1
Состояние сохранено
2
Занят
3
Не находится в рабочем состоянии
Исключения программы:
- Привилегированная операция
- Транзакционное ограничение
Когда распоряжение на задание архитектуры процессора обработки сигналов задано в позициях 56-63 битов адреса второго операнда команды процессора обработки сигналов, содержимое позиций 56-63 битов регистра параметра используется в качестве кода, задающего архитектурный режим, который должен быть задан для всех ЦП в конфигурации: код 0 задает режим ESA/390, а коды 1 и 2 задают режим z/Архитектуры. Код 1 задает, что для каждого из всех ЦП в конфигурации текущее PSW для ESA/390 должно быть преобразовано к PSW для z/Архитектуры. Код 2 задает, что PSW для ЦП, выполняющего роль процессора обработки сигналов, должно быть преобразовано к PSW для z/Архитектуры и, что для каждого из всех других ЦП в конфигурации PSW должно быть задано со значением регистра захваченного PSW для z/Архитектуры для этого ЦП. Задание PSW со значением регистра захваченного PSW для z/Архитектуры позволяет восстановить PSW, существовавшее, когда ЦП последний раз находился в режиме z/Архитектуры, при условии, что регистру захваченного PSW для z/Архитектуры не были заданы все нули в результате сброса.
Биты 0-55 регистра параметра игнорируются. Содержимое регистра адреса ЦП процессора обработки сигналов игнорируется. Все другие ЦП в конфигурации считаются адресованными.
Когда функция CZAM не инсталлирована, распоряжение принимается только в том случае, если код равен 0, 1, или 2, ЦП уже не находится в режиме, задаваемом кодом, каждый из всех других ЦП находится или в остановленном состоянии или в состоянии контрольного останова, и никакое другое условие не исключает прием распоряжения.
Когда функция CZAM инсталлирована, код 0 не принимается вследствие того, что возврат к режиму ESA/390 не является разрешенным, и поскольку ЦП уже находится в архитектурном режиме z/Архитектуры, специфицирование кодов 1 и 2 имеет результатом завершение, указывающее на недопустимый параметр, и условный код 1. Другие предварительные условия, обычно проверяемые посредством распоряжения на задание архитектуры, могут как быть, так и не быть проверены.
В случае принятия, распоряжение завершается всеми ЦП во время выполнения процессора обработки сигналов. В этом варианте осуществления различные ЦП ни в коем случае не могут пребывать в различных архитектурных режимах.
Распоряжение на задание архитектуры завершается следующим образом, в одном примере:
- Если код в регистре параметра не равен 0, 1 или 2, или если ЦП уже находится в заданном кодом архитектурном режиме, распоряжение не принимается. Вместо этого биту 55 (недопустимый параметр) общего регистра, обозначаемому полем R1 команды процессора обработки сигналов, задается значение единица, и задается условный код 1.
- Если не является истинным, что все другие ЦП в конфигурации находятся в остановленном состоянии или состоянии контрольного останова, распоряжение не принимается. Вместо этого биту 54 (недопустимый параметр) общего регистра, обозначаемому полем R1 команды процессора обработки сигналов, задается значение единица, и задается условный код 1.
- Архитектурный режим всех ЦП в конфигурации задается, как это указано кодом (например, бит 12 PSW для управления операциями задается для указанного архитектурного режима, и/или другой указатель в вычислительном окружении задается с индикацией указанного архитектурного режима).
- Если распоряжение изменяет архитектурный режим от ESA/390 к z/Архитектуре, и код равняется 1, то для каждого ЦП в конфигурации восьмибайтовое текущее PSW изменяется на 16-байтовое PSW, и биты 16-байтового PSW задаются следующим образом: биты 0-11 и 13-32 задаются равными тем же самым битам восьмибайтового PSW, биту 12 и битам 33-96 задаются нулевые значения, а биты 97-127 задаются равными битам 33-63 восьмибайтового PSW. Кроме того, биту 19 префикса ESA/390, который становится битом 51 префикса z/Архитектуры, задается нулевое значение.
Если код равняется 2, PSW ЦП, выполняющего роль процессора обработки сигналов, а также префиксные значения всех ЦП задаются как в случае кода 1. Для каждого из всех других ЦП в конфигурации PSW задается со значением регистра захваченного PSW для z/Архитектуры. Тем не менее, регистру захваченного PSW для z/Архитектуры задаются все нулевые значения в том случае, если ЦП выполнил сброс, отличный от сброса ЦП, либо во время перемены архитектурного режима, либо впоследствии.
- Если распоряжение изменяет архитектурный режим от z/Архитектуры к ESA/390, то для каждого ЦП в конфигурации: (1) текущее PSW, которое является обновленным PSW в случае ЦП, выполняющего роль процессора обработки сигналов, сохраняется в регистре захваченного PSW для z/Архитектуры, и (2) 16-байтовое текущее PSW изменяется на восьмибайтовое PSW путем задания битов восьмибайтового PSW следующим образом: биты 0-11 и 13-32 задаются равными тем же самым битам 16-байтового PSW, бит 12 задается равным единице, а биты 33-63 задаются равными битам 97-127 16-байтового PSW. Бит 51 префикса z/Архитектуры, становящийся битом 19 префикса ESA/390, остается неизменным.
- ALB (буфера предыстории трансляции регистров доступа) и TLB (буфера предыстории трансляции) всех ЦП в конфигурации очищаются от их содержимого.
- Функция преобразования в последовательную форму и синхронизации контрольной точки выполняется на всех ЦП в конфигурации.
Если распоряжение изменяет архитектурный режим от z/Архитектуры к ESA/390, и команда процессора обработки сигналов вызывает возникновение выбирающего команду события PER, только самые правые 31 биты адреса команды сохраняются в адресном поле PER для ESA/390.
В одном варианте осуществления с CZAM, последующее является предварительным условием: Каждый из всех других ЦП находится или в остановленном состоянии или в состоянии контрольного останова, и никакое другое условие не исключает прием распоряжения. Когда функция CZAM инсталлирована, код 0 не принимается, поскольку возврат к режиму ESA/390 не является разрешенным, и поскольку ЦП уже находится архитектурном режиме в z/Архитектуры, специфицирование кодов 1 и 2 имеет результат в завершении, указывающем на недопустимый параметр, и условный код 1. Другие предварительные условия, обычно проверяемые посредством распоряжения на задание архитектуры, могут как быть, так и не быть проверены. В еще одном варианте осуществления SIGP с помощью кода 1 и 2 указывает на успешное завершение без дополнительной индикации.
Один вариант осуществления обработки, связанной с выполнением команды SIGP для кода распоряжения на задание архитектуры, описан со ссылками на фиг. 8Б. Согласно фиг. 8Б, процессор вычислительного окружения выполняет команду SIGP и получает код распоряжения, указывающий на операцию по заданию архитектуры, ЭТАП 850. В одном примере, код распоряжения входит в состав адреса второго операнда команды SIGP.
Кроме того, запрашиваемый архитектурный режим, на который должно быть произведено переключение, получают, например, из регистра параметра, заданного командой SIGP, ЭТАП 852. Кроме того, производится выявление относительно того, инсталлирована ли функция конфигурации архитектурного режима, такая как CZAM, ИНФОРМАЦИОННЫЙ ЗАПРОС 854. Это выявляется, в одном примере, посредством индикатора функции.
Если CZAM не инсталлирована, то дальнейшее выявление производится относительно того, пребывает ли уже ЦП в требуемом архитектурном режиме, ИНФОРМАЦИОННЫЙ ЗАПРОС 856. В таком случае, состояние предоставляется, например, в регистр, на который указывает команда SIGP, ЭТАП 858, и состояние обрабатывается как ошибка, ЭТАП 860. Однако, если ЦП не находится в требуемом режиме, ИНФОРМАЦИОННЫЙ ЗАПРОС 856, то выявление производится относительно того, соблюдаются ли другие условия, задаваемые командой, такие как пребывание других ЦП сконфигурированного вычислительного окружения в остановленном состоянии и т.д., ИНФОРМАЦИОННЫЙ ЗАПРОС 862. Если условия не соблюдаются, то обработка продолжается к ЭТАПУ 858. В противном случае, распоряжение принимается, ЭТАП 864, и архитектурный режим подлежит изменению. Таким образом, PSW задается, как описано выше, ЭТАП 866, и обработка этого аспекта команды заканчивается, ЭТАП 868.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 854, если CZAM инсталлирована, то производится выявление относительно того, пребывает ли ЦП в требуемом режиме, ИНФОРМАЦИОННЫЙ ЗАПРОС 870. Если ЦП уже находится в требуемом режиме, то в одном примере, предоставляется состояние того, что ЦП уже находится в требуемом архитектурном режиме (например, z/Архитектуры), ЭТАП 872. В этом варианте осуществления, однако, это состояние является приемлемым и не обрабатывается как ошибка, ЭТАП 874. Оно может быть либо проигнорировано, либо, в другом варианте осуществления, может быть предоставлен условный код, который не является кодом ошибки. В еще одном другом варианте осуществления состояние просто указывает на успешное завершение. Существуют также и другие возможности для указания на отсутствие ошибки, несмотря на то, что ЦП уже находится в требуемом архитектурном режиме.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 870, если, однако, ЦП не находится в требуемом режиме, то распоряжение не принимается, поскольку является недопустимым возвращение к тому или иному архитектурному режиму (например, ESA/390), ЭТАП 876. Предоставляется состояние, ЭТАП 878, которое считается ошибкой, ЭТАП 880.
В одном варианте осуществления, когда CZAM находится в системе в качестве невыбираемой функции, ИНФОРМАЦИОННЫЙ ЗАПРОС 854 может быть исключен, и управление может перейти от ЭТАПА 852 непосредственно к ЭТАПУ 870. В таком варианте осуществления не могут быть реализованы ЭТАПЫ 854-868.
В другом варианте осуществления при получении распоряжения на переключение на текущий режим архитектуры, распоряжение не может быть принято, и ошибка может быть обозначена на ЭТАПЕ 874.
Другие логики работы, процессы и/или операции, которые могут измениться в результате инсталляции САМ, включают в себя:
(8) Изменение битов функции: Новый бит, например бит 138, добавляется к битам функции для указания на функцию конфигурации архитектурного режима для z/Архитектуры, а биту 2, который указывает на активность архитектурного режима z/Архитектуры, должно быть задано значение единица (указание на активность).
Как описано выше, вычислительное окружение может быть загружено в одном архитектурном режиме (например, ESA/390), а затем для обработки переключено на другой архитектурный режим (например, z/Архитектуру); или вычислительное окружение может быть загружено непосредственно в архитектурном режиме, в котором оно подлежит обработке (например, в z/Архитектуре). Таким образом согласно одному или нескольким аспектам предоставляются управляющие сервисные программы, в том числе, но не ограничиваясь, операционная система или другие автономные сервисные программы, которым не требуется операционная система для начальной загрузки, которые могут либо быть загруженными в первой архитектурной конфигурации, в которой управляющая сервисная программа инициализируется в одном архитектурном режиме (например, ESA/390), а затем переключается на другой архитектурный режим (например, z/Архитектуру); либо во второй архитектурной конфигурации, в которой управляющая сервисная программа инициализируется и производит обработку в выбранном архитектурном режиме (например, в z/Архитектуре). В одном варианте осуществления выбранный архитектурный режим является архитектурой, в которой записана управляющая сервисная программа.
Один вариант осуществления логики, связанной с начальной загрузкой управляющей сервисной программы в первой архитектурной конфигурации, описан со ссылками на фиг.9. Первоначально, процессор (например, аппаратные средства) задает слово состояния программы (PSW), которое должно использоваться для управления выполнением, ЭТАП 900. В этом примере аппаратные средства загружают PSW из памяти, и PSW имеет формат одного архитектурного режима, например, ESA/390. Заданный код тогда выполняется в одном архитектурном режиме, ЭТАП 902. Например, управляющая сервисная программа начинает выполнять первый комплект команд, заданных посредством слова состояния программы. После этого, в одном варианте осуществления производится подготовка к переключению с одного архитектурного режима, ESA/390, к другому архитектурному режиму, такому как z/Архитектура, ЭТАП 904. Например, управляющая сервисная программа готовится к переключению режима путем задания регистра с кодом распоряжения (например, с кодом распоряжения на задание архитектуры), и путем передачи этого регистра команде, называемой командой процессора обработки сигналов.
Процессор выполняет команду процессора обработки сигналов по переводу процессора и, тем самым, управляющей сервисной программы, в режим z/Архитектуры, ЭТАП 906. После этого, в одном варианте осуществления производится выявление относительно успешности выполнения команды процессора обработки сигналов, ИНФОРМАЦИОННЫЙ ЗАПРОС 908. При наличии состояния ошибки процессора обработки сигналов, начальная загрузка управляющей сервисной программы прекращается, ЭТАП 910. В противном случае, остающийся код выполняется в режиме z/Архитектуры, ЭТАП 912.
В другом варианте осуществления управляющая сервисная программа, записанная для выбранной архитектуры (например, z/Архитектуры), непосредственно загружается в этой архитектуре, вместо своей загрузки в иной архитектуре и последующего переключения режимов. Один вариант осуществления логики для начальной загрузки управляющей сервисной программы непосредственно в системе, не требующей переключения, такой как система, включающая в себя функцию CZAM, описан со ссылками на фиг. 10.
Согласно фиг. 10, первоначально, процессор (например, аппаратные средства) задает слово состояния программы из памяти, ЭТАП 1000. В одном из вариантов 16-байтовое новое слово состояния программы (PSW) создается из выбранных абсолютных местоположений памяти (например, местоположений 0-7). Новое 16-байтовое PSW образуется, например, из содержимого выбранного двойного слова хранения (например, местоположений 0-7). Бит 12 двойного слова должен быть представлен единицей. В противном случае, может быть обозначена ошибка. (Ошибка может быть представлена распознанным исключением по спецификации, машинным контролем или индикацией какой-либо другой ошибки.) Биты 0-32 недавно созданного PSW задаются по битам 0-32 выбранного двойного слова, за исключением бита 12, который имеет инвертированное значение. Битам 33-96 недавно созданного PSW задаются нулевые значения. Позиции битов 97-127 недавно созданного PSW инициализируются по битам 33-63 выбранного двойного слова.
После этого, код подготовки к работе выполняется в режиме z/Архитектуры, поскольку система уже находится в этом режиме, ЭТАП 1002.
Кроме того, остальная часть кода также выполняется в режиме z/Архитектуры, ЭТАП 1004.
Хотя вышеупомянутые последовательности загрузки могут быть использованы по отдельности в зависимости от архитектурной конфигурации (например, первой конфигурации или второй конфигурации), в одном варианте осуществления предоставляется последовательность загрузки, которая может быть использована независимо от архитектурного режима, в котором загружается управляющая сервисная программа. Таким образом, предоставляется общая последовательность загрузки, которая может быть использована в нескольких архитектурных конфигурациях, в том числе, но не ограничиваясь, в первой архитектурной конфигурации и во второй архитектурной конфигурации.
Один вариант осуществления логики, связанной с общей последовательностью загрузки, описан со ссылками на фиг. 11. Первоначально, процессор (например, аппаратные средства) задает слово состояния программы из памяти, ЭТАП 1100. В этом варианте осуществления архитектурный режим может быть представлен любым из нескольких режимов, включая сюда устаревший режим, такой как ESA/390, или расширенный архитектурный режим, такой как z/Архитектура. Таким образом, слово состояния программы отображает начальный архитектурный режим процессора.
После этого, общее подмножество команд может быть выполнено для выполнения конкретного объема подготовки к работе, ЭТАП 1102. Эти команды являются одинаково применимыми к различным архитектурным режимам, хотя они могут вести себя по-разному в зависимости от режима. Их общность заключается в том, что они задаются в различных архитектурах, и могут быть выполнены независимо от текущего архитектурного режима.
В дополнение и/или в качестве части выполнения общего подмножества команд для осуществления некоторой подготовки к работе, переключение режима выполняется независимо от текущего архитектурного режима, ЭТАП 1104. Как и в вышеописанном случае, код распоряжения размещается в регистре и передается команде SIGP. Команда SIGP выполняется для перевода окружения в режим z/Архитектуры, ЭТАП 1106. Конкретно, в одном варианте осуществления, если окружение находится в ESA/390, то выполнение команды SIGP переводит окружение в режим z/Архитектуры. Однако, если окружение уже находится в режиме z/Архитектуры, то выполнение команды SIGP не выполняет переключение режима, а вместо этого, предоставляет состояние, указывающее на то, что окружение уже находится в режиме z/Архитектуры. Это состояние принимается в качестве неошибочного.
Остальная часть кода затем выполняется в режиме z/Архитектуры, ЭТАП 1108.
Один пример простой последовательности загрузки может включать в себя, например, одну или несколько команд (LCTL) управления загрузкой для инициализации регистров управления, которые загружают регистр с регистром команд для выполнения команды SIGP и команды SIGP. Эти команды могут быть выданы в режимах как ESA/390, так и z/Архитектуры с «подобными» результатами, такими, что после завершения SIGP система первоначально конфигурируется и находится в режиме z/Архитектуры. По меньшей мере в одном варианте осуществления код может проверять условный код после завершения команды SIGP для выявления того, была ли система первоначально сконфигурирована в режиме ESA/390 (например, посредством значения 0 условного кода, указывающего на успешное выполнение переключения от ESA/390), или в режиме z/Архитектуры (например, посредством значения 1 условного кода, указывающего на отсутствие выполнения какого-либо переключения, вследствие исходного пребывания системы в требуемом архитектурном режиме).
Другой вариант осуществления использования общей последовательности загрузки для начальной загрузки управляющей сервисной программы описан со ссылками на фиг. 12. В этом примере процессор (например, аппаратные средства) задает PSW из памяти в том архитектурном режиме, который процессор первоначально производит обработку, как описано выше, ЭТАП 1200. Затем бит 12 PSW проверяется для выявления архитектурного режима вычислительного окружения, ИНФОРМАЦИОННЫЙ ЗАПРОС 1202. В одном варианте осуществления для проверки бита PSW используется команда извлечения PSW. Один пример команды извлечения PSW описан со ссылками на фиг. 13.
Согласно фиг. 13, в одном варианте осуществления команда 1300 извлечения PSW включает в себя код 1302 операции, включающий в себя код операции для указания на операцию извлечения PSW, первое поле (R1) 1304 регистра, и второе поле (R2) 1306 регистра. При функционировании, биты 0-31 текущего PSW размещаются в позициях 32-63 битов первого операнда (регистра, задаваемого первым полем регистра), а биты 0-31 операнда остаются неизменными. Впоследствии, биты 32-63 текущего PSW размещаются в позициях 32-63 битов второго операнда (регистра, задаваемого вторым полем регистра), а биты 0-31 операнда остаются неизменными. В одном примере, если поле R2 является нолем, связанное со вторым операндом действие не выполняется.
Возвращаясь к фиг. 12, если режим архитектуры представлен, например, ESA/390 (например, PSW бит 12=1), то код подготовки к работе выполняется в ESA/390, ЭТАП 1204. Процессор готовится к переключению режима, ЭТАП 1206, и команда SIGP используется для изменения режима на режим z/Архитектуры, ЭТАП 1208. Кроме того, производится выявление относительно успешности завершения команды SIGP, ЭТАП 1210. Если эта команда успешно не завершалось, то выводится ошибка, ЭТАП 1214. В противном случае, остальная часть кода выполняется в режиме z/Архитектуры, ЭТАП 1216.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1202, если проверка бита 12 PSW указывает на то, что вычислительное окружение находится в режиме z/Архитектуры (например, PSW бит 12=0), то код подготовки к работе выполняется в режиме z/Архитектуры, ЭТАП 1215, и обработка продолжается выполнением остальной части кода в z/Архитектуре, ЭТАП 1216.
Еще один другой вариант осуществления использования общей последовательности загрузки описан со ссылками на фиг. 14. В этом примере процессор (например, аппаратные средства) задает PSW из памяти на основании архитектурного режима, в котором процессор первоначально производит обработку, как описано выше, ЭТАП 1400, и код подготовки к работе выполняется с помощью общего подмножества команд (например, небольшого числа команд, таких как команды 1-5), ЭТАП 1402. Процессор готовится к переключению режима, ЭТАП 1404, и команда SIGP выполняется для переключения на режим z/Архитектуры, ЭТАП 1406.
Производится выявление относительно успешности завершения команды SIGP, ЭТАП 1408. Если это завершение было успешным, то часть кода z/Архитектуры выполняется с учетом загрузки в режиме ESA/390, ЭТАП 1410, а остальная часть кода выполняется в z/Архитектуре, ЭТАП 1412. Например, может быть сохранен индикатор, указывающий на то, что при выполнении программного сброса должен быть выполнен сброс в режим ESA/390. В другом аспекте загружающиеся в режиме ESA/390 модели могут иметь некоторые регистры управления, которые инициализируются отличным образом от моделей, загружающихся в режиме z/Архитектуры, и код, учитывающий загрузку в режиме ESA/390, может реконфигурировать управление для соответствия параметрам настройки, предпочтительным для z/Архитектуры.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1408, если команда SIGP не выполняет переключение, вследствие того, что вычислительное окружение уже находится в режиме z/Архитектуры, то выполняется часть кода z/Архитектуры, учитывающая загрузку в режиме z/Архитектуры, ЭТАП 1414, и остальная часть кода также выполняется в режиме Z/Архитектуры, ЭТАП 1412. Например, программист может сохранить индикатор, указывающий на необходимость выполнения сброса к режиму z/Архитектуры. В другом аспекте загружающиеся в режиме z/Архитектуры модели могут предлагать дополнительные регистры управления, которые могут быть инициализированы на ЭТАПЕ 1414, что может быть неподходящим для инициализации при загрузке системы в режиме ESA/390. Опять-таки, в этом варианте осуществления SIGP может «потерпеть неудачу» в том, что он не выполняет переключение, но не возникает какого-либо состояния ошибки. Это является приемлемым использованием SIGP.
В дополнение к вышеупомянутой начальной загрузке управляющих сервисных программ, предоставляется также перезагрузка управляющих сервисных программ вследствие сброса. В одном варианте осуществления имеется код, сбрасывающий всю машину и эмулирующий перезагрузку путем сброса системы к конкретному режиму, такому как унаследованный режим (например, ESA/390), а также выполняющий ветвление к загрузчику. Однако при инсталляции CZAM, этого не происходит. Поэтому, имеется несколько других опций, в том числе, например, выявление того, включается ли настоящая модель в унаследованном режиме (например, ESA/390) или в расширенном режиме архитектуры (например, z/Архитектуры), задание режиму машины соответствующего режима и ветвления к загрузчику в предназначенных для исходной среды режимах начальной загрузки в зависимости от режима машины, или перезагрузка модели начальной загрузки z/Архитектуры в качестве настоящей модели независимо от режима начальной загрузки предназначенного для исходной среды оборудования, то есть, выполнение инициируемой программным обеспечением реинициализации, как если она является перезагрузкой z/Архитектуры, даже на системах ESA/390. Такая перезагрузка является возможной, поскольку она является перезагрузкой программного обеспечения, также известной как «горячая» перезагрузка, при которой процессор возвращается в исходное состояние так же, как при осуществлении перезагрузки, но без выхода на диск и новой загрузки всей управляющей сервисной программы. Регистры и PSW инициализируются к тому же самому состоянию, как и при выполнении начальной загрузки, а затем процессор выполняет ветвление к первой команде последовательности загрузки.
Один вариант осуществления сброса описан со ссылками на фиг. 15. Первоначально, процессор начинает демонтаж окружения, включая сюда, например, разъединение ввода/вывода, приостановку машины и, в основном, завершение операций, ЭТАП 1500. После этого, считываются биты функции или другой индикатор для выявления того, инсталлирована ли CZAM, ЭТАП 1502. Если CZAM не инсталлирована, ИНФОРМАЦИОННЫЙ ЗАПРОС 1504, процессор готовится к переключению режима путем задания значения регистру с кодом распоряжения для команды SIGP, ЭТАП 1506, и команда SIGP выполняется для переключения на режим ESA/390, ЭТАП 1508. После этого, выполняется ветвление для запуска последовательности загрузки управляющей сервисной программы, примеры которого описаны выше, ЭТАП 1510. Загрузочный код в этом случае выполняется в режиме ESA/390 с переключением к режиму z/Архитектуры.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1504, если CZAM инсталлирована, то не является необходимым какое-либо переключение, поскольку вычислительное окружение уже находится в режиме z/Архитектуры, и поэтому ветвление выполняется к запуску последовательности загрузки управляющей сервисной программы, как описано выше, ЭТАП 1514. Загрузочный код в этом случае выполняется в режиме z/Архитектуры, ЭТАП 1512.
В одном варианте осуществления, где какой-либо индикатор функции CZAM отсутствует, вместо этого, для указания на режим архитектуры загрузочной конфигурации может использоваться сохраненный в качестве части этапов 1410, 1414 индикатор.
Другой вариант осуществления логики сброса описан со ссылками на фиг.16. Первоначально, процессор начинает разъединять окружение, включая сюда, например, разъединение ввода/вывода, приостановку машины и, в основном, завершение операций, ЭТАП 1600. После этого, считываются биты функции или другой индикатор для выявления того, инсталлирована ли CZAM, ЭТАП 1602. Если CZAM не инсталлирована, ИНФОРМАЦИОННЫЙ ЗАПРОС 1604, процессор готовится к переключению режима, ЭТАП 1606, и команда SIGP выполняется для переключения на режим ESA/390, ЭТАП 1608. Кроме того, PSW задается значение PSW сброса, ЭТАП 1610. Например, PSW инициализируется к известному значению при сбросе, например, к значению, сохраненному в абсолютных местоположениях от 0 до 7, как описано в настоящем документе, или посредством фиксированного значения, заданного спецификацией архитектуры. Затем выполняется ветвление к запуску загрузочного кода управляющей сервисной программы, как описано выше, ЭТАП 1612. Загрузочный код в этом случае выполняется в режиме ESA/390 с переключением к режиму z/Архитектуры, ЭТАП 1614.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1604, если CZAM инсталлирована, то не является необходимым какое-либо переключение, PSW задается значение PSW сброса, ЭТАП 1616, выполняется ветвление к запуску загрузочного кода управляющей сервисной программы, как описано выше, ЭТАП 1618, и загрузочный код выполняется в режиме z/Архитектуры, ЭТАП 1614.
В еще одном варианте осуществления сброса сброс выполняется по образцу режима z/Архитектуры, как описано со ссылками на фиг. 17. В этом варианте осуществления первоначально система начинает разъединять окружение, ЭТАП 1700. Затем PSW задается значение PSW сброса z/Архитектуры, ЭТАП 1702, и выполняется ветвление к запуску загрузочного кода управляющей сервисной программы, ЭТАП 1704. Загрузочный код выполняется в режиме z/Архитектуры независимо от того, загружается ли машина исходно в ESA/390 или z/Архитектуре, ЭТАП 1706.
В другом аспекте предоставляется логика обнаружения для выявления того, является ли загружаемая управляющая сервисная программа совместимой с общей последовательностью загрузки. Например, в примерах настоящего документа, управляющая сервисная программа записана для одной конкретной архитектуры, например, z/Архитектуры, и на этом основывается последовательность загрузки. Таким образом, несоответствие происходит в том случае, если оказывается, что управляющая сервисная программа записана для другой архитектуры, такой как ESA/390, без рассмотрения z/Архитектуры.
Таким образом, в одном варианте осуществления для команды SIGP в начале последовательности загрузки выполняется проверка, предназначенная для указания, в одном примере, относительно того, предназначается ли управляющая сервисная программа для z/Архитектуры. Эта логика может входить непосредственно в логику программы реализация инициализации последовательности загрузки, а команда SIGP может входить в последовательности загрузки, как описано на фиг. 11.
Один вариант осуществления такого обнаружения логики описан со ссылками на фиг. 18. Первоначально, команды выполняются в последовательности загрузки до предопределенного количества, ЭТАП 1800. Если предопределенное количество n команд было выполнено без выполнения команды SIGP, ИНФОРМАЦИОННЫЙ ЗАПРОС 1802, принимаются меры по ликвидации последствий, поскольку предполагается, что управляющая сервисная программа не является общей сервисной программой начальной загрузки, ЭТАП 1804. Это действие включает в себя, например, остановку выполнения, активацию исключения и/или предоставление оповещения.
Возвращаясь к ИНФОРМАЦИОННОМУ ЗАПРОСУ 1802, если команда SIGP была выполнена, то предполагается, что последовательность загрузки может продолжить обрабатываться, как описано выше, ЭТАП 1806.
Вышеупомянутая логика предполагает, что команда SIGP будет выдана в общей последовательности загрузки. Если используются другие типы последовательностей загрузки, в которых команда SIGP не может быть выполнена, то может быть использована другая логика обнаружения. В другом варианте осуществления используется та же самая логика обнаружения, когда управляющая сервисная программа приспособлена к исключительному выполнению на системах, загружающихся исходно в режиме z/Архитектуры, как описано, например, со ссылками на фиг. 10. Последовательность загрузки на фиг.10 дополнена, например, заданием архитектуры SIGP (или другим индикатором, таким как, в том числе, но не ограничиваясь, заново заданным SIGP «утверждением z/Архитектуры», указывающим на загрузку приложения z/Архитектуры), позволяющим удовлетворять требования управляющей логики на фиг. 18.
Выше подробно описан инструмент использования общей последовательности загрузки для начальной загрузки управляющей сервисной программы в нескольких архитектурных конфигурациях. С помощью этого инструмента процессор может загружать одинаковые операционные системы и другие управляющие сервисные программы как в вычислительных окружениях, загружающихся в ESA/390 и переключающихся на z/Архитектуру, так и в окружениях, которые загружаются в z/Архитектуре. В одном примере, аппаратные средства изменяются таким образом, что не создаются отчеты об ошибке в SIGP, если SIGP пытается переключиться на тот же самый архитектурный режим, в котором он уже пребывает.
Другие аспекты относительно общей последовательности загрузки описаны со ссылками на фиг. 19. Первоначально, последовательность загрузки инициируется для начальной загрузки управляющей сервисной программы, такой как операционная система, в выбранном архитектурном режиме, ЭТАП 1900. Выбранный архитектурный режим основан на выбранной архитектуре, для которой записана управляющая сервисная программа. Управляющая сервисная программа сконфигурирована для инициализации по меньшей мере в одной из первой архитектурной конфигурации, инициализирующей в одной архитектуре и переключающей на выбранную архитектуру для обработки, или во второй архитектурной конфигурации, инициализирующей и обрабатывающей в выбранной архитектуре.
Последовательность загрузки выполняется и включает в себя, например, задание слова состояния программы на основании текущей архитектурной конфигурации процессора, ЭТАП 1902. Кроме того, одна или несколько команд выполняются независимо от того, должен ли процессор выполнять инициализацию на основании первой архитектурной конфигурации или второй архитектурной конфигурации, ЭТАП 1904. Одна или несколько команд могут включать в себя подготовку к переключению режима, ЭТАП 1906, в рамках которой процессор готовится к выполнению операции переключения независимо от архитектурного режима процессора. Например, код распоряжения на задание архитектуры предоставляется команде SIGP для выполнения операции переключения, ЭТАП 1908. Операция переключения запрашивает переключение архитектурных режимов для процессора независимо от того, должен ли процессор выполнить инициализацию в одной архитектуре или выбранной архитектуре. Операция переключения выполняется различным образом в зависимости от того, какой архитектуры процессор должен выполнить инициализацию, одной архитектуры или выбранной архитектуры. Например, если процессор находится в одной архитектуре, то операция переключения переключает от одной архитектуры к выбранной архитектуре, и обработка управляющей сервисной программы производится в выбранной архитектуре. Однако, если процессор уже находится в выбранной архитектуре, то операция переключения запрашивает переключение от выбранного режима архитектуры к выбранному режиму архитектуры. Это приводит к сохранению состояния, указывающего на то, что процессор в настоящее время находится в выбранном архитектурном режиме, но это состояние обрабатывается как приемлемое для выпускающего операции переключения. Таким образом, это не считается ошибкой. После выполнения операции переключения загружается управляющая сервисная программа, и код выполняется в выбранной архитектуре, ЭТАП 1910.
В описанных в настоящем документе выполнениях подготовка к операции переключения режима и команда SIGP могут быть показаны отдельно от общего подмножества команд. Тем не менее, они могут как входить в общее подмножество, так и быть отдельными от него.
Аспекты общей функции начальной загрузки сервисной программы могут быть использованы для одной или нескольких других функций, включая сюда, например, функцию CZAM и функцию No-DAT, описанные в следующих связанных, принадлежащих одному правообладателю заявках «Конфигурация архитектурного режима» (Architectural Mode Configuration), Майкл К. Гшвинд (Michael К. Gschwind), (номер досье IBM: POU920140021US1), и «Управление обработкой во взаимосвязи с выбранными архитектурными функциями» (Managing Processing Associated with Selected Architectural Facilities), Гэйни и др. (Gainey et al.), (номер досье IBM: POU920140020US1), соответственно, каждая из которых включена в настоящий документ путем отсылки в полном объеме.
Согласно фиг. 20, в одном примере, компьютерный программный продукт 2000 включает в себя, например, один или несколько энергонезависимых машиночитаемых информационных носителей 2002 для хранения на них машиночитаемых средств программного кода, логики и/или команд 2004 для предоставления и оказания содействия в использовании одного или нескольких предпочтительных вариантов.
Настоящее изобретение может быть представлено системой, способом и/или компьютерным программным продуктом. Компьютерный программный продукт может включать в себя машиночитаемый информационный носитель (или носители), имеющий на нем машиночитаемые программные команды для принуждения процессора к выполнению аспектов настоящего изобретения. Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством устройства выполнения команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемого информационного носителя включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или выступающие структуры в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.
Описанные в настоящем документе машиночитаемые программные команды могут быть загружены в соответствующие устройства вычисления/обработки с машиночитаемого информационного носителя или во внешний компьютер или во внешнее устройство хранения через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волокна оптической передачи, беспроводную передачу, маршрутизаторы, брандмауэры, переключения, шлюзы и/или граничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом устройстве вычисления/обработки получает машиночитаемые программные команды из сети и направляет машиночитаемые программные команды для хранения в машиночитаемый информационный носитель в пределах соответствующего устройства вычисления/обработки.
Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно-ориентированные языки программирования, такие как Smalltalk, С++ и т.п., а также обычные языки процедурного программирования, такие как язык программирования «С» или подобные языки программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть присоединен к компьютеру пользователя через любой тип сети, включая сюда локальную сеть (LAN) или глобальную сеть (WAN), или присоединение может быть сделано к внешнему компьютеру (например, через Интернет с использованием Интернет-провайдера). В некоторых вариантах осуществления электронные схемы, включающие в себя, например, программируемые логические схемы, программируемые на месте вентильные матрицы (FPGA) или программируемые логические матрицы (PLA) могут выполнять машиночитаемые программные команды посредством использования информации о состоянии машиночитаемых программных команд для настройки электронной схемы с целью выполнения аспектов настоящего изобретения.
Аспекты настоящего изобретения описаны в настоящем документе с отсылками на иллюстрации в виде блок-схем и/или блок-диаграмм для способов, устройств (систем) и компьютерных программных продуктов согласно вариантам осуществления изобретения. Подразумевается, что каждый блок иллюстраций в виде блок-схем и/или блок-диаграмм, а также комбинации блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством машиночитаемых программных команд.
Такие машиночитаемые программные команды могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для образования машины таким образом, что выполняющиеся посредством процессора компьютера или другого программируемого устройства обработки данных команды создают средства для реализации функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы. Такие машиночитаемые программные команды также могут быть сохранены в машиночитаемом информационном носителе, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами для их функционирования особым способом таким образом, что сохраняющий на нем команды машиночитаемый информационный носитель представляет собой изделие, содержащее команды, которые реализуют аспекты функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы.
Машиночитаемые программные команды могут также быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство для принуждения к выполнению на компьютере, другом программируемом устройстве или другом устройстве серии эксплуатационных этапов для получения такого компьютерно-реализованного процесса, что выполняемые на компьютере, другом программируемом устройстве или другом устройстве инструкции реализуют функции/действия, заданные в блоке или блоках блок-схемы и/или блок-диаграммы.
Блок-схемы и блок-диаграммы на чертежах показывают архитектуру, функциональность и функционирование возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении каждый блок в блок-схемах или блок-диаграммах может представлять модуль, сегмент или участок команд, который содержит одну или несколько исполнимых команд для реализации указанной логической функции(функций). В некоторых альтернативных реализациях отмеченные в блоке функции могут осуществляться в порядке, отличном от указанного на чертежах. Например, два блока, показанные следующими друг за другом, фактически могут быть выполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от предусмотренной к выполнению функциональности. Необходимо также отметить, что каждый блок на иллюстрациях в виде блок-схем и/или блок-диаграмм, а также в комбинациях блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством основанных на аппаратных средствах систем особого назначения, которые выполняют указанные функции или действия или выполняют комбинации аппаратных и компьютерных команд особого назначения.
В дополнение к вышеупомянутому, один или несколько аспектов могут быть предоставлены, предложены, развернуты, управляемы, обслуживаемы и т.д. поставщиком услуг, предлагающим управление окружениями заказчика. Например, поставщик услуг может создавать, обслуживать, поддерживать, и т.д. машинный код и/или компьютерную инфраструктуру, выполняющую один или несколько аспектов для одного или нескольких клиентов. В свою очередь, поставщик услуг может получать оплату от клиента в рамках соглашения о подписке и/или о сборах, в качестве примеров. Дополнительно или альтернативно, поставщик услуг может получать оплату от продажи рекламного содержания одному или нескольким третьим лицам.
В одном аспекте приложение может быть развернуто для выполнения одного или нескольких предпочтительных вариантов осуществления. В качестве примера, развертывание приложения предусматривает обеспечение компьютерной инфраструктуры, действующей для выполнения одного или нескольких предпочтительных вариантов осуществления.
В качестве другого аспекта может быть развернута вычислительная инфраструктура, содержащая в вычислительной системе интегрирующий машиночитаемый код, в которой код, в сочетании с вычислительной системой, способен к выполнению одного или нескольких предпочтительных вариантов осуществления.
В качестве еще одного аспекта может быть предоставлен способ интеграции содержащей интегрирующий машиночитаемый код вычислительной инфраструктуры в компьютерную систему. Компьютерная система содержит машиночитаемый носитель, который компьютерный носитель содержит один или несколько предпочтительных вариантов осуществления. Код в сочетании с компьютерной системой способен к выполнению одного или нескольких предпочтительных вариантов осуществления.
Хотя различные варианты осуществления описаны выше, они являются только примерами. Например, вычислительные окружения другой архитектуры могут быть использованы для охвата и использования одного или нескольких предпочтительных вариантов осуществления. Кроме того, могут быть использованы различные команды, форматы команд, поля команд и/или значения команд. Кроме того, могут быть использованы отличные начальная загрузка и последовательность перезагрузки. Являются возможными самые разнообразные вариации.
Кроме того, могут быть использованы и оказаться выгодными другие типы вычислительных окружений. В качестве примера, является применимой подходящая для сохранения и/или выполнения программного кода система обработки данных, которая включает в себя по меньшей мере два процессора, соединенных прямо или косвенно через системную шину с элементами памяти. Элементы памяти включают в себя, например, локальную память, используемую в процессе фактического выполнения программного кода, запоминающее устройство большого объема и кэш-память, которая предоставляет временное сохранение по меньшей мере части программного кода с целью уменьшения числа выборок из запоминающего устройства большого объема в процессе выполнения.
Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры ввода/вывода. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
На фиг. 21 изображены характерные компоненты системы 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). Модель может также предоставлять одну или несколько команд предварительного контакта с блоком кэша данных (dcbt), такие как 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-байтовой границе. Когда адреса памяти обозначают полуслова, слова, двойные слова, учетверенные слова, и восьмикратные слова, двоичное представление адреса, соответственно, содержит один, два, три, четыре, или пять самых правых нулевых битов. Команды должны располагаться на двухбайтовых целочисленных границах. Операнды хранения большинства команд не имеют требований по выравниванию границ.
На устройствах, реализующих отдельные кэши для операндов команд и данных, может возникать значительная задержка, если программа сохраняет в строку кэша, из которой команды впоследствии выбираются, независимо от того, изменяет ли сохранение подлежащие последующей выборке команды.
В одном примере вариант осуществления может быть реализован посредством программного обеспечения (иногда называемого лицензированным внутренним кодом, встроенным программным обеспечением, микрокодом, милликодом, пикокодом и т.п., каждый из которых должен быть совместимым с одним или несколькими предпочтительными вариантами осуществления). Согласно фиг. 21, к программному коду программного обеспечения, воплощающему один или несколько аспектов, доступ может быть получен процессором 5001 системы 5000 главного компьютера в долговременных запоминающих устройствах 5011, таких как дисковод для компакт-дисков, устройство записи на ленту или жесткий диск. Программный код программного обеспечения может быть воплощен на любом из ряда известных носителей для использования с системой обработки данных, таких как дискета, жесткий диск или компакт-диск. Код может распространяться на упомянутых носителях или может распространяться к пользователям из памяти 5002 компьютера или памяти одной компьютерной системы по сети 5010 к другим компьютерным системам для использования пользователями таких других систем.
Программный код программного обеспечения включает в себя операционную систему, которая управляет функционированием и взаимодействием различных компьютерных компонентов, а также одну или несколько прикладных программ. Программный код обычно поставляется с разбиением на страницы от устройства 5011 хранения данных к относительно более высокоскоростной компьютерной памяти 5002, где он является доступным для обработки посредством процессора 5001. Методы и способы воплощения программного кода программного обеспечения в памяти, на физических носителях и/или распространения программного кода через сети являются хорошо известными и далее не обсуждаются в настоящем документе. Программный код, когда он создан и сохранен на материальном носителе (в том числе, но не ограничиваясь, модулях электронной памяти (RAM), флэш-памяти, компакт-дисках (CD), DVD, устройствах записи на магнитная ленту и т.п.), зачастую называют «компьютерным программным продуктом». Носитель компьютерного программного продукта обычно является считываемым посредством устройства обработки данных, предпочтительно, в составе компьютерной системы, для выполнения посредством устройства обработки данных.
Фиг. 22 показывает характерные аппаратные средства системы рабочей станции или сервера, в которых могут быть осуществлены один или несколько предпочтительных вариантов осуществления. Система 5020 на фиг. 22 содержит характерную основную компьютерную систему 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 может быть клиентом в клиент-серверной структуре с другим компьютером и т.д. Все эти конфигурации, а также соответствующее коммуникационное аппаратное и программное обеспечение являются известными из уровня техники.
Фиг. 23 показывает сеть 5040 обработки данных, в которой могут быть осуществлены один или несколько предпочтительных вариантов осуществления. Сеть обработки данных 5040 может включать в себя несколько отдельных сетей, таких как беспроводная сеть и проводная сеть, каждая из которых может включать в себя несколько отдельных рабочих станций 5041, 5042, 5043, 5044. Кроме того, как осведомлены специалисты в данной области техники, в состав такой сети могут входить одна или несколько LAN, причем LAN может содержать несколько интеллектуальных рабочих станций, соединенных с главным процессором.
Продолжая рассмотрение фиг. 23, сети могут также включать в себя мэйнфреймовые компьютеры или серверы, такие как шлюзовой компьютер (клиент-сервер 5046) или сервер приложений (удаленный сервер 5048, который может получить доступ к репозиторию данных, и к которому доступ также может быть получен непосредственно с рабочей станции 5045). Шлюзовой компьютер 5046 служит точкой входа в каждую отдельную сеть. Шлюз является необходимым при присоединении одного сетевого протокола к другому. Шлюз 5046 может быть, предпочтительно, соединен с другой сетью (например, с Интернетом 5047) посредством линии связи. Шлюз 5046 также может быть непосредственно соединен с использованием линии связи с одной или несколькими рабочими станциями 5041, 5042, 5043, 5044. Шлюз может быть реализован с использованием одного из серверов IBM Power Systems и IBM System z , поставляемых International Business Machines Corporation. System z является торговой маркой International Business Machines Corporation, зарегистрированной в нескольких юрисдикциях по всему миру.
При одновременном рассмотрении фиг. 22 и фиг. 23, к программному коду 5031 программного обеспечения, который может воплощать один или несколько аспектов, может получить доступ процессор 5026 системы 5020 долговременных запоминающих устройств 5027, таких как дисковод для компакт-дисков или жесткий диск. Программный код программного обеспечения может быть воплощен на любом из ряда известных носителей для использования с системой обработки данных, таких как дискета, жесткий диск или компакт-диск. Код может распространяться на упомянутых носителях или может распространяться к пользователям 5050, 5051 из памяти компьютера или устройства хранения одной компьютерной системы по сети к другим компьютерным системам для использования пользователями таких других систем.
Альтернативно, программный код может быть воплощен в памяти 5025, и к нему может быть получен доступ процессором 5026 с помощью шины процессора. Такой программный код включает в себя операционную систему, которая управляет функционированием и взаимодействием различных компьютерных компонентов, а также одну или несколько прикладных программ 5032. Программный код обычно поставляется с разбиением на страницы от устройства 5027 хранения данных к высокоскоростной компьютерной памяти 5025, где он является доступным для обработки посредством процессора 5026. Методы и способы воплощения программного кода программного обеспечения в памяти, на физических носителях и/или распространения программного кода через сети являются хорошо известными и далее не обсуждаются в настоящем документе. Программный код, когда он создан и сохранен на материальном носителе (в том числе, но не ограничиваясь, модулях электронной памяти (RAM), флэш-памяти, компакт-дисках (CD), DVD, устройствах записи на магнитная ленту и т.п.), зачастую называют «компьютерным программным продуктом». Носитель компьютерного программного продукта обычно является считываемым посредством устройства обработки данных, предпочтительно, в составе компьютерной системы, для выполнения посредством устройства обработки данных.
Кэш, который является самым легкодоступным для процессора (обычно является более быстрым и малым, чем другие кэши процессора), является самый низким по уровню (L1 или первого уровня) кэшем, а основное запоминающее устройство (оперативная память) является кэшем высшего уровня (L3, если имеется 3 уровня). Кэш самого низкого уровня зачастую делится на кэш команд (I-кэш), содержащий подлежащие выполнению машинные команды, и кэш данных (D-кэш), содержащий операнды данных.
Согласно фиг. 24, типовой вариант осуществления процессора изображен для процессора 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 адресов (DAT) и, опционально, с помощью трансляции 5063 регистра доступа (ART).
Процессор 5026 обычно имеет одно или несколько устройств 5057, 5058, 5060 для выполнения функции команды. Согласно фиг. 25А, устройство 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, которое является способным к выполнению ряда логических функций, таких как Смещение, Циклический сдвиг, И, Или и XOR, а также ряда алгебраических функций, включающих в себя любую из числа сложения, вычитания, умножения, деления. Некоторые ALU 5066 разработаны для скалярных операций, а некоторые - для операций с плавающей точкой. Данные могут быть представлены, в зависимости от архитектуры, в порядке следования, начиная со старшего (где наименее значащий байт располагается по адресу старшего байта), или в порядке следования, начиная с младшего (где наименее значащий байт располагается по адресу младшего байта), z/Архитектура IBM имеет порядок следования, начиная со старшего. IBM Power ISA поддерживает режимы выполнения как в порядке следования, начиная со старшего, так и в порядке следования, начиная с младшего. Поля значения со знаком, в зависимости от архитектуры, могут быть представлены знаком и порядком величины, представленным в обратном двоичном коде числом или представленным в дополнительном двоичном коде числом. Представленное в дополнительном двоичном коде число является выгодным так, что для ALU не требуется проектирование инструмента для вычитания, поскольку как отрицательная величина, так и положительная величина в дополнительном двоичном коде требуют только сложения в пределах ALU. Числа обычно описываются в сокращенном виде, когда 12 битовое поле задает адрес 4 096-байтового блока и обычно описывается, например, как 4 кбайтовый (килобайтовый) блок.
Согласно фиг. 25Б информация о команде ветвления для выполнения команды ветвления обычно отправляется в устройство 5058 обработки ветвлений, которое зачастую использует алгоритм предсказания ветвлений, такой как таблица 5082 истории ветвлений (ВНТ) для предсказания результата ветвления прежде завершения других условных операций. Цель текущей команды ветвления будет выбрана и упреждающим образом выполнена прежде завершения условных операций. Когда условные операции завершаются, выполняемые упреждающим образом команды ветвления или завершаются или сбрасываются на основании условий условной операции и упреждающего результата. Типичная команда ветвления может проверять условные коды и выполнять ветвление к целевому адресу, если условные коды отвечают требованию ветвления команды ветвления, целевой адрес может быть вычислен на основании нескольких чисел, включая сюда, например, найденные в полях регистра или в поле непосредственной адресации команды. Устройство 5058 обработки ветвлений может использовать ALU 5074, имеющий несколько входных контуров 5075, 5076, 5077 регистров и контур 5080 выходных регистров. Устройство 5058 обработки ветвлений может сообщаться 5081 с общими регистрами 5059, с устройством 5056 декодирования/диспетчеризации или, например, с другими контурами 5073.
Выполнение группы команд может быть прервано по ряду причин, включающему в себя переключение контекста, инициируемое операционной системой, исключением программы или ошибкой, вызывающей переключение контекста, сигналом прерывания ввода/вывода, вызывающим переключение контекста или, например, многопоточной активностью нескольких программ (в многопоточном окружении). Предпочтительно, действие переключения контекста сохраняет информацию о состоянии относительно выполняющейся в настоящее время программы, а затем загружает информацию о состоянии относительно другой вызываемой программы. Информация о состоянии может быть сохранена, например, в аппаратных регистрах или в памяти. Предпочтительно, информация о состоянии содержит значение счетчика программы, указывающее на следующую подлежащую выполнению команду, условные коды, информацию о трансляции памяти и содержимое архитектурно спроектированного регистра. Действие переключения контекста может быть осуществлено аппаратными схемами, прикладными программами, программами операционной системы или микропрограммным кодом (микрокодом, пикокодом или лицензированным внутренним кодом (LIC)), поодиночке или в комбинации.
Процессор получает доступ к операндам согласно заданным командой методам. Команда может предоставить операнд непосредственной адресации с помощью значения участка команды, может предоставить одно или несколько полей регистра, явно указывающих либо на регистры общего назначения, либо на регистры особого назначения (например, на регистры с плавающей точкой). Команда может использовать в качестве операндов неявно задаваемые регистры, идентифицируемые посредством поля кода операции. Команда может использовать для операндов местоположения памяти. Местоположение памяти операнда может быть предоставлено регистром, полем непосредственной адресации или комбинацией регистров и поля непосредственной адресации, как иллюстрируется функцией длинного смещения z/Архитектуры, причем команда задает базовый регистр, индексный регистр и поле непосредственной адресации (поле смещения), которые совместно добавляются, например, для предоставления адреса операнда в памяти, или режимами адресации Power ISA, где адреса D-вида задают базовый регистр и поле непосредственной адресации (поле смещения), которые совместно добавляются для предоставления адреса операнда в памяти, и причем адреса Х-вида задают базовый регистр и индексный регистр, которые совместно добавляются для предоставления адреса операнда в памяти. Местоположение в настоящем документе обычно подразумевает местоположение в оперативной памяти (основной памяти), если не указано иное.
Согласно фиг. 25 В процессор получает доступ к памяти с помощью устройства 5060 загрузки и хранения. Устройство 5060 загрузки и хранения может выполнять операцию загрузки путем получения адреса целевого операнда в памяти 5053 и загрузки операнда в регистре 5059 или в другом местоположении памяти 5053, или может выполнять операцию сохранения путем получения адреса целевого операнда в памяти 5053 и сохранения данных, полученных из регистра 5059 или другого местоположения памяти 5053, в целевом местоположении операнда в памяти 5053. Устройство 5060 загрузки и хранения может быть упреждающим, и может получать доступ к памяти в последовательности, порядок которой не соответствует таковому для последовательности команды, однако устройство 5060 загрузки и хранения должно поддерживать внешнее представление по отношению к программам, команды которых выполняются по порядку. Устройство 5060 загрузки и хранения может сообщаться 5084 с общими регистрами 5059, с устройством 5056 декодирования/диспетчеризации, с интерфейсом 5053 кэша/памяти или с другими элементами 5083, и содержит различные контуры 5086, 5087, 5088 и 5089 регистра, ALU 5085 и управляющую логику 5090 (CTL) для вычисления адресов памяти и для предоставления конвейерного упорядочивания для поддержания операций упорядоченными. Некоторые операции могут располагаться не по порядку, но устройство загрузки и хранения предоставляет функциональность для предложения находящихся вне порядка операций программе в виде выполненных по порядку, как это хорошо известно из уровня техники.
Предпочтительно, «видимые» прикладной программой адреса, зачастую называют виртуальными адресами. Виртуальные адреса иногда называют «логическими адресами» и «исполнительными адресами». Эти виртуальные адреса являются виртуальными в том смысле, что они перенаправляются к местоположению физической памяти посредством одной из ряда технологий динамической трансляции адресов (DAT), в том числе, но не ограничиваясь, путем простого снабжения виртуального адреса префиксом в виде значения смещения, транслирующим виртуальный адрес с помощью одной или нескольких трансляционных таблиц, причем трансляционные таблицы, предпочтительно, содержат по меньшей мере таблицу сегментов и таблицу страниц, поодиночке или в комбинации, и причем таблица сегментов, предпочтительно, имеет запись, указывающую на таблицу страниц. В z/Архитектуре предоставляется иерархия трансляции, включающая в себя таблицу первой области, таблицу второй области, таблицу третьей области, таблицу сегментов и опциональную таблицу страниц. Производительность трансляции адресов зачастую улучшают путем использования буфера (TLB) предыстории трансляции, содержащего записи, отображающие виртуальный адрес на ассоциированное местоположение физической памяти. Записи создаются, когда DAT транслирует виртуальный адрес с помощью трансляционных таблиц. В этом случае при последующем использовании виртуального адреса может быть применена запись быстрого TLB, а не медленных последовательных доступов трансляционной таблицы. Содержимым TLB можно управлять посредством ряда алгоритмов замены, включающих в себя LRU (наиболее давно неиспользуемый).
В случае, когда процессор является процессором многопроцессорной системы, каждый процессор несет ответственность за поддержание совместно используемых ресурсов, таких как ввод/вывод, кэши, TLB и памяти взаимно блокированными для обеспечения согласованности. Как правило, для поддержания согласованности кэша используются отслеживающие технологии. С целью облегчения совместного использования, в отслеживающем окружении каждая строка кэша может быть отмечена как пребывающая в любом из следующих состояний: совместно используемое, исключительное, измененное, недопустимое и т.п.
Устройства 5054 ввода/вывода (фиг. 24) предоставляют процессору средства для присоединения к периферийным устройствам, включающим в себя, например, устройства записи на ленту, дисководы, принтеры, дисплеи и сети. Зачастую, устройства ввода/вывода предоставляются компьютерной программе посредством программных драйверов. В мэйнфреймах, таких как 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), где в основном выполнение производится в режиме эмуляции. В режиме эмуляции программное обеспечение эмуляции выполняется собственным процессором для эмуляции архитектуры эмулируемого процессора. Linux является зарегистрированной торговой маркой Linus Torvalds в Соединенных Штатах, в других странах, или обеих юрисдикциях.
Собственный процессор обычно выполняет программное обеспечение эмуляции, содержащее либо встроенное программное обеспечение, либо собственную операционную систему для выполнения эмуляции эмулируемого процессора. Программное обеспечение эмуляции ответственно за выборку и выполнение команд архитектуры эмулируемого процессора. Программное обеспечение эмуляции поддерживает эмулированный счетчик программы для отслеживания границ команд. Программное обеспечение эмуляции может одновременно выбирать одну или несколько эмулируемых машинных команд и преобразовывать одну или несколько эмулируемых машинных команд в соответствующую группу собственных машинных команд для выполнения собственным процессором. Эти преобразованные команды могут кэшироваться таким образом, что может быть достигнуто более быстрое преобразование. Несмотря на это, программное обеспечение эмуляции должно поддерживать архитектурные правила архитектуры эмулируемого процессора таким образом, что обеспечивается правильное функционирование операционных систем и приложений, записанных для эмулируемого процессора. Кроме того, программное обеспечение эмуляции должно предоставлять ресурсы, идентифицируемые посредством архитектуры эмулируемого процессора, в том числе, но не ограничиваясь, регистры управления, регистры общего назначения, регистры с плавающей точкой, динамическую трансляцию адресов, включающую в себя, например, таблицы сегментов и таблицы страниц, механизмы прерывания, механизмы переключения контекста, часы времени суток (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), каждый из которых включен в настоящий документ путем отсылки в полном объеме, а также многие другие, демонстрируют ряд известных доступных специалистам в данной области техники способов достижения эмуляции для целевой машины формата архитектурно спроектированных для различных машин команд.
На фиг. 26 предоставлен пример эмулированной системы 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): потребителю предоставляется инструмент для обеспечения обработки, хранения, сетей и других фундаментальных вычислительных ресурсов, с помощью которого потребитель может разворачивать и выполнять произвольное программное обеспечение, которое может включать в себя операционные системы и приложения. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, но управляет операционными системами, запоминающими устройствами, развертываемыми приложениями и, возможно, имеет ограниченное управление выбором сетевых компонентов (например, главных межсетевых защитных экранов).
Модели развертывания представлены следующим образом.
Частное облако: облачная инфраструктура действует исключительно для организации. Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Коллективное облако: облачную инфраструктуру совместно используют несколько организаций и поддерживает особое сообщество, которое имеет совместные интересы (например, главная цель работы, требования к защите, политика и соображения по контролю за соблюдением установленных требований). Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Открытое облако: облачная инфраструктура сделана доступной для широкой публики или группы крупной отрасли, и принадлежит продающей облачные услуги организации.
Гибридное облако: облачная инфраструктура является сочетанием двух или более облаков (частного, коллективного или отрытого), которые остаются отличными от других объектами, но связаны друг с другом посредством стандартизированной или проприетарной технологии, обеспечивающей для данных и приложений высокую мобильность (например, временное использование ресурсов открытого облака для выравнивания нагрузки между облаками).
Окружение облачных вычислений является услугой, ориентированной со вниманием на бесструктурность, слабую связность, модульный принцип и семантическую функциональную совместимость. В основе облачных вычислений находится инфраструктура, содержащая сеть из связанных узлов.
На фиг. 27 показано схематическое изображение примера узла облачных вычислений. Узел 6010 облачных вычислений является только одним примером подходящего узла облачных вычислений, и не предназначается для предположения какого-либо ограничения относительно объема использования или функциональности предпочтительных вариантов осуществления описанного в настоящем документе изобретения. В любом случае, узел 6010 облачных вычислений способен к своей реализации и/или к выполнению любой из сформулированных выше функциональностей.
В узле 6010 облачных вычислений имеется компьютерная система/сервер 6012, которая способна функционировать совместно с многочисленными другими окружениями или конфигурациями вычислительных систем общего назначения или особого назначения. Примеры известных вычислительных систем, окружений и/или конфигураций, которые могут подойти для использования с компьютерной системой/сервером 6012, включают в себя, но ими не ограничиваются, системы персонального компьютера, системы сервера, тонкие клиенты, толстые клиенты, наладонные или переносные устройства, многопроцессорные системы, основанные на микропроцессорах системы, декодеры каналов кабельного телевидения, программируемую бытовую электронику, сетевые персональные компьютеры, системы миникомпьютера, мэйнфреймовые компьютерные системы и распределенные окружения облачных вычислений, включающие в себя любые из вышеупомянутых систем или устройств, и т.п.
Компьютерная система/сервер 6012 может быть описана в общем контексте исполнимых команд компьютерной системы, таких как программные модули, выполняемые компьютерной системой. Обычно, программные модули могут включать в себя подпрограммы, программы, объекты, компоненты, логику, структуры данных и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Компьютерная система/сервер 6012 может быть осуществлена в распределенных окружениях облачных вычислений, где задачи выполняются отдаленными устройствами обработки, связанными через коммуникационную сеть. В распределенном окружении облачных вычислений программные модули могут быть расположены в информационных носителях как системы локального, так и удаленного компьютера, включая сюда запоминающие устройства.
Как показано на фиг. 27, компьютерная система/сервер 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 ввода/вывода (I/O). Кроме того, компьютерная система/сервер 6012 может сообщаться через сетевой адаптер 6020 с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет). Как изображено, сетевой адаптер 6020 сообщается с другими компонентами компьютерной системы/сервера 6012 через шину 6018. Следует понимать, что совместно с компьютерной системой/сервером 6012 могут быть использованы, хотя и не показаны, другие аппаратные компоненты и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.
На фиг. 28 изображено показательное окружение 6050 облачных вычислений. Как показано, окружение 6050 облачных вычислений содержит один или несколько узлов 6010 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 6054А, настольный компьютер 6054 В, портативный компьютер 6054С, и/или автомобильная компьютерная система 6054N. Узлы 6010 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет окружению 6050 облачных вычислений предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. 28 типы 6054A-N вычислительных устройств предназначаются исключительно для разъяснений и, что вычислительные узлы 6010 и окружение 6050 облачных вычислений могут сообщаться с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб-браузера).
На фиг. 29 показан ряд функциональных уровней абстракции, предоставляемых окружением 6050 облачных вычислений (фиг. 28). Прежде всего, необходимо понимать, что компоненты, уровни и функции, показанные на фиг. 29, предназначаются исключительно для разъяснений, и ими не ограничиваются предпочтительные варианты осуществления изобретения. Как изображено, предоставляются следующие уровни и соответствующие функции:
Аппаратный и программный уровень 6060 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают в себя мэйнфреймы, в одном примере, системы IBM zSeries; основанные на архитектуре RISC (компьютер с сокращенной системой команд) серверы, в одном примере, системы IBM pSeries; системы IBM xSeries; системы IBM В1аdеCenter;запоминающие устройства; сети и сетевые компоненты. Примеры компонентов программного обеспечения включают в себя серверное программное обеспечение сетевых приложений, в одном примере, серверное программное обеспечение приложений IBM WebSphere, и программное обеспечение базы данных, в одном примере, программное обеспечение базы данных IBM DB2. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere и DB2 являются торговыми марками International Business Machines Corporation, зарегистрированными в нескольких юрисдикциях по всему миру).
Уровень 6062 виртуализации предоставляет уровень абстракции, на основе которого могут быть предоставлены следующие примеры виртуальных объектов: виртуальные серверы, виртуальная память, виртуальные сети, включающие в себя виртуальные частные сети, виртуальные приложения и операционные системы, и виртуальные клиенты.
В одном примере, уровень 6064 управления может предоставлять описанные ниже функции. Функция выделения ресурсов предоставляет динамическую поставку вычислительных ресурсов и других ресурсов, использующихся для выполнения задач в пределах окружения облачных вычислений. Функции измерения и оценки предоставляют отслеживание затрат по мере использования ресурсов в пределах окружения облачных вычислений и выписку или выставление счетов за потребление этих ресурсов. В одном примере, эти ресурсы могут содержать лицензии прикладного программного обеспечения. Функция безопасности предоставляет проверку идентификационных данных для облачных потребителей и задач, а также защиту данных и других ресурсов. Функция пользовательского портала предоставляет доступ к окружению облачных вычислений для потребителей и системных администраторов. Функция управления уровнем услуг предоставляет распределение ресурсов облачных вычислений и управление ими таким образом, что удовлетворяются необходимые уровни услуг. Функция планирования и выполнения Соглашения об уровне услуг (SLA) предоставляет предварительную подготовку и приобретение ресурсов облачных вычислений, для которых в будущем ожидается соответствие требованиям согласно SLA.
Уровень 6066 рабочих заданий предоставляет примеры функциональности, для которой может быть использовано окружение облачных вычислений. Примеры рабочих заданий и функций, которые могут быть предоставлены на этом уровне, включают в себя: построение соответствий, а также просмотр и организацию доступа к ресурсам, разработку программного обеспечения и управление его жизненным циклом, предоставление образования в виде виртуальной аудитории, обработку анализа данных, и обработку транзакций.
Используемая в настоящем документе терминология служит исключительно целям описания конкретных предпочтительных вариантов осуществления и не предназначается для ограничения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. В последующем изложении подразумевается, что термины «содержит» и/или «содержащий» при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких предпочтительных вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных предпочтительных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.