Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»
Предисловие: Меня зовут Виктор, и я сотрудник Института Проблем Информатики РАН. В нашем отделе ведутся две разработки: рекуррентный процессор и самосинхронная схемотехника. Сам я занят первым, но не смог пройти мимо Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем», т.к. Л.П. Плеханов работает у нас и данная тематика и «внутренняя кухня» мне близки и знакомы. Я попросил Леонид Петровича подготовить ответ, который с удовольствием сегодня опубликую.
Для справки: У коллектива, в котором работает Плеханов Л.П. довольно много наработок по части самосинхронной схемотехники. Более 20 патентов по самосинхронике, включая международные патенты (США).
Также решения являются не только теоретическими, но и практическими. Например, буквально недавно вышла книга «Библиотека функциональных ячеек для проектирования самосинхронных полузаказных микросхем серий 5503 и 5507». САПР «Ковчег» позволяет проектировать самосинхронные схемы в базисе БМК серий 5503 и 5507.
Кроме того, уже выполнен по технологии 65 нм самосинхронный делитель и блок FMA для процессора КОМДИВ-64. В силу разных обстоятельств данные труды пока не имеют заслуженной на мой взгляд огласки, и посему лично я надеюсь, что этот первый пост нашего отдела ИПИ РАН не будет последним и в ближайшее время мы расскажем публике о самосинхронной схемотехнике подробнее. Ну а пока, передаю слово Леониду Петровичу.
Вообще-то, если появляется компетентная рецензия, то это благо для автора. Но здесь другой случай.
1. Общее впечатлениеАвтор замечаний (далее — Рецензент), находясь в плену своих событийных представлений, непоколебимо считает, что и все другие исходят (или должны исходить) из того же.
А с какой стати?
Поэтому Рецензент ничего не понял в книге — ни идеи, ни подхода, ни результатов. Зато замечания написаны с большой самоуверенностью.
2. НапомнюСобытие — это переключение сигнала — выхода элемента из 0 в 1 и из 1 в 0. В событийном подходе надо описывать все эти переключения при работе схемы. Ясно, что чем больше и сложнее схема, тем больше переключений. То есть событийный подход не позволяет иметь дело с большими схемами — разве до 10-20 элементов. Далее уже тысячи, сотни тысяч и т.д. переключений.
Это главный недостаток событийных методов. Другой, менее очевидный, но не менее важный — замкнутость всех событийных диаграмм. Без нее ничего сделать нельзя. В функциональном подходе элементы изначально описываются логическими функциями выход от входов вида Y=F(Xi) и никак иначе. Событийных описаний в нем нет. В этом и новизна функционального подхода, позволившая иначе, чем прежде, рассмотреть наши схемы и получить новые результаты.
Смысл функционального подхода:
а) Отказаться от событийного описания. б) При составлении (проектировании) схемы рассматривать разомкнутые схемы. То есть замыкать схему на самом конечном этапе ее использования. в) Проектировать иерархически. Это написано в предисловии. В анализе и синтезе нет событийных описаний. Как можно было не заметить этого в книге — не понимаю. Здесь можно было поставить точку, так как бессмысленно обсуждать что-то при разных подходах.
Но на ряд некоторых высказываний общего характера все же следует ответить.
3. О терминологииДа, есть устоявшийся термин SI, появившийся более 50 лет назад. Но он непонятен: о какой скорости идет речь? Возможно поэтому термин «самосинхронный» ввел В.И.Варшавский, как более понятный: схема сама себя синхронизирует.
По существу он эквивалентен SI. Я же конкретизировал определение с целью дальнейшего развития функционального подхода. Это обычный путь, например, в математике: дал определение и построил на нем теорию (вспомним Лобачевского).
Любой автор имеет неотъемлемое право вводить свои определения и строить на них свои конструкции. Например, Маллер ввел определение полумодулярной схемы. Теперь «отказобезопасность» — термин из ГОСТа. Означает, что схема останавливается (прекращает работу) сразу после появления определенного отказа, например, сгорел элемент. Оба свойства в схеме обеспечиваются по-разному: первое — дисциплиной изменения входов элементов в двух фазах работы, второе — индикацией сигналов. Так что «Второй пункт» НЕ ЕСТЬ следствие первого. Обсуждаемые схемы относятся к классу асинхронных. А их принадлежность к разновидностям этого класса — вопрос формальный, не считаю важным тут ломать копья.
Интересно, что для разработчика практических схем (или практического разработчика схем) ближе и понятнее: те два упомянутые свойства или полумодулярность, необходимая в событийном подходе? Решает разработчик.
4. О проблемах событийного описанияВ книге оно не используется, но все же.
Неограниченный базис реализации — это не проблема, а рабочий инструмент. Ограниченный базис 2И-НЕ, 2ИЛИ-НЕ, к которому призывает Резензент, нигде не используется (кроме теории) из-за максимальных затрат в транзисторах. Иначе зачем существуют обширные базовые библиотеки в 200, 300 и более элементов, можно было бы иметь их всего два.
«При этом получаются вот такие ужасающие штуки
Такие элементы давно никого не ужасают, подобного полно в базовых библиотеках.
А экспоненциальная сложность в событийном подходе — это да, проблема, которую не объехать, не спасают ни диаграммы изменений, ни Петри, ни STG. И это не «сложность вычисления логических функций», коих нет, а громоздкость представления событий — переключений сигналов. Эта громоздкость и порождает огромный объем необходимых компьютерных вычислений. К тому же обязательная замкнутость всех событийных диаграмм с вовлечением внешней среды, учет которой — лишний груз.
Обычно в событийном подходе описывают процесс (! а не функции) переключений для одного начального состояния. А где все другие состояния, которые должны быть пройдены для гарантии полумодулярности?
Надо бы открыть большую тайну Рецензенту: существует т.н. булева алгебра, по которой также можно вычислять функции.
Цитата о событийном описании:
Какие предрассудки? Разве нет трудностей? Попробуйте составить событийное описание хотя бы 4-разрядного АЛУ или счетчика, не говоря уже о 8, 16 и т.д. разрядах, с прохождением всех состояний и внешней средой. А что такое иерархическое событийное описание? Если оно есть, то пусть меня поправят. Кроме того, столь пренебрежительное отношение к работам В.И.Варшавского с группой неприлично — неприлично не знать этих работ.
Если Маллер доказал существование обсуждаемых схем и дал метод анализа, то В.И.Варшавский с группой разработали методы их создания, в том числе метод диаграмм изменений, которым пользуется Рецензент (см. следующуя цитату). Уже одно то, что у них 150 изобретений, должно вызывать уважение. Впрочем, все это есть в книге.
Это набор заблуждений Рецензента — опять событийное первенство. Что такое «метод Маллера» в применении к событийному описанию? Маллер исследует поведение схем в событийном описании (диаграммы переходов) и выявляет конфликтные переходы, нарушающие полумодулярность. Это чистый АНАЛИЗ.
Далее, синтез по диаграммам изменений разработан В.И.Варшавским с группой как метод синтеза. При чем здесь метод анализа Маллера? И при чем здесь вторичность, надстройка и вообще все утверждения в той цитате? См. п.2 ответа.
Именно, и в книге детально прописана эта дисциплина.
Здесь ошибка. Это структурные понятия. Континуатор структурно — через другие элементы — следует за инициатором.
5. Анализ самосинхронностиРецензент совсем не видит одой из главных проблем проектирования самосинхронных (или, что то же, SI) схем — анализа.
Разработчик таких схем (практик) делает так: — собирает фрагмент схемы, — анализирует на самосинхронность/полумодулярность, — из корректных фрагментов собирает схему на следующем уровне, — опять анализирует и т.д.
То есть анализ — это рабочий инструмент проектирования практических схем. А событийный синтез по диаграммaм изменений, Петри и STG — это удел маленьких схем — до 10-20 элементов. Далее — экспонента. В нашей практике для конкретных фрагментов событийный анализ длился и 4 суток, и 7 суток, и это не предел. И только для одного начального состояния, а не для всех, как надо!
Функциональный подход, как описано в книге, радикально решает проблему: анализ по всем состояниям любой глубины иерархии, реально было до 8-10, длится считанные секунды или минуты.
6. Судя по замечаниям, Рецензент не видит проблем в событийных описаниях. Рискну предположить, что он не разрабатывал достаточно больших схем и не сталкивался с их проблемами. А все проблемы — в больших схемах.
7. Небольшая ссылкаОдна из синтезированных схем Рецензента на сайте — C-элемент в двухвходовом базисе — приведена в классической книге 30-летней давности п/ред В.И.Варшавского «Автоматное управление асинхронными процессами в ЭВМ и дискретных системах», 1986, на рис. 5.27. Неплохо бы для научной этики сослаться на предшественника-классика.