KR101287266B1 - 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지 - Google Patents

리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지 Download PDF

Info

Publication number
KR101287266B1
KR101287266B1 KR1020127027290A KR20127027290A KR101287266B1 KR 101287266 B1 KR101287266 B1 KR 101287266B1 KR 1020127027290 A KR1020127027290 A KR 1020127027290A KR 20127027290 A KR20127027290 A KR 20127027290A KR 101287266 B1 KR101287266 B1 KR 101287266B1
Authority
KR
South Korea
Prior art keywords
processor
state
storage
entry
instructions
Prior art date
Application number
KR1020127027290A
Other languages
English (en)
Other versions
KR20120123613A (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 인텔 코오퍼레이션
Publication of KR20120123613A publication Critical patent/KR20120123613A/ko
Application granted granted Critical
Publication of KR101287266B1 publication Critical patent/KR101287266B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1691Temporal synchronisation or re-synchronisation of redundant processing components using a quantum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/46Multiprogramming arrangements
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

상태 히스토리를 이용하여 리던던트 프로세서들을 동기화시키기 위한 발명의 실시예들이 개시되어 있다. 일 실시예에서, 장치는 두 개의 프로세서, 각 프로세서에 대한 상태 스토리지 및 제어 로직을 포함한다. 각 프로세서는 동일한 인스트럭션들을 실행하기 위한 것이다. 상태 스토리지는 프로세서들에 의해 실행되는 각 인스트럭션에 대한 압축된 프로세서 상태 정보를 저장하기 위한 것이다. 제어 로직은 상태 스토리지로부터의 엔트리들에 기초하여 두 개의 프로세서들을 동기화시키기 위한 것이다.

Description

리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지{STATE HISTORY STORAGE FOR SYNCHRONIZING REDUNDANT PROCESSORS}
본 발명은 정보 처리 분야에 관한 것으로, 특히 정보 처리 시스템들 내에서의 에러 경감(error mitigation) 분야에 관한 것이다.
집적 회로 제조 기술들의 진보가 계속하여 더 큰 집적도를 제공하고 마이크로프로세서들 및 다른 데이터 처리 장치들에서의 동작 전압들을 낮춤에 따라, 이 장치들의 제조자들 및 사용자들은 소프트 에러들(soft errors)의 현상에 점진적으로 관심을 가져오고 있다. 소프트 에러들은 알파 입자들(alpha particles) 및 고-에너지 중성자들(neutrons)이 집적 회로를 가격할 때 발생하며 회로 노드들 상에 저장되는 전하들을 변화시킨다. 만약 전하 변화가 충분히 클 경우, 노드 상의 전압은 하나의 로직 상태를 나타내는 레벨로부터 다른 로직 상태를 나타내는 레벨로 변경될 수 있는데, 이 경우 그 노드 상에 저장되어 있는 정보가 변질된다. 일반적으로, 소프트 에러율은 집적도가 증가함에 따라 증가하는데, 그 이유는 많은 회로가 단일 다이(die) 내에 집적될 경우에 가격 입자(striking particle)가 다이 내의 전압 노드를 가격할 가능성이 증가하기 때문이다. 유사하게, 동작 전압이 감소함에 따라, 상이한 로직 상태들을 나타내는 전압 레벨들 간의 차가 감소하며, 이에 따라 회로 노드들 상의 로직 상태들을 변경하는데 더 적은 에너지가 요구되며 소프트 에러들이 더 많이 발생한다.
소프트 에러들을 야기하는 특정 유형의 입자들을 막는 것은 어려울 수 있으며, 따라서 데이터 처리 장치는 종종 소프트 에러들을 검출하고, 때때로 이를 정정하는 기술을 포함한다. 이러한 에러 경감 기술들은 리던던시(redundancy)를 포함한다. 리던던시를 이용하여, 둘 이상의 하드웨어 컨텍스트들(contexts)은 프로그램 또는 인스트럭션 스트림의 동일한 카피들(copies)을 실행한다. 각각의 하드웨어 컨텍스트는, 인스트럭션 스트림, 가령 멀티스레디드 프로세서(multithreaded processor) 내의 로지컬 프로세서(logical processor), 멀티코어 프로세서(multicore processor) 내의 코어(core), 멀티프로세서 시스템 내의 풀(full) 프로세서, 또는 프로세서, 시스템 메모리, 및 아마도 입력/출력(I/O) 장치들을 포함하는 풀 시스템을 실행할 수 있는 임의의 하드웨어로 이루어질 수 있다. 둘 이상의 하드웨어 컨텍스트들로부터의 출력들은 비교되며, 만약 그들이 상이한 경우, 에러가 발생했는지를 판정하고/판정하거나 에러를 핸들링하기 위해 에러 핸들링 메커니즘이 발동될 수 있다.
리던던시의 일부 구현예들에서, 둘 이상의 하드웨어 컨텍스트들은, 그들 각각이 스트림 내의 동일 인스트럭션을 동시에 실행하는 것을 의미하는 록스텝(lockstep)으로 동작한다. 리던던시의 다른 구현예들에서, 둘 이상의 하드웨어 컨텍스트들은 인스트럭션 스트림의 동일한 카피들을 실행할 수 있지만, 록스텝으로 또는 서로 동기하지는 않으며, 따라서 그들은 각각 동일한 시간에 스트림 내의 상이한 인스트럭션을 실행할 수 있다. 하드웨어 컨텍스트들이 동기하여 있지 않은 시간에서의 입력 또는 인터럽트의 전달은 하나의 컨텍스트로부터의 출력이 다른 컨텍스트로부터의 출력과 상이하게 되도록 야기할 수 있는데, 이로 인해 출력 불일치가 실제 에러로부터 초래되지 않은 경우에도, 에러 핸들러가 발동될 수 있다.
본 발명은 첨부한 도면에 제한이 아닌 예로써 도시되어 있다.
도 1은 본 발명의 일 실시예에 따른 상태 스토리지를 포함하는 시스템을 도시한다.
도 2는 본 발명의 일 실시에에 따라, 상태 이력을 사용하여 리던던트 프로세서들을 동기화하는 방법을 나타낸다.
상태 이력을 이용하여 리던던트 프로세서들을 동기화하는 본 발명의 실시예들이 기술된다. 본 명세서에서는, 본 발명의 보다 철저한 이해를 위해, 수많은 구체적인 세부사항들, 가령 프로세서 및 시스템 구성들이 설명될 것이다. 그러나, 당업자는 그러한 구체적인 세부사항들 없이도 본 발명이 실시될 수 있다는 것을 이해할 것이다. 또한, 일부 공지의 구조들, 회로들 및 다른 구성들은 불필요하게 본 발명을 모호하게 하는 것을 피하기 위해, 도시되지 않았다. 예를 들어, 리던던트 프로세서들의 제어에 대해 완전하게 기재된 것은 아닌데, 그 이유는 본 발명의 실시예들에 다수의 공지의 방법들이 이용될 수 있기 때문이다.
배경기술 섹션에서 기술한 바와 같이, 리던던시는 데이터 처리 장치들에서의 에러들의 영향을 경감시키는데 사용될 수 있다. 리던던시의 일부 실시예에서, 둘 이상의 프로세서들은 인스트럭션 스트림의 동일한 카피들을 실행할 수 있지만, 록-스텝으로 또는 서로 동기하지는 않으며, 따라서 그들은 각각 인스트럭션 스트림 내의 상이한 인스트럭션을 동시에 실행할 수 있다. 프로세서들이 동기화하여 있지 않은 경우에 입력 또는 인터럽트의 전달에 의해 야기되는 에러 핸들러의 발동을 막기 위해, 프로세서들은 입력 또는 인터럽트의 전달에 앞서 동기화될 수 있다.
프로세서들의 동기화를 위한 하나의 방법은 인스트럭션 스트림을 연속적인 인스트럭션들의 "퀀텀들(quanta)"로 분할하는 것인데, 여기서 각 퀀텀은 특정 수의 인스트럭션들로 이루어져 있다. 인스트럭션들의 퇴거(retirement)를 카운트하고, 브레이크포인트(breakpoint), 콜백(callback) 또는 각 퀀텀의 끝에서의 다른 제어 플로우를 야기하기 위해, 퍼포먼스 카운터(performance counter) 또는 다른 메카니즘이 사용될 수 있다. 그러한 각각의 퀀텀 브레이크포인트에서, 프로세서들은 동기화될 수 있으며, 그 결과 입력 또는 인터럽트가 인스트럭션 스트림 내의 정확히 동일한 인스트럭션 경계에서 각 하드웨어 컨텍스트에 전달될 수 있다. 동기화는 각 프로세서들을, 인스트럭션 실행, 단일 스텝핑 및 브레이크-포인팅(break-pointing)의 복합적 조합(complex combination)으로 이루어진 특수한 모드로 구동함으로써 수행될 수 있다.
프로세서들의 동기화에 대한 다른 방법은 맞춤형 운영 체제(custom operating system)를 사용하는 것인데, 여기서 각 프로세서는 인터럽트 수신시, 인스트럭션 스트림 내의 "랑데뷰(rendezvous)" 포인트에 대한 제안을 리던던시 제어 로직 내의 하드웨어 레지스터에 기입한다. 리던던시 제어 로직은 수용가능한 랑데뷰 포인트를 결정하고, 이를 다시 각 프로세서에 기입한다. 그런 다음, 각 프로세서는 인터럽트를, 동일한 랑데뷰 포인트에서 핸들링되도록 스케쥴링한다. 랑데뷰 포인트들은 운영 체제 및 애플리케이션들 내에 삽입되어 있는 맞춤형 코드(custom code) 내에서만 스케쥴링될 수 있다. 만약, 프로세서가 랑데뷰 포인트를 스케쥴링할 기회 없이 장시간 실행하였다면, 리던던트 프로세서들은 다른 방법, 가령, 인스트럭션 스트림을 통한 빠른 포워딩 및/또는 하나의 프로세서의 상태를 다른 프로세서에 카피하는 것에 의해 동기화될 필요가 있을 수 있다.
본 발명의 실시예들은, 상태 이력을 이용하여 프로세서들을 동기화하는 방법을 제공한다. 이 방법은, 전술한 특수한 모드로 각 프로세서를 구동하는 것보다는 덜 복잡하며 전술한 랑데뷰 포인트 방법과 같은 맞춤형 운영 체제를 필요로 하지 않기 때문에, 바람직할 수 있다.
도 1은 본 발명의 일 실시예에 따른 정보 처리 시스템(100)을 도시한다. 시스템(100)은 프로세서들(110, 120), 상태 스토리지들(130, 140), 리던던시 로직(150), 및 I/O 장치(160)를 포함한다. 시스템(100)은 또한, 임의의 수의 부가적인 프로세서들, 장치들, 메모리들, 또는 다른 컴포넌트들 또는 로직을 포함할 수도 있다.
프로세서들(110, 120) 각각은 범용 마이크로프로세서, 가령, Intel? Pentium? 프로세서군, Itanium? 프로세서군, 또는 Intel? Corporation의 다른 프로세서군, 또는 다른 회사의 다른 프로세서, 또는 특수 목적의 프로세서 또는 마이크로컨트롤러를 포함하는 임의의 유형의 프로세서일 수 있다. 프로세서들(110, 120) 각각은 다수의 쓰레드들(threads) 및 다수의 실행 코어들을 임의의 조합으로 포함할 수 있다.
I/O 장치(160)는 임의의 수의 임의의 유형의 I/O 장치, 주변 장치, 또는 키보드, 마우스, 트랙볼(trackball), 포인팅 장치(pointing device), 모니터, 프린터, 미디어 카드(media card), 네트워크 인터페이스, 정보 저장 장치 등의 다른 장치, 또는 인터럽트 또는 다른 입력을 프로세서에 제공할 수 있는 임의의 다른 장치를 나타낼 수 있다. I/O 장치(160)는 별개의 컴포넌트에 구현될 수 있거나, 또는 통합된 컴포넌트 내에 임의의 다른 장치들과 함께 포함될 수 있다. 일 실시예에서, I/O 장치(150)는 다기능 I/O 장치, 주변 장치 또는 다른 장치 내에서의 단일 기능을 나타낼 수 있다.
리던던시 로직(150)은, 프로세서들(110, 120)이, 프로세서들(110, 120) 및 시스템(100) 내의 임의의 다른 리던던트 프로세서들의 리던던트 동작들을 가능하게 하거나, 돕거나 또는 지원하게 해주는 임의의 회로, 로직 또는 다른 구조들을 포함할 수 있다. 도 1의 실시예에서, 리던던시 로직(150)은 입력 레플리케이터(replicator)(152), 출력 비교기(154), 상태 비교기(156), 및 제어 로직(158)을 포함한다. 입력 레플리케이터(152)는 프로세서들(110, 120)에 전달될 인터럽트들 또는 다른 입력들을 I/O 장치(150)로부터 복제하기 위한 것이다. 출력 비교기(154)는 프로세서(110)로부터의 출력들을 프로세서(120)로부터의 출력들과 비교한다. 상태 비교기(156)는, 이하에서 설명되는 바와 같이, 프로세서(110)로부터의 상태 정보를 프로세서(120)로부터의 상태 정보와 비교한다. 제어 로직(158)은 입력들의 복제, 출력들의 비교, 출력 불일치의 핸들링, 에러 핸들러의 발동, 상태 정보의 비교, 프로세서들(110, 120)의 동기화를 제어하고, 그 외에도 프로세서들(110, 120)의 리던던트 동작들을 제어한다. 입력들의 복제, 출력들의 비교, 출력 불일치들의 핸들링, 에러 핸들러의 발동, 본 명세서에는 기재되어 있지 아니한 동기화의 제어, 및 프로세서들(110, 120)의 리던던트 동작의 임의의 다른 제어는, 본 명세서에서 달리 기술되지 않는다면, 임의의 공지의 방법에 따라 수행될 수 있다.
상태 스토리지들(130, 140)은 각각 프로세서들(110, 120)에 대한 상태 정보를 저장하기 위한 것이다. 상태 스토리지들(130, 140)은 임의의 유형의 메모리, 가령, 정적 랜덤 액세스 메모리(static random access memory), 또는 임의의 다른 유형의 정보 스토리지 매체를 포함할 수 있다. 상태 스토리지들(130, 140)은 프로세서들(110, 120) 내에 포함될 수 있거나 프로세서들(110, 120)과 분리될 수 있으며, 서로 결합되거나 또는 서로 분리될 수 있다.
상태 스토리지(130)는, 가령, 퀀텀과 같은, 인스트럭션 스트림의 적어도 일부 내의 각 인스트럭션에 대한 엔트리를 저장하기 위한 것이다. 예를 들어, 만약 퀀텀이 1,000개의 인스트럭션들을 포함한다면, 상태 스토리지(130)는 1,000개의 엔트리들을 위한 스토리지를 포함한다. 유사하게, 상태 스토리지(140)는 퀀텀과 같은 인스트럭션 스트림의 적어도 일부 내의 각 인스트럭션에 대한 엔트리를 저장하기 위한 것이다. 각 엔트리는, 후술되는 바와 같이, 인스트럭션에 대응하는 프로세서의 상태에 관한 정보를 포함하기 위한 것이다. 따라서, 인스트럭션 스트림의 임의의 퀀텀에 대해, 상태 스토리지(130)는 프로세서(110)의 상태 이력을 저장할 수 있으며, 상태 스토리지(140)는 프로세서(120)의 상태 이력을 저장할 수 있다. 또한, 각 엔트리 또는 엔트리 위치는, 인덱스, 식별자, 또는 엔트리를 인스트럭션과 연관시키기 위한 다른 수단을 포함할 수 있고/있거나, 상기 연관은 상태 스토리지들(130, 140)의 구성에 의해 암시될 수 있다. 예를 들어, 상태 스토리지(130) 내의 제1 엔트리 위치는 퀀텀 내에서 퇴거된 제1 인스트럭션과 연관될 수 있는 식이다.
일 실시예에서, 상태 스토리지(130)는, 프로세서(110)가 인스트럭션을 퇴거 또는 위탁할 때마다, 프로세서(110)의 전체 상태를 나타내는 엔트리를 저장하기 위한 것이며, 상태 스토리지(140)는 프로세서(120)가 인스트럭션을 퇴거 또는 위탁할 때마다 프로세서(120)의 전체 상태를 나타내는 엔트리를 저장하기 위한 것이다. 저장되는 정보는 프로세서의 상태를 반영하기 위한 것이며, 이에 따라 상기 정보는 프로세서(110)의 상태가 프로세서(120)의 상태와 일치하는지를 결정하기 위해 다른 프로세서의 상태를 나타내는 정보와 비교된다. 예를 들어, 정보는 모든 프로세서 레지스터들의 컨텐츠 또는 프로세서 내의 다른 스토리지 위치들에 포함하거나 또는 그들로부터 도출될 수 있다.
상태 스토리지들(130, 140)의 크기와 상태 비교기(156)의 복잡도를 줄이기 위해, 각 퇴거된 인스트럭션에 대응하는 상태 정보는 그것을 저장하기에 앞서 디지털 서명(digital signature), 해시 값(hash value), 지문으로 압축되거나 또는 다른 공지의 방법에 따라 압축될 수 있다. 일 실시예에서, 퇴거된 인스트럭션에 대한 상태 정보는 이전에 퇴거된 인스트럭션으로부터의 상태 변화들만을 포함할 수 있다. 압축 또는 코딩, 및/또는 상태 정보의 스토리지를 제어하기 위해, 프로세서(110, 120)는 지문 생성 로직(112, 122)을 각각 포함할 수 있다.
상태 비교기(154)의 구현은 상태 스토리지들(130, 140)의 엔트리들의 포맷에 따라 달라진다. 예를 들어, 각 엔트리가 이전 상태에 대한 모든 변화들을 개괄하는 주기적 리던던시 검사 기능(cyclic redundancy check function)을 이용하여 산출되는 16비트 지문인 경우, 그러한 두 개의 엔트리는 16비트 비교기를 이용하여 비교될 수 있다.
도 2는 본 발명의 실시예에 따라 상태 히스토리를 사용하여 프로세서들을 동기시키기 위한 방법(200)을 도시한다. 이와 관련하여, 방법 실시예들이 한정되는 것은 아니지만, 도 2의 방법 실시예의 설명에서 도 1의 시스템 실시예의 구성요소들이 참조될 수 있다. 방법(200)의 부분들 또는 모두가 제어 로직(158) 또는 시스템(100) 내의 또는 그 시스템에 액세스가능한 임의의 다른 제어 로직에 의해 수행되거나, 또는 수행되도록 야기될 수 있고, 여기서 제어 로직은 임의의 유형의 회로, 로직, 또는 마이크로코드, 하드-와이어드 로직, 프로그래머블 로직 또는 펌 웨어같은 다른 구조를 포함할 수 있다.
박스(210)에서, 프로세서(110)는 인스트럭션 스트림 또는 인스트럭션 스트림의 일부의 실행을 시작한다. 박스(212)에서, 프로세서(112)는 인스트럭션 스트림 또는 인스트럭션 스트림의 일부를 중복하여 실행하는 것을 시작하는데, 환언하면, 프로세서(112)는 프로세서(110)가 박스(210)에서 인스트럭션 스트림의 실행을 시작한 동일한 상태에서부터, 그리고 인스트럭션 스트림 내의 동일한 인스트럭션 경계에서 실행을 시작한다.
박스(220 및 222)에서, 프로세서들(110 및 112)은 각각 인스트럭션 스트림을 중복하여 실행하는 것을 계속하지만, 록스텝(lock-step) 또는 서로 동기하지는 않는데, 즉, 각각의 프로세서는 다른 프로세서와는 독립적으로 인스트럭션들을 실행하도록 허여되어서, 그들 프로세서들은 각각 스트림 내의 상이한 인스트럭션을 동시에 실행할 수 있고, 및/또는 스트림 내의 동일한 인스트럭션을 서로 다른 시간에 실행할 수 있다. 예를 들면, 타이밍 및/또는 인스트럭션들의 실행 또는 퇴거(retirement)의 순서는 프로세서들 간에 상이할 수 있다. 프로세서(110 및 112)의 리던던트 동작 동안 중 언제라도 출력 부정합이 존재한다면, 임의의 공지된 접근법에 따라 핸들링될 수 있다.
더욱이, 박스(220)에서, 인스트럭션이 프로세서(110)에 의해 퇴거될 때마다, 지문 생성 로직(112)에 의해 프로세서 상태의 지문(fingerprint)이 생성되고, 상태 스토리지(130)에 저장된다. 유사하게, 박스(222)에서, 인스트럭션이 프로세서(120)에 의해 퇴거될 때마다, 지문 생성 로직(122)에 의해 프로세서 상태의 지문이 생성되고, 상태 스토리지(140)에 저장된다.
박스(230)에서, 프로세서(110)는 퀀텀 내의 마지막 인스트럭션을 퇴거시킨다. 박스(232)에서, 프로세서(112)는 퀀텀 내의 마지막 인스트럭션을 퇴거시킨다.
박스(240)에서, 프로세서(110)의 상태 히스토리는, 가장 최근의 정합을 찾는 것을 목적으로, 프로세서(120)의 상태 히스토리에 비교된다. 박스(240)는 상태 스토리지(130)에 있는 적어도 하나의 엔트리를 상태 스토리지(140)에 있는 적어도 하나의 엔트리와 비교하는 것을 포함하고, 다수의 상이한 접근법들에 따라 수행될 수 있다. 일 실시예에서, 상태 스토리지(130) 내의 엔트리들의 그룹에 있는 모든 엔트리가 상태 스토리지(140) 내의 엔트리들의 그룹에 있는 모든 엔트리와 병렬로 비교될 수 있다. 하나보다 큰 정합이 발견되면, 가장 최근의 엔트리들을 포함하는 정합이 선택될 수 있다. 또 다른 실시예에서, 상태 스토리지들(130 또는 140) 중 하나에 있는 엔트리들은, 가장 최근의 엔트리들에서 시작하여 한 번에 하나씩 정합이 발견될 때까지, 상태 스토리지(130 또는 140) 중 다른 것에 있는 엔트리들과 비교될 수 있다. 예를 들면, 상태 스토리지(130)에 있는 가장 최근의 엔트리가 상태 스토리지(140)에 있는 가장 최근의 엔트리에 비교되고, 다음에는 상태 스토리지(140)에 있는 그 다음의 가장 최근 엔트리 등에 비교될 수 있고, 정합이 발견되지 않으면, 상태 스토리지(130)에 있는 그 다음의 가장 최근 엔트리가 상태 스토리지(140)에 있는 가장 최근 엔트리에 비교될 수 있고, 다음에는 상태 스토리지(140)에 있는 그 다음의 가장 최근 엔트리 등에 비교될 수 있다.
박스(240)로부터, 정합이 발견되지 않으면, 박스(250)에서, 에러 핸들러가 발동될 수 있다.
박스(240)로부터, 정합이 발견되면, 박스(260)에서, 프로세서들(110 및 120)은, 박스(240)에서 발견된 정합에 기초하여, 동일한 인스트럭션 경계(instruction boundary)로 동기된다. 엔트리들이 정합하기 때문에, 그들 모두 동일한 퇴거된 인스트럭션과 연관되어 있고, 따라서, 각각의 프로세서는, 필요하다면, 백업되거나, 롤백되거나(rolled back), 또는 그렇지 않으면, 임의의 공지된 접근법에 따라, 과거 상태를 복원하는 것을 포함할 수 있는 그 인스트럭션 경계로부터 실행을 시작하도록 설정될 수 있다. 본 발명의 실시예들은 프로세서들(110 및 120)의 과거 상태를 각각 복원하기 위한 상태 스토리지(130 및 140)로부터의 정보를 사용하는 것을 포함할 수 있다.
박스(270)에서, 인터럽트 또는 입력이 프로세서들(110 및 120)에게 전달된다.
박스(270)로부터, 방법(200)은 박스들(210 및 212)로 계속되고, 박스(260)에서 동기된 상태로, 프로세서들(110 및 112)은 동일한 퇴거된 인스트럭션 경계로부터 실행을 시작한다. 따라서, 인터럽트 또는 입력의 전달 타이밍은 프로세서들(110 및 120) 간에 상이하지 않다.
본 발명의 범위 내에서, 도 2에 도시된 방법은 상이한 순서로, 도시된 박스들이 생략된 채로, 부가의 박스들이 부가된 채로, 또는 재순서가 매겨지거나, 생략되거나 또는 부가된 박스들의 조합으로 수행될 수 있다.
프로세서들(110 및 120), 또는 본 발명의 실시예에 따라 설계된 임의의 다른 컴포넌트 또는 컴포넌트의 일부는 창작에서부터 시뮬레이션하고 제조하는 다양한 스테이지들에서 설계될 수 있다. 설계를 나타내는 데이터는 다수의 방식으로 설계를 나타낼 수 있다. 첫 번째로, 시뮬레이션들에서 유용한 바와 같이, 하드웨어는 하드웨어 기술 언어(hardware description language) 또는 또 다른 기능적 기술 언어를 사용하여 나타내어질 수 있다. 부가하여 또는 대안으로, 로직을 갖는 회로 레벨 모델 및/또는 트랜지스터 게이트들은 설계 프로세스의 몇몇 스테이지들에서 생산될 수 있다. 더욱이, 최신 설계들은, 몇몇 스테이지에서, 다양한 디바이스들의 물리적 배치를 나타내는 데이터로 모델링될 수 있는 레벨에 도달된다. 종래의 반도체 제조 기술들이 사용되는 경우에, 디바이스 배치 모델을 나타내는 데이터는, 집적 회로를 생산하는데 사용되는 마스크들을 위해 상이한 마스크 층들에 대한 다양한 특징들의 존부를 지정하는 데이터일 수 있다.
설계의 임의의 표현에 있어서, 데이터는 임의의 형태의 머신-판독가능 매체에 저장될 수 있다. 그러한 정보를 전송하도록 변조되거나 생성된 광학 또는 전기파, 메모리, 또는 디스크 같은 자기 또는 광학 스토리지 매체가 머신-판독가능 매체일 수 있다. 임의의 이들 매체는 설계, 또는 본 발명의 실시예에서 사용되는 다른 정보를 "전달하거나" 또는 "나타낼 수 있다". 정보를 나타내거나 또는 전달하는 전기 반송파가 전송될 때, 전기 신호의 복사(copying), 버퍼링, 또는 재전송이 수행되는 범위 내에서, 새로운 카피가 만들어진다. 따라서, 통신 제공자 또는 네트워크 제공자의 액션들은 본 발명의 기술들을 구체화하는 제품, 예를 들면, 반송파의 카피들을 만드는 것을 구성할 수 있다.
따라서, 상태 히스토리를 사용하여 리던던트 프로세서들을 동기시키기 위한 본 발명의 실시예들이 설명되었다. 특정 실시예들이 설명되고, 첨부 도면들이 도시되었지만, 그러한 실시예들은 단지 예시적인 것이고 광의의 발명을 국한하는 것은 아니며, 또한 본 발명은, 당업자가 본 개시를 읽으면 다양한 다른 수정예들이 발생할 수 있기 때문에, 도시되고 설명된 특정 구성들 및 배치들에 한정되는 것은 아니라는 것이 이해되어야 한다. 빠르게 성장하고 추가의 향상이 용이하게 예견되지 않는 이와 같은 기술 영역에서, 개시된 실시예들은 본 개시의 원리들 또는 첨부된 청구범위를 벗어나지 않고 기술적 향상들을 가능하게 함으로써 배치 및 상세를 용이하게 수정가능하다.

Claims (20)

  1. 퀀텀(quantum) 내의 복수의 인스트럭션들을 실행하기 위한 제1 프로세서;
    상기 퀀텀에 대한 상기 제1 프로세서의 상태의 이력을 저장하기 위한 제1 스토리지(storage) - 상기 제1 스토리지는 상기 복수의 인스트럭션들로부터 상기 제1 프로세서에 의해 실행되는 인스트럭션에 대한 상기 제1 프로세서의 상태에 관한 정보를 각각 저장하기 위한 복수의 엔트리들을 포함함 - ;
    상기 퀀텀 내의 상기 복수의 인스트럭션들을 실행하기 위한 제2 프로세서;
    상기 퀀텀에 대한 상기 제2 프로세서의 상태의 이력을 저장하기 위한 제2 스토리지 - 상기 제2 스토리지는 상기 복수의 인스트럭션들로부터 상기 제2 프로세서에 의해 실행되는 각 인스트럭션에 대한 상기 제2 프로세서의 상태에 관한 정보를 각각 저장하기 위한 복수의 엔트리들을 포함함 - ;
    상기 제1 스토리지 내의 엔트리와 상기 제2 스토리지 내의 엔트리를 비교하기 위한 비교기; 및
    상기 제1 스토리지로부터의 적어도 하나의 엔트리 및 상기 제2 스토리지로부터의 적어도 하나의 엔트리에 근거하여 상기 제1 프로세서와 상기 제2 프로세서를 동기화시키기 위한 제어기
    를 포함하는 장치.
  2. 제1항에 있어서,
    상기 제1 스토리지는 상기 복수의 인스트럭션들로부터 상기 제1 프로세서에 의해 퇴거된(retired) 각 인스트럭션에 대한 상기 제1 프로세서의 전체 상태를 저장하기 위한 것이며, 상기 제2 스토리지는 상기 복수의 인스트럭션들로부터 상기 제2 프로세서에 의해 퇴거된 각 인스트럭션에 대한 상기 제2 프로세서의 전체 상태를 저장하기 위한 것인 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 제어기는, 상기 비교기가 매치(match)를 나타내는 것에 근거하여 상기 제1 프로세서와 상기 제2 프로세서를 동기화시키기 위한 것인 장치.
  5. 제1항에 있어서,
    상기 제어기는 상기 제1 프로세서와 상기 제2 프로세서를 동기화시켜 동일한 인스트럭션 경계(boundary)로부터 실행을 시작하기 위한 것인 장치.
  6. 제5항에 있어서,
    상기 제1 프로세서 및 상기 제2 프로세서에 전달될 입력을 복제하기 위한 입력 레플리케이터(input replicator)를 더 포함하는 장치.
  7. 제6항에 있어서,
    상기 제어기는 또한, 상기 제1 프로세서와 상기 제2 프로세서를 동기화시킨 후 상기 제1 프로세서 및 상기 제2 프로세서에 복제된 입력을 전달하기 위한 것인 장치.
  8. 제7항에 있어서,
    상기 복제된 입력은 인터럽트인 장치.
  9. 제1항에 있어서,
    상기 제어기는, 상기 제1 프로세서와 상기 제2 프로세서를 동기화시켜 동일한 상태로부터 실행을 시작하기 위한 것인 장치.
  10. 제9항에 있어서,
    상기 제어기는, 상기 제1 프로세서와 상기 제2 프로세서를 동기화시켜, 상기 제1 스토리지로부터의 상기 제1 프로세서 및 상기 제2 스토리지로부터의 상기 제2 프로세서 중 하나의 상태를 복원함으로써 동일한 상태로부터 실행을 시작하기 위한 것인 장치.
  11. 제1항에 있어서,
    상기 제1 프로세서는 상기 제1 프로세서 상태 정보를 압축 및 저장하기 위한 제1 상태 스토리지 로직을 포함하며, 상기 제2 프로세서는 상기 제2 프로세서 상태 정보를 압축 및 저장하기 위한 제2 상태 스토리지 로직을 포함하는 장치.
  12. 제1 프로세서에 의해, 복수의 인스트럭션들을 실행하는 단계;
    제2 프로세서에 의해, 상기 복수의 인스트럭션들을 실행하는 단계;
    상기 제1 프로세서에 의해, 제1 상태 스토리지의 엔트리에, 상기 복수의 인스트럭션들 내의 각 인스트럭션의 퇴거(retirement)시의 상기 제1 프로세서의 상태를 나타내는 정보를 저장하는 단계;
    상기 제2 프로세서에 의해, 제2 상태 스토리지의 엔트리에, 상기 복수의 인스트럭션들 내의 각 인스트럭션의 상기 퇴거시의 상기 제2 프로세서의 상태를 나타내는 정보를 저장하는 단계;
    상기 제1 프로세서의 과거 상태를 나타내는 상기 저장된 정보와 상기 제2 프로세서의 과거 상태를 나타내는 상기 저장된 정보를 비교하는 단계; 및
    상기 제1 상태 스토리지의 엔트리에 저장된 정보와 상기 제2 상태 스토리지의 엔트리에 저장된 정보에 근거하여 상기 제1 프로세서와 상기 제2 프로세서를 동기화시키는 단계
    를 포함하는 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 동기화 단계는, 상기 제1 프로세서의 과거 상태를 나타내는 상기 저장된 정보와 상기 제2 프로세서의 과거 상태를 나타내는 상기 저장된 정보 사이의 매치에 근거하는 방법.
  15. 제14항에 있어서,
    상기 동기화 단계는, 상기 제1 프로세서 및 상기 제2 프로세서가 상기 매치에 의해 표시된 인스트럭션 경계로부터 실행을 시작하게 하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    동기화 후에, 그리고 상기 매치에 의해 표시된 인스트럭션 경계로부터 실행을 시작하기 전에, 상기 제1 프로세서 및 상기 제2 프로세서에 입력을 전달하는 단계를 더 포함하는 방법.
  17. 제16항에 있어서,
    상기 동기화 단계는, 상기 제1 프로세서의 과거 상태를 나타내는 상기 저장된 정보로부터의 제1 프로세서, 및 상기 제2 프로세서의 과거 상태를 나타내는 상기 저장된 정보로부터의 제2 프로세서 중 하나의 상태를 복원하는 단계를 포함하는 방법.
  18. 프로세서로서,
    복수의 인스트럭션들을 실행하기 위한 실행 코어; 및
    상기 실행 코어에 의해 퇴거된 각 인스트럭션에 대한 전체 상태 정보를 저장하기 위한 스토리지 - 상기 스토리지는 상기 프로세서와 리던던트 프로세서를 동기화시키기 위한 제어기에 액세스가능하며, 상기 제어기는 상기 스토리지로부터의 적어도 하나의 엔트리 및 상기 리던던트 프로세서와 연관된 스토리지로부터의 적어도 하나의 엔트리에 근거하여 상기 프로세서와 상기 리던던트 프로세서를 동기화시키기 위한 것임 -
    를 포함하는 프로세서.
  19. 제18항에 있어서,
    상기 전체 상태 정보를 저장하기 위한 로직을 더 포함하는 프로세서.
  20. 제18항에 있어서,
    상기 실행 코어의 과거 상태를 나타내는 저장된 정보 및 상기 리던던트 프로세서의 과거 상태를 나타내는 저장된 정보에 근거하여 상기 프로세서와 상기 리던던트 프로세서를 동기화시키는 동기화 로직을 더 포함하는 프로세서.
KR1020127027290A 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지 KR101287266B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/347,961 US8171328B2 (en) 2008-12-31 2008-12-31 State history storage for synchronizing redundant processors
US12/347,961 2008-12-31
PCT/US2009/069384 WO2010078187A2 (en) 2008-12-31 2009-12-23 State history storage for synchronizing redundant processors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117007649A Division KR101264494B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137000959A Division KR101351183B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지

Publications (2)

Publication Number Publication Date
KR20120123613A KR20120123613A (ko) 2012-11-08
KR101287266B1 true KR101287266B1 (ko) 2013-07-17

Family

ID=42286373

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020117007649A KR101264494B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지
KR1020137000959A KR101351183B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지
KR1020127027290A KR101287266B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020117007649A KR101264494B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지
KR1020137000959A KR101351183B1 (ko) 2008-12-31 2009-12-23 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지

Country Status (6)

Country Link
US (1) US8171328B2 (ko)
JP (2) JP2012514257A (ko)
KR (3) KR101264494B1 (ko)
CN (1) CN101876929B (ko)
TW (1) TWI443577B (ko)
WO (1) WO2010078187A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171328B2 (en) 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
US20100318746A1 (en) * 2009-06-12 2010-12-16 Seakr Engineering, Incorporated Memory change track logging
DE102009054637A1 (de) * 2009-12-15 2011-06-16 Robert Bosch Gmbh Verfahren zum Betreiben einer Recheneinheit
US8806269B2 (en) * 2011-06-28 2014-08-12 International Business Machines Corporation Unified, workload-optimized, adaptive RAS for hybrid systems
US8788871B2 (en) * 2011-06-28 2014-07-22 International Business Machines Corporation Unified, workload-optimized, adaptive RAS for hybrid systems
US8935694B2 (en) * 2012-01-23 2015-01-13 International Business Machines Corporation System and method for selectively saving and restoring state of branch prediction logic through separate hypervisor-mode and guest-mode and/or user-mode instructions
US9032191B2 (en) 2012-01-23 2015-05-12 International Business Machines Corporation Virtualization support for branch prediction logic enable / disable at hypervisor and guest operating system levels
US8880961B2 (en) * 2012-01-31 2014-11-04 Infineon Technologies Ag System and method of computation by signature analysis
US8799710B2 (en) * 2012-06-28 2014-08-05 International Business Machines Corporation 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits
US9292464B2 (en) * 2012-12-13 2016-03-22 Coherent Logix, Incorporated Multiprocessor system with improved secondary interconnection network
US9274904B2 (en) * 2013-06-18 2016-03-01 Advanced Micro Devices, Inc. Software only inter-compute unit redundant multithreading for GPUs
US9959284B2 (en) * 2014-01-10 2018-05-01 Appex Networks Holding Limited System and method for synchronizing history data for compression and decompression
US10346272B2 (en) * 2016-11-01 2019-07-09 At&T Intellectual Property I, L.P. Failure management for data streaming processing system
CN112424753A (zh) * 2018-07-18 2021-02-26 三垦电气株式会社 多核系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111593A1 (en) 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
KR20080098683A (ko) * 2006-03-31 2008-11-11 인텔 코오퍼레이션 새로운 선택적 구현에 의한 일시적 에러의 검출

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
JPH04352240A (ja) * 1991-05-30 1992-12-07 Nec Corp 情報処理装置
JPH0652004A (ja) * 1992-08-04 1994-02-25 Yokogawa Electric Corp ペアcpu装置
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
JPH0773059A (ja) * 1993-03-02 1995-03-17 Tandem Comput Inc フォールトトレラント型コンピュータシステム
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6751749B2 (en) * 2001-02-22 2004-06-15 International Business Machines Corporation Method and apparatus for computer system reliability
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP4155088B2 (ja) * 2003-04-18 2008-09-24 日本電気株式会社 情報処理装置
US7467327B2 (en) * 2005-01-25 2008-12-16 Hewlett-Packard Development Company, L.P. Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US20080126819A1 (en) * 2006-11-29 2008-05-29 International Business Machines Corporation Method for dynamic redundancy of processing units
FR2912526B1 (fr) * 2007-02-13 2009-04-17 Thales Sa Procede de maintien du synchronisme d'execution entre plusieurs processeurs asynchrones fonctionnant en parallele de maniere redondante.
US8171328B2 (en) 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111593A1 (en) 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
KR20080098683A (ko) * 2006-03-31 2008-11-11 인텔 코오퍼레이션 새로운 선택적 구현에 의한 일시적 에러의 검출

Also Published As

Publication number Publication date
CN101876929B (zh) 2014-07-23
JP2012514257A (ja) 2012-06-21
JP2014160483A (ja) 2014-09-04
KR20110050717A (ko) 2011-05-16
US8171328B2 (en) 2012-05-01
US20100169693A1 (en) 2010-07-01
WO2010078187A3 (en) 2010-10-21
KR101351183B1 (ko) 2014-01-14
KR101264494B1 (ko) 2013-05-14
WO2010078187A2 (en) 2010-07-08
KR20120123613A (ko) 2012-11-08
KR20130012591A (ko) 2013-02-04
JP6272719B2 (ja) 2018-01-31
TW201030611A (en) 2010-08-16
CN101876929A (zh) 2010-11-03
TWI443577B (zh) 2014-07-01

Similar Documents

Publication Publication Date Title
KR101287266B1 (ko) 리던던트 프로세서들을 동기화시키기 위한 상태 이력 스토리지
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
RU2385484C2 (ru) Уменьшение частоты появления некорректируемых ошибок в системе двухмодульной избыточности в жесткой конфигурации
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
US7373548B2 (en) Hardware recovery in a multi-threaded architecture
CN103197919B (zh) 用于还原寄存器重命名映射的方法和装置
Benoit et al. Assessing general-purpose algorithms to cope with fail-stop and silent errors
US10601890B2 (en) Recoverable stream processing
JP2005166057A (ja) 障害検出コンピュータシステム
KR101697038B1 (ko) 파이프라이닝된 소프트웨어의 동적 최적화
US10037212B2 (en) Information processing device and method for protecting data in a call stack
CN106095390A (zh) 实时系统的容错处理器
Hukerikar et al. An evaluation of lazy fault detection based on adaptive redundant multithreading
Gao et al. Using explicit output comparisons for fault tolerant scheduling (FTS) on modern high-performance processors
Rebaudengo et al. Software-level soft-error mitigation techniques
Fang et al. ABFR: convenient management of latent error resilience using application knowledge
Haas Fault-tolerant execution of parallel applications on x86 multi-core processors with hardware transactional memory
CN107193692B (zh) 基于检查点的计算机的容错方法
TW202418068A (zh) 處理器及自處理器偵測軟錯誤的方法
Veleski A cross-layer framework for adaptive processor-based systems regarding error resilience and power efficiency
Chen et al. Synthesis of resilient circuits from guarded atomic actions
CN117724765A (zh) 处理器和从处理器检测软错误的方法
Teranishi et al. An Evaluation of Lazy Fault Detection based on Adaptive Redundant Multithreading.

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee