Мне тут ответы подошли от разных сотрудников отдела, на все комменты по этой статье:
1.
> Вот, в частности, упомянута реализация FMA (Fused Multiply Add, я так понимаю?) для Комдива.
> Получилось ли в итоге компактнее или быстрее или эффективнее по мощности, чем стандартные
> 3-5 стадий пайплайна? А насколько?
ОТВЕТ:
CC схемы изначально характеризуются избыточными аппаратурными затратами, необходимыми для реализации индицируемости элементов схемы, обеспечивающей контроль за окончанием переключения каждого фрагмента СС схемы в очередную фазу работы. Поэтому они никогда не смогут быть «компактнее» своих синхронных аналогов, если речь не идет о реализации отказоустойчивых цифровых устройств.
Вопрос о быстродействии и энергопотреблении пока остается открытым, т.к. спроектированный СС блок Fused Multiply Add еще находится в стадии изготовления. Тестирование более простого устройства — четырехразрядного Микроядра, аналога цифрового ядра микроконтроллера PIC фирмы Microchip, содержащего регистровую память, умножитель, сдвигатель и отказоустойчивый последовательно-параллельный 8-разрядный порт — изготовленного по КМОП технологии с 1.5-мкм проектными нормами на основе базового матричного кристалла 5503БЦ7У (МИЭТ, Москва), в сравнении с синхронным аналогом показало, что быстродействие СС варианта Микроядра в зоне работоспособности синхронного аналога, гарантированной изготовителем БМК, в среднем почти в 2 раза выше быстродействия синхронного аналога на статистически средней последовательности операций. Во всем диапазоне подтвержденной работоспособности протестированных кристаллов энергетическая эффективность (отношение производительности к мощности потребления) СС Микроядра по сравнению с синхронным аналогом была также в 2 раза выше.
2.
> Самый интересный вопрос: как оценивается работоспособноть схемы после производства?
> В обычной методологии есть дорогой, но понятный Design For Test со всеми регистрами
> в скан-чейне, пачкой тестовых векторов и ожидаемыми результатами комбинационной логики.
> А здесь? Скорость работы такого юнита, как я понимаю, будет варьироваться от чипа к чипу.
ОТВЕТ:
СС схемы не имеют дерева синхронизации, и проверять их работоспособность традиционным синхронным методом напрямую нельзя, т.к. время выполнения операции цифровой СС схемой зависит от содержимого операндов. Однако достаточно внести в схему проверки запрос-ответный механизм и можно применять те же самые «Design For Test со всеми регистрами в скан-чейне, пачкой тестовых векторов и ожидаемыми результатами комбинационной логики». Вся разница будет только в том, что в синхронной схеме тестовые вектора подаются на тестируемую схему строго периодически, а в СС схеме смена одно тестового вектора другим будет происходить при наличии сигнала готовности результата, выдаваемого СС схемой. Кстати сказать, и в синхронных схемах изготовленные кристаллы с целью повышения выхода годных разбраковываются на разных частотах. Возьмите, к примеру, линейку процессоров фирмы Intel: один и тот же, с точки зрения начинки, процессор продается по разной цене в зависимости от пиковой устойчивой производительности, продемонстрированной им при тестировании.
> Как это вписывается в фиксированный процессорный конвейер?
ОТВЕТ:
Вписаться в процессорный конвейер с фиксированной частотой, действительно, непросто. Но, во-первых, есть и асинхронные конвейеры (и даже целые асинхронные процессоры, например, семейство Amulet), и во-вторых, существует целый ряд приложений, в которых отдельные функциональные блоки, например, делитель, используются эпизодически и могут быть встроены в общий синхронный конвейер с помощью дополнительных блоков входного и выходного FIFO. Конечно, это задача более сложная, нежели построение традиционного синхронного конвейера, но ведь и «бонус» в виде устойчивой работы в широком диапазоне условий эксплуатации и обретения свойства обнаружения константной неисправности («залипания» выхода или входа элемента в статическом состоянии) тоже чего-то ст'оит?
4.
> Можно ли выразить эту методологию своими словами, без ссылок на литератуту и
> (особенно) википедию, для тех, кто знаком со стандартным подходом?
ОТВЕТ:
В «двух словах».
Общая методология разработки СС схемы заключается в последовательном выполнении ряда этапов.
Разработка комбинационных СС схем включает в себя следующие этапы (для «внутренних» функциональных СС схем, не требующих согласования интерфейса с синхронным окружением):
1) разработка синхронного функционального аналога в базисе логических функций и/или простейших логических ячеек;
2) выбор типа спейсера входных и выходных парафазных сигналов;
3) разработка блока преобразования бифазного кода в парафазный, если источником входных сигналов является триггерное устройство, например, регистр;
4) преобразование синхронного аналога функциональной «начинки» схемы в СС схему с помощью парафазного и/или бифазного кодирования входных, выходных и промежуточных сигналов;
4.1) «дуализация» системы логических функций синхронного аналога — дополнение каждой логической функции ее инверсией;
4.2) замена инверсных значений переменных парафазными сигналами;
5) разработка индикаторной подсхемы.
Разработка триггерных (последовательностных) СС схем включает в себя следующие этапы:
1) разработка синхронного функционального аналога;
2) преобразование синхронного аналога в СС вариант и согласование типа спейсера входных сигналов;
2.1) «дуализация» системы логических функций синхронного аналога — дополнение каждой логической функции ее инверсией;
2.2) замена инверсных значений переменных парафазными сигналами;
3) выбор способа и типа начальной предустановки;
4) разработка индикаторной подсхемы.
Результатом такой разработки является функциональное HDL-описание СС схемы на (Verilog, VHDL), которое затем может быть покрыто элементами используемой библиотеки стандартных элементов программными средствами (логическим синтезатором, например, Design Compiler, Genus) или вручную ;).
В настоящее время, к сожалению, нет готового САПР СС схем (точнее, есть для подкласса СС схем «NULL Convention Logic», имеющих самую большую избыточность среди вариантов реализации СС схем, — система BALSA), но работа в этом направлении ведется.
В конце хотелось бы еще раз напомнить о потенциальных преимуществах СС схем (ради чего всё затевалось):
а) отсутствие накладных аппаратных и энергетических расходов, связанных с реализацией «тактового дерева»;
б) быстродействие, максимально возможное в текущих условиях эксплуатации;
в) естественная устойчивость к параметрическим отказам, вызываемым изменением параметров ячеек из-за процессов старения и неблагоприятных воздействий окружающей среды;
г) максимально возможная область эксплуатации (диапазон работоспособности), определяемая только физическим сохранением переключательных свойств активных ячеек базиса реализации, и, как следствие, возможность работать на пониженном питающем напряжении;
д) естественная самопроверяемость и самодиагностируемость по отношению к множественным константным неисправностям;
е) безопасность функционирования на основе бестестовой локализации неисправностей, т.е. прекращение работы в момент отказа ячейки, исключающее выдачу недостоверной информации, с одновременной локализацией места сбоя;
ж) увеличение числа годных чипов за счет нечувствительности схемы к разбросу параметров;
и) упрощенное тестирование: функциональные тесты одновременно являются и проверочными на неисправности;
к) увеличенный срок службы за счёт нечувствительности к старению;
л) простота стыковки СС схем между собой из-за отсутствия принудительной синхронизации, отсутствие аномального арбитража;
м) высокая эффективность создания надёжных изделий;
н) простота контроля и резервирования;
о) отсутствие проблемы контроля схем контроля;
п) существенно меньший объем аппаратных затрат (не менее, чем в 1,5 раза) при одном и том же коэффициенте покрытия неисправностей при реализации отказоустойчивого устройства.
1. Меня удивляют манеры на этом форуме: безапелляционность суждений при
отсутствии/ограниченности знаний и понимания предмета.
Споры приобретают характер перепирательств.
Так в научных кругах не принято.
Такие дискуссии вводят в заблуждение аудиторию, которая не очень в курсе, но
интересуется.
Если хотите обсуждать книгу, потрудитесь понять хотя бы идею.
2. Одному из комментаторов понадобилось больше теории.
Но, как сказано Оккамом, не придумывайте лишних сущностей, читайте
теории Маллера и Варшавского, их достаточно для создания самосинхронных (СС)
схем. Также читайте упомянутую комментатором превосходную книгу:
Мараховский В. Б., Розенблюм Л. Я., Яковлев А. В.
«Моделирование параллельных процессов. Сети Петри», СПб, 2014.
Там и про самосинхронные схемы (именно этот термин) и про роль В.И.Варшавского.
Это все событийный подход.
3. У меня — другой подход, инженерный.
Хотя все написано в книге, повторю еще раз кратко для заинтересованной
аудитории.
Упомянутые ранее свойства СС-схем:
1) отсутсвие гонок,
2) отказобезопасность
есть следствие полумодулярности. Это не ново, об этом писал еще В.И.Варшавский.
Почему-то дискутанты все про быстродействие (оно по большинству наших
разработок не хуже синхронных аналогов), энергопотребление (оно лучше
синхронных). А про бессбойность и надежность забыли.
Платой за них является повышенные затраты СС-схем в транзисторах. Ничто даром
не дается.
Таким образом, обеспечив полумодулярность, обеспечим эти два свойства схем.
Именно эти свойства хотят получить пользователи от СС-схем, в этом уникальность
таких схем.
Теперь перевернем задачу. Если неким образом сразу обеспечить эти свойства, без
событийности, то не надо майнить полумодулярность, не нужны ДП, ДИ, STG и Петри
(при всем к ним уважении).
Этот некий способ есть функциональных подход.
Делаем иерархически, на каждом уровне собираем фрагмент и проверяем полученное.
1) Собираем по В.И.Варшавскому: двухфазная работа, парафазное представление,
индикация. Здесь настолько все отработано, что придумать нечего.
2) А проверяем каждое из двух свойств по отдельности.
Отсутсвие гонок — по межсоединениям элементов, т.е. по структуре. В подходе
сформулированы для этого правила соединений. А инициаторы и континуаторы — это
не сигналы. Это провода, соединения.
Отказобезопасность:
а) на самом нижнем уровне — прямой метод: делается один расчет функций
без отказов, затем имитируется отказ каждого элемента и сравниваются резултаты
с первым расчетом. Делается вывод о том, остановится ли схема при каждом
отдельном отказе.
б) на всех остальных более верхних уровнях — также межсоединения уже фрагментов
и трансляция списков индикации внутренних переменных на выходы верхнего
фрагмента. Это еще проще, чем на самом нижнем уровне.
Хотя это не нужно для практики, но многократно проверено, что построенные так
схемы при правильном замыкании являются полумодулярными.
4. Теперь об элементах и библиотеках.
Вот примеры элементов из промышленной библиотеки СС-элементов 65нм
в Зеленограде:
A2O211AI с функцией Y = ^((A0*A1+B)*C0*C1),
O22A2O2I с функцией Y = ^((A0+A1)*(B0+B1)+C).
5. Если Рецензент желает создать 4-разрядное АЛУ (полумодулярное/SI/
самосинхронное), флаг ему в руки.
Условия таковы:
Минимальная конфигурация всех АЛУ:
а) 2 операнда (здесь по 4 бита),
б) операции:
— сложеиние/вычитание,
— сдвиги туда-сюда,
— побитовые И, ИЛИ, НЕ.
Для гарантии полумодулярности надо учесть все рабочие состояния и переходы
(например от одной команды к другой) для всех сочетаний значений операндов,
коих ровно 256.
Но для того, чтобы обновить все программы в центральных и региональных университетах и сделать понимание RTL частью общего образования в хайтеке (как это сделано в американских вузах и как это быстро делают китайцы в КНР)
А можно на этом месте поподробнее? Действительно в США и Китае делают ставку на уровень RTL в образовании, и как следствие FPGA? А зачем? И каким образом вы это заметили?
У нас в ВлГУ преподавали ПЛИС и VHDL, но все всегда упиралось в простое, а какую задачу то решать на ПЛИС? Для большинства лабораторных поделок достаточно микроконтроллерного уровня. Тут надо отметить, что повторяется история с суперЭВМ, когда они есть. но чем их загружать непонятно (особенно эффективно, ведь мы знаем, что у них загрузка крайне невысокая по ядрам в силу закона Амдала), а мощность персоналок растет и все больше задач можно решать на них. Тоже самое и с ПЛИС, возможности микроконтроллеров растут, и все больше задач можно решать на них, та же ЦОС (DSP), сейчас вполне эффектно решается на микроконтроллерах. Нужно больше примеров реальных задач на FPGA, в этом плане спасибо вам за наводку по нейронным сетям.
Насколько я в курсе, и в статье, что я давал там это должно было упоминаться, у самосинхронных схем с этим как раз лучше. Я не очень понимаю это магию, просто потому что не касался, но самосинхронные схемы обладают свойствами самодиагностики и и даже саморемонта. Вот тут можно почитать: elibrary.ru/item.asp?id=22105455
Там кстати и про практическую реализацию для КОМДИВа тоже есть. Насколько я помню, в БМК как раз выгодно реализовывать самосинхронные схемы, потому что процент выхода рабочих изделий выше, чем в синхронном варианте. Что-то такое было… Надо уточнять. Вы пишите, я потом по всем вопросам заставлю начальника статью написать сюда :)
Вообще самосинхроника в первую очередь должна найти применение там, где требуется надежность и есть экстримальные условия. Это вот наиболее очевидное применение. В других применениях ее достоинства менее очевидны.
В ближайшее время он будет переделан, поэтому мы его не пиарим особо. Там проблемы с кодировкой, CMS Modx и много другого. Но в целом там можно найти очень много, но правда не самой свежей информации. В том числе и зарубежные источники. Вот кстати мне статья попалась про конвейер самосинхронный, правда зарубежная статья, хотя где-то мне кажется была и наша… selftiming.ru/files/articles/foreign/NEGATIVE/negative.pdf
DFT — это вы про преобразование Фурье? Эм, там же делалась копия ядра PIC18 кажется, даже не припомню как там с БПФ, FMA помоему там точно нет. Давно дело было и не помню.
На Западе регулярно всплывают статьи по асинхронным/самосинхронным схемам. Чаще всего это творения учеников Варшавского, уехавших на Запад. Но насколько я понимаю, там так называемая квазисамосинхронная схемотехника. т.е. стабильность работы схемы добивается встраиванием элементов задержки, что искусственно занижает быстродействие в целях надежного завершения переходных процессов, но по сути является неким аналогом такта. Поэтому в ИПИ РАН и был введет термин Строго-самосинхронные схемы (ССС), чтобы различать с такими квазисамосинхронными.
А с другой стороны, для поддержки такого рода решений, можно также реализовать сигнал-индикатор, который позволит начать параллельное сложение до окончания умножения. Посложнее конечно, но в целом тоже можно как мне кажется такое реализовать.
Наверное имеет смысл отдельную статью написать. Кратко, это потоковый dataflow процессор, который помимо прочего, умеет еще разворачивать алгоритм в процессе исполнения, минимизируя тем самым обращение к памяти. Более подробно можно почитать тут и тут
Вы абсолютно правы. Самосинхронная схемотехника очень похожа по своему, скажем так, «духу» :) на dataflow. Более того, в нашем отделе мы разрабатываем рекуррентный процессор, который является в том числе потоковым (dataflow) и очень надеемся, что хватит сил и самое главное ресурсов (с этим сами понимаете, не очень) реализовать самосинхронный вариант рекуррентного процессора.
Что касается конвейера. Насколько я представляю, то конвейер также как и самосинхронная схемотехника работает по принципу запрос-ответа. То есть, если ступени будут короткими, то эффект будет по сравнению с синхронной реализацией, если будет какая-то ступень длинной, то тут все будет также как и в синхронном случае. Во всяком случае мне так это видится. Насчет поднятой вами темы с предсказанием окончания операции, ну на вскидку вы правы. Уточню видение у начальника отдела.
По скольку я в данном случае лишь посредник (как я говорил, я занят рекуррентным процессором, а не самосинхроникой), хоть и с очевидной целью популяризации достижений нашего отдела, я не берусь браться за такие комментарии.
Там в частности, проводится сравнение двух микроядер, реализованных в базисе БМК на синхронной и самосинхронной основе.
Как будет показано ниже, реальное среднее быстродействие ССС-образцов на
рассматриваемой смеси операций почти в два раза выше заданного быстродействия С-
образцов. Попытка увеличения входной тактовой частоты С-образцов в 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, и поэтому будет полноценный развернутый ответ уже здесь на Хабре. Извините, что не ответил на Ваш вопрос полностью. Надеюсь, хотя бы частично ответил на первую часть :)
Ну с Сергеем, автором замечаний у меня был контакт в Скайпе до опубликованных ответов. Так что здесь никто не чьи интересы не задевает, а идет вполне интересная научная и что важно открытая дискуссия. И то, что она публичная, на мой взгляд в этом только плюсы.
Я же свою точку зрения обозначил в предисловии. В нашем отделе достигнуты хорошие результаты по самосинхронным схемам, но как это часто бывает в постсоветской науке, никто не предает эти данные широкой огласке, только публикации в профильных конференциях и сборниках, например МЭС. Я со своей стороны считаю, что надо рассказывать о результатах и давно хотел осветить тему на Хабре. Буквально на прошлой неделе получил добро на публикацию серии статей по самосинхронике и на тебе — Сергей ajrec предоставил такой шанс опубликоваться оперативно :) Так что лично я надеюсь, это только начало и в дальнейшем будет интереснее, уже не только в рамках научных диспутов, а в рамках популяризации подхода. И последующие статьи будут рассчитаны на более широкую аудиторию. Стей тюнед. :)
Ну, мы так решили — раз уж замечания были опубликованы без нашего ведома публично, то и ответ мы дадим публичный. А дальше да, лично я теперь пытаюсь организовать онлайн-встречу оппонентов :)
Интересно, и чем отличается базис синхронной схемотехники от самосинхронной? И как же так вдруг в ИПИ РАН проектируют схемы под 65 нм, если вы утверждаете, что это невозможно?
Вы правда думаете, что все вручную разводят? Изначально конечно вручную, но свою библиотеку элементов уже создали, только вот Кэденс за просто так частные библиотеки не берет, если вы не в курсе.
ЛОЛ. А с каких пор технологический базис стал влиять на схемотехнику? Самосинхронные схемы уже проектировались в частности в ИПИ РАН в базисе 65 нм, и для того же Кэденса были реализованы IP ядра, просто они в библиотеку не включены, потому что Кэденс денег за это просит, а оно как бы при текущей раскрученности самосинхронных схем смысла не несет.
Справедливости ради отмечу, что у коллектива, в котором работает Плеханов Л.П. довольно много наработок по части самосинхронной схемотехники. Более 20 патентов по самосинхронике, включая международные патенты (США). ipiran.ru/products/patents/patents
Также решения являются не только теоретическими, но и практическими. Например, буквально недавно вышла книга «Библиотека функциональных ячеек для проектирования самосинхронных полузаказных микросхем серий 5503 и 5507» www.ozon.ru/context/detail/id/141734409
САПР «Ковчег» насколько я понимаю позволяет проектировать самосинхронные схемы в базисе БМК серий 5504 и 5507.
Кроме того, уже выполнен по технологии 65 нм самосинхронный делитель и блок FMA для процессора КОМДИВ-64.
Ок, тогда еще два вопроса:
1) Налоговая не имеет права запрашивать выписки с транзитных счетов у банков. А мы получается должны декларировать доход, при поступлении денег на транзитный счет? Если налоговая в дальнейшем решит провести проверку, и запросит мой валютный счет, естественно суммы будут различаться с тем что я задекларировал с транзитного счета — не поимею ли я проблем с этого?
2) Деньги, поступившие на транзитный счет, еще не мои. А это значит, что валютный контроль может отказать мне в переводе средств на мой валютный счет. Допустим по какой-то причине, валютный контроль отказал мне в этом. Что тогда? Платить налог на то, чего я не получил?
Выручку в иностранной валюте нужно включить при расчете налога уже на дату получения денег на транзитный счет.
А вот можно поподробнее на этом месте? Мы в своей работе учитываем в налоге только на тот день, когда деньги поступили на наш валютный счет. Поскольку транзитный счет нам не принадлежит, и у меня нет договора с Банком о создании данного счета. Кроме того, насколько я понял налоговая не имеет права запрашивать выписки с транзитных счетов у банка.
Письмо Департамента налоговой и таможенно-тарифной политики Минфина РФ от 16 октября 2012 г. N 03-02-07/1-256.
Транзитный валютный счет не открывается на основании договора банковского счета и не обладает признаками счета, определенными пунктом 2 статьи 11 Кодекса.
Так почему же Эльба рассчитывает от момента поступления на транзитный счет? Или мы все это время неправильно подавали декларацию? :)
1.
> Вот, в частности, упомянута реализация FMA (Fused Multiply Add, я так понимаю?) для Комдива.
> Получилось ли в итоге компактнее или быстрее или эффективнее по мощности, чем стандартные
> 3-5 стадий пайплайна? А насколько?
ОТВЕТ:
CC схемы изначально характеризуются избыточными аппаратурными затратами, необходимыми для реализации индицируемости элементов схемы, обеспечивающей контроль за окончанием переключения каждого фрагмента СС схемы в очередную фазу работы. Поэтому они никогда не смогут быть «компактнее» своих синхронных аналогов, если речь не идет о реализации отказоустойчивых цифровых устройств.
Вопрос о быстродействии и энергопотреблении пока остается открытым, т.к. спроектированный СС блок Fused Multiply Add еще находится в стадии изготовления. Тестирование более простого устройства — четырехразрядного Микроядра, аналога цифрового ядра микроконтроллера PIC фирмы Microchip, содержащего регистровую память, умножитель, сдвигатель и отказоустойчивый последовательно-параллельный 8-разрядный порт — изготовленного по КМОП технологии с 1.5-мкм проектными нормами на основе базового матричного кристалла 5503БЦ7У (МИЭТ, Москва), в сравнении с синхронным аналогом показало, что быстродействие СС варианта Микроядра в зоне работоспособности синхронного аналога, гарантированной изготовителем БМК, в среднем почти в 2 раза выше быстродействия синхронного аналога на статистически средней последовательности операций. Во всем диапазоне подтвержденной работоспособности протестированных кристаллов энергетическая эффективность (отношение производительности к мощности потребления) СС Микроядра по сравнению с синхронным аналогом была также в 2 раза выше.
2.
> Самый интересный вопрос: как оценивается работоспособноть схемы после производства?
> В обычной методологии есть дорогой, но понятный Design For Test со всеми регистрами
> в скан-чейне, пачкой тестовых векторов и ожидаемыми результатами комбинационной логики.
> А здесь? Скорость работы такого юнита, как я понимаю, будет варьироваться от чипа к чипу.
ОТВЕТ:
СС схемы не имеют дерева синхронизации, и проверять их работоспособность традиционным синхронным методом напрямую нельзя, т.к. время выполнения операции цифровой СС схемой зависит от содержимого операндов. Однако достаточно внести в схему проверки запрос-ответный механизм и можно применять те же самые «Design For Test со всеми регистрами в скан-чейне, пачкой тестовых векторов и ожидаемыми результатами комбинационной логики». Вся разница будет только в том, что в синхронной схеме тестовые вектора подаются на тестируемую схему строго периодически, а в СС схеме смена одно тестового вектора другим будет происходить при наличии сигнала готовности результата, выдаваемого СС схемой. Кстати сказать, и в синхронных схемах изготовленные кристаллы с целью повышения выхода годных разбраковываются на разных частотах. Возьмите, к примеру, линейку процессоров фирмы Intel: один и тот же, с точки зрения начинки, процессор продается по разной цене в зависимости от пиковой устойчивой производительности, продемонстрированной им при тестировании.
> Как это вписывается в фиксированный процессорный конвейер?
ОТВЕТ:
Вписаться в процессорный конвейер с фиксированной частотой, действительно, непросто. Но, во-первых, есть и асинхронные конвейеры (и даже целые асинхронные процессоры, например, семейство Amulet), и во-вторых, существует целый ряд приложений, в которых отдельные функциональные блоки, например, делитель, используются эпизодически и могут быть встроены в общий синхронный конвейер с помощью дополнительных блоков входного и выходного FIFO. Конечно, это задача более сложная, нежели построение традиционного синхронного конвейера, но ведь и «бонус» в виде устойчивой работы в широком диапазоне условий эксплуатации и обретения свойства обнаружения константной неисправности («залипания» выхода или входа элемента в статическом состоянии) тоже чего-то ст'оит?
4.
> Можно ли выразить эту методологию своими словами, без ссылок на литератуту и
> (особенно) википедию, для тех, кто знаком со стандартным подходом?
ОТВЕТ:
В «двух словах».
Общая методология разработки СС схемы заключается в последовательном выполнении ряда этапов.
Разработка комбинационных СС схем включает в себя следующие этапы (для «внутренних» функциональных СС схем, не требующих согласования интерфейса с синхронным окружением):
1) разработка синхронного функционального аналога в базисе логических функций и/или простейших логических ячеек;
2) выбор типа спейсера входных и выходных парафазных сигналов;
3) разработка блока преобразования бифазного кода в парафазный, если источником входных сигналов является триггерное устройство, например, регистр;
4) преобразование синхронного аналога функциональной «начинки» схемы в СС схему с помощью парафазного и/или бифазного кодирования входных, выходных и промежуточных сигналов;
4.1) «дуализация» системы логических функций синхронного аналога — дополнение каждой логической функции ее инверсией;
4.2) замена инверсных значений переменных парафазными сигналами;
5) разработка индикаторной подсхемы.
Разработка триггерных (последовательностных) СС схем включает в себя следующие этапы:
1) разработка синхронного функционального аналога;
2) преобразование синхронного аналога в СС вариант и согласование типа спейсера входных сигналов;
2.1) «дуализация» системы логических функций синхронного аналога — дополнение каждой логической функции ее инверсией;
2.2) замена инверсных значений переменных парафазными сигналами;
3) выбор способа и типа начальной предустановки;
4) разработка индикаторной подсхемы.
Результатом такой разработки является функциональное HDL-описание СС схемы на (Verilog, VHDL), которое затем может быть покрыто элементами используемой библиотеки стандартных элементов программными средствами (логическим синтезатором, например, Design Compiler, Genus) или вручную ;).
В настоящее время, к сожалению, нет готового САПР СС схем (точнее, есть для подкласса СС схем «NULL Convention Logic», имеющих самую большую избыточность среди вариантов реализации СС схем, — система BALSA), но работа в этом направлении ведется.
В конце хотелось бы еще раз напомнить о потенциальных преимуществах СС схем (ради чего всё затевалось):
а) отсутствие накладных аппаратных и энергетических расходов, связанных с реализацией «тактового дерева»;
б) быстродействие, максимально возможное в текущих условиях эксплуатации;
в) естественная устойчивость к параметрическим отказам, вызываемым изменением параметров ячеек из-за процессов старения и неблагоприятных воздействий окружающей среды;
г) максимально возможная область эксплуатации (диапазон работоспособности), определяемая только физическим сохранением переключательных свойств активных ячеек базиса реализации, и, как следствие, возможность работать на пониженном питающем напряжении;
д) естественная самопроверяемость и самодиагностируемость по отношению к множественным константным неисправностям;
е) безопасность функционирования на основе бестестовой локализации неисправностей, т.е. прекращение работы в момент отказа ячейки, исключающее выдачу недостоверной информации, с одновременной локализацией места сбоя;
ж) увеличение числа годных чипов за счет нечувствительности схемы к разбросу параметров;
и) упрощенное тестирование: функциональные тесты одновременно являются и проверочными на неисправности;
к) увеличенный срок службы за счёт нечувствительности к старению;
л) простота стыковки СС схем между собой из-за отсутствия принудительной синхронизации, отсутствие аномального арбитража;
м) высокая эффективность создания надёжных изделий;
н) простота контроля и резервирования;
о) отсутствие проблемы контроля схем контроля;
п) существенно меньший объем аппаратных затрат (не менее, чем в 1,5 раза) при одном и том же коэффициенте покрытия неисправностей при реализации отказоустойчивого устройства.
С наилучшими пожеланиями,
Ю.Дьяченко
1. Меня удивляют манеры на этом форуме: безапелляционность суждений при
отсутствии/ограниченности знаний и понимания предмета.
Споры приобретают характер перепирательств.
Так в научных кругах не принято.
Такие дискуссии вводят в заблуждение аудиторию, которая не очень в курсе, но
интересуется.
Если хотите обсуждать книгу, потрудитесь понять хотя бы идею.
2. Одному из комментаторов понадобилось больше теории.
Но, как сказано Оккамом, не придумывайте лишних сущностей, читайте
теории Маллера и Варшавского, их достаточно для создания самосинхронных (СС)
схем. Также читайте упомянутую комментатором превосходную книгу:
Мараховский В. Б., Розенблюм Л. Я., Яковлев А. В.
«Моделирование параллельных процессов. Сети Петри», СПб, 2014.
Там и про самосинхронные схемы (именно этот термин) и про роль В.И.Варшавского.
Это все событийный подход.
3. У меня — другой подход, инженерный.
Хотя все написано в книге, повторю еще раз кратко для заинтересованной
аудитории.
Упомянутые ранее свойства СС-схем:
1) отсутсвие гонок,
2) отказобезопасность
есть следствие полумодулярности. Это не ново, об этом писал еще В.И.Варшавский.
Почему-то дискутанты все про быстродействие (оно по большинству наших
разработок не хуже синхронных аналогов), энергопотребление (оно лучше
синхронных). А про бессбойность и надежность забыли.
Платой за них является повышенные затраты СС-схем в транзисторах. Ничто даром
не дается.
Таким образом, обеспечив полумодулярность, обеспечим эти два свойства схем.
Именно эти свойства хотят получить пользователи от СС-схем, в этом уникальность
таких схем.
Теперь перевернем задачу. Если неким образом сразу обеспечить эти свойства, без
событийности, то не надо майнить полумодулярность, не нужны ДП, ДИ, STG и Петри
(при всем к ним уважении).
Этот некий способ есть функциональных подход.
Делаем иерархически, на каждом уровне собираем фрагмент и проверяем полученное.
1) Собираем по В.И.Варшавскому: двухфазная работа, парафазное представление,
индикация. Здесь настолько все отработано, что придумать нечего.
2) А проверяем каждое из двух свойств по отдельности.
Отсутсвие гонок — по межсоединениям элементов, т.е. по структуре. В подходе
сформулированы для этого правила соединений. А инициаторы и континуаторы — это
не сигналы. Это провода, соединения.
Отказобезопасность:
а) на самом нижнем уровне — прямой метод: делается один расчет функций
без отказов, затем имитируется отказ каждого элемента и сравниваются резултаты
с первым расчетом. Делается вывод о том, остановится ли схема при каждом
отдельном отказе.
б) на всех остальных более верхних уровнях — также межсоединения уже фрагментов
и трансляция списков индикации внутренних переменных на выходы верхнего
фрагмента. Это еще проще, чем на самом нижнем уровне.
Хотя это не нужно для практики, но многократно проверено, что построенные так
схемы при правильном замыкании являются полумодулярными.
4. Теперь об элементах и библиотеках.
Вот примеры элементов из промышленной библиотеки СС-элементов 65нм
в Зеленограде:
A2O211AI с функцией Y = ^((A0*A1+B)*C0*C1),
O22A2O2I с функцией Y = ^((A0+A1)*(B0+B1)+C).
5. Если Рецензент желает создать 4-разрядное АЛУ (полумодулярное/SI/
самосинхронное), флаг ему в руки.
Условия таковы:
Минимальная конфигурация всех АЛУ:
а) 2 операнда (здесь по 4 бита),
б) операции:
— сложеиние/вычитание,
— сдвиги туда-сюда,
— побитовые И, ИЛИ, НЕ.
Для гарантии полумодулярности надо учесть все рабочие состояния и переходы
(например от одной команды к другой) для всех сочетаний значений операндов,
коих ровно 256.
Л.П.Плеханов
А можно на этом месте поподробнее? Действительно в США и Китае делают ставку на уровень RTL в образовании, и как следствие FPGA? А зачем? И каким образом вы это заметили?
У нас в ВлГУ преподавали ПЛИС и VHDL, но все всегда упиралось в простое, а какую задачу то решать на ПЛИС? Для большинства лабораторных поделок достаточно микроконтроллерного уровня. Тут надо отметить, что повторяется история с суперЭВМ, когда они есть. но чем их загружать непонятно (особенно эффективно, ведь мы знаем, что у них загрузка крайне невысокая по ядрам в силу закона Амдала), а мощность персоналок растет и все больше задач можно решать на них. Тоже самое и с ПЛИС, возможности микроконтроллеров растут, и все больше задач можно решать на них, та же ЦОС (DSP), сейчас вполне эффектно решается на микроконтроллерах. Нужно больше примеров реальных задач на FPGA, в этом плане спасибо вам за наводку по нейронным сетям.
elibrary.ru/item.asp?id=22105455
Там кстати и про практическую реализацию для КОМДИВа тоже есть. Насколько я помню, в БМК как раз выгодно реализовывать самосинхронные схемы, потому что процент выхода рабочих изделий выше, чем в синхронном варианте. Что-то такое было… Надо уточнять. Вы пишите, я потом по всем вопросам заставлю начальника статью написать сюда :)
Вообще самосинхроника в первую очередь должна найти применение там, где требуется надежность и есть экстримальные условия. Это вот наиболее очевидное применение. В других применениях ее достоинства менее очевидны.
selftiming.ru
В ближайшее время он будет переделан, поэтому мы его не пиарим особо. Там проблемы с кодировкой, CMS Modx и много другого. Но в целом там можно найти очень много, но правда не самой свежей информации. В том числе и зарубежные источники. Вот кстати мне статья попалась про конвейер самосинхронный, правда зарубежная статья, хотя где-то мне кажется была и наша…
selftiming.ru/files/articles/foreign/NEGATIVE/negative.pdf
На Западе регулярно всплывают статьи по асинхронным/самосинхронным схемам. Чаще всего это творения учеников Варшавского, уехавших на Запад. Но насколько я понимаю, там так называемая квазисамосинхронная схемотехника. т.е. стабильность работы схемы добивается встраиванием элементов задержки, что искусственно занижает быстродействие в целях надежного завершения переходных процессов, но по сути является неким аналогом такта. Поэтому в ИПИ РАН и был введет термин Строго-самосинхронные схемы (ССС), чтобы различать с такими квазисамосинхронными.
Я думаю опубликуем чего нибудь на Хабре развернуто.
Что касается конвейера. Насколько я представляю, то конвейер также как и самосинхронная схемотехника работает по принципу запрос-ответа. То есть, если ступени будут короткими, то эффект будет по сравнению с синхронной реализацией, если будет какая-то ступень длинной, то тут все будет также как и в синхронном случае. Во всяком случае мне так это видится. Насчет поднятой вами темы с предсказанием окончания операции, ну на вскидку вы правы. Уточню видение у начальника отдела.
Но! Кое-что сообщу. Вот например вот здесь можно почитать, несмотря на то, что статья аж 2007 года (к вопросу о популяризации науки, а точнее о полной ее отсутствии):
САМОСИНХРОННАЯ СХЕМОТЕХНИКА – ПЕРСПЕКТИВНЫЙ
ПУТЬ РЕАЛИЗАЦИИ АППАРАТУРЫ
Там в частности, проводится сравнение двух микроядер, реализованных в базисе БМК на синхронной и самосинхронной основе.
И выводы:
Что касается FMA, то я получил такой ответ, в апреле месяце мы опубликуем подробную статью на этот счет. Сейчас готовится статья на МЭС-2018, и поэтому будет полноценный развернутый ответ уже здесь на Хабре. Извините, что не ответил на Ваш вопрос полностью. Надеюсь, хотя бы частично ответил на первую часть :)
Я же свою точку зрения обозначил в предисловии. В нашем отделе достигнуты хорошие результаты по самосинхронным схемам, но как это часто бывает в постсоветской науке, никто не предает эти данные широкой огласке, только публикации в профильных конференциях и сборниках, например МЭС. Я со своей стороны считаю, что надо рассказывать о результатах и давно хотел осветить тему на Хабре. Буквально на прошлой неделе получил добро на публикацию серии статей по самосинхронике и на тебе — Сергей ajrec предоставил такой шанс опубликоваться оперативно :) Так что лично я надеюсь, это только начало и в дальнейшем будет интереснее, уже не только в рамках научных диспутов, а в рамках популяризации подхода. И последующие статьи будут рассчитаны на более широкую аудиторию. Стей тюнед. :)
Вы правда думаете, что все вручную разводят? Изначально конечно вручную, но свою библиотеку элементов уже создали, только вот Кэденс за просто так частные библиотеки не берет, если вы не в курсе.
ipiran.ru/products/patents/patents
Также решения являются не только теоретическими, но и практическими. Например, буквально недавно вышла книга «Библиотека функциональных ячеек для проектирования самосинхронных полузаказных микросхем серий 5503 и 5507»
www.ozon.ru/context/detail/id/141734409
САПР «Ковчег» насколько я понимаю позволяет проектировать самосинхронные схемы в базисе БМК серий 5504 и 5507.
Кроме того, уже выполнен по технологии 65 нм самосинхронный делитель и блок FMA для процессора КОМДИВ-64.
П.С.: Автору книги Ваш пост я переправил :)
1) Налоговая не имеет права запрашивать выписки с транзитных счетов у банков. А мы получается должны декларировать доход, при поступлении денег на транзитный счет? Если налоговая в дальнейшем решит провести проверку, и запросит мой валютный счет, естественно суммы будут различаться с тем что я задекларировал с транзитного счета — не поимею ли я проблем с этого?
2) Деньги, поступившие на транзитный счет, еще не мои. А это значит, что валютный контроль может отказать мне в переводе средств на мой валютный счет. Допустим по какой-то причине, валютный контроль отказал мне в этом. Что тогда? Платить налог на то, чего я не получил?
Дурдом по моему какой-то разве нет? :)
Одно письмо МинФина противоречит другому.
А вот можно поподробнее на этом месте? Мы в своей работе учитываем в налоге только на тот день, когда деньги поступили на наш валютный счет. Поскольку транзитный счет нам не принадлежит, и у меня нет договора с Банком о создании данного счета. Кроме того, насколько я понял налоговая не имеет права запрашивать выписки с транзитных счетов у банка.
Письмо Департамента налоговой и таможенно-тарифной политики Минфина РФ от 16 октября 2012 г. N 03-02-07/1-256.
Так почему же Эльба рассчитывает от момента поступления на транзитный счет? Или мы все это время неправильно подавали декларацию? :)