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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Реализация PCI-E x4 на Virtex5, Endpoint Block Plus v1.10 for PCI Express
Methane
сообщение Feb 20 2011, 12:52
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(dmitry-tomsk @ Feb 20 2011, 14:43) *
запросы со страницами не связаны, они равны mps или mrs.

Что такое mps, mrs? в корке альтеровской есть регистр, в котором максимальный размер запроса.

Цитата
Страницы нужны потому что windows больше мегабайта непрерывный кусок памяти выделять отказывается.

page, вообще-то 4килобайта. и пересекать ее нельзя. И линух тоже больше чем сколько-то не дает (не помню сколько) но это можно побороть.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Feb 20 2011, 15:50
Сообщение #17


Знающий
****

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



Цитата(Methane @ Feb 20 2011, 15:52) *
Что такое mps, mrs? в корке альтеровской есть регистр, в котором максимальный размер запроса.


page, вообще-то 4килобайта. и пересекать ее нельзя. И линух тоже больше чем сколько-то не дает (не помню сколько) но это можно побороть.

mps - max payload size, mrs - max read size, определяются чипсетом (root complex), для большинства чипсетов 128 байт. За пересечением границ должен следить автомат, формирующий запросы.
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 20 2011, 16:00
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(dmitry-tomsk @ Feb 20 2011, 17:50) *
mps - max payload size, mrs - max read size, определяются чипсетом (root complex), для большинства чипсетов 128 байт. За пересечением границ должен следить автомат, формирующий запросы.

Ок. Оба этих значения кратны степени двойки, ответ на мемори реад реквест может быть побит на несколько транзакций (компетишионов). За пересечением следить не нужно, если начало буфера для DMA задать на границе 4х килобайт.
Go to the top of the page
 
+Quote Post
ZAO
сообщение Feb 21 2011, 08:01
Сообщение #19





Группа: Новичок
Сообщений: 8
Регистрация: 17-01-06
Пользователь №: 13 289



Цитата(L_Konstantin @ Feb 18 2011, 13:57) *
Имеется собственная плата с FPGA Virtex5, устанавливается в слот PCI-E x4.

И вот здесь возникла проблема: портятся данные, которые приходят из устройства в ПК.

Есть ли у кого опыть запуска PCIe ядра в дуплексном режиме?

Сталкивался с такой проблемой. Ошибка возникала в тракте буферизации данных направляемых на ПК. Решил за счет уменьшения тактовой частоты до 125 Мгц и соответственно увеличения размера шины данных до 64 бит.
Go to the top of the page
 
+Quote Post
L_Konstantin
сообщение Feb 22 2011, 10:47
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 13-10-06
Из: Новосибирск
Пользователь №: 21 282



Цитата(ZAO @ Feb 21 2011, 14:01) *
Сталкивался с такой проблемой. Ошибка возникала в тракте буферизации данных направляемых на ПК. Решил за счет уменьшения тактовой частоты до 125 Мгц и соответственно увеличения размера шины данных до 64 бит.


А уточните пожалуйста, в каком именно месте у вас возникали временные гонки?

У меня и так частота 125 МГц (раньше 250 была) и ширина данных 64 бита.
Буду пытаться обвешивать constrains-ами тракт данных (хотя и так вроде они написаны) - вдруг получится чего...

Сообщение отредактировал L_Konstantin - Feb 22 2011, 10:48
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 22 2011, 12:48
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Какая у тя плата? Посоветуй какую-нибудь плату Xilinx с PCI-E?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
L_Konstantin
сообщение Feb 24 2011, 03:24
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 13-10-06
Из: Новосибирск
Пользователь №: 21 282



Цитата(D-Luxe @ Feb 22 2011, 18:48) *
Какая у тя плата? Посоветуй какую-нибудь плату Xilinx с PCI-E?


Плата собственного производства (ну точнее разработка своя, а изготовление - Тайвань).

Когда игрались с X1 то была тестовая плата от Xilinx на базе spartan с софтверным ядров и физическом уровне PCI-E на Philips.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Feb 25 2011, 12:02
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(L_Konstantin @ Feb 24 2011, 09:24) *
Плата собственного производства (ну точнее разработка своя, а изготовление - Тайвань).

Когда игрались с X1 то была тестовая плата от Xilinx на базе spartan с софтверным ядров и физическом уровне PCI-E на Philips.

Там у тебя должен быть арбитр между твоей корой и собственно писиайным ядром. Он должен разруливать три потока (target read completion, master read request и master write data).
И в некоторых случаях (пришли два запроса одновременно) уметь "тормозить" эти потоки пока канал Your_IP_core->PCI_Express_core занят передачей данных другого потока.
Штука эта (арбитр) не очень сложная, но больно уж муторная в отладке. ИМХО, проблема где-то в этом куске (по отдельности ведь всё работает!).
Go to the top of the page
 
+Quote Post
Fast
сообщение Feb 26 2011, 11:11
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



у нас на 5м Virtex все работало на x8, примерно 12-13 гбит.с в обе стороны, правда, при глубокой переработке обвязки для ендпоинта
драйвер под Windriver в режиме polling, два буфера на прием/передачу по 2Мб (payload=128DW 4096 шт)

как вариант, контроллер DMA что на материнке может неправильно обрабатывать поток данных
можно для начала поиграться с размером пейлоада и их кол-вом , попробовать на другой машине, а потом препарировать
Go to the top of the page
 
+Quote Post
Methane
сообщение Feb 26 2011, 12:15
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(Fast @ Feb 26 2011, 13:11) *
для начала поиграться с размером пейлоада

Реализация PCIe у ксилинкса не позволяет просто узнать максимальный размер? Или вы "научным тыком"?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Feb 26 2011, 15:09
Сообщение #26


Знающий
****

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



Цитата(Fast @ Feb 26 2011, 14:11) *
у нас на 5м Virtex все работало на x8, примерно 12-13 гбит.с в обе стороны, правда, при глубокой переработке обвязки для ендпоинта
драйвер под Windriver в режиме polling, два буфера на прием/передачу по 2Мб (payload=128DW 4096 шт)

как вариант, контроллер DMA что на материнке может неправильно обрабатывать поток данных
можно для начала поиграться с размером пейлоада и их кол-вом , попробовать на другой машине, а потом препарировать

А что, если не секрет, было не так с обвязкой?
Go to the top of the page
 
+Quote Post
Fast
сообщение Feb 26 2011, 19:50
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(Methane @ Feb 26 2011, 15:15) *
Реализация PCIe у ксилинкса не позволяет просто узнать максимальный размер? Или вы "научным тыком"?
позволяет. Но на максимальном размере периодически система подвисала намертво, в режиме длительного изнасилования на предельный скоростях.
Это на мой взгляд оптимальное соотношение для X58 интеловских плат с т.з. длительной и стабильной работы, имхо, разумеется.


Цитата(dmitry-tomsk @ Feb 26 2011, 18:09) *
А что, если не секрет, было не так с обвязкой?
по заполнении буферов DMA необходимо давать рестарт контроллеру DMA из драйвера, мы решили делать автоматический рестарт из обвязки ендпоинта. Драйвер занимается только мониторингом состояния, считыванием и заполнением буферов, непрерывно. Плюс в служебных TLP-пакетах поднимаем на хост некоторую статистическую информацию. т.е. вопрос никак не связан с качеством исполнения имеющейся обвязки, скорее, с особенностями работы нашего устройства.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Feb 26 2011, 20:02
Сообщение #28


Знающий
****

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



Цитата(Fast @ Feb 26 2011, 23:50) *
позволяет. Но на максимальном размере периодически система подвисала намертво, в режиме длительного изнасилования на предельный скоростях.
Это на мой взгляд оптимальное соотношение для X58 интеловских плат с т.з. длительной и стабильной работы, имхо, разумеется.


по заполнении буферов DMA необходимо давать рестарт контроллеру DMA из драйвера, мы решили делать автоматический рестарт из обвязки ендпоинта. Драйвер занимается только мониторингом состояния, считыванием и заполнением буферов, непрерывно. Плюс в служебных TLP-пакетах поднимаем на хост некоторую статистическую информацию. т.е. вопрос никак не связан с качеством исполнения имеющейся обвязки, скорее, с особенностями работы нашего устройства.

Понятно, спасибо. А не наблюдали, случайно, зависания операционной системы при максимальной загрузке приёмной линии? У меня на x1 упорно виснит, если поток данных читать быстрее чем 167 мбайт в секунду, приходится ограничивать скорость чтения (:
Go to the top of the page
 
+Quote Post
Fast
сообщение Feb 26 2011, 20:34
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



Цитата(dmitry-tomsk @ Feb 20 2011, 18:50) *
mps - max payload size, mrs - max read size, определяются чипсетом (root complex), для большинства чипсетов 128 байт. За пересечением границ должен следить автомат, формирующий запросы.
если точнее, то они определяются по согласованию между возможностями ОС, чипсета и Core.
а непрерывный кусок памяти ядра windows можно выделить больше 1 Мб, кажется 16... но не помню, давно драйвер писал


Цитата(dmitry-tomsk @ Feb 26 2011, 23:02) *
Понятно, спасибо. А не наблюдали, случайно, зависания операционной системы при максимальной загрузке приёмной линии? У меня на x1 упорно виснит, если поток данных читать быстрее чем 167 мбайт в секунду, приходится ограничивать скорость чтения (:
ой, че только не наблюдали, висло по разному... и искажения периодически появлялись. В основном правда из-за размеров TLP и DMA-блока данных.

Сидели пыхтели вдвоем, я писал драйвер, а коллега правил обвязку. Сначала подправили кусок кода, чтоб правильно писать в регистры (из ендпоинта) и соотв. читать регистры (из драйвера) флаги о состоянии и готовности буферов. Там была такая фишка, что последний пакет блока не успевал "долететь" в буфер на хост, а драйвер забирал уже весь буфер, т.к. регистры показывали что все готово. Потом на высоких скоростях одно ядро CPU было занято на 100% только на мониторинг регистров и рестарт контроллера, - переписали другой фрагмент обвязки и драйвера. Потом понадобилось пересылать доп. данные - дописали третий, и т.д. много мелких неприятностей, с которыми приходилось бороться днями и неделями
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Feb 26 2011, 21:26
Сообщение #30


Знающий
****

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



Цитата(Fast @ Feb 27 2011, 00:34) *
если точнее, то они определяются по согласованию между возможностями ОС, чипсета и Core.
а непрерывный кусок памяти ядра windows можно выделить больше 1 Мб, кажется 16... но не помню, давно драйвер писал


ой, че только не наблюдали, висло по разному... и искажения периодически появлялись. В основном правда из-за размеров TLP и DMA-блока данных.

Сидели пыхтели вдвоем, я писал драйвер, а коллега правил обвязку. Сначала подправили кусок кода, чтоб правильно писать в регистры (из ендпоинта) и соотв. читать регистры (из драйвера) флаги о состоянии и готовности буферов. Там была такая фишка, что последний пакет блока не успевал "долететь" в буфер на хост, а драйвер забирал уже весь буфер, т.к. регистры показывали что все готово. Потом на высоких скоростях одно ядро CPU было занято на 100% только на мониторинг регистров и рестарт контроллера, - переписали другой фрагмент обвязки и драйвера. Потом понадобилось пересылать доп. данные - дописали третий, и т.д. много мелких неприятностей, с которыми приходилось бороться днями и неделями

У меня sgdma режим и кольцевые буферы по 50 МБайт, так что таких проблем не было. А вот чтение виснет, скорость для x1 предельная - чипскоп показывает, что обмен идёт, ошибок нет, а ОС висит мёртво. Как только вставляю паузы в последовательности запросов - всё нормально. Возможно, на x8 hard ip не может полностью загрузить полосу и такого эффекта нет, но проверить пока не на чем. А что за железо у Вас?
Go to the top of the page
 
+Quote Post

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

 


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


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