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

 
 
> Потоковое чтение с SSD, Как настроить чтение DMA от Ethernet к SSD
Andre7
сообщение Sep 25 2013, 07:59
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 7-05-13
Пользователь №: 76 752



Имеем устройство (на базе ПЛИС) подключенное через Ethernet к компьютеру на котором стоит Linux и SSD винт.
Устройство на базе ПЛИС посылает запрос, на который должно получить ответ в виде блока данных с SSD диска.
Задача состоит в том что бы написать драйвер под Linux.

Вопросы:
1) Непонятна архитектура построения системы (Можно-ли настроить один контролер DMA который сраду будет передавать с SSD на Ethernet минуя оперативку. Или же нужны более сложные ухищрения)
2) Что нужно будет напсать в драйвере? (просто блок-схемами)
3) На самом деле, конечное усройство не разработано, поэтому можно поставить плату PCI express, как преобразователь ethernet. Можно ли делать запросы от PCIe (режим bus mastering) напрямую к SSD диску в режиме DMA?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Sep 25 2013, 10:25
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



мне интересно а как вы арбитраж сделаете?
как вы сможете гарантировать что в тот момент когда ПЛИС через езернет что-то читает, операционка ничего не запишет? Это даже не вопрос обращения к одному месту файла, это вопрос обращения 2 систем к одному физическому устройству. Ведь юник будет держать файловую систему на диске...

И второй момент, мне кажется что скорость доступа операционки к данным диска, будет много выше скорости езернет...
Go to the top of the page
 
+Quote Post
Andre7
сообщение Sep 25 2013, 10:43
Сообщение #3





Группа: Участник
Сообщений: 10
Регистрация: 7-05-13
Пользователь №: 76 752



Цитата(Golikov A. @ Sep 25 2013, 17:25) *
мне интересно а как вы арбитраж сделаете?
как вы сможете гарантировать что в тот момент когда ПЛИС через езернет что-то читает, операционка ничего не запишет? Это даже не вопрос обращения к одному месту файла, это вопрос обращения 2 систем к одному физическому устройству. Ведь юник будет держать файловую систему на диске...

И второй момент, мне кажется что скорость доступа операционки к данным диска, будет много выше скорости езернет...


У нас эта система сейчас реализована в оперативной памяти. Часть оперативки заберает линукс, а вторую часть оперативки методом mmap() делаем доступной для программы, которая записывает данные и дает добро ПЛИС для считывания. Т.е мы берем с жесткого диска и размещаем в оперативку, а затем при помощи DMA ПЛИС забирает данные себе. Хотелось бы избавиться от лишнего копирования в оперативную память, а напрямую забирать данные с диска

На счет скорости согласен, Ehernet был приведет в качестве примера, возможно более рационально использовать передачу, через PCIexpress. Возможно ли через PCIexpress достучаться к диску через виртуальные адреса?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 17:02
Рейтинг@Mail.ru


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