Безынерционные схемы: принципы работы и ограничения
Delay insensitive circuit
Асинхронные схемы без задержек: принцип работы, передача данных через "рукопожатия", отсутствие тактового сигнала. Эффективные вычисления в процессорах.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Задержка-нечувствительная схема – это тип асинхронной схемы, выполняющей цифровую логическую операцию, часто внутри вычислительного процессора. Вместо использования тактовых сигналов или других глобальных управляющих сигналов, последовательность вычислений в задержка-нечувствительной схеме определяется потоком данных. Данные передаются от одного элемента схемы к другому посредством "рукопожатий", или последовательностей переходов напряжения, указывающих на готовность к приёму данных или готовность их предоставить. Обычно, входы модуля схемы сигнализируют о своей готовности к приёму, что "подтверждается" подключённым выходом отправкой данных (закодированных таким образом, чтобы получатель мог напрямую определить их достоверность), и как только эти данные безопасно получены, получатель явно подтверждает приём, позволяя отправителю удалить данные, тем самым завершая рукопожатие и разрешая передачу следующего элемента данных. В задержка-нечувствительной схеме, следовательно, нет необходимости в тактовом сигнале для определения момента начала вычисления. Вместо этого, поступление данных на вход под-схемы запускает вычисление. Соответственно, следующее вычисление может быть инициировано сразу после завершения первого вычисления. Основное преимущество таких схем – их способность оптимизировать обработку операций, время выполнения которых может быть произвольным в зависимости от данных или запрошенной функции. Примером процесса с переменным временем выполнения может служить математическое деление или восстановление данных из кэша. Класс задержка-нечувствительных (DI) схем является наиболее устойчивым из всех моделей задержек асинхронных схем. Он не делает никаких предположений о задержках проводов или логических элементов. В этой модели все переходы на логических элементах или проводах должны быть подтверждены перед следующим переходом. Это предотвращает незамеченные переходы. В DI-схемах любой переход на входе логического элемента должен быть виден на его выходе, прежде чем будет разрешён следующий переход на этом входе. Это делает некоторые входные состояния или последовательности недопустимыми. Например, элемент ИЛИ никогда не должен переходить в состояние, когда оба входа равны единице, поскольку вход и выход из этого состояния не будут видны на выходе элемента. Несмотря на высокую устойчивость этой модели, создание практических схем невозможно из-за отсутствия выразимых условных конструкций в DI-схемах. Вместо этого, модель квази-задержка-нечувствительных (QDI) схем является наименьшей компромиссной моделью, способной генерировать полезные вычислительные схемы. Поэтому схемы часто ошибочно называют задержка-нечувствительными, хотя на самом деле они являются квази-задержка-нечувствительными.
A delay insensitive circuit is a type of asynchronous circuit which performs a digital logic operation often within a computing processor chip. Instead of using clock signals or other global control signals, the sequencing of computation in delay insensitive circuit is determined by the data flow. Data flows from one circuit element to another using "handshakes", or sequences of voltage transitions to indicate readiness to receive data, or readiness to offer data. Typically, inputs of a circuit module will indicate their readiness to receive, which will be "acknowledged" by the connected output by sending data (encoded in such a way that the receiver can detect the validity directly), and once that data has been safely received, the receiver will explicitly acknowledge it, allowing the sender to remove the data, thus completing the handshake, and allowing another datum to be transmitted. In a delay insensitive circuit, there is therefore no need to provide a clock signal to determine a starting time for a computation. Instead, the arrival of data to the input of a sub circuit triggers the computation to start. Consequently, the next computation can be initiated immediately when the result of the first computation is completed. The main advantage of such circuits is their ability to optimize processing of activities that can take arbitrary periods of time depending on the data or requested function. An example of a process with a variable time for completion would be mathematical division or recovery of data where such data might be in a cache. The Delay Insensitive (DI) class is the most robust of all asynchronous circuit delay models. It makes no assumptions on the delay of wires or gates. In this model all transitions on gates or wires must be acknowledged before transitioning again. This condition stops unseen transitions from occurring. In DI circuits any transition on an input to a gate must be seen on the output of the gate before a subsequent transition on that input is allowed to happen. This forces some input states or sequences to become illegal. For example OR gates must never go into the state where both inputs are one, as the entry and exit from this state will not be seen on the output of the gate. Although this model is very robust, no practical circuits are possible due to the lack of expressible conditionals in DI circuits. Instead the Quasi Delay Insensitive model is the smallest compromise model yet capable of generating useful computing circuits. For this reason circuits are often incorrectly referred to as Delay Insensitive when they are Quasi Delay Insensitive.