|
Кто работал с PXA27x?, Странно низкая скорость SDRAM |
|
|
|
Jan 21 2007, 15:43
|

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

|
Помогите разобраться кто работал с этим процом.
Делаю проект на PXA270 520Mhz. WinCE и линухом не пользуюсь. Сейчас идет самая мутная часть - инициализация периферии. Частоты выставил: CPU = 520, BUS = 208, MEMCTL = 208, SDRAM = MEMCTL/2 = 104. Кеш инструкций и BTB включил. Пустой секундный цикл выполняется за 290млн. итераций, значит частоты установились. А вот скорость копирования блока в SDRAM с выкл. dcache около 28Мб/с, с вкл. 120мб/с. Проверял на RM9200 с выкл. dcache 104мб/с, с вкл. 140мб/с. Это при том, что на RM9200 память работает на частоте 60Mhz, а на PXA - 104Mhz.
Скорость проверял функцией memcpy, копирую блок 32Мб, т.е. общий прочитаный/записаный объем 64мб.
Как вы думаете это нормальные результаты? Кто-то может проверить у себя? Может есть какой-то тестовый пример?
|
|
|
|
|
 |
Ответов
(1 - 10)
|
Jan 21 2007, 16:16
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(AlexBoy @ Jan 21 2007, 15:43)  Как вы думаете это нормальные результаты? Кто-то может проверить у себя? Может есть какой-то тестовый пример? Сразу оговорюсь, что с PXA дела не имел, но есть некоторые соображения общего характера: 1. Цитата(AlexBoy @ Jan 21 2007, 15:43)  скорость копирования блока в SDRAM с выкл. dcache около 28Мб/с, с вкл. 120мб/с. Не должна так сильно падать скорость копирования при отключении кэша: раза в 1.5-2 может, но в 4 - уже подозрительно. Такое ощущение, что кэш выключен и для исполняемой программы. 2. Цитата(AlexBoy @ Jan 21 2007, 15:43)  Проверял на RM9200 с выкл. dcache 104мб/с, с вкл. 140мб/с. Это при том, что на RM9200 память работает на частоте 60Mhz, а на PXA - 104Mhz. А здесь подозрительно высокие показатели, при похожем на правду отношении скоростей. По-моему, что-то не так с методикой тестирования.
|
|
|
|
|
Jan 22 2007, 14:32
|

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

|
Цитата(aaarrr @ Jan 21 2007, 15:16)  По-моему, что-то не так с методикой тестирования. Перепроверил методику, все железно. Функцию для тестирования прикрепил. Меня такие результаты тоже очень удивили. Запустил еще раз. Программа загружена во внутреннюю SRAM 1. Включены mmu, icache, dcache для SRAM и SDRAM 114000 кб/с 2. Для страниц SDRAM отключено кеширование (для SRAM оставил) 27000 кб/с толи кеш такой хороший...
|
|
|
|
|
Jan 22 2007, 15:01
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(AlexBoy @ Jan 22 2007, 14:32)  Функцию для тестирования прикрепил. Где? Цитата(AlexBoy @ Jan 22 2007, 14:32)  Запустил еще раз. Программа загружена во внутреннюю SRAM 1. Включены mmu, icache, dcache для SRAM и SDRAM 114000 кб/с
2. Для страниц SDRAM отключено кеширование (для SRAM оставил) 27000 кб/с
толи кеш такой хороший... Скорее, функция копирования плохая. Единственное отличие при работе с кэшем состоит в том, что обмен с SDRAM будет осуществляться целыми строками. А для RM9200 компилятор тот же использовался, или другой?
|
|
|
|
|
Jan 22 2007, 16:04
|

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

|
Цитата(aaarrr @ Jan 22 2007, 14:01)  Где?
А для RM9200 компилятор тот же использовался, или другой? Сорри, чето сразу не прикрепилось. Компилятор тот-же RVDS 2.2, менял только тип процессора ARM920T и PXA270, пробовал ставить оба, разницы нет.
Прикрепленные файлы
test.zip ( 605 байт )
Кол-во скачиваний: 52
|
|
|
|
|
Jan 22 2007, 16:55
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Попробовал у себя - компилятор ADS 1.2, ARM920T @ 200MHz, 100MHz bus: Код Кэш включен - 58.9МБайт/сек Кэш выключен - 47.5МБайт/сек Это именно скорость копирования (чтение + запись). UPD: Скорость работы при включенном кэше близка к той, что получается у Вас: 58.9 * 2 = 117.8
|
|
|
|
|
Jan 22 2007, 17:27
|

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

|
Цитата(aaarrr @ Jan 22 2007, 15:55)  Попробовал у себя - компилятор ADS 1.2, ARM920T @ 200MHz, 100MHz bus: Код Кэш включен - 58.9МБайт/сек Кэш выключен - 47.5МБайт/сек Это именно скорость копирования (чтение + запись). UPD: Скорость работы при включенном кэше близка к той, что получается у Вас: 58.9 * 2 = 117.8 А что за проц? RM9200? Вот у вас показания реальные, скорость повышается но не в 4 раза Может это особенности работы архитектуры xscale с памятью?
|
|
|
|
|
Jan 22 2007, 17:54
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(AlexBoy @ Jan 22 2007, 17:27)  А что за проц? CirrusLogic EP9312. На RM9200 должно получиться меньше. Цитата(AlexBoy @ Jan 22 2007, 17:27)  Может это особенности работы архитектуры xscale с памятью? Провел сейчас эксперимент: выключил кэширование программы, получилась скорость 14.66МБайт/сек, что близко к вашим 27. Похоже, что программа (или memcpy) у Вас не из SRAM выполняется.
|
|
|
|
|
Jan 22 2007, 21:08
|

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

|
Цитата(aaarrr @ Jan 22 2007, 16:54)  Провел сейчас эксперимент: выключил кэширование программы, получилась скорость 14.66МБайт/сек, что близко к вашим 27. Похоже, что программа (или memcpy) у Вас не из SRAM выполняется. Исполняется то из SRAM, но icache похоже всетаки не включился, т.к. я его выключил, а скорость не изменилась. Возможно потому, что я заливаю через jtag, а отладчик использует для себя mini-cache и мешает нормальной работе. Завтра попробую зашить во флеш и запустить без отладчика.
|
|
|
|
|
Jan 23 2007, 15:47
|

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

|
Цитата(aaarrr @ Jan 22 2007, 16:54)  [Похоже, что программа (или memcpy) у Вас не из SRAM выполняется. Написал еще один тест, теперь все работает. Кстати попробуйте у себя его прогнать, интересно сравнить результаты. *** DhryStone Test NO MMU & I+D Caches Disabled 14708 Dhrystone per second NO MMU & BTB Enabled 15162 Dhrystone per second NO MMU & I Cache Enabled 42584 Dhrystone per second ---> кеш инструкций работает MMU & I,D Caches Enabled 541667 Dhrystone per second *** Memory Speed Test Block 1Kb, Speed 799996 Kb/s Block 2Kb, Speed 971952 Kb/s Block 4Kb, Speed 1094714 Kb/s Block 8Kb, Speed 1168492 Kb/s Block 16Kb, Speed 925915 Kb/s ---> кеш данных 32Кб Block 32Kb, Speed 118631 Kb/s Block 64Kb, Speed 118828 Kb/s ... Block 32768Kb, Speed 118938 Kb/s
|
|
|
|
|
Feb 9 2007, 10:47
|
Группа: Новичок
Сообщений: 1
Регистрация: 8-02-07
Пользователь №: 25 160

|
Я тоже бъюсь с PXA270 точнее с его кэшем.. Нужно как-то включить cache lockdown. Прочитал докумантацию вдоль и поперек - и ничего за что зацепиться. Ассемблерные функции из мануала напрочь завешивают систему.
Может кто-нибудь использовал этот режим и знает как? Мне перформанс нужно повышать и основная проблема в доступе к памяти.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|