|
Переход на THUMB, Имеет ли смысл рассуждение? |
|
|
|
Jan 27 2010, 16:25
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
От at91sam9261 требуется перейти на LPC2478.
Чтобы не заморачиваться особо (с переносом функций в RAM и прочим), дай думаю, запускать все в THUMB, расчитывая на то, что из флэша тубму будет немного способнее извлекаться и соответственно, чуть быстрее исполняться (типа, раз в среднем код короче, то акселератору флэш будет проще).
Но насколько сам THUMB хуже - не могу оценить. Переделка текущего проекта в THUMB (для 9261) никаких видимых (глазу) замедлений не дала.
Но разница между 9261 и 2478 по скорости очень велика, и видимо, это как-то скажется. (Но сейчас 2478 нет в наличии, чтобы проверить).
Вот и нужен совет - делать все как люди делают (часть кода в РАМ, перемежать тумб режим и арм и прочая) или сойдет и так? Т.е. насколько много дают прирост производительности все эти меры? ---- Программа особо ничего не делает, просто выводит текст на экран 480х272 (24 бита). Остальные задачи еще мельче. Ну, еще все это работает под переключателем задач раз в миллисекунду (на базе freeRTOS - в смысле, переключение контекста оттуда).
Сообщение отредактировал DpInRock - Jan 27 2010, 16:33
--------------------
On the road again (Canned Heat)
|
|
|
|
|
 |
Ответов
|
Jan 28 2010, 19:40
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(DpInRock @ Jan 28 2010, 21:18)  Отключение кэша снижает скорость вывода (с декодированием) раза в 2. (На глаз. А Вы "на глаз" не меряйте - сделайте простенький профайлер - uint32 счетчик тикающий по прерыванию с какой-нибудь подходящей частотой - например от 1кГц, при вызове процедуры - счетчик запомнили, вышли из процедуры - вычли из нового значения счетчика (он же в прерывании протикал, верно?) запомненное - вот и получите время исполнения процедуры в "тиках". Тем более, у Вас различия в скорости разных вариантов не на порядки - "на глаз" никак нормально не оцените. Цитата(DpInRock @ Jan 28 2010, 21:18)  Действительно, как-то не подумал. Можно ведь снизить частоту ядра очень легко и просто посмотреть. Тут надо аккуратно - ядро 926EJ это не совсем то же самое что ARM7TMDI-S, но разброса в порядки опять-таки не будет. Насчет собственно перехода на THUMB - можно переходить вполне без особой боязни, по моему опыту - производительность составит 0.8..0.9 от АРМ-овского режима. По моим впечатления (после переписывания нескольких ассемблерных и перекомпиляции C-шных библиотек с ARM на THUMB) от переноса особо "страдают" алгоритмы с частым и неупорядоченным обращением к памяти, типа индексированной выборки из двух-трех массивов - не хватает режимов адресации в THUMB, не знаю как тут JPEG, может он и не в тему будет. Иногда не хватает регистров, но, к моему удивлению - редко, по-крайней мере, на моих задачах (криптография, длинная математика, статобработка). Еще вылез прикол - быстродействие циклов в THUMB на LPC намного заметнее зависит от выравнивания/местоположения кода чем в режиме ARM - думаю, это MAM разыгрался. Но, в целом, впечатления от THUMB остались приятные, проигрывая 10-20% скорости, дает выигрыш по объему кода до полутора раз. BTW, на SAM7 относительные цифры ARM/THUMB были такие же.
|
|
|
|
Сообщений в этой теме
DpInRock Переход на THUMB Jan 27 2010, 16:25 aaarrr На скорости работы с экраном скажется в первую оче... Jan 27 2010, 16:41 DpInRock Ясно.
Наверное, оставить тумб, а то что класть в R... Jan 27 2010, 17:13 zltigo Цитата(DpInRock @ Jan 27 2010, 20:13) Нав... Jan 27 2010, 18:16 aaarrr Получите только головняк с interwork'ом. Зачем... Jan 27 2010, 18:15 DpInRock Ну, тумб реально экономит память. А мне бы хотелос... Jan 27 2010, 21:02 zltigo Цитата(DpInRock @ Jan 28 2010, 00:02) Ну,... Jan 27 2010, 21:09 aaarrr Цитата(DpInRock @ Jan 28 2010, 00:02) Ну,... Jan 27 2010, 21:30 Dog Pawlowa Цитата(DpInRock @ Jan 27 2010, 20:25) От ... Jan 27 2010, 21:06 DpInRock 1. 26K против 16. Реально экономит.
2. А чем пакуе... Jan 27 2010, 21:32 zltigo Цитата(DpInRock @ Jan 28 2010, 00:32) 1. ... Jan 27 2010, 21:42 aaarrr Цитата(DpInRock @ Jan 28 2010, 00:32) 2. ... Jan 27 2010, 21:53  zltigo Цитата(aaarrr @ Jan 28 2010, 00:53) А JPE... Jan 27 2010, 22:16   aaarrr Цитата(zltigo @ Jan 28 2010, 01:16) Да по... Jan 27 2010, 22:39 DpInRock Нет. JPEG вовсе не для красоты.
Эта хрень управля... Jan 28 2010, 02:05 aaarrr Цитата(DpInRock @ Jan 28 2010, 05:05) Нет... Jan 28 2010, 06:04 Dog Pawlowa Цитата(DpInRock @ Jan 28 2010, 06:05) А о... Jan 28 2010, 07:06 Dog Pawlowa Цитата(DpInRock @ Jan 28 2010, 22:18) Про... Jan 29 2010, 08:04 DpInRock Да всего 888 строк (со всеми пустыми). Реальных ст... Jan 29 2010, 13:48 Dog Pawlowa Цитата(DpInRock @ Jan 29 2010, 17:48) ...... Jan 29 2010, 21:44 KRS у всех ARM LPC - с включенным ускорителем флеша AR... Jan 30 2010, 21:42 DpInRock Общем, кому интересно.
Атмел 9261 бьет LPC2478 на... May 5 2010, 02:29 zltigo Цитата(DpInRock @ May 5 2010, 05:29) 10 з... May 5 2010, 06:48 DpInRock "Прям как на старом IBM" - имелся ввиду ... May 5 2010, 09:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|