KR20140134376A - 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 - Google Patents

오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 Download PDF

Info

Publication number
KR20140134376A
KR20140134376A KR1020130054098A KR20130054098A KR20140134376A KR 20140134376 A KR20140134376 A KR 20140134376A KR 1020130054098 A KR1020130054098 A KR 1020130054098A KR 20130054098 A KR20130054098 A KR 20130054098A KR 20140134376 A KR20140134376 A KR 20140134376A
Authority
KR
South Korea
Prior art keywords
processor core
error
register value
instruction
pipeline
Prior art date
Application number
KR1020130054098A
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 KR1020130054098A priority Critical patent/KR20140134376A/ko
Priority to US14/208,415 priority patent/US20140344619A1/en
Publication of KR20140134376A publication Critical patent/KR20140134376A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

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

Abstract

오류 감지가 가능한 프로세서 코어 및 프로세서 코어 오류 방지 방법이 개시된다. 본 발명에 따른 프로세서는, 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어; 상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어; 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 비교기; 및 상기 비교기의 비교 결과 오류가 발생한 것으로 판단되면 오류 관리 동작을 수행하는 오류 관리기를 포함한다.

Description

오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 {PROCESSOR CAPABLE OF FAULT DETECTION AND METHOD OF DETECTING FAULT OF PROCESSOR CORE USING THE SAME}
본 발명은 마이크로 프로세서에 관한 것으로, 특히 파이프라인 레지스터를 이용하여 오류 감지가 가능한 프로세서에 관한 것이다.
프로세서 코어는 메모리 또는 디스크 등의 저장장치(storage)에 보관된 명령어를 읽어 들여, 명령어에 인코딩된 동작에 따라서 피연산자(operand)에 특정 연산을 행하고 결과를 다시 저장장치에 저장함으로써 특정 응용(application)을 위한 알고리즘을 실행하는 하드웨어 또는 설계자산(IP; Intellectual Property)를 의미한다.
프로세서의 응용 영역은 시스템 반도체 전분야에 걸쳐 광대하게 적용되고 있다. 즉, 프로세서의 응용 영역은 비디오 데이터 압축 및 해제, 오디오 데이터 압축 및 해제, 오디오 데이터 변형 및 음향효과와 같은 대용량의 멀티미디어 데이터를 위한 고성능 미디어 데이터 처리, 유무선 통신용 모뎀, 보이스 코덱 알고리즘, 네트워크 데이터 처리, 터치스크린, 가전기기용 컨트롤러, 모터제어와 같은 마이크로컨트롤러 플랫폼, 무선 센서 네트워크(Wireless Sensor Network) 또는 초소형 전자장치(Electronics Dust) 등의 안정적인 전원공급이 불가능하거나 외부로부터의 전원공급이 불가능한 장치에 이르기까지 다양한 응용영역으로 그 사용처를 확대하고 있다.
프로세서는 기본적으로 코어(Core), TLB(Translation Lookaside Buffer) 및 캐쉬(Cache)로 이루어져 있다. 프로세서가 수행할 작업은 다수의 명령어들(instructions)의 조합에 해당한다. 즉, 명령어가 메모리에 저장되어 있고, 프로세서에 이 명령어들이 순차적으로(sequentially) 입력되어 매 클럭 사이클마다 프로세서가 특정 연산을 행하게 된다. TLB는 운영체제 기반의 어플리케이션 구동을 위하여 가상 어드레스를 물리 어드레스로 변환하는 기능을 하며, 캐쉬는 외부 메모리에 저장되어 있는 명령어를 칩 내부에 잠시 저장함으로써 프로세서의 속도를 증대시키는 역할을 한다.
최근 자동차 시스템 등에서는 ADAS(Advanced Driver Assistance System)와 같은 고도의 지능과 정밀성을 보유한 운전자 보조 시스템의 개발이 활발히 이루어지고 있고, 전장시스템의 중요성이 증대되고 있다.
특히, 운전자 대신 차량 외부의 환경을 인식하기 위한 장치 등의 필요성이 증가함에 따라 기존의 50MHz~100MHz 보다 고성능인 500MHz 이상의 프로세서 코어가 사용되는 어플리케이션이 점차 큰 폭으로 증가할 것으로 예상된다. 이와 같은 어플리케이션은 스마트 블랙박스에서의 동작 인식(motion detection), 차량 운행 중의 보행자 인식(pedestrian recognition), 운전자의 운전 패턴 또는 졸음 인식, 차선인식을 통한 운행 보조(lane detection and driving assistance) 등을 포함한다.
외부환경의 인식 및 인식된 영상, 음성 또는 센서 입력을 분석하여 자동차 운행에 직간접적으로 관여하기 위해서는, 고성능의 프로세서 코어를 이용하여 대량의 데이터를 실시간으로 분석하여 보행자를 인식하는 등의 결과를 추출하기 위한 기능이 요구된다. 특히, 차선인식 기반 운행 보조의 경우 인식한 결과를 바탕으로 자동차 운행시 조향 장치 등에 직접적인 영향을 가할 수 있다. 자동차 조향 장치 등에 직접적인 영향을 가하는 방식은 차선인식 결과를 운전자에게 알려주는 방안으로써 핸들에 진동을 주는 방법 또는 핸들 회전각을 제한하는 방법 등이 있을 수 있다.
자동차 조향 장치에 직접적으로 영향을 줄 수 있는 어플리케이션의 경우 프로세서 코어의 신뢰성(reliability)은 매우 중요하다. 즉, 프로세서 코어가 전압, 전류, 온도 등의 요인에 의해 오동작하여 자동차 조향 장치를 잘못 제어하면 운전자의 생명에 직접적인 영향을 줄 수 있으므로 프로세서 코어의 신뢰성이 절대적으로 보장되어야 한다.
즉, 고성능의 프로세서 코어일수록 프로세서 코어의 신뢰성(reliability)을 보장하는 것이 매우 중요하다.
미국등록특허 7206966호는 마이크로컨트롤러 내에 두 개의 코어를 구현하고, 첫 번째 코어에서는 어플리케이션에서 요구되는 프로그램을 실행하고, 두 번째 코어에서는 진단 코드를 실행하는 기술을 개시하고 있다. 그러나, 이와 같은 기술은 두 개의 코어 사이에서 컨텍스트 스위칭이 수행되어야 하는 등 그 동작이 복잡하다.
따라서, 보다 효율적으로 프로세서 코어의 신뢰성을 보장할 수 있는 새로운 프로세서 코어의 필요성이 절실하게 대두된다.
본 발명의 목적은 전압, 전류, 온도 등의 요인에 의하여 프로세서 코어에서 오류가 발생했을 때 이를 간단하고 효율적으로 감지하는 것이다.
또한, 본 발명의 목적은 프로세서 코어에서 오류가 발생하는 타이밍과 오류의 원인을 신속하게 파악하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 프로세서는, 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어; 상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어; 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 비교기; 및 상기 비교기의 비교 결과 오류가 발생한 것으로 판단되면 오류 관리 동작을 수행하는 오류 관리기를 포함한다.
이 때, 제1 프로세서 코어 및 제2 프로세서 코어는 각각 리드된 명령어를 패치하여 패치된 명령어를 생성하는 명령어 패치 유닛; 상기 패치된 명령어를 이용하여 분기 예측을 수행하는 분기 예측기; 상기 분기 예측 결과에 기반하여 명령어를 저장하는 명령어 큐; 상기 명령어 큐에 저장된 명령어를 디코딩하는 명령어 디코더; 및 디코딩된 명령어를 실행하는 실행 유닛을 포함할 수 있다.
이 때, 파이프라인 레지스터는 상기 명령어 패치 유닛의 결과를 저장하고, 상기 분기 예측기의 입력을 제공하는 명령어 패치 유닛 레지스터; 상기 분기 예측기의 결과를 저장하고, 상기 명령어 큐의 입력을 제공하는 분기 예측 레지스터; 상기 명령어 큐의 결과를 저장하고, 상기 명령어 디코더의 입력을 제공하는 명령어 큐 레지스터; 및 상기 명령어 디코더의 결과를 저장하고, 상기 실행 유닛의 입력을 제공하는 명령어 디코더 레지스터를 포함할 수 있다.
이 때, 비교기는 매 클럭 사이클마다 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하여 오류가 발생된 것으로 판단되는 경우 상기 오류 관리기로 보고할 수 있다.
이 때, 비교기는 상기 제1 프로세서 코어의 명령어 패치 유닛 레지스터 값을 상기 제2 프로세서 코어의 명령어 패치 유닛 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 분기 예측 레지스터 값을 상기 제2 프로세서 코어의 분기 예측 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 큐 레지스터 값을 상기 제2 프로세서 코어의 명령어 큐 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 디코더 레지스터 값을 상기 제2 프로세서 코어의 명령어 디코더 레지스터 값과 비교하여 상기 오류 발생 여부를 판단할 수 있다.
이 때, 오류 관리기는 상기 오류가 발생한 경우 상기 제1 프로세서 코어 및 상기 제2 프로세서 코어를 리셋할 수 있다.
이 때, 오류 관리기는 상기 오류가 발생한 경우 시스템에 오류발생상황을 통보하고 동작을 종료할 수 있다.
이 때, 오류 관리기는 상기 오류가 발생하는 경우 ROM(Read Only Memory)을 이용하여 오류모드로 전환할 수 있다.
또한, 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법은, 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어의 파이프라인 레지스터 값을 리드하는 단계; 상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어의 파이프라인 레지스터 값을 리드하는 단계; 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 단계; 및 상기 비교 결과에 따라 오류 관리 동작을 수행하는 단계를 포함한다.
이 때, 비교하는 단계는 매 클럭 사이클마다 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교할 수 있다.
이 때, 비교하는 단계는 상기 제1 프로세서 코어의 명령어 패치 유닛 레지스터 값을 상기 제2 프로세서 코어의 명령어 패치 유닛 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 분기 예측 레지스터 값을 상기 제2 프로세서 코어의 분기 예측 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 큐 레지스터 값을 상기 제2 프로세서 코어의 명령어 큐 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 디코더 레지스터 값을 상기 제2 프로세서 코어의 명령어 디코더 레지스터 값과 비교하여 상기 오류 발생 여부를 판단할 수 있다.
이 때, 오류 관리 동작을 수행하는 단계는 상기 오류가 발생한 경우 제1 프로세서 코어 및 제2 프로세서 코어를 리셋할 수 있다.
이 때, 오류 관리 동작을 수행하는 단계는 상기 오류가 발생한 경우 시스템에 오류발생상황을 통보하고 동작을 종료할 수 있다.
이 때, 오류 관리 동작을 수행하는 단계는 상기 오류가 발생한 경우 ROM(Read Only Memory)을 이용하여 오류모드로 전환할 수 있다.
본 발명에 따르면, 전압, 전류, 온도 등의 요인에 의하여 프로세서 코어에서 오류가 발생했을 때, 두 개의 프로세서 코어의 파이프라인 레지스터의 값을 비교하는 것만으로 이를 간단하고 효율적으로 감지할 수 있다.
또한, 본 발명은 매 사이클마다 두 개의 프로세서 코어의 파이프라인 레지스터의 값을 비교함으로써 프로세서 코어에서 오류가 발생하는 타이밍을 신속하게 파악할 수 있고, 프로세서 코어 내부 각 단계의 파이프라인 레지스터들을 비교함으로써 어느 단계에서 오류가 발생하였는지 파악이 가능하여 오류의 원인을 신속하게 파악할 수 있다.
도 1은 본 발명의 일실시예에 따른 프로세서를 나타낸 블록도이다.
도 2는 도 1에 도시된 제1 프로세서 코어 및 제2 프로세서 코어 각각의 일 예를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법을 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 프로세서를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 프로세서는 제1 프로세서 코어(110), 제2 프로세서 코어(120), 비교기(130) 및 오류 관리기(140)를 포함한다.
제1 프로세서 코어(110) 및 제2 프로세서 코어(120)는 각각 명령어를 읽어서 프로세서의 연산을 수행하는 하드웨어이다.
제1 프로세서 코어(110) 및 제2 프로세서 코어(120)는 각각 하나 이상의 파이프라인 레지스터를 포함한다.
이 때, 제2 프로세서 코어(120)는 제1 프로세서 코어(110)와 동일한 구조이고, 제1 프로세서 코어(110)와 함께 하나의 칩 내부에 포함된다.
이 때, 제1 프로세서 코어(110) 및 제2 프로세서 코어(120)는 각각 리드된 명령어를 패치하여 패치된 명령어를 생성하는 명령어 패치 유닛; 상기 패치된 명령어를 이용하여 분기 예측을 수행하는 분기 예측기; 상기 분기 예측 결과에 기반하여 명령어를 저장하는 명령어 큐; 상기 명령어 큐에 저장된 명령어를 디코딩하는 명령어 디코더; 및 디코딩된 명령어를 실행하는 실행 유닛을 포함한 다수의 하드웨어 유닛으로 구성될 수 있다.
이 때, 제1 프로세서 코어(110) 및 제2 프로세서 코어(120) 각각을 구성하는 하드웨어 유닛 사이에는 다수의 파이프라인 레지스터가 존재할 수 있다. 즉, 파이프라인 레지스터는 상기 명령어 패치 유닛의 결과를 저장하고, 상기 분기 예측기의 입력을 제공하는 명령어 패치 유닛 레지스터; 상기 분기 예측기의 결과를 저장하고, 상기 명령어 큐의 입력을 제공하는 분기 예측 레지스터; 상기 분기 예측기의 결과를 저장하고, 상기 명령어 디코더의 입력을 제공하는 명령어 큐 레지스터; 및 상기 명령어 디코더의 결과를 저장하고, 상기 실행 유닛의 입력을 제공하는 명령어 디코더 레지스터를 포함할 수 있다.
비교기(130)는 제1 프로세서 코어(110)의 파이프라인 레지스터 값과 제2 프로세서 코어(120)의 파이프라인 레지스터 값을 비교한다. 즉, 비교기(130)는 제1 프로세서 코어(110) 및 제2 프로세서 코어(120)의 파이프라인 단계 사이에 존재하는 레지스터의 값을 상호비교하는 파이프라인 비교기(pipeline comparator)에 해당한다.
이 때, 비교기(130)는 매 클럭 사이클마다 제1 프로세서 코어(110)의 파이프라인 레지스터 값과 제2 프로세서 코어(120)의 파이프라인 레지스터 값을 비교하여 오류가 발생된 것으로 판단되는 경우 오류 관리기(140)로 보고할 수 있다.
이 때, 비교기(130)는 제1 프로세서 코어(110)의 명령어 패치 유닛 레지스터 값을 제2 프로세서 코어(120)의 명령어 패치 유닛 레지스터 값과 비교하고, 제1 프로세서 코어(110)의 분기 예측 레지스터 값을 제2 프로세서 코어(120)의 분기 예측 레지스터 값과 비교하고, 제1 프로세서 코어(110)의 명령어 큐 레지스터 값을 제2 프로세서 코어(120)의 명령어 큐 레지스터 값과 비교하고, 제1 프로세서 코어(110)의 명령어 디코더 레지스터 값을 제2 프로세서 코어(120)의 명령어 디코더 레지스터 값과 비교하여 오류 발생 여부를 판단할 수 있다.
오류 관리기(140)는 비교기(130)의 비교 결과 오류가 발생한 것으로 판단되면 오류 관리 동작을 수행한다.
이 때, 오류 관리기(140)는 오류가 발생한 경우 제1 프로세서 코어(110) 및 제2 프로세서 코어(120)를 리셋하여 오류 발생시 동작 모드로 전환할 수 있다.
이 때, 오류 관리기(140)는 오류가 발생한 경우 외부 시스템에 오류발생상황을 통보하고 동작을 종료할 수 있다.
이 때, 오류 관리기(140)는 오류가 발생한 경우 ROM(Read Only Memory)를 이용하여 오류모드로 전환할 수 있다.
도 2는 도 1에 도시된 제1 프로세서 코어 및 제2 프로세서 코어 각각의 일 예를 나타낸 블록도이다.
즉, 도 1에 도시된 제2 프로세서 코어는 제1 프로세서 코어와 동일한 구조를 가지며, 제1 프로세서 코어와 함께 칩 내부에 구현된다.
도 2를 참조하면, 도 1에 도시된 제1 프로세서 코어 또는 제2 프로세서 코어는 명령어 패치 유닛(210), 분기 예측기(220), 명령어 큐(230), 명령어 디코더(240), 실행 유닛(250), 명령어 패치 유닛 레지스터(260), 분기 예측기 레지스터(270), 명령어 큐 레지스터(280) 및 명령어 디코더 레지스터(290)를 포함한다.
명령어 패치 유닛(210)은 리드된 명령어를 패치하여 패치된 명령어를 생성한다.
분기 예측기(220)는 상기 패치된 명령어를 이용하여 분기 예측을 수행한다.
명령어 큐(230)는 상기 분기 예측 결과에 기반하여 명령어를 저장한다.
명령어 디코더(240)는 명령어 큐(230)에 저장된 명령어를 디코딩한다.
실행 유닛(250)은 디코딩된 명령어를 실행한다.
명령어 패치 유닛 레지스터(260)는 명령어 패치 유닛(210)의 결과를 저장하고, 분기 예측기(220)의 입력을 제공한다.
분기 예측 레지스터(270)는 분기 예측기(220)의 결과를 저장하고, 명령어 큐(230)의 입력을 제공한다.
명령어 큐 레지스터(280)는 명령어 큐(230)의 결과를 저장하고, 명령어 디코더(240)의 입력을 제공한다.
명령어 디코더 레지스터(290)는 명령어 디코더(240)의 결과를 저장하고, 실행 유닛(250)의 입력을 제공한다.
도 3은 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법은 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어의 파이프라인 레지스터 값을 리드한다(S310).
또한, 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법은 상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어의 파이프라인 레지스터 값을 리드한다(S320).
또한, 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법은 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교한다(S330).
또한, 본 발명의 일실시예에 따른 프로세서 코어 오류 감지 방법은 비교 결과에 따라 오류 관리 동작을 수행한다(S340).
이 때, 단계(S330)는 매 클럭 사이클마다 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교할 수 있다.
이 때, 단계(S330)는 상기 제1 프로세서 코어의 명령어 패치 유닛 레지스터 값을 상기 제2 프로세서 코어의 명령어 패치 유닛 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 분기 예측 레지스터 값을 상기 제2 프로세서 코어의 분기 예측 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 큐 레지스터 값을 상기 제2 프로세서 코어의 명령어 큐 레지스터 값과 비교하고, 상기 제1 프로세서 코어의 명령어 디코더 레지스터 값을 상기 제2 프로세서 코어의 명령어 디코더 레지스터 값과 비교하여 상기 오류 발생 여부를 판단할 수 있다.
이 때, 단계(S340)는 상기 오류가 발생한 경우 상기 제1 프로세서 코어 및 상기 제2 프로세서 코어를 리셋할 수 있다.
이 때, 단계(S340)는 상기 오류가 발생한 경우 시스템에 오류발생상황을 통보하고 동작을 종료할 수 있다.
이 때, 단계(S340)는 상기 오류가 발생한 경우 ROM(Read Only Memory)을 이용하여 오류모드로 전환할 수 있다.
제1 프로세서 코어(또는 제2 프로세서 코어) 내부에 있는 회로의 특정 부분에서 전압, 전류, 온도 변화 등에 의하여 프로세서 코어 설계자가 의도하지 않은 회로 오류가 발생하면, 해당 사이클에서 제1 프로세서 코어의 파이프라인 레지스터와 제2 프로세서 코어의 파이프라인 레지스터 값에 차이가 발생한다.
매 클럭 사이클마다 제1 프로세서 코어 및 제2 프로세서 코어의 파이프라인 레지스터 값을 비교함으로써 프로세서 코어 내부의 오류 발생을 감지할 수 있으며, 이를 이용하여 코어를 리셋하거나 외부로 발생한 오류를 보고할 수 있다.
이상에서와 같이 본 발명에 따른 프로세서 및 프로세서 코어 오류 감지 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
110: 제1 프로세서 코어
120: 제2 프로세서 코어
130: 비교기
140: 오류 관리기
210: 명령어 패치 유닛
220: 분기 예측기
230: 명령어 큐
240: 명령어 디코더
250: 실행 유닛
260: 명령어 패치 유닛 레지스터
270: 분기 예측 레지스터
280: 명령어 큐 레지스터
290: 명령어 디코더 레지스터

Claims (14)

  1. 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어;
    상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어;
    상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 비교기; 및
    상기 비교기의 비교 결과 오류가 발생한 것으로 판단되면 오류 관리 동작을 수행하는 오류 관리기
    를 포함하는 것을 특징으로 하는 프로세서.
  2. 청구항 1에 있어서,
    상기 제1 프로세서 코어 및 상기 제2 프로세서 코어는 각각
    리드된 명령어를 패치하여 패치된 명령어를 생성하는 명령어 패치 유닛;
    상기 패치된 명령어를 이용하여 분기 예측을 수행하는 분기 예측기;
    상기 분기 예측 결과에 기반하여 명령어를 저장하는 명령어 큐;
    상기 명령어 큐에 저장된 명령어를 디코딩하는 명령어 디코더; 및
    디코딩된 명령어를 실행하는 실행 유닛
    을 포함하는 것을 특징으로 하는 프로세서.
  3. 청구항 2에 있어서,
    상기 파이프라인 레지스터는
    상기 명령어 패치 유닛의 결과를 저장하고, 상기 분기 예측기의 입력을 제공하는 명령어 패치 유닛 레지스터;
    상기 분기 예측기의 결과를 저장하고, 상기 명령어 큐의 입력을 제공하는 분기 예측 레지스터;
    상기 명령어 큐의 결과를 저장하고, 상기 명령어 디코더의 입력을 제공하는 명령어 큐 레지스터; 및
    상기 명령어 디코더의 결과를 저장하고, 상기 실행 유닛의 입력을 제공하는 명령어 디코더 레지스터
    를 포함하는 것을 특징으로 하는 프로세서.
  4. 청구항 3에 있어서,
    상기 비교기는 매 클럭 사이클마다 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하여 오류가 발생된 것으로 판단되는 경우 상기 오류 관리기로 보고하는 것을 특징으로 하는 프로세서.
  5. 청구항 4에 있어서,
    상기 비교기는
    상기 제1 프로세서 코어의 명령어 패치 유닛 레지스터 값을 상기 제2 프로세서 코어의 명령어 패치 유닛 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 분기 예측 레지스터 값을 상기 제2 프로세서 코어의 분기 예측 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 명령어 큐 레지스터 값을 상기 제2 프로세서 코어의 명령어 큐 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 명령어 디코더 레지스터 값을 상기 제2 프로세서 코어의 명령어 디코더 레지스터 값과 비교하여 상기 오류 발생 여부를 판단하는 것을 특징으로 하는 프로세서.
  6. 청구항 5에 있어서,
    상기 오류 관리기는
    상기 오류가 발생한 경우 상기 제1 프로세서 코어 및 상기 제2 프로세서 코어를 리셋하는 것을 특징으로 하는 프로세서.
  7. 청구항 6에 있어서,
    상기 오류 관리기는
    상기 오류가 발생한 경우 시스템에 오류발생상황을 통보하고 동작을 종료하는 것을 특징으로 하는 프로세서.
  8. 청구항 6에 있어서,
    상기 오류 관리기는 상기 오류가 발생한 경우 ROM을 이용하여 오류모드로 전환하는 것을 특징으로 하는 프로세서.
  9. 하나 이상의 파이프라인 레지스터를 포함하는 제1 프로세서 코어의 파이프라인 레지스터 값을 리드하는 단계;
    상기 제1 프로세서 코어와 동일한 구조이고, 상기 제1 프로세서 코어와 함께 하나의 칩에 포함되는 제2 프로세서 코어의 파이프라인 레지스터 값을 리드하는 단계;
    상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 단계; 및
    상기 비교 결과에 따라 오류 관리 동작을 수행하는 단계
    를 포함하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
  10. 청구항 9에 있어서,
    상기 비교하는 단계는 매 클럭 사이클마다 상기 제1 프로세서 코어의 파이프라인 레지스터 값과 상기 제2 프로세서 코어의 파이프라인 레지스터 값을 비교하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
  11. 청구항 10에 있어서,
    상기 비교하는 단계는
    상기 제1 프로세서 코어의 명령어 패치 유닛 레지스터 값을 상기 제2 프로세서 코어의 명령어 패치 유닛 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 분기 예측 레지스터 값을 상기 제2 프로세서 코어의 분기 예측 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 명령어 큐 레지스터 값을 상기 제2 프로세서 코어의 명령어 큐 레지스터 값과 비교하고,
    상기 제1 프로세서 코어의 명령어 디코더 레지스터 값을 상기 제2 프로세서 코어의 명령어 디코더 레지스터 값과 비교하여 상기 오류 발생 여부를 판단하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
  12. 청구항 11에 있어서,
    상기 오류 관리 동작을 수행하는 단계는
    상기 오류가 발생한 경우 상기 제1 프로세서 코어 및 상기 제2 프로세서 코어를 리셋하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
  13. 청구항 12에 있어서,
    상기 오류 관리 동작을 수행하는 단계는
    상기 오류가 발생한 경우 시스템에 오류발생상황을 통보하고 동작을 종료하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
  14. 청구항 12에 있어서,
    상기 오류 관리 동작을 수행하는 단계는 상기 오류가 발생한 경우 ROM을 이용하여 오류모드로 전환하는 것을 특징으로 하는 프로세서 코어 오류 감지 방법.
KR1020130054098A 2013-05-14 2013-05-14 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 KR20140134376A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130054098A KR20140134376A (ko) 2013-05-14 2013-05-14 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법
US14/208,415 US20140344619A1 (en) 2013-05-14 2014-03-13 Processor capable of detecting fault and method of detecting fault of processor core using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130054098A KR20140134376A (ko) 2013-05-14 2013-05-14 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법

Publications (1)

Publication Number Publication Date
KR20140134376A true KR20140134376A (ko) 2014-11-24

Family

ID=51896799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130054098A KR20140134376A (ko) 2013-05-14 2013-05-14 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법

Country Status (2)

Country Link
US (1) US20140344619A1 (ko)
KR (1) KR20140134376A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059683A (ko) * 2017-11-23 2019-05-31 현대오트론 주식회사 복수의 프로세서 오류 감지 시스템 및 그 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013202253A1 (de) * 2013-02-12 2014-08-14 Paravan Gmbh Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
KR101658828B1 (ko) 2015-03-23 2016-09-22 한국전자통신연구원 씨피유 코어의 기능복구를 위한 장치 및 방법
US10949203B2 (en) * 2019-06-29 2021-03-16 Intel Corporation Technologies for ensuring functional safety of an electronic device
WO2023206346A1 (en) * 2022-04-29 2023-11-02 Nvidia Corporation Detecting hardware faults in data processing pipelines

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US20070088979A1 (en) * 2005-10-14 2007-04-19 Pomaranski Ken G Hardware configurable CPU with high availability mode
DE102005055067A1 (de) * 2005-11-18 2007-05-24 Robert Bosch Gmbh Vorrichtung und Verfahren zum Beheben von Fehlern bei einem wenigstens zwei Ausführungseinheiten mit Registern aufweisenden System
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
JP5507830B2 (ja) * 2008-11-04 2014-05-28 ルネサスエレクトロニクス株式会社 マイクロコントローラ及び自動車制御装置
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
CN102822807B (zh) * 2010-03-23 2015-09-02 大陆-特韦斯贸易合伙股份公司及两合公司 控制计算机系统及其控制方法和使用
US8819485B2 (en) * 2012-03-12 2014-08-26 Infineon Technologies Ag Method and system for fault containment
US20130332778A1 (en) * 2012-06-07 2013-12-12 Vmware, Inc. Performance-imbalance-monitoring processor features
US9886277B2 (en) * 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059683A (ko) * 2017-11-23 2019-05-31 현대오트론 주식회사 복수의 프로세서 오류 감지 시스템 및 그 방법
US10891180B2 (en) 2017-11-23 2021-01-12 Hyundai Autron Co., Ltd. Multiple-processor error detection system and method thereof

Also Published As

Publication number Publication date
US20140344619A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
KR20140134376A (ko) 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법
TWI505085B (zh) 資料處理裝置的除錯(一)
JP5043560B2 (ja) プログラム実行制御装置
US9195466B2 (en) Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
CN109643346B (zh) 控制流完整性
JP2016207231A (ja) 命令エミュレーションプロセッサ、方法、およびシステム
JP7513527B2 (ja) 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納
US20150149836A1 (en) Recoverable and fault-tolerant cpu core and control method thereof
JP2022105981A (ja) 帯域内フォールトインジェクション検出機能を備えたプロセッサ
JP7232331B2 (ja) ループ終了予測器
US9575852B2 (en) Failure recovery apparatus of digital logic circuit and method thereof
US7954038B2 (en) Fault detection
US9639370B1 (en) Software instructed dynamic branch history pattern adjustment
TW201908966A (zh) 針對固定方向分支指令的分支預測
JP2008262437A (ja) プロセッサシステムおよび例外処理方法
KR101846498B1 (ko) 상태회귀 가능한 내고장성 cpu 코어 및 이의 제어방법
US10127098B2 (en) Apparatus and method for recovering functionality of central processing unit core
US20120089817A1 (en) Conditional selection of data elements
US20140344551A1 (en) Dual-mode instruction fetching apparatus and method
US11048515B2 (en) Way predictor and enable logic for instruction tightly-coupled memory and instruction cache
KR20140011940A (ko) 분기 명령 실행 캐쉬를 이용한 프로세서 및 분기 명령 실행 캐쉬를 이용한 프로세서의 동작 방법
JP2009223606A (ja) デバッグ装置およびデバッグ方法
JP2007011642A (ja) プロセッサ
JP2012043166A (ja) 演算処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application