В электронике метастабильность — это способность цифровой электронной системы сохраняться в течение неограниченного времени в нестабильном равновесии или метастабильном состоянии. [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] Микросхемы, использующие несколько источников тактовых импульсов, часто тестируются с помощью тестовых тактовых импульсов, которые имеют фиксированные фазовые соотношения, а не независимых тактовых импульсов, дрейфующих друг мимо друга, которые будут наблюдаться во время работы. Обычно это явно предотвращает возможность обнаружения или сообщения о метастабильном режиме отказа, который возникнет в полевых условиях. Правильное тестирование на метастабильность часто использует тактовые импульсы с немного разными частотами и обеспечивает правильную работу схемы.