KR102251991B1 - 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 - Google Patents
결함 주입 및 결함 감내 분석을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR102251991B1 KR102251991B1 KR1020150067112A KR20150067112A KR102251991B1 KR 102251991 B1 KR102251991 B1 KR 102251991B1 KR 1020150067112 A KR1020150067112 A KR 1020150067112A KR 20150067112 A KR20150067112 A KR 20150067112A KR 102251991 B1 KR102251991 B1 KR 102251991B1
- Authority
- KR
- South Korea
- Prior art keywords
- defect
- design
- processor
- fault
- tolerance analysis
- Prior art date
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 125
- 238000002347 injection Methods 0.000 title claims abstract description 75
- 239000007924 injection Substances 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000007547 defect Effects 0.000 claims abstract description 331
- 238000013461 design Methods 0.000 claims abstract description 141
- 230000007246 mechanism Effects 0.000 claims abstract description 52
- 238000004088 simulation Methods 0.000 claims abstract description 51
- 230000000694 effects Effects 0.000 claims abstract description 17
- 238000000605 extraction Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 13
- 239000000284 extract Substances 0.000 abstract description 9
- 208000024891 symptom Diseases 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000002513 implantation Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000001851 vibrational circular dichroism spectroscopy Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2247—Verification or detection of system hardware configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/02—Fault tolerance, e.g. for transient fault suppression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Nonlinear Science (AREA)
- Architecture (AREA)
- Software Systems (AREA)
Abstract
결함 주입 및 결함 감내 분석을 위한 방법 및 장치가 제공된다. 결함 감내 분석 장치는 디자인에서 디자인의 정보를 추출한다. 결함 감내 분석 장치는 추출된 디자인의 정보 및 파라미터에 기반하여 디자인의 시뮬레이션에 결함을 주입하고, 시뮬레이션에서의 결함의 영향을 분석한다. 결함 감내 분석 장치에 의해 시뮬레이션에 주입된 결함에 대한 결함 감내가 분석되고, 디자인이 구비하는 결함 감내 메커니즘의 효과가 분석된다.
Description
아래의 실시예들은 회로 디자인에 관한 것으로, 보다 상세히는 결함 주입 및 결함 감내 분석을 위한 방법 및 장치가 개시된다.
트랜지스터(transistor)의 크기가 계속적으로 줄어듬(shrink)에 따라, 일시적 결함(transient fault)이 반도체 구성요소(component)들의 신뢰성(reliability)에 있어서 주요한(major) 장애물(obstacle)로서 대두(emerge)되었다. 결과로서, 반도체 내의 결함 감내(fault tolerance) 메커니즘(mechanisms)이 특히 안전성이 필수적인 어플리케이션들에 있어서 상당한(substantial) 주목(attention)을 끌게 되었다. 안전성이 필수적인 어플리케이션들로서, 자동차 산업 및 항공 산업 등의 어플리케이션이 있다.
결함 분석은, 상황에 따라서, 추상화(abstraction)의 몇몇 레벨들에서 수행될 수 있다. 상대적으로 더 낮은 레벨에서, 결함들은 개별적인(individual) 트랜지스터 요소들, 스위치들 및 게이트(gate)들에 관련되는 것으로서 분석될 수 있다. 상대적으로 더 높은 레벨에서, 결함은 레지스터 이동 레벨(Register Transfer Level; RTL) 및 시스템 레벨에서 분석될 수 있다. 아래의 실시예에서, 결함 주입 및 결함 분석 방법론이 설명되며, 결함 주입 및 결함 분석의 대상으로서 RTL 레벨에서의 장치가 요구될 수 있다.
프로그래밍 언어 인터페이스(Programming Language Interface; PLI)는 베릴로그(Verilog) 하드웨어 설명 언어(Hardware Description Language; HDL)에 대한 어플리케이션 프로그램 인터페이스(Application Program Interface; API)일 수 있다. PLI는 베릴로그 코드로부터 C 함수(function)를 호출(invoke)하는 수단을 제공할 수 있다. 또한, PLI는 다양한 목적들을 위해 사용될 수 있다. 아래의 실시예에서 PLI는 결함 주입 및 결함 감내 분석에서 사용하기 위한 디자인의 정보를 추출하기 위해 사용될 수 있다.
다양한 결함 감내 메커니즘들을 가하기 위한 노력에도 불구하고, 오늘날에, 결함을 주입하고, 다음으로 구현된(implemented) 결함 감내 메커니즘의 효율(effectiveness)을 분석하기 위해 사용되는 표준적인 수단은 존재하지 않는다. 아래의 실시예에서는 개발 시점(development time) 동안 초고밀도 집적 회로(Very Large Scale Integration; VLSI) 프로세서의 디자인에 대한 결함 주입 및 결함 분석을 하기 위한 방법론 및 요구되는 장치가 설명된다.
결함 주입 및 결함 분석과 관련하여 한국공개특허 제2009-7008774호, 미국공개특허 제2011-0214014호 및 미국공개특허 제2008-0263400호 등이 공개된 바 있다.
일 실시예는 시뮬레이션에 결함을 주입하고, 주입된 결함에 대한 결함 감내를 분석하는 장치 및 방법을 제공할 수 있다.
일 실시예는 결함 감내 메커니즘의 효과를 분석하는 장치 및 방법을 제공할 수 있다.
일 측에 있어서, 디자인에서 상기 디자인의 정보를 추출하는 정보 추출부; 상기 추출된 디자인의 정보 및 파라미터에 기반하여 상기 디자인의 시뮬레이션에 결함을 주입하는 결함 주입부; 및 상기 시뮬레이션에서의 상기 결함의 영향을 분석하는 결함 감내 분석부를 포함하는 결함 감내 분석 장치가 제공된다.
상기 디자인은 프로세서에 대한 디자인일 수 있다.
상기 디자인은 하드웨어 설명 언어(Hardware Description Language; HDL)로 표현될 수 있다.
상기 정보 추출부는 프로그래밍 언어 인터페이스(Programming Language Interface; PLI)를 사용하여 상기 디자인에서 상기 디자인의 정보를 추출할 수 있다.
상기 결함 감내 분석부는 정상적인 시뮬레이션의 정보 및 상기 결함이 주입된 상기 시뮬레이션의 정보를 비교함으로써 상기 결함의 영향을 분석할 수 있다.
상기 결함 감내 분석부는 상기 결함이 상기 디자인이 나타내는 프로세서의 고장으로 드러나는지 여부를 판단할 수 있다.
상기 결함 감내 분석부는 상기 결함이 상기 프로세서의 레지스터에 대해 오류를 야기하지 않으면 상기 결함은 프로세서의 고장으로 드러나지 않는 것으로 판단할 수 있다.
상기 결함 감내 분석부는 상기 결함이 메모리의 기입에 영향을 미치면 상기 결함을 상기 프로세서의 고장을 드러나게 하는 결함으로 판단할 수 있다.
상기 결함 감내 분석부는 상기 디자인이 나타내는 프로세서의 결함 감내 메커니즘을 평가할 수 있다.
상기 결함 감내 분석부는 상기 결함 감내 메커니즘을 평가함에 있어서 상기 결함 감내 메커니즘이 구비되지 않은 프로세서에 주입된 상기 결함이 상기 프로세서의 고장으로 드러나는 경우에만 상기 결함 감내 메커니즘을 평가할 수 있다.
상기 결함 주입부는 상기 디자인이 나타내는 프로세서 내의 레지스터를 조작함으로써 상기 결함을 주입할 수 있다.
상기 정보 추출부는 상기 디자인 내의 레지스터의 정보를 추출할 수 있다.
상기 레지스터의 정보는 상기 레지스터의 명칭, 상기 레지스터의 비트폭, 상기 레지스터의 하드웨어 설명 언어(Hardware Description Language; HDL) 접근 경로 및 상기 레지스터의 모듈 경로 중 적어도 하나를 포함할 수 있다.
상기 파라미터는 상기 결함의 주입의 대상을 제어할 수 있다.
상기 결함의 주입의 대상은 신호 또는 모듈일 수 있다.
상기 파라미터는 상기 결함의 속성을 제어할 수 있다.
상기 결함의 속성은 상기 결함의 지속시간, 상기 결함의 발생 시각, 상기 결함의 투입 위치 및 상기 결함의 개수 중 적어도 하나일 수 있다.
상기 결함 감내 분석부는 상기 시뮬레이션 동안 발생하는 상기 시뮬레이션에서의 메모리에 대한 기입의 동작을 기록하는 값 변화 덤프 모듈을 상기 메모리에 삽입할 수 있다.
상기 결함 감내 분석부는 상기 결함이 주입되지 않은 시뮬레이션에 대한 제1 값 변화 덤프 모듈을 생성하고, 상기 결함이 주입된 시뮬레이션에 대한 제2 값 변화 덤프 모듈을 생성하고, 상기 제1 값 변화 덤프 모듈 및 상기 제2 값 변화 덤프 모듈을 비교함으로써 상기 결함이 상기 디자인이 나타내는 프로세서의 고장을 일으켰는지 여부를 판단할 수 있다.
다른 일 측에 있어서, 디자인에서 상기 디자인의 정보를 추출하는 단계; 상기 추출된 디자인의 정보 및 파라미터에 기반하여 상기 디자인의 시뮬레이션에 결함을 주입하는 단계; 및 상기 시뮬레이션에서의 상기 결함의 영향을 분석하는 단계를 포함하는 결함 감내 분석 방법이 제공된다.
또 다른 일 측에 있어서, 제1 디자인에 대하여 상기 제1 디자인에 주입된 결함의 제1 영향을 분석하는 단계; 제2 디자인에 대하여 상기 제2 디자인에 주입된 상기 결함의 제2 영향을 분석하는 단계; 및 상기 제1 영향 및 제2 영향에 기반하여 상기 제1 디자인 및 상기 제2 디자인을 비교하는 단계를 포함하는 결함 분석 방법이 제공된다.
상기 제1 디자인은 결함 감내 메커니즘이 구비되지 않은 프로세서를 나타낼 수 있다.
상기 제2 디자인은 상기 결함 감내 메커니즘이 구비된 프로세서를 나타낼 수 있다.
상기 비교하는 단계에서는 상기 제1 영향 및 상기 제2 영향을 비교함으로써 상기 결함 감내 메커니즘의 효과가 판단될 수 있다.
이 외에도, 실시예를 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.
시뮬레이션에 결함을 주입하고, 주입된 결함에 대한 결함 감내를 분석하는 장치 및 방법이 제공된다.
결함 감내 메커니즘의 효과를 분석하는 장치 및 방법이 제공된다.
도 1은 일 실시예에 따른 결함 감내 분석 장치의 구성을 도시한다.
도 2는 일 실시예에 따른 결함 감내 분석 방법의 흐름도이다.
도 3은 일 예에 따른 디자인의 정보의 추출을 나타낸다.
도 4는 일 예에 따른 결함의 주입을 설명한다.
도 5는 일 예에 따른 결함의 영향의 분석을 설명한다.
도 6은 일 예에 따른 결함 감내 메커니즘의 분석을 나타낸다.
도 7은 일 실시예에 따른 결함 분석 방법의 흐름도이다.
도 8은 일 실시예에 따른 결함 감내 분석 장치를 구현하는 전자 장치를 도시한다.
도 2는 일 실시예에 따른 결함 감내 분석 방법의 흐름도이다.
도 3은 일 예에 따른 디자인의 정보의 추출을 나타낸다.
도 4는 일 예에 따른 결함의 주입을 설명한다.
도 5는 일 예에 따른 결함의 영향의 분석을 설명한다.
도 6은 일 예에 따른 결함 감내 메커니즘의 분석을 나타낸다.
도 7은 일 실시예에 따른 결함 분석 방법의 흐름도이다.
도 8은 일 실시예에 따른 결함 감내 분석 장치를 구현하는 전자 장치를 도시한다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다.
실시예들에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 용어가 가지는 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석될 수 있다.
실시예들에서, 특정 부분과 다른 부분에 대한 연결관계는, 양자의 직접적인 연결관계 이외에, 그 사이에 또 다른 부분을 거쳐 연결되는 간접적인 연결관계를 포함할 수 있다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낼 수 있다.
도 1은 일 실시예에 따른 결함 감내 분석 장치의 구성을 도시한다.
결함 감내 분석 장치(100)는 정보 추출부(110), 결함 주입부(120) 및 결함 감내 분석부(130)를 포함할 수 있다.
결함 감내 분석 장치(100)는 HDL 내에서의 디자인 상에서의 개발 시점의 시뮬레이션 동안에서의 결함의 주입 및 결함 감내의 분석과 관련될 수 있다. 말하자면, 결함 감내 분석 장치(100)는 디자인에 대한 결함의 주입 및 결함 감내의 분석의 시뮬레이션을 수행할 수 있다.
실험하고자 하는 디자인은 프로세서에 대한 프로세서 디자인일 수 있다. 디자인은 HDL로 표현될 수 있다. 말하자면, HDL로 작성된 디자인은 프로세서 등의 회로를 나타내는 데이터일 수 있다. 시뮬레이션은 디자인을 사용하여 디자인이 나타내는 프로세서 등을 가상으로 동작시키는 것일 수 있다.
정보 추출부(110)는 디자인에서 디자인의 정보를 추출할 수 있다.
결함 주입부(120)는 추출된 디자인의 정보 및 파라미터에 기반하여 디자인에 결함을 주입할 수 있다. 결함 주입부(120)는 추출된 디자인의 정보 및 파라미터에 기반하여 디자인의 시뮬레이션에 결함을 주입할 수 있다.
결함 감내 분석부(130)는 디자인에 주입된 결함의 영향을 분석할 수 있다. 결함 감내 분석부(130)는 시뮬레이션에서의 주입된 결함의 영향을 분석할 수 있다.
또한, 결함 감내 분석부(130)는 디자인에 주입된 결함에 대한 결함의 정도, 결함이 드러나는지 여부 및 결함 감내의 작동 여부 등을 분석할 수 있다.
예를 들면, 결함 감내 분석 장치(100)은 디자인의 시뮬레이션을 구동할 수 있다. 이 때, 결함 주입부(120)는 구동된 시뮬레이션에 결함을 주입할 수 있고, 결함 감내 분석부(130)는 주입된 결함의 영향을 분석할 수 있다.
아래에서는, 실시예에 따른 결함, 결함 감내 및 결함 감내의 분석이 설명된다
레지스터(register)에 기반한 파이프라인(pipeline) 디자인에 대한 결함 분석은 플립-플롭에 기반한 연산(operation)에 합치(conform)할 수 있다. 예를 들면, 레지스터에 기반한 파이프라인 디자인으로서, 파이프라인으로 된(pipelined) 프로세서가 있다. 프로세서의 디자인은 파이프라인 스테이지들(stages)로 분할될 수 있다. 각 스테이지는 정보를 저장하기 위한 레지스터들의 집합을 가질 수 있다. 각 스테이지는 레지스터들의 집합을 통해 정보를 다음 스테이지로 전달할 수 있다. 각 스테이지에 대한 레지스터들 간에서, 이전의 스테이지로부터 제공된 데이터를 처리하는 논리 회로(logic circuitry)가 존재할 수 있다.
회로에서 결함이 발생하였을 때, 결함은 프로세서 시스템의 고장(malfunction)으로 드러날(manifest) 수 있으며, 또는 고장으로 드러나지 않은 채 무시될 수 있다. 회로 내에서 발생한 결함이 시스템에 어떤 영향도 미치지 않을 때 결함은 무시될 수 있다. 말하자면, 결함은 마스킹(masking)에 의해 완전히 제거(wipe out)될 수 있다.
프로세서 내에서의 결함 감내 메커니즘을 평가(evaluate)할 때, 단지 프로세서의 고장으로 드러나는 결함만이 고려의 대상이 될 수 있다. 왜냐하면, 나머지의 결함은 시스템 또는 프로세서의 바른(correct) 동작에 영향을 미치지 않을 수 있기 때문이다.
결함 감내 분석부(130)는 디자인이 나타내는 시스템 또는 프로세서의 결함 감내 메커니즘을 평가할 수 있다. 결함 감내 분석부(130)는 결함 주입부(120)에 의해 주입된 결함이 디자인이 나타내는 시스템 또는 프로세서의 고장으로 드러나는지 여부를 판단할 수 있다. 결함 감내 분석부(130)는 디자인이 나타내는 시스템 또는 프로세서의 결함 감내 메커니즘을 평가함에 있어서, 결함 주입부(120)에 의해 주입된 결함이 디자인이 나타내는 시스템 또는 프로세서의 고장으로 드러나는 경우에만 주입된 결함에 대한 디자인이 나타내는 시스템 또는 프로세서의 결함 감내 메커니즘을 평가할 수도 있다. 또는, 결함 감내 분석부(130)는 디자인이 나타내는 시스템 또는 프로세서의 결함 감내 메커니즘을 평가함에 있어서, 결함 주입부(120)에 의해 결함 감내 메커니즘이 구비되지 않은 프로세서에 주입된 결함이, 프로세서 또는 시스템의 고장으로 드러나는 경우에만 주입된 결함에 대한 시스템 또는 프로세서의 결함 감내 메커니즘을 평가할 수도 있다.
결함은 시스템 또는 프로세서의 어느 부분에서도 발생할 수 있다. 특정한 회로가 결함에 의해 영향을 받을 확률은 상기의 특정한 회로가 커버(cover)하는 영역에 의존할 수 있다. 파이프라인에 기반한 프로세서의 디자인에서, 파이프라인 레지스터들 내에서 어떠한 오류(erroneous)도 야기하지 않는 결함은 프로세서의 고장으로 드러나지 않을 수 있다. 따라서, 파이프라인 레지스터들 내에서 어떠한 오류도 야기하지 않는 결함은 효과적으로 무시될 수 있다. 결함 감내 분석부(130)는 주입된 결함이 디자인이 나타내는 프로세서의 레지스터에 대해 오류를 야기하지 않으면, 주입된 결함은 프로세서의 고장으로 드러나지 않는 것으로 판단할 수 있다.
다른 한편으로, 실시예에 관련된(concerned) 결함은 파이프라인 레지스터 내의 저장된 데이터를 변경하는 것일 수 있다. 그러므로, 프로세서의 디자인에서의 결함 감내 메커니즘을 평가할 때 등에 있어서, 결함의 주입은 디자인이 나타내는 프로세서 내의 레지스터를 조작함으로서 이루어질 수 있다. 결함 주입부(120)는 디자인이 나타내는 프로세서 내의 레지스터를 조작함으로써 디자인에 결함을 주입할 수 있다. 레지스터의 조작은 레지스터의 값의 변경을 포함할 수 있다. 여기에서, 변경되는 값은 고정된 값, 소정의 규칙에 의해 생성된 값, 현재의 레지스터의 값에 소정의 연산을 적용한 값 및 임의의 값 등일 수 있다.
도 1에 도시된 바와 같이, 일 실시예에 따른 결함 감내 분석 장치(100)는 정보 추출부(110), 결함 주입부(120) 및 결함 감내 분석부(130)를 포함할 수 있다. 일 실시예에 따르면, 정보 추출부(110), 결함 주입부(120) 및 결함 감내 분석부(130)의 적어도 일부는 프로그램 모듈들일 수 있으며, 외부의 장치 또는 시스템과 통신할 수 있다. 이러한 프로그램 모듈들은 운영 체제, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 결함 감내 분석 장치(100)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 결함 감내 분석 장치(100)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴(routine), 서브루틴(subroutine), 프로그램, 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있지만, 이에 제한되지는 않는다. 프로그램 모듈들은 결함 감내 분석 장치(100)의 적어도 하나의 프로세서(processor)에 의해 수행되는 명령어(instruction)로 구성될 수 있다.
도 2는 일 실시예에 따른 결함 감내 분석 방법의 흐름도이다.
결함 감내 분석 장치(100)에 의한 결함 감내 분석은 3개의 주요한 단계들(210, 220 및 230)을 포함할 수 있다.
단계(210)에서, 정보 추출부(110)는 디자인에서 디자인의 정보를 추출할 수 있다. 정보 추출부(110)는 PLI를 사용하여 HDL로 작성된 디자인에서 디자인의 정보를 추출할 수 있다.
디자인의 정보의 추출에 대해서, 아래에서 도 3을 참조하여 상세하게 설명된다.
단계(220)에서, 결함 주입부(120)는 추출된 디자인의 정보 및 파라미터에 기반하여 시뮬레이션 용 Verilog HDL 로 표현된 결함을 생성할 수 있고, 생성된 결함을 디자인의 시뮬레이션 톱 레벨(top level)에 삽입할 수 있다. 이러한 삽입을 통해 결함 주입부(120)는 생성된 결함을 주입할 수 있다.
결함의 주입에 대해서, 아래에서 도 4를 참조하여 상세하게 설명된다.
단계(230)에서, 결함 감내 분석부(130)는 시뮬레이션에서의 주입된 결함의 영향을 분석할 수 있다.
결함 감내 분석부(130)는 정상적인(normal) 시뮬레이션의 정보 및 결함이 주입된 시뮬레이션의 정보를 비교함으로써 주입된 결함의 영향을 분석할 수 있다.
결함의 영향의 분석에 대해서 아래에서 도 5를 참조하여 상세하게 설명된다.
앞서 도 1을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 3은 일 예에 따른 디자인의 정보의 추출을 나타낸다.
도 3은 도 2를 참조하여 전술된 단계(210)에서의 정보 추출부(110)의 동작을 개략적으로 나타낼 수 있다.
프로세서의 결함 감내의 성능을 분석함에 있어서, 테스팅 커버리지(testing coverage)가 요구될 수 있다. 테스팅 커버리지의 요구에 의해, 결함은 의미 있는(meaningful) 결함이 발생할 가능성이 있는 모든 가능한 위치에 주입되어야 할 수 있다. 여기에서, 의미 있는 결함이란, 고장으로 드러나는 결함을 나타낼 수 있다. 예를 들면, 의미 있는 결함이 발생할 가능성이 있는 모든 가능한 위치는 디자인이 나타내는 프로세서의 모든 레지스터들일 수 있다. 말하자면, 테스팅 커버리지의 요구에 따라, 결함 주입부(120)는 디자인의 나타내는 프로세서의 모든 레지스터들을 결함의 주입의 대상으로 삼을 수 있다.
더욱이, 프로세서 내의 어떤 모듈이 결함에 취약한가에 대한 세밀한(detailed) 분석은 프로세서의 결함 감내를 향상(enhance)시키는데 있어서 의미 있는 정보가 될 수 있다.
결함의 주입이 이루어지기 위해, 도 1을 참조하여 전술된 것과 같이, 디자인으로부터 디자인의 정보가 추출되어야 할 수 있다. 예를 들면, 베릴로그 HDL에 의해 표현된 디자인에 있어서, 추출되는 디자인의 정보는 노드의 정보를 포함할 수 있다. 또한, 노드의 정보는 노드 뱅크(node bank) 및 모듈 계층(module hierarchy)를 포함할 수 있다.
노드 뱅크는 디자인을 구성하는 노드들을 나타낼 수 있다. 베릴로그 HDL에서, 노드는 디자인이 나타내는 프로세서의 레지스터에 대응할 수 있다. 예를 들면, 노드 뱅크는 레지스터 노드 뱅크일 수 있고, 디자인이 나타내는 프로세서의 레지스터의 정보를 포함할 수 있다. 또한, 노드 뱅크는 디자인이 나타내는 프로세서의 모든 레지스터들의 목록을 포함할 수 있다.
모듈 계층은 디자인을 구성하는 모듈들 간의 계층 관계를 나타낼 수 있다.
정보 추출부(110)는 PLI를 사용하여 디자인에서 노드 뱅크 및 모듈 계층을 추출할 수 있다. PLI에 의해 디자인으로부터 노드 뱅크 및 모듈 계층이 추출될 수 있다.
PLI는 베릴로그 HDL로의 API일 수 있다. PLI는 베릴로그 코드로부터 C 함수를 호출하는 수단을 제공할 수 있다. PLI는 다양한 목적들에 대하여 사용될 수 있다. PLI는 디자인의 정보를 추출하기 위해 프로세서를 디자인하는 베릴로그 HDL과 함께 사용될 수 있다. 추출된 디자인의 정보는 결함 주입 및 결함 감내 분석에 사용될 수 있다.
디자인이 RTL 디자인인 경우, 프로세서의 코어의 RTL 디자인 상에 PLI를 사용함에 따라, 디자인 내의 모든 레지스터들의 정보가 추출될 수 있다. 정보 추출부(110)는 RTL 디자인 상에 PLI를 사용함으로써 디자인 내의 레지스터의 정보를 추출할 수 있다. 추출된 레지스터는 디자인 내의 모든 레지스터들일 수 있다.
여기에서 레지스터의 정보는 레지스터의 명칭, 레지스터의 비트폭(bitwidth), 레지스터의 HDL 접근 경로 및 레지스터의 모듈 경로 중 적어도 하나를 포함할 수 있다.
또한, 프로세서의 코어의 RTL 디자인 상에 PLI를 사용함에 따라, 모듈 계층의 정보가 추출될 수 있다. 정보 추출부(110)는 RTL 디자인 상에 PLI를 사용함으로써 디자인 내의 모듈 계층의 정보를 추출할 수 있다.
노드 뱅크 및 모듈 계층의 양자는 형식이 기정의된(pre-formatted) 파일에 기입될 수 있다. 정보 추출부(110)는 노드 뱅크 및 모듈 계층의 각각을 형식이 기정의된 파일에 기입할 수 있다.
도 3에서, 하단의 프로세서는 PLI가 실험의 대상인 디자인의 시뮬레이션과 연동되어야 동작한다는 것을 나타낼 수 있다. 여기에서, PLI의 동작은 디자인의 정보를 추출하는 기능을 의미할 수 있다. 디자인의 정보는 모듈 계층 및 노드 뱅크를 포함할 수 있다.
도 4는 일 예에 따른 결함의 주입을 설명한다.
도 4은 도 2를 참조하여 전술된 단계(220)에서의 결함 주입부(120)의 동작을 개략적으로 나타낼 수 있다.
결함 주입부(120)는 노드 뱅크, 모듈 계층 및 파라미터를 사용하여 디자인의 시뮬레이션에 대한 결함 주입 제어를 수행할 수 있다.
도 3을 참조하여 전술된 노드 뱅크(또는, 프로세서 내의 모든 레지스터들의 목록은) 결함의 주입의 캠페인(campaign)에 대하여, 프로세서의 디자인을 완전히 커버하는 결함 주입의 장소(site)를 제공할 수 있다. 결함의 주입의 캠페인은 결함의 영향의 분석을 위해 결함 감내 분석 장치(100)에 의해 이루어지는 결함의 주입을 포함하는 일련의 작업을 의미할 수 있다.
모듈 계층은 결함 주입 및 결함 감내 분석에 대하여 특정한 모듈을 타겟팅하는 수단을 제공할 수 있다.
결함의 주입을 위해, 결함 주입부(120)는 노드 뱅크의 파일 및 모듈 계층의 파일의 파싱(parsing)을 수행할 수 있다. 또한, 결함 주입부(120)는 모듈 계층의 모듈을 처리할 수 있고, 내부적으로 모듈 계층을 재생성할 수 있다.
결함 주입부(120)의 기능은 후술될 결함 주입 제어 프로그램 및 결함 제어 모듈로 나뉘어질 수 있다. 예를 들면, 결함 주입부(120)는 결함 주입 제어 프로그램 및 결함 제어 모듈을 포함할 수 있다. 또는, 결함 주입부(120)는 결함 주입 제어 프로그램 및 결함 제어 모듈을 실행할 수 있다. 전술된 파일의 파싱, 모듈의 처리 및 모듈 계층의 재생성은 결함 주입 제어 프로그램에 의해 제어될 수 있다.
결함의 주입에 사용되는 파라미터는 사용자 입력 파라미터일 수 있다. 말하자면, 결함 감내 분석 장치(100)의 사용자는 파라미터를 통해 주입될 결함을 제어할 수 있다.
파라미터는 결함의 주입의 대상을 제어할 수 있으며, 결함의 속성을 제어할 수 있다. 결함의 주입의 대상은, 1) 결함의 주입이 될 적어도 하나의 신호 또는 2) 결함의 주입이 될 적어도 하나의 모듈일 수 있다. 결함의 속성은, 1) 결함의 지속시간(duration), ii) 결함의 발생 시각 iii) 결함의 투입 위치 및 iv) 주입된 결함의 개수 중 적어도 하나일 수 있다. 경우에 따라, 파라미터는 복수일 수 있다.
결함의 주입 전 파라미터는 무작위화(randomized)될 수 있다. 파라미터의 값은 결함의 주입의 캠페인에 종속적일 수 있다. 예를 들면, 결함 주입 제어 프로그램은 무작위화된 파라미터를 취할 수 있고, 후술될 결함 주입 모듈에 의해 독출되는 정보를 생성할 수 있다.
디자인의 시뮬레이션에 결함을 주입하기 위해서는, 결함 감내 분석 장치(100)의 시뮬레이션의 최상위(top) 레벨의 모듈과 함께 실행되는 결함 주입 모듈이 요구될 수 있다. 결함 주입 모듈은 시뮬레이션에서 결함의 주입을 수행하는 소규모의 RTL 모듈일 수 있다. 결함 주입 모듈은 결함 감내 분석 장치(100)의 시뮬레이션의 최상위 레벨의 모듈과 함께 실행될 수 있다.
결함의 주입은 결함 주입 제어 프로그램 및 결함 주입 모듈의 상호작용(interaction)에 의해 이루어질 수 있다. 예를 들면, 결함 주입 모듈은 결함 주입 프로그램에 의해 제공되는 정보를 사용함으로써 시뮬레이션 상에서 타겟이 된 레지스터의 값을 변경(alter)할 수 있다. 예를 들면, 타겟이 된 레지스터의 값을 변경함에 있어서, 결함 주입 모듈은 결함 주입 제어 프로그램에 의해 명세된 시각에 타겟이 된 레지스터의 값을 변경할 수 있다. 또한, 결함 주입 모듈은 결함 주입 제어 프로그램에 의해 명세된 지속시간 동안 타겟이 된 레지스터의 값을 변경할 수 있다. 레지스터의 값이 변경된 다음, 프로세서의 시뮬레이션이 실행될 수 있다.
도 5는 일 예에 따른 결함의 영향의 분석을 설명한다.
도 5은 도 2를 참조하여 전술된 단계(230)에서의 결함 감내 분석부(130)의 동작을 개략적으로 나타낼 수 있다.
결함 감내 분석부(130)는 결함의 주입의 캠페인에서 주입된 결함이 프로세서 또는 시스템의 고장을 결과로서 낳는지 여부를 결정하기 위해 정보를 수집할 수 있다.
통상적인(conventional) 프로세서는 메모리에 기반한다. 따라서, 프로세서의 결과는 오로지 프로세서가 메모리에 기입하는 것에 의해서 나타날 수 있다. 메모리는 메인(main) 메모리 및 프로세서의 레지스터의 테이블을 포함할 수 있다. 따라서, 메모리의 기입에 영향을 미치는 결함은 프로세서 또는 시스템의 고장을 드러나게 하는 결함일 수 있다. 결함 감내 분석부(130)는 주입된 결함이 메모리의 기입에 영향을 미치면 주입된 결함을 프로세서 또는 시스템의 고장을 드러나게 하는 결함으로 판단할 수 있다.
주입된 결함이 프로세서의 레지스터에 대해서는 오류가 있는 값을 드러나게 하더라도, 프로세서의 메모리의 기입의 출력에는 영향을 미치지 않을 수도 있다. 주입된 결함이 프로세서의 메모리의 기입의 출력에는 영향을 미치지 않으면, 주입된 결함은 디자인 내에 존재하는 결함 감내 메커니즘에 의해 감내될 수 있거나, 마스킹에 의해 제거될 수 있는 것으로 간주될 수 있다. 결함 감내 분석부(130)는 주입된 결함이 프로세서의 레지스터에 대해서는 오류가 있는 값을 드러나게 하더라도 프로세서의 메모리의 기입의 출력에는 영향을 미치지 않으면, 주입된 결함을 디자인 내에 존재하는 결함 감내 메커니즘에 의해 감내될 수 있거나, 마스킹에 의해 제거될 수 있는 결함으로 판단할 수 있다.
결함 감내 분석부(130)는 시뮬레이션 동안 발생하는 시뮬레이션에서의 메모리에 대한 기입의 동작을 기록(record)하는 소형의 값 변화 덤프(value change dump; VCD) 모듈을 메모리에 삽입할 수 있다. 메모리는 메인 메모리 및 레지스터의 테이블을 포함할 수 있다. VCD 모듈은 HDL로 구성될 수 있다.
VCD 모듈은 시뮬레이션의 목적만을 위한 것일 수 있으며, 시스템 또는 프로세서의 동작에는 영향을 미치지 않을 수 있다. VCD 모듈은 메인 메모리 및 레지스터의 테이블의 값의 변화를 기록할 수 있다.
특정한 디자인의 결함 감내를 분석하기 위해, 결함 감내 분석부(130)는 결함이 주입되지 않은 시뮬레이션에 대한 제1 VCD를 생성할 수 있고, 결함이 주입된 시뮬레이션에 대한 제2 VCD를 생성할 수 있다. 말하자면, 제1 VCD는 고장이 주입된 시뮬레이션에 대한 참조 VCD일 수 있다. 결함 감내 분석부(130)는 제1 VCD 및 제2 VCD를 비교함으로써 결함의 주입의 캠페인 동안 주입된 결함이 디자인이 나타내는 시스템 또는 프로세서의 고장을 일으켰는지 여부를 판단할 수 있다.
결함 감내 분석부(130)는 제1 VCD 및 제2 VCD의 비교 후, 비교의 결과에 기반하여 주입된 결함의 영향을 분석할 수 있다. 결함 감내 분석부(130)는 결함의 영향의 분석에 있어서, 전술된 노드 뱅크, 모듈 계층 및 파라미터를 사용할 수 있다.
결함 감내 분석부(130)는 결함에 대한 통계를 획득할 수 있다. 예를 들면, 결함에 대한 통계는 결함에 대한 오류 징후 비율(error manifestation rate)을 포함할 수 있다. 오류 징후 비율은 주입된 결함의 개수에 대한 실제로 고장으로 드러난 결함의 개수의 비율일 수 있다.
도 6은 일 예에 따른 결함 감내 메커니즘의 분석을 나타낸다.
디자인이 나타내는 프로세서 또는 시스템은 결함에 대한 결함 감내를 위한 결함 감내 메커니즘을 포함할 수 있다. 결함 감내 분석부(130)는 결함 감내 메커니즘에 대한 분석을 수행할 수 있다.
결함 감내 메커니즘의 결함 감내를 분석하기 위해, 결함 감내 분석부(130)는 우선 결함 감내 메커니즘이 구비되지 않은 맨(bare) 프로세서에 대한 분석을 수행할 수 있다. 프로세서에 대한 분석은 도 1 내지 도 5를 참조하여 전술된 실시예에서와 같은 방법으로 수행될 수 있다. 결함 감내 분석부(130)는 맨 프로세서에 결함이 주입되지 않았을 경우 및 맨 프로세서에 결함이 주입되었을 경우의 각각에 대해 메모리 기입 VCD를 생성할 수 있다. 결함 감내 분석부(130)는 양 VCD들을 비교함으로써 맨 프로세서에 대한 주입된 결함의 영향을 분석할 수 있다.
예를 들면, 결함 감내 분석부(130)는 맨 프로세서에 대한 분석을 통해 맨 프로세서의 오류 징후 비율이 계산될 수 있다.
다음으로, 결함 감내 분석부(130)는 결함 감내 메커니즘이 구비된 프로세서에 대한 분석을 수행할 수 있다. 프로세서에 대한 분석은 도 1 내지 도 5를 참조하여 전술된 실시예에서와 같은 방법으로 수행될 수 있다. 결함 감내 분석부(130)는 결함 감내 메커니즘이 구비된 프로세서에 결함이 주입되지 않았을 경우 및 결함 감내 메커니즘이 구비된 프로세서에 결함이 주입되었을 경우의 각각에 대해 메모리 기입 VCD를 생성할 수 있다. 결함 감내 분석부(130)는 양 VCD들을 비교함으로써 결함 감내 메커니즘이 구비된 프로세서에 대한 주입된 결함의 영향을 분석할 수 있다.
결함 감내 분석부(130)는 맨 프로세서에 대한 주입된 결함의 영향 및 결함 감내 메커니즘이 구비된 프로세서에 대한 주입된 결함의 영향을 비교함으로써 결함 감내 메커니즘의 효과를 분석할 수 있다.
예를 들면, 결함 감내 분석부(130)는 결함 감내 메커니즘이 구비된 프로세서의 오류 징후 비율을 계산할 수 있다. 결함 감내 분석부(130)는 맨 프로세서의 오류 징후 비율 및 결함 감내 메커니즘이 구비된 프로세서의 오류 징후 비율을 서로 비교할 수 있다. 결함 감내 분석 장치(100)는 결함 감내 메커니즘의 효율을 평가하기 위한 것과 동일한 결함의 주입의 캠페인을 맨 프로세서의 오류 징후 비율 및 결함 감내 메커니즘이 구비된 프로세서의 오류 징후 비율의 비교를 위해 사용될 수 있다.
도 7은 일 실시예에 따른 결함 분석 방법의 흐름도이다.
단계(710)에서, 결함 감내 분석 장치(100)는 제1 디자인에 대하여 제1 디자인에 주입된 결함의 제1 영향을 분석할 수 있다. 단계(710)는 도 2를 참조하여 전술된 단계들(210, 220 및 230)을 포함할 수 있다.
예를 들면, 제1 디자인은 결함 감내 메커니즘이 구비되지 않은 프로세서를 나타낼 수 있다. 제1 영향은 주입된 결함에 대한 통계를 포함할 수 있다.
단계(720)에서, 결함 감내 분석 장치(100)는 제2 디자인에 대하여 제2 디자인에 주입된 결함의 제2 영향을 분석할 수 있다. 단계(720)는 도 2를 참조하여 전술된 단계들(210, 220 및 230)을 포함할 수 있다.
예를 들면, 제2 디자인은 결함 감내 메커니즘이 구비되지 않은 프로세서를 나타낼 수 있다. 제2 영향은 주입된 결함에 대한 통계를 포함할 수 있다.
단계(730)에서, 결함 감내 분석 장치(100)는 제1 영향 및 제2 영향에 기반하여 제1 디자인 및 제2 디자인을 비교할 수 있다.
예를 들면, 결함 감내 분석 장치(100)는 제1 영향 및 제2 영향을 비교함으로써 제2 디자인이 구비하는 결함 감내 메커니즘의 효과를 판단할 수 있다.
앞서 도 1 내지 도 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 일 실시예에 따른 결함 감내 분석 장치를 구현하는 전자 장치를 도시한다.
결함 감내 분석 장치(100)는 도 8에서 도시된 전자 장치(800)로서 구현될 수 있다.
결함 감내 분석 장치(100)는 컴퓨터에 의해 독출(read)될 수 있는 기록매체를 포함하는 컴퓨터 시스템에서 구현될 수 있다. 도 8에 도시된 바와 같이, 전자 장치(800)는 버스(822)를 통하여 서로 통신하는 적어도 하나의 프로세서(processor)(821), 메모리(823), 사용자 인터페이스(User Interface; UI) 입력 디바이스(826), UI 출력 디바이스(827) 및 저장소(828)를 포함할 수 있다. 또한, 전자 장치(800)는 네트워크(830)에 연결되는 네트워크 인터페이스(829)를 더 포함할 수 있다. 프로세서(821)는 중앙 처리 장치(Central Processing Unit; CPU) 또는 메모리(823)나 저장소(828)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 메모리(823) 및 저장소(828)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 롬(ROM)(824)이나 램(RAM)(825)을 포함할 수 있다.
결함 감내 분석 장치(100)의 적어도 하나의 부(unit)는 메모리(823)에 저장될 수 있고, 적어도 하나의 프로세서(821)에 의하여 실행되도록 구성될 수 있다. 결함 감내 분석 장치(100)의 데이터 또는 정보의 통신과 관련된 기능은 네트워크 인터페이스(829)를 통해 수행될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결함 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 결함 감내 분석 장치
110: 정보 추출부
120: 결함 주입부
130: 결함 감내 분석부
110: 정보 추출부
120: 결함 주입부
130: 결함 감내 분석부
Claims (20)
- 디자인에서 상기 디자인의 정보를 추출하는 정보 추출부;
상기 추출된 디자인의 정보 및 파라미터에 기반하여 상기 디자인의 시뮬레이션에 결함을 주입하는 결함 주입부; 및
상기 시뮬레이션에서의 상기 결함의 영향을 분석하는 결함 감내 분석부
를 포함하고,
상기 결함 감내 분석부는 상기 디자인이 나타내는 제1 프로세서의 결함 감내 메커니즘을 평가하고,
상기 결함 감내 분석부는 상기 결함 감내 메커니즘을 평가함에 있어서 상기 결함 감내 메커니즘이 구비되지 않은 제2 프로세서에 주입된 상기 결함이 상기 제2 프로세서의 고장으로 드러난다는 결정에 기반하여 상기 결함 감내 메커니즘을 평가하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 디자인은 상기 제1 프로세서에 대한 프로세서 디자인인 결함 감내 분석 장치. - 제1항에 있어서,
상기 디자인은 하드웨어 설명 언어(Hardware Description Language; HDL)로 표현되는 결함 감내 분석 장치. - 제1항에 있어서,
상기 정보 추출부는 프로그래밍 언어 인터페이스(Programming Language Interface; PLI)를 사용하여 상기 디자인에서 상기 디자인의 정보를 추출하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 감내 분석부는 정상적인 시뮬레이션의 정보 및 상기 결함이 주입된 상기 시뮬레이션의 정보를 비교함으로써 상기 결함의 영향을 분석하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 감내 분석부는 상기 결함이 상기 디자인이 나타내는 상기 제1 프로세서의 고장으로 드러나는지 여부를 판단하는 결함 감내 분석 장치. - 제6항에 있어서,
상기 결함 감내 분석부는 상기 결함이 상기 제1 프로세서의 레지스터에 대해 오류를 야기하지 않으면 상기 결함은 상기 제1 프로세서의 고장으로 드러나지 않는 것으로 판단하는 결함 감내 분석 장치. - 제6항에 있어서,
상기 결함 감내 분석부는 상기 결함이 메모리의 기입에 오류를 일으키는 영향을 미치면 상기 결함을 상기 제1 프로세서의 고장을 드러나게 하는 결함으로 판단하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 감내 분석부는 상기 결함 감내 메커니즘을 평가함에 있어서 상기 결함 감내 메커니즘이 구비되지 않은 제2 프로세서에 주입된 상기 결함이 상기 제2 프로세서의 고장으로 드러나는 경우에만 상기 결함 감내 메커니즘을 평가하는 결함 감내 분석 장치 - 제1항에 있어서,
상기 제2 프로세서의 디자인은 파이프라인에 기반하고,
상기 결함이 상기 파이프라인의 파이프라인 레지스터들 내에서 오류를 야기하지 않으면 상기 제2 프로세서에 주입된 상기 결함은 상기 제2 프로세서의 고장으로 드러나지 않는다고 간주되는 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 주입부는 상기 디자인이 나타내는 제1 프로세서 내의 레지스터를 조작함으로써 상기 결함을 주입하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 정보 추출부는 상기 디자인 내의 레지스터의 정보를 추출하는 결함 감내 분석 장치. - 제12항에 있어서,
상기 레지스터의 정보는 상기 레지스터의 명칭, 상기 레지스터의 비트폭, 상기 레지스터의 하드웨어 설명 언어(Hardware Description Language; HDL) 접근 경로 및 상기 레지스터의 모듈 경로 중 적어도 하나를 포함하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 파라미터는 상기 결함의 주입의 대상을 제어하고,
상기 결함의 주입의 대상은 신호 또는 모듈인 결함 감내 분석 장치. - 제1항에 있어서,
상기 파라미터는 상기 결함의 속성을 제어하고,
상기 결함의 속성은 상기 결함의 지속시간, 상기 결함의 발생 시각, 상기 결함의 투입 위치 및 상기 결함의 개수 중 적어도 하나인 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 감내 분석부는 상기 시뮬레이션 동안 발생하는 상기 시뮬레이션에서의 메모리에 대한 기입의 동작을 기록하는 값 변화 덤프 모듈을 상기 메모리에 삽입하는 결함 감내 분석 장치. - 제1항에 있어서,
상기 결함 감내 분석부는 상기 결함이 주입되지 않은 시뮬레이션에 대한 제1 값 변화 덤프 모듈을 생성하고, 상기 결함이 주입된 시뮬레이션에 대한 제2 값 변화 덤프 모듈을 생성하고, 상기 제1 값 변화 덤프 모듈 및 상기 제2 값 변화 덤프 모듈을 비교함으로써 상기 결함이 상기 디자인이 나타내는 제1 프로세서의 고장을 일으켰는지 여부를 판단하는 결함 감내 분석 장치. - 결함 감내 분석 장치에 의해 수행되는,
디자인에서 상기 디자인의 정보를 추출하는 단계;
상기 추출된 디자인의 정보 및 파라미터에 기반하여 상기 디자인의 시뮬레이션에 결함을 주입하는 단계; 및
상기 시뮬레이션에서의 상기 결함의 영향을 분석하는 단계
를 포함하고,
상기 디자인이 나타내는 제1 프로세서의 결함 감내 메커니즘이 평가되고,
상기 결함 감내 메커니즘을 평가함에 있어서 상기 결함 감내 메커니즘이 구비되지 않은 제2 프로세서에 주입된 상기 결함이 상기 제2 프로세서의 고장으로 드러난다는 결정에 기반하여 상기 결함 감내 메커니즘이 평가되는 결함 감내 분석 방법. - 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150067112A KR102251991B1 (ko) | 2015-05-14 | 2015-05-14 | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 |
US15/154,829 US10489520B2 (en) | 2015-05-14 | 2016-05-13 | Method and apparatus for injecting fault and analyzing fault tolerance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150067112A KR102251991B1 (ko) | 2015-05-14 | 2015-05-14 | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160133923A KR20160133923A (ko) | 2016-11-23 |
KR102251991B1 true KR102251991B1 (ko) | 2021-05-17 |
Family
ID=57276857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150067112A KR102251991B1 (ko) | 2015-05-14 | 2015-05-14 | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10489520B2 (ko) |
KR (1) | KR102251991B1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642782B2 (en) | 2016-12-08 | 2020-05-05 | Electronics And Telecommunications Research Institute | Multi-core processor and operation method thereof |
US10318406B2 (en) * | 2017-02-23 | 2019-06-11 | International Business Machines Corporation | Determine soft error resilience while verifying architectural compliance |
CN107301101A (zh) * | 2017-06-22 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种存储故障注入方法及*** |
US10853493B2 (en) * | 2017-10-09 | 2020-12-01 | Raytheon Bbn Technologies Corp | Enhanced vector-based identification of circuit trojans |
CN108228454B (zh) * | 2017-12-29 | 2021-03-09 | 中国船舶工业综合技术经济研究院 | 一种基于环境故障注入的机电产品软件可靠性评价方法 |
CN108508351B (zh) * | 2018-03-30 | 2020-05-05 | 西北核技术研究所 | 一种基于双-双指数电流源的单粒子故障注入仿真方法 |
CN109062740A (zh) * | 2018-06-05 | 2018-12-21 | 北京电子工程总体研究所 | 一种基于故障注入的辅助排查***及方法 |
US10922203B1 (en) * | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
US11176395B2 (en) | 2018-11-30 | 2021-11-16 | Electronics And Telecommunications Research Institute | Image recognition processor including functional safety processor core and operation method thereof |
US10672470B1 (en) * | 2018-12-04 | 2020-06-02 | Micron Technology, Inc. | Performing a test of memory components with fault tolerance |
US11630938B1 (en) * | 2019-11-04 | 2023-04-18 | Cadence Design Systems, Inc. | Failure mode analysis for circuit design |
GB2591532B (en) * | 2020-07-30 | 2022-03-02 | Imagination Tech Ltd | Methods and systems for fault injection testing of an integrated circuit hardware design |
US11567855B1 (en) * | 2020-09-09 | 2023-01-31 | Two Six Labs, LLC | Automated fault injection testing |
CN112364580A (zh) * | 2020-11-13 | 2021-02-12 | 上海兆芯集成电路有限公司 | 自动在寄存器传输级设计文件中***特定代码的方法及装置 |
CN116431518B (zh) * | 2023-04-26 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001043201A (ja) * | 1999-08-03 | 2001-02-16 | Mitsubishi Electric Corp | マルチプロセッサ障害検出装置 |
US20110214014A1 (en) * | 2007-10-18 | 2011-09-01 | The Regents Of The University Of Michigan | Microprocessor and method for detecting faults therein |
US8949101B2 (en) * | 2011-10-12 | 2015-02-03 | International Business Machines Corporation | Hardware execution driven application level derating calculation for soft error rate analysis |
US20150128100A1 (en) * | 2013-11-01 | 2015-05-07 | International Business Machines Corporation | Cycle-accurate replay and debugging of running fpga systems |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876934B2 (en) * | 2002-08-14 | 2005-04-05 | Atrenta Inc. | Method for determining fault coverage from RTL description |
JP4322509B2 (ja) * | 2003-01-16 | 2009-09-02 | 株式会社東芝 | 故障検出率算出装置及び故障検出率算出方法 |
EP1496435A1 (en) | 2003-07-11 | 2005-01-12 | Yogitech Spa | Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor |
US7284159B2 (en) | 2003-08-26 | 2007-10-16 | Lucent Technologies Inc. | Fault injection method and system |
US7320114B1 (en) * | 2005-02-02 | 2008-01-15 | Sun Microsystems, Inc. | Method and system for verification of soft error handling with application to CMT processors |
CN100452059C (zh) | 2005-12-14 | 2009-01-14 | 上海微小卫星工程中心 | 智能全自动单粒子事件故障注入器的注入方法 |
US7689866B2 (en) | 2006-10-18 | 2010-03-30 | Alcatel-Lucent Usa Inc. | Method and apparatus for injecting transient hardware faults for software testing |
US20080263400A1 (en) | 2007-04-23 | 2008-10-23 | Microsoft Corporation | Fault insertion system |
WO2009118731A2 (en) * | 2008-03-27 | 2009-10-01 | Rocketick Technologies Ltd | Design simulation using parallel processors |
US8001438B1 (en) * | 2008-08-15 | 2011-08-16 | Xilinx, Inc. | Measuring bridge-fault coverage for test patterns within integrated circuits |
US8464185B2 (en) * | 2008-11-24 | 2013-06-11 | Mentor Graphics Corporation | Electron beam simulation corner correction for optical lithography |
US8898618B2 (en) * | 2009-03-26 | 2014-11-25 | Altera Corporation | Interactive simplification of schematic diagram of integrated circuit design |
KR101313692B1 (ko) | 2009-12-18 | 2013-10-02 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트를 실행하는데 있어서 고장 감내 방법 및 장치 |
US8046639B1 (en) * | 2010-07-29 | 2011-10-25 | Oracle International Corporation | Cycle accurate fault log modeling for a digital system |
US8464102B2 (en) * | 2010-12-23 | 2013-06-11 | GM Global Technology Operations LLC | Methods and systems for diagnosing hardware and software faults using time-stamped events |
US9316691B2 (en) | 2011-03-17 | 2016-04-19 | Eigenix | Method and apparatus for fault injection |
US8572529B2 (en) * | 2011-06-08 | 2013-10-29 | Cadence Design Systems, Inc. | System and method for dynamically injecting errors to a user design |
CN103425541A (zh) * | 2012-05-25 | 2013-12-04 | 鸿富锦精密工业(深圳)有限公司 | 异常处理机制检测电子装置、***及方法 |
KR101638437B1 (ko) | 2012-09-25 | 2016-07-12 | 한국전자통신연구원 | 고장감내처리 시스템의 동작방법 |
JP2015141539A (ja) * | 2014-01-28 | 2015-08-03 | 株式会社東芝 | 故障注入プログラム |
-
2015
- 2015-05-14 KR KR1020150067112A patent/KR102251991B1/ko active IP Right Grant
-
2016
- 2016-05-13 US US15/154,829 patent/US10489520B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001043201A (ja) * | 1999-08-03 | 2001-02-16 | Mitsubishi Electric Corp | マルチプロセッサ障害検出装置 |
US20110214014A1 (en) * | 2007-10-18 | 2011-09-01 | The Regents Of The University Of Michigan | Microprocessor and method for detecting faults therein |
US8949101B2 (en) * | 2011-10-12 | 2015-02-03 | International Business Machines Corporation | Hardware execution driven application level derating calculation for soft error rate analysis |
US20150128100A1 (en) * | 2013-11-01 | 2015-05-07 | International Business Machines Corporation | Cycle-accurate replay and debugging of running fpga systems |
Also Published As
Publication number | Publication date |
---|---|
KR20160133923A (ko) | 2016-11-23 |
US20160334467A1 (en) | 2016-11-17 |
US10489520B2 (en) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102251991B1 (ko) | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 | |
CN114065677B (zh) | 用于集成电路硬件设计的故障注入测试的方法和*** | |
US11003817B2 (en) | Hard error simulation and usage thereof | |
KR102049665B1 (ko) | 장애 지점을 검출하기 위한 장치 및 방법 | |
US10558771B2 (en) | Systems and methods for security and safety fault analysis using information flow | |
Höller et al. | FIES: a fault injection framework for the evaluation of self-tests for COTS-based safety-critical systems | |
CN107850641A (zh) | 片上***(SoC)的***级验证 | |
KR20200139788A (ko) | 데이터 변환 파이프라인용 하드웨어 설계 검증 | |
US10241888B2 (en) | Method to verify correctness of computer system software and hardware components and corresponding test environment | |
Gil-Tomas et al. | Analyzing the impact of intermittent faults on microprocessors applying fault injection | |
Gil et al. | Fault Injection into VHDL models: experimental validation of a fault-tolerant microcomputer system | |
US20170053051A1 (en) | Accurate glitch detection | |
Lorenzelli et al. | Speeding up cell-aware library characterization by preceding simulation with structural analysis | |
JP2014134842A (ja) | 検証装置及び検証方法 | |
EP3553681B1 (en) | Method and apparatus for error test coverage determination for a circuit by simulation | |
Na | A novel simulation fault injection using electronic systems level simulation models | |
Blackstone et al. | A unified model for gate level propagation analysis | |
Wunderlich et al. | Generalized fault modeling for logic diagnosis | |
Fummi et al. | Logic-level mapping of high-level faults | |
Alderighi et al. | Robustness analysis of soft error accumulation in SRAM-FPGAs using FLIPPER and STAR/RoRA | |
US6912701B2 (en) | Method and apparatus for power supply noise modeling and test pattern development | |
Leveugle et al. | Soft error effect and register criticality evaluations: Past, present and future | |
CN106548808B (zh) | 用于eeprom类型的存储器器件的故障控制 | |
Sandionigi et al. | Estimation of oxide breakdown effects by fault injection | |
Arbel et al. | Gating aware error injection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |