Перейти к содержанию
    

Потоковое чтение с SSD

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

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

Задача состоит в том что бы написать драйвер под Linux.

 

Вопросы:

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

2) Что нужно будет напсать в драйвере? (просто блок-схемами)

3) На самом деле, конечное усройство не разработано, поэтому можно поставить плату PCI express, как преобразователь ethernet. Можно ли делать запросы от PCIe (режим bus mastering) напрямую к SSD диску в режиме DMA?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Какая-то странная система

http://en.wikipedia.org/wiki/ATA_over_Ethernet

 

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

 

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

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая-то странная система

http://en.wikipedia.org/wiki/ATA_over_Ethernet

 

 

 

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

 

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

 

Если есть другие варианты реализации данной задачи, буду рад рассмотреть:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне интересно а как вы арбитраж сделаете?

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне интересно а как вы арбитраж сделаете?

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

 

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

 

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

 

На счет скорости согласен, Ehernet был приведет в качестве примера, возможно более рационально использовать передачу, через PCIexpress. Возможно ли через PCIexpress достучаться к диску через виртуальные адреса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...