|
|
  |
ПЛИС -> PCIe -> NVMe -> M.2 без SoC, Реализуемо? |
|
|
|
May 18 2018, 16:54
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 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.
|
|
|
|
|
May 18 2018, 18:07
|
Участник

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

|
собственно, ремарка номер раз - хватит ли одного ссд диска по пропускной способности? если хватит, то все ок, если нет, то придется параллелить диски, а значит либо делать ген2/3 руты софтварно в вирте, либо ставить после 8/16 лейнового хардового рута свич фабрику, например от броадкома, которая позволит пользовать один рут и несколько, параллельных полноскоростных м2 ссд дисков.
корка софтовая на рут ген2/3 стоит денег, поэтому мы, например, пошли по второму пути. и таки да, вирт7 может тупо брать и сливать данные на ссд, но вот чтобы потом из более менее осознанно достават, пришлось приделать к нашей фпаге цинк, на котором крутился линкус и который своим рут ген2 так же был воткнут в свич и имел достут к ссд дискам. это с одной стороны, и к оптике - с другой. как то так
Сообщение отредактировал yuri.job - May 18 2018, 18:18
|
|
|
|
|
May 22 2018, 07:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 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а в наличии нет.
|
|
|
|
|
May 22 2018, 08:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 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.
|
|
|
|
|
May 22 2018, 11:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

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

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

|
FPGA drive by Jeff Johnson project видели?
Там есть примеры для VC707, VC709 китов
|
|
|
|
|
May 23 2018, 13:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! А также можно порыться например тут user space NVMe driver. Для старта экспериментов. Удачи! Rob.
|
|
|
|
|
May 24 2018, 09:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 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%
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|