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

 
 
 
Reply to this topicStart new topic
> Проблемы с DMA для PCI-express, Я его и так и эдак, со словами и без слов...
irum4
сообщение Jul 13 2012, 18:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Привет, всем! help.gif
Нужна помощь по DMA для PCI-express!
Я уже замаялся, но в толк не возьму почему все так плохо...
Сделал проект с DMA для PCI-express на базе XAPP1052 для виртекс 6. Где-то слышал, что он кривенько
написан... может быть, вопрос не в этом... Вопрос или даже проблема в том, что пакеты ядро
посылаются, а оттуда ну очень медленно выходят и не освобождают буфер. При чем чем длиннее пакет
тем быстрее "затык".
Для наглядности прикрепляю скрины с чипскопа.
Я в ступоре... Мыслей умных нет...что делать и куда смотреть уже и не знаю...
Кто может толкните twak.gif , чуствую, что решение под ногами, но где wacko.gif
Прикол в том, что модель на симуляторе такого не показывает, там все ок...
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Jul 16 2012, 14:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



В картинках с ходу разобраться не могу. Можно пояснить что собственно происходит и что ожидается.

А посмотреть можно у меня в проекте: http://ds-dev.ru


Go to the top of the page
 
+Quote Post
irum4
сообщение Jul 17 2012, 08:01
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Цитата(dsmv @ Jul 16 2012, 17:54) *
В картинках с ходу разобраться не могу. Можно пояснить что собственно происходит и что ожидается.

А посмотреть можно у меня в проекте: http://ds-dev.ru


Ваш проект смотрел... аналогично с ходу разобраться не могу sm.gif... (но может быть придется)
На картинках относительно sm.gif все просто... это я так для наглядности...
Глобально проблема и вопрос по функционированию pci-express корки ибо это она (точнее я и не знаю почему) глючит.
Предистория:есть плата с виртексом 6-м и источником информации которую надо передавать в память компа, есть программа для ее управления, сделал проект на базе XAPP1052 (убрал остановку после передачи пакета и формирования прерывания), странслировал, прошил, запустил, все ок! Чипскоп показал, что пакеты летят, trn_tbuf_av (в связи с большой скоростью пакетов) постепенно доходит до 0 и затем меняется 1 (передаю пакет), 0 (жду пока корка передаст его в память) , 1 и т.д. Начинаю дополнять проект, разными своими необходимостями (обработка, фифо и т.д.) автомат формирования пакетов не трогаю (прерывания вообще заблокировал) и вдруг!!! получаю то что на картинках:
trn_tbuf_av начинает показывать, что буферы в корке начинают освобождаться о-очень медленно, значение доходить до 0 , после чего выставляется trn_dst_rdy в 1 и гудбай sad.gif, на этом и стоит, корка ничего не передает, более того, если в этот момент, программа читает чего из платы... комп зависает намертво...
Вот такая суть проблемы...


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
novartis
сообщение Jul 18 2012, 08:39
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Может поможет то, что напишу)
Работал с ПЛИС Altera Stratix IV.
Терминология у них такая:
tx_st_ready - сигнал готовности принимать данные коркой,
tx_st_data - 128-битное слово для передачи.
Для передачи данных я формировал пакет максимум из девяти 128-битных слов:
первое слово - заголовок, 8 последующих - непосредственно данные.
В заголовке указывался адрес, куда на ПК надо складывать данные, ну и другая службная информация (все в соответствии со спецификацией на PCIE и описанием корки).

Данные вычитывались из некого буфера размером 150 слов (каждое слово по 128 бит).
Пересылать нужно было разное количество слов, как меньше 150 слов, так и больше 150.

Если меньше 150 - никаких проблем, ready - иногда скакало, буфер заполнялся/освобождался, но все работало.
Если больше 150, то посылалось так (150 разбивал на 8 слов и еще довесок в 6 слов):
8 8 8 8 8 8 8 6, потом у меня была пауза на ожидание, пока вновь заполнится буфер, после опять 8 8 8 ... Х. Х- не имеет значения.
При этом адресацию данных не нарушал, то есть последовательно заполнял выделенную мне память на стороне ПК, не обращая внимания на остановки и паузы.
В этом случае ready скакал ужасно. Если передавал много пачек по 150 слов, то корка PCIE падала на мертво (ready в ноль) после 7 пачки (точно не помню), вешая в последствии комп.

Побядил эту байду так: увеличил буфер до 152 слов, сделав его кратным 8.
Теперь передаю так:
8 8 8 8 8 8 8 8, пауза на заполнение буфера, 8 8 8 8 8 8 8 8, пауза, ..., 8 8 8 ... Х.

Корка с тех пор уже не вешалась)))

Для себя решил, что проблема в какойто хитрож..умной адресации данных, которую я нарушал.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Jul 18 2012, 14:47
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



На модели такое было когда я ошибался в размере пакета. В этом случае всё останавливалось. Может проскакивает какой то неправильный пакет который затыкает канал обмена ?
Go to the top of the page
 
+Quote Post
irum4
сообщение Jul 19 2012, 09:58
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 18-06-04
Пользователь №: 54



Цитата(dsmv @ Jul 18 2012, 17:47) *
На модели такое было когда я ошибался в размере пакета. В этом случае всё останавливалось. Может проскакивает какой то неправильный пакет который затыкает канал обмена ?

Хм-м, возможно, хотя на модели как раз все супер sad.gif, да и формирование пакетов, я не трогаю... данные другие идут, ну и что (мысли вслух)...
Интересно, что при коротких пакетах корка дольше "держится", а при более длинных - как на картинке - один пакет передала и все...


--------------------
Электроника - наука о контактах.
Go to the top of the page
 
+Quote Post
RKOB
сообщение Oct 5 2012, 12:01
Сообщение #7


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

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



Я тоже думаю, что дело в формировании пакета. Может ошиблись размером или адресом.
Вопрос к вам: куда передаете данные? данные доходят все или есть потери?
Go to the top of the page
 
+Quote Post

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

 


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


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