Jump to content

Версия IEEE 754-2008

(Перенаправлено из IEEE 754-2008 )

IEEE 754-2008 (ранее известный как IEEE 754r ) представляет собой пересмотренную версию стандарта IEEE 754 для арифметики с плавающей запятой . Он был опубликован в августе 2008 года и представляет собой значительную переработку стандарта IEEE 754-1985 и заменяет его .Версия 2008 года расширила предыдущий стандарт там, где это было необходимо, добавила десятичную арифметику и форматы, ужесточила некоторые области исходного стандарта, которые остались неопределенными, и объединила их в IEEE 854 (стандарт с плавающей запятой, независимый от системы счисления).В некоторых случаях, когда более строгие определения двоичной арифметики с плавающей запятой могли быть несовместимы с производительностью некоторых существующих реализаций, они делались необязательными.В 2019 году он был дополнен незначительной доработкой IEEE 754-2019 . [1]

Процесс пересмотра [ править ]

Стандарт находился на стадии пересмотра с 2000 года, срок завершения - декабрь 2006 года. Пересмотр стандарта IEEE в целом состоит из трех этапов:

  1. Рабочая группа – комитет, создающий проект стандарта.
  2. Голосование – заинтересованные стороны подписываются на группу для голосования и голосуют по проекту (75% группы должны принять участие, и 75% должны одобрить проект для дальнейшего продвижения); комментарии по результатам голосования разрешаются Комитетом по резолюциям бюллетеней (BRC), и внесенные изменения должны быть повторно распространены в новом бюллетене, если они являются существенными.
  3. Когда все комментарии разрешены и дальнейших изменений нет, проект передается в IEEE на рассмотрение, утверждение и публикацию (это также может привести к внесению изменений и голосованию, хотя это бывает редко).

11 июня 2008 г. он был единогласно одобрен Ревизионным комитетом IEEE (RevCom) и официально одобрен Советом по стандартам IEEE-SA 12 июня 2008 г. Он был опубликован 29 августа 2008 г.

754r Фаза рабочей группы [ править ]

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

Временами прогресс был медленным, в результате чего председатель заявил на заседании 15 сентября 2005 г. [2] что «никакого прогресса не наблюдается, я приостанавливаю эти встречи до дальнейшего уведомления по этим причинам». В декабре 2005 года комитет был реорганизован в соответствии с новыми правилами, намеченный на декабрь 2006 года.

Новая политика и процедуры были приняты в феврале 2006 года. В сентябре 2006 года был одобрен рабочий проект для отправки в родительский комитет-спонсор (Комитет по стандартизации микропроцессоров IEEE, или MSC) для редактирования и отправки для спонсорского голосования.

754r Этап голосования [ править ]

Последняя версия проекта, версия 1.2.5, была представлена ​​в MSC 4 октября 2006 года. [3] MSC принял проект 9 октября 2006 г. В ходе голосования в проект были внесены существенные изменения.

Первое голосование спонсоров проходило с 29 ноября 2006 г. по 28 декабря 2006 г. Из 84 членов голосующего органа ответили 85,7% - 78,6% проголосовали за одобрение. Были отрицательные голоса (и более 400 комментариев), поэтому в марте 2007 года было проведено повторное голосование; это получило одобрение 84%. В результате этого голосования было получено достаточно комментариев (более 130), поэтому был подготовлен третий проект для второго, 15-дневного повторного голосования, которое началось в середине апреля 2007 года. По технической причине процесс голосования был возобновлен с четвертого голосования в октябре. 2007 г.; в проект также были внесены существенные изменения в результате комментариев 650 избирателей и запросов спонсора (IEEE MSC); этот бюллетень просто не набрал требуемых 75% одобрения. На пятый тур голосования было получено 98,0% ответов при 91,0% одобрения, причем комментарии привели к относительно небольшим изменениям. Рейтинг одобрения 6-го, 7-го и 8-го голосования составил более 90%, при этом количество комментариев по каждому проекту становилось все меньше; восьмой (в котором не было комментариев, входящих в объем работы: 9 повторяли предыдущие комментарии, а один относился к материалу, отсутствующему в проекте) был представлен Комитету по пересмотру стандартов IEEE («RevCom») для утверждения в качестве стандарта IEEE.

754r Этап рассмотрения и утверждения [ править ]

Комитет по пересмотру стандартов IEEE (RevCom) рассмотрел и единогласно одобрил проект IEEE 754r на своем заседании в июне 2008 года, и он был одобрен Советом по стандартизации IEEE-SA 12 июня 2008 года. Окончательное редактирование завершено, и документ теперь отправлен в Отдел публикаций стандартов IEEE для публикации.

Публикация IEEE Std 754-2008 [ править ]

Новый стандарт IEEE 754 (формально IEEE Std 754-2008, стандарт IEEE для арифметики с плавающей запятой) был опубликован Компьютерным обществом IEEE 29 августа 2008 года и доступен на веб-сайте IEEE Xplore. [4]

Этот стандарт заменяет IEEE 754-1985 . IEEE 854, независимый от Radix стандарт чисел с плавающей запятой, был отменен в декабре 2008 года.

Краткое изложение изменений [ править ]

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

Пункт 1: Обзор [ править ]

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

Пункт 2: Определения [ править ]

Многие определения были переписаны для ясности и последовательности. Некоторые термины были переименованы для ясности (например, денормализованный был переименован в субнормальный ).

Пункт 3: Форматы [ править ]

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

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

  1. теоретические действительные числа (расширенная числовая линия)
  2. объекты, которые могут быть представлены в формате (конечный набор чисел вместе с −0 , бесконечностями и NaN )
  3. конкретные представления сущностей: знак-показатель-значение и т. д.
  4. используемый битовый шаблон (кодировка).

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

В форматы двоичного обмена добавлены « половинная точность » (16-битный формат хранения) и « четверенная точность » (128-битный формат), а также обобщенные формулы для некоторых более широких форматов; базовые форматы имеют 32-битную, 64-битную и 128-битную кодировку.

Описаны три новых десятичных формата, соответствующие длинам 32–128-битных двоичных форматов. Они дают десятичные форматы обмена с 7-, 16- и 34-значными мантиссами, которые могут быть нормализованными или ненормализованными. Для максимального диапазона и точности форматы объединяют часть показателя степени и мантиссы в поле комбинации , а остальную часть мантиссы сжимают, используя либо кодировку десятичного целого числа (которая использует Densely Packed Decimal , или DPD, сжатую форму BCD ). или обычное двоичное целочисленное кодирование. Базовыми форматами являются два больших размера, имеющие 64-битную и 128-битную кодировку. Также указаны обобщенные формулы для некоторых других форматов обмена.

Расширенные и расширяемые форматы позволяют выполнять арифметические действия с другой точностью и диапазоном.

Пункт 4: Атрибуты и округление [ править ]

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

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

Пункт 5: Операции [ править ]

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

Новые операции включают объединенное умножение-сложение (FMA), явные преобразования, предикаты классификации (isNan( x ) и т. д.), различные функции min и max, общий предикат упорядочивания и две операции, специфичные для десятичных чисел (samequantum и quantize).

Мин и максимум [ править ]

Операции min и max определены, но оставляют некоторую свободу действий для случая, когда входные данные равны по значению, но различаются по представлению. В частности:

  • min(+0,−0) или min(−0,+0) должен выдавать что-то со значением 0, но всегда может возвращать первый аргумент.

Чтобы поддерживать такие операции, как обработка окон, в которых ввод NaN должен быть незаметно заменен одной из конечных точек, min и max определены для выбора числа x вместо тихого NaN:

  • min(x,qNaN) = min(qNaN,x) = x
  • max(x,qNaN) = max(qNaN,x) = x

Эти функции называются minNum и maxNum, чтобы указать на их предпочтение числу перед молчаливым NaN. Однако при наличии сигнального входа NaN возвращается тихий NaN, как и при обычных операциях. После публикации стандарта было замечено, что эти правила делают эти операции неассоциативными; по этой причине они были заменены новыми операциями в IEEE 754-2019 .

Десятичная арифметика [ править ]

десятичная арифметика, совместимая с используемой в Java , C# , PL/I , COBOL , Python , REXX В этом разделе также определяется и т. д. В общем, десятичная арифметика следует тем же правилам, что и двоичная арифметика (результаты правильно округляются и т. д.), с дополнительными правилами, определяющими показатель степени результата (во многих случаях возможно более одного).

Правильно округленная базовая конверсия [ править ]

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

Пункт 6: Бесконечность, NaN знаковый и бит

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

Пункт 7: Обработка исключений по умолчанию [ править ]

Этот пункт был переработан и существенно уточнен, но без существенных дополнений.

Пункт 8: Альтернативная обработка исключений [ править ]

Этот пункт был расширен по сравнению с предыдущим разделом 8 («Ловушки»), чтобы разрешить дополнительную обработку исключений в различных формах, включая ловушки и другие модели, такие как try/catch. Ловушки и другие механизмы исключений остаются необязательными, как и в IEEE 754-1985.

Раздел 9: Рекомендуемые операции [ править ]

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

Раздел 10: Оценка выражения [ править ]

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

Раздел 11: Воспроизводимость [ править ]

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

Приложение А: Библиография [ править ]

Это приложение является новым; в нем перечислены некоторые полезные ссылки.

Приложение B: Поддержка отладки программ [ править ]

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

Указатель операций [ править ]

Это новый индекс, в котором перечислены все операции, описанные в стандарте (обязательные или необязательные).

Обсуждается, но не включено [ править ]

Из-за изменений в конструкции и разработке ЦП стандарт IEEE 2008 года с плавающей запятой можно рассматривать как исторический или устаревший, как и стандарт 1985 года, который он заменил. Было много внешних дискуссий и вопросов, не охваченных процессом стандартизации; приведенные ниже элементы стали общеизвестными:

  • Приложение «L» рекомендовало разработчикам языка, как привязывать элементы стандарта к функциям языка.
  • В приложении «U» представлены рекомендации по выбору числовых определений нижнего значения.
В 754 определение «недополнения» заключалось в том, что результат крошечный и приводит к потере точности.
Для определения условия «крошечности» допускались два определения: до или после округления бесконечно точного результата до рабочей точности с неограниченным показателем степени.
Допускались два определения потери точности: неточный результат или потеря, вызванная только денормализацией. Ни одна из известных аппаратных систем не реализовала последнюю, и она была удалена из пересмотренного стандарта как опция.
Приложение U к 754r рекомендовало, чтобы причиной сигнала недостаточного заполнения была только небольшая величина после округления и неточность, поскольку потеря точности.
  • В приложении «Z» представлены дополнительные типы данных для поддержки других форматов с плавающей запятой фиксированной ширины, а также форматов произвольной точности (т. е. где точность представления и округления определяется во время выполнения) – часть этого материала была перенесена в основная часть проекта путем обобщения раздела 5. Произвольная точность была исключена.
  • Наследование и распространение режимов (обработка исключений, предварительная подстановка, округление) и флагов (неточное, недостаточное, переполнение, деление на ноль, недопустимое). Желание состоит в том, чтобы флаги передавались вызывающей стороне; и изменения режима могут быть унаследованы вызываемым абонентом, но не влиять на вызывающего абонента.
  • Интервальная и другая арифметика обсуждались, но не были включены, так как выходят за рамки (и представляют собой большую часть работы сами по себе). В 2008 году начинается работа над предлагаемым стандартом IEEE для интервальной арифметики.

Ссылки [ править ]

  1. ^ «ANSI/IEEE Std 754-2019» . 754r.ucbtest.org . Проверено 6 августа 2019 г.
  2. ^ «Встреча 15 сентября 2005 года» . [ мертвая ссылка ]
  3. ^ ПРОЕКТ Стандарта арифметики с плавающей запятой P754, версия 1.2.5. Пересмотр стандарта ANSI/IEEE 754-1985 (отчет). 04.10.2006.
  4. ^ 754-2008 — Стандарт IEEE для арифметики с плавающей запятой . ИИЭЭ . 29 августа 2008 г. дои : 10.1109/IEESTD.2008.4610935 . ISBN  978-0-7381-5752-8 . (Примечание. Заменен стандартом IEEE Std 754-2019, пересмотренной версией IEEE 754-2008.)

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f92880390a63d5940bf53bc0328b8d9b__1695988860
URL1:https://arc.ask3.ru/arc/aa/f9/9b/f92880390a63d5940bf53bc0328b8d9b.html
Заголовок, (Title) документа по адресу, URL1:
IEEE 754-2008 revision - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)