KR102175403B1 - 디지털 연산 회로의 기능 복구 장치 및 방법 - Google Patents

디지털 연산 회로의 기능 복구 장치 및 방법 Download PDF

Info

Publication number
KR102175403B1
KR102175403B1 KR1020140092123A KR20140092123A KR102175403B1 KR 102175403 B1 KR102175403 B1 KR 102175403B1 KR 1020140092123 A KR1020140092123 A KR 1020140092123A KR 20140092123 A KR20140092123 A KR 20140092123A KR 102175403 B1 KR102175403 B1 KR 102175403B1
Authority
KR
South Korea
Prior art keywords
clock
period
error
function
function recovery
Prior art date
Application number
KR1020140092123A
Other languages
English (en)
Other versions
KR20160011087A (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 KR1020140092123A priority Critical patent/KR102175403B1/ko
Priority to US14/749,558 priority patent/US9575852B2/en
Publication of KR20160011087A publication Critical patent/KR20160011087A/ko
Application granted granted Critical
Publication of KR102175403B1 publication Critical patent/KR102175403B1/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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

Landscapes

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

Abstract

본 발명의 실시 예들은, 디지털 연산 회로에 오류(fault)가 발생한 경우, 상기 디지털 연산 회로의 기능을 복구 하기 위한 장치 및 방법에 관한 것으로, 본 발명의 일 실시 예에 따른 디지털 연산 회로의 기능을 복구하는 장치는, 제 1 주기를 갖는 클럭을 이용하여 동일한 연산을 수행하는 다수의 디지털 연산 회로의 출력 결과를 비교하여 오류 발생 여부를 판단하는 오류 검출 블록; 및 상기 판단 결과 오류가 검출된 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 상기 다수의 디지털 연산 회로의 기능 복구를 위한 동작을 수행하는 기능 복구 블록을 포함한다. 본 발명의 실시 예들에 따르면, 전압, 전류 및 온도 등의 외부의 요인에 의하여 디지털 연산 회로에 오류가 발생하는 경우, 상기 디지털 연산 회로의 기능 복구가 높은 신뢰도를 가지고 이루어지도록 할 수 있다.

Description

디지털 연산 회로의 기능 복구 장치 및 방법{Failure recovery apparatus of digital logic circuit and method thereof}
본 발명의 실시 예들은, 디지털 연산 회로에서 오류(fault)가 발생한 경우, 상기 디지털 연산 회로의 기능을 복구 하기 위한 장치 및 방법에 관한 것이다.
CPU 코어는, 메모리 또는 하드 디스크 등의 저장 장치(storage)에 보관된 명령어를 읽어 들여, 명령어에 인코딩된 동작에 따라 피연산자(operand)에 특정 연산을 실행하고, 실행 결과를 다시 저장하는 등의 특정 응용(application)을 위한 알고리즘을 실행하는 하드웨어 또는 IP(Intellectual Property) 를 의미한다.
CPU 코어의 응용 영역은, 시스템 반도체 전 분야에 걸쳐 광대하다. 예를 들어, CPU 코어(CPU core; Processor Core)의 응용 영역은, 비디오/오디오 데이터 압축 및 해제, 오디오 데이터 변형 및 음향 효과와 같은 대용량의 멀티미디어 데이터를 위한 고성능 미디어 데이터 처리 영역과, 유무선 통신용 모뎀, 보이스 코덱 알고리즘, 네트워크 데이터 처리, 터치 스크린, 가전 기기용 콘트롤러, 모터 제어와 같은 최소성능 마이크로 콘트롤러 플랫폼 영역과, 무선 센서 네트워크(wireless senor network) 또는 초소형 전자 장치(electronics dust)와 같은 안정적인 전원 공급이 불가능하거나 외부로부터의 전원 공급이 불가능한 장치 영역에 이르기까지 다양한 응용 영역으로 그 사용처를 확대하고 있다.
CPU 코어는, 기본적으로 코어(core), TLB(Translation Lookaside Buffer) 및 캐시(cache)로 구성된다. CPU 코어가 수행할 작업은 다수의 명령어(instruction)의 조합으로 규정된다. 즉, 명령어가 메모리에 저장되어 있고, CPU 코어에 이 명령어들이 순차적으로(sequentially) 입력되어 매 클럭 사이클마다 CPU 코어가 특정 연산을 행하게 된다. TLB는 운영 체제 기반의 어플리케이션 구동을 위하여 가상 어드레스를 물리 어드레스로 변환하는 기능을 하며, 캐시는 외부 메모리에 저장되어 있는 명령어를 칩 내부에 잠시 저장함으로써 CPU 코어의 속도를 증대시키는 역할을 한다.
최근의 자동자 시스템 등에서는 ADAS(Advanced Drive Assistance System)와 같은 고도의 지능과 정밀성을 보유한 운전자 보조 시스템의 개발이 활발히 이루어지면서, 전장 시스템의 중요성이 높아지고 있다. 특히, 운전자 대신 차량 외부의 환경을 인식하기 위한 장치로서, 기존의 50MHz~100MHz 보다 고성능의 코어, 즉 500MHz 이상의 CPU 코어를 이용하는 어플리케이션이 점차 큰 폭으로 많아질 것으로 예상된다. 이러한 어플리케이션은, 스마트 블랙박스에서의 동작 인식(motion detection), 차량 운행 중의 보행자 인식(pedestrian recognition), 운전자의 운전 패턴 또는 졸음 인식 및 차선 인식 등을 통한 운행 보조(lane detection and driving assistance) 등을 포함한다.
외부 환경을 인식하고, 인식된 영상 정보, 음성 정보 및 각종 센서 정보를 분석하여 자동차 운행에 직간접적으로 관여하기 위해서는, 고성능의 CPU 코어를 이용하여 대량의 데이터를 실시간으로 분석할 수 있어야 한다. 특히, 차선 인식 기반 운행 보조의 경우, 인식한 결과를 바탕으로 자동차 운행시 조향 장치 등에 직접적인 영향을 가할 수 있다. 자동차 조향 장치 등에서 직접적인 영향을 가하는 방식은 차선 인식 결과를 운전자에게 알려주는 방안으로서, 핸들에 진동을 주는 방법 또는 핸들 회전각을 제한하는 방법 등이 있을 수 있다.
CPU 코어의 신뢰성(reliability), 즉 CPU 코어가 정상적으로 작동하지 않는 경우를 알아내는 기능은, 차량 외부의 데이터를 인식하여 자동차 조향 장치에 직접적인 영향을 줄 수 있는 어플리케이션의 경우에 특히 그 중요성이 부각된다. 고성능의 인식 결과가 조향 장치에 직접적인 영향을 줄 수 있는 상황에서, 반도체가 전압, 전류 및 온도 등의 요인에 의하여 오동작할 경우 운전자의 생명에 직접적인 영향을 줄 수 있기 때문이다. 이러한 CPU 코어의 연산 결과가 조향에 영향을 줄 경우에는, 그 안정성, 즉 CPU 코어가 의도한 기능에 따라서 동작하고 있음을 보장하는 것이 매우 중요하다고 할 수 있다.
본 발명의 실시 예들은, CPU 코어 등의 디지털 연산 회로의 신뢰성을 보장할 수 있는 방안을 제공한다.
본 발명의 실시 예들은, 디지털 연산 회로의 동작에 오류가 발생하는 경우, 디지털 연산 회로의 기능을 안정적으로 복구할 수 있는 방안을 제공한다.
본 발명의 실시 예들은, 디지털 연산 회로의 기능 복구 과정의 신뢰성을 향상시킬 수 있는 방안을 제공한다.
본 발명의 일 실시 예에 따른 디지털 연산 회로의 기능을 복구하는 장치는, 제 1 주기를 갖는 클럭을 이용하여 동일한 연산을 수행하는 다수의 디지털 연산 회로의 출력 결과를 비교하여 오류 발생 여부를 판단하는 오류 검출 블록; 및 상기 판단 결과 오류가 검출된 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 상기 다수의 디지털 연산 회로의 기능 복구를 위한 동작을 수행하는 기능 복구 블록을 포함한다.
상기 오류 검출 블록은, 상기 다수의 디지털 연산 회로의 출력 논리 값을 비교하여 출력 논리 값이 서로 다른 경우 오류 발생을 인지하고, 오류가 발생하였음을 상기 기능 복구 블록에 통지하는 비교기를 포함할 수 있다.
상기 기능 복구 블록은, 기능 복구 프로그램 실행에 이용되는 기능 복구 유닛을 포함하며, 상기 기능 복구 유닛은, 기능 복구를 위한 연산을 수행하는 다수의 조합 논리 회로; 및 상기 다수의 조합 논리 회로 중 어느 하나의 조합 논리 회로의 출력 논리 값과 상기 제 2 주기를 갖는 N(여기서, N은 자연수) 개의 클럭을 입력받아 하나의 논리 값을 출력하는 다수의 지연 신호 생성부를 포함할 수 있다.
상기 지연 신호 생성부는, 상기 어느 하나의 조합 논리 회로의 출력 논리 값과 상기 제 2 주기를 갖는 하나의 클럭을 입력받는 하나의 플립플롭을 포함할 수 있다. 이 때, 상기 기능 복구 블록은, 상기 제 2 주기를 갖는 하나의 클럭을 생성하는 클럭 생성부를 더 포함할 수 있다.
상기 지연 신호 생성부는, 상기 어느 하나의 조합 논리 회로의 출력 논리 값을 공통으로 입력받으며, 서로 간에 위상차를 갖는 N 개의 클럭 중 어느 하나를 입력받는 N 개의 플립플롭; 및 상기 N 개의 플립플롭의 출력 논리 값을 입력받고, 입력된 출력 논리 값들 중 다수에 해당하는 논리 값을 선택하여 출력하는 보터(voter)를 포함할 수 있다. 이 때, 상기 기능 복구 블록은, 상기 제 2 주기를 가지며, 서로 간에 위상 차를 갖는 상기 N 개의 클럭을 생성하는 클럭 생성부를 더 포함할 수 있다. 이 때, 상기 N 개의 클럭 중 제 n-1(여기서, 2 ≤ n < N) 클럭과 제 n 클럭의 위상차는, 제 n 클럭과 제 n+1 클럭의 위상차와 다를 수 있다.
상기 기능 복구 유닛은, 상기 다수의 디지털 연산 회로의 외부에 위치할 수 있다.
상기 기능 복구 유닛은, 상기 다수의 디지털 연산 회로 중 어느 하나의 내부에 위치할 수 있다. 이 때, 상기 기능 복구 블록은, 상기 오류가 검출되기 이전에 상기 제 1 주기를 갖는 클럭을 생성하여 상기 다수의 디지털 연산 회로에 출력하며, 상기 오류가 검출된 경우 상기 제 2 주기를 갖는 클럭을 생성하여 상기 기능 복구 유닛에 출력하는 클럭 생성부를 더 포함할 수 있다.
상기 기능 복구 블록은, 상기 오류가 검출된 경우 상기 다수의 디지털 연산 회로 및 상기 기능 복구 유닛을 초기화하는 초기화부를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 디지털 연산 회로의 기능을 복구하는 방법은, 제 1 주기를 갖는 클럭을 이용하여 동일한 연산을 수행하는 다수의 디지털 연산 회로의 출력 결과를 비교하여 오류가 발생하였는지 여부를 판단하는 단계; 및 상기 판단 결과 오류가 검출된 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 상기 다수의 디지털 연산 회로의 기능 복구를 위한 동작을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예들에 따르면, 전압, 전류 및 온도 등의 외부의 요인에 의하여 디지털 연산 회로에 오류가 발생하는 경우, 상기 디지털 연산 회로의 기능 복구가 높은 신뢰도를 가지고 이루어지도록 할 수 있다.
본 발명의 실시 예들에 따르면, 상기 기능 복구 동작 중에 오류가 발생할 확률을 최소화할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 디지털 연산 회로의 기능 복구를 위한 장치를 설명하기 위한 블록도,
도 2는 본 발명의 일 실시 예에 따른 기능 복구 블록을 설명하기 위한 블록도,
도 3은 본 발명의 일 실시 예에 따른 기능 복구 유닛을 설명하기 위한 블록도,
도 4는 본 발명의 일 실시 예에 따른 지연 신호 생성부를 설명하기 위한 예시도,
도 5는 본 발명의 다른 실시 예에 따른 지연 신호 생성부를 설명하기 위한 예시도,
도 6은 도 5를 참조하여 설명한 지연 신호 생성부로 입력되는 신호와 지연 신호 생성부로부터 출력되는 신호를 보여주는 예시도,
도 7은 본 발명의 일 실시 예에 따른 보터를 설명하기 위한 예시도,
도 8은 본 발명의 다른 실시 예에 따른 디지털 연산 회로의 기능 복구를 위한 장치를 설명하기 위한 블록도,
도 9 및 도 10은 본 발명의 다른 실시 예에 따른 기능 복구 유닛을 설명하기 위한 예시도,
도 11은 본 발명의 실시 예들에 따른 디지털 연산 회로의 기능 복구를 위한 방법을 설명하기 위한 흐름도
이하에서, 본 발명의 실시 예들을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
본 발명의 실시 예들은, 디지털 연산 회로, 예를 들어 CPU 코어에서 오류가 발생한 경우, CPU 코어의 기능을 복구하는 방안을 제공한다.
본 발명의 실시 예들에서는, 디지털 연산 회로에서 오류가 발생하였는지 여부를 판단하기 위하여, 동일한 클럭을 이용하는 다수의 디지털 연산 회로에서 동일한 프로그램을 수행하고, 수행 결과를 비교하여 오류를 검출하는 방안을 이용한다.
본 발명의 실시 예들을 설명함에 있어, 설명의 편의를 위하여, 두 개의 디지털 연산 회로를 이용하는 경우를 설명한다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 설명한다.
도 1은 본 발명의 일 실시 예에 따른 디지털 연산 회로의 기능 복구를 위한 장치를 설명하기 위한 블록도이다.
디지털 연산 회로(100a)와 디지털 연산 회로(100b)는, 동일한 어플리케이션을 실행하는 회로이다. 디지털 연산 회로들(100a, 100b)은, 매 클럭(CLK 101) 사이클마다 연산을 수행하고, 연산 수행 결과를 출력한다. 이하에서, 본 발명의 실시 예들을 설명함에 있어, 디지털 연산 회로들(100a, 100b)에 입력되는 클럭(CLK 101)은 제 1 주기를 가진다고 한다.
본 발명의 일 실시 예에 다른 디지털 연산 회로의 기능 복구를 위한 장치는, 오류 검출 블록(200) 및 기능 복구 블록(300)을 포함한다.
오류 검출 블록(200)은, 디지털 연산 회로들(100a, 100b)의 출력 결과를 비교하여 오류가 검출되는지를 판단하고, 오류가 검출된 경우 이를 기능 복구 블록(300)에 통지한다. 이를 위하여, 오류 검출 블록(200)은, 디지털 연산 회로들(100a, 100b)의 출력 논리 값을 입력받고, 입력된 출력 논리 값들을 비교하여, 비교된 출력 논리 값들이 서로 다른 경우 오류 발생을 인지하는 비교기(미도시)를 포함할 수 있다. 상기 비교기는, 오류 발생이 인지된 경우 이를 기능 복구 블록(300)에 통지할 수 있다.
기능 복구 블록(300)은, 오류 검출 블록으로부터 오류 발생을 통지 받은 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 디지털 연산 회로들(100a, 100b)의 기능 복구를 위한 동작을 수행한다.
EMI(Electro-Magnetic Interference) 등에 의하여 발생한 오류는 일반적으로 일정 시간이 흐른 뒤 사라지게 된다. 따라서, 이러한 오류 지속 시간 보다 긴 주기를 갖는 클럭을 이용하는 경우 디지털 연산 회로의 기능을 안정적으로 복구할 수 있다.
상기 기능 복구를 위한 동작은, 예를 들어, 코드 메모리(code memory) 복사, 코어 리셋, 체크 포인트(check point)의 메모리 값 덤프(dump) 및 PC(Program Counter) 값 변경 등의 동작을 포함할 수 있다. 다시 말해, 상기 기능 복구를 위한 동작은, 오류(fault)가 발견되기 전까지의 PC 값을 이용하여 코어를 재시작하기 까지의 일련의 과정을 포함할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 기능 복구 블록을 설명하기 위한 블록도이다. 도 2를 참조하여 설명하는 실시 예에서는, 디지털 연산 회로가 CPU 코어인 것으로 가정한다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 기능 복구 블록(300)은, 초기화부(310), 클럭 생성부(320) 및 기능 복구 유닛(330)을 포함한다.
초기화부(310)는, 오류 검출 블록(200)으로부터 오류 검출을 통지받은 경우, 코어-L(100a)과 코어-R(100b)을 초기화한다. 초기화 기능은, 시스템 구현에 따라 달라질 수 있다. 예를 들어, 초기화는 코어-L(100a), 코어-R(100b)이 실행할 어플리케이션을 메모리 상에서 초기화하는 동작을 포함할 수 있다. 이에 따라, 코어-L(100a)과 코어-R(100b)은 동작이 정지된다. 이에 더하여, 초기화부(310)는, 기능 복구 유닛(330)을 초기화할 수 있다.
초기화부(310)는, 코어-L(100a), 코어-R(100b) 및 기능 복구 유닛(330)의 초기화가 완료된 경우, 이를 클럭 생성부(320)에 통지한다.
클럭 생성부(320)는, 코어-L(100a)과 코어-R(100b)이 어플리케이션 프로그램을 실행하는 데 이용하는 클럭(CLK 101)의 주기보다 긴 제 2 주기를 갖는 클럭을 생성하고, 생성된 클럭을 기능 복구 유닛(330)으로 출력한다.
기능 복구 유닛(330)은, 클럭 생성부(320)로부터 입력되는 제 2 주기를 갖는 클럭을 이용하여 코어-L(100a)과 코어-R(100b)의 기능 복구를 위한 프로그램을 실행한다.
도 3은 본 발명의 일 실시 예에 따른 기능 복구 유닛을 설명하기 위한 블록도이다.
본 발명의 일 실시 예에 따른 기능 복구 유닛(330)은, 다수의 조합 논리 회로 및 다수의 지연 신호 생성부를 포함한다.
조합 논리 회로는, 적어도 하나의 논리 소자를 포함하며, 상기 논리 소자들을 이용하여 코어-L(100a)과 코어-R(100b)의 기능 복구를 위한 연산을 수행한다. 각각의 조합 논리 회로에서 수행된 연산 결과는 지연 신호 생성부로 출력된다.
지연 신호 생성부는, 조합 논리 회로로부터 출력되는 논리 값과 클럭 생성부(320)로부터 출력되는 제 2 주기를 갖는 N(여기서, N은 자연수) 개의 클럭을 입력받고, 하나의 논리 값을 출력한다. 지연 신호 생성부로부터 출력된 논리 값은, 인접하는 조합 논리 회로로 입력되고, 해당 조합 논리 회로의 출력은 다음 사이클에 인접하는 지연 신호 생성부로 출력된다.
도 4는 본 발명의 일 실시 예에 따른 지연 신호 생성부를 설명하기 위한 예시도이다.
도 4를 참조하여 설명하는 실시 예에서는, 지연 신호 생성부(332)가 하나의 플립플롭(332a)을 포함하는 것으로 가정한다.
플립플롭(332a)은, 전단에 위치한 조합 논리 회로로부터 출력되는 논리 값과, 클럭 생성부(320)로부터 출력되는 제 2 주기를 갖는 클럭(CLK 321)을 입력받고, 이를 기반으로 하나의 논리 값을 생성하여 후단에 위치한 조합 논리 회로로 출력한다.
전술한 바와 같이, 회로 내에서 발생하는 실시간 오류(transient fault)는, 일반적으로 수백 피코 초(pico second)에서 수십 나노 초(nano second)의 지속 시간을 가지며, 본 발명의 실시 예들에서는, 이러한 지속 시간보다 충분히 긴 주기를 갖는 클럭(CLK 321)을 이용하여 디지털 연산 회로의 기능 복구를 위한 프로그램을 실행한다.
한편, 이러한 오류는 플립플롭 상에 발생할 수 있다. 이에, 본 발명의 다른 실시 예에서는, 기능 복구 동작의 신뢰성 향상을 위하여, 다수의 플립플롭과 다수의 클럭을 이용할 수 있다. 이를 도 5를 참조하여 설명한다.
도 5는 본 발명의 다른 실시 예에 따른 지연 신호 생성부를 설명하기 위한 예시도이다.
도 5를 참조하여 설명하는 실시 예에서는, 지연 신호 생성부(332)가 3 개의 플립플롭들(332a, 332b, 332c)을 포함하는 것으로 가정하나, 도 5를 참조하여 설명하는 본 발명의 실시 예는, 플립플롭이 2 개이거나 또는 4개 이상인 경우에도 적용 가능하다.
플립플롭들(332a, 332b, 332c)은, 전단에 위치한 조합 논리 회로로부터 출력 논리 값을 동일하게 입력받는다. 그리고, 각각의 플립플롭들(332a, 332b, 332c)은, 제 2 주기를 갖는 클럭들(CLK 321a, CLK 321b, CLK 321c)을 하나씩 입력받는다. 즉, 플립플롭(332a)에는 제 2 주기를 갖는 클럭(CLK 321a)가 입력되고, 플립플롭(332b)에는 제 2 주기를 갖는 클럭(CLK 321b)가 입력되며, 플립플롭(332c)에는 제 2 주기를 갖는 클럭(CLK 321c)가 입력된다.
플립플롭들(332a, 332b, 332c)은, 조합 논리 회로로부터 입력되는 출력 논리 값과, 자신에 입력된 클럭을 기반으로 출력 신호들(Sa, Sb, Sc)을 생성하여 보터(voter)(332d)로 출력한다.
보터(332d)는, 플립플롭들(332a, 332b, 332c)로부터 입력되는 논리 값 중 다수의 논리 값을 선택하고, 선택된 논리 값을 출력한다. 보터(332d)와 관련하여서는, 도 7을 참조하여 후술한다.
도 5를 참조하여 설명한 실시 예에 따르면, 어느 하나의 플립플롭에서 오류가 발생하더라도, 나머지 두 개의 유효한 성분을 이용하여 디지털 연산 회로의 기능 복구 동작을 수행할 수 있다.
한편, 일 실시 예에서, 각 클럭 간의 위상차를 서로 다르게 할 수 있다. 예를 들어, 제 1 클럭(CLK 321a)과 제 2 클럭(CLK 321b) 간의 위상 차(ΔΦ1)를, 제 2 클럭(CLK 321b)과 제 3 클럭(CLK 321c) 간의 위상 차(ΔΦ2)와 상이하게 할 수 있다. 그럼으로써, 클럭 엣지(edge) 부분에서 오류가 발생하더라도, 기능 복구 동작의 신뢰성을 보장할 수 있다. 상기 위상차들은, <수학식 1>과 같이 표현될 수 있다.
Figure 112014068467527-pat00001
일 실시 예에서, 상기 위상차들(ΔΦ1, ΔΦ2)은, 일반적으로 발생하는 실시간 오류의 지속 시간보다 길게 설정될 수 있다. 상기 위상차들(ΔΦ1, ΔΦ2)은, 실험을 토대로, 또는 기존에 일반적으로 알려진 사실을 기반으로 설정될 수 있다.
도 6은 도 5를 참조하여 설명한 지연 신호 생성부로 입력되는 신호와 지연 신호 생성부로부터 출력되는 신호를 보여주는 예시도이다.
도 5 및 도 6을 참조하면, 클럭(CLK 321c)을 입력받는 플립플롭에서의 오류 발생으로 인하여 잘못된 연산 값(Value X)이 출력되더라도, 나머지 클럭들(CLK 321a, CLK 321b)을 입력받는 플립플롭에서 출력되는 연산 값(Value A)이 다수 신호로 선택되어 출력되고 있음을 알 수 있다.
도 7은 본 발명의 일 실시 예에 따른 보터를 설명하기 위한 예시도이다.
보터(332d)는 다수의 논리 소자로 구성될 수 있으며, 입력 신호들 중 다수의 신호를 선택하여 출력한다. 도 7에는 일 예로서, 낸드 게이트(NAND gate)로 구성된 보터를 도시하였다.
한편, 도 1 및 도 2에는 디지털 연산 회로의 기능 복구를 위한 기능 복구 유닛이, 디지털 연산 회로 외부에 존재하는 실시 예에 대하여 설명하였으나, 상기 기능 복구 유닛은 디지털 연산 회로 내부에 존재할 수도 있다. 이를 도 8을 참조하여 설명한다.
도 8은 본 발명의 다른 실시 예에 따른 디지털 연산 회로의 기능 복구를 위한 장치를 설명하기 위한 블록도이다.
도 8에 도시된 바와 같이, 기능 복구 유닛(330)은, CPU 코어(코어-L 및 코어-R)에서 어플리케이션을 수행하는 각종 조합 논리 회로의 일부일 수 있다. 이러한 경우, 기능 복구 유닛(330)은, CPU 코어의 정상 동작 시에는 해당 어플리케이션을 수행하고, CPU 코어의 기능 복구 동작 시에는 기능 복구를 위한 프로그램을 수행할 수 있다. 이를 도 9 및 도 10을 참조하여 좀 더 상세히 살펴본다.
도 9 및 도 10은 본 발명의 다른 실시 예에 따른 기능 복구 유닛을 설명하기 위한 예시도이다.
도 9 및 도 10에서는, 설명의 편의를 위하여, 코어-L 및 오류 검출 블록을 생략하여 도시하였다.
도 9에 도시된 바와 같이, 기능 복구 유닛(330)은, 코어-R(100b)의 내부에 위치할 수 있다. 그리고, 전술한 바와 같이, 기능 복구 유닛(330)은, CPU 코어의 정상 동작 시에는 해당 어플리케이션을 수행하고, CPU 코어의 기능 복구 동작 시에는 기능 복구를 위한 프로그램을 수행할 수 있다.
즉, 클럭 생성부(320)는, CPU 코어의 정상 동작 시에는 제 1 주기를 갖는 클럭(CLK 101)을 생성하여 코어-R(100b)로 출력할 수 있다.
한편, 오류가 발생되어 코어-R(100b) 및 기능 복구 유닛(330)의 초기화가 수행되고, 상기 초기화가 완료되었음이 초기화부(310)로부터 통지되는 경우, 클럭 생성부(320)는, 제 2 주기를 갖는 클럭(CLK 321)을 생성하여 기능 복구 유닛(330)으로 출력할 수 있다.
도 10에는, 제 2 주기를 갖는 다수의 클럭(CLK 321a, CLK 321b, CLK 321c,)을 이용하는 예를 도 10에 도시하였다. 기본적인 동작들은, 도 9를 참조하여 설명한 실시 예와 같으므로 상세한 설명은 생략한다.
도 11은 본 발명의 실시 예들에 따른 디지털 연산 회로의 기능 복구를 위한 방법을 설명하기 위한 흐름도이다.
단계(1001)에서, 다수의 디지털 연산 회로의 출력 결과가 비교된다. 예를 들어, 코어-L의 출력 논리 값과 코어-R의 출력 논리 값이 비교된다. 상기 출력 결과의 비교는 매 사이클마다 이루어질 수 있다.
단계(1003)에서, 디지털 연산 회로에 오류가 발생하였는지 여부가 판단된다. 예를 들어, 코어-L의 출력 논리 값이 코어-R의 출력 논리 값과 다른 경우 오류가 발생한 것으로 판단된다. 오류가 발생되었다고 판단되는 경우, 단계(1005)로 진행된다.
단계(1005)에서, 디지털 연산 회로 및 기능 복구 유닛의 초기화가 수행된다.
단계(1007)에서, 디지털 연산 회로에서 어플리케이션 수행에 이용되던 클럭의 주기(제 1 주기)보다 긴 제 2 주기를 갖는 클럭이 생성된다. 상기 제 2 주기를 갖는 클럭은 하나 이상일 수 있다.
단계(1009)에서, 제 2 주기를 갖는 클럭을 이용하여 디지털 논리 연산 회로의 기능 복구를 위한 프로그램이 실행된다.
단계(1011)에서, 기능 복구를 위한 프로그램 실행이 완료되면, 디지털 연산 회로가 재시작 된다.
이상에서 설명된 본 발명의 실시 예들은 임의의 다양한 방법으로 구현될 수 있다. 예를 들어, 본 발명의 실시 예들은 하드웨어, 소프트웨어 또는 그 조합을 이용하여 구현될 수 있다. 소프트웨어로 구현되는 경우에, 다양한 운영 체제 또는 플랫폼을 이용하는 하나 이상의 프로세서 상에서 실행되는 소프트웨어로서 구현될 수 있다. 추가적으로, 그러한 소프트웨어는 다수의 적합한 프로그래밍 언어들 중에서 임의의 것을 사용하여 작성될 수 있고, 또한 프레임워크 또는 가상 머신에서 실행 가능한 기계어 코드 또는 중간 코드로 컴파일 될 수 있다.
또한, 본 발명의 실시 예들이 하나 이상의 프로세서 상에서 실행되는 경우 이상에서 논의된 본 발명의 다양한 실시 예들을 구현하는 방법을 수행하기 위한 하나 이상의 프로그램이 기록된 프로세서 판독 가능 매체(예를 들어, 메모리, 플로피 디스크, 하드 디스크, 콤팩트 디스크, 광학 디스크 또는 자기 테이프 등)로 구현될 수 있다.

Claims (13)

  1. 디지털 연산 회로의 기능을 복구하는 장치로서,
    제 1 주기를 갖는 클럭을 이용하여 동일한 연산을 수행하는 다수의 디지털 연산 회로의 출력 결과를 비교하여 오류 발생 여부를 판단하는 오류 검출 블록; 및
    상기 판단 결과 오류가 검출된 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 상기 다수의 디지털 연산 회로의 기능 복구를 위한 동작을 수행하는 기능 복구 블록
    을 포함하는 기능 복구 장치.
  2. 제 1 항에 있어서, 상기 오류 검출 블록은,
    상기 다수의 디지털 연산 회로의 출력 논리 값을 비교하여 출력 논리 값이 서로 다른 경우 오류 발생을 인지하고, 오류가 발생하였음을 상기 기능 복구 블록에 통지하는 비교기
    를 포함하는 기능 복구 장치.
  3. 제 1 항에 있어서, 상기 기능 복구 블록은 기능 복구 프로그램 실행에 이용되는 기능 복구 유닛을 포함하며, 상기 기능 복구 유닛은,
    기능 복구를 위한 연산을 수행하는 다수의 조합 논리 회로; 및
    상기 다수의 조합 논리 회로 중 어느 하나의 조합 논리 회로의 출력 논리 값과 상기 제 2 주기를 갖는 N(여기서, N은 자연수) 개의 클럭을 입력받아 하나의 논리 값을 출력하는 다수의 지연 신호 생성부
    를 포함하는 기능 복구 장치.
  4. 제 3 항에 있어서, 상기 지연 신호 생성부는,
    상기 어느 하나의 조합 논리 회로의 출력 논리 값과 상기 제 2 주기를 갖는 하나의 클럭을 입력받는 하나의 플립플롭을 포함하는
    기능 복구 장치.
  5. 제 4 항에 있어서, 상기 기능 복구 블록은,
    상기 제 2 주기를 갖는 하나의 클럭을 생성하는 클럭 생성부
    를 더 포함하는 기능 복구 장치.
  6. 제 3 항에 있어서, 상기 지연 신호 생성부는,
    상기 어느 하나의 조합 논리 회로의 출력 논리 값을 공통으로 입력받으며, 서로 간에 위상차를 갖는 N 개의 클럭 중 어느 하나를 입력받는 N 개의 플립플롭; 및
    상기 N 개의 플립플롭의 출력 논리 값을 입력받고, 입력된 출력 논리 값들 중 다수에 해당하는 논리 값을 선택하여 출력하는 보터(voter)
    를 포함하는 기능 복구 장치.
  7. 제 6 항에 있어서, 상기 기능 복구 블록은,
    상기 제 2 주기를 가지며, 서로 간에 위상 차를 갖는 상기 N 개의 클럭을 생성하는 클럭 생성부
    를 더 포함하는 기능 복구 장치.
  8. 제 6 항에 있어서,
    상기 N 개의 클럭 중 제 n-1(여기서, 2 ≤ n < N) 클럭과 제 n 클럭의 위상차는, 제 n 클럭과 제 n+1 클럭의 위상차와 다른
    기능 복구 장치.
  9. 제 3 항에 있어서, 상기 기능 복구 유닛은,
    상기 다수의 디지털 연산 회로의 외부에 위치하는
    기능 복구 장치.
  10. 제 3 항에 있어서, 상기 기능 복구 유닛은,
    상기 다수의 디지털 연산 회로 중 어느 하나의 내부에 위치하는
    기능 복구 장치.
  11. 제 10 항에 있어서, 상기 기능 복구 블록은,
    상기 오류가 검출되기 이전에 상기 제 1 주기를 갖는 클럭을 생성하여 상기 다수의 디지털 연산 회로에 출력하며, 상기 오류가 검출된 경우 상기 제 2 주기를 갖는 클럭을 생성하여 상기 기능 복구 유닛에 출력하는 클럭 생성부
    를 더 포함하는 기능 복구 장치.
  12. 제 3 항에 있어서, 상기 기능 복구 블록은,
    상기 오류가 검출된 경우 상기 다수의 디지털 연산 회로 및 상기 기능 복구 유닛을 초기화하는 초기화부
    를 더 포함하는 기능 복구 장치.
  13. 디지털 연산 회로의 기능을 복구하는 방법으로서,
    제 1 주기를 갖는 클럭을 이용하여 동일한 연산을 수행하는 다수의 디지털 연산 회로의 출력 결과를 비교하여 오류가 발생하였는지 여부를 판단하는 단계; 및
    상기 판단 결과 오류가 검출된 경우, 상기 제 1 주기보다 긴 제 2 주기를 갖는 클럭을 이용하여, 상기 다수의 디지털 연산 회로의 기능 복구를 위한 동작을 수행하는 단계
    를 포함하는 기능 복구 방법.
KR1020140092123A 2014-07-21 2014-07-21 디지털 연산 회로의 기능 복구 장치 및 방법 KR102175403B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140092123A KR102175403B1 (ko) 2014-07-21 2014-07-21 디지털 연산 회로의 기능 복구 장치 및 방법
US14/749,558 US9575852B2 (en) 2014-07-21 2015-06-24 Failure recovery apparatus of digital logic circuit and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140092123A KR102175403B1 (ko) 2014-07-21 2014-07-21 디지털 연산 회로의 기능 복구 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160011087A KR20160011087A (ko) 2016-01-29
KR102175403B1 true KR102175403B1 (ko) 2020-11-06

Family

ID=55074674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140092123A KR102175403B1 (ko) 2014-07-21 2014-07-21 디지털 연산 회로의 기능 복구 장치 및 방법

Country Status (2)

Country Link
US (1) US9575852B2 (ko)
KR (1) KR102175403B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11127336B2 (en) 2015-09-23 2021-09-21 Boe Technology Group Co., Ltd. Gate on array (GOA) unit, gate driver circuit and display device
CN105096811B (zh) * 2015-09-23 2017-12-08 京东方科技集团股份有限公司 Goa单元、栅极驱动电路及显示装置
US10455022B2 (en) * 2015-10-23 2019-10-22 Traeger Pellet Grills, Llc Cloud system for controlling outdoor grill with mobile application
KR102162321B1 (ko) 2016-03-14 2020-10-06 한국전자통신연구원 프로세서 시스템 및 그것의 고장 검출 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012507104A (ja) 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 複数の半導体メモリユニットにおけるエラー訂正
JP2014071576A (ja) 2012-09-28 2014-04-21 Fujitsu Ltd ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402757B1 (ko) 2001-08-22 2003-10-22 한국전자통신연구원 시스템보드의 오류검사 장치 및 방법
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US7146530B2 (en) 2003-07-18 2006-12-05 Hewlett-Packard Development Company, L.P. Targeted fault tolerance by special CPU instructions
US7206966B2 (en) 2003-10-22 2007-04-17 Hewlett-Packard Development Company, L.P. Fault-tolerant multi-core microprocessing
US7865769B2 (en) * 2007-06-27 2011-01-04 International Business Machines Corporation In situ register state error recovery and restart mechanism
GB2463278B (en) * 2008-09-05 2012-05-16 Advanced Risc Mach Ltd Scheduling control within a data processing system
KR100998314B1 (ko) * 2009-04-21 2010-12-03 서울대학교산학협력단 Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로
US8738971B2 (en) * 2011-12-07 2014-05-27 Arm Limited Limiting certain processing activities as error rate probability rises
KR101882853B1 (ko) * 2011-12-21 2018-08-27 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
KR101638437B1 (ko) 2012-09-25 2016-07-12 한국전자통신연구원 고장감내처리 시스템의 동작방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012507104A (ja) 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 複数の半導体メモリユニットにおけるエラー訂正
JP2014071576A (ja) 2012-09-28 2014-04-21 Fujitsu Ltd ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム

Also Published As

Publication number Publication date
KR20160011087A (ko) 2016-01-29
US20160019126A1 (en) 2016-01-21
US9575852B2 (en) 2017-02-21

Similar Documents

Publication Publication Date Title
RU2385484C2 (ru) Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации
KR102175403B1 (ko) 디지털 연산 회로의 기능 복구 장치 및 방법
US20100180263A1 (en) Apparatus and method for detecting software error
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
US8996339B2 (en) Incremental formal verification
US8578311B1 (en) Method and system for optimal diameter bounding of designs with complex feed-forward components
TW201140357A (en) Techniques for analysis of logic designs with transient logic
CN101872369A (zh) 规范化表示中的自适应状态-符号转换
US10558771B2 (en) Systems and methods for security and safety fault analysis using information flow
US8453082B2 (en) Soft error verification in hardware designs
US8185371B2 (en) Modeling full and half cycle clock variability
Singh et al. E-QED: electrical bug localization during post-silicon validation enabled by quick error detection and formal methods
JP2009211503A (ja) ソースコード検証装置、及びソースコード検証方法
Cheng et al. A formal method to improve SystemVerilog functional coverage
Fey et al. Computing bounds for fault tolerance using formal techniques
Luth et al. Towards a methodology for self-verification
US8397189B2 (en) Model checking in state transition machine verification
US20090070720A1 (en) System to Identify Timing Differences from Logic Block Changes and Associated Methods
US8024168B2 (en) Detecting X state transitions and storing compressed debug information
US10127098B2 (en) Apparatus and method for recovering functionality of central processing unit core
US8527922B1 (en) Method and system for optimal counterexample-guided proof-based abstraction
Lee et al. Runtime verification method for self-adaptive software using reachability of transition system model
US10606971B2 (en) Testing netlists based on singular independent signals
US11853195B2 (en) Methods and systems to discover special outcomes in an instruction set architecture via formal methods
Drusinsky Runtime monitoring and verification of systems with hidden information

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