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

 
 
> PCI Express_DMA_SRam, проблемы конфигурации
bychkov_vladimir
сообщение Jan 18 2010, 14:24
Сообщение #1


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

Группа: Участник
Сообщений: 106
Регистрация: 1-06-05
Из: Подольск
Пользователь №: 5 629



Добрый день !
Разрабатываю в Квартус систему взаимодействия PCI express , SRAM , DMA. (картинку взаимодействия прикрепляю)
Прикрепленное изображение
. Под все это написан драйвер и создано тестовое ПО в Jungo Win Driver. После установки платы и подвязки драйвера в системных ресурсах вижу BAR0,1,2. Путем обращения к BAR0 пишу и читаю данные из памяти в Альтере. Теперь хочу реализовать канал DMA. И вопросы...
куда писать параметры конфигурации DMA и где забирать данные (в соответствие с прикрепленной схемой)? Кто сталкивался с подобным проектом, взятым из описания на ядро ?

Заранее благодарен !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
serebr
сообщение Jan 19 2010, 15:33
Сообщение #2


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

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Я думаю, что словом single выражается то обстоятельство, что толкается DMA контроллер один раз и прерывание выдаётся одно - по завершении всей цепочки. Слова scatter-gather я перевёл бы так: перекатывается и собирает. Т.е. перекатывается по блокам данных, разбросанным в памяти ПК, и собирает в единую транзакцию общения с программой-драйвером.
Ключевым же в понятии scatter-gather является наличие цепи, содержащей дескрипторы распределённые во внешней памяти. Register-based DMA - это минимальная реализация DMA-контроллера, когда в нём есть только внутренние регистры для хранения дескрипторов и задаются эти регистры только непосредственно программой-драйвером.

P.S. Цитата из scatter-gather DMA IP core от Альтеры:
Цитата
Comparison of SG-DMA Controller Core and DMA Controller Core

The SG-DMA controller core provides a significant performance enhancement over the previously available DMA controller core, which could only queue one transfer at a time. Using the DMA Controller core, a CPU had to wait for the transfer to complete before writing a new descriptor to the DMA slave port. Transfers to non-contiguous memory could not be linked; consequently, the CPU overhead was substantial for small transfers, degrading overall system performance. In contrast, the SG-DMA controller core reads a series of descriptors from memory that describe the required transactions and performs all of the transfers without additional intervention from the CPU.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Jan 20 2010, 10:16
Сообщение #3


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(serebr @ Jan 19 2010, 18:33) *
Т.е. перекатывается по блокам данных, разбросанным в памяти ПК, и собирает в единую транзакцию общения с программой-драйвером.


А перед этим Вы писали "... Это когда в конце каждой DMA пачки в памяти ПК, предназначенной для пересылки, лежит список параметров для следующего DMA-обмена." :-)

Вообщем для себя я решил, что скатер - способ сбора данных из разных областей в одну транзакцию.
А как эти области организованы - MemBased или RegBased - это уже из другой оперы, другой признак классификации.
Естественно, что наиболее природно смотрится скатер с MemBased DMA.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
serebr
сообщение Jan 20 2010, 10:34
Сообщение #4


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

Группа: Свой
Сообщений: 191
Регистрация: 10-01-05
Из: San Francisco Bay, Silicon Valley
Пользователь №: 1 869



Цитата(Victor® @ Jan 20 2010, 16:16) *
А перед этим Вы писали "... Это когда в конце каждой DMA пачки в памяти ПК, предназначенной для пересылки, лежит список параметров для следующего DMA-обмена." :-)
А как по-другому назвать пересылку блока данных по загруженному из памяти дескриптору? Это и имелось в виду.

Цитата(Victor® @ Jan 20 2010, 16:16) *
Вообщем для себя я решил, что скатер - способ сбора данных из разных областей в одну транзакцию.
А как эти области организованы - MemBased или RegBased - это уже из другой оперы, другой признак классификации.
Естественно, что наиболее природно смотрится скатер с MemBased DMA.
К перечисленным выше
Цитата
1. PLX Technology
2. Xilinx
3. Altera
4. Northwest Logic
от себя в этот список добавлю ещё Lattice. Итого получим список вендоров, выпускающих 90% FPGA чипов в мире. Все они вполне однозначно используют термин scatter-gather для обозначения именно того варианта, о котором я говорил выше. Если хочется быть оригинальным и считать, что этот термин может означать что-то другое - на здоровье! Лишь бы у других людей, читающих эту тему, не сложилось превратного представления о scatter-gather.

P.S. Замечу лишь, что если DMA реализован на RegBased, то исчезает преимущество, которое указано в даташите Альтеры. А именно - возможность использовать регистры DMA контроллера центральным процессором сразу же после начала работы scatter-gather. Т.е. для scatter-gather можно иметь всего один комплект регистров для хранения декскриптора, т.к. после начала работы scatter-gather все остальные дескрипторы из данной цепочки лежат во внешней памяти.

Сообщение отредактировал serebr - Jan 20 2010, 10:44
Go to the top of the page
 
+Quote Post
Victor®
сообщение Jan 20 2010, 13:54
Сообщение #5


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(serebr @ Jan 20 2010, 13:34) *
Все они вполне однозначно используют термин scatter-gather для обозначения именно того варианта, о котором я говорил выше.


О каком варианте из Ваших двух идет речь?
Вы сами сначала определитесь - SG-DMA собирает ВСЕ данные и делает ОДНУ транзакцию
или берет адрес из блока текущей транзакции для ПОСЛЕДУЮЩЕЙ. В первом случае - ОДНА
транзакция, во втором НЕСКОЛЬКО.

\читайте, пожалуйста внимательнее - специально выделяю ключевые слова\

-- успехов


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bychkov_vladimir   PCI Express_DMA_SRam   Jan 18 2010, 14:24
- - Victor®   Цитата(bychkov_vladimir @ Jan 18 2010, 17...   Jan 18 2010, 15:03
|- - Methane   Цитата(Victor® @ Jan 18 2010, 17:03) Ну.....   Feb 23 2010, 18:42
- - Kuzmi4   2 Victor® я давненько в спецификацию на PCI Expre...   Jan 18 2010, 15:25
|- - serebr   Kuzmi4 Инициировать запрос Endpoint может, значит ...   Jan 18 2010, 17:11
- - bychkov_vladimir   Принцип мне понятен. Не ясно как из набора функций...   Jan 19 2010, 13:04
- - serebr   По-хорошему, надо в плате иметь DMA контроллер, ко...   Jan 19 2010, 13:30
|- - Victor®   Цитата(serebr @ Jan 19 2010, 17:30) По-хо...   Jan 19 2010, 14:40
- - serebr   Попробую подробнее описать, что обозначается слова...   Jan 19 2010, 15:05
|- - Victor®   Цитата(serebr @ Jan 19 2010, 19:05) Попро...   Jan 19 2010, 15:24
|- - dsmv   Цитата(Victor® @ Jan 19 2010, 18:24) ... ...   Jan 20 2010, 09:05
|- - serebr   Цитата(Victor® @ Jan 20 2010, 19:54) О ка...   Jan 20 2010, 14:03
|- - Victor®   Цитата(serebr @ Jan 20 2010, 17:03) Комби...   Jan 20 2010, 14:13
- - serebr   Не передёргивайте - не будет и ненужных споров. Ес...   Jan 20 2010, 14:23
- - Бэд   Цитата(serebr @ Jan 20 2010, 20:23) Не пе...   Feb 6 2010, 19:03


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

 


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


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