AUTOSAR/AUTOSAR 기능안전

AUTOSAR 기능 안전 - 03 Timing Monitoring

임아톰 2022. 8. 31. 15:16

관련 글 목록

  1. AUTOSAR 기능 안전 - 01 FFI 
  2. AUTOSAR 기능 안전 - 02 Memory Partitioning 
  3. AUTOSAR 기능 안전 - 03 Timing Monitoring <- 현재 포스팅
  4. AUTOSAR 기능 안전 - 04 Logical Supervision
  5. AUTOSAR 기능 안전 - 05 End-2-End Protection
  6. AUTOSAR 기능 안전 - 06 Hardware Diagnostics

 

참고

  • 개인적인 공부 목적으로 정리한 자료입니다.
  • AUTOSAR_EXP_FunctionalSafetyMeasures.pdf 문서를 참고하여 작성하였습니다.
  • 잘못된 내용이 있다면 댓글 달아주시면 수정하겠습니다 :)

 

Timing Monitoring 개요

임베디드 시스템에서 타이밍은 중요한 특성입니다. 임베디드 시스템에서는 논리적으로 정확한 값을 계산하는 것 뿐만 아니라 이를 주어진 시간 안에 계산해야 합니다. 이는 임베디드 시스템이 시간 안에 처리하는 게 중요한 일에 많이 사용되기 때문입니다. (자동차나 항공기는 처리가 1초만 늦어져도 큰 사고로 이어질 수 있습니다.)

주어진 시간 안에 처리한다는 것은 곧 시간 제약을 만족시키는 것으로 볼 수 있습니다. 그러나, AUTOSAR SWC는 자체만으로 시간 제약을 만족시키는 걸 보장할 수 없습니다. 이를 위해서는 AUTOSAR RTE와 BSW의 지원이 필요합니다. 해당 포스트에서는 AUTOSAR에서 지원하는 Timing Monitoring 기능을 살펴보겠습니다.

* 실시간 시스템에서 시간 제약은 데드라인과 같은 용어로 표현됩니다. 자세한 내용이 궁금하면 RTOS 용어 정리 문서를 참고하시면 됩니다.

 

 

Fault Models

ISO 26262에 따르면 다음의 Timing과 Execution에 관련한 fault가 SWC 간 간섭의 원인으로 간주될 수 있습니다.

  • Blocking of execution
  • Deadlocks
  • Livelocks
  • Incorrect allocation of execution time
  • Incorrect synchronization between software element

Timing protection과 Monitoring은 태스크가 특정 시간에 실행되는지, execution time budget을 만족시키는지 그리고 OS resource를 독점하지 않는지 등을 확인합니다. 안전과 관련된 함수가 시간 제약을 만족시키게 하려면 CPU를 독점하는 태스크를 감지하고 이를 처리해야 합니다.

 

 

Watchdog Manager

Watchdog Manager는 AUTOSAR 아키텍처의 BSW 모듈 중 하나로 Watchdog Hardware가 SW를 감시하도록 합니다. SW가 시간적 혹은 논리적 제약조건을 위반한걸 감지하면, failure를 회복하기 위한 동작들이 수행됩니다.

Watchdog Manager는 Temporal Program Flow Monitoring을 위해 다음의 메카니즘을 제공합니다.

  • Alive Supervision
  • Deadline Supervision

 

Supervised Entities (SE)

Watchdog Manager는 Supervised Entites를 사용하여 SW를 감시(supervise)합니다 . Supervised Entities는 SWC, BSW 혹은 CDD의 러너블이라 생각하면 됩니다. SE는 Checkpoint를 사용하고 실행 중에 checkpoint에 도달하면 Watchdog Manager에게 checkpoint에 도달한 것을 알립니다.

 

Alive Supervision

Alive Supervision은 하나의 checkpoint를 사용해 SE가 살아있는지 확인합니다. Watchdog Manager는 SE의 checkpoint가 주어진 제한 안에 도달했는지 주기적으로 확인합니다. 이를 통해 SE가 너무 자주 실행되거나 너무 가끔 실행되지 않는 지 확인할 수 있습니다.

 

Deadline Supervision

Deadline Supervision은 두 개의 SE를 사용하여 기대하는 시간 안에 실행이 되는 지 확인합니다. 두 개의 checkpoint를 사용하여 두 개의 checkpoint 실행 시간 차이를 이용하여 실행시간을 계산할 수 있습니다.

 

 

Timing Protection of the Operating System

실시간 시스템에서 timing fault는 task 혹은 interrupt가 데드라인을 못맞출 때 발생합니다.

AUTOSAR OS에서 task 혹은 interrupt가 데드라인을 만족시키는 건 다음 요소들에 의해 결정됩니다.

  1. Task/Interrupt의 실행시간
  2. Task/Interrupt의 블록킹 시간
  3. Task/Interrupt의 Inter-arrival Rate

운영체제에서 Task/Interrupt가 각각의 데드라인을 만족시키기 위해서는 위의 요소들을 컨트롤해야 합니다. AUTOSAR OS는 Timing Protection을 위해 다음의 메카니즘을 제공합니다.

  1. Execution Time Protection
    : Task/Interrupt의 실행 시간 상한선(Execution Budget)을 모니터링하여 timing error을 방지합니다.
  2. Locking Time Protection
    : 자원 블록킹 혹은 interrupt suspending의 상한선(Lock Budget)을 두어 OS가 모니터링합니다.
  3. Inter-Arrival Time Protection
    : 태스크가 활성화 되는 시간 혹은 2개의 인터럽트가 도착하는 시간의 하한선(Time Frame)을 두어 OS가 timing error를 방지합니다.

 

 

Detection and Reaction

Supervised Entites(SE)는 deadline supervision, alive supervision과 같은 메카니즘에 따라 상태가 결정됩니다. 이를 Local Supervision Status라 합니다. 각 SE의 상태가 결정되면 각각의 Local Supervision Stutus에 따라 전체 MCU의 상태가 결정됩니다. 이를 Global Supervision Status라 합니다.

Watchdog Manager는 SE의 Local Supervision Status와 Global Supervision Status에 따라 회복하기 위한 여러가지 메카니즘을 수행합니다. 회복을 위해 수행하는 메카니즘에는 다음과 같은 것들이 있습니다.

  • Error Handling in the SE
  • Partition Shutdown
  • Reset by HW Watchdog
  • Immediate MCU Reset

 

 

Limitations

  1. Deadline Supervision은 지연을 감지할 수는 있지만 타임아웃을 감지할 수 없음
    두 개의 체크 포인트를 사용하는데 두번 째 체크포인트가 실행되지 않는 경우는 감지할 수 없습니다.
  2. Deadline Supervision을 중첩하여 사용하는 것을 지원하지 않음 (i.e. start 1, start 2, end 2, end 1)
  3. SE 당 두 개 이상의 Alive Supervision 함수를 사용하는 것을 추천하지 않음
    Watchdog Manager 문서에는 해당 내용이 명세화 되어 있지 않습니다.
  4. 라이브러리에서는 Watchdog Manager를 사용할 수 없음
    라이브러리에서는 BSW를 호출할 수 없기 때문에 Watchdog Manger를 사용할 수 없습니다.

 

참고

Watchdog Manager in AUTOSAR

 

다음글 - AUTOSAR 기능 안전 - 04 Logical Supervision

반응형