Kopart 0 28 сентября, 2006 Опубликовано 28 сентября, 2006 · Жалоба Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 29 сентября, 2006 Опубликовано 29 сентября, 2006 · Жалоба Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 29 сентября, 2006 Опубликовано 29 сентября, 2006 · Жалоба Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Такие простые вещи уже отработаны. Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом. Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0) Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику. В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 29 сентября, 2006 Опубликовано 29 сентября, 2006 · Жалоба Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Такие простые вещи уже отработаны. Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом. Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0) Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику. В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... нет, до таких тонкостей я как то не копал. Одно помню, что в ИЕЕЕ зафиксированы минус бесконечность и плюс бесконечность и в них надо уметь приходить и из них не возвращаться, а вот накопление ошибки при сложении нулей - это проблема скорее программиста а не архитектора, насколько я помню программистическое прошлое:)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться