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