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

 
 
 
Reply to this topicStart new topic
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
sasamy
сообщение Sep 25 2013, 08:51
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Andre7 @ Sep 25 2013, 11:59) *
Имеем устройство (на базе ПЛИС) подключенное через Ethernet к компьютеру на котором стоит Linux и SSD винт.
Устройство на базе ПЛИС посылает запрос, на который должно получить ответ в виде блока данных с SSD диска.


Какая-то странная система
http://en.wikipedia.org/wiki/ATA_over_Ethernet

Цитата
1) Непонятна архитектура построения системы (Можно-ли настроить один контролер DMA который сраду будет передавать с SSD на Ethernet минуя оперативку.


Зачем тогда ОС нужна ?

Сообщение отредактировал sasamy - Sep 25 2013, 09:07
Go to the top of the page
 
+Quote Post
Andre7
сообщение Sep 25 2013, 10:14
Сообщение #3





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



Цитата(sasamy @ Sep 25 2013, 15:51) *
Какая-то странная система
http://en.wikipedia.org/wiki/ATA_over_Ethernet



Зачем тогда ОС нужна ?


Операционная система обрабатывает файл и сохраняет его на SSD диск. Размер файла может достигать 100Гб. Устройство подключенное через Ethernet или PCIexpress должно получать кусочек этого файла. Если писать программу которая будет пересылать данные частями в оперативную память, то она будет медленно работать по сравнению c прямым доступом к SSD.

Если есть другие варианты реализации данной задачи, буду рад рассмотретьsm.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 25 2013, 10:25
Сообщение #4


Гуру
******

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



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

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





Группа: Участник
Сообщений: 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
gosu-art
сообщение Oct 24 2013, 16:36
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



http://www.youtube.com/watch?v=d42jhQoUBlU
Попробовать замутить Peer-to-Peer.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 09:30
Рейтинг@Mail.ru


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