KR920001997B1 - 계산 시스템내의 고장 회복 방법 및 장치 - Google Patents

계산 시스템내의 고장 회복 방법 및 장치 Download PDF

Info

Publication number
KR920001997B1
KR920001997B1 KR1019860005170A KR860005170A KR920001997B1 KR 920001997 B1 KR920001997 B1 KR 920001997B1 KR 1019860005170 A KR1019860005170 A KR 1019860005170A KR 860005170 A KR860005170 A KR 860005170A KR 920001997 B1 KR920001997 B1 KR 920001997B1
Authority
KR
South Korea
Prior art keywords
decision
execution sequence
point
instruction
mapping
Prior art date
Application number
KR1019860005170A
Other languages
English (en)
Other versions
KR870002504A (ko
Inventor
제이 프레몬트 마이클
Original Assignee
휴렛트-팩카드 캄파니
에스. 티. 잭 브리햄 3세
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 휴렛트-팩카드 캄파니, 에스. 티. 잭 브리햄 3세 filed Critical 휴렛트-팩카드 캄파니
Publication of KR870002504A publication Critical patent/KR870002504A/ko
Application granted granted Critical
Publication of KR920001997B1 publication Critical patent/KR920001997B1/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/14Error detection or correction of the data by redundancy in operation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

내용 없음.

Description

계산 시스템내의 고장 회복 방법 및 장치
제1도는 계산시스템내의 회복 계수기 장치 및 접속부를 도시한 계통도.
제2도는 비동기 사상들을 분류하기 위한 명확한 계층을 도시한 계통도.
제3도는 기계 명령의 전형적인 실행순차 및 기계명령의 대응하는 재-실행 순차를 도시한 도면.
제4도는 고장 발생으로 인한 시스템 회복을 준비하기 위해 기계명령 실행중에 취해진 스텝들을 도시한 플로우챠트.
제5도는 고장 회복을 달성하기 위해 고장검출 스템 다음에 취해진 스텝들을 도시한 플로우챠트.
제6도는 기계명령의 전형적인 실행 순차 및 재-실행 순차를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
100 : 회복계수기 101 : 계산시스템
102 : 회복계수기 값 103 : 프로세서 제어블럭
104 : 프로세서 105 : 국부 데이타
106 : 엔에이블링/디스에이블링 비트 107 : 파일데이타
108 : 프로세서상태워드 109, 116 : 디스크
112 : 상위 비트 114 : 트랩처리기
118 : 검사점 시스템 상태 리셋터 120 : 사상 시뮬레이터
122 : 사상처리기 123 : 사상등재기
124 : 고장고정기 200 : 비동기사상
202 : 결정사상 204, 326, 334 : 비-결정사상
206, 318, 622, 626, 660 : 재발사상 208, 334 : 비-재발사상
210 : 초기재발사상 212 : 최근재발사상
300, 602 : 실행순차 302, 606 : 재-실행순차
304, 320, 328, 336, 344, 357, 380, 384, 612, 616, 628, 632, 644, 650, 662 : 명령지점
305, 610 : 검사점 시스템 상태
306, 308-316, 323, 330-333, 338-340, 354, 358, 359, 363. 364, 368-371, 374, 376, 378, 379, 383, 386 : 기계명령
본 발명은 고장 허용 계산시스템(fault tolerant computing system)에 관한 것이다. 특히, 본 발명은 계산시스템내에서 검출된 고장발생으로부터 회복하는 방법에 관한 것이다. 고장발생은 기계명령 실행중에 일어나, 데이타 또는 후속 기계명령 실행을 무효화시킨다. 계산시스템을 전체적으로 정지시켜 리부트(reboot)시키지 않고서, 데이타 및 후속 기계명령 실행이 유효화된다는 것을 보증한 최소 혼란으로 기계명령 회복 및 실행을 계속하는 것이 바람직하다.
계산시스템은 시스템 상태라고 부르는 한 셋트의 속성에 의해 특성화된다. 시스템 상태는 프로세스 제어 블럭 및 프로세스 억세스 가능한 국부데이타로 구성되는 프로세스 데이타, 및 데이타베이스 파일(database file)과 같은 영구 데이타로 구성되는 파일 데이타를 포함한다.
종래의 회복 기법들은 고장발생으로부터 단지 부분적으로 회복되었다. 고장발생이 완전히 종료되었거나 완전히 원상태로 되기 전에 소정의 파일 데이타 변경동작이 시작되었다. 종래의 회복기법들은, 검사점(checkpoint)에서, 이 검사점에 존재하는 시스템 상태인 검사점 시스템 상태를 완전히 복원시키기에 충분한 데이타를 주기적으로 기록하였다.
고장이 검출되었을때, 이미 실행된 파일변경동작은 파일 변경을 나타내는 이미 등재(log)된 정보를 통해 역실행함으로써 원상태로 되었다. 계산시스템은 최종 검사점 시스템 상태로서 정의된 가장 최근에 기록된 검사점 시스템 상태로 리셋트되었다.
전형적으로, 종래의 회복 기법은 파일 데이타를 고장발생 직전에 존재하는 동일한 상태로 복원시키지 못했다. 고장발생전에 파일 데이타 변경동작을 종료하지 못한 프로세스들은 포기되어 재개시되지 않았다. 최종 시스템 상태로서 정의된 고장회복을 완료함으로써 도달된 시스템상태는 전형적으로 예비-고장시스템 상태가 아니었다. 이 예비-고장시스템 상태는 고장발생 직전에 존재하는 시스템상태이다. 최종 시스템 상태는 때로 최종 검사점 시스템 상태이었다.
종래의 회복 기법은 고장 허용한계를 제공하기 위해 모듈러 용장도(modular redundancy)를 사용하였다. 동일한 코드를 실행하는 2개 이상의 프로세서들이 병렬로 실행되었다. 주기적인 검사점에서, 병렬 결과들이 비교되었다. 이 결과들이 상이하다는 것이 발견되면, 중재 기법이 이 병렬 결과들 사이를 선택하였다. 모듈러 용장성은 고가였다. 즉, 복제 하드웨어는 가격이 너무 비쌌다.
종래 기술내에서, 한기법은 도달될 예비-고장시스템 상태와 동일한 최종 시스템 상태를 엔에이블시켰다. 검사점들은 반복가능한 I/O 동작이 실행될 각각의 저점전에 삽입되었다. 각각의 검사점에서, 사용자는 검사점 시스템 상태를 복원시키기에 충분한 정보를 기록하게 된 코드를 삽입시켜야 했다.
이 기법은 몇가지 단점을 갖고 있다. 이 기법은 사용자에게 명료하지는 않았지만, 그대신 사용자에게 에러회복이 정확하게 되었다는 것을 보증할 책임을 맡겼다. 이 기법은 사용자가 각각의 검사점에 기록되어야 할 정보를 선택할 필요가 있었으므로, 명료한 기법보다 사용자 에러가 더 많은 경향이 있었다. 불충분한 정보를 선택하면 정확한 회복이 위태롭게 되고, 너무 많은 정보를 선택하면 시스템 성능이 감쇠하게 되었다.
다른 단점은 2개의 연속 검사점들 사이의 간격인 검사점 간격이 프로그램 독립적으로 되는 대신에 프로그램 구동된다는 것이었다. 과대 오버헤드(overhead)는 각각의 반복 불가능한 I/O 동작전에 기록 검사점 정보내에 포함되었다. 이 과내 오버헤드는 시스템 성능을 매우 감쇠시켰다. 검사점 간격은 반복불가능한 I/O 동작들 사이의 간격보다 길게 될 수가 없었다. 오버헤드는 긴 검사점 간격에 걸쳐 분산될 수 없었으므로, 시스템 성능을 향상시킨다. 평균 회복 시간이 검사점 간격에 관련되기 때문에, 시스템 성능과 평균 회복 시간 사이에는 연관성이 전혀 없었다.
본 발명의 양호한 실시예에 따르면, 최초 기계명령 실행중에 생기는 계산시스템내의 고장발생으로부터 회복할 수 있는 방법 및 장치가 제공된다. 계산시스템은 최종 검사점 시스템 상태로 리셋트되고, 기계명령재-실행동작이 개시된다. 본 발명은 계산시스템을 지정된 예비-고장시스템 상태와 동일한 최종 시스템 상태로 복원시킨다.
기계명령재-실행동작이 개시되면, 계산시스템은 동일한 명령지점에서, 계산시스템이 최초 기계명령 실행중에 행한 동작을 동일한 입력상에서 실행한다. 명령지점은 기계명령 실행 또는 재-실행 동작이 완료된 지점인데, 이 명령지점은 실행된 기계명령의 계수에 의해서 결정되고 경과시간에 의해서는 결정되지 않는다.
본 발명은 기계명령 재-실행중에, 최초 기계명령 실행중에 처리된 각각의 결정사상을 반복한다. 결정사상은 처리가 최종 시스템 상태의 결정에 영향을 미치는 비동기 인터럽션(interruption)이다. 예를들어, 결정사상은, 전형적으로 입력사상, 메시지수신, 실시간 클럭해독, 프로세서 발생 또는 프로세서 교체이다. 각각의 결정사상은 이 결정사상이 최초로 처리된 최초 기계명령 실행시의 명령지점과 동일한 기계명령 재-실행시의 명령지점에서 반복된다. 결정사상은 이 결정사상의 재발을 재처리하거나 결정사상의 재발 및 처리를 시뮬레이트(simulate)함으로써 반복된다.
본 발명은 반드시 기계명령 재-실행중에 비-결정사상을 반복하지는 않는다. 비-결정사상은 처리가 최종 시스템 상태결정에 명료한 비동기 인터럽션이다. 예를들어, 비-결정사상은 캐쉬(cache)고장 또는 페이지(page)고장이다. 비-결정사상은 기계명령 재-실행중에 재발할 수 있지만, 계산시스템을 예비-고장시스템 상태로 복원시키기 위해 반드시 반복될 필요는 없다.
본 발명은 결정사상이 처리된 최초 기계명령 실행시의 명령지점과 동일한 명령지점에서 결정사상을 반복하기 위해 실행되고 재-실행된 소정의 기계명령을 계수한다. 결정사상의 처리 또는 반복중에 실행된 기계명령, 및 비-결정사상의 처리중에 실행된 기계명령은 전형적으로 계수되지는 않는다.
본 발명은 결정사상이 재발하는 시간의 트랙을 유지함으로써만 고장회복을 시도하는 계산시스템보다 우수한다. 최초 기계명령 실행은 이 실행을 완료하기 위해 동일한 기계명령의 재-실행보다 시간이 많이 걸릴수도 있고 적게 걸릴수도 있다. 예를들어, 실행시간이 디스크의 최초 헤드위치에 따라 변하는 I/O 동작은 상이한 재-실행 억세스 시간을 발생시킬 수 있다.
계산시스템이 단지 결정사상이 재발하는 시간의 트랙을 유지하면, 결정사상은 이 결정사상이 최초로 처리된 명령지점과 동일한 기계명령 재-실행시의 명령지점에서 반복될 수 없다. 기계명령 재-실행에 의해 도달된 최종 시스템 상태는 최초 기계명령 실행에 의해 도달된 예비-고장시스템 상태와 상이하게 된다. 본 발명은 반드시 예비-고장시스템 상태에 도달한다. 즉, 결정사상이 최초로 처리된 기계명령 실행시의 명령 지점과 동일한 기계명령 재-실행시의 명령지점에서 결정사상을 항상 반복한다.
본 발명은 검사점 간격이 사용자 응용 프로그램에 무관하게 한다. 검사점 간격은 프로그램 가능하므로, 시스템 성능과 평균회복 시간 사이에 연관성이 있게 한다. 본 발명은 사용자 응용에 명료하므로, 부주의로 인한 프로그래머 에러의 위험성을 감소시킨다.
본 발명은 즉각적인 고장 검출에 의존하지 않는다. 사용자 중재를 필요로하는 측 영향(side effect)을 전달하기 전에 고장이 검출되는 한, 고장회복은 계속 달성될 수 있다. 하드웨어가 적게 요구되는데, 그 이유는 고장을 즉시 검출하는 하드웨어가 고장을 신속히 검출하는 하드웨어 및 소프트웨어로 대체될 수 있기 때문이다.
이하, 첨부 도면을 참조하여 본 발명에 대해서 상세하게 기술하겠다.
양호한 실시예는 최초로 실행되고 후속적으로 재-실행된 기계명령을 계수하기 위해 회복 계수기를 사용한다. 제1도는 제어 레지스터인 회복계수기(100)을 도시한 것이다. 계산시스템(101)은 프로세스 제어블럭(103) 및 국부데이타(105) 뿐만 아니라, 디스크(109)상의 파일 데이타(107)을 포함한다. 회복계수기(100)내에 격납되는 회복계수기 값(102)는 프로세서(104)에 의한 각각의 단일 기계명령 실행으로 1만큼 감소된다. 프로세서 상태 워드(108)내의 엔에이블링/디스에이블링 비트(106)은 계수동작으로부터 회복계수기(100)을 엔에이블 및 디스에이블 시키기 위해 사용될 수 있다. 회복계수기(100)은 버스(110)을 통해 해독 및 기입될 수 있다.
회복계수기 값(102)가 0을 통해 하향 계수하면, 상위 비트(112)는 트랩(trap)을 발생시킨다. 트랩은 이트랩을 처리하는 소프트웨어인 트랩처리기(114)로 프로그램 제어를 인재하는 내부 인터럽션이다. 사상처리기(112) 및 사상등재기(123)은 소프트웨어내에 존재한다. 검사점 시스템 상태 기록기(126), 고장고정기(124), 검사점 시스템 상태 리셋터(118) 및 사상 시뮬레이터(120)도 소프트웨어내에 존재한다. 정보는 디스크(116)에 기입될 수 있다.
제2도는 비동기 사상들을 분류하기 위한 명확한 계층을 도시한 것이다. 비동기사상(200)은 결정사상(202) 또는 비-결정사상(204)로서 정의된다. 상술한 바와 같이, 결정사상은 처리가 최종 시스템 상태의 결정에 영향을 미치는 비동기 인터럽션이고, 비-결정사상은 처리가 최종 시스템 상태의 결정에 명료한 비동기 인터럽션이다.
결정사상(202)는 재발사상(206) 또는 비-재발사상(208)로서 정의된다. 재발사상는 기계명령 재-실행의결과로서 재발하는 결정사상이다. 예를들어, 최초 기계명령 실행중에 나타나는 디스크 해독에 의한 입력사상은 기계명령 재-실행의 결과로서 재발한다. 비-재발사상은 기계명령 재-실행의 결과로서 재발하지 않는 결정사상이다. 예를들어, 최초 기계명령 실행중에 나타나는, 사용자에 의한 키보드입력으로 인한 입력사상은 기계명령 재-실행의 결과로서 재발하지 않는다.
기계명령 재-실행시에, 재발사상(206)은 초기 재발사상(210) 또는 최근 재발사상(212)로서 분류된다. 초기 재발사상은 명령지점 IP'(여기서, IP'는 명령지점 IP와 동일하다) 전의 명령지점에서의 기계명령 재-실행시에 재발하는데, 이 초기 재발사상은 최초로 IP에서의 기계명령 실행시에 처리되었다. 최근 재발사상은 명령지점 IP'(여기서, IP'는 명령지점 IP와 동일하다)에서 또는 다음의 명령지점에서의 기계명령 재-실행시에 재발하는데, 이 최근 재발사상은 최초로 IP에서의 기계명령 실행시에 처리되었다.
제3도는 고장이 생기는 명령지점이 배치될 수 있는 양호한 실시예를 도시한 것이다. 전형적인 실행순차(300) 및 전형적인 재-실행순차(302)로 실행된 일련의 기계명령이 도시되어 있다. 실행순차는 고장 발생전에 소정의 순서로 실행된 일련의 기계명령이다. 재-실행순차는 지정된 실행순차에 대응하여 고장 검출후에 실행된 일련의 기계명령이다. 재-실행순차는 최초로 실행된 기계명령과 거의 동일한 실행된 기계명령을 포함한다. 기계명령은 이 기계명령이 최초로 실행된 지정된 순서와 동일한 순서로 재-실행된다.
명령지점(304)는 검사점이다. 명령지점(304)에는, 검사점 시스템 상태(305)가 존재한다. 일련의 기계명령(306)은 검사점 시스템 상태 기록기(126)을 가동시킴으로써 실행된다. 검사점 시스템 상태 기록기(126)은 계산시스템(101)을 검사점 시스템 상태(305)로 완전히 복원시킬 수 있도록 디스크(166)상에 충분한 정보를 기록한다. 일련의 기계명령(306)의 실행후, 계산시스템(101)은 검사점 시스템 상태(305)내에 남게 된다.
실행순차(300)은 일련의 기계명령(308,309,310,311,312 및 313)을 포함하는데, 이미 실행된 일련의 기계명령(308,309,310,311,312 및 313)은 재-실행순차(302)에서 재실행된다. 일련의 기계명령(314,315 및 316)은 명령지점(320)에서 생기는 재발사상(318)을 처리하기 위해 실행된다.
사상처리기(122)는 일련의 기계명령(314 및 316)을 실행하기 위해 가동되고, 사상등재기(123)은 일련의 기계명령(315)를 실행하기 위해 가동된다. 사상등재기(123)은 결정사상 정보를 등재하기 위해 가동된다. 결정사상 정보는 다른 결정사상의 발생으로부터 한 결정사상의 발생을 구별하는데 필요한 정보이다. 결정사상 정보는 비-결정사상을 처리하기 위해 실행된 기계명령을 포함하지 않는 최종 검사점 다음에 실행된 기계명령의 계수를 포함한다.
일련의 기계명령(323)은 명령지점(328)에서 생기는 비-결정사상(326)을 처리하기 위해 실행된다. 사상처리기(122)는 일련의 기계명령(323)을 실행하기 위해 가동된다.
일련의 기계명령(330,331,332 및 333)은 명령지점(336)에서 생기는 비-결정사상(334)를 처리하기 위해 실행된다. 사상처리기(122)는 일련의 기계명령(330 및 333)을 실행하기 위해 가동되고, 사상등재기(123)은 일련의 기계명령(331 및 332)를 실행하기 위해 가동된다. 일련의 기계명령(331)은 결정사상 정보를 등재하기 위해 실행되고, 일련의 기계명령(332)는 비-재발 입력을 등재하기 위해 실행된다. 비-재발 입력은 비-재발 사상의 처리의 일부로서 수신된 입력이다.
일련의 기계명령(338, 339 및 340)은 명령지점(344)에서 생기는 재발사상(342)를 처리하기 위해 실행된다. 사상처리기(122)는 일련의 기계명령(338 및 340)을 실행하기 위해 가동되고, 사상등재기(123)은 일련의 기계명령(339)를 실행하기 위해 가동된다. 사상등재기(123)은 결정사상 정보를 등재하기 위해 가동된다.
예비-고장시스템 상태(345)는 명령지점(346)에 존재한다. 고장발생(347)은 명령지점(346)에서 생긴다. 고장검출은 명령지점(348)에서 생긴다. 일련의 기계명령(350)은 명령지점(346)과 명령지점(348)사이에서 실행된다. 고장발생(347)은 일련의 기계명령(350)의 실행을 무효화시킨다.
고장검출(349) 다음에, 계산시스템(101)은 개념적으로 회복모우드로 돌아가고, 일련의 기계명령(352)는 고장고정기(124)를 가동시킴으로써 실행된다. 일련의 기계명령(352)의 실행은 고장발생(347)과 동일하거나 유사한 긴급 고장발생을 방지하기 위한 것이다. 예를들어, 고장발생(347)이 일시적인 것이 아니라 실제 메모리의 부분고장에 의한 것이며, 가상 메모리 관리용 제어데이타는 컴퓨터 시스템(101)의 새로운 실제 구성을 제공하도록 갱신된다.
또한, 고장고정기(124)는 소정의 출력이 재-실행순차(302) 중에 바람직하지못하게 반복되지 않도록 소정의 수단을 취한다. 예를들어, 고장고정기(124)는 프린터 및 단말기용 출력포우트들과 같은 소정의 출력포우트들을 임시로 디스에이블시킨다. 고장고정기(124)는 재-실행순차(302)가 계산시스템(101)의 새로운 실제구성에 의해 영향을 받지 않게 되도록 수단들을 취한다. 예를들어, 장치의 새로운 실제경로가 길어지도록 장치의 장치의 소프트웨어 경로는 길게 될 수 있으므로, 장치의 각각의 억세스를 위해 실행될 2개의 부수적인 기계명령을 필요로 한다. 고장고정기(124)는 장치가 실행순차(300)중에 억세스 되었는지 및 억세스된 때를 결정하기 위해 이미 등재된 데이타를 사용한다. 고장고정기(124)는 장치의 각가의 억세스를 위해 재-실행순차(302)내에서 실행되어야 하는 2개의 부수적인 기계명령을 제공하도록 실행된 기계명령의 이미 등재된 계수를 변경시키게 된다.
고장고정기(124)가 계산시스템(101)내의 손상을 수리할 수 없으면, 이 고장고정기(124)는 사용자 중재를 요구한다. 사용자 중재가 계산시스템(101)이 동작을 멈추도록 요구하더라도, 손상이 수리될때 고장회복을 완료할 수 있도록 충분한 정보가 이미 디스크(116)에 등재되어 있게 된다. 계산시스템(101)이 수리될 수 없으면, 병렬 계산시스템 상에서 고장회복을 완료할 수 있도록 충분한 정보가 이미 디스크(116)에 등재되어 있게 된다.
검사점 시스템 상태 리셋트(118)은 일련의 기계명령(354)를 실행하기 위해 가동된다. 실행순차(300)동안에, 파일데이타는 이 파일데이타에 행해진 소정의 변화가 나중에 원상태로 될 수 있도록 어느정도 변경된다. 이미 기록된 등재를 사용하여, 검사점 시스템 상태 리셋터(118)은 파일데이타(107), 프로세스 제어블럭(103) 및 국부데이타(105)를 리셋트시킴으로써 계산시스템(101)을 검사점 시스템 상태(305)로 복원시킨다.
트랩(356)은 명령지점(357)에서의 상위 비트(112)에 의해 발생된다. 재-실행순차(302)내의 명령지점(357)은 실행순차(300)내의 명령지점(320)과 동일하다. 재발사상(318)은 명령지점(357)에서 재-처리되어야 한다. 재발사상(318)은 최근 재발사상이고, 명령지점(360)까지 재발하지 못한다. 프로세서(104)는 재발사상(318)을 기다린다. 트랩처리기(114)는 초기 트랩처리를 실행하는 일련의 기계명령(358)을 실행하기 위해 가동된다. 프로세서(101)은 유혹 싸이클내에서 순환하므로, 일련의 기계명령(359)를 실행하여 재발사상(318)이 재발하기를 기다린다.
재발사상(318)이 명령지점(360)에서 재발하면, 일련의 기계명령(363 및 364)가 재발사상(318)을 재-처리하도록 실행된다. 사상처리기(122)는 일련의 기계명령(363)을 실행하기 위해 가동되고, 트랩처리기(114)는 일련의 기계명령(364)를 실행하기 위해 가동된다.
트랩은 비-결정사상(326)용 재-실행순차(302)내에서 발생되지도 않지만, 비-결정사상(326)도 재-실행순차(302)내에서 재발하지 못한다.
트랩(366)은 명령지점(367)에서의 상위 비트(112)에 의해 발생된다. 재-실행순차(302)내의 명령지점(367)은 실행순차(300)내의 명령지점(336)과 동일하다. 비-재발사상(334)는 실행순차(302)내의 기계명령 재-실행으로 인해 재발하지 못한다. 비-재발사상(334)는 시뮬레이트 된다. 일련의 기계명령(368,369 및 370)은 비-재발사상(334)를 시뮬레이트하기 위해 실행된다. 트랩처리기(114)는 일련의 기계명령(368 및 370)을 실행하기 위해 가동되고, 사상 시뮬레이트(120)은 일련의 기계명령(369)를 실행하기 위해 가동된다. 사상 시뮬레이터(120)은 이미 등재된 비-재발 입력을 사용하여 비-재발사상(334)의 재발 및 처리를 시뮬레이트한다.
재-실행순차(302)내의 명령지점(373)은 실행순차(300)내의 명령지점(344)와 동일하다. 재발사상(342)는 명령지점(373)에서 재-처리되어야 한다. 재발사상(342)는 초기 재발사상이다. 즉, 재발사상(342)는 명령지점(373)전에 오는 명령지점(372)에서 재발한다. 일련의 기계명령(371,374 및 379)는 재발 사상(342)의 재발시에 실행된다. 사상 처리기(122)는 일련의 기계 명령(371 및 379)를 실행하기 위해 가동되고, 사상 등재기(123)은 일련의 기계 명령(374)를 실행하기 위해 가동된다. 사상 처리기(122)는 명령 지점(372)에서 재발사상(342)를 즉시 재-처리할 수 없다. 즉, 사상 처리기(122)는 재발 사상(342)의 재발을 등재 및 구별하도록 사상 등재기(123)을 호출하지만, 재발 사상(342)는 명령 지점(373)에 도달될 까지 재-처리 되지 않는다. 재발 사상(342)가 명령 지점(372)에서의 즉각적인 주의를 요구하면, 사상 처리기(122)는 명령 지점(372)에서 재발 시싱(342)를 처리한다. 명령 지점(373)에 도달될 때까지 아무것도 "보고" 되지 않는다. 즉, 사용자 프로그램의 관점으로부터, 재발 사상(342)는 명령 지점(373)까지 재-처리되지 않는다.
명령 지점(373)에 도달되기 전에, 일련의 기계 명령(312)는 재-실행된다. 트랩(375)는 명령 지점(373)에서 상위 비트(112)에 의해 발생된다. 재발 사상(342)는 명령 지점(373)에서 시작하여 재-처리된다. 일련의 기계 명령(376, 377 및 378)은 재발 사상(342)을 재-처리하기 위해 실행된다. 트랩 처리기(114)는 일련의 기계 명령(376 및 378)을 실행하기 위해 가동되고, 사상 처리기(122)는 일련의 기계 명령(377)을 실행하기 위해 가동된다.
트랩(382)는 명령 지점(380)에서 상위 비트(112)에 의해 발생된다. 명령 지점(380)은 명령 지점(346)과 동일한데, 고장 발생(347)은 명령지점(346)에서 생긴다. 트랩 처리기(114)는 일련의 기계 명령(383)을 실행하기 위해 가동된다. 트랩 처리기(114)는 회복 계수기 값(102)를 명령지점(346)에 존재한 값으로 리셋트시킨다. 트랩처리기(114)는 계산 시스템(101)이 회복 모우드로부터 나오게 한다.
명령 지점(384)에서, 예비-고장 시스템 상태(345)와 동일한 최종 시스템 상태에 도달된다. 명령 지점(384) 다음에, 일련의 기계 명령(386)이 실행되어, 정상 실행을 계속하게 된다.
제4도는 고장 발생으로부터 회복할 준비를 할 때 양호한 실시예에 의해 실행된 스텝들을 도시한 것이다. 검사점 시스템 상태를 완전히 복원시키기에 충분한 데이타가 스텝(400)에서 검사점 시스템 상태 기록기(126)을 가동 시킴으로써 디스크(116)에 주기적으로 기록된다. 회복 계수기 값(102)는 스텝(402)에스 버스(100)을 통해 지정된 초기 값으로 리셋트된다. 기계 명령은 프로세서(104)에 의해 실행되고, 회복 계수기값(102)는 스텝(404)에서 실행된 각각의 기계 명령에 대해 감소된다.
고장 발생이 스텝(406)에서 검출되면, 고장 회복이 스텝(408)에서 실행된다. 고장 회복은 다음에 기술되어 있고, 제5도에 더욱 상세하게 도시되어 있다. 스텝(404)는 복귀된다. 즉, 기계명령 실행이 계속된다.
비동기 사상이 스텝(410)에서 생기지 않으면, 스텝(436)이 실행된다. 검사점에 도달될 것이라는 것이 스텝(436)에서 확인되면, 프로세서(104)가 스텝(400)으로 복귀한다. 즉, 검사점 시스템 상태를 완전히 복원시키기에 충분한 데이타가 디스크(116)에 기록된다. 검사점에 도달되지 않았다는 것이 스텝(436)에서 확인되면, 프로세서(104)가 스텝(104)로 복귀한다. 다른 기계 명령이 실행되고, 회복 계수기 값(102)가 감소된다.
비 동기 사상이 스텝(410)에서 생기면, 회복 계수기(100)이 임시로 디스에이블된다. 회복 계수기(100)을 디스에이블시키는 동작은 스텝(412)에서 엔에이블링/디스에이블링 비트(106)을 리셋트시킴으로써 하드웨어내에서 자동적으로 달성된다.
결정 사상이 생겼다는 것이 스텝(414)에서 확인되면, 회복 계수기 값(102)가 버스(110)을 통해 해독되어 스텝(418)에서 등재된다. 사상 처리기(122)는 스텝(420)에서 결정 사상을 처리하기 위해 가동한다. 사상 등재기(123)은 스텝(422)에서 결정 사상 정보를 디스크(116)에 등재하기 위해 가동된다. 재발사상이 생겼다는 것이 스텝(424)에서 확인되면, 회복 계수기(100)이 엔에이블링/디스에이블링 비트(106)을 통해 스텝(430)에서 재-엔에이블된다. 회복 계수기(100)을 재-엔이이블시키는 동작은 인터럽트명령으로부터의 복귀가 실행될 때 스텝(430)에서 엔에이블링/디스에이블링 비트(106)을 셋트시키는 하드웨어 내에서 자동적으로 달성된다. 검사점에 도달되었는지의 여부는 스텝(436)에서 검사된다.
비-재발 사상이 생겼다는 것이 스텝(426)에서 확인되면, 비-재발 사상의 처리중에 수신된 입력인 비-재발 입력이 스텝(428)에서 디스트(116)에 등재된다. 회복 계수기(100)은 스텝(430)에서 엔에이블링/디스에이블링 비트(106)을 통해 재-엔에이블된다. 검사점에 도달되었는지의 여부는 스텝(436)에서 검사된다.
비-결정 사상이 생겼다는 것이 스텝(414)에서 확인되면, 사상 처리기(122)가 스텝(434)에서 비-결정 사상을 처리하기 위해 가동된다. 회복 계수기(100)은 스텝(430)에서 엔에이블링/디스에이블링 비트(106)을 통해 재-엔에이블된다. 검사점에 도달되었는지의 여부는 스텝(436)에서 검사된다.
선택적인 양호한 실시예내에서, 비동기 사상이 생기면, 회복 계수기(100)은 회복 계수기 값(102) 및 비동기 사상을 구별하기에 충분한 정보들이 등재된 후 재-엔에이블된다. 비동기 사상을 완전히 처리하기 전에, 재-엔에이블링 회복 계수기(100)은 저 우선순위를 갖고 있는 제1비동기 사상의 처리를 인터럽트하도록 고우선순위를 갖고 있는 제2비동기 사상을 엔에이블시킨다.
제5도는 고장 검출시에 계산 시스템(101)에 의해 취해진 회복 스텝들을 도시한 것이다. 회복 모우드는 스텝(500)에서 들어간다. 회복 계수기(100)은 스텝(501)에서 엔에이블링/디스에이블링 비트(106)을 통해 임시로 디스에이블된다. 고장 고정 동작은 스텝(502)에서 고장 고정기(124)를 가동시킴으로써 실행된다. 고장 검출시에 존재하는 회복 계수기 값(102)는 버스(110)을 통해 해독되어 스텝(503)에서 등재된다. 스텝(504)에서, 파일 데이타(107)은 디스크(116)상에 이미 기록된 사상 등재를 사용하는 검사점 시스템 상태 리셋터(118)을 가동시킴으로써 리셋트된다. 스텝(506)에서, 검사점 시스템 상태 리셋터(118)은 프로세스 제어 블럭(103) 및 국부 데이타(105)를 리셋트시킴으로써 계산 시스템(101)을 최종 검사점 시스템 상태로 복원시키기 위해 가동된다.
회복 계수기 값(102)는 스텝(508)에서 버스(110)을 통해 리셋트된다. 회복 계수기 값(102)는 지정된 결정 사상 또는 고장이 생긴 명령 지점과 동일한 명령 지점에 도달하도록 실행되어야 하는 기계 명령의 계수로 리셋트 된다. 기계 명령의 계수는 하향 계수 번호로 호출된다. 즉, 하향계수 번호는 이미 등재된 회복 계수기 값들로부터 결정된다.
스텝(509)에서, 회복 계수기(100)은 엔에이블링/디스에이블링 비트(106)을 통해 재-엔에이블된다. 기계 명령은 프로세서(104)에 의해 재-실행되고, 회복 계수기 값(102)는 스텝(105)에서 재-실행된, 각각의 기계 명령에 따라 감소된다. 최초로 실행된 기계 명령들과 동일한 기계 명령들은 재-실행된다. 기계 명령들은 트랩 또는 비동기 사상이 생길 때까지 스텝(510)에서 재-실행된다.
트랩 또는 비동기 사상이 스텝(512)에서 생기면, 회복 계수기(100)이 스텝(514)에서 엔에이블링/디스에이블링 비트(106)을 통해 임시로 디스에이블된다. 회복 계수기 값(102)는 스텝(516)에서 검사된다. 회복 계수기 값(102)가 0을 지나 하향 계수되지 않으면, 비동기 사상이 발생된다. 회복 계수기 값(102)가 0을 지나 트랩이 상위 비트(112)에 의해 발생된다.
초기 재발 사상이 생겼다는 것이 스텝(518)에서 확인되면, 사상 등재기(123)이 스텝(520)에서 초기 재발사상의 재발을 등재하기 위해 가동된다. 사상 등재기(123)은 초기 재발 사상이 다른 재발 사상과 어긋나 재발된 경우에 초기 재발 사상의 재발을 구별한다. 사상 처리기(122)는 초기 재발사상을 즉시 처리하지 못한다. 즉, 초기 재발 사상은 나중에 스텝(536)에서 처리된다. 스텝(509)는 복귀된다. 즉, 회복 계수기(100)이 재-엔에이블된다.
비-결정 사상이 생겼다는 것이 스텝(518)에서 확인되면, 사상처리기(122)가 스텝(526)에서 비-결정 사상을 처리하기 위해 가동된다. 회복 계수기(100)은 스텝(509)에서 재-엔에이블된다.
비-재발 사상용 명령 지점에 도달되었다는 것이 스텝(528)에서 확인되면, 트랩 처리기(114)가 스텝(530)에서 비-재발 사상을 시뮬레이트 하도록 사상 시뮬레이트(120)을 호출한다. 비-재발 입력이 비-재발 사상의 최초 처리 중에 수신되면, 비-재발 입력이 사상 시뮬레이터(120)에 의해 사용된다. 회복 계수기 값(102)는 스텝(508)에서 다음 하향계수 번호로 리셋트된다.
초기 재발 사상용 명령 지점에 도달되었다는 것이 스텝(534)에서 확인되면, 트랩 처리기(114)가 스텝(536)에서 초기 재발 사상을 재-처리하도록 사상 처리기(122)를 호출한다. 회복 계수기 값(102)는 스텝(508)에서 다음 하향계수 번호로 리셋트된다.
최근 재발 사상용 명령 지점에 도달되었다는 것이 스텝(538)에서 확인되면, 트랩 처리기(114)가 스텝(540)에서 최근 재발 사상이 생기기를 기다린다. 트랩 처리기(114)는 스텝(542)에서 최근 재발 사상을 재-처리하도록 사상 처리기(112)를 호출한다. 회복 계수기 값(102)는 스텝(508)에서 다음 하향계수 번호로 리셋트된다.
트랩이 발생되었지만, 비-재발 사상, 초기 재발 사상는 최근 재발 사상용 명령 지점에 도달하지 못했으면, 고장 발생용 명령 지점에 도달된다. 스텝(544)에서, 회복 계수기 값(102)는 버스(110)을 통해 고장 발생시에 존재하는 이미 등재된 값으로 리셋트된다. 회복 계수기(100)은 스텝(545)에서 엔에이블링/디스에이블링 비트(106)을 통해 재-엔에이블된다. 회복 모우드는 스텝(546)에서 나오게 된다.
선택적인 양호한 실시예에서, 고장이 생기는 정확한 명령 지점은 계산 시스템(101)에 의해 식별될 필요가 없으므로, 고장 검출이 적시에 제공된다. 제6도는 전형적인 실행 순차(602) 및 전형적인 재-실행 순차(602,604 및 606)용으로 실행된 일련의 기계 명령을 도시한 것이다.
실행 순차(602)내에서, 검사점 시스템 상태(610)은 명령 지점(612)에 존재한다. 고장 발생(614)는 명령 지점(616)에서 생긴다. 프로세서(104)는 명령 지점(620)에서 디스크 해독 요구(618)을 초기 설정한다. 디스크 해독요구(618)과 동시에 생기는 플랙(flag)은 디스크 해독요구(618)을 기록하도록 셋트된다. 디스크 해독 요구(618)에 응답하는 입력 사상인 재발 사상(622)는 명령 지점(624)에서 생긴다. 재발 사상(626)은 명령 지점(628)에서 생긴다. 고장 검출(630)은 명령 지점(632)에서 생긴다. 계산 시스템(101)의 관점으로부터, 고장 발생(614)는 정확히 배치될 수 없고, 단지 명령 지점(612 와 632)사이의 소정의 위치에서 생기도록 결정될 수 있다.
재-실행 순차(604)는 고장발생(614)가 디스크 해독요구(618)을 전달하여 초기 설정하지 못하는 경우에 일어나는 순차의 전형적인 예이다. 디스크 해독 요구(618)은 플렉 셋팅과 함께 명령 지점(636)에서 생긴다.
재-실행 순차(604)내의 명령 지점(636)은 실행 순차(602)내의 명령 지점(620)과 동일하다. 재발 사상(622)는 명령 지점(638)에서 초기에 재발한다. 재발 사상(622)는 트랩(640)이 명령 지점(644)에서 생길 때까지 처리되지 않는다. 재-실행 순차(604)내의 명령 지점(644)는 실행 순차(602)내의 명령 지점(624)와 동일하다. 재발 사상(626)은 명령 지점(646)에서 초기에 재발한다. 재발 사상(626)은 트랩(648)이 명령 지점(650)에서 생길 때까지 처리되지 않는다. 재-실행 순차(604)내의 명령 지점(650)은 실행 순차(602)내의 명령 지점(628)과 동일하다. 재발 사상(626)이 재-처리된 후, 이미 등재된 결정 사상 정보는 더 이상 남게 되지 않으므로, 정상 실행이 계속된다.
재-실행 순차(606)은 고장 발생(614)가 디스크 해독 요구(618)을 전달하여 잘못 초기 설정되게 한 경우에 일어나는 순차의 전형적인 예이다. 재-실행 순차(606)동안에, 고장 발생(614)는 반복되지 않는다. 이것은 디스크 해독 요구(618)이 생기지 않게 하고, 플랙은 전혀 셋트되지 않는다. 트랩(640)은 명령 지점(644)에서 생긴다. 이미 등재된 결정 사상 정보는 재발 사상(622)가 명령 지점(644)에서 재-처리되어야 한다는 것을 나타낸다. 디스크 해독을 나타내는 플랙이 전혀 셋트되지 않았기 때문에, 재발 사상(622)가 실행 순차(602)내에서 잘못 생겼다는 것이 결정될 수 있다. 재-실행이 고장 발생이 최초로 생긴 실행 순차(602)내의 명령 지점과 동일한 명령 지점을 지나 진행되었다는 것이 결정될 수 있다. 재발 사상(622 및 626)용의 이미 등재된 정보는 폐기되고, 정상 실행이 계속된다.
재-실행 순차(608)은 고장 발생(614)가 디스크 해독 요구(618)을 전달하여 잘못 초기 설정되게 한 경우에 일어나는 순차의 다른 예이다. 재-실행 순차(608) 동안에, 고장 발생(614)는 반복되지 않는다. 이것은 디스크 해독 연구(618)이 생기지 않게 하고, 플랙은 전혀 셋트되지 않는다. 디스크 해독 요구(656)은 명령지점(658)에서 초기 설정된다. 디스크 해독 요구(656)과 동시에 생기는 플랙은 디스크 해독 요구(656)을 기록하도록 세트된다. 디스크 해독 요구(656)은 재발 사상(660)이 명령 지점(662)에서 생기게 한다. 사상 처리기(123)이 재발 사상(622 및 626)용의 이미 등재된 정보와 재발 사상(660)을 부합시킬 수 없으면, 재-실행이 고장 발생이 최초로 생긴 실행 순차(602)내의 명령 지점과 동일한 명령 지점을 지나 진행되었다는 것이 결정될 수 있다. 재발 사상(622 및 626)용의 이미 등재된 정보는 폐기되고, 정상 실행이 계속된다.
고장 검출(630)전에, 고장 발생 (614)는 계산 시스템(101)에 의해 처리되기에 너무 심각한 영향들을 갖고 있는 에러를 전달할 수 있다. 이미 등재된 정보가 이러한 에러가 전달되었다는 것을 나타내면, 프로세서(104)는 실행을 정지하고, 사용자 중재가 요구된다.

Claims (26)

  1. 계산 시스템에서 검출된 고장으로부터 회복하기 위한 준비 방법에 있어서, 제1 검사점에서 계산 시스템의 검사점 시스템 상태를 기록하는 수단, 검사점 시스템 상태를 기록한 후 실행된 기계 명령들을 계수하는 수단, 및 결정 사상을 처리하기 위한 결정 사상 정보를 등재하는 수단을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 비-재발 입력들을 등재하는 수단을 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 결정 사상 정보가 식별된 명령 지점과 결정 사상 발생 사이에서 실행된 다수의 기계 명령들의 계수를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 제1검사점과 제2검사점 사이의 간격이 프로그램가능하게 되어, 계산 시스템 성능과 고장 회복을 실행하는데 필요한 평균 시간 사이에 연관성이 있게 하는 것을 특징으로 하는 방법.
  5. 계산 시스템내에서의 고장 발생으로부터 회복하는 방법에 있어서, 계산 시스템의 시스템 상태를 이미 기록된 최종 검사점 시스템 상태로 복원시키는 수단, 실행 순차에서 최초로 실행된 기계 명령을 실행 순차와 거의 유사한 재-실행 순차내에서 재-실행하는 수단, 및 실행 순차내에서 소정의 순서로 최초 처리된 결정사상을 재-실행 순차내에서 동일한 순서로 반복하는 수단을 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 결정 사상들이 재발 사상을 재-처리하고 비-재발 사상을 시뮬레이트 함으로써 반복되는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 기계 명령들이 이 기계 명령들이 최초로 실행된 순서와 동일한 순서로 재-실행되는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 검사점 시스템 상태를 기록한 후 및 고장 발생전에 처리된 각각의 결정 사상을 반복하는 수단을 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단을 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단이, 재-실행된 기계 명령들을 계수하고 이미 등재된 기계 명령 계수를 사용함으로써 달성되는 것을 특징으로 하는 방법.
  11. 제10항에 있어서, 고장 발생이 생긴 명령 지점과 동일한 명령 지점에 도달된 경우에 재-실행 순차를 포기하는 수단을 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 고장 발생이 검출된 명령 지점과 동일한 명령 지점에 도달된 경우에 재-실행 순차를 포기하는 수단을 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 결정 사상 정보가 결정 사상이 반복되어야 한다는 것을 나타내는 명령 지점에 도달되었지만, 이러한 결정 사상이 재-실행 순차내에서 전혀 초기 설정되지 않은 경우에 재-실행 순차를 포기하는 수단을 포함하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서, 결정 사상이 초기설정되었고 처리되어야 하는 명령 지점에 도달되었지만, 대응하는 결정 사상 정보가 실행 순차내에 전혀 등재되지 않은 경우에 재-실행 순차를 포기하는 수단을 포함하는 것을 특징으로 하는 방법.
  15. 제10항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단이, 초기 재발 사상의 초기 재발을 구별하지만 즉시 처리하지는 않음으로써 달성되는 것을 특징으로 하는 방법.
  16. 제10항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단이, 최근 재발 사상의 재발을 기다림으로써 달성되는 것을 특징으로 하는 방법.
  17. 제10항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단이, 최초 처리가 비-재발 입력을 입력시키는 것에 관련된 비-재발 사상을 시뮬레이트 하도록 이미 등재된 비-재발 입력을 사용함으로써 달성되는 것을 특징으로 하는 방법.
  18. 제10항에 있어서, 각각의 결정 사상이 최초로 처리된 실행 순차내의 명령 지점과 동일한 재-실행 순차내의 명령 지점에서 각각의 결정 사상을 반복하는 수단이, 각각의 결정 사상의 최초로 처리된 실행 순차내의 명령지점과 동일한 재-실행 순차내의 각각의 명령 지점에서 트랩을 발생시킴으로써 달성되는 것을 특징으로 하는 방법.
  19. 제10항에 있어서, 비-결정 사상의 재-실행을 바이패스시키는 수단을 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 비-결정 사상의 재-실행을 바이패스 시키는 수단이, 비-결정 사상의 최초 발생의 일부로서 실행된 기계 명령들을 계수하지 않으므로써 달성되는 것을 특징으로 하는 방법.
  21. 계산 시스템내에서 검출된 고장으로부터 회복하기 위한 준비를 하여 회복하는 방법에 있어서, 최종 검사점 시스템 상태를 기록한 후 실행된 기계 명령들은 계수하는 수단, 결정 사상을 처리하기 위한 결정 사상 정보를 등재하는 수단, 계산 시스템의 시스템 상태를 이미 기록된 최종 검사점 시스템 상태로 복원시키는 수단, 실행 순차에서 최초로 실행된 기계 명령을 실행 순차와 거의 유사한 재-실행 순차내에서 재-실행하는 수단, 및 실행 순차내에서 소정의 순서로 최초 처리된 결정 사상을 재-실행 순차내에서 동일한 순서로 반복하는 수단을 포함하는 것을 특징으로 하는 방법.
  22. 계산 시스템에서의 고장으로부터 회복하기 위한 장치에 있어서, 실행된 기계 명령을 계수하기 위한 계수 장치, 계수 장치의 값을 해독하기 위한 해독 장치, 및 결정사상 정보를 등재하기 위한 등재 장치로 구성되는 것을 특징으로 하는 장치.
  23. 제22항에 있어서, 결정 사상의 발생을 처리하고 재발을 재-처리하기 위한 처리 장치, 비-재발 사상의 재발을 시뮬레이트하기 위한 시뮬레이팅 장치, 계산 시스템을 검사점 시스템 상태로 복원시키는데 필요한 정보를 기록하기 위한 기록 장치, 및 계산 시스템을 이미 기록된 검사점 시스템 상태로 복원시키기 위한 복원 장치를 포함하는 것을 특징으로 하는 장치.
  24. 제23항에 있어서, 계수 장치가 다수의 제1기계 명령을 계수하였을 때 트랩을 발생시키기 위한 트랩발생 장치 및 계수장치가 다수의 제1기계 명령을 계수하였을 때 발생된 트랩을 처리하기 위한 트랩 처리 장치를 포함하는 것을 특징으로 하는 장치.
  25. 제24항에 있어서, 계수 장치를 엔에이블시키기 위한 엔에이블링 장치, 및 계수 장치를 디스에이블시키기 위한 디스에이블링 장치를 포함하는 것을 특징으로 하는 장
    치.
  26. 제25항에 있어서, 새로운 값을 계수 장치내에 기입하기 위한 기입장치를 포함하는 것을 특징으로 하는 장치.
KR1019860005170A 1985-08-16 1986-06-27 계산 시스템내의 고장 회복 방법 및 장치 KR920001997B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/766,212 US4703481A (en) 1985-08-16 1985-08-16 Method and apparatus for fault recovery within a computing system
US766212 1985-08-16
US766,212 1996-12-12

Publications (2)

Publication Number Publication Date
KR870002504A KR870002504A (ko) 1987-03-31
KR920001997B1 true KR920001997B1 (ko) 1992-03-09

Family

ID=25075737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019860005170A KR920001997B1 (ko) 1985-08-16 1986-06-27 계산 시스템내의 고장 회복 방법 및 장치

Country Status (8)

Country Link
US (1) US4703481A (ko)
EP (1) EP0212791B1 (ko)
JP (1) JPH0738161B2 (ko)
KR (1) KR920001997B1 (ko)
CN (1) CN1008778B (ko)
AU (1) AU591134B2 (ko)
CA (1) CA1260148A (ko)
DE (1) DE3669599D1 (ko)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4868744A (en) * 1986-03-03 1989-09-19 International Business Machines Corporation Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
JPS6375963A (ja) * 1986-09-19 1988-04-06 Hitachi Ltd システム回復方式
SE454920B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instruktionssekvenser medelst separatminnen
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
JP2550063B2 (ja) * 1987-04-24 1996-10-30 株式会社日立製作所 分散処理システムのシミユレ−シヨン方式
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
US4924466A (en) * 1988-06-30 1990-05-08 International Business Machines Corp. Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
US5119483A (en) * 1988-07-20 1992-06-02 Digital Equipment Corporation Application of state silos for recovery from memory management exceptions
US4912707A (en) * 1988-08-23 1990-03-27 International Business Machines Corporation Checkpoint retry mechanism
US5253360A (en) * 1988-12-16 1993-10-12 Kabushiki Kaisha Toshiba Facsimile device having continuous operating capabilities immediately after recovery from trouble and related method
EP0374419A3 (en) * 1988-12-21 1991-04-10 International Business Machines Corporation Method and apparatus for efficient loop constructs in hardware and microcode
US5832202A (en) * 1988-12-28 1998-11-03 U.S. Philips Corporation Exception recovery in a data processing system
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
EP0388155B1 (en) * 1989-03-14 1998-02-25 Canon Kabushiki Kaisha Process status supervisory system
US5261085A (en) * 1989-06-23 1993-11-09 Digital Equipment Corporation Fault-tolerant system and method for implementing a distributed state machine
CA2025197C (en) * 1989-10-19 1998-04-21 Michael H. Kelley Method and system for dynamically controlling the operation of a program
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5327532A (en) * 1990-05-16 1994-07-05 International Business Machines Corporation Coordinated sync point management of protected resources
US5276876A (en) * 1990-05-16 1994-01-04 International Business Machines Corporation Registration of resources for commit procedures
JP3293839B2 (ja) * 1990-05-16 2002-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
US5165031A (en) * 1990-05-16 1992-11-17 International Business Machines Corporation Coordinated handling of error codes and information describing errors in a commit procedure
US5319774A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Recovery facility for incomplete sync points for distributed application
JP2691081B2 (ja) * 1990-05-16 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・ネットワーク
US5276862A (en) * 1991-04-09 1994-01-04 Bull Hn Information Systems Inc. Safestore frame implementation in a central processor
US5269017A (en) * 1991-08-29 1993-12-07 International Business Machines Corporation Type 1, 2 and 3 retry and checkpointing
US5293613A (en) * 1991-08-29 1994-03-08 International Business Machines Corporation Recovery control register
JPH0812616B2 (ja) * 1991-09-11 1996-02-07 インターナショナル・ビジネス・マシーンズ・コーポレイション オペレーティングシステムカーネル用受動回復方法およびシステム
GB9121540D0 (en) * 1991-10-10 1991-11-27 Smiths Industries Plc Computing systems and methods
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
GB9214198D0 (en) * 1992-07-03 1992-08-12 Texas Instruments Ltd Method of resetting coupled modules and a system using the method
US5421003A (en) * 1992-09-17 1995-05-30 International Business Machines Corporation Disk storage system with fault tolerant media maintenance
JPH0827733B2 (ja) * 1993-07-06 1996-03-21 日本電気株式会社 障害処理システム
US5809525A (en) * 1993-09-17 1998-09-15 International Business Machines Corporation Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
AU2663095A (en) * 1994-06-10 1996-01-05 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5682471A (en) * 1994-10-06 1997-10-28 Billings; Thomas Neal System for transparently storing inputs to non-volatile storage and automatically re-entering them to reconstruct work if volatile memory is lost
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5649136A (en) * 1995-02-14 1997-07-15 Hal Computer Systems, Inc. Processor structure and method for maintaining and restoring precise state at any instruction boundary
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5712971A (en) * 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US5898815A (en) * 1996-02-13 1999-04-27 National Semiconductor Corporation I/O bus interface recovery counter dependent upon minimum bus clocks to prevent overrun and ratio of execution core clock frequency to system bus clock frequency
KR100499818B1 (ko) * 1997-01-06 2005-11-22 가부시끼가이샤 히다치 세이사꾸쇼 반도체집적회로검사점의해석방법,해석장치
US5978912A (en) * 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
JPH11134235A (ja) * 1997-10-31 1999-05-21 Hitachi Ltd 外部記憶装置故障時の回復支援方法
US6148338A (en) * 1998-04-03 2000-11-14 Hewlett-Packard Company System for logging and enabling ordered retrieval of management events
US6247118B1 (en) * 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
US6366986B1 (en) 1998-06-30 2002-04-02 Emc Corporation Method and apparatus for differential backup in a computer storage system
US6141773A (en) * 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6269381B1 (en) 1998-06-30 2001-07-31 Emc Corporation Method and apparatus for backing up data before updating the data and for restoring from the backups
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6332199B1 (en) 1998-10-29 2001-12-18 International Business Machines Corporation Restoring checkpointed processes including adjusting environment variables of the processes
US6393583B1 (en) 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
US6256751B1 (en) 1998-10-29 2001-07-03 International Business Machines Corporation Restoring checkpointed processes without restoring attributes of external data referenced by the processes
US6338147B1 (en) 1998-10-29 2002-01-08 International Business Machines Corporation Program products for performing checkpoint/restart of a parallel program
US6332200B1 (en) 1998-10-29 2001-12-18 International Business Machines Corporation Capturing and identifying a complete and consistent set of checkpoint files
US6453430B1 (en) * 1999-05-06 2002-09-17 Cisco Technology, Inc. Apparatus and methods for controlling restart conditions of a faulted process
GB2372673B (en) * 2001-02-27 2003-05-28 3Com Corp Apparatus and method for processing data relating to events on a network
US6883113B2 (en) * 2002-04-18 2005-04-19 Bae Systems Information And Electronic Systems Integration, Inc. System and method for temporally isolating environmentally sensitive integrated circuit faults
US7318171B2 (en) * 2003-03-12 2008-01-08 Intel Corporation Policy-based response to system errors occurring during OS runtime
US6962206B2 (en) * 2003-05-15 2005-11-08 Weatherford/Lamb, Inc. Packer with metal sealing element
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7409587B2 (en) 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7577807B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7296008B2 (en) 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
US7287133B2 (en) 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7631120B2 (en) 2004-08-24 2009-12-08 Symantec Operating Corporation Methods and apparatus for optimally selecting a storage buffer for the storage of data
US7239581B2 (en) 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7366801B2 (en) * 2004-01-30 2008-04-29 International Business Machines Corporation Method for buffering work requests
US8140348B2 (en) * 2004-01-30 2012-03-20 International Business Machines Corporation Method, system, and program for facilitating flow control
US7650606B2 (en) * 2004-01-30 2010-01-19 International Business Machines Corporation System recovery
DE602006002967D1 (de) * 2005-01-28 2008-11-13 Ibm Zählverfahren für anweisungen zur protokollierung und wiedergabe einer deterministischen ereignisabfolge
CN101313279A (zh) 2005-10-14 2008-11-26 塞门铁克操作公司 一种在数据存储器中用于时间线压缩的技术
US7721139B2 (en) * 2007-03-27 2010-05-18 International Business Machines Corporation Method, apparatus, and computer program product for managing data in a browser-based application
US9652241B2 (en) * 2007-04-10 2017-05-16 Cambridge Consultants Ltd. Data processing apparatus with instruction encodings to enable near and far memory access modes
US9645949B2 (en) * 2008-07-10 2017-05-09 Cambridge Consultants Ltd. Data processing apparatus using privileged and non-privileged modes with multiple stacks
US20100153776A1 (en) * 2008-12-12 2010-06-17 Sun Microsystems, Inc. Using safepoints to provide precise exception semantics for a virtual machine
JP2015081695A (ja) * 2013-10-21 2015-04-27 三菱日立パワーシステムズ株式会社 炭素含有燃料熱交換器の監視・運転方法
CN104134430B (zh) * 2014-07-04 2016-08-17 京东方科技集团股份有限公司 一种移位寄存器、栅极驱动电路及显示装置
CN110928714A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 一种服务异常处理方法、装置和计算设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3564502A (en) * 1968-01-15 1971-02-16 Ibm Channel position signaling method and means
US3564506A (en) * 1968-01-17 1971-02-16 Ibm Instruction retry byte counter
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
IT1014277B (it) * 1974-06-03 1977-04-20 Cselt Centro Studi Lab Telecom Sistema di controllo di elaboratori di processo operanti in parallelo
US4130240A (en) * 1977-08-31 1978-12-19 International Business Machines Corporation Dynamic error location
JPS58201152A (ja) * 1982-05-19 1983-11-22 Hitachi Ltd 情報自動収得方式
US4524415A (en) * 1982-12-07 1985-06-18 Motorola, Inc. Virtual machine data processor
US4493035A (en) * 1982-12-07 1985-01-08 Motorola, Inc. Data processor version validation

Also Published As

Publication number Publication date
AU5917386A (en) 1987-02-19
JPH0738161B2 (ja) 1995-04-26
CN1008778B (zh) 1990-07-11
EP0212791B1 (en) 1990-03-14
JPS6240547A (ja) 1987-02-21
DE3669599D1 (de) 1990-04-19
CA1260148A (en) 1989-09-26
CN86103695A (zh) 1987-02-11
AU591134B2 (en) 1989-11-30
KR870002504A (ko) 1987-03-31
US4703481A (en) 1987-10-27
EP0212791A1 (en) 1987-03-04

Similar Documents

Publication Publication Date Title
KR920001997B1 (ko) 계산 시스템내의 고장 회복 방법 및 장치
US4371754A (en) Automatic fault recovery system for a multiple processor telecommunications switching control
Cristian Understanding fault-tolerant distributed systems
Randell et al. Reliability issues in computing system design
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
US4740969A (en) Method and apparatus for recovering from hardware faults
US6785842B2 (en) Systems and methods for use in reduced instruction set computer processors for retrying execution of instructions resulting in errors
US6604177B1 (en) Communication of dissimilar data between lock-stepped processors
AU616213B2 (en) Method and apparatus for synchronizing a plurality of processors
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
KR100304319B1 (ko) 시간 지연 이중화 기술을 구현하는 장치 및 방법
US7467327B2 (en) Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed
US6851074B2 (en) System and method for recovering from memory failures in computer systems
US6728668B1 (en) Method and apparatus for simulated error injection for processor deconfiguration design verification
US20060168434A1 (en) Method and system of aligning execution point of duplicate copies of a user program by copying memory stores
JP2005166057A (ja) 障害検出コンピュータシステム
Lee et al. Measurement-based evaluation of operating system fault tolerance
US5978936A (en) Run time error probe in a network computing environment
Rebaudengo et al. A new approach to software-implemented fault tolerance
Randell Reliable computing systems
Madeira et al. On-line signature learning and checking
Montezanti et al. A methodology for soft errors detection and automatic recovery
Huang et al. Two techniques for transient software error recovery
Meyers et al. No. 4 ESS: Maintenance Software
Tsai Fault tolerance via N-modular software redundancy

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19980304

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee