С делением практически покончено
Apr. 12th, 2019 12:29 amМне удалось избавиться от сравнения абсолютных величин мантисс в первом такте деления (путем дополнительного такта с пробным вычитанием) и от сравнения полноразрядной мантиссы с величиной -0.25; также мне удалось ликвидировать регистр inc2. Это делает алгоритм деления чуть ближе к аутентичному (close, but no cigar, still).
Тест АУ по-прежнему проходит, разумеется, но на тактовую частоту эти изменения повлияли негативно (в частности, раз стало меньше регистров, то увеличилась глубина логики на оставшихся). Несильно, конечно - всё равно больше 120 МГц, но вы мне скажите, имеет ли еще смысл возиться и коммитить, или оставим детям для развлечения?
Использованный в БЭСМ-6 алгоритм деления - двоичный SRT. Тест АУ не видит разницы между выбором 0 в качестве очередной цифры частного при значении остатка в диапазоне -0.25 < x < 0.25 (для строгого сравнения отрицательного числа нужны все разряды) и при -0.125 <= x < 0.25 (тут в обоих случаях достаточно сравнивать 3-4 старших бита мантиссы).
Upd: Проверка случайным тестом показывает, что есть разница между исходным и упрощенным сравнением, которая ухудшает сбалансированность округления, но, увы, тестом АУ не ловится. Так что оставляем как было до поры.
Тест АУ по-прежнему проходит, разумеется, но на тактовую частоту эти изменения повлияли негативно (в частности, раз стало меньше регистров, то увеличилась глубина логики на оставшихся). Несильно, конечно - всё равно больше 120 МГц, но вы мне скажите, имеет ли еще смысл возиться и коммитить, или оставим детям для развлечения?
Использованный в БЭСМ-6 алгоритм деления - двоичный SRT. Тест АУ не видит разницы между выбором 0 в качестве очередной цифры частного при значении остатка в диапазоне -0.25 < x < 0.25 (для строгого сравнения отрицательного числа нужны все разряды) и при -0.125 <= x < 0.25 (тут в обоих случаях достаточно сравнивать 3-4 старших бита мантиссы).
Upd: Проверка случайным тестом показывает, что есть разница между исходным и упрощенным сравнением, которая ухудшает сбалансированность округления, но, увы, тестом АУ не ловится. Так что оставляем как было до поры.
no subject
Date: 2019-04-13 01:47 am (UTC)Думаю, что из-за того что практически всегда каждая следующая арифметическая операция зависит от результата предыдущей, суперскалярность просто не получить. Видимо, поэтому ушли в векторность на том этапе развития машин. А с изобретением RISC уже ушли в суперскалярность.
no subject
Date: 2019-04-15 06:31 pm (UTC)Вот тут на странице 135: https://drive.google.com/drive/u/0/folders/1qILSqIlTt3nIS07JFQjvd2SF_6GpDUYi
Позже придумали переименование регистров, и с ним оказалось возможным совместить суперскалярность с регистровой архитектурой. Тот же Интел так делает.