|
|
  |
Принять и ПАРАЛЛЕЛЬНО распарсить поток 10Гбит/с. Как решаются такие задачи? |
|
|
|
Jan 2 2018, 19:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
с таким подходом - НЕТ. дело в том что я был в подобной ситуации, и для того чтобы задача легла на архитектуру плис её пришлось переписывать трижды. Уточняя "мелочи" в ТЗ, которые превращались в жирные кляксы, перечеркивая уже проделанную работу. 2 ТСумеете работать с x86 - берите DPDK в руки. это если нужен практический результат. если практический результат пофиг и вы пишете кандидатскую, ничего не зная про предметную область плис - вас на защите как катком раскатают. Цитата Нужно парсить именно в 1000 потоков и данные поступающие со скоростью 10 Гб/с. поясняю: парсинг в плис - это не 1000 раз сравнить один байт с "чем-то". для понимания в чем эффективность ПЛИС - нужно окунуться с головой в поиск по бинарному дереву, когда речь идёт не про сравнение строк, байтов ли чего ещё, а про сравнение СЛЕДУЮЩЕГО ПРИХОДЯЩЕГО БИТА. блин. нового решения по поиску исходя из сравнения очередного бита. за счет этого собственно производительность и достигается. в том числе, если необходима оперативность по передаче команд управления - то это делается до создания системы, и учитывается при создании протокола взаимодействия, но не после. а сейчас я вижу как производится попытка впихнуть некое "распарсивание" без понимания последствий. таким образом, налицо все попытки "скрыть это дерьмо" за какой-нибудь ПЛИС, которая будет никому не понятна, кроме тебя.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Jan 2 2018, 21:19
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(Студент заборстроительного @ Dec 29 2017, 21:54)  Вы думаете я совсем дурак? Вы думаете, что я просто так написал, что даже i7 захлебнётся от такого потока? Да ладно Вам. Давайте на чистоту -- судя по тому, как Вы описали свою задачу в этой теме, Вы вряд ли достаточно компетентны, чтобы знать, что может обработать современный i7. Поэтому коллеги и интересуются у Вас конкретными исходными условиями задачи. Цитата(Студент заборстроительного @ Dec 30 2017, 19:03)  Вы зря стараетесь меня "выудить" у меня детали ноу-хау нашей системы управления и "развести", чтобы я забесплатно устроил Вам ликбез по современным АСУТП. Хотя у меня ест чем возразить и дополнить по каждому из перечисленных Вами пунктов. Но я "калач тёртый". И на "слабо рассказать?" не ведусь А ноу-хау о том, как обрабатывать в одной ПЛИС сразу 1000 потоков, и читать/писать из общей памяти, значит хотите выудить забесплатно? Ахаха, как говорится, не выйдет Что мне реально интересно?Почему достаточно адекватные участники форума, так сказать, "ведутся" на такие темы и пытаются помогать ТС (даже диаграммы рисовать не лень  ). Просто тут всего 2 варианта: - Автор темы тролль и просто решил постебаться
- Автор не тролль, у него реально есть такая задача, но ему лень напрячься, подумать и расписать условие нормально.
Лично моё мнение, что и в 1-ом и во 2-ом случаях ни в коем разе нельзя помогать автору темы. В первом случае, думаю, это очевидно. А во втором случае, помогая, мы поощеряем умственную лень и отсутствие культуры задания вопросов.
--------------------
|
|
|
|
|
Jan 2 2018, 22:51
|
Местный
  
Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334

|
Цитата(des333 @ Jan 3 2018, 00:19)  ни в коем разе нельзя помогать автору темы Так Вы, насколько мне помниться, и не "помогали"? Тогда чего так возбудились? P.S. И сотрите своё хамство, флуд и "переходы на личности" пока я не обратился к модераторам
Сообщение отредактировал Студент заборстроительного - Jan 2 2018, 22:53
|
|
|
|
|
Jan 3 2018, 12:41
|
Местный
  
Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334

|
Цитата(krux @ Jan 2 2018, 22:55)  дело в том что я был в подобной ситуации, и для того чтобы задача легла на архитектуру плис её пришлось переписывать трижды. Уточняя "мелочи" в ТЗ, которые превращались в жирные кляксы, перечеркивая уже проделанную работу. Ну а я то причем? Не я же Вам ТЗ писал. Да и в этой теме не стоит задача проработать ТЗ вплоть до мельчайших деталей реализации. Здесь обсуждается сама концепция, архитектура. Возможно ли её реализовать на одной ПЛИС или нет.Ну если Вам трудно мыслить абстрактно, то давайте к конкретике (пример вымышленный /но все же он передает то, чего в реале я хотел бы получить/, поэтому обсуждение "для чего оно нужно?" давайте оставим "за кадром"). Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Приемник и передатчик никак не синхронизируются между собой и с узлами. Узлы в ПЛИС также работают совершенно независимо от других узлов, 10G-приемника и 10G-передатчика Каждый просто ТУПО делает свою работу не взирая на то, в каком состоянии находятся данные. Теперь. Когда есть конкретика Вы можете оценить сложность реализации такого проекта? Если сильно утрировать, вся система с 1000 устройств на одной стороне 10G эзернет кабеля и 1000 узлов ПЛИС на другой должна работать также, как 1000 удаленных устройств подключенных 1000 кабелями каждый к своему микроконтроллеру. Т.е. вся затея служит для того, чтобы не "тащить" 1000 кабелей и не использовать 1000 микроконтроллеров, а обойтись одним кабелем, ПЛИСиной и 10G приемопередатчиками на обоих сторонах кабеля
Сообщение отредактировал Студент заборстроительного - Jan 3 2018, 12:33
|
|
|
|
|
Jan 3 2018, 13:32
|
Местный
  
Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653

|
Цитата(Студент заборстроительного @ Jan 3 2018, 15:41)  Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Такая задача имеет решение. Но для её решения не нужно 1000 узлов. Ядро 10Gb ethernet выдаёт обычно 64 бита на частоте ~156Мгц. Далее XOR с константой, запись в промежуточный регистр и вывод на ядро передатчика в том же виде (64 бит ~156Мгц). Глубина конвейера - 1 такт, частота работы ~156Мгц. Просто немного смешно. Это такая пушка по воробьям))
Сообщение отредактировал Inanity - Jan 3 2018, 13:34
|
|
|
|
|
Jan 3 2018, 14:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Inanity @ Jan 3 2018, 16:32)  ... Просто немного смешно. Это такая пушка по воробьям)) Невнимательно читаете к сожалению столь немногочисленные и неоднозначные условия задачи - отсюда такие поспешные и "смешные" выводы. А TC то и обрадуется. Удачи! Rob.
|
|
|
|
|
Jan 3 2018, 17:40
|
Местный
  
Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334

|
Цитата(Inanity @ Jan 3 2018, 16:32)  Такая задача имеет решение. Но для её решения не нужно 1000 узлов. ... Просто немного смешно. Это такая пушка по воробьям)) Вот опять "снова здорова". Да плевать, что "из пушки по воробьям", плевать, что можно НЕ решать такую задачу. Плевать что с помощью разных хаков можно свести задачу к меньшей размерности. ПЛЕВАТЬ. Мне нужно решить задачу именно так, как я указал в заголовке. Чтобы "обкатать" саму архитектуру И потом, я же сказал, что пример с "ХОR" вымышленный. В реальности же каждый узел ПЛИС будет целым микроконтроллером и обработка дампа будет описываться достаточно большой прогой на Си. Но с точки зрения идеологии построения системы, с точки зрения архитектуры НЕ ВАЖНО, будет ли "программа обработки" просто XOR-ом или большой программой. Это понятно? Я сначала думал для обеспечения "параллелизма" поставить 1000 маленьких микроконтроллеров. Но потом вспомнил, что можно создать эти самые микроконтроллеры внутри одной ПЛИС Теперь понятно "откуда ноги растут"?
Сообщение отредактировал Студент заборстроительного - Jan 3 2018, 17:41
|
|
|
|
|
Jan 3 2018, 18:51
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(Студент заборстроительного @ Jan 3 2018, 20:40)  Теперь понятно "откуда ноги растут"? Понятно что ноги пустились вскачь! Еще на первой странице Вам сказали - более или менее реальную задачу надо обсчитать от начала до конца: что с какой скоростью откуда загружается, что как потом представляется внутри ПЛИС передатчика, как потом восстанавливать данные в ПЛИС приемнике, сколько на это будет затрачено времени, ресурсов и т.д. И в итоге, что будет в выходном потоке куда и как идти. Теперь у Вас появились микроконтроллеры, которые Вы хотите запихнуть в ПЛИС или заменить микроконтроллеры узлами ПЛИС, не суть важно. Нет, так можно сварить только одну кашу - в голове. Разгребайте авгиевы конюшни, рисуйте структуру своей гипотетической системы, расставляйте времена, порядок представления данных, желаемый вид в оконечном устройстве и тогда лишь преступайте к вопросам о "влезет не влезет?".
|
|
|
|
|
Jan 3 2018, 18:52
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 4-11-15
Пользователь №: 89 174

|
Цитата(Студент заборстроительного @ Jan 3 2018, 17:40)  Вот опять "снова здорова"... Ну на самом деле информации у Вас уже достаточно чтобы самому двигать дальше. Trade off у вас такой. С одной стороны данные идут потоком 10гиг в секунду, с другой стороны чем больше байт приходится на один модуль и чем больше модулей, тем больше у модуля времени до того, как вывалится новая порция данных. Из чего можно смело строить архитектуру. Сложность алгоритма вам известна,скорость вычисления тоже, следовательно время затрачиваемое блоком на обработку известно. Вот это время и будет той самой константой, в течение которой данные не должны обновляться. Пример расчета. Скажем время алгоритма T, число байт B, число модулей N = T*1e10/(B*8) В цифрах, пускай алгоритм занимает T = 2мкс, число байт B = 256. N = 2e-6*1e10/(256*8) = 2e-6*1e10/2e3 = 1e-6*1e10*1e-3 = 10 модулей... хи хи. Что такое 2 мкс, для сравнения Microblaze имеет производительность 400MIPS на Kintex, то есть за 2мкс он выполнит 800 команд.
Сообщение отредактировал twix - Jan 3 2018, 19:02
|
|
|
|
|
Jan 3 2018, 19:05
|
Местный
  
Группа: Участник
Сообщений: 317
Регистрация: 16-09-17
Пользователь №: 99 334

|
Цитата(Александр77 @ Jan 3 2018, 21:51)  Теперь у Вас появились микроконтроллеры, которые Вы хотите запихнуть в ПЛИС А что такого? Это было очевидно с самого начала. И потом. Я читал в интернете, что сейчас любой даже подросток-ПЛИСовод сможет реализовать в ПЛИС кучу параллельно работающих микроконтроллеров. Что это задача даже не мидл-уровня. А ниже. Почему Вас так поразило, что каждый "узел" ПЛИС - будет микроконтроллером? Не понимаю Или это для Вас ПРИНЦИПИАЛЬНО важно, чем будет узел?  Цитата(Александр77 @ Jan 3 2018, 21:51)  рисуйте структуру своей гипотетической системы Вот она  Цитата(Александр77 @ Jan 3 2018, 21:51)  расставляйте времена Расставил Цитата(Студент заборстроительного @ Jan 3 2018, 15:41)  Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Приемник и передатчик никак не синхронизируются между собой и с узлами. Узлы в ПЛИС также работают совершенно независимо от других узлов, 10G-приемника и 10G-передатчика Каждый просто ТУПО делает свою работу не взирая на то, в каком состоянии находятся данные.
|
|
|
|
|
Jan 3 2018, 19:14
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(Студент заборстроительного @ Jan 3 2018, 22:05)  Или это для Вас ПРИНЦИПИАЛЬНО важно, чем будет узел? Лично для меня - не принципиально, так как я не исполнитель. Для Вас должно быть принципиально. Очень много зависит от того, что за "микроконтроллер" Вы попытаетесь создать в количестве 1000 штук в одной ПЛИС. Если это будет Ваш конечный автомат, занимающий 300 ЛЭ - да не вопрос - ищите ПЛИС. А если стандартный ниос\микроблейз тут есть большущие сомнения в количестве реализуемых микроконтроллеров.
|
|
|
|
|
Jan 3 2018, 19:36
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Цитата(Александр77 @ Jan 3 2018, 22:14)  Лично для меня - не принципиально, так как я не исполнитель. Для Вас должно быть принципиально. Очень много зависит от того, что за "микроконтроллер" Вы попытаетесь создать в количестве 1000 штук в одной ПЛИС. Если это будет Ваш конечный автомат, занимающий 300 ЛЭ - да не вопрос - ищите ПЛИС. А если стандартный ниос\микроблейз тут есть большущие сомнения в количестве реализуемых микроконтроллеров. Microblaze MCS несколько сотен можно размножить на частоте 200 MHz в 325t. В крупной Плис тысячу. Троллю желаю расширить кругозор, скучно стало читать.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|