본문 바로가기
자율주행 개발 프로세스/Functional Safety (ISO26262)

[이중화/Redundancy] 기능안전 달성을 위한 차량 및 부품의 이중화 컨셉 정리 (2)

by 멘토_ 2023. 3. 12.
반응형

안녕하세요. 자율주행 시스템/SW 안전 전문가를 목표로 하는 플라잉 준입니다 :)

 

오늘은 지난번 작성한 포스팅에 이어 기능안전에서 중요한 설계 기술인 이중화 또는 중복화 라고 하는 Redundancy에 대해 SoC (System On Chip) 관점으로 소프트웨어 형태, 정보 형태, 타이밍 형태의 이중화에 대해 정리해 보도록 하겠습니다:)

※ 아래는 지난번 작성한 포스팅 링크 입니다. (이중화 컨셉 및 하드웨어 이중화 컨셉 설명)

 

 

[이중화/Redundancy] 기능안전 달성을 위한 차량 및 부품의 이중화 컨셉 정리 (1)

안녕하세요. 자율주행 시스템/SW 안전 전문가를 목표로 하는 플라잉 준입니다 :) 오늘은 기능안전에서 중요한 설계 기술인 이중화 또는 중복화 라고 하는 Redundancy에 대해 SoC (System On Chip) 관점으

ji-se.tistory.com

 

개요

먼저 ISO 26262 기능안전 표준에 설명된 "Safety Compliant (안전 준수)"를 만들기 위해 사용되는 SoC (System On Chip) 설계 기술로는 아래의 기술들이 있습니다.

  1. Redundancy (이중화)
  2. Self-test (자체 테스트)
  3. Signal monitoring (신호 모니터링)
  4. Voltage supply monitoring (전압 공급 모니터링)
  5. Watchdog timer (워치독)
  6. 등등

이 중 이중화 (Redundancy)는 높은 진단 커버리지 (Diagnostic Coverage) 를 가지는 설계 기술로 안전이 중요한 시스템, 컴포넌트에 자주 사용됩니다.

차량 장치에서 이중화 (Redundancy) 를 사용하는 방법은 다양하며 아래의 상세히 설명하는 내용에서는 SoC에서 사용되는 여러 이중화 (Redundancy) 기술에 대해 설명하도록 하겠습니다.

 

이중화 (Redundancy)

먼저 이중화 (Redundancy) 는 시스템의 안전성과 가용성을 높이기 위해 중요한 기능에 사용되는 구성 요소 외에 추가 요소를 포함하는 것을 의미합니다.

이중화 (Redundancy) 는 하드웨어 형태 (e.g. dual core lockstep), 소프트웨어 형태, 정보 형태 (e.g. 메모리에 추가된 ECC), 타이밍 형태로 이중화 설계 기술이 추가될 수 있으며 일반적으로 이중화 (Redundancy)는 MooN (M-out-of-N) 개념에서 작동합니다.

※ MooN 개념은 앞선 포스트에 정리되어 있습니다 :)

 

소프트웨어 이중화 (Software Redundancy)

일반적으로 소프트웨어 이중화 컨셉은 동일한 작업을 여러 번 수행하는 것을 의미합니다.

동일한 작업을 서로 다른 알고리즘을 사용하여 수행한 다음 결과를 비교하여 결함을 검출하는 것입니다.

 

동일한 처리 장치에 있는 소프트웨어의 상호 비교

해당 기법은 한 개의 처리 장치에서 서로 다른 알고리즘으로 구현된 요소의 결과 데이터를 비교하여 결함을 감지하는 기법입니다. 이 경우 동일한 단일 처리 장치에서 동일한 작업을 실행하기 위해 서로 다른 알고리즘이 사용됩니다.

동일한 처리 장치에 있는 소프트웨어 상호 비교

위의 그림은 구현에 대한 내용입니다.

  • 기본 경로 (Primary Path) : 주요 기능에 대한 계산을 담당 (잘못 계산 할 경우, 주요 또는 안전 기능에 영향을 줄 수 있음)
  • 중복 경로 (Redundant Path) 와 비교 (Comparison) 은 기본 경로의 계산을 확인하고 오류가 감지되면 조치를 취하는 기능을 함
  • 중복 경로는 소프트웨어 다양성을 제공하기 위해 기본 경로의 알고리즘 과는 다른 별도의 알고리즘 설계 및 코드를 사용하여 구현되어야 함
  • 두 경로가 모두 완료되면 비교 요소에서 두 중복 소프트웨어 구현의 출력 데이터 비교가 수행되며 만약, 차이가 감지되면 결함 발생 메시지를 출력함

 

별도 처리 장치에 있는 소프트웨어의 상호 비교

이 기법은 두 개의 처리 장치에서 서로 다른 알고리즘으로 구현된 요소의 결과 데이터 (최종 결과, 중간 결과, 테스트 데이터 등) 을 비교하여 결함을 감지하는 기법입니다.

데이터 비교는 각 처리 장치의 소프트웨어를 사용하여 수행되며 결과의 차이가 감지되면 결함 발생 메시지를 출력합니다.

별도 처리 장치에 있는 소프트웨어 상호 비교

위의 그림은 구현에 대한 내용입니다.

  • 기본 경로 (Primary Path) 와 중복 경로 (Redundant Path) 는 서로 다른 소프트웨어 알고리즘을 사용하여 서로 다른 처리 장치에서 실행 됨
  • 이 접근 방식은 서로 다른 프로세서 유형과 별도의 알고리즘 설계, 코드 및 컴파일러가 사용되는 경우 하드웨어 및 소프트웨어 다양성을 허용하여 높은 수준의 진단 커버리지를 달성할 수 있음

주변 장치 복제 (Peripherals Replication)

주변 장치 복제 설계 기법은 하드웨어 이중화에 있는 Dual core lockstep 기법과는 동일하지 않은 기법입니다.

주변 장치는 처리 장치 외부에서 동일한 입력을 공유하고 주변 장치의 출력은 소프트웨어에서 비교됩니다.

예) SoC 에는 여러 ADC 가 사용됩니다. 이때, 입력 채널은 대부분의 ADC 에 복제되며 각 ADC 에서 출력된 값은 소프트웨어에서 비교될 수 있습니다.

 

정보 이중화 (Information Redundancy)

정보 이중화는 잡음이 많은 채널을 통해 정보가 전달 될 때 오류 감지 또는 수정을 위해 실제 데이터에 추가되는 중복 데이터를 이용해 결함을 검출하는 설계 기법입니다.

이러한 정보 이중화 설계 기법은 통신 및 네트워크 분야에서 많이 개발되고 사용되고 있습니다.

여기서는 여러 정보 이중화 설계 기법 중 차량 도메인의 SoC (System On Chip) 에서 주로 사용하는 기법에 대해 설명하겠습니다.

Parity Bit

이 설계 기법은 송신 측에서 데이터의 1의 개수가 홀수개 인지 짝수개인지를 나타내는 패리티 비트를 추가하여 수신 측에서 비교하여 검출하는 기법입니다.

  • 짝수 패리티 : 전체 데이터의 1의 개수를 짝수로 만드는 기법으로 데이터의 개수가 홀수인 경우 데이터에 '1' 을 추가하는 방식
  • 홀수 패리티 : 전체 데이터의 1의 개수를 홀수로 만드는 기법으로 데이터의 개수가 짝수인 경우 데이터에 '1' 을 추가하는 방식
  • 짝수 패리티 예제
    • 송신측 : 데이터 '1111 0000' 이고 그 끝에 짝수 패리티 비트가 추가된 경우, '1111 0000 0' 이 통신 채널을 통해 전송
    • 수신측 : 만약 결함이 발생해서 '1111 0001 0' 으로 수신측에서 전달받은 경우 수신측은 결함을 검출

만약, 오류가 감지된 경우 데이터를 재전송하도록 수신측에서 송신측으로 신호를 보낼 수 있습니다.

Checksums

이 설계 기법은 정해진 함수를 사용하여 데이터에 추가 적인 정보를 포함하는 기법으로 수신 측에서 전송 받은 데이터를 정해진 함수를 이용하여 해석하여 결함을 검출하는 기법입니다.

결함 검출 기능은 중복 비트 수, 데이터 크기 및 체크섬 생성에 사용되는 알고리즘에 따라 다릅니다.

Checksum 의 예로는 Parity bit, modular sum, position dependent checksum 등이 있습니다.

만약, 오류가 감지된 경우 데이터를 재전송하도록 수신측에서 송신측으로 신호를 보낼 수 있습니다.

 

Error correcting codes

특정 체크섬 기능은 오류를 감지할 수 있을 뿐만 아니라 데이터의 잘못된 비트를 찾아 수정할 수 있으며 이 Error correcting codes (ECC) 가 이에 해당하는 기법입니다.

ECC 기법의 예로는 아래의 2개가 있습니다.

  • 해밍코드 : 이중 비트 오류를 감지하고 데이터의 단일 비트 오류를 수정할 수 있음
  • Golay 코드 : 최대 4비트 오류를 감지할 수 있으며 3 비트 오류를 수정할 수 있음

 

타이밍 이중화 (Timing Redundancy)

시간 이중화는 시간이 지남에 따라 안전이 중요한 Task 를 중복적으로 수행하는 것을 의미합니다. 이러한 중복된 Task 는 시간이 지남에 따라 분산되기 때문에 Transient Fault (일시적 결함) 를 검출하는데 도움을 줄 수 있습니다.

Time redundancy over single hardware channel

공통 하드웨어에서 동일한 소프트웨어를 사용하여 안전이 중요한 Task 를 여러번 수행하여 결함을 검출하는 기법입니다

여러 Task 의 결과를 비교하고 차이점이 발견되면 결함을 검출하거나 정정 동작을 수행합니다.

앞서 설명한 "동일한 처리 장치에 있는 소프트웨어의 상호 비교" 의 경우 해당 기법의 확장된 버전입니다.

Time redundancy over parallel hardware channels

서로 다른 하드웨어에서 병렬 채널을 통해 안전이 중요한 Task 를 서로 다른 시간축에서 실행하여 결함을 검출하는 기법입니다. 

하드웨어 이중화에서 설명드린 Delayed Lockstep 의 경우, 이 해당 기법의 확장된 버전입니다.

 

정리

이번에는 하드웨어 이중화 (Redundancy)에 이어 소프트웨어 이중화, 정보 이중화, 타이밍 이중화에 대한 내용을 작성하였습니다 :)

 

 

아 추가로, 만약 자동차 기능 안전에 대해 실제 현업에서는 어떻게 업무가 진행되는지, 구체적인 예제는 어떤 게 있는지 등 자동차 기능안전에 대한 실무가 궁금하시다면 아래 링크를 통해 연락 주시면 도움드리도록 하겠습니다 :)

 

감사합니다.

 

 

차량 SW 취업을 위한 차별화된 기술을 알려 드립니다. | 30000원부터 시작 가능한 총 평점 5점의 직

36개 총 작업 개수 완료한 총 평점 5점인 자율주행SW전문가의 직무역량, 프로그래밍 레슨, 기획·PM 레슨 서비스를 31개의 리뷰와 함께 확인해 보세요. 직무역량, 프로그래밍 레슨, 기획·PM 레슨 제

kmong.com

 

반응형