Предисловие: Меня зовут Виктор, и я сотрудник Института Проблем Информатики РАН. В нашем отделе ведутся две разработки: рекуррентный процессор и самосинхронная схемотехника. Сам я занят первым, но не смог пройти мимо Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем», т.к. Л.П. Плеханов работает у нас и данная тематика и «внутренняя кухня» мне близки и знакомы. Я попросил Леонид Петровича подготовить ответ, который с удовольствием сегодня опубликую.

Для справки: У коллектива, в котором работает Плеханов Л.П. довольно много наработок по части самосинхронной схемотехники. Более 20 патентов по самосинхронике, включая международные патенты (США).

Также решения являются не только теоретическими, но и практическими. Например, буквально недавно вышла книга «Библиотека функциональных ячеек для проектирования самосинхронных полузаказных микросхем серий 5503 и 5507». САПР «Ковчег» позволяет проектировать самосинхронные схемы в базисе БМК серий 5503 и 5507.

Кроме того, уже выполнен по технологии 65 нм самосинхронный делитель и блок FMA для процессора КОМДИВ-64. В силу разных обстоятельств данные труды пока не имеют заслуженной на мой взгляд огласки, и посему лично я надеюсь, что этот первый пост нашего отдела ИПИ РАН не будет последним и в ближайшее время мы расскажем публике о самосинхронной схемотехнике подробнее. Ну а пока, передаю слово Леониду Петровичу.

Пошумим!



Вообще-то, если появляется компетентная рецензия, то это благо для автора. Но здесь другой случай.

1. Общее впечатление


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

А с какой стати?

Поэтому Рецензент ничего не понял в книге — ни идеи, ни подхода, ни результатов.
Зато замечания написаны с большой самоуверенностью.

2. Напомню


Событие — это переключение сигнала — выхода элемента из 0 в 1 и из 1 в 0. В событийном подходе надо описывать все эти переключения при работе схемы. Ясно, что чем больше и сложнее схема, тем больше переключений. То есть событийный подход не позволяет иметь дело с большими схемами — разве до 10-20 элементов. Далее уже тысячи, сотни тысяч и т.д. переключений.

Это главный недостаток событийных методов. Другой, менее очевидный, но не менее важный — замкнутость всех событийных диаграмм. Без нее ничего сделать нельзя. В функциональном подходе элементы изначально описываются логическими функциями выход от входов вида Y=F(Xi) и никак иначе. Событийных описаний в нем нет. В этом и новизна функционального подхода, позволившая иначе, чем прежде, рассмотреть наши схемы и получить новые результаты.

Смысл функционального подхода:

а) Отказаться от событийного описания.
б) При составлении (проектировании) схемы рассматривать разомкнутые схемы. То есть замыкать схему на самом конечном этапе ее использования.
в) Проектировать иерархически.
Это написано в предисловии. В анализе и синтезе нет событийных описаний. Как можно было не заметить этого в книге — не понимаю. Здесь можно было поставить точку, так как бессмысленно обсуждать что-то при разных подходах.

Но на ряд некоторых высказываний общего характера все же следует ответить.

3. О терминологии


Цитата:
«А вот определение самосинхронной схемы:
Самосинхронной схемой (СС-схемой) называется схема, обладающая
двумя свойствами безошибочной работы:
отсутствием гонок при любых конечных задержках элементов;
отказобезопасностью.
Данное определение подразумевает гипотезу о задержках Маллера.
Второй пункт есть следствие первого. А первый пункт не что иное, как определение
давно устоявшегося термина speed-independent (SI).
То есть получается, что самосинхронные схемы это не отдельный класс схем,
а схемы, синтезированные определенным методом, который гарантирует свойство SI.
Таким образом «самосинхронный» это не характеристика класса схем,
а характеристика метода синтеза.»
Да, есть устоявшийся термин SI, появившийся более 50 лет назад. Но он непонятен: о какой скорости идет речь? Возможно поэтому термин «самосинхронный» ввел В.И.Варшавский, как более понятный: схема сама себя синхронизирует.

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

Любой автор имеет неотъемлемое право вводить свои определения и строить на них свои конструкции. Например, Маллер ввел определение полумодулярной схемы. Теперь «отказобезопасность» — термин из ГОСТа. Означает, что схема останавливается (прекращает работу) сразу после появления определенного отказа, например, сгорел элемент. Оба свойства в схеме обеспечиваются по-разному: первое — дисциплиной изменения входов элементов в двух фазах работы, второе — индикацией сигналов. Так что «Второй пункт» НЕ ЕСТЬ следствие первого. Обсуждаемые схемы относятся к классу асинхронных. А их принадлежность к разновидностям этого класса — вопрос формальный, не считаю важным тут ломать копья.

Интересно, что для разработчика практических схем (или практического разработчика схем) ближе и понятнее: те два упомянутые свойства или полумодулярность, необходимая в событийном подходе? Решает разработчик.

4. О проблемах событийного описания


В книге оно не используется, но все же.

Цитата:
«Очевидно, что таких проблем две: не ограниченный базис реализации логических
элементов и экспоненциальная сложность вычисления логических функций.»
Неограниченный базис реализации — это не проблема, а рабочий инструмент. Ограниченный базис 2И-НЕ, 2ИЛИ-НЕ, к которому призывает Резензент, нигде не используется (кроме теории) из-за максимальных затрат в транзисторах. Иначе зачем существуют обширные базовые библиотеки в 200, 300 и более элементов, можно было бы иметь их всего два.

Цитата:
«При этом получаются вот такие ужасающие штуки
image
»
Такие элементы давно никого не ужасают, подобного полно в базовых библиотеках.

А экспоненциальная сложность в событийном подходе — это да, проблема, которую не объехать, не спасают ни диаграммы изменений, ни Петри, ни STG. И это не «сложность вычисления логических функций», коих нет, а громоздкость представления событий — переключений сигналов. Эта громоздкость и порождает огромный объем необходимых компьютерных вычислений. К тому же обязательная замкнутость всех событийных диаграмм с вовлечением
внешней среды, учет которой — лишний груз.

Обычно в событийном подходе описывают процесс (! а не функции) переключений для одного начального состояния. А где все другие состояния, которые должны быть пройдены для гарантии полумодулярности?

Цитата:
«Как известно логические функции вычисляются по таблицам истинности с помощью карт Карно, кубов и тому подобное.»
Надо бы открыть большую тайну Рецензенту: существует т.н. булева алгебра, по которой также можно вычислять функции.

Цитата о событийном описании:
«Отсюда трудности с иерархическим описанием. Я бы назвал это древними нелепыми предрассудками. Взяты они по всей видимости из работ Варшавского 30-летней
давности. Причем без какого-то осмысления.»
Какие предрассудки? Разве нет трудностей? Попробуйте составить событийное описание хотя бы 4-разрядного АЛУ или счетчика, не говоря уже о 8, 16 и т.д. разрядах, с прохождением всех состояний и внешней средой. А что такое иерархическое событийное описание? Если оно есть, то пусть меня поправят. Кроме того, столь пренебрежительное отношение к работам В.И.Варшавского с группой неприлично — неприлично не знать этих работ.

Если Маллер доказал существование обсуждаемых схем и дал метод анализа, то В.И.Варшавский с группой разработали методы их создания, в том числе метод диаграмм изменений, которым пользуется Рецензент (см. следующуя цитату). Уже одно то, что у них 150 изобретений, должно вызывать уважение. Впрочем, все это есть в книге.

Цитата:
" К тому же функциональный подход вторичен по отношению к
событийному подходу. Функциональное описание есть не что иное,
как результат применения метода Маллера к событийному описанию.
Действительно, по диаграмме изменений получаем таблицу истинности, по ней
вычисляем логические функции. В итоге получаем функциональное описание.
Фактически получается, что самосинхронный метод является надстройкой
над методом Маллера."
Это набор заблуждений Рецензента — опять событийное первенство. Что такое «метод Маллера» в применении к событийному описанию? Маллер исследует поведение схем в событийном описании (диаграммы переходов) и выявляет конфликтные переходы, нарушающие полумодулярность. Это чистый АНАЛИЗ.

Далее, синтез по диаграммам изменений разработан В.И.Варшавским с группой как метод синтеза. При чем здесь метод анализа Маллера? И при чем здесь вторичность, надстройка и вообще все утверждения в той цитате? См. п.2 ответа.

Цитата:
«Схема без описания дисциплины изменений входных сигналов смысла не имеет.»
Именно, и в книге детально прописана эта дисциплина.

Цитата:
«В конце концов автор вынужден ввести чисто событийные понятия:
инициатор и континуатор (для сигналов).»
Здесь ошибка. Это структурные понятия. Континуатор структурно — через другие
элементы — следует за инициатором.

5. Анализ самосинхронности


Рецензент совсем не видит одой из главных проблем проектирования самосинхронных (или, что то же, SI) схем — анализа.

Разработчик таких схем (практик) делает так:
— собирает фрагмент схемы,
— анализирует на самосинхронность/полумодулярность,
— из корректных фрагментов собирает схему на следующем уровне,
— опять анализирует и т.д.

То есть анализ — это рабочий инструмент проектирования практических схем. А событийный синтез по диаграммaм изменений, Петри и STG — это удел маленьких схем — до 10-20 элементов. Далее — экспонента. В нашей практике для конкретных фрагментов событийный анализ длился и 4 суток, и 7 суток, и это не предел. И только для одного начального состояния, а не для
всех, как надо!

Функциональный подход, как описано в книге, радикально решает проблему: анализ по всем состояниям любой глубины иерархии, реально было до 8-10, длится считанные секунды или минуты.

6. Судя по замечаниям, Рецензент не видит проблем в событийных описаниях. Рискну предположить, что он не разрабатывал достаточно больших схем и не сталкивался с их проблемами. А все проблемы — в больших схемах.

7. Небольшая ссылка


Одна из синтезированных схем Рецензента на сайте — C-элемент в двухвходовом базисе — приведена в классической книге 30-летней давности п/ред В.И.Варшавского «Автоматное управление асинхронными процессами в ЭВМ и дискретных системах», 1986, на рис. 5.27.
Неплохо бы для научной этики сослаться на предшественника-классика.

Л.П.Плеханов

Комментарии (32)


  1. ajrec
    20.02.2018 20:22

    Зря Вы так на меня. Я ж по доброму. Ну получилась схема С-элемента как у Варшавского. Целью было не представление схемы, а демонстрация метода. Варшавский схему изобрел, и сам не знает как. Я могу подробно описать весь процесс синтеза.
    Я не настаиваю на двухвходовых реализациях. Это экстремальный пример. Могу сделать в 3-входовом базисе, могу в 4-входовом, в любом. Если количество входов не проблема, еще проще. Уверяю, при одинаковых условиях я сделаю схему существенно меньше и быстрее.
    Ну, очевидно, что самосинхроника в тупике. По быстродействию не лучше синхронных, по площади уступает сильно. Единственно хорошо с энергопотреблением. Но и здесь предел не достигнут. Индикатор — по сути тот же тактовый генератор, только умный, подстраивается под скорость схемы.


  1. Sub_Dia
    20.02.2018 21:59

    Спасибо Вам, Леонид Петрович, за указание массы источников для прочтения. И Вашему оппоненту спасибо тоже.


  1. ajrec
    20.02.2018 23:08

    Пункт 2. Здесь же на хабре схема в 200 с лишним сигналов. Все переключения до одного выписаны.
    Я, честное слово, сразу заметил, что в книге нет событийных описаний.
    Если ДИ, ДП описывают автономные схемы, это проблема только этих моделей. Введите входные, выходные сигналы. То что описание представляет собой замкнутую структуру — это хорошо. Оно описывает две половинки единого целого: поведение схемы и поведение внешней среды. При желании их можно разделить. Поэтому смысл функционального подхода сужается до одного пункта: отказаться от событийных описаний.


  1. ajrec
    20.02.2018 23:53

    Пункт 3. По поводу терминологии действительно ломать копья не стоит. Главное понимать друг друга.
    По поводу определения. Читаем в книге следующий абзац: отказобезопасность — свойство схемы останавливаться при константных неисправностях. Не что иное как бесконечная задержка. Второй пункт следствие первого. А первый пункт обеспечивается двухфазностью и индикацией в совокупности. При кодировании сигнала обязательна нужна структура, отслеживающая изменение на одном из двух проводов.
    По поводу полумодулярности совершенно согласен. У меня по этому поводу несколько абзацев в конце.


  1. ajrec
    21.02.2018 00:46

    Пункт 4. О сложности описаний. Посчитаем буквы. Для начала возьмем автономные поведения, где сигналы переключаются по 2 раза. N — количество сигналов. Сложность событийного описания 2*N. При функциональном описании этого хватило бы только для описания схемы, состоящей из одних инверторов.
    Я не против описать 4-разрядное АЛУ. Сообщите подробнее что от него требуется. Заодно иерархическое событийное описание продемонстрирую.
    По поводу Варшавского. Это не он пошутил: «Вы могли бы вложиться в нас с точно таким же результатом»?
    По поводу «метода Маллера» да, погорячился. Пусть будет метод Варшавского. Суть от этого не меняется: проверка на полумодулярность и вычисление функций.
    А ДИ я не люблю. Если уж классифицировать описания, то событийные надо поделить пополам: на модели событий и модели состояний. На мой взгляд последние еще хуже функциональных описаний.
    Инициатор и континуатор все-таки события и имеют хоть и опосредованную, но причинно-следственную связь.


  1. ajrec
    21.02.2018 00:51

    Последнее. Вся критика событийного подхода обосновывается одним: «Мы не умеем». Я умею.


  1. PMVyatkin
    21.02.2018 15:54
    +1

    Коллеги.
    А другого места обсуждать научные публикации нету, кроме как на Хабре?
    Я по моему если не ошибаюсь, это приветствуется в рамках конференций и научных журналов.
    Еще, в мое время, авторам замечания по книгам писали напрямую, сейчас я думаю тоже это не проблема.
    P.S. Понравилось как составлены структурно статьи и что за обсуждение никто на личности не перешел. Это приятно видеть :-)


    1. AntiLL Автор
      21.02.2018 16:37
      +1

      Ну, мы так решили — раз уж замечания были опубликованы без нашего ведома публично, то и ответ мы дадим публичный. А дальше да, лично я теперь пытаюсь организовать онлайн-встречу оппонентов :)


      1. PMVyatkin
        21.02.2018 18:53

        Хм, ну подход конечно логичный.
        Но я бы вообще радовался, что кто то (бесплатно!) рецензирует статьи. Если что то оскорбительное бы написали — другой вопрос, а что человек как то не так что то понял, или спорит т.к. имеет другие данные (может быть вообще парадигму) — это нормально.
        Жаль в ВАКовских журналах такого нет — может быть, статьи писали бы качественнее.


        1. AntiLL Автор
          21.02.2018 20:40

          Ну с Сергеем, автором замечаний у меня был контакт в Скайпе до опубликованных ответов. Так что здесь никто не чьи интересы не задевает, а идет вполне интересная научная и что важно открытая дискуссия. И то, что она публичная, на мой взгляд в этом только плюсы.

          Я же свою точку зрения обозначил в предисловии. В нашем отделе достигнуты хорошие результаты по самосинхронным схемам, но как это часто бывает в постсоветской науке, никто не предает эти данные широкой огласке, только публикации в профильных конференциях и сборниках, например МЭС. Я со своей стороны считаю, что надо рассказывать о результатах и давно хотел осветить тему на Хабре. Буквально на прошлой неделе получил добро на публикацию серии статей по самосинхронике и на тебе — Сергей ajrec предоставил такой шанс опубликоваться оперативно :) Так что лично я надеюсь, это только начало и в дальнейшем будет интереснее, уже не только в рамках научных диспутов, а в рамках популяризации подхода. И последующие статьи будут рассчитаны на более широкую аудиторию. Стей тюнед. :)


      1. babylon
        22.02.2018 11:41

        Я заранее буду восхищен разработкой рекуррентного процессора, если вы расскажите, что это такое есть?


        1. AntiLL Автор
          22.02.2018 13:09

          Я там ниже комментарий дал со ссылками. Не хочу повторяться, уж простите :)

          Я думаю опубликуем чего нибудь на Хабре развернуто.


    1. ajrec
      22.02.2018 03:08
      -1

      Я сижу в деревне. Ни с какими научными, производственными структурами не связан. Податься мне некуда.


      1. babylon
        22.02.2018 11:43

        Всегда можно податься из деревни, если она не посреди болота и вы не инвалид.


        1. ajrec
          22.02.2018 12:17

          Да мне в деревне нравится.


  1. ineganov
    21.02.2018 16:40
    +1

    Товарищи учёные!

    А расскажите лаптю о том, какие результаты на сегодня достигнуты на поприще самосинхронных схем?

    Вот, в частности, упомянута реализация FMA (Fused Multiply Add, я так понимаю?) для Комдива.
    Получилось ли в итоге компактнее или быстрее или эффективнее по мощности, чем стандартные 3-5 стадий пайплайна? А насколько?

    Самый интересный вопрос: как оценивается работоспособноть схемы после производства? В обычной методологии есть дорогой, но понятный Design For Test со всеми регистрами в скан-чейне, пачкой тестовых векторов и ожидаемыми результатами комбинационной логики. А здесь?
    Скорость работы такого юнита, как я понимаю, будет варьироваться от чипа к чипу. Как это вписывается в фиксированный процессорный конвейер?

    Можно ли выразить эту методологию своими словами, без ссылок на литератуту и (особенно) википедию, для тех, кто знаком со стандартным подходом?


    1. OYTIS
      21.02.2018 18:05

      Я не ученый, но немного занимался темой в босоногом детстве. Представляете себе pipeline с back-pressure? Теперь представьте себе, что механизм back-pressure реализован на уровне логических/запоминающих элементов. При таком подходе вам не нужен тактовый сигнал, каждый элемент сам знает, когда он готов принять новые данные и когда у него есть новые данные, и сообщает об этом соседям.
      Интеграция с синхронными схемами, очевидно потребует сигнала BP и сигнала готовности данных, достаточно тривиально.


      1. ineganov
        21.02.2018 19:07

        Ну вот именно в процессорных конвейерах backpressure в чистом виде работает не очень хорошо (собственно, отсюда и вопросы)
        Например, в случае явной зависимости:

        r3 = mul(r2, r1)
        r5 = add(r3, r4)


        Умножение почти всегда имеет latency три и выше тактов, а сложение — один, редко два. Физически, сложение что так, что эдак быстрее.
        При этом, декодировать инструкцию и зачитать операнды все же нужно. И вот, если я наперед знаю, что результат умножения готов через четыре такта, я могу запустить зависимое сложение на исполнение через три, когда результа первой инструкции еще нет.

        Получается:
        mul RF M1 M2 M3 M4 WB
        add __ __ __ __ RF EX WB


        Вместо случая с backpressure, когда сначала нужно подождать, пока умножение завершится полностью:
        mul RF M1 M2 M3 M4 WB
        add __ __ __ __ __ RF EX WB


        1. OYTIS
          21.02.2018 19:36
          +1

          Ну вот тут как раз имеет значение эта тонкость, что BP реализован поэлементно. Те ступени конвейера, которые не требуют результата умножения спокойно выполнятся. Только когда потребуются данные от умножатора, все зависнет.
          Это абстрактно, конечно, что именно кого ждет зависит от реализации. У меня сложилось впечатление, что асинхронщина больше подходит для какого-нибудь кастомного dataflow, чем для процессора общего назначения.


          1. AntiLL Автор
            21.02.2018 21:07

            Вы абсолютно правы. Самосинхронная схемотехника очень похожа по своему, скажем так, «духу» :) на dataflow. Более того, в нашем отделе мы разрабатываем рекуррентный процессор, который является в том числе потоковым (dataflow) и очень надеемся, что хватит сил и самое главное ресурсов (с этим сами понимаете, не очень) реализовать самосинхронный вариант рекуррентного процессора.

            Что касается конвейера. Насколько я представляю, то конвейер также как и самосинхронная схемотехника работает по принципу запрос-ответа. То есть, если ступени будут короткими, то эффект будет по сравнению с синхронной реализацией, если будет какая-то ступень длинной, то тут все будет также как и в синхронном случае. Во всяком случае мне так это видится. Насчет поднятой вами темы с предсказанием окончания операции, ну на вскидку вы правы. Уточню видение у начальника отдела.


            1. Varim
              22.02.2018 07:40

              Что такое «рекуррентный процессор»? Что такое вообще «рекуррентный»?


              1. AntiLL Автор
                22.02.2018 10:51

                Наверное имеет смысл отдельную статью написать. Кратко, это потоковый dataflow процессор, который помимо прочего, умеет еще разворачивать алгоритм в процессе исполнения, минимизируя тем самым обращение к памяти. Более подробно можно почитать тут и тут


        1. AntiLL Автор
          22.02.2018 10:53

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


    1. AntiLL Автор
      21.02.2018 20:54

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

      Но! Кое-что сообщу. Вот например вот здесь можно почитать, несмотря на то, что статья аж 2007 года (к вопросу о популяризации науки, а точнее о полной ее отсутствии):
      САМОСИНХРОННАЯ СХЕМОТЕХНИКА – ПЕРСПЕКТИВНЫЙ
      ПУТЬ РЕАЛИЗАЦИИ АППАРАТУРЫ


      Там в частности, проводится сравнение двух микроядер, реализованных в базисе БМК на синхронной и самосинхронной основе.

      Как будет показано ниже, реальное среднее быстродействие ССС-образцов на
      рассматриваемой смеси операций почти в два раза выше заданного быстродействия С-
      образцов. Попытка увеличения входной тактовой частоты С-образцов в 1,5 раза (до
      24 МГц или до 6 МГц их рабочей частоты) как и ожидалось, негативно сказывается на
      зоне их работоспособности. Из рис. 4 видно, что при этом нижняя граница
      работоспособности питающих напряжений у образцов № 2 и № 4 превышает
      гарантированный минимум 4,65 B и 4,51 В, соответственно. Таким образом, следует
      признать, что 50-процентное повышение быстродействия С-образцов невозможно по
      причине резкого снижения выхода годных БМК-микросхем.
      На рис. 5 приведены результаты экспериментов по проверке работоспособности
      всех рассмотренных выше ССС-образцов и одного С-образца (№ 2) в рассмотренном
      выше диапазоне питающих напряжений и при изменении температуры окружающей
      среды в диапазоне от – 63 до +1250 C.
      Зона работоспособности у всех четырех испытанных ССС-образцов осталась
      абсолютно идентичной, что является косвенным подтверждением наличия у них свойства
      строгой самосинхронности – независимости поведения от задержек элементов. При этом
      зона их работоспособности в области высоких температур расширилась – предельное
      напряжение, при котором прекращалась работа ССС-образцов, снизилось с 0,6 до 0,4 В.

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


      И выводы:

      Самосинхронная аппаратура характеризуется реальным быстродействием,
      самонастраивающимся (адаптирующимся) на реальные условия работы: уровень
      питающего напряжения, температуру окружающей среды, текущее состояние параметров
      элементной базы, вид обрабатываемой информации и т.д. Эффективные самосинхронные
      решения обеспечивают более высокое быстродействие аппаратуры. Например, в зоне
      работоспособности, гарантированной изготовителем БМК, быстродействие ССС-
      Микроядра в среднем выше быстродействия С-Микроядра почти в 2 раза.
      3. Самосинхронное исполнение аппаратуры обеспечивает создание энергетически
      эффективных аппаратных решений. Например, во всем исследуемом диапазоне
      работоспособности тестируемых кристаллов энергетическая эффективность ССС-
      Микроядра по сравнению с С-Микроядром была не ниже 50 %.


      Что касается FMA, то я получил такой ответ, в апреле месяце мы опубликуем подробную статью на этот счет. Сейчас готовится статья на МЭС-2018, и поэтому будет полноценный развернутый ответ уже здесь на Хабре. Извините, что не ответил на Ваш вопрос полностью. Надеюсь, хотя бы частично ответил на первую часть :)


      1. ineganov
        22.02.2018 15:06
        +1

        Спасибо! Статья по ссылке выше весьма любопытна. Самый интересный (с моей точки зрения) вопрос верификации и сравнения с DFT коварно обойден стороной, но (а) поддержки DFT на БМК может и не быть и (б) вообще круто, что оно работает. Ну и про интеграцию FMA завсегда интересно почитать.

        Я вот сам начинаю припоминать, что несколько лет назад были публикации на тему полностью асинхронного МИПСа.
        Вот сходу нашлось две:

        http://www.cs.bham.ac.uk/research/projects/parlard/papers/acsac2003-37.pdf

        http://ieeexplore.ieee.org/document/634853/

        Судя по авторам и организациям, это разные группы.
        Вот такое — это та же техника, что в книге или что-то совсем другое?


        1. AntiLL Автор
          22.02.2018 20:48

          DFT — это вы про преобразование Фурье? Эм, там же делалась копия ядра PIC18 кажется, даже не припомню как там с БПФ, FMA помоему там точно нет. Давно дело было и не помню.

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


          1. ineganov
            22.02.2018 21:25
            +1

            Нет-нет, DFT — это я выше расшифровал, Design For Test. Правильно говорят, что аббревиатуры — зло :)

            Это решение проблемы «как определить работоспособен ли чип после изготовления». В случае с микропроцессором, факта включения и исполнения программ для оценки работоспособности недостаточно даже близко, вот в частности из-за проблем с состоянием. Поэтому в синхронной технике есть такое решение: все триггеры в системе нанизываются на длинный scan-chain. И если отключить основной тактовый сигнал, мы получем возможность считывать и записывать любое состояние, целиком, включая невозможные. После этого можно тактировать схему единожды или дважды и сравнить с состоянием расчетным. Входы можно генерировать в том числе и случайно и получить при этом достаточно хорошее покрытие всех элементов схемы (и, что немаловажно, можно посчитать, сколько логики покрыто)

            А иначе с этим вообще же работать страшно. Ну перестанет там работать один инвертор, который нужен раз в неделю (я не преувеличиваю, такое бывает) — как такой кристалл отбраковать?


            1. AntiLL Автор
              22.02.2018 22:29

              Насколько я в курсе, и в статье, что я давал там это должно было упоминаться, у самосинхронных схем с этим как раз лучше. Я не очень понимаю это магию, просто потому что не касался, но самосинхронные схемы обладают свойствами самодиагностики и и даже саморемонта. Вот тут можно почитать:
              elibrary.ru/item.asp?id=22105455

              Там кстати и про практическую реализацию для КОМДИВа тоже есть. Насколько я помню, в БМК как раз выгодно реализовывать самосинхронные схемы, потому что процент выхода рабочих изделий выше, чем в синхронном варианте. Что-то такое было… Надо уточнять. Вы пишите, я потом по всем вопросам заставлю начальника статью написать сюда :)

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


        1. AntiLL Автор
          22.02.2018 20:54

          Вообще вот сайт мы запустили:
          selftiming.ru

          В ближайшее время он будет переделан, поэтому мы его не пиарим особо. Там проблемы с кодировкой, CMS Modx и много другого. Но в целом там можно найти очень много, но правда не самой свежей информации. В том числе и зарубежные источники. Вот кстати мне статья попалась про конвейер самосинхронный, правда зарубежная статья, хотя где-то мне кажется была и наша…
          selftiming.ru/files/articles/foreign/NEGATIVE/negative.pdf


  1. ajrec
    23.02.2018 16:33
    -1


  1. ajrec
    23.02.2018 16:39
    -1

    Функционал самосинхронных схем сводится к 3 пунктам: реализация в монотонном базисе, независимость от задержек элементов, совместимость с другими самосинхронными схемами.


  1. ajrec
    23.02.2018 19:00

    Обращение к неизвестному. Чем я тебе дорогу то перешел, что так минусишь старательно. Написал бы что не нравится. А то фигу в кармане показываешь. По-детски это.