KR20130009816A - 제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용 - Google Patents

제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용 Download PDF

Info

Publication number
KR20130009816A
KR20130009816A KR1020127027527A KR20127027527A KR20130009816A KR 20130009816 A KR20130009816 A KR 20130009816A KR 1020127027527 A KR1020127027527 A KR 1020127027527A KR 20127027527 A KR20127027527 A KR 20127027527A KR 20130009816 A KR20130009816 A KR 20130009816A
Authority
KR
South Korea
Prior art keywords
processor
error
unit
peripheral
computer system
Prior art date
Application number
KR1020127027527A
Other languages
English (en)
Other versions
KR101728581B1 (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 KR20130009816A publication Critical patent/KR20130009816A/ko
Application granted granted Critical
Publication of KR101728581B1 publication Critical patent/KR101728581B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • 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/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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware

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)

Abstract

본 발명은 제어 컴퓨터 시스템에 관한 것이다. 제어 컴퓨터 시스템은 서로 리던던트하게 구성된 적어도 2개의 모듈들 (1001, 1002, 1003, 1004); 적어도 2개의 리던던트 모듈들 (1001, 1002, 1003, 1004) 의 동기화 상태를 모니터링하여 동기화 고장을 검출하는 적어도 하나의 비교기 유닛 (1011, 1012); 및 적어도 하나의 주변장치 유닛 (1030, 1031, ..., 1038) 을 포함한다. 제어 컴퓨터 시스템은 적어도 2개의 리던던트 모듈들 (1001, 1002, 1003, 1004) 로의 액세스 또는 적어도 2개의 리던던트 모듈들에 의한 주변장치 유닛 (1030, 1031, ..., 1038) 로의 액세스를 허용하거나 또는 차단하기 위해 구성된 적어도 하나의 스위치 매트릭스 (1013) 를 더 포함한다. 고장 처리 유닛 (1080) 은 적어도 2개의 리던던트 모듈들로의 액세스 또는 적어도 2개의 리던던트 모듈들에 의한 주변장치 유닛으로의 액세스를 옵션으로 완전히 또는 선택적으로 방지하기 위해, 적어도 하나의 비교기 유닛 (1011, 1012) 의 신호들을 수신하여 적어도 하나의 스위칭 매트릭스 (1013) 를 구동하기 위해 구성된다.

Description

제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용 {CONTROL COMPUTER SYSTEM, METHOD FOR CONTROLLING A CONTROL COMPUTER SYSTEM, AND USE OF A CONTROL COMPUTER SYSTEM}
다음의 발명은 리던던트 프로세서 제어기 및 제어 방법에 관한 것으로, 특히 2-프로세서 리던던트 제어기 및 멀티코어 리던던트 제어 컴퓨터 시스템에 관한 것이다.
2개의 프로세서들로 하여금, 락스텝 (lockstep) 모드에서 동일한 명령들을 실행하여 그 출력 데이터를 비교함으로써 에러가 발생하였는지 여부를 결정하는 것은 알려져 있는 관례이다. 이 경우, 2개의 프로세서들은 클록 동기화하여 또는 어떤 시간 오프셋에 따라 (따라서, 비교 동안 보상됨) 동작될 수도 있다. 이 경우에, 예를 들어, 제조 동안에 도입되는 단점에 의해 유발되는 양자의 영구 에러들, 및 예를 들어, 일시적인 전자기 간섭에 의해 유발되는 일시 에러들이 일어날 수도 있다. 프로그램 실행이 차단되며, 가장 간단한 경우, 락스텝 에러가 발생하고 그에 따라서 2개의 프로세서들로부터의 출력 데이터가 서로 상이하게 되면, 컴퓨터 시스템이 비활성화된다.
그러나, 에러가 발생하면 컴퓨터 시스템이 그에 따라 원하는 프로그램을 계속 실행하는 에러 허용성 (error tolerance) 을 제공하는 것은, 이중 리던던시를 가진 프로세서들에 있어서는, 특별한 도전 과제이다. 단지 2개의 리던던트 프로세서들을 가진 안전 플랫폼들에 있어, 에러 허용 능력을 지원하려는 시도들이 이루어져 왔다. 미국특허 제 5915082 B2 호는 내부 버스들에 비교될 패리티 비트들이 제공되는 시스템 아키텍쳐를 개시한다. 패리티 에러가 일 측 상에서 검출되어진 후, 연관된 프로세서가 분리되며, 그 결과, 시스템에 어떤 영향도 더 이상 미치지 않게 된다. 시스템이 패리티 에러 없이 발생하는 모든 락스텝 에러 이후에 스위치 오프된다. 패리티 체킹에 기초하는 이 절차는, 심지어 락스텝 에러의 발생 이후에도 리던던트 시스템의 가용성이 매우 바람직한 경우에, 충분한 커버리지를 제공하지 않는다. 2개의 내부 리던던트 유닛들이 동시에 상이한 멀티-비트 에러들을 나타내면, 패리티 체크는 예를 들어, 부정확한 결정을 초래할 수 있다.
또한, 공지된 에러-내성 (error-tolerant) 시스템 아키텍쳐들은 공유된 또는 공동으로 사용되는 메모리를 갖는 적어도 3개의 프로세서 코어들을 포함한다. 이 경우, 프로세서들의 락스텝 모드가 버스 신호들을 모니터링하여 항상 체크된다. 또한, 락스텝 모드는 프로세서들에 의한 프로그램 또는 프로그램 부분들의 동기적 실행으로서 아래에서 참조된다.
능동 프로세서가 고장나면, 입력/출력 채널을 통해서 그 능동 프로세서에 의해 구동되는 메모리 영역 및 구성요소들의 소유권이 또 다른 프로세서에게 넘어간다. 락스텝 에러에 뒤이은 락스텝 에러 상태 (동기화 에러) 에서, 데이터 액세스 및 제어 프로세스들이 능동 프로세서로부터 제거되며 또 다른 프로세서에 의해 유지된다.
프로세서들 및 공동으로 사용되는 메모리의 삼중 리던던시 (TMR: Triple modular redundancy) 를 포함하는 에러-내성 시스템의 종래의 최소 구성은, 안전 컨셉이 락스텝 또는 동기적으로 실행하는 2개의 리던던트 프로세서들의 사용에 기초하는 많은 안전 아키텍쳐들에 있어, 여전히 비싼 해결책이다. 그러나, 에러 허용성은 이중 리던던시를 갖는 프로세서들에 있어, 특별한 도전과제이다.
미국특허 제 7366948 B2 호 및 미국 공보 제 2006/0107106 호는 락스텝 모드에서 실행하는 복수의 프로세서 쌍들로 이루어진 시스템에서 가용성을 지원하는 방법을 기술한다. 2개의 리던던트 프로세서들은 각각의 쌍으로 결합되며, 그들의 출력들이 연속적으로 비교된다. 에러가 하나의 프로세서 쌍에서 발생하면, 또 다른 프로세서 쌍은 부트 프로세서 쌍으로서 시스템의 구동 (driving) 을 떠맡을 것이다. 한편, 에러가 있는 프로세서 쌍은 동기화를 회복하여, 대기 프로세서 쌍으로서 자신을 사용가능하게 하려고 시도한다. 이것은 높은 레벨의 시스템 가용성을 보장한다. 그러나, 이 방법은 어떤 에러들도 없을 때는 하나의 프로세서 쌍도 사용되지 않아, 많은 내장형 시스템들에 있어 너무 비싸며, 따라서, 기술한 방법은 부족한 비용 대 성능 비를 제공한다. 2개의 쌍들로 분할되며 출력 신호들이 쌍들로 비교되는 4개의 프로세서들은 단일 작업용으로 항상 사용되어야 한다. 락스텝 에러 (LOL: loss of lockstep) 또는 또 다른 프로세서-내부 에러가 프로세서 쌍에서 검출되면, 운영 시스템은 결함 있는 프로세서 쌍을 휴지 상태로 변경하고 또 다른 프로세서 쌍을 활성화시킨다.
유럽특허 제 1 380 953 B1 호는 프로세서 및 메모리를 갖는 다수의 계산 모듈들을 포함하는, 락스텝 동기를 갖는 에러-내성 컴퓨터 시스템을 정의하며, 상기 시스템을 재동기화하는 방법을 기술한다. 각각의 계산 모듈이 동일한 명령 스트링을 동기적으로 프로세싱하기 때문에, 이 컴퓨터 시스템은 그다지 효율적이지 않다.
유럽특허 제 1 456 720 B1 호는 클록 동기화하여 동작하고, 부분적으로 또는 완전히 리던던트 주변장치 엘리먼트들 및 부분적으로 또는 완전히 리던던트 메모리 엘리먼트들이 칩 상에 집적된 2개의 제어 컴퓨터들을 각각 포함하는 2개 이상의 제어 컴퓨터 시스템들을 포함하는 자동차들에서의 안전-필수 (safety-critical) 애플리케이션들을 위한 컴퓨터 그룹을 개시한다. 클록 동기하여 동작하는 제어 컴퓨터 시스템의 제어 컴퓨터들은 에러들을 모니터링하여, 제어 컴퓨터 시스템에 할당된 통신 제어기를 운반체 데이터 버스에 커플링하거나 또는 상기 제어기를 디커플링할 수 있는 중재 유닛에 접속된다. 제어 컴퓨터들의 하나가 고장나면, 대응하는 제어 컴퓨터 시스템이 부분적으로 또는 완전히 비활성화된다.
독일특허 제 10 2009 000 045 A1 호는 2개의 실행 유닛들의 2개의 쌍들을 포함하는 컴퓨터 시스템을 갖고, 특히, 자동차에 사용되는 제어 디바이스를 동작시키는 장치를 개시한다. 각각의 쌍에서 실행 유닛들은 동일한 프로그램을 실행하며, 각각의 실행 유닛으로부터의 출력 신호들이 각각의 비교 유닛에 의해 서로 비교되며, 불일치가 발생하면, 에러 신호가 출력된다. 실행 유닛들의 제 1 쌍에 대해 에러 신호가 발생하면, 이 쌍이 스위치 오프되며, 컴퓨터 시스템은 실행 유닛들의 제 2 쌍을 이용하여 계속 동작되며, 사전 경고 신호가 드라이버로 출력되어진다.
상기 문서들은 어떤 에러들도 없을 때, 적어도 하나의 프로세서 쌍이 비활성화되거나 또는 주변장치 유닛들을 구동하는 능동 프로세서 쌍과 동일한 프로그램을 실행하기 때문에, 고도의 리던던시가 이용되어져야 하는 단점을 갖고 있다. 따라서, 개개의 프로세서 각각은 요구되는 전체 계산 능력을 제공해야 하며, 그 결과, 공지의 컴퓨터 시스템들이 그다지 효율적인 방식으로 동작하지 않는다. 이것은 비용의 관점에서, 특히, 시스템들이 대량으로 제조되는 경우에, 바람직하지 않다.
미국특허 제 7366948 B2 호에 기술된 방법은 내장된 시스템들에 있어 매우 비싼 해결책이다. 또한, 프로세서 코어들 이외의, 다른 구성요소들이, 항상 리던던트 방식 (redundant manner) 으로 구현될 수는 없는 것이 사실이다. 재정적 이유들은 상이한 안전-관련 시스템들, 예를 들어, 자동차 분야에서의 브레이크 애플리케이션들에 대한 안전 아키텍쳐들을 설계할 때 일반적으로 중요한 역할을 한다. 프로그램 메모리들, 예를 들어, 플래시 메모리들은 리던던트하지 않기보다는, 모든 기존 프로세서들에 의해 사용된다. 종래의 방법들은 리던던트 프로세서들에 기초하여 안전 아키텍쳐들 (safety architectures) 에서의 가용성을 보장하려는 접근방법에서 비-리던던트 구성요소들의 이 경계 조건을 고려하지 않는다. 안전 아키텍쳐들에서 프로세서들의 가용성을 보장하는 것에 관련된 또 다른 문제는 이전에 고장났던 프로세서가 안전 체크가 성공적으로 결론지어진 다음에만 다시 시작될 수 있다는 점이다.
이러한 배경을 고려하여, 단지 2개의 리던던트 프로세서들을 갖고 높은 레벨의 시스템 가용성을 가능하게 하는 안전 아키텍쳐가 요구되고 있다. 또한, 3개 이상의 프로세서들, 예를 들어, 2개의 코어들을 각각 갖는 2개의 프로세서들을 갖고, 높은 레벨의 시스템 가용성을 가능하게 하는 안전 아키텍쳐가 요구되고 있다.
일 양태에 따르면, 본 발명의 목적은 동시에 에러-내성적이고 효율적인 제어 컴퓨터 시스템을 제공하는 것이다.
일 실시형태에 따르면, 리던던트 프로세서 코어들의 쌍들에 기초한 안전 아키텍쳐는 기존 안전 레벨이 유지되고 높은 레벨의 시스템 가용성이 가능하게 하는 방식으로 구성되도록 의도된다. 게다가, 프로세서들은 정상 (또는 에러-없는) 모드에서 높은 레벨의 성능을 내도록 의도된다. 에러가 검출된 후, 시스템의 가용성은 비-리던던트 구성요소들의 안전한 접속을 고려하여 유지되도록 의도된다.
이러한 배경을 고려하여, 청구항 제 1 항에 따른 제어 컴퓨터 시스템이 제공된다. 또한, 2개의-프로세서 제어 디바이스가 제공된다. 또한, 청구항 제 22 항 또는 청구항 제 33 항에 따른, 제어 컴퓨터 시스템을 제어하는 방법이 제공된다. 또한, 청구항 제 32 항에 따른, 제어 컴퓨터 시스템의 이용이 제공된다.
일 실시형태는 제어 컴퓨터 시스템을 제공한다. 제어 컴퓨터 시스템은 서로에 대해 리던던트하게 설계된 적어도 2개의 모듈들; 적어도 2개의 리던던트 모듈들의 동기화 상태를 모니터링하여 동기화 에러를 검출하는 적어도 하나의 비교 유닛; 적어도 하나의 주변장치 유닛; 적어도 2개의 리던던트 모듈들로의 액세스 또는 적어도 2개의 리던던트 모듈들에 의한 주변장치 유닛으로의 액세스를 가능하게 하거나 또는 차단하도록 셋업되는 적어도 하나의 스위칭 매트릭스를 포함한다. 또한, 제어 컴퓨터 시스템은 적어도 2개의 리던던트 모듈들로의 액세스 또는 적어도 2개의 리던던트 모듈들에 의한 주변장치 유닛으로의 액세스를 완전히 또는 선택적으로 방지하기 위해, 적어도 하나의 비교 유닛으로부터 신호들을 수신하여, 적어도 하나의 스위칭 매트릭스를 구동하도록 셋업된 에러-처리 유닛을 포함한다.
에러의 발생시, 결함 있는 모듈로의 액세스 또는 결함 있는 모듈에 의한 주변장치 유닛들로의 액세스가 에러-처리 유닛에 의해 구동되는 스위칭 매트릭스에 의해 배제된다. 일 실시형태에 따르면, 에러-처리 유닛은 리던던트 모듈들을 에러들에 대해 체킹하기 위해 하나 이상의 테스트들을 개시하여 모니터링하고, 에러가 검출될 때, 특히, 결함 있는 모듈이 안전-관련 애플리케이션들에 더 이상 고려되지 않는 방식으로 스위칭 매트릭스를 제어한다.
일 실시형태에 따르면, 적어도 2개의 리던던트 모듈들은 제어 프로그램을 동기적으로 실행하기 위한 적어도 2개의 프로세서 유닛들 또는 다른 유닛들, 예를 들어 리던던트하게 설계된 메모리 모듈들이다.
일 실시형태에 따르면, 제어 컴퓨터 시스템은 적어도 4개의 프로세서 유닛들을 포함하며, 여기서, 프로세서 유닛들은 단일 프로세서들, 프로세서 쌍들의 프로세서들 또는 듀얼-코어 또는 멀티코어 프로세서들의 코어들일 수도 있다.
일 실시형태에 따르면, 리던던트 프로세서 코어들의 쌍들에 기초한 안전 아키텍쳐는 에러가 검출된 후 결함 있는 프로세서 쌍에 의한 안전-관련 주변장치 유닛들로의 임의의 액세스를 독립적인 모듈이 차단하기 때문에, 결함 있는 프로세서 쌍, 적어도 2개의 프로세서 코어들을 갖는 프로세서의 개개의 결함 있는 프로세서 코어 및/또는 결함 있는 구성요소가 기존 액츄에이터들을 구동하는 것으로부터 배제되는 방식으로, 수정된다. 에러-없는 프로세서 쌍(들) 또는 프로세서 코어(들) 또는 결함 있는 구성요소는 비상 모드를 보장하기 위해 정상 모드를 떠날 것이다. 비상 모드에서, 각각의 에러-없는 프로세서 쌍/프로세서 코어는 필요한 경우, 고장난 프로세서 쌍/프로세서 코어의 어떤 작업을 떠맡고, 또한 그의 최초의 작업들의 서브세트를 실행한다. 각각의 프로세서 쌍/프로세서 코어에 있어, 그 프로세서 코어 상에서 실행하는 소프트웨어 프로그램들은 2개의 그룹들로 분할된다. 소프트웨어 프로그램들의 한 그룹은 정상 모드 및 비상 모드 양자에서 실행할 수 있도록 의도되지만, 다른 그룹에서의 소프트웨어 프로그램들은 비상 모드에서 스위치 오프된다. 따라서, 에러-없는 프로세서 쌍/프로세서 코어가 비상 모드에서 추가적인 작업들을 떠맡을 수 있다. 각각의 소프트웨어 구성요소는 비상 모드에 적합하거나 적합하지 않은 것으로, 및/또는 비상 모드가 불필요하거나 필요한 것으로 분류된다. 프로세서 쌍/프로세서 코어가 결함있으면, 비상 모드에 필요한 작업들이 에러-없는 프로세서 쌍/프로세서 코어에 떠맡겨진다.
본 발명의 바람직한 일 실시형태에서, 그 목적은 안전 아키텍쳐의 정상 모드를 복구하는 것으로, 그것이 고장난 프로세서 쌍/프로세서 코어가 많은 체킹 테스트들을 받는 이유이다. 이들 테스트들이 수행되는 동안, 이 프로세서 쌍/프로세서 코어는 실행된 알고리즘들의 이전에 알려진 결과들에 대응하도록 의도된 여러가지 결과들을 저장할 것이다. 이 경우, 독립적인 하드웨어 모듈이 결과들의 정확성을 체크한다. 복구 조건들이 성공적으로 테스트된 후, 모든 프로세서 쌍들/프로세서 코어들이 정상 모드로 복귀한다.
본 발명에 따른 제어 컴퓨터 시스템이 결함 있는 프로세서 쌍/프로세서 코어가 주변장치들에 액세스하는 것을 방지할 수 있다는 사실의 결과로서, 액츄에이터를 구동하는 결함 있는 프로세서 쌍/프로세서 코어에 의해 유발되는 손상이 방지된다.
어떤 에러들도 없을 때, 본 발명에 따른 제어 컴퓨터 시스템의 개개의 프로세서 쌍들 또는 프로세서 코어(들)이 상이한 프로그램들을 실행할 수 있으며, 그 결과, 높은 컴퓨팅 능력이 이용가능하다. 에러가 발생하면, 에러-없는 프로세서 쌍 또는 에러-없는 프로세서 코어(들)은 결함 있는 프로세서 쌍/프로세서 코어의 중요 기능들을 맡지만, 일부 비-중요 기능들은 더 이상 이용할 수 없다. 이 비상 모드는 본 발명에 따른 제어 컴퓨터 시스템의 높은 레벨의 허용 에러를 가능하게 한다.
또한, 본 발명은 자동차에서, 특히 브레이크 시스템을 제어하거나 조정하기 위해 본 발명에 따른 제어 컴퓨터 시스템의 이용에 관한 것이다.
하나 이상의 실시형태들에 따르면, 제어 컴퓨터 시스템은, 예를 들어 리던던트 2-프로세서 제어 디바이스의 형태로, 제어 프로그램을 동기적으로 실행하기 위한 제 1 프로세서 (또는 프로세서의 제 1 코어) 및 제 2 프로세서 (또는 프로세서의 제 2 코어), 구동될 적어도 하나의 제 1 주변장치 유닛을 2개의 프로세서들의 하나에 옵션으로 접속하는 적어도 하나의 제 1 멀티플렉서, 및 2개의 프로세서들의 동기화 상태를 모니터링하여 동기화 에러를 검출하는 적어도 하나의 제 1 비교 유닛 (비교기) 을포함한다. 또한, 제어 컴퓨터 시스템 (제어 디바이스) 은 동기화 에러가 발생된 후 2개의 프로세서들에 의한 적어도 하나의 테스트 프로그램의 실행을 모니터링하여 테스트 결과들을 평가하도록 셋업되며, 또한 적어도 제 1 멀티플렉서를 구성하도록 셋업된 복구 제어 유닛 (일부 실시형태들에서, SAM 모듈들로도 지칭됨) 을 포함한다.
비교 유닛은 프로세서들의 동기적 동작, 즉, 락스텝을 모니터링한다. 이것은 제어 프로그램의 실행을 "라인-바이-라인 (line-by-line)" 방식으로 비교함으로써 달성될 수도 있으며, 그 경우, 동일한 결과들이 동시에 존재해야 한다. 이것이 그 경우가 아니면, 락스텝 에러가 있으며, 즉, 프로세서들이 동기화하여 더 이상 동작하지 않는다.
제어 프로그램의 동기적 실행은 현재 능동 프로세서가 에러 없이 동작하고 있는지 여부를 체크하는데 사용될 수 있기 때문에 리던던트 시스템들의 중요한 특징이며, 이 경우에, 양자의 프로세서들에서의 동일한 에러의 동시 발생은 통계적으로 매우 가망성이 없는 것으로 가정된다. 그러나, 동기화 에러가 발생하면, 처음에 에러가 능동 또는 수동 프로세서 (코어) 에 발생하였는지 여부가 불분명하다. 이 경우, 능동 프로세서 (코어) 는 주변장치 유닛을 실제로 구동하는 프로세서를 의미하는 것으로 이해되도록 의도된다. 수동 프로세서 (코어) 는, 오직 부수적으로 동기화하여 실행하는 프로세서이며, 즉, 능동 프로세서와 동일한 데이터를 수신하여 동일한 프로그램 단계들을 실행한다.
따라서, 동기화 에러가 발생하면, 제어가 정확히 실행되는 것이 보장되지 않으며, 즉, 예를 들어, 자동차 분야에서 또는 아니면 다른 분야들에 사용될 때, 특히 안전-관련 시스템들에서, 위험이 있다. 제어 시스템, 예를 들어 도 7 및 도 8 에 나타낸 제어 시스템들은 보통 완전히 스위치 오프되어야 된다.
본원에서 제안하는 해결책은 동기화 에러가 발생할 때 2개의 프로세서들 중 어느 것이 결함 있는지를 결정하기 위해, 2개의 프로세서들 (코어들) 이 테스트받도록 하는 복구 제어 유닛 (독립적인 하드웨어 모듈) 을 제공한다. 테스트가 실행된 후 테스트 결과들이 평가되며, 복구 제어 유닛이 후속 절차를 결정한다.
양자의 프로세서들이 테스트를 통과하면, 양자의 프로세서들이 에러-없는 것으로 가정된다. 이 경우, 제어 프로그램의 동기적 실행이 계속된다.
이 해결책은 2개의 프로세서들이 에러들의 부재에 대한 테스트를 받기 때문에, 주변장치 유닛의 구동이 계속되는 동안 높은 안전 레벨을 유지할 수 있다는 결정적인 이점을 갖는다. 이것은 완전한 스위칭-오프가 원칙적으로, 동기화 에러 (락스텝 에러) 가 발생한 후에 실행되고, 시스템이 오직 외부로부터 다시 재설정될 수 있는 다른 해결책들 보다 결정적인 이점이다. 이 경우, 어떤 에러 평가도 실행되지 않고, 즉, 유발된 동기화 에러가 식별되지 않은 채 유지되기 때문에, 단순한 시스템의 재설정이 종종 안전-관련 애플리케이션들에 있어 만족스러운 해결책이 아니라는 점이 명심되어야 한다. 따라서, 본원에서 설명하는 해결책은 락스텝 에러 이후에 동기화 에러들을 처리하여 2개의 리던던트 시스템들의 동기화를 복구할 수 있도록 하는 방법을 제공한다.
이에 반해, 프로세서 (코어) 가 결함 있는 것으로 간주되었으면, 제어 디바이스 (제어 컴퓨터 시스템) 는 복구 제어 유닛 (SAM 모듈) 에 의해, 더 정확히 말하면, 결함 있는 프로세서의 출력들이 무시되는 방식으로 재구성되며, 주변장치 유닛이 결함 있는 프로세서에 의해서가 아닌, 에러-없는 프로세서에 의해 오직 구동되는 것이 보장된다. 이것은 제 1 멀티플렉서를 재구성함으로써 일반적으로 달성되며, 그 결과, 오직 주변장치 유닛과 에러-없는 프로세서 사이에서만 데이터 흐름이 가능하다. 게다가, 재구성은 비교 유닛이 임의의 모니터링을 더 이상 실행하지 않도록 한다.
이 해결책은 심지어 이것이 현재 프로세서 측에서 리던던시 없이 달성되더라도 주변장치 유닛의 구동이 계속될 수 있다는 결정적인 이점을 갖는다. 이것은 동기화 에러 (락스텝 에러들) 가 발생될 때 제어가 완전히 스위치 오프되는 공지의 해결책들보다 상당한 이점이 있다. 제안된 해결책은 중요 애플리케이션들에 특히 중요한 시스템의 가용성을 증가시켜, 시스템의 제어가 계속 유지될 수 있다. 그러나, 제어 디바이스는 현재 존재하는 "단일-프로세서 동작" 을 나타내기 위해서 에러 신호를 해제할 수 있으며, 그 결과, 유지관리가 실행될 수 있다.
본원에서 제안된, 동기화 에러를 제어하는 수단을 갖는 리던던트 제어 장치는 임의의 원하는 안전-관련 시스템들에 사용될 수 있다. 자동차 분야에서 브레이킹 (braking) 애플리케이션들이 일 예이다. 이 경우, 오직 2개의 리던던트 프로세서들에 기초한 제어 장치는 기존 안전 레벨을 보유하게 그리고 높은 레벨의 시스템 가용성을 허용하도록 구성된다.
구동되는 주변장치 유닛은 원칙적으로, 각각의 프로세서에 의해 액세스되는 임의의 유닛을 의미하는 것으로 이해될 수도 있다. 예들은 메모리들, 액츄에이터들, 입력/출력 유닛들 및 센서들이다.
하나 이상의 실시형태들에 따르면, 복구 제어 유닛은 동기화 에러를 에러 유형에 할당하고 그 에러 유형에 기초하여 테스트 프로그램을 선택하도록 셋업된다. 에러가 발생했을지도 모르는 장소 또는 어느 구성요소들이 에러를 유발하였는지를 발견하기 위해 그 발생한 에러가 분석된다. 그후, 이에 기초하여 적당한 테스트 프로그램이 선택되며, 그 경우, 테스트 프로그램들 및 예상된 테스트 결과들이 예를 들어, 복구 제어 유닛에 미리 저장된다. 에러, 즉, 2개의 프로세서 출력들 사이의 차이가, 상이한 메모리 어드레스에서 나타나면, 예를 들어, 메모리 에러들을 검출하는데 사용될 수 있는 테스트 프로그램을 선택하는 것이 가능하다. 이 접근방법은 에러 국부화 (localization) 를 향상시킨다.
하나 이상의 실시형태들에 따르면, 복구 제어 유닛 (SAM 모듈) 은 테스트 결과에 기초하여 제 1 멀티플렉서를 구성하도록 셋업된다. 따라서, 멀티플렉서, 및 일반적으로 제어 디바이스가, 그 테스트 결과에 기초하여 구성된다. 멀티플렉서의 기능이 버스 매트릭스에게 맡겨지는 것이 가능하다.
또한, 하나 이상의 실시형태들에 따르면, 제어 디바이스는 구동될 적어도 하나의 제 2 주변장치 유닛을 2개의 프로세서들의 하나에 옵션으로 접속하는 적어도 하나의 제 2 멀티플렉서를 가지며, 이때, 제 2 멀티플렉서는 복구 제어 유닛에 의해 구성될 수 있다. 따라서, 제어 장치는 또한 안전 측면들을 고려하면서, 복수의 주변장치 유닛들을 옵션으로 구성하는 것을 가능하게 한다.
또한, 하나 이상의 실시형태들에 따르면, 제어 디바이스는 2개의 프로세서들의 동기화 상태를 모니터링하여 동기화 에러를 검출하는 적어도 하나의 제 2 비교 유닛 (비교기) 을 갖는다. 이것은 상호 모니터링을 가능하게 하여, 시스템의 신뢰성을 증대시킨다.
하나 이상의 실시형태들에 따르면, 제어 디바이스는 제 1 프로세서를 제 1 멀티플렉서에 접속하는 제 1 버스 매트릭스, 및 제 2 프로세서를 제 2 멀티플렉서에 접속하는 제 2 버스 매트릭스를 갖는다.
하나 이상의 실시형태들에 따르면, 제 1 주변장치 유닛은 2개의 프로세서들의 하나에 의해 옵션으로 구동될 수 있는 공통 유닛이다. 또한, 일 실시형태에 따르면, 제어 장치는 적어도 2개의 추가 주변장치 유닛들을 가지며, 2개의 주변장치 유닛들의 하나가 오직 제 1 프로세서에만 할당되며, 2개의 주변장치 유닛들의 다른 하나가 오직 각각 할당된 프로세서에 의해서만 액세스될 수 있는 개인 주변장치 유닛으로서 오직 제 2 프로세서에만 할당된다. 이 경우, 공통 주변장치 유닛 또는 구성요소는 리던던트 방식으로 구동되는 유닛을 의미하는 것으로 이해되며, 즉, 구동이 2개의 프로세서들의 하나에 의해 옵션으로 달성되며, 그 경우 다른 하나의 프로세서는 비교용으로 사용된다. 이에 반해, 개인 유닛은 각각의 경우에, 오직 2개의 프로세서들의 하나에 의해서만 구동된다. 각각의 다른 프로세서는 이 유닛에 액세스하지 않으며 심지어 멀티플렉서(들)를 통해서도 액세스하지 않는다. 여기서 제시되는 해결책은, 심지어 재정적 이유들로 여러가지 내장된 시스템들에 일반적으로 구현되는 비-리던던트 구성요소들을 고려하면서도, 복구될 2개의 리던던트 프로세서들 사이의 동기화를 가능하게 한다.
하나 이상의 실시형태들에 따르면, 2개의 추가 주변장치 유닛들은 리던던트 유닛들이며, 즉, 그들은 물리적으로 동일하며 동일한 기능을 실행하는데 사용된다.
하나 이상의 실시형태들에 따르면, 제 1 비교 유닛 및/또는 제 2 비교 유닛은 동기화 에러가 발생할 때 동기화 에러 신호를 발생하도록 셋업된다. 동기화 에러 신호는 예를 들어, 인터럽트일 수도 있다.
일 실시형태는 제어 컴퓨터 시스템을 예를 들어, 리던던트 2-프로세서 제어 디바이스의 형태로 제공한다. 제어 컴퓨터 시스템은 제어 프로그램을 동기적으로 실행하는 제 1 프로세서 및 제 2 프로세서; 공통 제 1 주변장치 유닛을 2개의 프로세서들의 하나에 옵션으로 접속하는 적어도 하나의 제 1 멀티플렉서; 적어도 2개의 추가 주변장치 유닛들으로서, 상기 2개의 주변장치 유닛들의 하나가 오직 제 1 프로세서에만 할당되고 상기 2개의 주변장치 유닛들의 다른 하나가 오직 제 2 프로세서에만 각각 할당된 프로세서에 의해서만 액세스될 수 있는 개인 주변장치 유닛으로 할당된, 상기 주변장치 유닛들; 2개의 프로세서들의 동기화 상태를 검출하여 2개의 프로세서들이 비동기화될 때 동기화 에러를 검출하는 적어도 하나의 제 1 비교 유닛; 및 동기화 에러가 발생한 이후 2개의 프로세서들에 의한 적어도 하나의 테스트 프로그램의 실행을 모니터링하여 테스트 결과들을 평가하도록 셋업되며 그 테스트 결과에 기초하여 제 1 멀티플렉서를 구성하도록 셋업되는 복구 제어 유닛을 포함한다.
또한, 일 실시형태에 따르면, 제어 컴퓨터 시스템은 제 1 프로세서를 제 1 멀티플렉서에 접속하는 제 1 버스 매트릭스; 및 제 2 프로세서를 제 1 멀티플렉서에 접속하는 제 2 버스 매트릭스를 포함한다.
일 실시형태는, 예를 들어, 리던던트 2-프로세서 제어 디바이스의 형태로, 제어 프로그램을 동기적으로 실행하는 제 1 프로세서 및 제 2 프로세서; 적어도 하나의 제 1 및 하나의 제 2 주변장치 유닛; 제 1 주변장치 유닛을 2개의 프로세서들의 하나에 옵션으로 접속하는 적어도 하나의 제 1 멀티플렉서; 제 2 주변장치 유닛을 2개의 프로세서들의 하나에 옵션으로 접속하는 적어도 하나의 제 2 멀티플렉서; 2개의 프로세서들의 동기화 상태를 각각 모니터링하여 동기화 에러를 검출하는 적어도 하나의 제 1 및 하나의 제 2 비교 유닛; 및 동기화 에러가 발생한 후 2개의 프로세서들에 의한 적어도 하나의 테스트 프로그램의 실행을 모니터링하여 테스트 결과들을 평가하도록 셋업되며, 그 테스트 결과들에 기초하여 제 1 및 제 2 멀티플렉서들을 구성하도록 셋업되는 복구 제어 유닛을 포함하는 제어 컴퓨터 시스템을 제공한다.
또한, 일 실시형태에 따르면, 예를 들어, 리던던트 2-프로세서 제어 디바이스의 형태로, 제 1 프로세서를 제 1 멀티플렉서에 접속하는 제 1 버스 매트릭스; 및 제 2 프로세서를 제 2 멀티플렉서에 접속하는 제 2 버스 매트릭스를 포함하는 제어 컴퓨터 시스템을 제공한다.
하나 이상의 실시형태들이 제어 방법을 제공한다. 본 제어 방법은 멀티플렉서를 통해서, 구동될 적어도 하나의 주변장치 유닛에 접속된 제 1 프로세서 및 제 2 프로세서에 의한 제어 프로그램의 동기적 실행을 포함하며, 2개의 프로세서들의 오직 하나가 특정한 시간에 주변장치 유닛을 구동한다. 제어 프로그램의 동기적 실행은 비교 유닛에 의해 모니터링된다. 2개의 프로세서들이 비동기화될 때 동기화 에러 신호가 출력된다. 동기화 에러 신호가 출력된 후, 2개의 프로세서들에 의한 제어 프로그램의 실행이 먼저 인터럽트된다. 그후, 2개의 프로세서들의 하나가 결함이 있는지 여부를 체크하기 위해 테스트가 실행된다. 양자의 프로세서들이 에러가 없으면, 2개의 프로세서들에 의한 제어 프로그램의 동기적 실행이 계속된다. 이에 반해, 2개의 프로세서들의 하나가 결함이 있는 것으로 식별되었으면, 멀티플렉서 및 비교 유닛은 결함 있는 프로세서와의 어떤 추가적인 통신 및 비교 유닛에 의한 어떤 추가적인 모니터링도 일어나지 않으며 에러-없는 프로세서가 주변장치 유닛을 구동하는 방식으로 구성된다. 제어 프로그램의 실행이 에러-없는 프로세서에 의해 계속된다. 양자의 프로세서들이 결함이 있으면, 제어기가 스위치 오프된다.
하나 이상의 실시형태들에 따르면, 테스트는 양자의 프로세서들에 의한 적어도 하나의 테스트 프로그램의 동시 실행을 포함하며, 프로세서는 다음의 조건들의 적어도 하나가 충족될 때 결함이 있는 것으로 간주된다:
- 프로세서가 제 1 기간 (T1) 내에 테스트 프로그램을 실행하지 않았을 경우,
- 프로세서가 테스트 프로그램을 성공적으로 실행하지 않았을 경우,
- 프로세서가 제 1 기간 (T1) 이 경과한 후에 제 2 기간 (T2) 동안 휴지 상태로 변경되지 않았을 경우.
이것은 정확한 또는 부정확한 실행 뿐만 아니라, 프로세서들이 미리 정의된 시간 내에 테스트를 실행하였는지 여부가 고려되는 것을 보장하기 위해 의도된다. 휴지 상태를 체킹하는 것은 비록 임의의 명령들을 실행하고 있지 않더라도 프로세서가 데이터를 출력하는지 여부를 결정하기 위해 사용된다. 마찬가지로, 이것은 결함 있는 프로세서를 나타낸다.
하나 이상의 실시형태들에 따르면, 동기화 에러가 평가되어 에러 유형에 할당되며, 이때, 적어도 하나의 테스트 프로그램이 프로세서들을 체크하기 위해 그 에러 유형에 기초하여 선택된다. 이것은 하나 또는 아마도 더 이상의 에러-특정의 테스트 프로그램들을 선택하는 것을 가능하게 한다.
또한, 실시형태들, 변경들 및 이점들이 다음의 설명, 도면 및 청구범위에 설명된다. 다음으로, 본 발명이 도면에 도시된 특정의 예시적인 실시형태들을 이용하여 설명된다. 그러나, 상기 실시형태들은 제한하는 것으로 해석되어서는 안된다. 보호 범위에 부수적으로 포함되는 것으로 의도된 추가적인 변경들은 당업자가 다음의 설명으로부터 명백히 알 수 있다.
도 1 은 제어 컴퓨터 시스템을 정상 모드에서 일 실시형태에 따른 제어 장치의 유형으로 나타내며, 도 2 는 프로세서가 고장날 때 제어 컴퓨터 시스템 (제어 장치) 을 나타낸다.
도 3 은 제어 컴퓨터 시스템을 일 실시형태에 따른 제어 장치의 형태로 나타낸다.
도 4 는 제어 컴퓨터 시스템을 일 실시형태에 따른 제어 장치의 형태로 나타낸다.
도 5 는 제어 컴퓨터 시스템을 일 실시형태에 따른 제어 장치의 형태로 나타낸다.
도 6 은 일 실시형태에 따른 제어 프로그램의 시퀀스를 나타낸다.
도 7 은 2개의 프로세서들을 갖는 아키텍쳐를 나타낸다.
도 8 은 주변장치 모듈들의 2개의 그룹들 A 및 B 로의 분할을 갖는 아키텍쳐를 나타낸다.
도 9 는 제어 컴퓨터 시스템을 나타낸다.
도 10 은 일 실시형태에 따른 제어 컴퓨터 시스템을 나타낸다.
도 11 은 일 실시형태에 따른 에러-처리 방법에 대한 플로우차트를 나타낸다.
도 12 는 추가적인 제어 컴퓨터 시스템을 나타낸다.
도 13 은 일 실시형태에 따른 제어 컴퓨터 시스템을 나타낸다.
도 14 은 도 13 의 아키텍쳐에서의 본 발명에 따른 제어 컴퓨터 시스템을 복구 이후에 프로세서 코어 (2B) 가 스위치 오프된 상태에서 나타낸다.
도 15 은 복구 이후에 프로세서 코어들 (1A 및 2B) 이 스위치 오프된, 도 13 의 아키텍쳐에서의 본 발명에 따른 제어 컴퓨터 시스템을 나타낸다.
도 16 은 복구 이후에 프로세서 코어들 (1B 및 2B) 이 스위치 오프된, 도 13 의 아키텍쳐에서의 본 발명에 따른 제어 컴퓨터 시스템을 나타낸다.
도 17 은 일 실시형태에 따른 제어 컴퓨터 시스템을 나타낸다.
도 18 은 일 실시형태에 따른 에러-처리 방법에 대한 플로우차트를 나타낸다.
도 19 는 일 실시형태에 따른 에러-처리 방법에 대한 플로우차트를 나타낸다.
도 20 은 복구 이후에 프로세서 코어 (2B) 가 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 21 은 복구 이후에 프로세서 코어들 (1B 및 2B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 22 는 복구 이후에 프로세서 코어들 (1A, 2A 및 1B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 23 는 복구 이후에 프로세서 코어들 (1A 및 2B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 24 는 복구 이후에 데이터 메모리 (21) 가 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 1 은 제 1 프로세서 (1) 및 제 2 프로세서 (2), 및 제 1 멀티플렉서 (91) 및 제 2 멀티플렉서 (92) 를 갖는 제어 컴퓨터 시스템 또는 제어 장치를 개략적으로 나타낸다. 멀티플렉서들 (91, 92) 의 각각은 도면에 비교기로 지시된 각각의 비교 디바이스와 한 유닛을 형성한다. 멀티플렉서들 (91, 92) 의 각각은 각각의 주변장치 유닛 (95, 96) 에 접속되며, 프로세서들 (1, 2) 이 주변장치 유닛들 (95, 96) 에 옵션으로 액세스할 수 있도록 한다. 복구 제어 유닛 (44) 은 2개의 프로세서들 (1, 2) 에, 그리고 멀티플렉서들 (95, 96) 에 양자에 접속된다.
또한, 프로세서들 (1, 2) 은 프로세서 코어들일 수도 있다.
도 1 에 도시된 굵은 화살표들은 멀티플렉서들 (91, 92) 에 의해 프로세서들 (1, 2) 로부터 주변장치 유닛들 (95, 96) 로 실제로 전달되는 데이터 흐름을 나타낸다. 프로세서 (1) 은 주변장치 유닛 (95) 과 통신하여 주변장치 유닛 (95) 을 제어하고, 프로세서 (2) 는 주변장치 유닛 (96) 과 통신하여, 주변장치 유닛 (96) 을 제어한다. 이 경우, 프로세서 (1), 멀티플렉서/비교기 (91) 및 주변장치 유닛 (95) 은 브랜치 A 를 형성하는 반면, 프로세서 (2), 멀티플렉서/비교기 (92) 및 주변장치 유닛 (96) 은 브랜치 B 를 형성한다. 그러나, 더 정확히 말하면, 한편으로는, 프로세서 (2) 과 멀티플렉서/비교기 (91) 사이에, 다른 한편으로는, 프로세서 (1) 과 멀티플렉서/비교기 (92) 사이에, 교차하는 통신 경로들이 존재한다.
비교기들 (91, 92) 각각은 프로세서들이 서로에 대해 동기적으로 동작하고 있는지 여부, 즉, 동시에 동일한 결과들을 출력하는지 여부를 비교한다. 이것이 동기적으로 동작하지 않으면, 동기화 에러가 존재한다. 이 경우, 프로세서들이 테스트되며, 이에 기초하여 제어 디바이스가 재구성된다. 이것이 도 2 에 개략적으로 도시되어 있다.
도 2 에서는, 복구 제어 유닛 (44) 에 의해 모니터링되어 평가되는 테스트가 프로세서 (1) 이 결함이 있다고 나타낸 것으로 가정되었다. 이 경우, 2개의 멀티플렉서들 (91, 92) 은 더 정확히 말해서, 양자의 멀티플렉서들 (91, 92) 이 프로세서 (1) 로부터의 출력들을 무시하는 방식으로 재구성된다. 동시에, 멀티플렉서 (91) 는 따라서 프로세서 (2) 와 주변장치 유닛 (95) 사이의 통신을 가능하게 한다. 프로세서 (2) 는 따라서 브랜치 A 및 브랜치 B 양자에서 주변장치 유닛들을 구동한다. 프로세서 (2) 는 프로세서 (2) 가 비교 목적들을 위해 정상 상태에서 주변장치 유닛 (95) (브랜치 A) 에 대한 제어 프로그램을 이미 실행하고 있기 때문에, 이 목적을 위해서 반드시 다르게 프로그래밍될 필요는 없다. 차이는 오직, 이제 주변장치 유닛 (95) 에의 "기록 (write)" 액세스를 또한 행할 수 있다는 점이다. 또한, 비교기들의 비교 기능은 비교기들이 프로세서 (1) 로부터 입력들을 더 이상 수신하지 않기 때문에, 비활성화된다. 이것은 비교기들 (91, 92) 이 임의의 추가적인 에러 신호들을 출력하지 않도록 하는데 필요하다.
그 결과, 주변장치 유닛 (95) 및 주변장치 유닛 (96) 에 대한 제어 프로그램들을 포함하는 제어 프로그램의 실행이 다시 계속될 수 있다. 이것은 시스템의 가용성을 증가시킨다.
프로세서들 (1, 2) 양자가 에러가 없다고 테스트가 나타내면, 도 1 에서의 상태가 다시 취해진다. 양자의 프로세서들이 결함이 있으면, 시스템이 스위치 오프된다.
도 1 및 도 2 에 나타낸 절차는 특히, 리던던트하게 설계되지 않은 주변장치 유닛들에서 이점이 있다.
도 1 및 도 2 에 나타낸 아키텍쳐는 주변장치 모듈들의 2개의 그룹들 A 및 B 로의 분할을 포함한다. 각각의 그룹은 적어도 하나의 프로세서 (1, 2), 버스 전환 스위치 (버스 매트릭스, 버스 크로스바 (crossbar)) (여기에 미도시) 및 구동될 주변장치 모듈들 (95, 96) 을 포함한다. 메모리 모듈들은 하나의 그룹에 또는 그룹들 양자에 구현될 수도 있다. 측면 (side) A 는 프로세서 (1) (프로세서 A) 에 의해 실제로 (즉, 물리적으로) 항상 구동된다. 측면 B 는 프로세서 (2) (프로세서 B) 에 의해 실제로 항상 구동된다. 주변장치 모듈들 (95) 로부터 데이터가 멀티플렉서들 (91, 92) 을 통해서 횡단하여 측면 B 로 전달될 수 있다. 프로세서 (1) 은 유사하게 주변장치 모듈들 (96) 로부터 데이터를 판독할 수도 있다.
도 3 은 본원에서 주변장치 모듈들로서 지칭되는, 주변장치 유닛 (22) 이 2개의 프로세서들 (1 및 2) 에 의해 리던던트하게 구동되며, 2개의 프로세서들의 오직 하나가 미리 정의된 시간에 유닛 (22) 을 실제로 구동하는 실시형태를 나타낸다. 이것은 멀티플렉서 (21) 를 통해서 달성된다. 공통 내부 주변장치 유닛, 예를 들어, 메모리 (5) 일 수도 있는 추가 주변장치 유닛 (5) 이 2개의 프로세서들 (1, 2) 에 멀티플렉서 (20) 를 경유해서 접속된다. 프로세서들 (1, 2) 자신들은 멀티플렉서들 (20, 21) 에 버스 매트릭스 (3, 4) 를 통해서 각각 접속된다. 또한, 이 실시형태에서는, 각각의 비교 유닛들 (비교기들) 을 가진 유닛에 존재하는 멀티플렉서들 (20, 21) 은 제어기를 이용가능하게 유지하기 위해 에러의 발생시 적당한 방법으로 구성될 수도 있다.
하나 이상의 실시형태들에 따르면, 제어기의 공동으로 사용되는 영역들과 제어기의 개인 리던던트 영역들 사이에 명확한 구분이 존재한다. 개인 구성요소들 또는 유닛들은 각각의 프로세서 (1, 2) 에 할당되며, 오직 상기 프로세서에 의해서만 구동된다. 개인 구성요소들 (도 4 에서 2개의 주변장치 유닛들 (61, 62)) 은 가능한 한 리던던트 개인 영역들의 정확한 대칭성을 시뮬레이션할 수 있도록 하기 위해서, 리던던트인 것이 바람직하다. 재정적 이유들로 인해, 일부 구성요소들, 예를 들어, 프로그램 메모리는 더 정확히 말해서, 공동으로 사용되는 영역에, 오직 한 번만 구현될 수도 있다. 락스텝 모드에서, 2개의 프로세서들 (1, 2) 은 동기적으로 동작한다. 공동으로 사용되는 구성요소들 또는 주변장치 유닛들의 실제 구동은 2개의 리던던트 프로세서들 중 임의의 것에 맡겨질 수 있으며, 이는 특정의 시간에 하나의 프로세서에 의해서만 실제로 실행되는 반면, 다른 하나의 프로세서는 락스텝 모드로 인해 적당한 시기에 모든 데이터를 수신한다.
락스텝 에러가 검출된 후, 각각의 프로세서 (1, 2) 는 시간 간격 T1 동안 그 할당된 개인 영역에서 가능한 한 활성을 유지하도록 의도되며, 아키텍쳐 외부의 영향들에 의해 임의의 안전-관련 기능을 실행하도록 의도되지 않는다. 즉, 특히, 외부 영향을 받는 외부 주변장치 유닛들 또는 구성요소들의 구동이 인터럽트된다.
비-리던던트 구성요소들, 예를 들어, 프로그램 메모리에의 필수 액세스를 위해, 2개의 리던던트 프로세서들 (1, 2) 에 대한 멀티플렉스 모드가 시간 간격 T1 에서 이루어질 수 있다. 각각의 락스텝 에러가 프로그램 시퀀스에서 인터럽트를 트리거한다. 인터럽트 루틴에서, 프로세서들 (1, 2) 은 동일한 테스트 프로그램들을 서로 다르게 실행하여, 자율적인 하드웨어 모니터링 모듈, 도면에서, 복구 제어 유닛 (44) 에 의한 후속 체킹을 위해 그 테스트 결과들을 저장할 것이다.
일부 테스트 프로그램들은 에러 상황 (error context) 으로부터 유래될 수 있다. 예를 들어, 발생한 에러는 분류되어 에러 유형에 할당되며, 이 할당이 각각의 테스트 프로그램 또는 프로그램들을 선택하는데 사용된다.
각각의 프로세서는 반발 (rebound) 없이 부드럽게 인터럽트의 실행을 빠져 나가도록 의도된다. 그 배경은, 테스트 프로그램이 인터럽트에 의해 시작되었으며, 테스트 프로그램이 종료한 후, 프로세서들 (1, 2) 이 일반적으로 인터럽트로 인해 인터럽트되었던 제어 프로그램을 다시 계속하기를 원한다는 것이다. 이것이 방지되도록 의도되며, 대신, 프로세서들 (1, 2) 은 휴지 상태로 변경되도록 의도된다. 또한, 이것이 일어나든 아니든 테스트의 일부이다.
각각의 프로세서는 그후에 그의 상태 피쳐들, 예를 들어, 자율적인 하드웨어 모니터링 모듈 (복구 제어 유닛 (44)) 에 의해 판독될 수 있는 레지스터에, 저장하도록 의도된다. 기간은 자율적인 하드웨어 모니터링 모듈의 타이머를 이용하여 측정된다.
이 불확실한 시간 (외부 락아웃 (outside lockout) 모드) 이후, 리던던트 프로세서들은 기간 T2 동안 휴지 모드 (휴지 상태) 를 갖도록 의도된다. 프로세서가 기간 T2 에서 구성요소, 예를 들어 메모리 모듈 또는 주변장치 모듈에 액세스하면, 복구 제어 유닛 (44) 에 의한 복구 프로세스로부터 자동적으로 배제된다. 시간 윈도우 T2 이후, 복구 제어 유닛 (44) 은 2개의 프로세서들 (1, 2) 의 테스트 결과들을 하드웨어에 프로그래밍된 값들과 비교한다. 프로세서의 테스트 결과들이 미리 정의된 값들에 대응하지 않으면, 대응하는 프로세서는 실행하는 동기화 시도 동안 더 이상 고려되지 않는다. 따라서, 프로세서들 (1, 2) 의 저장된 상태 피쳐들은 또한 복구에 적합해야 한다. 결과들의 긍정 평가의 경우에, 복구 제어 유닛 (44) 은 인터럽트에 의해 락스텝 모드로의 복귀를 유발할 것이다. 오직 하나의 프로세서만이 모든 테스트들을 성공적으로 실행하였으면, 그에 할당된 주변장치 모듈들 및 모든 공동으로 사용되는 구성요소들을 구동할 것이다.
이 비상 모드는 시스템의 가용성을 증대시켜, 감소된 안전 레벨로 실행시킨다.
도 4 는 도 3 에서의 실시형태에 기초한 추가 실시형태를 나타낸다. 제어 장치의 아키텍쳐는 영역 A 및 영역 B 로 지칭되는 2개의 개인 영역들 (30 및 31), 및 공동 영역 (40) 으로 분할된다. 개인 영역들은 물리적으로 리던던트 모듈들 또는 주변장치 유닛들 및 구성요소들을 포함한다. 하드웨어 모듈의 형태인 복구 제어 유닛 (44) 은 동기화를 신뢰성 있게 복구하기 위해 사용된다. 락스텝 에러가 발생하면, 복구 제어 유닛 (44) 은 안전-관련 주변장치 모듈들 또는 유닛들에의 모든 액세스를 차단할 것이다. 이들 유닛들은 특히, 공통 주변장치들 (72), 및 일 예로서, 리던던트하게 존재하는 주변장치 유닛들 (61 및 63) 이다. 이들은 각각의 주변장치 브릿지들 (60, 71 및 62) 을 통해서 접속된다.
락스텝 에러는 프로그램 시퀀스에서 인터럽트를 트리거한다. 인터럽트 루틴의 다음의 실행에서, 각각의 프로세서 (1, 2) 는 오직, 프로세서에 할당되며 임의의 안전-관련 부분적 기능들을 실행하지 않는 개인 영역에 위치된 모듈들에 할당할 수 있다. 게다가, 비-안전-관련 구성요소들 (41, 42) 로의 액세스는 멀티플렉스 모드에서 이루어질 수 있다. 이런 구성요소들 (41, 42) 은 예를 들어, 공통 프로그램 도메인 (42) 및 공통 RAM 도메인이다. 구성요소 (42) 는 멀티플렉서, 제어기 및 비교기, 및 실제 프로그램 메모리 (51) 를 포함하는 모듈 (50) 을 갖는다. 구성요소 (41) 는 멀티플렉서, 제어기 및 비교기, 및 여기서는 RAM 으로 구현되는 메모리 (52) 를 포함하는 모듈 (53) 을 갖는다.
개인 주변장치 영역에서, 각각의 경우에, 작은 어드레스 공간이 적당한 프로세서의 테스트 목적들을 위해 예약된다. 아키텍쳐의, 특히, 프로세서들의 무결성을 체크하기 위해 인터럽트 루틴이 사용된다. 인터럽트 실행의 말기에, 프로세서들은 계산된 결과들을 테스트 목적들을 위해 예약된 어드레스 영역에 저장하도록 의도된다. 정확한 결과들이 복구 제어 유닛 (44) 에 미리 저장된다. 인터럽트 루틴은 테스트 프로그램들로 이루어지며, 각각의 테스트 프로그램은 특정의 시간 간격 내에 정확한 결과를 제공하도록 의도된다. 미리 정의된 기간 이후, 복구 제어 유닛 (44) 은 프로세서들에 의해 저장된 결과들의 정확성을 체크한다. 락스텝 모드의 복구는 복구 제어 유닛 (44) 에 의해 체크되는 모든 결과들이 정확하다고 가정한다. 그렇지 않으면, 오직, 정확한 결과들을 갖는 프로세서만이 실행하는 애플리케이션에 대해 활성으로 계속 유지될 것이다.
인터럽트 루틴이 락스텝 모드에서 실행하지 않기 때문에, 모듈 (50) 은 프로세서들 (1, 2) 이 멀티플렉스 모드에서 프로그램 메모리 (51) 에 액세스할 수 있는 방법으로 구성된다.
도 5 는 도 1 및 도 2 의 확장으로서의 실시형태를 나타내었다. 이 경우, 복구 제어 유닛 (44) 은 도 4 에서와 유사한 방법으로 동작한다. 프로세서 (1, 2) 가 락스텝 모드의 복구를 위해 임의의 정확한 결과들을 제공하지 않으면, 복구 제어 유닛 (44) 은 여기서 멀티플렉서들 및 비교기들을 형성하는, 대응하는 주변장치 제어기들 (91 또는 92) 을, 그들 아래의 주변장치 모듈들 또는 유닛들 (95, 96) 이 다른 하나의 프로세서에 의해 구동되는 방법으로 구성할 것이다.
또한, 도 5 에서의 아키텍쳐는 2개의 리던던트 RAM 모듈들 (80, 81) 을 갖는다. 락스텝 에러가 RAM 에서의 에러에 의해 유발되었으면, 결함 있는 RAM 어드레스가 저장된다. 이 어드레스가 인터럽트 루틴에서 체크된다. RAM 에러가 정정될 수 없으면, 복구 제어 유닛 (44) 은 영향을 받은 측면 A 또는 B (즉, 프로세서 및 RAM) 를 능동 구동에 다시 통합하지 않을 것이다. 그후, 복구 제어 유닛 (44) 은 현재 결함이 있는 프로세서 또는 RAM 에 의해 이전에 구동되었던 주변장치 모듈들이 다른 하나의 측면 상의 프로세스에 의해 이제 구동되는 것을 보장할 것이다.
도 6 은 제어 프로그램의 시퀀스를 개략적으로 나타낸다. 동기화 에러가 발생한 후, 각각의 프로세서들에 의한 프로그램 실행 (300, 500) 이 인터럽트 (LOLI, Lockstep Loss Interrupt) 에 의해 인터럽트되며 각각의 상태 (초기 콘텐츠) 가 321, 521 에서 저장된다. 인터럽트는 여기서 하드웨어로서 지칭되는 복구 제어 유닛의 활성화를 동시에 초래한다.
복구 제어 유닛은 타이머 (400) 를 시작한다. 그후, 프로세서들은 단계 322, 522 에서, 복구 제어 유닛에 의해 미리 정의된 테스트들을 실행하며, 이때, 테스트들이 종료된 후, 323, 523 로의 인터럽트 없는 복귀가 강제적으로 초래된다 (RFI, Return From Interrupt). 그후, 프로세서들이 휴지 상태로 변경하도록 의도된다.
복구 제어 유닛은, 테스트들이 기간 T1 내에 프로세싱되었는지 여부 (325, 525) 및 프로세서들이 휴지 상태 (401) 로 변경되었는지 여부를 체크한다. 미리 정의된 기간 T2 후, 복구 제어 유닛은 402, 326, 526 에서, 프로세서들이 여전히 휴지 상태에 있는지 여부를 체크한다.
그후, 테스트 결과들이 체크된다. 복구 조건들 (404) 은 테스트 결과들이 에러-없다는 것, 각각의 프로세서가 기간 T1 의 만료에 의해 휴지 상태로 변경하였다는 것, 그리고, 프로세서가 기간 T2 의 만료 이후에 여전히 휴지 상태에 있다는 것이다. 이것이 양자의 프로세서들에 대해 사실이면, 복구 인터럽트 (RECOI) 가 프로세서들 양자에 대해, 아니면, 단지 에러-없는 프로세서에 대해서만 트리거되며, 초기 상태가 복구된다 (341, 541). 후자의 경우, 복구 제어 유닛이 위에서 설명한 바와 같이, 제어 장치를 재구성한다. 이것에 이어서, 프로그램의 속행이 뒤따른다.
도 7 은 2개의 프로세서들 (1 및 2) 를 가진 종래의 아키텍쳐를 나타내며, 프로세서 (2) 는 프로세서 (1) 을 모니터링하는데 사용된다. 주변장치 모듈들의 전체 구동 및 모든 메모리 액세스 동작들은 프로세서 (1) 를 경유해서 일어난다. 이 아키텍쳐는 동기화의 손실에 기인하는 에러들 (락스텝 고장들) 에 대처하는데는 적합하지 않다.
도 8 은 주변장치 모듈들의 2개의 그룹들 A 및 B 로의 분할을 가진 종래의 아키텍쳐를 나타낸다. 각각의 그룹은 적어도 하나의 프로세서 (1, 2), 버스 전환 스위치 (버스 매트릭스, 버스 크로스바) (3, 4) 및 주변장치 모듈들 (6, 7) 을 포함한다. 메모리 모듈들 (5) 은 하나의 그룹에 또는 그룹들 양자에 구현될 수 있으며 바이패스 모듈 (11) 에 의해 구동될 수 있다. 측면 A 는 프로세서 (1) 에 의해 실제로 (즉, 물리적으로) 항상 구동된다. 측면 B 는 프로세서 (2) 에 의해 실제로 항상 구동된다. 주변장치 모듈들 (6) 으로부터의 데이터는 바이패스 모듈 (10) 및 데이터 멀티플렉서 (12) 를 통해서 횡단하여 측면 B 로 전달될 수 있다. 프로세서 (1) 은 주변장치 모듈들 (6) 로부터 (바이패스 모듈 (9) 및 데이터 멀티플렉서 (13) 를 통해서) 유사한 방법으로 데이터를 판독할 수 있다. 프로세서가 다른 하나의 측면으로부터 주변장치 데이터를 판독할 수 있는 이 메커니즘은 2개의 프로세서들 (1 및 2) 이 서로에 대해 동기적으로 (락스텝으로) 동작하는 한에서만 작용한다. 비교기 (8) 에 의해 모니터링이 실행된다. 예를 들어, 프로세서 (1) 가 동작하지 않으면, 전체 측면 A (즉, 이 측면 상의 주변장치 모듈들 및 메모리와 함께) 이 더 이상 구동될 수 없다. 이는 높은 레벨의 가용성의 부족한 지원을 초래한다. 2개의 프로세서들이 동기적으로 더 이상 동작하지 않으면, 오직 리셋될 수 있다. 많은 안전-관련 애플리케이션들에 있어, 프로세서들의 리셋은 동기화 손실의 이유가 명확히 식별될 때까지 허용되지 않는다.
2개의-프로세서 제어 디바이스들이 도 1 내지 도 8 을 참조하여 설명되었다. 아래에서는, 복수의 프로세서들 또는 프로세서 코어들을 갖는 제어 디바이스들이 제어 컴퓨터 시스템들을 이용하여 설명된다. 그러나, 프로세서들 또는 프로세서 코어들의 개수는 구체적으로 언급된 개수에 한정되기 보다는, 요구 사항들에 따라서 임의적일 수도 있다.
도 9 는 제어 컴퓨터 시스템 (제어 디바이스) 을 나타낸다. 상기 시스템은 2개의 프로세서 쌍들 (1001 및 1002) (또는 코어들 (1A 및 1B)) 및 (1003 및 1004) (또는 코어들 (2A 및 2B)), 2개의 비교 유닛들 (1011 및 1012), 스위칭 매트릭스 (1013) (또한, 스위칭 엘리먼트로도 지칭됨), 메모리들 (1020 및 1021), 및 복수의 주변장치 유닛들 (1030, 1031, ...1038) 이 접속되는 주변장치 브릿지 (1022) 를 포함한다. 각각의 프로세서 쌍은 2개의 별개의 프로세서들을 포함할 수도 있거나 또는 2개의 코어들을 갖는 프로세서일 수도 있다. 또한, 추가 실시형태들에서, 프로세서들 또는 코어들의 개수는 원하는 바에 따라, 상이할 수도 있다. 예를 들어, 서로에 대해 각각 2개의 리던던트 코어들을 각각 갖는 3개 이상의 프로세서들을 사용하는 것이 가능하다. 원칙적으로, 그러나, 3개의 프로세서들이 또한 리던던트 그룹을 형성하도록 결합될 수도 있으며, 제어 컴퓨터 시스템은 이런 그룹들의 2개, 3개 이상을 가질 수 있다.
제 1 프로세서 쌍에서, 프로세서 (1001) (또는 코어 (1A)) 는 메모리들 및 주변장치 유닛들과 같은 상이한 리소스들에 실제로 액세스한다. 비교 유닛 (1011) 은 프로세서들 (1001 및 1002) 로부터의 출력 데이터를 비교하여, 발생하는 데이터를 양자의 프로세서들로 전달하며, 모니터링 프로세서 (1002) 는 메모리들 및 주변장치들로의 액세스를 행하지 않는다. 양자의 프로세서들 (코어들) (1001 및 1002) 은 동일한 구성을 가지며, 동기적으로 또는 락스텝 모드로 동작하며, 그 결과, 비교 유닛 (1011) 은 에러들이 없을 때 동일한 출력 데이터를 각각 수신한다. 프로세서 쌍 (1003 및 1004) 은 대응하는 구성을 가지며; 프로세서 (1003) 는 메모리들 및 주변장치들에 실제로 액세스하고, 비교 유닛 (1012) 은 또한 도래하는 데이터를 모니터링 프로세서 (1004) 로 포워딩한다. 스위칭 매트릭스 (1013) 는 프로세서들이 메모리들 또는 주변장치 유닛들에 액세스할 수 있게 한다. 주변장치 유닛들은 중앙 주변장치 브릿지 (1022) 를 통해서 매번 액세스된다. 따라서, 에러들이 없을 때, 제어 컴퓨터 시스템은 2개의 독립적인 프로세서들 (1001 및 1003) (프로세서 코어들 (1A 및 2A)) 을 제공한다.
도 10 은 본 발명에 따른 제어 컴퓨터 시스템의 예시적인 실시형태를 나타낸다. 도 9 에 나타낸 제어 컴퓨터 시스템과 유사하게, 상기 시스템은 2개의 프로세서 쌍들 (1001 및 1002) 및 (1003 및 1004), 2개의 비교 유닛들 (1011 및 1012), 스위칭 매트릭스 (1013), 메모리들 (1020 및 1021) 및 복수의 주변장치 유닛들 (1030, 1031, ...1038) 이 접속되는 주변장치 브릿지 (1022) 을 포함한다. 게다가, 본 발명에 따른 제어 컴퓨터 시스템은 비교 유닛들 (1011, 1012) 로부터 신호들을 수신하는 에러-처리 유닛 (복구 유닛) (1080) 을 갖는다. 에러-처리 유닛 (1080) 은 개개의 프로세서 (1001, 1002, 1003, 1004) (또는 코어 (1A, 1B, 2A, 2B)) 또는 프로세서 쌍에 의한 메모리들 및/또는 주변장치 유닛들로의 액세스를 방지하기 위해, 스위칭 매트릭스 (1013) 및 주변장치 브릿지 (1022) 를 구동할 수 있다. 본 발명의 바람직한 일 실시형태에서, 스위칭 매트릭스 (1013) 은 액세스를 방지할 뿐만 아니라 로그 (log) 할 수 있는 모니터링 유닛 (1014) 을 포함한다. 비교 유닛들 (1011, 1012) 로부터의 신호들은 에러-처리 유닛 (1080) 으로 바로 송신되고 스위칭 매트릭스 (1013) 을 통과하지 않는 것이 바람직하다. 복구 제어 유닛과 함께 위에서 추가로 이미 설명한 바와 같이, 에러-처리 유닛 (1080) 은 에러의 발생 후에 스위칭 매트릭스 (1013) 또는 주변장치 브릿지 (1022) 를 적당한 방법으로 재구성하도록 셋업된다.
예를 들어, 프로세서들 (1001 및 1002) (또는 제 1 프로세서 쌍의 코어들 (1A 및 1B)) 사이에, 비교 에러가 발생하면, 에러-처리 유닛 (1080) 은 제어 신호들 (1110) 을 스위칭 매트릭스 (1013) 및 주변장치 브릿지 (1022) 로 송신한다. 그러면, 프로세서 쌍 (1001/1002) 에 의한 메모리로의 액세스가 방지되거나 또는 로그되며, 및/또는 주변장치 유닛들로의 액세스가 방지된다. 이것은 예를 들어, 상당한 손상을 초래할 수 있는, 결함 있는 프로세서가 액츄에이터들을 구동하는 것을 방지한다.
즉, 종래의 아키텍쳐가 복구 제어 유닛의 기능을 맡는 모듈 (1080) 에 의해 확장된다. 또한, 이 모듈 (1080) 은 SAM (Safety and Availability Management) 모듈로도 지칭된다. 발생한 에러의 유형에 따라, SAM 모듈 (1080) 은 결함 있는 프로세서가 특정의 주변장치 모듈들 및 RAM 메모리들에 액세스하는 것을 금지시키기 위해, 스위칭 엘리먼트 (스위칭 매트릭스) (1013) 내의 모니터링 유닛 (1014) 을 제어한다. SAM 모듈 (1080) 은 모듈들 (비교 유닛들) (1011 및 1012) 내의 비교기들이 에러를 검출하였는지 여부를 즉시 통지를 받는다. SAM 모듈 (1080) 은 그 에러 신호들을 이용하여, 영향을 받은 프로세서 코어 (1A 또는 2A) (프로세서들 (1001, 1003)) 가 주변장치 모듈들을 통해서 액츄에이터들을 구동할 수 없도록 보장한다. SAM 모듈 (1080) 은 제어 신호들 (1110) 을 이용하여, 스위칭 엘리먼트 (1013) 에서 또는 주변장치 브릿지 (1022) 에서 주변장치 모듈들로의 액세스를 방지할 수 있다.
도 11 은 제어 컴퓨터 시스템을 구동하는 본 발명에 따른 방법의 예시적인 실시형태를 나타낸 것으로, 제어 컴퓨터 시스템의 구성은 도 10 을 이용하여 설명한 구성에 대응한다.
모듈 (비교 유닛) (1011) 내의 비교기가 에러 (1220) 를 검출하면, 프로세서 쌍들 (1A/1B 및 2A/2B) 양자에 대해 인터럽트가 트리거된다. 프로세서 쌍 (1A/1B) 는 작업 (1200) 을 나가서, 인터럽트 루틴의 실행으로 건너뛴다. 단계 1251 에서 프로세서 쌍 (1A/1B) 이 체킹 또는 상태 테스트들을 받기 전에, 단계 1250 에서 정상 모드 동안 컨텍스트 또는 콘텐츠가 저장된다. 질의 (1252) 에서, 프로세서 쌍 (1A/1B) 은 에러가 영구적인지 여부를 체크한다. 프로세서 쌍 (1A/1B) 이 영구 에러를 가지면, 이 쌍은 복구용으로 더 이상 고려되지 않는다. 단계 1254 에서, 에러의 유형이 결정되어, 비휘발성 메모리, 예를 들어, 외부 EPROM에 저장된다. 단계 1255 에서, 일시 에러의 서명 및 시간 스탬프가 저장된다. 동일한 일시 에러가 반복되면, 단계 1255 에서 저장된 데이터가 반복율 (repetition rate) 을 결정하는데 도움이 되도록 의도된다. 이런 반복율을 추가적인 복구 시도들에 대한 결정 기준으로 사용될 수 있다. 단계 1256 에서, 프로세서 쌍 (1A/1B) 은 SAM 모듈 (1080) 로부터, 복구 시도가 일어나도록 의도되는지 여부에 관련한 신호를 대기한다.
인터럽트 신호가 트리거된 후, 프로세서 쌍 (2A/2B) 은, 에러-없는 프로세서 쌍과 같이, 비상 모드에 진입하도록 의도된다. 프로세서 쌍 (2A/2B) 가 가장 먼저 1300 에서 현재 실행되고 있는 작업을 나가고, 그 정상 모드 동안 컨텍스트를 저장한다 (단계 1350). 단계 1351 에서, 에러-기반의 체킹 테스트들이 실행된다. 단계 1352 에서, 비상 모드에 요구되는 오직 프로그램 부분들 (필수 소프트웨어 모듈들) 이 실행된다. 이들 필수의 프로그램 부분들은 상이한 프로세서 쌍들에 최초에 할당되었던 선택된 작업들로 이루어진다. 비상 모드 동안, 프로세서 쌍 (2A/2B) 이 복구 시도에 대한 신호가 해제되었는지 여부를 영구적으로 체크한다. 단계 1353 에서 정상 모드의 복구가 해제되면, 단계 1354 에서 프로세서 쌍 (2A/2B) 은 그 복구 시도에 대한 해제를 대기한다.
인터럽트 신호가 트리거된 후, 단계 1401 에서 SAM 모듈 (1080) 은 결함 있는 프로세서 쌍 (1A/1B) 에 의한 안전-관련 주변장치 모듈들에의 모든 액세스를 차단한다. 이 단계는 액츄에이터들의 임의의 안전하지 않은 구동을 회피하도록 의도된다. 정상 모드의 복구가 지원되도록 의도되지 않으면, SAM 모듈 (1080) 은 단계 1402 에서 머무르며, 구동이 오직 프로세서 쌍 (2A/2B) 에 의해서만 달성된다. 그렇지 않으면, 단계 1403 에서 SAM 모듈 (1080) 은 복구 시도에 요구되는 조건들로 설정되며, 그 조건들은 고장난 프로세서 쌍에 의해 제공되도록 의도된다. 단계 1405 에서, 이들 조건들이 체크된다. 복구 조건들이 만족되면, SAM 모듈 (1080) 은 모든 프로세서 쌍들로 복구 시도를 개시한다. 따라서, 성공적인 복구 이후, 제어 컴퓨터 시스템의 전체 성능이 다시 이용가능하며 비-안전-필수 편의 기능들이 또한 다시 제한 없이 제공된다.
복구, 특히 체킹은, 도 6 에 나타낸 시퀀스에 따라서 실행된다.
일 실시형태에 따르면, 제어 컴퓨터 시스템의 구동 소프트웨어는 발생할 수도 있는 에러들 및 에러의 처리에 적당한 방법으로 준비된다. 구동 소프트웨어는 적어도 2개의 유형들의 소프트웨어 모듈들, 즉, 한편으로는, 필수 소프트웨어 모듈들, 및 다른 한편으로는, 옵션적인 소프트웨어 모듈들을 포함한다. 모듈들은 정상 모드에서 양자의 프로세서 쌍들 사이에 분할된다. 고장 (fault) 의 경우, 필수 소프트웨어 모듈들 (또한, 비상 모듈들로도 지칭됨) 이 나머지 프로세서 쌍에 의해 실행되지만, 옵션적인 소프트웨어 모듈들은 실행되지 않거나 또는 오직 제한된 범위로 실행된다. 따라서, 에러-없는 프로세서 쌍이 결함 있는 프로세서 쌍의 필수 소프트웨어 모듈들을 수용하는 것이 가능하다. 따라서, 주변장치들을 구동하는데 절대적으로 필수적인 소프트웨어 모듈들은 리던던시의 손실을 초래함이 없이 계속 실행될 수 있다. 단지 옵션적인 소프트웨어 모듈들만이 실행되지 않거나 또는 부분적으로만 실행된다. 그러나, 이것이 안전을 제한하지 않는다.
도 12 에 나타낸 바와 같이, 2개의 프로세서 쌍들을 갖는 제어 컴퓨터 시스템의 추가적인 아키텍쳐는 2개의 리던던트 스위칭 엘리먼트들 (또는 스위칭 매트릭스들) (1013, 1063) 을 갖는다. 프로세서 코어들 (1A 및 2A) (프로세서들 (1001, 1003)) 은 스위칭 엘리먼트 (1013) 을 통해서 메모리 모듈들 (1020 및 1021) 에 액세스할 수 있다. 프로세서 코어들 (1B 및 2B) (프로세서들 (1002, 1004)) 은 스위칭 엘리먼트 (1063) 를 통해서 메모리 모듈들 (1020 및 1071) 에 액세스한다. 메모리 모듈 (1021) 은 오직 프로세서 코어들 (1A 및 2A) 에 의해서만 사용될 수 있는 반면, 메모리 모듈 (1071) 은 오직 프로세서 코어들 (1B 및 2B) 에만 이용될 수 있다. 따라서, 프로세서 코어들 (1A 및 2A), 스위칭 엘리먼트 (1013) 및 메모리 모듈 (1021) 으로 이루어지는 블록은 프로세서 코어들 (1B 및 2B), 스위칭 엘리먼트 (1063) 및 메모리 모듈 (1071) 을 포함하는 블록에 대해 완전히 대칭적 (리던던트) 이다. 메모리 모듈 (1020) 은 모든 프로세서들에 의해 판독될 수 있다. 정상 모드에서, 프로세서들 (1A 및 1B) 은 서로에 대해 동기적으로 실행하며, 그 결과, 하나의 프로세서가 다른 하나에 대한 모니터링 메커니즘을 형성한다. 또한, 프로세서 코어들 (2A 및 2B) 은 동기적으로 대응하여 동작하며 서로 모니터링한다. 모니터링은 모듈들 (비교 유닛들) (1091 및 1090) 에 구현되는 비교기들을 이용하여 달성된다. 비교 유닛 (1091) 은 리던던트 메모리 모듈들 (1021 및 1071) 에의 모든 액세스를 모니터링하고, 비교 유닛 (1090) 은 주변장치들에의 모든 액세스를 모니터링한다. 이 아키텍쳐는 모든 주변장치 모듈들이 리던던트 방식으로 구현될 수 있다. 예를 들어, 주변장치 모듈들 (1040, 1041, ...1048) 은 주변장치 모듈들 (1030, 1031, ...1038) 에 대해 리던던트할 수도 있다. 이 경우, 비교 유닛 (1090) 은 주변장치들로의 액세스를 위한 비교기들을 단지 포함할 수도 있다. 재정적 이유들로, 많은 주변장치 모듈들은 리던던트 방법으로 종종 구현되지 않는다. 이 경우, 비교 유닛 (1090) 은 주변장치 비교기들에 더해, 데이터를 비-리던던트 주변장치 모듈들로부터 리던던트 스위칭 엘리먼트들 (1013 및 1063) 로 동기적 방법으로 포워딩하는 추가적인 회로들을 포함할 것이다.
도 13 은 본 발명에 따른 제어 컴퓨터 시스템의 또 다른 예시적인 실시형태를 나타낸다. 이 경우, 도 12 에 도시된 아키텍쳐는 제어 컴퓨터 시스템에 의해 제공되는 전자적인 조정 (regulating) 알고리즘들의 더 나은 가용성을 보장하기 위한 컨셉들을 지원하기 위해 확장되며, 그 컨셉들은 도 10 및 도 11 을 이용하여 설명되었다. 멀티플렉서들 (1171, 1172, 1173 및 1174) 은 각각의 프로세서 코어 (1A, 2A, 1B, 2B) 와 대응하는 스위칭 엘리먼트 (1013, 1063) 사이에 위치되며, 그 결과, 프로세서 쌍의 각각의 제 2 코어가 데이터에 액세스하여 프로세서 쌍의 제 1 코어의 버스들을 어드레스할 수 있으며, 반대로, 쌍에서 제 1 프로세서가 또한 데이터에 액세스하여 제 2 프로세서의 버스들을 어드레스할 수 있다. 프로세서 코어 (1A) 가 고장나면, 멀티플렉서 (1171) 는, 예를 들어, 리던던트 프로세서 코어 (1B) 로부터 스위칭 엘리먼트 (1013) 에 데이터가 공급되는 것을 보장한다. 멀티플렉서들 (1171, 1172, 1173 및 1174) 은 모든 에러 신호들 (1161, 1162) 이 비교기들에 의해 모니터링되는 SAM 모듈 (1080) 에서 제어된다. 락스텝 에러가 검출된 후, SAM 모듈 (1080) 은 대응하는 제어 신호들 (1160) 을 스위칭 엘리먼트들 (1013 및 1014) 에서의 모니터링 유닛들 (1014 및 1064) 로 및 주변장치 브릿지들 (1022 및 1072) 로 포워딩함으로써 안전-관련 구성요소들로의 액세스를 차단한다. 에러 분석 이후 모드의 복구가 원칙적으로, 필요할 경우 필요한 적응들 (adaptations) 과 함께, 도 11, 도 18 및/또는 도 19 에 도시된 방식들에 따라서, 달성된다.
SAM 모듈 (1080) (복구 제어 유닛) 은 추가적인 액세스하는 주변장치들로부터 결함 있는 프로세서들 또는 그 밖의 다른 구성요소들을 배제하기 위해, 스위칭 엘리먼트들 (1013, 1063) 및 멀티플렉서들 (1171, 1172, 1173 및 1174) 을 적당한 방식으로 구성한다. 이것은 또한 다른 리던던트하게 설계된 구성요소들, 예를 들어 메모리 모듈들을 이용하여 달성된다. 이 경우, 역시, 결함 있는 메모리 모듈은 스위칭 엘리먼트 (1013, 1063) 및 멀티플렉서 (1171, 1172, 1173 및 1174) 를 재구성함으로써 배제된다.
도 14, 도 15 및 도 16 은 각각 도 13 의 아키텍쳐에서 본 발명에 따른 제어 컴퓨터 시스템을 나타내며, 이 경우, 하나 이상의 영구적으로 결함 있는 프로세서들이 각각의 경우에 스위치 오프되어 있다. 나머지 프로세서 코어(들) 은 각각 주변장치들을 구동하며, 이 경우, 사용자는 필요할 경우 경고를 받고 안전-필수 기능들은 오직 기능적인 모니터링 프로세서를 여전히 가진 프로세서들 상에서만 수행되는 것이 바람직하며, 즉, 완전한 프로세서 쌍이 여전히 동작한다. 모니터링 프로세서 없는 프로세서들은 오직 비-안전-필수 기능들만을 수행하는 것이 바람직하다. 고장난 프로세서들 (코어들) 은 점선들을 이용하여 도시되어 있다.
도 14 는 예를 들어, 단지 프로세서 코어 (2B) 의 고장을 나타낸다. 프로세서 코어들 (1A 및 1B) 은 리던던트하며 프로세서 쌍 (2A/2B) 에 의해 최초에 실행되었던 작업들을 포함한 모든 안전-필수 작업들 (필수 소프트웨어 모듈들) 을 실행한다. 프로세서 코어 (2A) 는 프로세서 쌍 (1A/1B) 에 의해 최초에 실행된 옵션의 소프트웨어 모듈들을 포함한 비-안전-관련 작업들 (옵션적인 소프트웨어 모듈들) 을 실행할 수도 있다. 따라서, 모든 안전-관련 작업들이 아직 남아 있는 리던던트 프로세서 쌍 (1A/1B) 에 전달되었다. 이 접근방법의 이점은 정상 모드 (모든 프로세서들이 에러-없음) 에서 임의의 기능을 실행하지 않는 어떤 추가적인 예비 프로세서 쌍들도, 비상 모드 (프로세서 쌍 또는 프로세서 쌍의 개개의 코어의 고장) 동안 제공하지 않아도 된다는 점이다. 에러가 발생할 때 오직 옵션적인 소프트웨어 모듈들의 실행만이 제한된다. 그러나, 이것이 안전에 관련되지는 않는다.
도 17 은 일 실시형태에 따른, 확장된 이중 리던던시로 프로세서 쌍들을 갖는 제어 컴퓨터 시스템의 추가적인 아키텍쳐를 나타낸다.
도 9 에 도시된 아키텍쳐와는 반대로, 프로세서들 (1001, 1002, 1003, 1004) 뿐만 아니라, 다른 구성요소들도 리던던트하다. 예를 들어, 버스 매트릭스들 (스위칭 엘리먼트들) (1013 및 1063) 및 데이터 메모리들 (1021 및 1071) 이 리던던트하다. 이 실시형태에서, 주변장치 브릿지들 (1022 및 1072) 사이의 접속들은 데이터가 비-리던던트 주변장치 구성요소들로부터 프로세서 코어들의 리던던트 쌍들 (1A/1B 및/또는 2A/2B) 로 동기적 방법으로 송신되는 것을 보장한다.
도 17 에 나타낸 아키텍쳐는 SAM 모듈 (1080) 및 스위칭 엘리먼트들 (1171, 1172, 1173 및 1174) 에 의해 확장된다. 에러의 유형들에 따라서, SAM 모듈 (1080) 은 결함 있는 프로세서 쌍 (1A/1B, 2A/2B) 또는 오직 결함 있는 프로세서 (1A, 1B, 2A, 2B) 만이 특정의 주변장치 모듈들 및 RAM 메모리들에 액세스하는 것을 금지시키기 위해, 버스 매트릭스들 또는 스위칭 엘리먼트들 (1013 및 1063) 뿐만 아니라, 스위칭 엘리먼트들 (1171, 1172, 1173 및 1174) 내의 모니터링 유닛들 (1014 및 1064) 을 구동할 것이다. SAM 모듈 (1080) 은 모듈들 (비교 유닛들) (1090 및 1091) 내의 비교기들이 에러를 검출하면 즉시 통지를 받는다. SAM 모듈 (1080) 은 그 에러 신호들을 이용하여, 영향을 받은 프로세서 쌍 (1A/1B 또는 2A/2B) 또는 영향을 받은 프로세서 (1A, 1B, 2A 또는 2B) 이 주변장치 모듈들을 통해서 액츄에이터들을 더 이상 구동하지 않도록 보장할 것이다. SAM 모듈 (1080) 은 제어 신호들 (1160) 을 이용하여, 버스 매트릭스들 (1013 및 1063) 에서 또는 주변장치 브릿지들 (1022 및 1072) 에서 주변장치 모듈들로의 액세스를 방지할 수 있다.
도 18 은 일 실시형태에 따른 에러가 검출된 후의 시퀀스의 예시적인 도시를 나타낸다. 도 17 에서 모듈들 (1090 및 1091) 내의 비교기가 에러 (1220) 을 검출하면, 양자의 프로세서 쌍들 (1A/1B 및 2A/2B) 에 대해 인터럽트가 트리거된다.
프로세서들 (1A 및 1B) 은 단계 1200 에서 락스텝 모드를 나가서, 인터럽트 루틴의 실행으로 비동기적인 방법으로 건너뛴다. 프로세서들 (2A 및 2B) 은 또한 단계 1300 에서 락스텝 모드를 나가서, 인터럽트 루틴의 실행으로 비동기적인 방법으로 건너뛴다. 각각의 프로세서는 가장 먼저, 실행하는 애플리케이션에 대해 요구되는 컨텍스트 데이터 또는 콘텐츠 (1250A, 1250B, 1350A, 1350B) 를 구제한다. 양호한 상태의 표시로서, 모든 프로세서들 (1A, 1B, 2A, 2B) 은 SAM 모듈 (1080) 에 의해 검출되어 체크될 수 있는 디지털 서명을 SAM 모듈 (1080) (1250A, 1250B, 1350A, 1350B) 의 레지스터들에 기록할 것이다. 프로세서에 저장된 서명이 부정확하거나 또는 미리 정의된 시간 간격 T1 이후에 존재하지 않으면, 그 프로세서는 복구 프로세스에서 더 이상 고려되지 않는다. 이 경우, SAM 모듈 (1080) 은 모든 스위칭 엘리먼트들 (1014, 1064, 1171, 1172, 1173 및 1174) 을 결함 있는 프로세서에 의한 메모리 모듈들 및 주변장치 모듈들에의 임의의 액세스가 차단되는 방식으로 제어한다. 에러 패턴이 에러의 각각의 유형에 대해서 SAM 모듈 (1080) 에 저장된다. 나머지 프로세서들은 단계 (1251A, 1251B, 1351A 또는 1351B) 에서 추가적인 테스트들을 받는다. 에러 패턴에 따라서, 상이한 테스트들이 소프트웨어 및/또는 하드웨어에서 실행된다. 특히, 심각한 에러들에 대해 및 불분명한 에러 할당의 경우에, 하드웨어 테스트들이, 예를 들어, LBIST (Logic Built-in Self Test) 의 형태로, 사용된다. 단계 (1251A, 1251B, 1351A 및 1351B) 에서의 테스트들의 결과들이 SAM 모듈 (1080) 에 저장된 후, 시간 간격 T2 이후에 평가된다. SAM 모듈 (1080) 은 그 수집한 결과들을 이용하여, 프로세서 또는 프로세서들이 결함이 있는지 여부를 결정하고, 그에 따라, 스위칭 엘리먼트들 (1014, 1064, 1171, 1172, 1173 및 1174) 을 복구 프로세스에서 오직 에러-없는 프로세서들만이 계속 고려되는 방식으로 구성할 것이다. 결함 있는 프로세서들은 액세스가 거부된다.
도 18 에 도시된 절차는 결함 있는 구성요소가 다른 리던던트 모듈들에서 검출되는 방식으로 확장될 수 있다. 기본적인 아이디어는 안전 시스템의 향상된 가용성을 보장할 수 있도록 하기 위해서 기존 아키텍쳐 내 어디서든지 이중 리던던시를 이용하는 것이다. 이것은 예를 들어, 리던던트 메모리들에 적용한다. 2개의 리던던트 메모리 모듈들 중 어느 것이 결함이 있는지를 정확히 결정하기 위해 적당한 테스트들 (1251A, 1251B, 1351A 및 1351B) 이 SAM 모듈 (1080) 에 의해 사용될 수 있다. 리던던트 메모리 모듈들 (1021 또는 1071) 로의 액세스는 스위칭 엘리먼트들 (1014, 1064, 1171, 1172, 1173 및 1174) 의 구성을 이용하여 오직 하나의 메모리만이 유효한 데이터를 실제로 유지하여 발생시키는 방식으로 전환될 수 있다. 도 11 에 나타낸 절차와 유사한 방식으로 연속된 절차가 실행될 수 있다.
도 17 에 도시된 아키텍쳐는 다수의 리던던트 구성요소들 때문에 도 12 에 나타낸 아키텍쳐보다 더 높은 허용 에러의 자유도를 제공한다.
도 19 는 일 실시형태에 따른, 에러가 검출된 후의 시퀀스의 예시적인 도시를 나타낸다. 도 10 에서 모듈 (1011) 내의 비교기가 에러 (1220) 를 검출하면, 양자의 프로세서 쌍들 (1A/1B 및 2A/2B) 에 대해서 인터럽트가 트리거된다. 이 절차는 도 18 에서의 절차와 유사하다. 도 10 에 도시된 아키텍쳐에 있어, 한 쌍에서의 리던던트 프로세서들은 분리될 수 없다. 따라서, SAM 모듈 (1080) 은 오직 어느 프로세서 쌍이 결함이 있는지 여부를 결정할 것이다. 결함 있는 프로세서 쌍에 의한 모든 데이터 액세스는 스위칭 엘리먼트 (1014) 를 적절히 구성함으로써 차단된다. 나머지에 대해서, 실행은 도 11 에 나타낸 실행과 유사한 방식으로 달성된다.
도 20 은 복구 후에 프로세서 코어 (2B) 가 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 21 은 복구 후에 프로세서 코어들 (1B 및 2B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 22 는 복구 후에 프로세서 코어들 (1A, 2A 및 1B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다. 이 경우, 더 이상 임의의 프로세서 리던던시가 존재하지 않는다. 그러나, 위에서 설명한 테스트는, 예를 들어, 도 6, 도 11, 도 18 및 도 19 에서 설명한 절차와 유사한 방식으로, 모든 결함 있는 프로세서들이 정확히 검출되어 주변장치들로의 액세스로부터 배제되도록 보장한다.
도 23 은 복구 이후에 프로세서 코어들 (1A 및 2B) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다.
도 24 는 복구 이후에 데이터 메모리 (21) 이 스위치 오프된, 도 17 의 아키텍쳐를 나타낸다. 이 아키텍쳐는 자체적으로 리던던트 데이터 메모리들 (21 및 71) 을 가지며, 이 경우, 메모리 모듈 (1021) 의 고장 이후에, 고장난 메모리 모듈이 결함 있는 것으로 신뢰성있게 식별되어 배제되었다.
종합하면, 본원에서 설명한 제어 컴퓨터 시스템은 안전-관련 기능들을 향상된 방식으로 제공하며, 결함 있는 구성요소들을 신뢰성 있게 식별하여 배제한다.
일 실시형태는 적어도 2개의 프로세서 쌍들, 에러들을 검출하는 적어도 2개의 비교 유닛들 (비교기들), 적어도 하나의 메모리, 적어도 하나의 주변장치 유닛, 프로세서들에 의한 메모리들 및 주변장치 유닛들로의 액세스를 허용하거나 차단하는, 예를 들어, 스위칭 매트릭스의 형태인, 적어도 하나의 스위칭 엘리먼트를 포함하며, 바람직하게는, 프로세서 또는 프로세서 쌍에 의한 메모리들 및/또는 주변장치 유닛들로의 액세스를 완전히 또는 선택적으로 방지하기 위해, 공통 에러-처리 유닛 (복구 제어 유닛; SAM 모듈) 이 적어도 2개의 비교 유닛들로부터 신호들 수신하고 적어도 하나의 스위칭 매트릭스를 제어하는, 제어 컴퓨터 시스템 (제어 디바이스) 를 제공한다.
일 실시형태에 따르면, 에러가 발생할 때 적어도 하나의 결함 있는 프로세서 쌍에 의한 주변장치 유닛들, 특히 액츄에이터들로의 액세스가 방지된다.
일 실시형태에 따르면, 주변장치 유닛들은 에러-처리 유닛 (복구 제어 유닛; SAM 모듈) 에 의해 제어되는 주변장치 브릿지를 통해서 매번 액세스된다.
일 실시형태에 따르면, 적어도 2개의 비교 유닛들이 프로세서 쌍에서 2개의 프로세서들에 직접 접속된다.
일 실시형태에 따르면, 비교 유닛은 적어도 2개의 별개의 스위칭 매트릭스들을 포함하며, 제 1 스위칭 매트릭스는 제 1 주변장치 브릿지 및 적어도 하나의 제 1 메모리에 접속되지만, 제 2 스위칭 매트릭스는 제 2 주변장치 브릿지 및 적어도 하나의 제 2 메모리에 접속된다.
일 실시형태에 따르면, 프로세서 쌍에서 제 1 프로세서는 제 1 스위칭 매트릭스에 접속되며, 프로세서 쌍에서 제 2 프로세서는 제 2 스위칭 매트릭스에 접속된다.
일 실시형태에 따르면, 제 1 스위칭 매트릭스와 제 1 메모리 사이에 송신된 데이터가 제 2 스위칭 매트릭스와 제 2 메모리 사이에 송신된 데이터와 비교 유닛에 의해 비교되며, 제 1 스위칭 매트릭스와 제 1 주변장치 브릿지 사이에 송신된 데이터는 제 2 스위칭 매트릭스와 제 2 주변장치 브릿지 사이에 송신된 데이터와 비교 유닛에 의해 비교된다.
일 실시형태에 따르면, 멀티플렉서는 프로세서들과 스위칭 매트릭스들 사이에 각각 위치되며, 멀티플렉서들은 프로세서 쌍에서 제 1 프로세서가 제 2 스위칭 매트릭스에 액세스할 수 있고 프로세서 쌍에서 제 2 프로세서가 제 1 스위칭 매트릭스에 액세스할 수 있는 방식으로 접속되자 마자, 그에 따라서, 에러-처리 유닛 (복구 유닛, SAM 모듈) 이 멀티플렉서들을 제어한다.
일 실시형태에 따르면, 적어도 하나의 스위칭 매트릭스는 메모리들 또는 주변장치 유닛들로의 액세스를 차단하거나 또는 외부 또는 내부의, 바람직하게는, 비휘발성의 메모리에 상기 액세스를 로그할 수 있는 모니터링 유닛을 포함한다.
일 실시형태에 따르면, 에러-처리 유닛은 개재된 스위칭 매트릭스 없이 적어도 2개의 비교 유닛들로부터 직접 신호들을 수신한다.
일 실시형태에 따르면, 제어 컴퓨터 시스템은 제 1 및 제 2 휘발성 메모리, 및 비휘발성 메모리를 포함하며, 특히, 하나의 프로세서 쌍은 제 1 휘발성 메모리에 액세스하며 제 2 프로세서 쌍은 제 2 휘발성 메모리에 액세스하고 양자의 프로세서 쌍들은 하나의 비휘발성 메모리에 액세스한다.
일 실시형태에 따르면, 프로세서 쌍에서 제 1 프로세서가 적어도 하나의 스위칭 매트릭스에 직접 접속되며, 즉, 메모리들 및/또는 주변장치 유닛들로의 액세스를 판독하고 기록할 수 있지만, 프로세서 쌍에서 제 2 프로세서는 오직 데이터로의 액세스만을 판독하며, 특히, 프로세서 쌍에서 양자의 프로세서들에 직접 접속된 비교 유닛은 데이터를 그 접속된 프로세서 쌍에서의 제 2 프로세서로 송신한다.
일 실시형태는 적어도 2개의 프로세서 쌍들, 에러들을 검출하는 적어도 2개의 비교 유닛들, 프로세서 또는 프로세서 쌍에 의한 메모리들 및/또는 주변장치들로의 액세스를 허용하거나 또는 차단하는 적어도 하나의 스위칭 매트릭스, 및 적어도 스위칭 매트릭스를 제어할 수 있는 적어도 하나의 에러-처리 유닛을 포함하는 제어 컴퓨터 시스템을 제어하는 방법을 제공하며, 이 방법은 프로세서 쌍들이 에러-없는 모드에서 기능들을 제공하기 위해 상이한 프로그램들을 실행할 수 있으며, 에러가 발생하면, 에러-없는 프로세서 쌍이 결함 있는 프로세서 쌍의 적어도 일부 기능들을 맡는 방식으로 실행된다.
일 실시형태에 따르면, 제어 컴퓨터에 의해 구동되는 장치의 안전에 중요한 기능들이 에러의 발생과 무관하게 실행된다.
일 실시형태에 따르면, 에러가 발생할 때에 비-안전-필수 기능들이 적어도 부분적으로 더 이상 제공되지 않는다.
일 실시형태에 따르면, 결함 있는 프로세서 또는 프로세서 쌍에 의한 주변장치들로의 액세스가 에러가 발생할 때에 차단된다.
일 실시형태에 따르면, 결함 있는 프로세서 쌍은 에러가 발생한 후에 진단 프로그램을 실행한다.
일 실시형태에 따르면, 발생한 에러들이 분류되며, 일시 에러들과 영구 에러들 사이에 적어도 판별이 이루어진다.
일 실시형태에 따르면, 결함 있는 프로세서 쌍은 영구 에러가 발생한 후에 영구적으로 비활성화된다.
일 실시형태에 따르면, 양자의 프로세서 쌍들은 결함 있는 프로세서 쌍이 영구 에러가 검출됨이 없이 진단 프로그램을 통해서 실행할 때 상이한 프로그램들을 다시 실행할 수 있다.
일 실시형태에 따르면, 에러-처리 유닛은 비휘발성 메모리에 에러들의 발생을 로그한다.
일 실시형태에 따르면, 발생한 에러들의 수 및/또는 빈도가 미리 정의된 임계값을 초과하면 프로세서 쌍이 영구적으로 비활성화된다.
일 실시형태에 따르면, 위에서 설명한 제어 컴퓨터 시스템들의 하나는 자동차에, 특히, 브레이크 시스템을 제어하거나 또는 조정하기 위해서 사용될 수 있다.
본 발명은 현재의 경우에서 설명한 예시적인 실시형태들에 한정되기보다는, 적절히 확장 및 변경될 수 있다. 다음의 청구항들은 본 발명을 일반적으로 정의하는 첫번째 구속력 없는 시도이다.

Claims (35)

  1. - 서로에 대해 리던던트 (redundant) 하게 설계된 적어도 2개의 모듈들 (1, 2, 1001, 1002, 1003, 1004, 1021, 1071);
    - 상기 적어도 2개의 리던던트 모듈들 (1, 2, 1001, 1002, 1003, 1004, 1021, 1071) 의 동기화 상태를 모니터링하여 동기화 에러를 검출하는 적어도 하나의 비교 유닛 (20, 21, 91, 92, 1011, 1012);
    - 적어도 하나의 주변장치 유닛 (95, 96, 1022, 1030, 1031, ..., 1038);
    - 상기 적어도 2개의 리던던트 모듈들에 의한 상기 적어도 2개의 리던던트 모듈들로의 액세스 또는 상기 주변장치 유닛 (95, 96, 1022, 1030, 1031, ..., 1038) 으로의 액세스를 허용하거나 또는 차단하도록 셋업된 적어도 하나의 스위칭 매트릭스 (21, 1013, 1063); 및
    - 상기 적어도 2개의 리던던트 모듈들에 의한 상기 적어도 2개의 리던던트 모듈들로의 액세스 또는 상기 주변장치 유닛으로의 액세스를 완전히 또는 선택적으로 방지하기 위해, 상기 적어도 하나의 비교 유닛 (20, 21, 91, 92, 1011, 1012) 로부터 신호들을 수신하여 상기 적어도 하나의 스위칭 매트릭스 (1013, 1063) 를 구동하도록 셋업된 바람직하게 공통인 에러-처리 유닛 (44, 1080) 을 포함하는, 제어 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    - 상기 적어도 2개의 리던던트 모듈들은 제어 프로그램을 동기적으로 실행하는 적어도 2개의 프로세서 유닛들 (1, 2, 1001, 1002, 1003, 1004) 이며;
    - 상기 비교 유닛 (20, 21, 91, 92, 1011, 1012) 은 상기 프로세서 유닛들 (1, 2, 1001, 1002, 1003, 1004) 의 동기화 상태를 모니터링하여 상기 프로세서 유닛들의 동기화 에러를 검출하기 위해 사용되며;
    - 상기 제어 컴퓨터 시스템은 적어도 하나의 메모리 (5, 1020, 1021) 를 포함하며;
    - 상기 적어도 하나의 스위칭 매트릭스 (21, 1013, 1063) 는 상기 프로세서 유닛들에 의한 메모리들 및 상기 하나 이상의 주변장치 유닛들로의 액세스를 허용하거나 또는 차단하도록 셋업되며; 및
    - 상기 에러-처리 유닛 (44, 1080) 은 상기 2개의 프로세서 유닛들 중 하나 또는 양자의 프로세서 유닛들 (1, 2, 1001, 1002, 1003, 1004) 에 의한 메모리들 (5, 1020, 1021) 및/또는 주변장치 유닛들 (95, 96, 1022, 1030, 1031, ..., 1038) 로의 액세스를 완전히 또는 선택적으로 방지하도록 셋업되는, 제어 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    적어도 4개의 프로세서 유닛들을 포함하는, 제어 컴퓨터 시스템.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 프로세서 유닛들은 단일 프로세서들, 프로세서 쌍들의 프로세서들 또는 듀얼-코어 또는 멀티코어 프로세서들의 코어들일 수 있는, 제어 컴퓨터 시스템.
  5. 제 4 항에 있어서,
    적어도 2개의 비교 유닛들 (1011, 1012) 을 가지며,
    상기 에러-처리 유닛 (1080) 은 프로세서 또는 코어 또는 프로세서 쌍에 의한 메모리들 (1020, 1021) 및/또는 주변장치 유닛들 (1022, 1030, 1031, ..., 1038) 로의 액세스를 완전히 또는 선택적으로 방지하기 위해, 상기 적어도 2개의 비교 유닛들 (1011, 1012) 로부터 신호들을 수신하여 상기 적어도 하나의 스위칭 매트릭스 (1013, 1063) 를 구동하도록 셋업되는, 제어 컴퓨터 시스템.
  6. 제 2 항 내지 제 5 항 중 어느 한 항에 있어서,
    에러가 발생할 경우, 상기 에러-처리 유닛은 적어도 하나의 결함 있는 프로세서 쌍 또는 하나의 결함 있는 프로세서 유닛에 의한 주변장치 유닛들 (1022, 1030, 1031, ..., 1038), 특히, 액츄에이터들로의 액세스가 방지되는 방식으로 상기 스위칭 매트릭스를 구동하도록 셋업되는, 제어 컴퓨터 시스템.
  7. 제 2 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 주변장치 유닛들 (1030, 1031, ..., 1038) 은 상기 에러-처리 유닛 (1080) 에 의해 제어되는 적어도 하나의 주변장치 브릿지 (1022) 를 통해서 매번 액세스되는, 제어 컴퓨터 시스템.
  8. 제 5 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 적어도 2개의 비교 유닛들 (1011, 1012) 은 상기 프로세서 유닛들 (1, 2, 1001, 1002, 1003, 1004), 예를 들어, 프로세서 쌍에서의 상기 프로세서들에 직접 접속되는, 제어 컴퓨터 시스템.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 제어 컴퓨터 시스템은 적어도 2개의 별개의 스위칭 매트릭스들 (1013, 1063) 을 포함하며,
    제 1 스위칭 매트릭스 (1013) 는 제 1 주변장치 브릿지 (1022) 및 적어도 하나의 제 1 메모리 (1021) 에 접속되는 한편, 제 2 스위칭 매트릭스 (1063) 는 제 2 주변장치 브릿지 (1072) 및 적어도 하나의 제 2 메모리 (1071) 에 접속되는, 제어 컴퓨터 시스템.
  10. 제 9 항에 있어서,
    프로세서 쌍에서의 제 1 프로세서 (1001, 1003) 는 제 1 스위칭 매트릭스 (1013) 에 접속되며,
    프로세서 쌍에서의 제 2 프로세서 (1002, 1004) 는 제 2 스위칭 매트릭스 (1063) 에 접속되는, 제어 컴퓨터 시스템.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 제 1 스위칭 매트릭스 (1013) 와 상기 제 1 메모리 (1021) 사이에 송신된 데이터는 비교 유닛 (1091) 에 의해 상기 제 2 스위칭 매트릭스 (1063) 과 상기 제 2 메모리 (1071) 사이에 송신된 데이터와 비교되며,
    상기 제 1 스위칭 매트릭스 (1013) 와 상기 제 1 주변장치 브릿지 (1022) 사이에 송신된 데이터는 비교 유닛 (1090) 에 의해 상기 제 2 스위칭 매트릭스 (1063) 와 상기 제 2 주변장치 브릿지 (1072) 사이에 송신된 데이터와 비교되는, 제어 컴퓨터 시스템.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 프로세서 쌍들에서의 프로세서들 (1001, 1002, 1003, 1004) 과 상기 스위칭 매트릭스들 (1013, 1063) 사이에 멀티플렉서 (1171, 1172, 1173, 1174) 가 각각 위치되며,
    상기 멀티플렉서들은 복구 유닛 (1080) 이 상기 멀티플렉서들 (1171, 1172, 1173, 1174) 을 제어하자마자 프로세서 쌍에서의 제 1 프로세서 (1001, 1003) 가 상기 제 2 스위칭 매트릭스 (1063) 에 액세스할 수 있고 프로세서 쌍에서의 제 2 프로세서 (1002, 1004) 가 상기 제 1 스위칭 매트릭스 (1013) 에 액세스할 수 있는 방식으로 접속되는, 제어 컴퓨터 시스템.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 스위칭 매트릭스 (1013, 1063) 는 메모리들 또는 주변장치 유닛들로의 액세스를 차단하거나 또는 외부 또는 내부의, 바람직하게는 비휘발성의 메모리에서의 액세스를 로그하도록 셋업된 모니터링 유닛 (1014, 1064) 을 포함하는, 제어 컴퓨터 시스템.
  14. 제 2 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 에러-처리 유닛 (1080) 은 개재된 스위칭 매트릭스 (1013, 1063) 없이 적어도 2개의 비교 유닛들 (1011, 1012) 로부터 신호들을 직접 수신하는, 제어 컴퓨터 시스템.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 제어 컴퓨터 시스템은 제 1 및 제 2 휘발성 메모리, 및 비휘발성 메모리를 포함하며,
    특히, 제 1 프로세서 쌍은 상기 제 1 휘발성 메모리에 액세스하고 제 2 프로세서 쌍은 상기 제 2 휘발성 메모리에 액세스하며, 양자의 프로세서 쌍들은 하나의 비휘발성 메모리에 액세스하는, 제어 컴퓨터 시스템.
  16. 제 1 항 내지 제 15 항 중 어느 한 항에 있어서,
    프로세서 쌍에서의 제 1 프로세서 (1001, 1003) 는 적어도 하나의 스위칭 매트릭스 (1013) 에 직접 접속되며, 즉, 메모리들 (1020, 1021) 및/또는 주변장치 유닛들 (1022, 1030, 1031, ..., 1038) 로의 액세스를 판독하고 기록할 수 있는 한편, 프로세서 쌍에서의 제 2 프로세서 (1002, 1004) 는 오직 데이터로의 액세스만을 판독할 수 있으며,
    특히, 프로세서 쌍에서의 양자의 프로세서들에 직접 접속된 비교 유닛 (1011, 1012) 은 상기 접속된 프로세서 쌍에서의 상기 제 2 프로세서 (1002, 1004) 로 데이터를 송신하는, 제어 컴퓨터 시스템.
  17. 제 1 항 내지 제 16 항 중 어느 한 항에 있어서,
    상기 에러-처리 유닛 (1080) 은, 동기화 에러가 발생한 후 2 이상의 프로세서 유닛들 (1, 2, 1001, 1002, 1003, 1004) 또는 상기 2개의 리던던트 모듈들에 의한 적어도 하나의 테스트 프로그램의 실행을 모니터링하여 테스트 결과들을 평가하도록 셋업되며 또한 적어도 하나의 제 1 멀티플렉서 (70, 91) 또는 상기 스위칭 매트릭스 (1013, 1063) 를 구성하도록 셋업되는 복구 제어 유닛 (44) 인, 제어 컴퓨터 시스템.
  18. 제 17 항에 있어서,
    상기 복구 제어 유닛 (44) 은 상기 동기화 에러를 에러 유형에 할당하고 상기 에러 유형에 기초하여 테스트 프로그램을 선택하도록 셋업되는, 제어 컴퓨터 시스템.
  19. 제 17 항 또는 제 18 항에 있어서,
    상기 복구 제어 유닛 (44) 은 상기 테스트 결과에 기초하여 상기 제 1 멀티플렉서 (70, 91) 를 구성하도록 셋업되는, 제어 컴퓨터 시스템.
  20. 제 2 항 내지 제 19 항 중 어느 한 항에 있어서,
    제 1 주변장치 유닛 (72) 은 상기 2개의 프로세서 유닛들 (1, 2) 중 하나에 의해 옵션으로 구동될 수 있는 공통 유닛이며, 상기 제어 컴퓨터 시스템은 적어도 2개의 추가 주변장치 유닛들 (61, 63) 을 포함하며,
    상기 2개의 추가 주변장치 유닛들 (61, 63) 중 하나는 오직 제 1 프로세서 (1) 에만 할당되며, 상기 2개의 주변장치 유닛들 (61, 63) 중 다른 하나는 각각 할당된 프로세서 (1, 2) 에 의해서만 액세스될 수 있는 개인 주변장치 유닛으로서 오직 제 2 프로세서 (2) 에만 할당되는, 제어 컴퓨터 시스템.
  21. 제 20 항에 있어서,
    상기 2개의 추가 주변장치 유닛들 (61, 63) 은 리던던트 유닛들인, 제어 컴퓨터 시스템.
  22. 제어 컴퓨터 시스템을 제어하는 방법으로서,
    상기 제어 컴퓨터 시스템은,
    적어도 2개의 프로세서 쌍들 (1001 및 1002, 1003 및 1004), 에러들을 검출하기 위한 적어도 2개의 비교 유닛들 (1011, 1012), 프로세서 또는 프로세서 쌍에 의한 메모리들 및/또는 적어도 하나의 주변장치 유닛으로의 액세스를 허용하거나 또는 차단하는 적어도 하나의 스위칭 매트릭스 (1013, 1063), 및 적어도 상기 스위칭 매트릭스 (1013, 1063) 를 제어할 수 있는 적어도 하나의 에러-처리 유닛 (1080) 을 포함하고,
    상기 프로세서 쌍들은 에러-없는 모드에서 기능들을 제공하기 위해 상이한 프로그램들을 실행할 수 있으며, 에러가 발생하면, 에러-없는 프로세서 쌍이 결함 있는 프로세서 쌍의 적어도 일부 기능들을 맡는, 제어 컴퓨터 시스템을 제어하는 방법.
  23. 제 22 항에 있어서,
    상기 제어 컴퓨터 시스템에 의해 구동되는 장치의 안전에 중요한 기능들은 에러의 발생에 무관하게 실행되는, 제어 컴퓨터 시스템을 제어하는 방법.
  24. 제 22 항 또는 제 23 항에 있어서,
    에러가 발생할 경우 비-안전-필수 기능들은 적어도 부분적으로 더 이상 제공되지 않는, 제어 컴퓨터 시스템을 제어하는 방법.
  25. 제 22 항 내지 제 24 항 중 어느 한 항에 있어서,
    에러가 발생할 경우 결함 있는 프로세서 또는 프로세서 쌍에 의한 상기 주변장치 유닛으로의 액세스가 차단되는, 제어 컴퓨터 시스템을 제어하는 방법.
  26. 제 22 항 내지 제 25 항 중 어느 한 항에 있어서,
    에러가 발생한 후 결함 있는 프로세서 쌍은 진단 프로그램을 실행하는, 제어 컴퓨터 시스템을 제어하는 방법.
  27. 제 26 항에 있어서,
    발생한 에러들이 분류되며, 일시적 에러들과 영구 에러들 사이에 적어도 판별이 수행되는, 제어 컴퓨터 시스템을 제어하는 방법.
  28. 제 27 항에 있어서,
    영구 에러가 발생한 후 결함 있는 프로세서 쌍은 영구적으로 비활성화되는, 제어 컴퓨터 시스템을 제어하는 방법.
  29. 제 27 항 또는 제 28 항에 있어서,
    양자의 프로세서 쌍들은, 결함 있는 프로세서 쌍이 영구 에러가 검출됨이 없이 진단 프로그램을 통해서 실행될 경우에 상이한 프로그램들을 다시 실행할 수 있는, 제어 컴퓨터 시스템을 제어하는 방법.
  30. 제 22 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 에러-처리 유닛은 에러들의 발생을 비휘발성 메모리에 로그하는, 제어 컴퓨터 시스템을 제어하는 방법.
  31. 제 30 항에 있어서,
    발생한 에러들의 수 및/또는 빈도가 미리 정의된 임계값을 초과하면, 상기 프로세서 쌍은 영구적으로 비활성화되는, 제어 컴퓨터 시스템을 제어하는 방법.
  32. 자동차에서, 특히 브레이크 시스템을 제어하거나 또는 조정하기 위한, 제 1 항 내지 제 31 항 중 어느 한 항에 기재된 제어 컴퓨터 시스템의 이용.
  33. 제어 컴퓨터 시스템을 제어하는 방법으로서,
    - 제어 시스템을 제공하는 단계로서, 상기 제어 시스템은,
    - 각각 적어도 2개의 프로세서들 (1001 및 1002, 1003 및 1004) 을 갖는 적어도 2개의 프로세서 쌍들,
    - 에러들을 검출하고 각각의 프로세서 쌍에서의 상기 프로세서들 (1001 및 1002, 1003 및 1004) 의 동기화를 모니터링하는 적어도 하나의 비교 유닛 (1011, 1012),
    - 상기 프로세서 쌍들에서의 상기 프로세서들에 의한 메모리들 및/또는 하나 이상의 주변장치 유닛들로의 액세스를 허용하거나 또는 차단하는 적어도 하나의 스위칭 매트릭스 (1013, 1063), 및
    - 상기 스위칭 매트릭스 (1013, 1063) 를 구동하는 적어도 하나의 에러-처리 유닛 (1080) 을 포함하는, 상기 제어 시스템을 제공하는 단계;
    - 상기 하나 이상의 주변장치 유닛들 및/또는 상기 메모리를 구동하기 위해, 적어도 하나의 제 1 안전-관련 소프트웨어 프로그램을 일 프로세서 쌍 상에서 동기적으로 실행하고 다른 하나의 프로세서 쌍 상에서 적어도 하나의 제 2 안전-관련 소프트웨어 프로그램을 동기적으로 실행하는 단계;
    - 상기 비교 유닛 (1011, 1012) 에 의해 각각의 프로세서 쌍에서의 상기 프로세서들 (1001 및 1002, 1003 및 1004) 의 동기화를 모니터링하고, 프로세서 쌍에서의 상기 2개의 프로세서들 (1001 및 1002, 1003 및 1004) 이 비동기화될 때 상기 비교 유닛 (1011, 1012) 에 의해 동기화 에러 신호를 출력하는 단계; 및
    - 동기화 에러 신호가 출력된 경우에,
    - 상기 프로세서 쌍들에 의해 상기 제 1 안전-관련 소프트웨어 프로그램 및 상기 제 2 안전-관련 소프트웨어 프로그램의 실행을 인터럽트하는 단계,
    - 상기 2개의 프로세서 쌍들 중 하나가 결함이 있는지 여부를 체크하기 위해 테스트를 실행하는 단계, 및
    - 상기 2개의 프로세서 쌍들 중 하나가 결함이 있으면, 에러-없는 프로세서 쌍 상에서 상기 제 1 안전-관련 소프트웨어 프로그램 및 상기 제 2 안전-관련 소프트웨어 프로그램을 실행하고, 이 프로세서 쌍에서 오직 하나의 프로세서만이 결함이 있으면 결함 있는 프로세서 쌍 또는 프로세서에 의한 메모리들 및/또는 하나 이상의 주변장치 유닛들로의 액세스를 차단하기 위해 상기 에러-처리 유닛 (1080) 에 의해 상기 스위칭 매트릭스 (1013, 1063) 를 구동하는 단계를 포함하는, 제어 컴퓨터 시스템을 제어하는 방법.
  34. 제 33 항에 있어서,
    상기 테스트는 양자의 프로세서 쌍들에 의한 적어도 하나의 테스트 프로그램의 동시 실행을 포함하며,
    상기 프로세서 쌍들에서의 프로세서는, 다음의 조건들, 즉,
    - 상기 프로세서가 제 1 기간 T1 내에 상기 테스트 프로그램을 실행하지 않았을 경우,
    - 상기 프로세서가 상기 테스트 프로그램을 성공적으로 실행하지 않았을 경우,
    - 상기 프로세서가 상기 제 1 기간 T1 이 경과한 후에 제 2 기간 T2 동안 휴지 상태로 변경되지 않았을 경우
    중에서 적어도 하나가 충족될 때 결함이 있는 것으로 간주되는, 제어 컴퓨터 시스템을 제어하는 방법.
  35. 제 33 항 또는 제 34 항에 있어서,
    동기화 에러가 평가되고 에러 유형에 할당되며,
    상기 프로세서들을 체크하기 위하여 상기 에러 유형에 기초하여 적어도 하나의 테스트 프로그램이 선택되는, 제어 컴퓨터 시스템을 제어하는 방법.
KR1020127027527A 2010-03-23 2011-03-18 제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용 KR101728581B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE102010003161.5 2010-03-23
DE102010003161 2010-03-23
DE102010041890.0 2010-10-01
DE102010041890 2010-10-01
PCT/EP2011/054144 WO2011117156A2 (de) 2010-03-23 2011-03-18 Kontrollrechnersystem, verfahren zur steuerung eines kontrollrechnersystems, sowie verwendung eines kontrollrechnersystems

Publications (2)

Publication Number Publication Date
KR20130009816A true KR20130009816A (ko) 2013-01-23
KR101728581B1 KR101728581B1 (ko) 2017-04-19

Family

ID=44063197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127027527A KR101728581B1 (ko) 2010-03-23 2011-03-18 제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용

Country Status (8)

Country Link
US (1) US8935569B2 (ko)
EP (1) EP2550599B1 (ko)
JP (1) JP5722426B2 (ko)
KR (1) KR101728581B1 (ko)
CN (1) CN102822807B (ko)
DE (1) DE102011005800A1 (ko)
RU (1) RU2585262C2 (ko)
WO (1) WO2011117156A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033381A (ko) * 2014-08-29 2017-03-24 콘티넨탈 테베스 아게 운트 코. 오하게 안전-필수 자동차 시스템을 위한 마이크로컨트롤러 시스템 및 방법 및 그의 이용
KR20170114521A (ko) * 2016-04-05 2017-10-16 현대모비스 주식회사 Mdps mcu 코어 고장 감지 장치 및 방법
KR20180128576A (ko) * 2017-05-24 2018-12-04 현대모비스 주식회사 다중 코어 제어 방법

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011086530A1 (de) * 2010-11-19 2012-05-24 Continental Teves Ag & Co. Ohg Mikroprozessorsystem mit fehlertoleranter Architektur
DE102011116617A1 (de) * 2011-10-20 2013-04-25 Continental Automotive Gmbh Kraftfahrzeugsteuergerät mit einem Doppelkernprozessor
KR20150067380A (ko) * 2012-10-16 2015-06-17 콘티넨탈 테베스 아게 운트 코. 오하게 자동차를 제어하기 위한 리던던트 프로그램들 간에 데이터를 교환하기 위한 인터페이스
DE102013202253A1 (de) * 2013-02-12 2014-08-14 Paravan Gmbh Schaltung zur Steuerung eines Beschleunigungs-, Brems- und Lenksystems eines Fahrzeugs
US9952579B2 (en) * 2013-02-15 2018-04-24 Mitsubishi Electric Corporation Control device
AT515454A3 (de) * 2013-03-14 2018-07-15 Fts Computertechnik Gmbh Verfahren zur Behandlung von Fehlern in einem zentralen Steuergerät sowie Steuergerät
KR20140134376A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법
US9372774B2 (en) * 2013-05-22 2016-06-21 GM Global Technology Operations LLC Redundant computing architecture
CN103399807B (zh) * 2013-06-28 2015-03-25 中国航天科技集团公司第五研究院第五一三研究所 一种用于三模冗余计算机的动态现场自主恢复方法
DE102013218814A1 (de) * 2013-09-19 2015-03-19 Siemens Aktiengesellschaft Verfahren zum Betreiben eines sicherheitskritischen Systems
JP5772911B2 (ja) * 2013-09-27 2015-09-02 日本電気株式会社 フォールトトレラントシステム
FR3031406B1 (fr) * 2015-01-05 2017-07-28 Valeo Schalter & Sensoren Gmbh Architecture pour systeme d'aide a la conduite a automatisation conditionnelle
CN104635745B (zh) * 2015-03-02 2017-03-22 中国航空无线电电子研究所 一种飞行管理系统双机同步的方法
DE102015003194A1 (de) * 2015-03-12 2016-09-15 Infineon Technologies Ag Verfahren und Vorrichtung zum Handhaben von sicherheitskritischen Fehlern
US10761925B2 (en) 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
DE102015218882A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
CN105446863B (zh) * 2015-11-23 2018-02-23 上海兆芯集成电路有限公司 具有记录能力的电子装置与电路状态记录方法
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
JP6554048B2 (ja) * 2016-02-29 2019-07-31 株式会社日立製作所 表示装置
KR102162321B1 (ko) * 2016-03-14 2020-10-06 한국전자통신연구원 프로세서 시스템 및 그것의 고장 검출 방법
FR3049075B1 (fr) * 2016-03-15 2018-03-09 Sagem Defense Securite Dispositif d'actionnement et carte de commande et de surveillance associee
US10042693B2 (en) * 2016-07-12 2018-08-07 Infineon Technologies Ag Diverse integrated processing using processors and diverse firmware
CN108227474A (zh) * 2016-12-13 2018-06-29 中核控制系统工程有限公司 安全级dcs平台零延时冗余切换方法
WO2018198184A1 (ja) * 2017-04-25 2018-11-01 株式会社日立製作所 再構成制御装置
DE102017124354A1 (de) * 2017-10-18 2019-04-18 Infineon Technologies Ag Verfahren und vorrichtung zum verarbeiten von daten
US10241903B1 (en) * 2017-11-15 2019-03-26 Accenture Global Solutions Limited Parallel testing and reporting system
US10409553B2 (en) 2017-11-15 2019-09-10 Accenture Global Solutions Limited Optimized construction of a sample imprint for selecting a sample dataset for comparison testing
US10514890B2 (en) 2017-11-15 2019-12-24 Accenture Global Solutions Limited Test case and data selection using a sampling methodology
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation
US10628274B2 (en) 2017-12-05 2020-04-21 Qualcomm Incorporated Self-test during idle cycles for shader core of GPU
US10671067B2 (en) * 2018-01-15 2020-06-02 Qualcomm Incorporated Managing limited safe mode operations of a robotic vehicle
DE102018101103A1 (de) * 2018-01-18 2019-07-18 Volkswagen Aktiengesellschaft Verfahren und Computerprogramme für eine Überwachungsinstanz und eine Kommunikationskomponente, Überwachungsinstanz, Kommunikationskomponente, System und Fahrzeug
EP3779699A1 (en) * 2019-08-16 2021-02-17 Aptiv Technologies Limited Method for checking program execution of a microcontroller, external device, system and non-transitory computer readable medium
US11704205B2 (en) * 2019-08-16 2023-07-18 Verizon Patent And Licensing Inc. Systems and methods for transitioning from legacy computer systems
US11029939B1 (en) 2020-01-06 2021-06-08 Capital One Services, Llc Dual-core ATM
DE102020203420B4 (de) * 2020-01-15 2021-11-04 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall
DE102020208370A1 (de) 2020-07-03 2022-01-05 Vitesco Technologies GmbH Elektronische Steuereinheit
WO2021101643A2 (en) * 2020-10-16 2021-05-27 Futurewei Technologies, Inc. Cpu-gpu lockstep system
DE102021206379A1 (de) 2021-06-22 2022-12-22 Continental Autonomous Mobility Germany GmbH Steuereinrichtung sowie Assistenzsystem für ein Fahrzeug
US20230267043A1 (en) * 2022-02-23 2023-08-24 Micron Technology, Inc. Parity-based error management for a processing system
US20240089181A1 (en) * 2022-04-26 2024-03-14 Motional Ad Llc Software-defined compute nodes on multi-soc architectures
EP4325372A1 (en) * 2022-08-15 2024-02-21 Continental Automotive Technologies GmbH Data transmission method, data transmission device, and data transmission system
CN117009128B (zh) * 2023-09-14 2023-12-22 飞腾信息技术有限公司 一种错误上报方法及计算机系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3444528A (en) 1966-11-17 1969-05-13 Martin Marietta Corp Redundant computer systems
US3864670A (en) 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
JPS5028309B1 (ko) * 1970-11-20 1975-09-13
JPS6429943A (en) * 1987-07-24 1989-01-31 Fujitsu Ltd System for executing remote diagnosis
US5138708A (en) * 1989-08-03 1992-08-11 Unisys Corporation Digital processor using current state comparison for providing fault tolerance
JPH03296831A (ja) * 1990-04-16 1991-12-27 Nissan Motor Co Ltd フェイルセーフ回路の故障診断方式
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
EP0496506B1 (en) * 1991-01-25 2000-09-20 Hitachi, Ltd. Fault tolerant computer system incorporating processing units which have at least three processors
JPH04349538A (ja) * 1991-05-28 1992-12-04 Nec Corp 障害装置の復旧方式
US5249188A (en) 1991-08-26 1993-09-28 Ag Communication Systems Corporation Synchronizing two processors as an integral part of fault detection
DE69325769T2 (de) * 1992-11-04 2000-03-23 Digital Equipment Corp Erkennung von Befehlssynchronisationsfehlern
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
FR2721122B1 (fr) 1994-06-14 1996-07-12 Commissariat Energie Atomique Unité de calcul à pluralité de calculateurs redondants.
US5915082A (en) 1996-06-07 1999-06-22 Lockheed Martin Corporation Error detection and fault isolation for lockstep processor systems
JPH10240556A (ja) * 1997-02-28 1998-09-11 Hitachi Ltd 共有メモリを持つ疎結合計算機システム
SE511114C2 (sv) 1997-12-10 1999-08-09 Ericsson Telefon Ab L M Metod vid processor, samt processor anpassad att verka enligt metoden
US6148348A (en) * 1998-06-15 2000-11-14 Sun Microsystems, Inc. Bridge interfacing two processing sets operating in a lockstep mode and having a posted write buffer storing write operations upon detection of a lockstep error
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
JP2000200255A (ja) * 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
CN1253333C (zh) * 2001-03-15 2006-04-26 罗伯特-博希股份公司 分布式的安全紧急系统和对其部件进行控制的方法
DE10124027A1 (de) * 2001-05-16 2002-11-21 Continental Teves Ag & Co Ohg Verfahren,Mikroprozessorsystem für sicherheitskritische Regelungen und dessen Verwendung
JP4319547B2 (ja) 2001-12-11 2009-08-26 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト マルチコア型冗長制御コンピュータシステム、自動車における安全上重要な用途のためのコンピュータネットワーク並びにその使用
JP2004046599A (ja) 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
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
DE102004051991A1 (de) * 2004-10-25 2006-04-27 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
JP4462238B2 (ja) * 2006-06-21 2010-05-12 株式会社デンソーウェーブ 携帯端末
JP4458119B2 (ja) * 2007-06-11 2010-04-28 トヨタ自動車株式会社 マルチプロセッサシステム及びその制御方法
JP5392594B2 (ja) * 2008-03-05 2014-01-22 日本電気株式会社 仮想計算機冗長化システム、コンピュータシステム、仮想計算機冗長化方法、及びプログラム
DE102009000045A1 (de) 2009-01-07 2010-07-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergerätes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033381A (ko) * 2014-08-29 2017-03-24 콘티넨탈 테베스 아게 운트 코. 오하게 안전-필수 자동차 시스템을 위한 마이크로컨트롤러 시스템 및 방법 및 그의 이용
KR20170114521A (ko) * 2016-04-05 2017-10-16 현대모비스 주식회사 Mdps mcu 코어 고장 감지 장치 및 방법
KR20180128576A (ko) * 2017-05-24 2018-12-04 현대모비스 주식회사 다중 코어 제어 방법

Also Published As

Publication number Publication date
RU2012144563A (ru) 2014-04-27
RU2585262C2 (ru) 2016-05-27
JP2013522785A (ja) 2013-06-13
US20130024721A1 (en) 2013-01-24
DE102011005800A1 (de) 2011-09-29
CN102822807B (zh) 2015-09-02
EP2550599B1 (de) 2020-05-06
CN102822807A (zh) 2012-12-12
WO2011117156A3 (de) 2011-12-08
EP2550599A2 (de) 2013-01-30
US8935569B2 (en) 2015-01-13
KR101728581B1 (ko) 2017-04-19
WO2011117156A2 (de) 2011-09-29
JP5722426B2 (ja) 2015-05-20

Similar Documents

Publication Publication Date Title
KR101728581B1 (ko) 제어 컴퓨터 시스템, 제어 컴퓨터 시스템을 제어하는 방법, 및 제어 컴퓨터 시스템의 이용
US8959392B2 (en) Redundant two-processor controller and control method
US7802138B2 (en) Control method for information processing apparatus, information processing apparatus, control program for information processing system and redundant comprisal control apparatus
US20130268798A1 (en) Microprocessor System Having Fault-Tolerant Architecture
US8549352B2 (en) Integrated microprocessor system for safety-critical control systems including a main program and a monitoring program stored in a memory device
US9563523B2 (en) Architecture for scalable fault tolerance in integrated fail-silent and fail-operational systems
US20170242809A1 (en) Abnormal interrupt request processing
CN102640119B (zh) 用于运行计算单元的方法
US9367375B2 (en) Direct connect algorithm
EP2381266B1 (en) Self-diagnosis system and test circuit determination method
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
US20040199824A1 (en) Device for safety-critical applications and secure electronic architecture
KR101295770B1 (ko) 안전 무결성 확보를 위한 열차제어 시스템
US20120078575A1 (en) Checking of functions of a control system having components
KR101448013B1 (ko) 항공기용 다중 컴퓨터의 고장 허용 장치 및 방법
US20190079823A1 (en) Signal Pairing for Module Expansion of a Failsafe Computing System
US9311212B2 (en) Task based voting for fault-tolerant fail safe computer systems
CN109213638B (zh) 半导体装置
Baumeister Using Decoupled Parallel Mode for Safety Applications
KR102475879B1 (ko) Mdps mcu 코어 고장 감지 장치 및 방법
US20230398955A1 (en) In-vehicle use control system
JP4613019B2 (ja) コンピュータシステム
RU2384877C2 (ru) Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
JP2022184410A (ja) 演算装置
JPH02101542A (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