Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FMC122P - PCI Express v3.0 x16
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
dsmv
Всем доброго времени суток.

Хочу рассказать о достижениях в области PCI Express.

У нас в разработке находится модуль FMC122P : http://insys.ru/products/fmc/fmc122p
На нём установлен Virtex 7, который имеет два порта PCI Express v3.0 x8; Эти два порта подключены к коммутатору, а коммутатор подключён к разъёму x16.

Есть интересные результаты по измерению скорости:
  • Intel Core i7 3820 P9X79, память DDR3-1866 - 11050 Мбайт/с
  • Intel Core i7 3820 P9X79, память DDR3-1600 - 10900 Мбайт/с
  • Intel Core i7 5820 X99, память DDR4-2400 - 9000 Мбайт/с


Два модуля FMC122P в компьютере P9X79, DDR3-1866 показывают 11000 Мбайт/с каждый. Но если включить проверку данных, то скорость падает до 7500 Мбайт/с.
В компьютере P9X79 DDR3-1600 при включении проверки скорость также падает до 8500 Мбайт/с
В компьютере P9X79 DDR3-1866 при одной плате и включённой проверке данный скорость не уменьшается - 11050 Мбайт/с
Скорость зависит от активности компьютера, видно что скорость падает при увеличении активности. Все измерения проводились под Windows 7 x64 при непрерывном вводе в буфер размером 1 Гбайт. Интервал измерения от нескольких минут до нескольких часов.

Самое интересное - почему такая маленькая скорость на компьютере Intel Core i7 5820 X99 DDR4-2400
Я ожидал прироста скорости до 12000, а получил снижение до 9000.



dsmv

Уточненные результаты:
  • Intel Core i7 4820K P9X79, память DDR3-1866 - 11140 Мбайт/с
  • Intel Core i7 5820K X99-A, память DDR4-2400 - 11128 Мбайт/с
  • Intel Core i7 3820 P9X79, память DDR3-1600 - 11120 Мбайт/с


Это средняя скорость при вводе данных без проверки в буфер размером 1 Гбайт в течении 1 часа.



FLTI
А на матерях с чипсетом Z97 или Z170 какие показатели?
dsmv
Intel Core i7-4790 3.6 GHz Z97-WS, DDR3-1600
Без проверки 11022
С проверкой 9540

На компьтерах с DDR-1600 происходит резкое уменьшение скорости при включении проверки. На компьютере с DDR-1866 снижения не происходит.
Интересная ситуация с DDR-2400, только после некоторой оптимизации программы проверки удалось проверить данные на полной скорости.
FLTI
А на матерях с AMD-процессором какие результаты?
dsmv
Цитата(FLTI @ Mar 5 2016, 20:05) *
А на матерях с AMD-процессором какие результаты?

К сожалению мне не удалось найти компьютер с AMD.
dsmv
На Хабрахабре опубликовал статью про FMC122P: http://habrahabr.ru/post/317194/
AVR
Цитата(dsmv @ Feb 21 2016, 13:27) *
Эта ссылка не работает, а так - любопытно какую задачу выполняет плата?
dsmv
Вот правильная ссылка: http://insys.ru/fmc/fmc122p

На данный момент главная задача этого модуля - показывать какие мы крутые. За полтора года я не смог найти ни одного покупателя.
С одной стороны модуль явно опередил своё время - никому такие скорости не нужны.
С другой стороны - Virtex 7 уже устарел. Сейчас это уже можно сделать на Kintex Ultrascale.
dsmv
Появились новые данные по скорости:
- 13 500 Мбайт/с — ввод в буфер размером 1024 Мбайта в системной области памяти
- 13 310 Мбайт/с — ввод в буфер размером 4096 Мбайт в пользовательской области памяти

FMC122P: http://insys.ru/fmc/fmc122p

P.S. 1 Мбайт = 1024*1024 байт.
Bios71
>>После этого командами int_mem_read производится считывание и проверка принятых данных.

а это не на физический ли предел натыкаетесь, по сскорости доступа к памяти ?
Проверка тоже происходит по DMA?

Тут бы поиграть со скоростю записи, принудительно опуская ее с 11000-13000Мб до уровней когда включение проверки перестанет провоцировать "проседание" приема/записи, и тогда анализировать имеющиеся/достигнутые цифры.

ПС: до собственного 10GHz осцилогрофа осталось пол шага? wink.gif
prig
Цитата(dsmv @ Apr 3 2017, 15:01) *
...На данный момент главная задача этого модуля - показывать какие мы крутые. За полтора года я не смог найти ни одного покупателя.
С одной стороны модуль явно опередил своё время - никому такие скорости не нужны.
С другой стороны - Virtex 7 уже устарел. Сейчас это уже можно сделать на Kintex Ultrascale.


Ну, мне такая штуковина могла бы сгодится годика 3..4 назад. М.б. и кому-то ещё. А сейчас - нет.

Имха, дело тут не только в специфичности рынка и редко встречающихся соответствующих заказчиках.
Хотя фактор "нужного времени и места" стоит в полный рост.
Так, для наших задач (ЛВС) есть привязка к каналам передачи данных с ёмкостями 10G, 40G и 100G (здесь и далее - гигабиты в сек.).
И ещё желательно иметь кратности 2 или 4. И запас емкости каналов к материнской плате/бэкплейну.
Т.е., не всякая конфигурация годится под задачи ЛВС конкретного класса. Да и в других областях к ёмкостям ЛВС могут привязываться.
Вот и получается, 10G уже многими отработан, 40G уже не актуальны, да и ваша плата скорее вписывается в эти невостребованные 40G.
А для всё ещё горячих(в прямом и переносном) 100G желательно иметь что-нить покруче Virtex 7 и PCI Express v3.0.

Но плата красивая, это да. Бу иметь ввиду.
М.б. что-нить когда-нить и понадобится. И м.б. даже в ближайшее.

Цитата(Bios71 @ Sep 26 2018, 09:45) *
...
ПС: до собственного 10GHz осцилогрофа осталось пол шага? wink.gif


Ну, осциллограф на 10G - это не столь интересно и весело, если речь о ёмкости канала. Таки, штуковина локальная, лучше всё заливать в один флакон.
Но за то, что подняли тему, отдельное спасибо. Иной раз ищешь что-нить такое, и хрен найдёшь, особливо в России.

dsmv
Цитата
Тут бы поиграть со скоростю записи, принудительно опуская ее с 11000-13000Мб до уровней когда включение проверки перестанет провоцировать "проседание" приема/записи, и тогда анализировать имеющиеся/достигнутые цифры.

Да, здесь я уже столкнулся с ограничением скорости по проверке данных.
Мой алгоритм проверки успевает работать на скорости до 13280 Мбайт/с с системной памятью и 12635 Мбайт/с с пользовательской памятью.

В качестве тестовых данных я использую счётчик 64 разряда. Кстати, я обнаружил что компьютер с памятью DDR3-1866 работает быстрее чем DDR4-2133.

Следующим этапом я хочу передавать данные непосредственно в память графического процессора NVIDIA. И использовать его возможности для проверки и обработки данных. По отдельности платы уже работают, а вот запустить их вместе всё никак не соберусь.


Цитата(prig @ Sep 27 2018, 10:50) *
А для всё ещё горячих(в прямом и переносном) 100G желательно иметь что-нить покруче Virtex 7 и PCI Express v3.0.


PCI Express 3.0 x16 как раз подходит для одного канала 100G. Такая плата у нас есть в разработке, но вот когда она появиться я уже не знаю.
Там будет использоваться Kintex UltraScale+ KU11P. Наработки по PCI Express будут перенесены на новую плату.
prig
Цитата(dsmv @ Sep 27 2018, 16:47) *
...
PCI Express 3.0 x16 как раз подходит для одного канала 100G. Такая плата у нас есть в разработке,
...


Ну, в части "подходит" не всё так однозначно.

С одной стороны, та же обработка пакетов даже для одного 100G - задача серьёзная.
С другой стороны, зачастую предпочтительна кратность 2. И по портам, и по ёмкости каналов на "матерь" или бэкплейн.
Если этого нет, возможный круг задач, решаемый такой платой, может сильно сузиться.
Например, резервирование разного уровня. Есть и другие моменты, когда эта 2-ка востребована.

Но это так, лирическое. Один порт 100G - тоже весьма (самому не довелось, но представление есть). Главное, ч.б. работал.
Однако, если будете допиливать на PCI Express 3.0 x16, таки поставьте на FMC второй разъём под оптический модуль.
Вроде как, и соответствующих трансиверов как раз должно быть 8шт, а разъём много денег не скушает.

С ультраскейлами оно конечно интересней. Что там с трансиверами/стандартами, я навскидку не вспомню.
Но если есть возможность, на пару портов под оптику тоже лучше закладываться.

Впрочем, это я так, на всякий. Думаю, Вы в курсе.
А удастся ли это продать, будем поглядеть. Надеюсь, что да.
dsmv
Цитата(prig @ Sep 27 2018, 18:36) *
Ну, в части "подходит" не всё так однозначно.
С одной стороны, та же обработка пакетов даже для одного 100G - задача серьёзная.
С другой стороны, зачастую предпочтительна кратность 2. И по портам, и по ёмкости каналов на "матерь" или бэкплейн.


Конечно это всё не просто, PCIe 3.0 x16 и 100G подходит по порядку скоростей ~10Гбайт/с. Обработка пакетов затрудняется маленькими размерами пакетов, но над обработкой я работаю, пока для варианта 10G.
Кратность 2 предусмотрена, у нас есть и FMC субмодуль с двумя QSFP, и другой FMC где восемь SFP. На новой плате также заложено два QSFP. ПЛИС KU11P как раз имеет два аппаратных узла 100G, так что всё совпадает.

У конкурентов похожие платы уже есть - там один или два QSFP, PCIe, память.
blackfin
Цитата(dsmv @ Sep 27 2018, 19:56) *
У конкурентов похожие платы уже есть - там один или два QSFP...

..или четыре: BittWare XUPP3R.

Этих плат уже легион.. Зачем делать ещё одну с такими же параметрами? В чем изюминка?
dsmv
Цитата(blackfin @ Sep 27 2018, 20:03) *
..или четыре: BittWare XUPP3R.

Этих плат уже легион.. Зачем делать ещё одну с такими же параметрами? В чем изюминка?

Причина банальная - мы на этом зарабатываем деньги.
blackfin
Цитата(dsmv @ Sep 28 2018, 08:18) *
Причина банальная - мы на этом зарабатываем деньги.

Ну да, конечно.. biggrin.gif
Цитата(dsmv @ Apr 3 2017, 15:01) *
На данный момент главная задача этого модуля - показывать какие мы крутые. За полтора года я не смог найти ни одного покупателя.
dsmv
Цитата(blackfin @ Sep 28 2018, 08:39) *
На данный момент главная задача этого модуля - показывать какие мы крутые. За полтора года я не смог найти ни одного покупателя.


Подтверждаю. Это именно так. Вот только эта работа стала основой для нескольких модулей на основе Kintex Ultrascale с PCIe v3.0 x8; А вот они как раз продаются. Так что эта работа уже полностью окупилась.
prig
Цитата(blackfin @ Sep 27 2018, 20:03) *
...Этих плат уже легион.. Зачем делать ещё одну с такими же параметрами? В чем изюминка?


Поставьте галочку PCIe, и легион превратится в полтора десятка.
Как только Вы начнёте разбираться с тактированием, памятью, совместимостью FMC и прочей мелочёвкой, может оказаться, что ни одна плата Вам не подходит. Или Вам нужен производитель, у котрого есть устраивающие Вас варианты в разных форм-факторах или стандарта, и Вы его не находите.
И вот тогда встаёт вопрос о кастомизации того, что действительно доступно, или допиливание каких-то частей разрабатываемого оборудования своими силами.
Кастомизация - это уже немного другая история, где при прочих равных появляются другие критерии оценки платы/фирмы производителя.

А ежели речь о скоростях более 10G, становится ещё веселее.
Не говоря уже о том, что какие-то платы могут быть только заявлены, но так и ни разу не изготовлены (мне такое попадалось).
Или Вас могут жёстко квотировать, посылать в эротическое путешествие из-за санкций и т.п. и т.д.
Ну и ценники отдельных производителей Вас могут сильно огорчать. Особливо если должен быть аналог в другом форм-факторе или стандарте.

Крче, бизнес специфичный.

П.С. И да, на всякий, чтобы не сочли за рекламу или продвижение...
С темой я слегка знаком, но к этому бизнесу не имею никакого отношения.
Просто тема интересная, и мне нравится, когда кто-то занимается чем-то живым и достаточно серьёзным.
И дело даже не в толстых ПЛИС и больших скоростях. Какая-нить мелочь за 3 коп. тоже м.б. серьёзной.
Хотя, большие скорости - это прикольно и весело.
blackfin
Цитата(prig @ Sep 28 2018, 09:20) *
Или Вас могут жёстко квотировать, посылать в эротическое путешествие из-за санкций и т.п. и т.д.

Так и сам ИнСис могут точно так же "квотировать" и "посылать" просто не продавая им XCKU115. Тут ни вы, ни сам ИнСис от санкций никак не защищены.

Цитата(prig @ Sep 28 2018, 09:20) *
Ну и ценники отдельных производителей Вас могут сильно огорчать. Особливо если должен быть аналог в другом форм-факторе или стандарте.

Сомневаюсь, что ИнСис преисполнен альтруизмом и готов продавать свои платы значительно дешевле западных аналогов. Скорее, наоборот. Та же BittWare покупая чипы напрямую у Xilinx'a и в больших количествах наверняка имеет хорошие скидки от Xilinx'а на сами чипы. А поскольку в стоимости этих FPGA'шных плат основной вес приходится именно на сами чипы, то скидка на чипы может существенно перекрывать стоимость изготовления самой печатной платы и стоимость монтажа м/схем "на коленке"..

Короче, довольно мутный бизнес, ПМСМ..
dsmv
Цитата(blackfin @ Sep 28 2018, 09:44) *
Сомневаюсь, что ИнСис преисполнен альтруизмом и готов продавать свои платы значительно дешевле западных аналогов.


Мы работаем на узком но конкурентом рынке. У наших клиентов есть выбор - покупать у нас или у конкурентов. Так же и у всех остальных производителей. Большое количество фирм показывает что клиентов хватает. А вот дальше уже начинаются "изюминки". Например скорость в 13500 Мбайт/с. Или ещё что-то, что приводит к решению о покупке в конкретной фирме.
Так что это вполне нормальный бизнес.
Bios71
Цитата(dsmv @ Sep 27 2018, 17:47) *
. Кстати, я обнаружил что компьютер с памятью DDR3-1866 работает быстрее чем DDR4-2133.


Память памяти рознь,
надеюсь в курсе про разные каналы контроллера или надписи на памяти 1R8/2R8/1R16/2R16?



Цитата(dsmv @ Sep 27 2018, 17:47) *
.
Следующим этапом я хочу передавать данные непосредственно в память графического процессора NVIDIA. И использовать его возможности для проверки и обработки данных. По отдельности платы уже работают, а вот запустить их вместе всё никак не соберусь.


Тема интересная сама по себе, это под Линуксом или Вин? Или без операционки балуетесь(бывает такая блажь у меня)?
dsmv
Цитата(Bios71 @ Sep 28 2018, 10:30) *
Память памяти рознь,
надеюсь в курсе про разные каналы контроллера или надписи на памяти 1R8/2R8/1R16/2R16?


Да, конечно. Это процессоры Intel i7 с четырёхканальной памятью. Точные названия сейчас не помню.


Цитата(Bios71 @ Sep 28 2018, 10:30) *
Тема интересная сама по себе, это под Линуксом или Вин? Или без операционки балуетесь(бывает такая блажь у меня)?


Это Linux. NVIDEA поддерживает этот режим только под Linux. Текущие результаты опубликованы здесь: https://github.com/karakozov/gpudma
Bios71
Цитата(dsmv @ Sep 24 2018, 22:49) *
Появились новые данные по скорости:
в системной области памяти
в пользовательской области памяти


Раз уж зашел разговор про системную/пользовательскую? Это что?
"Cистемная", это случайно не BIOSом выделенная PCIe устройству(которую это устройство запрашивает/выторговывает) в процессе PCI энумерации?

А пользовательская, это когда уже драйвер под Вин/Линукс запрашивает память себе на "корректную инициализацию и работу?
dsmv
Цитата(Bios71 @ Sep 28 2018, 11:26) *
Раз уж зашел разговор про системную/пользовательскую? Это что?
"Cистемная", это случайно не BIOSом выделенная PCIe устройству(которую это устройство запрашивает/выторговывает) в процессе PCI энумерации?
А пользовательская, это когда уже драйвер под Вин/Линукс запрашивает память себе на "корректную инициализацию и работу?


Нет. Не так.
Системная память - это память которую приложение может выделить в ядре ОС. Она является непрерывной по физическим и виртуальным адресам.
Пользовательсякая память - это память которую приложение может выделить вне ядра ОС. Вот для неё используется виртуализация на уровне процессора. Как следствие - она является непрерывной по виртуальным адресам но на уровне физических адресов она разделена на страницы по 4 килобайта.

DMA канал работает с физической памятью. Если буфер для DMA выделен в пользовательской памяти, то это достаточно тяжёлый режим. Приходится работать с большим количеством блоков по 4кБайта. Мой контроллер кстати позволяет быстро работать с пользовательской памятью - это одна из наших "изюминок"
Подробнее можно прочитать здесь: http://ds-dev.ru/attachments/download/4

Как оказалось, процессор тоже быстрее работает с системной памятью. Но это требует дополнительных исследований.
Bios71
Цитата(dsmv @ Sep 28 2018, 12:41) *
Нет. Не так.
Системная память - это память которую приложение может выделить в ядре ОС. Она является непрерывной по физическим и виртуальным адресам.
....


а выделить/запросить гигабайтик-другой, в процессе БИОС энумерации не пытались?

Память тогда выделяется в первых 4Gb, они вроде считаются "системными", но ими и ограничены.
Хотел както один клиент иметь 40-60 PCIe устройств и каждому щщедро раздавать по 250-500Мб при инициализации.
Уперлись в системные ограничения.

Вот теперь думаю, а что мешало тому клиенту память, по своим устройствам, "рассыпать" внутри ОС, а не в биосе?
prig
Цитата(blackfin @ Sep 28 2018, 09:44) *
Так и сам ИнСис могут точно так же "квотировать" и "посылать" просто не продавая им XCKU115. ...
...
Та же BittWare покупая чипы напрямую у Xilinx'a и в больших количествах наверняка имеет хорошие скидки от Xilinx'а на сами чипы. А поскольку в стоимости этих FPGA'шных плат основной вес приходится именно на сами чипы, то скидка на чипы может существенно перекрывать стоимость изготовления самой печатной платы и стоимость монтажа м/схем "на коленке"..

Короче, довольно мутный бизнес, ПМСМ..


- Цепочка с производителем чипов короче и прозрачней.
А вот производитель борды может оказаться зажравшимся на кормах амерского военпрома и просто не станет тратить на Вас своё время, если Вы не покажетесь ему интересны.

- Покупали Битварь, и далеко не штучно.
Смею уверить, его скидки Вас не коснутся, и свою добавленную стоимость он вдувает по полной, привязывает её к стоимости чипов.
На нескольких десятках плат выгодней делать самим. И далеко не только по деньгам. Если есть время и силёнок хватит, ессно.
В Битвари тоже сидят нормалные люди, и косячат так же, как и везде.
Это нормально, но разгребать свои косяки несколько проще и сильно быстрей, чем чужие.

- Нормальный бизнес. Когда надо быстро и разово, пойдёшь и в Битварь, и куда угодно.
dsmv
Это совсем разные понятия.

Каждое PCI устройство запрашивает адресное пространство. BIOS его выделяет. Но это только адресное пространство.

А понятие системаная/пользовательская относиться к основной памяти компьютера и способу выделения - внутри ядра ОС или нет.
RobFPGA
Приветствую!
Цитата(Bios71 @ Sep 28 2018, 11:59) *
а выделить/запросить гигабайтик-другой, в процессе БИОС энумерации не пытались?
Это не память выделяется а только адресное пространство! Да и ведут себя так только "неправильные" биосы wink.gif - Был у меня знатный гемор с убитием материнок при попытке выделить 2..4 ГБ для BAR на PCIe устройстве. На "правильных" биосах в серверах все нормально выделяется.

Удачи! Rob.
Bios71
Цитата(RobFPGA @ Sep 28 2018, 14:01) *
Приветствую!
Это не память выделяется а только адресное пространство!


Вот чтото такое у меня вертелось в мыслях, но не кому было "разжеать".
Получается что при 4Гиг памяти и выделении БИОСом под запрос 512мб "адресов" для внешней видюхи, в системе имеем 4.5 Гб?

Цитата(RobFPGA @ Sep 28 2018, 14:01) *
Да и ведут себя так только "неправильные" биосы wink.gif - Был у меня знатный гемор с убитием материнок при попытке выделить 2..4 ГБ для BAR на PCIe устройстве.

к сожалению архитектура биоса такова, что изначально "резервируется" под все ROMы "выделения" какойто кусок, например 256Мб
в процессе энумерации "внезапно" выясняется, что трэба на 20 Мб больше, делаем пометку "надо больше 256" и ресетимся
и при следующей загрузке выделяем уже 512 Мб , и так по кругу, если не упираемся в предел, который на десктопах/ноутбуках около Гига.


Цитата(RobFPGA @ Sep 28 2018, 14:01) *
На "правильных" биосах в серверах все нормально выделяется.

Удачи! Rob.


а вот их специально затачивают под эти ситуации...
dsmv
Цитата(Bios71 @ Sep 28 2018, 13:51) *
к сожалению архитектура биоса такова, что изначально "резервируется" под все ROMы "выделения" какойто кусок, например 256Мб
в процессе энумерации "внезапно" выясняется, что трэба на 20 Мб больше, делаем пометку "надо больше 256" и ресетимся
и при следующей загрузке выделяем уже 512 Мб , и так по кругу, если не упираемся в предел, который на десктопах/ноутбуках около Гига.


А некоторые просто не выделяют память и в итоге плата не работает.
Bios71
Цитата(dsmv @ Sep 28 2018, 15:00) *
А некоторые просто не выделяют память и в итоге плата не работает.



любой случай можно разобрать и докапаться до истины, но в массовом сегменте увы ни кто разбираться не будет "продается, и ладно"(с)

вон, чипсеты уже давно поддерживают ужатие адресного пространства PCIe с 256 до 128 и даже 64/32 шин
в результате физ.адреса не теряются, и уверяю вас клиенты этим пользуются. Потому как не для балды придумано, а с целью экономии.

Хотя редко кому, но и 150-190 в адресации PCI шин требуются.
RobFPGA
Приветствую!
Цитата(Bios71 @ Sep 28 2018, 13:51) *
Вот чтото такое у меня вертелось в мыслях, но не кому было "разжеать".
Получается что при 4Гиг памяти и выделении БИОСом под запрос 512мб "адресов" для внешней видюхи, в системе имеем 4.5 Гб?
Ну все зависит от типа процессора - теоритически у x86 можем имеем ~2^64 физ адресов ( 4GB * 4GB wacko.gif )

Цитата(Bios71 @ Sep 28 2018, 13:51) *
к сожалению архитектура биоса такова, что изначально "резервируется" под все ROMы "выделения" какойто кусок, например 256Мб
в процессе энумерации "внезапно" выясняется, что трэба на 20 Мб больше, делаем пометку "надо больше 256" и ресетимся
и при следующей загрузке выделяем уже 512 Мб , и так по кругу, если не упираемся в предел, который на десктопах/ноутбуках около Гига.
Что то вы тут мудрите - при enumeration на PCIe сразу видно какой диапазон адресов хочет соответствующий BAR на устройстве - не надо ничего подбирать. К тому же ни кто не мешает выделить для BAR адреса > 4GB имея при этом системную памяти < 4GB. Это разные диапазоны адресов!

Цитата(Bios71 @ Sep 28 2018, 13:51) *
а вот их специально затачивают под эти ситуации...
Нет - их просто делают "как правильно" - не экономят sm.gif

Удачи! Rob.
Bios71
Цитата(RobFPGA @ Sep 28 2018, 16:07) *
Что то вы тут мудрите - при enumeration на PCIe сразу видно какой диапазон адресов хочет соответствующий BAR на устройстве - не надо ничего подбирать.


а как узнать/предугадать сколько таких "желающих" висит на конкретной шине и на остальных 120ти шинах?
один хочет 4 кб, другой-пятрнадцатый 32мб шестнадцатый 256Мб, и выделять надо не сильно плодя "окна" между выделенными участками?
blackfin
Цитата(Bios71 @ Sep 28 2018, 15:17) *
а как узнать/предугадать сколько таких "желающих" висит на конкретной шине и на остальных 120ти шинах?
один хочет 4 кб, другой-пятнадцатый 32мб шестнадцатый 256Мб, и выделять надо не сильно плодя "окна" между выделенными участками?

Пишут в BAR 0xFFFFFFFF.. Потом читают из BAR'а.. Потом выясняют, сколько младших битов в BAR'e равны нулю.. ЕМНИП..
Bios71
Цитата(blackfin @ Sep 28 2018, 16:23) *
Пишут в[ одно самое главное PCI устройство]BAR 0xFFFFFFFF.. Потом читают из BAR'а..[ одного самого главного PCI устройства] Потом выясняют, сколько младших битов в BAR'e равны нулю..[ у единственого и самого главного PCI устройства] ЕМНИП..


а все остальные сорок PCI устройств идут строем нахер, потому как [ одно самое главное PCI устройство] уже ОБСЛУЖЕНО!
rolleyes.gif

blackfin
Цитата(Bios71 @ Sep 28 2018, 16:03) *
а все остальные сорок PCI устройств идут строем нахер, потому как [ одно самое главное PCI устройство] уже ОБСЛУЖЕНО!
rolleyes.gif

С чего это вдруг? PCIe отродясь является интерфейсом точка-точка, а потому bridge и Root Complex всегда могут читать и писать в config-space каждого устройства без всяких коллизий с остальными сорока устройствами. На уровне ОСи это делается через CAM/ECAM (См. Главу 7 PCIe 3.0 specs)
RobFPGA
Приветствую!
Цитата(Bios71 @ Sep 28 2018, 16:03) *
а все остальные сорок PCI устройств идут строем нахер, потому как [ одно самое главное PCI устройство] уже ОБСЛУЖЕНО!
rolleyes.gif
Теперь понятно почему Biosы такие корявые wink.gif
При энумерации шины сначала получают хотелки для всех BAR всех endpoint устройств.
Распределяют эти хотелки в наличные адреса и только потом программируют BARы на распределенные диапазоны адресов.
При сложной структуре шины со многими сегментами это все делается иерархически от дальних endpoind к root-complex.

Удачи! Rob.
Flood
Цитата(dsmv @ Sep 27 2018, 19:56) *
У конкурентов похожие платы уже есть - там один или два QSFP, PCIe, память.

Последние новости с зарубежных фронтов просто какие-то фантасмагорические.
PCIe x16 плата c 2 x QSFP28 и 4 x DDR4 на VU9P-L2E - от $3500 до $4995.
Похожая плата c 4 x QSFP28 и 2 x DDR4 (от Bittware) на VU13P (!) - $5750.
dsmv
Цитата(Flood @ Sep 28 2018, 22:27) *
Последние новости с зарубежных фронтов просто какие-то фантасмагорические.
PCIe x16 плата c 2 x QSFP28 и 4 x DDR4 на VU9P-L2E - от $3500 до $4995.
Похожая плата c 4 x QSFP28 и 2 x DDR4 (от Bittware) на VU13P (!) - $5750.

Но на их пути стоит таможня.

А вот это 2 x QSFP28 и 4 x DDR4 на VU9P-L2E случайно не VCU1525 ? Здесь по акции она около $7000
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.