syoma 1 18 мая, 2018 Опубликовано 18 мая, 2018 · Жалоба Собственно вопрос - в системе есть Virtex-7 с PCIe и хотим стримить огромное количество данных на SSD по возможности напрямую через PCIe без участия центрального процессора. Потом эти данные нужно будет из SSD прочитать, возможно с помощью той же самой ПЛИС. Кто-нибудь такое уже делал? Реализуемо без всяких Petalinux, чисто на логике? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 18 мая, 2018 Опубликовано 18 мая, 2018 · Жалоба Приветствую! Собственно вопрос - в системе есть Virtex-7 с PCIe и хотим стримить огромное количество данных на SSD по возможности напрямую через PCIe без участия центрального процессора. Потом эти данные нужно будет из SSD прочитать, возможно с помощью той же самой ПЛИС. Кто-нибудь такое уже делал? Реализуемо без всяких Petalinux, чисто на логике?Вы хотите чтобы FPGA была как root-complex на PCIe? или просто master - слать данные из FPGA на диск через PCIe напрямую. И то и другое в принципе реализуемо но не думаю что совсем без поддержки софта можно будет обойтись. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 18 мая, 2018 Опубликовано 18 мая, 2018 · Жалоба Вы хотите чтобы FPGA была как root-complex на PCIe? или просто master - слать данные из FPGA на диск через PCIe напрямую. И то и другое в принципе реализуемо но не думаю что совсем без поддержки софта можно будет обойтись Мне кажется, пересылка между двумя PCIe EP должна поддерживаться чуть ли не с пол пинка, чуть ли не штатно. Я ошибаюсь? Только знать адрес второго устройства на шине и всё - дальше как обычно. Поправьте. Другое дело что доступ к SSD завернут в такой хитрючий протокол, что я не знаю как можно это чисто на логике сделать, или даже с soft-CPU без Linux. Ну можно наверное, но будет на уровне персонального героизма. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yuri.job 0 18 мая, 2018 Опубликовано 18 мая, 2018 (изменено) · Жалоба собственно, ремарка номер раз - хватит ли одного ссд диска по пропускной способности? если хватит, то все ок, если нет, то придется параллелить диски, а значит либо делать ген2/3 руты софтварно в вирте, либо ставить после 8/16 лейнового хардового рута свич фабрику, например от броадкома, которая позволит пользовать один рут и несколько, параллельных полноскоростных м2 ссд дисков. корка софтовая на рут ген2/3 стоит денег, поэтому мы, например, пошли по второму пути. и таки да, вирт7 может тупо брать и сливать данные на ссд, но вот чтобы потом из более менее осознанно достават, пришлось приделать к нашей фпаге цинк, на котором крутился линкус и который своим рут ген2 так же был воткнут в свич и имел достут к ссд дискам. это с одной стороны, и к оптике - с другой. как то так Изменено 18 мая, 2018 пользователем yuri.job Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба Вы хотите чтобы 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а в наличии нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба Приветствую! В том-то и дело, что c NVMe все должно стать гораздо проще. Никаких SATA, AHCI и прочей белиберды. И даже вроде как корки готовые существуют - https://www.xilinx.com/products/intellectua...y/1-f2v39l.html Вопрос именно в том, что это за фигня и насколько сложно забебехать такое самому. Ну и скорость тоже интересует.Думаю сделать такое не особо сложно - так как тут только логический уровень а физ. интерфейс стандартный - в основном геморой будет со вниканием в спецификацию и нюансы работы с NVM. Ну и отсутствие BFM для моделирования NVM добавить работы c железом. Плюс в том что все можно сначала чисто на софте попробовать а потом уже перенести в FPGA. Должно хватить. В принципе ориентируемся на перформанс одного диска, если не будет хватать - будем снижать количество данных. По любому должно быть быстрее, чем через процессор. Ну это смотря какой проц. Да и буферизация в большой системной памяти играет свою роль. Так как у SSD всегда есть провалы скорости (иногда непредсказуемые и ну очень печальные). Собственно вопрос с софтом упирается в такое: можно ли писать на SSD данные без файловой системы или можно сделать какую-либо примитивную ФС только с помощью логики? Тот же Microblaze убьет всю скорость очень быстро. Zyncа в наличии нет.Писать и читать можно и без FS - тупым автоматом. Но совсем без файловой системы будет неудобно на мой взгляд. Но всегда можно подобрать что то или сваять свой велосипед упростив и оптимизировать для конкретных задач - например пишем линейно, крупными блоками. Для подобного и MB сгодится так как через него будет идти совсем немного для управления блоками. Естественно нужно оценить что будет выгоднее - свой велик или адаптация чего то готового. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба Так как у SSD всегда есть провалы скорости (иногда непредсказуемые и ну очень печальные). Я очень надеюсь, что как раз в NVMe этот вопрос решили. Возможно ошибаюсь... В принципе это легко узнать экспериментальным путем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба Тут поступила еще идея - размечать и создавать файловую систему с помощью средств операционки, которая крутится на центральном процессоре. Она также должна создавать и открывать для записи файл, а затем передавать (указатель?) на него в ПЛИС, чтобы она начинала запись. Вот такая гибридизация. ХММ, так вроде в картах видеозахвата было, не? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба Приветствую! Тут поступила еще идея - размечать и создавать файловую систему с помощью средств операционки, которая крутится на центральном процессоре. Она также должна создавать и открывать для записи файл, а затем передавать (указатель?) на него в ПЛИС, чтобы она начинала запись. Вот такая гибридизация. ХММ, так вроде в картах видеозахвата было, не? Зачем указатель - можно сразу список блоков LBA для записи/чтения файла, а в FPGA уже мастером только гнать по ним данные. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gutzan 0 23 мая, 2018 Опубликовано 23 мая, 2018 · Жалоба FPGA drive by Jeff Johnson project видели? Там есть примеры для VC707, VC709 китов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 23 мая, 2018 Опубликовано 23 мая, 2018 · Жалоба Приветствую! А также можно порыться например тут user space NVMe driver. Для старта экспериментов. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 24 мая, 2018 Опубликовано 24 мая, 2018 · Жалоба FPGA drive by Jeff Johnson project видели Там есть примеры для VC707, VC709 китов Если вот это, то видел. Он тестировал с Петалинуксом на Microblaze и Arm, но и там и там теоретические скорости SSD и близко не были достигнуты. В итоге он задался тем же вопросом - есть ли железная корка, позволяющая достичь нужных значений. Хотя с другой стороны мне нужно сначала посчитать, что там получается у PCIe с пропускной способностью. У меня всего лишь Gen.2 x4, да и то, для записи будет доступен не весь объем PCIe трафика, а что-то около 20% Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться