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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> PCI Express PEX 8311 кто пробовал, Мост PCI Express PEX 8311 Вопросы по применению
NahaL
сообщение Oct 6 2009, 02:49
Сообщение #16


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

Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592



Когда используется режим DMA, контроллер выступает мастером на обоих шинах: Локальной и PCIe. Если внешнее устройство на Локальной шине является мастером, то это устройство может записывать напрямую в память в cont. Burst перебирая адрес, без всяких "переинициализаций DMA" - хоть Block, хоть SGL. (Хотелось бы даже записывать в другое устройство на шине, например в RAID ).
Т.е. попытаться сделать как вы говорили: "1 сплошной трансфер".
При такой схеме надо будет отслеживать Ready.
Это у меня такое мнение создалось :-) , поэтому на истину не претендую, даже скорее наоборот, прошу совета.


Запустить в режиме DMA не составило труда.
Даже запись конф. регистров с Локальной шины получилась :-) , а вот что то с настройкой Direct Master регистров для записи в память разобраться не могу. Как сопоставить Локальный адресс с адресом PCI?
Т.е. Грубо говоря, выделил блок памяти, знаю его физический адрес, отобразил на логический.
Что надо сделать, что бы Direct Master записал что-нибудь именно в этот участок? пусть даже хоть как-нибудь, хотя бы одно словечко. :-)

Сообщение отредактировал NahaL - Oct 6 2009, 02:51
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 6 2009, 18:06
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 NahaL - на счёт
Цитата
Как сопоставить Локальный адресс с адресом PCI?
Вы скачали ДДК и всё прилагающееся к чипу со стороны ПК с сайта PLX ? Там пример есть у PLX - по нему легко научится. Я сам не программил серЙозно это чЮдо со стороны ПК, были программисты, я только самаую малость с ним возился со стороны ПК. На сколько я помню в наборе всякого кода от PLX функция была - записать/прочитать данные, и в нём один из параметров как раз адрес что я видел у себя на локальной шине. Вот как то так...

На счёт скорости вообсче - вы видели что есть чип ? - это спайка 2-х уже имевшихся чипов , там взаимодействие между ними через фифошки организовано, то есть быстрей чем забирает PCIe часть вы ложить не сможете всё равно каким макаром ( на 150МГц он у вас уже будет при любой записи в него (в смысле был ли дма запрос вашей логики прочитать с неё данные или нет ) притормаживать - как раз за счёт перехода данных через эти фифошки - это как бы ответ самому себе на пост выше cool.gif ).
Мы использовали ДМА потому что сначала думали что это как бы забор данных сразу всего и без остановок на перекур angry.gif ..
Go to the top of the page
 
+Quote Post
NahaL
сообщение Oct 14 2009, 13:42
Сообщение #18


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

Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592



Если рассматривать чип как мост, коим он и является, то как раз и менее скоростным и является PCIe интерфейс( пиковая скорость 250 Мб/с, в то время как у локалбной шины скорость 264 Мб/с (Мб с смысле 10^6 :-) ).
Так зачем в таком случае занимать шину PCIe всякими дескрипторами DMA(будь-то SGL или переиниц. Block). Можно завести дескрипторы в памяти со стороны Локальной шины. Так всё и собираюсь попробовать, только даст ли это прирост скорости, на этой недели хочу и узнать. Сомнения вызывает то, что происходит переинициализация DMA через каждые 4Мб данных: и запись пары регистров - капля в море(только вопрос времени... :-) )

И еще... Если на одну шину "повесить" две платы с мостом PEX8311, то между ними можно обмениваться без участия процессора и оперативной памяти. С этим всё понятно.
Значит и можно обмениваться м/у мостом и другим устройством, например RAID, видеокарта и т.д. Только как узнать физический адреса буфера в памяти "стандартного" устройства, который используется в пользовательской программе?

Сообщение отредактировал NahaL - Oct 14 2009, 13:12
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 14 2009, 14:49
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 NahaL - я вообсче то привязывался к конкрентой архитектуре - судя по всему на время отгрузки данных с фифо - чип взводит сигнал что он не готов.. и пока не отгрузит сколько нужно - не опустит его - я про эту задержку.
Go to the top of the page
 
+Quote Post
NahaL
сообщение Oct 15 2009, 17:10
Сообщение #20


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

Группа: Свой
Сообщений: 85
Регистрация: 5-07-06
Из: Барнаул
Пользователь №: 18 592



В том то и дело: получается если ФИФО на чтение из устройства занято(full), то чип производит "отгрузку" данных через шину PCIe. в это время Локальная шина свободна? и можно в это время через неё записывать регистры моста? или чип скажет что он занят?
А кто что скажет по поводу записи из одного устройства в другое на шине? Какие есть мнения?
Go to the top of the page
 
+Quote Post
ambrosix
сообщение May 19 2015, 09:02
Сообщение #21





Группа: Участник
Сообщений: 12
Регистрация: 19-05-15
Пользователь №: 86 753



Тоже работаю с PEX 8311. Необходимо через альтеру согласовать host port сигналника(BF) с PCIe.
С программкой PLXMon все работает. Транзакции идут с большими промежутками.
НО теперь требуется работать с аналогом этой программы,написанной другими товарищами.
Так вот эта программка до 8ми слов подряд читает нормально. Но если запросить больше, то она слепляет транзакции в пачки, расстояние между ними можно регулировать только READY. И читает как то странно. То пропускает пару слов, то повторяет.
А главное я не могу понять, в каком режиме PEX работает вообще(( Никто не поможет?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 07:09
Рейтинг@Mail.ru


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