Kopart 0 September 28, 2006 Posted September 28, 2006 · Report post Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 September 29, 2006 Posted September 29, 2006 · Report post Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Quote Share this post Link to post Share on other sites More sharing options...
Kopart 0 September 29, 2006 Posted September 29, 2006 · Report post Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Такие простые вещи уже отработаны. Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом. Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0) Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику. В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 September 29, 2006 Posted September 29, 2006 · Report post Приветствуются любые соображения по стандарту "плавующей" точки при аппаратной реализации работы с денормализованными числами. когда то при мне такое делали, реализовывали программную плавающую точку. В качестве тестов был выбран очень простой метод. Рандомно генерились числа и проверялись основные арифметические правила. ab=ba a(b+c)=ab+ac=ba+ca=(b+c)a ну и так далее. Потом это просто запускалось с остановками и записями тех чисел, что не срослись, с начало выдавались ошибки, потом реже, последняя ошибка была найдена после нескольких часов удачных перемножений. Теперь ошибок вроде нет:)... Если у вас полный сопроцессор, то можно суда еще сложение, вычитание, деление запихать и так далее... ну и считать, считать, считать... Такие простые вещи уже отработаны. Есть си'шная функция, которая эмулирует программно работу сопроцессора, и затем хардверный результат сравнивается с ее результатом. Тут больше вопрос к работе с денормализованными числами и правильностью округления, а также специфичные проблемы стандарта IEEE 754 (Например сколько будет из -0 вычесть -0 или +0 сложить с -0) Те не попадались шаблоны данных для проверки таких вешей? А затем можно в бесконечном цикле рандомно проверять арифметику. В идеале, если такие шаблоны сразу в стандарте команд ARM'a. Ну это мечты... нет, до таких тонкостей я как то не копал. Одно помню, что в ИЕЕЕ зафиксированы минус бесконечность и плюс бесконечность и в них надо уметь приходить и из них не возвращаться, а вот накопление ошибки при сложении нулей - это проблема скорее программиста а не архитектора, насколько я помню программистическое прошлое:)... Quote Share this post Link to post Share on other sites More sharing options...