Первая эффективная методика построения асинхронных конвейерных схем была предложена А. Сазерлендом в 1989 году [1]. Он представил конструкцию асинхронного микроконвейера, с помощью которого можно строить асинхронные схемы достаточно высокой сложности. Особенность его разработки в разделении схемы на управляющую и операционную части. При этом направления переключений в схеме управления и движения данных в операционной части были противоположно направленными (counter flow). В отличие от синхронных схем, где тактовый импульс приходит практически одновременно на все управляемые устройства (триггеры), осуществляя таким образом их параллельную синхронизацию, в микроконвейерах Сазерленда источник возбуждения всегда находится в начале конвейера, а информация распространяется волнами, поэтому синхронизация такого типа получила название волновой. При желании конвейер можно замкнуть – в этом случае волновое движение данных происходит циклически, без остановки. На основе микроконвейеров Сазерленда было сделано несколько разработок микропроцессоров, некоторые из которых выпускались серийно.
Методика построения микроконвейеров состояла в переделке синхронной схемы с помощью так называемой операции десинхронизации, когда дерево тактового сигнала в микросхеме заменялось локальными взаимодействиями типа «запрос-ответ» (handshake). Если рассмотреть одну стадию конвейера, состоящую из элементов логики и элементов памяти на ее выходах, то взаимодействие запрос-ответ строилось следующим образом: запрос формировался одновременно с подачей новых данных на вход логики, а ответ возвращался по защелкивании этих данных в элементах памяти после прохождения через логику. Чтобы избежать явления гонок, запрос необходимо было задержать на время, не меньшее, чем затрачиваемое на прохождение сигнала через логику. Для этого Сазерленд использовал моделирующие линии задержки (Bundled Delay), а для координации взаимодействия запрос-ответ соседних стадий конвейера использовался синхронизатор в виде С-элемента Маллера. Таким образом, основная сложность проектирования заключалась в расчете линии задержки для каждой из стадий микроконвейера, на базе которых проектировалось устройство. Следствием такого подхода был весьма ограниченный диапазон температур и напряжений, поскольку при выходе из диапазона значение задержки распространения сигнала в логике могло превысить моделирующую задержку и схема сбивалась. Вследствие этого схемы на базе микроконвейеров Сазерленда зависят от разброса задержек в элементах и проводах в той же степени, что и синхронные прототипы, из которых они переделывались. В НИИСИ РАН в основном исследуются самосинхронные схемы, которые выгодно отличаются от асинхронной архитектуры микроконвейеров Сазерленда своей способностью работать в расширенных диапазонах температур и питающих напряжений, поскольку следствием самосинхронности является независимость от задержек в элементах, а при соблюдении правила эквихронной зоны еще и независимость от задержек в проводах.
Идея разделения асинхронной схемы на подсхему управления и операционную часть получила развитие в работе [2]. Был предложен новый подход к построению систем с глобальной асинхронной синхронизацией. Система рассматри- вается как совокупность взаимодействующих блоков, для которых организовано локальное управление – синхронизация, основанная на взаимодействии запрос-ответ. Подсистема управления (синхронизации) получила название синхростратум и по своим свойствам является самосинхронной схемой. Операционная часть, состоящая из управляемых взаимодействующих блоков, названа процессорным стратумом. При этом архитектура блоков необязательно должна быть самосинхронной; допускается схемотехника и на основе микроконвейеров Сазерленда (то есть с моделирующими линиями задержек), также это могут быть и синхронные блоки. Единственное условие, предъявляемое к управляемым блокам, – формирование сигнала ответа по завершении всех переходных процессов в блоке. Системы с синхростратумом, управляющим синхронными блоками, известны как GALS (Globally Asynchronous Locally Synchronous), а более общий случай с произвольной архитектурой взаимодействующих блоков называется GALA (Globally Asynchronous Locally Arbitrary). GALA-системы наиболее универсальны, поскольку осуществляют взаимодействие блоков с различной архитектурой. Существует и другая системная архитектура, когда в синхронное окружение вставляется, к примеру, самосинхронный операционных блок. Примером таких систем служит совместная разработка НИИСИ РАН и ИПИ РАН, где в синхронный микропроцессор КОМДИВ-64 встроен квазисамосинхронный блок деления и извлечения корня двойной точности [3].
Синхростратум строится по модульному принципу, где один модуль осуществляет синхронизацию одного блока и связан с соседними модулями согласно графу соединений по линиям данных между управляемыми блоками. При этом в качестве управляемого блока может выступать не только большой операционный блок со сложной внутренней структурой, но и всего лишь одна стадия конвейера, состоящая из логики и элементов памяти на выходе. В общем случае в качестве управляемого блока может выступать автомат Мура.
Таким образом, синхростратум может делиться на верхний уровень взаимодействий на уровне системы и управляемых блоков и более низкие по иерархии уровни, осуществляющие взаимодействие внутри блоков, подблоков и т.д.
Особенностью маршрута проектирования больших самосинхронных операционных блоков является введение парафазного кодирования сигналов и двухфазной дисциплины передачи данных. Парафазное кодирование требуется для придания свойства монотонности логической функции операционного блока, а двухфазная дисциплина передачи позволяет это свойство монотонности использовать. При парафазном кодировании значения сигнала 10 и 01 являются информационными и относятся к фазе данных, а значения 00 и 11 относятся к фазе спейсера и являются служебными (спейсерными).
Синхростратумы делятся по способу синхронизации на два типа: синхростратумы с волновой синхронизацией и с параллельной синхронизацией. Для конвейерных схем целесообразно использовать волновую синхронизацию, поскольку информация в конвейере распространяется однонаправленно от входа к выходу по принципу волны. Особенность асинхронных конвейерных схем с волновой синхронизацией состоит в том, что конвейер может иметь различную степень наполненности – от пустого конвейера до плотно наполненного. При пустом конвейере первые загруженные данные имеют самую высокую скорость прохождения через конвейер. При частично наполненном конвейере наибольшая скорость достигается при работе соседних стадий конвейера в противофазе. Максимальное наполнение конвейера может быть достигнуто остановкой выгрузки данных с его выходов. При использовании специальных схемотехнических приемов [4] в случае останова конвейера максимальное наполнение может достигать 100 %, это означает, что в каждой стадии конвейера хранится уникальная информация; для сравнения: в схеме Сазерленда максимальное наполнение достигает всего 50 %, что означает уникальность хранимой информации только в каждой второй стадии конвейера.
Маршрут проектирования самосинхронных конвейерных схем
В НИИСИ РАН разработан маршрут автоматизированного проектирования самосинхронных конвейерных схем. Как показала работа коллег из ИПИ РАН, наилучшие результаты получаются при проектировании вручную. Недостатком такого подхода являются сроки – на разработку одного конвейерного блока уходит около года. В этой связи необходимо было разработать автоматизированный маршрут проектирования, использующий уже существующие синхронные наработки и существенно сокращающий время проектирования.
Для физического проектирования цифровых устройств в НИИСИ используются такие популярные САПР комплекса, как Design Compiler (Synopsys) и Encounter (Cadence). В соответствии с используемыми САПР программами стандартный маршрут физической имплементации синхронных устройств состоит из двух этапов:
– схемотехнический синтез RTL в базисе используемых библиотечных элементов (Design Compiler);
– физическое размещение, построение системы синхронизации, трассировка межсоединений (Encounter).
Фактически в процессе проектирования осуществляется преобразование логического описания RTL в топологию для производства (GDS). Существующие в САПР программы ориентированы на проектирование синхронных устройств. Для физической реализации самосинхронных схем непосредственное их применение невозможно. Однако выборочное использование их функционала дает возможность построить маршрут физического автоматизированного проектирования самосинхронных схем. Этапы такого маршрута показаны на рисунке.
Целесообразно использовать существующие синхронные наработки, поскольку экономится время на разработку логической модели, а также существенно сокращаются сроки тестирования и исправления ошибок. Идея о возможности пере- делки любой синхронной схемы в самосинхронную впервые изложена в [2]. Синтезированную схему синхронного прототипа можно переделать в самосинхронную схему, используя шаблоны. Для переделки блоков логики удобно использовать перекрестное преобразование [5], которое в процессе парафазного представления сигналов и логики строит прямой и инверсный каналы передачи данных. Также в процессе перекрестного преобразования становятся монотонными функции всех содержащихся в прямом и инверсном каналах пар логических элементов, что достигается коррекцией входных наборов на входах логических элементов с помощью дополнительных инверторов и перекрестных связей между каналами. А поскольку результирующая функция блока логики является суперпозицией функций составляющих ее элементов, результирующая функция также становится монотонной. В процессе пре- образования синхронной схемы D-триггеры заменяются самосинхронными защелками, а дерево тактового сигнала – синхростратумом, осуществляющим волновую синхронизацию, и схемой индикации окончания переходных процессов в схеме. Все операции по преобразованию синхронного прототипа в самосинхронную схему осуществляются в автоматическом режиме с помо- щью скрипта. В самосинхронной схеме используются асинхронные элементы, такие как С-элемент Миллера, которых нет в используемых библиотеках стандартных элементов. Эти элементы были созданы в САПР Virtuoso и характеризованы в САПР SiliconSmart. Таким образом, полученная в результате работы скрипта схема представляет собой нетлист в базисе как стандартных, так и асинхронных элементов и может использоваться при проектировании топологии.
Учитывая вышесказанное, отметим, что первым шагом маршрута является схемотехнический синтез RTL-описания с целью получения исходной синхронной схемы. Для этого используются Design Compiler и стандартные шаги, характерные для проектирования синхронных схем. Контроль временных параметров задается файлом с описанными на языке tcl временными ограничениями – констрейнтами.
Полученная схема с помощью программы, написанной на языке Perl, преобразуется в парафазную синхронную схему. Для нее создаются новые констрейнты, отражающие внесенные изменения. После модификации схемы требуется ее оптимизация с учетом влияния параметров межсоединений. Учитывая, что парафазный вариант, как уже говорилось, – лишь подготовка к конвертации в самосинхронный вариант, решено произвести физическое размещение данной схемы с последующей оптимизацией. В связи с тем, что для программы конвертации важно сохранение элементной структуры парафазной схемы при оптимизациях, было внесено ограничение на изменения схемы – запретить пересинтезирование участков цепи. Результатом этого этапа стали оптимизированная с учетом параметров межсоединений парафазная схема и файл с информацией о размещении ее элементов (DEF-файл).
Следующие шаги маршрута – конвертация программой, написанной на языке Perl, парафазной схемы в самосинхронную и последующая ее физическая реализация с использованием информации о размещении элементов парафазной схемы. Программа конвертации изменяет небольшое количество элементов парафазной схемы и добавляет элементы системы самосинхронизации. При размещении большая часть информации о размещении элементов парафазной схемы остается актуальной, что ускоряет работу САПР и делает процесс проектирования последовательным. Для реализации статического временного анализа схемы были предприняты следующие меры: сигнал сброса Reset объявляется синхросигналом, а для элементов, которые являются его потребителями, были сделаны два библиотечных описания: синхронное и асинхронное. Синхронное описание представляет эти элементы триггерами и позволяет САПР реализовать контроль временных параметров цепей схемы при проектировании. Асинхронное описание используется лишь при выписке временной модели (SDF-файла) устройства. Таким образом, к оптимизированной па- рафазной схеме и DEF-файлу добавляются констрейнты для самосинхронной схемы и допол- нительный библиотечный файл, отражающие вышесказанное. Данный набор позволяет осуществить в САПР Encounter три этапа топологического проектирования самосинхронный схемы:
– размещение; к уже размещенным ячейкам парафазной схемы добавляются элементы самосинхронной версии, и осуществляется оптимизация размещения всех элементов;
– построение системы синхронизации; строятся цепи распространения сигнала Reset, сама реальная система самосинхронизации при этом уже построена программой конвертации и оптимизирована во время этапа размещения;
– трассировка межсоединений; реализуется реальное (а не оценочное, как на предыдущих этапах) трассирование межсоединений с учетом конструкторских норм и более точных параметров.
Полученные после физической реализации три файла – схема, временная модель и экстракция параметров межсоединений – позволяют моделировать устройство с целью проверки работоспособности схемы и получения ее реальных временных параметров. Данные операции составляют финальный этап маршрута физического автоматизированного проектирования самосинхронных схем.
Пример физического проектирования самосинхронного блока умножения с накоплением
Разработанный маршрут проверен на задаче физической реализации блока умножения с накоплением двойной точности (FMA) в виде 4-стадийного самосинхронного конвейера с волновой синхронизацией. В качестве синхронного прототипа взят блок FMA, являющийся частью FPU процессора КОМДИВ-64 разработки НИИСИ РАН [6]. Проектирование производилось для техпроцесса фабрики TSMC 65nm. Финальные параметры разных реализаций показаны в таблице.
Параметры синхронной и самосинхронной реализации схемы
The parameters of synchronous and self-timed scheme implementation
Тип реализации блока
|
Период, нс
|
Площадь ячеек, мм2
|
Статическая мощность, мВт
|
Синхронный прототип
|
0,89
|
0,19
|
3,2
|
Самосинхронная схема
|
2,6
|
0,8
|
12,1
|
Скорость работы самосинхронной конвейерной схемы удобно оценивать по длительности периода смены фаз работающего конвейера. Период смены фаз можно измерить двумя способами: моделированием и с помощью статического временного анализа; при этом наибольшая пропускная способность самосинхронного конвейера с волновой синхронизацией соответствует наполненности на одну четверть. В моделировании в установившемся режиме все стадии конвейера работают со скоростью, равной скорости самой медленной из стадий. Таким образом, период смены фаз всей схемы можно принять равным периоду смены фаз в самой медленной из стадий. Аналогичный результат получается и при проведении статического временного анализа, поскольку результатом является длительность самого медленного пути распространения сигнала внутри стадии конвейера. Поскольку распространение информации внутри конвейера происходит волнами, соответствующими отсчетам логического времени [7], можно считать корректным сравнение скоростных показателей работы (период смены фаз с периодом тактового сигнала) самосинхронной схемы и ее синхронного прототипа. Согласно таблице, скорость самосинхронной схемы получается в 3 раза ниже, чем у синхронного аналога. Это объясняется двухфазной дисциплиной передачи данных, что автоматически удваивает время распространения сигнала через схему; влияет на скорость и схема сжатия индикации, задержка которой растет вместе с увеличением числа разрядов в стадии конвейера.
Суммарная площадь элементов самосинхронной схемы получилась примерно в 4 раза больше площади синхронного прототипа. Разница площадей также объясняется схемой сжатия индикации, но наибольшее влияние оказывает парафазное кодирование сигналов, требующее удвоенного числа элементов логики. Увеличение площади способствует пропорциональному увеличению статической мощности токов утечки в 4 раза. Рассчитать динамическую мощность потребления не удалось, поскольку стандартный способ, заключающийся в использовании результатов моделирования, не подходит ввиду отсутствия активности на сигнале сброса Reset, который используется в САПР в качестве псевдосинхросигнала. То же касается и второго способа измерения динамического потребления, заключающегося в измерении переключательной активности элементов во время тестов. Таким образом, оценка динамического потребления самосинхронных схем в САПР остается предметом дальнейших исследований.
На основании изложенного отметим следующее. Авторами описана разработка маршрута проектирования самосинхронных конвейерных схем с использованием коммерческих САПР, включаю- щего в себя моделирование, логический синтез и разработку топологии. Маршрут проектирования рассчитан на использование предварительно разработанных синхронных блоков, поэтому может использовать ранее разработанные блоки, экономя, таким образом, время на разработку, отладку и тестирование. Полученные самосинхронные блоки представляют собой полные функциональные аналоги своих синхронных прототипов с учетом таких особенностей, как парафазное кодирование проводов и двухфазная дисциплина передачи данных. На примере блока FMA проведено сравнение результатов преобразования синхронного прототипа в самосинхронный конвейер волновой синхронизацией. Скорость работы самосинхронного блока оказалась в 3 раза ниже, а площадь в 4 раза больше, чем у синхронного прототипа. Полученные результаты коррелируют с прогнозами предыдущих исследований [5].
Предметом дальнейших исследований яв- ляются динамическая мощность потребления самосинхронных конвейерных схем, а также возможность автоматического проектирования самосинхронных схем с неполной индикацией (так называемых квазисамосинхронных схем), которые следует рассматривать как некий оптимум между производительностью и скоростью, ценой значительного ограничения свойств самодиагностики и выявления неисправностей. Отдельного рассмотрения требуют и самосинхронные схемы с глобально параллельной синхронизацией, поскольку они лучше подходят для задачи построения автоматов, а не только конвейерных схем.
Литература
1. Sutherland I.E. Micropipelines. Communication of ACM, June 1989, vol. 32, no. 6, pp. 720–738.
2. Varshavsky V.I., Marakhovsky V.B., Chu T.A. Asynchronous Timing of Arrays with Synchronous Prototype. Proc. 2nd Intern. Conf. on Massively Parallel Computing Systems (MPCS’96), 1996, pp. 47–54.
3. Бобков С.Г., Горбунов М.С., Дьяченко Ю.Г., Рождественский Ю.В., Степченков Ю.А., Сурков А.В. Использование самосинхронной логики для снижения потребляемой мощности и повышения надежности микропроцессоров // Проблемы разработки перспективных микро- и наноэлектронных систем: VI Всеросс. науч.-технич. конф. (МЭС-2014): сб. науч. тр. М.: Изд-во ИППМ РАН, 2014. № 1. С. 43–48.
4. Бобков С.Г., Мараховский В.Б., Сурков А.В. Модуль синхростратума, координирующего взаимодействие асинхронных автоматов Мура при волновой обработке данных. Заявка на изобр. № 2015112623, 07.04.2015.
5. Сурков А.В. Использование Synopsys Design Compiler для синтеза самосинхронных схем // Программные продукты и системы. 2014. № 4. С. 24–30.
6. Степченков Ю.А., Рождественский Ю.В., Дьячен- ко Ю.Г., Морозов Н.В., Степченков Д.Ю., Сурков А.В. Самосинхронное устройство умножения-сложения гигафлопсного класса: варианты реализации // Проблемы разработки перспективных микро- и наноэлектронных систем: VI Всеросс. науч.-технич. конф. (МЭС-2014): сб. науч. тр. М.: Изд-во ИППМ РАН, 2014. Т. 4. С. 57–60.
7. Мараховский В.Б., Мелехин В.Ф. Проектирование средств синхронизации блоков глобально асинхронных систем с произвольной локальной синхронизацией // Информационно-управляющие системы. 2010. № 1. С. 29–38.