Цитата(Victor® @ Nov 14 2011, 11:13)

Приветствую.
Как "широко известно в узких кругах"
PCIe допускает 2 модели использования a) HOST-centric и б) Peer-to-Peer.
Если с вариантом a) (весь траффик гоняется через root-complex в HOST CPU) все как-бы прозрачно и понятно?
то с вариантом б) (устройства на PCIe обмениваются без вмешательства и загрузки хоста) не все так гладко, как мне кажется.
Есть у кого опыт реализации P2P на PCI Express? С какими сложностями столкнулись? По всей видимости,
основная заморочка будет с драйверами под это дело.
Зачем мне это надо? Есть задача в которой надо как можно быстрее получать данные с одного PCIe устройства и записывать в другое.
Обработки никакой нет. Вот показалось, что P2P даст максимальную скорость.
Я так понимаю, две модели, это - процессорный ввод/вывод и использование dma? )
На модели процессорный ввод/вывод вообще ни о чем, скорость ниже плинтуса, так что дма обязательно. Другое дело, куда его вставлять? Разные конторы делают по разному: одни встравивают dma контроллер в RC, другие на внутреннюю шину, на которой RC сидит вместе с другими системными устройствами (к примеру, dram контроллер). Второй вариант мне кажется предпочтительнее, поскольку он более универсален, да и RC может быть не единственным в системе (часто делают несколько штук из связки RC-RP, вместо того чтобы сделать один RC с несколькими RP).
В общем, в любом случае, использование DMA обязательно. Процессорной ввод/вывод нужен только для CFG, PM/MSG и прочего