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

 
 
7 страниц V  « < 3 4 5 6 7 >  
Reply to this topicStart new topic
> Эффективность DMA в SAM7, Выделено из "ARM много,..."
zltigo
сообщение Sep 28 2008, 18:37
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Sep 28 2008, 20:03) *
Пожалуйста.

Как скучно оказывается всухую писать sad.gif . Просьба для начала заменить nop-овский цикл на такое:
Код
volatile u_int b = 0x800;
volatile u_int c = 0;
volatile u_int d = 0;
    do
    {
        c = AT91C_BASE_TCB->TCB_TC0.TC_CV;
        d += c;
        
    } while(--b );
    a = AT91C_BASE_TCB->TCB_TC0.TC_CV - a;
    dprintf("t=%d\r\n", a);
    d = d;

Интересен Flash, 55MHz, ARM mode.


Цитата(aaarrr @ Sep 28 2008, 20:31) *
Тема сама по себе интересная получается.

Естественно!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 28 2008, 18:52
Сообщение #62


Гуру
******

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



Цитата(zltigo @ Sep 28 2008, 22:37) *
Как скучно оказывается всухую писать sad.gif . Просьба для начала заменить nop-овский цикл на такое:
Интересен Flash, 55MHz, ARM mode.

Сделано.

Flash 1WS:
Код
ошибка


RAM 0WS:
Код
ошибка


Числа - это количество тактов на выполнение (выход * 8).
Время симулятора для случая RAM 0WS PDC Idle: 16382
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2008, 19:20
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Sep 28 2008, 20:52) *
Сделано.

Очень интересный результат! Похоже сегмент шины с Flash как-то изолируем, что позволяет по хозяйски распоряжаться неизбежным 50% простоем ядра при доступе к Flash для доступа DMA к RAM.
А 30MHz и 0WS из Flash еще пожалуйста!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 28 2008, 19:30
Сообщение #64


Гуру
******

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



Результат еще интереснее. Как я уже писал, очень похоже, что шина Flash отделена.

Flash 0WS:
Код
ошибка


Незначительное ускорение не случайное, повторяется стабильно.

Расхождение результатов с симулятором связано с обращением к периферийному регистру, но не очень понятно, почему возникает именно такое замедление.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 28 2008, 19:41
Сообщение #65


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Sep 28 2008, 23:20) *
Очень интересный результат! Похоже сегмент шины с Flash как-то изолируем, что позволяет по хозяйски распоряжаться неизбежным 50% простоем ядра при доступе к Flash для доступа DMA к RAM.
А 30MHz и 0WS из Flash еще пожалуйста!
То есть 3 раза это уже фантазия ?(ну это про разы...)



Цитата(aaarrr @ Sep 28 2008, 23:30) *
Результат еще интереснее. Как я уже писал, очень похоже, что шина Flash отделена.
Мне вобще кажется что это почти всегда на современных мк.
Нет никагого смысла располагать флеш на той же шине...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2008, 19:48
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Sep 28 2008, 21:30) *
Результат еще интереснее. Как я уже писал, очень похоже, что шина Flash отделена.

Странее! Не покидает мысль, что что-то не то. А разделить буфера приема передачи и организовать в тесте хоть какую-то рекцию(обработку) на окончание цикла работы DMA? И вообще, при исполнении IDLE из RAM на 55MHz получаем скорость РАВНУЮ до такта! скорости исполнения из FLASH на 30MHz. Что это c тестом?
Цитата(singlskv @ Sep 28 2008, 21:41) *
Нет никагого смысла располагать флеш на той же шине...

Это понятно, что слова Нейман/Гарвард почти пустой звук по нынешнмм временам, но предполагал, что это все-же пока не для достаточно простых ARM7 ядер.
Цитата(singlskv @ Sep 28 2008, 21:41) *
То есть 3 раза это уже фантазия ?(ну это про разы...)

50% это замедление в ДВА раза при ОДНОМ WS.Чего непонятного? Никаких фантазий.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 28 2008, 19:59
Сообщение #67


Гуру
******

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



Цитата(zltigo @ Sep 28 2008, 23:46) *
Странее! Не покидает мысль, что что-то не то. А разделить буфера приема передачи и организовать в тесте хоть какую-то рекцию(обработку) на окончание цикла работы DMA?

Тогда нужно время теста укорачивать, у меня нет столько свободной памяти. Попробую.
Могу еще проконтролировать время окончания цикла DMA.


Цитата(zltigo @ Sep 28 2008, 23:48) *
И вообще, при исполнении IDLE из RAM на 55MHz получаем скорость РАВНУЮ до такта! скорости исполнения из FLASH на 30MHz. Что это c тестом?

Я и считаю такты. А они одинаковые, хоть на 30, хоть на 55MHz.


С более скоростым доступом к периферии со стороны DMA все понятно - процессор имеет доступ через медленную APB, в то время как DMA подключен с одной стороны к ASB, а с другой напрямую к периферийным модулям.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 28 2008, 20:00
Сообщение #68


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Sep 28 2008, 23:48) *
Это понятно, что слова Нейман/Гарвард почти пустой звук по нынешнмм временам, но предполагал, что это все-же пока не для достаточно простых ARM7 ядер.
50% это замедление в ДВА раза при ОДНОМ WS.Чего непонятного? Никаих фантазий.
в 2 раза в худшем случае - согласен ! (в реальности, когда еще иногда
встречаются регистр-регистр, намного лучше...)
Цитата
Это понятно, что слова Нейман/Гарвард почти пустой звук по нынешнмм временам, но предполагал, что это все-же пока не для достаточно простых ARM7 ядер.
Дык видать основная борьба и проходит в данный момент по этому флангу...(у производителей)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2008, 20:09
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Sep 28 2008, 21:59) *
Я и считаю такты.

Тьфу, привычка по другому организовывать тесты sad.gif
Цитата
...а с другой напрямую к периферийным модулям.

Как-бы да, в действительности каналы DMA у SAM7 не общего назначения разделяемые ресурсы, а исключительно интимные узлы периферии.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 28 2008, 20:18
Сообщение #70


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Sep 29 2008, 00:09) *
Как-бы да, в действительности каналы DMA у SAM7 не общего назначения разделяемые ресурсы, а исключительно интимные узлы периферии.
А у SAM9 или AVR32 они что, что-то совсем обособленное ?
конечно они нифига не разделяймые ресурсы, а очень было надо ?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 28 2008, 20:30
Сообщение #71


Гуру
******

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



Цитата(zltigo @ Sep 28 2008, 23:48) *
Не покидает мысль, что что-то не то.

Вы правы, что-то не то при работе из flash. Разбираюсь сейчас.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2008, 20:33
Сообщение #72


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(singlskv @ Sep 28 2008, 22:18) *
...конечно они нифига не разделяймые ресурсы, а очень было надо ?

На Atmel свет клином не сошелся smile.gif. Cуществуют оба варианта Dedicated/General, обычно вместе. Кроме жестких и относительно простых каналов DMA заточенных под переферийное железо, используются и "общего назначения" более сложные DMA с наворотами, например, типа организации обслуживания кольцевых буферов, burst, fifo, big/little endian трансляцией... Они подключаются к периферийным устройствам по необходимости, в том числе и не к у устройствам, а для пересылки память-память. И между устройствами.
Надо.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 28 2008, 20:40
Сообщение #73


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Sep 29 2008, 00:33) *
в том числе и не к у устройствам, а для пересылки память-память.
Надо.
Согласен, про память-память не подумал, просто для ARM7 это вроде как не актуально...
Для АРМ9 итд. может быть действительно актуально...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2008, 20:46
Сообщение #74


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(singlskv @ Sep 28 2008, 22:40) *
Согласен, про память-память не подумал, просто для ARM7 это вроде как не актуально...

Актуально, у ARM7 LPC23/24 кроме локальной еще 2 AHB шины со своми банками памяти.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Sep 28 2008, 20:54
Сообщение #75


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Sep 29 2008, 00:46) *
Актуально, у LPC23/24 кроме локальной еще 2 AHB шины со своми банками памяти.
Не знаю толком этих семейств, но это("еще 2 AHB шины со своми банками памяти")
уже не очень похоже на ARM7, подходы совсем другие,
вероятно нечто промежуточное между ARM7 и ARM9.
Go to the top of the page
 
+Quote Post

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

 


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


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