alee 0 1 апреля, 2007 Опубликовано 1 апреля, 2007 · Жалоба Подскажите как повысить скорость обмена с устройством, подключенным к шине PCIe? Логично использовать в этом случае DMA. Интересует два момента: 1-вопрос связанный программированием (написанием драйвера); 2-поддержка DMA самим устройством (если данный пункт необходим). На макетной плате получаем результаты: скорость чтения примерно 6Мбайт, на запись - 2Мбайта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 1 апреля, 2007 Опубликовано 1 апреля, 2007 · Жалоба 2. поддержка со стороны PCIe-device фичи DMA просто необходима 1. в драйвере особо революционных изменений нет: просто теперь вместо самих пересылок вам надо "заряжать" для их осуществления контроллер DMA на девайсе: с какого адреса брать и сколько данных (ну и направление) (либо делать немножко послежнее -как это реализовано например в контроллере DMA для IDE PCI-платы: девайсу просто передается адрес таблицы, содержащей массив данных: адреса и размеры данных для пересылки - что позволяло "раскидывать" данные при пересылках произвольным образом внутри секторов 64К) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alee 0 1 апреля, 2007 Опубликовано 1 апреля, 2007 · Жалоба 2. поддержка со стороны PCIe-device фичи DMA просто необходима Это в теории или на практике? Ведь в PCI Express нет выделенных линий для захвата шины в отличае от PCI. Каким образом устройство должно обеспечить работу через DMA? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 1 апреля, 2007 Опубликовано 1 апреля, 2007 · Жалоба честно говоря сужу действительно по аналогии с PCI - должен существовать на стороне девайса некий автомат (контроллер DMA), который осуществляет пересылку без вмешательства со стороны CPU насчет отсутствия линий захвата шины: так в PCI Express каждый слот к индивидуальному хосту подключен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alee 0 1 апреля, 2007 Опубликовано 1 апреля, 2007 · Жалоба насчет отсутствия линий захвата шины: так в PCI Express каждый слот к индивидуальному хосту подключен Все еще не понятен механизм организации такого обмена. Складывается впечатление, что должно быть промежуточное звено на шине (возможно Root Complex - в терминах спецификации), которое и отвечает за прямой доступ к памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
InvisibleFed 0 3 апреля, 2007 Опубликовано 3 апреля, 2007 · Жалоба Вот в nVidia как я понял хотят видяху обучить этому же - до того видать не умела. Так вот чего надо: 1. поддержка устройства 2. поддержка ОСи!!! Я честно не особо разбирался, но где-то читал, что имеено потому что GeForce8800 и DirectX 10 предусматривают нечто подобное, DirectX 10 и существует ТОЛЬКО под Vista, под XP его нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 19 июля, 2007 Опубликовано 19 июля, 2007 · Жалоба Это в теории или на практике? Ведь в PCI Express нет выделенных линий для захвата шины в отличае от PCI. Каким образом устройство должно обеспечить работу через DMA? DMA (Direct Memory Access) в применении к PCI называется Bus Master. Если устройство хочет выполнить роль мастера - оно берет управление на себя и формирует требуемый цикл шины. В PCIe, действительно, нет линий захвата шины. По одной причине: они не нужны. Так как все физические соединения последовательные точка-точка. По ним гоняются пакеты, хабы направляют пакеты в нужном направлении в порядке очереди и приоритетов, при необходимости их буферизуя. Если устройство хочет выполнить роль мастера - оно проста по своей шине посылает соответствующий пакет, следя, чтобы он не конфликтовал с другими пакетами, посылаемыми самим же устройством :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alee 0 20 июля, 2007 Опубликовано 20 июля, 2007 · Жалоба Спасибо за ответы, ситуация прояснилась! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Playnet 0 7 января, 2008 Опубликовано 7 января, 2008 · Жалоба Поделитесь плз доками про программирование PCIe и пример драйвера.... Драйвер WDM обычно делают? И в чем? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться