А о реализации троичного умножения с представлением трита двумя битами не думал? 18 троичных разрядов это 28 двоичных емнип количество линий и точность будут скорее примерно равными, но со знаком мучаться не прийдётся уже.
Пока не задумывался. Знаю, что ур. троичные операции куда элегантнее - не нужно делать расширение знака при изменении разрядности, не нужно делать округление (простое отсечение - и есть лучшее округление до нужной точности), не нужно специально рассматривать старший бит, проще делается изменение знака, диапазон значений симметричен относительно нуля.
Но сначала надо было посмотреть всё то же самое в двоичном виде, чтобы было, с чем сравнивать. До прошлого месяца я был уверен, что корректное округление аппаратно реализовать очень тяжело, а оказалось - оно очень органично ложится :)
Может, летом попробую и в тритах то же самое сделать.
Оказывается, есть довольно прикольное "уравновешенное четверичное" умножение для самого обычного бинарного представления, позволяющее на одном самом обычном сумматоре за каждый такт обрабатывать по 2 "строки", так что 16-битный умножитель выполнит работу за 8 тактов.
Не знаю, использовалось ли оно в на практике, но брату про него рассказывали на "теории автоматов".
На удивление здорово ложится в альтеровские/интеловские/воронежские ПЛИС.
Comments 3
Reply
Но сначала надо было посмотреть всё то же самое в двоичном виде, чтобы было, с чем сравнивать. До прошлого месяца я был уверен, что корректное округление аппаратно реализовать очень тяжело, а оказалось - оно очень органично ложится :)
Может, летом попробую и в тритах то же самое сделать.
Reply
Не знаю, использовалось ли оно в на практике, но брату про него рассказывали на "теории автоматов".
На удивление здорово ложится в альтеровские/интеловские/воронежские ПЛИС.
Reply
Leave a comment