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

 
 
 
Reply to this topicStart new topic
> быстродействие at91rm9200
sergeeff
сообщение Jan 3 2007, 20:30
Сообщение #1


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

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



Уважаемые коллеги!

Повторно возвращаюсь к проблеме быстродействия at91rm9200. Из SDRAM запускаю Dhrystone 2.1 тест (из AT91 Basic Mmu project for AT91RM9200DK). Получаю при PCK=180 MHz, MCK=60 MHz:
-I- WO MMU & I+D Caches Disabled
-I- 8013 Dhrystone per second :: 4 DMIPS
-I- 7984 Dhrystone per second :: 4 DMIPS
-I- 7984 Dhrystone per second :: 4 DMIPS
-I- 7985 Dhrystone per second :: 4 DMIPS

-I- WO MMU & I Cache Enabled
-I- 31030 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS

-I- MMU & I Cache Enabled
-I- 31030 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS
-I- 30916 Dhrystone per second :: 17 DMIPS

-I- MMU & D Cache Enabled
-I- 36358 Dhrystone per second :: 20 DMIPS
-I- 36223 Dhrystone per second :: 20 DMIPS
-I- 36224 Dhrystone per second :: 20 DMIPS
-I- 36224 Dhrystone per second :: 20 DMIPS

Мне думается - катастрофически мало.

Перепроверил все настройки PLLA, PLLB, MCK, SDRAM. Ноль эффекта.
Не запустит ли кто из владельцев at91rm9200 у себя этот тест для сравнения?
Может это я зря из кожи вон лезу?
Прикрепленные файлы
Прикрепленный файл  AT91RM9200_BasicMmu.zip ( 50.15 килобайт ) Кол-во скачиваний: 71
 
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 3 2007, 20:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sergeeff @ Jan 3 2007, 20:30) *
Может это я зря из кожи вон лезу?

Вряд ли - цифры должны быть примерно на порядок больше. Платы с RM9200 под рукой нет, к сожалению. Проверьте еще, что у Вас время работы правильно считается.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 3 2007, 21:36
Сообщение #3


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

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



Насчет времени работы алгоритма. В проекте идет привязка к 1 сек. такту таймера реального времени. Он работает всегда и не использует прерываний (по крайней мере в данном проекте).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 3 2007, 21:55
Сообщение #4


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

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



Да, хочу добавить. Интересно, что цифры похоже на порядок меньше ожидаемых. У меня сложилось впечатление, что процессор работает на main clk = 18,432 MHz. Но вроде это не так. По крайней мере, изменение значения PLLA отражается на величине dhrystone.
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 4 2007, 05:59
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sergeeff @ Jan 3 2007, 21:55) *
Да, хочу добавить. Интересно, что цифры похоже на порядок меньше ожидаемых. У меня сложилось впечатление, что процессор работает на main clk = 18,432 MHz. Но вроде это не так. По крайней мере, изменение значения PLLA отражается на величине dhrystone.

А включить оба кеша D и I не пробовали?
20 MIPS вполне нормальный показатель с учетом, что ICache выключен.
Go to the top of the page
 
+Quote Post
dch
сообщение Jan 4 2007, 07:21
Сообщение #6


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Сейчас не могу, после праздников.
некоторые версии u-boot на autoboot-е запускает при включенных кэшах, а в ручную при выключенном

...их предки занимались военным делом в течении по меньшей мере двух тысяч лет...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 4 2007, 12:26
Сообщение #7


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

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



Ну вроде сам разобрался, что к чему. Все дело было в TTB. Область SDRAM не была помечена как Cachable.

В результате имеем следующие цифры:

-I- WO MMU & I+D Caches Disabled
4 DMIPS

-I- WO MMU & I Cache Enabled, D Cache Disable
17 DMIPS

-I- MMU & I Cache Enabled, D Cache Disable
17 DMIPS (non buffered, cachable/noncachable)
20 DMIPS (buffered, cachable/noncachable)

-I- MMU & I Cache Enabled, D Cache Enabled
20 DMIPS (non buffered, noncachable)
24 DMIPS (buffered, noncachable)
97 DMIPS (write-through, cachable)
158 DMIPS (write-back, cachable)

Так что частоты все установились вроде правильно, и MIPS'ы похожи на правду.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 4 2007, 13:21
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sergeeff @ Jan 4 2007, 12:26) *
Так что частоты все установились вроде правильно, и MIPS'ы похожи на правду.

Похоже, что у Вас не вся программа исполняется из SDRAM. Сравните:
Цитата
-I- WO MMU & I+D Caches Disabled
4 DMIPS
и
Цитата
-I- MMU & I Cache Enabled, D Cache Enabled
20 DMIPS (non buffered, noncachable)

Эти значения должны быть почти одинаковыми.

Вот что получилось у меня на ARM9 200MHz и 100MHz шине:

Код
-I- WO MMU & I+D Caches Disabled
8.0 DMIPS

-I- WO MMU & I Cache Enabled, D Cache Disabled
34.9 DMIPS

-I- MMU & I Cache Enabled, D Cache Enabled
8.1 DMIPS (non buffered, noncachable)
8.1 DMIPS (buffered, noncachable)
254.1 DMIPS (write-back, cachable)
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 4 2007, 16:13
Сообщение #9


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

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



Спасибо за найденную неточность. Действительно, так и оказалось. Перепроверил, получил такие же цифры.

Ясно, что надо в будущем включать оба кеша. Но пока не видел ни одного внятного примера совместного использования dcache и DMA.

Не попадалось ли кому, что-то на эту тему?
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 4 2007, 20:39
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(sergeeff @ Jan 4 2007, 16:13) *
Ясно, что надо в будущем включать оба кеша. Но пока не видел ни одного внятного примера совместного использования dcache и DMA.

Использовать ncnb для работы с DMA..
MMU ARM9 позволяет задавать параметры кеширования страницам памяти:
- no cache, no buffer (ncnb)
- no cache, buffer (ncb)
- cache, no buffer (cnb)
- cache, buffer (cb)
Т.о. вы легко можете задать произвольное количество некешируемой памяти для нормальной работы с DMA.

Неудивительно, что нет внятных примеров совместной работы DCache+DMA, т.к. использовать кешируемый регион для DMA чреват дополнительными небыстрыми операциями Cache Clean (выгрузка в память) и Cache Invalidate (загрузка из памяти).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 4 2007, 23:43
Сообщение #11


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

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



Спасибо за совет. На следующей неделе попробую.
Go to the top of the page
 
+Quote Post
vanokuten
сообщение Jan 16 2007, 13:28
Сообщение #12


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

Группа: Участник
Сообщений: 116
Регистрация: 18-12-04
Из: Минск
Пользователь №: 1 550



Проверил на плате Kwikbyte KB9202:

-I- WO MMU & I+D Caches Disabled
-I- 12550 Dhrystone per second
-I- 12532 Dhrystone per second
-I- 12532 Dhrystone per second
-I- 12531 Dhrystone per second

-I- WO MMU & I Cache Enabled
-I- 47998 Dhrystone per second
-I- 47933 Dhrystone per second
-I- 47933 Dhrystone per second
-I- 47934 Dhrystone per second

-I- MMU & I Cache Enabled
-I- 47998 Dhrystone per second
-I- 47933 Dhrystone per second
-I- 47933 Dhrystone per second
-I- 47934 Dhrystone per second

-I- MMU & D Cache Enabled
-I- 56998 Dhrystone per second
-I- 56921 Dhrystone per second
-I- 56922 Dhrystone per second
-I- 56921 Dhrystone per second

-I- MMU & I+D Caches but I cache reduced (locked elsewhere)
-I- 28860 Dhrystone per second
-I- 28820 Dhrystone per second
-I- 28821 Dhrystone per second
-I- 28820 Dhrystone per second


--------------------
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jan 16 2007, 15:48
Сообщение #13


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

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



Vanokuten!

Спасибо за присланный тест. У тебя тоже ошибка в TTB - по адресам SDRAM секция определена как uncachable + bufferable. Поэтому не наблюдается существенного прироста производительности.

Ну, а я набрел на следующую проблему. У меня по адресам CS2 сидит FPGA. Определяю эту секцию в TTB как uncachable + unbufferable. Виртуальные адреса определяю как физические (т.е. Virtual Base = Actual Base).
Но при первой же попытке что-то записать в FPGA вылетаю по Data Abort. Пока не могу понять почему.
Go to the top of the page
 
+Quote Post
vanokuten
сообщение Jan 24 2007, 18:26
Сообщение #14


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

Группа: Участник
Сообщений: 116
Регистрация: 18-12-04
Из: Минск
Пользователь №: 1 550



sergeeff,

Пока не было времени разбираться с тестом
я просто запустил приложенный тест бинарник AT91RM9200_BasicMmu.zip

Когда дойдут руки разберусь c cache (надеюсь в течение 1-2 недель)
то опубликую результаты теста еще на одной плате собственной сборки


--------------------
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:04
Рейтинг@Mail.ru


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