Мажоритарные элементы и тройное модульное резервирование
← Все статьи

Мажоритарные элементы и тройное модульное резервирование

5 мин

Что вычисляет мажоритарный элемент

Трёхвходовый мажоритарный элемент (MAJ3) выдаёт 1, когда хотя бы два из трёх его входов равны 1 — булево выражение A·B + B·C + A·C. Пятивходовый (MAJ5) обобщает идею: выдаёт 1, когда согласны хотя бы три входа из пяти. В Boolflow оба элемента доступны как готовые блоки.

От голосования к отказоустойчивости

Тройное модульное резервирование запускает одну и ту же логику трижды, в трёх физически отдельных копиях, и подаёт все три выхода на вентиль MAJ3 вместо того, чтобы напрямую использовать выход какой-то одной копии. Если одна копия повреждена или ведёт себя неправильно, две оставшиеся всё равно согласны друг с другом и «перевешивают» её голосом — выход всей системы остаётся верным, даже несмотря на отказ трети оборудования.

МодульМодульМодульMAJ3Выход

Обнаружение против исправления

Это принципиально другая гарантия по сравнению с битом чётности из статьи «Код Грея и чётность»: чётность лишь обнаруживает, что что-то пошло не так, без возможности понять, какой бит и как это исправить. Мажоритарное голосование исправляет ошибку автоматически, в том же самом такте, ценой троекратного запуска всей логики вместо добавления одного лишнего бита — поэтому такой подход встречается в аэрокосмической и медицинской электронике, а не в повседневных схемах.

Попробуйте сами

Соберите три отдельные копии небольшой схемы — например, компаратора — подайте все три выхода на блок MAJ3, затем вручную «сломайте» выход одной из копий и убедитесь, что выход MAJ3 по-прежнему совпадает с двумя остальными. Точную распиновку MAJ3 и MAJ5 смотрите в справке.

Посмотреть справку по мажоритарным элементам →