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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> PCI-E, поскажите кто работал
0legS
сообщение Feb 14 2013, 14:47
Сообщение #16





Группа: Новичок
Сообщений: 5
Регистрация: 28-04-09
Из: м. Львів
Пользователь №: 48 390



Цитата(shide_3 @ Feb 5 2013, 10:43) *
и как обстоят с этим дела у Альтеры? честно говоря, некогда изучать описание корки pcie для альтеры, очень много там информации..

У Альтеры все зависит от желаемой продуктивности. Есть ядро PCIe (IP Compiler for PCI Express) для QSYS, с красивым интерфейсом Avalon-MM, к этому ядру по тому же интерфейсу подключается DMA (DMA Controller или Scatter-Gather DMA (он же SG-DMA)). Этими DMA можно управлять и с FPGA и с PC (или другого PCIe Root Complex). Все работает без проблем, только PCIe используется не эффективно. Зато не надо самому складывать PCIe пакеты. То есть нужно только сказать какие данные и куда записать (или откуда прочесть).
Для задач, где нужно взять максимально из PCIe, нужно брать ядро не для QSYS а простое с MegaWizard, где придётся пакет самому собирать, самому анализировать кому какой ответ пришёл и т. д. и конечно писать самому DMA, потому что если Вы разберетесь с этим всем то DMA написать конкретно под свою задачу не составит большого труда. (DMA, то есть прямым доступом к памяти будет любая команда на чтения или запись данных инициированных FPGA (End Point лезет в память Root Complex))
Если скорость не требуется и не надо MSI-X, то можете попробовать 1й вариант.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Feb 15 2013, 11:24
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Цитата(0legS @ Feb 14 2013, 17:47) *
У Альтеры все зависит от желаемой продуктивности. Есть ядро PCIe (IP Compiler for PCI Express) для QSYS, с красивым интерфейсом Avalon-MM, к этому ядру по тому же интерфейсу подключается DMA (DMA Controller или Scatter-Gather DMA (он же SG-DMA)).

...


Хочу обратить внимание на структуру дескриптора для SG-DMA. Дескриптор описывает только один блок данных и адрес следующего дескриптора. Это прекрасно работает если блок данных достаточно большого размера, например 1 Мбайт. Но проблема заключается в том, что выделить непрерывный по физическим адресам блок памяти можно только в памяти ядра. А её всегда мало. Для 32-х разрядных систем можно выделить около 128 Мбайт. Больше - может и не выделиться. В user memory можно выделить большой блок, но он будет фрагментирован на страницы по 4 кбайта. И получится что DMA считывает дискриптор, проводит обмен блоком 4 кбайта и снова считывает дескриптор. Время считывания дескриптора сравнимо со времемен обмена для блока 4 кбайт. В результате - замедление работы.


В моём DMA контроллере дескрипторы объеденены в блок дескрипторов. Размер блока дескрипторов 512 байт. В нём 63 указателя на блоки и указатель на следующий блок дескрипторов. В результате скорость работы с фрагментированной памятью практически такая же, как и с непрерывной.

Подробнее можно посмотреть здесь: IPESC2009_id21_presentation.pdf




Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Feb 15 2013, 12:00
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Цитата
Для 32-х разрядных систем можно выделить около 128 Мбайт


В 32-бит WinXP и Win2003 в памяти ядра можно выделить до 256 МБайт.
В 32-битной Win7 выделяется не больше 32 МБайт.
В 64-битной Win2008 Server R2 можно выделить до 1 ГБайт в ядре.
Go to the top of the page
 
+Quote Post
dsmv
сообщение Feb 15 2013, 12:23
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Цитата(soldat_shveyk @ Feb 15 2013, 15:00) *
В 32-бит WinXP и Win2003 в памяти ядра можно выделить до 256 МБайт.
В 32-битной Win7 выделяется не больше 32 МБайт.
В 64-битной Win2008 Server R2 можно выделить до 1 ГБайт в ядре.

Да, это так. Но этого мало.


В user memory:

Win 7 32 bit: 1536 МБайт

Win 7 64 bit: 6 Гбайт - (на компьютере 8 Гбайт)
Go to the top of the page
 
+Quote Post
shide_3
сообщение Feb 16 2013, 11:52
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



спасибо. не могли бы вы еще прояснить один момент: насколько понятно из описаний корки, то я не смогу сгенерить прошивочный файл, пока не приобрету и не инсталлирую лицензию на корку.
так ли это? и каким образом и через кого она покупается? а в случае с sopc builder тоже без этого не обойстись?
Go to the top of the page
 
+Quote Post
shide_3
сообщение Feb 17 2013, 09:23
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



уточняю: вышесказанное касается PCI (не Express), поскольку на данный момент интересует именно просто PCI (решил с него начать), конкретно
корка Альтеры (PCI compiler)---- http://www.altera.com/literature/ug/ug_pci.pdf
а для PCI express как раз как я вижу лицензия и не требуется (что странновато).
Go to the top of the page
 
+Quote Post
soldat_shveyk
сообщение Feb 17 2013, 12:06
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 454
Регистрация: 3-07-07
Из: С-Петербург
Пользователь №: 28 859



Дело в том, что просто PCI реализуется на ресурсе логики FPGA, это IP, и стоит отдельных денег.
PCIe в современных чипах Альтеры - (Stratix IV и другие) реализвоан в виде отдельного аппаратного блока.
Стоимость пользования PCIe заложена в стоимость самой микросхемы FPGA, и платить за IP отдельных денег не надо.
С этой точки зрения использовать PCIe удобнее.
Go to the top of the page
 
+Quote Post
shide_3
сообщение Feb 17 2013, 12:47
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



Цитата(soldat_shveyk @ Feb 17 2013, 15:06) *
Дело в том, что просто PCI реализуется на ресурсе логики FPGA, это IP, и стоит отдельных денег.
PCIe в современных чипах Альтеры - (Stratix IV и другие) реализвоан в виде отдельного аппаратного блока.
Стоимость пользования PCIe заложена в стоимость самой микросхемы FPGA, и платить за IP отдельных денег не надо.
С этой точки зрения использовать PCIe удобнее.

а на халяву реально добыть лицензию?
Go to the top of the page
 
+Quote Post
shide_3
сообщение Feb 18 2013, 06:16
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



кстати, кто юзал PCI express (altera, xilinx) дайте пожалуста совет. необходимо ли изучать спецификацию шины в полном объеме, или достаточно почитать юзер мануал на корку?
Go to the top of the page
 
+Quote Post
dsmv
сообщение Feb 18 2013, 09:05
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Цитата(shide_3 @ Feb 18 2013, 09:16) *
кстати, кто юзал PCI express (altera, xilinx) дайте пожалуста совет. необходимо ли изучать спецификацию шины в полном объеме, или достаточно почитать юзер мануал на корку?

Без изучения спецификации PCI Express описание IP Core будет непонятным.
Go to the top of the page
 
+Quote Post
shide_3
сообщение Feb 18 2013, 09:54
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



Цитата(0legS @ Feb 14 2013, 17:47) *
У Альтеры все зависит от желаемой продуктивности. Есть ядро PCIe (IP Compiler for PCI Express) для QSYS, с красивым интерфейсом Avalon-MM, к этому ядру по тому же интерфейсу подключается DMA (DMA Controller или Scatter-Gather DMA (он же SG-DMA)). Этими DMA можно управлять и с FPGA и с PC (или другого PCIe Root Complex). Все работает без проблем, только PCIe используется не эффективно. Зато не надо самому складывать PCIe пакеты. То есть нужно только сказать какие данные и куда записать (или откуда прочесть).
Для задач, где нужно взять максимально из PCIe, нужно брать ядро не для QSYS а простое с MegaWizard, где придётся пакет самому собирать, самому анализировать кому какой ответ пришёл и т. д. и конечно писать самому DMA, потому что если Вы разберетесь с этим всем то DMA написать конкретно под свою задачу не составит большого труда. (DMA, то есть прямым доступом к памяти будет любая команда на чтения или запись данных инициированных FPGA (End Point лезет в память Root Complex))
Если скорость не требуется и не надо MSI-X, то можете попробовать 1й вариант.

простите, но про MegaWizard в описании корок Альтеры (например http://www.altera.com/literature/ug/ug_pci_express.pdf) ничего не говорится. есть Avalon ST, и есть Avalon MM.
P.S. прошу прощения, avalon st-это видимо оно и есть

Сообщение отредактировал shide_3 - Feb 18 2013, 10:01
Go to the top of the page
 
+Quote Post
0legS
сообщение Feb 20 2013, 15:44
Сообщение #27





Группа: Новичок
Сообщений: 5
Регистрация: 28-04-09
Из: м. Львів
Пользователь №: 48 390



Цитата(shide_3 @ Feb 18 2013, 11:54) *
простите, но про MegaWizard в описании корок Альтеры (например http://www.altera.com/literature/ug/ug_pci_express.pdf) ничего не говорится. есть Avalon ST, и есть Avalon MM.
P.S. прошу прощения, avalon st-это видимо оно и есть


Говорится-говорится. Например, в таблице Table 1–2. IP Compiler for PCI Express Features на странице "1-3"
Дело в том, что в зависимости от типа ядра (аппаратного HARD IP или программного Soft IP), а также места его использования (MegaWizard, SOPC, QSYS) у вас будет PCIe с разными возможностями (в этой таблице их и посмотрите)
Самим продуктивным и сложным в использовании есть ядро с MegaWizard.


Цитата(shide_3 @ Feb 18 2013, 11:54) *
есть Avalon ST, и есть Avalon MM.

Avalon Streaming (Avalon-ST) и Avalon Memory-Mapped (Avalon-MM) это названия интерфейсов
Описание этих интерфейсов найти не сложно.

Сообщение отредактировал 0legS - Feb 20 2013, 15:45
Go to the top of the page
 
+Quote Post
0legS
сообщение Feb 21 2013, 08:01
Сообщение #28





Группа: Новичок
Сообщений: 5
Регистрация: 28-04-09
Из: м. Львів
Пользователь №: 48 390



Цитата(shide_3 @ Feb 18 2013, 08:16) *
кстати, кто юзал PCI express (altera, xilinx) дайте пожалуста совет. необходимо ли изучать спецификацию шины в полном объеме, или достаточно почитать юзер мануал на корку?

если ядро то что з QSYS или SOPC (предшественник QSYS'a) с интерфейсом Avalon-MM то достаточно "юзер мануал на корку". Так как в этом случае все ваше общение с PCIe сводится к работе с памятью, то есть задаете адрес, данные (если запись) і команду (RD or WR) і все.
В другом случае придётся ручками собирать PCIe пакет, что существенно сложнее, как и обрабатывать активность с другого конца (Root complex).

Go to the top of the page
 
+Quote Post
0legS
сообщение Feb 22 2013, 11:27
Сообщение #29





Группа: Новичок
Сообщений: 5
Регистрация: 28-04-09
Из: м. Львів
Пользователь №: 48 390



Цитата(shide_3 @ Feb 16 2013, 13:52) *
спасибо. не могли бы вы еще прояснить один момент: насколько понятно из описаний корки, то я не смогу сгенерить прошивочный файл, пока не приобрету и не инсталлирую лицензию на корку.
так ли это?

Не так. Альтера любит делать ядра так, что б их можно было попробовать. Называют это "OpenCore Plus Hardware Evaluation feature"
То есть сгенерируется прошивочный файл <name>_time_limited.sof который будет работать пока вы не отключили JTAG и не нажали на отмену в Quartus на предупреждение о time limited. Без JTAG должно работать около часа.
Цитата(shide_3 @ Feb 16 2013, 13:52) *
а в случае с sopc builder тоже без этого не обойстись?

зависит от Hard IP или Soft IP. sopc builder не причем
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:12
Рейтинг@Mail.ru


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