삼중구조 TMR: 다수결 투표로 단일 장애를 마스킹하는 설계

삼중구조 TMR의 다수결 투표 원리, 신뢰성 계산, 단일 장애 마스킹과 투표기 설계 시 고려할 한계를 정리한다.

2026-08-14 · 최초 발행 2026-01-12

모듈 하나의 오류를 다수 결과로 가리는 방식

TMR(Triple Modular Redundancy)은 같은 작업을 수행하는 독립 모듈의 결과를 다수결로 판정하는 삼중화 중복 기법이다. 한 모듈이 일시적 또는 영구적으로 잘못된 값을 내더라도, 나머지 결과가 일치하면 그 오류를 출력에서 제외할 수 있다.

이 구조는 단일 장애를 자동으로 마스킹해야 하는 환경에서 높은 신뢰성과 가용성을 제공한다. 항공우주와 원자력 발전처럼 안전 요구가 높은 시스템에서 사용되는 이유도 여기에 있다.

Result 1Result 2Result 3MajorityVoteMismatchInput(Triplicated)Module 1Module 2Module 3VoterOutputErrorDetection

입력은 세 모듈에 동시에 복제되어 전달된다. 각 모듈은 같은 기능을 독립적으로 수행하고, 투표기(Voter)는 세 결과를 비교해 다수결 값을 출력한다. 결과가 일치하지 않으면 오류 검출과 로깅에도 활용할 수 있다.

일치한 결과가 출력으로 선택되는 과정

정상 상태에서는 모든 모듈이 같은 입력을 받아 같은 결과를 만든다. 투표기는 세 결과가 모두 일치하는지 확인한 뒤 해당 값을 출력한다.

3/3 Match25 = 25 = 25Input: 5Module 1: 25Module 2: 25Module 3: 25VoterOutput: 25

한 모듈이 잘못된 결과를 내더라도 나머지 두 모듈의 값이 같다면 투표 결과는 유지된다. 장애 모듈의 결과는 마스킹되고, 불일치는 오류 로그로 남길 수 있다.

2/3 Match25 = 25 XInput: 5Module 1: 25Module 2: 25Module 3: X(Fault)VoterOutput: 25Error Log:Module 3 Failed

투표기는 다수결과 불일치를 함께 다룬다

기본 판정은 2-out-of-3 방식이다. 세 결과 중 두 값이 일치하면 그 값을 채택하며, 최소 두 개의 일치 결과가 정족수가 된다. 논리식은 Output = (M1 AND M2) OR (M2 AND M3) OR (M1 AND M3)로 표현할 수 있다.

Truth Table:
M1  M2  M3  | Output
0   0   0   | 0
0   0   1   | 0
0   1   0   | 0
0   1   1   | 1
1   0   0   | 0
1   0   1   | 1
1   1   0   | 1
1   1   1   | 1

투표 로직은 결과 쌍을 순서대로 비교해 일치한 값을 출력한다. 어느 쌍도 일치하지 않으면 다수 결과가 없는 오류 상태가 된다.

Voter LogicYesNoYesNoYesNoM1, M2, M3CompareM1 == M2?Output M1CompareM2 == M3?Output M2CompareM1 == M3?Output M1Error:No Majority

아날로그 신호에서는 세 값의 중간값(Median)을 고르는 방식으로 투표할 수 있다. 점진적인 오류에 대응할 수 있다는 장점이 있지만, 추가 하드웨어 복잡도가 따른다. 센서 데이터와 제어 신호가 적용 대상이다.

하드웨어와 소프트웨어에서의 TMR

하드웨어 TMR은 CPU, 메모리, I/O 컨트롤러처럼 물리 구성 자체를 중복한다. 하드웨어 장애에 강한 대신 비용과 전력 소비가 높다.

Hardware TMRInputProcessor 1Processor 2Processor 3Memory 1Memory 2Memory 3HardwareVoterOutput

소프트웨어 TMR은 동일 프로그램을 세 프로세스로 실행하고, 소프트웨어 투표 로직으로 결과를 고른다. N-Version Programming을 적용하면 소프트웨어 버그 검출이 가능하지만, 동일한 버그가 모든 구현에 존재하면 검출할 수 없다.

하이브리드 TMR은 하드웨어와 소프트웨어 TMR을 조합해 여러 레벨에 보호 계층을 둔다. 하드웨어 및 소프트웨어 장애에 모두 대응할 수 있지만 비용은 매우 높다.

신뢰성은 다수 결과가 남을 확률로 계산한다

단일 모듈의 신뢰성을 R이라고 할 때 TMR의 신뢰성은 다음과 같다.

단일 모듈 신뢰성: R
TMR 신뢰성: R_TMR = 3R² - 2R³

예시: R = 0.9 (90%)
R_TMR = 3(0.9)² - 2(0.9)³ = 2.43 - 1.458 = 0.972 (97.2%)

장애가 없는 경우와 한 모듈만 실패한 경우에는 시스템이 정상 동작한다. 두 모듈 이상이 실패하면 다수결을 형성할 수 없어 시스템은 실패 상태가 된다.

3R²(1-R)3R(1-R)²(1-R)³TMR SystemNo Failure(3 OK)1 Module Fails(2 OK, 1 Failed)2 Modules Fail(1 OK, 2 Failed)3 Modules Fail(0 OK, 3 Failed)System OKSystem OK(Masked)System FAILSystem FAIL

장애를 숨기는 능력과 그 대가

TMR은 투표기를 통해 장애 모듈을 즉시 마스킹하므로 서비스 중단 없이 단일 장애를 허용한다. 연산마다 불일치를 확인할 수 있어 장애 모듈 식별, 장애 유형과 위치 진단, 예방 보수를 위한 교체에도 도움이 된다.

반면 투표기는 단일 장애점(SPOF)이 될 수 있다. 투표기가 실패하면 시스템 전체가 실패할 수 있으므로, 투표기 삼중화 또는 듀플렉스 구성을 검토해야 한다.

Voter FailsModule 1Voter(SPOF)Module 2Module 3System Fails

공통 원인 장애도 TMR만으로 해결되지 않는다. 동일한 설계 결함, 전원 장애나 과열 같은 동일 환경, 잘못된 입력은 모든 모듈에 동시에 영향을 줄 수 있다. N-Version Programming과 다양한 구현은 이를 완화하는 방법이다.

하드웨어 비용, 전력 소비, 물리적 공간, 유지보수 비용은 각각 3배가 된다. TMR을 적용할 때는 이 비용과 단일 장애 마스킹의 필요성을 함께 판단해야 한다.

중복도와 대기 모듈을 늘리는 방법

N-Modular Redundancy(NMR)는 모듈 수를 늘리고 과반수 투표를 적용하는 일반화된 구조다. 5MR은 2개 장애를, 7MR은 3개 장애를 허용한다. 신뢰성 향상과 비용 사이의 트레이드오프가 설계의 핵심이다.

InputModule 1Module 2Module 3...Module NVoter(N/2 + 1)Output

대기 중복(Standby)을 결합하면 TMR의 즉각적인 대응과 장애 모듈 교체에 따른 재구성을 함께 활용할 수 있다. 이 구성에는 4개 이상 모듈이 필요하다.

Activateon FailureFailureDetectedTMR(Active)VoterSpare(Standby)OutputSwitchLogic

안전이 중요한 제어 시스템의 적용 범위

항공우주에서는 Boeing 777, Airbus A320의 비행 제어 컴퓨터에 삼중 또는 사중 중복이 적용된다. 비행 안전을 보장해야 하며 단일 장애를 허용할 수 없고, DO-178C 같은 엄격한 인증 프로세스를 거친다.

원자력 발전에서는 원자로 제어와 안전 시스템에 TMR 이상의 중복도를 적용한다. 절대적 안전성과 인간 생명 보호가 요구되며 엄격한 안전 규정을 준수해야 한다.

의료 장비에서는 심박조율기와 인공호흡기 같은 생명 유지 장치의 핵심 기능에 TMR을 적용할 수 있다. 환자 안전과 무중단 작동이 요구되며 FDA, CE 의료기기 인증이 관련된다.

자율주행 제어 시스템에서는 브레이크, 조향, 센서 융합에 센서 데이터 TMR과 제어 명령 TMR을 적용한다. 승객 안전과 실시간 응답이 요구되고, 수백만 마일 테스트로 검증한다.

물리적 독립성과 검증 범위를 설계에 포함한다

모듈 사이의 독립성은 물리적 거리, 독립 전원 공급, 냉각 분리, EMI 차폐를 통해 확보한다. 같은 원인으로 모든 모듈이 함께 실패하지 않도록 만드는 조건이다.

투표기는 고신뢰성이면서도 검증하기 쉬운 단순한 로직이어야 한다. 실시간 시스템에서는 지연을 최소화해야 하며, 투표기 자체의 중복화도 고려 대상이다.

검증은 각 모듈에 장애를 주입하는 것에서 시작한다. 모든 장애 시나리오의 커버리지를 확인하고, 시간 경과에 따른 신뢰성을 보는 장기 테스트와 실제 운영 환경 테스트를 이어간다.

DesignVerificationFaultInjectionCoverageAnalysisFieldTestingContinuousMonitoring

듀플렉스와 비교할 때 달라지는 장애 대응

TMR은 3개 모듈과 투표기로 구성되며, 1개 모듈 장애를 허용한다. 오류를 즉시 검출하고 마스킹할 수 있지만 복잡도가 높고 비용은 3배 이상이다.

듀플렉스는 2개 모듈과 비교기로 구성한다. 불일치는 검출할 수 있지만 마스킹할 수 없어 중단이 필요하며, 복잡도는 중간이고 비용은 2배다.

RedundancyStrategyDuplex(Detect)TMR(Mask)NMR(Extended)Lower CostDowntime AcceptableMedium CostNo DowntimeHigh CostMaximum Reliability

FPGA와 프로세스 복제로 구현하는 TMR

FPGA 기반 TMR은 내부 로직을 삼중화하고 하드웨어 투표 로직을 합성한다. SEU(Single Event Upset) 방지와 장애 시 동적 재구성이 적용 범위다.

소프트웨어 기반 TMR에서는 동일 프로그램을 3개 프로세스로 실행한다. 프로세스 간 상태를 공유하고, 투표 미들웨어가 결과를 수집해 판정한다. 장애 프로세스는 재시작으로 복구한다.

삼중구조TMR결함허용투표기시스템 신뢰성