реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> PCI-E. Сколько DW данных в TLP пакете возможно без DMA?
Kopart
сообщение Mar 11 2008, 14:03
Сообщение #1


Знающий
****

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



В Virtex 5 с их ядром PCI-E (hard).

Проверил теоретическую скорость (без DMA, чтение всегда подтверждается на trn-интерфейсе).
Получилось не больше 70Мб/с - на запись. Но я все не могу найти ответ на вопрос - без поддержки DMA в плате возможно чтобы root complex (ПК) пересылал больше чем одно DW в пакете.

Пока получается на 3 DW заголовка 1 DW данных (приблизительно и соответсвуют 70Mб/c).

Возможно ли слать из ПК больше чем одно DW данных в пакете без поддержки DMA в целевой плате? (WinDriver, Чипсет G31)


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
RKOB
сообщение Apr 7 2008, 09:43
Сообщение #2


Частый гость
**

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



Меня тоже очень интересует данный вопрос...
Балуюсь с софтовым ядром ксалинкса (endpoint v3.6) на Virtex-4.
Мне пока не удалось переслать более 1 dw данных с хоста...
Может у кого-нить имеется опыт работы с PCI-e ? Поделитесь, подскажите !
Go to the top of the page
 
+Quote Post
Kopart
сообщение Apr 7 2008, 14:25
Сообщение #3


Знающий
****

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



Цитата(RKOB @ Apr 7 2008, 13:43) *
Мне пока не удалось переслать более 1 dw данных с хоста...
Может у кого-нить имеется опыт работы с PCI-e ? Поделитесь, подскажите !


Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с.

Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону.

Больше DW только в режиме Reqester.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 7 2008, 16:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Можно попробовать использовать команды пересылки из расширений MMX/SSE, если речь идет о хосте x86 архитектуры. Сам не специалист по такого рода программированию, но было дело для пакетного обмена на высокой скорости через PCI заказчик использовал команды из этих расширений. При этом за одну транзакцию PCI пересылалось четыре слова. Как на эти команды отреагирует PCIe мост, сказать не могу. Кроме того, для PCI если обращения шли по последовательным адресам, то мост их "слепливал" в одну транзакцию шины.
Go to the top of the page
 
+Quote Post
RKOB
сообщение Apr 8 2008, 07:58
Сообщение #5


Частый гость
**

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



Цитата
Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с.

Это на скольки лейнах ?? Маловато будет!
Go to the top of the page
 
+Quote Post
Kopart
сообщение Apr 8 2008, 10:04
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
vechnost
сообщение Jul 26 2008, 05:16
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 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.


--------------------
Вечность
-- Извините за плохой Русский, я Черногорец, Русский не родной язык.
Go to the top of the page
 
+Quote Post
Костян
сообщение Jul 29 2011, 11:45
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (NiOS @ Apr 7 2008, 13:25) *
Максимум, что я получил для Completer - это запись - 120Мбайт/с, чтение - 10Мбайт/с.

Максимально в этом режиме можно пересылать только два DWORD полезных данных в пакете в каждую сторону.

Больше DW только в режиме Reqester.

А какой приоритет TC использовали в пакете ?
Сюдя по невысокой скорости чтения , стояло по умолчанию TC0
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Jul 29 2011, 17:02
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Jul 29 2011, 14:45) *
А какой приоритет TC использовали в пакете ?
Сюдя по невысокой скорости чтения , стояло по умолчанию TC0

да xilinx ядра только TC0 и разрешают
Go to the top of the page
 
+Quote Post
Eugenius
сообщение Jul 31 2011, 17:45
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 1 2011, 06:18
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 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 , как это реализовать ?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 1 2011, 07:08
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 1 2011, 09:18) *
обойти это нельзя никак ?



Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ?

зайдите на intensys.com, посмотрите как сделано, там есть исходники для windriver
Go to the top of the page
 
+Quote Post
Eugenius
сообщение Aug 2 2011, 18:58
Сообщение #13


Участник
*

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



Цитата(Костян @ Aug 1 2011, 10:18) *
Вы хотите сказать, что макс пакет данных 16DW ? А как же стандарт со своими 1024DW , как это реализовать ?

Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения.

Вот ограничения чипсета на длину пакета (128/256 байт), когда устройсто в режиме DMA при всём желании не может передавать больши блоки данных - это, действительно, не полная поддержка стандарта PCI-E.
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 3 2011, 06:57
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (dmitry-tomsk @ Aug 1 2011, 05:08) *
зайдите на intensys.com, посмотрите как сделано, там есть исходники для windriver

спасибо, разбираемся.
Пока никак не могу понять, зачем они используют прерывания.

QUOTE
Это вопрос реализации обмена процессора с системными устройствами. Тут уж Intel/Microsoft как хотят, так и поступают. Можно лишь оценивать эффективность решения.

понятно. попробуем на низком уровне подцепится к pcie, без windriver
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 3 2011, 08:39
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 3 2011, 09:57) *
спасибо, разбираемся.
Пока никак не могу понять, зачем они используют прерывания.


понятно. попробуем на низком уровне подцепится к pcie, без windriver

прерывания используются для сигнализации об окончании обмена. А какая у Вас плис?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.02071 секунд с 7
ELECTRONIX ©2004-2016