Хотя, насколько я помню, IEEE 754 ничего не говорит о режиме "flush-to-zero", чтобы быстрее обрабатывать денормализованные номера, некоторые архитектуры предложите этот режим (например, http://docs.sun.com/source/806-3568/ncg_lib.html).
В частном случае этой технической документации стандартная обработка денормализованных номеров является значением по умолчанию, а сброс в нуль должен быть явно активирован. В режиме по умолчанию денормализованные номера также обрабатываются в программном обеспечении, которое работает медленнее.
Я работаю над статическим анализатором для встроенного C, который пытается предсказать правильные (если иногда неточные) диапазоны значений, которые могут произойти во время выполнения. Он нацелен на то, чтобы быть правильным, поскольку он предназначен для использования во избежание возможности чего-то не так во время выполнения (например, для критического встроенного кода). Это требует захвата всех возможных поведений во время анализа и, следовательно, всех возможных значений, полученных при вычислениях с плавающей запятой.
В этом контексте мой вопрос двоякий:
-
среди встроенных архитектур, существуют ли архитектуры, которые предлагают только flush-to-zero? Возможно, им не пришлось бы рекламировать себя как "IEEE 754", но могли бы предлагать операции с плавающей запятой в режиме IEEE 754.
-
Для архитектур, которые предлагают как во встроенном контексте, не флеш-к-ну, вероятно, активируется системой, чтобы сделать время реакции более предсказуемым (общее ограничение для этих встроенных систем)?
Обработка flush-to-zero в арифметике интервалов, которую я использую для значений с плавающей запятой, достаточно проста, если я знаю, что мне нужно это сделать, мой вопрос - больше, нужно ли мне это делать.