Показать сообщение отдельно
Старый 13.05.2013, 19:30   #39
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Распределение памяти в контроллере

Только что попробовал загрузить пиксель множеством операций умножения двух float значений (проект в архиве 3000 mul.zip).

Пиксель 25-й, прошивка 279-ая, Смарт не задействован, тип компоновки рабочий, подключения для отладки не производил.

3000 блоков умножения.
29,11 * 1
29,11 * -1
29,11 * 2
29,11 * 4
29,11 * 8
-29.11 * -1
8 * 8

занимают 177 мс

29,11 * 0
занимает 121 мс


29,11 * 0,1
29,11 * 10
29,11 * 100
29,11 * -10
29,11 * 29,13
29,11 * 7

занимают 174 мс

Видно, что имеется разница между операциями умножения любого числа на степени двойки
и остальными (а умножения на 0 вообще особняком стоит).
Только странно, что при умножении на степени двойки затрачивается больше времени, чем при умножении на какое-либо иное число.
При этом, знаки множителей не влияют (или это не заметно) на время выполнения операций.

Так же тестировал время выполнения 3000 операций XOR с 32-разрядными числами (в частности, инвертировал старший бит числа - как бы имитация инверсии знака float переменной).
Получилось 90 мс.

Итого, время выполнения умножения на -1 действительно отличается от умножения на большинство вещественных чисел, но
а) не в пользу умножения на -1
б) разница даже при 3000 операциях умножения столь мала, что не стоит ее учитывать.

Сравнивать время выполнения 3000 MUL (float) 3000 XOR (long int) мне кажется не вполне корректно, но пусть даже если умножение float на -1 производилось бы операцией XOR, вряд ли бы это уменьшило время выполнения операции настолько значительно (в случае 3000 операций разница 84 мс, но в случае одной разница будет составлять 30 мкс, если я не ошибся в подсчетах). А часто ли нам требуется умножение именно на -1?

И в заключение: tvf, вы ужасный зануда.
Вложения
Тип файла: zip 3000 mul.zip (55.4 Кбайт, 12 просмотров)
Тип файла: zip 3000 xor.zip (54.4 Кбайт, 10 просмотров)
младшой вне форума   Ответить с цитированием