КОМАНДА С НЕПОСРЕДСТВЕННЫМ АДРЕСОМ ДЛЯ ЗАГРУЗКИ ДЕСЯТИЧНОГО ЧИСЛА
COMMAND WITH IMMEDIATE ADDRESS TO LOAD DECIMAL NUMBER

Уровень техники
Один или несколько аспектов относятся, в общем, к обработке в вычислительной среде, и прежде всего к обеспечению такой обработки.
Выполняемые в пределах процессора вычислительной среды приложения управляют логикой работы процессора. Приложения созданы с использованием языков программирования, разработанных для сообщения команд процессору.
Существуют различные типы языков программирования, и каждый язык может использовать один или несколько типов кодировок для представления данных. Например, COBOL и языки программирования PL/I используют для кодирования десятичных чисел двоично-кодированное десятичное число (BCD). С помощью кодировок BCD каждый десятичный разряд представлен постоянным числом битов, таким как, например, 4 бита.
Десятичные числа могут содержать до 31 разряда, а также знаковый разряд. Это соответствует 16-байтовому значению в памяти. Многие вычисления выполняют с помощью малых констант. Для загрузки константы в регистр, ее загружают из памяти. Такой процесс имеет последствиями запаздывание команды, использование пропускной способности памяти, а также увеличение размеров данных в пределах исполняемых двоичных кодов.
Сущность изобретения
Недостатки известного уровня техники преодолены, а дополнительные преимущества обеспечены в компьютерной системе для генерации числа в имеющем знак упакованном десятичном формате, содержащей память и взаимодействующий с памятью процессор. Предлагаемая в изобретении компьютерная система выполнена для осуществления способа, включающего: получение команды для выполнения, представляющей собой команду загрузки десятичного числа с непосредственной адресацией для генерации числа в имеющем знак упакованном десятичном формате для использования при обработке в вычислительной среде, причем с командой взаимосвязан элемент управления по знаку, который подлежит использованию для предоставления знака числа в имеющем знак упакованном десятичном формате, которое подлежит генерации посредством команды; и выполнение команды, включающее: получение элемента управления по знаку; получение от поля команды двоично-кодированного десятичного входного значения; проверку допустимости двоично-кодированного десятичного входного значения; выполняемый на основании результата проверки, указывающего на допустимость двоично-кодированного десятичного входного значения, сдвиг предоставленного командой двоично-кодированного десятичного входного значения в заданном направлении на выбранную величину для предоставления результата; размещение результата в первом обозначенном местоположении в регистре; и включение знака, основанного на элементе управления по знаку, во второе обозначенное местоположение регистра, причем результат и знак предоставляют число в имеющем знак упакованном десятичном формате, которое подлежит использованию при обработке в вычислительной среде.
Объектом изобретения является также компьютерно-реализуемый способ генерации числа в имеющем знак упакованном десятичном формате, охарактеризованный выше.
При осуществлении изобретения соответствующий способ может включать, например, получение команды для выполнения, причем команда генерирует значение для использования при обработке в вычислительной среде, причем с командой взаимосвязан элемент управления по знаку, который подлежит использованию для предоставления знака значения, которое подлежит генерации посредством команды. Команда выполняется, и выполнение включает в себя получение элемента управления по знаку, сдвиг предоставленного командой входного значения в заданном направлении на выбранную величину для предоставления результата, размещение результата в первом обозначенном местоположении в регистре, и включение знака, основанного на элементе управления по знаку, во второе обозначенное местоположение регистра, причем результат и знак предоставляют имеющее знак значение, которое подлежит использованию при обработке в вычислительной среде.
При помощи команды на генерацию таких значений как константы, значения генерируют без загрузки значений из памяти. За счет этого обеспечена обработка, и работа в вычислительной среде улучшена. Запаздывание команды
уменьшено, уменьшено также использование пропускной способности памяти, и/или уменьшены размеры данных в пределах исполняемых двоичных кодов.
В одном варианте осуществления получение элемента управления по знаку включает в себя получение элемента управления по знаку от поля команды, причем знак, основанный на имеющим первое значение элементе управления по знаку, является положительным, а знак, основанный на имеющим второе значение элементе управления по знаку, является отрицательным.
Кроме того, в одном варианте осуществления выполнение включает в себя получение от поля команды выбранной величины.
В одном из вариантов заданное направление является левым. Кроме того, первое обозначенное местоположение является местоположением в регистре абсолютной величины имеющего знак упакованного десятичного формата.
Кроме того, регистр может быть задан с помощью по меньшей мере одного поля команды. В качестве примера, по меньшей мере одно поле включает в себя поле регистра, задающее номер регистра, а также поле расширения, задающее значение расширения, которое подлежит добавлению к номеру регистра.
В качестве одного из вариантов осуществления, размещение результата, кроме того, включает в себя размещение нолей в третьем обозначенном местоположении в регистре. Третье обозначенное местоположение включает в себя, например, одно или несколько крайних левых положений регистра.
Относящиеся к одному или нескольким вариантам осуществления способы и системы также описаны и заявлены в настоящем документе. Кроме того, относящиеся к одному или нескольким вариантам осуществления услуги также описаны и могут быть заявлены в настоящем документе.
Посредством методов настоящего изобретения осуществляются дополнительные признаки и преимущества. Другие варианты осуществления и аспекты подробно описаны в настоящем документе и считаются частью заявленных аспектов.
Краткое описание чертежей
Предпочтительные варианты изобретения описаны исключительно в качестве примера, и с отсылками на следующие чертежи:
Фиг. 1А изображает один пример вычислительной среды для охвата и использования одного или нескольких вариантов осуществления настоящего изобретения,
Фиг. 1Б изображает дополнительные подробности процессора на фиг. 1А согласно варианту осуществления настоящего изобретения,
Фиг. 2А изображает другой пример вычислительной среды для охвата и использования одного или нескольких вариантов осуществления настоящего изобретения,
Фиг. 2Б изображает, согласно варианту осуществления настоящего изобретения, дополнительные подробности памяти на фиг. 2А,
Фиг. 3А изображает один пример команды векторной загрузки десятичного числа с непосредственной адресацией согласно варианту осуществления настоящего изобретения,
Фиг. 3Б изображает управляющие элементы поля непосредственной адресации в составе команды векторной загрузки десятичного числа с непосредственной адресацией на фиг. 3А согласно варианту осуществления настоящего изобретения,
Фиг. 4 изображает один пример блок-схемы выполнения команды векторной загрузки десятичного числа с непосредственной адресацией согласно варианту осуществления настоящего изобретения,
Фиг. 5A-5Б изображают один пример обработки, связанной с командой векторной загрузки десятичного числа с непосредственной адресацией согласно варианту осуществления настоящего изобретения,
Фиг. 6 изображает один вариант осуществления облачной вычислительной среды, и
Фиг. 7 изображает один пример уровней модельной абстракции.
Подробное описание
Один или несколько вариантов осуществления относятся к обеспечению обработки в вычислительной среде путем обеспечения возможности генерации значений (например, констант, таких как имеющие знак упакованные десятичные числа) без загрузки значений из памяти. В одном примере инструмент включает в себя используемую для генерации значений команду (например, архитектурно спроектированную машинную команду), упоминаемую в настоящем документе как команда векторной загрузки десятичного числа с непосредственной адресацией. Команда включает в себя, например, элемент управления по знаку, используемый для предоставления знака для сгенерированного командой значения. Команда генерирует значения (например,
константы, такие как имеющие знак упакованные десятичные числа) без загрузки значений из памяти, уменьшая тем самым запаздывание команды и улучшая производительность компьютера, уменьшая использование пропускной способности памяти и/или уменьшая размеры данных в пределах исполняемых двоичных кодов.
Один пример вычислительной среды для охвата и использования одного или нескольких вариантов осуществления настоящего изобретения описан с отсылками на фиг. 1А. В одном примере вычислительная среда основана на Z/Архитектуре, предлагаемой International Business Machines Corporation, Армонк, Нью -Йорк. Один вариант осуществления Z/Архитектуры описан в публикации IBM под названием «z/Архитектура, принципы работы» (z/Architecture, Principles of Operation), публикация IBM № SA22-7832-10, март 2015, включенной в настоящий документ путем отсылки в полном объеме. z/Архитектура является зарегистрированной торговой маркой 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 является зарегистрированной торговой маркой 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 включает в себя несколько используемых для выполнения команд функциональных компонентов. Как изображено на фиг. 1Б, эти функциональные компоненты включают в себя, например, компонент 120 выборки команды для выборки подлежащих выполнению команд, устройство 122 декодирования команд для декодирования выбранных команд и для получения операндов декодированных команд, компонент 124 выполнения команд для выполнения декодированных команд, компонент 126 доступа к памяти для доступа, в случае необходимости, к памяти для выполнения команд, и компонент 130 перезаписи для предоставления результатов выполненных команд. Один или несколько из этих компонентов, согласно варианту осуществления настоящего изобретения, может быть использован для генерации значений (например, констант) 136, как дополнительно описано ниже.
В одном варианте осуществления процессор 16 также включает в себя один или несколько регистров 140 для использования посредством одного или нескольких из числа функциональных компонентов.
Другой пример вычислительной среды для охвата и использования одного или нескольких вариантов осуществления описан с отсылками на фиг. 2А. В этом примере вычислительная среда 200 включает в себя, например, предназначенное для исходной среды центральное вычислительное устройство (CPU) 202, память 204, а также одно или несколько устройств и/или интерфейсов 206 ввода-вывода, соединенных друг с другом, например, через одну или несколько шин 208 и/или других присоединений. Например, вычислительная среда 200 может включать в себя процессор PowerPC или сервер pSeries, предлагаемые International Business Machines Corporation, Армонк, Нью -Йорк,
HP Superdome с процессорами Intel Itanium II, предлагаемый Hewlett Packard, Пало-Альто, Калифорния, и/или другие машины, основанные на архитектурах, предлагаемых International Business Machines Corporation, Hewlett Packard, Intel, Oracle или другими.
Предназначенное для исходной среды центральное вычислительное устройство 202 включает в себя один или несколько предназначенных для исходной среды регистров 210, таких как один или несколько регистров общего назначения и/или один или несколько регистров особого назначения, используемых в процессе обработки в пределах среды. Эти регистры включают в себя информацию, представляющую состояние среды на какой-либо конкретный момент времени.
Кроме того, предназначенное для исходной среды центральное вычислительное устройство 202 выполняет команды и код, которые сохраняются в памяти 204. В одном конкретном примере центральное вычислительное устройство выполняет код 212 эмулятора, сохраняемый в памяти 204. Этот код позволяет вычислительной среде, сконфигурированной в одной архитектуре, эмулировать другую архитектуру. Например, код 212 эмулятора позволяет основанным на отличных от z/Архитектуры архитектурах машинам, таким как процессоры PowerPC, серверы pSeries, серверы HP Superdome или другие, эмулировать z/Архитектуру и выполнять программное обеспечение и команды, разработанные на основе z/Архитектуры.
Дополнительные, относящиеся к коду 212 эмулятора подробности приведены с отсылками на фиг. 2Б. Сохраняемые в памяти 204 гостевые команды 250 содержат команды программного обеспечения (например, коррелирующие с машинными командами), которые были разработаны для выполнения в архитектуре, отличной от таковой для предназначенного для исходной среды CPU 202. Например, гостевые команды 250 могут быть разработаны для выполнения на процессоре z/Архитектуры, но вместо этого, эмулируются на предназначенном для исходной среды CPU 202, которое может быть представлено, например, процессором Intel Itanium II. В одном примере код 212 эмулятора включает в себя подпрограмму 252 выборки команд для получения одной или нескольких гостевых команд 250 из памяти 204 и, факультативно, для предоставления локальной буферизации для полученных команд. Он также включает в себя подпрограмму 254 трансляции команд для выявления типа полученной гостевой команды и для трансляции гостевой команды в одну или несколько соответствующих собственных команд 256. Такая трансляция включает в себя, например, идентификацию функции, которая подлежит выполнению посредством гостевой команды, и выбор предназначенной для исходной среды команды (команд) для выполнения этой функции.
Кроме того, код 212 эмулятора включает в себя подпрограмму 260 управления эмуляцией для принуждения команд исходной среды к выполнению. Подпрограмма 260 управления эмуляцией имеет возможность принуждения предназначенного для исходной среды CPU 202 к выполнению подпрограммы команд исходной среды, которые эмулируют одну или несколько ранее полученных гостевых команд и, в конце такого выполнения, возвращения управления подпрограмме выборки команд для эмуляции получения следующей гостевой команды или группы гостевых команд. Выполнение команд 256 исходной среды может включать в себя загрузку данных в регистр из памяти 204, сохранение данных обратно в память из регистра, или выполнение арифметической или логической операции некоторого типа, как задано подпрограммой трансляции.
Каждая подпрограмма, например, реализуется в программном обеспечении, сохраняемом в памяти и выполняемом посредством предназначенного для исходной среды центрального вычислительного устройства 202. В других примерах, одна или несколько из числа подпрограмм или операций, реализуются во встроенном программном обеспечении, аппаратных средствах, программном обеспечении или в некоторой комбинации из этих средств. Регистры эмулированного процессора могут быть эмулированы с помощью регистров 210 предназначенного для исходной среды CPU или при помощи местоположений в памяти 204. В предпочтительных вариантах осуществления гостевые команды 250, команды 256 исходной среды и код 212 эмулятора могут находиться в той же самой памяти или могут быть рассредоточены среди различных запоминающих устройств.
При рассмотрении в настоящем документе, встроенное программное обеспечение включает в себя, например, микрокод, милликод и/или макрокод процессора. Оно включает в себя, например, команды аппаратного уровня и/или структуры данных, используемые в реализации высокоуровневого машинного кода. В одном варианте осуществления оно включает в себя, например, проприетарный код, обычно поставляемый как микрокод, который включает в себя выверенное программное обеспечение или микрокод, специфичный для используемого оборудования и управляющий доступом операционной системы к оборудованию системы.
Гостевая команда 250, которую получают, транслируют и выполняют, представлена, например, описанной в настоящем документе командой векторной загрузки десятичного числа с непосредственной адресацией. Команду, которая имеет одну архитектуру (например, Z/Архитектуру), выбирают из памяти, транслируют и представляют в виде последовательности команд 256 исходной среды другой архитектуры (например, PowerPC, pSeries, Intel и т.д.). Такие команды исходной среды затем выполняют.
В настоящем документе описаны подробности, относящиеся к одному варианту осуществления команды векторной загрузки десятичного числа с непосредственной адресацией, включая поля команды и выполнение ее процессором (как в предназначенной для исходной среды, так и в эмулированной системе). Согласно варианту осуществления настоящего изобретения, команду векторной загрузки десятичного числа с непосредственной адресацией используют для генерации значений (например, констант) без загрузки значений из памяти. Это улучшает производительность компьютера за счет уменьшения запаздывания команды вследствие устранения доступов к памяти для получения констант, уменьшает использование пропускной способности памяти, а также уменьшает размеры данных в пределах исполняемых двоичных кодов. Тем самым, варианты осуществления изобретения неразрывно связаны с компьютерной технологией и с улучшением обработки компьютером.
В одном варианте осуществления команда векторного умножения и сдвига десятичного числа является частью векторного средства, поставляющего, например, векторы постоянного размера в пределах от одного до шестнадцати элементов. Каждый вектор включает в себя данные, на которые воздействуют заданные в функции векторные команды. В одном варианте осуществления когда вектор составлен из множественных элементов, каждый элемент подвергается обработке параллельно с другими элементами. Завершения выполнения команды не происходит до завершения обработки всех элементов. В других вариантах осуществления элементы подвергают обработке частично параллельным и/или последовательным образом.
Векторные команды могут быть реализованы как части различных архитектур, в том числе, но не ограничиваясь, Z/Архитектуры, Архитектуры Power, x86, IA-32, IA-64 и т.д. Хотя в настоящем документе описаны варианты осуществления для Z/Архитектуры, описанная в настоящем документе векторная команда, а также один или несколько других аспектов могут быть основаны на многих других архитектурах. Z/Архитектура является только одним из примеров.
В одном варианте осуществления, в котором векторное средство реализовано как часть Z/Архитектуры, для использования векторных регистров и команд, управляющему элементу по активации векторных команд и управляющему элементу для регистров в заданном управляющем регистре (например, управляющем регистре 0) задают значения, например, единица. Если векторное средство инсталлировано, а векторная команда выполняется без задания значения управляющим элементам по активации, распознается исключение данных. Если векторное средство не инсталлировано, а векторная команда выполняется, распознается исключение операции.
В одном варианте осуществления имеются 32 векторных регистра, а для других типов регистров может быть построено соответствие на сектор векторных регистров. Например, регистровый файл может включать в себя 32
векторных регистра, а каждый регистр имеет длину в 128 битов. Шестнадцать регистров с плавающей точкой, которые имеют длину в 64 бита, могут перекрывать векторные регистры. Таким образом, в качестве примера, когда регистр 2 с плавающей точкой изменяют, векторный регистр 2 также подвергается изменению. Другие построения соответствий для других типов регистров также являются возможными.
Векторные данные представлены в памяти, например, в той же последовательности слева направо, что и другие форматы данных. Биты формата данных, пронумерованные 0-7, составляют байт в крайнем левом местоположении байта (с самым малым номером) в памяти, биты 8 -15 формируют байт в следующем последовательном местоположении, и так далее.
В другом примере, векторные данные могут быть представлены в памяти в другой последовательности, такой как справа налево.
Один пример команды векторной загрузки десятичного числа с непосредственной адресацией описан с отсылками на фиг. 3A-3Б. Как показано, команда имеет несколько полей, причем поле может иметь связанный с ним нижний индекс. Связанный с полем команды нижний индекс обозначает операнд, к которому применяют поле. Например, связанный с векторным регистром V1 нижний индекс 1 обозначает, что регистр в V1 включает в себя первый операнд и т.д. Операнд регистра имеет длину в один регистр, которая составляет, например, 128 битов.
Как показано на фиг. 3А, в одном варианте осуществления команда 300 векторной загрузки десятичного числа с непосредственной адресацией включает в себя поля 302a, 302b кода операции, указывающие на операцию векторной загрузки десятичного числа с непосредственной адресацией (OPCODE), поле 304 векторного регистра, используемое для обозначения векторного регистра (V1), первое поле (I2) 306 непосредственной адресации, второе поле (I3) 308 непосредственной адресации, и поле 310 бита (RXB) расширения регистра, каждое из которых описано ниже. В одном варианте осуществления поля являются отдельными и независимыми друг от друга, однако, в других вариантах осуществления, поля в числе более одного могут быть объединены друг с другом. Дополнительная информация относительно этих полей приведена ниже.
Поле 304 векторного регистра используют для указания на векторный регистр, который должен сохранять первый операнд, причем первый операнд является значением, таким как константа, в имеющем знак упакованном десятичном формате. В одном примере поле 304 векторного регистра используют с полем 310 RXB для обозначения векторного регистра.
Например, поле 310 RXB включает в себя самый старший бит назначенного для векторного регистра операнда. Биты для обозначений регистров, которые не заданы посредством команды, должны быть зарезервированы, и им должно быть задано нулевое значение. Самый старший бит объединяют в цепочку, например, слева от четырехбитового обозначения регистра в составе поля векторного регистра, для создания пятиразрядного обозначения векторного регистра.
В одном примере поле RXB включает в себя четыре бита (например, биты 0-3), причем биты заданы следующим образом.
- Самый старший бит для обозначения первого векторного регистра (например, в битах 8-11) в составе команды.
- Самый старший бит для обозначения второго векторного регистра (например, в битах 12 -15) в составе команды, если вообще есть в наличии.
- Самый старший бит для обозначения третьего векторного регистра (например, в битах 16 -19) в составе команды, если вообще есть в наличии.
- Самый старший бит для обозначения четвертого векторного регистра (например, в битах 32-35) в составе команды, если вообще есть в наличии.
Каждому биту задано нулевое или единичное значение, например, код ассемблера в зависимости от номера регистра. Например, для регистров 0-15 биту задано значение 0, для регистров 16-31 биту задано значение 1 и т.д.
В одном варианте осуществления каждый RXB бит является битом расширения для конкретного местоположения в команде, которое включает в себя один или несколько векторных регистров. Например, бит 0 из RXB является битом расширения для местоположения 8 -11, которое приписано, например, V1 и т.д. Прежде всего, для векторных регистров содержащий операнд регистр задан с помощью, например, четырехбитового поля в составе поля регистра с добавлением соответствующего ему бита (RXB) расширения регистра в качестве самого старшего бита. Например, когда четырехбитовым полем является 0110, а битом расширения является 0, то пять битовых полей 00110 указывают на номер регистра 6. В другом варианте осуществления, поле RXB включает в себя биты расширения, и большее единицы число битов используют в качестве расширения для каждого вектора или местоположения.
Поле 306 I2 включает в себя второй операнд, имеющий, например, несколько десятичных разрядов (например, 4). Кроме того, поле 308 13 включает в себя третий операнд, включающий в себя несколько управляющих элементов. Например, поле 308 I3 включает в себя следующие элементы, как показано на фиг. 3Б:
Элемент 320 управления по знаку (SC): Когда бит 0 из поля 308 I3 представлен нолем, результат является положительным с кодом знака 1100. Когда бит 0 из поля 308 I3 представлен единицей, результат является отрицательным с кодом знака 1101.
Величина сдвига (SHAMT) 330: Биты 1 -3 из поля 308 I3 задают двоичное число без знака на три бита, задающее число разрядов, на которое должен быть сдвинут второй операнд в заданном направлении (например, влево).
Хотя описаны различные поля и регистры, один или несколько вариантов осуществления настоящего изобретения могут использовать другие, дополнительные поля или регистры, или меньшее их число, или другие размеры полей или регистров и т.д. Являются возможными разнообразные изменения. Например, вместо заданных в явном виде регистров или полей команды могут быть использованы неявно задаваемые регистры. Кроме того, могут быть использованы регистры, отличные от векторных регистров. Опять -таки, другие изменения также являются возможными.
При функционировании команды эти четыре десятичных разряда (например, разряды двоично-кодированного десятичного числа (BCD)) второго операнда, сдвинутые влево на заданное число разрядов, и объединенные справа в цепочку с заданным знаком, формируют имеющее знак упакованное число десятичного формата, размещенное в первом местоположении операнда.
В одном примере в имеющем знак упакованном десятичном формате, каждый байт содержит два десятичных разряда (D), за исключением самого правого байта, содержащего знак (S), справа от десятичного разряда.
Десятичные арифметические операции выполняют с помощью операндов, а результаты генерируют в имеющем знак упакованном десятичном формате.
Имеющие знак упакованные десятичные операнды и результаты выполнения команд десятичной арифметики могут составлять, например, 16 байтов (31 разряд и знак). Команды редактирования могут выбирать до 256 десятичных разряд из одного или нескольких десятичных чисел переменной длины, каждое из которых представлено в имеющем знак упакованном десятичном формате.
Дополнительные подробности относительно функционирования команды описаны с отсылками на фиг. 4. В одном из вариантов логику на фиг. 4 выполняют посредством процессора.
Как показано на фиг. 4, первоначально, эти четыре десятичных разряда (например, разряды BCD) второго операнда, упомянутого здесь как входное значение, получают на ЭТАПЕ 400. В одном примере разряды второго операнда проверяют на допустимость, ИНФОРМАЦИОННЫЙ ЗАПРОС 402. Если один или несколько разрядов являются недопустимыми, обработку завершают, и может быть обозначена, например, ошибка. Однако если разряды второго операнда являются допустимыми, обработку продолжают получением величины сдвига 330, а также элемента 320 управления по знаку, предоставляемого третьим операндом команды (I3 308), ЭТАП 404. Четырехразрядный второй операнд сдвигают в заданном направлении (например, влево) на число разрядных позиций, заданное посредством величины сдвига (SHAMT) управляющего элемента 330, заданной в 13 308 для получения результата, ЭТАП 406. Для освобожденных разрядных позиций предоставляются ноли.
В другом варианте осуществления сдвиг может быть произведен вправо, и/или направление сдвига может быть выбрано под управлением команды. Другие изменения также являются возможными.
Результат (например, переставленное значение) размещают в первом операнде в первом обозначенном местоположении, ЭТАП 408. Например, результат размещают в поле абсолютной величины имеющего знак упакованного десятичного формата первого операнда. Кроме того, ноли размещают в выбранных остаточных местоположениях первого операнда, таких как остаточные крайние левые разряды, ЭТАП 410. Кроме того, код знака результата размещают во втором обозначенном местоположении первого операнда, ЭТАП 412. В качестве примера, код знака результата задан посредством элемента 320 управления по знаку в составе поля I3, и размещают в первом операнде в нии справа. Таким образом, первый операнд включает в себя четыре десятичных разряда второго операнда, сдвинутые влево на заданное число разрядов и снабженные знаком, который объединен в цепочку справа.
Как описано в настоящем документе, предоставлена команда, которая принимает несколько разрядов BCD (например, 4) и сдвигает их для создания числа с размерностью до 31 разряда. Знаковым разрядом управляет единственный бит, указывающий на положительное или отрицательное значение. Такие решения обеспечивают возможность создания широкого спектра констант (например, в имеющем знак упакованном десятичном формате) без необходимости в загрузке их из памяти. Поскольку, фиксированная точка в числах BCD может пребывать в любой позиции, константа оказывается переставленной к надлежащему местоположению. Получающееся имеющее знак значение (например, константа) может быть использовано при обработке в рамках вычислительной среды, включая вычисления, используемые для многих приложений.
Более подробная информация, относящаяся к выполнению команды для генерации значения, которое подлежит использованию при обработке в вычислительной среде, описана с отсылками на фиг. 5A-5Б.
Как показано на фиг. 5А, первоначально получается для выполнения команда, ЭТАП 500. Команда предназначена для генерации значения (например, константы в имеющем знак упакованном десятичном формате) для использования при обработке в вычислительной среде, и она имеет связанный с ней элемент управления по знаку, который подлежит использованию для предоставления знака подлежащего генерации посредством команды значения. Команда выполняется, ЭТАП 502. Выполнение включает в себя, например, получение элемента управления по знаку, ЭТАП 504, и сдвиг предоставленного командой входного значения в заданном направлении (например, влево) на выбранную величину для предоставления результата, ЭТАП 506. Кроме того, выполнение включает в себя размещение результата в первом обозначенном местоположении в регистре, ЭТАП 508, и включение знака, основанного на элементе управления по знаку, во второе обозначенное местоположение регистра, причем результат и знак предоставляют имеющее знак значение, которое подлежит использованию при обработке в вычислительной среде, ЭТАП 510.
В качестве примера, получение элемента управления по знаку включает в себя получение элемента управления по знаку от поля команды, ЭТАП 512, причем на основании элемента управления по знаку, являющегося первым значением, знак является положительным, а на основании элемента управления по знаку, являющегося вторым значением, знак является отрицательным.
В одном варианте осуществления выполнение, кроме того, включает в себя получение входного значения от поля команды, ЭТАП 514, проверку допустимости входного значения, ЭТАП 516, и выполнение сдвига на основании проверки, указывающей на допустимость входного значения, ЭТАП 518. В еще одном другом варианте осуществления, выполнение, кроме того, включает в себя получение выбранной величины от поля команды, ЭТАП 520.
Например, первое обозначенное местоположение является местоположением абсолютной величины имеющего знак упакованного десятичного формата в регистре 530 (фиг. 5Б), регистр задан с помощью по меньшей мере одного поля 532 команды, и по меньшей мере одно поле включает в себя поле регистра, задающее номер регистра, а также поле расширения, задающее значение расширения, которое подлежит добавлению к номеру 534 регистра.
В одном варианте осуществления размещение результата, кроме того, включает в себя размещение нолей в третьем обозначенном местоположении в регистре, третье обозначенное местоположение включает в себя одно или несколько крайних левых положений регистра, ЭТАП 536.
В настоящем документе описана функция для использования, например, архитектурно спроектированной команды для генерации значения (например, константы), без загрузки значения из памяти, с целью улучшения компьютерной обработки и производительности. Хотя предоставлены различные примеры, изменения являются возможными без отступления от духа заявленных аспектов.
Одни или несколько аспектов могут относиться к облачным вычислениям.
Заранее подразумевается, что, хотя настоящее раскрытие включает в себя подробное описание относительно облачных вычислений, реализация описанных в настоящем документе идей изобретения не ограничена облачной вычислительной средой. Наоборот, варианты осуществления настоящего изобретения могут быть реализованы совместно с любым другим типом вычислительной среды, известной в настоящее время или разработанной позднее.
Облачные вычисления являются моделью предоставления услуг для обеспечения возможности удобного, в нужный момент времени, сетевого доступа к совместно используемому комплексу конфигурируемых вычислительных ресурсов (например, сетей, сетевых пропускных способностей, серверов, вычислительных мощностей, памяти, запоминающих устройств, приложений, виртуальных машин и услуг), который может быть быстро предоставлен и передан с минимальными управленческими затратами или взаимодействием с поставщиком услуг. Эта облачная модель может включать в себя по меньшей мере пять характеристик, по меньшей мере три модели услуг и по меньшей мере четыре модели развертывания.
Характеристики представлены следующим образом.
Самообслуживание в нужный момент времени: потребитель облачных услуг может в одностороннем порядке обеспечивать вычислительные возможности, такие как время сервера и ресурсы сетевого хранения, по мере необходимости автоматически, без необходимости в человеческом взаимодействии с провайдером услуги.
Широкий доступ к сети: возможности являются доступными по сети, а получение доступа производится посредством стандартных механизмов, что способствует использованию разнородных платформ тонкого или толстого клиента (например, мобильных телефонов, ноутбуков и PDA (личных электронных секретарей)).
Объединение ресурса: вычислительные ресурсы провайдера объединены для обслуживания множественных потребителей, использующих модель мультиарендатора, причем различные физические и виртуальные ресурсы динамично присваиваются и повторно присваиваются согласно потребности. Смысл независимости от местоположения состоит в том, что потребитель, в большинстве случаев, не имеет никакого контроля или знания относительно точного местоположения предоставляемых ресурсов, но может быть в состоянии определить местоположение на более высоком уровне абстракции (например, страна, состояние или центр обработки данных).
Быстрая адаптационная способность: инструменты могут быть предоставлены быстрым и адаптивным способом, в некоторых случаях
автоматически, для быстрого горизонтального масштабирования с увеличением производительности и быстро возвращены системе для быстрого горизонтального масштабирования с уменьшением производительности. Для потребителя доступные к предоставлению инструменты зачастую представляются неограниченными, и могут быть приобретены в любом объеме в любое время.
Измеренная услуга: облачные системы автоматически управляют и оптимизируют использование ресурса путем усиления возможности учета на некотором уровне абстракции, подходящем к типу службы (например, хранению, обработке, ширине полосы, а также учетным записям активного пользователя). Использование ресурсов может быть подвергнуто мониторингу, управлению и протоколированию, что обеспечивает прозрачность как для провайдера, так и для потребителя используемой услуги.
Модели услуги представлены следующим образом.
Программное обеспечение как услуга (SaaS): потребителю предоставляется инструмент для использования приложений провайдера, работающих на облачной инфраструктуре. Приложения являются доступными с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, интернет-почта). Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы, запоминающие устройства или даже индивидуальные прикладные инструменты, за возможным исключением ограничений по настройке параметров конфигурации специфических для пользователя приложений.
Платформа как услуга (PaaS): потребителю предоставляется инструмент для развертывания на облачной инфраструктуре созданных или полученных потребителем приложений, созданных с помощью поддерживаемых провайдером языков программирования и программных средств. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, содержащей сеть, серверы, операционные системы или запоминающие устройства, но управляет развертываемыми приложениями и, возможно, приложением, размещающим настройки среды.
Инфраструктура как услуга (IaaS): потребителю предоставляется инструмент для обеспечения обработки, хранения, сетей и других фундаментальных вычислительных ресурсов, с помощью которого потребительможет разворачивать и выполнять произвольное программное обеспечение, которое может включать в себя операционные системы и приложения. Потребитель не администрирует и не управляет базовой облачной инфраструктурой, но управляет операционными системами, запоминающими устройствами, развертываемыми приложениями и, возможно, имеет ограниченное управление выбором сетевых компонентов (например, межсетевых защитных экранов хоста).
Модели развертывания представлены следующим образом.
Частное облако: облачная инфраструктура действует исключительно для организации. Оно может управляться посредством организации или третьей стороны и может быть реализовано внутри или вовне организации.
Коллективное облако: облачную инфраструктуру совместно используют несколько организаций и поддерживает особое сообщество, которое имеет совместные интересы (например, главная цель работы, требования к защите, политика и соображения по контролю за соблюдением установленных требований). Оно может управляться посредством организации или третьей стороны и может быть реализовано внутри или вовне организации.
Открытое облако: облачная инфраструктура сделана доступной для широкой публики или группы крупной отрасли, и принадлежит продающей облачные услуги организации.
Гибридное облако: облачная инфраструктура является сочетанием двух или более облаков (частного, коллективного или отрытого), которые остаются отличными от других объектами, но связаны друг с другом посредством стандартизированной или проприетарной технологии, обеспечивающей для данных и приложений высокую мобильность (например, временное использование ресурсов открытого облака для выравнивания нагрузки между облаками).
Среда облачных вычислений является услугой, ориентированной с акцентом на бесструктурность, слабую связность, модульный принцип построения и семантическую функциональную совместимость. В основе облачных вычислений находится инфраструктура, содержащая сеть из связанных узлов. Один такой узел является узлом 10, изображенным на фиг. 1А.
Вычислительный узел 10 является только одним примером подходящего узла облачных вычислений, и не предназначен для предположения какого-либо ограничения относительно объема использования или функциональности вариантов осуществления описанного в настоящем документе изобретения. В любом случае, узел 10 облачных вычислений способен к его реализации и/или к выполнению любой из сформулированных выше функциональностей.
При рассмотрении теперь фиг. 6, изображено показательная вычислительная среда 50. Как показано, вычислительная среда 50 содержит один или несколько узлов 10 облачных вычислений, с помощью которых могут сообщаться используемые облачными потребителями локальные вычислительные устройства, такие как, например, персональный цифровой секретарь (PDA) или сотовый телефон 54А, настольный компьютер 54B, портативный компьютер 54C, и/или автомобильная компьютерная система 54N. Узлы 10 могут сообщаться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально, в одну или несколько сетей, таких как частное, коллективное, открытое или гибридное облака, как описано выше, или в комбинацию из них. Это позволяет облачной вычислительной среде 50 предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для получения которых облачный потребитель не должен поддерживать ресурсы на локальном вычислительном устройстве. Подразумевается, что показанные на фиг. 6 типы вычислительных устройств 54A-N предназначены исключительно для разъяснений и, что вычислительные узлы 10 и вычислительная среда 50 выполнены с возможностью коммуникации с любым типом компьютеризированного устройства по любому типу сетевого и/или адресуемого через сеть присоединения (например, с помощью веб - браузера).
При рассмотрении теперь фиг. 7, показан ряд функциональных уровней абстракции, предоставляемых облачной вычислительной средой 50 (фиг. 6). Заранее подразумевается, что компоненты, уровни и функции, показанные на фиг. 7, предназначены исключительно для разъяснений, и ими не ограничены варианты осуществления изобретения. Как изображено, предоставлены следующие уровни и соответствующие функции:
Аппаратный и программный уровень 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 являются всего несколькими примерами из числа доступных типов сетевых адаптеров.
Используемая в настоящем документе терминология служит исключительно целям описания конкретных вариантов осуществления и не предназначается для ограничения изобретения. При использовании в настоящем документе, формы единственного числа предназначены для включения в себя также и форм множественного числа, если только контекст не указывает на иное недвусмысленным образом. Кроме того, подразумевается, что термины «содержит» и/или «содержащий» при их использовании в данном техническом описании задают присутствие заявленных признаков, целочисленных переменных, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целочисленных переменных, этапов, операций, элементов, компонентов и/или образованных ими групп.
Соответствующие структуры, материалы, действия и эквиваленты всех средств или этапов, равно как функциональные элементы в пунктах формулы изобретения ниже, если вообще есть в наличии, предназначаются для включения в себя любой структуры, материала или действия для выполнения функции в сочетании с другими требуемыми элементами, как конкретным образом заявлено. Описание одного или нескольких вариантов осуществления представлено в целях иллюстрации и описания, но не предназначается для полного охвата или ограничения изобретения в заявленном виде. Многие модификации и изменения являются очевидными для средних специалистов в области техники. Вариант осуществления был выбран и описан с целью наилучшего объяснения различных аспектов и практического применения, а также для обеспечения другим средним специалистам в области техники возможности понимания различных вариантов осуществления с различными модификациями, как они подходят для конкретно рассматриваемого использования.