реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Скорость работы с памятью AT91RM9200...
Paramedic
сообщение Jul 3 2007, 11:33
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Цитата(AlexBoy @ Jul 3 2007, 14:54) *
Забыл сказать. Нужно скачать update с сайта.
h__p://www.arm.com/support/downloads/info/15304.html
Замененные файлы нужно заново пропатчить.
Тогда errors станут warnings.
А warnings затем можно отключить: Release Settings -> Linker -> RealView Linker -> Diagnostics, в поле Suppress добавить текст 6784.


Ну что ж, заработало в RVDS как надо, цифры такие-же как у Вас.
Когда в ИАРе переписал функцию memcpy (библиотечная тупо копировала по-байтно...) удалось поднять скорость до 200Mb/c. Богомипсы тоже подтянул до уровня 71, поигравшись с оптимизацией. С отключенной опцией Code moution работает быстрее. Дристоны выжал в ИАРе до 141. Больше не получилось. Есть подозрение, что это из-за неоптимальности функций работы со строками.
Наверное перейду на RVDS, правда пока не удалось запустить отладчик под ним. Жалко слезать с ИАР, до этого под MSP много с ним работал, нравился он мне.

Спасибо Вам огромное, AlexBoy, за такую серьёзную помощь!
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Jul 3 2007, 11:44
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(Paramedic @ Jul 3 2007, 14:33) *
Когда в ИАРе переписал функцию memcpy...

Рад был помочь.
А можно взглянуть на вашу функцию memcpy?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2007, 11:54
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Самая шустрая memcpy для ARM, что я видел, в netbsd. Полностью на ассеблере. Быстрее, я думаю, нет.
Go to the top of the page
 
+Quote Post
Paramedic
сообщение Jul 3 2007, 12:12
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Цитата(AlexBoy @ Jul 3 2007, 15:44) *
Рад был помочь.
А можно взглянуть на вашу функцию memcpy?


Я пробовал просто пословное копирование без выравнивания (в общем случае оно не применимо):
void *memcpy1(void *dst, void *src, size_t length)
{
int *p1 = dst;
int *p2 = src;

for (unsigned int i = 0; i < length/sizeof(int); i += sizeof(int))
*p1++ = *p2++;

return dst;
}
Скорость была на уровне 95Мб/с при копировани больших блоков и 220Мб/с при блоках меньше размера кэша.


Очень хороший результат дала полноценная функция, предложенная zltigo: http://electronix.ru/forum/index.php?act=A...st&id=12141
Скорость была на уровне 100Мб/с при копировани больших блоков и 230Мб/с при блоках меньше размера кэша.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2007, 14:50
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



У меня функция из netbsd копирует 1 Mbytes блок за 19 мс при обоих вклученных кэшах.
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Jul 3 2007, 15:25
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(sergeeff @ Jul 3 2007, 17:50) *
У меня функция из netbsd копирует 1 Mbytes блок за 19 мс при обоих вклученных кэшах.

Получается общая скорость read/write = 105Mb/s.
У меня со стандартной memcpy в RVDS 112Mb/s.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 3 2007, 18:51
Сообщение #37


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Попробовал функцию от уважаемого zltigo. У меня она отработала за 23 мс, т.е. скорость порядка 87 Мб/с.
Так что советую попробовать вариант netbsd.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th August 2025 - 06:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016