KR20040007322A - 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장매체 - Google Patents
폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장매체 Download PDFInfo
- Publication number
- KR20040007322A KR20040007322A KR1020030047086A KR20030047086A KR20040007322A KR 20040007322 A KR20040007322 A KR 20040007322A KR 1020030047086 A KR1020030047086 A KR 1020030047086A KR 20030047086 A KR20030047086 A KR 20030047086A KR 20040007322 A KR20040007322 A KR 20040007322A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- computing module
- access
- computing
- synchronization
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims description 33
- 230000001360 synchronised effect Effects 0.000 claims description 23
- 230000002093 peripheral effect Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 14
- 239000000725 suspension Substances 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error 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/184—Error 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)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템은 프로세서와 메모리를 갖는 복수의 컴퓨터 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기된 동일한 명령 스트링을 처리한다. 각각의 컴퓨팅 모듈내의 개별 프로세서간의 외부 버스로의 액세스 상태에 불일치가 검출될 때, 개별 컴퓨팅 모듈을 포함하는 시스템에서 장애가 검출되지 않는 경우, 인터럽트는 상기 프로세서 모두에 통지된다. 각각의 컴퓨팅 모듈간의 동기는 각각의 프로세서가 인터럽트에 의해 실행하는 액세스에 대한 응답의 타이밍을 조절하여 복구된다.
Description
본 발명은 서로간에 클록 동기인 복수의 컴퓨팅 모듈에 의해 전적으로 동일한 방법으로 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 컴퓨팅 모듈간에 동기 장애가 발생할 때 (록스텝 (lock-step) 을 제외한 경우) 재동기 처리의 고속화를 구현하는 폴트 톨러런트 컴퓨터 시스템 및 고속 재동기화 제어방법에 관한 것이다.
종래의 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 동일한 명령 스트링을 동시에 실행하는 복수의 컴퓨팅 모듈간에 장애 또는 다른 외부 또는 내부 요인에 의해 다른 컴퓨팅 모듈과는 다른 출력을 갖는 컴퓨팅 모듈이 검출될 때, 다음과 같은 대책을 취한다. 이하, 다른 컴퓨팅 모듈과 동기하여 동작하지 못하는 것으로 검출된 컴퓨팅 모듈은 스텝 아웃 (step-out) 상태의 컴퓨팅 모듈이라고 한다.
보다 구체적으로, 동작 상태로부터 록 스텝을 제외한 컴퓨팅 모듈을 분리하고 스텝 아웃을 유발하는 요인에 따라서 요구되는 컴퓨팅 모듈을 교환하거나 또는교환이 필요하지 않을 때 재초기화 처리나 컴퓨팅 모듈을 동작 상태로 조립하는 필요성에 따른 것 등을 수행하는 대책이 행해질 수 있다.
종래의 록스텝 동기 방식 폴트 톨러런트 컴퓨터 시스템에서, 동작 상태로의 이런 재조립의 시점에서, 스텝아웃 상태의 컴퓨팅 모듈이 교환되었는 지에 무관하게, 다른 컴퓨팅 모듈과 동기하는 컴퓨팅 모듈이 동일한 처리를 다시 수행하는 동작을 계속하기 때문에, 동작 상태의 컴퓨팅 모듈에 의해 유지되는 모든 메모리 데이터가 그 재조립의 시점에 재조립될 컴퓨팅 모듈에 의해 유지되는 메모리로 카피된다.
종래의 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서, 스텝 아웃 상태의 컴퓨팅 모듈의 교환, 스텝 아웃을 유발하는 부분에 따른 재초기화 처리 등을 실행한 후에, 해당 컴퓨팅 모듈을 동작 상태로 다시 조립할 때, 동작 상태의 컴퓨팅 모듈은 장시간 동안 중단된다.
보다 구체적으로, 종래의 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템은 스텝 아웃 상태의 컴퓨팅 모듈이 재조립 처리를 거치면서 전체 폴트 톨러런트 시스템이 그 동작을 장시간 동안 중단하는 문제점을 갖는다 (일반적으로 3 내지 5초 또는 분 단위).
그 이유는 스텝 아웃 상태의 컴퓨팅 모듈을 동작 상태로 조립하기 위해서는, 모든 메모리 콘텐츠가 동작을 계속하는 컴퓨팅 모듈로부터 재조립될 컴퓨팅 모듈로 항상 카피된다.
정상 컴퓨팅 모듈의 동작이 카피 처리동안 계속될 때, 정상 컴퓨팅 모듈의메모리 콘텐츠는 카피 처리 동안에도 변화될 가능성을 갖기 때문에 카피가 적절히 수행되지 않을 수 있다. 이런 상황을 방지하기 위해서, 동작 상태의 컴퓨팅 모듈은 그 메모리 콘텐츠의 갱신을 방지하기 위해서 일시적으로 중단된다.
오늘날에는 컴퓨팅 모듈의 메모리 용량이 수 기가 바이트에 이르기 때문에, 전체 메모리 영역을 카피하는 것은 장시간을 요구하게 된다.
록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서는, 컴퓨팅 모듈간의 스텝 아웃 상태가 다양한 이유로 발생한다.
첫 번째 경우는 컴퓨팅 모듈내에서 발생하는 고정적인 장애이다. 이 경우, 장애를 갖는 컴퓨팅 모듈이 교환되어야 하고, 교환할 컴퓨팅 모듈을 동작 시스템으로 조립할 때, 동작 상태의 컴퓨팅 모듈의 메모리내의 모든 데이터는 카피될 필요가 있다.
록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템에서, 스텝 아웃 상태는 상술한 고정적인 장애 뿐만 아니라, 그 동작이 정상일지라도 컴퓨팅 모듈내의 각각의 유닛의 제조의 차이로 인하여 서로다른 타이밍으로 컴퓨팅 모듈이 동작하기 때문에, 또는 α-선 등의 효과로 인한 메모리의 자동으로 치유가능한 간헐적인 장애 때문에, 스텝아웃 상태가 발생할 수 있다.
이들 경우에, 고정적인 장애는 컴퓨팅 모듈 자체에서 발생하지 않기 때문에, 모듈은 기본적으로 교환이 필요하지 않고, 해당 컴퓨팅 모듈을 조립할 동작중인 다른 컴퓨팅 모듈과 처리를 다시 동기시켜서 전체 폴트-톨러런트 컴퓨터 시스템은 정상 동작 상태로 복귀될 수 있다.
본 발명의 목적은 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 제공하는 것으로서, 이는 고정적인 고정이 아닌 다른 이유로 인하여 록스텝이 제외된 컴퓨팅 모듈이 종래의 컴퓨팅 시스템보다 높은 속도로 동작 상태로 다시 조립되도록 하여, 조립 처리에 의해 유발된 시스템 동작의 일시적인 중단 시간을 현저하게 감소시키게 된다.
본 발명의 다른 목적은 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 제공하는 것으로서, 이는 상술한 재조립 처리를 위한 시간의 감소에 의해 시스템의 가용성의 향상을 실현한다.
본 발명의 제 1 양태에 따르면, 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템으로서,
상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 컴퓨팅 모듈간의 동기는 상기 각각의 프로세서가 인터럽트에 의해 동기 제어 명령으로서 실행하는 액세스에 대한 응답의 타이밍을 조절하여 복구되는 폴트 톨러런트 컴퓨터 시스템이 제공된다.
바람직한 구조에서, 폴트 톨러런트 컴퓨터 시스템은,
전체 시스템의 장애 유무를 모니터링하는 장애 검출기;
상기 각각의 컴퓨팅 모듈의 프로세서의 외부 버스로의 액세스를 모니터링하며, 개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 상기 장애 검출기에 의해 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 버스 모니터링부; 및
상기 인터럽트에 의해 유발된 상기 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하여 각각의 컴퓨팅 모듈을 재동기화하는 동기 제어기를 더 구비한다.
다른 바람직한 구조에서, 상기 버스 모니터링부는, 개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 상기 장애 검출기에 의해 장애가 검출되지 않는 경우, 컴퓨팅 모듈을 재동기시키기 위해서 상기 동기 제어기내의 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하고,
모든 프로세서로부터 상기 리소스로의 액세스를 수신할 때, 상기 동기 제어기는 응답을 모든 컴퓨팅 모듈로 동시에 송신한다.
다른 바람직한 구조에서, 상기 버스 모니터링부, 상기 장애 검출기, 및 상기 동기 제어기는 복수 쌍이 제공된다.
다른 바람직한 구조에서, 상기 버스 모니터링부, 상기 장애 검출기, 및 상기 동기 제어기는 주변 장치를 제어하는 주변 장치 제어부에 제공되고, PCI 브리지를 통하여 상기 컴퓨팅 모듈내의 외부 버스에 접속된다.
본 발명의 제 2 양태에 따르면, 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법으로서,
상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 프로세서 모두에 인터럽트를 발생시키는 단계; 및
동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 재동기화 방법이 제공된다.
바람직한 구조에서, 재동기화 방법은, 상기 각각의 컴퓨팅 모듈을 구비하는 전체 시스템의 장애 유무를 검출하고, 상기 각각의 컴퓨팅 모듈내의 프로세서의 외부 버스로의 액세스를 모니터링하는 단계;
개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 단계; 및
클록 동기 제어 명령을 실행하도록 하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 단계를 더 포함한다.
다른 바람직한 구조에서, 재동기화 방법은,
개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 개별 컴퓨팅 모듈을 재동기시키기 위해서 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하는 단계;
각각의 프로세서로부터 상기 리소스로의 액세스를 큐잉하는 단계; 및
상기 프로세서로부터의 모든 액세스가 수신될 때, 모든 컴퓨팅 모듈로부터의상기 액세스에 동시에 응답하는 단계를 더 포함한다.
본 발명의 다른 양태에 따르면, 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 처리를 실행하는 재동기화 프로그램으로서,
상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 프로세서 모두에 인터럽트를 발생시키는 기능; 및
클록 동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기로 동작을 재개하도록 하는 기능을 포함하는 재동기화 프로그램이 제공된다.
바람직한 구조에서, 재동기화 프로그램은, 상기 각각의 컴퓨팅 모듈을 구비하는 전체 시스템의 장애 유무를 검출하고, 상기 각각의 컴퓨팅 모듈내의 프로세서의 외부 버스로의 액세스를 모니터링하는 기능;
개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 기능; 및
동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 기능을 더 포함한다.
다른 바람직한 구조에서, 재동기화 프로그램은,
개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 개별 컴퓨팅 모듈을 재동기시키기 위해서 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하는 기능;
각각의 프로세서로부터의 상기 리소스로의 액세스를 큐잉하는 기능; 및
상기 프로세서로부터의 모든 액세스가 수신될 때, 모든 컴퓨팅 모듈로부터의 상기 액세스에 동시에 응답하는 기능을 더 포함한다.
본 발명의 다른 목적, 특징 및 이점은 아래에 주어진 상세한 설명을 참조하면 명백해질 것이다.
도 1 은 본 발명의 제 1 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도.
도 2 는 폴트 톨러런트 컴퓨터 시스템의 재동기 처리의 내용을 설명하는 데 사용하는 도면.
도 3 은 본 발명의 제 2 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도.
도 4 는 본 발명의 제 3 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도.
*도면의 주요 부분에 대한 부호의 설명*
100, 200, 300: 록스텝 컴퓨팅 모듈
101, 102, 201, 202, 301, 302: 프로세서
103, 203, 303: 프로세서 외부 버스 104, 204, 304: 메모리
105, 205, 305: 메모리 제어부 400, 500: 주변장치 제어부
600, 601, 602, 610, 611, 612, 710, 711, 712, 730, 731, 732: 인터페이스신호라인
700: 버스 모니터링부 701: 동기 제어부
702: 장애 검출부 703: PCI 브리지
800, 801, 802: PCI 버스
아래에 주어진 발명의 상세한 설명과 본 발명의 바람직한 실시형태의 첨부 도면으로부터 본 발명을 보다 완전하게 이해하게 될 것이며, 이들은 본 발명을 제한하려는 것이 아니라 단지 설명과 이해를 목적으로 한다.
이하, 첨부 도면을 참조하여 본 발명의 바람직한 실시형태를 설명한다. 다음 설명에서는, 다양한 특정 세부사항을 본 발명의 완전한 이해를 제공하기 위해서 설명한다. 그러나, 이들 특정 세부사항 없이도 본 발명을 실시할 수 있음은 당업자들에게 명백하다. 한편, 공지된 구조는 본 발명을 불필요하게 흐리는 것을 막기 위해서 상세하게 나타내지는 않는다.
본 발명의 여러가지 구현 모드를 다음 도면을 참조하여 상세하게 설명한다. 도 1 은 본 발명의 제 1 구현 모드에 따른 록스톱 동기방식 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도이다.
도 1 을 참조하면, 본 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템은 복수의 컴퓨팅 모듈 (100, 200, 300) 을 구비하며, 이들 컴퓨팅 모듈 (100, 200, 300) 각각은 서로 클록 동기하여 동일한 명령 스트링을 처리한다. 폴트 톨러런트 컴퓨터 시스템은 각각의 컴퓨팅 모듈의 처리 결과를 비교한다. 하나의 컴퓨팅 모듈이 장애를 가질 경우에도, 나머지 컴퓨팅 모듈에 의해 처리가 계속될 수 있다.
개별 컴퓨팅 모듈 (100, 200, 300) 은 복수의 프로세서 (101 과 102, 201 과 202, 301 과 302), 프로세서 외부 버스 (103, 203, 303), 메모리 (104, 204, 304), 및 메모리 제어부 (105, 205, 305) 를 각각 구비한다.
또한, 컴퓨팅 모듈 (100, 200, 300) 은 메모리 제어부 (105, 205, 305) 와 인터페이스 신호 라인 (600, 601, 602, 610, 611, 612) 을 통해서 주변 장치를 제어하는 주변 장치 제어부 (400, 500) 에 접속된다.
상술한 폴트 톨러런트 컴퓨터 시스템은 버스 모니터링부 (700), 장애 검출부 (702), 및 동기 제어부 (701) 를 더 구비한다.
버스 모니터링부 (700) 는 각각의 컴퓨팅 모듈의 프로세서의 외부 버스로의 액세스를 모니터링한다. 버스 모니터링부 (700) 는 인터페이스 신호 라인 (710, 711, 712) 를 통하여 개별 컴퓨팅 모듈 (100, 200, 300) 의 프로세서 외부 버스 (103, 203, 303) 에 접속된다.
장애 검출부 (702) 는 개별 컴퓨팅 모듈을 포함하여 전체 시스템의 장애 유무를 모니터링한다.
각각의 컴퓨팅 모듈에 접속된 동기 제어부 (701) 는 각각의 컴퓨팅 모듈이 클록 동기하여 동작을 재개하도록 하기 위해서 각각의 컴퓨팅 모듈로부터의 액세스에 대한 응답의 타이밍을 조절한다. 동기 제어부 (701) 는 인터페이스 신호 라인 (730, 731, 732) 를 통하여 개별 컴퓨팅 모듈 (100, 200, 300) 의 메모리 제어부 (105, 205, 305) 에 접속된다.
다음으로, 본 구현 모드에 따라서 구성된 폴트 톨러런트 컴퓨터 시스템의 동작을 설명한다.
장애 검출부 (702) 는 개별 컴퓨팅 모듈 (100, 200, 300) 및 주변 장치 제어부 (400, 500) 를 포함하는 전체 폴트 톨러런트 컴퓨터 시스템의 고정적인 장애의 유무를 모니터링한다. 그후, 장애 검출부 (702) 는 버스 모니터 (700) 에 모니터링 결과를 통지한다.
인터페이스 신호 라인 (710, 711, 712) 을 통하여 개별 컴퓨팅 모듈 (100, 200, 300) 의 프로세서 외부버스 (103, 203, 303) 에 접속된 버스 모니터링부 (700) 는 개별 프로세서 (101, 102, 201, 202, 301, 302) 의 외부 액세스 제어 신호를 비교하여 개별 프로세서 (101, 102, 201, 202, 301, 302) 가 동일한 타이밍으로 서로 클록 동기하여 버스 (103, 203, 303) 를 액세스하는 지 모니터링한다.
상술한 모니터링 동작에 의해 버스 모니터링부 (700) 가 다른 프로세서들의 타이밍과는 다른 타이밍으로 동작하는 프로세서 (101, 102, 201, 202, 301, 302) 중의 임의의 것을 검출한 경우, 장애 검출부 (702) 가 폴트 톨러런트 컴퓨터 시스템의 어디에서도 고정적인 장애를 검출하지 못할 때, 버스 모니터링부 (700) 는 스텝 아웃이 장애에 의해 유발되지 않았다고 검출하게 된다. 그 결과는 인터페이스 신호 라인 (710, 711, 712) 을 통하여 모든 컴퓨팅 모듈 (100, 200, 300) 에 통지되어 각각의 프로세서에 인터럽트를 발생시키게 된다. 또한, 동시에 버스 모니터링부 (700) 는 프로세서의 외부 버스 (103, 203, 303) 를 모니터링하는 중단 모드로 시프트한다.
여기서, 버스 모니터링부 (700) 는 프로세서로부터의 메모리 액세스를 포함하는 외부 버스 (103, 203, 303) 으로의 모든 액세스를 모니터링하고, 컴퓨팅 모듈간의 동작의 동기 결함을 검출할 때, 처리를 인터럽트하기 위해서 순간적으로 모든 프로세서 (101, 102, 201, 202, 301, 302) 를 인터럽트함으로써, 인터럽트가 발생하는 시점에 개별 컴퓨팅 모듈 (100, 200, 300) 내의 메모리 (104, 204, 304) 의 콘텐츠들 모두 서로 동시에 행해지게 된다.
다음으로, 도 2 를 참조하여 본 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 동작의 구체적인 내용을 설명한다.
버스 모니터링부 (700) 가 컴퓨팅 모듈간의 동작의 동기의 결함을 검출할 때, 그 검출은 인터페이스 신호 라인 (710, 711, 712) 를 통하여 통지되어 각각의 프로세서에 인터럽트를 생성하게 된다 (도 2 의 단계 201).
모든 프로세서 (101, 102, 201, 202, 301, 302) 는 해당 인터럽트 처리에서, 개별 컴퓨팅 모듈 (100, 200, 300) 간의 클록 동기 동작의 재동기를 획득하기 위한 동기화 제어 태스크를 최고 우선순위 태스크인 대기큐의 상단으로 큐잉한다 (도 2 의 단계 202).
동기 제어 태스크는 동기 제어부 (701) 에서 특별히 규정된 리소스를 액세스하는 명령을 실행하는 기능을 갖는다. 그후, 상술한 동기 제어 태스크는 OS 에 의해 실행 상태로 시프트되고, 태스크는 동기 제어부 (701) 의 규정된 리소스를 액세스하라는 명령을 실행한다 (도 2 의 단계 203).
이 시점에, 스텝아웃 상태의 컴퓨팅 모듈로부터의 규정된 리소스로의 액세스와 록스텝 상태의 다른 컴퓨팅 모듈로부터의 규정된 리소스로의 액세스는 시간 지연을 갖고 동기 제어부 (701) 로 자연히 송신된다.
컴퓨팅 모듈 (100, 200, 300) 로부터 특별하게 규정된 내부 리소스로의 액세스를 검출할 때, 동기 제어부 (701) 는, 액세스가 처음일 때, 관련 컴퓨팅 모듈로 응답을 되돌리지 않고, 다른 컴퓨팅 모듈 모두로부터의 액세스가 오기를 대기한다 (도 2 의 단계 204). 모든 컴퓨팅 모듈 (100, 200, 300) 로부터의 액세스가 송신될 때, 액세스에 대한 응답을 모든 컴퓨팅 모듈 (100, 200, 300) 로 동시에 되돌린다.
동기 제어부 (701) 로부터의 응답에 응답하여, 개별 컴퓨팅 모듈 (100, 200, 300) 의 모든 프로세서는 동기 제어 태스크의 실행을 종료한다 (도 2 의 단계 205). 그후, 모든 프로세서는 통상의 프로그램 동작을 계속한다 (도 6 의 단계 206).
앞에서 설명한 동작은 컴퓨팅 모듈 (100, 200, 300) 이 서로 클록 동기하여 동작을 다시 계속할 수 있도록 한다. 이 때, 위에서 설명한 바와 같이, 컴퓨팅 모듈 (100, 200, 300) 의 메모리 (104, 204, 304) 의 콘텐츠가 일치성을 잃기전에 그리고 클록 동기하여 동작을 다시 시작한 후에 재동기 처리가 실행되기 때문에, 모든 컴퓨팅 모듈 (100, 200, 300) 은 다시 동일한 타이밍으로 동일한 명령 스트링을 실행할 수 있게 된다. 이는 종래의 폴트 톨러런트 컴퓨터 시스템에서 요구되는 재동기를 위해 메모리를 카피하는 필요성을 제거하여, 재동기 처리의 고속 실행을 가능하게 한다.
도 3 은 본 발명의 제 2 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도이다.
도 3 을 참조하면, 본 발명의 본 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템은, 각각이 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈 (100, 200) 과 각각이 PCI 브리지 (703) 를 갖는 복수의 주변 장치 제어부 (400, 500) 를 구비하도록 구성된다. 컴퓨팅 모듈 (100, 200) 각각은 서로 클록 동기하여 동일한 명령 스트링을 처리한다. 폴트 톨러런트 컴퓨터 시스템은 각각의 컴퓨터 모듈의 처리 결과를 비교한다. 하나의 컴퓨팅 모듈이 장애를 가질 때도, 나머지 컴퓨팅 모듈에 의해 처리가 계속될 수 있다. 또한, 주변 장치 제어부 (400, 500) 각각은, 하나의 주변 장치 제어부가 장애를 나타낼 때도, 다른 주변 장치 제어부를 이용하여 처리가 계속될 수 있도록 하는 소프트웨어 제어에 의해 다중통신되도록 구성된다.
각각의 주변 장치 제어부 (400) 는 주변장치와의 접속을 확립하기 위해서 PCI를 통하여 개별 컴퓨팅 모듈 (100, 200) 내의 메모리 제어부 (105, 205) 에 접속되는 PCI 브리지 (703), 컴퓨팅 모듈 (100, 200) 각각의 프로세서 각각의 외부버스로의 액세스를 모니터링하는 버스 모니터링부 (700), 컴퓨팅 모듈 (100, 200) 을 포함하는 전체 폴트 톨러런트 컴퓨터 시스템의 장애 유무를 모니터링하는 장애 검출부 (702), 및 각각의 컴퓨팅 모듈의 클록 동기를 복구하기 위해서 각각의 컴퓨팅 모듈로부터의 액세스에 대한 응답의 타이밍을 조절하도록 PCI 브리지 (703) 를 통해서 각각의 컴퓨팅 모듈에 접속된 동기 제어부 (701) 를 구비한다.
도면에 나타내지는 않았지만, 주변 장치 제어부 (500) 는 또한 주변 장치 제어부 (400) 와 유사하게 상술한 개별 부품을 갖는다.
본 구현 모드에 따라서 구성된 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템은 컴퓨팅 시스템 (100, 200) 각각의 클록 동기를 통상적으로 모니터링하고, 주변 장치 제어부 (400) 를 이용하여 주변 장치를 제어한다. 장애가 주변 장치 제어부 (400) 에서 발생할 때는, 이용을 주변 장치 제어부 (500) 로 스위칭하여 동일한 처리를 수행한다.
본 구현 모드에서, 도 2 에 나타낸 (도 2 의 단계 203) 동기 제어부 (701) 의 규정된 리소스로 액세스하는 명령의 실행은 주변 장치 제어부 (400) 내의 동기 제어부 (701) 의 레지스터로의 리드 명령의 실행에 의해 구현되며, 리드 명령은 PCI 버스 (800, 801) 과 PCI 브리지 (703) 를 통하여 동기 제어부 (701) 로 송신되고 그 응답은 동일한 루트를 통하여 컴퓨팅 모듈 (100, 200) 각각으로 송신된다.
본 구현 모드의 재동기 처리의 내용은 도 2 에 나타낸 것과 동일하다.
또한, 2 개의 컴퓨팅 모듈이 존재하는 실시형태를 본 구현 모드에서 나타내었지만, 도 1 에 나타낸 제 1 구현 모드에 나타낸 바와 같이 3개의 컴퓨팅 모듈을갖는 구조, 또는 동일한 방법으로 4개 이상의 모듈 기능을 갖는 구조가 존재하는 실시형태일 수 있다.
도 4 는 본 발명의 제 3 구현 모드에 따른 폴트 톨러런트 컴퓨터 시스템의 구조를 나타내는 블록도이다.
버스 모니터링부 (700) 가 PCI 브리지 (703) 를 통하여 컴퓨팅 모듈 (100, 200) 에 접속되는 구조를 본 구현 모드에 나타낸다.
본 구현 모드에서, 개별 프로세서의 외부 버스 (103, 203) 를 모니터링하는 것은 개별 컴퓨팅 모듈 (100, 200) 의 메모리 제어부 (105, 205), PCI 버스 (800, 801), 및 PCI 브리지 (703) 를 통하여 버스 모니터링부 (700) 에 송신된 신호 (PCI 버스 프로토콜) 에 의해 실행된다. 또한, 버스 모니터링부 (700) 로부터 각각의 컴퓨팅 모듈로의 인터럽트의 송신은 상술한 경로에 대한 역경로를 통하여 실행된다.
본 구현 모드의 재동기화 처리의 콘텐츠는 도 2 에 나타낸 것과 동일하다.
제 2 및 제 3 구현 모드에서 개별 컴퓨팅 모듈과 버스 모니터 등이 PCI를 이용하여 접속될 지라도, 이들 부품간의 접속은 PCI-X 같은 다른 표준의 인터페이스, 또는 범용으로 표준화되지 않는 독점적인 인터페이스를 이용하여 확립될 수 있으며, 이는 본 발명의 효과중 어느 것에도 영향을 미치지 않는다.
본 발명의 폴트 톨러런트 시스템에서, 재동기 처리를 실행하는 각각의 유닛의 기능은, 하드웨어 뿐만 아니라, 컴퓨터 처리 장치를 제어하기 위해서 상술한 유닛들 각각의 기능을 실행하는 재동기 처리 프로그램 (1000) 을 컴퓨터 처리장치의메모리에 로딩함으로써 구현될 수 있다. 재동기 처리 프로그램 (1000) 은 자기 디스크, 반도체 메모리, 또는 다른 기록 매체에 저장되고, 컴퓨터 처리 장치의 동작을 제어하기 위해서 기록장치로부터 컴퓨터 처리장치로 로딩되어, 상술한 기능 각각을 구현하게 된다.
앞에서는 바람직한 구현 모드에 관하여 본 발명을 설명하였지만, 본 발명은 상술한 구현 모드에 반드시 제한되는 것이 아니며 그 기술 분야에서 다양한 형태로 구현될 수 있다.
각각의 컴퓨팅 모듈이 2개의 프로세서를 갖는 구조를 상술한 구현 모드 각각에 나타내었지만, 하나의 프로세서 또는 완전하게 동일한 방식으로 3개 이상의 프로세서 기능을 갖는 구조도 가능하다.
또한, 각각의 구현 모드에는 개별 프로세서가 하나의 외부 버스를 공유하고 동일한 버스에 접속된 경우일 지라도, 예를들어, 복수의 프로세서가 별자리 형태로 접속되는 구조나 하나의 컴퓨팅 모듈을 형성하는 프로세서가 복수의 보드상에 물리적으로 놓여지는 구조는 본 발명의 효과에 전혀 영향을 미치지 않는다.
앞에서 설명한 바와 같이, 본 발명은 다음의 효과를 달성한다.
첫 번째 효과는 고정적인 장애가 아닌 다른 이유로 인해 록스텝 상태로부터 이탈될 때, 일정한 컴퓨팅 모듈이 극히 짧은 시간내에 록스텝 상태로 복귀할 수 있도록 하는 것이다.
그 이유는, 스텝아웃 발생 초기 단계에, 각각의 컴퓨팅 모듈의 메모리가 서로 불일치할지라도, 버스 모니터링부는 재동기를 제어하기 위해 명령 스트링을 실행하는 태스크를 우선적으로 실행하도록 프로세서에 인터럽트를 발생시켜서, 메모리를 카피하지 않고 동기를 복구한다.
두 번째 효과는 폴트 톨러런트 컴퓨터 시스템의 이용가능성을 향상시키는 것이다. 그 이유는 록 스텝이 차단될 때 재조립을 위한 시간을 상당히 고속화함으로써 시스템 전체의 중단 시간이 현저하게 감소될 수 있기 때문이다.
본 발명을 예시적인 실시형태와 관련하여 설명하였지만, 당업자는 상술한 그리고 다양한 다른 변경, 생략, 추가를 본 발명의 정신과 범위를 벗어나지 않고 행할 수 있다. 따라서, 본 발명은 위에 설명한 특정 실시형태에 제한되는 것이 아니라 첨부된 청구범위에 기재된 특성에 의해 포함되는 범위내에서 구현될 수 있는 모든 가능한 실시형태와 그 등가물을 포함하는 것이다.
본 발명의 첫 번째 효과는 고정적인 장애가 아닌 다른 이유로 인해 록스텝 상태로부터 이탈될 때, 일정한 컴퓨팅 모듈이 극히 짧은 시간내에 록스텝 상태로 복귀할 수 있도록 하는 것이다.
두 번째 효과는 폴트 톨러런트 컴퓨터 시스템의 이용가능성을 향상시키는 것이다.
Claims (11)
- 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템으로서,상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 컴퓨팅 모듈간의 동기는 상기 각각의 프로세서가 인터럽트에 의해 동기 제어 명령으로서 실행하는 액세스에 대한 응답의 타이밍을 조절하여 복구되는 것을 특징으로 하는 폴트 톨러런트 컴퓨터 시스템.
- 제 1 항에 있어서,전체 시스템의 장애 유무를 모니터링하는 장애 검출기;상기 각각의 컴퓨팅 모듈의 프로세서의 외부 버스로의 액세스를 모니터링하며, 개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 상기 장애 검출기에 의해 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 버스 모니터링부; 및상기 인터럽트에 의해 유발된 상기 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하여 각각의 컴퓨팅 모듈을 재동기화하는 동기 제어기를 더 구비하는 것을 특징으로 하는 폴트 톨러런트 컴퓨터 시스템.
- 제 2 항에 있어서,상기 버스 모니터링부는, 개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 상기 장애 검출기에 의해 장애가 검출되지 않는 경우, 컴퓨팅 모듈을 재동기시키기 위해서 상기 동기 제어기내의 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하고,모든 프로세서로부터 상기 리소스로의 액세스를 수신할 때, 상기 동기 제어기는 응답을 모든 컴퓨팅 모듈로 동시에 송신하는 것을 특징으로 하는 폴트 톨러런트 컴퓨터 시스템.
- 제 2 항에 있어서,상기 버스 모니터링부, 상기 장애 검출기, 및 상기 동기 제어기는 복수 쌍이 제공되는 것을 특징으로 하는 폴트 톨러런트 컴퓨터 시스템.
- 제 2 항에 있어서,상기 버스 모니터링부, 상기 장애 검출기, 및 상기 동기 제어기는 주변 장치를 제어하는 주변 장치 제어부에 제공되고, PCI 브리지를 통하여 상기 컴퓨팅 모듈내의 외부 버스에 접속되는 것을 특징으로 하는 폴트 톨러런트 컴퓨터 시스템.
- 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 방법으로서,상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 프로세서 모두에 인터럽트를 발생시키는 단계; 및동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 것을 특징으로 하는 재동기화 방법.
- 제 6 항에 있어서,상기 각각의 컴퓨팅 모듈을 구비하는 전체 시스템의 장애 유무를 검출하고, 상기 각각의 컴퓨팅 모듈내의 프로세서의 외부 버스로의 액세스를 모니터링하는 단계;개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 단계; 및클록 동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 단계를 더 포함하는 것을 특징으로 하는 재동기화 방법.
- 제 7 항에 있어서,개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 개별 컴퓨팅 모듈을 재동기시키기 위해서 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하는 단계;각각의 프로세서로부터 상기 리소스로의 액세스를 큐잉하는 단계; 및상기 프로세서로부터의 모든 액세스가 수신될 때, 모든 컴퓨팅 모듈로부터의 상기 액세스에 동시에 응답하는 단계를 더 포함하는 것을 특징으로 하는 재동기화 방법.
- 프로세서와 메모리를 갖는 복수의 컴퓨팅 모듈을 구비하며 각각의 컴퓨팅 모듈은 서로 동기하여 동일한 명령 스트링을 처리하는 록스텝 동기방식 폴트 톨러런트 컴퓨터 시스템의 재동기화 처리를 실행하는 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장 매체로서,상기 재동기화 프로그램은,상기 각각의 컴퓨팅 모듈내의 상기 개별 프로세서간의 외부 버스로의 액세스 상태의 불일치를 검출할 때, 상기 각각의 컴퓨팅 모듈을 구비하는 시스템에서 장애가 검출되지 않는 경우, 상기 프로세서 모두에 인터럽트를 발생시키는 기능; 및클록 동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 기능을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
- 제 9 항에 있어서,상기 재동기화 프로그램은,상기 각각의 컴퓨팅 모듈을 구비하는 전체 시스템의 장애 유무를 검출하고, 상기 각각의 컴퓨팅 모듈내의 프로세서의 외부 버스로의 액세스를 모니터링하는 기능;개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 상기 각각의 프로세서에 인터럽트를 통지하는 기능; 및동기 제어 명령을 실행하는 상기 각각의 프로세서가 각각의 프로세서로부터의 액세스에 대한 응답의 타이밍을 조절하도록 하여, 각각의 컴퓨팅 모듈이 동기하여 동작을 재개하도록 하는 기능을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
- 제 10 항에 있어서,상기 재동기화 프로그램은,개별 컴퓨팅 모듈간의 출력의 불일치를 검출할 때, 시스템에서 장애가 검출되지 않는 경우, 개별 컴퓨팅 모듈을 재동기시키기 위해서 소정의 리소스로의 액세스를 실행하는 소정의 태스크로 상기 각각의 프로세서를 인터럽트하는 기능;각각의 프로세서로부터의 상기 리소스로의 액세스를 큐잉하는 기능; 및상기 프로세서로부터의 모든 액세스가 수신될 때, 모든 컴퓨팅 모듈로부터의 상기 액세스에 동시에 응답하는 기능을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2002-00204305 | 2002-07-12 | ||
JP2002204305A JP3982353B2 (ja) | 2002-07-12 | 2002-07-12 | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040007322A true KR20040007322A (ko) | 2004-01-24 |
KR100566339B1 KR100566339B1 (ko) | 2006-03-31 |
Family
ID=29728536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030047086A KR100566339B1 (ko) | 2002-07-12 | 2003-07-11 | 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장매체 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7225355B2 (ko) |
EP (1) | EP1380952B1 (ko) |
JP (1) | JP3982353B2 (ko) |
KR (1) | KR100566339B1 (ko) |
CN (1) | CN1326042C (ko) |
AU (1) | AU2003208108A1 (ko) |
CA (1) | CA2434494C (ko) |
DE (1) | DE60301702T2 (ko) |
ES (1) | ES2247459T3 (ko) |
TW (1) | TWI226983B (ko) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949856B2 (en) * | 2004-03-31 | 2011-05-24 | Icera Inc. | Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit |
US8484441B2 (en) | 2004-03-31 | 2013-07-09 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths |
US9047094B2 (en) | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
US7529807B1 (en) * | 2004-05-05 | 2009-05-05 | Sun Microsystems, Inc. | Common storage in scalable computer systems |
DE102004032405A1 (de) * | 2004-07-03 | 2006-02-09 | Diehl Bgt Defence Gmbh & Co. Kg | Weltraum-taugliche Rechnerarchitektur |
US7308605B2 (en) * | 2004-07-20 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Latent error detection |
US7487395B2 (en) * | 2004-09-09 | 2009-02-03 | Microsoft Corporation | Method, system, and apparatus for creating an architectural model for generating robust and easy to manage data protection applications in a data protection system |
US7502958B2 (en) * | 2004-10-25 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | System and method for providing firmware recoverable lockstep protection |
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 |
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 |
JP2006178636A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントコンピュータ、およびその制御方法 |
JP2006178616A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム |
US20060212677A1 (en) * | 2005-03-15 | 2006-09-21 | Intel Corporation | Multicore processor having active and inactive execution cores |
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 |
US7496786B2 (en) * | 2006-01-10 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for maintaining lock step operation |
JP5220281B2 (ja) * | 2006-03-31 | 2013-06-26 | 日本電気株式会社 | 情報処理システムのコアセル変更制御方式及びその制御プログラム |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
US8041985B2 (en) | 2006-08-11 | 2011-10-18 | Chicago Mercantile Exchange, Inc. | Match server for a financial exchange having fault tolerant operation |
US7434096B2 (en) | 2006-08-11 | 2008-10-07 | Chicago Mercantile Exchange | Match server for a financial exchange having fault tolerant operation |
US7480827B2 (en) * | 2006-08-11 | 2009-01-20 | Chicago Mercantile Exchange | Fault tolerance and failover using active copy-cat |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
US8756402B2 (en) * | 2007-09-14 | 2014-06-17 | Intel Mobile Communications GmbH | Processing module, processor circuit, instruction set for processing data, and method for synchronizing the processing of codes |
CN101383690B (zh) * | 2008-10-27 | 2011-06-01 | 西安交通大学 | 一种基于socket的容错计算机系统的网络同步方法 |
GB2471138B (en) | 2009-06-19 | 2014-08-13 | Advanced Risc Mach Ltd | Handling integer and floating point registers during a context switch |
CN101882098B (zh) * | 2009-07-10 | 2012-07-11 | 威盛电子股份有限公司 | 微处理器集成电路以及相关除错方法 |
WO2011106308A2 (en) | 2010-02-23 | 2011-09-01 | Navia Systems, Inc. | Configurable circuitry for solving stochastic problems |
US8058916B2 (en) | 2010-04-15 | 2011-11-15 | Xilinx, Inc. | Lockstep synchronization and maintenance |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
TWI525541B (zh) | 2010-10-12 | 2016-03-11 | 軟體機器公司 | 輸出可靠可預測指令序列的方法與系統,以及實施識別指令方法的微處理器 |
EP2628072B1 (en) | 2010-10-12 | 2016-10-12 | Soft Machines, Inc. | An instruction sequence buffer to enhance branch prediction efficiency |
GB2489000B (en) | 2011-03-14 | 2019-09-11 | Advanced Risc Mach Ltd | Diagnosing code using single step execution |
KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
CN103649931B (zh) | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
JP5699057B2 (ja) * | 2011-08-24 | 2015-04-08 | 株式会社日立製作所 | プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス |
US9811338B2 (en) * | 2011-11-14 | 2017-11-07 | Intel Corporation | Flag non-modification extension for ISA instructions using prefixes |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
CN102521086B (zh) * | 2011-12-08 | 2014-07-16 | 上海交通大学 | 基于锁步同步的双模冗余系统及其实现方法 |
US8832720B2 (en) * | 2012-01-05 | 2014-09-09 | Intel Corporation | Multimedia driver architecture for reusability across operating systems and hardware platforms |
US8930674B2 (en) | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9740612B2 (en) | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9678882B2 (en) | 2012-10-11 | 2017-06-13 | Intel Corporation | Systems and methods for non-blocking implementation of cache flush instructions |
DE102012219180A1 (de) * | 2012-10-22 | 2014-05-08 | Robert Bosch Gmbh | Recheneinheit für ein Steuergerät und Betriebsverfahren hierfür |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9563579B2 (en) | 2013-02-28 | 2017-02-07 | Intel Corporation | Method, apparatus, system for representing, specifying and using deadlines |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9792121B2 (en) * | 2013-05-21 | 2017-10-17 | Via Technologies, Inc. | Microprocessor that fuses if-then instructions |
US9183155B2 (en) * | 2013-09-26 | 2015-11-10 | Andes Technology Corporation | Microprocessor and method for using an instruction loop cache thereof |
US9952620B2 (en) | 2014-04-10 | 2018-04-24 | Intel Corporation | Time-synchronizing a group of nodes |
JP6360387B2 (ja) * | 2014-08-19 | 2018-07-18 | ルネサスエレクトロニクス株式会社 | プロセッサシステム、エンジン制御システム及び制御方法 |
US9697094B2 (en) * | 2015-02-06 | 2017-07-04 | Intel Corporation | Dynamically changing lockstep configuration |
TWI514148B (zh) * | 2015-03-16 | 2015-12-21 | Univ Nat Sun Yat Sen | 快取記憶體 |
JP6436031B2 (ja) * | 2015-09-18 | 2018-12-12 | 信越半導体株式会社 | 単結晶引き上げ装置、及び単結晶引き上げ方法 |
JP6083480B1 (ja) * | 2016-02-18 | 2017-02-22 | 日本電気株式会社 | 監視装置、フォールトトレラントシステムおよび方法 |
US10037173B2 (en) | 2016-08-12 | 2018-07-31 | Google Llc | Hybrid memory management |
US10152427B2 (en) | 2016-08-12 | 2018-12-11 | Google Llc | Hybrid memory management |
JP6853162B2 (ja) * | 2017-11-20 | 2021-03-31 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3864670A (en) * | 1970-09-30 | 1975-02-04 | Yokogawa Electric Works Ltd | Dual computer system with signal exchange system |
US5020024A (en) * | 1987-01-16 | 1991-05-28 | Stratus Computer, Inc. | Method and apparatus for detecting selected absence of digital logic synchronism |
JPH0432955A (ja) | 1990-05-23 | 1992-02-04 | Oki Electric Ind Co Ltd | プロセッサ障害検出装置 |
JPH05298134A (ja) * | 1991-12-16 | 1993-11-12 | Internatl Business Mach Corp <Ibm> | コンピュータシステムにおける処理誤りの処理機構及び方法 |
EP0986008B1 (en) * | 1993-12-01 | 2008-04-16 | Marathon Technologies Corporation | Computer system comprising controllers and computing elements |
US5832253A (en) * | 1993-12-06 | 1998-11-03 | Cpu Technology, Inc. | Multiprocessors system for selectively wire-oring a combination of signal lines and thereafter using one line to control the running or stalling of a selected processor |
JPH08235015A (ja) | 1995-02-27 | 1996-09-13 | Mitsubishi Electric Corp | プロセッサ装置並びにプロセッサ故障診断方法 |
JP3241997B2 (ja) | 1996-06-28 | 2001-12-25 | 富士通株式会社 | 情報処理装置 |
US5805870A (en) * | 1996-06-28 | 1998-09-08 | International Business Machines Corporation | System and method for correcting clock drift in multiprocessor systems |
US5875320A (en) * | 1997-03-24 | 1999-02-23 | International Business Machines Corporation | System and method for synchronizing plural processor clocks in a multiprocessor system |
US5903717A (en) * | 1997-04-02 | 1999-05-11 | General Dynamics Information Systems, Inc. | Fault tolerant computer system |
US5923830A (en) * | 1997-05-07 | 1999-07-13 | General Dynamics Information Systems, Inc. | Non-interrupting power control for fault tolerant computer systems |
DE69804489T2 (de) | 1997-11-14 | 2002-11-14 | Marathon Technologies Corp., Boxboro | Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen |
US6175930B1 (en) * | 1998-02-17 | 2001-01-16 | International Business Machines Corporation | Demand based sync bus operation |
GB2340627B (en) * | 1998-08-13 | 2000-10-04 | Plessey Telecomm | Data processing system |
US6757847B1 (en) * | 1998-12-29 | 2004-06-29 | International Business Machines Corporation | Synchronization for system analysis |
JP2000200255A (ja) | 1999-01-07 | 2000-07-18 | Hitachi Ltd | プロセッサ間の同期化方法及び同期回路 |
US6643787B1 (en) * | 1999-10-19 | 2003-11-04 | Rambus Inc. | Bus system optimization |
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 |
US6480966B1 (en) * | 1999-12-07 | 2002-11-12 | International Business Machines Corporation | Performance monitor synchronization in a multiprocessor system |
JP2002049501A (ja) | 2000-08-04 | 2002-02-15 | Nippon Telegr & Teleph Corp <Ntt> | 耐故障性システム及びその故障切り分け方法 |
-
2002
- 2002-07-12 JP JP2002204305A patent/JP3982353B2/ja not_active Expired - Fee Related
-
2003
- 2003-07-01 TW TW092117919A patent/TWI226983B/zh not_active IP Right Cessation
- 2003-07-03 AU AU2003208108A patent/AU2003208108A1/en not_active Abandoned
- 2003-07-07 CA CA002434494A patent/CA2434494C/en not_active Expired - Fee Related
- 2003-07-08 US US10/614,000 patent/US7225355B2/en not_active Expired - Fee Related
- 2003-07-10 DE DE60301702T patent/DE60301702T2/de not_active Expired - Lifetime
- 2003-07-10 EP EP03015796A patent/EP1380952B1/en not_active Expired - Lifetime
- 2003-07-10 ES ES03015796T patent/ES2247459T3/es not_active Expired - Lifetime
- 2003-07-11 KR KR1020030047086A patent/KR100566339B1/ko not_active IP Right Cessation
- 2003-07-14 CN CNB031472990A patent/CN1326042C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7225355B2 (en) | 2007-05-29 |
KR100566339B1 (ko) | 2006-03-31 |
JP2004046611A (ja) | 2004-02-12 |
EP1380952A1 (en) | 2004-01-14 |
EP1380952B1 (en) | 2005-09-28 |
CN1326042C (zh) | 2007-07-11 |
CA2434494A1 (en) | 2004-01-12 |
CN1495611A (zh) | 2004-05-12 |
AU2003208108A1 (en) | 2004-01-29 |
DE60301702T2 (de) | 2006-07-06 |
ES2247459T3 (es) | 2006-03-01 |
US20040010789A1 (en) | 2004-01-15 |
JP3982353B2 (ja) | 2007-09-26 |
CA2434494C (en) | 2008-11-25 |
TW200401187A (en) | 2004-01-16 |
DE60301702D1 (de) | 2005-11-03 |
TWI226983B (en) | 2005-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100566339B1 (ko) | 폴트 톨러런트 컴퓨터 시스템, 그 재동기화 방법, 및 그 재동기화 프로그램을 갖는 컴퓨터 판독가능 저장매체 | |
US7107484B2 (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
US4785453A (en) | High level self-checking intelligent I/O controller | |
EP0731945B1 (en) | Fault resilient/fault tolerant computing | |
US7441150B2 (en) | Fault tolerant computer system and interrupt control method for the same | |
US7493517B2 (en) | Fault tolerant computer system and a synchronization method for the same | |
JPH01154240A (ja) | 単一レールインターフェイスにエラーチェック機能を有する二重レールプロセッサ | |
US6519710B1 (en) | System for accessing shared memory by two processors executing same sequence of operation steps wherein one processor operates a set of time later than the other | |
JP2006178636A (ja) | フォールトトレラントコンピュータ、およびその制御方法 | |
KR100583214B1 (ko) | 정보 처리 장치 | |
CA2435001C (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
JPS63113701A (ja) | 制御用デジタルコンピュータにおける独立したバックアップモードへの切換方法及び機構 | |
JP4640359B2 (ja) | フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法 | |
JP2001175545A (ja) | サーバシステムおよび障害診断方法ならびに記録媒体 | |
JP2645880B2 (ja) | システムクロック二重化方式 | |
JPH06139091A (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: 20120302 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |