В этой статье нет вводного раздела . ( Сентябрь 2024 ) |
Плюсы
Минусы
Схемы QDI использовались для производства большого количества исследовательских микросхем, небольшая подборка которых приведена ниже.
Простейшая схема QDI — это кольцевой генератор, реализованный с использованием цикла инверторов . Каждый вентиль управляет двумя событиями на своем выходном узле. Либо подтягивающая сеть управляет напряжением узла от GND до Vdd, либо подтягивающая сеть от VDD до GND. Это дает кольцевому генератору шесть событий в общей сложности.
Несколько циклов могут быть соединены с помощью многовходового вентиля. C-элемент , который ждет совпадения своих входов перед копированием значения на свой выход, может использоваться для синхронизации нескольких циклов. Если один цикл достигает c-элемента раньше другого, он вынужден ждать. Синхронизация трех или более таких циклов создает конвейер , позволяющий циклам запускаться один за другим.
Если известно, что циклы являются взаимоисключающими , то их можно соединить с помощью комбинационной логики ( И , ИЛИ ). Это позволяет активному циклу продолжаться независимо от неактивных циклов и обычно используется для реализации кодировок, нечувствительных к задержкам .
Для более крупных систем это слишком сложно для управления. Поэтому они разделены на процессы . Каждый процесс описывает взаимодействие между набором циклов, сгруппированных в каналы , а граница процесса разбивает эти циклы на порты каналов . Каждый порт имеет набор узлов запроса , которые, как правило, кодируют данные, и узлов подтверждения , которые, как правило, не содержат данных. Процесс, который управляет запросом, является отправителем , в то время как процесс, который управляет подтверждением, является получателем . Теперь отправитель и получатель взаимодействуют с использованием определенных протоколов [синтез 1] , и последовательный запуск действий связи от одного процесса к другому моделируется как токен , проходящий по конвейеру.
Для правильной работы схемы QDI требуется, чтобы события ограничивались монотонными цифровыми переходами. Нестабильность ( сбой ) или помехи ( короткое замыкание ) могут привести систему в недопустимые состояния, что приведет к неверным/нестабильным результатам, тупиковой ситуации и повреждению схемы. Ранее описанная циклическая структура, которая обеспечивает стабильность, называется подтверждением . Переход T1
подтверждает другой T2
, если существует причинно-следственная последовательность событий от T1
до T2
, которая предотвращает T2
возникновение до тех пор, пока T1
не завершится. [время 1] [время 2] [время 3] Для схемы DI каждый переход должен подтверждать каждый вход в связанный с ним вентиль. Для схемы QDI есть несколько исключений, в которых свойство стабильности поддерживается с использованием предположений о синхронизации, гарантированных ограничениями компоновки, а не причинностью. [компоновка 1]
Изохронная вилка — это проводная вилка, в которой один конец не подтверждает переход, управляющий проводом. Хороший пример такой вилки можно найти в стандартной реализации полубуфера предварительной зарядки. Существует два типа изохронных вилок. Асимметричная изохронная вилка предполагает, что переход на неподтверждающем конце происходит до или после того, как переход был замечен на подтверждающем конце. Симметричная изохронная вилка гарантирует, что оба конца наблюдают переход одновременно. В схемах QDI каждый переход, управляющий проводной вилкой, должен быть подтвержден по крайней мере одним концом этой вилки. Эта концепция была впервые введена А. Дж. Мартином для различения асинхронных схем, которые удовлетворяют требованиям QDI, и тех, которые им не удовлетворяют. Мартин также установил, что невозможно спроектировать полезные системы без включения по крайней мере некоторых изохронных вилок, учитывая разумные предположения о доступных элементах схемы. [синхронизация 3] Изохронные вилки долгое время считались самым слабым компромиссом вдали от полностью нечувствительных к задержкам систем.
Фактически, каждый вентиль КМОП имеет одну или несколько внутренних изохронных вилок между подтягивающими и подтягивающими сетями. Подтягивающая сеть распознает только восходящие переходы входов, тогда как подтягивающая сеть распознает только нисходящие переходы.
Предположение о состязательном пути также имеет дело с разветвлениями проводов, но в конечном итоге слабее, чем предположение о изохронном разветвлении. В какой-то момент в цепи после разветвления проводов два пути должны снова слиться в один. Состязательный путь — это тот, который не подтверждает переход на разветвлении проводов. Это предположение утверждает, что переход, распространяющийся по подтверждающему пути, достигает точки слияния после того, как он достиг бы состязательного пути. [время 2] Это эффективно расширяет предположение о изохронном разветвлении за пределы разветвленного провода и в соединенные пути вентилей.
Это предположение немного смягчает требования QDI в стремлении к производительности. Элемент C фактически представляет собой три вентиля, логику, драйвер и обратную связь и является неинвертирующим. Это становится громоздким и дорогим, если требуется большой объем логики. Теорема подтверждения гласит, что драйвер должен подтверждать логику. Предположение о тайминге полупериода предполагает, что драйвер и обратная связь стабилизируются до того, как входам логики будет разрешено переключаться. [тайминг 4] Это позволяет разработчику использовать выход логики напрямую, минуя драйвер и делая более короткие циклы для обработки с более высокой частотой.
В большом количестве литературы по автоматическому синтезу используются атомарные сложные вентили . Предполагается, что дерево вентилей полностью переходит, прежде чем любой из входов на листьях дерева снова сможет переключиться. [время 5] [время 6] Хотя это предположение позволяет инструментам автоматического синтеза обходить проблему перетасовки пузырьков, надежность этих вентилей, как правило, трудно гарантировать.
Relative Timing — это фреймворк для создания и внедрения произвольных предположений о времени в схемах QDI. Он представляет предположение о времени как виртуальную дугу причинности для завершения разорванного цикла в графе событий. Это позволяет разработчикам рассуждать о предположениях о времени как о методе реализации схем с более высокой пропускной способностью и энергоэффективностью, систематически жертвуя надежностью. [timing 7] [timing 8]
Коммуникационные аппаратные процессы (CHP) — это программная нотация для схем QDI, вдохновленная коммуникационными последовательными процессами (CSP) Тони Хоара и защищенными командами Эдсгера В. Дейкстры . Синтаксис описан ниже в порядке убывания приоритета. [синтез 2]
skip
ничего не делает. Он просто выполняет функцию заполнителя для условий пропуска.a+
устанавливает напряжение узла a
на Vdd, а a-
напряжение a
на GND.a := e
вычисляет выражение e
, а затем присваивает полученное значение переменной a
.X!e
оценивает выражение e
, а затем отправляет полученное значение по каналу X
. X!
Это отправка без данных.X?a
не появится допустимое значение, а затем присваивает это значение переменной . Это прием без данных. X
a
X?
#X
возвращает значение, ожидающее на канале, X
не выполняя прием.S * T
выполняет фрагменты процесса S
одновременно и T
в одно и то же время.S, T
выполняет фрагменты процесса S
в T
любом порядке.S; T
выполняет фрагменты процесса, S
за которыми следует T
.S || T
выполняет фрагменты процесса S
и T
в любом порядке. Это функционально эквивалентно внутренней параллельной композиции, но с более низким приоритетом.[G0 -> S0[]G1 -> S1[]...[]Gn -> Sn]
реализует выбор, в котором G0,G1,...,Gn
есть сторожевые элементы , которые являются булевыми выражениями без данных или выражениями данных, которые неявно приводятся с использованием проверки действительности и S0,S1,...,Sn
являются фрагментами процесса . Детерминированный выбор ждет, пока один из сторожевых элементов не выполнит оценку Vdd, а затем переходит к выполнению связанного с сторожевым элементом фрагмента процесса . Если два сторожевых элемента выполнятся в Vdd в течение одного и того же временного окна, возникает ошибка. [G]
является сокращенной формой [G -> skip]
и просто реализует ожидание.[G0 -> S0:G1 -> S1:...:Gn -> Sn]
такой же, как и детерминированный выбор, за исключением того, что более чем одному охраннику разрешено оценивать Vdd. Выполняется только фрагмент процесса , связанный с первым охранником, оцениваемым как Vdd.*[G0 -> S0[]G1 -> S1[]...[]Gn -> Sn]
или *[G0 -> S0:G1 -> S1:...:Gn -> Sn]
похоже на связанные операторы выбора, за исключением того, что действие повторяется, пока любой охранник оценивается как Vdd. *[S]
является сокращением для *[Vdd -> S]
и реализует бесконечное повторение.Расширения рукопожатия являются подмножеством CHP, в котором протоколы каналов расширяются до охранников и назначений, и разрешены только операторы без данных. Это промежуточное представление к синтезу схем QDI.
Сеть Петри (PN) — это двудольный граф позиций и переходов, используемый в качестве модели для схем QDI. Переходы в сети Петри представляют собой переходы напряжения на узлах схемы. Места представляют собой частичные состояния между переходами. Маркер внутри позиции действует как программный счетчик, определяющий текущее состояние системы, и в сети Петри может одновременно существовать несколько токенов. Однако для схем QDI наличие нескольких токенов в одном месте является ошибкой.
Когда переход имеет токены на каждой входной позиции, этот переход включен. Когда переход срабатывает, токены удаляются из входных позиций, а новые токены создаются на всех выходных позициях. Это означает, что переход с несколькими выходными позициями является параллельным разделением, а переход с несколькими входными позициями является параллельным слиянием. Если у позиции есть несколько выходных переходов, то любой из этих переходов может сработать. Однако, сделав это, вы удалите токен из позиции и предотвратите срабатывание любого другого перехода. Это эффективно реализует выбор. Следовательно, позиция с несколькими выходными переходами является условным разделением, а позиция с несколькими входными переходами является условным слиянием.
Системы событий-правил (ER) используют похожую нотацию для реализации ограниченного подмножества функциональности сетей Петри, в которых есть переходы и дуги, но нет мест. Это означает, что базовая система ER не имеет выбора, реализованного условными разбиениями и слияниями в сети Петри, и дизъюнкции, реализованной условными слияниями. Базовая система ER также не допускает обратной связи.
В то время как сети Петри используются для моделирования логики схемы, система ER моделирует синхронизацию и трассировку выполнения схемы, записывая задержки и зависимости каждого перехода. Это обычно используется для определения того, какие вентили должны быть быстрее, а какие могут быть медленнее, оптимизируя размер устройств в системе. [sizing 1]
Системы повторяющихся событий-правил (RER) добавляют обратную связь, складывая след обратно на себя, отмечая точку сгиба галочкой. [размер 1] Системы расширенных событий-правил (XER) добавляют дизъюнкцию. [размер 2]
Правило производства определяет либо подтягивающую, либо подтягивающую сеть вентиля в схеме QDI и следует синтаксису G -> S
, в котором G
есть охранник, как описано выше, и S
есть одно или несколько назначений без данных параллельно, как описано выше. В состояниях, не охваченных охранниками, предполагается, что назначенные узлы остаются в своих предыдущих состояниях. Этого можно достичь с помощью статиста либо слабой, либо комбинационной обратной связи (показано красным). Самым простым примером является C-элемент , в котором охранники не покрывают состояния, где A
и B
не являются одинаковыми значениями.
Существует множество методов построения схем QDI, но их можно разделить на две стратегии.
Формальный синтез был введен Аленом Мартином в 1991 году. [синтез 2] Метод включает в себя выполнение последовательных преобразований программы, которые, как доказано, поддерживают корректность программы. Цель этих преобразований — преобразовать исходную последовательную программу в параллельный набор взаимодействующих процессов, каждый из которых хорошо отображает один этап конвейера. Возможные преобразования включают:
После того, как программа разложена на набор небольших коммуникационных процессов, она расширяется до расширений рукопожатия (HSE) . Действия каналов расширяются в их составляющие протоколы, а многобитовые операторы расширяются в их реализации схем. Затем эти HSE перетасовываются для оптимизации реализации схемы за счет сокращения количества зависимостей. [синтез 5] После того, как перетасовка определена, переменные состояния добавляются для устранения неоднозначности состояний схемы для полного кодирования состояния . [синтез 6] Затем для каждого назначения сигнала выводятся минимальные защитные функции, что создает правила производства. Для этого существует несколько методов, включая усиление защитных функций , ослабление защитных функций и другие. [синтез 2] Правила производства не обязательно реализуемы в КМОП на этом этапе, поэтому перетасовка пузырьков перемещает инверсии сигналов по схеме в попытке сделать это. Однако перетасовка пузырьков не гарантирует успеха. Именно здесь в программах автоматизированного синтеза обычно используются атомарные сложные вентили.
Вторая стратегия, синтаксически направленная трансляция , была впервые представлена в 1988 году Стивеном Бернсом. Она ищет более простой подход за счет производительности схемы путем сопоставления каждого синтаксиса CHP с вручную скомпилированным шаблоном схемы. [синтез 7] Синтез схемы QDI с использованием этого метода строго реализует поток управления, как предписано программой. Позднее это было принято исследовательскими лабораториями Philips в их реализации Tangram. В отличие от подхода Стивена Бернса с использованием шаблонов схем, Tangram сопоставил синтаксис со строгим набором стандартных ячеек, что облегчило как компоновку, так и синтез. [синтез 8]
Гибридный подход, представленный Эндрю Лайнсом в 1998 году, преобразует последовательную спецификацию в параллельные спецификации, как в формальном синтезе, но затем использует предопределенные шаблоны конвейера для реализации этих параллельных процессов, аналогичных синтаксически-управляемому переводу. [синтез 9] Лайнс описал три эффективных логических семейства или перестановки .
Слабое условие полубуфера (WCHB) является самым простым и быстрым из логических семейств с 10 циклами конвейера переходов (или 6 с использованием предположения о тайминге полуцикла). Однако он также ограничен более простыми вычислениями, поскольку более сложные вычисления, как правило, требуют длинных цепочек транзисторов в подтягивающей сети прямого драйвера. Более сложные вычисления, как правило, можно разбить на более простые этапы или обрабатывать напрямую с помощью одного из семейств предварительной зарядки. WCHB является полубуфером, что означает, что конвейер N
этапов может содержать не более N/2
токенов одновременно. Это связано с тем, что сброс запроса на выход Rr
должен ждать до сброса ввода Lr
.
Предварительная зарядка полубуфера (PCHB) использует логику домино для реализации более сложного этапа вычислительного конвейера. Это устраняет проблему длинной подтягивающей сети, но также вводит изохронную вилку на входных данных, которая должна быть разрешена позже в цикле. Это приводит к тому, что цикл конвейера становится 14-переходным (или 10-переходным, если использовать предположение о тайминге полуцикла).
Предварительно заряженные полные буферы (PCFB) очень похожи на PCHB, но корректируют фазу сброса перетасовки для реализации полной буферизации. Это означает, что конвейер из N
стадий PCFB может содержать не более N
токенов одновременно. Это связано с тем, что сброс запроса на вывод Rr
допускается до сброса запроса на ввод Lr
.
Наряду с обычными методами проверки тестирования, покрытия и т. д., схемы QDI могут быть проверены формально путем инвертирования формальной процедуры синтеза для получения спецификации CHP из схемы. Затем эту спецификацию CHP можно сравнить с оригиналом, чтобы доказать ее правильность. [проверка 1] [проверка 2]