Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

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

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Сопроцессоры 8087 и утилита mcpdiag
RSS

Сопроцессоры 8087 и утилита mcpdiag

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 * 7
Печать
 
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
X и Y постоянные случайные числа! Не разные.
Грубо говоря я 255 раз умножаю 2 на 2 и запоминаю результат. Потом проверяю. Если все 255 раз ответ был 4, то меняю операнд и снова 255 раз... И вдруг на каком-то этапе ответ не сходится единственный раз из 255. Почему ответ не 4? Причем 254 раза ответ 4, а 255й не 4. Вот я о чем.
Я бы понял, если бы сопроцессор неправильно умножал 2 на 2. Но он бы одинаково неправильный ответ давал все 255 раза. А он дает единственный неверный результат из 255. Операнд 2 на 2 выбран для демонстрации идеи.
Пользовался Turbo Pascal 6.0 со встроенным компилятором.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Хмм, интересно.
Давайте проверим на более современных CPU со встроенным FPU: 486, Pentium.
pahan
Advanced Member


Откуда: Химки, М.О.
Всего сообщений: 1070
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 мар. 2015
[q]
X и Y постоянные случайные числа! Не разные.
Грубо говоря я 255 раз умножаю 2 на 2 и запоминаю результат. Потом проверяю. Если все 255 раз ответ был 4, то меняю операнд и снова 255 раз... И вдруг на каком-то этапе ответ не сходится единственный раз из 255. Почему ответ не 4? Причем 254 раза ответ 4, а 255й не 4.
[/q]
А ещё какие-то закономерности есть? Ошибка вываливается только на конкретных парах операндов/шагах цикла или всегда на разных?
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Всегда на разных итерациях. Минимум 90я итреация, максимум 400я.
На разных операндах. Одинаковые невозможно получить никогда, т.к. они берутся из генератора случайных чисел.
Результат при ошибке я выводил на экран для себя, и он имел вид: " x,xxxxxxxxxxxx..... Enn >> x,xxxxxxxxYYYY... Enn "
x- совпадающие цифры, y- отличающиеся, nn - 10 в степени nn.
Т.е. результаты представлены в виде десятичной степени. Начиная с 9го, максимум с 10го знака начинались расхождения.
После этого я уменьшил разрядность вычислений до SINGLE, и остались только 8 знаков после запятой, которые всегда совпадают.
Кстати, я не проверял сколько расхождений в массиве из 255 результатов. Может одно расхождение, а может что-то идет вразнос, и там все результаты отличные друг от друга (после 8й цифры). Я делал останов по первому расхождению.
Да, есть пища для размышлений, но нет пока желания снова попрограммировать.
GrumpyCat
Advanced Member


Откуда: Москва
Всего сообщений: 564
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 июля 2014
sanders
Похоже, это известный глюк, наблюдаемый на ULSI.

Проверьте вот это (запускать в цикле):
>1. Беpём два числа (тип double):
>a = 8.41829604081856E-1 и b = 1.58170394306106E-1
>2. Складываем: c = a + b
>3. И можем получить:
> а) Пpавильный pезультат;
> б) Hепpавильный pезультат (лажа после 9го знака);
> в) Ошибку сопpоцессоpа.

и вот это (естественно тоже в цикле):
>глюк в сопре ulsi. при операции типа 2.2345678 + 0.7654321
>он иногда выдает не 2.9999999, а ошибку.
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Вот она разгадка?!!
На выходных проверю.
А откуда информация?
GrumpyCat
Advanced Member


Откуда: Москва
Всего сообщений: 564
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 июля 2014
https://groups.google.com/forum/#!topic/fido7.su.comp.old/WvIxEz9aaT8
Ekb
Advanced Member


Всего сообщений: 1628
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 июня 2014
В теме вроде звучало про сопроцессор 387SX - это Интел? а не ULSI ?
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
387sx - это семейство. А у меня действительно воткнут ULSI
Fe-Restorator
Гость

Ссылка

GrumpyCat написал:
[q]
Похоже, это известный глюк, наблюдаемый на ULSI.
[/q]
Гут, а на i8087-мом та-же картина наблюдается? Ежли он так-же ошибками сыпет... Т.е. на-поверку, сопр i387 это разогнанный по частоте i8087-й?
Дайте ответ на оба вопроса.
Сейчас на форуме
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 * 7
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Сопроцессоры 8087 и утилита mcpdiag
RSS

0 посетителей просмотрели эту тему за последние 15 минут
В том числе: 0 гостей, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS