Post

advanced Safe Finite State Machines

Precision Hi-rel 을 통한 Safe FSM 자동 구현

Precision Hi-Rel은 안전한 설계를 위한 Advanced Finite State Machine(FSM)를 지원하는 다양한 기능을 제공합니다. 이러한 기능은 특히 안전이 중요한 응용 분야에서 유용하게 사용될 수 있습니다.

  • SEU 탐지 및 복구(SEU Detect 옵션) : 단일 이벤트 업셋(SEU)이 발생했을 때 이를 감지하고 복구하는 기능입니다.
  • 자동 결함 허용 FSM 인코딩(SEU Tolerant 옵션) : 안전한 FSM에서 SEU에 강한 인코딩을 자동으로 적용해 결함 허용성을 높입니다.

Precision Hi-Rel은 기존의 Basic Safe FSM 지원을 넘어, 이러한 새로운 기능을 추가하여 안전성을 강화하였습니다. 네트워크나 디지털 이미지 처리와 같은 응용 분야에서는 오디오/비디오 스트림에서 약간의 글리치나 데이터 패킷 손실은 허용 가능할 수 있지만, 제어 로직의 오작동은 시스템 전체를 예측 불가능하게 만들 수 있습니다. 이 경우, 전체 설계에 TMR을 적용하는 것은 비용이 많이 들기 때문에, FSM 영역에만 집중하여 완화하는 것도 효율적인 해결책일 수 있습니다.

이 기능을 통해 설계자는 안전이 요구되는 환경에서 더욱 신뢰할 수 있는 시스템을 구축할 수 있습니다. Precision Hi-Rel은 Safe FSM 자동 구현을 위해 아래의 기능들을 제공합니다.

:bulb: The Basic Safe FSM

Finite State Machine(FSM) 의 기본 원리는 FSM이 알 수 없는 상태에 빠져 멈추는 것을 방지하는 것입니다. 아래 설명에 따르면, 3개의 상태만을 사용하는 간단한 이진 인코딩 FSM이 있을 때, FPGA 합성 과정에서 접근할 수 없는 상태들은 제거되어 정의된 3개의 상태만 필요하다고 가정합니다.

alt text

하지만 장치가 단일 이벤트 업셋(SEU)을 경험하여 레지스터 비트 중 하나가 반전되면, FSM은 정의되지 않은 잘못된 상태로 진입해 회로가 멈출 수 있습니다. 보통 합성 도구에는 이러한 잘못된 상태를 정의하고 이후의 동작을 설정할 수 있는 “Safe-FSM” 기능이 있습니다. Precision Hi-Rel은 VHDL의 when others 구문과 Verilog의 default 구문을 지원하는 Basic Safe FSM 기능을 제공합니다.

:pencil2: Basic Safe FSM의 한계

  • Basic Safe FSM 솔루션은 정상 상태로의 잘못된 전환을 고려하지 않습니다.
  • 이러한 Safe FSM 지원은 1-hot 인코딩 방식에만 유용하며, 이 경우 단일 비트가 뒤집히면 자동으로 정의되지 않은 상태가 됩니다. 하지만 1-hot 방식의 Safe FSM은 면적 측면에서 매우 큰 자원을 소모합니다.
  • SEU가 발생할 경우 FSM의 동작이 중단되고, FSM이 복구 상태로 진입해 다시 시작할 수 있습니다.

Precision Hi-RelSEU DetectSEU Tolerant 옵션은 이러한 한계를 해결하기 위해 제공됩니다.

:bulb: SEU Detect와 Recovery FSM

SEU Detect 옵션을 사용하면, Precision은 패리티 비트가 포함된 Hamming-2 인코딩을 통해 FSM을 구현합니다. 이를 위해 FSM 인코딩 방식에 두 개의 패리티 비트를 추가합니다.

만약 SEU가 패리티 비트 중 하나에 영향을 미친다면, 다른 비트가 정상적인 FSM 동작을 유지하도록 도와줍니다. 패리티 비트에 발생하는 SEU는 오탐을 방지하기 위해 무시됩니다.

SEU Detect 옵션이 적용된 advanced Safe FSM 구현은 이전 버전에서 지원하던 1-hot 인코딩뿐만 아니라, 이진 인코딩과 그레이 인코딩에서도 SEU를 감지할 수 있도록 확장되었습니다.

:pencil2: SEU Detect 및 Recovery 사용의 장점

  • 자동화된 구현 : 특별한 도구나 완화 기술에 대한 전문 지식이 필요하지 않으며, 구현이 자동화되어 있습니다.
  • 모든 잘못된 전환 감지 : 모든 잘못된 상태 전환을 감지할 수 있습니다.
  • 효율적인 인코딩 방식 지원 : 이진 인코딩과 그레이 인코딩 같은 효율적인 인코딩 스타일에서도 작동합니다.
  • 패리티 비트의 SEU 무시 : 패리티 비트에 발생한 SEU는 무시하여 오탐을 방지합니다.

:pencil2: SEU Detect 및 Recovery 의 제약사항

FSM은 SEU가 발생하면 동작이 중단되고 복구 상태로 들어가거나 재설정될 수 있습니다. 그러나 이러한 중단이나 재설정은 일부 응용 분야에서는 바람직하지 않거나 적합하지 않을 수 있습니다. 이러한 경우, Fault Tolerant FSM 을 사용하는 것이 유용합니다.

alt text

State Before With Parity Bits SEUs Detected SEUs have no impact
on operation
A 00 0001 1001,0101 0011,0000
B 01 0110 1110,0010 0100,0111
C 10 1010 0010,1110 1000,1011

:bulb: Fault Tolerant FSM

SEU가 발생하여 FSM이 복구 상태로 전환되거나 리셋될 수 있는 경우, 자동 결함 허용 FSM(Fault Tolerant FSM) 인코딩을 사용하면 FSM이 SEU를 흡수하여 정상적인 회로 동작이 중단되지 않도록 도울 수 있습니다.

이 결함 허용 FSM은 해밍 거리-3(Hamming distance-3) 인코딩 방식을 사용하여 상태 벡터에 패리티 비트를 추가하고, 이를 통해 SEU를 교정할 수 있습니다. 이 구현은 모든 인코딩 방식에 적용 가능하며, 레지스터 수의 증가도 로그 기반으로 증가하여 효율적입니다. 예를 들어, 100비트 상태 벡터에는 8개의 패리티 비트만 필요합니다.

이 방식을 통해 결함 허용 FSM은 시스템의 신뢰성을 높이면서도 최소한의 자원으로 SEU 문제를 효과적으로 완화할 수 있습니다.

:pencil2: Fault Tolerant FSM implementation for 2-state machine

alt text

:pencil2: Impact on Area due to Fault Tolerant FSM Implementation

No. of State bits Parity bits added
1 2
2-4 3
5-11 4

The number of parity bits (k) must satisfy the equation 2k>k+n+1 where ‘n’ is the number of state bits.

:pencil2: 2-State Machine With Fault Tolerant FSM implementation

STATE BEFORE With Parity Bits These States Map
to Same Destination State
A 0 000 001 010 100
B 1 111 110 101 011

:pushpin: Fault Tolerant FSM 인코딩의 장점

  • 자동화된 구현: 구현이 자동으로 이루어져 별도의 도구나 완화 기술에 대한 전문 지식이 필요하지 않습니다.
  • SEU 발생 시 정상 동작 유지: SEU가 발생해도 FSM의 정상적인 동작이 중단되지 않습니다.
  • 효율적인 인코딩 방식 지원: 이진 인코딩, 그레이 인코딩과 같은 효율적인 인코딩 스타일에서도 사용할 수 있습니다.
  • 수동 구현의 복잡성 감소: 수동으로 유사한 Fault Tolerant FSM을 구현하는 것은 올바른 패리티 값 계산과 모든 관련 상태를 필요한 논리와 함께 구현해야 하므로 매우 번거롭고 오류 발생 가능성이 높습니다.

Fault Tolerant FSM 인코딩을 통해 복잡한 수작업을 피하면서도 SEU로부터 안전한 FSM을 손쉽게 구축할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.