|
AT91RM9200: быстрая пересылка память-память, ПДП- то для этого нету :( |
|
|
|
 |
Ответов
|
Nov 17 2006, 07:06
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(aaarrr @ Nov 17 2006, 00:23)  Цитата Можно придумать что-то, работающее быстрее, чем memcpy() ? Едва ли: функция memcpy, как правило, очень хорошо оптимизирована. Ну ладно, я уже смирился и приспособился.  Чтение страницы из NAND Flash в память (2112 байт, 8-битная шина) при тактовой шины MCK=25.3MHz, Fcore=101MHz на AT91RM9200 продолжается 2750 us. Из них собственно внутренние дела NAND Flash занимают 23 us, остальное- именно пересылка двух килобайт. Вот еще прочитал в одном документе, описывающем драйвер NAND Flash (одно из моих устройств тоже NAND-Flash). Пишут о наличии нужного DMA в платформах на базе ядра ARM7TDMI. Только непонятно, речь идет о случае "память-память" или "NANDflash-память". Да и что за камни это имеют, интересно. Написано следующее: Код Below is an example for a platform based on ARM7TDMI core: #ifdef DMA_ENABLE do i=*(volatile udword*) (GDMACON0); while ( (i&0x2) != 0); *((volatile unsigned int*) (GDMASRC0)) = Base_Address; *((volatile unsigned int*) (GDMADST0)) = (udword)Buffer; *((volatile unsigned int*) (GDMACNT0)) = udLength[0]; *(volatile unsigned int*) (GDMACON0) = 0x0081; udIndex+=udLength[0]; #endif А, вот, нашел, о ком это они: Samsung KS32C50100. Это конкретно NAND Flash можно на DMA повесить. Круто. Интересно, а все-таки существуют камни с ядром ARM7 или ARM9, имеющие просто DMA для передач "память-память"? Странно, если нету- ведь очень востребованная вещь.
|
|
|
|
|
Nov 17 2006, 13:40
|

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

|
Цитата(Ruslan1 @ Nov 17 2006, 09:06)  Странно, если нету- ведь очень востребованная вещь. Прежде чем 'требовать' подумайте а чем занимается контроллер, когда у него отобрали память? В памяти оно конечно 'само все пересылается' а процессор просто стоит, если у него конечно нет кэшей немеряно и продвинутой системы предсказаний для загрузки кэшей.... Ну а чем стоять - мог и пересылать... Короче, DMA в микроконтролерном мире во многих случаях это просто словечко для маркетинга.....
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 17 2006, 14:41
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(zltigo @ Nov 17 2006, 16:40)  Цитата(Ruslan1 @ Nov 17 2006, 09:06)  Странно, если нету- ведь очень востребованная вещь.
Прежде чем 'требовать' подумайте а чем занимается контроллер, когда у него отобрали память? В памяти оно конечно 'само все пересылается' а процессор просто стоит, если у него конечно нет кэшей немеряно и продвинутой системы предсказаний для загрузки кэшей.... Ну а чем стоять - мог и пересылать... Короче, DMA в микроконтролерном мире во многих случаях это просто словечко для маркетинга..... Да пусть хоть совсем стоит и ждет, пока две железяки быстро обменяются с помощью его DMA-контроллера. Цикл шины на источник плюс на приемник и слово передано. Что должно быть не хуже, чем под управлением АЛУ- это очевидно. А насчет "DMA для маркетологов"- совсем не согласен. Скажу про себя- разгружает сильно. Для вссяких там UART/SPI/I2C- это просто спасение. Да и для USB/Ethernet думаю тоже.
|
|
|
|
|
Nov 17 2006, 18:28
|

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

|
Цитата(Ruslan1 @ Nov 17 2006, 16:41)  Скажу про себя- разгружает сильно. Это Вы на чем? На Pentium M? :-))))) Вообще попробуйте как-нибудь попробовать аккуратно реализовать (там, де возможны варианты) и померить. Цитата(aaarrr @ Nov 17 2006, 17:59)  А вот мне кажется, что атмел череcчур упорно лепит повсюду свой PDC Ага, причем если у новых LPC 128bit MAM есть и отдельный банк памяти на отдельной шине для DMA нужд, то у Atmel PDC не бог весть как эффективен, естественно по сравнению с простым FIFO а не по сравнению с совсем тупой железкой без ничего.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Ruslan1 AT91RM9200: быстрая пересылка память-память Nov 16 2006, 08:33    vmp Цитата(Ruslan1 @ Nov 17 2006, 17:41) А на... Nov 17 2006, 15:28     Ruslan1 Цитата(zltigo @ Nov 17 2006, 21:28) Цитат... Nov 19 2006, 22:34      zltigo Цитата(Ruslan1 @ Nov 20 2006, 00:34) Я за... Nov 19 2006, 22:41       Ruslan1 Цитата(zltigo @ Nov 19 2006, 22:41) Цитат... Nov 20 2006, 10:07        zltigo Цитата(Ruslan1 @ Nov 20 2006, 09:07) При ... Nov 20 2006, 12:29         vmp Цитата(zltigo @ Nov 20 2006, 12:29) А сво... Nov 20 2006, 15:53          zltigo Цитата(vmp @ Nov 20 2006, 14:53) Разумеет... Nov 20 2006, 16:05         Ruslan1 Цитата(zltigo @ Nov 20 2006, 12:29) А сво... Nov 21 2006, 12:39          zltigo Цитата(Ruslan1 @ Nov 21 2006, 11:39) Да. ... Nov 21 2006, 13:38           Ruslan1 Цитата(zltigo @ Nov 21 2006, 13:38) Цитат... Nov 22 2006, 12:17 doomer#gp Вот memcpy (GCC 4.1.0, -Os optimization)
Код000082... Nov 17 2006, 07:12 aaarrr Цитата(Ruslan1 @ Nov 17 2006, 10:06) Ну л... Nov 17 2006, 13:02 Ruslan1 Цитата(aaarrr @ Nov 17 2006, 16:02) Цитат... Nov 17 2006, 14:30 aaarrr Цитата(Ruslan1 @ Nov 17 2006, 17:41) Для ... Nov 17 2006, 15:59 SpiritDance Цитата(aaarrr @ Nov 17 2006, 15:59) А вот... Nov 20 2006, 10:53 MemoryTest ЦитатаА вот мне кажется, что атмел череcчур упорно... Nov 17 2006, 18:15 sergeeff Как-то наткнулся у Intel на статейку, где сравнива... Nov 20 2006, 11:55
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|