Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCI Express PEX 8311 кто пробовал
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Dmitry_D2
Здравствуйте.
Кто нибудь пробовал мост PCI Express PEX 8311 ( 1-lane PCI Express (PCIe) to 32-bit, 66MHz generic local bus bridge) ?
Есть необходимость передачи данных в компьютер, скорость нужна 80-100 мегабайт/сек.
Раньше делал подобное на PCI, но там скорость была около 2 мегабайт/сек. Использовал Altera Cyclone II. Теперь скорости выросли и решил что на ПЛИС я такое сам не напишу, плюс драйвера придется как обычно самому писать.
Если кто реально пробовал поделитесь информацией. Интересуют главным образом проблемы, которые возникают при разработке устройства и макс. скорость.
И еще проблема никак не могу скачать у них (http://www.plxtech.com/products/expresslane/pex8311.asp) необходимую документацию. Как и где я уже только не регистрировался чтобы стать Membership как они требуют.
Если кто-то уже скачал (ссылка выше) необходимую информацию выложите пожалуйста куда-нибудь (можно на фтп) или ссылочку где это нормально можно скачать. На фтп видел PLX PCI SDK, больше ничего не нашел.
Спасибо.
makc
Я пока еще его не пробовал, но тоже нацелен на его применение.
Документацию можно забрать в известном месте по адресу /pub/DOC/Datasheets/PLX
klop
Делал систему PEX 8311 + Spartan-3. В PC получилось гдето 120 мегабайт/сек, из PC 25-40 мегабайт/сек. Скорость (особенно чтение) будет зависеть от материнки. В PowerPC вроде получьше но это другая песня. Использовался режим внешнего мастера на локальной шине.
HardJoker
Цитата(klop @ Aug 3 2008, 00:59) *
Делал систему PEX 8311 + Spartan-3. В PC получилось гдето 120 мегабайт/сек, из PC 25-40 мегабайт/сек. Скорость (особенно чтение) будет зависеть от материнки. В PowerPC вроде получьше но это другая песня. Использовался режим внешнего мастера на локальной шине.



Что означает "В PowerPC вроде получше..."? Имеется ввиду какой-либо SoC PowerPC с поддержкой PCIe?
klop
Цитата(HardJoker @ Aug 3 2008, 08:07) *
Что означает "В PowerPC вроде получше..."? Имеется ввиду какой-либо SoC PowerPC с поддержкой PCIe?


Именно.
Dmitry_D2
Если не секрет, какие размеры приемных-передающих буферов понадобились для обеспечения такой скорости.
klop
Цитата(Dmitry_D2 @ Aug 4 2008, 20:03) *
Если не секрет, какие размеры приемных-передающих буферов понадобились для обеспечения такой скорости.


Razdel'no na priem i peredachu v Spartane -> 512x32.
Kuzmi4
Здравствуйте.

Имею счастие возиться с PEX 8311 <=> EP2C50 rolleyes.gif
Возник вопрос, от безысходности что ли решил написать ( уже и саппорт перемучал и ДШ перечитал...)

В обсчем умею писать/читать данные с него в режиме Direct Master.
Только понадобилось заюзать DMA - надо много чего гонять в компутер быстро..
Для огранизации сего использовал диаграмму 6.58 из "PEX_8311AA_Data_Book_v0.95_07Mar07.pdf"
Времянки проверил, логика как на диаграмме.
Пробую самый простой вариант - выдавать значения счётчика - в результате получал массив в котором все элементы равны 1-му.
Думал что траблы в READY# - отрубил его в DMAMODE0 - времянка как на 6.58, только без READY# - он в "1" - в результате вообсче получаю все нули...
Проверял даже значение на LAD - меняются, данные выдаются столько сколько запрашиваю с ПК... smile3046.gif
Прикинул - если времянка как на родной диаграмме и READY# отключен - ну не бывает так чтоб не работало.... cranky.gif
В обсче м вот такая ситуация - может работал кто, подскажет куда смотерть crying.gif
1111493779.gif
v_mirgorodsky
Может я чего-то не понимаю, а может, есть действительно реальная необходимость в использовании решений типа PEX8311AA? В чем его преимущество перед стандартным мостом PCIe-PCI? Тем более, что мост PCIe-PCI доступен как минимум от трех разных производителей, а PEX8311AA аналогов у других производителей не имеет.

В нашем случае мы использовали мост PCIe-PCI XIO2000A. Максимальная производительность линка зависит от конкретного чипсета, но на цифру порядка 160MB/sec в сторону памяти компьютера от PCIe платы можно рассчитывать всегда. Пишем мастером, мастер реализован в FPGA Cyclone III, работаем на 66Mhz PCI шине. К недостаткам решения относится полудуплексная передача данных - общий недостаток PCI как таковой, сравнительно медленная скорость чтения данных из памати компьютера - порядка 100MB/sec, относительная сложность отладки готового устройства. Лучших результатов можно достичь только имея встроенное в проект ядро, однако в нашем случае это приводит к неоправданному и сильному удорожанию всего проекта.
Kuzmi4
2 v_mirgorodsky - как по мне то такие чипы сделаны для того чтобы наваять периферийку(не монстроидальную), засунуть в авалон и нормально его там юзать....И не заморачиваться всей физикой и логикой протокола.... Ну как USB 2.0 от SLS на ISP1504 например...

Однако это не решения вопроса..... всё равно не могу понять почему не работает... smile3046.gif
Kuzmi4
smile3009.gif
в обсчем васислий я а не кузьмич - оПшибка в коде на ПК была..... Времянка с Timing Diagramm 6.58 из "PEX_8311AA_Data_Book_v0.95_07Mar07.pdf" - самое оно rolleyes.gif
херовый с меня программер smile3046.gif ...
Kuzmi4
И снова здравствуйте! wink.gif

Значит раскочегарил я передачу DMA в On Demand моде. Вот только незадачка - если хочу передать большой пакет данных - он их бъёт на трасферы по 290 32-битных слов - то есть появляется BLAST#, а за ним опять ADS# - и трансфер продолжается wacko.gif
Это как понимать ?
В документации - v0.95_07Mar07 - ничего такого не нашёл - искал долго, потому сомнений что не нашёл очень мало...
Это какая то недокументированная фича али баг ? Как вообсче понимать такое интересное поведение ? Саппорт упорно молчит.... sad.gif
1111493779.gif
Kuzmi4
Дальнейшее исследование сего чЮда науки и техники показало, что наборы не всегда по 290 32-хбитных слов - иногда больше.
При чём картина такова что по даташиту должен быть 1 сплошной трансфер а в реальности происходит несколько маленьких, с которых и набирается 1 большой... cranky.gif
При чём имеется закономерность - 1-й трасфер всегда 290 а потом сколько нужно может забрать и в пару присестов... smile3046.gif
О как... wacko.gif
такое ощущение что камень живёт своей личной жизнью .... 1111493779.gif

Тишина саппорта настораживает.....

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


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

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

И еще... Если на одну шину "повесить" две платы с мостом PEX8311, то между ними можно обмениваться без участия процессора и оперативной памяти. С этим всё понятно.
Значит и можно обмениваться м/у мостом и другим устройством, например RAID, видеокарта и т.д. Только как узнать физический адреса буфера в памяти "стандартного" устройства, который используется в пользовательской программе?
Kuzmi4
2 NahaL - я вообсче то привязывался к конкрентой архитектуре - судя по всему на время отгрузки данных с фифо - чип взводит сигнал что он не готов.. и пока не отгрузит сколько нужно - не опустит его - я про эту задержку.
NahaL
В том то и дело: получается если ФИФО на чтение из устройства занято(full), то чип производит "отгрузку" данных через шину PCIe. в это время Локальная шина свободна? и можно в это время через неё записывать регистры моста? или чип скажет что он занят?
А кто что скажет по поводу записи из одного устройства в другое на шине? Какие есть мнения?
ambrosix
Тоже работаю с PEX 8311. Необходимо через альтеру согласовать host port сигналника(BF) с PCIe.
С программкой PLXMon все работает. Транзакции идут с большими промежутками.
НО теперь требуется работать с аналогом этой программы,написанной другими товарищами.
Так вот эта программка до 8ми слов подряд читает нормально. Но если запросить больше, то она слепляет транзакции в пачки, расстояние между ними можно регулировать только READY. И читает как то странно. То пропускает пару слов, то повторяет.
А главное я не могу понять, в каком режиме PEX работает вообще(( Никто не поможет?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.