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

 
 
> Cкорость пересылок PCI Bus Master., Какую максимальную можно достичь?
FLTI
сообщение Jun 9 2005, 11:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Имеется плата с ПЛИС на борту.
К выходу ПЛИС подключен ЦАП.
Внутри ПЛИС есть внутренняя память , которую можно использовать как FIFO.
В ПЛИС требуется залить контроллер PCI Bus Master , который мог бы пересылать данные из памяти на материнской плате, через ПЛИС в ЦАП через DMA.

Вопрос:
Какую максимальную скорость пересылок можно достичь в PCI Bus Master?
Хотелось бы 40-50Мб/с.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Gate
сообщение Jun 9 2005, 11:32
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Теоретический предел 128 мб/сек. Практически, на плате быстрого АЦП, мы промеряли скорость и получили 90-100 мб/с - там вроде стоит басмастерный чип от PLX Tech. В Вашем случае скорость может быть ограничена
1. IP ядром, которое будет залито,
2. скоростью драйвера, который настраивает и инициализирует передачу


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
FLTI
сообщение Jun 9 2005, 11:37
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



При пересылках из АЦП в память ПК через PCI шину транзитом через ПЛИС – здесь все понятно и Вы правы.
А я спрашиваю об обратной пересылке ИЗ памяти ПК через PCI шину транзитом через ПЛИС в ЦАП.

В этом случае ведь PCI контроллер на плате будет являться Мастером на PCI шине и будет читать данные из памяти ПК.
А ведь чтение всегда происходит медленнее, чем запись.
Go to the top of the page
 
+Quote Post
Genn
сообщение Jun 10 2005, 03:12
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146



Цитата(FLTI @ Jun 9 2005, 14:37)
При пересылках из АЦП в память ПК через PCI шину транзитом через ПЛИС – здесь все понятно и Вы правы.
А я спрашиваю об обратной пересылке ИЗ памяти ПК через PCI шину транзитом через ПЛИС  в ЦАП.

В этом случае ведь PCI контроллер на плате будет являться Мастером на PCI шине и будет читать данные из памяти ПК.
А ведь чтение всегда происходит медленнее, чем запись.
*


Желаемую скорость Вы получите, однако не забудьте поставить буфер между контроллером PCI и ЦАПом, т.к. для ЦАПа нужен непрерывный равномерный поток данных, а PCI работает с пакетами. Данные в буфер закачиваются по мере его опустошения (чтения).
Go to the top of the page
 
+Quote Post
FLTI
сообщение Jun 10 2005, 05:35
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Внутри ПЛИС есть внутренняя память , которая как раз и будет использоваться как FIFO в качестве буфера.
Go to the top of the page
 
+Quote Post
Gate
сообщение Jun 10 2005, 18:21
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Цитата(FLTI @ Jun 9 2005, 15:37)
При пересылках из АЦП в память ПК через PCI шину транзитом через ПЛИС – здесь все понятно и Вы правы.
А я спрашиваю об обратной пересылке ИЗ памяти ПК через PCI шину транзитом через ПЛИС  в ЦАП.

В этом случае ведь PCI контроллер на плате будет являться Мастером на PCI шине и будет читать данные из памяти ПК.
А ведь чтение всегда происходит медленнее, чем запись.
*


Для PCI шины транзакции записи и чтения равноправны (единственное отличие - после gервого такта, в котором передается команда и адрес, добавляется idle такт, если происходит изменение направления передачи данных). Если Ваше устройство не успевает принимать данные, то оно должно вставлять такты ожидания - но это проблема не шины, а Вашего железа.

Если Вас беспокоит, сможет ли отдать современная DDR память поток 128 Мб/с, то думаю, что да, там теоретический предел несколько Гб/с. Возможно, будут несколько тактов задержки в начале передачи из-за задержки первой выборки из памяти. Конкретных экспериментальных данных у меня нет и могу только предполагать.

Если одновременно будет работать другое busmaster устройство (например винчестер), то пропускная способность PCI будет делиться. Тут возможны варианты.

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


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
Tosha
сообщение Jun 22 2005, 03:19
Сообщение #7


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

Группа: Свой
Сообщений: 97
Регистрация: 10-09-04
Пользователь №: 633



У меня в устройстве получается что чтение и запись в режиме DMA оказываются не равноправны. Т.е. поток данных непрерывно пишется или читается, скорость небольшая ~10Мб/с чтение + 10Мб/с запись.
При этом запись происходит нормально, т.е. данные не теряются если активно использовать другие устройства, например перекачка данных по сети на винт, там тоже данные пишутся по ДМА.

А при чтении случаются долгие задержки гранта или таргет аборты, так что внутренний буфер опустошается и происходит потеря данных. Из-за ограничения количества внутренней памяти буфер не увеличить sad.gif Буфер 1кб. Может быть в этом виновата встроенная на материнку видюха.

Хотя у нас чтение почти не используется, так что это не страшно smile.gif
Go to the top of the page
 
+Quote Post
Raven
сообщение Jun 22 2005, 09:49
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Как показывает практика, требуемую скорость передачи данных (40-50 МБ/с) вы получите без чересчур больших проблем. К примеру, одна из наших плат показывает пропускную способность по PCI в районе 45 МБ/с при работе в двух направлениях и заложенной длине пакетов не более 16. Увеличить эту длину при необходимости - не проблема. Конечно, необходимо будет предусмотреть буферизацию данных в устройстве, чтобы не вносить дополнительных вынужденных задержек.

Разница между операциями записи и чтения по эффективности для пакетных транзакций (а только о таких в данном случае и может идти речь) незначительна в сравнении с одиночными пересылками. Во-первых, дополнительные такты могут потребоваться только в самом начале пакетной операции - все последующие, кроме первой, фазы передачи данных в пределах пакета обычно проходят без дополнительных задержек (1 такт на слово). Во-вторых, при приличном потоке данных (а 40-50 МБ/с - это вполне приличный поток) с весьма высокой степенью вероятности пакетные транзакции данного устройства в течение длительных промежутков времени не будут перемежаться транзакциями других устройств на шине (из них нас здесь волнуют, в первую очередь, операции чтения из памяти), т.е., во второй и последующих пакетных транзакциях даже первая фаза передачи данных будет проходить без дополнительной задержки. Это возможно благодаря тому, что сколько-нибудь приличный современный Host Bridge обычно сконфигурирован на работу в режиме опережающего чтения, и дополнительное задержка видна устройствам на PCI только в тот момент, когда резко меняется адрес чтения.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:27
Рейтинг@Mail.ru


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