В электронике метастабильность — это способность цифровой электронной системы сохраняться в течение неограниченного времени в неустойчивом равновесном или метастабильном состоянии. [1] В цифровых логических схемах цифровой сигнал должен находиться в определенных пределах по напряжению или току , чтобы представлять логический уровень «0» или «1» для правильной работы схемы; если сигнал находится в запрещенном промежуточном диапазоне, это может вызвать неправильное поведение логических элементов, к которым применяется сигнал. В метастабильных состояниях схема может быть неспособна перейти на стабильный логический уровень «0» или «1» в течение времени, необходимого для правильной работы схемы. В результате схема может действовать непредсказуемо и может привести к сбою системы, иногда называемому «сбоем». [2] Метастабильность — это пример парадокса Буридана .
Метастабильные состояния являются неотъемлемыми чертами асинхронных цифровых систем и систем с более чем одним независимым тактовым доменом. В самосинхронных асинхронных системах арбитры предназначены для того, чтобы позволить системе продолжить работу только после устранения метастабильности, поэтому метастабильность является нормальным состоянием, а не состоянием ошибки. [3] В синхронных системах с асинхронными входами синхронизаторы спроектированы таким образом, чтобы вероятность сбоя синхронизации была приемлемо малой. [4] Метастабильных состояний можно избежать в полностью синхронных системах, если соблюдены требования к настройке входа и времени удержания на триггерах.
Простой пример метастабильности можно найти в защелке SR NOR , когда оба входа Set и Reset являются истинными (R=1 и S=1), а затем оба переходят в ложное состояние (R=0 и S=0) примерно в одно и то же время. время. Оба выхода Q и Q изначально удерживаются на уровне 0 одновременными входами Set и Reset. После того, как входы Set и Reset станут ложными, триггер (в конечном итоге) перейдет в одно из двух стабильных состояний: одно из Q и Q истинно, а другое ложно. Конечное состояние будет зависеть от того, какой из R или S первым вернется к нулю в хронологическом порядке, но если оба перейдут примерно в одно и то же время, результирующая метастабильность с промежуточными или колебательными уровнями выходного сигнала может занять сколь угодно много времени, чтобы перейти в стабильное состояние.
В электронике арбитр — это схема, предназначенная для определения того, какой из нескольких сигналов поступит первым. Арбитры используются в асинхронных схемах для упорядочения вычислительной деятельности для общих ресурсов и предотвращения одновременных неверных операций. Арбитры используются на входах полностью синхронных систем, а также между тактовыми доменами в качестве синхронизаторов входных сигналов. Хотя они могут свести к минимуму возникновение метастабильности до очень низких вероятностей, все арбитры, тем не менее, имеют метастабильные состояния, которые неизбежны на границах областей входного пространства состояний, что приводит к различным результатам. [5]
Методы проектирования синхронных схем позволяют создавать цифровые схемы, устойчивые к режимам отказов, которые могут быть вызваны метастабильностью. Тактовый домен определяется как группа триггеров с общими часами. Такие архитектуры могут формировать схему, гарантированно свободную от метастабильности (ниже определенной максимальной тактовой частоты, выше которой возникает первая метастабильность, а затем полный отказ), предполагая, что общий тактовый сигнал имеет малую асимметрию . Однако даже в этом случае, если система зависит от каких-либо непрерывных воздействий, они, вероятно, будут уязвимы для метастабильных состояний. [6]
Схемы синхронизатора используются для уменьшения вероятности метастабильности при получении асинхронного входного сигнала или при передаче сигналов между разными тактовыми доменами. Синхронизаторы могут иметь форму каскада D-триггеров (например, сдвиговый регистр на рисунке 3). [7] Хотя каждый этап триггера добавляет дополнительный тактовый цикл задержки к входному потоку данных, каждый этап предоставляет возможность устранить метастабильность. Такие синхронизаторы можно спроектировать так, чтобы снизить метастабильность до незначительной, но терпимой скорости.
Триггеры Шмитта также можно использовать для снижения вероятности метастабильности, но, как продемонстрировал исследователь Чейни в 1979 году, даже триггеры Шмитта могут стать метастабильными. Далее он утверждал, что невозможно полностью исключить возможность метастабильности несинхронизированных входов в течение конечного времени и что «существует множество теоретических и экспериментальных доказательств того, что область аномального поведения существует для каждого устройства, имеющего два стабильных состояния. " Перед лицом этой неизбежности аппаратное обеспечение может лишь снизить вероятность метастабильности, а системы могут попытаться изящно обрабатывать случайные метастабильные события. [8]
Хотя метастабильность хорошо изучена и известны архитектурные методы управления ею, она сохраняется как режим отказа в оборудовании.
Серьезные компьютерные и цифровые аппаратные ошибки, вызванные метастабильностью, имеют увлекательную социальную историю. Многие инженеры отказываются верить, что бистабильное устройство может войти в состояние, которое не является ни истинным , ни ложным, и имеет положительную вероятность того, что оно останется неопределенным в течение любого заданного периода времени, хотя и с экспоненциально уменьшающейся вероятностью с течением времени. [9] [10] [11] [12] [13] Однако метастабильность является неизбежным результатом любой попытки отобразить непрерывную область в дискретную. На границах непрерывной области между областями, которые отображаются на разные дискретные выходные данные, точки, произвольно расположенные рядом друг с другом в непрерывной области, отображают различные выходные данные, принимая решение о том, какой выход выбрать, представляет собой сложный и потенциально длительный процесс. [14] Если входные сигналы на арбитр или триггер поступают почти одновременно, схема, скорее всего, пересечет точку метастабильности. Метастабильность остается плохо изученной в некоторых кругах, и различные инженеры предложили свои собственные схемы, которые, как утверждается, решают или фильтруют метастабильность; обычно эти схемы просто перемещают возникновение метастабильности из одного места в другое. [15] Микросхемы, использующие несколько источников тактовой частоты, часто тестируются с помощью тестовых тактовых импульсов, которые имеют фиксированные фазовые соотношения, а не с независимыми тактовыми генераторами, дрейфующими друг за другом, которые будут наблюдаться во время работы. Обычно это явно предотвращает видимость или сообщение о метастабильном режиме отказа, который может возникнуть в полевых условиях. При правильном тестировании на метастабильность часто используются часы с немного разными частотами, что обеспечивает правильную работу схемы.