---
title: "Fault observability: 내부 고장이 출력에서 사라지는 이유"
author: "브레이브브라우저쓰자"
published_at: "2026-11-04T13:59:00.258Z"
updated_at: "2026-10-06T02:20:39.253Z"
tags: ["fault observability"]
canonical_url: "https://ariser.io/@writer_a9817d5a8de0/fault-observability-%EB%82%B4%EB%B6%80-%EA%B3%A0%EC%9E%A5%EC%9D%B4-%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C-%EC%82%AC%EB%9D%BC%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%9C%A0"
ai_assisted: true
---

# Fault observability: 내부 고장이 출력에서 사라지는 이유

이 글은 AI가 활용됐습니다.

[원문](https://ariser.io/@writer_a9817d5a8de0/fault-observability-%EB%82%B4%EB%B6%80-%EA%B3%A0%EC%9E%A5%EC%9D%B4-%EC%B6%9C%EB%A0%A5%EC%97%90%EC%84%9C-%EC%82%AC%EB%9D%BC%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%9C%A0)

내부 노드에 고장을 넣었는데 출력은 그대로인 경우가 있다. 고장이 사라진 것이 아니라 다른 입력이 그 차이를 가렸을 수 있다. Fault observability는 내부의 정상·고장 차이가 관측 지점까지 드러날 수 있는지를 다룬다. 입력을 많이 바꾸는 것과 고장을 볼 수 있는 조건을 만드는 것은 다르다.

## 차이를 만들고 그 차이가 나갈 길을 연다

가상 조합 회로를 `X=A AND B`, `Y=X OR C`라고 하자. X가 0에 고정된 stuck-at-0을 검사하려면 정상 회로의 X가 1이 돼야 하므로 A=B=1이 필요하다. 하지만 C=1이면 정상 Y도 1이고 고장 Y도 1이다. X에서 차이를 만들었지만 OR의 다른 입력이 출력을 1로 고정해 차이를 가린다.

C=0으로 바꾸면 정상 Y=1, 고장 Y=0이 돼 차이가 보인다. 한 가지 고장을 검출하려면 X를 원하는 값으로 만들 수 있는지와 그 차이를 출력으로 전달할 수 있는지를 함께 확인해야 한다. 여기서는 AND의 두 입력을 모두 1로 만들고, OR의 옆 입력을 0으로 두는 조건이 필요하다.

세 입력의 모든 조합 여덟 개를 계산하면 이 고장을 검출하는 입력은 [A,B,C]=[1,1,0] 한 개뿐이다. A를 많이 토글해도 B가 항상 0이면 정상 X가 0이라 고장을 자극하지 못한다. A와 B를 모두 1로 만들더라도 C가 항상 1이면 차이를 관측하지 못한다.

이 관점에서 scan은 내부 상태를 설정하고 응답을 꺼내는 접근을 제공한다. TU Delft의 DFT 강의도 scan의 목적을 상태의 controllability와 observability로 설명한다. [TU Delft의 scan 개념, 7·12쪽](https://ocw.tudelft.nl/wp-content/uploads/Module_11_Digital_DFT_and_Scan_Design.pdf)

## 같은 입력의 분기가 차이를 지울 수도 있다

단순히 게이트를 따라 비차단 값을 놓는 것만으로 끝나지 않는 경우도 있다. 다른 가상 회로를 `X=A AND B`, `Y=X OR A`로 바꿔 보자. 정상 기능은 흡수 법칙에 따라 Y=A다. X의 stuck-at-0을 자극하려면 A=B=1인데, 그때 OR의 다른 입력 A도 1이 된다. 출력을 가리는 입력을 독립적으로 0으로 바꿀 수 없다.

이 회로의 X stuck-at-0은 정상 `Y=(A AND B) OR A`와 고장 `Y=0 OR A`를 모든 입력에서 비교해도 차이가 없다. 외부 Y만 관측하는 정적 논리 모델에서 검출 불가능한 중복 고장이다. ATPG가 패턴을 찾지 못한 이유를 단순히 탐색 시간이 부족해서라고 볼 필요는 없다.

관측 지점을 X에도 추가하면 상황이 바뀐다. A=B=1에서 정상 X=1과 고장 X=0을 직접 볼 수 있다. 그러나 관측점의 추가에는 회로와 배선, 접근 방식의 부담이 있고 기능 경로에 영향을 주지 않도록 검증해야 한다. 외부 출력 하나로 충분한 회로와 내부 관측이 필요한 회로의 차이가 여기서 드러난다.

## 임의 패턴의 수보다 놓친 조건을 본다

첫 번째 회로의 세 입력을 매번 독립적으로 0·1 균등 선택한다면, 한 패턴이 [1,1,0]일 확률은 1/8이다. 독립 패턴 10개에서 이 고장을 적어도 한 번 검출할 확률은 `1−(7/8)¹⁰≈73.69%`이고, 100개면 약 99.99984%다. 이 수치는 그 가상 고장 하나와 입력 분포의 계산이다.

임의 입력이 서로 상관돼 C=A라고 제한되면 검출 입력 [1,1,0]은 나오지 않는다. 패턴 수를 늘려도 이 제약을 유지하는 동안 검출 확률은 0이다. 개수만 보고 충분히 검사했다고 판단하기 어려운 이유다. 실제 회로의 접근 제한과 미정 값, 상태 도달 조건도 원하는 패턴을 막을 수 있다.

한 고장의 검출 확률을 모든 결함의 검출 확률로 늘려서도 안 된다. 고장 목록과 모델에 따라 필요한 자극과 관측이 다르다. 보고서에서 검출되지 않은 고장은 증명된 중복, 접근 제한, 미해결 탐색 등 원인을 구분해야 다음 개선이 구체적이 된다.

Fault observability를 확인하는 핵심은 내부 차이가 실제 관측 지점까지 살아남는지다. 고장을 자극한 입력만 보는 데서 나아가, 옆 입력의 차단과 다시 합쳐지는 분기, 관측 위치까지 추적해야 한다. 그 경로를 확인할 때 ‘출력이 맞았다’는 결과가 어떤 고장을 검출할 수 있었는지 설명할 수 있다.

