Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Сопроцессоры 8087 и утилита mcpdiag |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 | Печать |
sanders
Advanced Member
Профессионал Откуда: Санкт-Петербург Всего сообщений: 6434 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 26 мар. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 апреля 2015 15:03 Сообщение отредактировано: 18 апреля 2015 15:10
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 |
А ещё какие-то закономерности есть? Ошибка вываливается только на конкретных парах операндов/шагах цикла или всегда на разных? X и Y постоянные случайные числа! Не разные. |
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 |
NEW! Сообщение отправлено: 21 апреля 2015 13:27 Сообщение отредактировано: 21 апреля 2015 13:28
GrumpyCat написал: Гут, а на i8087-мом та-же картина наблюдается? Ежли он так-же ошибками сыпет... Т.е. на-поверку, сопр i387 это разогнанный по частоте i8087-й? Похоже, это известный глюк, наблюдаемый на ULSI. Дайте ответ на оба вопроса. |
Сейчас на форуме |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 * 7 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Сопроцессоры 8087 и утилита mcpdiag |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |