krux 8 2 января, 2018 Опубликовано 2 января, 2018 · Жалоба с таким подходом - НЕТ. дело в том что я был в подобной ситуации, и для того чтобы задача легла на архитектуру плис её пришлось переписывать трижды. Уточняя "мелочи" в ТЗ, которые превращались в жирные кляксы, перечеркивая уже проделанную работу. 2 ТС умеете работать с x86 - берите DPDK в руки. это если нужен практический результат. если практический результат пофиг и вы пишете кандидатскую, ничего не зная про предметную область плис - вас на защите как катком раскатают. Нужно парсить именно в 1000 потоков и данные поступающие со скоростью 10 Гб/с. поясняю: парсинг в плис - это не 1000 раз сравнить один байт с "чем-то". для понимания в чем эффективность ПЛИС - нужно окунуться с головой в поиск по бинарному дереву, когда речь идёт не про сравнение строк, байтов ли чего ещё, а про сравнение СЛЕДУЮЩЕГО ПРИХОДЯЩЕГО БИТА. блин. нового решения по поиску исходя из сравнения очередного бита. за счет этого собственно производительность и достигается. в том числе, если необходима оперативность по передаче команд управления - то это делается до создания системы, и учитывается при создании протокола взаимодействия, но не после. а сейчас я вижу как производится попытка впихнуть некое "распарсивание" без понимания последствий. таким образом, налицо все попытки "скрыть это дерьмо" за какой-нибудь ПЛИС, которая будет никому не понятна, кроме тебя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 2 января, 2018 Опубликовано 2 января, 2018 · Жалоба Вы думаете я совсем дурак? Вы думаете, что я просто так написал, что даже i7 захлебнётся от такого потока? Да ладно Вам. Давайте на чистоту -- судя по тому, как Вы описали свою задачу в этой теме, Вы вряд ли достаточно компетентны, чтобы знать, что может обработать современный i7. Поэтому коллеги и интересуются у Вас конкретными исходными условиями задачи. Вы зря стараетесь меня "выудить" у меня детали ноу-хау нашей системы управления и "развести", чтобы я забесплатно устроил Вам ликбез по современным АСУТП. Хотя у меня ест чем возразить и дополнить по каждому из перечисленных Вами пунктов. Но я "калач тёртый". И на "слабо рассказать?" не ведусь А ноу-хау о том, как обрабатывать в одной ПЛИС сразу 1000 потоков, и читать/писать из общей памяти, значит хотите выудить забесплатно? Ахаха, как говорится, не выйдет :) Что мне реально интересно? Почему достаточно адекватные участники форума, так сказать, "ведутся" на такие темы и пытаются помогать ТС (даже диаграммы рисовать не лень :) ). Просто тут всего 2 варианта: Автор темы тролль и просто решил постебаться Автор не тролль, у него реально есть такая задача, но ему лень напрячься, подумать и расписать условие нормально. Лично моё мнение, что и в 1-ом и во 2-ом случаях ни в коем разе нельзя помогать автору темы. В первом случае, думаю, это очевидно. А во втором случае, помогая, мы поощеряем умственную лень и отсутствие культуры задания вопросов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 2 января, 2018 Опубликовано 2 января, 2018 · Жалоба Автор темы тролль и просто решил постебаться 100% помогая, мы поощеряем умственную лень и отсутствие культуры задания вопросов. 100% повторно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Студент заборстроительного 0 2 января, 2018 Опубликовано 2 января, 2018 (изменено) · Жалоба ни в коем разе нельзя помогать автору темы Так Вы, насколько мне помниться, и не "помогали"? Тогда чего так возбудились? P.S. И сотрите своё хамство, флуд и "переходы на личности" пока я не обратился к модераторам Изменено 2 января, 2018 пользователем Студент заборстроительного Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 2 января, 2018 Опубликовано 2 января, 2018 · Жалоба Так Вы, насколько мне помниться, и не "помогали"? Тогда чего так возбудились? P.S. И сотрите своё хамство, флуд и "переходы на личности" пока я не обратился к модераторам Так я и не собираюсь помогать :) И пытаюсь предостеречь других пользователей -- чтобы не кормили тролля. P.S. Обращайтесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Студент заборстроительного 0 3 января, 2018 Опубликовано 3 января, 2018 (изменено) · Жалоба дело в том что я был в подобной ситуации, и для того чтобы задача легла на архитектуру плис её пришлось переписывать трижды. Уточняя "мелочи" в ТЗ, которые превращались в жирные кляксы, перечеркивая уже проделанную работу. Ну а я то причем? Не я же Вам ТЗ писал. Да и в этой теме не стоит задача проработать ТЗ вплоть до мельчайших деталей реализации. Здесь обсуждается сама концепция, архитектура. Возможно ли её реализовать на одной ПЛИС или нет. Ну если Вам трудно мыслить абстрактно, то давайте к конкретике (пример вымышленный /но все же он передает то, чего в реале я хотел бы получить/, поэтому обсуждение "для чего оно нужно?" давайте оставим "за кадром"). Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Приемник и передатчик никак не синхронизируются между собой и с узлами. Узлы в ПЛИС также работают совершенно независимо от других узлов, 10G-приемника и 10G-передатчика Каждый просто ТУПО делает свою работу не взирая на то, в каком состоянии находятся данные. Теперь. Когда есть конкретика Вы можете оценить сложность реализации такого проекта? Если сильно утрировать, вся система с 1000 устройств на одной стороне 10G эзернет кабеля и 1000 узлов ПЛИС на другой должна работать также, как 1000 удаленных устройств подключенных 1000 кабелями каждый к своему микроконтроллеру. Т.е. вся затея служит для того, чтобы не "тащить" 1000 кабелей и не использовать 1000 микроконтроллеров, а обойтись одним кабелем, ПЛИСиной и 10G приемопередатчиками на обоих сторонах кабеля Изменено 3 января, 2018 пользователем Студент заборстроительного Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Inanity 1 3 января, 2018 Опубликовано 3 января, 2018 (изменено) · Жалоба Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Такая задача имеет решение. Но для её решения не нужно 1000 узлов. Ядро 10Gb ethernet выдаёт обычно 64 бита на частоте ~156Мгц. Далее XOR с константой, запись в промежуточный регистр и вывод на ядро передатчика в том же виде (64 бит ~156Мгц). Глубина конвейера - 1 такт, частота работы ~156Мгц. Просто немного смешно. Это такая пушка по воробьям)) Изменено 3 января, 2018 пользователем Inanity Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Приветствую! ... Просто немного смешно. Это такая пушка по воробьям)) Невнимательно читаете к сожалению столь немногочисленные и неоднозначные условия задачи - отсюда такие поспешные и "смешные" выводы. А TC то и обрадуется. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Студент заборстроительного 0 3 января, 2018 Опубликовано 3 января, 2018 (изменено) · Жалоба Такая задача имеет решение. Но для её решения не нужно 1000 узлов. ... Просто немного смешно. Это такая пушка по воробьям)) Вот опять "снова здорова". Да плевать, что "из пушки по воробьям", плевать, что можно НЕ решать такую задачу. Плевать что с помощью разных хаков можно свести задачу к меньшей размерности. ПЛЕВАТЬ. Мне нужно решить задачу именно так, как я указал в заголовке. Чтобы "обкатать" саму архитектуру И потом, я же сказал, что пример с "ХОR" вымышленный. В реальности же каждый узел ПЛИС будет целым микроконтроллером и обработка дампа будет описываться достаточно большой прогой на Си. Но с точки зрения идеологии построения системы, с точки зрения архитектуры НЕ ВАЖНО, будет ли "программа обработки" просто XOR-ом или большой программой. Это понятно? Я сначала думал для обеспечения "параллелизма" поставить 1000 маленьких микроконтроллеров. Но потом вспомнил, что можно создать эти самые микроконтроллеры внутри одной ПЛИС Теперь понятно "откуда ноги растут"? Изменено 3 января, 2018 пользователем Студент заборстроительного Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Теперь понятно "откуда ноги растут"? Понятно что ноги пустились вскачь! Еще на первой странице Вам сказали - более или менее реальную задачу надо обсчитать от начала до конца: что с какой скоростью откуда загружается, что как потом представляется внутри ПЛИС передатчика, как потом восстанавливать данные в ПЛИС приемнике, сколько на это будет затрачено времени, ресурсов и т.д. И в итоге, что будет в выходном потоке куда и как идти. Теперь у Вас появились микроконтроллеры, которые Вы хотите запихнуть в ПЛИС или заменить микроконтроллеры узлами ПЛИС, не суть важно. Нет, так можно сварить только одну кашу - в голове. Разгребайте авгиевы конюшни, рисуйте структуру своей гипотетической системы, расставляйте времена, порядок представления данных, желаемый вид в оконечном устройстве и тогда лишь преступайте к вопросам о "влезет не влезет?". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
twix 0 3 января, 2018 Опубликовано 3 января, 2018 (изменено) · Жалоба Вот опять "снова здорова"... Ну на самом деле информации у Вас уже достаточно чтобы самому двигать дальше. 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 команд. Изменено 3 января, 2018 пользователем twix Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Студент заборстроительного 0 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Теперь у Вас появились микроконтроллеры, которые Вы хотите запихнуть в ПЛИС А что такого? Это было очевидно с самого начала. И потом. Я читал в интернете, что сейчас любой даже подросток-ПЛИСовод сможет реализовать в ПЛИС кучу параллельно работающих микроконтроллеров. Что это задача даже не мидл-уровня. А ниже. Почему Вас так поразило, что каждый "узел" ПЛИС - будет микроконтроллером? Не понимаю :laughing: Или это для Вас ПРИНЦИПИАЛЬНО важно, чем будет узел? :05: рисуйте структуру своей гипотетической системы Вот она расставляйте времена Расставил Допустим каждый из тысячи узел ПЛИС просто каждые 10 мкс считывает байт за байтом инфу из своего дампа (64 байта) памяти 10G приемника, делает операцию XOR с некоей константой и записывает в память 10G передатчика. Приемник и передатчик никак не синхронизируются между собой и с узлами. Узлы в ПЛИС также работают совершенно независимо от других узлов, 10G-приемника и 10G-передатчика Каждый просто ТУПО делает свою работу не взирая на то, в каком состоянии находятся данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба https://www.youtube.com/watch?v=4zLfCnGVeL4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр77 1 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Или это для Вас ПРИНЦИПИАЛЬНО важно, чем будет узел? Лично для меня - не принципиально, так как я не исполнитель. Для Вас должно быть принципиально. Очень много зависит от того, что за "микроконтроллер" Вы попытаетесь создать в количестве 1000 штук в одной ПЛИС. Если это будет Ваш конечный автомат, занимающий 300 ЛЭ - да не вопрос - ищите ПЛИС. А если стандартный ниос\микроблейз тут есть большущие сомнения в количестве реализуемых микроконтроллеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 3 января, 2018 Опубликовано 3 января, 2018 · Жалоба Лично для меня - не принципиально, так как я не исполнитель. Для Вас должно быть принципиально. Очень много зависит от того, что за "микроконтроллер" Вы попытаетесь создать в количестве 1000 штук в одной ПЛИС. Если это будет Ваш конечный автомат, занимающий 300 ЛЭ - да не вопрос - ищите ПЛИС. А если стандартный ниос\микроблейз тут есть большущие сомнения в количестве реализуемых микроконтроллеров. Microblaze MCS несколько сотен можно размножить на частоте 200 MHz в 325t. В крупной Плис тысячу. Троллю желаю расширить кругозор, скучно стало читать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться