Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Что проще - SATA или PCIe ?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
vavshchuk_D
Здравствуйте.
Требуется создать систему для записи экспериментальных данных на жесткий диск (SSD). Сейчас стараюсь понять, в каком направлении двигаться, покритикуйте
пожалуйста.

Что система делает:
Работает в полевых условиях, принимает данные с множества датчиков.Пишет поток данных 50Мбайт в секунду на SSD (в виде файлов по 100 Мбайт каждый). Далее в лаборатории
изображает из себя ftp - сервер и выдает эти данные в ПК через Ethernet.

1) У меня есть идея использовать для этого ПЛИС Spartan 6, или Virtex6 или Kintex 7 с Microblaz'ом.
Связь с HDD - через SATA или PCIe. Может кто скажет, какой из них проще реализовать? На PCIe у Xilinx есть готовое ядро, а на SATA - вроде нет.
2) Правильно ли я понимаю, что чтобы писать с файловой системой на SSD, нужна ОС в Microblaze?

Спасибо
DmitryR
Мы делали SATA, правда slave, и мне видится что это подъемная задача, особенно если не заморачиваться всякими NCQ. PCIe мастер (root) есть только в дорогих ПЛИС, и мне непонятно как вы SSD подключите по PCIe. А SATA можно сделать ПЛИС начального уровня. Чтобы писать файлы операционку конечно надо, вот тут у вас будет небольшая сложность - придется для выбранной операционки к вашему самодельному SATA мастеру написать драйвер, что может стать самой гемморойной частью проекта.
dsmv
Цитата(DmitryR @ Mar 30 2012, 10:27) *
Мы делали SATA, правда slave, и мне видится что это подъемная задача, особенно если не заморачиваться всякими NCQ. PCIe мастер (root) есть только в дорогих ПЛИС, и мне непонятно как вы SSD подключите по PCIe. А SATA можно сделать ПЛИС начального уровня. Чтобы писать файлы операционку конечно надо, вот тут у вас будет небольшая сложность - придется для выбранной операционки к вашему самодельному SATA мастеру написать драйвер, что может стать самой гемморойной частью проекта.

Наиболее сложной частью в SATA является LINK, он аналогичен уровню DATA_LINK в PCIe, но в современных ПЛИС PCIe уже существует в виде hard блока. Для ПЛИС Xilinx IP Core PCIe входит в состав CORE Generator и не требует отдельной лицензии. IP Core для SATA нужно покупать у других компаний, например у Snowbush. Когда то я пытался изучить вопрос как сделать самостоятельно SATA, но не смог. Так что мне интересно, как удалось сделать SATA в ПЛИС и главное какая ПЛИС и сколько ресурсов занимает контроллер, хотя бы приблизительно.


А для решения поставленной автором задачи напрашивается применение ARM. Там уже всё есть, включая soft. У нас на фирме эксперименты с ARM проводятся, например получили ввод данных на скорости 600 Мбайт/с через PCIe v2.0 x2.




vavshchuk_D
Всем спасибо за ответы.
Я тут почитал еще документацию, и понял, что:
1) PCIe Root Complex есть в Virtex6 и 7 Series. В Virtex6 он доступен только из Coregen. В Kintex7 его можно будет создать из EDK. Но kit'a , который бы это демонстрировал, еще нет. Так что для PCIe Root сейчас требуется брать Virtex6 или Kintex7 , через AXI-DMA подключать к Microblaze, и писать свой драйвер для ОС. Все это видимо довольно сложно.
2) Поискал на форуме по SATA, и нашел, что на его реализацию требуется человеко-год. Многовато.
3) Нашел SSD с интерфейсом PATA и логич. уровнями 3.3V, так что даже преобразователя уровней между ПЛИС и SSD не надо. Похоже, самописная PATA - самый простой вариант.
Wic
vavshchuk_D, если не ошибаюсь на форуме кто то занимался разработкой SАТА контроллера. Не пробовали писать им может они поделятся за некоторое вознаграждение.
Lmx2315
А существуют готовые микросхемы/процессоры контроллеры SATA ?
Что-то аналогичное таким для USB, поставил между разъёмом SATA и ПЛИС , решил проблему.
Victor®
Цитата(Lmx2315 @ Jul 13 2012, 09:57) *
А существуют готовые микросхемы/процессоры контроллеры SATA ?
Что-то аналогичное таким для USB, поставил между разъёмом SATA и ПЛИС , решил проблему.


Xilinx Zync-7000 + USB to SATA контроллер Вас спасет.

P.S.
У Zync есть еще и SD-CARD контроллеры. Можно и их пользовать, если задача позволяет.
Flood
При задаче в 50МБайт/с USB2SATA не спасет.
PCIe хост на Virtex-6 или, тем более, 7-series - не проблема, но загвоздка видится в драйвере для PCI-Express SSD. Это будет или SATA SSD с PCIe-SATA RAID-контроллером (например OCZ), или что-то проприетарное и абсолютно неподъемное (например Fusion-IO).
Возможное решение - SoC процессор с PCIe / SATA одновременно.
krux
Цитата
50Мбайт в секунду


это надо обрабатывать на лету.
либо фермой ПЛИС либо фермой CPU.

посмотрите ради интереса как устроены фермы ATLAS или CMS в CERN, и как там мульти-гигабитные потоки после L1-триггеров плавно срезаются L2-триггерами и затем только пишутся в offline storage.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.