Pull to refresh
9
0
Быстров Сергей А. @ajrec

Пользователь

Send message

Автор не написал самого главного. Вроде в фильме "Волк с Уолл стрит" четко сказано: Куда пойдет цена не знает никто. Кто поймет эту простую истину - разбогатеет. Лет 25 живу исключительно доходами с биржи. Начальный капитал - задротная хрущеба в СПБ. Пару раз были зафиксированные потери в полмиллиона д. И приобретения таких объемов были. Но это не было катастрофой. Удвоение капитала каждые 3 года - вполне заурядный график. Самое главное - никаких аналитиков, никаких отчетов. Все в цене. Которую смотрю 2 раза в день: как проснусь и после закрытия. Бывают и кризисы, в этом году рекордных доходов явно не будет. Но в прошлом году, к примеру, помог больным детям тысяч на 160.

А маркет-мейкер о своей кровожадности явно не договорил. Кто-то же видит хомячьи стопы и маржин-коллы. И сознательно гонит туда цену.

Даже сейчас, после катастрофического падения, она выше уровня 2008.

По поводу большего быстродействия комбинационных схем в dual-rail, нежели чем в NCL (второй абзац от 25.3) Вы преувеличиваете (про себя я тут даже не комментирую). Параллельный индикатор это хорошо, но смотреть надо по итогу. У меня перед глазами схема переноса сумматора от Мараховского (оптимизированная, на И-ИЛИ-НЕ). D-R дает результат за 4 переключения (С-элемент тестера - 2 переключения). Не самый лучший вариант NCL (DIMS) дает те же 4 переключения (элемент ИЛИ - 2 переключения). А реализация на элементах библиотеки NCL - вообще всего 2. Затем у вас, у каждого, своя история: регистры, глобальные С-элементы или глобальные индикаторы. Но это все уже без меня.

Как я понял, С-элемент (и ему подобные) принято считать наиболее уязвимыми в отношении шума. На мой взгляд последствия от ложного импульса для С-элемента не так катастрофичны, как принято считать. Рассмотрим схему (модуль) на С-элементах. NCL элемент по сути функционально является совокупностью С-элементов, чьи выходы соединены с общим элементом ИЛИ. Для переключения С-элемента одного ложного импульса недостаточно, нужно чтобы на остальных входах уже были единицы. Следовательно ложное срабатывание С-элемента может произойти только в фазе данных. А вероятность реакции на ложный импульс для 4-входового элемента 1/4. При этом в половине из этих случаев переключение С-элемента будет не ложным, а преждевременным. То есть вероятность ложного переключения 1/8. Далее, С-элемент - внутреннее дело модуля. Для внешней среды существенно выставляемое значение выходной функции. Если функций две, то вероятность совпадений их значений на обоих входных наборах (С-элемент по сути отлавливает свой входной набор) 1/4. То есть, вероятность выставления ложного значения функции меньше 10 процентов. Но при этом и истинное значение функции также будет выставлено. Два значения функции - ситуация недопустимая и ее можно отлавливать аппаратно. Но и это не все. Ложное переключение С-элемента (как и истинное) вызывает переключение выходного сигнала ответа в модули - источники данных. Это вызовет сброс входных данных в 0, что приведет к переключению в 0 обоих С-элементов (истинного и ложного). Причем схема будет ждать переключения обоих. Таким образом, пострадавший модуль к следующей итерации придет в нормальное состояние. Другое дело, что ошибка (выставление двух значений функции) практически гарантированно распространится во все модули-приемники. Но, тем не менее, все они к следующей итерации восстановят свое нормальное функционирование.

Если предположить, что ложный импульс может быть только единицей, то переход к дуальной библиотеке может изменить картину. В этом случае опасность состоит в преждевременном сбросе выходного значения. Это грозит прерыванием волны вычислений в текущей итерации. При этом все модули будут работать в штатном режиме, но отследить такую ситуацию уже практически невозможно.

Все выкладки выше носят предварительный характер, но все подробно обсчитать наверно не так уж трудно.

DI вещь хорошая, но не осуществимая. DI интерфейс это не сложно, да практически и бесплатно. DI комбинационная схема (модуль) это фикция (кому-то что-то показалось). Если не будет изобретен элемент с 2 (точнее 3) выходами. SI комбинационная схема предел мечтаний, к тому же реально. Сказки блочников про DI из того же разряда. Интерфейс - да, внутренности блоков - нет. Так что проблема надуманная.

Про crosstalk толком ничего не скажу, первый раз об этом услышал. Могу, кроме ликвидации индикаторов, обратить внимание на такой момент. Обычно комбинационная схема строится как логическая функция. И, если функция достаточно сложная, комбинационная схема может реализовывать не одно поведение, одно из которых может завести схему не туда. Здесь комбинационная схема строится как поведение. В результате она реализует единственное предопределенное поведение, что избавит от нежелательных эффектов. В синхронном дизайне такое тоже могло бы быть полезно.

В догонку. Вы выигрываете у NCL за счет модернизации управления, а я у Вас - за счет полного отказа от внешнего управления и использования NCL библиотеки. Это тот ребенок, которого выплескивать не надо.

Наконец дождался толкового комментария, как манны небесной. Алексей, приветствую.

По первому недостатку дополню. В NCL пайплайнах также используется ускоренная передача данных (без сигнала req). Но там это не система, а исключение. К тому же я не претендую на новизну такого ускоренного интерфейса (я просто постарался разложить это явление по полочкам). Это как со SI: жить с этим можно, но ахинея жуткая. К тому же я как раз не говорю, что изобретаю что-то новое (кроме самого метода). Я беру конструктор с уже готовыми деталями и собираю их так, что остается много лишнего.

Второй момент. Да, идея использовать инвертирующие элементы кажется привлекательной. Но я сам с этим экспериментировал, в литературе смотрел. Решение на С-элементах всегда лучше, может не намного, но по всем параметрам. Пример такой же иллюзорной попытки оптимизации это считывание данных по обоим фронтам сигнала req. Я, кстати не рассматриваю С-элементы, как средство запоминания состояний. Просто их использование дает лучшие решения. В качестве сравнения я предлагаю обращать внимание только на последний пример (вернее предпоследний, последний это NCL схема). Все предшествующие примеры это отражение этапов развития метода, не более.

Кодирование особая тема. Вы сами должны помнить, что я настаивал на необязательности его. Да, схемы без кодирования делать можно. Но, тогда надо возвращать сигнал req. А также либо использовать входные инверторы (чего Варшавский не одобряет), либо отказываться от SI (т.е. от независимости от задержек элементов), либо сооружать схему переходник (чего делать не умеют), на выходе которой будет тот самый закодированный сигнал. Если сравнивать управление и вычисления, то главное отличие управляющих схем в том, что смена значений сигналов в них заранее предопределена (1, 0, 1, 0, ...). Использование кодирование в этом случае - напрасная трата ресурсов. В арифметике очередность смены значений заранее не предугадать. Поэтому и нужен переход через спейсер. Можно принудительно отказаться от кодирования, но оно все равно так или иначе проявится. И на это потребуются дополнительные ресурсы.

NCL можно разложить на 4 составные части: библиотека, комбинационные схемы, управление с регистрами и миф о DI. Сначала о последнем. В библиотеку не лезем, это внутренняя кухня. Управление с регистрами, да, DI. Но в этом нет особого подвига, поскольку является следствием параллельного интерфейса, а также (по сути) реализацией функции в однозначной системе счисления (это собственно управление). В том, что я предлагаю, параллельный интерфейс гарантирует DI вне модулей. А вот комбинационные схемы напичканы нарушениями DI по уши, как и обычная управляющая схема (не арифметическая). Фант скромно говорит об орфанах, как об исключениях, но это система. Вот почему делать управляющие схемы методами NCL расточительство.

Но это, ладно, PR. Вот, что действительно в NCL плохо, так это управление с регистрами. От этого надо избавляться напрочь. Именно за счет этого Вы и выигрываете у NCL. А вот библиотека и, как следствие, комбинационные схемы, на мой взгляд, наиболее эффективное решение (для арифметики). Избыточность NCL связана с управлением и регистрами, а также применением метода к синтезу управляющих схем.

Я далек от мысли меряться комбинационными схемами на таком избитом примере, как сумматор. Хотя на более сложном примере можно было бы попробовать. Но не это главное, а избавление от всякого внешнего управления. Вы можете представить любое удачное решение и я, не особо мудрствуя, за счет избавления от индикатора (путем встраивания ответов в комбинационную схему) сделаю лучше. В плане быстродействия сигналы ответа бесплатны. А по транзисторам (за счет гибкости), мягко говоря, не хуже индикаторов.

И последнее. Если Вы скажете, что индикатор есть хорошо, можете бросить в меня камнем (а я спрячусь).

Если не опираться на событийные модели (а практически никто и не опирается), наверно так и есть. Проверять готовую схему действительно сложно. Если сначала сконструировать поведение, перед глазами сразу будет то, что схема будет делать.

Подумал, да ладно, а сколько синхронщики с разводкой дрюкаются, с отлавливанием глюков. И это ведь не какие-то случайности, это система.

Ну, да, так и есть. Только физическая внешняя среда не обязана дожидаться ответа (например нажатие кнопки).
Асинхронная схема осуществляет взаимодействие с внешней средой (другими схемами) по принципу запрос-ответ (хэндшейк). Асинхронная схема сообщает внешней среде об окончании переходных процессов. После этого внешняя среда изменяет входы. Количество параллельных или вложенных хэндшейков не ограничено.
При изменениях на входах асинхронная реагирует сразу, синхронная ждет соответствующего фронта тактового сигнала. Благодаря этому в синхронных позволены случайные выбросы, главное, чтоб в итоге установилось правильное состояние. В свою очередь это закладывает в процесс проектирования мучительный этап отладки. При постоянных входах асинхронная стоит, в синхронной молотит тактовый сигнал.
Да это был шутливый ответ. Мне показалось (вроде напрасно), что user_man слегка меня троллит.
Какой (уж извините) мне кажутся посторонние подходы. Про себя я так не думаю. То что схема монструозная, так и задание не маленькое (картинка есть). Сложение с ускоренным переносом плюс копирование. К тому же базис реализации экстремальный. На 3-входовых элементах было бы процентов на 40 меньше.
«Мир делает» двухфазные схемы. А они действительно, как минимум, не имеют преимущества перед синхронными схемами по скорости и объему. Есть преимущество по энергопотреблению, но и в этом плане потенциал далеко не исчерпан. Индикатор — хоть и умный, но все-таки тактовый сигнал.
При равных условиях (одинаковая элементная база) то, что я предлагаю будет сравнимо с синхронным по площади и лучше по скорости (хотя бы за счет отсутствия простоя в ожидании такта). Я сравнивал свои схемы с иным подходом (не самым худшим, однофазным) на полусотне бенчмарков. Мои схемы на 40 % меньше. При этом иной подход позволял себе не только 2-входовые элементы, но и 3, 4. А также входные инверторы и С-элемент.
Все дело в том, что «мир идет» не тем путем. Он исследует проблему через состояния, а не через события. При этом даже корифеи признают, что событийные модели эффективнее.
Для user_man: у Вас ценное качество — даже при минимуме входных данных, Вы пытаетесь выстроить логичную концепцию. Задавайте вопросы, только адаптируйте новую информацию.
Сдаюсь, такое на хрен никому не нужно.
Все попроще. Асинхронные схемы делают то же, что и синхронные, только без использования тактового сигнала. Единственное, что дает преимущество синхронным схемам по некоторым параметрам, это допустимость случайных выбросов в течение переходного процесса. Если лишить синхронные схемы этой вольности (что можно сделать с помощью представленного подхода), асинхронные схемы потенциально получают заведомое преимущество, поскольку им не надо обслуживать тактовый сигнал. Раскрытием этого потенциала я и занимаюсь. То что Вы называете «мир научился», я называю дискредитацией асинхронного подхода. Поскольку мир научился делать заведомо избыточные схемы, имеющие лишь небольшое преимущество по энергопотреблению. И называет это платой за асинхронность.
Про полумодулярность я писал в предпоследнем посте. Связи между полумодулярностью и независимостью от задержек нет. Независимость от задержек это свойство модели, а не поведения. Без труда можно сделать схему полумодулярную, но зависящую от задержек.
Миллиард состояний это только начало. Из этого миллиарда перебираются все возможные пары для потенциального объединения в более крупные кубы. Полученные объекты подвергаются такой же процедуре. Количество объектов множится экспоненциально. Затем с такой же скоростью начинают сокращаться, но алгоритм до этого момента не доживает. При работе с графом перебор не нужен. Экстремаль вычисляется за один проход по графу. Отсюда и оценка сложности алгоритма.
Про нейросети надо будет поинтересоваться, возможно что-то похожее.
Свежий взгляд полезен, поскольку асинхронное сообщество зациклено на состояниях, не замечая преимуществ работы с событиями.
Исследуемая проблема специальными знаниями не перегружена. В свое время мой руководитель ввел меня в курс дела буквально за полчаса. Этого хватило, чтобы сразу начать двигаться вперед.
Суть проблемы. Имеем двоичный вектор. Координаты вектора принимают значение 0 или 1. Координаты принято называть сигналами. Исследуется процесс изменения значений сигналов. Изменение значения сигнала принято называть переключением или событием. Процесс изменения значений сигналов называют поведением. Поведение описывается на языке STG. О языке можно почитать здесь. Но вполне достаточно знать, что STG это интерпретированная сеть Петри, где каждому переходу в соответствие ставится какое-то событие. Основное требование: между двумя переключениями одного знака одного и того же сигнала обязательно должно быть переключение того же сигнала противоположного знака.
Поведение (описанное на языке STG) — это исходное задание. Задача: построить систему логических функций, которая реализует данное поведение. При этом каждому сигналу ставится в соответствие одна функция. Логическая функция определяется на множестве всех возможных значений двоичного вектора. Каждое конкретное значение вектора называется состоянием.
Логическая функция для сигнала определяется так. Вводится понятие возбуждения сигнала. Сигнал возбужден, если (применительно к языку описания) созданы условия для срабатывания перехода (события, переключения данного сигнала), но сам переход еще не сработал. При срабатывании перехода (переключении сигнала) возбуждение снимается. Итак логическая функция сигнала равна 1 для тех состояний, в которых сигнал равен 1 и не возбужден или же сигнал равен 0 и возбужден. Значение 0 определяется аналогично.
Казалось бы задача тривиальная: по таблице истинности вычислить минимальную функцию. Но есть 2 «НО».
1. Предел для машинных вычислений 20-30 сигналов («взрыв состояний»).
2. Чем сложнее функция, тем менее реальный физический логический элемент соответствует модельным представлениям. Современные технологии подошли к порогу необходимости использования только минимальных двухвходовых элементов.
Первая проблема решается с помощью вычисления функций непосредственно по графу (STG). Эта публикация вводная часть. Сложность вычисления одной функции пропорциональна (приблизительно) квадрату от количества событий в графе.
Вторая проблема решается добавлением новых координат (сигналов) в двоичный вектор и соответственно в STG. При этом проекция полученного STG на первоначальные сигналы совпадает с исходным заданием. Этому посвящены другие посты.
Данная тематика используется применительно к синтезу самосинхронных схем, поскольку в STG заложен неограниченный промежуток времени на переключение возбужденного сигнала и соответственно этим же свойством обладают полученные логические функции (логические элементы в схеме).
Согласен. На более простой модели в первых частях пытался писать не формально. Параллелизм, как мне кажется, без формализмов будет еще менее понятен.
А можно сказать так: в тупик зашло двухфазное направление?

Information

Rating
Does not participate
Location
Сочи, Краснодарский край, Россия
Date of birth
Registered
Activity