KR20040007338A - 폴트 톨러런트 컴퓨터, 그의 재동기화 방법 및 재동기화프로그램이 기록된 컴퓨터 판독가능 기억매체 - Google Patents

폴트 톨러런트 컴퓨터, 그의 재동기화 방법 및 재동기화프로그램이 기록된 컴퓨터 판독가능 기억매체 Download PDF

Info

Publication number
KR20040007338A
KR20040007338A KR1020030047289A KR20030047289A KR20040007338A KR 20040007338 A KR20040007338 A KR 20040007338A KR 1020030047289 A KR1020030047289 A KR 1020030047289A KR 20030047289 A KR20030047289 A KR 20030047289A KR 20040007338 A KR20040007338 A KR 20040007338A
Authority
KR
South Korea
Prior art keywords
instruction
processor
computing module
counter value
number counter
Prior art date
Application number
KR1020030047289A
Other languages
English (en)
Other versions
KR100566338B1 (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 KR20040007338A publication Critical patent/KR20040007338A/ko
Application granted granted Critical
Publication of KR100566338B1 publication Critical patent/KR100566338B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal 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/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템을 개시한다. 이 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 각각의 컴퓨팅 모듈에서의 각각의 프로세서들간의 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 프로세서에 대해 인터럽션을 발생시켜 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 실행한 후, 각각의 상기 컴퓨팅 모듈에 대하여 동기 동작을 재실시하는 처리를 실행한다.

Description

폴트 톨러런트 컴퓨터, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체{FAULT TOLERANT COMPUTER SYSTEM RE-SYNCHRONIZATION METHOD THEREOF AND COMPUTER-READABLE STORAGE MEDIUM HAVING RE-SYNCHRONIZATION PROGRAM THEREOF RECORDED THEREON}
본 발명은 복수의 컴퓨팅 모듈에 의해 동일한 명령열을 서로 클록 동기시켜 전체적으로 동일한 방식으로 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에 관한 것이다. 더욱 자세하게는, 본 발명은 컴퓨팅 모듈들간에 동기 장해가 발생한 경우 (로크-스텝이 이탈한 경우) 재동기화 처리의 고속화를 실현하는 폴트 톨러런트 컴퓨터 시스템 및 고속 재동기화 제어 방법에 관한 것이다.
종래의 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 동일한 명령열을 동시에 실행하는 복수의 컴퓨팅 모듈들 중에서 한 컴퓨팅 모듈이 장해를 갖거나, 다른 외부 또는 내부 요인으로 인해 나머지 컴퓨팅 모듈들의 출력과 상이한 출력을 가진 것으로 검출한 경우, 후술할 방법을 수행한다. 이하, 나머지 컴퓨팅 모듈들과 동기하여 동작하지 못한 것으로 검출된 컴퓨팅 모듈을 스텝-아웃 상태의 컴퓨팅 모듈이라 한다.
더욱 자세하게는, 이러한 방법은 로크-스텝이 이탈한 컴퓨팅 모듈을 동작상태로부터 일단 제거한 다음, 스텝-아웃을 발생시킨 요인에 따라 필요에 의해 컴퓨팅 모듈을 교체하거나, 교체가 필요없을 경우 필요에 따라 재초기화 처리 등을 수행하여 컴퓨팅 모듈을 동작상태로 통합하는 것이다.
종래의 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 상술한 동작상태로 재통합할 때, 스텝-아웃 상태의 컴퓨팅 모듈을 교체했는지의 여부와 무관하게 컴퓨팅 모듈이, 동작을 진행중인 또 다른 컴퓨팅 모듈과 동기하여 동일한 처리를 재실행하기 때문에, 재통합시에, 동작 상태에 있는 컴퓨팅 모듈에 의해 유지되는 모든 메모리 데이터를, 재통합될 컴퓨팅 모듈에 의해 유지되는 메모리내에 복사한다.
종래의 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 스텝-아웃 상태의 컴퓨팅 모듈의 교체를 실행하거나, 스텝-아웃 등을 발생시키는 부분에 따라 재초기화 처리를 실행한 후, 해당 컴퓨팅 모듈을 동작상태로 재통합시키는 경우에, 동작상태인 컴퓨팅 모듈을 장기간동안 정지시킨다.
더욱 자세하게는, 종래의 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템은, 스텝-아웃 상태의 컴퓨팅 모듈이 재통합 처리를 받는 동안, 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템 전체가 장기간동안 (통상적으로 3 내지 5 초 또는 수 분 정도) 그 동작을 정지한다는 문제를 가진다.
그 이유는, 스텝-아웃 상태의 컴퓨팅 모듈을 동작상태로 통합하기 위해서는, 모든 메모리 내용을, 동작을 진행중인 컴퓨팅 모듈로부터 재통합할 컴퓨팅 모듈로 항상 복사하기 때문이다.
복사 처리동안에 정상 컴퓨팅 모듈의 동작을 진행하는 경우, 정상 컴퓨팅 모듈의 메모리 내용은 복사처리 동안에도 추가변경될 가능성을 갖기 때문에, 복사를 적합하게 수행할 수 없다. 이러한 상황을 피하기 위해, 동작상태인 컴퓨팅 모듈을 일시적으로 정지시켜 그 메모리 내용의 갱신을 방지한다.
현재의 컴퓨팅 모듈의 메모리 용량이 수 Giga bytes에 이르기 때문에, 전체 메모리 영역을 복사하는데 장시간을 필요로 한다.
로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 여러 이유로 컴퓨팅 모듈들간의 스텝-아웃 상태가 발생한다.
첫번째 경우는 컴퓨팅 모듈내에 발생하는 고정 장해이다. 이 경우, 장해를 가진 컴퓨팅 모듈을 교체해야 하며, 교체할 컴퓨팅 모듈을 동작시스템내에 통합하는 경우, 동작상태인 컴퓨팅 모듈의 메모리의 모든 데이터를 복사할 필요가 있다.
두번째 경우로, 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 상술한 고정 장해에 더하여, 그 동작이 정상인 경우에도 컴퓨팅 모듈이 컴퓨팅 모듈에서의 각각의 유닛의 제조상의 차이로 인하여 상이한 타이밍에서 동작하기 때문에, 또는 α- 레이 등의 효과에 의해 발생되는 메모리의 자동으로 수정가능한 간헐성 장해로 인하여 스텝-아웃 상태가 발생할 수 있다.
이 경우에, 컴퓨팅 모듈 자체에는 고정장해가 발생하지 않기 때문에, 기본적으로 모듈을 교체할 필요가 없으며, 동작중인 또 다른 컴퓨팅 모듈과 그 처리를 재동기화시켜 해당 컴퓨팅 모듈을 통합함으로써 전체적인 폴트 톨러런트 컴퓨터 시스템을 정상 동작상태로 복구할 수 있다.
본 발명의 목적은 고정 장해 이외의 원인에 의해 로크-스텝이 이탈한 컴퓨팅 모듈을, 종래의 시스템보다도 고속으로 동작상태로 재통합하여, 통합 처리에 의해 발생하는 시스템 동작의 일시정지 시간을 현저하게 감소시킬 수 있는 폴트 톨러런트 컴퓨터 시스템, 이 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법, 및 이 폴트 톨러런트 컴퓨터 시스템의 재동기화 프로그램을 제공하는 것이다.
본 발명의 또 다른 목적은 상술한 재통합 처리 시간의 감소에 의해 시스템의이용가능성의 향상을 실현하는 폴트 톨러런트 컴퓨터 시스템, 이 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법, 및 이 폴트 톨러런트 컴퓨터 시스템의 재동기화 프로그램을 제공하는 것이다.
도 1은 본 발명의 제 1 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구성을 나타내는 블록도.
도 2는 제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 제 1 동작을 나타내는 플로우차트.
도 3은 폴트 톨러런트 컴퓨터 시스템의 제 1 동작을 나타내는 플로우차트.
도 4는 폴트 톨러런트 컴퓨터 시스템의 제 2 동작을 나타내는 플로우차트.
도 5는 폴트 톨러런트 컴퓨터 시스템의 제 2 동작을 나타내는 플로우차트.
도 6은 폴트 톨러런트 컴퓨터 시스템의 제 3 동작을 나타내는 플로우차트.
도 7은 제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구성을 나타내는 블록도.
도 8은 제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 동작을 나타내는 플로우차트.
도 9는 제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 동작을 나타내는 플로우차트.
도 10은 제 3 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구성을 나타내는 블록도.
* 도면의 주요 부분에 대한 부호의 설명 *
100, 200, 300 : 컴퓨팅 모듈
101, 102, 201, 202, 301, 302 : 프로세서
103, 203, 303 : 프로세서 외부 버스
104, 204, 304 : 메모리
105, 205, 305 : 메모리 제어유닛
400, 500 : 주변장치 제어유닛
700 : 장해검출기
701 : 버스 모니터
702 : 인터럽션 제어유닛
703 : 시스템간 통신 제어유닛
704 : 동기 제어유닛
705 : PCI 브릿지
800, 801, 802, 803, 804 : PCI 버스
본 발명의 제 1 태양에 따르면, 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템은 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 동기하여 동일한 명령열을 처리하는데, 각각의 컴퓨팅 모듈에서의 프로세서들간의 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 프로세서에 대하여 인터럽션을 발생시켜 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 각각의 컴퓨팅 모듈에 대하여 동기 동작을 재실시하는 처리를 실행한다.
바람직한 구성에서는, 폴트 톨러런트 컴퓨터 시스템은, 시스템에서의 장해의 존재여부를 모니터링하는 장해 검출기;
각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태를 모니터링하는 버스 모니터;
버스 모니터가 각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태에서 동기 결함을 검출하는 경우에는, 장해 검출기가 장해를 검출하지 못한 경우, 그 검출결과를 각각의 프로세서에 통지하는 인터럽션을 발생시키는 인터럽션 제어수단;
각각의 컴퓨팅 모듈에 접속되어, 각각의 컴퓨팅 모듈에서의 프로세서들간의 명령 실행상태를 통지하는 시스템간 통신 제어수단; 및
각각의 컴퓨팅 모듈에 접속되어, 각각의 컴퓨팅 모듈에서의 명령 실행상태를 일치시키는 지연조정을 수행한 후 모든 컴퓨팅 모듈의 동기 동작을 재실시하는 리세트 신호를 발생시키는 동기 제어수단을 더 구비한다.
또 다른 바람직한 구성에서는, 각각의 모든 프로세서는, 프로세서에서 실행된 명령 수를 계수하는 명령 수 카운터를 구비하는데, 이 명령 수 카운터는, 프로세서가 인터럽션 제어수단으로부터 인터럽션을 수신하여 재동기화를 위한 프로세서 관리모드로 이행할 경우 동작하지 못하며,
각각의 프로세서는 자신의 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 대응 프로세서로부터 수신되는 명령 수 카운터 값과 비교하며,
모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신하는 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생하도록 동기 제어수단에 명령한다.
또 다른 바람직한 구성에서는, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서, 하나의 명령을 실행한 후 프로세서 관리모드로 이행하는 단계 실행모드로 프로세서를 설정하며, 이 프로세서는, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복한다.
또 다른 바람직한 구성에서는, 인터럽션 제어수단으로부터 인터럽션을 수신받은 각각의 모든 프로세서는, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고 프로그램 카운터 값을 저장하여 기억하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하며,
각각의 프로세서는 각각의 프로세서의 명령 수 카운터 값과 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 컴퓨팅 모듈로 전송하며,
각각의 프로세서는 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하며,
최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생하도록 동기 제어수단에 명령한다.
또 다른 바람직한 구성에서는, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서, 프로세서를, 지정 명령열에서의 특정 위치의 명령까지 실행한 후 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 설정하며,
명령열의 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치가 지정되며, 지정된 명령열에서의 특정 위치까지 명령열을 실행한 후, 프로세서가 프로세서 관리모드로 이행한다.
또 다른 바람직한 구성에서는, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 통지를 대기하며,
최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈은, 지연조정 처리를 실행한 후, 프로그램 실행 상태를 판독하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하며, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은, 모든 컴퓨팅 모듈의 프로그램 실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈을 발견한 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령한다.
또 다른 바람직한 구성에서는, 복수의 장해 검출기 쌍, 버스 모니터, 인터럽션 제어수단, 시스템간 통신 제어수단 및 동기 제어수단을 제공한다.
본 발명의 또 다른 태양에 따르면, 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서의 재동기화 방법은, 각각의 컴퓨팅 모듈에서의 프로세서들간의 외부 버스로의 액세스상태에서 불일치를 검출하는 경우, 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 프로세서에 인터럽션을 발생시키는 단계 및 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 각각의 컴퓨팅 모듈에 대하여 동기 동작을 재실시하는 처리를 실행하는 단계를 포함한다.
바람직한 구성에서는, 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법은 시스템에서의 장해의 존재여부를 모니터링하는 단계;
각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태를 모니터링하는 단계;
각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 장해를 검출하지 못하면, 그 검출결과를 모든 프로세서에 통지하는 인터럽션을 발생시키는 단계, 및 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 모든 컴퓨팅 모듈의 동기 동작을 재실시하는 처리를 실행하는 리세트 신호를 발생시키는 단계를 더 포함한다.
또 다른 바람직한 구성에서, 재동기화 방법은, 인터럽션을 수신받은 각각의모든 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 단계;
각각의 프로세서가, 판독된 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 단계;
모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 실행하며, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하며, 모든 통지를 수신받은 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생시키는 단계를 더 포함한다.
또 다른 바람직한 구성에서는, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
하나의 명령을 실행한 후 프로세서 관리모드로 이행하는 단계 실행모드로 프로세서를 설정하며, 이 프로세서는, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복한다.
또 다른 바람직한 구성에서는, 인터럽션을 수신받은 각각의 모든 프로세서는, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고프로그램 카운터 값을 저장하여 기억하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하며,
각각의 프로세서는 각각의 프로세서의 명령 수 카운터 값과 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 컴퓨팅 모듈로 전송하며,
각각의 프로세서는 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하며,
최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생한다.
또 다른 바람직한 구성에서는, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
프로세서를, 지정 명령열에서의 특정 위치의 명령까지 실행한 후 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 설정하며,
명령열의 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치가 지정되며, 지정된 명령열에서의 특정 위치까지 명령열을 실행한 후, 프로세서가 프로세서 관리모드로 이행한다.
또 다른 바람직한 구성에서는, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 통지를 대기하며,
최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈은, 지연조정 처리를 실행한 후, 프로그램 실행 상태를 판독하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하며, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은, 모든 컴퓨팅 모듈의 프로그램 실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈을 발견한 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령한다.
본 발명의 또 다른 태양에 따르면, 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 클록 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서의 재동기화 프로그램은, 각각의 컴퓨팅 모듈에서의 프로세서들간의 외부 버스로의 액세스상태에서 불일치를 검출하는 경우, 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 프로세서에 인터럽션을 발생시키며, 각각의 프로세서로 하여금, 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 동기 동작을 재실시시키는 기능을 포함한다.
바람직한 구성에서는, 재동기화 프로그램은, 시스템에서의 장해의 존재여부를 모니터링하는 기능;
각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태를 모니터링하며, 각각의 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 장해를 검출하지 못하면, 그 검출결과를 각각의 프로세서에 통지하는 인터럽션을 발생시키며, 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 모든 컴퓨팅 모듈의 동기 동작을 재실시하는 처리를 실행하는 리세트 신호를 발생시키는 기능을 더 포함한다.
또 다른 바람직한 구성에서, 재동기화 프로그램은, 인터럽션을 수신받은 각각의 모든 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 기능;
각각의 프로세서가, 판독된 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 기능;
모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 실행하며, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이, 또 다른 모든 컴퓨팅 모듈로부터 통지를수신하는 것을 대기하며, 모든 통지를 수신받은 경우, 모든 컴퓨팅 모듈로 하여금 동기 동작을 재실시시키는 리세트 신호의 발생을 명령하는 기능을 포함한다.
또 다른 바람직한 구성에서는, 재동기화 프로그램은, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
하나의 명령을 실행한 후 프로세서 관리모드로 이행하는 단계 실행모드로 프로세서를 설정하는 기능; 및
프로세서가, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복하는 기능을 포함한다.
또 다른 바람직한 구성에서는, 재동기화 프로그램은, 인터럽션을 수신받은 각각의 모든 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고 프로그램 카운터 값을 저장하여 기억하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 기능;
각각의 프로세서는 각각의 프로세서의 명령 수 카운터 값과 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 컴퓨팅 모듈로 전송하는 기능;
각각의 프로세서는 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 기능;
최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며, 및 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호의 발생을 명령하는 기능을 포함한다.
또 다른 바람직한 구성에서는, 재동기화 프로그램은, 최대값이 아닌 명령 수 카운터 값을 가진 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
프로세서를, 지정 명령열에서의 특정 위치의 명령까지 실행한 후 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 설정하는 기능;
명령열의 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치가 지정되며, 지정된 명령열에서의 특정 위치까지 명령열을 실행한 후, 프로세서가 프로세서 관리모드로 이행하는 기능을 포함한다.
또 다른 바람직한 구성에서는, 재동기화 프로그램은, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 통지를 대기하는 기능, 최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈이, 프로그램 실행 상태를 판독하며, 지연조정 처리를 실행한 후 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하며 및 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이 모든 컴퓨팅 모듈의 프로그램실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈을 발견한 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령하는 기능을 포함한다.
이하, 본 발명의 또 다른 목적, 특징 및 이점을 자세하게 설명한다.
본 발명은 후술할 설명부 및 바람직한 실시형태의 첨부한 도면을 통하여 자세하게 설명하지만, 이것은 단지 예를 들어 설명한 것에 불과하며 본 발명이 이에 한정되는 것은 아니다.
(실시형태)
이하, 본 발명의 바람직한 실시형태를 첨부한 도면을 통하여 자세하게 설명한다. 다음 설명에서는, 본 발명의 완전한 이해를 제공하기 위하여 여러 특정예들을 자세하게 설명한다. 그러나, 본 발명은 이러한 특정예들 없이도 실시할 수 있다. 또 다른 경우, 본 발명의 불필요한 모호함을 피하기 위해 이미 알려진 기술구성은 자세하게 설명하지 않는다.
이하, 본 발명의 실시모드를 도면을 통하여 자세하게 설명한다.
본 발명의 제 1 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구성을 도 1에 나타낸다. 도 1에서, 폴트 톨러런트 컴퓨터 시스템은 복수의 컴퓨팅 모듈 (100, 200) 을 구비하는데, 각각의 컴퓨팅 모듈 (100, 200) 은 동일한 명령열을 서로 클록 동기하여 처리한다. 폴트 톨러런트 컴퓨터 시스템은 각각의 컴퓨팅 모듈의 처리결과를 비교하여 동작한다. 하나의 컴퓨팅 모듈에 장해가 발생한 경우, 나머지 컴퓨팅 모듈에 의해 그 처리를 진행할 수 있다.
컴퓨팅 모듈 (100) 은 복수의 프로세서 (101, 102), 프로세서 외부 버스 (103), 메모리 (104) 및 메모리 제어유닛 (105) 을 구비한다. 또한, 컴퓨팅 모듈 (200) 도 컴퓨팅 모듈 (100) 과 동일한 구성요소들을 구비한다.
또한, 컴퓨팅 모듈 (100, 200) 은 메모리 제어유닛 (105, 205) 을 통하여 주변장치를 제어하는 주변장치 제어유닛 (400, 500) 에 접속한다.
상술한 폴트 톨러런트 컴퓨터 시스템은 장해 검출기 (700), 버스 모니터 (701), 인터럽션 제어유닛 (702), 시스템간 통신 제어유닛 (703) 및 동기 제어유닛 (704)을 더 구비한다.
장해 검출기 (700) 는 각각의 컴퓨팅 모듈 (100, 200) 을 포함한 전체 시스템에서의 장해의 존재여부를 모니터링한다.
버스 모니터 (701) 는 각각의 컴퓨팅 모듈 (100, 200) 에서의 프로세서의, 외부 버스 (103, 203) 로의 액세스 상태를 모니터링한다.
버스 모니터 (701) 가 각각의 컴퓨팅 모듈 (100, 200) 에서의 각각의 프로세서의, 외부 버스로의 출력에 불일치를 검출한 경우에는, 장해 검출기 (700) 가 장해를 검출하지 못한 경우 인터럽션 제어유닛 (702) 이 인터럽션을 발생시켜 그 결과를 모든 프로세서에 통지한다.
각각의 컴퓨팅 모듈 (100, 200) 에 접속하는 시스템간 통신 제어유닛 (703) 은 각각의 컴퓨팅 모듈 (100, 200) 의 프로세서에 의해 동작의 불일치 상태를 검사하는 통신경로를 제공한다.
각각의 컴퓨팅 모듈 (100, 200) 에 접속하는 동기 제어유닛 (704) 은 어떠한 프로세서로부터의 명령에 응답하여 모든 컴퓨팅 모듈 (100, 200) 에 대한 재동기화를 제어하는 리세트 신호를 발생시킨다.
여기서, 각각의 컴퓨팅 모듈 (100, 200) 내에 구비되는 프로세서의 개수는 본 실시모드에 나타낸 바와 같이 2개로 한정되는 것이 아니며, 각각의 컴퓨팅 모듈마다 1개 또는 3개 이상의 프로세서를 설치할 수도 있다.
또한, 컴퓨팅 모듈의 개수는 본 실시모드에 나타낸 바와 같이 2개로 한정되는 것이 아니며, 3개 이상의 컴퓨팅 모듈에 의해서도 본 발명의 효과와 동일한 효과를 가질 수 있다.
다음, 이렇게 구성한 제 1 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 동작을 도 1, 도 2 및 도 3을 통하여 상세히 설명한다.
장해 검출기 (700) 는 각각의 컴퓨팅 모듈 (100, 200) 과 각각의 주변 장치 제어유닛 (400, 500) 을 포함하는 전체 폴트 톨러런트 컴퓨터 시스템에서의 장해의 존재여부를 모니터링하여 그 결과를 인터럽션 제어유닛 (702) 에 통지한다.
버스 모니터 (701) 는 각각의 컴퓨팅 모듈 (100, 200) 의 프로세서의 외부 버스 (103, 203) 에 접속한다. 버스 모니터 (701) 는 프로세서 (101, 102, 201, 202) 의, 외부 버스로의 액세스 상태를 비교하여, 각각의 프로세서 (101, 102, 201, 202) 가 서로 동기하여 동일한 타이밍에서 프로세서 외부 버스 (103, 203) 에 액세스하는지의 여부를 모니터링한다. 프로세서 (101, 102, 201, 202) 의 동작에서 일치성의 결함을 검출한 경우, 버스 모니터 (701) 는 그 결과를 인터럽션 제어유닛 (702) 에 통지한다.
버스 모니터 (701) 에 의해 동작의 동기 결함검출을 통지받은 경우, 장해 검출기 (700) 가 폴트 톨러런트 컴퓨터 시스템에서 장해를 검출하지 못하면, 각각의 컴퓨팅 모듈에서의 모든 프로세서에 그 결과를 통지하기 위해 인터럽션 제어유닛 (702) 이 인터럽션을 발생시킨다.
또한, 인터럽션 제어유닛 (702) 은 동기 제어유닛 (704) 으로부터 인터럽션을 제공받을 때까지, 인터럽션 발생 후에 새로운 인터럽션의 발생을 억제한다. 이러한 억제동작은 각각의 컴퓨팅 모듈의 재동기화 처리에 의해 발생하는, 프로세서의 외부 버스로의 액세스 동작에서의 동기결함을, 통상의 동작에서의 동기결함으로 오인하는 것을 방지한다.
인터럽션 제어유닛 (702) 으로부터 인터럽션을 수신받은 각각의 프로세서 (101, 102, 201, 202) 는, 동일한 명령열을 서로 클록동기시켜 실행시킨 상태로 복귀하는 재동기화 처리를 실행하여, 각각의 컴퓨팅 모듈 (100) 과 컴퓨팅 모듈 (200) 간의 동작이탈 (스텝-아웃) 을 수정한다.
이 관련 재동기화 처리를 도 2와 도 3에 나타낸 플로우 차트를 통하여 설명한다.
각각의 프로세서 (101, 102, 201, 202) 는 인터럽션의 수신시, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 않는, 재동기화 처리를 위한 프로세서 관리모드로 이행한다 (단계 201).
이후, 각각의 프로세서 (101, 102, 201, 202) 는 자신의 명령 수 카운터 값을 판독하여 (단계 202) , 이 판독된 명령 수 카운터 값을 메모리 제어유닛 (105, 205) 과 시스템간 통신 제어유닛 (703) 을 통하여 또 다른 컴퓨팅 모듈로 전송한다 (단계 203).
또한, 각각의 프로세서 (101, 102, 201, 202) 는 메모리 제어유닛 (105, 205) 과 시스템간 통신 제어유닛 (703) 을 통하여 또 다른 컴퓨팅 모듈로부터 전송되는 또 다른 컴퓨팅 모듈에서의 프로세서의 명령 수 카운터 값을 판독한다 (단계 204). 각각의 프로세서는 각각의 모든 컴퓨팅 모듈에서의 대응 프로세서의 명령 수 카운터 값과 동일한지 비교한다 (단계 205).
여기서, 모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터 (이하, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈이라 함) 를 가진 프로세서를 구비한 컴퓨팅 모듈은, 또 다른 컴퓨팅 모듈이 명령 수 카운터 값의 비교 결과에 따라 지연처리에 상당하는 명령을 실행하는 동안, 그 실행을 큐잉 (queuing) 하는 처리를 수행한다 (단계 206). 모든 컴퓨팅 모듈 (100, 200) 에서 실행된 명령 수가 서로 일치하는 경우, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈이 메모리 제어유닛 (105, 205) 을 통하여 동기 제어유닛 (704) 으로 하여금 모든 컴퓨팅 모듈 (100, 200) 로의 재동기화 처리를 위한 리세트 명령을 발생시키도록 명령한다 (단계 207).
한편, 최대값을 나타내는 명령 수 카운터를 구비하지 않는 모든 컴퓨팅 모듈은, 최대 명령 수 카운터 값 (명령 수 카운터 값) 을 가진 컴퓨팅 모듈과 동일한 명령열 실행 상태에 진입할 때까지 명령을 실행하는 지연단계 조정처리를 실행한다(단계 208). 최대값이 아닌 명령 수 카운터 값을 가진 각각의 컴퓨팅 모듈은, 지연단계 조정처리 완료를 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈에 통지한 후 (단계 209), 재동기화 처리를 위한 리세트 명령을 대기한다 (단계 210).
동기 제어유닛 (704) 은 최대값을 나타내는 명령 수 카운터와 함께 컴퓨팅 모듈로부터의 명령을 수신하면, 모든 컴퓨팅 모듈 (100, 200) 에 대하여 동시에 동기 동작으로 복귀하는 리세트 신호를 발생시킨다. 또한, 동시에 유닛 (704) 은 인터럽션 제어유닛 (702) 에 명령을 인가하여 인터럽션을 발생하도록 하여, 통상의 동기 동작을 재실시할 준비를 한다.
도 3은 도 2에 나타낸 지연단계 조정처리의 기능을 상세히 나타낸다.
지연단계 조정처리 (도 2의 단계 208) 에서는, 프로세서가 하나의 명령을 실행한 후에만, 프로세서를, 프로세서 관리 모드로 이행되는 단계 실행 모드로 설정한다 (단계 301). 이후, 프로세서가 정상 실행모드로 이행한다 (단계 302).
그 결과, 하나의 명령만을 실행한 후 (단계 303), 프로세서가 프로세서 관리모드로 이행한다 (단계 304).
프로세서는 자신의 명령 수 카운터 값을 판독하며 (단계 305), 그 판독된 값을, 최대값을 가진 컴퓨팅 모듈로부터 이미 수신받은 명령 수 카운터 값과 비교한다 (단계 306). 그 비교결과가 서로 일치하지 않은 경우, 프로세서는 단계 실행모드 (단계 301) 의 처리를 재반복하며, 그 비교결과가 서로 일치하는 경우, 지연단계 조정처리를 완료한다.
앞에서 상술한 기능에 의해, 고정 장해 이외의 다른 원인에 의해 로크-스텝이 이탈하는 컴퓨팅 모듈의 상태를 또 다른 컴퓨팅 모듈의 상태에 일치시킬 수 있다. 통상적으로, 외부 버스를 모니터링하여 동기 결함을 먼저 검출한 경우, 스텝-아웃 상태에서도, 그 스텝-아웃의 정도는 충분히 작기 때문에, 상술한 수개의 처리 단계를 실행하여 동일한 명령열을 실행하는 상태로 복귀시킬 수 있다. 따라서, 모든 메모리 영역을 복사하는 종래의 시스템에 비해 그 처리 시간을 상당히 단축시킬 수 있다.
도 4와 도 5는 도 1에 나타낸 바와 같이 구성한 폴트 톨러런트 컴퓨터 시스템에서의 재동기화 처리의 제 2 동작을 나타내는 플로우 차트이다.
제 2 동작에서는, 인터럽션 제어유닛 (702) 으로부터의 인터럽션을 수신받은 각각의 프로세서 (101, 102, 103, 104) 가 각각의 컴퓨팅 모듈 (100, 200) 간의 동작 이탈 (스텝-아웃) 을 수정하고 동일한 명령열을 동기실행시킨 상태로 복귀하는, 도 4에 나타낸 재동기화 처리를 실행한다.
각각의 프로세서 (101, 102, 103, 104) 는 인터럽션 수신시, 실행된 명령 수를 계수하는 프로세서의 명령 수 카운터가 동작하지 못하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하며, 정상 동작에서의 프로그램 카운터 (PC) 의 값을 저장하여 기억한다 (단계 401).
각각의 프로세서 (101, 102, 103, 104) 는 자신의 명령 수 카운터 값과, 프로그램 카운터의 저장값을 판독하며 (단계 402), 그 판독값을 메모리 제어유닛 (105와 205) 과 시스템간 통신 제어유닛 (703) 을 통하여 또 다른 컴퓨팅 모듈로 전송한다 (단계 403).
또한, 각각의 프로세서 (101, 102, 103, 104) 는 시스템간 통신 제어유닛 (703) 과 메모리 제어유닛 (105와 205) 을 통하여 또 다른 컴퓨팅 모듈로 전송되는, 또 다른 컴퓨팅 모듈의 프로세서의 명령 수 카운터 값과 프로그램 카운터 값을 판독한다 (단계 404). 각각의 프로세서는 자신의 명령 수 카운터 값을, 각각의 모든 컴퓨팅 모듈에서의 대응 프로세서의 명령 수 카운터 의 값과 비교한다 (단계 405).
여기서, 모든 프로세서들 중에서 최대값을 나타내는 명령 수 카운터를 가진 프로세서를 구비하는 컴퓨팅 모듈은, 또 다른 컴퓨팅 모듈이 비교 결과에 따라 지연처리에 상당하는 명령을 실행하는 동안, 큐잉 실행 처리를 실행한다 (단계 406). 실행 명령 수가 모든 컴퓨팅 모듈에서 일치하는 경우, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈은 메모리 제어유닛 (105 또는 205) 을 통하여 동기 제어유닛 (704) 으로 하여금 모든 컴퓨팅 모듈에 대하여 재동기화 처리하는 리세트 명령을 발생하도록 명령한다 (단계 407).
한편, 최대값이 아닌 명령 수 카운터 값을 가진 모든 컴퓨팅 모듈은, 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈의 명령 수와 동일한 명령 수를 실행할 때까지 명령을 실행하는 지연단계 조정처리를 실행한다 (단계 408). 최대값을 가진 명령 수 카운터가 존재하지 않는 각각의 컴퓨팅 모듈은 지연단계 조정처리의 완료를, 최대값을 가진 컴퓨팅 모듈에 통지한 후 (단계 409), 재동기화 처리를 위한 리세트 명령을 대기한다 (단계 410).
도 5는 도 4에서의 지연단계 조정처리를 자세하게 나타낸다.
상술한 지연단계 조정처리에서는 (도 4의 단계 408), 프로세서가 지정 명령열에서의 특정위치까지 명령을 실행한 후 프로세서 관리모드로 재이행하는 브레이크 포인트 지정 실행모드로 프로세서를 설정한다. 이때, 명령열의 특정위치로는,최대 명령 수 카운터 값을 가진 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지정된 명령 위치가 특정위치로 된다 (단계 501). 이후, 프로세서는 정상 실행모드로 이행한다 (단계 502).
그 결과, 프로세서는, 지정된 명령열에서 특정위치까지 명령을 실행한 후, 즉, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈의 명령열의 위치와 동일한 위치까지 명령을 실행한 후 (단계 503), 지연단계 조정처리를 완료한 다음 프로세서 관리모드로 재이행한다 (단계 504).
도 6은 제 1 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 제 3 동작을 설명하는 플로우차트로, 더욱 자세하게는, 도 2와 도 4에 나타낸 동작 (도 2의 단계 205와 도 4의 단계 405) 에서 처리하는 명령 수 카운터 비교에 후속하는 처리의 또 다른 실시예를 나타낸다.
도 6에 나타낸 처리에서는, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈에서 프로그램 실행 상태를 판독한 후 (단계 601), 최대 명령 수 카운터 값을 가진 컴퓨터가 또 다른 컴퓨팅 모듈로부터의 지연단계 조정처리 완료의 통지를 대기한다 (단계 602).
한편, 상술한 어떠한 방법 또는 이와 유사한 방법에 의해서 지연단계 조정처리를 실행한 후 (단계 701), 최대값이 아닌 명령 수 카운터값을 가진 각각의 또 다른 모든 컴퓨팅 모듈이 그 프로그램 실행상태를 판독한다 (단계 702). 각각의 또 다른 컴퓨팅 모듈은 프로그램 실행상태를 지연단계 조정처리 완료의 통지와 함께, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈로 전송한 후 (단계 703), 재동기화 처리를 위한 리스트 명령을 대기한다 (단계 704).
프로그램 실행상태를 수신받은, 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈은 모든 컴퓨닝 모듈의 프로그램 실행상태를 비교한다 (단계 603). 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈은 모든 상태가 일치하는 경우, 동기 동작 재실시 처리를 실행한다. 상태가 일치하지 않은 컴퓨팅 모듈을 검출할 경우, 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈이 해당 컴퓨팅 모듈만을 컷오프하는 처리를 실행한 다음 그 컴퓨팅 모듈을 무효화한 후 (단계 604), 또 다른 모든 컴퓨팅 모듈의 동작 재실시 처리를 실행한다 (단계 605).
도 6에 나타낸 처리 내용에 의해, 단계실행과 브레이크 포인트 실행시 신뢰할 수 없었던 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서도 처리결과의 오류없이 본 발명을 실시할 수 있다.
다음, 도 7을 참조하여, 본 발명의 제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템을 설명한다.
도 7을 참조하면, 본 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템은 프로세서 와 메모리를 각각 가진 복수의 컴퓨팅 모듈 (100, 200, 300) 과, 주변장치와의 접속을 위한 메커니즘 (803, 804) 을 각각 가진 복수의 주변장치 제어유닛 (400, 500) 을 구비한다. 각각의 컴퓨팅 모듈 (100, 200, 300) 은 서로 동기하여 동일한 명령열을 처리한 다음, 각각의 컴퓨팅 모듈의 처리 결과를 비교하여 동작한다. 하나의 컴퓨팅 모듈에서 장해를 발견한 경우, 그 처리는 나머지 컴퓨팅 모듈에 의해 진행할 수 있다.
제 2 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템에서는, 각각의 주변장치 제어유닛 (400, 500) 은 도 1에 나타낸, 장해 검출기 (700), 버스 모니터 (701), 인터럽션 제어유닛 (702), 시스템간 통신 제어유닛 (703), 동기 제어유닛 (704) 을 구비하며, 주변장치 제어유닛과 주변장치 접속 메커니즘 (803, 804) 에서의 각각의 제어유닛과 각각의 컴퓨팅 모듈간의 접속을 제어하는 PCI 브릿지 (705) 를 더 구비한다.
도면에는 나타내지 않았지만, 주변장치 제어유닛 (500) 의 내부구성은 주변장치 제어유닛 (400) 의 구성과 완전하게 동일하며, 주변장치 제어유닛 (400) 이나 주변장치 제어유닛 (500) 에서 이용할 제어수단은 컴퓨팅 모듈에서의 프로세서상에서 실행하는 프로그램에 의해 임의의 결정할 수 있으며, 이에 따라, 재동기화와 관련한 주변장치 제어유닛 (400 또는 500) 에서 장해를 발견한 경우에도, 장해가 없는 주변장치 제어유닛 (400 또는 500) 을 이용하여 그 이용가능성을 강화시킬 수 있다.
본 실시모드는, 각각의 컴퓨팅 모듈 (100, 200, 300) 과 각각의 주변장치 제어유닛 (400, 500) 간의 접속이 대표적인 주변장치 접속 인터페이스인 PCI 브릿지 (705) 를 이용하여 확립되는 것, 및 시스템간 통신 제어유닛 (703) 으로부터 및 유닛으로의 데이터 송수신과, 동기 제어유닛 (704) 에 대한 리세트 처리 명령을 PCI프로토콜을 이용하여 실행하는 것을 제외하고는 도 1에 나타낸 상술한 실시모드의 동작과 동일한 동작에 의해 본 발명의 효과를 달성한다.
또한, 본 실시모드는 3개의 컴퓨팅 모듈을 제공하는 구성을 나타내는데, 이 구성으로 재동기화 처리하는 동작을 도 8과 도 9에 자세히 나타낸다. 도 8은 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템이 3개 이상의 컴퓨팅 모듈을 구비하는 경우에, 상술한 도 2의 동작으로부터 일반화한 동작의 플로우차트이다. 이 처리의 내용은 컴퓨팅 모듈의 개수가 다른 것을 제외하고는 도 2와 도 3에서 나타낸 내용과 동일하다.
더욱 자세하게는, 도 8과 도 9에 나타낸 플로우차트에서, 각각의 프로세서가 인터럽션을 수신하면, 재동기화를 위한 프로세서 관리모드로 이행하는데, 이 모드에서는, 프로세서에서 실행되는 명령 수를 계산하는 명령 수 카운터가 동작하지 못한다 (단계 801).
이후, 각각의 프로세서는 자신의 명령 수 카운터 값을 판독하고 (단계 802), 그 판독된 명령 수 카운터 값을 메모리 제어유닛 (105, 205), PCI 브릿지 (705) 및 시스템간 통신 제어유닛 (703) 을 통하여 또 다른 컴퓨팅 모듈로 전송한다 (단계 803).
또한, 각각의 프로세서는 또 다른 해당 컴퓨팅 모듈로부터 시스템간 통신 제어유닛 (703), PCI 브릿지 (705) 및 메모리 제어유닛 (105, 205) 을 통하여 전송되는 또 다른 컴퓨팅 모듈에서의 프로세서의 명령 수 카운터 값을 판독한다 (단계 804). 각각의 프로세서는 이 판독된 값을 각각의 모든 컴퓨팅 모듈에서의 대응프로세서의 명령 수 카운터 값과 비교한다 (단계 805).
여기서, 모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 가진 프로세서를 구비한 컴퓨팅 모듈은, 또 다른 컴퓨팅 모듈이 명령 수 카운터 값의 비교 결과에 따라 지연처리에 상당하는 명령을 실행하는 동안, 그 실행을 큐잉하는 처리를 수행한다 (단계 806). 모든 컴퓨팅 모듈 (100, 200, 300) 에서 실행된 명령 수가 서로 일치하는 경우, 최대 명령 수 카운터 값을 가진 컴퓨팅 모듈이 메모리 제어유닛 (105, 205) 과 PCI 브릿지 (705) 를 통하여 동기 제어유닛 (704) 으로 하여금 모든 컴퓨팅 모듈 (100, 200, 300) 에 대한 재동기화 처리를 위한 리세트 명령을 발생하도록 명령한다 (단계 807).
한편, 최대값이 아닌 명령 수 카운터 값을 가진 모든 컴퓨팅 모듈은, 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈의 명령열 실행 상태와 동일한 명령열 실행상태로 진입할 때까지 명령을 실행하는 지연단계 조정처리를 실행한다 (단계 808). 최대값을 가진 명령 수 카운터가 존재하지 않는 각각의 컴퓨팅 모듈은 지연단계 조정처리의 완료를, 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈에 통지한 후 (단계 809), 재동기화 처리를 위한 리세트 명령을 대기한다 (단계 810).
명령 수신시, 동기 제어유닛 (704) 은 모든 컴퓨팅 모듈 (100, 200, 300) 에 대하여 동시에 동기 동작으로 복귀하는 리세트 신호를 발생시킨다. 또한, 동시에 유닛 (704) 은 동기 동작에 결함이 있는 경우, 인터럽션 제어유닛 (702) 에 명령을 인가하여 인터러션을 발생시키도록 하여, 정상의 동기 동작을 재실시할 준비를 한다.
도 9는 도 8에 나타낸 지연단계 조정처리의 기능을 자세하게 나타낸다.
지연단계 조정처리 (도 8의 단계 808) 에서는, 프로세서가 하나의 명령을 실행한 후에만 프로세서 관리 모드로 이행되는 단계 실행 모드로 프로세서를 설정한다 (단계 901). 이후, 프로세서가 정상 실행모드로 이행한다 (단계 902).
그 결과, 하나의 명령만을 실행한 후 (단계 903), 프로세서가 프로세서 관리모드로 이행한다 (단계 904).
프로세서는 자신의 명령 수 카운터 값을 판독하며 (단계 905), 그 판독된 값을 최대값을 나타내는 명령 수 카운터를 가진 컴퓨팅 모듈로부터 이미 수신받은 명령 수 카운터 값과 비교한다 (단계 906). 그 비교결과가 서로 일치하지 않은 경우, 프로세서는 단계 실행모드 (단계 901) 의 처리를 재반복하며, 그 비교결과가 서로 일치하는 경우, 지연단계 조정처리를 완료한다.
도 10은 본 발명의 제 3 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구성을 나타낸다. 도 10을 참조하면, 본 실시모드에 따른 폴트 톨러런트 컴퓨터 시스템은, 버스 모니터 (701) 와 인터럽션 제어유닛 (702) 에 의한, 각각의 컴퓨팅 모듈로부터 및 모듈로의 정보 송수신을 PCI 브릿지 (705) 를 통해서도 실행하는 것을 제외하고는 도 7에 나타낸 제 2 실시모드와 동일하며, 도 8과 도 9에 나타낸 동작과 동일한 동작에 의해 동일한 효과를 얻는다.
본 발명의 폴트 톨러런트 컴퓨터 시스템에서는, 재동기화 처리를 실행하는 각각의 유닛의 기능을 하드웨어에 의해 실현할 수 있을 뿐만 아니라, 상술한 각각의 유닛의 기능을 실행하는 재동기화 처리 프로그램 (1000) 을 컴퓨터 처리 장치의 메모리로 로딩하여 컴퓨터 처리 장치를 제어함으로써 유닛의 기능을 실현할 수도 있다. 이 재동기화 처리 프로그램 (1000) 을, 자기 디스크 또는 반도체 메모리와 같은 기억매체에 기억시키고, 이 기억매체로부터 컴퓨터 처리장치로 로딩하여, 컴퓨터 처리장치의 동작을 제어함으로써 상술한 각각의 기능들을 실현한다.
본 발명을 상술한 바람직한 실시모드들에 대하여 설명하였지만, 이 실시모드들로 반드시 한정할 필요가 있는 것은 아니며, 본 발명의 기술사상의 범주내에 있는 여러 형태들로 실현할 수도 있다.
본 발명은 컴퓨팅 모듈의 개수가 2개 또는 3개 이상인지와 무관하게, 상술한 구성과 동작에 의하여 완전히 동일한 효과를 달성한다.
또한, 각각의 컴퓨팅 모듈에서의 프로세서의 개수에 제한을 두지 않으며, 하나의 프로세서에 제공된 구성과 3개 이상의 프로세서에 제공된 구성은 완전 동일한 방식의 기능을 제공한다. 또한, 상술한 각각의 실시모드에는, 각각의 프로세서가 하나의 외부 버스를 공유하여 동일한 버스상에 접속하는 경우를 나타냈지만, 예를 들면, 복수의 프로세서가 메모리 제어유닛과 성좌형상으로 접속한 구성이나 하나의 컴퓨팅 모듈을 형성하는 프로세서가 복수의 보드상에 물리적으로 개별형성되는 구성도 본 발명의 효과에 영향을 주지 않는다.
또한, 본 발명은 컴퓨팅 모듈과, 버스 모니터와 같은 재동기화를 위한 각각의 유닛을 한 쌍으로 구비할 수도 있지만 이들 구성요소들을 복수 쌍으로 구비할 수도 있다. 또한, 이들 구성요소를 주변장치 제어유닛에 제공할 수도 있고, 또는 이들 구성요소를 전용보드 같은 것상에 형성할 수도 있다. 다른 구성으로는, 컴퓨팅 모듈 및 버스 모니터와 같은 재동기화를 위한 또 다른 각각의 유닛을, PCI, 또는 PCI-x와 같은 또 다른 표준 인터페이스 수단에 의해, 또는 표준이 아닌 전용 인터페이스 수단에 의해 접속하여 상술한 효과와 동일한 효과를 얻을 수도 있다.
상술한 바와 같이, 본 발명은 다음 효과를 달성한다.
제 1 효과는 어떤 컴퓨팅 모듈이 고정 장해 이외의 원인으로 인하여 로크-스텝 상태로부터 이탈한 경우, 이 컴퓨팅 모듈로 하여금 매우 단기간내에 로크-스텝 상태로 복귀시킬 수 있다는 것이다.
그 이유는, 각각의 컴퓨팅 모듈의 처리에서의 이탈정도가 작은 경우에도, 스텝-아웃이 발생한 초기 단계에서 프로세서에 인터럽션을 발생시켜, 지연처리를 가진 컴퓨팅 모듈의 지연을 조정한 후 동기 동작을 재실시함으로써, 모든 메모리를 복사하지 않고도 동기 동작상태로 복구시킬 수 있기 때문이다.
제 2 효과는 폴트 톨러런트 컴퓨터 시스템의 이용가능성을 향상시킨다는 것이다. 그 이유는, 로크-스텝이 이탈한 경우 재동기화 처리의 시간을 상당히 고속화시켜 전체 시스템의 정지기간을 현저하게 감소시킬 수 있기 때문이다.
본 발명을 예시적인 실시형태들을 통하여 설명하였지만, 본 발명의 사상과 범위에 벗어나지 않고 다른 여러 변형, 생략 또는 추가하여 본 발명을 구성할 수도 있다. 따라서, 본 발명은 상술한 특정 실시형태로 한정해서는 안되며, 첨부된청구범위에서 설명한 특징들에 대한 본 발명의 동등물 또는 포함범위내에서 실시될 수 있는 모든 가능한 실시형태들을 포함할 수 있다.

Claims (22)

  1. 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템으로서,
    각각의 상기 컴퓨팅 모듈에서의 프로세서들간의 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 각각의 상기 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 상기 프로세서에 대하여 인터럽션을 발생시켜 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 실행한 후, 각각의 상기 컴퓨팅 모듈에 대하여 동기 동작을 재실시하는 처리를 실행하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    시스템에서의 장해의 존재여부를 모니터링하는 장해 검출기;
    각각의 상기 컴퓨팅 모듈에서의 각각의 상기 프로세서의, 외부 버스로의 액세스 상태를 모니터링하는 버스 모니터;
    상기 버스 모니터가 각각의 상기 컴퓨팅 모듈에서의 각각의 상기 프로세서의, 외부 버스로의 액세스 상태에서 동기 결함을 검출하는 경우에는, 상기 장해 검출기가 장해를 검출하지 못한 경우, 그 검출결과를 각각의 상기 프로세서에 통지하는 인터럽션을 발생시키는 인터럽션 제어수단;
    각각의 컴퓨팅 모듈에 접속되어, 각각의 상기 컴퓨팅 모듈에서의 상기 프로세서들간의 명령 실행상태를 통지하는 시스템간 통신 제어수단; 및
    각각의 상기 컴퓨팅 모듈에 접속되어, 각각의 상기 컴퓨팅 모듈에서의 명령 실행상태를 일치시키는 지연조정을 수행한 후 모든 상기 컴퓨팅 모듈의 동기 동작을 재실시하는 리세트 신호를 발생시키는 동기 제어수단을 더 구비하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    각각의 모든 상기 프로세서는, 프로세서에서 실행된 명령 수를 계수하는 명령 수 카운터를 구비하는데, 이 명령 수 카운터는, 상기 프로세서가 상기 인터럽션 제어수단으로부터 인터럽션을 수신하여 재동기화를 위한 프로세서 관리모드로 이행할 경우 동작하지 못하며,
    각각의 상기 프로세서는 자신의 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 대응 프로세서로부터 수신되는 명령 수 카운터 값과 비교하며,
    모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 상기 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며,
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈은, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신하는 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생하도록 동기 제어수단에 명령하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  4. 제 3 항에 있어서,
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    상기 프로세서는 하나의 명령을 실행한 후 상기 프로세서 관리모드로 이행하는 단계 실행모드로 설정되며,
    상기 프로세서는 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  5. 제 2 항에 있어서,
    상기 인터럽션 제어수단으로부터 인터럽션을 수신받은 각각의 모든 상기 프로세서는, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고 프로그램 카운터 값이 저장되어 기억되는, 재동기화 처리를 위한 프로세서 관리모드로 이행하며,
    각각의 상기 프로세서는 각각의 프로세서의 명령 수 카운터 값과 상기 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 상기 컴퓨팅 모듈로 전송하고,
    각각의 상기 프로세서는 판독된 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하며,
    최대값이 아닌 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며,
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈은, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생하도록 동기 제어수단에 명령하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  6. 제 5 항에 있어서,
    최대값이 아닌 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    상기 프로세서는 지정 명령열에서의 특정 위치의 명령까지 실행한 후 상기 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 설정되며,
    명령열의 상기 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치가 지정되며,
    상기 프로세서가, 지정된 명령열에서의 상기 특정 위치까지 명령열을 실행한 후, 프로세서 관리모드로 이행되는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  7. 제 3 항에 있어서,
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈은, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 상기 통지를 대기하며,
    최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈은, 지연조정처리를 실행한 후, 프로그램 실행 상태를 판독하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하며,
    최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은, 모든 컴퓨팅 모듈의 프로그램 실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈이 검출되는 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  8. 제 2 항에 있어서,
    복수의 상기 장해 검출기 쌍, 상기 버스 모니터, 상기 인터럽션 제어수단, 상기 시스템간 통신 제어수단 및 상기 동기 제어수단이 제공되는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템.
  9. 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서의 재동기화 방법으로서,
    각각의 상기 컴퓨팅 모듈에서의 상기 프로세서들간의 외부 버스로의 액세스상태에서 불일치를 검출하는 경우, 각각의 상기 컴퓨팅 모듈을 구비하는 시스템에서 장해를 검출하지 못하면, 모든 상기 프로세서에 인터럽션을 발생시키는 단계; 및
    상기 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 각각의 상기 컴퓨팅 모듈에 대하여 동기 동작을 재실시하는 처리를 실행하는 단계를 포함하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  10. 제 9 항에 있어서,
    시스템에서의 장해의 존재여부를 모니터링하는 단계;
    각각의 상기 컴퓨팅 모듈에서의 각각의 상기 프로세서의, 외부 버스로의 액세스 상태를 모니터링하는 단계;
    각각의 상기 컴퓨팅 모듈에서의 각각의 상기 프로세서의, 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 장해를 검출하지 못하면, 그 검출결과를 모든 상기 프로세서에 통지하는 인터럽션을 발생시키는 단계; 및
    상기 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 모든 상기 컴퓨팅 모듈의 동기 동작을 재실시하는 처리를 실행하는 리세트 신호를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  11. 제 10 항에 있어서,
    상기 인터럽션을 수신받은 각각의 모든 상기 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 단계;
    각각의 상기 프로세서가, 판독된 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 단계;
    모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 실행하며, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하는 단계; 및
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈이, 또 다른모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하며, 모든 통지를 수신받은 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  12. 제 11 항에 있어서,
    최대값이 아닌 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    상기 프로세서가 하나의 명령을 실행한 후 상기 프로세서 관리모드로 이행하는 단계 실행모드로 설정하며,
    상기 프로세서는, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  13. 제 10 항에 있어서,
    상기 인터럽션을 수신받은 각각의 모든 상기 프로세서는, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고 프로그램 카운터 값을 저장하여 기억하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하며,
    각각의 상기 프로세서는 각각의 프로세서의 명령 수 카운터 값과 상기 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 상기 컴퓨팅 모듈로 전송하며,
    각각의 상기 프로세서는 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하며,
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈은, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하며,
    최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 서로 동기하는 동작을 재실시시키는 리세트 신호를 발생시키는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  14. 제 13 항에 있어서,
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    상기 프로세서를, 지정 명령열에서의 특정 위치의 명령까지 실행한 후 상기 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 설정하며,
    명령열의 상기 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치가 지정되며,
    지정된 명령열에서의 상기 특정 위치까지 명령열을 실행한 후, 상기 프로세서가 프로세서 관리모드로 이행하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  15. 제 11 항에 있어서,
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈은, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 상기 통지를 대기하며,
    최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈은, 지연조정 처리를 실행한 후, 프로그램 실행 상태를 판독하고, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하며,
    최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈은, 모든 컴퓨팅 모듈의 프로그램 실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈을 검출한 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령하는 것을 특징으로 하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법.
  16. 프로세서와 메모리를 가진 복수의 컴퓨팅 모듈을 구비하고 각각의 컴퓨팅 모듈이 서로 클록 동기하여 동일한 명령열을 처리하는 로크-스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서의 재동기화 처리를 실행하는 재동기화 프로그램이 기록된 기억매체로서,
    상기 재동기화 프로그램은,
    각각의 상기 컴퓨팅 모듈에서의 상기 프로세서들간의 외부 버스로의 액세스상태에서 불일치를 검출하는 경우, 각각의 상기 컴퓨팅 모듈을 포함하는 시스템에서 장해를 검출하지 못하면, 모든 상기 프로세서에 인터럽션을 발생시키는 기능; 및
    각각의 상기 프로세서로 하여금, 상기 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 동기 동작을 재실시시키는 기능을 포함하는 것을 특징으로 하는 기억매체.
  17. 제 16 항에 있어서,
    상기 재동기화 프로그램은,
    시스템에서의 장해의 존재여부를 모니터링하는 기능;
    각각의 상기 컴퓨팅 모듈에서의 각각의 프로세서의, 외부 버스로의 액세스 상태를 모니터링하는 기능;
    각각의 상기 컴퓨팅 모듈에서의 각각의 상기 프로세서의, 외부 버스로의 액세스 상태에서 불일치를 검출하는 경우, 상기 장해의 모니터링시 장해를 검출하지못하면, 그 검출결과를 각각의 상기 프로세서에 통지하는 인터럽션을 발생시키는 기능; 및
    상기 컴퓨팅 모듈들간의 명령 실행상태를 일치시키는 지연조정을 수행한 후, 모든 상기 컴퓨팅 모듈의 동기 동작을 재실시하는 리세트 신호를 발생하는 기능을 더 포함하는 것을 특징으로 하는 기억매체.
  18. 제 17 항에 있어서,
    상기 재동기화 프로그램은,
    인터럽션을 수신받은 각각의 모든 상기 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 기능;
    각각의 상기 프로세서가, 판독된 명령 수 카운터 값을 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 기능;
    모든 카운터들 중에서 최대값을 나타내는 명령 수 카운터를 구비하지 않는 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하며, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하는 기능; 및
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈이, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하며, 모든 통지를 수신받은 경우, 모든 컴퓨팅 모듈로 하여금 동기 동작을 재실시시키는 리세트 신호의 발생을명령하는 기능을 포함하는 것을 특징으로 하는 기억매체.
  19. 제 18 항에 있어서,
    상기 재동기화 프로그램은,
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    하나의 명령을 실행한 후 상기 프로세서 관리모드로 이행하는 단계 실행모드로 상기 프로세서를 설정하는 기능; 및
    상기 프로세서가, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 단계 실행 모드의 처리를 반복하는 기능을 포함하는 것을 특징으로 하는 기억매체.
  20. 제 18 항에 있어서,
    상기 재동기화 프로그램은,
    상기 인터럽션을 수신받은 각각의 모든 상기 프로세서가, 프로세서에서 실행되는 명령 수를 계수하는 명령 수 카운터가 동작하지 못하고 프로그램 카운터 값이 저장되어 기억되는, 재동기화 처리를 위한 프로세서 관리모드로 이행하는 기능;
    각각의 상기 프로세서가 각각의 프로세서의 명령 수 카운터 값과 상기 저장된 프로그램 카운터 값을 판독하여 이 값들을 또 다른 모든 상기 컴퓨팅 모듈로 전송하는 기능;
    각각의 상기 프로세서가 판독된 명령 수 카운터 값을, 또 다른 컴퓨팅 모듈에서의 각각의 프로세서로부터 수신받은 명령 수 카운터 값과 비교하는 기능;
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정을 수행하고, 그 값들이 일치하는 경우, 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 통지를 전송하는 기능; 및
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈이, 또 다른 모든 컴퓨팅 모듈로부터 통지를 수신하는 것을 대기하고, 모든 통지를 수신한 경우, 모든 컴퓨팅 모듈로 하여금 동기 동작을 재실시시키는 리세트 신호의 발생을 명령하는 기능을 포함하는 것을 특징으로 하는 기억매체.
  21. 제 20 항에 있어서,
    상기 재동기화 프로그램은,
    최대값이 아닌 상기 명령 수 카운터 값을 가진 상기 컴퓨팅 모듈이, 명령 수 카운터 값이 최대 명령 수 카운터 값과 일치할 때까지 명령을 실행하는 지연조정에서,
    지정 명령열에서의 특정 위치의 명령까지 상기 프로세서를 실행한 후, 상기 프로세서 관리모드로 이행하는 브레이크 포인트 지정 실행모드로 상기 프로세서를 설정하는 기능;
    명령열의 상기 특정 위치로서, 최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈로부터 수신받은 프로그램 카운터 값에 의해 지시되는 명령 위치를 지정하는 기능; 및
    상기 프로세서가 지정된 명령열에서의 상기 특정 위치까지 명령열을 실행한 후, 상기 프로세서가 프로세서 관리모드로 이행시키는 기능을 포함하는 것을 특징으로 하는 기억매체.
  22. 제 20 항에 있어서,
    상기 재동기화 프로그램은,
    최대값을 나타내는 명령 수 카운터를 구비하는 상기 컴퓨팅 모듈이, 프로그램 실행상태를 판독한 후, 또 다른 컴퓨팅 모듈로부터의 상기 통지를 대기하는 기능;
    최대값을 나타내는 명령 수 카운터를 구비하지 않는 또 다른 모든 컴퓨팅 모듈이, 프로그램 실행 상태를 판독하며 지연조정 처리를 실행한 후 최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈로 프로그램 실행 상태를 지연조정 처리 완료 통지와 함께 전송하는 기능; 및
    최대값을 나타내는 명령 수 카운터를 구비하는 컴퓨팅 모듈이 모든 컴퓨팅 모듈의 프로그램 실행상태들을 비교하며, 모두가 서로 일치하는 경우, 동기 동작을 재실시하는 리세트 신호의 발생을 명령하고, 일치하지 않는 프로그램 실행상태를 가진 컴퓨팅 모듈을 검출한 경우, 컷오프의 처리를 실행하여 그 컴퓨팅 모듈을 무효화한 후 동기 동작을 재실시하는 리세트 신호의 발생을 명령하는 기능을 포함하는 것을 특징으로 하는 기억매체.
KR20030047289A 2002-07-12 2003-07-11 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체 KR100566338B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00204167 2002-07-12
JP2002204167A JP2004046599A (ja) 2002-07-12 2002-07-12 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム

Publications (2)

Publication Number Publication Date
KR20040007338A true KR20040007338A (ko) 2004-01-24
KR100566338B1 KR100566338B1 (ko) 2006-03-31

Family

ID=38834973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20030047289A KR100566338B1 (ko) 2002-07-12 2003-07-11 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체

Country Status (9)

Country Link
US (1) US7107484B2 (ko)
EP (1) EP1380953B1 (ko)
JP (1) JP2004046599A (ko)
KR (1) KR100566338B1 (ko)
CN (1) CN1521625A (ko)
AU (1) AU2003208129A1 (ko)
DE (1) DE60302184T2 (ko)
ES (1) ES2248686T3 (ko)
TW (1) TWI229791B (ko)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
DE102004032405A1 (de) * 2004-07-03 2006-02-09 Diehl Bgt Defence Gmbh & Co. Kg Weltraum-taugliche Rechnerarchitektur
US7669027B2 (en) * 2004-08-19 2010-02-23 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US7308566B2 (en) * 2004-10-25 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for configuring lockstep mode of a processor module
US7624302B2 (en) * 2004-10-25 2009-11-24 Hewlett-Packard Development Company, L.P. System and method for switching the role of boot processor to a spare processor responsive to detection of loss of lockstep in a boot processor
US7627781B2 (en) * 2004-10-25 2009-12-01 Hewlett-Packard Development Company, L.P. System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor
US7516359B2 (en) * 2004-10-25 2009-04-07 Hewlett-Packard Development Company, L.P. System and method for using information relating to a detected loss of lockstep for determining a responsive action
JP2008518307A (ja) * 2004-10-25 2008-05-29 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング 少なくとも2つの処理ユニットを有する計算機システムにおいて切替える方法及び装置
US7818614B2 (en) * 2004-10-25 2010-10-19 Hewlett-Packard Development Company, L.P. System and method for reintroducing a processor module to an operating system after lockstep recovery
US7366948B2 (en) * 2004-10-25 2008-04-29 Hewlett-Packard Development Company, L.P. System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection
US20060107116A1 (en) * 2004-10-25 2006-05-18 Michaelis Scott L System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected
US7356733B2 (en) * 2004-10-25 2008-04-08 Hewlett-Packard Development Company, L.P. System and method for system firmware causing an operating system to idle a processor
JP4117684B2 (ja) * 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
JP4182486B2 (ja) * 2004-12-20 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータ・リセット方法及びそのシステム
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
US8826288B2 (en) * 2005-04-19 2014-09-02 Hewlett-Packard Development Company, L.P. Computing with both lock-step and free-step processor modes
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
US7426614B2 (en) * 2005-04-28 2008-09-16 Hewlett-Packard Development Company, L.P. Method and system of executing duplicate copies of a program in lock step
US7549082B2 (en) * 2005-04-28 2009-06-16 Hewlett-Packard Development Company, L.P. Method and system of bringing processors to the same computational point
US7730350B2 (en) * 2005-04-28 2010-06-01 Hewlett-Packard Development Company, L.P. Method and system of determining the execution point of programs executed in lock step
US8103861B2 (en) * 2005-04-28 2012-01-24 Hewlett-Packard Development Company, L.P. Method and system for presenting an interrupt request to processors executing in lock step
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
EP3651027A1 (en) * 2005-07-05 2020-05-13 ViaSat Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
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
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) * 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
JP4822000B2 (ja) * 2006-12-12 2011-11-24 日本電気株式会社 フォールトトレラントコンピュータ
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.
ATE537502T1 (de) 2007-03-29 2011-12-15 Fujitsu Ltd Informationsverarbeitungsvorrichtung und fehlerverarbeitungsverfahren
US7797575B2 (en) * 2007-04-04 2010-09-14 International Business Machines Corporation Triple voting cell processors for single event upset protection
US8296738B1 (en) 2007-08-13 2012-10-23 Nvidia Corporation Methods and systems for in-place shader debugging and performance tuning
US9035957B1 (en) 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8004962B2 (en) * 2007-12-24 2011-08-23 At&T Intellectual Property I, L.P. Method and system of addressing a problem associated with a network including a video access ready device
JP5206009B2 (ja) * 2008-02-18 2013-06-12 日本電気株式会社 フォルトトレラントコンピュータ、同期制御方法、及びプログラム
JP5181762B2 (ja) * 2008-03-25 2013-04-10 富士通株式会社 分散処理を実行する演算装置とサーバおよび分散処理方法
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
JP5147586B2 (ja) * 2008-07-30 2013-02-20 株式会社日立製作所 ストレージ装置及びその制御方法
JP5347414B2 (ja) 2008-10-03 2013-11-20 富士通株式会社 同期制御装置,情報処理装置及び同期管理方法
US8090984B2 (en) * 2008-12-10 2012-01-03 Freescale Semiconductor, Inc. Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep
US8171328B2 (en) * 2008-12-31 2012-05-01 Intel Corporation State history storage for synchronizing redundant processors
DE102009000045A1 (de) * 2009-01-07 2010-07-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergerätes
JP5604799B2 (ja) * 2009-03-06 2014-10-15 日本電気株式会社 フォールトトレラントコンピュータ
WO2010103562A1 (ja) * 2009-03-09 2010-09-16 富士通株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
CN101859330B (zh) * 2009-04-09 2012-11-21 辉达公司 验证集成电路效能模型的方法
US7979746B2 (en) * 2009-04-27 2011-07-12 Honeywell International Inc. Dual-dual lockstep processor assemblies and modules
JP4911372B2 (ja) * 2009-10-06 2012-04-04 日本電気株式会社 Cpu再リセットを伴うcpu再初期化時におけるタイムアウト防止方法、その装置及びそのプログラム
JP2011090553A (ja) * 2009-10-23 2011-05-06 Nec System Technologies Ltd 情報処理装置、同期制御方法およびプログラム
JP5174784B2 (ja) * 2009-11-06 2013-04-03 株式会社日立製作所 処理装置、処理制御システム、およびその制御方法
US8392750B2 (en) * 2010-02-16 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus for crash recovery and resynchronization
RU2585262C2 (ru) 2010-03-23 2016-05-27 Континенталь Тевес Аг Унд Ко. Охг Контрольно-вычислительная система, способ управления контрольно-вычислительной системой, а также применение контрольно-вычислительной системы
WO2011117155A1 (de) 2010-03-23 2011-09-29 Continental Teves Ag & Co. Ohg Redundante zwei-prozessor-steuerung und steuerungsverfahren
US8499193B2 (en) * 2010-07-30 2013-07-30 Honeywell International Inc. Integrated dissimilar high integrity processing
CN102231125B (zh) * 2011-05-16 2013-02-27 铁道部运输局 临时限速服务器的安全通信机平台
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
JP6098778B2 (ja) * 2012-03-29 2017-03-22 日本電気株式会社 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
JP6069951B2 (ja) * 2012-08-23 2017-02-01 日本電気株式会社 フォールトトレラントコンピュータシステム、フォールトトレラントコンピュータシステムの起動方法およびフォールトトレラントコンピュータシステムの起動プログラム
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9342358B2 (en) * 2012-09-14 2016-05-17 General Electric Company System and method for synchronizing processor instruction execution
JP5700009B2 (ja) * 2012-09-18 2015-04-15 横河電機株式会社 フォールトトレラントシステム
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
JP6337676B2 (ja) 2014-07-29 2018-06-06 富士通株式会社 情報処理システム及び方法
CN104484299B (zh) * 2014-12-05 2017-12-22 中国航空工业集团公司第六三一研究所 一种松耦合的Lockstep处理器系统
WO2016132432A1 (ja) * 2015-02-16 2016-08-25 三菱電機株式会社 プロセッサ及びマイクロコンピュータ
TWI571712B (zh) * 2015-10-29 2017-02-21 行政院原子能委員會核能研究所 多重容錯控制系統及其同步方法
JP6853162B2 (ja) * 2017-11-20 2021-03-31 ルネサスエレクトロニクス株式会社 半導体装置
FR3108993A1 (fr) * 2020-04-07 2021-10-08 Airbus Operations Procédé et système de synchronisation d’unités de calcul d’un aéronef.
CN112291029B (zh) * 2020-11-02 2024-05-28 温州大学 一种系统同步方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3235762A1 (de) 1982-09-28 1984-03-29 Fried. Krupp Gmbh, 4300 Essen Verfahren und vorrichtung zur synchronisation von datenverarbeitungsanlagen
US5020024A (en) * 1987-01-16 1991-05-28 Stratus Computer, Inc. Method and apparatus for detecting selected absence of digital logic synchronism
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
JPH04247531A (ja) 1991-02-04 1992-09-03 Fujitsu Ltd 障害検出方式
DE4104114C2 (de) 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
AU680974B2 (en) 1993-12-01 1997-08-14 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5915082A (en) * 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
JPH10326199A (ja) 1997-05-27 1998-12-08 Yaskawa Electric Corp デュアルシステムにおける割込同期装置
US5896523A (en) * 1997-06-04 1999-04-20 Marathon Technologies Corporation Loosely-coupled, synchronized execution
US6289022B1 (en) * 1997-10-21 2001-09-11 The Foxboro Company Methods and systems for fault-tolerant data transmission
JP2001523855A (ja) * 1997-11-14 2001-11-27 マラソン テクノロジーズ コーポレイション 故障回復/耐故障計算機
US6247143B1 (en) * 1998-06-30 2001-06-12 Sun Microsystems, Inc. I/O handling for a multiprocessor computer system
US6980617B1 (en) * 2000-11-15 2005-12-27 Advantest Corporation Reception data synchronizing apparatus and method, and recording medium with recorded reception data synchronizing program
US6779128B1 (en) * 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
IES20010397A2 (en) * 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
JP2002049501A (ja) 2000-08-04 2002-02-15 Nippon Telegr & Teleph Corp <Ntt> 耐故障性システム及びその故障切り分け方法
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6931568B2 (en) * 2002-03-29 2005-08-16 International Business Machines Corporation Fail-over control in a computer system having redundant service processors
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004046455A (ja) * 2002-07-10 2004-02-12 Nec Corp 情報処理装置

Also Published As

Publication number Publication date
KR100566338B1 (ko) 2006-03-31
DE60302184D1 (de) 2005-12-15
US7107484B2 (en) 2006-09-12
DE60302184T2 (de) 2006-08-03
AU2003208129A1 (en) 2004-01-29
CN1521625A (zh) 2004-08-18
TW200401186A (en) 2004-01-16
TWI229791B (en) 2005-03-21
ES2248686T3 (es) 2006-03-16
EP1380953B1 (en) 2005-11-09
JP2004046599A (ja) 2004-02-12
EP1380953A1 (en) 2004-01-14
US20040153857A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
KR100566338B1 (ko) 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체
KR100566339B1 (ko) 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장매체
US6141769A (en) Triple modular redundant computer system and associated method
US7496786B2 (en) Systems and methods for maintaining lock step operation
US20070260939A1 (en) Error filtering in fault tolerant computing systems
US20070220367A1 (en) Fault tolerant computing system
CN101714108B (zh) 同步控制设备、信息处理设备以及同步管理方法
JP2573508B2 (ja) ディジタルロジック同期モニター方法および装置
US6032265A (en) Fault-tolerant computer system
WO2012116194A1 (en) System and method for duplexed replicated computing
JP6083480B1 (ja) 監視装置、フォールトトレラントシステムおよび方法
JP4629793B2 (ja) 情報処理装置、エラー処理方法
CA2435001C (en) Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof
AU643287B2 (en) Method of modifying a fault-tolerant processing system
KR20040007310A (ko) 정보 처리 장치
WO1997043712A2 (en) Triple modular redundant computer system
JP3063334B2 (ja) 高信頼度化情報処理装置
JP2001175545A (ja) サーバシステムおよび障害診断方法ならびに記録媒体
JPH11296394A (ja) 二重化情報処理装置
JP2645880B2 (ja) システムクロック二重化方式
JP3539687B2 (ja) プロセッサ二重化方式の情報処理装置
JPH0471037A (ja) 電子計算機の二重化方式
JPH04344941A (ja) 高信頼性プロセッサ
JPH01284947A (ja) 二重化バス切り替え方法
JPH05101023A (ja) プロセツサのデバツグ方式

Legal Events

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

Payment date: 20090311

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee