KR101181795B1 - 영구적 오류에 강인한 저비용 n 비트 산술논리연산기 - Google Patents

영구적 오류에 강인한 저비용 n 비트 산술논리연산기 Download PDF

Info

Publication number
KR101181795B1
KR101181795B1 KR1020110031174A KR20110031174A KR101181795B1 KR 101181795 B1 KR101181795 B1 KR 101181795B1 KR 1020110031174 A KR1020110031174 A KR 1020110031174A KR 20110031174 A KR20110031174 A KR 20110031174A KR 101181795 B1 KR101181795 B1 KR 101181795B1
Authority
KR
South Korea
Prior art keywords
arithmetic logic
bit arithmetic
error
bit
result
Prior art date
Application number
KR1020110031174A
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 KR1020110031174A priority Critical patent/KR101181795B1/ko
Application granted granted Critical
Publication of KR101181795B1 publication Critical patent/KR101181795B1/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/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/26Functional testing

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)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 마이크로프로세서에서 사용되는 영구적 오류(Permanent fault)에 강인한 산술논리연산기(ALU)에 관한 것이다. 본 발명에서 제공하는 산술논리연산기는 영구적 오류가 발생하더라도 이를 스스로 검출하고 격리시켜 마이크로프로세서의 생산성과 신뢰성을 향상시킨다.
본 발명은 n/2 또는 n/4 비트 산술논리연산기로 n비트 산술논리연산을 수행할 수 있는 기법을 제공하고 이 기법을 바탕으로 산술논리연산기에서의 저비용 오류검출기법과 오류격리기법을 제공한다. n 비트 산술논리연산기는 두 개의 n/2비트 산술논리연산기로 구성되고 상기 n/2비트 산술논리연산기는 각각 두 개의 n/4비트 산술논리연산기로 동작하도록 재구성될 수 있다.
상기 두 개의 n/2비트 산술논리연산장치는 동일한 연산을 수행하여 이중화된 결과를 생산하고 이 결과들을 비교하여 오류를 검출한다. 오류가 발생한 부분은 더 이상 사용되지 않도록 격리되고 나머지 부분은 세 개의 n/4 비트 산술논리연산기로 재구성되어 동작을 계속 수행한다.
본 발명은 오류를 검출하고 제거하기 위해 n 비트 산술논리연산기를 여러 개 사용하던 기존 기법들과는 달리 두 개의 n/2비트 산술논리연산기를 사용함으로써 칩면적 및 에너지 소모 측면에서 효율적이다. 또한 연산과 오류 검출 동작을 동시에 수행함으로써 실시간성을 요구하는 임베디드 시스템에 적용하기 적합하다.

Description

영구적 오류에 강인한 저비용 n 비트 산술논리연산기{Cost-efficient Hard Fault Tolerant ALU design}
본 발명은 산술논리연산기의 오류 검출, 분석 및 격리 방법에 관한 것으로, 보다 상세하게는, 영구적 오류에 강인한 저비용 n 비트 산술논리연산기 및 이를 이용한 영구적 오류 검출, 분석 및 격리방법에 관한 것이다.
반도체 공정이 미세화됨에 따라 디지털시스템에서 영구적 오류(Permanent fault)가 발생할 확률이 증가하고 있다. 이에 따라 디지털시스템의 생산성과 신뢰성은 오히려 감소하게 된다. 생산성의 감소로 인해 반도체 생산 비용이 증가하게 되고 신뢰성 감소로 인해 자동차, 우주선, 의료장비와 같이 고신뢰성을 요구하는 시스템에 심각한 영향을 끼칠 수 있다. 따라서 영구적 오류를 검출하고 제거하는 기법에 대한 연구의 중요성이 점차적으로 부각되고 있다.
디지털시스템의 신뢰성과 수명을 감소시키는 원인으로는 electro migration, stress migration, thermal cycling, time-dependent dielectric breakdown, negative bias temperature instability 등과 같은 현상이 있고, Process variation과 manufacturing defects는 디지털 시스템의 생산성을 감소시킨다.
산술논리연산기는 전체 마이크로프로세서의 칩면적에서 작은 비중을 차지하지만, 산술논리연산기에서 발생한 하나의 영구적 오류는 전체 마이크로프로세서를 사용하지 못하도록 하기 때문에, 반드시 보호되어야 하는 구성요소이다.
상기 영구적 오류로부터 디지털시스템을 보호하기 위한 기본 동작은 3가지로 나눌 수 있는데, 오류 발생을 인지하는 감지단계(Fault detection), 오류 발생지점을 파악하는 진단단계(Fault diagnosis), 오류 발생지점이 더 이상 사용되지 않도록 하는 격리단계(Fault isolation)로 구성된다. 이러한 기본 동작을 통해 오류를 감내하는 시스템(Fault tolerant system) 중 대표적으로 많이 사용되는 것은 삼중모듈 여분(TMR: Triple modular redundancy) 시스템이다. 삼중모듈 여분 시스템은 세 개의 동일한 모듈과 투표기(Voter)로 구성된다.
상기 모듈들은 동일한 입력 값을 받아 각각 결과값을 생산하고, 각 결과값은 투표기의 입력으로 주어지며, 투표기는 다수결원칙에 따라 하나의 실제 출력값을 생산한다. 이를 통해 세 개의 동일한 모듈 중 어느 한 개에서 영구적 오류가 발생하였다 하더라도 나머지 두 개의 모듈에 의해 정확한 출력값을 생산한다.
삼중모듈 여분 시스템은 하나의 영구적 오류를 감내할 수 있지만, 세 개의 동일한 모듈을 필요로 하게 된다. 따라서 산술논리연산기를 삼중모듈 여분 시스템으로 구성할 경우, 마이크로프로세서의 생산 비용을 증가시킨다.
더욱이, 산술논리연산기는, 항상 사용되는 구성요소이기 때문에, 삼중모듈 여분 시스템으로 구성된 산술논리연산기는 에너지 소모를 크게 증가시켜 모바일 디바이스와 같은 임베디드 시스템을 위한 마이크로프로세서에는 적합하지 않다.
본 발명이 해결하고자 하는 과제는 임베디드 시스템에 사용되는 마이크로프로세서를 위한 저비용 오류 검출 및 격리기능을 갖춘 산술논리연산기를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 영구적 오류가 발생한 부분을 사용하지 않고도 제 기능을 수행할 수 있는 산술논리연산기를 제공하는 것이다.
상기 과제를 해결하기 위한 본 발명의 실시 예에 따른 영구적 오류에 강인한 n 비트 산술논리연산기는, 동작방식 및 오류 유무에 따라 입력값을 할당하는 입력 재구성 회로, 상기 입력값의 n/2 비트를 사용하여 연산을 수행하는 2개의 n/2 비트 산술논리연산기, 산술논리연산의 종류 및 연산의 입력값을 입력받아 연산 결과값의 예측된 상위 n/2 또는 3n/4 비트를 출력하는 결과예측 및 제어회로, 상기 n/2 비트 산술논리연산기의 출력값 또는 결과예측회로의 결과 예측값 중 하나를 결과값의 상위 n/2 또는 3n/4 비트로 선택하고 n/2 비트 산술논리연산기의 출력값을 결과값의 하위 n/2 또는 n/4 비트로 선택하는 결과재구성회로, 상기 2개의 n/2 비트 산술논리연산기 출력값을 입력받아 이를 서로 비교하여 오류 여부를 판단하는 오류 검출회로 및 오류 정보가 저장된 오류맵을 포함한다.
상기 결과 예측 및 제어회로는, 상기 오류맵에 저장되어 있는 오류 정보를 기반으로 상기 산술논리연산기의 동작방식을 결정하는 것을 특징으로 한다.
상기 재구성 가능한 n/2 비트 산술논리연산기는, 오류가 발생하지 않을 경우, n/2 비트 산술논리연산기로 동작하는 것을 특징으로 한다.
상기 재구성 가능한 n/2 비트 산술논리연산기는, 오류가 발생하였을 경우, 두 개의 n/4 비트 산술논리연산기로 동작하는 것을 특징으로 한다. 이때, 상기 n/4비트 산술논리연산기 중 사용되지 않는 것은 저전력 상태(Low-power State)로 동작되는 것을 특징으로 한다.
상기 과제를 해결하기 위한 n 비트 산술논리연산기를 이용한 영구적 오류 검출 방법은, 상기 산술논리연산기 내에 구비된 두 개의 n/2 비트 산술논리연산기가 동일한 입력값(A,B)을 입력받아 연산을 수행하는 단계로, 상기 각 산술논리연산기의 출력값을 비교하여 상기 n/2 비트 산술논리연산기의 오류발생 유무를 감지하는 제1 오류 검출 단계, 상기 두 개의 n/2 비트 산술논리연산기를 네 개의 n/4 비트 산술논리연산기로 동작하도록 하고 상기 연산을 중복 수행한 후 상기 오류를 발생시킨 n/4비트 산술논리연산기의 출력값과 상기 오류를 발생시키지 않은 n/4비트 산술논리연산기의 출력값을 비교하여 네 개의 n/4 비트 산술논리연산기 중 어떤 것에서 실제 오류가 발생했는 지를 찾는 제1 오류 분석 단계, 오류가 발생한 n/4 비트 산술연산기를 격리하고 나머지 부분은 리셋하여 입력값의 n/4 비트 단위로 상기 제1오류 검출 단계를 수행하는 제2오류 검출 단계 및 상기 제2오류 검출 단계로부터 오류 발생이 확인될 경우, 나머지 n/4비트 산술논리연산기의 출력값을 비교하여 오류가 발생된 위치를 찾는 제2오류 분석 단계를 포함한다.
상기 제1오류 검출 단계에서 n비트 산술논리연산의 결과값 중 하위 n/2비트는 n/2 비트 산술논리연산기의 출력값을 통해 구해지고 상위 n/2비트는 연산의 종류와 입력값의 크기를 입력으로 하는 결과예측회로를 통해 구해지는 것을 특징으로 한다.
상기 제2오류 검출 단계에서 n비트 산술논리연산의 결과값 중 하위 n/4비트는 n/4 비트 산술논리연산기의 출력값을 통해 구해지고 상위 3n/4비트는 연산의 종류와 입력값의 크기를 입력으로 하는 결과예측회로를 통해 구해지는 것을 특징으로 한다.
상기 제 1 오류 검출 단계에서 산술논리연산기에서 수행되는 연산이 그 결과의 상위 n/2을 예측할 수 없는 연산이라면 그 결과의 상위 n/2 비트도 n/2 비트 산술논리연산기에서 구해지며, 이때는 n비트 산술논리연산이 n/2비트 산술논리연산기를 통해 두 번에 걸쳐 수행되는 것을 특징으로 한다.
상기 제 2 오류 검출 단계에서 산술논리연산기에서 수행되는 연산이 그 결과의 상위 3n/4을 예측할 수 없는 연산이라면 그 결과의 상위 3n/4 비트도 n/4 산술논리연산기에서 구해지며, 이때는 n비트 산술논리연산이 3n/4비트 산술논리연산기를 통해 네 번에 걸쳐 수행되는 것을 특징으로 한다.
본 발명의 산술논리연산기는 오류를 스스로 검출할 수 있고 오류가 발생한 부분을 격리시킨 후 연산을 계속 수행할 수 있다.
이를 위해, 절반 크기의 산술논리연산기를 두 개 사용함으로써, 기존 삼중모듈 여분 기법에 비해 상당히 적은 추가 비용이 요구된다.
도 1은 본 발명의 실시 예에 따른 영구적 오류에 강인한 n 비트 산술논리연산기를 나타낸 블럭도이다(여기서 n은 32).
도 2는 도 1에 도시된 영구적 오류에 강인한 n 비트 산술논리연산기를 이용한 영구적 오류 검출 방법을 나타낸 플로차트이다.
도 3은 도 1에 도시된 영구적 오류에 강인한 n 비트 산술논리연산기를 이용하여 오류 검출 방법을 설명하기 위한 예시도이다.
도 4는 결과 예측회로의 결과 예측 기법에 대한 예이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 영구적 오류에 강한 n 비트 산술 논리 연산기를 나타낸 블럭도이다.
도 1에 도시된 바와 같이, 본 발명의 n 비트 산술논리연산기(10)는 입력재구성회로(100), 재구성 가능한 n/2 비트 산술논리연산기(110), 결과예측 및 제어회로(120), 결과재구성회로(130), 오류 검출회로(140) 및 오류맵을 포함한다.
상기 입력 재구성 회로(100)는 상기 재구성 가능한 n/2 비트 산술논리연산기의 동작방식 및 오류 유무에 따라 입력값을 n/4 비트 단위로 나누어 상기 재구성 가능한 n/2 비트 산술논리연산기 각각에 할당하며, 상기 입력값이 n 비트일 때, 다수개의 n/4 비트 멀티플렉서로 구성된다.
상기 재구성 가능한 n/2 산술논리연산기(110)는 상기 입력값의 n/2 비트를 사용하여 연산을 수행하거나 네 개의 n/4 산술논리연산기로 동작하도록 재구성되어 상기 입력값의 n/4 비트를 사용하여 연산을 수행하도록 설계된다.
상기 결과예측 및 제어회로(120)는 상기 재구성 가능한 산술논리연산기(110) 내에서 수행되는 산술논리연산의 종류 및 상기 연산의 입력값을 입력받아 산술논리연산기가 n/2비트 산술논리연산기로 동작할 경우 연산 결과값의 예측된 상위 n/2 비트를 출력하고 n/4비트 산술논리연산기로 동작할 경우 연산 결과값의 예측된 상위 3n/4 비트를 출력한다.
상기 결과재구성회로(140)는 결과값 레지스터와 네 개의 n/4 비트 멀티플렉서들로 구성되며, 산술논리연산기의 출력값과 상기 결과 예측회로 및 제어회로(120)로부터 예측된 결과값의 상위 n/2비트 또는 3n/4비트를 받아 연산의 실제 결과값을 생산한다.
상기 오류 검출회로(160)는 결과값 레지스터와 멀티플렉서 및 비교기를 구비한다. 산술논리연산기가 n/2비트 산술논리연산기로 동작할 경우 두 개의 n/2비트 산술논리연산기(110)의 출력값을 서로 비교하고 산술논리연산기가 n/4비트 산술논리연산기로 동작할 경우 네 개의 n/4 비트 산술논리연산기(110) 중 연산을 수행한 두 개의 n/4비트 산술논리연산기의 출력값을 서로 비교하여 발생된 오류를 검출한다.
상기 오류맵은 산술논리연산기 내에서 발생될 수 있는 여러 가지 오류 정보를 저장하도록 설계된다.
상기 결과예측 및 제어회로(120)는 상기 입력 재구성 회로(100), 상기 재구성 가능한 n/2 비트 산술논리연산기(110) 및 상기 결과 재구성 회로(140)의 동작을 제어하도록 제어신호를 출력한다.
보다 구체적으로는, 상기 결과예측 및 제어회로(120)는 오류맵(150)에 저장되어 있는 오류 정보를 바탕으로 상기 재구성 가능한 n/2 비트 산술논리연산기의 동작방식을 결정한다.
이때, 상기 재구성 가능한 n/2 산술논리연산기(110)에서 오류가 발생하지 않았다면, 상기 재구성 가능한 n/2 산술논리연산기는 두 개의 n/2 비트 산술논리연산기로 동작하고, 오류가 발생하였다면 4개의 4/n 비트 산술논리연산기로 동작되도록 구성된다.
보다 상세한 설명을 위해 본 발명의 실시예인 영구적 오류에 강인한 32비트 산술논리연산기의 동작방식에 대해 기술한다.
입력 재구성 회로(100)는 다수개의 8비트 멀티플랙서로 구성되며, 상기 두 개의 재구성 가능한 n/2 비트 산술논리연산기(110)의 입력값을 결정한다.
예를 들어, 오류가 발생하지 않았다면 32 비트 입력값의 상위 16 비트 또는 하위 16 비트 중 하나를 골라 두 개의 16 비트 산술논리연산기로 전송한다. 오류가 감지된 후 오류가 발생한 8비트 산술논리연산기를 찾기 위해 산술논리연산기에 오류를 발생시킨 8비트 입력값을 오류를 발생시킨 것으로 예상되는 8비트 산술논리연산기와 오류를 발생시키지 않은 8비트 산술논리연산기에 전송한다. 오류가 발생한 8비트 산술논리연산기가 격리된 후에는 32비트 입력값을 네 개의 8비트 입력값으로 나누고 그 중 하나를 선택하여 오류가 발생하지 않은 두 개의 8비트 산술논리연산기로 전송하여 연산을 계속 수행하도록 설계된다.
결과 예측 및 제어회로(120)는 재구성 가능한 16 비트 산술논리연산기가 연산을 수행하는 동안 현재 수행 중인 연산이 결과를 예측할 수 있는 연산인지를 판단하도록 설계되며, 이때, 결과값의 상위 비트가 모두 0 또는 1이거나, 두 입력값 중 하나의 상위 비트와 같은지를 판단한다.
상기 재구성 가능한 16 비트 산술논리연산기가 16비트로 동작할 경우, 입력값의 상위 16 비트와 연산의 종류를 통해 결과값의 상위 16비트를 예측하고, 산술논리연산기가 8비트로 동작할 경우, 입력값의 상위 24비트와 연산의 종류를 통해 결과값의 상위 24비트를 예측한다.
도 4는 결과 예측 회로의 결과 예측 기법에 대한 예이다. 예 1(10)은 가산 연산을 수행하고 연산의 입력값의 상위 16비트가 각각 0×0000이므로 연산결과의 상위 16비트가 0×1111임을 예측할 수 있다.
예 2(20)는 감산 연산을 수행하고 연산의 입력값의 상위 24비트가 각각 0×000000과 0×000000이므로 연산 결과의 상위 24비트가 0×000000임을 예측할 수 있다.
예 3(20)은 AND 연산을 수행하고 연산의 입력값의 상위 24비트가 각각 0×000000과 0×000000이므로 연산 결과의 상위 24비트가 0×000000임을 예측할 수 있다.
두 개의 재구성 가능한 산술논리연산기는 두 개의 16비트 산술논리연산기로 동작하거나 네 개의 8비트 산술논리연산기로 동작한다. 오류가 발생하지 않았을 경우에는 16비트 산술논리연산기로 동작하고 오류가 감지된 후 오류가 발생한 위치를 찾을 때, 혹은 오류가 발생한 부분이 격리된 후에는 8비트 산술논리연산기로 동작한다.
산술논리연산기에서 현재 수행중인 연산이 예측이 가능한 연산일 경우 산술논리연산기의 동작 방식(16비트 또는 8비트)에 따라 연산 결과값의 하위 16비트 혹은 8비트만을 생산하고, 산술논리연산기에서 현재 수행중인 연산이 예측 불가능한 연산일 경우 32비트 연산을 여러 번에 걸쳐 수행한다. 이때, 16비트 산술논리연산기로 동작할 경우는 두 번에 걸쳐, 8비트 산술논리연산기로 동작할 경우에는 네 번에 걸쳐 32비트 연산을 수행한다.
결과 재구성 회로(140)는 상기 재구성 가능한 n/2 비트 산술논리연산기(110)의 출력값을 통해 결과값의 하위 8비트 또는 16비트를 채우고, 상기 결과 예측회로의 예측 결과를 통해 결과값의 상위 24비트 또는 16비트를 채운다.
산술논리연산기가 두 개의 16비트 산술논리연산기로 동작할 경우, 결과값의 상위 16비트를 16비트 산술논리연산기의 출력값과 상기 결과예측회로(120)의 예측된 상위 16비트 중 하나로 채우고, 결과값의 하위 16비트는 16비트 산술논리연산기(110)의 출력값으로 채운다.
산술논리연산기가 8비트 산술논리연산기로 동작할 경우 결과값의 상위 24비트를 8비트 산술논리연산기의 출력값과 상기 결과예측회로(120)의 예측된 상위 24 비트 중 하나로 채우고, 결과값의 하위 8비트는 8비트 산술논리연산기(110)의 출력값으로 채운다.
상기 과정에서 현재 수행중인 연산이 예측이 불가능한 연산일 경우에, 결과값의 상위비트들을 산술논리연산의 출력값으로 채우게 된다.
이때 32비트 연산을 16비트 또는 8비트 산술논리연산기를 통해 여러 번에 걸쳐 수행하므로, 그 중간 결과값을 결과값 레지스터에 차례대로 저장한다.
오류 검출회로(160)는 연산을 수행한 상기 재구성 가능한 16 비트 또는 8 비트 산술논리연산기의 출력값을 멀티플렉서로 선택하여 결과값 레지스터에 저장한다. 이때, 산술논리연산기가 16 비트 산술논리연산기로 동작할 경우, 두 개의 16 비트 산술논리연산기(110)의 출력값을 결과값 레지스터에 저장하고, 산술논리연산기가 8비트 산술논리연산기로 동작할 경우, 네 개의 8 비트 산술논리연산기(110) 중 연산을 수행한 두 개의 8 비트 산술논리연산기의 출력값을 결과값 레지스터에 저장한다. 오류 검출회로의 비교기는 다음 연산이 수행되는 동안 결과값 레지스터에 저장된 값을 비교하여 오류 발생 여부를 판단한다.
오류 검출 회로(160)에서 상기 산술논리연산기의 출력값을 선택하여 오류 검출 회로의 결과값 레지스터에 저장하는 단계는 결과 재구성 회로(140)와 병렬적으로 동작하고, 출력값을 비교하는 단계는 다음 산술논리연산이 수행될 때 독립적으로 동작한다.
전술한 것처럼, 산술논리연산기는 8비트 산술논리연산기로 동작할 경우 총 4개의 8비트 산술논리연산기로 동작하므로, 모든 8비트 산술논리연산기가 같은 연산을 수행하고 그 결과를 비교함으로써 오류가 발생한 8비트 산술논리연산장치를 찾을 수 있다. 오류가 발생한 8비트 산술논리연산장치를 더 이상 사용하지 않을 경우 총 3개의 8비트 산술논리연산기가 있으므로, 앞으로 발생할 영구적 오류를 추가 검출 및 제거 가능하다.
상기한 모든 회로는 결과 예측 및 제어회로(120)을 통해 제어된다. 결과 예측 및 제어회로(120)는 연산의 종류와 입력값의 크기를 통해 현재 연산이 예측 가능한지 아닌지를 판단한다.
예측 가능하다면 결과의 상위 비트들을 어떤 값으로 채워야 하는지를 판단한다. 또한, 오류 발생 정보에 기반하여 산술논리연산기를 16비트로 동작시킬지 8비트로 동작시킬지를 결정하고, 이에 따라 입력 재구성 회로와 결과 재구성 회로, 그리고 오류 검출 회로의 제어 신호를 만든다.
도 2는 도 1에 도시된 영구적 오류에 강한 n 비트 산술논리연산기를 이용한 영구적 오류 검출 방법을 나타낸 플로차트이며, 도 3은 도 1에 도시된 영구적 오류에 강인한 n 비트 산술논리연산기를 이용한 오류 검출 방법을 설명하기 위한 예시도이다.
도 2 및 도 3을 참조하면, 영구적 오류에 강한 n 비트(이때, n은 32) 산술논리연산기를 이용한 영구적 오류 검출 방법은, 제1오류 검출 단계(S10), 제1오류 분석 단계(S20), 제2오류 검출 단계(S30) 및 제2오류 분석 단계(S40)를 포함한다.
상기 제1오류 검출 단계(S10)는 산술논리연산과 병행하여 수행된다. 이때, 입력값이 32비트로 주어질 경우, 16비트 산술논리연산기 두 개가 사용되고, 각 16비트 산술논리연산기는 두 개의 개별적인 8비트 산술논리연산기로도 동작하도록 구성된다.
상기 제1오류 검출 단계(S10)는 산술논리연산기 내에서 오류를 감지하기 위해 구비된 두 개의 산술논리연산기가 동일한 입력값(A,B)을 입력받아 상위 또는 하위 16비트를 사용하여 연산을 수행하는 단계일 수 있으며, 상기 각 산술논리연산기의 결과를 비교하여 오류 발생 유무를 판단하는 단계일 수 있다.
이때, 입력값의 상위 16비트, '0' 또는 '1' 중 하나를 결과값의 예측된 상위 16비트로 선택하여, 이 예측된 값과 16비트 산술논리연산기의 출력값 중 하나를 결과값의 실제 상위 16비트로 선택하고, 16비트 산술논리연산의 출력값을 결과값의 하위 16 비트로 선택하는 단계일 수 있다.
상기 제1오류 검출 단계에서 산술논리연산기에서 실행중인 연산이 그 결과값의 상위 16비트를 예측할 수 있는 연산이라면, 16비트 산술논리연산기는 결과값의 하위 16비트만 생산하고, 결과값의 상위 16비트는 예측된 상위 16비트로 채워진다.
반대로, 산술논리연산기에서 실행중인 연산이 그 결과값의 상위 16비트를 예측할 수 없는 연산이라면, 16비트 산술논리연산기는 두 번에 걸쳐 입력값의 상위 및 하위 16비트를 사용하여 연산을 수행한 뒤 32비트 연산의 결과값을 생산한다.
상기 제1오류 분석 단계(S20)는 제1오류 검출 단계(S10)를 통해 오류가 감지되었을 경우 수행되는 단계로써, 상기 16비트 산술논리연산기가 두 개의 8비트 산술논리연산기로 구성되었다고 했을 때 어떤 8비트 산술논리연산기에서 오류가 발생하였는지를 찾는다. 두 개의 16비트 산술논리연산기를 네 개의 8비트 산술논리연산기로 동작하도록 하고, 오류를 발생시키지 않은 8비트 산술논리연산기를 사용하여 동일한 연산을 수행한 뒤, 그 출력값을 오류를 발생시킨 것으로 예상되는 8비트 산술논리연산기의 출력값과 비교하여 실제 오류가 발생한 8비트 산술논리연산기를 찾는다.
도 3을 참조하면, 상기 제1오류 검출 단계(S10)에서 두 16비트 산술논리연산기 출력값 중 하위 8비트가 동일하지 않으므로 8비트 산술논리연산기 B와 D 중 하나에서 오류가 발생한 것임을 알 수 있다.
이에 따라, 제1오류 분석 단계(S20)가 수행된다. 제1오류 분석 단계(S20)에서는 16 비트 산술논리연산기가 각각 두 개의 8 비트 산술논리연산기로 동작하도록 제어되며, 오류를 발생시키지 않은 8비트 산술논리연산기 C에서 동일한 연산을 재수행하고 그 결과를 8비트 산술논리연산기 D의 결과와 비교하여 어떤 8비트 산술논리연산기에서 오류가 발생하였는지를 판단한다.
제2오류 검출 단계오류(S30)는 오류가 발생한 부분은 더 이상 사용되지 않도록 격리되고 나머지 부분은 재구성되어 8비트 단위로 오류 검출 및 연산을 수행하는 단계일 수 있다.
보다 구체적으로, 산술논리연산기에서 수행중인 연산이 결과값의 상위 24비트를 예측할 수 있는 연산이라면 결과값의 상위 24비트는 결과 예측 회로를 통해 생산되고 나머지 하위 8비트만 8비트 산술논리연산기에 의해 생산된다.
반면에, 산술논리연산기에서 수행중인 결과값의 상위 24비트를 예측할 수 없는 연산이라면 32비트 입력값을 네 개의 8비트 입력값으로 나누고, 8비트 산술논리연산기는 그 입력값을 사용하여 네 번에 걸쳐 32비트 산술논리연산을 수행한다. 제2오류 검출 단계에서는 두 개의 8비트 산술논리연산기가 사용되고 그 두 산술논리연산기의 출력값을 비교하여 오류를 검출한다.
도 3을 참조하면, 산술논리연산기 B는 이미 오류가 발생하였으므로 산술논리연산기 C와 D가 사용된다.
이때, 산술논리연산기 A와 B는 저전력상태(Low-Power State)에 진입하여 대기함으로써 에너지 소모를 감소시킨다.
산술논리연산기 C와 D의 결과값이 동일하지 않을 경우, 어떤 산술논리연산기에서 오류가 발생하였는지 판단하기 위해 제2오류 분석단계(S40)가 수행된다.
제2오류 분석단계(S40)에서는 산술논리연산기 A가 정상동작상태(Active State)로 진입하여 동일한 연산을 수행한다. 세 8비트 산술논리연산기의 출력값을 비교하여 어디에서 오류가 발생하였는지 판단한다.
오류가 발생한 부분이 격리되고 남은 산술논리연산기 A와 D로 오류 검출 및 연산을 수행한다. 두 개의 8비트 산술논리연산기만 남았기 때문에 오류 검출시 어디에서 오류가 발생하였는지 판단할 수는 없지만, 오류 발생 유무를 감지함으로써 시스템 오작동을 방지할 수 있다.
본 발명은 마이크로프로세서에서 사용되는 영구적 오류(Permanent fault)에 강인한 산술논리연산기(ALU)에 관한 발명으로, 본 발명에서 제공하는 산술논리연산기는 영구적 오류가 발생하더라도 이를 스스로 검출하고 격리시켜 마이크로프로세서의 생산성과 신뢰성을 향상시키는 효과가 있다.
또한, 본 발명은 n/2 또는 n/4 비트 산술논리연산기로 n비트 산술논리연산을 수행할 수 있는 기법을 제공하고, 이 기법을 바탕으로 산술논리연산기에서의 저비용 오류검출 방법을 제공한다.
n 비트 산술논리연산기는 두 개의 n/2비트 산술논리연산기로 구성되고, 상기 n/2비트 산술논리연산기는 각각 두 개의 n/4비트 산술논리연산기로 동작하도록 재구성될 수 있다.
상기 두 개의 n/2비트 산술논리연산장치는 동일한 연산을 수행하여 이중화된 결과를 생산하고 이 결과들을 비교하여 오류를 검출한다. 오류가 발생한 부분은 더 이상 사용되지 않도록 격리되고 나머지 부분은 세 개의 n/4 비트 산술논리연산기로 재구성되어 동작을 계속 수행한다.
따라서, 오류를 검출하고 제거하기 위해 n 비트 산술논리연산기를 여러 개 사용하던 기존 기법들과는 달리, 두 개의 n/2비트 산술논리연산기를 사용함으로써 칩면적 및 에너지 소모 측면에서 효율적이다. 또한, 연산과 오류 검출 동작을 동시에 수행함으로써 실시간성을 요구하는 임베디드 시스템에 적용하기 적합하다.
본 발명은 상술한 특정의 바람직한 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형의 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
10: n 비트 산술논리연산기
100: 입력 재구성 회로
110: 재구성 가능한 n/2 비트 산술논리연산기
120: 결과 예측 및 제어회로 130: 결과 재구성 회로
140: 오류맵 150: 오류 검출 회로
A,B,C,D: n/4 비트 산술논리연산기

Claims (12)

  1. 동작방식 및 오류 유무에 따라 입력값을 할당하며, 상기 입력값이 n 비트일 때, 다수개의 n/4 비트 멀티플렉서로 구성되는 입력 재구성 회로;
    상기 재구성된 입력값을 사용하여 연산을 수행하며, 네 개의 n/4비트 산술논리연산기로 동작가능한 두 개의 n/2비트 산술논리연산기;
    산술논리연산의 종류 및 연산의 입력값을 입력받아 연산 결과값의 상위 n/2 비트 또는 3n/4비트를 출력하며 각 구성요소의 제어신호를 생산하는 결과예측 및 제어회로;
    상기 결과예측 및 제어회로의 결과 예측값과 n/2비트 산술논리연산기의 출력값을 입력받아 둘 중 하나를 결과값의 상위 n/2비트 또는 3n/4비트로 채우고 산술논리연산기의 출력값을 결과값의 하위 n/2비트 또는 n/4비트로 채우는 결과재구성회로;
    상기 연산을 수행한 두 n/2 비트 또는 n/4 비트 산술논리연산기의 출력값을 서로 비교하여 오류 여부를 판단하는 오류 검출회로; 및
    오류 정보가 저장된 오류맵을 포함하는 영구적 오류에 강인한 n 비트 산술논리연산기(n은 짝수).
  2. 제 1항에 있어서,
    상기 결과 예측 및 제어회로는,
    상기 오류맵에 저장되어 있는 오류 정보를 기반으로 상기 산술논리연산기의 동작방식을 결정하는 것을 특징으로 하는 영구적 오류에 강인한 n 비트 산술논리연산기(n은 짝수).
  3. 제 1항에 있어서,
    상기 n/2 비트 산술논리연산기는,
    오류가 발생하였을 경우, n/4 비트 산술논리연산기로 동작하는 것을 특징으로 하는 영구적 오류에 강인한 n 비트 산술논리연산기(n은 짝수).
  4. 제 1항에 있어서,
    상기 n/2 비트 산술논리연산기는,
    오류가 발생하지 않을 경우, n/2 비트 산술논리연산기로 동작하는 것을 특징으로 하는 영구적 오류에 강인한 n 비트 산술논리연산기(n은 짝수).
  5. 제 3항에 있어서,
    상기 n/4비트 산술논리연산기는,
    사용되지 않을 경우 저전력 상태(Low-power State)로 동작되는 것을 특징으로 하는 n 비트 산술논리연산기(n은 짝수).
  6. 오류 발생 유무에 따라 입력값을 결정하는 다수개의 8비트 멀티플렉서로 구성된 입력재구성회로;
    두 개의 16비트 산술논리연산기;
    오류맵에 저장되어 있는 오류 정보를 기반으로 상기 16 비트 산술논리연산기의 동작방식을 결정하고, 상기 16 비트 산술논리 연산기가 연산을 수행하는 동안 현재 수행중인 연산이 결과를 예측할 수 있는 연산인지를 판단하는 결과예측 및 제어회로;
    상기 16 비트 산술논리연산기의 출력값을 통해 결과값의 하위 8비트 또는 16비트를 채우고, 상기 결과 예측회로의 예측 결과와 16비트 산술논리연산기의 출력값 중 하나를 선택하여 결과값의 상위 24비트 또는 16비트를 채워 재구성하는 결과 재구성 회로; 및
    상기 연산을 수행한 두 16비트 또는 8비트 산술논리연산기의 출력값을 서로 비교하여 오류 여부를 판단하는 오류 검출회로를 포함하는 영구적 오류에 강인한 32 비트 산술논리연산기.
  7. 제 6항에 있어서,
    상기 결과예측 및 제어회로는,
    상기 오류맵에 저장되어 있는 오류 정보를 기반으로 상기 16 비트 산술논리연산기의 동작방식을 결정하는 것을 특징으로 하는 영구적 오류에 강인한 32비트 산술논리연산기.
  8. 제 6항에 있어서,
    상기 16 비트 산술논리연산기는,
    오류가 발생하였을 경우, 8 비트 산술논리연산기로 동작하는 것을 특징으로 하는 영구적 오류에 강인한 32비트 산술논리연산기.
  9. 제 6항에 있어서,
    상기 16비트 산술논리연산기는,
    오류가 발생하지 않을 경우, 16 비트 산술논리연산기로 동작하는 것을 특징으로 하는 영구적 오류에 강인한 32비트 산술논리연산기.
  10. 제 8항에 있어서,
    상기 8 비트 산술논리연산기는,
    사용되지 않을 경우 저전력 상태(Low-power State)로 동작되는 것을 특징으로 하는 영구적 오류에 강인한 32비트 산술논리연산기.
  11. n 비트 산술논리연산기 내에 구비된 두 개의 n/2 비트 산술논리연산기에 동일한 입력값(A,B)을 입력받아 연산을 수행하는 단계로, 상기 n/2 비트 산술논리연산기의 출력값을 비교하여 상기 n/2 비트 산술논리연산기의 오류 발생 유무를 감지하는 제1 오류 검출 단계;
    오류 발생이 감지된 후 두 개의 상기 n/2 비트 산술논리연산기를 네 개의 n/4 비트 산술논리연산기로 동작하도록 한 뒤, 동일한 연산 과정을 상기 오류를 발생시켰을 것으로 예상되는 n/4비트 산술논리연산기와 오류가 발생하지 않은 n/4비트 산술논리연산기에서 수행하고, 수행한 결과를 비교하여 오류가 발생된 위치를 찾는 제1오류 분석 단계;
    오류가 발생한 산술연산기를 격리하고 나머지 부분은 리셋하여 상기 입력값의 하위 n/4 비트 단위로 상기 제1오류 검출 단계를 재수행하는 제2오류 검출 단계; 및
    상기 제2오류 검출 단계로부터 오류 발생이 확인될 경우, 나머지 n/4비트 산술논리연산기의 결과값을 비교하여 오류가 발생된 위치를 찾는 제2오류 분석 단계를 포함하는 n 비트 산술논리연산기를 이용한 영구적 오류 검출 방법(n=32).
  12. 제 11항에 있어서,
    상기 제2오류 검출 단계는,
    오류가 검출되었을 경우, 상기 n/2 비트 산술논리연산기를 두 개의 n/4비트 산술논리연산기로 동작하도록 한 뒤, 오류가 발생하지 않은 n/4 비트 산술논리연산기에 동일한 연산을 수행하도록 하는 단계인 것을 특징으로 하는 n 비트 산술논리연산기를 이용한 영구적 오류 검출 방법(n=32).
KR1020110031174A 2011-04-05 2011-04-05 영구적 오류에 강인한 저비용 n 비트 산술논리연산기 KR101181795B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110031174A KR101181795B1 (ko) 2011-04-05 2011-04-05 영구적 오류에 강인한 저비용 n 비트 산술논리연산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110031174A KR101181795B1 (ko) 2011-04-05 2011-04-05 영구적 오류에 강인한 저비용 n 비트 산술논리연산기

Publications (1)

Publication Number Publication Date
KR101181795B1 true KR101181795B1 (ko) 2012-09-12

Family

ID=47074144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110031174A KR101181795B1 (ko) 2011-04-05 2011-04-05 영구적 오류에 강인한 저비용 n 비트 산술논리연산기

Country Status (1)

Country Link
KR (1) KR101181795B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245148A (ja) 2008-03-31 2009-10-22 Nec Corp 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245148A (ja) 2008-03-31 2009-10-22 Nec Corp 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム

Similar Documents

Publication Publication Date Title
Huang et al. Column-based precompiled configuration techniques for FPGA
US7362697B2 (en) Self-healing chip-to-chip interface
US20150082101A1 (en) Self-healing, fault-tolerant fpga computation unit and structure
JP2008503002A (ja) 単一フォールトトレランスのための冗長処理アーキテクチャ
US10635538B2 (en) Semiconductor device and control method thereof for processing
US8522091B1 (en) Prioritized detection of memory corruption
Pilotto et al. Synchronizing triple modular redundant designs in dynamic partial reconfiguration applications
KR100998314B1 (ko) Sram 기반의 fpga에서 오류를 검출하고 복구하는 논리회로
JP2015115727A (ja) プログラマブルロジックデバイス
Gade et al. Run time fault tolerant mechanism for transient and hardware faults in alu for highly reliable embedded processor
Koal et al. On the feasibility of combining on-line-test and self repair for logic circuits
US9411014B2 (en) Reordering or removal of test patterns for detecting faults in integrated circuit
Dang et al. Reliability assessment and quantitative evaluation of soft-error resilient 3D network-on-chip systems
Gauer et al. Spatial avoidance of hardware faults using FPGA partial reconfiguration of tile-based soft processors
KR101181795B1 (ko) 영구적 오류에 강인한 저비용 n 비트 산술논리연산기
Balaz et al. Generic self repair architecture with multiple fault handling capability
Gao et al. Time-multiplexed online checking
Almukhaizim et al. Fault tolerant design of combinational and sequential logic based on a parity check code
Koal et al. A concept for logic self repair
CN114781619A (zh) 软错误检测方法和装置
Gao et al. Time-multiplexed online checking: A feasibility study
Prajeesh et al. Implementation of human endocrine cell structure on FPGA for self-healing advanced digital system
Mukherjee et al. Choice of granularity for reliable circuit design using dynamic reconfiguration
JP5565873B2 (ja) 再構成可能な集積回路ユニットを備えた論理回路及びその論理回路のエラー修正方法
JP6800286B2 (ja) データ処理装置

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee