KR100998314B1 - Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로 - Google Patents

Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로 Download PDF

Info

Publication number
KR100998314B1
KR100998314B1 KR1020090034634A KR20090034634A KR100998314B1 KR 100998314 B1 KR100998314 B1 KR 100998314B1 KR 1020090034634 A KR1020090034634 A KR 1020090034634A KR 20090034634 A KR20090034634 A KR 20090034634A KR 100998314 B1 KR100998314 B1 KR 100998314B1
Authority
KR
South Korea
Prior art keywords
output value
value
error
data
hardware
Prior art date
Application number
KR1020090034634A
Other languages
English (en)
Other versions
KR20100115957A (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 KR1020090034634A priority Critical patent/KR100998314B1/ko
Publication of KR20100115957A publication Critical patent/KR20100115957A/ko
Application granted granted Critical
Publication of KR100998314B1 publication Critical patent/KR100998314B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • 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/2273Test methods
    • 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/25Testing of logic operation, e.g. by logic analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 SRAM 기반의 FPGA(Field Programmable Gate Array)에서 오류를 검출하고 복구하는 논리회로에 관한 것이다. 본 발명의 논리회로는 제1 회로부, 제2 회로부, 제3 회로부를 포함한다. 제1 회로부는 이중화된 데이터를 입력받아, 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성한다. 제2 회로부는 제1 회로부로부터 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 제1 회로부의 오류 지점을 검출한다. 제3 회로부는 적어도 3개 이상의 하드웨어 여분을 이용하여 적어도 3개 이상의 결과 값 중에서 다수의 값을 결과 값으로 출력함으로써, 검출된 오류를 복구한다.
오류 검출, 오류 복구, 오류 선정, 논리회로, SRAM 기반의 FPGA

Description

SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로 {LOGIC CIRCUIT FOR DETECTING AND RECOVERING ERROR IN SRAM-based FIELD PROGRAMMABLE GATE ARRAY}
본 발명은 SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로에 관한 것으로서, 보다 상세하게는 이중화된 데이터를 시간 여분 기법으로 입력받음으로써, 오류가 발생하여도 오류에 영향을 받지 않는 정상적인 데이터 결과 값을 제공할 뿐 아니라, 오류의 검출, 오류의 발생 위치 및 오류의 유형을 판단할 수 있는 것이다.
우주 환경에서 처음으로 업셋(upset)이 발견된 이후로 반도체 장비에서 오류 복구 시스템의 중요성은 점차적으로 부각되고 있다. 이에 따라, 우주에서의 임무 수행, 고 에너지 물리 실험 등과 같은 방사선이 많은 환경에서 내장 회로(IC)에 오류(고장)가 발생해도 이에 영향을 받지 않고 지속적으로 임무를 수행하기 위한 연구가 지속되고 있다.
우주 방사능 환경은 위성의 전자 시스템에 심각한 영향을 끼칠 수 있는데, 특히 태양 폭발이 이루어지면 강력한 전자기파와 고 에너지 입자들인 양성자와 알 파 입자, 중이온 입자들이 엄청난 양으로 방출된다. 이때의 에너지는 수백 MeV 에 이를 만큼 강력하기 때문에, 이러한 고 에너지 입자들이 위성에 접촉하게 되면 입자들이 위성을 투과하면서 위성에 탑재된 다양한 전자 장비 등에 교란과 오류를 발생시킨다. 이러한 오류 중 일시적으로 나타나는 오류를 SEE(Single Event Effect)라 한다.
이러한 현상이 지속되면 위성의 성능뿐만이 아니라 위성의 에너지 생산 장치인 태양전지의 전력 효율이 떨어지는 등 위성의 임무 수행에 막대한 지장을 초래한다. 또한 위성체와 충돌하게 되는 입자의 에너지 크기에 따라서 SEE는 데이터의 소거나 변화를 가져온다. 여기서 주요 관심사는 데이터의 변화로 인하여 메모리의 비트(bit)가 뒤집히는 SEU(Single Event Upset) 이다. 과거에는 내장회로의 구조가 더 복잡할수록 성능을 향상시키고 더 높은 논리 밀도를 가지며 가격을 줄일 수 있다고 생각했고, 그 대표적인 예가 ASIC(Application Specific Integrated Circuits)과 수만 개의 트랜지스터로 구성된 마이크로 프로세서 그리고 FPGA(Field Programmable Gate Array)이다.
Fault Tolerant System이란 오류이나 오류가 발생해도 올바른 결과를 내줄 수 있는 시스템을 말한다. 여기서 오류이란 소자에서 발생되는 환경의 물리적 영향이나 운용자의 실수, 부적절한 설계 등에서 유발되는 이상 동작이나 상태를 의미한다. 오류의 종류는 일반적으로 지속기간에 따라 구분된다. 지속기간에 따라 Permanent Fault와 Transient Fault로 구분하며 Permanent Fault는 지속적이고 항상적인 Fault이고 Transient Fault는 순간적인 환경조건의 변화로 인해 유발되는 Fault로서 인공위성 전자장비의 오류 중에서 가장 주요한 오류이다.
Fault Tolerant System의 기본 동작은 다음과 같이 6개로 분리가 가능하다. 오류의 발생을 인지하는 오류 검출(Fault Detection), 오류가 어느 부위에서 발생하였는가를 판단하는 오류 선정(Fault Location), 오류가 다음 영역에 확산되지 않도록 시스템에서 분리 및 격리하는 오류 격리(Fault Isolation), 여분의 장비로 대체하는 재배치(Reconfiguration), 오류의 영향을 제거하고 오류 발생 이전 상태로 전환하는 오류 복구(Fault Recovery), 시스템을 완전히 복구하는 오류 수리(Repair)가 있다. 이중에서 Fault tolerant system에 많이 쓰이는 종래의 오류 격리 기법에는 삼중 모듈 여분 기법(TMR)이 있다.
도 1에 표시된 바와 같은 다수결투표기를 사용하는 삼중 모듈 여분 기법(TMR)은 다수결 투표에 대한 결과를 출력하는 시스템으로, 이 시스템에서는 단일모듈에서 결함이 발생하여도 시스템이 결함에 의한 오 동작을 방지 할 수 있도록 홀수개의 여분을 사용한다. 하지만 도 1에 나타난 종래의 삼중 모듈 여분 기법(TMR)은 하드웨어 오류가 발생하면 정상적인 데이터값을 제공해 주는 오류 격리(Fault Isolation) 기능만 있을 뿐, 오류의 발생 여부 및 위치 그리고 유형을 판단하지는 못한다.
본 발명의 목적은 오류가 발생된 경우, 단순히 오류를 격리하는 것이 아니라, 오류의 검출 및 오류의 선정 기능을 수행할 수 있는 SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로를 제공하는 것이다.
또한, 본 발명은 삼중 모듈 여분 기법(TMR)을 이용하여 발생된 오류를 복구하는 경우에 있어서, 3개의 보터를 이용하여 높은 신뢰도를 보장하는 논리회로를 제공하는 것을 목적으로 한다.
또한, 본 발명은 논리회로에서 발생하는 각각의 오류 유형에 대한 테이블을 저장하여, 오류가 검출된 경우 저장된 테이블의 값과 비교하여 오류의 정확한 유형을 파악할 수 있는 논리회로를 제공하는 것을 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 SRAM 기반의 FPGA(Field Programmable Gate Array)에서 오류를 검출하는 논리회로는 제1 회로부와 제2 회로부를 포함한다. 제1 회로부는 동일한 값을 가지는 데이터 0 과 데이터 1을 각각 입력받아, 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성한다. 제2 회로부는 제1 회로부로부터 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 제1 회로부의 오류 지점을 검출한다.
제1 회로부의 제1 출력 값은, 데이터 0과 현재 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr0이라 한다)과, 데이터 0과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr0_d이라 한다)과, 데이터 1과 현재 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr1이라 한다) 및 데이터 1과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr1_d이라 한다)을 구비할 수 있다.
제2 회로부는 적어도 3개 이상의 검출부를 구비할 수 있다. 검출부는 제1 회로부로부터 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 제1 회로부의 오류 지점을 검출한다.
시간 여분 비교 출력 값은 dr0과 dr0_d의 비교에 의해 출력된 값(이하, Tc0 이라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Tc1 이라 한다)을 구비할 수 있다. 하드웨어 여분 비교 출력 값은 dr0과 dr1의 비교에 의해 출력된 값(이하, Hc 라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Hcd 라 한다)을 구비할 수 있다.
Tc0, Tc1, Hc 및 Hcd 의 출력 값 유형에 따른 분석 테이블은 제2 회로부 내에 저장될 수 있으며, 오류 검출시 분석 테이블을 이용하여 오류의 유형을 판단할 수 있다.
본 발명의 일 실시예에 따른 SRAM 기반의 FPGA에서 오류를 검출하고 복구하 는 논리회로는 제1 회로부, 제2 회로부, 제3 회로부를 포함한다. 제1 회로부는 동일한 값을 가지는 데이터 0 과 데이터 1을 각각 입력받아, 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성한다. 제2 회로부는 제1 회로부로부터 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 제1 회로부의 오류 지점을 검출한다. 제3 회로부는 적어도 3개 이상의 하드웨어 여분을 이용하여 적어도 3개 이상의 결과 값 중에서 다수의 값을 결과 값으로 출력함으로써, 검출된 오류를 복구한다.
제3 회로부는 3개의 하드웨어 여분을 이용하여 출력된 3개의 결과 값을 각각 입력받는 3개의 보터를 포함하는 삼중 모듈 여분 기법(TMR)으로 구성될 수 있다. 3개의 보터 각각은 보터를 통해 입력되는 3개의 결과 값 중 과반수에 해당하는 하나의 결과 값을 선택하도록 구성될 수 있다.
본 발명에 의하면, 논리회로에서 오류가 발생된 경우, 단순히 오류를 격리하는 것이 아니라, 오류의 검출 및 오류의 선정 기능을 수행할 수 있다.
또한, 삼중 모듈 여분 기법(TMR)을 이용하여 발생된 오류를 복구하는 경우에 있어서, 종래의 1개의 보터(voter)가 아닌 3개의 보터를 이용하여 높은 신뢰도를 보장하는 발전된 형태의 논리회로를 제공할 수 있다.
또한, 논리회로에서 발생하는 각각의 오류 유형에 대한 테이블을 저장하여, 오류가 검출된 경우 저장된 테이블의 값과 비교하여 오류의 정확한 유형을 파악할 수 있는 논리회로를 제공할 수 있다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예들을 상세하게 설명한다.
도 2는 본 발명의 일실시예에 의한 SRAM 기반의 FPGA(Field Programmable Gate Array)에서 오류를 검출하고 복구하는 논리회로의 결합 관계를 나타낸 도면이다.
도 2를 참조하면, SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로는 데이터 입력 수단(10), 제1 출력 값을 생성하는 수단(20), 오류 지점을 검출하는 수단(30), 검출된 오류를 복구하는 수단(40)을 포함한다. 데이터 입력 수단(10)을 통해 동일한 값을 가지는 이중화된 데이터가 입력된다. 제1 출력 값을 생성하는 수단(20)은 입력받은 데이터 각각에 대해서 시간 여분 기법(time redundancy)을 이용하여 제1 출력 값을 생성한다. 오류 지점을 검출하는 수단(30)은 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 오류 지점을 검출한다. 검출된 오류를 복구하는 수단(40)은 적어도 3개 이상의 하드웨어 여분을 이용하여 적어도 3개 이상의 결과 값 중에서 다수의 값을 결과 값으로 출력함으로써, 검출된 오류를 복구한다.
데이터 입력 수단(10)에는 동일한 값을 가지는 데이터 0(Out0) 및 데이터 1(Out1)이 입력된다. 이는 하드웨어 여분 기법으로서, 동일한 입력을 처리하는 모듈을 여러 개 두어서 한 모듈에서 오류가 발생하더라도 다른 모듈이 정상적으로 작동을 하게 되면 정상적인 결과 값이 나올 수 있는 특징을 가진다.
시간 여분 기법을 이용하여 제1 출력 값을 생성하는 수단(20)에서는 제1 출력 값은, 데이터 0과 현재 클럭 값의 비교에 의해 생성되는 출력 값인 dr0, 데이터 0과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값인 dr0_d, 데이터 1과 현재 클럭 값의 비교에 의해 생성되는 출력 값인 dr1 및 데이터 1과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값인 dr1_d 로 구성된다. 여기서, 현재 클럭 값은 시간 지연된 클럭 값과 비교하기 위한 기준 클럭 값을 나타내기 위한 용어로서 정의된다.
데이터 입력 수단(10)과 시간 여분 기법을 이용하여 제1 출력 값을 생성하는 수단(20)은 동일한 값을 가지는 데이터 0 과 데이터 1을 각각 입력받아, 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성하는 제1 회로부로서의 기능을 수행한다.
오류 지점을 검출하는 수단(30)은 제1 출력 값을 생성하는 수단(20)으로부터 생성된 제1 출력 값을 입력받고, 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 오류 지점을 검출하는 검출부를 포함한다. 검출부는 적어도 3개 이상으로 이루어지는 것이 바람직하다. 즉, 오류 지점을 검출하는 수단은(30)은 제1 회로부로부터 제1 출력 값을 입력받고, 입력받은 제 1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 제1 회로부의 오류 지점을 검출하는 제2 회로부로서의 기능을 수행한다.
여기서, 시간 여분 비교 출력 값은, dr0과 dr0_d의 비교에 의해 출력된 값(이하, Tc0 이라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Tc1 이라 한다)으로 구성된다. 하드웨어 여분 비교 출력 값은, dr0과 dr1의 비교에 의해 출력된 값(이하, Hc 라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Hcd 라 한다)으로 구성된다. 이러한, 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 분석하면, 오류의 검출 뿐 아니라, 어떤 여분의 지점에서 오류가 발생하였는지를 구분할 수 있다. 이러한, 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 오류의 유형을 파악하는 자세한 내용에 대해서는 도 4 내지 도 6에서 후술하도록 한다.
검출된 오류를 복구하는 수단(40)은 적어도 3개 이상의 하드웨어 여분을 이용하여 적어도 3개 이상의 결과 값 중에서 다수의 값을 결과 값으로 출력함으로써, 검출된 오류를 복구한다. 즉, 검출된 오류를 복구하는 수단은(40) 제1 회로부 및 제2 회로부에서 발생하여 검출된 오류를 복구하는 제3 회로부로서의 기능을 수행한다.
여기서, 검출된 오류를 복구하는 수단(40)은 3개의 하드웨어 여분을 이용하여 출력된 3개의 결과 값을 각각 입력받는 3개의 보터(voter)를 포함하는 삼중 모듈 여분 기법(TMR)으로 구성된다. 3개의 보터 각각은 보터를 통해 각각 입력되는 3 개의 결과 값 중 과반수에 해당하는 하나의 결과 값을 선택하도록 구성하는 것이 바람직하다. 이때, 일반적인 삼중 모듈 기법과는 달리 1개의 보터가 아닌 3개의 다중 보터를 이용함으로써, 고 신뢰도가 보장될 수 있다.
도 3은 본 발명에 의한 SRAM 기반의 FPGA에서 오류 발생을 검출 및 복구하는 논리회로에서 이루어지는 오류 검출 및 오류 복구의 전체적인 흐름을 나타낸 순서도이다.
도 3을 참조하면, 우선 이중화된 데이터가 입력된다(S100). 이중화된 데이터는 서로 동일한 값을 가지는 데이터 0 및 데이터 1로 구성된다. 이러한 이중 하드웨어 구조 방법을 통해, 회로에서 발생할 수 있는 오류의 검출이 가능해진다. 본 발명에 의한 SRAM 기반의 FPGA에서 오류를 검출하는 논리회로는 시간 여분 기법과 이중 하드웨어 구조를 통합하여 오류의 검출 뿐 아니라, 오류가 발생한 지점을 검출할 수 있는 특징을 가진다. 오류의 발생 지점을 탐색하는 자세한 내용에 대해서는 도 4 내지 도 6에서 후술하기로 한다.
이중화된 데이터가 이중 하드웨어 구조를 통해 입력되면, 다음으로 시간 여분(time redundancy) 기법을 이용하여 오류 검출을 수행한다(S110). 시간 여분 기법을 이용하여 오류 검출을 수행하는 과정을 살펴보면, 이중화된 데이터 0 및 데이터 1을 각각 입력받아, 입력받은 데이터 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성한다. 제1 출력 값은 데이터 0과 현재 클럭 값의 비교에 의해 생성되는 출력 값인 dr0, 데이터 0과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값인 dr0_d, 데이터 1과 현재 클럭 값의 비교에 의해 생성되는 출력 값인 dr1 및 데이터 1과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값인 dr1_d 으로 구성된다.
다음으로, 제1 출력 값을 입력받는 수단에서는 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 오류가 발생한 지점을 검출한다. 여기서, 시간 여분 비교 출력 값은, dr0과 dr0_d의 비교에 의해 출력된 값(이하, Tc0 이라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Tc1 이라 한다)으로 구성된다. 하드웨어 여분 비교 출력 값은, dr0과 dr1의 비교에 의해 출력된 값(이하, Hc 라 한다) 및 dr1과 dr1_d의 비교에 의해 출력된 값(이하, Hcd 라 한다)으로 구성되는 것이 바람직하다.
단계 S100 및 단계 S110을 거쳐서 오류가 검출된 이후, 오류를 복구하는 과정이 수행될 수 있다. 오류의 복구는 삼중 모듈 여분 기법(TMR)을 통해 수행된다(S120). 오류 복구의 목적은 오류가 발생했더라도 결과 값이 이에 영향을 받지 않고, 올바른 결과 값이 항상 출력되도록 하는 것에 있다. 그러한 기능을 수행하기 위해 삼중 모듈 여분 기법(TMR)이 이용된다. 삼중 모듈 여분 기법을 이용하여 오류를 복구하는 자세한 과정에 대해서는 도 2에서 상세히 설명했으므로 자세한 설명은 생략하도록 한다.
단계 S120에 의한 단계를 거치게 되면, 데이터의 진행 과정에서 오류가 발생하였다 하더라도, 오류의 검출 및 오류의 복구가 수행되므로 정상적인 데이터 값이 출력되게 된다(S130).
도 4는 본 발명에 의한 SRAM 기반의 FPGA에서 오류 발생을 검출하는 논리 회로의 구성을 나타낸 도면이다.
도 4를 참조하면, 본 발명에 의한 SRAM 기반의 FPGA에서 오류를 검출하는 논리 회로는 시간 여분과 하드웨어 여분 기법을 통합한 오류 검출 알고리즘을 제공한다. 즉, 시간 여분 기법만을 이용하여도 오류 검출이 가능하고, 도 4의 이중 하드웨어 구조 기법만을 이용하여도 오류의 검출은 가능하다. 그러나, 본 발명에서는 이러한 두 기법을 통합하여 기능을 수행하는 방법을 제시하는바, 이러한 경우 오류가 발생한 경우, 오류를 검출할 뿐만 아니라 어떤 여분의 블록에서 업셋이 발생했는가를 구분할 수가 있게 되는 효과를 가진다.
도 4에서의 Out0(데이터 0) 및 Out1(데이터 1)은 같은 값을 가지는 이중화된 데이터를 의미하며, Clk 및 Clk+d 는 현재의 클럭 및 현재의 클럭을 기준으로 시간 지연된 클럭 값을 의미한다. dr0은 데이터 0과 현재 클럭 값의 비교에 의해 생성되는 출력 값, dr0_d은 데이터 0과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값, dr1은 데이터 1과 현재 클럭 값의 비교에 의해 생성되는 출력 값 및 dr1_d은 데이터 1과 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값을 각각 의미한다. Tc0 및 Tc1은 각 블록에서 시간 여분 비교 출력 값을 의미하며, Hc 및 Hcd는 클럭에서 하드웨어 여분 비교 출력 값을 의미하는 용어로 정의된다.
도 5는 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값에 의한 오류 발생 장소 및 오류 유형을 나타낸 도면이다.
도 5를 참조하면, 시간 여분 비교 출력 값인 Tc0 및 Tc1과 하드웨어 여분 비교 출력 값인 Hc 및 Hcd의 결과가 나올 때, 어느 모듈에서 오류가 발생했는지 여부 및 오류 복구가 되었는지 여부 등을 구분할 수 있다. (Tc0, Hc, Tc1, Hcd)의 값이 (0, 0, 0, 0) 인 경우는 오류가 발생되지 않았다는 것을 의미한다. (0, 0, 1, 1)인 경우는 dr1에서 오류가 발생했으며, 오류의 유형은 순간적인 환경조건의 변화로 유발된 일시적 오류(transient)이라는 것을 의미한다. (0, 1, 1, 0)인 경우는 dr1에서 오류가 복구되었다는 것을 의미한다. (0, 1, 0, 1)은 dr0 또는 dr1에서 고장이 발생했으며, 오류의 유형은 지속적인 고장(permanent)이라는 것을 의미한다. (1, 0, 0, 1)은 dr0에서 오류가 발생했으며, 오류의 유형은 순간적인 환경조건의 변화로 유발된 일시적 고장(transient)이라는 것을 의미한다. (1, 0, 1, 0)은 dr0 또는 dr1에서 오류가 발생했으며, 고장의 유형은 일시적 고장이라는 것을 의미한다. (1, 1, 1, 1)은 dr0 또는 dr1에서 오류가 발생했다는 것을 의미한다. (1, 1, 0, 0)은 dr0에서 오류가 복구되었다는 것을 의미한다.
도 6은 도 4에서 데이터 0(Out0)에 오류가 발생한 경우의 오류 검출에 대한 시뮬레이션 결과를 나타낸 도면이다.
도 6을 참조하면, 데이터 0에서 오류(SEU, Single Event Upset)가 발생하게 되면, 그 결과 값이 차례대로 1001, 0101, 1100 이 나오는 것을 확인할 수 있다. 이러한 결과 값을 도 5의 테이블을 이용하여 분석하면, 우선 dr0에서 오류가 순간적으로 발생한 것을 감지하고, 이것이 영구적인 오류인가를 판단한 후에, 오류가 복구되었음을 알 수 있다. 본 발명에서 오류 검출은 오류(SEU)가 동시에 다른 모듈에서 발생할 가능성이 매우 낮기 때문에 오직 한 곳에서 오류(SEU)가 발생한 경우를 가정하여 진행된다는 사실에 유의하여야 할 것이다.
도 7은 도 2에 나타난 본 발명에 의한 논리회로에서 dr0_d에 오류가 발생한 경우의 오류 복구에 대한 시뮬레이션 결과를 나타낸 도면이다.
도 7을 참조하면, 일정한 순간에 dr0_d 에 업셋이 발생된 것을 확인할 수 있다. 이때, 한 곳에서 비록 오류가 발생하였지만, 삼중 모듈 여분 기법을 이용한 하드웨어 여분 기법에 의하여 오류 값이 격리되기 때문에 결과 값으로 출력되는 trv0 내지 trv2의 값들은 오류에 관계없이 일정한 데이터 값이 출력된다는 것을 확인할 수 있다.
한편, 본 발명의 설명 및 도면에서는 삼중 모듈 여분 기법의 경우만을 설명하였으나, 단순히 3개의 하드웨어 여분을 이용하는 것이 아닌, 5개, 7개 또는 그 이상의 하드웨어 여분을 이용하여 본 발명을 활용할 수 있다는 것에 유의하여야 할 것이다. 또한, 삼중 모듈 기법에 이용되는 보터의 경우에도, 본 발명의 설명 또는 도면에는 1개 또는 3개의 경우만을 예로 들어 설명했으나, 역시 5개, 7개 또는 그 이상의 보터를 이용하여 본 발명을 활용할 수도 있을 것이다.
이상에서, 본 발명의 바람직한 실시예를 참조하여 본 발명의 구성을 설명하였으나, 본 발명이 상기 실시예에 한정되는 것이 아님은 물론이며, 첨부한 청구범위 및 도면에 의해 파악되는 본 발명의 범위 내에서 여러 가지의 변형, 수정 및 개선이 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 충분히 이해할 수 있을 것이다.
도 1은 종래의 삼중 모듈 여분 기법(TMR)을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 의한 SRAM 기반의 FPGA에서 오류 발생을 검출하고 복구하는 논리회로의 결합 관계를 나타낸 도면이다.
도 3은 본 발명에 의한 SRAM 기반의 FPGA에서 오류 발생을 검출하고 복구하는 논리회로에서 이루어지는 오류 검출 및 오류 복구의 전체적인 흐름을 나타낸 순서도이다.
도 4는 본 발명에 의한 SRAM 기반의 FPGA에서 오류 발생을 검출하는 논리 회로의 구성을 나타낸 도면이다.
도 5는 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값에 의한 오류 발생 장소 및 오류 유형을 나타낸 도면이다.
도 6은 도 4에서 데이터 0(Out0)에 오류가 발생한 경우의 오류 검출에 대한 시뮬레이션 결과를 나타낸 도면이다.
도 7은 도 2에 나타난 본 발명에 의한 논리회로에서 dr0_d에 오류가 발생한 경우의 오류 복구에 대한 시뮬레이션 결과를 나타낸 도면이다.

Claims (7)

  1. SRAM 기반의 FPGA(Field Programmable Gate Array)에서 오류를 검출하는 논리회로에 있어서,
    동일한 값을 가지는 데이터 0 과 데이터 1을 각각 입력받아, 상기 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성하는 제1 회로부; 및
    상기 제1 회로부로부터 상기 제1 출력 값을 입력받고, 상기 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 상기 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 상기 제1 회로부의 오류 지점을 검출하는 제2 회로부; 를 포함하는 SRAM 기반의 FPGA에서 오류를 검출하는 논리회로.
  2. 제1항에 있어서,
    상기 제1 회로부의 상기 제1 출력 값은,
    상기 데이터 0과 현재 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr0이라 한다);
    상기 데이터 0과 상기 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr0_d이라 한다);
    상기 데이터 1과 현재 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr1이 라 한다); 및
    상기 데이터 1과 상기 현재 클럭 값을 기준으로 시간 지연된 클럭 값의 비교에 의해 생성되는 출력 값(이하, dr1_d이라 한다); 을 구비하는 것을 특징으로 하는 SRAM 기반의 FPGA에서 오류를 검출하는 논리회로.
  3. 제1항에 있어서,
    상기 제2 회로부는, 상기 제1 회로부로부터 상기 제1 출력 값을 입력받고, 상기 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 상기 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 상기 제1 회로부의 오류 지점을 검출하는 검출부를 적어도 3개 이상 포함하는 것을 특징으로 하는 SRAM 기반의 FPGA에서 오류를 검출하는 논리회로.
  4. 제2항에 있어서,
    상기 시간 여분 비교 출력 값은, 상기 dr0과 상기 dr0_d의 비교에 의해 출력된 값(이하, Tc0 이라 한다) 및 상기 dr1과 상기 dr1_d의 비교에 의해 출력된 값(이하, Tc1 이라 한다)을 구비하며,
    상기 하드웨어 여분 비교 출력 값은, 상기 dr0과 상기 dr1의 비교에 의해 출력된 값(이하, Hc 라 한다) 및 상기 dr1과 상기 dr1_d의 비교에 의해 출력된 값(이하, Hcd 라 한다)을 구비하는 것을 특징으로 하는 SRAM 기반의 FPGA에서 오류를 검 출하는 논리회로.
  5. 제4항에 있어서,
    상기 Tc0, Tc1, Hc 및 Hcd 의 출력 값 유형에 따른 분석 테이블이 상기 제2 회로부 내에 저장되며, 오류 검출시 상기 분석 테이블을 이용하여 오류의 유형을 판단하는 것을 특징으로 하는 SRAM 기반의 FPGA에서 오류를 검출하는 논리회로.
  6. SRAM 기반의 FPGA에서 오류 발생를 검출하여 복구하는 논리회로에 있어서,
    동일한 값을 가지는 데이터 0 과 데이터 1을 각각 입력받아, 상기 입력받은 데이터 0 및 데이터 1 각각에 대하여 시간 여분 기법을 이용하여 제1 출력 값을 생성하는 제1 회로부;
    상기 제1 회로부로부터 상기 제1 출력 값을 입력받고, 상기 입력받은 제1 출력 값을 이용하여 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 생성하고, 상기 생성한 시간 여분 비교 출력 값과 하드웨어 여분 비교 출력 값을 이용하여 상기 제1 회로부의 오류 지점을 검출하는 제2 회로부; 및
    적어도 3개 이상의 하드웨어 여분을 이용하여 적어도 3개 이상의 결과 값 중에서 다수의 값을 결과 값으로 출력함으로써, 검출된 오류를 복구하는 제3 회로부; 를 포함하는 SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로.
  7. 제6항에 있어서,
    상기 제3 회로부는, 3개의 하드웨어 여분을 이용하여 출력된 3개의 결과 값을 각각 입력받는 3개의 보터를 포함하는 삼중 모듈 여분 기법(TMR)으로 구성되며,
    상기 3개의 보터 각각은 상기 보터를 통해 입력되는 3개의 결과 값 중 과반수에 해당하는 하나의 결과 값을 선택하는 것을 특징으로 하는 SRAM 기반의 FPGA에서 오류를 검출하고 복구하는 논리회로.
KR1020090034634A 2009-04-21 2009-04-21 Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로 KR100998314B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090034634A KR100998314B1 (ko) 2009-04-21 2009-04-21 Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090034634A KR100998314B1 (ko) 2009-04-21 2009-04-21 Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로

Publications (2)

Publication Number Publication Date
KR20100115957A KR20100115957A (ko) 2010-10-29
KR100998314B1 true KR100998314B1 (ko) 2010-12-03

Family

ID=43134667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090034634A KR100998314B1 (ko) 2009-04-21 2009-04-21 Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로

Country Status (1)

Country Link
KR (1) KR100998314B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102175403B1 (ko) * 2014-07-21 2020-11-06 한국전자통신연구원 디지털 연산 회로의 기능 복구 장치 및 방법
KR101601639B1 (ko) * 2014-07-28 2016-03-09 한국원자력연구원 에프피지에이 기반 3중화 제어 장치의 동작 건전성 감시 장치 및 방법
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
KR102012270B1 (ko) * 2017-09-18 2019-08-20 재단법인대구경북과학기술원 우주 방사선 환경 변화에 따른 obp 위성의 정보 처리량 변화 예측 방법 및 예측 장치
KR102028355B1 (ko) * 2018-05-23 2019-10-04 재단법인대구경북과학기술원 Obp 시스템의 오류율 예측 방법, 이를 수행하기 위한 기록매체 및 장치
KR102140681B1 (ko) * 2019-03-11 2020-08-04 조선대학교산학협력단 어림 삼중 중복형 모듈러 장치의 결함 허용 투표기

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김용준 외 3명, "SRAM 기반의 FPGA 연결선을 위한 고장 진단 알고리듬 개발", 전자공학회논문지 제41권 SD편 제4호, pp. 113-122, 2004. 4

Also Published As

Publication number Publication date
KR20100115957A (ko) 2010-10-29

Similar Documents

Publication Publication Date Title
KR100998314B1 (ko) Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로
Pratt et al. Fine-grain SEU mitigation for FPGAs using partial TMR
US6910173B2 (en) Word voter for redundant systems
US7647543B2 (en) Reprogrammable field programmable gate array with integrated system for mitigating effects of single event upsets
US20100026338A1 (en) Fault triggerred automatic redundancy scrubber
Matsumoto et al. Evaluating the fault tolerance of stateful TMR
Sogomonyan Self-correction fault-tolerant systems
Pilotto et al. Synchronizing triple modular redundant designs in dynamic partial reconfiguration applications
US8922242B1 (en) Single event upset mitigation
Majumdar et al. Fault tolerant ALU system
Quinn et al. An introduction to radiation-induced failure modes and related mitigation methods for Xilinx SRAM FPGAs.
Gauer et al. Spatial avoidance of hardware faults using FPGA partial reconfiguration of tile-based soft processors
Quinn et al. A review of Xilinx FPGA architectural reliability concerns from Virtex to Virtex-5
Kastil et al. Dependability analysis of fault tolerant systems based on partial dynamic reconfiguration implemented into FPGA
Niknahad et al. A study on fine granular fault tolerance methodologies for FPGAs
Pan et al. A framework for system reliability analysis considering both system error tolerance and component test quality
Legat et al. Self-reparable system on FPGA for single event upset recovery
Lima et al. Reducing pin and area overhead in fault-tolerant FPGA-based designs
Alagoz Hierarchical triple-modular redundancy (H-TMR) network for digital systems
Shokry et al. Work-in-Progress: Triple Event Upset Tolerant Area-Efficient FPGA-Based System for Space Applications and Nuclear Plants
Alkady et al. An adaptive multi-factor fault-tolerance selection scheme for FPGAs in space applications
Legat et al. On line self recovery of embedded multi-processor SOC on FPGA using dynamic partial reconfiguration
Nguyen et al. Scheduling considerations for voter checking in TMR-MER systems
Shokry et al. Error detection and recovery in FPGA-based pipelined architectures
Kumar et al. Double fault tolerant full adder design using fault localization

Legal Events

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

Payment date: 20131106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151028

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171023

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 9