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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Bопрос по АРМ9, Обработчики прерываний
axa09
сообщение Feb 22 2009, 00:03
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



контроллер at91rm9200. частота ядра 180мгц, шина 60мгц. на шине статическая память с 16-битной шиной, с NWS=0(без дополнительных тактов). кеши оба включены-память закеширована write-back, в ней исполняется программа.
обработчики прерываний в этой памяти.

вопрос-
если обработчики разместить во внутренней sram контроллера,будет ли выигрыш в производительности?
или с кешами это не принципиально?
как обработчик прерывания в keil скопировать из одной памяти в другую с учётом коррекции счётчика адреса(РС?)

И ещё-пробовал стек делать во внутренней памяти - на глаз быстродействие не изменилось sad.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 22 2009, 14:14
Сообщение #2


Гуру
******

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



Цитата(axa09 @ Feb 22 2009, 03:03) *
вопрос-
если обработчики разместить во внутренней sram контроллера,будет ли выигрыш в производительности?
или с кешами это не принципиально?

Теоретически выигрыш может быть, так как внутренняя память все же быстрее. На практике все зависит от конкретного случая.

Цитата(axa09 @ Feb 22 2009, 03:03) *
как обработчик прерывания в keil скопировать из одной памяти в другую с учётом коррекции счётчика адреса(РС?)

А зачем? Не проще его сразу по нужному адресу положить?

Цитата(axa09 @ Feb 22 2009, 03:03) *
И ещё-пробовал стек делать во внутренней памяти - на глаз быстродействие не изменилось sad.gif

Значит, в вашей программе не так уж часто нужен стек.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 22 2009, 15:46
Сообщение #3


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

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



Цитата(axa09 @ Feb 22 2009, 03:03) *
контроллер at91rm9200. частота ядра 180мгц, шина 60мгц. на шине статическая память с 16-битной шиной, с NWS=0(без дополнительных тактов). кеши оба включены-память закеширована write-back, в ней исполняется программа.
обработчики прерываний в этой памяти.

вопрос-
если обработчики разместить во внутренней sram контроллера,будет ли выигрыш в производительности?
или с кешами это не принципиально?
как обработчик прерывания в keil скопировать из одной памяти в другую с учётом коррекции счётчика адреса(РС?)

И ещё-пробовал стек делать во внутренней памяти - на глаз быстродействие не изменилось sad.gif


Кеш работает с такой же частотой, что и внутренняя SRAM. Посему разница ничтожна. А стек в ARM'ах задействуется не столь часто, только когда не хватает внутренних регистров. К тому же современные компиляторы стараются оптимизировать скорость выполнения потока команд, учитывая pipeline.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 22 2009, 22:48
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



За ответы спасибо!
с праздником!

можно повысить производительность системы путём манипуляций с кешами?
сейчас таблица трансляции адресов(по 1мб) находится в кешируемой области внешней памяти. вся память кроме регистров кешируема и буферизована(биты cachable и buferable равны 1). кеш асинхронный.
подскажите дальнейшие пути повышения производительности:
1)при выполнении кода
2)при блочном чтении из памяти
3)при блочной записи в память
слышал, что перед передачей данных надо втыкать prefetch. можно по-подробнее?
есть ещё invalidate,flush и др. как их пользовать?

извините за кашу в голове- просто хочется разобраться, помогите плиз.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 22 2009, 23:09
Сообщение #5


Гуру
******

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



Цитата(axa09 @ Feb 23 2009, 01:48) *
можно повысить производительность системы путём манипуляций с кешами?

Можно, но не в разы. Судя по описанию, ваша система и так правильно настроена.
Заниматься тюнингом производительности следует только при наличии насущной необходимости. Она есть?

Цитата(axa09 @ Feb 23 2009, 01:48) *
сейчас таблица трансляции адресов(по 1мб) находится в кешируемой области внешней памяти.

Напрасно.

Цитата(axa09 @ Feb 23 2009, 01:48) *
кеш асинхронный

Режим тактирования имеется в виду?
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 22 2009, 23:26
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Надо хотябы на 25% повысить.
почему напрасно?
как правильно и на что влияет?

ДА! режим тактирования имел ввиду.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 22 2009, 23:32
Сообщение #7


Гуру
******

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



Цитата(axa09 @ Feb 23 2009, 02:26) *
Надо хотябы на 25% повысить.

Повысить для каких условий? Если у Вас есть некая функция, которую необходимо ускорить, то оптимизацию следует начинать с ее кода, а уж в последнюю очередь пытаться оптимизировать работу кэша.
Просто повысить производительность системы на 25% невозможно.

Цитата(axa09 @ Feb 23 2009, 02:26) *
почему напрасно?

Потому что выборки из таблицы трансляции не идут через кэш. Расположение таблицы ни на что не влияет.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 23 2009, 00:15
Сообщение #8


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

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



Цитата(axa09 @ Feb 23 2009, 01:48) *
За ответы спасибо!
с праздником!

можно повысить производительность системы путём манипуляций с кешами?
сейчас таблица трансляции адресов(по 1мб) находится в кешируемой области внешней памяти. вся память кроме регистров кешируема и буферизована(биты cachable и buferable равны 1). кеш асинхронный.
подскажите дальнейшие пути повышения производительности:
1)при выполнении кода
2)при блочном чтении из памяти
3)при блочной записи в память
слышал, что перед передачей данных надо втыкать prefetch. можно по-подробнее?
есть ещё invalidate,flush и др. как их пользовать?

извините за кашу в голове- просто хочется разобраться, помогите плиз.


Да уж конечно надо смотреть в сторону собственно обработчика прерываний. Что за скорость то нужна, если 180 МГц rm9200 не хватает?
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 00:19
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Нужно ускорить переброс видеобуфера в дисплейную память(шина 8 бит, на ebi, i80).
тоесть если таблица трансляции расположена в кешируемой внешней памяти, то память не будет кешироваться?
и доступ к таблице будет медленным?
нужно ли кешировать внутреннюю память-срам 16кб?
где правильнее расположить таблицу трансляции?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 23 2009, 00:34
Сообщение #10


Гуру
******

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



Цитата(axa09 @ Feb 23 2009, 03:19) *
Нужно ускорить переброс видеобуфера в дисплейную память(шина 8 бит, на ebi, i80).

А каким образом он осуществляется сейчас? Не побайтово, надеюсь?

Цитата(axa09 @ Feb 23 2009, 03:19) *
тоесть если таблица трансляции расположена в кешируемой внешней памяти, то память не будет кешироваться?
и доступ к таблице будет медленным?

Будет, не волнуйтесь. Просто располагать ее в кэшируемой памяти нет смысла.

Цитата(axa09 @ Feb 23 2009, 03:19) *
нужно ли кешировать внутреннюю память-срам 16кб?

Нужно.

Цитата(axa09 @ Feb 23 2009, 03:19) *
где правильнее расположить таблицу трансляции?

В наиболее скоростной памяти. Но гробить под нее всю внутреннюю SRAM не стоит.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 01:28
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



Пришла в голову мысль расположить таблицу во внутренней sram.
затрутся только reset, undef и swint.
irq, fiq останутся!
таблица у меня сильно фрагментирована.
тоесть во внутренней срам будут вектора прерываний, стек и таблица трансляции адресов!
отпишусь когда сделаю!
я- великий извращенец! wink.gif
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Feb 23 2009, 06:16
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



Цитата(axa09 @ Feb 23 2009, 02:48) *
таблица трансляции адресов (по 1мб)

Подскажите пожалуйста, что это такое; где про это можно почитать и где
можно посмотреть какой-нибудь примерчик.

За ответы спасибо.
С праздником.
Go to the top of the page
 
+Quote Post
axa09
сообщение Feb 23 2009, 07:45
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 61
Регистрация: 29-01-09
Пользователь №: 44 105



В общем удалось ради эксперимента таблицу запихать во внутреннюю срам.
прироста в скорости не дало sad.gif
по ходу больше никак не выжать.

вот собственно задача:
есть буфер MxN байт- индексов другого массива(палитра).
требуется находить средние интенсивности компонент цвета из 4-х смежных точек(2х2 пиксела). короче,некое подобие фильтра при уменьшении картинки в два раза.
как можно сделать быстрее?
буфера во внешней памяти
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 23 2009, 10:58
Сообщение #14


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

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



Цитата(AndrewN @ Feb 23 2009, 09:16) *
Подскажите пожалуйста, что это такое; где про это можно почитать и где
можно посмотреть какой-нибудь примерчик.

За ответы спасибо.
С праздником.


Удивительное нежелание хотя бы на местном форуме сначала поискать, а потом уже вопрос вываливать! По принципу - пусть другие мне готовое на тарелочке преподнесут.

Смотри http://electronix.ru/forum/index.php?showt...&hl=d-cache
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 23 2009, 12:22
Сообщение #15


Гуру
******

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



Цитата(axa09 @ Feb 23 2009, 10:45) *
прироста в скорости не дало sad.gif

И не должно было. Таблица буферизируется через TLB, чего в нормальной жизни вполне достаточно.

Цитата(axa09 @ Feb 23 2009, 10:45) *
вот собственно задача:

Можно поподробнее? Чему равны M и N, что из себя представляет палитра, какие требования к скорости?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:16
Рейтинг@Mail.ru


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