|
Умножение 2байтовых чисел, как лучше воспользоваться аппаратным умножителем? |
|
|
|
Nov 23 2005, 13:31
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124

|
Как можно использовать аппаратный умножитель, чтобы ускорить процедуру умножения чисел типа 16 x 9 и 16 x 8?
В первом случае совсем трудно. Для того чтоб сохранить необходимую точность, приходится использовать 9 битное значение в таком вот, например, формате:
01:C5 = 1.769227 00:B9 = 0.721208 81:30 = -1.188309 80:83 = -0.511272
Я так понимаю, что команда FMULS мне не подходит. В книге Евстифеева сказано, что формат 1.7 (страший разряд - целая часть, младший - дробная) Кстати где тогда хранится знак? и чем тогда отличается от FMUL ?
Поскольку я переделываю старую программу написанную для другого процессора, где не было аппаратного умножителя, то в принципе можно все сделать по аналогии. Но мы очень расчитывали на то, что можно будет выполнить умножение не за 85 тактов, а всего за 2. Так что вопрос быстродействия стоит ребром.
Может у кого-нибудь есть идеи по этому поводу? Буду очень благодарен
|
|
|
|
|
 |
Ответов
|
Nov 23 2005, 14:28
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124

|
в апноте в разделе про умножение 16 на 16 с 16 битным результатом есть следующаая фраза. when doing integer multiplication in C language, this is how it is done. Значит ли это, что, к примеру, в IAR C обычнфй оператор умножения работает именно так, как предлагается в аппноте? Цитата(Rash @ Nov 23 2005, 17:22)  по этой ссылке только реклама, заблокированная аутпостом...
|
|
|
|
|
Nov 23 2005, 14:47
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(skopus @ Nov 23 2005, 17:28)  в апноте в разделе про умножение 16 на 16 с 16 битным результатом есть следующаая фраза. when doing integer multiplication in C language, this is how it is done. Значит ли это, что, к примеру, в IAR C обычнфй оператор умножения работает именно так, как предлагается в аппноте? Цитата(Rash @ Nov 23 2005, 17:22)  по этой ссылке только реклама, заблокированная аутпостом... Да код в IAR получается примерно такой же как в аппноте так что можно смело пользоваться им.
|
|
|
|
Сообщений в этой теме
skopus Умножение 2байтовых чисел Nov 23 2005, 13:31 KRS По поводу знака -
для FMUL без знака исходные чис... Nov 23 2005, 14:02 Rash Смотри команды: MULS ? MULSU и т.д. в инструкциях ... Nov 23 2005, 14:11 skopus Спасибо огромное! Очень ценный PDF! Nov 23 2005, 14:14 m16 Добавлю , у атмела есть апнота Nov 23 2005, 14:20 Rash Если не вкурсе зайди сюда, тут много чё на русском... Nov 23 2005, 14:22 vet Цитата(skopus @ Nov 23 2005, 17:28) в апн... Nov 23 2005, 14:36 Rash Цитата(skopus @ Nov 23 2005, 18:28) в апн... Nov 23 2005, 14:44 mse Мож я чего не понял? А в чём проблема? Обычное умн... Nov 23 2005, 20:35 skopus блин, никогда этим не занимался
А это нужно обяза... Nov 25 2005, 10:30 Vic1 ЦитатаУмнож обычным многобайтным способом и учти, ... Nov 25 2005, 12:54 skopus так и не получилось у меня реализовать это в IAR C... Dec 9 2005, 12:01 mse ЦитатаИли может кто не поленится и напишет примерч... Dec 9 2005, 21:45 skopus а как использовать ассемблерную функцию в Си. Я уж... Dec 12 2005, 09:08 m16 skopus
Зачем это нужно? ИАР использует аппаратн... Dec 12 2005, 09:37 skopus результат его умножения я вообще не могу интерпрет... Dec 12 2005, 09:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|