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

 
 
> ПДП в ARM, насколько ПДП ПДПшный
Morfko
сообщение Oct 9 2008, 14:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 9-10-08
Пользователь №: 40 814



Вот как мне известно прямой доступ к памяти в SAM7X SAM7S реализован с приоритетом не процессора, а контроллера ПДП. Так вот, в каких случаях возможны такие случаи, когда нужно, чтобы процессор в данный момент времени не отвлекался ни на микросекунду, но в тоже самое время и данные по DBGU (RS232) не потерять (данные по DBGU передаются в SRAM с интервалом в 5 секунд, после чего обработка, затем всё повторяется...)?

Спасибо.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
aaarrr
сообщение Oct 9 2008, 14:59
Сообщение #2


Гуру
******

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



Недавно обсуждали атмеловский PDC.
Если Вы не хотите тормозить процессор ни на такт, то остается только отказаться от PDC. Хотя это странное требование.
Go to the top of the page
 
+Quote Post
Morfko
сообщение Oct 9 2008, 15:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 9-10-08
Пользователь №: 40 814



Цитата(aaarrr @ Oct 9 2008, 17:59) *
Недавно обсуждали атмеловский PDC.
Если Вы не хотите тормозить процессор ни на такт, то остается только отказаться от PDC. Хотя это странное требование.


Хорошо, а если 5 или 10 тактов для моей проги - ничего страшного? Вообще, на какое время (тактов или мксек) отвлечется процессор для того, чтобы приянть данные по DBGU (USART)?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2008, 15:21
Сообщение #4


Гуру
******

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



На 2 такта.
Go to the top of the page
 
+Quote Post
Morfko
сообщение Oct 9 2008, 15:28
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 9-10-08
Пользователь №: 40 814



Цитата(aaarrr @ Oct 9 2008, 18:21) *
На 2 такта.


А если без приколов, кто знает какое гарантированное время "отвлечения" проца?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2008, 15:32
Сообщение #6


Гуру
******

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



Цитата(Morfko @ Oct 9 2008, 19:28) *
А если без приколов, кто знает какое гарантированное время "отвлечения" проца?

А где Вы увидели прикол, уважаемый? 2 такта на одну пересылку из периферии.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Oct 9 2008, 15:40
Сообщение #7


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

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



Цитата(aaarrr @ Oct 9 2008, 19:32) *
А где Вы увидели прикол, уважаемый? 2 такта на одну пересылку из периферии.


Ну на самом деле, конечно же больше. Процессор по любому должен распознать, что данные в DBGU появились. Другое дело, что мне лично, так и не ясно, что автор данной ветки хочет узнать, т.к. толком про свою задачу не написал. DBGU данные через PDC пишет?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2008, 15:44
Сообщение #8


Гуру
******

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



Цитата(sergeeff @ Oct 9 2008, 19:40) *
Другое дело, что мне лично, так и не ясно, что автор данной ветки хочет узнать, т.к. толком про свою задачу не написал. DBGU данные через PDC пишет?

Вот и мне теперь не понятно 07.gif
Я привел данные для чтения DBGU при помощи PDC. Т.е. процессор встанет максимум на 2 такта в то время, пока PDC будет окучивать DBGU.
Go to the top of the page
 
+Quote Post
Morfko
сообщение Oct 9 2008, 15:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 9-10-08
Пользователь №: 40 814



Цитата(sergeeff @ Oct 9 2008, 18:40) *
Ну на самом деле, конечно же больше. Процессор по любому должен распознать, что данные в DBGU появились. Другое дело, что мне лично, так и не ясно, что автор данной ветки хочет узнать, т.к. толком про свою задачу не написал. DBGU данные через PDC пишет?


Да, именно DBGU данные через PDC пишет... скорость 115К...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2008, 16:00
Сообщение #10


Гуру
******

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



Тогда все правильно - процессор будет вставать максимум на 2 такта каждые 86.8мкс.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Oct 9 2008, 16:16
Сообщение #11


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

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



Для того, чтобы "ничего не терялось" Atmel и реализовал пару связанных DMA буферов. Прерывание приходит по заполнению первого буфера и автоматически DMA переключается на второй буфер. Соответственно у процессора вагон времени, чтобы чего-то с этими данными сделать. Так и не понимаю, в чем проблема у автора?
Go to the top of the page
 
+Quote Post
Morfko
сообщение Oct 9 2008, 16:21
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 9-10-08
Пользователь №: 40 814



Цитата(aaarrr @ Oct 9 2008, 19:00) *
Тогда все правильно - процессор будет вставать максимум на 2 такта каждые 86.8мкс.

Спасибо, просто в точку попали!
Go to the top of the page
 
+Quote Post
bloodden
сообщение Oct 9 2008, 16:31
Сообщение #13


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(sergeeff @ Oct 9 2008, 19:16) *
Для того, чтобы "ничего не терялось" Atmel и реализовал пару связанных DMA буферов. Прерывание приходит по заполнению первого буфера и автоматически DMA переключается на второй буфер. Соответственно у процессора вагон времени, чтобы чего-то с этими данными сделать. Так и не понимаю, в чем проблема у автора?

А в буфера когда писать? ....... Вот про эти 2 такта и разговор ведётся. Это те 2 такта, которые процессор простаивает, когда ПДП захватывает шину памяти. Был бы кеш такого бы небыло.
Если я не прав - поправьте.


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2008, 16:44
Сообщение #14


Гуру
******

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



Правы, только наличие кэша ничего не гарантирует, а лишь снижает вероятность простоя.
Go to the top of the page
 
+Quote Post
bloodden
сообщение Oct 9 2008, 17:14
Сообщение #15


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(aaarrr @ Oct 9 2008, 19:44) *
Правы, только наличие кэша ничего не гарантирует, а лишь снижает вероятность простоя.

Да, спасибо. этот момент я забыл упомянуть - вероятность smile.gif


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Oct 9 2008, 22:21
Сообщение #16


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

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



Все равно не могу понять логику разработчика, озабоченного простоем процессора 2 такта на 90 мкс. Либо задача плохо сформулирована, либо совсем слаб процессор. Касательно cache. Так как у Atmel'а аппаратно не решен вопрос когерентности кеша при совместной работе процессора и DMA, то и толку от его наличия немного, в смысле минимизации простоя процессора.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 10 2008, 06:59
Сообщение #17


Гуру
******

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



Цитата(sergeeff @ Oct 10 2008, 02:21) *
Касательно cache. Так как у Atmel'а аппаратно не решен вопрос когерентности кеша при совместной работе процессора и DMA, то и толку от его наличия немного, в смысле минимизации простоя процессора.

А у кого он решен, можете сказать? Когерентность кэша - забота программиста.
И к минимизации простоя процессора при работе DMA данная проблема отношения не имеет.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 10 2008, 07:46
Сообщение #18


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(aaarrr @ Oct 10 2008, 09:59) *
А у кого он решен, можете сказать? Когерентность кэша - забота программиста.

У Freescale решен. Кеши некоторых PowerPC ядер могут поддерживать когерентность - как относительно доступа других ядер, так и DMA. Лично не пробовал "как оно", но собираюсь smile.gif. А то скорости по 2xGbE нужны большие - кеши инвалидировать целиком жалко, а выборочно - относительно долго sad.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 10 2008, 08:16
Сообщение #19


Гуру
******

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



Дык мы все же об ARM'ах говорим (и UART'е на скорости 115200, а не 2xGbE smile.gif ).
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 10 2008, 08:40
Сообщение #20


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(aaarrr @ Oct 10 2008, 11:16) *
Дык мы все же об ARM'ах говорим (и UART'е на скорости 115200, а не 2xGbE smile.gif ).

Да понятно smile.gif. Это я вылез с "исторической справкой", для общего развития smile.gif.
А для топикстартера - для того чтобы "выровнять" ядро на микросекунды - надо еще и код во флешке выравнивать. Наткнулся я на такое в SAM7 - написал код, просто генерирует импульс на ножке - допустим скоп видит 150нс. Потом чего-то поменял незначительно в процедуре - и оп-па - уже скоп показывает импульс 250нс. А выяснилось, что просто код немного сдвигался и выборка из флеша немного по-другому сработала. Думаю что в LPC-ях, с их MAM-ом, разброс может быть еще значительно больше.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 10 2008, 09:02
Сообщение #21


Гуру
******

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



Цитата(VslavX @ Oct 10 2008, 12:40) *
А выяснилось, что просто код немного сдвигался и выборка из флеша немного по-другому сработала.

Программа в thumb'е была?
Go to the top of the page
 
+Quote Post
VslavX
сообщение Oct 10 2008, 09:33
Сообщение #22


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(aaarrr @ Oct 10 2008, 12:02) *
Программа в thumb'е была?

Угу, в thumb'e.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Oct 10 2008, 11:11
Сообщение #23


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

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



Тем не менее просто даже интересно узнать, что у автора такого немыслимого непрерывно делает процессор, что он (автор) сильно озабочен выпадением 2 тактов процессорного времени?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Oct 10 2008, 18:24
Сообщение #24


дятел
*****

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



Цитата(sergeeff @ Oct 10 2008, 15:11) *
Тем не менее просто даже интересно узнать, что у автора такого немыслимого непрерывно делает процессор, что он (автор) сильно озабочен выпадением 2 тактов процессорного времени?
Думаю что автор топика считал что затраты будут куда как больше...(в данном
конкретном случае конечно...)
поэтому и недоверие ПДП...
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Oct 10 2008, 18:38
Сообщение #25


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

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



Книжки надо умные читать (еще Intel на эту тему писал), что DMA - лучшее решение для разгрузки процессора от решения интерфейсных задач.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 06:16
Рейтинг@Mail.ru


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