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

 
 
> Организация обмена с устройством PCI-Express через DMA
alee
сообщение Apr 1 2007, 21:45
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 19-09-05
Пользователь №: 8 716



Подскажите как повысить скорость обмена с устройством, подключенным к шине PCIe?
Логично использовать в этом случае DMA.
Интересует два момента: 1-вопрос связанный программированием (написанием драйвера); 2-поддержка DMA самим устройством (если данный пункт необходим).

На макетной плате получаем результаты: скорость чтения примерно 6Мбайт, на запись - 2Мбайта.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Doka
сообщение Apr 1 2007, 21:49
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



2. поддержка со стороны PCIe-device фичи DMA просто необходима

1. в драйвере особо революционных изменений нет: просто теперь вместо самих пересылок вам надо "заряжать" для их осуществления контроллер DMA на девайсе: с какого адреса брать и сколько данных (ну и направление)

(либо делать немножко послежнее -как это реализовано например в контроллере DMA для IDE PCI-платы: девайсу просто передается адрес таблицы, содержащей массив данных: адреса и размеры данных для пересылки - что позволяло "раскидывать" данные при пересылках произвольным образом внутри секторов 64К)


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
alee
сообщение Apr 1 2007, 22:17
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 19-09-05
Пользователь №: 8 716



Цитата(Doka @ Apr 1 2007, 22:49) *
2. поддержка со стороны PCIe-device фичи DMA просто необходима


Это в теории или на практике? Ведь в PCI Express нет выделенных линий для захвата шины в отличае от PCI. Каким образом устройство должно обеспечить работу через DMA?
Go to the top of the page
 
+Quote Post
Oldring
сообщение Jul 19 2007, 21:54
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(alee @ Apr 2 2007, 02:17) *
Это в теории или на практике? Ведь в PCI Express нет выделенных линий для захвата шины в отличае от PCI. Каким образом устройство должно обеспечить работу через DMA?


DMA (Direct Memory Access) в применении к PCI называется Bus Master. Если устройство хочет выполнить роль мастера - оно берет управление на себя и формирует требуемый цикл шины.

В PCIe, действительно, нет линий захвата шины. По одной причине: они не нужны. Так как все физические соединения последовательные точка-точка. По ним гоняются пакеты, хабы направляют пакеты в нужном направлении в порядке очереди и приоритетов, при необходимости их буферизуя. Если устройство хочет выполнить роль мастера - оно проста по своей шине посылает соответствующий пакет, следя, чтобы он не конфликтовал с другими пакетами, посылаемыми самим же устройством smile.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post



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

 


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


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