|
Скорость передачи данных по PCIe, Низкая скорость |
|
|
|
Jun 18 2010, 06:53
|
Группа: Участник
Сообщений: 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). Такие скорости меня явно не устраивают Вопросы. С чем могут быть связаны такие низкие скорости? На что ещё можно обратить внимание для повышения скорости передачи? C уважением, Чайка Сергей
|
|
|
|
|
Jun 18 2010, 07:43
|
Группа: Участник
Сообщений: 5
Регистрация: 18-06-10
Пользователь №: 57 998

|
Дмитрий, спасибо за ответ. Попробую xapp859. Connectivity kit показался дороговатым.. теперь вот мучаемся Но вопросы то остаются. В чём может быть причина низкой скорости (например, для xapp1052)? Какой компонент тормозит: прошивка, драйвер, ОС? Почему он тормозит?
|
|
|
|
|
Jun 18 2010, 07:59
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(chaika_sv @ Jun 18 2010, 11:43)  Дмитрий, спасибо за ответ. Попробую xapp859. Connectivity kit показался дороговатым.. теперь вот мучаемся Но вопросы то остаются. В чём может быть причина низкой скорости (например, для xapp1052)? Какой компонент тормозит: прошивка, драйвер, ОС? Почему он тормозит? Тормозит прошивка, даже jungo под windows способен практически достичь теоретического максимума.
|
|
|
|
|
Jun 18 2010, 08:54
|
Группа: Участник
Сообщений: 5
Регистрация: 18-06-10
Пользователь №: 57 998

|
Цитата(dmitry-tomsk @ Jun 18 2010, 11:05)  Более продвинутый xapp859 Сейчас смотрю этот xapp859. Не вижу там прошивки для SP605. Только для ML505 и ML555 (а они вообще на Virtex-5).
Сообщение отредактировал chaika_sv - Jun 18 2010, 08:56
|
|
|
|
|
Jun 18 2010, 09:53
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(chaika_sv @ Jun 18 2010, 11:54)  Сейчас смотрю этот xapp859. Не вижу там прошивки для SP605. Только для ML505 и ML555 (а они вообще на Virtex-5). Значит ещё не выпустили. Для v-5 интерфейс 64 бита, можно попробовать свой "десериализатор" подключить для пробы. Хотя, конечно, это не выход, 32-х битный интерфейс сильно упрощает логику, а так Вы её ещё больше усложните. Попробуйте запросить оценочную прошивку для connectivity kit.
|
|
|
|
|
Jun 18 2010, 14:53
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Цитата(dmitry-tomsk @ Jun 18 2010, 13:53)  Значит ещё не выпустили. Для v-5 интерфейс 64 бита, можно попробовать свой "десериализатор" подключить для пробы. Хотя, конечно, это не выход, 32-х битный интерфейс сильно упрощает логику, а так Вы её ещё больше усложните. Попробуйте запросить оценочную прошивку для connectivity kit. А в архиве по ссылке ничего подходящего для DMA в SP605 нет? В аналогичном архиве для ML605 Conn Kit есть ядро NWlogic... Spartan-6 FPGA Connectivity Kit Reference Design and Documentation http://www.xilinx.com/products/boards/s6co...nce_designs.htm
|
|
|
|
|
Jun 21 2010, 09:49
|
Участник

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

|
Сергей, напишите, пожалуйста, конфигурацию оборудования, на котором проводили тестирование. Я надавно проводил аналогичные тесты для своего проекта, и получил на двух разных стендах скорости чт/зп 460/300 МБ/с и 820/375 МБ/с. Не правда ли, поразительная разница? Для 1-lane получал скорости в зависимости от стенда и ОС от 140/120 до 180/160. Может, стоит над сим задуматься и попробовать другой ПК?
|
|
|
|
|
Jun 25 2010, 06:46
|
Группа: Участник
Сообщений: 5
Регистрация: 18-06-10
Пользователь №: 57 998

|
Цитата(jojo @ Jun 18 2010, 18:53)  А в архиве по ссылке ничего подходящего для DMA в SP605 нет? В аналогичном архиве для ML605 Conn Kit есть ядро NWlogic... Да что-то я ничего подходящего там не вижу. Для SP605 ничего точно нет. Цитата(Voiceц @ Jun 21 2010, 13:49)  Сергей, напишите, пожалуйста, конфигурацию оборудования, на котором проводили тестирование. Операционная система Microsoft Windows XP Professional DirectX 4.09.00.0904 (DirectX 9.0c) Тип ЦП DualCore Intel Core 2 Duo E7500, 2933 MHz (11 x 267) Системная плата Asus P5E3 Pro (2 PCI, 2 PCI-E x1, 2 PCI-E x16, 4 DDR3 DIMM, Audio, Gigabit LAN) Чипсет системной платы Intel Beachwood X48 DIMM1: Kingston 9905403-011.A03LF 2 Гб DDR3-1333 DDR3 SDRAM (8-8-8-22 @ 609 МГц) (7-7-7-20 @ 533 МГц) (6-6-6-17 @ 457 МГц) Видеоадаптер NVIDIA GeForce 9800 GT (512 Мб) Пробовал на машине помощнее. Разницу действительно увидел, но не особо большую. Цитата(Voiceц @ Jun 21 2010, 13:49)  Для 1-lane получал скорости в зависимости от стенда и ОС от 140/120 до 180/160. Вы получили хорошие результаты. Какую прошивку использовали, если не секрет?
|
|
|
|
|
Jun 28 2010, 08:59
|
Участник

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

|
Цитата(chaika_sv @ Jun 25 2010, 10:46)  Вы получили хорошие результаты. Какую прошивку использовали, если не секрет? Использовал "домашнюю заготовку" с использованием Hardware блока, без хилинховской обёртки.
|
|
|
|
|
Aug 4 2011, 14:40
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(Voiceц @ Jun 21 2010, 13:49)  Сергей, напишите, пожалуйста, конфигурацию оборудования, на котором проводили тестирование. Я надавно проводил аналогичные тесты для своего проекта, и получил на двух разных стендах скорости чт/зп 460/300 МБ/с и 820/375 МБ/с. Не правда ли, поразительная разница? Для 1-lane получал скорости в зависимости от стенда и ОС от 140/120 до 180/160. Может, стоит над сим задуматься и попробовать другой ПК? Не могли бы Вы более конкретно рассказать о том, на матерях с какими чипсетами и на каких ОС получаются самые высокие , и на каких - самые низкие результаты и с чем это связано ?
|
|
|
|
|
Aug 4 2011, 14:56
|
Знающий
   
Группа: Свой
Сообщений: 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
|
|
|
|
|
Aug 4 2011, 16:10
|
Местный
  
Группа: Свой
Сообщений: 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" в итоге могут означать одно и тоже )
|
|
|
|
|
Aug 5 2011, 08:05
|
Знающий
   
Группа: Свой
Сообщений: 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 не понятно.
|
|
|
|
|
Aug 6 2011, 11:04
|
Знающий
   
Группа: Свой
Сообщений: 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) который позволяет материнка. В любом случае бас мастер выгоднее - меньше нагрузка на цпу
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|