|
Проектирование асинхронных стейт-машин, Кто и как, каими тулзами решает эту задачу |
|
|
|
Sep 3 2014, 17:21
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Доброго времени суток,
Собственно - $subj. Изучаю вопрос проектирования чипа с использованием асинхронных пайплайнов. I.E. Sutherland, ‘‘Micropipelines’’ неплохо описывает концепцию и дает понимание о том, как работают вычислители при таком подходе, однако как делать управляющие стейт-машины в этой работе не рассматривается. Подход, предложенный в ASYNCHRONOUS FINITE STATE MACHINE DESIGN: A LOST ART? Christopher Carroll, University of Minnesota-Duluth мне не понравился. Другие книги, которые я просмотрел по теме, учат вариациям на тему той-же методологии, однако кардинально ничего не улучшают. В результате асинхронные стейт-машины представляют собой диких паучков из нандов и норов с обратными связями, крайне тяжело модифицируются, плохо верифицируются, короче - обладают целым рядом недостатков, делающих их реальное применение неоправданно дорогим и сложным.
Есть ли у кого мысли как упростить этот процесс и сделать его более простым и контролируемым?
--------------------
WBR, V. Mirgorodsky
|
|
|
|
3 страниц
< 1 2 3
|
 |
Ответов
(30 - 33)
|
Sep 23 2014, 10:11
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(v_mirgorodsky @ Sep 23 2014, 13:19)  Теперь немного о индикации. Для dual-rail domino индикация промежуточных состояний вычислительной функции не требуется. Это не очевидно в начале. Мне на старте работы с этой технологией казалось, что разные по скорости пути должны конфликтовать и разряжать высокоомные точки в процессе вычислений. Однако спайс-моделирование рипл-керри сумматора полностью развеяло мои сомнения. Дело вот в чем. Индикация сигнализирует об окончании всех переходных процессов. В BD схемах это делается в лоб: рассчитывается максимально возможная задержка с учетом PVT разброса, и с ее выхода берется как бы сигнал завершения. В Вашем случае - Вы просто симулировали, убеждались что глитчей нет, и делали вывод о правильности выбранной точки для индикации. Неплохо, но не совсем правильно. Согласно теории, Вы должны построить граф, соответствующей Вашей логической схеме, и уже анализируя каждое ребро и каждую вершину графа, делать вывод - куда нужно ставить индикатор, а куда нет. Отсюда и вывод, что Вы сделали не полную индикацию. Возможно, я и не прав. Тем не менее, я считаю, что в Вашем случае и не нужно делать полную индикацию, поскольку вся схема целиком должна работать в обычных для синхронных схем PVT corners. Т.е. от нее не требуют работы при питании 150мВ, и не нужно охлаждать до -100С. Т.е. никакого экстрима. Если Вы гарантируете работу схемы в заданных диапазонах - это самое главное. Но основных достоинств SI схем со строгой индикацией, вы лишаетесь. По крайне мере, теперь мне стало ясно, над чем Вы работаете. Возвращаясь к главному вопросу этого топика. Я занимаюсь немного другими асинхронными схемами (это уже и так уже стало понятно). Поэтому могу только посоветовать почитать об т.н. Elastic circuits. Это разработка Кишиневского, который изначально работал с Варшавским, а потом слинял в Америку, и уже лет 20 работает в Интел. Он в свое время приложил руку к открытию Российского отделения Интел, и он же придумал Elastic - некое подобие самосинхронных схем, которое интел по некоторой информации активно использует в своих разработках. Информации по этим схемам очень мало, как и вообще по технологиям интела. Но какие то статьи Кишиневского есть в интернете. Возможно, это окажется Вам полезным, именно в ключе разработки кастома под high prefomance. По работам Таубина, которые я упоминал ранее в ключе связки домино+dual rail, я не слышал о практической реализации. Так что возможно, Вы первый, кто это использует на практике.
|
|
|
|
|
Sep 23 2014, 15:11
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Цитата(Shivers @ Sep 23 2014, 12:11)  Дело вот в чем. Индикация сигнализирует об окончании всех переходных процессов. В BD схемах это делается в лоб: рассчитывается максимально возможная задержка с учетом PVT разброса, и с ее выхода берется как бы сигнал завершения. В Вашем случае - Вы просто симулировали, убеждались что глитчей нет, и делали вывод о правильности выбранной точки для индикации. Неплохо, но не совсем правильно. Согласно теории, Вы должны построить граф, соответствующей Вашей логической схеме, и уже анализируя каждое ребро и каждую вершину графа, делать вывод - куда нужно ставить индикатор, а куда нет. Отсюда и вывод, что Вы сделали не полную индикацию. Возможно, я и не прав.
Тем не менее, я считаю, что в Вашем случае и не нужно делать полную индикацию, поскольку вся схема целиком должна работать в обычных для синхронных схем PVT corners. Т.е. от нее не требуют работы при питании 150мВ, и не нужно охлаждать до -100С. Т.е. никакого экстрима. Если Вы гарантируете работу схемы в заданных диапазонах - это самое главное. Но основных достоинств SI схем со строгой индикацией, вы лишаетесь. Ну даже не знаю. Расчетный пайплайн в Монте-Карло симуляции с sigma=6 работал при напряжении питания 0.6 вольта. Разброс по температуре до -100С - не знаю, думаю, что модели, которые есть у меня, такой диапазон не поддерживают. Однако и симуляции от 0 до 125С никаких аномалий не выявили. Реальный кремний в таком режиме работать не сможет, поскольку небольшая часть проекта была собрана с использованием стандартных библиотек, а они не характеризовались для низких напряжений и широкого диапазона температур. Цитата(Shivers @ Sep 23 2014, 12:11)  По крайне мере, теперь мне стало ясно, над чем Вы работаете. Возвращаясь к главному вопросу этого топика. Я занимаюсь немного другими асинхронными схемами (это уже и так уже стало понятно). Поэтому могу только посоветовать почитать об т.н. Elastic circuits. Это разработка Кишиневского, который изначально работал с Варшавским, а потом слинял в Америку, и уже лет 20 работает в Интел. Он в свое время приложил руку к открытию Российского отделения Интел, и он же придумал Elastic - некое подобие самосинхронных схем, которое интел по некоторой информации активно использует в своих разработках. Информации по этим схемам очень мало, как и вообще по технологиям интела. Но какие то статьи Кишиневского есть в интернете. Возможно, это окажется Вам полезным, именно в ключе разработки кастома под high prefomance. По работам Таубина, которые я упоминал ранее в ключе связки домино+dual rail, я не слышал о практической реализации. Так что возможно, Вы первый, кто это использует на практике. Спасибо за информацию - попробую поискать.
--------------------
WBR, V. Mirgorodsky
|
|
|
|
|
Sep 23 2014, 15:31
|

Знающий
   
Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950

|
Цитата(v_mirgorodsky @ Sep 23 2014, 19:11)  Ну даже не знаю. Расчетный пайплайн в Монте-Карло симуляции с sigma=6 работал при напряжении питания 0.6 вольта. Разброс по температуре до -100С - не знаю, думаю, что модели, которые есть у меня, такой диапазон не поддерживают. Разумеется! Таких моделей нет ни у кого, если это не специализированное производство. В этом вся и прелесть схем DI и SI со строгой индикацией - они гарантируют работоспособность при любых PVT параметрах и не только. Единственное условие работоспособности - транзисторы должны физически переключаться. Т.е. моделировать такие схемы имеет смысл не более чем для оценки производительности в какой то конкретной точке, все остальное гарантирует математическая модель. Пока переходы открываются, схема будет работать. Если же вы делаете не полную индикацию, то математическая модель не работает, и Вы вынуждены полагаться на моделирование - ровно так же, как и в синхронных схемах. Еще раз, я не призываю Вас делать полную индикацию, ведь как Вы написали - проект гибридный. Скажем так, просто дал информацию к размышлению. На будущее.
|
|
|
|
|
Nov 30 2014, 20:59
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(zzzzzzzz @ Sep 22 2014, 12:01)  Есть ещё одна альтернатива - CML. На высоких частотах (единицы ГГц и выше) фиксированный микроток потребления дифф. каскада суммарно оказывается на порядок и более выгоден по сравнению и с синхронными, и с асинхронными решениями, работающими в полный размах. К сожалению, реальных заказчиков на что-то значительное на основе CML сейчас в РФ нет. Поэтому полноценно попробовать в реале пока не получилось, только небольшие узлы по 180 нм. Баловался в свое время с такими вещами. Этакий "ECL-like MOS", или "гигагерц на старых процессах". У таких структур есть несколько особенностей, которые, если доступен некоторый тюнинг техпроцесса (использование полуизолирующей подложки с отказом от "вытягивания" пороговых напряжений), потенциально позволяют прилично выиграть в удельном потреблении (работе переключения) за счет введения большого запирающего смещения на подложку (снижение емкостей). До серьезных проектов дело не дошло ввиду отсутствия реальной потребности. Цитата(v_mirgorodsky @ Sep 22 2014, 22:29)  Всю асинхру с burst-mode стейт машинами очень просто формализовать. Я даже думаю, что производители кадов делают с нами такую же шутку, как владельцы патентов на конный трамвай в 30-x годах прошлого столетия. Когда был изобретен электрический трамвай, они купили все патенты и положили их под сукно. Дальше они эксплуатировали свои конные трамвайные линии до тех пор, пока они не окупились и не заработали им денег на модернизацию. И только потом конные трамваи были заменены электрическими. Вот и производители софта ждут... Ну не только производители софта. Очень много народу настолько привыкло к синхронным схемам, и при "смене парадигмы" они выпадают из профессии, а это большие риски для индустрии в целом. Тем более что бонус от асинхронности не настолько уж и востребован, чтобы это стало мейнстримом. А локальные кусочки - если заказчик достаточно платежеспособен и четко понимает, чего он хочет - всегда найдется кому нарисовать руками.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|