Kopart 0 11 марта, 2008 Опубликовано 11 марта, 2008 · Жалоба В Virtex 5 с их ядром PCI-E (hard). Проверил теоретическую скорость (без DMA, чтение всегда подтверждается на trn-интерфейсе). Получилось не больше 70Мб/с - на запись. Но я все не могу найти ответ на вопрос - без поддержки DMA в плате возможно чтобы root complex (ПК) пересылал больше чем одно DW в пакете. Пока получается на 3 DW заголовка 1 DW данных (приблизительно и соответсвуют 70Mб/c). Возможно ли слать из ПК больше чем одно DW данных в пакете без поддержки DMA в целевой плате? (WinDriver, Чипсет G31) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RKOB 0 7 апреля, 2008 Опубликовано 7 апреля, 2008 · Жалоба Меня тоже очень интересует данный вопрос... Балуюсь с софтовым ядром ксалинкса (endpoint v3.6) на Virtex-4. Мне пока не удалось переслать более 1 dw данных с хоста... Может у кого-нить имеется опыт работы с PCI-e ? Поделитесь, подскажите ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 7 апреля, 2008 Опубликовано 7 апреля, 2008 · Жалоба Мне пока не удалось переслать более 1 dw данных с хоста... Может у кого-нить имеется опыт работы с PCI-e ? Поделитесь, подскажите ! Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с. Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону. Больше DW только в режиме Reqester. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oval 0 7 апреля, 2008 Опубликовано 7 апреля, 2008 · Жалоба Можно попробовать использовать команды пересылки из расширений MMX/SSE, если речь идет о хосте x86 архитектуры. Сам не специалист по такого рода программированию, но было дело для пакетного обмена на высокой скорости через PCI заказчик использовал команды из этих расширений. При этом за одну транзакцию PCI пересылалось четыре слова. Как на эти команды отреагирует PCIe мост, сказать не могу. Кроме того, для PCI если обращения шли по последовательным адресам, то мост их "слепливал" в одну транзакцию шины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RKOB 0 8 апреля, 2008 Опубликовано 8 апреля, 2008 · Жалоба Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с. Это на скольки лейнах ?? Маловато будет! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 8 апреля, 2008 Опубликовано 8 апреля, 2008 · Жалоба Это на скольки лейнах ?? Маловато будет! Это было для х8 с ядром Xilinx Block Plus и Windriver, режим - Completer (по аналогии с pci - target). Время оценивалось по выходу из пользовательской функции пересылки windriver'a. Точно не проверял, но для х4 значения не сильно уменьшались. Смотрел чипском на внутреннем интерфейсе ядра пакеты записи появлялись групами по 8 пакетов. Внутри группы была задержка в 3 такта частоты, между группой тактов 10. Как я уже писал в пакете было только 2 DW payload. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eternal_nan 0 26 июля, 2008 Опубликовано 26 июля, 2008 · Жалоба esli ya pravilno ponyal vopros, to eto zavisit ot kakoy request sdelayet processor, i zavisit konechno ot processora. AMD/Intel processori v principe ne mogut prosit bolshe odnogo cache line-a, eto 64byte-a, sto bez problem ukladivaetsya v odin pcie paket. esli ti smozes zastavit processor poprosit cache line iz memory mapped space-a na tvoyey pcie plate, to uvidis bolshoy payload. Yesli processor prosit paru dword-ov, stolko i polucit. V chipset v principe ne kombiniruyetsa mnozestvo request-ov. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 29 июля, 2011 Опубликовано 29 июля, 2011 · Жалоба Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с. Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону. Больше DW только в режиме Reqester. А какой приоритет TC использовали в пакете ? Сюдя по невысокой скорости чтения , стояло по умолчанию TC0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 29 июля, 2011 Опубликовано 29 июля, 2011 · Жалоба А какой приоритет TC использовали в пакете ? Сюдя по невысокой скорости чтения , стояло по умолчанию TC0 да xilinx ядра только TC0 и разрешают Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evsh 0 31 июля, 2011 Опубликовано 31 июля, 2011 (изменено) · Жалоба Обычно используем DMA и скорость записи/чтения в режиме completer не замеряли. Но недавно полез с чипскопом в pci-ный модуль и заметил следующее. Раньше, на старых материнских платах, начиная с P4 до Core2Duo под Win2k/2003Server, обмен процессора с девайсом производился всегда строго по одному слову (4 байта). Правда, программную часть толком не копали. На современных же системах: Core i7/Win7 обмен идёт уже блоками по 16 слов (64 байта). Встречаются транзакции и меньшей длины, но основной поток всё же 16DW. И ещё один момент. Есть такое мнение, существенный вклад тут и чипсета. В системе на i7 ещё под Win2003 наблюдались пересылки по 2-3-4DW. Вероятно, хост-контроллер сам уже умеет склеивать последовательные транзакции. Изменено 31 июля, 2011 пользователем Eugenius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 1 августа, 2011 Опубликовано 1 августа, 2011 · Жалоба да xilinx ядра только TC0 и разрешают обойти это нельзя никак ? На современных же системах: Core i7/Win7 обмен идёт уже блоками по 16 слов (64 байта). Встречаются транзакции и меньшей длины, но основной поток всё же 16DW. Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 1 августа, 2011 Опубликовано 1 августа, 2011 · Жалоба обойти это нельзя никак ? Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ? зайдите на intensys.com, посмотрите как сделано, там есть исходники для windriver Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evsh 0 2 августа, 2011 Опубликовано 2 августа, 2011 · Жалоба Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ? Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения. Вот ограничения чипсета на длину пакета (128/256 байт), когда устройсто в режиме DMA при всём желании не может передавать больши блоки данных - это, действительно, не полная поддержка стандарта PCI-E. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Костян 0 3 августа, 2011 Опубликовано 3 августа, 2011 · Жалоба зайдите на intensys.com, посмотрите как сделано, там есть исходники для windriver спасибо, разбираемся. Пока никак не могу понять, зачем они используют прерывания. Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения. понятно. попробуем на низком уровне подцепится к pcie, без windriver Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 3 августа, 2011 Опубликовано 3 августа, 2011 · Жалоба спасибо, разбираемся. Пока никак не могу понять, зачем они используют прерывания. понятно. попробуем на низком уровне подцепится к pcie, без windriver прерывания используются для сигнализации об окончании обмена. А какая у Вас плис? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться