ВРЕМЕННОЕ ПОДАВЛЕНИЕ ОБРАБОТКИ ОГРАНИЧЕННОГО ЗАПРОСА ОПЕРАНДА ПАМЯТИ
TEMPORARY SUPPRESSION OF MEMORY OPERAND LIMITED OPERABILITY PROCESSING

Уровень техники
Один или несколько аспектов относятся, в целом, к обработке в вычислительном окружении и, прежде всего, к обеспечению такой обработки.
В многопроцессорном вычислительном окружении несколько вычислительных устройств, таких как центральные вычислительные устройства (CPU) или ядра, соединены для совместного использования доступа к общей памяти, такой как общие местоположения основной памяти. Иерархия памяти в конфигурации может включать в себя различные уровни кеша, локальные для каждого вычислительного устройства, различные уровни кеша, совместно используемые несколькими вычислительными устройствами, а также основную память. Когда вычислительное устройство должно обновлять местоположение памяти, строку памяти передают вычислительному устройству посредством иерархии памяти, и строку удерживают исключительным образом на том уровне кеша, который является локальным для выполняющего обновление вычислительного устройства. В то время, когда строка памяти удержана вычислительным устройством исключительным образом, другим вычислительным устройствам не разрешено обновление или считывание этой строки памяти до тех пор, пока строка не окажется разблокированной и более не удерживаемой вычислительным устройством исключительным образом.
Признаки вычислительного устройства, направленные на повышение производительности отдельного вычислительного устройства, такие как конвейерная обработка, суперскалярная обработка, выполнение с изменением последовательности и предсказание ветвлений, могут привести к упреждающим запросам памяти. Упреждающим называют такой запрос, который может как потребоваться, так и не потребоваться для завершения конкретного способа выполнения программы. Выявляющие потребность в запросе условия на момент инициации упреждающего запроса еще не являются разрешенными.
Сущность изобретения
Некоторые недостатки известного уровня техники преодолены, и дополнительные преимущества обеспечиваются в одном или нескольких аспектах изобретения, реализованного, в частности, в способе управления доступом к памяти в вычислительном окружении, как он заявлен в п. 1, а также в соответствующих системе и машиночитаемом информационном носителе (т.е. носителе информации).
Предлагаемый в изобретении способ управления доступом к памяти в многопроцессорном вычислительном окружении включает следующие шаги, выполняемые процессором из указанного вычислительного окружения: (а) выбор команды;
(б) постановку команду в очередь на выполнение;
(в) выявление адреса операнда памяти, запрашиваемого командой; (г) запрашивание адреса операнда памяти от одного или нескольких локальных или приватных кешей к процессору;
(д) выявление того, попал ли или промахнулся запрос на шаге в один или несколько локальных или приватных кешей;
(е) возвращение команды в очередь, если на шаге (д) установлено, что запрос на шаге (г) промахнулся в один или несколько локальных или приватных кешей;
(ж) выявление того, обозначен ли запрос операнда памяти как ограниченный, выполняемое путем получения команды намерения доступа, указывающей на намерение доступа, связанное с операндом следующей последовательной команды, и имеющей по меньшей мере одно поле, содержащее код для передачи в процессор сигнала о намерении доступа для операнда первичного доступа следующей последовательной команды и/или для операнда вторичного доступа следующей последовательной команды, где заданное число битов по меньшей мере одного поля содержит целое число без знака, используемое в качестве кода для передачи в процессор сигнала о намерении доступа для соответствующего операнда следующей последовательной команды, причем одно значение целого числа без знака используется для передачи в процессор сигнала о  том, что использование запроса операнда памяти ограничено, означая, что соответствующая отсылка по операнду следующей последовательной команды является отсылкой для общей области памяти в многопроцессорном вычислительном окружении;
(з) при выявлении на шаге (ж) того, что запрос операнда памяти обозначен как ограниченный, выявляют, является ли команда, связанная с запросом операнда памяти, следующей к завершению; и
(и) при выявлении на шаге (з) того, что команда не является следующей к завершению, запрос операнда памяти возвращают в очередь.
Предпочтительно, обработка в компьютерном окружении усовершенствована путем предоставления для программы средства (или инструмента) для сигнализации вычислительному устройству о том, что конкретный запрос операнда памяти, или доступ, соответствующий совместно используемому несколькими вычислительными устройствами вычислительного окружения местоположению памяти, является ограниченным. На основании идентификации конкретного запроса операнда памяти в качестве ограниченного, когда обработка идентифицированного операнда памяти не может быть достигнута с помощью приватного для вычислительного устройства кеша, вычислительное устройство отсрочивает обработку запроса операнда памяти. Обработка может быть отсрочена (или временно подавлена) до завершения обработки команды, которая предшествует команде (или операционной части команды), которая задает идентифицированный операнд памяти. Этим выгодным образом обеспечено, что идентифицированный в качестве ограниченного доступ операнда памяти выполняют только при необходимости, и не выполняют упреждающим образом, когда запрос операнда памяти не может быть завершен только с помощью приватного кеша. Предпочтительно, в результате, число случаев непроизводительного прохождения через вычислительное окружение строки общей совместно используемой памяти может быть уменьшено, и таким образом, полная производительность системы повышена.
В одном или нескольких вариантах осуществления, временное подавление включает в себя обработку подавления запроса операнда памяти, когда запрос операнда памяти требует доступа к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, с целью обработки запроса операнда памяти. Прежде всего, способ может быть выполнен посредством вычислительного устройства, и вычислительное устройство имеет возможность выявления того, попадает ли запрос операнда памяти в приватный кеш вычислительного устройства, и на основании реализации запросом операнда памяти попадания в приватный кеш, имеет возможность продолжения обработки запроса операнда памяти с помощью приватного кеша без выполнения подавления.
В одном или нескольких вариантах осуществления, временное подавление включает в себя обработку подавления запроса операнда памяти до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению. В усовершенствованных вариантах осуществления, способ может, кроме того, включать в себя размещение запроса операнда памяти в очереди запросов операнда памяти, когда запрос операнда памяти требует доступа к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения. В качестве примера, временное подавление может включать в себя сохранение запроса операнда памяти в очереди запросов операнда памяти до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению.
В одном или нескольких вариантах осуществления, способ может, кроме того, включать в себя идентификацию запроса операнда памяти в качестве ограниченного. Идентификация может включать в себя получение вычислительным устройством команды намерения доступа, указывающей на намерение доступа, связанного с операндом следующей последовательной команды, когда намерение доступа указывает на использование запроса операнда памяти в качестве ограниченного. В одном или нескольких вариантах осуществления, команда намерения доступа может быть представлена командой намерения доступа к следующей команде, и идентификация запроса операнда памяти в качестве ограниченного может включать в себя предоставление кода намерения доступа с ограничением в рамках команды намерения доступа к следующей команде.
В одном или нескольких вариантах осуществления, запрос операнда памяти является упреждающим запросом операнда памяти, связанным с командой или операционной частью команды.
Посредством описанных в настоящем документе методов реализованы дополнительные признаки и преимущества. Другие варианты осуществления и аспекты подробно описаны в настоящем документе и считаются частью заявленного изобретения.
Объектами изобретения являются также система для управления доступом к памяти в многопроцессорном вычислительном окружении, содержащая процессор, выполненный с возможностью осуществления всех шагов предлагаемого в изобретении способа, и машиночитаемый информационный носитель, содержащий хранящиеся в нем команды, составляющие компьютерную программу и предназначенные для выполнения всех шагов предлагаемого в изобретении способа при выполнении указанной компьютерной программы в компьютерной системе.
Краткое описание чертежей
Один или несколько аспектов, прежде всего, указаны и явным образом заявлены в качестве примеров в пунктах формулы изобретения в конце технического описания. Ранее указанные и другие цели, признаки и преимущества являются очевидными из последующего подробного описания, предпринятого совместно с сопровождающими чертежами, на которых:
Фиг. 1 изображает один пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 2 изображает другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 3 изображает один пример многопроцессорного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 4 изображает один вариант осуществления обработки, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 5 изображает более подробное представление варианта осуществления обработки, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 6А показывают один вариант осуществления формата команды, пригодного согласно одному или нескольким аспектам настоящего  изобретения,
Фиг. 6Б показывает один вариант осуществления поля элемента управления намерением доступа формата команды, как он показан на фиг. 6А, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 7 показывает вариант осуществления блок-схемы, которая может быть использована в управлении логикой работы обработки с помощью команды, как она показана на фиг. 6А и 6Б, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 8А и 8Б изображают другой пример обработки запроса операнда памяти, согласно одному или нескольким аспектам настоящего изобретения,
Фиг. 9А изображает другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения,
Фиг. 9Б изображает более подробную информацию по памяти на фиг. 9А,
Фиг. 10 изображает один вариант осуществления облачного вычислительного окружения, и
Фиг. 11 изображает один пример уровней модельной абстракции.
Подробное описание
Как отмечено, признаки вычислительного устройства, направленные на повышение производительности отдельного вычислительного устройства, такие как конвейерная обработка, суперскалярная обработка, выполнение с изменением последовательности и предсказание ветвлений, могут привести к упреждающим запросам памяти. Упреждающие запросы к приватным местоположениям памяти могут быть выгодными, но чрезмерные упреждающие запросы к общим местоположениям памяти могут оказаться вредными для  общей производительности системы. В результате ненужного упреждающего запроса строка совместно используемой памяти может проходить через иерархию памяти, не принося пользы какому-либо отдельному процессу.
Конкуренция среди вычислительных устройств за общее местоположение совместно используемой памяти увеличивается по мере: увеличения числа упреждающих запросов к памяти со стороны вычислительных устройств в вычислительном окружении или в вычислительной конфигурации, увеличения числа вычислительных устройств в вычислительном окружении, или увеличения число потоков в  процессоре, который реализует одновременную многопоточность (SMT), и т.д. По мере возрастания конкуренции между вычислительными устройствами, для каждого отдельного вычислительного устройства становится все более затруднительным успешное получение строки памяти, содержащей конкретное местоположение совместно используемой памяти. В результате, полная производительность системы может ухудшаться.
Согласно одному или нескольким аспектам настоящего изобретения, для программы предоставлено средство для сигнализации вычислительному устройству о том, что конкретный доступ операнда памяти соответствует общему местоположению памяти, совместно используемому несколькими вычислительными устройствами по всему вычислительному окружению. Когда обработка идентифицированного в качестве ограниченного операнда памяти не может быть достигнута с помощью только локальных или приватных по отношению к вычислительному устройству уровней кеша, вычислительное устройство получает сигнал на отсрочку каких-либо запросов к общей, внешней иерархии до окончания обработки команд, предшествующих задающей идентифицированный операнд памяти команде. Этим выгодным образом обеспечено выполнение идентифицированного запроса операнда памяти только при необходимости, и невыполнение его упреждающим образом. В результате, число случаев непроизводительного прохождения через вычислительное окружение строки общей совместно используемой памяти может быть уменьшено, и таким образом, полная производительность системы повышена.
Один вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 1. В одном примере, вычислительное окружение основано на z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления z/Архитектуры описан в публикации IBM под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация IBM № SA22-7832-10, март 2015. z/Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорк, США.
В  другом примере, вычислительное окружение основано на Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Один вариант осуществления Архитектуры Power описан в публикации «Power ISA™ версия 2.07B» (Power ISA™ Version 2.07B), International Business Machines Corporation, от 9 апреля 2015. Power Architecture является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорка, США.
Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектуре Intel x86. Имеются также и другие примеры.
Как показано на фиг. 1, вычислительное окружение 100 включает в себя, например, узел 10, имеющий, например, компьютерную систему/сервер 12, которая может быть использована совместно с многочисленными другими окружениями, вычислительными системами или конфигурациями общего назначения или особого назначения. Примеры известных вычислительных систем, окружений и/или конфигураций, которые могут подойти для использования с компьютерной системой/сервером 12, включают в себя, но ими не ограничиваются, системы персонального компьютера (ПК), серверные компьютерные системы, тонкие клиенты, толстые клиенты, наладонные или переносные устройства, многопроцессорные системы, основанные на микропроцессорах системы, декодеры каналов кабельного телевидения, программируемую бытовую электронику, сетевые персональные компьютеры, миникомпьютерные системы, мэйнфреймовые компьютерные системы, а также распределенные облачные вычислительные окружения, включающие в себя любые из вышеупомянутых систем или устройств, и т.п.
Компьютерная система/сервер 12 может быть описана в общем контексте выполняемых компьютерной системой команд, таких как выполняемые компьютерной системой программные модули. Обычно, программные модули могут включать в себя подпрограммы, программы, объекты, компоненты, логику, структуры данных и тому подобные элементы, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Компьютерная система/сервер 12 может быть применена во многих вычислительных окружениях, в том числе, но не ограничиваясь, в распределенных облачных вычислительных окружениях, где задачи выполняют связанные посредством коммуникационной сети отдаленные устройства обработки. В распределенном окружении облачных вычислений программные модули могут быть расположены как в локальных, так и в удаленных носителях информации компьютерной системы, содержащих запоминающие устройства памяти.
Как показано на фиг. 1, компьютерная система/сервер 12 показана в виде вычислительного устройства общего назначения. Компоненты компьютерной системы/сервера 12 могут включать в себя, но не ими ограничиваются, один или несколько процессоров или вычислительных устройств 16, системную память 28, и шину 18, которая соединяет с процессором 16 различные компоненты системы, включающие в себя системную память 28.
Шина 18 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (MCA), шину Расширенной ISA архитектуры (EISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).
Компьютерная система/сервер 12 обычно включает в себя ряд считываемых компьютерной системой носителей. Такие носители могут быть представлены любыми доступными носителями, который являются доступными посредством компьютерной системы/сервера 12, и которые включают в себя как энергозависимые, так и энергонезависимые носители, съемные и несъемные носители.
Системная память 28 может включать в себя считываемые компьютерной системой носители в виде энергозависимой памяти, такие как оперативная память (RAM) 30 и/или кеш-память 32. Компьютерная система/сервер 12, кроме того, может включать в себя и другие съемные и несъемные, энергозависимые и энергонезависимые информационные носители компьютерной системы. Исключительно в качестве примера, может быть предоставлена система 34 хранения для считывания из несъемных, энергонезависимых магнитных носителей (не показанных и  обычно называемых «жестким диском») и  для записи в них. Хотя не показаны, могут быть предоставлены магнитный дисковод для считывания из  несъемного, энергонезависимого магнитного диска (например, «гибкого диска») и для записи в него, и оптический дисковод для считывания из несъемного, энергонезависимого оптического диска, такого как CD-ROM, DVD-ROM или другие оптические носители, и для записи в них. В таких реализациях каждый дисковод может быть присоединен к шине 18 посредством одного или нескольких интерфейсов носителей данных. Как, кроме того, изображено и описано ниже, память 28 может включать в себя по меньшей мере один программный продукт, имеющий набор (например, по меньшей мере один) программных модулей, которые сконфигурированы для выполнения функций вариантов осуществления настоящего изобретения.
В качестве примера, но не ограничения, программа/сервисная программа 40, имеющая набор (по меньшей мере один) программных модулей 42, может быть сохранена в памяти 28, равно как операционная система, одна или несколько прикладных программ, другие программные модули и данные программы. Каждый элемент из числа операционной системы, одной или нескольких прикладных программ, других программных модулей и данных программы или некоторая комбинация из них может включать в себя реализацию сетевого окружения. Программные модули 42 в основном выполняют функции и/или методологии предпочтительных вариантов осуществления настоящего изобретения, как они описаны в настоящем документе.
Компьютерная система/сервер 12 может также сообщаться с одним или несколькими внешними устройствами 14, такими как клавиатура, позиционирующее устройство, дисплей 24, и т.д., с одним или несколькими устройствами, обеспечивающими пользователю взаимодействие с компьютерной системой/сервером 12, и/или любыми устройствами (например, сетевой платой, модемом и т.д.), которые обеспечивают компьютерной системе/серверу 12 сообщение с одним или несколькими другими вычислительными устройствами. Такая коммуникация может происходить через интерфейсы 22  ввода/вывода (I/O). Кроме того, компьютерная система/сервер 12 может сообщаться через сетевой адаптер 20 с одной или несколькими сетями, такими как локальная сеть (LAN), общая глобальная сеть (WAN) и/или сеть общего пользования (например, Интернет). Как изображено, сетевой адаптер 20 сообщается с другими компонентами компьютерной системы/сервера 12 через шину 18. Следует понимать, что совместно с компьютерной системой/сервером 12 могут быть использованы, хотя и не показаны, другие аппаратные компоненты и/или компоненты программного обеспечения. Примеры, в том числе, но не ограничиваясь: микрокод, драйверы устройств, резервные вычислительные устройства, массивы внешних дисководов, системы RAID (массивы недорогих дисковых накопителей с избыточностью), устройства записи на ленту, системы архивного хранения данных и т.д.
В качестве примера, вычислительное устройство 16 может включать в себя несколько используемых для выполнения команд функциональных компонентов. Эти функциональные компоненты включают в себя, например, компонент выборки команды для выборки подлежащих выполнению команд, устройство декодирования команд для декодирования выбранных команд и для получения операндов декодированных команд, компонент выполнения команд для выполнения декодированных команд, компонент доступа к памяти для доступа, в случае необходимости, к памяти для выполнения команд, и компонент перезаписи для предоставления результатов выполненных команд. Один или несколько из этих компонентов, согласно аспекту настоящего изобретения, могут быть использованы для реализации подавления, или задержки, обработки идентифицированный в качестве ограниченного запроса операнда памяти, как дополнительно описано ниже.
Вычислительное устройство 16 также включает в себя, в одном варианте осуществления, один или несколько регистров для использования посредством одного или нескольких из числа функциональных компонентов.
Другой пример вычислительного окружения для охвата и использования одного или нескольких аспектов настоящего изобретения описан с отсылками на фиг. 2. В одном примере, вычислительное окружение может, опять-таки, быть основанным на вышеупомянутой z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. В другом примере, вычислительное окружение может быть основано на вышеупомянутой Архитектуре Power, предлагаемой International Business Machines Corporation, Армонк, Нью-Йорк. Вычислительное окружение может также быть основано на другой архитектуре, в том числе, но не ограничиваясь, на архитектурах Intel 64 и IA-32. Имеются также и другие примеры.
Как показано на фиг. 2, в одном примере, вычислительное окружение 200 включает в себя по меньшей мере одно вычислительное устройство (PU), такое как центральное вычислительное устройство (CPU), соединенное с одним или несколькими высокоуровневыми кешами 205. Центральное вычислительное устройство 16 включает в себя, например, одно или несколько устройств 201 выполнения для запроса и использования данных. Устройства 201 выполнения соединены с устройством 202 загрузки и хранения (LSU), которое включает в себя список 203 очерёдности загрузки и сохранения ( LSQ). Устройство 202 загрузки и сохранения выпускает операции по доступу к памяти (загрузок и сохранений), которые извлекают выбранные с упреждением данные или принуждают к выбору данных подсистему памяти или высокоуровневые кеши. LSU 202 может быть соединено с локальным кешем 204 посредством, например, механизма трансляции, такого как, например, буфер быстрого преобразования адреса (TLB) или таблица трансляции исполнительного адреса в реальный (ERAT).
Вычислительное устройство 16 соединено и находится в сообщении с иерархией памяти, включающей в себя, например, локальный кеш (кеши) 204, который может включать в себя кеш L1 данных, один или несколько высокоуровневых кешей 205, которые могут включать в себя два одноуровневых кеша (L2) или несколько других последовательно пронумерованных более высоких уровней, например L3, L4, память 215, и связанный контроллер 210 памяти, который управляет доступами к памяти 215. Локальный кеш (кеши) 204 служит буфером упреждающей выборки для данных (и/или потоков данных), которые выбирают с упреждением. Локальный кеш (кеши) 204 имеет соответствующий список очерёдности пропусков загрузки (LMQ), который кеш использует для сохранения информации о продолжающихся запросах упреждающей выборки.
Кроме того, в одном варианте осуществления, локальный кеш (кеши) 204 может иметь связанный каталог кеша, который может быть реализован как часть кеша или поддержан отдельно от него. Каталог кеша может включать в себя тег для каждой кеш-строки в локальном кеше. Тег предоставляет информацию о кеш-строке, включая сюда, по меньшей мере, часть реального или абсолютного адреса данных в кеш-строке, а также информацию о статусе, такую как, об удержании данных в качестве исключительных или совместно используемых и т.д., об использовании данных, такую как, являются ли они использованными наиболее недавно, использованными наиболее давно, или где-нибудь в промежутке и т.д., и/или другую информацию о статусе. Тег может также включать в себя дополнительную информацию относительно данных в кеш- строке. Каждый уровень кеша может иметь связанный каталог кеша, либо его собственный каталог, либо совместно используемый каталог.
В дополнение к типовой иерархии памяти, вычислительное окружение 200 может также включать в себя дополнительные запоминающие устройства, являющиеся частью иерархии памяти с точки зрения вычислительного  устройства 16. Запоминающие устройства могут быть представлены одним или несколькими электронными носителями, такими как гибкий диск, жесткий диск, CD-ROM или DVD. CPU 102 сообщено с каждым из вышеупомянутых устройств в пределах иерархии памяти посредством различных механизмов, включающих в себя шины и/или прямые каналы, в качестве примеров.
Шины могут представлять собой один или более из любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), локальную шину Ассоциации по стандартам в области видео-электроники (VESA) и шину Взаимодействия периферийных компонентов (PCI).
В другом варианте осуществления, раскрытая в настоящем документе обработка может быть использована в многопроцессорном окружении, таком как описанное ниже с отсылками на фиг. 3. В одном примере многопроцессорное окружение 300 включает в  себя несколько ядер 302a..302n. Каждое ядро  включает в себя по меньшей мере один аппаратный поток или вычислительное устройство 304a, 304n, которое включает в себя локальный кеш, такой как кеш L1 306a, 306n. Каждое ядро 302a, 302n соединено с нулевым или более высокоуровневым приватным кешем (например, с кешем (кешами) L2). Кроме того, многопроцессорное окружение 300 включает в себя нулевой или более высокоуровневые совместно используемые кеши 310, такие как кеши L3 и/или L4, которые совместно используются ядрами, и прежде всего, совместноиспользуются вычислительными устройствами. Также может быть реализована и другая топология.
Каждое вычислительное устройство в многопроцессорном окружении (или в подмножестве вычислительных устройств) может также включать в себя функцию информационного запроса, которая подлежит использованию для запрашивания одного или нескольких кешей, включая сюда один или несколько из совместно используемых кешей, при их наличии, для получения статуса резидентности кеша и/или другой информации по выбранным данным.
Как отмечено, согласно одному или нескольким аспектам настоящего изобретения, в настоящем документе предоставлено средство для усовершенствования обработки в вычислительном окружении. Как показано на фиг. 4, средство может включать в себя инструмент для выявления того, является ли запрос операнда памяти к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, ограниченным 400. На основании выявления того, что запрос операнда является ограниченным, операнд памяти может быть временно подавлен, то есть один или несколько запросов доступа к общему местоположению памяти в соответствии с запросом операнда памяти могут быть отсрочены 410.
В одном или нескольких вариантах осуществления, временное подавление включает в себя обработку подавления запроса операнда памяти до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению. Подавление может происходить в том случае, когда запрос операнда памяти требует доступа к  общей памяти, совместно используемой несколькими вычислительными устройствами вычислительного окружения, с целью обработки запроса операнда памяти. Кроме того, реализующее обработку вычислительное устройство имеет возможность выявления того, попадает ли запрос операнда памяти с приватным кешем вычислительного устройства, и на основании реализации запросом операнда памяти попадания в приватный кеш, имеет возможность продолжения обработки запроса операнда памяти без выполнения подавления.
В одном или нескольких вариантах осуществления, запрос операнда памяти может быть размещен в очереди запросов операнда памяти, когда запрос операнда памяти требует доступа к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения. В качестве примера, временное подавление может включать в себя удержание запроса операнда памяти в очереди запросов операнда памяти, например, в загрузочном запоминающем устройстве до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению.
Кроме того, средство может включать в себя инструмент для идентификации запроса операнда памяти в качестве ограниченного. Идентификация может включать в себя получение вычислительным устройством команды намерения доступа, указывающей на намерение доступа, связанного с операндом следующей последовательной команды. Намерение доступа может указывать на использование запроса операнда памяти в качестве ограниченного. В одном или нескольких вариантах осуществления, команда намерения доступа может быть представлена командой намерения доступа к следующей команде, и идентификация запроса операнда памяти в качестве ограниченного может включать в себя предоставление кода намерения доступа с ограничением в рамках команды намерения доступа к следующей команде, как далее описано в настоящем документе.
В одном или нескольких вариантах осуществления, запрос операнда памяти является упреждающим запросом операнда памяти, связанным с командой или операционной частью команды, когда команда может быть отнесена к архитектурно выполненной команде, такой как в архитектуре системы команд, и операционная часть команды может быть отнесена к микрооперации, такой как компонент способной к расщеплению архитектурно выполненной команды.
Фиг. 5 изображает более подробный вариант осуществления последовательности операций согласно одному или нескольким аспектам настоящего изобретения. Как показано, вычислительное устройство имеет возможность выбора 500 команды и  декодирования этой команды для  выявления, например, относящихся к операнду сигналов, устройства (LSU, FXU, и т.д.) выполнения, обозначения «ограничения» и т.д. 505. Как отмечено, инструмент для предоставления обозначения ограничения может быть  реализован в архитектуре системы команд (ISA), пример чего описан ниже с отсылками на фиг. 6A-7.
Команду ставят в очередь на выполнение 510, и вычислительное устройство выявляет готовность команды к выпуску 515. При  ответе  «нет»,  команда остается в очереди 510. В противном случае, команду выпускают к устройству выполнения. В этом примере, команда, как предполагается, включает в себя запрос операнда памяти или доступ, и выпускается к устройству загрузки и сохранения (LSU) 501.
В предоставленном примере, LSU 501 выявляет адрес 530 операнда памяти, и запрашивает доступ операнда памяти от одного или нескольких локальных или приватных кешей к вычислительному устройству 535. Вычислительное устройство выявляет, попадает ли запрос в локальный кеш (кеши) 540 или промахивается. При наличии попадания в кеш, вычислительное устройство продолжает стандартную обработку команды. Однако, при наличии промаха в кеш, команду возвращают в очередь 510, а связанный с командой запрос операнда памяти размещают в очереди запросов операнда памяти на возможное осуществление упреждающих вычислений.
В изображенном варианте осуществления, LSU 501 выявляет, обозначен ли следующий запрос операнда памяти в очереди запросов операнда памяти 545 в качестве ограниченного 550. При ответе «нет», вычислительное устройство запрашивает доступ к иерархии памяти, внешней относительно вычислительного устройства, то есть, запрашивает доступ к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения. Когда запрос операнда памяти обозначен в  качестве ограниченного, вычислительное устройство выявляет, является ли связанная с запросом команда или операционная часть команды следующей к завершению (NTC) 555. Когда соответствующая команда является следующей к завершению в очереди команд для выполнения, вычислительное устройство передает информационный запрос доступа к иерархии памяти, внешней относительно вычислительного устройства. В противном случае, запрос операнда памяти возвращают в очередь запросов операнда памяти 545 для временного подавления запроса операнда памяти. Подавление продолжается до момента, когда связанная с запросом команда (или операционная часть) оказывается следующей к завершению, в который момент, запрос приводит к созданию информационного запроса к внешней относительно вычислительного устройства иерархии памяти для доступа к требуемому общему местоположению памяти.
Один вариант осуществления формата команды, который может быть использован согласно одному или нескольким вариантам осуществления настоящего изобретения, описан ниже с отсылками на фиг. 6А, 6Б и 7. На фиг. 6А изображен формат команды, известный как команда намерения доступа к следующей команде (NIAI). Этот формат команды может включать в себя поле 601 операционного кода (OPCODE), указывающее на то, что эта команда  является командой намерения доступа к следующей команде. Кроме того, может быть предоставлено зарезервированное поле 602, которое, в одном или нескольких вариантах осуществления, может содержать ноли. Формат команды может также включать в себя поля или операнды, такие как поле 603 элемента управления намерением доступа (I1), а также другое поле 604 элемента управления намерением доступа (I2).
Для этого формата команды термин «операнд первичного доступа» означает самый низко-пронумерованный операнд памяти команды. Подобным образом, термин «операнд вторичного доступа» означает следующий самый низко-пронумерованный операнд памяти команды. Эти термины не имеют того же значения как термины «первый операнд» и «второй операнд», хотя между ними может существовать некоторая корреляция.
Под действием элементов управления в полях I1 603 и I2  604, CPU получает сигнал относительно будущего намерения доступа для одного или для обоих из числа операндов первичного и вторичного доступа следующей последовательной команды. Следующая последовательная команда может быть представлена командой, которую выбирают и выполняют после команды NIAI. Поле I1 603 может содержать код для передачи на CPU сигнала о намерении доступа для операнда первичного доступа следующей последовательной команды. Поле I2 604 может содержать код для передачи на CPU сигнала о намерении доступа для операнда вторичного доступа следующей последовательной команды. Когда следующая последовательная команда имеет только единственный операнд памяти, поле I2 604 может быть проигнорировано.
Один вариант осуществления формата команды может включать в себя единственное поле намерения доступа. Другой вариант осуществления формата команды может включать в себя два поля намерения доступа. Другой вариант осуществления формата команды может включать в себя несколько полей намерения доступа. Еще один другой вариант осуществления формата команды может включать в себя поле или операнд, содержащий значение, задающее несколько последующих следующих последовательных команд. Поля I1 603 и I2 604 элементов управления намерения доступа могут иметь формат 610, как показано на фиг. 6B, где заданное число битов полей I1 603 и I2 604 содержат целое число без знака, используемое в качестве кода для передачи на CPU сигнала о намерении доступа для соответствующего операнда следующей последовательной команды. Согласно одному или нескольким аспектам настоящего изобретения, когда поля элемента управления намерения доступа содержат «ограниченное» значение, например, значение 4, соответствующая отсылка по операнду следующей последовательной  команды является отсылкой для общей области памяти в многопроцессорном окружении. Когда обработка операнда не может быть завершена с помощью только локальных (или приватных) уровней кеша CPU, рекомендуется осуществление CPU отсрочивания любых информационных запросов к внешней иерархии памяти до завершения обработки любых команд, предшествующих следующей последовательной команде. Выгодным образом, ограниченное значение намерения доступа для команды намерения доступа к следующей команде может быть использовано для ухода от упреждающих запросов к сильно оспариваемым по всей конфигурации местоположениям памяти, способствуя таким образом уменьшению числа ненужных операций в подсистеме памяти.
В зависимости от модели CPU, оно может не обязательно распознавать все намерения доступа для операнда. Для намерений доступа, не распознанных посредством CPU, команда может действовать как пустая команда. Пустая команда состоит в фактическом невыполнении командой какой-либо операции. Кроме того, команда намерения доступа к следующей команде может воздействовать только на доступы операндов последующих команд, и она может не воздействовать, например, на выборки последующих команд.
В одном или нескольких вариантах осуществления, ожидается, что программа может либо использовать, либо не использовать значение намерения доступа с соответствующими операндами памяти, которое может пересекать границы одной или нескольких кеш-строк.
Кроме того, когда прерывание происходит после выполнения команды намерения доступа к следующей команде, и прежде выполнения следующей последовательной команды, намерение доступа к следующей команде может действовать в качестве пустой команды, а заданное намерение доступа игнорируют.
В одном или нескольких вариантах осуществления, ограниченное значение намерения доступа может быть использовано с операндом первичного доступа, как задано полем I1. Один вариант осуществления блок-схемы согласно варианту осуществления описан с отсылками на фиг. 7. Как показано, в одном или нескольких вариантах осуществления, CPU получает команду намерения доступа, указывающую на намерение доступа 700. Намерение доступа может быть связано с операндом следующей последовательной команды. Намерение доступа может также указывать на использование операнда командой (командами), следующими за следующей последовательной командой. В этом случае, CPU выполняет команду намерения доступа 710. В одном варианте осуществления, вычислительное устройство имеет возможность сохранения в памяти намерения доступа путем сохранения его внутренним образом, например, во внутренней памяти или во внутреннем управляющем регистре. CPU получает следующую последовательную команду 720. Следующую последовательную команду выполняют, и в качестве части выполнения логикой работы вычислительного устройства управляют на основании намерения доступа команды намерения доступа 730.
В одном варианте осуществления, логикой работы вычислительного устройства управляют, как описано в настоящем документе, для избирательного подавления обработки запроса операнда памяти, когда запрос операнда памяти выявлен или идентифицирован как ограниченный программным использованием, например, командой намерения доступа. Идентификация запроса операнда памяти в качестве «ограниченного» может быть достигнута, как отмечено выше, в одном или нескольких вариантах осуществления, с применением назначенного кода намерения доступа в одном или нескольких из полей элемента управления команды намерения доступа.
Прежде всего, путем задания значения намерения доступа, указанного в настоящем документе, могут быть предоставлены упреждающие информационные запросы к иерархии памяти, внешней по отношению к локальным уровням кеша CPU, для символического адреса счётчика (который, например, является местоположением памяти для счётчика, совместно используемого несколькими CPU в конфигурации). Когда информационный запрос к иерархии памяти, внешней по отношению к локальным уровням кеша CPU, требуется для обработки счётчика, информационный запрос отсрочивают до завершения обработки команд, предшествующих связанной с запросом команды или операционной части команды. Когда число информационных запросов среди нескольких CPU для счётчика минимизировано, также минимизировано время, требуемое каждым CPU для обновления счётчика.
Согласно фиг. 8А и 8Б, обеспечение обработки в вычислительном окружении (800), согласно одному или нескольким аспектам настоящего изобретения, включает в себя: выявление того, является ли ограниченным запрос операнда памяти к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, и на основании выявления того, что запрос операнда памяти является ограниченным, временное подавление запрашивания доступа к общему местоположению памяти в соответствии с запросом операнда памяти.
Временное подавление включает в себя обработку подавления запроса операнда памяти, когда запрос операнда памяти требует доступа к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения, с целью обработки запроса операнда памяти (805). Кроме того, когда обработка выполняется вычислительным устройством, вычислительное устройство имеет возможность выявления того, попадает ли запрос операнда памяти в приватный кеш вычислительного устройства, и на основании реализации запросом операнда памяти попадания в приватный кеш, имеет возможность продолжения обработки запроса операнда памяти с помощью приватного кеша без выполнения подавления (810).
Кроме того, подавление может включать в себя обработку подавления запроса операнда памяти до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению (815). Это может включать в себя, например, размещение запроса операнда памяти в очереди запросов операнда памяти, когда запрос операнда памяти требует доступа к общему местоположению памяти, совместно используемому несколькими вычислительными устройствами вычислительного окружения (820). В качестве примера, временное подавление может включать в    себя сохранение запроса операнда памяти в очереди запросов операнда памяти  до того момента, когда команда или операционная часть команды, связанная с запросом операнда памяти, оказывается следующей к завершению (825).
В одном или нескольких вариантах осуществления, обеспечение обработки, кроме того, может включать в себя идентификацию запроса операнда памяти в качестве ограниченного (830). Идентификация может включать в себя получение вычислительным устройством команды намерения доступа, указывающей на намерение доступа, связанное с операндом следующей последовательной команды. Указатель намерения доступа может указывать на то, что использование запроса операнда памяти является ограниченным (830). Например, команда намерения доступа может быть представлена командой намерения доступа к следующей команде, и идентификация запроса операнда памяти в качестве ограниченного может включать в себя предоставление кода намерения доступа с ограничением в рамках команды намерения доступа к следующей команде (835).
В одном или нескольких вариантах осуществления, запрос операнда памяти является упреждающим запросом операнда памяти, связанным с командой или операционной частью команды (840).
Другой вариант осуществления вычислительного окружения для охвата и использования одного или нескольких аспектов описан с отсылками на фиг. 1А. В этом примере вычислительное окружение 900 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (CPU) 902, память 904, а также одно или несколько устройств ввода-вывода и/или интерфейсов 906, соединенных друг с другом, например, через одну или несколько шин 908 и/или других присоединений. Например, вычислительное окружение 900 может включать в себя процессор PowerPC или сервер pSeries, предлагаемые International Business Machines Corporation, Армонк, Нью-Йорк, HP Superdome с процессорами Intel Itanium II, предлагаемый Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектурах, предлагаемых International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими.
Предназначенное для исходной среды центральное вычислительное устройство 902 включает в себя один или несколько предназначенных для исходной среды регистров 910, таких как один или несколько регистров общего назначения и/или один или несколько регистров особого назначения, используемых в процессе обработки в окружении. Эти регистры включают в себя информацию, представляющую состояние окружения на какой-либо конкретный момент времени.
Кроме того, предназначенное для исходной среды центральное вычислительное устройство 902 выполняет команды и код, которые сохраняются в памяти 904. В одном конкретном примере центральное вычислительное устройство выполняет код 912 эмулятора, сохраняемый в памяти 904. Этот код позволяет вычислительному окружению, сконфигурированному в одной архитектуре, эмулировать другую архитектуру. Например, код 912 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы pSeries, серверы HP Superdome или другим, эмулировать z/Архитектуру и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.
Дополнительные, относящиеся к коду 912 эмулятора подробности приведены с отсылками на фиг. 9Б. Рассматривая совместно фиг. 9А и 9Б, сохраняемые в памяти 904 гостевые команды 950 содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды CPU 902. Например, гостевые команды 950 могут быть разработаны для выполнения на процессоре z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды CPU 902, которое может быть представлено, например, процессором Intel Itanium II. В одном примере, код 912 эмулятора включает в себя подпрограмму 952 выборки команд для получения одной или нескольких гостевых команд 950 из памяти 904 и, факультативно, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 954 трансляции команд для выявления типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих команд 956 исходной среды. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.
Кроме того, код 912 эмулятора включает в себя подпрограмму 960 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 960  управления эмуляцией может принудить предназначенное для исходной среды CPU 902 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращают управление подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 956 исходной среды может включать в себя загрузку данных в регистр из памяти 904, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 902. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 910 предназначенного для исходной среды CPU или при помощи местоположений в памяти 904. В вариантах осуществления гостевые команды 950, команды 956 исходной среды и код 912 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод, милликод и/или макрокод процессора. Термин включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления, встроенное программное обеспечение включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение, или микрокод, специфичный для используемого оборудования, и управляющий доступом операционной системы к оборудованию системы.
Гостевая команда 950, которую получают, транслируют и выполняют, представлена, например, одной или несколькими описанными в настоящем документе командами. Команду, которая имеет одну архитектуру (например, z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 956 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Эти команды исходной среды могут быть затем выполнены.
Хотя предоставлены различные примеры, изменения являются возможными без отступления от духа заявленных аспектов. Например, значения, включенные  в состав используемых командой регистров и/или полей, в других вариантах осуществления могут быть расположены в других местоположениях, таких как ячейки памяти, и т.д. Являются возможными самые разнообразные вариации. Один или несколько аспектов могут относиться к облачным вычислениям.
Заранее подразумевается, что хотя настоящее раскрытие включает в себя подробное описание облачных вычислений, реализация изложенных в настоящем документе идей не ограничивается окружением облачных вычислений. Скорее, варианты осуществления настоящего изобретения могут быть реализованы совместно с любым другим типом вычислительного окружения, известного в настоящее время или разработанным позднее.
Облачные вычисления являются моделью предоставления услуг для обеспечения возможности удобного, в нужный момент времени, сетевого доступа к совместно используемому комплексу конфигурируемых вычислительных ресурсов (например, сетей, сетевых пропускных способностей, серверов, вычислительных мощностей, памяти, запоминающих устройств, приложений, виртуальных машин и услуг), который может быть быстро предоставлен и передан с минимальными управленческими затратами или взаимодействием с поставщиком услуг. Эта облачная модель может включать в себя по меньшей мере пять характеристик, по меньшей мере три модели услуг и по меньшей мере четыре модели развертывания.
Характеристики представлены следующим образом. Самообслуживание в нужный момент времени: потребитель облачных услуг может в одностороннем порядке обеспечивать вычислительные возможности, такие как время сервера и ресурсы сетевого хранения, по мере необходимости автоматически, без необходимости в человеческом взаимодействии с провайдером услуги.
Широкий доступ к сети: возможности являются доступными по сети, а получение доступа производится посредством стандартных механизмов, что способствует использованию разнородных платформ тонкого или толстого клиента (например, мобильных телефонов, ноутбуков и PDA (личных электронных секретарей)). Объединение ресурса: вычислительные ресурсы провайдера объединены для обслуживания нескольких потребителей, использующих модель мультиарендатора, причем различные физические и виртуальные ресурсы динамично присваиваются и повторно присваиваются согласно потребности. Смысл независимости от местоположения состоит в том, что потребитель, в большинстве случаев, не имеет никакого контроля или знания относительно точного местоположения предоставляемых ресурсов, но может быть способным   к определению местоположения на более высоком уровне абстракции (например, страна, регион или центр обработки данных).
Быстрая адаптационная способность: инструменты могут быть предоставлены быстрым и адаптивным способом, в некоторых случаях автоматически, для быстрого горизонтального масштабирования с увеличением производительности, и быстро возвращены системе для быстрого горизонтального масштабирования с уменьшением производительности. Для потребителя, доступные к предоставлению инструменты зачастую представляются неограниченными, и могут быть приобретены в любом объеме в любое время.
Измеренная услуга: облачные системы автоматически управляют использованием ресурса и оптимизируют его путем усиления измерительного инструментария на некотором уровне абстракции, соответствующем типу услуги (например, сохранения, обработки, пропускной способности и учетным записям активного пользователя). Использование ресурсов может быть подвергнуто мониторингу, управлению и протоколированию, что обеспечивает прозрачность как для провайдера, так и для потребителя используемой услуги. Модели услуги представлены следующим образом.
Программное обеспечение как услуга (SaaS): потребителю предоставляется инструмент для использования приложений провайдера, работающих на облачной инфраструктуре. Приложения являются доступными с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, интернет-почта). Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы, запоминающие устройства или даже индивидуальные прикладные инструменты, за возможным исключением ограничений по настройке параметров конфигурации специфических для пользователя приложений.
Платформа как услуга (PaaS): потребителю  предоставляется  инструмент для развертывания на облачной инфраструктуре созданных или полученных потребителем приложений, созданных с помощью поддерживаемых провайдером языков программирования и программных средств. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы или запоминающие устройства, но управляет развертываемыми приложениями и, возможно, приложением, размещающим настройки среды.
Инфраструктура как услуга (IaaS): потребителю предоставляется инструмент для обеспечения обработки, хранения, сетей и других фундаментальных вычислительных ресурсов, с помощью которого потребитель может разворачивать и выполнять произвольное программное обеспечение, которое может включать в себя операционные системы и приложения.
Потребитель не администрирует и не управляет базовой облачной инфраструктурой, но управляет операционными системами, запоминающими устройствами, развертываемыми приложениями и,  возможно, имеет ограниченное управление выбором сетевых компонентов (например, межсетевых защитных экранов хоста).
Модели развертывания представлены следующим образом.
Частное облако: облачная инфраструктура действует исключительно для организации. Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Коллективное облако: облачную инфраструктуру совместно используют несколько организаций и поддерживает особое сообщество, которое имеет совместные интересы (например, главная цель работы, требования к защите, политика и соображения по контролю за соблюдением установленных требований). Оно может управляться посредством организации или третьей стороны, и может быть реализовано внутри или вовне организации.
Открытое облако: облачная инфраструктура сделана доступной для широкой публики или группы крупной отрасли, и принадлежит продающей облачные услуги организации.
Гибридное облако: облачная инфраструктура является сочетанием двух или более облаков (частного, коллективного или отрытого), которые остаются отличными от других объектами, но связаны друг с другом посредством стандартизированной или проприетарной технологии, обеспечивающей для данных и приложений высокую мобильность (например, временное использование ресурсов открытого облака для выравнивания нагрузки между облаками).
Облачное вычислительное окружение является услугой, ориентированной с вниманием на бесструктурность, слабую связность, модульный принцип и семантическую функциональную совместимость. В  основе  облачных вычислений находится инфраструктура, содержащая сеть из связанных узлов. Один такой узел является узлом 10, изображенным на фиг. 1.
Вычислительный узел 10 является только одним примером подходящего узла облачных вычислений, и не предназначен для предположения какого-либо ограничения относительно объема использования или функциональности вариантов осуществления описанного в настоящем документе изобретения. В любом случае, узел 10 облачных вычислений способен к своей реализации и/или к выполнению любой из сформулированных выше функциональностей.
При рассмотрении теперь фиг. 10, изображено показательное облачное вычислительное окружение 50. Как показано, облачное вычислительное окружение 50 содержит один или несколько узлов 10 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 54А, настольный компьютер 54B, портативный компьютер 54C, и/или автомобильная компьютерная система 54N. Узлы 10 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет облачному вычислительному окружению 50 предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. 7 типы вычислительных устройств 54A-N предназначены исключительно для разъяснений и, что вычислительные узлы 10 и облачное вычислительное окружение 50 являются способными к сообщению с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб-браузера).
При рассмотрении теперь фиг. 11, показан ряд функциональных уровней абстракции, предоставляемых облачным вычислительным окружением 50 (фиг. 10). Заранее подразумевается, что компоненты, уровни и функции, показанные на фиг. 11, предназначены исключительно для разъяснений, и ими не ограничены варианты осуществления изобретения. Как изображено, предоставлены следующие уровни и соответствующие функции:
Аппаратный и программный уровень 60 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают в себя мэйнфреймы 61, основанные на архитектуре RISC (Компьютер с сокращенной системой команд) серверы 62, серверы 63, сверхкомпактные серверы 64, запоминающие устройства 65, а также сети и сетевые компоненты 66. В некоторых вариантах осуществления компоненты программного обеспечения включают в себя программное обеспечение сервера сетевого приложения 67 и программное обеспечение базы данных 68.
Уровень 70 виртуализации предоставляет уровень абстракции, с которого могут быть предоставлены следующие примеры виртуальных объектов: виртуальные серверы 71, виртуальная память 72, виртуальные сети 73, включая сюда виртуальные частные сети, виртуальные приложения и операционные системы 74, а также виртуальные клиенты 75.
В одном примере, уровень 80 управления может предоставлять описанные ниже функции. Функция 81 выделения ресурсов предоставляет динамическую поставку вычислительных ресурсов и других ресурсов, использующихся для выполнения задач в облачном вычислительном окружении. Функция 82 измерения и оценки предоставляет отслеживание затрат по мере использования ресурсов в облачном вычислительном окружении, а также выписку или выставление счетов за потребление этих ресурсов. В одном примере, эти ресурсы могут содержать лицензии прикладного программного обеспечения. Функция безопасности предоставляет проверку идентификационных данных для облачных потребителей и задач, а также защиту данных и других ресурсов. Функция 83 пользовательского портала предоставляет доступ к облачному вычислительному окружению для потребителей и системных администраторов. Функция 84 управления уровнем услуг предоставляет распределение ресурсов облачных вычислений и управление ими таким образом, что удовлетворяются необходимые уровни услуг. Функция 85 планирования и выполнения Соглашения об уровне услуг (SLA) предоставляет предварительную подготовку и приобретение ресурсов облачных вычислений, для которых в будущем ожидается соответствие требованиям согласно SLA.
Уровень 90 рабочих заданий предоставляет примеры функциональности, для которой может быть использовано окружение облачных вычислений.
Примеры рабочих заданий и функций, которые могут быть предоставлены на этом уровне, включают в себя: построение соответствий и передвижение 91 между объектами в базах данных, разработку программного обеспечения и управление его жизненным циклом 92, предоставление 93 образования в виде виртуальной аудитории, обработку 94 анализа данных, а также обработку 96 транзакций.
Настоящее изобретение может быть представлено системой,  способом и/или компьютерным программным продуктом на любом возможном уровне интеграции в плане технической детализации. Компьютерный программный продукт может включать в себя машиночитаемый информационный носитель (или носители), имеющий на нем машиночитаемые программные команды для принуждения процессора к выполнению аспектов настоящего изобретения.
Машиночитаемый информационный носитель может быть представлен материальным устройством, которое способно удерживать и сохранять команды для использования посредством устройства выполнения команд. Машиночитаемый информационный носитель может быть представлен, например, в том числе, но не ограничиваясь, устройством электронной памяти, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией из вышеупомянутого. Неисчерпывающий список более конкретных примеров машиночитаемых информационных носителей включает в себя следующее: портативная компьютерная дискета, жесткий диск, оперативная память (RAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM или флэш-память), статическая оперативная память (SRAM), переносной компакт-диск для однократной записи данных (CD-ROM), цифровой универсальный диск (DVD), карта памяти, гибкий диск, механически закодированное устройство, такое как перфокарты или  выступающие структуры  в канавке с записанными на них командами, а также любая подходящая комбинация из вышеупомянутого. Машиночитаемый информационный носитель, как он рассматривается в настоящем документе, не подлежит истолкованию в качестве представленного преходящими сигналами как таковыми, такими как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другие среды передачи (например, проходящие через волоконно-оптический кабель световые импульсы), или передаваемые через провода электрические сигналы.
Описанные в настоящем документе машиночитаемые программные команды могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого информационного носителя или во внешний компьютер или во внешнее устройство хранения через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волокна оптической передачи, беспроводную передачу, маршрутизаторы, брандмауэры, переключения, шлюзы и/или граничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве получает машиночитаемые программные команды из сети, и направляет машиночитаемые программные команды для сохранения в машиночитаемый информационный носитель в соответствующем вычислительном/обрабатывающем устройстве.
Машиночитаемые программные команды для выполнения операций настоящего изобретения могут быть представлены командами ассемблера, командами архитектуры системы команд (ISA), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, присваивающими значение состоянию данными, конфигурационными данными для интегральной схемотехники, или иным исходным кодом или объектным кодом, записанным на любой комбинации из одного или нескольких языков программирования, включая сюда объектно- ориентированные языки программирования, такие как Smalltalk, C++ и т.п., а также языки процедурного программирования, такие как язык программирования «C» или подобные языки программирования.
Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя,  как автономный пакет программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть присоединен к компьютеру пользователя через любой тип сети, включая сюда локальную сеть (LAN) или глобальную сеть (WAN), или присоединение может быть сделано к внешнему компьютеру (например, через Интернет с использованием Интернет-провайдера). В некоторых вариантах осуществления, электронные схемы, включающие в  себя, например, программируемые логические схемы, программируемые на месте вентильные матрицы (FPGA) или программируемые логические матрицы (PLA) могут выполнять машиночитаемые программные команды посредством использования информации о состоянии машиночитаемых программных команд для настройки электронной схемы с целью выполнения аспектов настоящего изобретения.
Аспекты настоящего изобретения описаны в настоящем документе с отсылками на иллюстрации в виде блок-схем и/или блок-диаграмм для способов, устройств (систем) и компьютерных программных  продуктов  согласно вариантам осуществления изобретения. Подразумевается, что каждый блок иллюстраций в виде блок-схем и/или блок-диаграмм, а также комбинации блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, могут быть реализованы посредством машиночитаемых программных команд.
Такие машиночитаемые программные команды могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для образования машины таким образом, что выполняющиеся посредством процессора компьютера или другого программируемого устройства обработки данных команды создают средства для реализации функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы. Такие машиночитаемые программные команды также могут быть сохранены в машиночитаемом информационном носителе, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами для их функционирования особым способом таким образом, что сохраняющий на нем команды машиночитаемый информационный носитель представляет собой изделие, содержащее команды, которые реализуют аспекты функций/действий, заданных в блоке или блоках блок-схемы и/или блок-диаграммы.
Машиночитаемые программные команды могут также быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство для принуждения к выполнению на компьютере, другом программируемом устройстве или другом устройстве серии эксплуатационных этапов для получения такого компьютерно-реализованного процесса, что выполняемые на компьютере, другом программируемом устройстве или другом устройстве инструкции реализуют функции/действия, заданные в блоке или блоках блок-схемы и/или блок-диаграммы.
Блок-схемы и блок-диаграммы на чертежах показывают архитектуру, функциональность и функционирование возможных реализаций систем, способов и компьютерных программных продуктов согласно различным вариантам осуществления настоящего изобретения. В этом отношении, каждый блок в блок-схемах или блок-диаграммах может представлять модуль, сегмент или участок команд, который содержит одну или несколько исполняемых  команд для реализации указанной логической функции (функций). В некоторых альтернативных реализациях, указанные в блоках функции могут осуществляться в порядке, отличном от приведенного на чертежах. Например, два блока, показанные по очереди, могут, фактически, быть выполнены по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от предусмотренной к выполнению функциональности. Необходимо также отметить, что каждый блок на иллюстрациях в виде блок- схем и/или блок-диаграмм, а также в комбинациях блоков на иллюстрациях в виде блок-схем и/или блок-диаграмм, может быть реализован посредством основанных на аппаратных средствах систем особого назначения, которые выполняют указанные функции или действия или выполняют комбинации аппаратных и компьютерных команд особого назначения.
В дополнение к вышеупомянутому, один или несколько аспектов могут быть предоставлены, предложены, развернуты, управляемы, обслуживаемы и  т.д. поставщиком услуг, предлагающим управление окружениями заказчика. Например, поставщик услуг может создавать, обслуживать, поддерживать и т.д. машинный код и/или компьютерную инфраструктуру, выполняющую один или несколько аспектов для одного или нескольких клиентов. В свою очередь, поставщик услуг может получать оплату от клиента в рамках соглашения о подписке и/или о сборах, в качестве примеров. Дополнительно или альтернативно, поставщик услуг может получать оплату от продажи рекламного содержимого одному или нескольким третьим лицам.
В одном аспекте, приложение может быть развернуто для выполнения одного или нескольких предпочтительных вариантов осуществления. В качестве примера, развертывание приложения предусматривает обеспечение компьютерной инфраструктуры, действующей для выполнения одного или нескольких вариантов осуществления.
В качестве другого аспекта, может быть развернута вычислительная инфраструктура, содержащая в вычислительной системе интегрирующий машиночитаемый код, в которой код, в сочетании с вычислительной системой, способен к выполнению одного или нескольких вариантов осуществления.
В качестве еще одного аспекта, может быть предоставлен способ интеграции содержащей интегрирующий машиночитаемый код вычислительной инфраструктуры в компьютерную систему. Компьютерная система содержит машиночитаемый носитель, который компьютерный носитель содержит один или несколько вариантов осуществления. Код в сочетании с компьютерной системой способен к выполнению одного или нескольких вариантов осуществления.
Хотя различные варианты осуществления описаны выше, они являются только примерами. Например, вычислительные окружения другой архитектуры могут быть использованы для охвата и использования одного или нескольких вариантов осуществления. Кроме того, могут быть использованы различные команды, форматы команд, поля команд и/или значения команд. Являются возможными разнообразные изменения.
Кроме того, могут быть использованы и оказаться выгодными другие типы вычислительных окружений. В качестве примера, является применимой подходящая для сохранения и/или выполнения программного кода система обработки данных, которая включает в себя по меньшей мере два процессора, соединенных прямо или косвенно через системную шину с элементами памяти. Элементы памяти включают в себя, например, локальную память, используемую в процессе фактического выполнения программного кода, запоминающее устройство большого объема и кеш-память, которая предоставляет временное сохранение по меньшей мере части программного кода с целью уменьшения числа выборок из запоминающего устройства большого объема в процессе выполнения.
Устройства ввода-вывода или устройства I/O (в том числе, но не ограничиваясь, клавиатуры, дисплеи, позиционирующие устройства, DASD (запоминающее устройство прямого доступа), устройство записи на ленту, CD, DVD, карты флэш-памяти и другие носители памяти и т.д.) могут быть соединены с системой или непосредственно или через переходные контроллеры I/O. С системой также могут быть соединены сетевые адаптеры для предоставления системе обработки данных возможности установления соединения с другими системами обработки данных или с удаленными принтерами или с запоминающими устройствами посредством переходных частных сетей или сетей общего пользования. Модемы, кабельные модемы и платы Ethernet являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
Используемая в  настоящем документе терминология служит исключительно целям описания конкретных вариантов осуществления и не предназначается для ограничения изобретения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. Кроме того, подразумевается, что термины «содержит» и/или «содержащий» при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с  другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.