Как стать автором
Обновить

Комментарии 28

Хорошая статья! Ждем еще! :)
Пытаюсь сам на ПЛИС программировать. Всегда неудачно. Даже VGA не смог завести :(

А всё потому, что вы говорите запретное слово «программировать» применительно к ПЛИС. :)
При данных измерениях принято что 1 Мбайт это 1024 кбайт, а 1 кбайт это 1024 байта.


забыли сказать, что 1 байт при измерении считается = 8 бит.
Однажды у нас на работе разгорелась большая дискуссия — а сколько же битов в байте. Мнения были разные.
Не все так однозначно… при последовательной передаче в USB и PCIe по дифференциальным парам применяется так называемое «8b/10b encoding». Это позволяет в среднем избавиться от постоянной составляющей в сигнале. Так что обычно байт передается за 10 бит. И значит, что скорость передачи полезной информации немного меньше, чем физическая скорость передачи.
128b/130b для PCIe 3.0
Наверное имелись ввиду приставки «киби» и «миби». Кстати, если позанудствовать окончательно, то в случае «в 1кб 1024 байта» приставку «к» надо писать с заглавной буквы
и «Б» тоже с большой буквы
Да, с точки зрения современной бюрократии так и надо. Но я старомоден.
Собственно говоря, иногда я даже думаю что в километре 1024 метра.
:-)
НЛО прилетело и опубликовало эту надпись здесь
Забавно. Перепиленый чип или откуда такое?
НЛО прилетело и опубликовало эту надпись здесь
Это крайне интересно. А работает?
НЛО прилетело и опубликовало эту надпись здесь
Интересно, сколько стоило сделать такое фото?
НЛО прилетело и опубликовало эту надпись здесь

Да всего 2000$… всего-то машина новая :)

НЛО прилетело и опубликовало эту надпись здесь
один год работы
110 кбайт внутренней памяти для современных ПЛИС — совсем небольшое количество. Для вашего кристалла — меньше 4% от доступной.
Да, Вы правы. Но обычно память нужна и для других задач. И для надёжной буферизации всё таки нужно больше. А вот насколько больше — требуется отдельное исследование.
Дмитрий, спасибо, что рассказываете о своих разработках и достижениях.

Что требовалось от Операционной Системы, чтобы это всё заработало (приходилось ли драйвер писать/модифицировать для этого)? Как это сейчас видится в системе? Как два /dev/ устройства? Как данные попадают в юзерспейс?

Для сообщения о том, что дескриптор был обработан, используется прерывание или поллинг?

Задержки возникают из-за работы других устройств. Величина задержки может быть разной, это может быть 5 – 10 мкс, а может и больше.

Вы в Чипскопе видели, что обмен по PCIe встает на 10 мкс? Или 10 мкс это суммарное время простоя за измеряемую одну минуту? Какие еще PCIe устройства подключены были к CPU? Пробовали ли их отключать?
Разумеется драйверы для наших устройств мы пишем. Часть из них опубликована на GutHub.
Обмен данными идёт в режиме Scatter-gather, конечно используется прерывание. Причём особых требований к времени обработки прерывания нет. Задержку в 10 мкс я видел на осциллографе, на контрольную точку были выведены внутренние сигналы из ПЛИС. В данных тестах в системе только обычные устройства — видеоадаптер, диск. Отключать не пробовал.
Однако доступные ПЛИС имеют HARDWARE контроллер только для PCIe v3.0 x8; Реализации SOFT IP Core есть, но очень дорогие. Но выход есть.
ПЛИС Virtex 7 VX330T имеет два контроллера PCI Express v3.0 x8; Очевидным решением является размещение коммутатора, который имеет на стороне разъёма x16 и две шины x8 которые подключены к ПЛИС.

Каким образом происходит конкурирование устройства в таком режиме? Ведь когда LTSSM = Configuration, Endpoint должен сообщить свою шину шины, а как я понимаю, ширина шины у HARDWARE контроллера может быть не больше 8?
Особой конкуренции нет. Компьютер видит два независимых устройства с шиной x8; Инициализация происходит независимо друг от друга. Драйвер тоже видит два устройства, но работает только с одним. А вот DMA контроллер производит обмен с использованием двух устройств.
Спасибо! Отличная статья! А как насчет области применения, например, в обработке больших данных? Планируется ли реализовать в этой связке 10/40 Gigabit Ethernet?
По пропускной способности это 100G Ethernet, Если заказчика найдём, то сделаем.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории