Асинхро́нная ло́гика — раздел цифровой схемотехники, в котором работа логических элементов и модулей не синхронизируется общим тактовым генератором. В отличие от синхронных схем, где все изменения состояния привязаны к фронтам тактового сигнала, в асинхронных устройствах переходы инициируются локальными событиями — изменениями входных сигналов и квитированием (механизмом подтверждения выполнения операции).

Асинхронный подход позволяет строить системы, работающие с переменными задержками и автоматически подстраивающиеся под реальные условия (нагрузка, температура, питание). К его преимуществам относят потенциально более высокую энергоэффективность, снижение электромагнитных помех и устойчивость к вариациям параметров элементов. Недостатки связаны с большей сложностью проектирования, необходимостью специальных методов анализа и отсутствием широких инструментов автоматизации.

Асинхронная логика используется в специализированных микропроцессорах, интерфейсах передачи данных и энергосберегающих вычислительных системах.

Описание Асинхронные схемы управляются двумя сигналами: запрос, который выдается после установки входов и ответ. Относительно пары этих сигналов переходной процесс в асинхронной схеме моделируется элементом задержки, величина которой конечна и заранее неизвестна. В синхронных схемах аномалии динамического поведения (состязания и риски) маскируются с помощью тактового генератора. Для борьбы с аномалиями в асинхронных схемах используется механизм индикацииА. Г. Астановский, В. И. Варшавский, В. Б. Мараховский и др. Апериодические автоматы. М. Наука, 1976, 423 с., который фиксирует моменты окончания переходных процессов. Готовность сигналов индикации определяется величинами реальных задержек, которые могут изменяться и зависят от условий функционирования схемы (например от температуры). Физически, индикатор окончания переходных процессов в схеме может отсутствовать, тогда его роль выполняют специальные самосинхронные кодыВ. И. Варшавский, М. А. Кишиневский, В. Б. Мараховский и др. Автоматное управление асинхронными процессами в ЭВМ и дискретных системах. М.: Наука, 1986. (V. I. Varshavsky (ed.). Self-Timed Control of Concurrent Processes.)В. И. Варшавский, В. Б. Мараховский, Л. Я. Розенблюм, А. В. Яковлев, "Асинхронные параллельные процессы и самосинхронные схемы, " Электронная техника. Сер. Упр. кач-вом, стандартизация, метрология, испытания, Вып. 5. № 4, стр. 3-33, 1988.. Таким образом, по сравнению с синхронными схемами, асинхронные в общем случае, содержат больше логических элементов. Основные преимущества асинхронных схем по сравнению с синхронными это: устойчивая работа — отсутствие сбоев при любых возможных условиях эксплуатации; безопасная работа — остановка в момент появления неисправности любого элемента; отсутствие периодов вынужденного простоя в ожидании очередного синхроимпульса. Синхронные схемы практически любого уровня сложности могут быть реализованы на относительно дешевых ПЛИС. Напротив, строго-самосинхронные схемы предъявляют очень жесткие требования к внутренней структуре ПЛИС и практически единственным решением является изготовление ПЛИС на заказC. G. Wong, A. J. Martin and P. Thomas, "An architecture for asynchronous FPGAs, " IEEE Int. Conference on Field-Programmable Technology (FPT) 2003, pp. 170—177.. Однако, стоит отметить попытки реализации асинхронных схем на биполярных ПЗУM. Courvoisier, "An asynchronous logic array for the realisation of logic systems with concurrency, " Electronics Letters, vol. 14, no. 4, pp. 119—121, 1978.R. W. Hartenstein, A. Hirschbiel and M. Weber, "Patil array — A Petri net hardware implementation, " CompEuro 1988, pp. 26-33., стандартных PAL (CPLD) и FPGAK. Meekins, D. Ferguson and M. Basta, "Delay insensitive NCL reconfigurable logic, " IEEE Aerospace Conference 2002, vol. 4, pp. 1961—1966.. Поскольку стандартные FPGA являются синхронными устройствами, на них относительно легко построить схемы с согласованной задержкойZ. Hajduk, «Simple method of asynchronous circuits implementation in commercial FPGAs», Integration the VLSI Journal, vol. 59, 2017, pp. 31-41. и, сложнее, локально-синхронные (GALS) схемы. В большинстве стандартных FPGA отсутствуют средства реализации арбитров. Один из способов обойти это ограничение представлен в. В статье для реализации строго-самосинхронной схемы предлагается модифицировать FPGA Atmel AT40K с очень мелким размером элементарной ячейки (fine grained),. Реализация С-элемента на двух LUT предложена вA. Kushnerov, M. Medina and A. Yakovlev, «Towards hazard-free multiplexer based implementation of self-timed circuits ,» in IEEE Int. Symposium on Asynchronous Circuits and Systems, 2021..

Общие замечания

При проектировании цифровых устройств принято функционально разделять операционный и управляющий блоки. Операционный блок отвечает за обработку данных (data path) и получает команды от управляющего блока (control path). Во многих отношениях такое разделение достаточно условноA. V. Yakovlev, A. M. Koelmans, "Petri nets and digital hardware design, " Lectures on Petri Nets II: Applications, vol. 1492, pp 154—236, 1998.. Некоторые устройства, например, асинхронная шина, кольцевой интерфейс, арбитр с иерархической структурой и счетчик по модулю n практически не обрабатывают данные, но имеют сложный алгоритм управления. Другие устройства, такие как асинхронный банк регистров или параллельное n-разрядное АЛУ предназначены для интенсивной обработки данных, но управление ими достаточно простое. Асинхронные схемы, как и любые схемы с памятью, требуют задания начальных условий. На практике это осуществляется подачей короткого импульса сброса соответствующей полярности на запоминающие элементы. Подробнее см.. Для правильной работы асинхронных схем необходимо задать поведение внешней среды. Схема, недистрибутивная для одной внешней среды, может оказаться дистрибутивной для другой, последовательной для третьей и неполумодулярной для четвёртой.

Модели и классификация асинхронных схем

Асинхронная схема может рассматриваться как аппаратная реализация параллельной распределенной программы. Для выполнения такой программы во времени обычно необходим какой-либо механизм, в то время как асинхронной схеме этот механизм не нужен. Аналогами операторов и команд в асинхронной схеме являются логические элементы, триггеры или сложные иерархические модули. Роль данных, которыми обмениваются элементы схемы, играют переключения сигналов. Таким образом, все события в схеме уровне упорядочены во времени через причинно-следственные связи. Порядок, установленный разработчиком должен быть сохранен в схеме, то есть фактически сгенерирован, что в конечном счете обеспечивает правильное функционирование. В общем случае, классификация самосинхронных схем довольно сложна и неоднозначнаS. H. Unger, "Self-synchronizing circuits and nonfundamental mode operation, " IEEE Transactions on Computers, vol. C-26, no. 3, pp. 278—281, 1977.. Однако, существуют по крайней мере две достаточно общие модели таких схем с разными предположениями о задержке в элементах, проводах и их соединениях: Mодель с ограниченной задержкой (модель Хаффмана, Huffman model), в которой предполагается максимальная задержка распространения сигналов в схеме (наихудший случай). Для построения таких схем нужно вводить задержку в цепь обратной связи либо использовать локальную синхронизацию. Таким образом, схемы построенные в соответствии с моделью Хаффмана не являются строго самосинхронными. Пример использования модели Хаффмана — это различные варианты микроконвейеров (micropipelines) с согласованной задержкой. В общем случае нехаффменовские модели — это модели, использующие динамические языки спецификации, для формального анализа или синтеза. Операционные устройства таким образом представить затруднительно. Mодель с неограниченной задержкой до точки разветвления (модель Маллера, Muller modelВ. Б. Мараховский, Л. Я. Розенблюм, А. В. Яковлев. Моделирование параллельных процессов. Сети Петри. СПб., Профессиональная литература, 2014, 400с.), в которой предполагается, что разница в задержке проводов после разветвления меньше, чем минимальная задержка элемента. Схемы построенные в соответствии с моделью Маллера делятся на несколько классов: схемы, не зависящие от скорости (speed-independent, SI circuits); полумодулярные или/и дистрибутивные (semi-modular or/and distributive) схемы; схемы квазинечувствительные к задержкам (quasi-delay-insensitive, QDI circuits). Дистрибутивные схемы являются подмножеством полумодулярных, которые в свою очередь, являются подмножеством SI-схем. На практике, класс SI-схем эквивалентен классу QDI. Теория и методы проектирования QDI-схем хорошо развиты и, поэтому, такие схемы наиболее популярны для реализации.

Сложные асинхронные системы нельзя однозначно представить ни моделью Хаффмана ни моделью Маллера. Такие системы могут быть построены как асинхронные конечные автоматы или, в очень крупном масштабе, как асинхронные микропроцессорные комплектыА. А. Васенков и др., "Микропроцессорная вычислительная система, " Авторское свидетельство SU674025, 15/07/1979., использующие микропрограммное управлениеH. Lawson, An Asynchronous Approach to Microprogramming. Chapter 3 in Microprogramming and Firmware Engineering Methods. (ed. S. Habib), Wiley, 1988.R. Tinder, R. I. Klaus, "Microprogrammable asynchronous controllers for digital electronic systems, " Patent US5063536, Nov. 5, 1991.R. F. Tinder, R. I. Klaus, J. A. Snodderley, "High-speed microprogrammable asynchronous controller modules, " IEEE Transactions on Computers, vol. 43, no. 10, pp. 1226—1232, 1994.. Подобные комплекты представлены сериями К587Серия 587 , К588С. Т. Хвощ, Н. Н. Варлинский и Е. А. Попов, Микропроцессоры и микроЭВМ в системах автоматического управления. Справочник. Л. Машиностроение, 1987, 638 с. и К1883 (U83x в ГДР)Серия 1883/U830 . Обучение проектированию сложных последовательных самосинхронных схем целесообразно начинать с реализации простого одноразрядного процессора MC14500B и объединения таких процессоров в вычислительную структуру.

Сильная (И) и слабая (ИЛИ) обусловленность

На интуитивном уровне, обусловленность (причинная-следственная связь, causality) в асинхронных схемах — это зависимость порядка появления выходных сигналов от порядка появления входных. Эта зависимость может быть сильной (И) и слабой (ИЛИ), что соответствует схемам с полной индикацией (full indication) и досрочным получением результата (early evaluation).

Предположим, что некоторое событие имеет две причины: и . И-обусловленность предполагает, что оба события и должны иметь место, прежде чем может произойти событие . Таким образом, в случае И, каждая причина сильно предшествует результату. Аналогом такого поведения в социологии является коллективизм и товарищество. В случае ИЛИ-обусловленности событие может произойти после того, как любое из событий или произошло (здоровый индивидуализм).

Таким образом, в случае ИЛИ, результат появляется если по крайней мере одно событие из набора слабых причин произошло. Чтобы определить как ведет себя событие после того, как обе его слабые причины и произошли, вводятся понятия совместной и несовместной обусловленности (соответственно управляемый и неуправляемый индивидуализм). Для двух входных сигналов И-обусловленность моделируется с помощью гистерезисного триггера (Г-триггер, Muller C-element), заданного уравнением . Модель совместной ИЛИ-обусловленности — это элемент «включающее ИЛИ» (inclusive ORS. E. Elmaghraby, "An algebra for the analysis of generalized activity networks, " Management Science, vol. 10, no. 3, pp.494-514, 1964., EDLINCORD. A. Pucknell, "Event-driven logic (EDL) approach to digital systems representation and related design processes, " IEE Proceedings E, Computers and Digital Techniques, vol. 140, no. 2, pp. 119—126, 1993.), который использует выход гистерезисного триггера и задается уравнением . Модель полностью несовместной ИЛИ-обусловленности — это схемы, основанные на арбитрах.