Перейти к содержанию
    

PCI Express PEX 8311 кто пробовал

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

Т.е. попытаться сделать как вы говорили: "1 сплошной трансфер".

При такой схеме надо будет отслеживать Ready.

Это у меня такое мнение создалось :-) , поэтому на истину не претендую, даже скорее наоборот, прошу совета.

 

 

Запустить в режиме DMA не составило труда.

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

Т.е. Грубо говоря, выделил блок памяти, знаю его физический адрес, отобразил на логический.

Что надо сделать, что бы Direct Master записал что-нибудь именно в этот участок? пусть даже хоть как-нибудь, хотя бы одно словечко. :-)

Изменено пользователем NahaL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 NahaL - на счёт

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

 

На счёт скорости вообсче - вы видели что есть чип ? - это спайка 2-х уже имевшихся чипов , там взаимодействие между ними через фифошки организовано, то есть быстрей чем забирает PCIe часть вы ложить не сможете всё равно каким макаром ( на 150МГц он у вас уже будет при любой записи в него (в смысле был ли дма запрос вашей логики прочитать с неё данные или нет ) притормаживать - как раз за счёт перехода данных через эти фифошки - это как бы ответ самому себе на пост выше B) ).

Мы использовали ДМА потому что сначала думали что это как бы забор данных сразу всего и без остановок на перекур :angry2: ..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если рассматривать чип как мост, коим он и является, то как раз и менее скоростным и является PCIe интерфейс( пиковая скорость 250 Мб/с, в то время как у локалбной шины скорость 264 Мб/с (Мб с смысле 10^6 :-) ).

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

 

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

Значит и можно обмениваться м/у мостом и другим устройством, например RAID, видеокарта и т.д. Только как узнать физический адреса буфера в памяти "стандартного" устройства, который используется в пользовательской программе?

Изменено пользователем NahaL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 NahaL - я вообсче то привязывался к конкрентой архитектуре - судя по всему на время отгрузки данных с фифо - чип взводит сигнал что он не готов.. и пока не отгрузит сколько нужно - не опустит его - я про эту задержку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том то и дело: получается если ФИФО на чтение из устройства занято(full), то чип производит "отгрузку" данных через шину PCIe. в это время Локальная шина свободна? и можно в это время через неё записывать регистры моста? или чип скажет что он занят?

А кто что скажет по поводу записи из одного устройства в другое на шине? Какие есть мнения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже работаю с PEX 8311. Необходимо через альтеру согласовать host port сигналника(BF) с PCIe.

С программкой PLXMon все работает. Транзакции идут с большими промежутками.

НО теперь требуется работать с аналогом этой программы,написанной другими товарищами.

Так вот эта программка до 8ми слов подряд читает нормально. Но если запросить больше, то она слепляет транзакции в пачки, расстояние между ними можно регулировать только READY. И читает как то странно. То пропускает пару слов, то повторяет.

А главное я не могу понять, в каком режиме PEX работает вообще(( Никто не поможет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...