Асинхронная схема - Asynchronous circuit

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

Синхронная и асинхронная логика

Цифровые логические схемы можно разделить на комбинационную логику , в которой выходные сигналы зависят только от текущих входных сигналов, и последовательную логику , в которой выход зависит как от текущего входа, так и от прошлых входов. Другими словами, последовательная логика - это комбинационная логика с памятью . Практически все практические цифровые устройства требуют последовательной логики. Последовательную логику можно разделить на два типа: синхронную логику и асинхронную логику.

  • В синхронных логических схемах электронный генератор генерирует повторяющуюся серию равноотстоящих импульсов, называемых тактовым сигналом . Тактовый сигнал подается на все элементы памяти в схеме, называемые триггерами . Выход триггеров изменяется только при срабатывании фронта тактового импульса, поэтому изменения логических сигналов по всей схеме начинаются одновременно, через равные промежутки времени, синхронизированные часами. Выход всех элементов памяти в цепи называется состоянием схемы. Состояние синхронной схемы изменяется только по тактовому импульсу. Изменения сигнала требуют определенного времени для распространения через комбинационные логические элементы схемы. Это называется задержкой распространения . Период тактового сигнала делается достаточно длинным, чтобы на выходе всех логических элементов было время установить стабильные значения до следующего тактового импульса. Пока выполняется это условие, синхронные схемы будут работать стабильно, поэтому их легко проектировать.
Однако недостатком синхронных схем является то, что они могут быть медленными. Максимально возможная тактовая частота определяется логическим путем с наибольшей задержкой распространения, называемым критическим путем . Таким образом, логические пути, которые быстро завершают свои операции, большую часть времени простаивают. Другая проблема заключается в том, что широко распространенный тактовый сигнал потребляет много энергии и должен работать независимо от того, получает ли схема входы или нет.
  • В асинхронных схемах нет тактового сигнала, и состояние схемы изменяется, как только меняются входы. Поскольку асинхронным схемам не нужно ждать тактового импульса, чтобы начать обработку входных данных, они могут быть быстрее, чем синхронные схемы, и их скорость теоретически ограничена только задержками распространения логических вентилей. Однако асинхронные схемы сложнее спроектировать, и в них возникают проблемы, которых нет в синхронных схемах. Это связано с тем, что результирующее состояние асинхронной схемы может быть чувствительным к относительному времени прихода входов на вентили. Если переходы на двух входах происходят почти в одно и то же время, схема может перейти в неправильное состояние в зависимости от небольших различий в задержках распространения затворов. Это называется состоянием гонки . В синхронных схемах эта проблема менее серьезна, поскольку состояния гонки могут возникать только из-за входов извне синхронной системы, называемых асинхронными входами . Хотя были построены некоторые полностью асинхронные цифровые системы (см. Ниже), сегодня асинхронные схемы обычно используются в нескольких критических частях синхронных систем, в которых скорость очень высока, например, в схемах обработки сигналов.

Теоретическая основа

Первоначальная теория асинхронных схем была создана Дэвидом Э. Мюллером в середине 1950-х годов. Позднее эта теория была изложена в известной книге Раймонда Миллера «Теория переключений».

Термин « асинхронная логика» используется для описания множества стилей проектирования, в которых используются различные предположения о свойствах схемы. Они варьируются от объединенной модели задержки, в которой используются «обычные» элементы обработки данных с завершением, обозначенным локально созданной моделью задержки, до нечувствительной к задержке конструкции, в которой могут быть размещены произвольные задержки через элементы схемы. Последний стиль имеет тенденцию давать схемы, которые больше, чем реализации связанных данных, но которые нечувствительны к компоновке и параметрическим изменениям и, таким образом, являются «правильными по конструкции».

Асинхронная логика - это логика, необходимая для проектирования асинхронных цифровых систем. Эти функции работают без тактового сигнала, поэтому нельзя полагаться на то, что отдельные логические элементы будут иметь дискретное истинное / ложное состояние в любой момент времени. Булевой (двузначной) логики для этого недостаточно, поэтому требуются расширения. Карл Фант разработал теоретическое рассмотрение этого в своей работе « Логически детерминированный дизайн» в 2005 году, в котором использовалась четырехзначная логика с нулевым и промежуточным значениями в качестве дополнительных значений. Эта архитектура важна, потому что она почти нечувствительна к задержкам . Скотт Смит и Джиа Ди разработали вариант логики нулевого соглашения Fant со сверхнизким энергопотреблением, который включает многопороговую КМОП . Этот вариант называется многопороговой логикой нулевого соглашения (MTNCL) или, альтернативно, логикой соглашения о сне (SCL). Вадим Васюкевич разработал другой подход, основанный на новой логической операции, которую он назвал венъюнкцией . При этом учитывается не только текущее значение элемента, но и его история.

Сети Петри - привлекательная и мощная модель для рассуждений об асинхронных схемах (см. Сеть Петри: Последующие модели параллелизма ). Особенно полезный тип интерпретируемых сетей Петри, называемый графами переходов сигналов (STG), был независимо предложен в 1985 году Леонидом Розенблюмом, Алексом Яковлевым и Там-Ань Чу. С тех пор STG были тщательно изучены в теории и на практике, что привело к разработке популярных программных инструментов для анализа и синтеза асинхронных схем управления, таких как Petrify и Workcraft.

Вслед за сетями Петри были разработаны другие модели параллелизма, которые могут моделировать асинхронные схемы, включая модель акторов и вычисления процессов .

Преимущества

Асинхронные схемы продемонстрировали множество преимуществ, включая как схемы с квази-нечувствительностью к задержке (QDI) (которые, по общему мнению, являются наиболее «чистой» формой асинхронной логики, которая сохраняет вычислительную универсальность), так и менее чистые формы асинхронных схем, которые используют временные ограничения для более высокой производительности и меньшей площади и мощности:

  • Надежная обработка метастабильности из арбитров .
  • Функциональные блоки с более высокой производительностью, которые обеспечивают завершение в среднем (т. Е. Зависящее от данных), а не в наихудшем случае. Примеры включают спекулятивное завершение, которое применялось для разработки параллельных сумматоров префиксов быстрее, чем синхронные, и высокопроизводительный сумматор с плавающей запятой двойной точности, который превосходит ведущие синхронные конструкции.
  • Досрочное завершение цепи, когда известно, что входы, которые еще не поступили, не имеют значения.
  • Более низкое энергопотребление, потому что ни один транзистор никогда не переключается, если он не выполняет полезные вычисления. Epson сообщает о снижении энергопотребления на 70% по сравнению с синхронным дизайном. Кроме того, драйверы часов можно удалить, что может значительно снизить энергопотребление. Однако при использовании определенных кодировок асинхронным схемам может потребоваться большая площадь, что может привести к увеличению энергопотребления, если основной процесс имеет плохие свойства утечки (например, глубокие субмикронные процессы, используемые до введения диэлектриков с высоким κ ).
  • «Эластичные» конвейеры , которые обеспечивают высокую производительность при плавной обработке переменных входных и выходных скоростей и несогласованных задержек между этапами конвейера.
  • Свобода от постоянно ухудшающихся трудностей распределяющего высокого вентилятора тотального , газораспределительного чувствительного тактового сигнал.
  • Лучшая модульность и возможность компоновки.
  • Требуется гораздо меньше предположений о производственном процессе (большинство предположений - это временные предположения).
  • Скорость контура адаптируется к изменяющимся условиям температуры и напряжения, а не фиксируется на скорости, требуемой предположениями наихудшего случая.
  • Невосприимчивость к изменчивости перехода от транзистора к транзистору в производственном процессе, что является одной из наиболее серьезных проблем, с которыми сталкивается полупроводниковая промышленность по мере усадки кристаллов.
  • Менее серьезные электромагнитные помехи (EMI). Синхронные схемы создают сильные электромагнитные помехи в полосе частот на (или очень близко) их тактовой частоте и ее гармониках; асинхронные схемы генерируют шаблоны электромагнитных помех, которые гораздо более равномерно распределены по спектру.
  • В асинхронных схемах локальная сигнализация устраняет необходимость в глобальной синхронизации, которая использует некоторые потенциальные преимущества по сравнению с синхронными. Они продемонстрировали потенциальные характеристики в отношении низкого энергопотребления, повторного использования конструкции, улучшенной помехоустойчивости и электромагнитной совместимости. Асинхронные схемы более устойчивы к изменениям технологического процесса и колебаниям внешнего напряжения.
  • Меньшая нагрузка на распределительную сеть. Синхронные схемы имеют тенденцию потреблять большое количество тока прямо на фронте тактового сигнала и вскоре после этого. Количество переключающихся узлов (и, следовательно, количество потребляемого тока) быстро падает после фронта тактового сигнала, достигая нуля непосредственно перед следующим фронтом тактового сигнала. В асинхронной схеме времена переключения узлов не коррелируются таким образом, поэтому потребление тока имеет тенденцию быть более равномерным и менее прерывистым.

Недостатки

  • Накладные расходы области, вызванные увеличением количества элементов схемы (транзисторов). В некоторых случаях асинхронный проект может потребовать удвоения ресурсов синхронного проекта из-за добавления схем обнаружения завершения и проектирования для тестирования.
  • Этому стилю обучается меньше людей по сравнению с синхронным дизайном.
  • Синхронные проекты по своей сути легче тестировать и отлаживать, чем асинхронные. Однако эту позицию оспаривает Фант, который утверждает, что кажущаяся простота синхронной логики является артефактом математических моделей, используемых в общих подходах к проектированию.
  • Стробирование часов в более традиционных синхронных схемах является приближением асинхронного идеала, и в некоторых случаях его простота может перевесить преимущества полностью асинхронной конструкции.
  • Производительность (скорость) асинхронных схем может быть снижена в архитектурах, требующих полноты ввода (более сложный путь данных).
  • Отсутствие специализированных коммерческих инструментов EDA, ориентированных на асинхронное проектирование .

Коммуникация

Существует несколько способов создания асинхронных каналов связи, которые можно классифицировать по их протоколу и кодировке данных.

Протоколы

Существует два широко используемых семейства протоколов, которые различаются способом кодирования связи:

  • двухфазное рукопожатие (также известное как двухфазный протокол, кодирование без возврата к нулю (NRZ) или сигнализация перехода): связь представлена ​​любым проводным переходом; переходы с 0 на 1 и с 1 на 0 считаются связью.
  • четырехфазное рукопожатие (также известное как четырехфазный протокол или кодирование с возвратом к нулю (RZ)): обмен данными представлен переходом по проводам с последующим сбросом; последовательность перехода от 0 к 1 и обратно к 0 считается отдельной связью.
Иллюстрация двух- и четырехфазного рукопожатия. Вверху: отправитель и получатель общаются с помощью простых сигналов запроса и подтверждения. Отправитель управляет линией запроса, а получатель - линией подтверждения. В центре: временная диаграмма двух, двухфазной связи. Внизу: временная диаграмма одно-, четырехфазной связи.

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

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

Кодирование данных

В асинхронных схемах широко используются два кодирования данных: кодирование связанных данных и кодирование с несколькими рельсами.

Другой распространенный способ кодирования данных - использовать несколько проводов для кодирования одной цифры: значение определяется проводом, на котором происходит событие. Это позволяет избежать некоторых предположений о задержке, необходимых для кодирования связанных данных, поскольку запрос и данные больше не разделены.

Кодирование связанных данных

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

В процессе работы отправитель сигнализирует о доступности и достоверности данных запросом. Затем получатель указывает завершение подтверждением, указывая, что он может обрабатывать новые запросы. То есть запрос связан с данными, отсюда и название "связанные данные".

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

4-фазный пакетный обмен данными. Вверху: отправитель и получатель соединены линиями данных, линией запроса и линией подтверждения. Внизу: временная диаграмма пакетной передачи данных. Когда строка запроса мала, данные считаются недействительными и могут быть изменены в любое время.

Многорельсовое кодирование

Многорельсовое кодирование использует несколько проводов без взаимно-однозначного отношения между битами и проводами и отдельного сигнала подтверждения. Доступность данных указывается самими переходами по одному или нескольким проводам данных (в зависимости от типа многорельсового кодирования) вместо сигнала запроса, как при кодировании связанных данных. Это дает то преимущество, что передача данных нечувствительна к задержкам. Две общие многорельсовые кодировки - одна горячая и двойная. Одноразовое (также известное как 1-из-n) кодирование представляет собой число в базе n с обменом данными по одному из n проводов. Кодирование с двумя шинами использует пары проводов для представления каждого бита данных, отсюда и название «двойная шина»; один провод в паре представляет битовое значение 0, а другой - битовое значение 1. Например, двухбитовое число, закодированное с помощью двух шин, будет представлено двумя парами проводов для четырех проводов в целом. Во время передачи данных происходит обмен данными по одному из каждой пары проводов, чтобы указать биты данных. В общем случае кодирование m n представляет данные как m слов с основанием n.

Схема двойного рельса и связи 1-из-4. Вверху: отправитель и получатель соединены линиями данных и линией подтверждения. В центре: временная диаграмма отправителя, сообщающего получателю значения 0, 1, 2 и затем 3 с кодировкой 1 из 4. Внизу: временная диаграмма отправителя, сообщающего те же значения получателю с помощью двухканального кодирования. Для этого конкретного размера данных кодирование двойной шины совпадает с кодированием 2x1-of-2.

Двухканальное кодирование с четырехфазным протоколом является наиболее распространенным и также называется кодированием с тремя состояниями , поскольку оно имеет два действительных состояния (10 и 01 после перехода) и состояние сброса (00). Еще одно распространенное кодирование, которое приводит к более простой реализации, чем однофазное двухфазное двухканальное кодирование , представляет собой четырехуровневое кодирование или двухканальное кодирование с кодированием уровня, и использует бит данных и бит четности для достижения двухфазного протокол.

Асинхронный ЦП

Асинхронные процессоры - одна из нескольких идей для радикального изменения конструкции процессора .

В отличие от обычного процессора, безтактный процессор (асинхронный ЦП) не имеет центральных часов для координации прохождения данных по конвейеру. Вместо этого этапы ЦП координируются с помощью логических устройств, называемых «конвейерными элементами управления» или «секвенсорами FIFO». По сути, конвейерный контроллер синхронизирует следующий этап логики, когда существующий этап завершен. Таким образом, центральные часы не нужны. На самом деле может быть даже проще реализовать высокопроизводительные устройства в асинхронной, а не синхронизированной логике:

  • компоненты могут работать с разной скоростью на асинхронном процессоре; все основные компоненты процессора с тактовой частотой должны оставаться синхронизированными с центральными часами;
  • традиционный ЦП не может работать быстрее, чем ожидаемая производительность самого медленного этапа / инструкции / компонента в худшем случае. Когда асинхронный ЦП завершает операцию быстрее, чем ожидалось, на следующем этапе можно немедленно начать обработку результатов, а не ждать синхронизации с центральными часами. Операция может завершиться быстрее, чем обычно, из-за атрибутов обрабатываемых данных (например, умножение может быть очень быстрым при умножении на 0 или 1, даже при выполнении кода, созданного наивным компилятором) или из-за наличия более высокого напряжения или установка скорости автобуса, или более низкая температура окружающей среды, чем «нормальная» или ожидаемая.

Сторонники асинхронной логики считают, что эти возможности будут иметь следующие преимущества:

  • меньшее рассеивание мощности для заданного уровня производительности, и
  • максимально возможные скорости исполнения.

Самый большой недостаток ЦП без тактовой частоты состоит в том, что большинство инструментов проектирования ЦП предполагают наличие ЦП с тактовой частотой (т. Е. Синхронную схему ). Многие инструменты «применяют методы синхронного проектирования». Создание ЦП без часов (разработка асинхронной схемы) включает в себя изменение инструментов проектирования для обработки логики без часов и выполнение дополнительных тестов, чтобы гарантировать, что конструкция избегает метастабильных проблем. Группа разработчиков AMULET , например, разработала инструмент под названием LARD, чтобы справиться со сложной конструкцией AMULET3.

Несмотря на сложность этого, было создано множество асинхронных процессоров, в том числе:

  • ORDVAC и (одинаковый) Illiac I (1951)
  • Johnniac (1953)
  • WEIZAC (1955)
  • Киевский (1958). Советская машина, использующая язык программирования с указателями намного раньше, чем они пришли на язык PL / 1.

  • ILLIAC II (1962)
  • Университет Виктории Манчестера построен Атлас (1964)
  • Мэйнфреймы ICL 1906A и 1906S, входящие в серию 1900, продаваемые ICL с 1964 года более десяти лет.
  • Польские ЭВМ КАР-65 и К-202 (1965 и 1970 гг. Соответственно)
  • Процессоры Honeywell 6180 (1972 г.) и Series 60 Level 68 (1981 г.), на которых Multics выполнялась асинхронно
  • Модули советских бит-срезных микропроцессоров (конец 1970-х) выпускались как К587, К588 и К1883 (U83x в ГДР)
  • Асинхронный микропроцессор Caltech, первый в мире асинхронный микропроцессор (1988);
  • АРМ -implementing АМУЛЕТ (1993 и 2000);
  • асинхронная реализация MIPS R3000, получившая название MiniMIPS (1998);
  • несколько версий процессора XAP экспериментировали с различными стилями асинхронного проектирования: XAP с пакетом данных, XAP «1 из 4» и XAP «1 из 2» (2003?);
  • ARM-совместимый процессор (2003?), разработанный ZC Yu, SB Furber и LA Plana; «разработан специально для изучения преимуществ асинхронного проектирования для приложений, чувствительных к безопасности»;
  • процессор «сетевой асинхронной архитектуры» (2005 г.), который выполняет подмножество набора команд архитектуры MIPS ;
  • процессор ARM996HS (2006 г.) от Handshake Solutions
  • процессор HT80C51 (2007?) от Handshake Solutions
  • многоядерный процессор SEAforth (2008 г.) от Charles H. Moore .
  • многоядерный процессор GA144 (2010 г.) от Charles H. Moore .
  • TAM16: 16-битное IP-ядро асинхронного микроконтроллера (Tiempo)
  • Асинхронное ядро DLX Aspida . Асинхронный процессор DLX с открытым исходным кодом (ASPIDA) успешно реализован как в версиях ASIC, так и в версиях FPGA.

ILLIAC II был первым полностью асинхронен, скорость независимого дизайном процессора когда - либо построенный; это был самый мощный компьютер в то время.

Модули передачи регистров DEC PDP-16 (ок. 1973 г.) позволили экспериментатору конструировать асинхронные 16-битные элементы обработки. Задержки для каждого модуля были фиксированными и основывались на наихудшем временном режиме модуля.

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

В 2004 году Epson выпустила первый в мире гибкий микропроцессор под названием ACT11, 8-битный асинхронный чип. Синхронные гибкие процессоры работают медленнее, поскольку изгиб материала, на котором изготавливается микросхема, вызывает дикие и непредсказуемые изменения задержек различных транзисторов, для которых везде следует предполагать наихудшие сценарии, и все должно синхронизироваться с наихудшей скоростью. Процессор предназначен для использования в смарт-картах , чьи микросхемы в настоящее время ограничены по размеру до достаточно малых, чтобы они могли оставаться совершенно жесткими.

В 2014 году IBM анонсировала микросхему, разработанную SyNAPSE , которая работает в асинхронном режиме с одним из самых высоких показателей количества транзисторов среди всех когда-либо производимых микросхем. Чип IBM потребляет на порядки меньше энергии, чем традиционные вычислительные системы в тестах на распознавание образов.

Смотрите также

использованная литература

дальнейшее чтение