[an error occurred while processing this directive]
|
во первых в современных процах сдвиг со сложением выполняется ровно столько же, сколько и умножение со сложением. То есть адын такт. То есть N=1. Про векторные блоки ничего не скажу, ибо не знаю. Про ПЛИС согласен - если нужен сдвигатель с переменным значением сдвига, то это жопа. Но если с постоянным - то никаких ресурсов не надо, просто взял нужные разряды входного данного и всех делов.
Про ASIC интересно. Это что это за одноячейковые умножители? Типа артизановского мемори компилера есть какие-то мультиплиер-компилеры? А вообще в реальности 40-битный баррелевский сдвигатель занимает меньше места, чем умножитель 17x17. Это на вентилях и при условии одинаковых констрейнов вход=>выход.
Про оптимизацию - с переходами согласен, используйте больше условного выполнения команд и условного занесения результата в приемник при выполнении команд. А про память - не надо экономить обращения туда. Надо правильно располагать данные, чтобы одновременное их чтение не вызывало ступора в конвейере. Для этого (оптимизации по памяти) даже ассемблер не надо использовать. Это линкерово занятие.
E-mail: info@telesys.ru