KR101042979B1 - 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치 - Google Patents

임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치 Download PDF

Info

Publication number
KR101042979B1
KR101042979B1 KR1020090101256A KR20090101256A KR101042979B1 KR 101042979 B1 KR101042979 B1 KR 101042979B1 KR 1020090101256 A KR1020090101256 A KR 1020090101256A KR 20090101256 A KR20090101256 A KR 20090101256A KR 101042979 B1 KR101042979 B1 KR 101042979B1
Authority
KR
South Korea
Prior art keywords
error
simulation
error injection
hardware
injection
Prior art date
Application number
KR1020090101256A
Other languages
English (en)
Other versions
KR20110044530A (ko
Inventor
나종화
이동우
Original Assignee
한국항공대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국항공대학교산학협력단 filed Critical 한국항공대학교산학협력단
Priority to KR1020090101256A priority Critical patent/KR101042979B1/ko
Publication of KR20110044530A publication Critical patent/KR20110044530A/ko
Application granted granted Critical
Publication of KR101042979B1 publication Critical patent/KR101042979B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/277Tester hardware, i.e. output processing circuits with comparison between actual response and known fault-free response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명은 오류주입 시험장치 및 시험방법에 관한 것으로, 구체적으로는 하드웨어 시뮬레이션 커널에 오류주입 기능 등을 추가함으로써 하드웨어 시뮬레이션 커널을 변형시킨 오류주입 하드웨어 시뮬레이션 커널을 이용하여 오류주입시험을 수행하고, 오류주입시험 결과를 정상시험 결과와 비교 분석하는 오류주입시험 분석기를 포함하는 오류주입 시험장치 및 이를 이용한 오류주입시험 방법에 관한 것이다.
오류주입, 시뮬레이션 커널, 임베디드 시스템

Description

임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치 {Simulation Kernel-based Simulation Fault Injection Apparatus for the Evaluation of the Dependability of Embedded Systems}
본 발명은 오류주입 시험장치 및 시험방법에 관한 것으로, 구체적으로는 하드웨어 시뮬레이션 커널에 오류주입 기능 등을 추가함으로써 하드웨어 시뮬레이션 커널을 변형시킨 오류주입 하드웨어 시뮬레이션 커널을 이용하여 오류주입시험을 수행하고, 오류주입시험 결과를 정상시험 결과와 비교 분석하는 오류주입시험 분석기를 포함하는 오류주입 시험장치 및 이를 이용한 오류주입시험 방법에 관한 것이다.
일반적으로 디지털 시스템을 설계하기 위하여 하드웨어 기술언어(HDL : hardware description language)가 이용된다. 디지털 회로 설계 언어는 IEEE-1364 표준으로 지정된 Verilog나 IEEE-1076 표준으로 지정된 VHDL, 그리고 최근에 IEEE- 1666 표준으로 지정된 SystemC 등을 사용할 수 있다. 이러한 HDL 하드웨어 기술언어를 사용할 경우 ⅰ) 프로그래밍 언어처럼 추상화된 수준에서 하드웨어 설계를 할 수 있으므로, 하드웨어의 설계 복잡도가 감소하게 되며, ⅱ) 이식성(portable)이 좋고, ⅲ) 구현기술에 독립성이 있어 기술의 향상에 맞추어 설계의 수정 및 재사용이 용이하며, ⅳ) 설계의 검사(test)와 합성(synthesize)을 분리하여 수행하거나 함께 수행할 수 있는 장점이 있다.
최근까지는 레지스터 전송 수준 (Register Transfer Level or RTL)의 하드웨어 기술언어인 Verilog나 VHDL 등을 이용하여 하드웨어를 설계하는 것이 일반적이었다. 그러나 날로 발전하는 하드웨어 제조기술과 설계요구사항의 증가로 설계물의 복잡도가 계속 증가하고 있다. 이러한 복잡한 전자회로를 설계하기 위하여 새롭게 등장한 전자 시스템 수준 (Electronic Systems Level or ESL) 하드웨어 기술언어로 대표적인 것이 SystemC이다.
어떤 제품이나 솔루션에 추가로 탑재되어 그 제품 안에서 특정한 작업을 수행하도록 하는 솔루션, 예를 들어 주된 용도가 자동차의 엔진의 점화 타이밍과 연료 분사량을 제어하는 컴퓨터 시스템을 임베디드 시스템(embedded system)이라 한다. 첨단 기능이 들어 있는 컴퓨터, 가전제품, 공장자동화 시스템, 엘리베이터, 휴대폰 등 현대의 각종 전자·정보·통신 기기는 대부분 임베디드 시스템으로 구성되어 있다.
여러 응용 분야들 중에서 자동차, 철도, 항공, 원자력, 군용, 발전, 화학 플랜트 등의 응용분야에 사용되는 임베디드 시스템들에 일반 임베디드 시스템들 보다 훨씬 높은 동작 신뢰도가 요구된다. 그러나 이러한 시스템의 기능을 검증하는 것은 물론이고, 이러한 시스템들이 시장에 출시된 이후의 신뢰성을 수치적으로 평가하는 일이 필요하나 현재는 이제 대한 평가가 어려운 실정이다.
이러한 고신뢰성 임베디드 시스템들은 일정 정도의 동작 신뢰도가 필요하므로 하드웨어 및 소프트웨어 고장처리 기능을 보유한다. 즉, 오류 검출 기능과 고장 처리 또는 회복 기능을 구비한다. 이러한 기능들은 일반적으로 여분의 하드웨어 및 여분의 소프트웨어, 그리고 고장 감내 기능을 지원하는 모듈을 이용하여 구현한다.
이러한 여분의 하드웨어 및 소프트웨어 등은 순기능 측면에서는 오류 및 고장을 제거하는 효과가 있으나, 역기능 측면에서는 비용이 급상승한다는 문제가 있다. 비용 상승 문제는 비행기나 위성 등의 분야에서는 덜 민감하지만 개인용 의료 임베디드 시스템이나 개인용 자동차 임베디드 시스템에서는 그 영향이 크다. 즉 고장 감내 기능이 없는 것으로 확인하는 절차 및 고장 감내 기능의 비용이 매우 크므로 고 신뢰성이 요구되는 제품의 제조사조차도 신뢰성을 점검하지 않은 제품을 시장에 출시하는 경향이 없지 않다.
현재 기술은 시장에 제품이 출시되기 이전에 할 수 있는 검사, 즉 기능 테스팅이 강조되고 있다. 그러나 제품이 출시 된 이후의 자료, 즉 평균고장발생시간 또는 평균고장처리시간 등에 대한 자료는 1차원적이어서 실제상황과는 동떨어져 있거나 계산을 하지 못하는 것이 일반적이다. 이를 위하여 존재하는 기법은 시스템 하드웨어 내에 오류를 삽입하여 시스템이 오류를 검출하는지 판단하는 하드웨어 오류 삽입 방법과 시스템 소프트웨어 내에 오류를 삽입하여 시스템이 오류를 검출하는지 판단하는 소프트웨어 오류 삽입 방법이 개별적으로 존재한다. 이 두 가지 방법은 시스템 내에 삽입된 오류가 실질적으로 진단이 되는지 그리고 정확하게 복구되는지를 검증하는 것이다. 이러한 방법들은 보편적으로 사용되지 못하고 있다. 왜냐하면 임베디드 시스템의 구성요소인 하드웨어 및 소프트웨어는 개별적으로 검사할 대상이 아니고 통합해서 검사해야 하는 대상이기 때문이다. 임베디드 시스템에서는 똑 같은 하드웨어를 사용할지라도, 실행되는 소프트웨어에 따라서 시스템에서 고장이 발생하기도 하고, 시스템이 정상동작 하기도 한다.
그러나 위와 같이 하드웨어 및 소프트웨어를 개별적으로 검사하는 방법에서는 테스트 검정 모델 수준이 RTL (Register Transfer Level) 기반이어서 검증이 용이하지 않았다.
최근에는 반도체 제조 및 설계 자동화도구 기술의 발전으로 ESL (Electronic Systems Level)에서 하드웨어를 설계하는 방법이 사용되고 있다. 테스트 검정 모델수준을 RTL로 사용하게 되면 ASIC 등을 제조하는 것이 용이하지만 실행시간이 많이 걸리는 단점이 존재한다. 한편, 모델을 ESL로 개발하게 되면, 실행시간이 적게 소요되어 효율적이며 빠른 검정이 가능하지만, ASIC을 제조하려면 ESL모델을 RTL모델로 변환시켜야 하는 단계를 거쳐야 하는 단점이 존재한다. 따라서 모델을 개발하는데 ESL을 사용할 것인지 RTL을 사용할 것인지의 여부는 상황에 맞게 고려하여 판단해야 한다.
또한, 종전의 오류주입시험 방법 중 시험대상에 사보추어(saboteur)라는 오류주입시험 모듈을 추가하는 사보추어 기법은 오류주입을 수행하기 위해 대상 디자 인 모델을 변경시켜야 한다. 이때, 대상 디자인 모델의 복잡도가 높은 경우, 사보추어 개발 작업도 복잡해지므로, 전체 시스템의 복잡도가 크게 증가하고 있는 상황에서는 활용하기 어렵다.
또한, 종전의 기술 중 또 다른 오류주입 시험 방법으로는 시험대상에 미리 오류를 삽입하여 만들어 내는 뮤턴트(mutant)라는 시험대상을 이용하는 뮤턴트 기법이 있다. 뮤턴트 기법은 각각의 오류주입 시나리오에 따라 서로 다른 뮤턴트 모델이 필요한데, 뮤턴트 모델은 정상적인 모델에 오류정보를 추가한 모델을 의미하므로, 다양한 오류모델을 설정하여 오류주입 시뮬레이션을 수행하기 위해서 상당량의 디스크 공간이 소요된다. 따라서 통계적으로 적정 수준의 결과를 얻기 위해 요구되는 횟수의 실험에 큰 비용이 소요될 뿐만 아니라, 수 많은 뮤턴트들을 메모리 등에 저장 및 관리해야 하는 관리상의 문제점이 있다.
본 발명은 위와 같이 종래 기술이 가지는 한계 및 문제점을 극복하기 위하여 개발된 것으로서, 임베디드 시스템 또는 System-on-a-chip, System-on-a-platform 등의 신뢰성을 수치적으로 계산하는 방법을 제시한다.
또한, 오류를 주입하기 위한 별도의 코딩 작업이나 대상 디자인 모델의 변경 없이도, 간단한 설정만으로 오류를 주입하는 것을 목적으로 한다.
또한, 종전의 RTL 및 ESL 기반의 하드웨어 모델에 비해 시뮬레이션 검증 시 간을 단축시키는 시뮬레이션 커널을 변경하는 오류주입시험장치를 제공하는 것을 목적으로 한다.
이밖에도, 하드웨어와 소프트웨어의 코시뮬레이션 (co-simulation)이 가능하도록 하여 전체 임베디드 시스템을 통합시켜서 오류주입시험을 수행하도록 하는 것을 목적으로 한다.
위와 같은 목적을 달성하기 위하여 본 발명에서는 하드웨어와 소프트웨어를 포함하는 대상 디자인 모델, 하드웨어 시뮬레이션 커널에 오류주입 기능을 추가하여 하드웨어 시뮬레이션 커널을 변형시킨 오류주입 하드웨어 시뮬레이션 커널, 전자 시스템 수준 (Electronic Systems Level or ESL) 하드웨어 기술언어인 SystemC 또는 레지스터 전송 수준 (Register Transfer Level or RTL)의 하드웨어 기술언어인 Verilog, VHDL을 이용하거나 ESL과 RTL이 연동되거나, 전자제품이 장착된 보드, ESL과 RTL과 전자제품이 장착된 보드가 연결되어 있는 하드웨어, 설계된 하드웨어 메모리 시뮬레이션 모델에 실장(loading)되어 실행되는 임베디드 소프트웨어, 오류주입 시나리오를 설정하는 오류주입시험 설정용 그래픽 UI (Graphic User Interface), 복수 회의 오류주입시험 결과를 정상시험 결과와 비교 분석하는 오류주입시험 분석기를 포함하여 구성되며, 대상 디자인 모델에 오류 발생 시나리오를 주입하여 개발함으로써 상기 대상 디자인 모델의 신뢰성을 평가하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치를 제공한 다.
또한, 상기 대상 디자인 모델은 임베디드 시스템, 시스템 온 칩(System-on-a-chip) 또는 시스템 온 플랫폼(System-on-a-platform)인 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치를 제공한다.
또한, 상기 오류주입시험 분석기는 시뮬레이션 결과 로그 파일 내역, 통신 기록 내역 및 메모리 기록 내역을 포함하는 오류주입시험 결과를 정상시험 결과와 비교 분석하고, 분석 결과를 출력하는 수단을 구비하는 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치를 제공한다.
이밖에도, 상기 오류주입 시나리오는 오류주입 하드웨어 시뮬레이션 커널의 기능을 확장하기 위한 소프트웨어로, 오류발생 시간, 오류발생 위치, 오류발생 유형, 오류발생 빈도를 포함하며, 상기 오류발생 시간은 결정형 또는 랜덤형 중 하나가 선택되고, 상기 오류발생 위치는 결정형 또는 랜덤형 중 하나가 선택되며, 상기 오류발생 유형은 일반적인 오류 모델인 stuck-at-0, stuck-at-1, stuck-at-multi-bit-1, stuck-at-multi-bit-0, bridge fault 중 하나가 선택되고, 상기 오류발생 빈도는 일시적 오류, 지속적 오류, 영구적 오류, 간헐적 오류 중 어느 하나가 선택되는 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치를 제공한다.
한편, 본 발명에서는 레지스터 전송 수준 (Register Transfer Level)인 Verilog, VHDL 또는 전자 시스템 수준 (Electronic Systems Level)인 SystemC로 구현된 하드웨어 설계용 시뮬레이션 커널을 오류주입기능이 추가된 시뮬레이션 커널로 확장하는 단계; 오류발생 시간, 오류발생 위치, 오류발생 유형, 오류발생 빈도를 포함하는 오류주입 시나리오를 시뮬레이션 수행 전에 설정하거나 시뮬레이션 수행 중에 재설정하여 대상 디자인 모델에 오류주입 시나리오를 적용함으로써 오류주입 시험을 수행하는 단계; 오류주입시험 분석기가 시뮬레이터에서 제공하는 시뮬레이션 결과 로그 파일 내역, 통신 기록 내역, 메모리 기록 내역을 분석하여 오류주입 분석 결과를 출력하는 단계;를 포함하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 방법을 제공한다.
이때, 상기 오류주입 시험을 수행하는 단계는 오류주입 시간 및 오류주입 위치에 해당하는 오류발생 유형, 오류발생 빈도로 하드웨어 시뮬레이션의 결과 데이터 값을 변경함으로써 설정된 오류주입 시나리오를 주입할 수 있다.
본 발명에 따르면, 간단한 오류 설정 파일을 작성하는 것만으로도 오류 주입 시뮬레이션을 수행할 수 있어, 임베디드 시스템 또는 System-on-a-chip, System-on-a-platform 개발 초기에 간단하고 신속하게 목표 시스템의 신뢰성을 판단할 수 있다.
또한, 커널 기반의 오류 주입 기법을 사용하므로, 오류 주입을 위한 별도의 코딩 작업 없이, 간단한 설정만으로 오류를 주입할 수 있어, 전체 시스템의 복잡도 증가를 방지할 수 있다.
또한, 하드웨어 설계를 ESL (Electronic Systems Level)과 RTL (Register Transaction Level)을 따로 사용하거나 통합하여 사용할 수 있으므로 설계방법 또는 설계도구에 의존하지 않는 장점이 있다. 즉, 시스템 수준 설계가 필요하면 TRM (Transaction Level Modeling)을 이용하여 하드웨어를 설계하고, 게이트 수준의 설계가 필요하면 RTL 기반의 테스트 모델을 이용하므로 시험이 용이하다.
이밖에도, 하드웨어와 소프트웨어의 코시뮬레이션이 가능하고, 전체 시스템에 대하여 오류 주입 테스트를 수행할 수 있다.
또한, 소프트웨어 알고리즘 수준에서 신속하게 재설계 없이 ESL (Electronic Systems Level) / RTL (Register Transaction Level) 수준의 하드웨어를 설계할 수 있으므로, 임베디드 시스템의 개발 기간이 단축된다.
이하 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명은 ESL/RTL 등의 HDL 시뮬레이션 커널을 오류 주입 시뮬레이션 기능을 추가 확장한 커널로 변형시킴으로써, 간단한 시험방법의 설정만으로 하드웨어 및 소프트웨어에 오류를 설정 및 주입할 수 있는 오류주입시험 장치와 오류주입시험 방법에 관한 것이다.
본 발명의 오류주입시험 장치는 하드웨어 시뮬레이션 커널에 오류주입 기능 등을 추가하여 하드웨어 시뮬레이션 커널을 변형시킨 오류주입 하드웨어 시뮬레이션 커널과, 전자 시스템 수준 (Electronic Systems Level or ESL) 하드웨어 기술언어인 SystemC 또는 레지스터 전송 수준 (Register Transfer Level or RTL)의 하드웨어 기술언어인 Verilog나 VHDL 등을 이용하여 설계된 하드웨어, 설계된 하드웨어 메모리 시뮬레이션 모델에 실장(loading)되어 실행되는 임베디드 소프트웨어, 오류주입 시나리오를 설정하는 오류주입시험 설정용 그래픽 UI (Graphic User Interface), 여러 번의 오류주입시험 결과를 정상시험 결과와 비교 분석하여 시험대상 (simulation target)의 신뢰성 결과를 보고하는 오류주입시험 분석기를 포함한다.
상기 오류주입시험 장치는 시험대상에 오류를 주입하는 오류주입 수단으로, 오류주입에 따른 시스템의 동작을 평가하여 시스템의 신뢰도를 확인한다. 이때, 오류가 주입되는 타켓은 하드웨어 시뮬레이션 모델 (ESL/RTL)과 어플리케이션 소프트웨어가 통합된 모델이다.
본 발명의 시스템에서는 일 실시예로 설명하는 SystemC-based Simulation Fault Injection (SyFI)는 C++에 기반한 하드웨어 설계언어인 SystemC (IEEE 1666) 시뮬레이션 모델에 대한 오류주입시험 장치와 오류주입시험 방법을 제시한다. 만일 Verilog HDL을 사용하는 경우에는 Verilog-based Simulation Fault Injection (VSFI) 오류주입시험 장치와 이를 이용한 오류주입시험 방법으로 활용이 가능하다.
본 발명의 시스템에서는 SystemC 커널을 수정하여, 디자인 모델 시뮬레이션 진행 중에 오류 주입이 가능하다. 따라서, 임베디드 시스템의 개발 초기에 신속하게 시스템의 신뢰성을 검증할 수 있고, SystemC를 사용하므로 하드웨어와 소프트웨어의 코시뮬레이션이 가능하다.
구체적으로, SyFI는 SystemC 시뮬레이션 커널 라이브러리를 오류주입 시뮬레이션 커널로 확장한 라이브러리로 다음과 같이 오류주입 시나리오를 설정할 수 있다.
1) 오류발생 시간 : 결정형, 랜덤형
2) 오류발생 위치 : 결정형, 랜덤형
3) 오류발생 유형 : stuck-at-0, stuck-at-1, stuck-at-multi-bit, bridge fault등
4) 오류발생 빈도 : 일시적 오류, 지속적 오류, 주기적 재발 오류, 비주기적 재발오류
상기 SyFI는 커널 기반의 오류주입 기법에 사용되며, 위 오류주입 시나리오를 적용할 수 있도록 파일을 설정함으로써 오류주입 시뮬레이션을 수행할 수 있다. 따라서, 오류 주입을 위하여 하드웨어 로직에 부가회로를 추가하는 등 별도의 모듈을 구비할 필요가 없다.
도 1에는 오류주입 시뮬레이션을 수행하기 위해 시뮬레이션 모델에 오류주입 시뮬레이션을 설정하는 과정이 도시되어 있다. 도면에서 보는 바와 같이 시뮬레이션 모델 파일에 간단한 변수 옵션을 설정하여, 다양한 오류주입 시뮬레이션을 진행 할 수 있다. 설정변수는 모두 4가지로 구성되는데, 첫 번째 변수인 Fault_active는 오류주입 유무를 설정한다. 이때 true는 오류주입 시뮬레이션을 진행하는 것이며, false는 오류주입을 하지 않는 시뮬레이션을 진행하는 것이다. 두 번째 변수인 fault_duration은 오류의 일시적, 주기적, 영구적 기간 옵션을 선택하는 것이며, 간헐적 오류를 선택할 경우, fault_duration_time 옵션설정을 통해 오류가 지속되는 시간을 결정 할 수 있다. 세 번째 변수인 fault_type은 오류의 유형으로 Stuck-at-0, Stuck-at-1과 같은 오류의 형태를 선택 할 수 있다. 네 번째 변수인 fault_location은 오류가 주입되는 위치로 "non"으로 설정할 경우 임의의 위치에서 오류주입이 가능하다. 이와 같이 SyFI는 시뮬레이션 모듈을 수정하거나, 추가하지 않고 간단한 방법으로 오류주입 시뮬레이션을 수행 할 수 있다.
도 2a 내지 도 2c에는 본 발명의 오류주입시험 장치를 이용하여 대상 디자인 모델에 오류를 주입한 결과를 보여주는 그래프가 도시되어 있다. 도 2a는 SyFI를 통해 MIPS 프로세서 모델의 Bus_id_ctrl_ex_aluop 신호선에 일시적인 Stuck-at-0 fault를 주입한 결과를 보여준다. 도 2a의 상단 그래프는 오류가 주입되지 않은 상태를 나타내며, 하단 그래프는 오류가 주입된 상태를 나타낸다. 도 2a에서 보는 바와 같이 Bus_id_ctrl_ex_aluop은 5bit로 이루어진 bus signal이며, 그 중 2번째 bit에서 오류가 발생하여, ALU로 인가되는 제어신호가 00010에서 00000으로 잘못 전달되는 과정을 확인 할 수 있다. 고장 감내형 시스템의 경우 위와 같은 오동작의 검출과 수정이 가능해야 한다.
도 2b는 SyFI를 통해 MIPS 프로세서 모델의 bus_hazard_ifidvrite 시그널에 간헐적인 Stuck-at-0 오류가 주입된 결과를 나타낸다. 도 2b의 상단 그래프는 오류가 주입되지 않은 상태를 나타내며, 하단 그래프는 오류가 주입된 상태를 보여준다. 간헐적인 오류의 경우 도 2a에 나타난 일시적인 오류와는 다르게 일정 기간 오류의 상태가 지속되는 것을 도면을 통해 확인 할 수 있다. 간헐적 오류의 오류 간격은 설정을 통해 변경 가능하다.
도 2c는 SyFI를 통해 MIPS 프로세서 모델의 bus_registers_2 signal에 영구적인 Stuck-at-0 오류가 주입된 상태를 보여준다. 도 2c의 상단 그래프는 오류가 주입되지 않은 상태를 나타내며, 하단 그래프는 오류가 주입된 상태를 나타낸다. 이처럼 영구적인 오류를 시스템에 주입할 경우, 시뮬레이션 종료 시까지 오류 값이 유지된다.
도 3에는 대상 디자인 모델에 오류주입 시나리오를 주입하는 과정을 보여주 는 개략적인 순서도가 도시되어 있다. 본 발명의 오류주입 시뮬레이션은 SystemC 시뮬레이션 커널을 초기화, 평가, 갱신, 종료하는 4단계로 진행된다. 먼저, SystemC 시뮬레이션이 시작되면, 시뮬레이션 초기화 단계에서는 오류주입 시뮬레이션을 위한 변수를 초기화한다.
초기화가 수행된 후, 평가 단계에서 각 디자인 모듈에 대한 동작 수행 평가가 진행된다.
갱신 단계에서는 선언된 시그널 정보 중에 갱신이 필요한 시그널 값을 새로운 값으로 할당하는데, 이때 SyFI가 설정한 시나리오 즉, 오류주입 시간, 오류주입 위치가 일치할 경우, 오류발생 유형에 따라 데이터 값을 변경하여 시그널 값에 반영함으로써 시스템에 오류를 주입한다. 구체적으로, 오류발생 빈도에 따라 지속적(Permanent) 오류, 주기적(Periodic)오류인 경우에는 오류 모델을 바로 주입하고, 일시적(Transient) 오류인 경우에는 오류 발생 시간에 오류 간격을 더하여 오류 모델을 주입한다.
마지막으로, 종료 단계에서는 할당된 메모리를 해제(free)하고, 시뮬레이션 수행에 따른 로그 파일을 저장하여 분석에 활용한다.
이처럼 상위 레벨의 시스템 설계 언어인 SystemC 언어로 기술된 시뮬레이션 모델에 대하여 SyFI를 이용하여 오류를 주입하고, 이를 검출하여 신뢰도를 측정함으로써, 간단한 시스템 설계 및 실험을 통해 시스템 기반의 설계 모델을 검증할 수 있다.
도 4에는 본 발명의 오류주입 시뮬레이션에 따른 시스템의 상태를 판별하기 위한 분석 과정을 보여주는 개략도가 도시되어 있다. 대상 디자인 모델의 시뮬레이션을 수행하면 VCD 실행 결과파일이 산출되는데, VCD 파일은 시간의 흐름에 따른 하드웨어 신호의 파형 변화 정보를 기록하므로, 시스템의 전체적인 동작 특성을 분석 할 수 있다. 하지만, VCD 파일은 대상 디자인 모델이 복잡하거나 시뮬레이션 시간이 증가하면, 정보량이 크게 증가하여 분석하는데 많은 시간과 비용이 소모된다. 따라서 분석에 필요한 특정 정보만을 추출할 필요가 있다. 본 발명에서는 Trainer Engine를 이용하여 분석자가 선택한 특정 정보만을 VCD파일에서 추출한다. 도 4의 Golden VCD(이하 GV)는 오류를 주입하지 않은 시뮬레이션 결과이며, FI VCD(이하 FV)는 오류를 주입한 시뮬레이션 결과이다. Target Module DB는 추출이 필요한 특정정보 리스트이고, Trainer Engine을 통해 추출된 정보는 Transaction Data Set이라고 명한다. 추출된 GV와 FV은 2가지 방법의 비교를 통해 오류에 의한 시스템의 영향을 판단 할 수 있다. 첫 번째 방법은 Transaction Diff가 추출된 정보를 1:1 로 비교하는 것이다. 즉 동일한 시뮬레이션 시간에 발생한 동작정보만을 각 파일(GV, FV)의 정보를 통해 비교하는 것이다. 그러나 이와 같은 방법은 정보의 overwritten, delay, masking과 같은 동작에 의한 상태변이를 충분히 비교할 수 없다. 두 번째 방법은 Transaction Diff를 통한 분석의 한계를 보완하기 위한 것으로 State Diff가 추출된 정보를 대상으로 Selected Target Emulation을 수행하며, 에뮬레이션 수행에 따른 대상 정보의 상태 변화를 통해 시험 결과를 분석하는 것이다.
위와 같은 분석을 통해 시뮬레이션 결과는 3가지 상태로 분류된다. 첫째는 오류를 주입하였지만 시스템에 아무런 영향을 주지 않는 경우인 Non-active Fault, 둘째는 시스템에 영향을 주지만 수행결과에는 영향을 주지 못하는 Fault Masking, 셋째는 오류주입으로 인해 수행결과에 영향을 미치는 System Failure 이다. 또한 실험결과를 통해 시스템의 취약한 부분을 추출하여 신뢰성 시스템 설계의 선행 자료로 활용할 수 있다.
이상에서는 SystemC 시뮬레이션 커널을 이용한 SyFI에 대해 설명하였으나, 이상의 설명은 시뮬레이션 커널을 Verilog 또는 VHDL로 변경하는 경우에도 적용될 수 있고, Verilog 기반 오류주입시험 장치 및 VHDL 기반 오류주입시험 장치를 구성하고 오류주입시험을 수행하여 개발된 임베디드 시스템 또는 System-on-a-chip, System-on-a-platform 등의 신뢰성을 평가하는데 사용할 수 있다.
이하에서는 본 발명의 오류주입시험 장치를 이용한 오류주입시험 방법을 설명한다. 먼저 임베디드 시스템 신뢰성 평가자는 대상 디자인 모델로서 ESL 또는 RTL 하드웨어 모델을 준비하고, 소프트웨어를 준비하여 메모리에 로딩한다. 이 후, 오류주입시험 설정용 그래픽 UI를 이용하여 시험 시나리오를 입력함으로써 오류주입시험을 시작한다.
오류주입시험이 완료되면, 오류주입시험 분석기가 시험 결과를 분석하여 신뢰성을 평가하고 결과를 보고한다. 결과보고서에는 제작된 시험대상 임베디드 시스템 또는 System-on-a-chip (Soc)에 통계학적으로 계산된 오류주입시험을 수행하여 시험대상의 상태가 어떻게 변화하는지가 분석되며, 시험대상의 고장률, 신뢰성 등이 수치적으로 계산된다.
본 발명에서, MIPS와 TMR_MIPS에 각 오류모델(Stuck-at-0, Stuck-at-1) 별로 100,000회의 오류주입실험을 수행한 결과를 살펴보면, stuck-at-1 오류 주입 실험을 수행한 결과 MIPS는 24.75%의 AVF(Architectural Vulnerability Factor)값이, TMR_MIPS는 0.32%의 AVF값이 산출된다. 산출된 AVF값과 유의수준 α값, 신뢰 구간 w값을 다음 식에 대입하여 MIPS와 TMR_MIPS의 실험 요구 횟수(n)를 산출할 수 있다.
Figure 112009065090687-pat00001
(수학식 1)
상기 수학식 1에서 Z2 α/2는 신뢰도 수준 100×(1-α)%에 해당하는 정규화 값이고, w는 특정 신뢰도 수준에서의 신뢰도 구간 넓이이다. P는 AVF(Architectural Vulnerability Factor)의 확률, AVF는 베르누이 시행에서 성공할 확률을 평가하는 측정상수이다. AVF가 0.1일 경우 최소 10,000회의 오류주입 실험이 필요하고, TMR_MIPS와 같이 높은 신뢰도를 가지고 있는 대상 디자인 모델의 경우, AVF는 0.0001의 값을 가지며, 95%의 신뢰구간 수준에서 약 60,000회에 이르는 실험이 필요하다.
오류주입시험 분석기(SyFI 분석기)는 R(t) = exp (λ·t)를 사용하여 실패율(λ)과 실패 경우의 수들을 계산한다. 이때, R(t)는 reliability, t는 시간을 나타낸다.
도 1은 오류주입 시뮬레이션을 수행하기 위해 시뮬레이션 모델에 오류주입 시뮬레이션을 설정하는 과정을 보여주는 개략적인 도면이다.
도 2a 내지 도 2c는 본 발명의 오류주입시험 장치를 이용하여 대상 디자인 모델에 오류를 주입한 결과를 보여주는 그래프이며, 상단 그래프는 오류가 주입되지 않은 상태, 하단 그래프는 오류가 주입된 상태의 결과를 나타낸다.
도 3은 대상 디자인 모델에 오류주입 시나리오를 주입하는 과정을 보여주는 개략적인 순서도이다.
도 4는 본 발명의 오류주입 시뮬레이션에 따른 시스템의 상태를 판별하기 위한 분석 과정을 보여주는 개략도이다.

Claims (6)

  1. 전자 시스템 수준 (Electronic Systems Level or ESL) 하드웨어 기술언어인 SystemC 또는 레지스터 전송 수준 (Register Transfer Level or RTL)의 하드웨어 기술언어인 Verilog, VHDL을 이용하거나 ESL과 RTL이 연동되어 설계된, 전자제품이 장착된 보드가 연결되어 있는 하드웨어, 및
    설계된 하드웨어 메모리 시뮬레이션 모델에 실장(loading)되어 실행되는 소프트웨어를 포함하는 대상 디자인 모델;
    상기 하드웨어의 시뮬레이션 커널에 오류주입 기능을 추가하여 하드웨어 시뮬레이션 커널을 변형시켜, 상기 대상 디자인 모델에 오류를 주입하는, 오류주입 하드웨어 시뮬레이션 커널;
    상기 보드에 구비되어 오류주입 시나리오를 설정하는 오류주입시험 설정용 그래픽 UI (Graphic User Interface); 및
    상기 오류주입시험 설정용 그래픽 UI를 통해 주입된 복수 회의 오류주입시험 결과를 정상시험 결과와 비교 분석하는 오류주입시험 분석기를 포함하되,
    상기 대상 디자인 모델에 복수회의 상기 오류 발생 시나리오를 주입하여 결과 값이 신뢰구간 내에서 정규화된 값인지 분석함으로써, 상기 대상 디자인 모델의 신뢰성을 평가하고,
    상기 오류주입시험 분석기는 시뮬레이션 결과 로그 파일 내역, 통신 기록 내역 및 메모리 기록 내역을 포함하는 오류주입시험 결과를 정상시험 결과와 비교 분석하고, 분석 결과를 출력하는 수단을 구비하는 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치.
  2. 제1항에 있어서,
    상기 대상 디자인 모델은 임베디드 시스템, 시스템 온 칩(System-on-a-chip) 또는 시스템 온 플랫폼(System-on-a-platform)인 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 오류주입 시나리오는 오류주입 하드웨어 시뮬레이션 커널의 기능을 확장하기 위한 소프트웨어로, 오류발생 시간, 오류발생 위치, 오류발생 유형, 오류발생 빈도를 포함하며,
    상기 오류발생 시간은 결정형 또는 랜덤형 중 하나가 선택되고,
    상기 오류발생 위치는 결정형 또는 랜덤형 중 하나가 선택되며,
    상기 오류발생 유형은 일반적인 오류 모델인 stuck-at-0, stuck-at-1, stuck-at-multi-bit-1, stuck-at-multi-bit-0, bridge fault 중 하나가 선택되고,
    상기 오류발생 빈도는 일시적 오류, 지속적 오류, 영구적 오류, 간헐적 오류 중 어느 하나가 선택되는 것을 특징으로 하는 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치.
  5. 삭제
  6. 삭제
KR1020090101256A 2009-10-23 2009-10-23 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치 KR101042979B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090101256A KR101042979B1 (ko) 2009-10-23 2009-10-23 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090101256A KR101042979B1 (ko) 2009-10-23 2009-10-23 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치

Publications (2)

Publication Number Publication Date
KR20110044530A KR20110044530A (ko) 2011-04-29
KR101042979B1 true KR101042979B1 (ko) 2011-06-21

Family

ID=44049244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090101256A KR101042979B1 (ko) 2009-10-23 2009-10-23 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치

Country Status (1)

Country Link
KR (1) KR101042979B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101416A (zh) * 2014-09-28 2018-12-28 华为技术有限公司 一种内核故障注入方法及电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101935105B1 (ko) * 2016-11-15 2019-01-03 국방과학연구소 오류 모의 함수를 이용한 자동화 기반 강건성 검증 장치 및 방법
CN107167725B (zh) * 2017-03-30 2019-10-25 北京时代民芯科技有限公司 一种快速低开销全自动数字集成电路单粒子故障注入系统
CN108717291B (zh) * 2018-05-11 2021-04-06 河南辉煌科技股份有限公司 基于cpld进行故障注入的测试装置及测试方法
CN111813668B (zh) * 2020-06-30 2023-03-24 烽火通信科技股份有限公司 复盘软件程序执行过程的方法、存储介质、设备及系统
CN113591323B (zh) * 2021-08-11 2024-04-09 中林信达(北京)科技信息有限责任公司 嵌入式图像动态场景仿真成像系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040099439A (ko) * 2002-04-17 2004-11-26 컴퓨터 어소시에이츠 싱크, 인코포레이티드 다수의 커널 버전에서 수행하기 위해 커널 모듈을수정하는 장치 및 방법
KR20080042659A (ko) * 2006-11-09 2008-05-15 한국전자통신연구원 소프트웨어 결함 유발 데이터를 삽입한 파일을 이용하여소프트웨어의 결함을 검출하는 자동화 시스템 및 그 방법
KR20080050118A (ko) * 2006-12-01 2008-06-05 삼성전자주식회사 임베디드용 소프트웨어의 오류 검출 방법
KR20090030156A (ko) * 2007-09-19 2009-03-24 한국전자통신연구원 테스트 케이스의 성능 평가 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040099439A (ko) * 2002-04-17 2004-11-26 컴퓨터 어소시에이츠 싱크, 인코포레이티드 다수의 커널 버전에서 수행하기 위해 커널 모듈을수정하는 장치 및 방법
KR20080042659A (ko) * 2006-11-09 2008-05-15 한국전자통신연구원 소프트웨어 결함 유발 데이터를 삽입한 파일을 이용하여소프트웨어의 결함을 검출하는 자동화 시스템 및 그 방법
KR20080050118A (ko) * 2006-12-01 2008-06-05 삼성전자주식회사 임베디드용 소프트웨어의 오류 검출 방법
KR20090030156A (ko) * 2007-09-19 2009-03-24 한국전자통신연구원 테스트 케이스의 성능 평가 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101416A (zh) * 2014-09-28 2018-12-28 华为技术有限公司 一种内核故障注入方法及电子设备
CN109101416B (zh) * 2014-09-28 2022-01-14 华为技术有限公司 一种内核故障注入方法及电子设备

Also Published As

Publication number Publication date
KR20110044530A (ko) 2011-04-29

Similar Documents

Publication Publication Date Title
KR101042979B1 (ko) 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치
US6061283A (en) Semiconductor integrated circuit evaluation system
CN114065677B (zh) 用于集成电路硬件设计的故障注入测试的方法和系统
US8650519B2 (en) Automated functional coverage for an integrated circuit design
CN112417798A (zh) 一种时序测试方法、装置、电子设备及存储介质
CN107688694B (zh) 使用多个选通点的单元感知缺陷表征和波形分析
US8453082B2 (en) Soft error verification in hardware designs
US7454726B2 (en) Technique for generating input stimulus to cover properties not covered in random simulation
Chupilko et al. A TLM-based approach to functional verification of hardware components at different abstraction levels
Na et al. Simulated fault injection using simulator modification technique
US9058452B1 (en) Systems and methods for tracing and fixing unknowns in gate-level simulation
CN117454811A (zh) 待测设计的验证方法及装置
CN117094269A (zh) 一种验证方法、装置、电子设备及可读存储介质
Gil et al. VHDL simulation-based fault injection techniques
CN117350208A (zh) 时序逻辑元件性能检查方法及设备
Kafka et al. FPGA-based fault simulator
US20050108596A1 (en) Method of verifying circuitry used for testing a new logic component prior to the first release of the component
Marchese et al. Formal fault propagation analysis that scales to modern automotive SoCs
US7428483B2 (en) Method and apparatus to simulate and verify signal glitching
US11023357B1 (en) Method and system for sequential equivalence checking
US7630876B1 (en) Method and system for filtering unknown values in ASIC design simulation
JP2837703B2 (ja) 故障診断装置
CN112580282B (zh) 用于集成电路设计验证的方法、装置、设备以及存储介质
US10060976B1 (en) Method and apparatus for automatic diagnosis of mis-compares
Fey Assessing system vulnerability using formal verification techniques

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140617

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160615

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180314

Year of fee payment: 7

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20190626

Year of fee payment: 9