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

 
 
 
Reply to this topicStart new topic
> ПЛИС -> PCIe -> NVMe -> M.2 без SoC, Реализуемо?
syoma
сообщение May 18 2018, 16:32
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 779
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Собственно вопрос - в системе есть Virtex-7 с PCIe и хотим стримить огромное количество данных на SSD по возможности напрямую через PCIe без участия центрального процессора. Потом эти данные нужно будет из SSD прочитать, возможно с помощью той же самой ПЛИС. Кто-нибудь такое уже делал? Реализуемо без всяких Petalinux, чисто на логике?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение May 18 2018, 16:54
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 072
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(syoma @ May 18 2018, 19:32) *
Собственно вопрос - в системе есть Virtex-7 с PCIe и хотим стримить огромное количество данных на SSD по возможности напрямую через PCIe без участия центрального процессора. Потом эти данные нужно будет из SSD прочитать, возможно с помощью той же самой ПЛИС. Кто-нибудь такое уже делал? Реализуемо без всяких Petalinux, чисто на логике?
Вы хотите чтобы FPGA была как root-complex на PCIe? или просто master - слать данные из FPGA на диск через PCIe напрямую.
И то и другое в принципе реализуемо но не думаю что совсем без поддержки софта можно будет обойтись.

Успехов! Rob.
Go to the top of the page
 
+Quote Post
AVR
сообщение May 18 2018, 17:55
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 271
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(RobFPGA @ May 18 2018, 19:54) *
Вы хотите чтобы FPGA была как root-complex на PCIe? или просто master - слать данные из FPGA на диск через PCIe напрямую. И то и другое в принципе реализуемо но не думаю что совсем без поддержки софта можно будет обойтись

Мне кажется, пересылка между двумя PCIe EP должна поддерживаться чуть ли не с пол пинка, чуть ли не штатно. Я ошибаюсь? Только знать адрес второго устройства на шине и всё - дальше как обычно. Поправьте.

Другое дело что доступ к SSD завернут в такой хитрючий протокол, что я не знаю как можно это чисто на логике сделать, или даже с soft-CPU без Linux. Ну можно наверное, но будет на уровне персонального героизма.


--------------------
Go to the top of the page
 
+Quote Post
yuri.job
сообщение May 18 2018, 18:07
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 27-05-16
Из: 188660, Россия, Ленинградская область, Всеволожский район, поселок Бугры.
Пользователь №: 91 936



собственно, ремарка номер раз - хватит ли одного ссд диска по пропускной способности? если хватит, то все ок, если нет, то придется параллелить диски, а значит либо делать ген2/3 руты софтварно в вирте, либо ставить после 8/16 лейнового хардового рута свич фабрику, например от броадкома, которая позволит пользовать один рут и несколько, параллельных полноскоростных м2 ссд дисков.

корка софтовая на рут ген2/3 стоит денег, поэтому мы, например, пошли по второму пути. и таки да, вирт7 может тупо брать и сливать данные на ссд, но вот чтобы потом из более менее осознанно достават, пришлось приделать к нашей фпаге цинк, на котором крутился линкус и который своим рут ген2 так же был воткнут в свич и имел достут к ссд дискам. это с одной стороны, и к оптике - с другой.
как то так

Сообщение отредактировал yuri.job - May 18 2018, 18:18
Go to the top of the page
 
+Quote Post
syoma
сообщение May 22 2018, 07:34
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 779
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(RobFPGA @ May 18 2018, 18:54) *
Вы хотите чтобы FPGA была как root-complex на PCIe? или просто master - слать данные из FPGA на диск через PCIe напрямую.

Root Complex в системе есть. Хотим просто, чтобы FPGA выступала как мастер для этих данных. Фактически, сейчас мастер в FPGA периодически шлет по PCIe данные в DDR память процессорного модуля (ее там много), а процессор затем по триггеру сливает эту память в свою флеш. Медленно и затратно. Хотим сделать напрямую без задействования процессора.

Цитата
Мне кажется, пересылка между двумя PCIe EP должна поддерживаться чуть ли не с пол пинка, чуть ли не штатно. Я ошибаюсь? Только знать адрес второго устройства на шине и всё - дальше как обычно. Поправьте.

В принципе так и есть. У нас FPGA мастерит весь трафик на PCIe.

Цитата
Другое дело что доступ к SSD завернут в такой хитрючий протокол, что я не знаю как можно это чисто на логике сделать, или даже с soft-CPU без Linux. Ну можно наверное, но будет на уровне персонального героизма.

В том-то и дело, что c NVMe все должно стать гораздо проще. Никаких SATA, AHCI и прочей белиберды. И даже вроде как корки готовые существуют - https://www.xilinx.com/products/intellectua...y/1-f2v39l.html Вопрос именно в том, что это за фигня и насколько сложно забебехать такое самому. Ну и скорость тоже интересует.

Цитата
собственно, ремарка номер раз - хватит ли одного ссд диска по пропускной способности?

Должно хватить. В принципе ориентируемся на перформанс одного диска, если не будет хватать - будем снижать количество данных. По любому должно быть быстрее, чем через процессор.

Собственно вопрос с софтом упирается в такое: можно ли писать на SSD данные без файловой системы или можно сделать какую-либо примитивную ФС только с помощью логики? Тот же Microblaze убьет всю скорость очень быстро. Zyncа в наличии нет.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение May 22 2018, 08:57
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 072
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(syoma @ May 22 2018, 10:34) *
В том-то и дело, что c NVMe все должно стать гораздо проще. Никаких SATA, AHCI и прочей белиберды. И даже вроде как корки готовые существуют - https://www.xilinx.com/products/intellectua...y/1-f2v39l.html Вопрос именно в том, что это за фигня и насколько сложно забебехать такое самому. Ну и скорость тоже интересует.
Думаю сделать такое не особо сложно - так как тут только логический уровень а физ. интерфейс стандартный - в основном геморой будет со вниканием в спецификацию и нюансы работы с NVM. Ну и отсутствие BFM для моделирования NVM добавить работы c железом.
Плюс в том что все можно сначала чисто на софте попробовать а потом уже перенести в FPGA.

Цитата(syoma @ May 22 2018, 10:34) *
Должно хватить. В принципе ориентируемся на перформанс одного диска, если не будет хватать - будем снижать количество данных. По любому должно быть быстрее, чем через процессор.
Ну это смотря какой проц. Да и буферизация в большой системной памяти играет свою роль. Так как у SSD всегда есть провалы скорости (иногда непредсказуемые и ну очень печальные).

Цитата(syoma @ May 22 2018, 10:34) *
Собственно вопрос с софтом упирается в такое: можно ли писать на SSD данные без файловой системы или можно сделать какую-либо примитивную ФС только с помощью логики? Тот же Microblaze убьет всю скорость очень быстро. Zyncа в наличии нет.
Писать и читать можно и без FS - тупым автоматом. Но совсем без файловой системы будет неудобно на мой взгляд. Но всегда можно подобрать что то или сваять свой велосипед упростив и оптимизировать для конкретных задач - например пишем линейно, крупными блоками. Для подобного и MB сгодится так как через него будет идти совсем немного для управления блоками.
Естественно нужно оценить что будет выгоднее - свой велик или адаптация чего то готового.

Удачи! Rob.
Go to the top of the page
 
+Quote Post
syoma
сообщение May 22 2018, 09:30
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 779
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата
Так как у SSD всегда есть провалы скорости (иногда непредсказуемые и ну очень печальные).

Я очень надеюсь, что как раз в NVMe этот вопрос решили. Возможно ошибаюсь... В принципе это легко узнать экспериментальным путем.
Go to the top of the page
 
+Quote Post
syoma
сообщение May 22 2018, 11:17
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 779
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Тут поступила еще идея - размечать и создавать файловую систему с помощью средств операционки, которая крутится на центральном процессоре. Она также должна создавать и открывать для записи файл, а затем передавать (указатель?) на него в ПЛИС, чтобы она начинала запись. Вот такая гибридизация. ХММ, так вроде в картах видеозахвата было, не?
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение May 22 2018, 11:42
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 072
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(syoma @ May 22 2018, 14:17) *
Тут поступила еще идея - размечать и создавать файловую систему с помощью средств операционки, которая крутится на центральном процессоре. Она также должна создавать и открывать для записи файл, а затем передавать (указатель?) на него в ПЛИС, чтобы она начинала запись. Вот такая гибридизация. ХММ, так вроде в картах видеозахвата было, не?

Зачем указатель - можно сразу список блоков LBA для записи/чтения файла, а в FPGA уже мастером только гнать по ним данные.

Удачи! Rob.



Go to the top of the page
 
+Quote Post
gutzzz
сообщение May 23 2018, 13:20
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 7-02-09
Из: Ростов-на-Дону
Пользователь №: 44 537



FPGA drive by Jeff Johnson project видели?

Там есть примеры для VC707, VC709 китов
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение May 23 2018, 13:51
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 072
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

А также можно порыться например тут user space NVMe driver.
Для старта экспериментов.

Удачи! Rob.
Go to the top of the page
 
+Quote Post
syoma
сообщение May 24 2018, 09:17
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 779
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(gutzzz @ May 23 2018, 15:20) *
FPGA drive by Jeff Johnson project видели
Там есть примеры для VC707, VC709 китов


Если вот это, то видел. Он тестировал с Петалинуксом на Microblaze и Arm, но и там и там теоретические скорости SSD и близко не были достигнуты. В итоге он задался тем же вопросом - есть ли железная корка, позволяющая достичь нужных значений.
Хотя с другой стороны мне нужно сначала посчитать, что там получается у PCIe с пропускной способностью. У меня всего лишь Gen.2 x4, да и то, для записи будет доступен не весь объем PCIe трафика, а что-то около 20%
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2018 - 23:17
Рейтинг@Mail.ru


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