|
PCI-E. Сколько DW данных в TLP пакете возможно без DMA? |
|
|
|
Apr 7 2008, 14:25
|

Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972

|
Цитата(RKOB @ Apr 7 2008, 13:43)  Мне пока не удалось переслать более 1 dw данных с хоста... Может у кого-нить имеется опыт работы с PCI-e ? Поделитесь, подскажите ! Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с. Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону. Больше DW только в режиме Reqester.
--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
|
|
|
|
|
Apr 8 2008, 07:58
|

Частый гость
 
Группа: Свой
Сообщений: 172
Регистрация: 17-03-05
Пользователь №: 3 422

|
Цитата Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с. Это на скольки лейнах ?? Маловато будет!
|
|
|
|
|
Apr 8 2008, 10:04
|

Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972

|
Цитата(RKOB @ Apr 8 2008, 11:58)  Это на скольки лейнах ?? Маловато будет! Это было для х8 с ядром Xilinx Block Plus и Windriver, режим - Completer (по аналогии с pci - target). Время оценивалось по выходу из пользовательской функции пересылки windriver'a. Точно не проверял, но для х4 значения не сильно уменьшались. Смотрел чипском на внутреннем интерфейсе ядра пакеты записи появлялись групами по 8 пакетов. Внутри группы была задержка в 3 такта частоты, между группой тактов 10. Как я уже писал в пакете было только 2 DW payload.
--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
|
|
|
|
|
Jul 26 2008, 05:16
|

Участник

Группа: Свой
Сообщений: 32
Регистрация: 1-11-06
Из: Dikiy Zapad
Пользователь №: 21 844

|
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.
--------------------
Вечность -- Извините за плохой Русский, я Черногорец, Русский не родной язык.
|
|
|
|
|
Jul 29 2011, 11:45
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
QUOTE (NiOS @ Apr 7 2008, 13:25)  Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с.
Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону.
Больше DW только в режиме Reqester. А какой приоритет TC использовали в пакете ? Сюдя по невысокой скорости чтения , стояло по умолчанию TC0
|
|
|
|
|
Jul 31 2011, 17:45
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 13-03-07
Из: Ленинград
Пользователь №: 26 139

|
Обычно используем DMA и скорость записи/чтения в режиме completer не замеряли. Но недавно полез с чипскопом в pci-ный модуль и заметил следующее.
Раньше, на старых материнских платах, начиная с P4 до Core2Duo под Win2k/2003Server, обмен процессора с девайсом производился всегда строго по одному слову (4 байта). Правда, программную часть толком не копали.
На современных же системах: Core i7/Win7 обмен идёт уже блоками по 16 слов (64 байта). Встречаются транзакции и меньшей длины, но основной поток всё же 16DW.
И ещё один момент. Есть такое мнение, существенный вклад тут и чипсета. В системе на i7 ещё под Win2003 наблюдались пересылки по 2-3-4DW. Вероятно, хост-контроллер сам уже умеет склеивать последовательные транзакции.
Сообщение отредактировал Eugenius - Jul 31 2011, 17:52
|
|
|
|
|
Aug 1 2011, 06:18
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
QUOTE (dmitry-tomsk @ Jul 29 2011, 16:02)  да xilinx ядра только TC0 и разрешают обойти это нельзя никак ? QUOTE На современных же системах: Core i7/Win7 обмен идёт уже блоками по 16 слов (64 байта). Встречаются транзакции и меньшей длины, но основной поток всё же 16DW. Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ?
|
|
|
|
|
Aug 2 2011, 18:58
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 13-03-07
Из: Ленинград
Пользователь №: 26 139

|
Цитата(Костян @ Aug 1 2011, 10:18)  Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ? Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения. Вот ограничения чипсета на длину пакета (128/256 байт), когда устройсто в режиме DMA при всём желании не может передавать больши блоки данных - это, действительно, не полная поддержка стандарта PCI-E.
|
|
|
|
|
Aug 3 2011, 06:57
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
QUOTE (dmitry-tomsk @ Aug 1 2011, 05:08)  зайдите на intensys.com, посмотрите как сделано, там есть исходники для windriver спасибо, разбираемся. Пока никак не могу понять, зачем они используют прерывания. QUOTE Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения. понятно. попробуем на низком уровне подцепится к pcie, без windriver
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|