Цифрлық жүйедегі тұрақсыздық және метастабильдік күй
Metastability (electronics)
Метастабильность электроники: неустойчивое состояние цифровых схем, приводящее к сбоям. Причины, последствия и связь с парадоксом Буридана. Электроника, логика.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Цифрлық электрондық жүйенің тұрақсыз тепе-теңдікте мәңгілік қалу қабілеті
Ability of a digital electronic system to remain in unstable equilibrium forever
Электроникада, метатұрақсыздық – цифрлық электрондық жүйенің тұрақсыз тепе-теңдік немесе метатұрақсыз күйде шексіз уақыт бойы сақталу мүмкіндігі. Цифрлық логикалық тізбектерде, дұрыс жұмыс істеуі үшін цифрлық сигналдың '0' немесе '1' логикалық деңгейін білдіру үшін белгілі бір кернеу немесе ток шектерінде болуы қажет; егер сигнал рұқсат етілмеген аралық диапазонға түсетін болса, бұл сигнал қолданылатын логикалық қақпаларда қате мінез-құлыққа алып келуі мүмкін. Метатұрақсыз күйде, тізбек дұрыс жұмыс істеуге қажетті уақыт ішінде тұрақты '0' немесе '1' логикалық деңгейге орналаса алмайды. Нәтижесінде, тізбек болжамсыз әрекет ете алады және кейде "құбылу" деп аталатын жүйелік сәтсіздікке әкелуі мүмкін. Метатұрақсыздық – Буриданның есегі парадоксының бір мысалы. Метатұрақсыз күйлер асинхронды цифрлық жүйелердің және бірнеше тәуелсіз сағаттық домендері бар жүйелердің ішкі қасиеттері болып табылады. Өзін-өзі уақыттайтын асинхронды жүйелерде, арбитрлер метатұрақсыздық шешілгеннен кейін ғана жүйенің жұмысын жалғастыруға мүмкіндік беретіндей етіп жасалады, сондықтан метатұрақсыздық қателік емес, қалыпты жағдай болып саналады. Асинхронды кірістері бар синхронды жүйелерде, синхронизаторлар синхронизация сәтсіздігінің ықтималдығын қабылданатын деңгейге дейін төмендету үшін жасалған. Метатұрақсыз күйлерді толық синхронды жүйелерде, егер кіріс орнату және ұстау уақытының талаптары флип-флоптар үшін орындалса, болдырмауға болады.
In electronics, metastability is the ability of a digital electronic system to persist for an unbounded time in an unstable equilibrium or metastable state. In digital logic circuits, a digital signal is required to be within certain voltage or current limits to represent a '0' or '1' logic level for correct circuit operation; if the signal is within a forbidden intermediate range it may cause faulty behavior in logic gates the signal is applied to. In metastable states, the circuit may be unable to settle into a stable '0' or '1' logic level within the time required for proper circuit operation. As a result, the circuit can act in unpredictable ways, and may lead to a system failure, sometimes referred to as a "glitch". Metastability is an instance of the Buridan's ass paradox. Metastable states are inherent features of asynchronous digital systems, and of systems with more than one independent clock domain. In self timed asynchronous systems, arbiters are designed to allow the system to proceed only after the metastability has resolved, so the metastability is a normal condition, not an error condition. In synchronous systems with asynchronous inputs, synchronizers are designed to make the probability of a synchronization failure acceptably small. Metastable states are avoidable in fully synchronous systems when the input setup and hold time requirements on flip flops are satisfied.
Мысал
Метақалыптылықтың қарапайым мысалын SR NOR құлпынан табуға болады, егер Set және Reset кірістері екеуі де 1-ге тең болса (R=1 және S=1), содан кейін екеуі де дерлік бір уақытта 0-ге өтетін болса (R=0 және S=0). Екі шығыс, Q және , бастапқыда бір мезгілдегі Set және Reset кірістерімен 0-де тұрақты болады. Set және Reset кірістері 0-ге өзгергеннен кейін, триггер (әдетте) екі тұрақты күйдің біріне жетеді, біреуінде Q және 1-ге тең, екіншісінде 0-ге тең. Соңғы күй R немесе S кірістерінің қайсысы бірінші болып 0-ге оралғандығына байланысты болады, бірақ егер екеуі де шамамен бір уақытта өтетін болса, нәтижесінде пайда болатын метастабильділік, аралық немесе тербелісті шығыс деңгейлерімен, тұрақты күйге жету үшін белгісіз уақытқа созылуы мүмкін.
A simple example of metastability can be found in an SR NOR latch, when both Set and Reset inputs are true (R=1 and S=1) and then both transition to false (R=0 and S=0) at about the same time. Both outputs Q and are initially held at 0 by the simultaneous Set and Reset inputs. After both Set and Reset inputs change to false, the flip flop will (eventually) end up in one of two stable states, one of Q and true and the other false. The final state will depend on which of R or S returns to zero first, chronologically, but if both transition at about the same time, the resulting metastability, with intermediate or oscillatory output levels, can take arbitrarily long to resolve to a stable state.
Төрешілер
Электрондық құрылғыларда арбитр – бірнеше сигналдың қайсысы бірінші келетінін анықтауға арналған тізбек. Арбитрлер асинхронды тізбектерде ортақ ресурстарға қол жеткізу үшін есептеу процестерін реттеуге қолданылады, бұл бір уақытта дұрыс емес операциялардың пайда болуын болдырмайды. Арбитрлер толық синхронды жүйелердің кірісінде, сондай-ақ сағат домендері арасында кіріс сигналдарын синхронизациялау үшін қолданылады. Олар метастабильділіктің пайда болуын өте төмен деңгейге дейін төмендетсе де, барлық арбитрлердің сәйкес метастабильді күйлері болады, олар кіріс күй кеңістігінің шекараларында әртүрлі нәтижелерге алып келеді және олардан құтылу мүмкін емес.
In electronics, an arbiter is a circuit designed to determine which of several signals arrive first. Arbiters are used in asynchronous circuits to order computational activities for shared resources to prevent concurrent incorrect operations. Arbiters are used on the inputs of fully synchronous systems, and also between clock domains, as synchronizers for input signals. Although they can minimize the occurrence of metastability to very low probabilities, all arbiters nevertheless have metastable states, which are unavoidable at the boundaries of regions of the input state space resulting in different outputs.
Синхронды схемалар
Синхронды схемаларды жобалау әдістері, метатұрақсыздықтан туындаған қателіктерге төзімді цифрлық схемаларды құруға мүмкіндік береді. Сағат домені – ортақ сағаты бар триггерлердің тобы. Мұндай архитектуралар, төмен қисықтығы бар ортақ сағат болған жағдайда, метатұрақсыздықтан толық қорғалған схеманы жасауға кепілдік береді (белгілі бір ең жоғары сағат жиілігінің шегінде, одан асып кеткенде алдымен метатұрақсыздық, содан кейін толыққанды сәтсіздік пайда болады). Дегенмен, егер жүйе үздіксіз кіріс сигналдарына тәуелді болса, онда олар метатұрақсыз күйге түсуі мүмкін. Синхронизатор схемалары асинхронды кіріс сигналдарын қабылдау немесе сигналдарды әртүрлі сағат домендері арасында беру кезінде метатұрақсыздық ықтималдығын азайту үшін қолданылады. Синхронизаторлар D-триггерлерінің каскады түрінде болуы мүмкін (мысалы, 3-суреттегі регистр). Әрбір триггер сатысы кіріс деректері ағынына қосымша сағат циклының кешігуін қосса да, әрбір саты метатұрақсыздықты шешу мүмкіндігін ұсынады. Мұндай синхронизаторларды метатұрақсыздықты елеусіз деңгейге дейін азайту үшін жасауға болады. Шмидт триггерлері де метатұрақсыздық ықтималдығын азайту үшін қолданылуы мүмкін, бірақ 1979 жылы зерттеуші Чейни көрсеткендей, тіпті Шмидт триггерлері де метатұрақсыз болуы мүмкін. Ол сондай-ақ, шекті уақыт ішінде синхронды емес кіріс сигналдарынан метатұрақсыздықты толық жою мүмкін емес екенін және "екі тұрақты күйі бар әрбір құрылғы үшін аномальды мінез-құлық аймағы бар екендігіне көптеген теориялық және тәжірибелік дәлелдер бар" деп мәлімдеді. Осы қажеттілікке байланысты, аппараттық құралдар тек метатұрақсыздық ықтималдығын азайта алады, ал жүйелер кездейсоқ метатұрақсыз оқиғаларды басқаруға тырыса алады.
Synchronous circuit design techniques make digital circuits that are resistant to the failure modes that can be caused by metastability. A clock domain is defined as a group of flip flops with a common clock. Such architectures can form a circuit guaranteed free of metastability (below a certain maximum clock frequency, above which first metastability, then outright failure occur), assuming a low skew common clock. However, even then, if the system has a dependence on any continuous inputs then these are likely to be vulnerable to metastable states. Synchronizer circuits are used to reduce the likelihood of metastability when receiving an asynchronous input or when transferring signals between different clock domains. Synchronizers may take the form of a cascade of D flip flops (e. g. the shift register in Figure 3). Although each flip flop stage adds an additional clock cycle of latency to the input data stream, each stage provides an opportunity to resolve metastability. Such synchronizers can be engineered to reduce metastability to a negligible but tolerable rate. Schmitt triggers can also be used to reduce the likelihood of metastability, but as the researcher Chaney demonstrated in 1979, even Schmitt triggers may become metastable. He further argued that it is not possible to entirely remove the possibility of metastability from unsynchronized inputs within finite time and that "there is a great deal of theoretical and experimental evidence that a region of anomalous behavior exists for every device that has two stable states." In the face of this inevitability, hardware can only reduce the probability of metastability, and systems can try to gracefully handle the occasional metastable event.
Ақаулық режімдері
Метақалыптылық жақсы түсініліп, оны басқарудың архитектуралық әдістері белгілі болса да, ол жабдықтарда ақаулық түрі ретінде қалып қояды. Компьютерлік және сандық аппараттық қателердің метастабильділік салдарынан туындауының қызықты әлеуметтік тарихы бар. Көптеген инженерлер бистабильді құрылғының нағыз да, жалған да емес күйге ене алатынына және кез келген уақыт аралығында белгісіздік күйінде қалуының оң ықтималдығына сенуден бас тартты, бірақ уақыт өте келе бұл ықтималдық экспоненциалды түрде төмендейді. Дегенмен, метастабильділік – үздіксіз доменді дискретті доменге бейімдеудің қажетті салдары. Үздіксіз домендегі әртүрлі дискретті шығыстарға бейімделетін аймақтар арасындағы шекараларда, үздіксіз домендегі өте жақын нүктелер әртүрлі шығыстарға бейімделеді, соның салдарынан қай шығысты таңдау керектігін анықтау қиын және ұзаққа созылатын процеске айналады. Егер арбитрге немесе флип-флопқа кіретін сигналдар дерлік бір уақытта келсе, тізбек метастабильділік нүктесінен өтуі мүмкін. Метастабильділік кейбір салаларда толыққанды түсінілмейді, сондықтан әртүрлі инженерлер метастабильділікті шешу немесе сүзу үшін өздерінің тізбектерін ұсынады; көбінесе бұл тізбектер метастабильділіктің пайда болуын бір жерден екінші жерге ығыстырады. Бірнеше сағат көздерін пайдаланатын чиптер көбінесе жұмыс істеу кезінде байқалатын бір-біріне қатысты өзгеріп отыратын тәуелсіз сағаттардың орнына, белгілі фазалық қатынастары бар сынақ сағаттарымен сыналады. Бұл, әдетте, өрісте пайда болатын метастабильділік ақаулығының көрінуіне немесе хабарлануына кедергі келтіреді. Метастабильділікті дұрыс тексеру үшін әдетте біршама әртүрлі жиіліктері бар сағаттар қолданылады және тізбектің дұрыс жұмыс істеуі қамтамасыз етіледі.
Although metastability is well understood and architectural techniques to control it are known, it persists as a failure mode in equipment. Serious computer and digital hardware bugs caused by metastability have a fascinating social history. Many engineers have refused to believe that a bistable device can enter into a state that is neither true nor false and has a positive probability that it will remain indefinite for any given period of time, albeit with exponentially decreasing probability over time. However, metastability is an inevitable result of any attempt to map a continuous domain to a discrete one. At the boundaries in the continuous domain between regions which map to different discrete outputs, points arbitrarily close together in the continuous domain map to different outputs, making a decision as to which output to select a difficult and potentially lengthy process. If the inputs to an arbiter or flip flop arrive almost simultaneously, the circuit most likely will traverse a point of metastability. Metastability remains poorly understood in some circles, and various engineers have proposed their own circuits said to solve or filter out the metastability; typically these circuits simply shift the occurrence of metastability from one place to another. Chips using multiple clock sources are often tested with tester clocks that have fixed phase relationships, not the independent clocks drifting past each other that will be experienced during operation. This usually explicitly prevents the metastable failure mode that will occur in the field from being seen or reported. Proper testing for metastability frequently employs clocks of slightly different frequencies and ensuring correct circuit operation.