KR101279999B1 - 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이 - Google Patents

오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이 Download PDF

Info

Publication number
KR101279999B1
KR101279999B1 KR1020120041033A KR20120041033A KR101279999B1 KR 101279999 B1 KR101279999 B1 KR 101279999B1 KR 1020120041033 A KR1020120041033 A KR 1020120041033A KR 20120041033 A KR20120041033 A KR 20120041033A KR 101279999 B1 KR101279999 B1 KR 101279999B1
Authority
KR
South Korea
Prior art keywords
function
error
signal
detection code
unit
Prior art date
Application number
KR1020120041033A
Other languages
English (en)
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 KR1020120041033A priority Critical patent/KR101279999B1/ko
Priority to US14/395,755 priority patent/US9720766B2/en
Priority to PCT/KR2012/004444 priority patent/WO2013157693A1/ko
Application granted granted Critical
Publication of KR101279999B1 publication Critical patent/KR101279999B1/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2051Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant in regular structures
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00315Modifications for increasing the reliability for protection in field-effect transistor circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 FPGA에 관한 것으로, 제1 함수 및 제2 함수를 입력받아 미리 저장된 에러검출코드와 생성된 에러검출코드 신호를 비교하여 내부의 일시오류 또는 영구오류를 검출하는 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이를 제공할 수 있다.
본 발명의 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이는 스템셀 및 연산유닛에 포함된 룩업테이블의 재구성이 가능하고, 연산셀에 일시적 오류 또는 영구적 오류가 발생하여도 정상적인 출력신호를 출력하여, 해당 연산셀 및 연산타일이 정상적으로 동작할 수 있다.

Description

오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이{BIO-INSPIRED FAULT-TOLERANT COMPUTATION UNIT AND FIELD PROGRAMMABLE GATE ARRAY INCLUDING THE SAME}
본 발명은 연산 유닛 및 필드 프로그래머블 게이트 어레이에 관한 것으로, 특히 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이에 관한 것이다.
FPGA(Field Programmable Gate Array)는 프로그램이 가능한 논리 블록들의 어레이로 구성되는 집적회로이다.
종래 SRAM 기반의 FPGA는 고성능, 저가격, 재프로그래밍이 가능한 이유로 각광받는 집적회로로 특히 원격 제어 시스템들에 많이 사용되고 있다.
이러한 SRAM 기반의 FPGA는 환경적으로 방사 또는 복사 등의 영향으로 인하여 회로 기능에 심각한 영향을 줄 수 있다. 예를 들면, SSE(Single Event Effect)는 대기에 존재하는 대전입자가 실리콘에 충돌하여 FPGA 시스템 내의 오류를 유발할 수 있다. 또한, SSE에 의하여 FPGA의 CMOS 등으로 구현된 메모리 소자들은 대전된 입자들에 의해 전달되는 에너지의 양에 따라 일시적오류 또는 고착요류가 발생될 수 있다. 일시적오류는 메모리 소자들 내에서 비트 반전이 발생하는 수준인데 반하여, 고착오류(stuck-at faults)는 영구적 결함으로 나타난다. 이러한 환경에서 프로그래밍이 가능한 장치들은 계속적으로 동작하기 위하여 오류허용 또는 자가 치유형 논리 블록들이 필요하다.
본 발명이 해결하고자 하는 과제는 결함 허용 재구성이 가능하고, 연산셀에 오류가 발생하여도 정상적인 출력신호를 출력하여, 해당 연산셀, 연산블록 및 연산타일이 정상적으로 동작하도록 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이를 제공하는 데 있다.
본 발명의 일측면에 따르면, 입력되는 제1 함수를 저장하거나, 상기 제1 함수에 상응하는 제1 에러검출코드를 저장하며, 상기 제1 함수가 입력되면 상기 제1 함수를 라우팅시키는 제1 함수신호 또는 상기 제1 함수의 에러 검출을 위한 제1 에러검출코드를 출력하는 제1 함수/에러검출코드저장부; 입력되는 제2 함수를 저장하거나 상기 제2 함수에 상응하는 제2 에러검출코드를 저장하며, 상기 제2 함수가 입력되면 상기 제2 함수를 라우팅시키는 제2 함수신호 또는 상기 제2 함수의 에러검출을 위한 제2 에러검출코드를 출력하는 제2 함수/에러검출코드저장부; 상기 제1 함수신호, 상기 제1 에러검출코드, 상기 제2 함수신호 및 상기 제2 에러검출코드를 수신하여 상기 제1 함수 또는 상기 제2 함수의 오류 여부를 판단하여 제1 오류신호 및 제2 오류신호를 출력하는 자가검사부; 상기 제1 함수신호, 상기 제2 함수신호, 상기 제1 오류신호, 상기 제2 오류신호 및 스템셀로부터 입력된 스템함수를 연산하여 함수 라우팅 신호 또는 영구에러플래그신호를 출력하는 함수라우터/영구에러표시부; 및 상기 영구에러플래그신호를 라우팅시키는 라우터부를 포함하는 오류허용이 가능한 생태모방형 연산유닛을 제공할 수 있다.
또한, 본 발명의 다른 측면에 따르면, 제1 함수 및 제2 함수를 입력받아 미리 저장된 에러검출코드와 생성된 에러검출코드 신호를 비교하여 내부의 일시오류 또는 영구오류를 검출하는 복수의 연산 유닛; 상기 연산 유닛과 연결되며, 상기 연산 유닛에 영구오류가 발생할 경우 상기 영구오류가 발생된 연산 유닛의 기능을 대체하는 적어도 하나의 스템셀; 상기 복수의 연산 유닛과 상기 복수의 스템셀이 배치된 복수의 연산타일; 및 상기 연산타일을 제어하는 오류허용 코어를 포함하는 오류허용이 가능한 생태모방형 필드 프로그래머블 게이트 어레이를 제공할 수 있다.
상기 제1 함수/에러검출코드 저장부는 상기 제1 함수를 저장하는 제1 룩업테이블; 상기 제1 함수에 상응하는 제1 에러검출코드를 미리 저장하며, 상기 제1 함수의 입력시 미리 저장된 상기 제1 에러검출코드를 출력하는 제2 룩업테이블; 및 상기 제1 룩업테이블에서 출력되는 신호, 상기 제1 함수의 최상위 비트 및 상기 제2 룩업테이블에서 출력되는 신호를 연산하여 상기 제1 함수신호를 출력하는 제1 다중화부를 포함할 수 있다.
상기 제2 함수/에러검출코드 저장부는 상기 제2 함수를 저장하는 제3 룩업테이블; 상기 제2 에러검출코드를 미리 저장하며, 상기 제2 함수 입력시 미리 저장된 상기 제2 에러검출코드를 출력하는 제4 룩업테이블; 및 상기 제3 룩업테이블에서 출력되는 신호, 상기 제2 함수의 최상위 비트 및 상기 제4 룩업테이블에서 출력되는 신호를 연산하여 상기 제2 함수신호를 출력하는 제2 다중화부를 포함할 수 있다.
상기 자가검사부는 상기 제1 및 제2 함수신호를 연산하여 상기 제1 함수의 동작 또는 단방향 오류발생을 검출하기 위한 제1 에러발생코드 및 상기 제2 함수의 동작 또는 단방향 오류발생을 검출하기 위한 제2 에러발생코드 생성하는 에러검출코드 생성부; 및 상기 제1 에러검출코드, 상기 제2 에러검출코드, 상기 제1 에러발생코드 및 상기 제2 에러발생코드를 연산하여 상기 제1 및 제2 함수 각각의 에러발생을 판정하는 제1 오류신호 및 제2 오류신호를 생성하는 오류검사부를 포함할 수 있다.
상기 에러검출코드생성부는 상기 제1 에러발생코드를 생성하기 위하여 상기 제1 함수신호를 반전시켜 출력하는 제1 인버터; 및 상기 제2 에러발생코드를 생성하기 위하여 상기 제2 함수신호를 반전시켜 출력하는 제2 인버터를 포함할 수 있다.
상기 오류검사부는 상기 제1 에러검출코드 및 상기 제1 에러발생코드를 배타적 OR 연산하여 상기 제1 오류신호로 출력하는 제1 XOR 연산부; 및 상기 제2 에러검출코드 및 상기 제2 에러발생코드를 배타적 OR 연산하여 상기 제2 오류신호로 출력하는 제2 XOR 연산부를 포함할 수 있다.
상기 함수라우터/영구에러표시부는 상기 제1 및 제2 오류신호, 상기 제1 및 제2 함수신호 및 상기 스템함수가 입력되어 상기 제1 함수 또는 상기 제2 함수가 오류가 없을 경우 오류가 없는 함수를 라우팅시키는 함수라우터; 및 상기 제1 및 제2 오류신호 모두 에러 발생시 상기 영구에러플래그신호를 출력하는 영구에러표시부를 포함할 수 있다.
상기 함수라우터는 상기 제1 오류신호 및 상기 제2 오류신호 중 상기 제1 오류신호가 "0(비오류함수)"일 경우, 상기 제1 함수신호에 상응하는 신호를 출력하며, 상기 영구에러표시부는 "0"을 출력할 수 있다.
상기 함수라우터는 상기 제1 오류신호가 "1(오류함수)"이고, 상기 제2 오류신호가 "0(비오류함수)"일 경우, 상기 제2 함수신호에 상응하는 신호를 출력하며, 상기 영구에러표시부는 "0"을 출력할 수 있다.
상기 함수라우터는 상기 제1 및 제2 오류신호가 모두 "1(오류함수)"일 경우 상기 스템함수에 상응하는 신호를 출력하며, 상기 영구에러표시부는 상기 영구에러플래그 신호로 "1"을 출력할 수 있다.
상기 함수라우터는 다중화부로 구현되며, 상기 영구에러표시부는 AND 연산부로 구현될 수 있다.
상기 제1 함수는 로직으로 표현되는 임의의 불리언 함수이며, 상기 제2 함수는 상기 제1 함수를 대체하는 함수일 수 있다.
상기 제1 함수의 비트 개수에 따라 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제1 함수에 대응하는 상기 제1 에러검출코드를 저장하는 적어도 하나의 룩업테이블이 구비된 제1 저장부; 및 상기 제2 함수의 비트 개수에 따라 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제2 함수에 대응하는 상기 제2 에러검출코드를 저장하는 적어도 하나의 룩업테이블이 구비된 제2 저장부를 더 포함할 수 있다.
상기 제1 및 제2 함수가 k 비트일 경우 상기 제1 및 제2 함수/에러검출코드저장부는 각각 상기 제1 함수 및 상기 제2 함수를 저장하며, 상기 제1 및 제2 저장부에 각각에 상기 제1 및 제2 에러검출코드가 미리 저장될 수 있다.
상기 제1 및 제2 함수가 k-1 비트 이하일 경우 상기 제1 및 제2 저장부는 상기 영구에러신호를 라우팅할 수 있다.
상기 연산 유닛 또는 필드 프로그래머블 게이트 어레이는 상기 제1 및 제2 함수/에러검출코드저장부, 상기 제1 및 제2 저장부에서 출력되는 신호를 상기 자가검사부 및 상기 함수라우터/영구에러표시부에 제공하는 스위치부를 포함할 수 있다.
상기 연산 유닛 또는 필드 프로그래머블 게이트 어레이는 상기 자가검사부, 상기 함수라우터/영구에러표시부, 라우터부 및 상기 스위치부는 CMOS 레벨에서 경화되며, 상기 스위치부는 프로그래밍이 가능한 SRAM를 포함할 수 있다.
상기 제1 및 제2 함수/에러검출코드저장부는 재구성이 가능한 룩업테이블을 포함할 수 있다.
상기 스템셀은 상기 연산타일 내의 동일 라인에 행방향 또는 열방향으로 배치되며, 서로 인접한 연산타일의 스템셀들은 서로 다른 라인에 배치될 수 있다.
상기 코어는 상기 복수의 연산타일을 영역별로 구분하여 제어할 수 있다.
본 발명의 일 실시 예에 따른 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이는 스템셀 및 연산유닛에 포함된 룩업테이블의 재구성이 가능하고, 연산셀에 일시적 오류 또는 영구적 오류가 발생하여도 정상적인 출력신호를 출력하여, 해당 연산셀 및 연산타일이 정상적으로 동작할 수 있다.
또한, 본 발명의 일 실시 예에 따른 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이는 코어에서 연산타일의 영역별로 구분하여 제어함으로써 효율을 높일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 오류허용이 가능한 생태모방형 연산 유닛을 포함하는 FPGA를 도시한 블록도.
도 2는 도 1에 도시된 연산셀의 신호 입출력 관계를 도시한 블록도.
도 3은 도 1에 도시된 연산셀의 기능부를 개략적으로 도시한 블록도.
도 4는 도 3에 도시된 제1 함수/에러검출코드저장부의 일 예를 도시한 도면.
도 5는 도 3에 도시된 제2 함수/에러검출코드저장부의 일 예를 도시한 도면.
도 6은 도 3에 도시된 제1 저장부를 도시한 블록도.
도 7은 도 3에 도시된 자가검사부의 일 실시 예를 도시한 블록도.
도 8은 에러검출코드생성부의 일 실시예를 도시한 블록도.
도 9는 에러검출코드생성부의 진리표.
도 10은 오류검사부의 일실시예를 도시한 블록도.
도 11은 도 10에 도시된 오류검사부의 진리표.
도 12는 도 3에 도시된 함수라우터/영구에러발생표시부을 도시한 블록도.
도 13은 도 12에 도시된 함수라우터/영구에러발생표시부의 진리표.
도 14는 도 3에 도시된 스위치부를 도시한 블록도.
이하, 도면을 참조한 본 발명의 설명은 특정한 실시 형태에 대해 한정되지 않으며, 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있다. 또한, 이하에서 설명하는 내용은 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용되는 용어로서, 그 자체에 의미가 한정되지 아니하며, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 명세서 전체에 걸쳐 사용되는 동일한 참조번호는 동일한 구성요소를 나타낸다.
본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 이하에서 기재되는 "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로 해석되어야 하며, 하나 또는 그 이상의 다른 특징들이나, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시 예를 첨부한 도 1 내지 도 14를 참조하여 상세히 설명하기로 한다.
본 발명의 실시 예에 따른 오류허용이 가능한 생태모방형 FPGA는 오류허용 재구성이 가능하고, 연산셀에 오류가 발생하여도 정상적인 출력신호를 출력하여, 해당 연산셀, 연산블록 및 연산타일이 정상적으로 동작할 수 있다. 이를 위하여, FPGA는 입력함수들에 대하여 자가 검사를 통해 단방향 오류를 식별하여 오류를 허용할 수 있도록 한다.
이하의 설명에서 사용하는 입력함수는 임의의 불리언 함수(Boolean function)으로 정의할 수 있다. 또한, 제1 함수는 임의의 불리언 함수로 정의되며, 제2 함수는 제1 함수의 오류 발생 시 이를 대체할 함수로 제1 함수의 룩업테이블과 동일한 룩업테이블로 표현되는 함수이다.
도 1은 본 발명의 일 실시 예에 따른 오류허용이 가능한 생태모방형 FPGA의 일 예를 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 오류허용이 가능한 생태모방형 FPGA는 스템셀(20), 연산셀(40), 연산블록(50), 연산타일(10) 및 코어(30)를 포함할 수 있다.
구체적으로, 스템셀(20)은 프로그래밍 정보가 입력되거나 저장되지 않은 빈 영역으로 외부 사용자로부터 FPGA에 기록될 소프트웨어 또는 프로그램을 입력받을 수 있다. 스템셀(20)은 연산블록(50) 내의 연산셀(40)들과 개별적으로 연결되며, 스템함수(Fn_stem)를 제공할 수 있다. 여기서, 스템함수(Fn_stem)는 외부에서 스템셀(20)로 입력된 입력데이터들이 내부적으로 재가공 또는 재배열된 함수일 수 있다.
스템셀(20)은 연산타일(10) 내에 행방향 또는 열방향으로 배치될 수 있다. 스템셀(20)은 단일 연산타일(10) 내에서 동일 라인에 배치될 수 있다. 스템셀(20)들은 연산타일(10)의 최외곽 연산셀들이 서로 연결이 가능하도록 인접한 연산타일(10)의 스템셀들과 다른 라인에 배치된다. 예를 들면, 도 1에 도시된 바와 같이, 좌측 영역에 배치된 "CTO"와 "CT1"에 포함된 스템셀(20)들은 서로 다른 라인에 배치된다.
스템셀(20)은 동일 연산블록(50)에 배치된 연산셀(40)에 영구에러가 발생할 경우 해당 연산셀(40)을 대체할 수 있다. 이에 따라, 임의의 연산셀(40)에 영구에러가 발생되어도 해당 연산블록(50) 또는 연산타일(10) 전체의 에러로 인식되지 않도록 한다.
연산셀(40)은 복수의 룩업 테이블을 포함하여 구성됨으로써 재구성이 가능하도록 설계된다. 또한, 연산셀(40)은 입력 데이터(이하, 입력함수)의 오류를 자가 검출하여 연산셀의 일시적에러(Transient Error) 또는 영구적에러(Permanent Error)를 검출할 수 있도록 구성될 수 있다. 예를 들면, 연산셀(40)은 자가검사부를 구비하여 입력함수의 에러를 검출하여 연산셀(40) 내의 일시적 오류 및 영구적 오류를 검사할 수 있다.
또한, 연산셀(40)은 라우터부를 구비하여 입력함수, 오류 정보 등을 이웃하는 연산셀(40)에 라우팅할 수 있다. 연산셀(40)에 관련된 구체적인 내용은 이하 도 2 내지 도 14를 참조하여 다시 설명하기로 한다.
연산블록(50)은 적어도 하나의 스템셀(20)과 복수의 연산셀(40)을 포함할 수 있다. 도 1에 도시된 CT0를 예를 들면, 연산블록(50)은 연산타일(10)의 세로방향으로 하나의 스템셀(20)과 스템셀(20) 상하 방향으로 각각 4개의 연산셀(40)을 포함할 수 있다. CT1의 경우 최상 1개의 스템셀(20)과 아래방향의 8개의 연산셀(40)을 포함할 수 있다.
연산타일(10)은 복수의 연산블록(50)으로 구성될 수 있다. 여기서, 연산타일(10)은 개별적으로 프로그램을 저장할 수 있으며, 오류허용 코어(30)에 의해 제어될 수 있다.
연산타일(10)은 어느 연산타일(10)에서 영구적 오류를 가는지 식별하기 위하여 위치별로 고유 ID를 가질 수 있다. 도 1에 도시된 바와 같이, 연산타일(10)은 좌측의 CT0 ~ CT21까지의 고유 ID와 우측 CT0 ~ CT21까지의 고유 아이디를 가질 수 있다.
또한, 상하로 구분된 영역에 각각 배치된 연산타일(10)에 고유 아이디가 부여될 수 있다.
또한, 상기와 같이 2개로 구분된 영역별로 구분되는 경우 이외에, 4개의 영역 별로 구분되어 고유 아이디가 부여될 수도 있다. 이는 FPGA 설계시 고려하여 결정될 수 있으며, 상기 2개영역 또는 4개영역 이외에 다른 다양한 영역으로 구분되어 영역별로 위치한 연산타일(10)에 고유 아이디가 부여될 수 있다.
오류허용코어(30)는 FPGA의 중앙부에 배치될 수 있다. 오류허용코어(30)는 연산타일(10)을 제어할 수 있다. 상기에서 설명한 바와 같이, 오류허용코어(30)는 FPGA의 구분된 영역별로 제어가 가능하며, 제어효율을 높일 수 있다.
도 2는 도 1에 도시된 연산셀의 신호 입출력 관계를 도시한 블록도이고 도 3은 도 1에 도시된 연산셀의 기능부를 개략적으로 도시한 블록도이다.
도 2 및 도 3을 참조하면, 본 발명에 따른 연산셀은 제1 함수/에러검출코드저장부(100), 제2 함수/에러검출코드저장부(200), 제1 저장부(300), 제2 저장부(400), 자가검사부(500), 함수라우터/영구에러발생표시부(600), 라우터부(700) 및 스위치부(800)를 포함할 수 있다.
구체적으로, 제1 함수/에러검출코드저장부(100)는 복수의 입력단을 통해 제1 함수가 입력되면 제1 함수를 라우팅시키는 제1 함수신호(Fn_O_out) 또는 제1 함수에 에러발생 정보를 알리는 제1 에러검출신호(PS_EDC_1)를 출력할 수 있다.
이를 위하여, 제1 함수/에러검출코드저장부(100)는 적어도 하나의 룩업테이블(LUT; Look Up Table)로 구성되며, 룩업테이블은 2k-1×1의 함수를 저장할 수 있다.
제1 함수/에러검출코드저장부(100)는 제1 함수가 입력되면 저장된 제1 함수 정보와 비교하여 제1 함수신호(Fn_O_out)를 출력할 수 있다. 또한, 제1 함수/에러검출코드저장부(100)는 제1 함수의 에러 검출을 위한 미리 저장된 제1 에러검출코드(Pre-Stored EDC-1)를 출력할 수 있다.
제1 함수/에러검출코드저장부(100)는 입력된 제1 함수가 k-1 비트일 경우 제1 함수신호(Fn_O_out) 및 제1 에러검출코드(PS_EDC_1)를 자가검사부(500)에 제공할 수 있다. 여기서, k 비트는 제1 함수의 비트 개수로 정의할 수 있다.
여기서, 제1 함수신호(Fn_O_out)는 제1 함수를 다른 연산셀(40)로 라우팅시키는 신호이며, 제1 에러검출코드(PS_EDC_1)는 제1 함수의 에러검출을 위한 신호이다.
상기의 실시 예는 제1 함수로 k-1 비트 신호가 입력되는 경우를 예를 들어 설명하고 있다. 그러나 제1 함수/에러검출코드저장부(100)는 제1 함수가 k 비트일 경우 제1 함수/에러검출코드저장부(100)는 그 자체로 제1 함수를 저장하는 저장부로 사용될 수 있다. 이러한 경우는 추후 다시 설명하기로 한다.
제2 함수/에러검출코드저장부(200)는 제2 함수가 입력되면 제2 함수를 라우팅시키는 제2 함수신호(Fn_sp_out) 또는 제2 함수의 에러검출을 위한 제2 에러검출코드(PS_EDC_2)를 출력할 수 있다.
제2 함수/에러검출코드저장부(200)는 적어도 하나의 룩업테이블(LUT; Look Up Table)로 구성되며, 룩업테이블은 2k-1×1의 함수를 저장할 수 있다. 여기서, k은 제2 함수의 입력 비트 개수이다.
제2 함수/에러검출코드저장부(200)는 제2 함수가 입력되면 저장된 제2 함수와 비교하여 제2 함수신호(Fn_sp_out)를 출력할 수 있다. 또한, 제2 함수/에러검출코드저장부(200)는 제2 함수가 입력되면 미리 저장된 제2 에러검출코드(PS_EDC_2)를 출력할 수 있다.
제2 함수/에러검출코드저장부(200)는 입력된 제2 함수가 k 비트일 경우 제2 함수신호(Fn_sp_out) 및 제2 에러검출코드(PS_EDC_2)를 자가검사부(500)에 제공할 수 있다.
여기서, 제2 함수신호(Fn_sp_out)는 제2 함수를 다른 연산셀(40)로 라우팅시키는 신호이며, 제2 에러검출코드(PS_EDC_2)는 제2 함수의 에러검출을 위한 신호이다.
상기의 실시 예는 제2 함수로 k-1 비트 신호가 입력되는 경우를 예를 들어 설명하고 있다. 그러나 제2 함수/에러검출코드저장부(200)는 제2 함수가 k 비트일 경우 제2 함수/에러검출코드저장부(200)는 그 자체로 제2 함수를 저장하는 저장부로 사용될 수 있다. 이러한 경우는 추후 다시 설명하기로 한다.
제1 저장부(300)는 내부 라우터로 이용될 수 있다. 제1 저장부(300)의 기능은 제1 함수에 따라 가변될 수 있다. 예를 들면, 제1 함수가 k-1 비트 이하일 경우 내부 라우터 기능을 수행한다. 그러나, 제1 함수가 k 비트일 경우 제1 저장부(300)는 제1 함수에 상응하는 제1 에러검출코드(PS_EDC_1)를 저장한다.
제1 저장부(300)가 제1 에러검출코드(PS_EDC_1)를 저장하는 경우에는 제1 함수/에러검출코드저장부(100)가 제1 함수를 저장하는 저장부로 사용되는 경우이며 이때, 제1 함수에 상응하는 제1 에러검출코드(PS_EDC_1)가 저장되어야만 하므로 제1 저장부(300)의 기능이 변환될 수 있다.
제2 저장부(400)는 내부 라우터로 이용될 수 있다. 제2 저장부(400)의 기능은 제2 함수에 따라 가변될 수 있다. 예를 들면, 제2 함수가 k-1 비트 이하일 경우 내부 라우터 기능을 수행할 수 있다. 그러나, 제2 함수가 k 비트일 경우 제2 저장부는 제2 함수에 상응하는 제2 에러검출코드(PS_EDC_2)를 저장한다.
제2 저장부(400)가 제2 에러검출코드(PS_EDC_2)를 저장하는 경우에는 제2 함수/에러검출코드저장부(200)가 제2 함수를 저장하는 저장부로 사용되는 경우이며 이때, 제2 함수에 상응하는 제2 에러검출코드가 저장되어야만 하므로 제2 저장부(400)의 기능이 변환될 수 있다.
자가검사부(500)는 제1 함수와 제2 함수의 동작 중 에러검출코드를 생성하며, 기 저장된 에러검출코드와 생성된 에러검출코드를 비교하여 셀의 오류 여부를 확인할 수 있다. 자가검사부(500)는 해당 연산셀(40)의 일시오류 또는 영구오류를 검출할 수 있다.
자가검사부(500)는 오류 정보를 함수라우터/영구에러발생표시부(600)에 제공할 수 있다.
함수라우터/영구에러발생표시부(600)는 오류신호가 있을 경우와 오류신호가 없을 경우 각각에 대하여 연산 결과를 출력할 수 있다. 예를 들면, 함수라우터/영구에러발생표시부(600)는 비오류신호가 검출될 경우 라우터로 동작하여 함수를 라우팅할 수 있다. 또한, 함수라우터/영구에러발생표시부(600)는 오류신호가 있을 경우 에러 플래그를 생성한다.
라우터부(700)는 연산셀(40) 또는 자신과 인접한 연산셀로부터의 영구에러플래그를 라우팅할 수 있다.
스위치부(800)는 제1 함수/에러검출코드저장부(100), 제2 함수/에러검출코드저장부(200), 제1 저장부(300), 제2 저장부(400)에서 출력된 신호를 적절하게 자가검사부(500), 함수라우터/영구에러발생표시부(600) 및 라우터부(700)에 제공할 수 있다.
스위치부(800)는 CMOS 레벨에서 제조될 수 있으며, 자가검사부(500), 함수라우터/영구에러발생표시부(600) 및 라우터부(700)에 적절한 신호들을 분배할 수 있다. 스위치부(800)는 자가검사부(500), 함수라우터/영구에러발생표시부(600) 및 라우터부(700)가 CMOS 레벨에서 제조되는 경우에 필수적으로 사용될 수 있다.
본 발명의 실시 예에 따른 연산셀(40)은 도 3 도시된 제1 함수/에러검출코드저장부(100), 제2 함수/에러검출코드저장부(200), 제1 저장부(300) 및 제2 저장부(400)는 재구성이 가능한 k-1 입력 룩업테이블을 포함할 수 있으며, 자가검사부(500), 라우팅함수/영구에러발생표시부(600) 및 라우터부(700)는 CMOS 레벨에서 경화되거나 기존에 사용되는 FPGA의 k-1 입력 룩업테이블에 구현될 수 있다.
이하, 도 4 내지 도 14를 참조하여 각 구성부들의 실시 예를 설명하기로 한다.
도 4는 도 3에 도시된 제1 함수/에러검출코드저장부의 일 예를 도시한 도면이다.
도 4를 참조하면, 제1 함수/에러검출코드저장부(100)는 k-1 비트의 제1 함수 입력시 제1 함수에 상응하는 제1 함수신호(Fn_O_out) 또는 제1 에러검출코드(PS_EDC_1)를 출력할 수 있다. 이를 위하여, 제1 함수/에러검출코드저장부(100)는 2개의 룩업테이블(110, 130) 및 제1 다중화부(120)를 포함할 수 있다.
제1 룩업테이블(110)은 I0~I4 포트를 통해 제1 함수가 입력되면 제1 룩업테이블(110)에 저장된 함수를 출력할 수 있다.
제2 룩업테이블(130)은 제1 함수에 상응하는 제1 에러검출코드(PS_EDC_1)를 미리 저장하고, I0~I4 포트를 통해 입력되는 제1 함수의 에러를 검출하기 위한 제1 에러검출코드(PS_EDC_1)를 출력한다.
제1 다중화부(120)는 I5포트를 통해 입력된 제1 함수의 최상위 비트와 제1 룩업테이블(110)에서 출력된 신호 및 제2 룩업테이블(130)에서 출력된 신호를 연산하여 제1 함수신호(Fn_O_out)를 출력한다.
한편, 제1 함수/에러검출코드저장부(100)는 제1 함수가 k 비트일 경우,제1 룩업테이블(110) 및 제2 룩업테이블(120)이 제1 함수를 저장하는 함수 저장부로 사용될 수 있으며, 이때, 제1 함수/에러검출코드저장부(100)는 2k 개의 함수를 저장할 수 있다.
도 5는 도 3에 도시된 제2 함수/에러검출코드저장부의 일 예를 도시한 도면이다.
도 5를 참조하면, 제2 함수/에러검출코드저장부(200)는 k-1 비트의 제2 함수 입력시 제2 함수에 상응하는 제2 함수신호(Fn_Sp_out) 또는 제2 에러검출코드(PS_EDC_2)를 출력할 수 있다. 이를 위하여, 제2 함수/에러검출코드저장부(200)는 2개의 룩업테이블(210, 230) 및 제2 다중화부(220)를 포함할 수 있다.
제2 함수/에러검출코드저장부(200)는 도 4에 도시된 제2 함수/에러검출코드저장부(200)와 동일한 구조로 형성될 수 있다.
제3 룩업테이블(210)은 I0~I4 포트를 통해 제2 함수가 입력되면 제3 룩업테이블(210)에 저장된 값을 출력할 수 있다.
제4 룩업테이블(230)은 제2 함수에 상응하는 제2 에러검출코드(PS_EDC_2)를 미리 저장하고, I0~I4 포트를 통해 입력되는 제2 함수의 에러를 검출하기 위한 제2 에러검출코드(PS_EDC_2)를 출력한다.
제2 다중화부(220)는 I5포트를 통해 입력된 제2 함수의 최상위 비트와 제3 룩업테이블(210)에서 출력된 신호 및 제4 룩업테이블(230)에서 출력된 신호를 연산하여 제2 함수신호(Fn_sp_out)를 출력한다.
한편, 제2 함수/에러검출코드저장부(200)는 제2 함수가 k 비트일 경우,제3 룩업테이블(210) 및 제4 룩업테이블(230)이 제2 함수를 저장하는 함수 저장부로 사용될 수 있으며, 이때, 제2 함수/에러검출코드저장부(200)는 2k 개의 함수를 저장할 수 있다.
도 6은 도 3에 도시된 제1 저장부를 도시한 블록도이다.
도 6을 참조하면, 제1 저장부(300)는 2개의 룩업테이블(310, 320)과 하나의 다중화부(330)를 포함할 수 있다.
제1 저장부(300)는 2가지 기능을 수행할 수 있다. 첫번째는 타일내 라우터로서의 기능이며, 두 번째는 에러검출코드를 저장하고 이를 출력하는 기능이다.
제1 저장부(300)는 타일 라우터로서 기능을 수행하는 데 있어서, k-1 비트 이하의 제1 함수가 입력될 경우 타일 라우터 기능을 수행할 수 있다. 즉, 제1 함수/에러검출코드저장부(100)에 k-1비트 이하의 제1 함수가 입력될 경우, 제1 저장부(300)는 k-1 비트의 타일 라우팅 신호를 수신하여 영구에러신호를 라우팅하기 위한 제1 라우팅 신호(Rout1)를 출력할 수 있다.
또한, 제1 저장부(300)는 k 비트의 제1 함수가 사용될 경우에 에러검출코드를 저장하고 출력하는 기능을 수행할 수 있다. 제1 함수/에러검출코드저장부(100)에 입력되는 함수가 k 비트일 경우 제1 저장부(300)는 이에 상응하는 에러검출코드가 저장될 수 있다. 제1 저장부(300)는 k 비트의 제1 함수가 입력되면 제1 함수의 에러검출을 위하여 미리 저장된 제1 에러검출신호(PS_EDC_1)를 출력할 수 있다.
한편, 본 발명의 실시 예에 따르면, 제1 저장부(300)와 동일한 제2 저장부가 추가될 수 있다. 제2 저장부는 도 6의 제1 저장부와 동일한 구성을 포함할 수 있다. 다만, 제2 저장부는 도 3의 제2 함수/에러검출코드저장부(200)와 연동되어 제2 함수의 비트수에 따라 제2 함수의 영구에러신호를 라우팅하거나, 제2 함수에 상응하여 미리 저장된 제2 에러검출신호를 신호를 출력할 수 있다.
도 7은 도 3에 도시된 자가검사부의 일 실시 예를 도시한 블록도이다.
도 7을 참조하면, 자가검사부(500)는 제1 함수와 제2 함수 각각에 상응하는 제1 오류신호(Faulty_O) 및 제2 오류신호(Fault_Sp)를 출력할 수 있다.
이를 위하여, 자가검사부(500)는 에러검출코드생성부(510) 및 오류검사부(550)를 포함할 수 있다.
에러검출코드생성부(510)는 제1 함수신호(Fn_O_out)와 제2 함수신호(Fn_sp_out)가 입력되면, 제1 및 제2 함수의 동작 중 단방향오류발생을 검출하기 위한 제1 에러발생코드(EDC_G_O) 및 제2 에러발생코드(EDC_G_Sp)를 출력할 수 있다. 에러검출코드생성부(510)는 제1 에러발생코드(EDC_G_O) 및 제2 에러발생코드(EDC_G_Sp)를 오류검사부(550)에 제공한다.
오류검사부(550)는 제1 에러발생코드(EDC_G_O), 제2 에러발생코드(EDC_G_Sp), 제1 에러검출코드(PS_EDC_1) 및 제2 에러검출코드(PS_EDC_2)를 입력받아 내부 연산을 수행하여 제1 오류신호(Faulty_O) 및 제2 오류신호(Faulty_Sp)를 출력할 수 있다.
이하, 도 8 내지 도 11을 참조하여 자가검사부의 구체적인 예에 대하여 설명하기로 한다.
도 8은 에러검출코드생성부의 일 실시예를 도시한 블록도이고, 도 9는 에러검출코드생성부의 진리표를 도시한 도면이며, 도 10은 오류검사부의 일실시예를 도시한 블록도이고, 도 11은 도10에 도시된 오류검사부의 진리표를 도시한 도면이다.
도 8 및 도 9를 참조하면, 에러검출코드생성부(510)는 제1 인버터(520) 및 제2 인버터(530)를 구비할 수 있다. 에러검출코드생성부(510)는 제1 함수의 동작 중 단방향 오류발생을 검출하기 위하여 제1 에러발생코드(EDC_G_O)를 생성하고, 제2 함수의 동작 중 단방향 오류발생을 검출하기 위하여 제2 에러발생코드(EDC_G_Sp)를 생성하여 출력할 수 있다.
제1 인버터(520)는 수학식 1과 같이 입력된 제1 함수신호(Fn_O_out)를 반전시켜 제1 에러발생코드(EDC_G_O)를 생성할 수 있다.
Figure 112012031244067-pat00001
제2 인버터(530)는 수학식 2와 같이 입력된 제2 함수신호(Fn_sp_out)를 반전시켜 제2 에러발생코드(EDC_G_Sp)를 생성할 수 있다.
Figure 112012031244067-pat00002
에러검출코드생성부(510)는 제1 함수신호(Fn_O_out)와 제2 함수신호(Fn_sp_out)가 모두 0이면, 제1 인버터(520)에서 1을 출력하고, 제2 인버터(530)에서 1을 출력한다.
또한, 에러검출코드생성부(510)는 제1 함수신호(Fn_O_out)가 0이고, 제2 함수신호(Fn_sp_out)가 1이면, 제1 인버터(520)에서 1을 출력하고, 제2 인버터(530)에서 0을 출력한다.
또한, 에러검출코드생성부(510)는 제1 함수신호(Fn_O_out)가 1이고, 제2 함수신호(Fn_sp_out)가 0이면, 제1 인버터(520)에서 0을 출력하고, 제2 인버터(530)에서 1을 출력한다.
또한, 에러검출코드생성부(510)는 제1 함수신호(Fn_O_out)와 제2 함수신호(Fn_sp_out)가 각각 1이면, 제1 인버터(520)에서 0, 제2 인버터(530)에서 0을 출력한다.
상기와 같이, 에러검출코드생성부(510)의 제1 인버터(520)는 제1 함수신호(Fn_O_out)를 반전시켜 제1 에러발생코드(EDC_G_O)를 출력할 수 있고, 제2 인버터(530)는 제2 함수신호(Fn_sp_out)를 반전시켜 제2 에러발생코드(EDC_G_Sp)를 출력할 수 있다.
여기서, 제1 에러발생코드(EDC_G_O)와 제2 에러발생코드(EDC_G_Sp)는 오류검사부(550)에 제공된다.
도 10 및 도 11을 참조하면, 오류검사부(550)는 2개의 XOR 연산부(560, 570)를 포함할 수 있다.
오류검사부(550)는 제1 에러발생코드(EDC_G_O), 제2 에러발생코드(EDC_G_Sp), 제1 에러검출코드(PS_EDC_1) 및 제2 에러검출코드(PS_EDC_2)를 입력받아 제1 오류신호(Faulty_O) 및 제2 오류신호(Faulty_Sp)를 출력할 수 있다. 여기서, 제1 오류신호(Faulty_O)는 제1 함수의 오류를 나타내는 코드 신호이며, 제2 오류신호(Faulty_Sp)는 제2 함수의 오류를 나타내는 코드 신호일 수 있다.
제1 XOR 연산부(560)는 상기 4개의 입력 신호를 수신하여 XOR 연산한 후 제1 오류신호(Faulty_O)를 출력할 수 있으며, 제2 XOR 연산부(570)는 상기 4개의 입력 신호를 수신하여 XOR 연산한 후 제2 오류신호(Faulty_Sp)를 출력할 수 있다.
이때, 제1 XOR 연산부(560)는 제1 함수와 관계된 신호들에 의해 제1 오류신호(Faulty_O)를 출력할 수 있다.
제1 XOR 연산부(560)는 수학식 3과 같이 배타적 OR 연산을 통해 출력단(O1)으로 제1 오류신호(Faulty_O)를 출력할 수 있다.
Figure 112012031244067-pat00003
제1 XOR 게이트(560)의 I2 및 I3 입력단으로 입력되는 제1 에러발생코드(EDC_G_O) 및 제1 에러검출신호(PS_EDC_1)에 의해 출력값이 0 또는 1로 출력될 수 있다. 도 11에서와 같이, I2 및 I3 입력단으로 입력되는 신호가 모두 0 또는 1일 경우에는 출력단으로 0이 출력될 수 있다. 그러나 I2 및 I3 입력단으로 입력되는 신호가 서로 다를 경우에는 출력단으로 1이 출력된다.
이에 따라, 제1 XOR 연산부(560)는 제1 함수의 오류 여부를 검출할 수 있다.
제2 XOR 연산부(570)는 상기 4개의 입력 신호를 수신하여 XOR 연산한 후 제2 오류신호(Faulty_Sp)를 출력할 수 있다.
제2 XOR 연산부(570)는 수학식 4와 같이, 제2 함수와 관계된 신호들에 의해 오류신호가 출력될 수 있다.
Figure 112012031244067-pat00004
즉, 제2 XOR 연산부(570)의 I0 및 I1 입력단으로 입력되는 제2 에러발생코드(EDC_G_Sp) 및 제2 에러검출코드(PS_EDC_2)에 의해 출력값이 0 또는 1로 출력될 수 있다. 도 11의 진리표 및 수학식 4와 같이, I0 및 I1 입력단으로 입력되는 신호가 모두 0 또는 1일 경우에는 출력단으로 0이 출력될 수 있다. 그러나 I0 및 I1 입력단으로 입력되는 신호가 서로 다를 경우에는 출력단으로 1이 출력된다.
이에 따라, 제2 XOR 연산부(570)에서 제2 함수 오류에 대한 제2 오류신호(Faulty_Sp)를 출력하여 함수라우터/영구에러발생표시부(600)에 제공할 수 있다.
상술한 오류검사부(550)는 에러발생코드와 에러검출코드를 비교하여 일치하지 않을 경우 제1 함수 또는 제2 함수 중 어느 하나에 오류가 발생한 것으로 판단할 수 있다. 이에 따라, 실시간으로 입력되는 함수를 통해 연산셀 내부의 일시적 오류 또는 영구 오류의 검출이 가능하다.
도 12는 도 3에 도시된 함수라우터/영구에러발생표시부을 도시한 블록도이고, 도 13은 도 12에 도시된 함수라우터/영구에러발생표시부의 진리표이다.
도 12 및 도 13을 참조하면, 함수라우터/영구에러발생표시부(600)는 자가검사부(500), 제1 함수/에러검출코드저장부(100), 제2 함수/에러검출코드저장부(200) 및 스템셀(20)로부터 입력된 신호들을 통해 비오류함수(오류가 없는 제1 함수 또는 제2 함수)를 라우팅하는 함수 라우팅 신호(Fn_Out)를 출력하거나 또는 영구에러플래그신호(PE_Out)를 출력할 수 있다.
함수라우터/영구에러발생표시부(600)는 제1 함수신호(Fn_O_out), 제2 함수신호(Fn_sp_out), 제1 오류신호(Faulty_O), 제2 오류신호(Faulty_Sp) 및 스템함수(Fn_Stem)를 수신한다. 함수라우터/영구에러발생표시부(600)는 입력단 I0로 스템함수(Fn_Stem)를 수신하고, 입력단 I1로 제2 함수신호(Fn_sp_out), 입력단 I2로 제1 함수신호(Fn_O_out), 입력단 S1로 제2 오류신호(Faulty_Sp), 입력단 S2로 제1 오류신호(Faulty_O)를 수신한다. 함수라우터/영구에러발생표시부(600)는 입력된 신호들을 연산하여 연산셀(40)에 오류가 없을 경우 함수 라우팅 신호(Fn_Out)를 출력하고, 연산셀(40)에 영구 오류가 발생된 경우에는 영구에러플래그신호(PE_Out)를 출력한다.
이를 위하여, 함수라우터/영구에러발생표시부(600)는 함수 라우팅 신호(Fn_Out)를 출력하기 위한 함수라우터(610)와 영구에러플래그신호(PE_Out)를 출력하는 영구에러발생표시부(620)를 구비할 수 있다.
함수라우터(610)는 MUX로 구현될 수 있으며, 영구에러발생표시부(620)는 AND 게이트로 구현될 수 있다.
함수라우터(610)는 제1 함수신호(Fn_O_out), 제2 함수신호(Fn_sp_out), 제1 오류신호(Faulty_O), 제2 오류신호(Faulty_Sp) 및 스템함수(Fn_Stem)를 수신하여 수학식 5에 도시된 연산을 수행하여 0 또는 1의 함수 라우팅 신호(Fn_Out)를 출력할 수 있다. 여기서 함수라우터(610)로부터 0이 출력되면 제1 함수를 연산셀(40) 외부로 라우팅하는 것이며, 1이 출력되면 제2 함수를 라우팅하도록 한다.
Figure 112012031244067-pat00005
Figure 112012031244067-pat00006
수학식 5와 도 13의 진리표를 살펴보면, 제1 함수 및 제2 함수 모두 오류가 아닐 경우(S0=0, S1=0), 함수라우터(610)는 I2로 입력되는 제1 함수신호(Fn_O-out)에 상응하여 제1 함수를 연산셀(40) 외부로 라우팅하는 함수 라우팅 신호(Fn_Out)로 0을 출력한다.
또한, 제1 함수 및 제2 함수 중 제2 함수만 오류일 경우(S0=0, S1=1), 함수 라우터(610)는 I0로 입력되는 제2 함수신호(Fn_Sp_out)에 상응하여 제2 함수를 연산셀(40) 외부로 라우팅하는 함수 라우팅 신호(Fn_Out)로 0을 출력한다.
여기서, 영구에러발생표시부(620)에서는 영구에러가 발생되지 않은 정보를 나타내는 0을 출력한다.
한편, 제1 함수와 제2 함수가 모두 오류일 경우(S0=1, S1=1) 함수라우터(610)는 수학식 5 및 도 13의 진리표에 따라 함수 라우팅 신호(Fn_Out)로 스템함수(Fn_Stem)에 상응하는 신호를 연산셀(40) 외부로 라우팅하는 함수 라우팅 신호(Fn_Out)를 출력한다.
이때, 영구에러발생표시부(620)는 수학식 6 및 도 13에 도시된 바와 같이 해당 연산셀에 영구에러가 발생된 정보를 알리는 1을 출력한다.
도 14는 도 3에 도시된 스위치부를 도시한 블록도이다.
도 14를 참조하면, 스위치부(800)는 연산셀의 내부 신호들을 라우팅할 수 있다. 스위치부(800)는 다수의 CMOS 기반의 스위치 블록들(810 내지 830)을 포함할 수 있다.
제1 스위치 블록(810)은 제1 함수/에러검출코드저장부(100) 및 제2 함수/에러검출코드저장부(200)에서 출력된 신호를 오류검사부(550)에 제공하도록 스위칭 될 수 있다.
제2 스위치 블록(820)은 제1 저장부(300) 및 제2 저장부(400)에서 출력되는 신호를 오류검사부(550)에 제공하도록 스위칭될 수 있다.
제3 스위치 블록(830)은 제1 저장부(300) 및 제2 저장부(400)에서 출력되는 신호를 라우터부(700)에 제공하도록 스위칭될 수 있다.
예를들면, k-1 입력 함수가 구성될 때, 미리 생성된 에러검출코드들(PS_EDC_1,2)은 제1 함수/에러검출코드저장부(100) 및 제2 함수/에러검출코드저장부(200)에 각각 저장되며, 이때의 제1 및 제3 스위치부(800)의 SRAM 각각은 1로 설정되며, 제2 스위치부(800)의 SRAM은 0으로 설정될 수 있다.
반면에, k 입력 함수가 구성될 때, 미리 생성된 에러검출코드들(PS_EDC_1, 2)은 제1 저장부(300) 및 제2 저장부에 각각 저장될 수 있다. 이러한 경우 제1 스위치부(800)와 제3 스위치부(800)의 SRAM은 0으로 설정되며, 제2 스위치부(800)의 SRAM은 1로 설정될 수 있다.
상술한 바와 같이 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 FPGA는 결함 허용 재구성이 가능하고, 연산셀에 오류가 발생하여도 정상적인 출력신호를 출력하여, 해당 연산셀, 연산블록 및 연산타일이 정상적으로 동작할 수 있다.
또한, 오류허용이 가능한 생태모방형 FPGA는 제1 및 제2 함수/에러검출코드 저장부들이 재구성 가능한 룩업테이블로 구성되어 시스템 재구성 중에 연산 유닛의 에러검출이 가능하다.
10: 연산타일
20: 스템셀
30: 코어
40: 연산셀
50: 연산블록
100: 제1 함수/에러검출코드저장부
200: 제2 함수/에러검출코드저장부
300: 제1 저장부
400: 제2 저장부
500: 자가검사부
600: 함수라우터/영구에러발생표시부
700: 라우터부
800: 스위치박스

Claims (34)

  1. 입력되는 제1 함수를 저장하거나, 상기 제1 함수에 상응하는 제1 에러검출코드를 저장하며, 상기 제1 함수가 입력되면 상기 제1 함수를 라우팅시키는 제1 함수신호 또는 상기 제1 함수의 에러 검출을 위한 제1 에러검출코드를 출력하는 제1 함수/에러검출코드저장부;
    입력되는 제2 함수를 저장하거나 상기 제2 함수에 상응하는 제2 에러검출코드를 저장하며, 상기 제2 함수가 입력되면 상기 제2 함수를 라우팅시키는 제2 함수신호 또는 상기 제2 함수의 에러검출을 위한 제2 에러검출코드를 출력하는 제2 함수/에러검출코드저장부;
    상기 제1 함수신호, 상기 제1 에러검출코드, 상기 제2 함수신호 및 상기 제2 에러검출코드를 수신하여 상기 제1 함수 또는 상기 제2 함수의 오류 여부를 판단하여 제1 오류신호 및 제2 오류신호를 출력하는 자가검사부;
    상기 제1 함수신호, 상기 제2 함수신호, 상기 제1 오류신호, 상기 제2 오류신호 및 스템셀로부터 입력된 스템함수를 연산하여 함수 라우팅 신호 또는 영구에러플래그신호를 출력하는 함수라우터/영구에러표시부; 및
    상기 영구에러플래그신호를 라우팅시키는 라우터부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  2. 제 1 항에 있어서,
    상기 제1 함수/에러검출코드 저장부는
    상기 제1 함수를 저장하는 제1 룩업테이블;
    상기 제1 함수에 상응하는 제1 에러검출코드를 미리 저장하며, 상기 제1 함수의 입력시 미리 저장된 상기 제1 에러검출코드를 출력하는 제2 룩업테이블; 및
    상기 제1 룩업테이블에서 출력되는 신호, 상기 제1 함수의 최상위 비트 및 상기 제2 룩업테이블에서 출력되는 신호를 연산하여 상기 제1 함수신호를 출력하는 제1 다중화부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  3. 제 1 항에 있어서,
    상기 제2 함수/에러검출코드 저장부는
    상기 제2 함수를 저장하는 제3 룩업테이블;
    상기 제2 에러검출코드를 미리 저장하며, 상기 제2 함수 입력시 미리 저장된 상기 제2 에러검출코드를 출력하는 제4 룩업테이블; 및
    상기 제3 룩업테이블에서 출력되는 신호, 상기 제2 함수의 최상위 비트 및 상기 제4 룩업테이블에서 출력되는 신호를 연산하여 상기 제2 함수신호를 출력하는 제2 다중화부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  4. 제 1 항에 있어서,
    상기 자가검사부는
    상기 제1 및 제2 함수신호를 연산하여 상기 제1 함수의 동작 또는 단방향 오류발생을 검출하기 위한 제1 에러발생코드 및 상기 제2 함수의 동작 또는 단방향 오류발생을 검출하기 위한 제2 에러발생코드 생성하는 에러검출코드 생성부; 및
    상기 제1 에러검출코드, 상기 제2 에러검출코드, 상기 제1 에러발생코드 및 상기 제2 에러발생코드를 연산하여 상기 제1 및 제2 함수 각각의 에러발생을 판정하는 제1 오류신호 및 제2 오류신호를 생성하는 오류검사부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  5. 제 4 항에 있어서,
    상기 에러검출코드생성부는
    상기 제1 에러발생코드를 생성하기 위하여 상기 제1 함수신호를 반전시켜 출력하는 제1 인버터; 및
    상기 제2 에러발생코드를 생성하기 위하여 상기 제2 함수신호를 반전시켜 출력하는 제2 인버터를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  6. 제 4 항에 있어서,
    상기 오류검사부는
    상기 제1 에러검출코드 및 상기 제1 에러발생코드를 배타적 OR 연산하여 상기 제1 오류신호로 출력하는 제1 XOR 연산부; 및
    상기 제2 에러검출코드 및 상기 제2 에러발생코드를 배타적 OR 연산하여 상기 제2 오류신호로 출력하는 제2 XOR 연산부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  7. 제 1 항에 있어서,
    상기 함수라우터/영구에러표시부는
    상기 제1 및 제2 오류신호, 상기 제1 및 제2 함수신호 및 상기 스템함수가 입력되어 상기 제1 함수 또는 상기 제2 함수가 오류가 없을 경우 오류가 없는 함수를 라우팅시키는 함수라우터; 및
    상기 제1 및 제2 오류신호 모두 에러 발생시 상기 영구에러플래그신호를 출력하는 영구에러표시부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  8. 제 7 항에 있어서,
    상기 함수라우터는
    상기 제1 오류신호 및 상기 제2 오류신호 중 상기 제1 오류신호가 "0(비오류함수)"일 경우, 상기 제1 함수신호에 상응하는 신호를 출력하며,
    상기 영구에러표시부는 "0"을 출력하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  9. 제 7 항에 있어서,
    상기 함수라우터는
    상기 제1 오류신호가 "1(오류함수)"이고, 상기 제2 오류신호가 "0(비오류함수)"일 경우, 상기 제2 함수신호에 상응하는 신호를 출력하며,
    상기 영구에러표시부는 "0"을 출력하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  10. 제 7 항에 있어서,
    상기 함수라우터는
    상기 제1 및 제2 오류신호가 모두 "1(오류함수)"일 경우 상기 스템함수에 상응하는 신호를 출력하며,
    상기 영구에러표시부는 상기 영구에러플래그 신호로 "1"을 출력하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  11. 제 7 항에 있어서,
    상기 함수라우터는 다중화부로 구현되며, 상기 영구에러표시부는 AND 연산부로 구현되는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  12. 제 1 항에 있어서,
    상기 제1 함수는 로직으로 표현되는 임의의 불리언 함수이며, 상기 제2 함수는 상기 제1 함수를 대체하는 함수인 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  13. 제 1 항에 있어서,
    상기 제1 함수의 비트 개수에 따라 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제1 함수에 대응하는 상기 제1 에러검출코드를 저장하는 적어도 하나의 룩업테이블이 구비된 제1 저장부; 및
    상기 제2 함수의 비트 개수에 따라 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제2 함수에 대응하는 상기 제2 에러검출코드를 저장하는 적어도 하나의 룩업테이블이 구비된 제2 저장부를 더 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  14. 제 13 항에 있어서,
    상기 제1 및 제2 함수가 k 비트일 경우 상기 제1 및 제2 함수/에러검출코드저장부는 각각 상기 제1 함수 및 상기 제2 함수를 저장하며,
    상기 제1 및 제2 저장부에 각각에 상기 제1 및 제2 에러검출코드가 미리 저장되는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  15. 제 13 항에 있어서,
    상기 제1 및 제2 함수가 k-1 비트 이하일 경우 상기 제1 및 제2 저장부는 상기 영구에러신호를 라우팅하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  16. 제 13 항에 있어서,
    상기 제1 및 제2 함수/에러검출코드저장부, 상기 제1 및 제2 저장부에서 출력되는 신호를 상기 자가검사부 및 상기 함수라우터/영구에러표시부에 제공하는 스위치부를 포함하는 오류허용이 가능한 생태모방형 연산유닛.
  17. 제 16 항에 있어서,
    상기 자가검사부, 상기 함수라우터/영구에러표시부, 라우터부 및 상기 스위치부는 CMOS 레벨에서 경화되며,
    상기 스위치부는 프로그래밍이 가능한 SRAM를 포함하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  18. 제 1 항에 있어서,
    상기 제1 및 제2 함수/에러검출코드저장부는 재구성이 가능한 룩업테이블을 포함하는 것을 특징으로 하는 오류허용이 가능한 생태모방형 연산유닛.
  19. 제1 함수 및 제2 함수를 입력받아 미리 저장된 에러검출코드와 생성된 에러검출코드 신호를 비교하여 내부의 일시오류 또는 영구오류를 검출하는 복수의 연산 유닛;
    상기 연산 유닛과 연결되며, 상기 연산 유닛에 영구오류가 발생할 경우 상기 영구오류가 발생된 연산 유닛의 기능을 대체하는 적어도 하나의 스템셀;
    상기 복수의 연산 유닛과 상기 복수의 스템셀이 배치된 복수의 연산타일; 및
    상기 연산타일을 제어하는 오류허용 코어를 포함하되,
    상기 연산 유닛은
    상기 제1 함수 또는 상기 제1 함수에 상응하는 제1 에러검출코드를 저장하며, 상기 제1 함수가 입력되면 상기 제1 함수를 라우팅시키는 제1 함수신호 또는 상기 제1 함수의 에러 검출을 위한 제1 에러검출코드를 출력하는 제1 함수/에러검출코드저장부;
    상기 제2 함수 또는 상기 제2 함수에 상응하는 제2 에러검출코드를 저장하며, 상기 제2 함수가 입력되면 상기 제2 함수를 라우팅시키는 제2 함수신호 또는 상기 제2 함수의 에러 검출을 위한 제2 에러검출코드를 출력하는 제2 함수/에러검출코드저장부;
    상기 제1 함수신호, 상기 제1 에러검출코드, 상기 제2 함수신호 및 상기 제2 에러검출코드를 수신하여 상기 제1 함수 또는 상기 제2 함수의 오류 여부를 판단하여 제1 오류신호 및 제2 오류신호를 출력하는 자가검사부;
    상기 제1 함수신호, 상기 제2 함수신호, 상기 제1 오류신호, 상기 제2 오류신호 및 스템셀로부터 입력된 스템함수를 연산하여 함수 라우팅 신호 또는 영구에러플래그신호를 출력하는 함수라우터/영구에러표시부; 및
    상기 영구에러플래그신호를 라우팅시키는 라우터부를 포함함하는 필드 프로그래머블 게이트 어레이.
  20. 제 19 항에 있어서,
    상기 스템셀은
    상기 연산타일 내의 동일 라인에 행방향 또는 열방향으로 배치되며, 서로 인접한 연산타일의 스템셀들은 서로 다른 라인에 배치되는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.
  21. 제 19 항에 있어서,
    상기 코어는
    상기 복수의 연산타일을 영역별로 구분하여 제어하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.
  22. 삭제
  23. 제 19 항에 있어서,
    상기 제1 함수/에러검출코드저장부는
    상기 제1 함수를 저장하는 제1 룩업테이블;
    상기 제1 에러검출코드를 미리 저장하며, 상기 제1 함수의 입력시 상기 제1 에러검출코드를 출력하는 제2 룩업테이블; 및
    상기 제1 룩업테이블에서 출력되는 신호, 상기 제1 함수의 최상위 비트 및 상기 제2 룩업테이블에서 출력되는 신호를 연산하여 상기 제1 함수신호를 출력하는 제1 다중화부를 포함하는 필드 프로그래머블 게이트 어레이.
  24. 제 19 항에 있어서,
    상기 제2 함수/에러검출코드저장부는
    상기 제2 함수를 저장하는 제3 룩업테이블;
    상기 제2 에러검출코드를 미리 저장하며, 상기 제2 함수의 입력시 상기 제2 에러검출코드를 출력하는 제4 룩업테이블; 및
    상기 제3 룩업테이블에서 출력되는 신호, 상기 제2 함수의 최상위 비트 및 상기 제4 룩업테이블에서 출력되는 신호를 연산하여 상기 제2 함수신호를 출력하는 제2 다중화부를 포함하는 필드 프로그래머블 게이트 어레이.
  25. 제 19 항에 있어서,
    상기 자가검사부는
    상기 제1 및 제2 함수신호를 연산하여 상기 제1 및 제2 함수의 동작 중 또는 단방향 오류발생을 검출하기 위한 제1 및 제2 에러발생코드를 생성하는 에러검출코드생성부; 및
    상기 제1 에러검출코드, 상기 제2 에러검출코드, 상기 제1 에러발생코드 및 상기 제2 에러발생코드를 연산하여 제1 오류신호 및 제2 오류신호를 생성하는 오류검사부를 포함하는 필드 프로그래머블 게이트 어레이.
  26. 제 25 항에 있어서,
    상기 에러검출코드생성부는
    상기 제1 함수신호를 반전시켜 제1 에러발생코드를 생성하는 제1 인버터; 및 상기 제2 함수신호를 반전시켜 제2 에러발생코드를 생성하는 제2 인버터를 포함하는 필드 프로그래머블 게이트 어레이.
  27. 제 25 항에 있어서,
    상기 오류검사부는
    상기 제1 에러검출코드 및 상기 제1 에러발생코드를 배타적 연산하여 제1 오류신호로 출력하는 제1 XOR 연산부; 및
    상기 제2 에러검출코드 및 상기 제2 에러발생코드를 배타적 연산하여 제2 오류신호로 출력하는 제2 XOR 연산부를 포함하는 필드 프로그래머블 게이트 어레이.
  28. 제 19 항에 있어서,
    상기 함수라우터/영구에러표시부는
    비오류 함수를 라우팅 시키는 함수라우터; 및
    상기 영구에러플래그 신호를 출력하는 영구에러표시부를 더 포함하는 필드 프로그래머블 게이트 어레이.
  29. 제 28 항에 있어서,
    상기 함수라우터는
    상기 제1 오류신호 및 상기 제2 오류신호 중 상기 제1 오류신호가 "0(비오류함수)"일 경우, 상기 제1 함수신호와 동일한 비트를 출력하고,
    상기 제1 오류신호가 "1(오류함수)"이고 상기 제2 오류신호가 "0"일 경우 상기 제2 함수신호와 동일한 비트를 출력하며,
    상기 제1 및 제2 오류신호가 모두 "1(오류함수)"일 경우 상기 스템함수와 동일한 비트를 출력하며,
    상기 영구에러표시부는 상기 제1 및 제2 오류신호가 모두 "1(오류함수)"일 경우 상기 영구에러플래그 신호로 "1"을 출력하되, 상기 제1 및 제2 오류신호 중 어느 하나가 "0(비오류함수)"일 경우 "0"을 출력하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.
  30. 제 28 항에 있어서,
    상기 함수라우터는 다중화부로 구현되며, 상기 영구에러표시부는 AND 연산부로 구현되는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.
  31. 제 19 항에 있어서,
    상기 연산 유닛은
    상기 제1 함수의 비트 개수에 따라 제1 함수의 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제1 함수에 대응하는 상기 제1 에러검출코드를 저장하는 저장부로 사용되는 제1 저장부; 및
    상기 제2 함수의 비트 개수에 따라 제2 함수의 영구에러신호를 라우팅하기 위한 라우터 또는 상기 제2 함수에 대응하는 상기 제2 에러검출코드를 저장하는 저장부로 사용되는 제2 저장부를 더 포함하는 필드 프로그래머블 게이트 어레이.
  32. 제 31 항에 있어서,
    상기 제1 및 제2 함수가 k 비트일 경우,
    상기 제1 및 제2 함수/에러검출코드저장부는 상기 제1 및 제2 함수를 저장하며, 상기 제1 및 제2 저장부는 상기 제1 및 제2 에러검출코드를 미리 저장하여 상기 제1 및 제2 함수의 입력시 상기 제1 및 제2 에러검출코드를 출력하며,
    상기 제1 및 제2 함수가 k-1 비트 이하일 경우,
    상기 제1 및 제2 저장부는 상기 영구에러신호를 라우팅하는 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.
  33. 제 31 항에 있어서,
    상기 연산 유닛은
    상기 제1 함수/에러검출코드저장부, 상기 제2 함수/에러검출코드저장부, 상기 제1 저장부 및 상기 제2 저장부에서 출력되는 신호를 상기 자가검사부, 상기 함수라우터/영구에러표시부 및 상기 라우터에 선택적으로 제공하는 스위치부를 포함하는 필드 프로그래머블 게이트 어레이.
  34. 제 19 항에 있어서,
    상기 제1 함수는 로직으로 표현되는 임의의 불리언 함수이며, 상기 제2 함수는 상기 제1 함수를 대체하는 함수인 것을 특징으로 하는 필드 프로그래머블 게이트 어레이.


KR1020120041033A 2012-04-19 2012-04-19 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이 KR101279999B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120041033A KR101279999B1 (ko) 2012-04-19 2012-04-19 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이
US14/395,755 US9720766B2 (en) 2012-04-19 2012-06-05 Self-healing, fault-tolerant FPGA computation and architecture
PCT/KR2012/004444 WO2013157693A1 (ko) 2012-04-19 2012-06-05 자가치유형 오류 허용 에프피지에이 연산 유닛 및 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120041033A KR101279999B1 (ko) 2012-04-19 2012-04-19 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이

Publications (1)

Publication Number Publication Date
KR101279999B1 true KR101279999B1 (ko) 2013-07-05

Family

ID=48996173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120041033A KR101279999B1 (ko) 2012-04-19 2012-04-19 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이

Country Status (1)

Country Link
KR (1) KR101279999B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010075868A (ko) * 2000-01-21 2001-08-11 오길록 동기 클럭 오류 검출 장치 및 그를 이용하는 비동기전송모드 스위치
KR20100133194A (ko) * 2009-06-11 2010-12-21 수원대학교산학협력단 캐시 메모리 장치 및 이를 이용한 에러 검출 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010075868A (ko) * 2000-01-21 2001-08-11 오길록 동기 클럭 오류 검출 장치 및 그를 이용하는 비동기전송모드 스위치
KR20100133194A (ko) * 2009-06-11 2010-12-21 수원대학교산학협력단 캐시 메모리 장치 및 이를 이용한 에러 검출 방법

Similar Documents

Publication Publication Date Title
US9720766B2 (en) Self-healing, fault-tolerant FPGA computation and architecture
US8516339B1 (en) Method of and circuit for correcting adjacent bit errors in a memory
DeMara et al. Autonomous FPGA fault handling through competitive runtime reconfiguration
US20130061094A1 (en) Apparatus and Method for the Protection and for the Non-Destructive Testing of Safety-Relevant Registers
KR20150144715A (ko) 저장 데이터 값의 에러 검출
Borecký et al. Enhanced duplication method with TMR-like masking abilities
Baig et al. An island-style-routing compatible fault-tolerant FPGA architecture with self-repairing capabilities
KR102271054B1 (ko) 저장 데이터 값의 에러 검출
Villalta et al. Estimating the SEU failure rate of designs implemented in FPGAs in presence of MCUs
Kastil et al. Dependability analysis of fault tolerant systems based on partial dynamic reconfiguration implemented into FPGA
KR101400809B1 (ko) 자가 치유 생체 모사형 오류허용 에프피지에이
KR101279999B1 (ko) 오류허용이 가능한 생태모방형 연산 유닛 및 이를 포함하는 필드 프로그래머블 게이트 어레이
Lahrach et al. A novel SRAM-based FPGA architecture for defect and fault tolerance of configurable logic blocks
Shumsky et al. Robustness of security-oriented binary codes under non-uniform distribution of codewords
Mercier et al. BiSuT: a noc-based bit-shuffling technique for multiple permanent faults mitigation
Benevenuti et al. Evaluation of fault attack detection on SRAM-based FPGAs
Niknahad et al. A study on fine granular fault tolerance methodologies for FPGAs
Baig et al. A low-overhead multiple-SEU mitigation approach for SRAM-based FPGAs with increased reliability
Imran et al. Heterogeneous concurrent error detection (hCED) based on output anticipation
Ahangari et al. Analysis of design parameters in safety-critical computers
US9983926B2 (en) Apparatus, system and method for protecting data
WO2015075783A1 (ja) 論理集積回路及びこれを用いた論理回路,比較器,高信頼性システム
Keren et al. Duplication based one-to-many coding for Trojan HW detection
Pradeep et al. Fault recovery algorithm using king spare allocation and shortest path shifting for reconfigurable systems
Narayanan et al. Carry Select Adder Based on Dual Rail Error Detection and Easy Testability

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: 20170517

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180725

Year of fee payment: 6