КОМАНДА С ПЛАВАЮЩЕЙ ТОЧКОЙ И С ВЫБИРАЕМЫМИ АТРИБУТАМИ СРАВНЕНИЯ Российский патент 2020 года по МПК G06F9/30 

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

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

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

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

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

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

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

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

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

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

В качестве примеров, посредством команды предоставлены первое значение и второе значение, и причем первое значение представлено одним элементом операнда команды, а второе значение представлено соответствующим элементом другого операнда команды.

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

В одном примере элемент управления предоставлен в маске команды.

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

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

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

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

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

Фиг. 1Б изображает дополнительные подробности процессора на фиг. 3А, согласно аспекту настоящего изобретения,

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

Фиг. 3Б изображает более подробную информацию по памяти на фиг. 2А,

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

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

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

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

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

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

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

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

Фиг. 8 изображает один пример уровней модельной абстракции. Подробное описание

Один или несколько аспектов относятся к обеспечению обработки в вычислительной среде путем обеспечения возможности сокращения числа команд для выполнения операций с плавающей точкой для выявления максимума и минимума для различных стандартов и/или способов задания функций. Как указано в настоящем документе, в среде различных языков программирования имеется несколько различных стандартов и способов задания функций для чисел с плавающей точкой. Даже в пределах одного языка, может наличествовать общее соглашение о неиспользовании библиотечной функции, но использовании некоторого другого синтаксиса языка, который влечет за собой применение отличной логики работы. Некоторые различные аспекты сравнений (то есть, специальные или частные случаи) относятся к тому, рассматривать ли+0 как превышающее -0, или рассматривать ли их равными, как обращаться со сравнениями с NaN (нечислами), сигнализировать ли об исключении на SNaN (сигнальное NaN), как обращаться с бесконечностью, преобразовать ли SNaN к QNaN (тихое NaN) в результате, какое из информационных наполнений NaN имеет приоритет в случае, когда обоими вводами являются NaNs и т.д.

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

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

Один вариант осуществления вычислительной среды для охвата и использования одного или нескольких аспектов описан с отсылками на фиг.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.07В» (Power ISA™ Version 2.07В), International Business Machines Corporation, от 9 апреля 2015. Архитектура Power является зарегистрированной торговой маркой International Business Machines Corporation, Армонк, Нью-Йорк, США.

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

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

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

Как показано на фиг. 1А, компьютерная система/сервер 12 показана в виде вычислительного устройства общего назначения. Компоненты компьютерной системы/сервера 12 могут включать в себя, но не ими ограничиваются, один или несколько процессоров или вычислительных устройств 16, системную память 28, и шину 18, которая соединяет с процессором 16 различные компоненты системы, включающие в себя системную память 28.

Шина 18 представляет собой один или более из числа любых нескольких типов структур шины, включая сюда шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт, а также шину процессора или локальную шину, использующую любую из ряда шинных архитектур. В качестве примера, но не ограничения, такая архитектура включает в себя шину Промышленной стандартной архитектуры (ISA), шину Микроканальной архитектуры (МСА), шину Расширенной 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 П. В одном примере код 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, х86, IA-32, IA-64 и т.д. Хотя в настоящем документе описаны варианты осуществления для Z/Архитектуры, описанная в настоящем документе векторная команда, а также один или несколько других аспектов могут быть основаны на многих других архитектурах. Z/Архитектура является только одним из примеров.

В одном варианте осуществления, в котором векторное средство реализовано как часть Z/Архитектуры, для использования векторных регистров и команд, управляющему элементу по активации векторных команд и управляющему элементу для регистров в заданном управляющем регистре (например, управляющем регистре 0) задают значение, например, единица. Если векторное средство инсталлировано, а векторная команда выполняется без задания значения управляющим элементам по активации, распознается исключение данных. Если векторное средство не инсталлировано, а векторная команда выполняется, распознается исключение операции.

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

Векторные данные представлены в памяти, например, в той же последовательности слева направо, что и другие форматы данных. Биты формата данных, пронумерованные 0-7, составляют байт в крайнем левом местоположении байта (с самым малым номером) в памяти, биты 8-15 формируют байт в следующем последовательном местоположении, и так далее. В другом примере, векторные данные могут быть представлены в памяти в другой последовательности, такой как справа налево.

Один пример векторной команды с плавающей точкой на выявление максимума описан с отсылками на фиг. 3А. Как показано, команда имеет несколько полей, причем поле может иметь связанный с ним нижний индекс. Связанный с полем команды нижний индекс обозначает операнд, к которому применяют поле. Например, связанный с векторным регистром V1 нижний индекс 1 обозначает, что регистр в V1 включает в себя первый операнд и т.д. Например, операнд регистра имеет длину в один регистр, которая составляет, например, 128 битов.

Как показано на фиг. 3А, в одном варианте осуществления, векторная команда 300 с плавающей точкой на выявление максимума включает в себя поля 302а, 302b кода операции, указывающие на векторную операцию с плавающей точкой по выявлению максимума, первое поле 304 векторного регистра, используемое для обозначения первого векторного регистра (V1), второе поле 306 векторного регистра, используемое для обозначения второго векторного регистра (V2), третье поле 308 векторного регистра, используемое для обозначения третьего векторного регистра (V3), первое поле (М6) 309 маски, второе поле (М5) 310 маски, третье поле (М4) 312 маски, и поле 314 (RXB) бита расширения регистра, каждое из которых описано ниже. В одном варианте осуществления, поля являются отдельными и независимыми друг от друга, однако, в других вариантах осуществления, поля в числе более одного могут быть объединены друг с другом. Дополнительная информация относительно этих полей приведена ниже.

Векторное поле 304 регистра используют для указания на векторный регистр, который должен сохранять первый операнд, первый операнд, являющийся результатом сравнения значений элементов двух операндов для получения большего из двух значений элементов. Элементы операнда, например, обрабатывают как двоичные числа (по Спецификации IEEE) с плавающей точкой (BFP) заданного формата. Эти два операнда являются вторым операндом, содержавшимся в векторном регистре, заданном с помощью поля 306 векторного регистра, и третьим операндом, содержавшимся в векторном регистре, заданном с помощью поля 308 векторного регистра. В одном примере каждое из полей 304, 306, 308 векторных регистров используют совместно с полем 314 RXB для обозначения векторного регистра.

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

В одном примере поле RXB включает в себя четыре бита (например, биты 0-3), причем биты заданы следующим образом.

0 - Самый старший бит для обозначения первого векторного регистра (например, в битах 8-11) команды.

1 - Самый старший бит для обозначения второго векторного регистра (например, в битах 12-15) команды, если вообще есть в наличии.

2 - Самый старший бит для обозначения третьего векторного регистра (например, в битах 16-19) в составе команды, если вообще есть в наличии.

3 - Самый старший бит для обозначения четвертого векторного регистра (например, в битах 32-35) команды, если вообще есть в наличии.

Каждому биту задано нулевое или единичное значение, например код ассемблера в зависимости от номера регистра. Например, для регистров 0-15, бит установлен в 0, для регистров 16-31, бит установлен в 1 и т.д.

В одном варианте осуществления, каждый RXB бит является битом расширения для конкретного местоположения в команде, которое включает в себя один или несколько векторных регистров. Например, бит 0 из RXB является битом расширения для местоположения 8-11, которое приписано, например, к V1 и т.д. Прежде всего, для векторных регистров, содержащий операнд регистр задан с помощью, например, четырех-битового поля в составе поля регистра с дополнением соответствующего ему бита (RXB) расширения регистра в качестве самого старшего бита. Например, когда четырех-битовым полем является 0110, а битом расширения является 0, то пять битовых полей 00110 указывают на номер регистра 6. В другом варианте осуществления, поле RXB включает в себя дополнительные биты, и большее единицы число битов используют в качестве расширения для каждого вектора или местоположения.

Поле 309 М6 задает обработку специальных случаев (также упоминаемую в настоящем документе как частные случаи) для сравнения. Подробные описания результатов для каждого элемента показаны на фиг.4А-4И. При задании зарезервированного значения распознают исключение по спецификации, в одном примере.

М6 Выполняемая функция выявления максимума

0 IEEE MaxNum

1 Java Math.Max()

2 C-Style Max Macro

3 С++ Algorithm.max ()

4 fmax ()

5-7 Зарезервировано

8 IEEE MaxNumMag

9 Java Math.Max() для абсолютных значений

10 C-Style Max Macro для абсолютных значений

11 С++ Algorithm.max() для абсолютных значений

12 fmax() для абсолютных значений

13-15 Зарезервировано

Поле 312 М4 задает формат с плавающей точкой. Формат с плавающей точкой задает размер элементов в пределах операндов векторного регистра. При задании зарезервированного значения распознают исключение по спецификации, в одном примере.

М4 Формат с плавающей точкой

0-1 Зарезервировано

2 Сокращенный формат

3 Длинный формат

4 Расширенный формат

5-15 Зарезервировано

Поле 310 М5 включает в себя, например, следующие элементы управления, как показано на фиг. 3Б:

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

Зарезервировано: Биты 1, 2 и 3 зарезервированы и должны иметь нулевые значения. В противном случае, распознается исключение по спецификации, в одном примере.

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

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

Выполняют сравнение, и результат этого действия зависит от выбранной функции сравнения (например, обозначенной как М6), а также факультативных возможностей сравнения для выполняемой особой функции сравнения. Факультативную возможность сравнения (например, пара, включающая в себя любые два из следующих случаев: -∞, +∞, -FN,+FN, -0, +0, QNAN, SNAN, в качестве примеров, где FN является конечным числом) выбирают на основании

значений сравниваемых элементов второго и третьего операндов. Каждая функция сравнения может иметь различные связанные с ней факультативной возможности сравнения, а результат для факультативной возможности сравнения зависит от выполняемой функции сравнения. Для тех же факультативных возможностей сравнения могут быть заданы различные результаты для различных функций сравнения. Например, когда М6=0, а значения второго и третьего сравниваемых операндов равны -0, +0, результат равен +0 (см. фиг. 4А), однако, когда М6=3, а значения второго и третьего операндов по прежнему равны -0, +0, результат равен -0 (см. фиг. 4Г). Являются возможными разнообразные изменения.

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

В другом варианте осуществления поле команды (например, заданное в явном виде поле команды, такое как М6 или другое выбранное поле или заданное в неявном виде поле команды) включает в себя несколько битов, причем каждый бит является переключателем, который при задании ему (например, значения единица) задает другую факультативную возможность сравнения. Например, бит 0, при задании ему значения, указывает на необходимость игнорирования знака, бит 1, при задании ему значения, указывает на необходимость сигнала на SNAN, бит 2, при задании ему значения, указывает на подлежащее выбору значение, например, из числа +0, -0, бит 3, при задании ему значения, указывает на подлежащее выбору значение, например, из числа ∞, -FN, и т.д. Многие различные варианты могут быть представлены посредством различных битов. При наличии различных битов, которые соответствуют различным факультативным возможностям, с помощью отдельной команды одному или нескольким битам могут быть заданы значения для предоставления разнообразных различных факультативных возможностей сравнения и результатов.

В другом варианте осуществления предоставлена и описана с отсылками на фиг. 3В векторная команда с плавающей точкой на выявление минимума. В одном варианте осуществления, векторная команда 320 с плавающей точкой на выявление минимума включает в себя поля 322а, 322b кода операции, указывающие на векторную операцию с плавающей точкой по выявлению минимума, первое поле 324 векторного регистра, используемое для обозначения первого векторного регистра (V1), второе поле 326 векторного регистра, используемое для обозначения второго векторного регистра (V2), третье поле 328 векторного регистра, используемое для обозначения третьего векторного регистра (V3), первое поле (М6) 329 маски, второе поле (М5) 330 маски, третье поле (М4) 332 маски, и поле 334 (RXB) бита расширения регистра, каждое из которых описано ниже. В одном варианте осуществления, поля являются отдельными и независимыми друг от друга, однако, в других вариантах осуществления, поля в числе более одного могут быть объединены друг с другом. Дополнительная информация относительно этих полей приведена ниже.

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

В этом варианте осуществления, поле 329 М6 задает обработку специальных случаев (также упоминаемых в настоящем документе как частные случаи) для сравнения. Подробные описания результатов для каждого элемента показаны на фиг. 4K-4Т. При задании зарезервированного значения распознают исключение по спецификации, в одном примере. М6 Выполняемая функции выявления минимума

0 IEEE MinNum

1 Java Math.Min()

2 C-Style Min Macro

3 С++ Algorithm.min ()

4 fmin ()

5-7 Зарезервировано

8 IEEE MinNum для абсолютных значений

9 Java Math.Min() для абсолютных значений

10 C-Style Min Macro для абсолютных значений

11 С++ Algorithm.min() для абсолютных значений

12 fmin() для абсолютных значений

13-15 Зарезервировано

Поле 332 М4 задает формат с плавающей точкой. Формат с плавающей точкой задает размер элементов в пределах операндов векторного регистра. При задании зарезервированного значения распознают исключение по спецификации, в одном примере.

М4 Формат с плавающей точкой

0-1 Зарезервировано

2 Сокращенный формат

3 Длинный формат

4 Расширенный формат

5-15 Зарезервировано

Поле 330 М5 включает в себя, например, следующие элементы управления, как показано на фиг. 3Б:

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

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

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

Выполняют сравнение, и результат этого действия зависит от выбранной функции сравнения (например, обозначенной как М6), а также факультативных возможностей сравнения для выполняемой особой функции сравнения. Факультативную возможность сравнения (например, пара, включающая в себя любые два из следующих случаев: -∞, +∞, -FN, +FN, -0, +0, QNAN, SNAN, в качестве примеров, где FN является конечным числом) выбирают на основании значений сравниваемых элементов второго и третьего операндов. Каждая функция сравнения может иметь различные связанные с ней факультативной возможности сравнения, а результат для факультативной возможности сравнения зависит от выполняемой функции сравнения. Различные результаты могут быть заданы для тех же факультативных возможностей сравнения для различных функций сравнения.

В одном примере в зависимости от выполняемой функции минимума, если любой из элементов с плавающей точкой во втором или третьем операнде представлен NaN, может быть распознано исключение недопустимой операции по Спецификации IEEE, как показано на фиг.4K-4Т. Если бит маски недопустимой операции по Спецификации IEEE представлен единицей, происходит прерывание программы с заданием VXC значения для недопустимой операции по Спецификации IEEE с индексом соответствующего элемента, и операцию, например, подавляют.

В одном другом варианте осуществления, может быть предоставлена одна команда, в которой выявление максимума/минимума является, например, выбираемым элементом управления команды. Один пример векторной команды 350 с плавающей точкой на выявление максимума/минимума описан с отсылками на фиг.3Г. В одном варианте осуществления, векторная команда 350 с плавающей точкой на выявление максимума/минимума включает в себя поля 352а, 352b кода операции, указывающие на векторную операцию с плавающей точкой по выявлению минимума, первое поле 354 векторного регистра, используемое для обозначения первого векторного регистра (V1), второе поле 356 векторного регистра, используемое для обозначения второго векторного регистра (V2), третье поле 358 векторного регистра, используемое для обозначения третьего векторного регистра (V3), первое поле (М6) 359 маски, второе поле (М5) 360 маски, третье поле (М4) 362 маски, и поле 364 (RXB) бита расширения регистра, каждое из которых описано ниже. В одном варианте осуществления, поля являются отдельными и независимыми друг от друга, однако, в других вариантах осуществления, поля в числе более одного могут быть объединены друг с другом. Дополнительная информация относительно этих полей приведена ниже.

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

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

М6 Выполняемая функция

0 IEEE MaxNum

0 IEEE MinNum

1 Java Math.Max()

1 Java Math.Min()

2 C-Style Max Macro

2 C-Style Min Macro

3 С++ Algorithm.max ()

3 С++ Algorithm.min ()

4 fmax () 4 fmin ()

5-7 Зарезервировано

5-7 Зарезервировано

8 IEEE MaxNumMag

8 IEEE MinNum для абсолютных значений

9 Java Math.Max() для абсолютных значений

9 Java Math.Min() для абсолютных значений

10 C-Style Max Macro для абсолютных значений

10 C-Style Min Macro для абсолютных значений

11 С++ Algorithm.max() для абсолютных значений

11 С++ Algorithm.min() для абсолютных значений

12 fmax() для абсолютных значений

12 fmin() для абсолютных значений

13-15 Зарезервировано

13-15 Зарезервировано

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

Поле 362 М4 задает формат с плавающей точкой. Формат с плавающей точкой задает размер элементов в пределах операндов векторного регистра. При задании зарезервированного значения распознают исключение по спецификации, в одном примере.

М4 Формат с плавающей точкой

0-1 Зарезервировано

2 Сокращенный формат

3 Длинный формат

4 Расширенный формат

5-15 Зарезервировано

Поле 360 М5 включает в себя, например, следующие элементы управления, как показано на фиг. 3Б:

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

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

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

Выполняют сравнение, и результат этого действия зависит от выбранной функции сравнения (например, обозначенной как М6), а также факультативных возможностей сравнения для выполняемой особой функции сравнения. Факультативную возможность сравнения (например, пару, включающую в себя любые два из следующих случаев: -∞, +∞, -FN, +FN, -0, +0, QNAN, SNAN, в качестве примеров, где FN является конечным числом) выбирают на основании значений сравниваемых элементов второго и третьего операндов. Каждая функция сравнения может иметь различные связанные с ней факультативной возможности сравнения, а результат для факультативной возможности сравнения зависит от выполняемой функции сравнения.

В одном варианте осуществления, в зависимости от выполняемой функции, если любой из элементов с плавающей точкой во втором или третьем операнде представлен NaN, может быть распознано исключение недопустимой операции по Спецификации IEEE, как показано на фиг. 4А-4Т. Если бит маски недопустимой операции по Спецификации IEEE представлен единицей, происходит прерывание программы с заданием VXC значения для недопустимой операции по Спецификации IEEE с индексом соответствующего элемента, и операцию, например, подавляют.

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

Как показано на фиг. 5, первоначально получают первое значение и второе подлежащие сравнению значения, ЭТАП 500. В одном примере первое значение имеет элемент операнда 2, и второе значение имеет соответствующий элемент операнда 3. (В других вариантах осуществления множественные значения множественных элементов подвергают сравнению параллельным или последовательным образом).

Производят выявление функции сравнения, которая подлежит выполнению на основании элемента управления команды, ЭТАП 502. Например, когда команда является векторной командой с плавающей точкой на выявление максимума, а М6=0, то выполняют функцию MaxNum IEEE. Точно так же, когда команда является векторной командой с плавающей точкой на выявление минимума, а М6=0, то выполняют функцию MinNum IEEE. Аналогично, когда команда является векторной командой с плавающей точкой на выявление максимума/минимума, а М6=0, то выполняют функцию MaxNum IEEE, когда команда состоит в выполнении операции по выявлению максимума, или выполняют функцию MinNum IEEE, когда команда состоит в выполнении операции по выявлению минимума. Многие другие примеры также являются возможными.

После этого, для выбранной функции сравнения (например, MaxNum IEEE, MinNum IEEE и т.д.), на основании первого значения и второго значения, из нескольких факультативных возможностей сравнения выбирают факультативную возможность сравнения для конкретной выбранной функция сравнения, ЭТАП 504. Например, когда выполняют функцию MaxNum IEEE (например, М6=0), и первое значение является -0 (а), а второе значение является +∞ (b), то эту пару выбирают из факультативных возможностей, предоставленных для функций MaxNum IEEE (см. фиг. 4А). Значения подвергают сравнению с помощью выбранной факультативной возможности сравнения для получения результата, ЭТАП 506. Например, на пересечении входных значений (-0, +∞) на фиг.4А находится результат сравнения для функции MaxNum IEEE. Таким образом, полученным результатом в этом конкретном примере является Т(b), в котором значение операнда 3 указано в качестве результата сравнения. Этот результат размещают в выбранном местоположении, ЭТАП 508. Например, его размещают в заданном с помощью Vi регистре. В другом примере, однако, он может быть размещен в ячейке памяти или другом местоположении.

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

Как показано на фиг. 6А, получают команду (например, отдельную архитектурно выполненную машинную команду) для выполнения сравнения первого значения и второго значения, ЭТАП 600, и выполняют посредством по меньшей мере одного процессора, ЭТАП 602. Выполнение включает в себя, например, на основании элемента управления команды, выявление подлежащей выполнению функции сравнения, ЭТАП 604. Функция сравнения входит в состав нескольких функций сравнения, сконфигурированных для команды (606), и функция сравнения имеет несколько факультативных возможностей для сравнения (608). Факультативную возможность сравнения, которая подлежит использованию для сравнения первого значения и второго значения, выбирают из нескольких факультативных возможностей для функции сравнения, ЭТАП 610. Факультативную возможность сравнения выбирают на основании первого значения и второго значения. Первое значение и второе значение подвергают сравнению с помощью факультативной возможности сравнения для получения результата, ЭТАП 612. Результат является специфичным для факультативной возможности сравнения, выбранной для функции сравнения, указанной посредством элемента управления команды (614). Результат размещают в выбранном местоположении, и он подлежит использованию при обработке в вычислительной среде, ЭТАП 616.

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

Например, как показано на фиг. 6В, несколько функций сравнения включают в себя по меньшей мере одну из нескольких функций выявления максимума и нескольких функций выявления минимума (630), несколько функций выявления максимума включают в себя несколько алгоритмов определения максимума для выполнения сравнения на максимум (632), и несколько функций выявления минимума включают в себя несколько алгоритмов определения минимума для выполнения сравнения на минимум (634).

В одном варианте осуществления, посредством команды предоставлены первое значение и второе значение (636), и причем первое значение представлено одним элементом операнда команды, а второе значение представлено соответствующим элементом другого операнда команды (638). В качестве примера, размер одного элемента выявляют на основании другого элемента управления команды (640).

Кроме того, в качестве примеров, первое значение и второе значение являются значениями с плавающей точкой (642), и размер одного элемента зависит от формата с плавающей точкой значений с плавающей точкой (644), а другой элемент управления указывает на выбранный формат (646) с плавающей точкой. Кроме того, элемент управления предоставлен в маске команды (648).

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

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

Один или несколько аспектов могут относиться к облачным вычислениям.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аппаратный и программный уровень 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, С++ и т.п., а также языки процедурного программирования, такие как язык программирования «С» или подобные языки программирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

название год авторы номер документа
КОМАНДА СДВИГА И ДЕЛЕНИЯ ДЕСЯТИЧНОГО ЧИСЛА 2017
  • Брэдбери Джонатан
  • Коупленд Рид
  • Мюллер Сильвия Мелитта
  • Шварц Эрик
  • Карлау Стивен
RU2726147C1
КОМАНДА НА ВЫПОЛНЕНИЕ ОПЕРАЦИИ ПРИСВОЕНИЯ ЗНАКА ДЕСЯТИЧНОМУ ЧИСЛУ 2017
  • Коупленд Рид
  • Мюллер Сильвия Мелитта
  • Брэдбери Джонатан
  • Следжел Тимоти
RU2718968C1
КОМАНДА УМНОЖЕНИЯ И СДВИГА ДЕСЯТИЧНОГО ЧИСЛА 2017
  • Мюллер Сильвия Мелитта
  • Коупленд Рид
  • Брэдбери Джонатан
  • Карлау Стивен
RU2717965C1
КОМАНДА С НЕПОСРЕДСТВЕННЫМ АДРЕСОМ ДЛЯ ЗАГРУЗКИ ДЕСЯТИЧНОГО ЧИСЛА 2017
  • Брэдбери Джонатан
  • Коупленд Рид
  • Мюллер Сильвия Мелитта
RU2723663C1
СПОСОБ ВЫПОЛНЕНИЯ МАШИННОЙ КОМАНДЫ, КОМПЬЮТЕРНАЯ СИСТЕМА И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ, ОБЕСПЕЧИВАЮЩИЕ РАСЧЕТ РАССТОЯНИЯ ОТ ПОЛОЖЕНИЯ В ОСНОВНОЙ ПАМЯТИ ДО ГРАНИЦЫ БЛОКА ОСНОВНОЙ ПАМЯТИ 2012
  • Джонатан Дейвид Бредбери
  • Майкл Карл Гшвинд
  • Эрик Марк Шварц
  • Тимоти Дж. Слиджл
  • Кристиан Якоби
RU2568920C2
Связанное с выбранными архитектурными функциями администрирование обработки 2015
  • Гшвинд Михаэль Карл
  • Гейни Чарлз
RU2665243C2
КОМАНДА ВЕКТОРНОГО ТИПА КОНТРОЛЬНОЙ СУММЫ 2013
  • Брэдбери Джонатан Дейвид
  • Шварц Эрик Марк
RU2608663C1
КОМАНДА ДЛЯ ЗАГРУЗКИ ДАННЫХ ДО ЗАДАННОЙ ГРАНИЦЫ ПАМЯТИ, УКАЗАННОЙ КОМАНДОЙ 2012
  • Джонатан Дейвид Бредбери
  • Майкл Карл Гшвинд
  • Тимоти Дж. Слиджл
  • Эрик Марк Шварц
  • Кристиан Якоби
RU2565496C2
КОМАНДА ВЕКТОРНОГО ТИПА НА ПОЛЕ ГАЛУА ПЕРЕМНОЖЕНИЯ, СУММИРОВАНИЯ И НАКОПЛЕНИЯ 2014
  • Брэдбери Джонатан Дейвид
RU2613726C2
ОБЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ЗАГРУЗКИ ДЛЯ УПРАВЛЯЮЩЕЙ СЕРВИСНОЙ ПРОГРАММЫ, СПОСОБНОЙ К ИНИЦИАЛИЗАЦИИ ВО МНОЖЕСТВЕННЫХ АРХИТЕКТУРАХ 2015
  • Гшвинд Михаэль Карл
RU2665238C2

Иллюстрации к изобретению RU 2 729 452 C1

Реферат патента 2020 года КОМАНДА С ПЛАВАЮЩЕЙ ТОЧКОЙ И С ВЫБИРАЕМЫМИ АТРИБУТАМИ СРАВНЕНИЯ

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

Формула изобретения RU 2 729 452 C1

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

выполнением команды (602), причем команда является отдельной архитектурно выполненной командой (300, 320, 350), которая поддерживает, по меньшей мере, различные функции выявления максимума или различные функции выявления минимума, причем различные функции выявления максимума содержат, по меньшей мере, несколько из следующих: IEEE MaxNum, Java Math.Max(), C-Style Max Macro, C++ Algorithm.max(), fmax(), IEEE MaxNumMag, Java Math.Max() для абсолютных значений, C-Style Max Macro для абсолютных значений, C++ Algorithm.max() для абсолютных значений и fmax() для абсолютных значений, а также различные функции выявления минимума, содержащие, по меньшей мере, несколько из следующих: IEEE MinNum, Java Math.Min(), C-Style Min Macro, C++ Algorithm.min(), fmin(), IEEE MinNum для абсолютных значений, Java Math.Min() для абсолютных значений, C-Style Min Macro для абсолютных значений, C++ Algorithm.min() для абсолютных значений и fmin() для абсолютных значений, причем выполнение включает в себя:

выявление, на основании элемента (309, 329, 359) управления команды, функции сравнения, которая подлежит выполнению, причем функция сравнения является одной из нескольких различных функций выявления максимума или нескольких различных функций выявления минимума, сконфигурированных для команды, и причем функция сравнения имеет несколько факультативных возможностей сравнения, специфичных для функции сравнения,

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

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

2. Способ по п. 1, причем каждая факультативная возможность сравнения из нескольких факультативных возможностей сравнения включает в себя пару случаев, причем пара случаев включает в себя любые два из следующих: -∞, +∞, -FN, +FN, -0, +0, QNAN, SNAN, где FN является конечным числом.

3. Способ по п. 1, причем по меньшей мере одна факультативная возможность сравнения из нескольких факультативных возможностей сравнения включает в себя пару случаев, причем пара случаев включает в себя любые два из следующих: -∞, +∞, -0, +0, QNAN, SNAN (622).

4. Способ по п. 1, причем отдельная архитектурно выполненная команда поддерживает различные функции выявления максимума, причем функции выявления максимума содержат IEEE MaxNum, Java Math.Max(), C-Style Max Macro, C++ Algorithm.max(), fmax(), IEEE MaxNumMag, Java Math.Max() для абсолютных значений, C-Style Max Macro для абсолютных значений, C++ Algorithm.max() для абсолютных значений и fmax() для абсолютных значений.

5. Способ по п. 1, причем отдельная архитектурно выполненная команда поддерживает различные функции выявления минимума, причем функции выявления минимума содержат IEEE MinNum, Java Math.Min(), C-Style Min Macro, C++ Algorithm.min(), fmin(), IEEE MinNum для абсолютных значений, Java Math.Min() для абсолютных значений, C-Style Min Macro для абсолютных значений, C++ Algorithm.min() для абсолютных значений и fmin() для абсолютных значений.

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

7. Способ по п. 1, причем посредством команды предоставлены первое значение и второе значение (636), и причем первое значение представлено одним элементом операнда команды, а второе значение представлено соответствующим элементом другого операнда команды (638).

8. Способ по п. 7, причем размер одного элемента выявляют на основании другого элемента управления команды (640, 312, 332, 362).

9. Способ по п. 8, причем первое значение и второе значение являются значениями с плавающей точкой (642), и размер одного элемента зависит от формата с плавающей точкой значений с плавающей точкой (644), и причем другой элемент управления указывает на выбранный формат (646) с плавающей точкой.

10. Способ по п. 1, причем элемент управления предоставлен в маске команды (309, 329, 359).

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

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

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

Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
Топчак-трактор для канатной вспашки 1923
  • Берман С.Л.
SU2002A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
RU 2014121655 A, 10.12.2015.

RU 2 729 452 C1

Авторы

Брэдбери Джонатан

Шварц Эрик

Мюллер Сильвия Мелитта

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

Олссон Бретт

Даты

2020-08-06Публикация

2017-10-17Подача