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

 
 
 
Reply to this topicStart new topic
> Время выполнения программы на TMS320DM642 в CCS, В режиме отладки через эмулятор XDS560R
Degun
сообщение Sep 10 2007, 10:04
Сообщение #1


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Имеется Evalution Module (EVM) для TMS320DM642 (rev. 3) и JTAG-эмулятор XDS560R. На данной связке в CCS v3.3 прогоняется подпрограммка, которая в режиме отладки выполняется за время порядка 7-8 мин!!! Та же самая подпрограммка (тот же код) на PC с процессором AMD Athlon 64 3200+ (2.00ГГц, 512КБ, HT1000МГц, SocketAM2) и памятью 2 ГБ DDR2 PC6400 (800 МГц) в режиме отладки в Microsoft Visual Studio 2005 выполняется примерно за 2-3 сек!!! Чем обусловлена такая разница? Нормально ли это или что-то не так и необходимо что-то настроить?
Go to the top of the page
 
+Quote Post
Degun
сообщение Sep 19 2007, 13:52
Сообщение #2


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



После некоторого усовершенствования кода тестируемая подпрограмма в CCS в режиме эмуляции стала выполняться за время порядка 45 сек, а на PC за 0.8 сек!!! Вопрос: как измерить реальное время выполнения подпрограммы процессором TMS320DM642 в CCS? Пытался через пункт меню "Profile\Clock\Enable (View)" измерять кол-во циклов, затраченных на выполенение подпрограммы, но каждый раз выдаётся разный результат, причём значения очень сильно разнятся. Как быть?
Go to the top of the page
 
+Quote Post
bav
сообщение Sep 20 2007, 06:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



попробуйте поставить максимальную оптимизацию кода

если прога или данные находятся во внешней памяти - настройте кеш

обычно это помогает
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 8 2007, 09:48
Сообщение #4


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Цитата(bav @ Sep 20 2007, 10:42) *
попробуйте поставить максимальную оптимизацию кода

Уже установлено
Цитата(bav @ Sep 20 2007, 10:42) *
если прога или данные находятся во внешней памяти - настройте кеш
обычно это помогает

Во внутренней памяти IRAM?
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 10 2007, 12:57
Сообщение #5


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Цитата(bav @ Sep 20 2007, 10:42) *
если прога или данные находятся во внешней памяти - настройте кеш
обычно это помогает

А конкретней не подскажите где и как настраивается кэш

Сообщение отредактировал Degun - Oct 10 2007, 12:57
Go to the top of the page
 
+Quote Post
bav
сообщение Oct 10 2007, 14:40
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



посмотрите CSL функции. там есть настройка кеша L2. по умолчанию он работает как внутренняя SDRAM.
прмер:
CACHE_setL2Mode(CACHE_256KCACHE); //вся внутр память как L2
CACHE_enableCaching(CACHE_EMIFA_CE00); //кешируется область памяти 0x80000000-0x8????? - не помню
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 11 2007, 09:32
Сообщение #7


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Цитата(bav @ Oct 10 2007, 18:40) *
посмотрите CSL функции. там есть настройка кеша L2. по умолчанию он работает как внутренняя SDRAM.
прмер:
CACHE_setL2Mode(CACHE_256KCACHE); //вся внутр память как L2
CACHE_enableCaching(CACHE_EMIFA_CE00); //кешируется область памяти 0x80000000-0x8????? - не помню

А в графической оболочке настройки DSP-BIOS это можно как нибудь настроить?
Go to the top of the page
 
+Quote Post
bav
сообщение Oct 11 2007, 09:55
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



попробуйте в GlobalSetting.
а ввобще, я это делал через CSL. Посмотрите экзамплы, там, вроде конфигурация тоже, через CSL отдельной функцией при инициализации.
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 11 2007, 17:26
Сообщение #9


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Цитата(bav @ Oct 11 2007, 13:55) *
попробуйте в GlobalSetting.
а ввобще, я это делал через CSL. Посмотрите экзамплы, там, вроде конфигурация тоже, через CSL отдельной функцией при инициализации.

Спасибо. Нашёл в Global Settings. Реально полезная вещь. До включения кэша подпрограмма выполнялась порядка 13-14 сек. После включения примерно 3 сек. Как говорится, результат на лице.
Кстати, не подскажите какие части DSP-BIOS лучше перенести из IRAM в CACHE_L2 для получения максимальной производительности?

Сообщение отредактировал Degun - Oct 11 2007, 17:30
Go to the top of the page
 
+Quote Post
bav
сообщение Oct 12 2007, 06:42
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



я DSP-BIOS изучал для интереса. реально я его не использовал. Думаю, те части, которые часто используются - обработчики прерываний. Но при этом уменьшится кеш. Что бы особо не париться - включите всю внутреннюю память как кеш, а все располагайте во внешней.
в некоторых случаях получается быстрее, если:
- внутренняя память как SDRAM
- копировать кусок данных во внутр. память, там обрабатывать, затем сохранять результат во внешеней
- обработчик размещать во внутренней памяти
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Oct 12 2007, 07:33
Сообщение #11


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(bav @ Oct 12 2007, 10:42) *
...
- внутренняя память как SDRAM
...

А все-таки внутренняя память статическая, SRAM.


--------------------
شامل
Go to the top of the page
 
+Quote Post
bav
сообщение Oct 12 2007, 07:59
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



опечатка, SRAM.
Проста сейчас сижу с ПЛИС с подключенной к ней SDRAM. не работает. открыто очень много pdf по SDRAM. вот и ошибся. Прошу прощения.
Спасибо за замечание.
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 14 2007, 11:45
Сообщение #13


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



А вообще есть какая-то разница между размещением модулей DSP-BIOS в IRAM или CACHE, если все они расположены во внутренней SRAM памяти? Т. е. если расположить все части DSP-BIOS только в IRAM, то результирующая производительность от этого уменьшиться или нет?.
Go to the top of the page
 
+Quote Post
bav
сообщение Oct 14 2007, 12:11
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



если будете размещать во внутренней памяти, уменьшится объем кеша. я думаю придется поэкспериментировать.
Go to the top of the page
 
+Quote Post
Degun
сообщение Oct 17 2007, 19:15
Сообщение #15


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

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Цитата(bav @ Oct 14 2007, 16:11) *
если будете размещать во внутренней памяти, уменьшится объем кеша. я думаю придется поэкспериментировать.

Я провёл следующий эксперимент. Внутреннюю память процессора разделил поровну между IRAM и CACHE_L2. При этом в DSP-BIOS из IRAM в CACHE_L2 ничего не переносил, т. е. всё как было в IRAM так там и осталось без изменений. Но производительность процессора увеличилась. Что же тогда процессор сохраняет в CACHE, что позволяет увеличить его производительность?
Go to the top of the page
 
+Quote Post

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

 


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


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