반응형

제목: 고안전 실시간 시스템을 위한 결함 가설(On the Fault Hypothesis for a Safety-Critical Real-Time System)

저자: H. Kopetz, 오스트리아

문서유형: 학계 페이퍼( 12페이지), 2003

 

자동차 분야의 고안전 실시간 컴퓨터 시스템을 위한 포괄적인 결함 가설 확립에 대하여 기술한 자료



고안전 통제 시스템(safety-critical control systems)의 결함 허용

  • 반도체 기술의 발전은 고안전(safety-critical) 애플리케이션의 기계(mechanical) 및 유압(hydraulic) 통제 시스템을 컴퓨터 기반 통제 시스템으로 대체하는 것을 기술적 경제적으로 타당하게 함. 대표적인 예로 항공우주 분야에서 fly-by-wire 통제 시스템의 광범위한 사용을 들 수 있음
  • 자동차 시장에서도 x-by-wire(또는 drive-by-wire)로 불리는 고안전 컴퓨터 기반 통제 시스템 도입으로 여러 이점을 얻음. 전반적인 안전성(safety) 향상, 신인성(dependability) 증가, 생산 및 유지보수 비용 감소 등
  • 하지만 가용한 전자 부품의 실패율 데이터(failure-rate data)를 고려했을 때 고안전 통제 시스템이 요구하는 신인성(dependability) 수준은 해당 시스템이 결함 허용(fault tolerance)을 지원하는 경우에만 달성할 수 있음


테스팅의 한계와 타 신뢰성 확보 방안

  • 고안전 애플리케이션에 배치되는 컴퓨터 시스템은 10-9시간( 100,000)보다 좋은 MTTF(mean-time-to-failure)를 보일 것으로 기대됨. 이 수치는 fly-by-wire 시스템의 신인성 요구사항(dependability requirements)에서 기원한 것이기는 하지만 자동차 분야에도 마찬가지로 적용될 수 있음
  • 테스팅으로는 100,000년의 시스템 신뢰성에 대한 확신(confidence)을 얻는 것이 불가능하다. 따라서 컴포넌트 신뢰성에 대한 안전성 논증을 실험 데이터로부터 모아서 정리하고 시스템 구조의 중복성(redundancy)도 고려해야 한다.
  • 복제된 서브시스템(replicated subsystems)의 실패 확률에서 아주 사소한 상관성(correlation)도 전체 시스템의 신뢰성(reliability)에 중대한 영향을 미친다. 따라서 시스템 설계는 하나의 시스템 아키텍쳐를 복제한 여러 서브시스템들이 실패에 있어서 서로 독립적임을 반드시 보증해야 한다.
  • 10-9 신뢰성 수준을 요구하는 시스템을 테스팅 만으로 증명하기가 불가능하므로 핵심 알고리즘(critical algorithms)의 정확성을 수학적인 정형화 방법(formal methods)으로 분석하는 등의 노력이 인증 기관(certification authorities)을 설득하는데 요구된다.


결함 허용 시스템(Fault tolerant system)의 설계

결함 허용 시스템의 설계는 아래의 4개 단계로 구분된다

  • 단계1: 결함 가설(fault hypothesis)이 세워짐. , 계획된 시스템에 의해 반드시 허용되어야 하는 결함의 타입과 수에 대한 가정이 이루어진다.
  • 단계2: 가설에 의해 명시된 결함을 허용하는 아키텍쳐가 설계된다.
  • 단계3: 설계된 아키텍쳐가 구현되고 그 기능과 결함 허용 메커니즘이 검증된다.
  • 단계4: 결함 가설에 포함된 가정들이 현실에 일치함을 실험적으로 확증한다.


결함 가설(Fault Hypothesis)의 역할

  • 결함 가설은 결함 허용 시스템이 허용할 것으로 기대되는 결함의 타입과 수에 대한 가정을 진술한 것이다.
  • 결함 가설은 결함 영역(the fault space)커버된 결함 부분(the partition of covered faults)’커버되지 않은 결함 부분(the partition of uncovered faults)’의 두 배타적 영역으로 분할한다.
  • 커버된 결함들은 결함 가설에 포함되어 시스템 설계 동안에 다루어지는 결함들이다. 따라서 시스템 운영 중에 커버된 결함이 발생하여도 고안전 시스템 기능의 가용성(availability)에 악영향을 주어서는 안 된다.
  • 커버되지 않은 결함의 발생은 그런 결함에 대한 보호를 제공하는 체계적인 메커니즘이 없으므로 심각한 시스템 실패(a critical system failure)로 이어질 수 있다. 따라서 시스템 확인(system validation) 과정에서 커버되지 않은 결함들이 아주 드문 이벤트라는 것을 보여야만 한다.
  • 고안전 시스템의 설계가 시작되기 전에 정확한 결함 가설이 필요하다(, 정확한 결함 가설 없이는 설계 단계에서 결함 허용 알고리즘을 설계하거나 커버되지 않은 결함의 발생 확률을 예측하거나 등의 작업을 할 수 없음)



하드웨어 결함(Hardware Faults) 관련 결함 가설

분산 실시간 통제 시스템의 하드웨어 결함에 관련된 결함 가설은 다음과 같은 내용을 요구한다.


1) 결함 봉쇄 지역(Fault Containment Region: FCR)

  • 전체 시스템에서 특정 단일 결함의 즉각적인 영향을 받는 부분의 경계를 정하기 위해 도입된 개념
  • FCR은 하나 또는 여러 개의 공통 리소스를 공유하는(그래서 어떤 단일 결함에 의해 다 같이 영향을 받을 수 있는) 서브시스템의 집합으로 정의됨
  • 본 논문에서는 공유되는 하드웨어 리소스로 i) 컴퓨팅 하드웨어, ii) 파워 서플라이, iii) 타이밍 소스(Timing Source), iv) 클럭 동기화 서비스(Clock Synchronization Service), v) 물리적 공간(Physical Space)을 고려한다. 예를 들어, 두 서브시스템이 단일 타이밍 소스(, 단일 oscillator 또는 단일 클락 동기화 알고리즘)에 의존하면 이 두 서브시스템은 독립적으로 여겨지지 않으며 따라서 동일한 FCR에 속하게 된다.
  • SoC(System on a Chip) 노드 컴퓨터의 집합으로 구성된 분산 실시간 시스템에서는 하나의 완전한 노드 컴퓨터가 단일 FCR로 여겨져야 한다. 동일한 실리콘 die 상에 올라가 있는 서브시스템들은 물리적 공간, 실리콘 기판, 파워 서플라이, 타이밍 소스 등을 공유하므로, 이런 리소스에서의 결함이 모든 서브시스템에 동시에 영향을 미칠 가능성이 높기 때문이다.
  • 분산 시스템의 여러 노드를 연결하는 통신 채널은 버스, , 별 같은 다양한 상호연결 구조로 이루어지는데, 결함 봉쇄(fault-containment) 측면에서는 이 채널들도 마찬가지로 단일 FCR을 형성한다.
  • 동시에 실패한 두 개 FCR의 실패 확률은 독립적이다. , 서로 다른 FCR의 실패 확률에 어떤 상관성(correlation)도 없어야 한다.


2) 실패 모드(Failure Modes)

  • 실패 모드는 FCR이 결함의 영향을 받을 때 발생할 수 있는 실패의 타입을 명세 한다.
  • FCR의 실패 모드는 제한적 모드(restricted failure mode)와 비제한적 모드(unrestricted failure mode)로 구분된다. 가장 제한적 실패 모드는 조용한 실패(a fail-silent failure)’로 문제가 발생해도 FCR이 올바르게 운영되거나 또는 잠잠한 것을 가정한다. 가장 비제한적 실패 모드는 비잔틴 실패(a Byzanthine failure)’로 문제가 있는 컴포넌트의 동작에 대한 어떠한 가정도 없는 경우이다.
  • 실패 모드는 또한 결함의 시간적 속성을 고려하여 아래의 5가지 타입으로 구분되기도 한다.
    (i)
    일시적 결함(Transient fault): 무작위 이벤트(random event)에 의해 초래됨. 일례로 방사성 입자에 의해 야기되는 단일 이벤트 장애인 SEU(single event upset caused by a radioactive particle)가 있다.
    (ii)
    간헐적 결함(Intermittent fault): 컴포넌트의 단일 물리적 퇴보(single physical degradation)에 의해 초래된 일시적 결함들의 상관된 시퀀스(a correlated sequence of transient faults)이다. 예를 들면 산화 등으로 인한 칩 트랜지스터 접합점(junction)의 부분적 퇴화가 특정 부하나 데이터에 의존하는 에러를 산발적으로 야기하는 것을 들 수 있다. 실험 데이터에 따르면 간헐적 결함이 결국 영구 결함을 만들어 낼 가능성이 높다.
    (iii)
    소프트 영구 결함(Soft permanent fault): 한 컴포넌트 내에서 h-state(history state) 또는 i-state(initialization state)가 훼손되었지만(corruption) 해당 컴포넌트에 어떤 영구적인 피해를 초래하지는 않는 것. 예를 들면 단일 이벤트 장애(a single-even-upset: SEU)에 의해 이런 훼손이 생길 수 있으며, 잘못된 데이터 구조의 수리는 하드웨어에 어떤 추가적인 영향을 주지 않으면서 소프트 영구 결함을 제거한다.
    (iv)
    영구 결함(Permanent fault): FCR의 하드웨어가 영구적으로 고장 나면 영구 결함이 발생한다. 일례로 끊어진 전선(a broken wire)을 들 수 있다.
    (v)
    대규모 일시적 장애(Massive transient disturbance): 외부 이벤트(, 전자파의 강력한 방사)가 두 개 또는 그 이상의 통신 채널과 노드에서 상관된 실패를 유발할 때 발생할 수 있다. (i)~(iv)의 실패 모드가 내부 결함(internal faults)에 관련된 반면 (v)는 외부 결함(an external fault)과 관련되어 있다. 외부 결함의 발생 확률은 시스템 설계 자체가 아닌 시스템 환경의 특성에 달려 있다.


3) 실패 빈도(Failure Frequency)

  • 결함 가설의 세 번째 부분은 식별된 실패 모드의 실패들의 빈도에 대하여 다룬다.
  • 전자 부품의 영구 결함과 관련된 실패율 데이터(a failure rate data)는 문헌에서 찾을 수 있지만 간헐적 결함(intermittent faults)이나 일시적 결함(transient faults)에 대한 일관성 있는 데이터는 찾기가 어렵다. 이런 어려움의 한 가지 이유는 일시적 결함이 종종 물리적 위치(an physical location)나 재현이 어려운 특정 구조(a particular geometry)에 의존하기 때문이다. 예를 들면 공간으로부터 나오는 고에너지 입자에 의해 야기되는 SEU 소프트 에러율은 고도(altitude)와 지리적 위치에 의존한다.


4) 에러 발견 지연 시간(Error Detection Latency)

  • 결함의 결과는 시스템 상태에서의 에러로 나타나며, 이 에러를 발견하는데 걸리는 시간을 에러 발견 지연 시간(the error detection latency)이라고 한다
  • 에러가 전파되어 원래 결함의 영향을 아직 받지 않은 시스템 부분에서도 실패를 초래하기 전에 해당 에러를 처리할 수 있으려면 에러 발견 지연 시간이 매우 짧아야 한다. , 실패가 발생했음을 아는 것이 실제 실패 자체보다 더 중요하다


5) 복구 간격(Recovery Intervals)

  • 신뢰성 모델링(reliability modeling) 측면에서는 시스템이 일시적 결함(a transient fault)으로부터 복구하는데 걸리는 시간을 아는 것이 중요하다.
  • 영구 결함(a permanent fault)의 경우는 모든 정확한 FCR이 결함이 있는 FCR에 대한 일관성 있는 뷰(view)를 가지기 까지 걸리는 시간을 아는 것이 중요하다.
  • 일시적 결함(a transient fault)에는 아래 같은 3개의 중요 간격이 존재한다.
    (i)
    일시적 결함 기간(Transient fault duration): 일시적 결함의 시작부터 모든 통신 파트너가 이 일시적 결함이 사라졌음을 인지하는 순간까지의 시간 간격
    (ii)
    프로토콜 복구 간격(Protocol recovery interval): 프로토콜이 복구되고 모든 통신 파트너 사이에 일관적인 뷰(, 클럭 동기화)를 확립하기까지 걸리는 시간
    (iii)
    상태 수리 간격(State repair interval): 애플리케이션이 일시적 결함으로부터 복구되고 자신의 h-state(history state)에 생긴 피해를 수리하는데 까지 걸리는 시간 


: TTA의 결함 가설

1) TTA(Time-Triggered Architecture) 구조

  • TTA는 고안전 애플리케이션 구현을 위한 분산 아키텍쳐로 항공우주(aerospace), 철도(railway), 자동차(automotive) 분야에서 사용된다.
  • 아래 그림은 전형적인 단일 클러스터 TTA 시스템의 구조를 나타낸다. 백본 코어 아키텍쳐(a backbone core architecture)는 두 개의 복제된 통신 채널(Guardian I, Guardian II)에 의해 상호연결되는 노드 컴퓨터들로 구성된다. 통신 채널로의 미디어 액세스는 시분할 다중 접속(TDMA) 프로토콜에 의해 통제된다.
  • 각 노드 컴퓨터는 하나의 CC(Time-Triggered Communication Controller)와 하나의 호스트 컴퓨터를 포함한다. CC와 호스트 컴퓨터간의 인터페이스는 CNI(Communication Network Interface)라고 부른다.
  • 호스트 컴퓨터는 통제되는 오브젝트(the controlled object)의 인텔리전트 변환기(transducers)를 상호연결 하기 위해 로컬 필드 버스(, CAN, LIN, 또는 TTP/A)를 지원할 수 있다.
  • 모든 컴퓨터가 알려진 정밀도(precision)의 결함 허용 글로벌 타임 베이스(a fault-tolerant global time base)에 액세스하는 점은 TTA의 눈에 띄는 특징이다.


2) TTA의 결함 가설

TTA에서 결함 가설은 아래와 같은 가정들로 구성된다.

     하나의 노드 컴퓨터가 하나의 FCR을 형성한다.

     중앙의 Guardian을 포함하는 하나의 통신 채널이 하나의 FCR을 형성한다.

     노드 컴퓨터는 임의의 실패 모드(an arbitrary failure mode)로 실패할 수 있다.

     중앙 Guardian은 노드 컴퓨터로부터 받은 메시지를 배포한다. 중앙 Guardian이 수신한 메시지를 배포하는데 실패할 수는 있지만 스스로 메시지를 생성할 수는 없다.

     노드 컴퓨터나 중앙 Guardian의 영구실패율(The permanent failure rate)은 대략 100FIT( 1000)이다.

     노드 컴퓨터의 일시적실패율(The transient failure rate)은 대략 100,000FIT( 1)로 가정한다. 일시적 실패를 초래하는 중요한 메커니즘 하나가 SEU이다. 이 실패율은 잘 입증되지 않은 상태임

     노드 컴퓨터의 약 50개의 실패 중 한 개는 ‘non-fail-silent’이다. , 안전성 모니터링 기능의 가용성(availability)을 감소시키지만 안전성(safety)에는 영향을 주지 않는 실패

     중앙 Guardian은 노드 컴퓨터의 non-fail-silent 실패와 SOS(slightly-out-of-specification) 실패를 fail-silent 실패로 변형시킨다. , 안전성 모니터링 기능을 상실하게 되는 실패

     결함 허용 클락 동기화 알고리즘(A fault-tolerant clock synchronization algorithm)은 노드의 임의적인 실패(arbitrary failure)를 허용한다.

     단일 에러 발견은 멤버십 알고리즘(a membership algorithm)에 의해 수행된다. 에러 발견 지연시간(error detection latency) 2 TDMA 라운드 미만이다. 멤버십 알고리즘의 정확성은 공식적으로 분석되었다.

     다수의 에러 발견은 패거리 회피 알고리즘(a clique avoidance algorithm에 의해 수행된다. 에러 발견 지연 시간은 2 TDMA 라운드 미만이다.

     시스템은 단일 일시적 결함(a single transient fault)으로부터 2 TDMA 라운드 이내에 복구될 수 있다

     시스템은 최악의 경우 클락 동기화를 파괴하는 대규모 외부 일시적 결함으로부터 해당 일시적 결함이 사라진 후 8 TDMA 라운드 이내에 복구될 수 있다. (이 시나리오는 모델 체킹을 이용하여 집중적으로 조사됨)

     애플리케이션의 상태 수리 시간(The state repair time)은 애플리케이션 소프트웨어에 대한 지식에 기반하여 정해진다(애플리케이션에 종속적임).


결론

  • 결함 가설은 결함 허용 시스템이 반드시 허용해야만 하는 결함의 타입과 수에 대한 가정들을 서술한다.
  • 결함 가설은 구축하게 될 결함 허용 시스템의 아키텍쳐에 깊은 영향을 미치므로 반드시 설계 프로세스 초기에 확립되어야 한다. 즉 설계 프로세스를 위한 가장 중요한 문서이다.
  • 정확한 결함 가설 없이는 주어진 설계에 의해 어떤 결함은 커버되고 어떤 결함은 커버되지 않는지를 결정할 수 없다.


반응형

+ Recent posts