Средство контроля с расширенными возможностями

Иллюстрации

Показать все

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

Реферат

Предпосылки создания изобретения

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

В течение многих лет для контроля событий, происходящих при обработке данных, используются различные средства контроля. Одним из таких средств является команда вызова монитора (MC), используемая для контроля обработки в системах z/Architecture®, предлагаемых компанией International Business Machines Corporation (IBM). Команда вызова монитора позволяет программам контролировать основные области интереса, которые представлены классами контроля и масками контроля. Маски контроля позволяют управляющей программе (например, операционной системе) обеспечивать один или несколько из 16 возможных классов контроля. При выполнении команды вызова монитора, в которой указан доступный класс контроля (т.е. задан разряд маски для определенного класса), происходит прерывание программы контроля события, и управляющая программа способна регистрировать данные на основании кода контроля, указанного в команде. Когда при выполнении команды вызова монитора доступный класс контроля не соответствует заданному разряду маски контроля, команда действует как холостая команда (NOP).

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

Краткое изложение сущности изобретения

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

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

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

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

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

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

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

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

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

на фиг.3 - один из примеров управляющего регистра, используемого в соответствии с одной из особенностей настоящего изобретения,

на фиг.4 - один из примеров системы счетчиков и связанных с ней структур в соответствии с одной из особенностей настоящего изобретения;

на фиг.5А-5Б - один из примеров логической схемы в соответствии с одной из особенностей настоящего изобретения и

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

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

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

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

В качестве одного из примеров, в основе вычислительной среды 100 лежит система z/Architecture®, предлагаемая компанией International Business Machines Corporation, одним из примеров которой описан в публикации IBM № SA 22-7832-07 под названием "z/Architecture-Principles of Operation" (февраль 2009 г.), которая во всей полноте в порядке ссылки включена в настоящую заявку. Согласно этому примеру процессором 102 является сервер eServer z/Series®, предлагаемый компанией International Business Machines Corporation, при это он выполняет операционную систему, такую как операционная система z/OS®, также предлагаемую компанией International Business Machines Corporation. z/Architecture®, z/Series®, z/OS® и IBM® являются зарегистрированными товарными знаками International Business Machines Corporation (Армонк, штат Нью-Йорк, США). Названия, других продуктов используемые в заявке, могут являться зарегистрированными товарными знаками, товарными знаками или названиями продуктов International Business Machines Corporation или других компаний.

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

Далее со ссылкой на фиг.2 описан один из примеров команды вызова монитора. Согласно этому конкретному примеру команда вызова монитора входит в систему z/Architecture®, при этом особенности команды, которые существовали до создания настоящего изобретения, описаны в публикации № SA 22-7832-07 "z/Architecture-Principles of Operation" (февраль 2009 г.), которая во всей полноте в порядке ссылки включена в настоящую заявку. Помимо этого конкретного приведенного примера возможно множество разновидностей формата команды вызова монитора, которые считаются входящими в объем заявленного изобретения.

Как показано на фиг.2, согласно одному из примеров команда 200 вызова монитора содержит 8-разрядный код 202 операции (например, 'AF'), который определяет команду вызова монитора; поле 204 индекса (12), которое содержит, например, 4-разрядное двоичное число без знака, определяющее один из 16 классов контроля; и первый адрес операнда, обозначенный как В1 206 и D1 208, который образует код контроля, используемый, как описано далее. Согласно этому примеру В1 имеет длину 4 бита, а D1 имеет длину 12 бит. В1 является местоположением регистра, когда В1 не равен 0, при этом его содержимое суммируется с полем D1 для получения адреса операнда, при этом адрес операнда используется не для адресации операнда, а для обеспечения кода контроля.

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

Управляющие регистры имеют номера 0-15 и обозначены 4-разрядными полями R в командах регулирования нагрузки и управления памятью. С помощью этих команд может осуществляться обращение по адресу множества управляющих регистров. Команда регулирования нагрузки (Load Control (LCTLG)) приводит к загрузке из памяти позиций двоичных разрядов всех управляющих регистров, которые обозначены в команде для загрузки из памяти. Один из примеров управляющего регистра 8 проиллюстрирован на фиг.3.

Как показано на фиг.3, управляющий регистр 300 содержит первый набор масок 302 контроля, а также второй набор масок 304 контроля. В этом частном варианте осуществления первый набор масок контроля содержится в битах 48-63 управляющего регистра и используется в ранее существовавших средствах контроля, а также в средствах с расширенными возможностями, а второй набор масок контроля содержится в битах 16-31 и используется в средствах контроля с расширенными возможностями. Каждый набор масок содержит, например, 16 индикаторов маски (например, разрядов), соответствующих 16 классам контроля. Для каждого контролируемого класса задан его соответствующий разряд маски в первом наборе масок контроля. Например, если должны контролироваться классы 3 и 7, в первом наборе масок контроля заданы разряды 3 и 7 масок. Кроме того, каждый разряд маски во втором наборе масок контроля соответствует разряду маски в первом наборе масок контроля и задается, если должно использоваться средство контроля с расширенными возможностями. Например, если должны контролироваться классы 3 и 7, и должно использоваться средство контроля с расширенными возможностями, в первом и втором наборах масок контроля задаются разряды 3 и 7 (например, равными 1). Согласно этому примеру управляющая программа (например, операционная система) задает разряды на основании вводимых пользователем данных. Кроме того, классы являются определяемыми пользователем и могут отображать любое контролируемое событие. Они устанавливаются операционной системой. Например, может быть установлен класс для отсчета вызовов супервизора, и в этом случае операционная система присвоит конкретный номер классу вызовов супервизора. Затем команда вызова монитора внедряется в контролируемую программу вблизи вызовов супервизора, и задается поле I2 команды для контроля этого класса. Определенный класс также может быть по желанию присвоен любым другим событиям, которые могут контролироваться аналогичным образом.

Когда в ранее существовавших средствах контроля выполняется команда вызова монитора, проверяется разряд маски контроля в первом наборе масок контроля, соответствующий классу контроля, заданному в разрядах 4-7 поля 12. Если разрядом является 1, происходит прерывание программы контроля событий. Код контроля, сформированный первым адресом операнда, вводится в слово двойной длины по адресу 176 ячейки реальной памяти; содержимое поля 12 сохраняются по адресу 149 ячейки реальной памяти, при этом нулевые разряды сохраняются по адресу 148 ячейки реальной памяти; а разряд 9 кода прерывания программы приравнивается к единице.

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

Показано, что система 400 счетчиков содержит множество записей полуслов 402 и множество записей полных слов 404. Согласно одному из частных примеров, эта система имеет размер 64 байта, хранится в пространстве собственного адреса, и инициализируется операционной системой. Записи полуслов хранятся в смежных ячейках и занимают пространство памяти, эквивалентное удвоенному пределу для системы счетчиков средства контроля с расширенными возможностями (иначе называемому пределом). Записи полных слов хранятся в смежных ячейках, непосредственно следующих за записями полуслов, и занимают пространство памяти, эквивалентное учетверенному пределу.

Кроме того, согласно одному из примеров начальный адрес начальный адрес системы отображается начальным адресом 410 системы счетчиков средства контроля с расширенными возможностями, который задается операционной системой и хранится, например, в ячейке 256 реальной памяти (100 Hex). Помимо этого, в целях обработки данных, осуществляемой средством контроля с расширенными возможностями, используются дополнительные структуры, инициализируемые операционной системой, включая предел 412 для системы счетчиков средства контроля с расширенными возможностями, хранящийся в ячейке 264 реальной памяти (108 Hex), и счетчик 414 исключительных ситуаций средства контроля с расширенными возможностями, хранящийся в ячейке 268 (10 Hex).

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

Как показано на фиг.5А, сначала на шаге 500 определяют класс контроля, например, на основании команды вызова монитора, и, частности, разрядов 4-7 поля I2 команды. В частности, в поле I2 содержится 4-разрядное двоичное число без знака, которое отображает контролируемый класс и образует индекс в 16 масках контроля в разрядах 48-63 управляющего регистра 8.

Проверяется разряд маски в первом наборе масок контроля (например, в разрядах 48-63 управляющего регистра 8), указанный в поле I2. Например, если в поле I2 содержится значение 3, отображающее класс 3, проверятся разряд 3 маски в первом наборе масок. Если на шаге 502 запроса определено, что его значение отличается от единицы, затем на шаге 504 команда действует как холостая команда и завершается. Тем не менее, если заданный разряд маски (в первом наборе масок контроля) равен единице, обработка продолжается, и на шаге 506 запроса определяется, установлено ли средство контроля с расширенными возможностями. Это может делаться путем проверки индикатора или в неявной форме. Если средство контроля с расширенными возможностями не установлено, на шаге 508 осуществляется прерывание. Так, согласно этому примеру, в слово двойной длины в ячейке 176 реальной памяти вводится код контроля, сформированный первым адресом операнда (например, D1(B1)); содержимое поля 12 сохраняется в ячейке 149 реальной памяти, при этом нулевые разряды сохраняются в ячейки 148 реальной памяти, а разряд 9 кода прерывания программы приравнивается к единице.

Однако, если на шаге 506 запроса определено, что средство контроля с расширенными возможностями установлено, на шаге 510 запроса дополнительно определяется, равен ли единице соответствующий разряд маски во втором наборе масок контроля (например разрядах 16-31 CR 8). Например, если проверяется разряд 3 маски в первом наборе масок контроля, затем проверяется разряд 3 маски во втором наборе масок контроля. Если во втором наборе масок контроля не установлен заданный разряд маски (например, равен нулю), осуществляется прерывание, и на шаге 508 продолжается обработка, как описано выше. В противном случае осуществляется операция подсчета контролируемых событий следующим образом.

Сначала на шаге 512 задается код контроля для первого адреса D1 (B1) операнда, а затем на шаге 514 запроса (фиг.5Б) определяется, превышает ли или равен ли код контроля пределу для системы счетчиков средства контроля с расширенными возможностями. В частности, согласно одному из примеров размер системы счетчиков средства контроля с расширенными возможностями (или предел), указанный в слове в ячейке 264 реальной памяти, продленный влево на 32 двоичных нуля, логическим путем сравнивается с кодом контроля, сформированным первым адресом операнда. Если на шаге 514 запроса определено, что код контроля превышает или равен пределу для системы счетчиков средства контроля с расширенными возможностями, на шаге 516 к показанию счетчика исключительных ситуаций средства контроля с расширенными возможностями, содержащегося в слове в ячейки 268 реальной памяти, логическим путем прибавляется единица, и на шаге 518 выполняется команда. При этом не учитывается любой перенос в результате этого прибавления.

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

Начальный адрес системы счетчиков средства контроля с расширенными возможностями в разрядах 0-60 слова двойной длины в ячейке 256 реальной памяти с тремя присоединенными к нему справа двоичными нулями образует 64-разрядный виртуальный адрес системы счетчиков средства контроля с расширенными возможностями в пространстве собственного адреса. В поле размера системы счетчиков средства контроля с расширенными возможностями в ячейке 264 реальной памяти задано число записей полуслов и слов в системе; сначала в системе отображаются записи полуслов, а непосредственно после них записи слов.

Умноженный на два код контроля прибавляется к начальному адресу системы счетчиков средства контроля с расширенными возможностями, в результате чего формируется виртуальный адрес полуслова, который на шаге 520 используется как указатель желаемой записи полуслова. Затем на шаге 522 к содержимому записи полуслова, заданного указателем полуслова, логическим путем прибавляется единица. Если на шаге 524 запроса определено, что в результате этого прибавления происходит перенос нулевого разряда полуслова, к соответствующему слову логическим путем прибавляется единица. Иными словами, к умноженному на четыре коду контроля прибавляется умноженный на два размер системы счетчиков средства контроля с расширенными возможностями; полученная на шаге 526 величина прибавляется к начальному адресу системы счетчиков средства контроля с расширенными возможностями с целью формирования адреса слова, который используется как указатель записи слова, соответствующей записи полуслова. Затем на шаге 528 к содержимому записи слова, заданного указателем слова, логическим путем прибавляется единица. На этом обработка завершается.

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

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

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

Может использоваться любое сочетание одной или нескольких машиночитаемых сред. Машиночитаемой средой может являться машиночитаемая запоминающая среда. Машиночитаемой запоминающей средой может являться, например, без ограничения, электронная, магнитная, оптическая или полупроводниковая система, аппаратура или устройство или любое применимое сочетание перечисленного. Более конкретные примеры (не исчерпывающий перечень) машиночитаемой запоминающей среды включают следующее: электрическое соединение, содержащее один или несколько проводов, портативный компьютерный диск, жесткий диск, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), стираемое программируемое постоянное запоминающее устройство (СППЗУ или флэш-память), оптическое волокно, портативное постоянное запоминающее устройство на компакт-диске (CD-ROM), оптическое запоминающее устройство, магнитное запоминающее устройство или любое применимое сочетание перечисленного. В контексте настоящего изобретения машиночитаемой запоминающей средой может являться любая материальная среда, в которой содержится или хранится какая-либо программа, которая используется или связана с системой, аппаратурой или устройством выполнения команд.

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

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

Компьютерный программный код для выполнения операций согласно особенностям настоящего изобретения может быть записан на одном или нескольких языках программирования в любом сочетании, включая объектно-ориентированный язык программирования, такой как Java, Smalltalk, C++ и т.п., и традиционных процедурных языках программирования, таких как язык программирования "C" или аналогичные языки программирования. Программный код может целиком выполняться в пользовательском компьютере, частично в пользовательском компьютере, в качестве автономного пакета программного обеспечения, частично в пользовательском компьютере и частично в удаленном компьютере или целиком в удаленном компьютере или сервере. В случае последнего сценария удаленный компьютер может быть соединен с пользовательским компьютером посредством сети любого типа, включая локальную вычислительную сеть (ЛВС) или глобальную вычислительную сеть (ГВС), или может быть установлено соединение с внешним компьютером (например, по сети Интернет с использованием поставщика услуг Интернет).

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

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

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

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

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

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

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

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

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

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

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

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

С системой посредством промежуточных контроллеров ввода-вывода могут быть прямо или косвенно связаны устройства ввода-вывода (включая без ограничения, клавиатуры, дисплеи, координатно-указательные устройства, ЗУПД, накопители на магнитной ленте, на компакт-дисках, на многоцелевых компакт-дисках, портативные м