핵심 인사이트 (3줄 요약)

  1. 본질: TMR (Triple Modular Redundancy, 삼중 모듈 중복)은 동일 기능 모듈 3개와 다수결 회로를 이용해 오류를 복구 전에 먼저 가려 버리는(Error Masking) 대표적 고장 허용 구조다.
  2. 가치: 한 모듈이 순간적으로 잘못된 값을 내더라도 나머지 두 모듈이 같으면 시스템은 멈추지 않고 계속 정답을 출력하므로, 무중단 제어가 필요한 항공·우주·안전 제어에 특히 강하다.
  3. 판단 포인트: TMR은 성능 향상 기법이 아니라 비용·면적·전력을 신뢰성으로 바꾸는 선택이므로, 공통 원인 고장(Common-Mode Failure)과 Voter 병목까지 함께 설계할 때만 의미가 있다.

Ⅰ. 개요 및 필요성

TMR (Triple Modular Redundancy)은 동일한 연산 또는 제어를 수행하는 모듈 3개를 병렬로 두고, 출력은 다수결 투표기(Voter)가 결정하는 고장 허용 구조다. 핵심은 고장 난 모듈을 나중에 교체하는 것이 아니라, 최종 출력 단계에서 틀린 값을 즉시 배제하는 데 있다.

이 구조가 필요한 이유는 "잠깐 멈춘 뒤 다시 켜면 되는 시스템"과 "한 번의 오판도 허용되지 않는 시스템"이 다르기 때문이다. 온라인 쇼핑몰은 절체(Failover) 중 수 초의 지연을 감수할 수 있지만, 비행 제어 컴퓨터나 우주선 자세 제어기는 그 짧은 공백도 치명적일 수 있다. 이때 단순 이중화(Dual Redundancy)만으로는 두 결과가 다를 때 어느 쪽이 맞는지 즉시 판단하기 어렵다.

특히 우주 방사선에 의한 SEU (Single Event Upset), 노이즈, 일시적 전압 흔들림 같은 오류는 모듈 하나를 순간적으로 비정상 상태로 만들 수 있다. TMR은 이 상황에서 "1개 오류는 다수결로 흡수한다"는 매우 직접적인 원리로 시스템 연속성을 지킨다. 즉 TMR의 목적은 단순한 백업이 아니라 서비스 지속성과 출력 신뢰성의 동시 확보다.

  • 📢 섹션 요약 비유: 길 안내자 두 명만 있으면 서로 다른 길을 말할 때 누구를 믿어야 할지 멈춰 서야 한다. 하지만 세 명 중 두 명이 같은 길을 가리키면, 한 명이 헷갈려도 일행은 멈추지 않고 계속 이동할 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

TMR의 핵심은 "같은 입력을 세 번 계산하고, 출력은 한 번만 내보내되 그 한 번을 다수결로 결정한다"는 점이다. 따라서 단순히 모듈을 3개 복제하는 것만으로는 부족하고, 입력 동기화·출력 비교·오류 모듈 격리·재동기화까지 포함해 봐야 한다.

아래 그림은 TMR이 어디에서 오류를 가리고, 어디에서 새로운 병목이 생기는지를 보여준다.

┌──────────────────────────────────────────────────────────────────────┐
│              TMR 동작 흐름: 3개 계산 + 1개 다수결 출력              │
├──────────────────────────────────────────────────────────────────────┤
│ 동일 입력 ───────────────┬──────────────┬──────────────┐             │
│                          │              │              │             │
│                    ┌─────▼─────┐  ┌─────▼─────┐  ┌─────▼─────┐       │
│                    │ Module A  │  │ Module B  │  │ Module C  │       │
│                    │ result=42 │  │ result=42 │  │ result=99 │       │
│                    └─────┬─────┘  └─────┬─────┘  └─────┬─────┘       │
│                          │              │              │             │
│                          └──────┬───────┴───────┬──────┘             │
│                                 │               │                    │
│                           ┌─────▼───────────────▼─────┐              │
│                           │ Voter (Majority Logic)    │              │
│                           │ AB + BC + AC  => 42       │              │
│                           └──────────────┬────────────┘              │
│                                          │                           │
│                                   Final Output = 42                  │
│                                          │                           │
│                         오류 모듈 기록 / Scrubbing / 재동기화         │
└──────────────────────────────────────────────────────────────────────┘

이때 1비트 단위 다수결 논리는 보통 AB + BC + AC 형태로 표현한다. 세 입력 중 둘 이상이 1이면 출력 1, 둘 이상이 0이면 출력 0이므로 단일 모듈 오동작은 결과에서 제거된다. 중요한 점은 이것이 오류 탐지(Error Detection) 에서 끝나지 않고 오류 은닉(Error Masking) 까지 수행한다는 것이다.

구성 요소역할설계 포인트주의점
모듈 3개동일 연산 병렬 수행같은 입력·같은 타이밍 유지공통 버그면 셋 다 동시에 틀릴 수 있음
Voter다수결로 최종 출력 결정조합 논리 지연 최소화Voter 자체가 SPOF (Single Point of Failure)가 될 수 있음
Lockstep 동기세 모듈의 시점 정렬클럭·입력·인터럽트 일치어긋나면 정상값도 불일치처럼 보임
Scrubbing오류 모듈 상태 복원주기적 재기록·재동기화누적 오류 방치 시 2중 고장으로 확대

실제 구현에서는 TMR만으로 끝나지 않고, Voter 자체를 이중 또는 삼중화하거나 파이프라인 단계마다 분산 배치하기도 한다. 왜냐하면 세 모듈이 아무리 튼튼해도 Voter가 깨지면 전체 출력이 무너질 수 있기 때문이다. 따라서 TMR 설계의 본질은 "3개 복제"보다 어디까지를 투표 대상으로 보고, 어디서 다시 단일 장애점을 제거할 것인가에 있다.

  • 📢 섹션 요약 비유: 세 명이 시험을 풀고 답안을 비교하면 한 명의 실수는 걸러낼 수 있다. 하지만 채점 기계가 망가지면 정답도 오답이 되므로, TMR은 학생 셋뿐 아니라 채점 과정까지 의심하며 설계해야 한다.

Ⅲ. 비교 및 연결

TMR을 제대로 이해하려면 이중화, 락스텝, ECC 같은 인접 개념과의 경계를 분명히 봐야 한다. 모두 신뢰성을 높이지만, 오류를 언제 발견하고 어디서 처리하는가가 다르다.

비교 대상핵심 목적오류 대응 방식TMR과의 차이
이중화 (Dual Redundancy)예비 경로 확보장애 시 절체두 결과가 다르면 어느 쪽이 맞는지 즉시 판정 곤란
락스텝 (Lockstep)동기 실행 + 불일치 탐지비교 후 오류 검출탐지는 강하지만 자동 정정은 어려움
ECC (Error Correcting Code)메모리 비트 오류 정정저장 데이터 정정저장 계층 보호이지 연산 결과 다수결은 아님
N-Version Programming설계 다양성 확보서로 다른 구현 결과 비교공통 설계 결함을 줄이지만 하드웨어 복제와는 계층이 다름

이중화는 가용성을 높이는 데 효과적이지만, 보통은 고장 후 절체가 필요하다. 반면 TMR은 한 모듈 오류를 출력 단계에서 가리므로 MTTR (Mean Time To Repair, 평균 수리 시간) 관점에서 복구 이전에도 시스템이 계속 동작한다. 즉 이중화가 "대체 경로 확보"에 가깝다면, TMR은 "출력 진실성 유지"에 더 가깝다.

락스텝은 TMR과 자주 함께 언급되지만 차이는 분명하다. 듀얼 락스텝은 두 코어가 같은 일을 하고 결과를 비교해 오류를 발견하는 데 강하며, TMR은 세 모듈 다수결로 오류를 발견하면서 동시에 가린다. 그래서 자동차 기능 안전 제어에는 듀얼 락스텝이 많이 쓰이고, 방사선 환경이나 임무 지속성이 더 중요한 우주 분야에서는 TMR이 더 자연스럽다.

또한 TMR은 공통 원인 고장에 취약하다. 동일 설계 결함, 동일 전원 문제, 동일 소프트웨어 버그가 세 모듈에 동시에 영향을 주면 다수결은 오히려 잘못된 답을 "합법적 정답"으로 통과시킨다. 그래서 고신뢰 시스템은 TMR에 ECC, Scrubbing, 전원 분리, 물리적 거리 확보, 때로는 N-Version Programming까지 겹쳐 다층 방어를 만든다.

  • 📢 섹션 요약 비유: 백업 선수 둘을 두는 것은 누가 다치면 교체하려는 전략이고, 심판 셋이 동시에 판정하는 것은 지금 당장 오심을 줄이려는 전략이다. 둘 다 안전장치지만, 문제를 다루는 순간과 방식이 다르다.

Ⅳ. 실무 적용 및 기술사 판단

실무에서 TMR은 "중요하니까 무조건 적용"이 아니라, 정지 비용과 오류 비용이 비정상적으로 큰 경우에만 채택하는 구조다. 우주선, 항공 비행 제어, 원자력 계측 제어, 철도 신호, 산업 안전 PLC (Programmable Logic Controller)처럼 일시 오동작이 인명·임무 실패로 이어지는 영역에서 특히 타당하다.

반대로 일반 웹 서비스, 기업 정보 시스템, 배치 처리 서버는 보통 TMR보다 클러스터 이중화·다중화, 재시도, 체크포인팅, 롤링 배포가 훨씬 경제적이다. 같은 예산이면 범용 서버 세 대를 다수결로 묶는 것보다, 장애 조치 자동화와 데이터 복제를 잘 설계하는 편이 가용성과 운영성 모두에서 낫다. 즉 TMR은 범용 정답이 아니라 초저지연 무중단 정합성이 필요한 특수 해법이다.

기술사 답안형 판단 포인트

  1. 한 모듈 오류를 멈춤 없이 흡수해야 하는가? 그렇다면 TMR 검토 가치가 크다.
  2. 공통 원인 고장을 분리했는가? 동일 전원·동일 펌웨어·동일 배선이면 TMR 효과가 급격히 떨어진다.
  3. Voter와 인터커넥트의 단일 장애점을 제거했는가? 모듈 3개만 늘리고 투표기를 1개로 두면 설계가 반쯤만 끝난 것이다.
  4. 오류 후 복원 절차가 있는가? Scrubbing 없이 고장 모듈을 방치하면 다음 오류에서 2대 1 구도가 무너질 수 있다.

대표 안티패턴

  • 비용 근거 없이 "중요 시스템"이라는 이유만으로 TMR을 도입하는 경우

  • 세 모듈에 동일 결함 소프트웨어를 탑재하고 다수결만 믿는 경우

  • Voter 지연과 배선 복잡도를 무시해 전체 타이밍을 깨뜨리는 경우

  • 📢 섹션 요약 비유: 방탄차 세 대를 나란히 세우는 일은 대통령 경호에는 맞지만, 동네 마트 장보기에 쓰면 과한 비용이 된다. TMR도 마찬가지로, 위험의 크기와 중단 허용 시간을 먼저 따진 뒤 써야 한다.


Ⅴ. 기대효과 및 결론

TMR의 가장 큰 효과는 단일 모듈 오류가 발생해도 시스템이 즉시 멈추지 않고, 외부에는 정상 결과만 보이게 만든다는 점이다. 이는 단순한 고장 복구보다 한 단계 앞선 개념으로, 신뢰성(Reliability)과 가용성(Availability)을 출력 품질 차원에서 동시에 끌어올리는 방법이다.

하지만 대가도 분명하다. 모듈 수가 3배로 늘면 면적, 전력, 발열, 검증 범위, 배선 복잡도가 함께 증가한다. 또한 공통 원인 고장과 Voter 설계 실패를 방치하면, 비싼 비용을 들이고도 기대한 신뢰성을 얻지 못한다. 따라서 TMR은 "고장 허용의 만능 공식"이 아니라 단일 오류를 실시간으로 가려야 하는 환경에서 가장 직선적인 해법으로 기억하는 것이 맞다.

미래 방향은 정적 TMR만이 아니라, 위험 구간에서만 삼중화를 활성화하는 적응형 중복, FPGA (Field-Programmable Gate Array) 기반 부분 재구성, 소프트웨어 진단과 결합한 하이브리드 신뢰성 설계로 확장되고 있다. 결국 TMR의 핵심 기억점은 단순하다. 고장을 없애는 기술이 아니라, 고장이 보이지 않게 시스템을 계속 움직이게 하는 기술이다.

  • 📢 섹션 요약 비유: TMR은 넘어질 가능성을 없애는 신발이 아니라, 한 명이 비틀거려도 나머지 두 명이 중심을 잡아 행진을 계속하게 만드는 방식이다. 그래서 본질은 완벽한 무오류가 아니라, 오류가 있어도 멈추지 않는 균형 유지다.

📌 관련 개념 맵

개념연결 포인트
고장 허용 (Fault Tolerance)TMR이 직접 달성하려는 상위 목표
이중화 (Dual Redundancy)절체 중심의 가용성 설계로, TMR과 비교되는 기본 구조
락스텝 (Lockstep)동기 실행과 비교를 통해 오류를 탐지하는 근접 개념
ECC (Error Correcting Code)메모리 계층에서 비트 오류를 정정해 TMR과 보완 관계를 이룸
SPOF (Single Point of Failure)Voter, 전원, 배선이 TMR 효과를 무너뜨릴 수 있는 핵심 위험
Scrubbing오류 모듈 또는 메모리 상태를 재기록해 삼중화 상태를 회복하는 운영 기법

📈 관련 키워드 및 발전 흐름도

단일 모듈 시스템
        │
        ▼
이중화 (Dual Redundancy)
        │   └─ 장애 후 절체 중심
        ▼
락스텝 (Lockstep) 비교 실행
        │   └─ 오류 탐지 강화
        ▼
TMR (Triple Modular Redundancy)
        │   └─ 오류 은닉 + 연속 서비스
        ▼
Voter 다중화 · Scrubbing · ECC 결합
        │
        ▼
적응형 중복 · 안전 필수 시스템 통합 설계

이 흐름은 단순 백업에서 출발해, 비교 실행을 거쳐, 최종적으로 오류 은닉과 다층 방어를 결합하는 방향으로 신뢰성 설계가 진화함을 보여준다.

👶 어린이를 위한 3줄 비유 설명

  1. 똑같은 계산을 하는 친구 세 명이 있으면, 한 명이 실수해도 나머지 두 명의 같은 답을 따라갈 수 있어요.
  2. 그래서 컴퓨터는 "누가 틀렸는지"를 오래 고민하지 않고 바로 가장 많은 답을 고를 수 있어요.
  3. 하지만 세 명이 똑같이 잘못 배웠다면 다 같이 틀릴 수 있으니, TMR도 다른 안전장치와 함께 써야 해요.