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

 
 
> Скорость передачи данных по PCIe, Низкая скорость
chaika_sv
сообщение Jun 18 2010, 06:53
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 18-06-10
Пользователь №: 57 998



Добрый день.

У меня есть устройство — ПЛИС (Xilinx® Spartan-6 FPGA SP605). Моя задача сейчас добиться быстрого обмена по PCIe между этим устройством и компьютером.

Конфигурация PCIe v1.1, ширина x1. Как я понимаю, максимальная скорость для такого PCIe — это 250 МБ/с. Из этих 250 МБ/с я расчитывал выжать хотя бы половину, т.е. 125 МБ/с, но не могу получить даже такой производительности.

Сначала я написал KMDF-драйвер, работающий в режиме PIO и увидел скорость 200 Мбит/с (т.е. всего 25 МБ/с). В результате пришёл к выводу, что нужно использовать DMA. У меня на ПЛИС собственного DMA-контроллера нет. Системный контроллер на материнской плате я использовать также не могу. Пришёл к выводу, что нужно использовать режим Bus Mastering для PCIe.

По режиму Bus Mastering нашёл на сайте Xilinx такой документ. Ознакомился, скачал прилагаемый архив (в составе архива: прошивка для платы, драйвер и приложение для тестирования). Всё установил, запустил приложение для тестирования, которое определяет скорость передачи. Приложение показало скорость записи примерно 800 Мбит/с, а скорость чтения — 600 МБит/с (т.е. 100 МБ/с и 75 МБ/с соответственно в режиме Bus Mastering). Такие скорости меня явно не устраивают sad.gif

Вопросы. С чем могут быть связаны такие низкие скорости? На что ещё можно обратить внимание для повышения скорости передачи?

C уважением,
Чайка Сергей
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Voiceц
сообщение Jun 21 2010, 09:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 29-09-06
Пользователь №: 20 798



Сергей, напишите, пожалуйста, конфигурацию оборудования, на котором проводили тестирование. Я надавно проводил аналогичные тесты для своего проекта, и получил на двух разных стендах скорости чт/зп 460/300 МБ/с и 820/375 МБ/с. Не правда ли, поразительная разница? Для 1-lane получал скорости в зависимости от стенда и ОС от 140/120 до 180/160.
Может, стоит над сим задуматься и попробовать другой ПК?
Go to the top of the page
 
+Quote Post
FLTI
сообщение Aug 4 2011, 14:40
Сообщение #3


Местный
***

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



Цитата(Voiceц @ Jun 21 2010, 13:49) *
Сергей, напишите, пожалуйста, конфигурацию оборудования, на котором проводили тестирование. Я надавно проводил аналогичные тесты для своего проекта, и получил на двух разных стендах скорости чт/зп 460/300 МБ/с и 820/375 МБ/с. Не правда ли, поразительная разница? Для 1-lane получал скорости в зависимости от стенда и ОС от 140/120 до 180/160.
Может, стоит над сим задуматься и попробовать другой ПК?

Не могли бы Вы более конкретно рассказать о том, на матерях с какими чипсетами и на каких ОС получаются самые высокие , и на каких - самые низкие результаты и с чем это связано ?
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 4 2011, 14:56
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (FLTI @ Aug 4 2011, 12:40) *
Не могли бы Вы более конкретно рассказать о том, на матерях с какими чипсетами и на каких ОС получаются самые высокие , и на каких - самые низкие результаты и с чем это связано ?

у altera-ы приведен список скоростей для разных материнок.
AN431
И судя по документации на чипсет X58 payload у него не менее 128
http://www.evga.com/support/manuals/files/132-BL-E758.pdf
Go to the top of the page
 
+Quote Post
FLTI
сообщение Aug 4 2011, 16:10
Сообщение #5


Местный
***

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



Цитата(Костян @ Aug 4 2011, 18:56) *
у altera-ы приведен список скоростей для разных материнок.
AN431

Никакого списка скоростей для материнок в AN431 я не нашёл. На какой странице?
Цитата(Костян @ Aug 4 2011, 18:56) *
И судя по документации на чипсет X58 payload у него не менее 128

А вот по поводу payload для X58 Xilinx в XAPP1052 считает иначе:
The x58 supports up to 256 byte maximum payload size (MPS), and the x38 supports up to 128 byte MPS.
Хотя конечно "не менее 128" и "up to 256 byte" в итоге могут означать одно и тоже )
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 5 2011, 08:05
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (FLTI @ Aug 4 2011, 14:10) *
Никакого списка скоростей для материнок в AN431 я не нашёл. На какой странице?

Прошу прошения , an456 стр 20. Там явно видно, что intel выигрывает у остальных. Побаловатся заказал себе H67 - это последователь X58. Сейчас работаю с nvidia. Как будет новая материнка, смогу написать некоторые выводы по скорости.


QUOTE (FLTI @ Aug 4 2011, 14:10) *
А вот по поводу payload для X58 Xilinx в XAPP1052 считает иначе:
The x58 supports up to 256 byte maximum payload size (MPS)

считает то он иначе, но как передать 256B , тогда как windriver поддерживает макс 64B не понятно.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 6 2011, 11:04
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 5 2011, 11:05) *
Прошу прошения , an456 стр 20. Там явно видно, что intel выигрывает у остальных. Побаловатся заказал себе H67 - это последователь X58. Сейчас работаю с nvidia. Как будет новая материнка, смогу написать некоторые выводы по скорости.



считает то он иначе, но как передать 256B , тогда как windriver поддерживает макс 64B не понятно.

при чём здесь windriver? Он только выдаёт команды в цпу для чтения-записи памяти. Поэтому больше 64 бит и нельзя, любой драйвер это не позволит если нет такмх инструкций у цпу! Другое дело либо сам чипсет соберёт несколько обращений к памяти в одно, либо использовать бас мастер в плисе, тот всегда использует max payload size (max read size) который позволяет материнка. В любом случае бас мастер выгоднее - меньше нагрузка на цпу
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 8 2011, 14:35
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (dmitry-tomsk @ Aug 6 2011, 10:04) *
либо использовать бас мастер в плисе, тот всегда использует max payload size (max read size) который позволяет материнка. В любом случае бас мастер выгоднее - меньше нагрузка на цпу

Тогда получается слудующие
1. ПЛИС выставляет на шину запрос чтения/записи в память с PAYLOAD равной максимальной
2. Материнка без участия CPU принимает запрос и дает на него ответ макс длины

Верно ?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 8 2011, 17:01
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 8 2011, 17:35) *
Тогда получается слудующие
1. ПЛИС выставляет на шину запрос чтения/записи в память с PAYLOAD равной максимальной
2. Материнка без участия CPU принимает запрос и дает на него ответ макс длины

Верно ?

По первому пункту верно. Запись в память PC производится пакетами максимальной длины max payload size. А вот чтение - нет. Запрос на чтение идёт max read size, а ответы, как правило, разделены по RCB границе (64 или 128 байт). На наших материнках это было 64 байта. Возможно, новейшие чипсеты и могут возвращать и полные пакеты без дробления, спецификацией pcie это разрешается.
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 9 2011, 08:30
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (dmitry-tomsk @ Aug 8 2011, 15:01) *
По первому пункту верно. Запись в память PC производится пакетами максимальной длины max payload size.

Спасибо. По записи в память PC еще вопросы есть.

Может ли ПЛИС послать пакет записи в память MWr ? Данный пакет не требует ответа. И CPU не будет занят в его обработке.

Иными словами

Может ли в качестве requester выступать ПЛИС при MWr ?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 9 2011, 15:00
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 9 2011, 11:30) *
Спасибо. По записи в память PC еще вопросы есть.

Может ли ПЛИС послать пакет записи в память MWr ? Данный пакет не требует ответа. И CPU не будет занят в его обработке.

Иными словами

Может ли в качестве requester выступать ПЛИС при MWr ?

Бас мастер и посылает mwr и mrd пакеты, принимает cpld пакеты. ЦПУ при этом не задействуется.
Go to the top of the page
 
+Quote Post
Костян
сообщение Aug 9 2011, 15:10
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (dmitry-tomsk @ Aug 9 2011, 13:00) *
Бас мастер и посылает mwr и mrd пакеты, принимает cpld пакеты. ЦПУ при этом не задействуется.

спасибо.
Но как быть тогда с физическим адресом ? Например нужно прочитать/записать область ОЗУ в PC. Где гарантия , что ОС не использует данные адресса ?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Aug 9 2011, 16:07
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Костян @ Aug 9 2011, 18:10) *
спасибо.
Но как быть тогда с физическим адресом ? Например нужно прочитать/записать область ОЗУ в PC. Где гарантия , что ОС не использует данные адресса ?

Драйвер выделяет память системную и передаёт её адрес и размер в плис через инструкции чтения/записи памяти (плис работает как слейв), затем только начинается передача данных бас мастером, окончание подтверждается прерыванием, чтобы не опрашивать флаги и не нагружать цпу.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- chaika_sv   Скорость передачи данных по PCIe   Jun 18 2010, 06:53
- - dmitry-tomsk   Это всего лишь ref design в помощь разработчику. Б...   Jun 18 2010, 07:05
|- - chaika_sv   Цитата(dmitry-tomsk @ Jun 18 2010, 11...   Jun 18 2010, 08:54
|- - dmitry-tomsk   Цитата(chaika_sv @ Jun 18 2010, 11:54) Се...   Jun 18 2010, 09:53
|- - jojo   Цитата(dmitry-tomsk @ Jun 18 2010, 13...   Jun 18 2010, 14:53
|- - chaika_sv   Цитата(jojo @ Jun 18 2010, 18:53) А в арх...   Jun 25 2010, 06:46
|- - Voiceц   Цитата(chaika_sv @ Jun 25 2010, 10:46) Вы...   Jun 28 2010, 08:59
- - chaika_sv   Дмитрий, спасибо за ответ. Попробую xapp859. Conne...   Jun 18 2010, 07:43
|- - dmitry-tomsk   Цитата(chaika_sv @ Jun 18 2010, 11:43) Дм...   Jun 18 2010, 07:59
- - Костян   QUOTE (dmitry-tomsk @ Aug 9 2011, 15...   Aug 10 2011, 06:43


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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 10:45
Рейтинг@Mail.ru


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