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

 
 
> DMA унд ARM, Принцип работы несколько непонятен
impatt
сообщение Oct 5 2007, 08:56
Сообщение #1


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Итак, ARM9, конкретно Самсунг S3c2440.
Есть две микрухи памяти, по 16 магабайт каждая.
Каждая содержит в себе 4 банка (х.з., что такое), имеет 16 разрядную шину данных.
Планируется подключение их каждую на свою половину шины данных, стало быть, вдвоём они будут на шине 32 бита.
Гимор с сигналами выбора банка (полагаю, что их можно прицепить на пару сраших адресных линий), и самый большой гимор с сигналами *DQM (UDQM, LDQM - их там пара).
Вот что делать с ними - неизвестно.
На схеме отладочной платы для at91rm9200, которую глянул ради интереса, они подключены к чему-то непонятному: одна к младшей адресной линии, другая к сигналу разрешения записи, что-ли, не вдавался.

Подскажите, плз, как понимать эти ножки ? По скудным описаниям SDRAM в инете - увязать всё по нормальному не могу.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
impatt
сообщение Sep 19 2008, 09:10
Сообщение #2


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Привет всем.
Опять у меня дошли руки до АРМ-процов.
Читаю доку на Samsung S3C2440.
Интересует пересылка данных посредством DMA с подключенного внешнего устройства.
Судя по прочтённому получается, что общение блоками состоит из:
1. Инициализация (подробности опущу).
2. 4 операции чтения + 4 операции записи (можно меньше, наверное).
3. Проверка готовности DMA
4. Если готов - продолжаем на шаг #2
5. Завершение (опускаю подробности).

Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ?
Может, я как-то не так понял ?
Как на других контроллерах сделано ?


Цитата(impatt @ Sep 19 2008, 14:48) *
Требуется понять: нафига обязательные 4 чтения перед записью, если я хочу только писать ? Или наоборот ?
Может, я как-то не так понял ?
Как на других контроллерах сделано ?

Э-э.. Кажется, я начинаю догонять. Сначала читается из того места, откуда берутся данные, потом пишется в целевое место, кусками по 4 слова.
Так, что-ли ?..
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 19 2008, 10:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(impatt @ Sep 19 2008, 12:10) *
Э-э.. Кажется, я начинаю догонять. Сначала читается из того места, откуда берутся данные, потом пишется в целевое место, кусками по 4 слова.
Так, что-ли ?..

Хм, мне казалось, что принципы DMA не изменились - чтение и запись происходят одновременно.
Direct memory access, yes? Может, с википедии начать?
http://en.wikipedia.org/wiki/Direct_memory_access


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
impatt
сообщение Sep 20 2008, 03:42
Сообщение #4


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

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Цитата(Dog Pawlowa @ Sep 19 2008, 16:23) *
чтение и запись происходят одновременно.

Ну, я ж не спрашиваю, что такое DMA ? wink.gif
Так что, сэр, предлагаю поразмыслить над тем, как имея одну шину адреса и одну шину данных, к которым подключен источник и получатаель, можно читать и писать _одновременно_. Типа, шина адреса будет сразу два адреса удерживать (источника и получателя), так что-ли ? wink.gif
Собсна, ввиду того, что такое невозможно, становится ясно, почему в ARM-ах а-ля PXA270 и S3C2440 сделано сходно и именно таким образом.
Вопрос снят.
ЗЫ: а за ссылочку спасибо - что-то я позабыл про cache coherency problem, вовремя вспомнил благодаря ссылочке smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 22 2008, 06:25
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(impatt @ Sep 20 2008, 06:42) *
Так что, сэр, предлагаю поразмыслить над тем, как имея одну шину адреса и одну шину данных, к которым подключен источник и получатаель, можно читать и писать _одновременно_. Типа, шина адреса будет сразу два адреса удерживать (источника и получателя), так что-ли ? wink.gif

И я ссылочку посмотрел smile.gif В википедии вруть: " is a feature of modern computers "
30 лет назад DMA успешно работал в системе с 8080 (контроллер 8057 или 8257 - забыл sad.gif ).
Это режим memory-to-memory появился сравнительно недавно, вот некоторые могли бы уточнить режим, а не взывать к телепатии. Тем более, что (опять по ссылке)
"A slave interface is similar to programmed I/O through which the software (running on embedded CPU, e.g. ARM) can write/read I/O registers or (less commonly) local memory blocks inside the device"


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post



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

 


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


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