Обнаружение квантового исключения с плавающей десятичной точкой

Иллюстрации

Показать все

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

Реферат

Область техники

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

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

Числа с плавающей десятичной точкой и числа с плавающей точкой других оснований системы счисления, как например, определены стандартом плавающей точки IEEE 754-2008, являются полезными для выполнения некоторых типов обработки данных. Конструкции процессора на основе стандарта IEEE 754-2008 были разработаны для непосредственной поддержки обработки, определенной этим стандартом. Форматы типичного аппаратного обеспечения для процессоров стандарта IEEE 754-2008 включают форматы данных с плавающей десятичной точкой, которые имеют длину в 32, 64 и 128 бит с определенными коэффициентами, имеющими 7, 16 и 34 цифры, с определенным интервалом значений показателя. Среды программной обработки, как например, языки программирования, включая Java, который поддерживает числа с плавающей десятичной точкой, иногда используют различные коэффициенты приведения свободной длины, которые рассматриваются как "точность" с отличными диапазонами экспонент от тех, которые используются аппаратным обеспечением, на основе которого выполняются среды.

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

Примером скрытой потенциальной ошибки является операция с плавающей десятичной точкой сложения двух семизначных (7) денежных величин, представленных в центах. Каждый из этих элементов исходных данных будет являться величиной в $10,000 диапазоне. Сложение этих двух величин может привести к точному результату в $100,000 диапазоне. Однако представление результата в центах в $100,000 диапазоне в семизначном виде требует, чтобы экспонента не являлась предпочтительной экспонентой, которая бы указывала центы, и точность значения результата будет соответственно уменьшена. Выполнение подобного вычисления с большей точностью приведет к экспоненте, указывающей центы (10-2) в качестве масштаба результата. Существующие исключения не обнаружат эту погрешность масштаба в предоставленном результате.

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

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

Публикация заявки США номер 2008/0270508 "Detection of potential need to use a larger data format in performing floating point operations", зарегистрированного 27 апреля 2007 г., предоставляет определение того, является ли безопасным результат операции с плавающей точкой. Показатели результата рассматриваются для определения того, является ли результат безопасным или потенциально небезопасным, как определено пользователем. Для облегчения обнаружения безопасных или потенциально небезопасных результатов предоставляется команда.

Патент США номер 5892697 "Method and apparatus for handling overflow and underflow in processing floating-point numbers", зарегистрированный 19 декабря 1995 г., предоставляет способ обработки чисел с плавающей точкой, каждое число с плавающей точкой имеет, по меньшей мере, знаковую часть, экспонентную часть и дробную часть, включает этапы преобразования предоставления регистра памяти числа с плавающей точкой в предоставление регистра с плавающей точкой; округления преобразованного числа с плавающей точкой; выполнения арифметического вычисления с использованием вышеупомянутого округленного числа, в результате чего получается новое значение с плавающей точкой; и преобразования итогового нового значения регистра с плавающей точкой в регистр памяти с плавающей точкой. Аппаратура для обработки чисел с плавающей точкой содержит средства преобразования значения с плавающей точкой из регистра памяти произвольного доступа в регистр с блоком вычислений с плавающей точкой; средства выбора необходимого типа точности для преобразованного значения; средства выбора необходимого типа округления для преобразованного значения с плавающей точкой; средства выполнения арифметической операции с использованием, по меньшей мере, одного значения с плавающей точкой на основе упомянутых выбранных точности и округления; средства для округления с отбрасыванием младших разрядов результата арифметической операции для установки части мантиссы значения с плавающей точкой; и средства преобразования итогового значения с плавающей точкой из регистра с плавающей точкой в память с произвольным доступом.

Публикация заявки США номер 20040268324 под названием "Method and apparatus for the emulation of high precision floating point instructions", зарегистрированная 2 декабря 2003 г., предоставляет эмулятор высокой точности плавающей точки и связанный с ним способ эмуляции кода предметной программы на целевой машине, где базовые операнды предметной машины обладают отличной от целевой машины точностью. Эмулятор высокой точности плавающей точки обеспечивается для эмуляции команд кода предметной программы, имеющих более высокую точность, чем точность, поддерживаемая архитектурой целевой машины, путем использования промежуточных вычислений, имеющих значения, точность которых превышает поддерживаемую целевой машиной точность.

Следовательно, существует необходимость в решении вышеупомянутой проблемы.

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

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

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

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

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

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

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

На ФИГ.1 изображен процессор компьютера в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения;

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

На ФИГ.3 изображена блок-схема, иллюстрирующая систему обработки информации в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения.

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

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

Система и способы, описанные ниже, включают процессор с плавающей десятичной точкой, который может генерировать исключение, которое называется в данной публикации «квантовым исключением», если результат операции с плавающей десятичной точкой не предоставляет предпочтительный квант, например, предпочтительную экспоненту, определенную стандартом IEEE 754-2008. Это генерирование исключения является особенно полезным при использовании программного обеспечения и языков программирования, которые поддерживают десятичный формат, который имеет более высокую точность или диапазон, чем аппаратное обеспечение, на основе которого оно выполняется, поскольку это позволяет обнаружение обработки, которая превышает формат, поддерживаемый аппаратным обеспечением.

В контексте настоящего обсуждения «квант» относится к «единицам» младшего значащего разряда представления с плавающей точкой. Ранее определенные исключения с плавающей точкой обнаруживают некоторые неточности при обработке, но не полностью обнаруживают случай возникновения результата операции с плавающей десятичной точкой, который представляет масштаб или экспоненту, которая является не предпочтительной экспонентой. Другими словами существующие исключения с плавающей точкой не полностью указывают на случай возникновения результата операции с плавающей десятичной точкой, который не содержит экспоненты, которая была бы создана, если бы процессор имел более высокую точность при представлении коэффициента. Стандарт IEEE 754-2008 определяет значение предпочтительного кванта, но не определяет исключение для достижения этого предпочтительного значения в результате операций с плавающей десятичной точкой. Квантовое исключение способов и систем, описанных ниже, имеет подобное другим IEEE исключениям управление. Квантовое исключение также имеет соответственные маску, флаг и код исключения. Это позволяет осуществлять несложную эмуляцию языков программирования с различными точностями и диапазонами с использованием стандартизированных форматов и предоставляет наивысшую точность и диапазон форматов при обнаружении непредвиденных изменений экспоненты.

Событие квантового исключения одного из предпочтительных вариантов осуществления возникает, если операция с плавающей десятичной точкой предоставляет округленный или фиксированный результат. Несмотря на то, что некоторые реализации языка Java содержат раздельные события под названием Округленное и Фиксированное события, квантовое исключение одного из предпочтительных вариантов осуществления преимущественно указывает на то, что точность или диапазон результата был превышен. Механизм отчетности квантового исключения в одном из предпочтительных вариантов осуществления является управляемым и имеет бит маски для управления действиями, возникающими при формулировке наличия исключения. В одном из предпочтительных вариантов осуществления бит маски включается в управляющее слово процессора с плавающей точкой (FPC) для маскировки квантового исключения от прерывания обработчиком исключений программы. Если бит маски равняется единице и возникает квантовое исключение, тогда результат операции с плавающей десятичной точкой, вызывающий исключение, записывается в Регистрах с плавающей точкой (FPRs), и код, идентифицирующий тип исключения, записывается в управляющем слове с плавающей точкой (FPC), и выполнение программы прерывается обработчиком прерываний программы. Если бит маски не установлен, тогда флаг квантового исключения, который является флагом закрепления, устанавливается, и прерывание не осуществляется.

Предпочтительные варианты осуществления настоящего изобретения используют числа с плавающей десятичной точкой. Число с плавающей десятичной точкой, определенное различными стандартами, включая стандарт IEEE-754-2008, имеет три компонента: знаковый бит, экспоненту и значащую часть числа. Величина числа, которая является значением без знака, является продуктом увеличения значащей части числа и основания системы счисления до уровня экспоненты. Для числа с плавающей десятичной точкой основание системы счисления равняется десяти (10). Знак числа может быть как положительным, так и отрицательным, в зависимости от того, равняется ли знаковый бит нулю или единице соответственно.

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

На ФИГ.1 изображен процессор 100 компьютера в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения. Процессор 100 компьютера содержит процессор команд, который содержит блок вычислений 110 с плавающей десятичной точкой, регистры 108 с плавающей точкой и программный контроллер 124. Блок вычислений 110 с плавающей десятичной точкой принимает команды с плавающей десятичной точкой от программного контроллера 124, который принимает команды управляющей программы, хранящиеся в памяти 152 программы. Команды с плавающей десятичной точкой, высланные на блок вычислений 110 с плавающей десятичной точкой, содержат, например, команды, определяющие выполнение преобразования данных и/или вычислений с плавающей десятичной точкой с использованием одного или нескольких чисел с плавающей десятичной точкой. Блок вычислений 110 с плавающей десятичной точкой принимает операнды с плавающей десятичной точкой путем считывания данных с плавающей десятичной точкой с одного или нескольких исходных регистров внутри регистров 108 с плавающей точкой, выполняет определенную операцию с плавающей десятичной точкой и сохраняет результат в регистре назначения внутри регистров с плавающей точкой. Данные обычно обмениваются между регистрами 108 с плавающей точкой и памятью 15 0 данных.

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

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

Детектор 112 квантового исключения одного из предпочтительных вариантов осуществления формулирует «квантовое исключение» для указания того, что результат, предоставленный блоком вычислений 110 с плавающей десятичной точкой, содержит значение кванта или экспоненты, значение которой отличается от предпочтительного значения кванта. Формулировка и обработка квантового исключения одного из предпочтительных вариантов осуществления являются подобными другим исключениям обработки с плавающей точкой. Формулировка квантового исключения в одном из предпочтительных вариантов осуществления отражается во флагах 122 квантового исключения, которые сохраняются блоком вычислений 110 с плавающей точкой одного из предпочтительных вариантов осуществления, и, которые могут в переменной форме назначить код исключения для идентификации сформулированного исключения с плавающей десятичной точкой, например, квантового исключения.

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

Регистр 106 управления исключением позволяет, например, установку масок для управления ответами на различные исключения с плавающей точкой, такие как исключения, определенные стандартом IEEE 754-2008. Кроме того, для разрешения определения масок для исключения, определенных различными стандартами, один из предпочтительных вариантов осуществления настоящего изобретения содержит дополнительный бит маски для управления обработкой, которая возникает в ответ на формулирование вышеописанного квантового исключения. В одном из предпочтительных вариантов осуществления при возникновении квантового исключения, если бит маски квантового исключения имеет единичное состояние, результат арифметического вычисления, предоставленный блоком вычислений с плавающей десятичной точкой, который содержит квант, отличный от предпочтительного кванта, записывается в регистр 120 результата в регистрах 108 с плавающей точкой и программный контроллер 124 сигнализирует о прерывании выполнения программы обработчиком прерываний программы. При возникновении квантового исключения, если бит маски квантового исключения имеет неединичное состояние, флаг 122 квантового исключения устанавливается в качестве флага закрепления и выполнение программы продолжается без прерывания обработчиком прерываний программы. «Флаг закрепления» флага 122 квантового исключения в одном из предпочтительных вариантов осуществления остается установленным во время обработки последующих команд для обеспечения отсроченного обнаружения и итоговой обработки в ответ на квантовое исключение после выполнения последовательности команд, следующих за возникновением квантового исключения.

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

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

В одном из предпочтительных вариантов осуществления поле управления выбранными командами с плавающей десятичной точкой, которое используется для управления другими исключениями, расширяется для кодирования поля управления квантового исключения, включающего биты управления квантового исключения (например, XqC биты). В одном из вариантов осуществления биты (XqC бит) управления квантовым исключением кодируются в поле (RMC) управления режимом округления выбранных команд с плавающей десятичной точкой. RMC поле в одном из примеров является четырех (4)-битовым полем, где значения, равные 0 и 8-15, были ранее определены для управления исключениями, связанными с конкретными явными режимами округления. В этом примере поле управления квантовым исключением одного из предпочтительных вариантов осуществления предназначается для значений RMC поля, равных 1-7. Значения RMC поля, равные 1-7, обеспечивают квантовые исключения и выбирают определенные режимы округления для этих значений. Установка значений RMC поля для этих выбранных команд, равных 0 или 8-15, приводит к не обнаружению квантовых исключений при выполнении этих команд. Значения RMC поля, равные 1-7, однако приводят к обнаружению квантовых исключений и соответствующему изменению выполнения программы.

На ФИГ.2 изображено выполнение 200 операции с плавающей десятичной точкой в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения. Выполнение 200 операции с плавающей десятичной точкой начинается с приема 202 команды для операции с плавающей десятичной точкой, которая выполняется блоком вычислений 102 с плавающей десятичной точкой. В одном из предпочтительных вариантов осуществления полученная команда операции с плавающей десятичной точкой является частью программы, хранящейся в памяти 152 программы, и принимается программным контроллером 124 процессора 100 компьютера. Программный контроллер 124 передает полученную команду операции с плавающей десятичной точкой на блок вычислений 110 с плавающей десятичной точкой для выполнения. В одном из предпочтительных вариантов осуществления команда с плавающей десятичной точкой определяет первый исходный операнд, Операнд A 102, и второй исходный операнд, Операнд B 104. Несмотря на то, что эти два исходных операнда изображены в качестве постоянно находящихся в регистрах 108 с плавающей точкой, различные режимы адресации могут быть использованы для определения исходных операндов и операндов назначения, которые размещаются в различных ячейках, как будет ясно специалистам-практикам в данной области техники в свете настоящего обсуждения.

Обработка продолжается в виде считывания 204 первого исходного операнда, Операнда A 102, и считывания 206 второго исходного операнда, Операнда B 104. Предпочтительные варианты осуществления позволяют принимать один или несколько операндов процессором команд с использованием любых подходящих средств. Затем обнаруживается 208 предпочтительный квант для результата, который должен быть предоставлен путем получения операции с плавающей десятичной точкой. В одном из предпочтительных вариантов осуществления предпочтительный квант обнаруживается, по меньшей мере частично, на основе значений двух исходных операндов, Операнда A 102 и Операнда B 104.

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

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

Если маска квантового исключения определяется 220 в качестве установленной, тогда процессор сохраняет 230 результат операции с плавающей десятичной точкой в ячейке 120 результата или назначения, такой как регистр 120 результата регистров 108 с плавающей точкой. Квантовое исключение указывается на выходе программного контроллера 124, вызывая прерывание 232 выполнения программы обработчиком прерываний программы.

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

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

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

После сохранения 214 результата или установки 224 флага квантового исключения обработка определяет 240, имеются ли еще команды для выполнения. Один из предпочтительных вариантов осуществления настоящего изобретения позволяет выполнение последовательности команд без установленной маски квантового исключения, так что квантовое исключение, возникающее во время выполнения любой команды этой последовательности, вызовет установку флага 122 закрепления квантового исключения и позволит продолжение выполнения этой последовательности команд. Флаг 122 закрепления квантового исключения затем рассматривается, как описано ниже, для определения того, возникло ли квантовое исключение во время последовательности команд. Если флаг 122 закрепления квантового исключения определяется в качестве установленного в конце такой последовательности команд, тогда выполнение программы изменяется для выполнения особой обработки в ответ на возникновение изменения кванта, которое указывает на возникновение квантового исключения.

Если имеется большее количество команд, тогда осуществляется определение 242 того, является ли следующая команда командой с плавающей десятичной точкой. Если следующая команда является командой с плавающей десятичной точкой, тогда обработка возвращается к приему 202 этой команды с плавающей десятичной точкой. Если следующая команда не является командой с плавающей десятичной точкой, тогда обработка возвращается к определению 240 того, имеются ли еще команды для выполнения.

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

Система обработки информации

Как оценит специалист в данной области техники, особенности