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

Реферат

 

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

Область техники Изобретение относится к процессорам и, в частности, к способам обнаружения потери значимости при выполнении избранных операций процессора.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настоящее изобретение проиллюстрировано относительно стандарта IEEE 745, но изобретение не ограничено этим стандартом. Согласно стандарту IEEE 745, потеря значимости определена относительно "слишком маленького значения" и "неточности", и результат проверяется на предмет "слишком маленького значения" после его округления. Результат считается "слишком маленьким", если результат, вычисленный как если бы диапазон показателей был неограниченным, давал бы не нулевое значение, которое находится строго между +2Пок.(мин) и -2 Пок.(мин). Здесь Пок.(мин) - это наименьший показатель в данном представлении. Часто бывает важно выявить "слишком маленькие" результаты, поскольку они могут приводить к переполнению, если они действуют как делители при последующих вычислениях. Результат считается "неточным", согласно этому же стандарту, когда он отличается от результата, который был бы вычислен, если и диапазон показателей, и точность были неограниченными.

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

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

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

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

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

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

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

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

На фиг.2 показана блок-схема одного варианта выполнения поля 120 состояния. Описанный вариант выполнения поля 120 состояния включает в себя управляющее поле 210 и поле 260 признаков. Управляющее поле 210 включает ряд подполей для установки режима, в котором должна выполняться операция. Поле 260 признаков включает в себя ряд подполей, например, флагов состояния, каждый из которых может устанавливаться или сбрасываться в соответствии с соответствующим свойством результата, генерированного операцией. Например, флаги состояния могут быть флагами исключительной ситуации, которые используются для обозначения, возникают ли различные исключительные ситуации при вычислении результата. Таблицы 1, 2 и 3 суммируют информацию об управляющих подполях для одного варианта выполнения управляющего поля 210. Таблица 4 суммирует информацию о подполях состояния для одного варианта выполнения поля 260 признака.

Здесь режим Ftz приводит к получению результатов, заключающихся в том, что когда встречается "слишком маленькая" величина, она усекается до нулевого значения с правильным знаком, когда установлен бит 0. Когда установлен бит 6, режим Td предотвращает активизацию процессором обработчика исключительных ситуаций, если подполя признака, представляющие определенные исключительные ситуации, обнаружены в результате арифметической операции. Это предоставляет альтернативный механизм маскирования исключительных ситуаций маскирующими битами 112 в поле 110 прерывания. Режимы Wre, Рс и Rс работают в сочетании с признаком завершения команды для обозначения того, как результат операции с плавающей точкой должен быть округлен. Признак завершения команды, wre и рс устанавливают точность мантиссы и диапазон показателя результата. Разные режимы для одного варианта осуществления изобретения суммированы в Таблицах 2 и 3.

В Таблице 2 IA относится к элементам архитектуры Intel, PA-RISC относится к элементам архитектуры Hewlett Packard, SP обозначает одинарную точность, DP обозначает двойную точность и DE обозначает двойную повышенную точность.

Подполя 260 признаков и описания для раскрытого варианта выполнения регистра 100 состояния с плавающей точкой сведены в Таблице 4. Для одного варианта осуществления изобретения все флаги состояния являются битами закрепления в памяти, которые должны задаваться и сбрасываться явно, например, командой сброса. Флаги состояния исключительной ситуации, определенные согласно стандарту IEEE 745, обозначены как ИИЭР в круглых скобках. Логический блок выполнения операций с плавающей точкой, который используется для выполнения операций с плавающей точкой, выявляет разные состояния, представленные флагами подполя 260, и устанавливает флаги соответственно. Например, логический блок выполнения операций с плавающей точкой устанавливает второй промежуточный бит О округления, если результат, генерированный операцией с плавающей точкой, слишком большой (согласно стандарту IEEE 745) для представления в формате, заданном для результата.

Здесь D обозначает бит закрепления в памяти, который установлен, когда команда употребляет операнд в ненормализованном формате. Операнд является ненормализованным, когда старший значащий бит операнда равен нулю в заданном формате данных. U - это второй промежуточный бит округления по ИИЭР, который устанавливается, когда возникает исключительная ситуация потери значимости для результата операции с плавающей точкой. Если исключительная ситуация потери значимости не маскирована, например, когда не установлен соответствующий маскирующий бит, U устанавливается, когда операция с плавающей точкой генерирует результат, который меньше наименьшего числа, которое может быть представлено с использованием доступных битов порядка, то есть который является "слишком маленьким" для представления. Если исключительная ситуация потери значимости маскирована, например, когда установлен соответствующий маскирующий бит, U устанавливается, только если результат и "слишком маленький" и "неточный". Как отмечалось выше, состояние U зависит от того, маскирована ли исключительная ситуация потери значимости согласно IEEE 745 или не маскирована. В описанном варианте осуществления изобретения это обозначается логическим состоянием соответствующего маскирующего бита.

Т - это новый флаг состояния, который был задан для осуществления настоящего изобретения. Для одного варианта осуществления изобретения Т является битом закрепления в памяти, который устанавливается, когда результат, генерированный командой, является слишком маленьким для представления. Состояние бита Т закрепления в памяти независимо от состояния любого из маскирующих битов в поле 110 прерывания (или Тd в управляющем поле 210). В раскрытом варианте осуществления изобретения он устанавливается, когда результат определяется как слишком маленький, и он сбрасывается командой сброса. В одном варианте осуществления изобретения зарезервированный бит в регистре 100 состояния с плавающей точкой может назначаться равным Т. Хотя "слишком маленький" результат определен стандартом IEEE 745, этот стандарт не определяет отдельную исключительную ситуацию "слишком маленького" результата. Точнее, согласно стандарту IEEE 745 его относят к исключительной ситуации U потери значимости. По этой причине Т не обозначен как ИИЭР в Таблице 4.

На фиг.3 показана схема на уровне блоков, представляющая процессор 300, который выполняет операцию с плавающей точкой согласно настоящему изобретению. Также показано запоминающее устройство 350 для хранения команд для выполнения процессором 300. Процессор 300 включает в себя блок 310 выполнения операций с плавающей точкой и регистровый файл (массив) 320 с плавающей точкой. Регистровый файл 320 с плавающей точкой включает в себя регистры 330(1)-330(n) (названные в целом "регистры 330"), которые выдают исходные операнды в блок 310 выполнения операций и принимают операнды результата от блока 310 выполнения операций в соответствии с командой с плавающей точкой (FP INST). Команда с плавающей точкой работает в сочетании с регистром 100 состояния с плавающей точкой для управления блоком 310 выполнения операций. Регистр состояния с плавающей точкой содержит флаг Т исключительной ситуации "слишком маленький" для отслеживания "слишком маленького" значения любых результатов, генерированных блоком 310 выполнения операций.

Блок 310 выполнения операций принимает указание (индикатор) об операции, которую необходимо выполнить, и режиме, в котором она должна быть выполнена, от команды с плавающей точкой и регистра 100 состояния с плавающей точкой. Регистровый файл 320 выдает исходные операнды блоку 310 выполнения операций из регистров 330, указанных (индицированных) командой с плавающей точкой. В описанном варианте осуществления изобретения операции с плавающей точкой могут требовать от одного до трех исходных операндов. Блок 310 выполнения операций выдает результат указанной операции в регистр 330, указанный командой с плавающей точкой, например регистр 330(n). Регистром 330(n) может быть один из исходных регистров или им может быть отдельный регистр. При необходимости блок 310 выполнения операций также обновляет регистр 100 состояния с плавающей точкой согласно состоянию результата, генерированного операцией с плавающей точкой. Например, блок 310 выполнения операций может установить один или более флагов состояния исключительной ситуации в поле состояния регистра 100 состояния с плавающей точкой, если результат является исключительным согласно одному или более определений согласно стандарту IEEE 745. Согласно настоящему изобретению, блок 310 выполнения операций может устанавливать флаг Т состояния "слишком маленький" в регистре 100 состояния с плавающей точкой, если результат соответствует определению "слишком маленький" согласно стандарту IEEE 745.

На фиг. 4 показано общее представление о способе 400 выявления немаскированных исключительных ситуаций потери значимости согласно настоящему изобретению. Флаги состояния устанавливаются на этапе 410 в исходное состояние для команды (команд), которая должна выполняться. В одном варианте осуществления изобретения это может осуществляться посредством команды Clear_ Flags (сброс флагов), которая устанавливает все флаги состояния в положение, показывающее, что исключительной ситуации обнаружено не было. В варианте применения флагов состояния, показанных в таблице 4, флаги состояния V, D, Z, О, U, I и Т сбрасываются на ноль. Исключительные ситуации затем маскируют на этапе 420 так, что спекулятивно выполненная команда (команды) не переориентирует работу процессора, если обнаружена исключительная ситуация в результате (результатах), генерированном командой (командами). В одном варианте осуществления изобретения это может осуществляться установкой маскирующих битов 112 в поле 110 прерываний для маскирования соответствующих исключительных ситуаций. В альтернативном варианте маскирующий бит TD может устанавливаться в управляющем поле 210. Для флага Т исключительной ситуации маскирующий бит не применяется, поскольку его состояние не используется для инициирования обработчика исключительных ситуаций.

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

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

Clear_Flags (сброс флагов исключительной ситуации, включая Т) Set_ FPSR (установка в исходное состояние режима регистра состояния с плавающей точкой, маскирующих битов) FP1 (выполнение 1-й команды с плавающей точкой с использованием 1-го поля состояния) FP2 (выполнение 2-й команды с плавающей точкой с использованием 2-го поля состояния) FPn (выполнение n-й команды с плавающей точкой с использованием n-го поля состояния) Read_ Flags (считывание флагов состояния, включая Т, для идентификации исключительных результатов) Таким образом, предоставляется способ обнаружения немаскированных исключительных ситуаций потери значимости для спекулятивно выполняемых команд. Согласно способу, используется флаг состояния исключительной ситуации, который может устанавливаться аппаратным обеспечением с плавающей точкой, когда результат, генерированный командой, является "слишком маленьким". Все флаги состояния исключительной ситуации сбрасываются и, для спекулятивно выполняемых команд, все исключительные ситуации, включая исключительную ситуацию потери значимости, маскируются. Команда (команды) выполняется, и флаг состояния исключительной ситуации "слишком маленький" считывается для определения, генерировал ли результат (результаты) немаскированную исключительную ситуацию потери значимости.

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

Формула изобретения

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

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

3. Способ по п.1, в котором сброс первого флага состояния содержит выполнение команды сброса флага состояния.

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

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

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

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

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

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

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

РИСУНКИ

Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8