Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запись скоростного потока данных с ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
zomg
Необходимо реализовать запись скоростного потока данных (200 МБ/сек или больше) с ПЛИС Xilinx (Virtex 5) в какой-то накопитель объемом больше 300 ГБ. Возникает проблема как лучше и проще это сделать и какой накопитель выбрать.
Посмотрел, как вариант, накопители SSD фирм Micron, Samsung и OCZ. Объем и скорости записи подходящие, особенно у фирмы OCZ. Трудность в интерфейсах SATA и PCI Express.
Подскажите пожалуйста, может быть есть другие более простые варианты?
RobFPGA
Приветствую!

Вы бы уточнили в каком окружении (на какой плате) находится данная FPGA.
Она же все таки не сферической формы и не в вакууме работает sm.gif.


Удачи! Rob.

alexPec
Цитата(zomg @ Feb 24 2011, 18:50) *
Необходимо реализовать запись скоростного потока данных (200 МБ/сек или больше) с ПЛИС Xilinx (Virtex 5) в какой-то накопитель объемом больше 300 ГБ. Возникает проблема как лучше и проще это сделать и какой накопитель выбрать.
Посмотрел, как вариант, накопители SSD фирм Micron, Samsung и OCZ. Объем и скорости записи подходящие, особенно у фирмы OCZ. Трудность в интерфейсах SATA и PCI Express.
Подскажите пожалуйста, может быть есть другие более простые варианты?

По-моему такой поток лучше сначала распаралелить, а потом писать на несколько носителей враз.
dm.pogrebnoy
Есть готовое решение, пишите в личку sm.gif
zomg
RobFPGA:
Платы нет. Сейчас только решается, что она будет включать, но ПЛИС скорей всего Virtex.

alexPec:
Цитата
По-моему такой поток лучше сначала распаралелить, а потом писать на несколько носителей враз.

Ок, а какие лучше носители использовать? То есть с какими будет меньше проблем при организации доступа?

Еще проблема знать как с этими винтюками общаться и какой у них набор команд.
Mikle Klinkovsky
Цитата(zomg @ Feb 24 2011, 18:50) *
Подскажите пожалуйста, может быть есть другие более простые варианты?

Использовать сжатие или обрабатывать в реальном времени...
Что у вас там в потоке данных-то бежит? wink.gif
zomg
Цитата(Mikle Klinkovsky @ Feb 24 2011, 22:18) *
Использовать сжатие или обрабатывать в реальном времени...
Что у вас там в потоке данных-то бежит? wink.gif

Обработка в реальном времени уже не то будет. Не знаю какой эффект будет от сжатия шума,
в потоке данных отсчеты АЦП.
Mikle Klinkovsky
Цитата(zomg @ Feb 24 2011, 22:32) *
В потоке данных отсчеты АЦП.

Типы и характеристики сигналов известны?
Вам весь шум или всё-таки сигналы нужны? Можно ведь и результаты предварительной обработки сохранять...
zomg
Цитата(Mikle Klinkovsky @ Feb 24 2011, 22:38) *
Типы и характеристики сигналов известны?

Неизвестны

Цитата
Можно ведь и результаты предварительной обработки сохранять...

Да, но только комплексную амплитуду. Выигрыш в скорости получим, но все равно требуется около 200 МБ/сек.
Mikle Klinkovsky
А раскройте секрет, кто именно у вас умеет такую скорость? И это пиковая скорость или средняя?

Теоретически в PCI-E x16 ваш поток пропихнётся, но вот дальше что с ним делать - вопрос.
zomg
Скорость средняя конечно, не меняется.

Цитата
А раскройте секрет, кто именно у вас умеет такую скорость?

Хотя бы вот эти товарищи должны справиться:
http://www.micron.com/partscatalog.html?ca...rage/client_ssd

С интерфейсом PCI Express:
http://www.ocztechnology.com/ocz-z-drive-r...xpress-ssd.html
RobFPGA
Приветствую!

Ну раз конфигурация сферическая - можно и пофантазировать.

Раритетный sm.gif - пару IDE интерфейсов на FPGA сделать не сложно, команды управления винтом простые, даже на FSM можно запись сделать, а если Microblaze запустить - то вот вам и стандартная файловая система.
Устаревший - сделать PCI-X контроллер - к нему прицепить соответствующий контроллер HDD, ну дальше понятно ...
Современный - реализовать PCIe контроллер и уже к к нему прицепить соответствующий контроллер HDD ....
Скучный - можно просто плату с FPGA (PCI-X, PCIe) воткнуть в комп ...
Продвинутый - сразу делать SATA, SAS или Fiber Chanel контроллер винта и подключать к нему винт ....
Модный - делать 10G Ehernet контроллер - на нем поднимать iSCSI и подключать все это к сетевому накопителю ...
Геморройный - тот же OCZ рекламирует винты с собственным HDSL интерфейсом нужно то реализовать его и далее по накатанному sm.gif ...

Ну вот неполный список основных методов sm.gif

Успехов! Rob.



Цитата(Mikle Klinkovsky @ Feb 24 2011, 21:52) *
А раскройте секрет, кто именно у вас умеет такую скорость? И это пиковая скорость или средняя?

Теоретически в PCI-E x16 ваш поток пропихнётся, но вот дальше что с ним делать - вопрос.


Ну в PCI-E x16 можно до 2 GByte/s пропихнуть даже на 1.1 версии.

О это как большой вопрос большой науки sm.gif У меня вон радиоастрономы за ночь по 4 -8 TByte пишут. Сплошные шумы на первый взгляд.
Неделю записывают - потом пол года разбираются.

Успехов! Rob.
zomg
RobFPGA
А чем пользуются радиоастраномы для записи таких потоков данных?
blackfin
Цитата(RobFPGA @ Feb 25 2011, 01:05) *
Модный - делать 10G Ehernet контроллер - на нем поднимать iSCSI и подключать все это к сетевому накопителю

Есть еще "Скучно-Модный" - сделать два (или четыре) 1G Ehernet контроллера и по двум (четырем) Ehernet'ам подключать к компу.
:-)
Цитата(blackfin @ Feb 26 2011, 15:39) *
Есть еще "Скучно-Модный" - сделать два (или четыре) 1G Ehernet контроллера и по двум (четырем) Ehernet'ам подключать к компу.


Интересно, а как решается вопрос гарантии доставки данных?
zomg
Протокол TCP наверное
RobFPGA
Приветствую!

Цитата(zomg @ Feb 26 2011, 14:29) *
RobFPGA
А чем пользуются радиоастраномы для записи таких потоков данных?


А на что денег хватит sm.gif

Сейчас вот PCI-X плата на базе Viretx4sx35 и PCI контроллера PLX, на вход которой по двум 2.5 Gbit/s (медь или оптика) линкам подключен внешний ADC модуль (2 канала 16 бит, 10-120 МHz). Плата ставится в обычный (почти) комп. под Windows XP, 4 винта в soft RAID0, немного собственного софта, и готов современный инструмент радиоастронома sm.gif. 4-5 таких систем работающих синхронно - и вся вселенная как на ладони (в смысле на винте) sm.gif

К сожалению PCI-X плата уже старенькая и не позволяет писать больше чем 200 MByte/s из за ограничения по локальной шине PLX чипа установленного на этой плате. Хотя PCI-X 64 бит 66 MHz может реально передавать 460-480 MByte/s.

Цитата(blackfin @ Feb 26 2011, 14:39) *
Есть еще "Скучно-Модный" - сделать два (или четыре) 1G Ehernet контроллера и по двум (четырем) Ehernet'ам подключать к компу.


Скорее это будет Стандартный-Геморройный как раз из за необходимости синхронизации. sm.gif
Но TCP/IP тут лучше не использовать. Можно проще сделать с использованием UDP а целостность данных отслеживать своим софтом.

Успехов! Rob.
zomg
Плата должна сама уметь хранить данные, без компьютера.
Мне всех больше понравился вариант с реализацией контроллера SATA на ПЛИС и подключением к нему винта. Микрон заявляет, что максимальная скорость записи их последних SSD с интерфейсом SATA 260 Мбайт/сек. Если это действительно средняя скорость, а не какая-нибудь пиковая при благоприятных условиях, то получается здорово. Да и накопитель самый компактный: легко переносить чтобы в конце концов вставить в комп. Придется как то на низком уровне доступаться к винчестеру.
Проблема что не разбираюсь в SATA и командах SSD, буду учиться. Ну а так впринципе реально построить такую штуку?
blackfin
Цитата(zomg @ Feb 26 2011, 18:05) *
Проблема что не разбираюсь в SATA и командах SSD, буду учиться. Ну а так впринципе реально построить такую штуку?

Реально, если использовать AM3892..
RobFPGA
Приветствую!

Очень даже реально - я думаю что основная задача в создании SATA контроллера.

Я недавно купил платку для экспериментов этом направлении в том числе и c SATA - MarsMX2
Сделать на ней SATA контроллер - запустить Microblaze c Linux - красота!

Удачи! Rob.
zomg
Цитата
Очень даже реально - я думаю что основная задача в создании SATA контроллера.

Интересно, существуют ли микросхемки, реализующие контроллер SATA? Тогда можно просто обойти эту проблему biggrin.gif
RobFPGA
Ой - мне бы ваши проблемы!

http://www.satacables.com/html/sata_to_ide_adapter.html

Тут вот сижу ломаю голову как 4GByte/s записывать 8-()

Удачи Rob!
zomg
RobFPGA
Класс! Спасибо! sm.gif
RobFPGA
Приветствую!

Еще видел конверторы от Marvell.

Да но учтите что с такими конверторами 200 MB/s можно и не вытянуть - надо внимательно доки читать (которые не всегда есть) или эксперименты проводить (что полезно но бывает накладно).

Успехов! Rob.
:-)
Цитата(RobFPGA @ Feb 26 2011, 17:22) *
Но TCP/IP тут лучше не использовать. Можно проще сделать с использованием UDP а целостность данных отслеживать своим софтом.


Отслеживать или гарантировать? wink.gif
Mikle Klinkovsky
Цитата(RobFPGA @ Feb 26 2011, 19:14) *
Тут вот сижу ломаю голову как 4GByte/s записывать 8-()

IMHO, самое простое, без заморочек, решение - сделать кластер на ОЗУ, а потом спокойно сливать его на комп, хоть по RS-232.
А в случае с 4GByte/s вообще не вижу другого выхода.
RobFPGA
Приветствую!

Цитата(Mikle Klinkovsky @ Feb 27 2011, 17:18) *
IMHO, самое простое, без заморочек, решение - сделать кластер на ОЗУ, а потом спокойно сливать его на комп, хоть по RS-232.
А в случае с 4GByte/s вообще не вижу другого выхода.


Ой нехорошо над несчастным измываться - 30 минут записи - ОЗУ на 8 TByte - простое решение >8-() ну и почти недорогое sm.gif
А уж сброс этого добра по RS ....

Хотя вон у тех же буржуинов - 19" 3U FLASH диск на 10 TByte со скоростью записи как раз 4 Gbyte/s всего 400К енотов.

Успехов! Rob.
Mikle Klinkovsky
Цитата(RobFPGA @ Feb 27 2011, 19:03) *
Хотя вон у тех же буржуинов - 19" 3U FLASH диск на 10 TByte со скоростью записи как раз 4 Gbyte/s всего 400К енотов.

Ну, а 7200Гб озушки будет стоить около 85К енотов...
fyodor
Цитата(RobFPGA @ Feb 26 2011, 19:14) *
Тут вот сижу ломаю голову как 4GByte/s записывать 8-()

Очень интересно. А можно услышать весь набор вариантов для решения такой проблемы? Т.е. раритетный, устаревший, современный, скучный, продвинутый, модный и геморройный? rolleyes.gif
Maverick
Можно например купить эту плату и попробовать ...
На этой плате имеется SATA и PCIe
RobFPGA
Приветствую!

Цитата(fyodor @ Feb 28 2011, 08:48) *
Очень интересно. А можно услышать весь набор вариантов для решения такой проблемы? Т.е. раритетный, устаревший, современный, скучный, продвинутый, модный и геморройный? rolleyes.gif


Скорее всего получится Модно-Геморройный sm.gif
Поток данных распараллеливается на 4-6 10G Ethernet или FC контроллера и будет записывается на стандартные дисковые массивы.

Успехов Rob.
Костян
QUOTE (blackfin @ Feb 26 2011, 11:39) *
Есть еще "Скучно-Модный" - сделать два (или четыре) 1G Ehernet контроллера и по двум (четырем) Ehernet'ам подключать к компу.

на сегодняшний день у меня получается такой подход как "скучно-проблемный"
оказывается 1G Ethernet не тянет больше, чем 120Мбит/с . Подробности тут
http://electronix.ru/forum/index.php?showtopic=96309
litv
У меня на винт с ПЛИС через ethernet 1Gbit пишется 120 Мбайт в секунду. Без разрывов на raid, udp. Приезжайте в Воронеж. santa2.gif
Костян
QUOTE (litv @ Nov 10 2011, 03:38) *
У меня на винт с ПЛИС через ethernet 1Gbit пишется 120 Мбайт в секунду. Без разрывов на raid, udp. Приезжайте в Воронеж. santa2.gif

опишите вкратце алгоритм.
1. Потери пакетов есть ?
2. Драйвер под сетевую карту свой ?
3. Чипсет ПК какой ?
4. Загрузка процессора какая ?
5. есть ли повтор пакетов ?
litv
Цитата(Костян @ Nov 10 2011, 16:45) *
опишите вкратце алгоритм.
1. Потери пакетов есть ?
2. Драйвер под сетевую карту свой ?
3. Чипсет ПК какой ?
4. Загрузка процессора какая ?
5. есть ли повтор пакетов ?

Я описал вкратце.
1. Нет
2. Нет, родной драйвер карты.
3. не столь важно.
4.
5.нет. Каждому дописан номер для контроля.


Интерфейс 1Гбит. Intel i7 3.2, ОЗУ 3Гбайт, 2 жестких диска включенных в RAID0 (125 Мбайт/с ) , операционная система Windows XP 32 Rus:
а) Скорость передачи из платы 100 Мбайт/с. Запись на диск компьютера 25 ГБайт файла непрерывно без ошибок. При этом на машине работали другие приложения пользователей (интернет). Загрузка процессора ~12 % без остальных.
б) Скорость передачи из платы 120 Мбайт/с. Запись на диск компьютера 15 ГБайт файла непрерывно без ошибок. Загрузка процессора ~12 % .
Тесты повторялись много раз.

Плата работает каждый день для записей с ПЛИС - 100 Мбайт/c. Разрывов нет.
Пишем и на быстрый flash-диск.


Костян
2 litv
Спасибо. Вы меня озадачили ...
Как я понимаю, на ПК запускается утилитка, которая настраивает DMA канал между сетевой и RAID ? Причем сетевая выступает мастером ?
Какой размер пакета в байтах используется при отправки с ПЛИС ?

Будте добры, опишите еще вкратце механизм и алгоритм работы софта. Для меня это самая сложная часть, сформировать поток в 120Мбайт/с на плате не составляет никакого труда.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.