KR20170039256A - 제어 인가를 컴퓨터에 할당하기 위한 방법 및 시스템 - Google Patents
제어 인가를 컴퓨터에 할당하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20170039256A KR20170039256A KR1020177005634A KR20177005634A KR20170039256A KR 20170039256 A KR20170039256 A KR 20170039256A KR 1020177005634 A KR1020177005634 A KR 1020177005634A KR 20177005634 A KR20177005634 A KR 20177005634A KR 20170039256 A KR20170039256 A KR 20170039256A
- Authority
- KR
- South Korea
- Prior art keywords
- computer
- data
- computers
- master
- control
- Prior art date
Links
Images
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/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1654—Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- 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/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between 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/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/22—Pc multi processor system
- G05B2219/2231—Master slave
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/22—Pc multi processor system
- G05B2219/2237—Selection of master or slave
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24189—Redundant processors monitor same point, common parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
- Control By Computers (AREA)
Abstract
본 발명은 시스템(1)에 관한 것으로, 시스템(1)은 적어도 2개의 비동기 컴퓨터들(2-i)을 포함하고, 적어도 2개의 비동기 컴퓨터들(2-i) 각각 상에서 적어도 하나의 애플리케이션(A)이 실행되고, 적어도 하나의 애플리케이션(A)은 적어도 하나의 작동 시스템(3)을 위한 제어 데이터(SD)를 제공하고, 제공된 제어 데이터(SD)는 작동 시스템(3)의 제어를 위해, 마스터 컴퓨터 상태(M-RS)를 맡은 제어-인가된 컴퓨터(2-i)에 의해 작동 시스템(3)으로 송신되고, 시스템(1)의 컴퓨터들(2-i)은 데이터 교환(DAS)에서 데이터 인터페이스를 통해 상태 데이터(ZD) 및 성능 데이터(LD)를 주기적으로 서로 교환하고, 컴퓨터들(2-i)은, 컴퓨터(2-i) 상에서 수행된 마스터/슬레이브 선택(MSA)에서, 다른 컴퓨터들(2-j)로부터 수신된 상태 및 성능 데이터(ZDOpp, LDOpp)에 기반하여 그리고 컴퓨터 자신의 상태 및 성능 데이터(ZDOwn, LDOwn)에 기반하여, 특정 컴퓨터(2-i) 자신이 맡을 컴퓨터 상태(RS)를 제어-인가된 또는 제어-인가되지 않은 컴퓨터(2-i)로서 각각 결정한다.
Description
본 발명은 마스터-슬레이브 선택 방법(master-slave selection method)을 사용하여 제어 인가(control authorization)를 컴퓨터(computer)에 할당하기 위한 방법 및 시스템(system)에 관한 것이다.
시스템들은 다수의 상이한 컴포넌트(component)들을 포함할 수 있다. 컴포넌트들을 제어하기 위해, 제어 데이터(control data)를 공급할 수 있는 컴퓨터들이 제어 유닛(control unit)들로서 사용된다. 이들 컴퓨터들은, 각각의 시스템의 시스템 컴포넌트들을 제어하기 위한 제어 데이터를 공급하는 하나 또는 그 초과의 애플리케이션(application)들 또는 애플리케이션 프로그램(application program)들을 실행할 수 있다. 여기서, 제어될 컴포넌트들은 획득된 제어 데이터의 함수로써 작동되는 액추에이터(actuator)들 또는 액추에이터 컴포넌트들을 포함한다. 특히, 신뢰도-중요 시스템(reliability-critical system)들에서, 제어될 액추에이터 시스템은 정확한 제어 데이터를 연속적으로 그리고 신뢰적으로 수신할 필요가 있다. 그러므로, 이러한 신뢰도-중요 시스템들에서, 제어 유닛들 또는 제어 컴퓨터들은 일반적으로 리던던트하게(redundantly) 제공된다. 차량에서, 액추에이터 시스템의 특정 컴포넌트들 또는 액추에이터들은, 제어 데이터의 장애가 존재하지 않을 수 있도록, 신뢰도가 중요하다(reliability-critical). 차량 내의 이러한 신뢰도-중요 액추에이터 유닛의 예들은 차량 제동 수단 및/또는 차량 조향 제어 수단이다. 이러한 신뢰도-중요 컴포넌트 또는 신뢰도-중요 액추에이터 시스템의 작동을 복수의 컴퓨터들이 담당하는 경우, 리던던트 컴퓨터(redundant computer)들 중 어느 컴퓨터가 제어-인가되었는지 또는 어느 컴퓨터가 액추에이터 시스템에 제어 데이터를 공급하는지를 명확하게 검출하는 것이 필요하다.
그러므로, 본 발명의 목적은, 복수의 컴퓨터들 중 하나에 대한 제어 인가의 명확한 할당을 위한 방법 및 시스템을 제공하는 것이며, 이에 따라, 컴포넌트의 작동의 측면들에서 컴퓨터들 간의 충돌들이 신뢰적으로 회피된다.
이 목적은 본 발명에 따라 특허 청구항 제 1 항에서 명시된 특징들을 갖는 시스템에 의해 달성된다.
따라서, 본 발명은, 제 1 양상에 따라, 적어도 2개의 비동기 컴퓨터(asynchronous computer)들을 갖는 시스템을 제공하며, 적어도 2개의 비동기 컴퓨터들 각각 상에서 적어도 하나의 애플리케이션이 실행되고, 적어도 하나의 애플리케이션은 적어도 하나의 액추에이터 시스템을 위한 제어 데이터를 제공하고, 제공된 제어 데이터는, 액추에이터 시스템의 제어를 위해, 마스터 컴퓨터 상태(master computer status)를 맡은, 이 목적으로 제어-인가된(control-authorized) 컴퓨터로부터 액추에이터 시스템으로 송신되고,
시스템의 컴퓨터들은 데이터 교환에서 데이터 인터페이스(data interface)를 통해 상태 데이터 및 성능 데이터를 주기적으로 서로 교환하고,
컴퓨터들은, 컴퓨터 상에서 실행되는 마스터-슬레이브 선택(master-slave selection)에서, 데이터 교환에서 다른 컴퓨터들로부터 획득된 상태 데이터 및 성능 데이터에 기반하여 그리고 그들 자신의 상태 데이터 및 성능 데이터에 기반하여, 각각의 컴퓨터 자신이 맡을 컴퓨터 상태를 제어-인가된 또는 제어-인가되지 않은(non-control-authorized) 컴퓨터로서 각각 결정한다.
본 발명에 따른 시스템의 가능한 일 실시예에서, 컴퓨터의 교환된 상태 데이터는 컴퓨터의 상태 데이터를 갖고, 컴퓨터의 상태 데이터는 컴퓨터의 컴퓨터 상태를 명시한다.
가능한 일 실시예에서, 컴퓨터의 컴퓨터 상태는 바람직하게 여기서, 제어-인가된 컴퓨터로서의 마스터 컴퓨터 상태,
제어-인가되지 않은 컴퓨터로서의 슬레이브 컴퓨터 상태(slave computer status), 및
여전히(still) 제어-인가된 컴퓨터로서의 마스터 중간 컴퓨터 상태(master intermediate computer status)를 갖는다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 시스템의 각각의 컴퓨터에는 연관된 시간 윈도우(time window)가 할당되고, 이 시간 윈도우에서 컴퓨터는 마스터-마스터 충돌(master-master conflict)을 회피하기 위해 마스터 중간 컴퓨터 상태를 맡고, 할당된 시간 윈도우들은 시스템의 다양한 컴퓨터들에 대해 상이하다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 컴퓨터들에 할당된 시간 윈도우들은 시간 기간(time period)보다 각각 더 크고, 시간 기간은, 컴퓨터들의 서로간의 주기적 통신 동안의 비동시성(asynchronicity)에 의해 그리고/또는 컴퓨터들의 시동 동안의 비동시성에 의해 야기된다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 2개의 상이한 컴퓨터들에 할당되는 2개의 시간 윈도우들 간의 시간 차이는, 각각의 다른 컴퓨터에 대한 데이터 전달 응답을 위해 필요한 시간 기간보다 더 크다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 컴퓨터는, 확인 시간 기간(confirmation time period)의 만료 이후까지, 컴퓨터에 대해 결정된 컴퓨터 상태를 맡지 않는다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 시스템의 각각의 컴퓨터는 각각의 경우에서, 다른 컴퓨터들과의 데이터 교환 동안 획득된 상태 데이터 및 성능 데이터에 기반하여 그리고 각각의 컴퓨터 자신의 상태 데이터 및 성능 데이터에 기반하여, 다른 컴퓨터들에 대한 예상 컴퓨터 상태(expected computer status)를 결정한다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 시스템의 컴퓨터들은 각각의 경우에서, 컴퓨터 상에서 실행되는 마스터-슬레이브 선택 동안, 상태 데이터 및 성능 데이터에 기반하여 그리고 다른 컴퓨터들에 의해 각각의 컴퓨터에 대해 결정된 예상 컴퓨터 상태에 기반하여, 컴퓨터 자신이 맡을 컴퓨터 상태를 결정한다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 컴퓨터가 맡을 컴퓨터 상태는 부가적으로, 컴퓨터에서 발생하는 적어도 하나의 컴퓨터 인터럽트(computer interrupt)의 함수로써 결정된다.
이 컴퓨터 인터럽트는 바람직하게 전력 인터럽트(power interrupt)일 수 있다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 시스템은, 제어 데이터를 페일세이프 방식(failsafe fashion)으로 적어도 하나의 액추에이터 시스템에 송신하는 리던던트 신뢰도-중요 시스템(redundant reliability-critical system), 특히 분산형 시스템이다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 자신의 확인 시간 기간의 만료 후에 자신에 대해 결정된 마스터-컴퓨터 상태를 맡은 컴퓨터는, 제어 데이터를 액추에이터 시스템에 송신하고, 그리고 컴퓨터 상에서 실행되는 마스터-슬레이브 선택이 이 컴퓨터에 대해 상이한 컴퓨터 상태를 결정할 때까지, 자신의 맡은 마스터-컴퓨터 상태를 유지한다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 슬레이브 컴퓨터 상태를 맡은 컴퓨터는, 지금까지 마스터 제어 상태를 맡은 다른 컴퓨터가 상이한 컴퓨터 상태를 맡고 그리고 각각의 컴퓨터 상에서 실행되는 마스터-슬레이브 선택이 각각의 컴퓨터에 대해 마스터 컴퓨터 상태를 결정할 때까지, 이 맡은 슬레이브 컴퓨터 상태로부터 마스터 컴퓨터 상태로 변경되지 않는다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 컴퓨터의 상태 데이터는 컴퓨터의 상태를 명시한다.
본 발명에 따른 시스템의 추가의 가능한 실시예에서, 성능 데이터는 제어 데이터를 생성하기 위해 컴퓨터 상에서 실행되는 적어도 하나의 애플리케이션의 성능을 명시한다.
추가의 양상에 따르면, 본 발명은 또한, 특허 청구항 제 15 항에서 명시된 특징들을 갖는, 제어 인가를 할당하기 위한 방법을 제공한다.
따라서, 본 발명은 시스템의 복수의 비동기 컴퓨터들 중 하나에 제어 인가를 할당하기 위한 방법을 제공하며, 제어 인가는 액추에이터 시스템을 제어하도록 컴퓨터를 인가하고, 방법은:
각각의 컴퓨터 상에서 실행되는 마스터-슬레이브 선택에 의해, 데이터 교환 동안 다른 컴퓨터들로부터 획득된 상태 데이터 및 성능 데이터에 기반하여 그리고 각각의 컴퓨터 자신의 상태 데이터 및 성능 데이터에 기반하여, 각각의 컴퓨터가 맡을 컴퓨터 상태를 각각의 컴퓨터에 대해 결정하는 단계, 및
상기 컴퓨터의 마스터-슬레이브 선택에서 마스터-컴퓨터 상태로 결정된 컴퓨터에, 액추에이터 시스템을 제어하기 위한 제어 인가를 할당하는 단계를 갖는다.
다음의 본문에서, 첨부된 도면들을 참조하여, 제어 인가를 컴퓨터에 할당하기 위한 본 발명에 따른 시스템의 그리고 본 발명에 따른 방법의 가능한 실시예들이 더 상세하게 설명된다.
도면들에서:
도 1은 본 발명에 따른 시스템의 예시적 실시예를 예시하는 단순한 블록 회로도(block circuit diagram)를 도시하고;
도 2는 제어 인가를 할당하기 위한 본 발명에 따른 방법 및 본 발명에 따른 시스템의 기능 방법을 설명하는 개략도를 도시하고; 그리고
도 3은 제어 인가를 컴퓨터에 할당하기 위한 본 발명에 따른 방법에 대한 예시적 실시예를 예시하는 단순한 흐름도를 도시한다.
도 1은 본 발명에 따른 시스템의 예시적 실시예를 예시하는 단순한 블록 회로도(block circuit diagram)를 도시하고;
도 2는 제어 인가를 할당하기 위한 본 발명에 따른 방법 및 본 발명에 따른 시스템의 기능 방법을 설명하는 개략도를 도시하고; 그리고
도 3은 제어 인가를 컴퓨터에 할당하기 위한 본 발명에 따른 방법에 대한 예시적 실시예를 예시하는 단순한 흐름도를 도시한다.
도 1에서 명백한 바와 같이, 본 발명에 따른 시스템(1)은 예시된 예시적 실시예에서, 적어도 2개의 컴퓨터(computer)들(R)을 포함하고, 적어도 2개의 컴퓨터들(R) 각각 상에서 적어도 하나의 애플리케이션(application)(A)이 실행될 수 있다. 이 애플리케이션(A)은 시스템(1)의 적어도 하나의 액추에이터 시스템(actuator system)(AKT)을 위한 제어 데이터(control data)(SD)를 제공한다. 도 1에 예시된 예시적 실시예에서, 시스템(1)은, 서로 통신하거나 서로 데이터를 교환하는 2개의 비동기 컴퓨터들(2-1, 2-2)을 갖는다. 2개의 컴퓨터들(2-1, 2-2)은 데이터 교환(data exchange)(DAS)에서 데이터 인터페이스를 통해 상태 데이터(state data)(ZD) 및 성능 데이터(performance data)(LD)를 주기적으로 서로 교환한다. 여기서 데이터 교환은 주기적으로, 즉, 미리 정의된 일정한 시간 간격으로 발생한다. 컴퓨터(R) 상에서 실행되는 마스터-슬레이브 선택(master-slave selection)(MSA)에서, 데이터 교환(DAS)에서 적어도 하나의 다른 컴퓨터로부터 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 각각의 컴퓨터(2-i) 자신의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여, 각각의 컴퓨터(2-i) 자신이 맡을 컴퓨터 상태가 제어-인가된 컴퓨터(control-authorized computer) 또는 제어-인가되지 않은 컴퓨터(non-control-authorized computer)로서 결정된다. 도 1에 예시된 리던던트 시스템(redundant system)(1)의 경우, 컴퓨터들(2-1, 2-2) 둘 모두가 제어 데이터를 생성하지만, 제어-인가된 컴퓨터만이 액추에이터 시스템(3)의 제어를 위해 제어 데이터를 액추에이터 시스템(3)에 송신한다. 액추에이터 시스템은 시스템 컴포넌트, 특히 신뢰도-중요 시스템 컴포넌트, 예컨대 차량의 차량 제동 유닛을 포함할 수 있다. 제어 데이터는, 액추에이터 시스템(3)의 제어를 위해, 예컨대 제어 데이터버스(control databus)를 통해 제어-인가된 컴퓨터로부터 액추에이터 시스템(3)으로 송신될 수 있다.
컴퓨터의 교환된 상태 데이터(ZD)는 바람직하게, 각각의 컴퓨터(2-i)의 컴퓨터 상태(computer status)(RS)를 명시하는, 컴퓨터의 상태 데이터를 갖는다. 여기서, 컴퓨터의 컴퓨터 상태는 바람직하게, 제어-인가된 컴퓨터로서의 마스터 컴퓨터 상태(master computer status)(M-RS), 제어-인가되지 않은 컴퓨터로서의 슬레이브 컴퓨터 상태(slave computer status)(S-RS), 및 일시적으로(provisionally) 제어-인가된 컴퓨터로서의 마스터 중간 컴퓨터 상태(master intermediate computer status)(MI-RS)를 갖는다. 본 발명에 따른 시스템(1)에서, 액추에이터 시스템(3)을 제어하기 위한, 컴퓨터(2-i)에 대한 제어 인가(control authorization)(SB)의 적절히 정의된 그에 따른 신뢰적인 할당이 보장된다. 책임 또는 제어 인가의 할당은 시스템(1)의 다양한 리던던트하게 제공된 컴퓨터들(2-i) 간에 고유하게 정의된 방식으로 또는 충돌 없이 이루어진다. 마스터-슬레이브 선택(MSA)은 다양한 컴퓨터들(2-i) 간에 수행된다. 이 마스터-슬레이브 메커니즘(master-slave mechanism)은, 리던던트하게 실행되는 애플리케이션들, 아니면 파티션 클러스터들(partition clusters)(PC)을 갖는 비동기 시스템에서 시스템 일관성을 보장하기에 적절하다. 도 1에 예시된 비동기 시스템(1)의 경우, 컴퓨터들(2-i) 또는 그들의 애플리케이션들(A)이 비동기적으로 동작한다. 적절한 경우, 예컨대 컴퓨터 상태의 변화 동안 매우 짧은 시간 윈도우에 대해, 복수의 컴퓨터들이 제어-인가되거나 또는 제어-인가되지 않을 수 있다.
본 발명에 따른 시스템의 가능한 일 실시예에서, 시스템(1)의 리던던트하게 제공된 컴퓨터들 각각에는 연관된 시간 윈도우(time window)(ZF)가 할당되고, 연관된 시간 윈도우(ZF)에서, 각각의 컴퓨터(2-i)는 마스터-마스터 충돌을 회피하기 위해 마스터 중간 컴퓨터 상태(MI-RS)를 맡는다. 여기서, 다양한 컴퓨터들(2-i)에 할당되는 시간 윈도우들(ZFi)은 바람직하게, 시스템(1)의 다양한 컴퓨터들(2-i)에 대해 상이하다. 동일한 사이클 시간(cycle time)을 갖는 컴포넌트들의 경우, 정보 또는 정보 데이터는 동일한 사이클(i)에서 또는 하나의 사이클에서 시간 오프셋(time offset)을 가진 채 교환될 수 있다. 2개의 컴퓨터들(2-1, 2-2)을 위한 2개의 에너지 공급 유닛(energy supply unit)들을 인에이블(enabling) 하는 것 간의 시간 불일치(time discrepancy)로부터 추가의 비동시성이 발생한다. 이 비동시성은, 한편으로는, 각각의 컴퓨터(2-i)에 대한 전력 공급을 인에이블 하기 위한 스위치(switch)의 전기적으로 작동되는 반도체 스위칭 엘리먼트(semiconductor switching element)들의 기계적으로 유도된 연대순의(chronological) 시프트(shift) 또는 지연으로부터 발생하고, 다른 한편으로는, 2개의 비동기 컴퓨터들(2-1, 2-2)의 전력 공급 플러그(power supply plug)들까지에 대응하는 온-보드 전력 시스템(on-board power system)의 역학으로부터 발생한다.
존재하는 비동시성들로 인해, 2개의 컴퓨터들(2-1, 2-2)이 자신들의 마스터-슬레이브 선택들(MSA), 즉, 각각의 컴퓨터에 대한 제어 인가의 할당을 시작하는 시간 기간()이 발생한다. 컴퓨터들에 할당되는 시간 윈도우들(ZF)은 바람직하게, 시간 기간(time period)(ZS)보다 각각 더 길며, 시간 기간(ZS)은 컴퓨터들(2-i)의 서로간의 주기적 통신 동안의 비동시성에 의해 그리고/또는 컴퓨터들(2-i)의 시동에서의 비동시성에 의해 야기된다. 리던던트 시스템(1)의 (도 1에 예시된) 2개의 컴퓨터들(2-1, 2-2)의 경우, 할당된 시간 윈도우들(ZF)은 상이하게 설정되거나 상이한 길이들로 선택된다.
다음이 획득된다:
> 시간 기간(주기적 통신의 비동시성) + 시간 기간(시동에서의 통상의 비동시성).
게다가, 2개의 상이한 컴퓨터들(2-1, 2-2)에 할당되는 2개의 시간 윈도우들(ZF) 간의 시간 차이는 바람직하게, 각각의 다른 컴퓨터에 대한 데이터 전달 응답을 위해 필요한 시간 기간(ZS)보다 더 길도록 선택된다.
2개의 컴퓨터들(2-1, 2-2)은 예컨대 마스터-마스터 충돌의 경우 자신들을 즉시 슬레이브 컴퓨터 상태로 설정한다.
동작 동안 액추에이터 시스템(3)의 제어에 대한 책임을 할당하기 위해, 각각의 경우에서, 마스터-슬레이브 알고리즘(master-slave algorithm) 또는 마스터-슬레이브 선택(MSA)이 2개의 컴퓨터들(2-1, 2-2) 상에서 실행된다. 이와 관련하여, 시스템(1)의 컴포넌트들의 상태들과 관련된 상태 데이터(ZD) 및 컴포넌트들의 성능 데이터(LD)가 프로세싱되고(processed), 상기 상태 데이터(ZD) 및 성능 데이터(LD)는 바람직하게, 업스트림(upstream)의 기본 프로세서들(basic processors)(BP)에서 결정되어, 대응하는 선택을 위해 사용된다. 마스터-슬레이브 선택이 발생한 후에, 결과적으로, 마스터 플래그(master flag) 또는 슬레이브 플래그가 다양한 컴퓨터들(2-1, 2-2) 각각에 국부적으로 전달되고 그리고 컴퓨터들(2-1, 2-2) 각각으로부터 차례로, 거기에서 실행되는 애플리케이션(A) 또는 거기에서 실행되는 애플리케이션들(A) 각각에 전달되는 것을 확립하는 것이 가능하다.
플래그는 바람직하게, 각각의 컴퓨터(2-i)가 액추에이터 시스템(3)에 대해 제어-인가된 컴퓨터인지 제어-인가되지 않은 컴퓨터인지를 명시한다. 그 다음에, 시스템(1)의 액추에이터 시스템(3)은, 2개의 컴퓨터들(2-1, 2-2) 중 어느 컴퓨터가 마스터 플래그를 갖는지와 그에 따라 어느 컴퓨터가 액추에이터 시스템(3)의 제어에 대해 현재 마스터 컴퓨터가 되었는지에 따라, 컴퓨터(2-1)로부터 데이터 또는 제어 데이터(SD1)를 수신하거나 또는 컴퓨터(2-2)로부터 제어 데이터(SD2)를 수신한다.
여기서, 시스템(1)의 액추에이터 시스템(3) 그 자체는 일반적으로, 착신되는 제어 데이터(incoming control data)(SD)가 인가 엔티티(authorization entity)로부터 비롯되었는지의 여부를 더 이상 체크(check)하지 않는다. 액추에이터 시스템(3)은, 어쨌든 자신에게 도착한 제어 데이터(SD)를 고려하는데, 즉, 액추에이터 시스템(3)은 획득된 제어 데이터의 함수로써 실행될 것인데, 함수는 시스템(1) 내에서 액추에이터 시스템(3)에 할당되었다. 이는, 본 발명에 따른 방법이 사용될 때, 시스템(1)의 액추에이터 시스템(3)이 특히 용이하게 구현 또는 실현될 수 있다는 특정한 이점을 제공한다. 이는, 본 발명에 따른 시스템(1) 또는 본 발명에 따른 방법이 사용될 때, 시스템(1) 내의 액추에이터 시스템(3)을 동작시키기 위한 기술적 지출(technical expenditure)이 상당히 감소된다는 것을 의미한다.
단일의 제어-인가된 컴퓨터로부터 액추에이터 시스템(3)으로 제어 데이터(SD)뿐만 아니라 다른 데이터도 송신되는 경우, 수신된 제어 데이터(SD)의 필터링(filtering)이 액추에이터 시스템(3)에서 발생할 수 있다. 제어-인가된 컴퓨터에 의한 어떠한 제어 데이터(SD)도 아직 수신되지 않은 경우, 제 1 제어-인가된 컴퓨터의 제어 데이터(SD)가 제어 데이터로서 수용된다. 특정 상황들 하에서, 2개의 컴퓨터들이 제어-인가된 컴퓨터들로서 동시에 나타나는 경우 ― 제어-인가된 컴퓨터들의 데이터가 액추에이터 시스템(3)에서 동시에 수신됨 ―, 이들 2개의 컴퓨터들 중 하나가 우선순위선정된다. 여기서, 우선순위선정은 예컨대 이전에 정의된 규칙에 기반하여 수행될 수 있다. 제어-인가된 컴퓨터가 이미 액추에이터 시스템(3)에서 검출되고, 동작 동안 추가의 제어-인가된 컴퓨터가 부가된 경우, 예컨대 원래의 제어-인가된 컴퓨터의 제어 데이터만이 수용될 수 있다. 이 경우, 새롭게 부가된 제어-인가된 컴퓨터의 제어 데이터(SD)는 거절될 수 있다.
도 1에 예시된 시스템은, 서로 독립적으로 동작하는 적어도 2개의 컴퓨터들(2-i)을 갖는 비동기 리던던트 시스템이다. 시간(ti)에서, 각각의 컴퓨터는 각각의 컴퓨터의 환경(surroundings) 또는 시스템(1)의 컴포넌트들의 특정 뷰(certain view)를 갖는다. 이 뷰는 시간(ti) ± 시스템(1)의 다른 컴퓨터에서의 비동시성 시간에서 발생한다. 그러므로, 제어 인가 선택 방법을 사용하는 본 발명에 따른 시스템(1)의 경우, 컴퓨터들(2-i)의 서로 간의 복잡한 동기화가 필요 없다. 각각의 컴퓨터에 대해 결정된 컴퓨터 상태(RS)는, 확인 시간 기간의 만료 이후까지 상기 컴퓨터가 맡지 않는다.
시스템(1)의 각각의 컴퓨터(2-i)는, 컴퓨터 상에서 실행되는 마스터-슬레이브 메커니즘(MSA)의 경우, 데이터 교환(data exchange)(DA) 동안 다른 컴퓨터들로부터 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 자기 자신의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여, 자기 자신의 컴퓨터 상태(RS) 및 적어도 하나의 다른 컴퓨터(2-i)에 대한 예상 컴퓨터 상태(expected computer status)(E-RS)를 결정한다. 이는 또한 도 2에 개략적으로 예시되어 있다. 한편, 컴퓨터(i) 상에서 실행되는 마스터-슬레이브 선택 방법은, 컴퓨터(R) 자신이 맡을 컴퓨터 상태(RS)를 제어-인가된 컴퓨터로서 또는 제어-인가되지 않은 컴퓨터로서 결정하고, 시스템(1) 내의 각각의 다른 컴퓨터에 대한 예상 컴퓨터 상태(E-RS)를 부가적으로 결정한다. 여기서, 이는 적어도 하나의 다른 컴퓨터(2-i)와의 데이터 교환(DAS)에서 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 각각의 컴퓨터(2-i) 자신의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여 발생한다. 가능한 일 실시예에서, 컴퓨터가 맡을 컴퓨터 상태는 부가적으로, 도 2에 개략적으로 예시된 바와 같이, 컴퓨터에서 발생하는 적어도 하나의 컴퓨터 인터럽트(computer interrupt)(RI)의 함수로써 결정된다. 이 컴퓨터 인터럽트는 예컨대 각각의 컴퓨터(2-i)에 대한 전력 인터럽트이다.
게다가, 시스템(1)의 컴퓨터(2-i)는 각각의 경우에서, 도 2에 또한 개략적으로 표시되는 바와 같이, 마스터-슬레이브 선택(MSA) 동안, 상태 데이터 및 성능 데이터에 기반하여 그리고 시스템의 다른 컴퓨터들에 의해 각각의 컴퓨터(2-i)에 대해 결정된 예상 컴퓨터 상태(E-RS)에 기반하여, 컴퓨터(2-i) 자신이 맡을 컴퓨터 상태를 결정할 수 있다.
도 2에 예시된 마스터-슬레이브 선택 방법은, 도 1에 예로서 예시된 바와 같이, 신뢰도-중요 시스템(1)의 모든 비동기식의 리던던트하게 제공된 컴퓨터들(2-i)에 대해 수행된다. 시스템(1)은 바람직하게, 페일세이프 제어 데이터(SD)가 시스템(1)의 적어도 하나의 액추에이터 시스템(3)에 송신되는 리던던트 신뢰도-중요 시스템, 특히 분산형 시스템이다. 제어 데이터(SD)는, 제어 데이터(SD)를 송신하도록 인가된, 시스템(1)의 해당 컴퓨터(2-i)로부터 송신된다.
컴퓨터(2-i)의 확인 시간 기간의 만료 후에, 컴퓨터(2-i)에 대해 결정된 마스터 컴퓨터 상태(M-RS)를 맡는 컴퓨터(2-i)는, 제어 데이터(SD)를 액추에이터 시스템(3)에 송신하고, 컴퓨터(2-i) 상에서 실행되는 마스터-슬레이브 선택(MSA-i)이 이 컴퓨터(2-i)에 대해 상이한 컴퓨터 상태(RS)를 결정할 때까지 자신이 맡은 마스터 컴퓨터 상태를 유지한다.
슬레이브 컴퓨터 상태(S-RS)를 맡은 컴퓨터(2-i)는, 이전에 마스터 컴퓨터 상태(M-RS)를 맡은 다른 컴퓨터가 상이한 컴퓨터 상태를 맡고 그리고 각각의 컴퓨터 상에서 실행된 마스터-슬레이브 선택(MSAi)이 각각의 컴퓨터(2-i)에 대해 마스터 컴퓨터 상태(M-RS)를 결정할 때까지, 이 맡은 슬레이브 컴퓨터 상태로부터 마스터 컴퓨터 상태로 전환하지 않는다.
리던던트 시스템(1), 특히 복수의 컴포넌트들로 이루어진 리던던트 시스템(1)에서 제어 인가 또는 송신 인가 또는 책임을 할당하기 위한 본 발명에 따른 방법에서, 액추에이터 시스템(3)은, 액추에이터 시스템(3)을 제어하도록 인가된, 시스템(1)의 정확히 하나의 컴퓨터(2-i)에 의해 제어된다. 이와 관련하여, 시스템(1)의 컴포넌트들의 상태 데이터(ZD) 및 성능 데이터(LD)가 선택되고(take up) 사용된다. 평가된 데이터에 기반하여, 시스템(1)의 정확히 하나의 컴포넌트 또는 제어 컴포넌트, 즉, 정확히 하나의 컴퓨터(2-i)는 마스터로서, 자신에게 할당된 액추에이터 시스템(3)의 제어에 대한 인가 또는 책임을 갖는다. 이 마스터는 마스터로서, 액추에이터 시스템(3)의 제어만을 담당하며, 마스터-슬레이브 선택이 자신을 슬레이브로 강등(degrade)할 때까지 그대로 유지한다. 슬레이브는 슬레이브를 유지하며, 액추에이터 시스템(3)의 제어를 담당하지 않고, 자신이 마스터로 승격(promote)될 때까지 그대로 유지한다. 게다가, 슬레이브는, 마스터가 슬레이브로 강등될 때까지 마스터가 되지 않으며, 슬레이브는 자신이 액추에이터 시스템(3)을 제어할 준비가 되었다고 선언한다.
컴퓨터들(2-i) 간에 교환되는 상태 데이터(ZD)는 컴퓨터들의 상태 데이터를 포함한다. 컴퓨터는 바람직하게, 3개의 상이한 컴퓨터 상태들(RS), 구체적으로는, 마스터 컴퓨터 상태(M-RS), 슬레이브 컴퓨터 상태(S-RS) 및 마스터 중간 컴퓨터 상태(MI-RS) 중 하나를 맡을 수 있다. 마스터 중간 상태(MI-RS)는 예컨대, 컴퓨터의 시동 시에 맡겨진다. 마스터 중간 상태 또는 마스터 중간 컴퓨터 상태(MI-RS)는, 각각의 컴퓨터가 현재, 마스터 컴퓨터 상태(M-RS)를 맡은 어떠한 다른 컴퓨터를 알 수 없다는 것을 표시한다. 마스터 중간 컴퓨터 상태(MI-RS)는 하나 또는 그 초과의 사이클들 동안 시스템(1)의 다수의 컴퓨터들(2-i)이 동시에 맡을 수 있다. 마스터 중간 컴퓨터 상태(MI-RS)를 맡은 이들 컴퓨터들은 이 시간 기간 동안 액추에이터 시스템(3)에 대해 마스터로서 동작한다.
시스템(1)의 컴퓨터들(2-i) 간에 교환되는 상태 데이터(ZD)는 각각의 컴퓨터들의 컴퓨터 상태(RS)를 포함한다. 그러므로, 상태 데이터는 마스터-슬레이브 정보(마스터, 슬레이브, 중간)를 포함하고, 가능한 일 실시예에서는, 추가의 데이터, 특히 타임아웃-단축 명령(timeout-shortening instruction)들 및 다른 상태 데이터를 포함할 수 있다. 상태 데이터(ZD)에 부가하여, 성능 데이터(LD)가 또한, 컴퓨터들(2-i) 간에 교환된다. 이들 성능 데이터(LD)는 성능 레벨(performance level) 또는 효율성 레벨을 명시한다. 이 성능 레벨은 예컨대 스케일(scale)로서 구현되는데, 예컨대 0 내지 9의 값 범위로 구현된다. 이 성능 레벨은 바람직하게, 예컨대 관찰 유닛(observed unit)(BE)을 형성하는 복수의 애플리케이션들을 포함하는 파티션 클러스터의 또는 애플리케이션(A)의 실행 품질을 설명한다. 여기서, 컴퓨터(2-i)는 바람직하게, 컴퓨터가 특정 관찰 유닛(애플리케이션 또는 파티션 클러스터)에 대해 더 양호한 또는 더 높은 성능 레벨을 제공할 수 있게 되자마자, 마스터 컴퓨터로 승격되거나 또는 마스터 컴퓨터 상태(M-RS)를 수신한다. 본 발명에 따른 방법을 이용시, 성능 레벨 또는 성능 데이터(LD)뿐만 아니라 컴퓨터들의 상태 또는 상태 데이터(ZD)가 또한 고려된다. 그러므로, 본 발명에 따른 방법을 이용시, 컴퓨터들은 시스템(1)의 다양한 동작 단계들 동안, 특히 시스템(1)의 시동 동안 묵시적으로 우선순위선정된다.
시스템의 컴퓨터(2-i)의 각각의 상태에 대해, 자기 자신의 우선순위 또는 자기 자신의 성능 레벨이 다른 또는 상대(opposite) 컴퓨터와 비교하여 동일한지, 더 작은지 또는 더 큰지에 대해서만 체크되기보다는, 바람직하게는 자기 자신의 우선순위에 대해 시스템(1)의 상대 컴퓨터(2-i)가 어떤 예상(expectation)을 갖는지 및 그 각각의 자신의 컴퓨터에 대해 다른 컴퓨터(2-i)가 어떤 예상 컴퓨터 상태(E-RS)를 결정했는지에 대해서 또한 체크된다. 즉, 본 발명에 따른 방법의 가능한 실시예에서, 각각의 컴퓨터가 마스터 컴퓨터 상태를 맡을지의 여부를, 상대 컴퓨터가 예상 컴퓨터 상태로서 결정하였는지가 부가적으로 고려된다.
다음의 테이블(table)(TAB)은 본 발명에 따른 방법 및 본 발명에 따른 시스템(1)의 가능한 구현을 도시한다.
테이블에서 명시된 구현은, 도 1에 예시된 바와 같이 2개의 컴퓨터들(2-1, 2-2)을 갖는 시스템(1)과 관련된다. 테이블은 파라미터화된 룩업 테이블(parameterized lookup table)로서 구현될 수 있다. 각각의 컴퓨터는 대응하는 룩업 테이블을 갖는다. 여기서, 파라미터(parameter)들은 타임아웃들 또는 지연들을 구현하기 위한 카운터 판독(counter reading)에 의해 형성된다. 테이블에서 표현된 예시적 구현 동안, 2개의 컴퓨터들에 대한 37개의 가능한 시스템 상태들이 룩업 테이블의 37개의 라인(line)들에서 예시된다. 2개의 컴퓨터들(2-1, 2-2) 각각은 슬레이브 컴퓨터, 마스터 중간 컴퓨터 또는 마스터 컴퓨터로서의 역할을 맡는다. 마스터-슬레이브 선택 방법에 의해 생성된 플래그들 또는 출력 데이터는, 테이블에서 예시된 바와 같이, 사이클(i) 및 사이클(i+1) 동안 출력된다.
테이블의 제 1 열은 다양한 시스템 상태들에 대한 식별자(identifier)(ID)를 명시한다.
제 2 열은 시스템(1) 내의 제 1 컴퓨터(2-i)의 역할을 명시한다.
제 3 열은 동일한 시스템(1)의 다른 컴퓨터(2-2)와의 비교에서 이 컴퓨터(2-i)의 우선순위 또는 성능 레벨을 도시한다. 이는, 제 1 컴퓨터(2-1) 자신의 성능 레벨이, 다른 상대 컴퓨터(2-2)의 성능 레벨과 동일하거나, 더 낮거나 또는 더 높다는 것을 의미한다.
제 4 열에서는, 다른 컴퓨터(2-2)에 의해 결정된 예상 컴퓨터 상태(E-RS), 즉, 제 1 컴퓨터(2-1)에 대해 제 2 컴퓨터(2-2)에 의해 결정된 예상 컴퓨터 상태(E-RS)가 예시된다.
테이블의 제 5 열에서는, 인터럽트 표시가 명시되는데, 즉, 컴퓨터에 대한 컴퓨터 인터럽트(RI), 특히 전력 인터럽트가 존재하는지 여부가 명시된다.
테이블에 예시된 예시적 구현의 경우, 예상 컴퓨터 상태(E-RS)는 값 0 또는 값 1을 취할 수 있다. 각각의 경우에서, 0은, 다른 컴퓨터 또는 상대 컴퓨터(2-2)가, 그 자신의 제 1 컴퓨터(2-1)가 마스터가 아니라고 생각한다는 것을 의미한다. 역으로, 1은, 다른 상대 컴퓨터(2-2)가 그 자신의 제 1 컴퓨터(2-1)가 마스터라고 생각한다는 것을 의미한다.
마스터가 선택되고 프로세스(process)가 시작되는 경우, 인터럽트 표시가 설정된다. 이는 예컨대, 컴퓨터의 재시작 또는 시동이 발생하는지 여부에 대한 검출 부호로서 사용될 수 있다. 시스템(1) 내에서의 컴퓨터의 진행중인 동작 동안, 예컨대 전력 인터럽트들 ― 전력 인터럽트 동안 컴퓨터가 작동이 안되고, 이후에 다시 전원이 들어옴(power up) ― 로 지칭되는 것이 발생할 수 있다.
테이블에 제시되는 열 "beMSStatusOwn"은, 각각의 컴퓨터가 마스터라는 것을 명시한다. 다음번 열 "beMSStatusIntermediate"는, 컴퓨터가 마스터 중간 컴퓨터 상태(MI-RS)를 맡았다는 것을 표시한다. 열 "pcMSStatusOpp"는, 다른 상대 컴퓨터(Opp computer)가 마스터 컴퓨터가 될 것이라는 것을 표시한다. 테이블에 제시되는 하나의 x 기호는, 각각의 포인트(point)에서의 스테이트먼트(statement)가 부적합하다는 것을 표시한다.
사이클(i)과 관련된 열들은, 사이클(i)에 대한 스토리지 업데이트(storage update)를 도시한다. 사이클(i+1)에 대한 열들은, 사이클(i+1)에 대한, 즉, 시스템(1)의 다음번 사이클에 대한 스토리지 업데이트를 표시한다.
다음번 사이클(i+1)에 대한 플래그들 또는 출력 데이터의 계산의 경우, 각각의 컴퓨터(2-i)는, 마스터 슬레이브 선택(MSA)에 대해 다른 상대 컴퓨터를 고려하기보다는 자기 자신을 고려한다. 다른 상대 컴퓨터는 또한, 그것과 독립적으로 마스터-슬레이브 선택 방법(MSA)을 수행하고, 자신이 무슨 상태를 맡는지를 스스로 결정한다.
컴퓨터가 다른 컴퓨터들로부터 어떠한 데이터도 수신하지 않는 경우, 마스터-슬레이브 선택 방법은 디폴트(default)로 또는 디폴트 값들로 동작한다.
테이블의 라인 1에서 시작하여, 다음이 발생한다. 각각의 컴퓨터가 슬레이브 컴퓨터인 경우, 즉, 슬레이브 컴퓨터 상태(S-RS)를 맡고, 다른 상대 컴퓨터와 동일한 우선순위 또는 동일한 성능 레벨을 갖는 경우, 그리고 각각의 컴퓨터가 마스터 컴퓨터가 될 것이라는 것을 다른 컴퓨터가 예상하지 않는 경우, 그리고 또한 어떠한 컴퓨터 인터럽트(RI)도 발생하지 않는 경우, 각각의 컴퓨터는 테이블의 라인 1 상에서 예시된 바와 같이, 마스터 중간 컴퓨터 상태(MI-RS)로 설정된다. 게다가, 컴퓨터는 동작의 인수(assumption)에 대한 표시를 설정한다. 표시의 설정에 의해 시작된 컴퓨터-특정 타이머(timer)(메이크오버(makeover))가 만료된 경우, 즉, n개의 사이클들 중 미리 정의된 수의 사이클들 후에, 컴퓨터는 마스터 중간 컴퓨터 상태(MI-RS)로부터 마스터 컴퓨터 상태(M-RS)로 변경된다.
타이머는 반응 시간(reaction time)을 측정한다. 이 반응 시간은 바람직하게, 컴퓨터-특정 방식으로 설정되고, 바람직하게는 각각의 컴퓨터(2-i)에 대해 상이하다.
테이블에 표시된 라인들은 가능한 상태들 및 계산들의 순열(permutation)들을 나타낸다. 테이블에 제시된 개별 라인들은 어떠한 시간 시퀀스(time sequence)도 나타내지 않는다. 일반적으로, 전이 시나리오(transition scenario)들이 수행될 때, 테이블의 몇몇 라인들에 걸쳐, 초기 상태들을 가진 초기 상황으로부터 결과적인 상태들을 가진 최종 상황으로의 점프(jump)가 존재한다. 여기서, 컴퓨팅 사이클(computing cycle) 당 하나의 라인이 프로세싱된다(processed).
최대 가능 기능 품질 또는 성능 품질을 결정할 수 있기 위해, 각각의 관찰 유닛(BE)에 대해, 즉, 각각의 애플리케이션에 대해 또는 복수의 애플리케이션들로 이루어진 각각의 파티션 클러스터(PC)에 대해 성능 레벨 또는 효율성이 주기적으로 결정될 수 있다.
이들 성능 데이터(LD)는 시스템(1)의 다양한 컴퓨터들 간에 주기적으로 교환되며, 그에 따라 상기 컴퓨터들은 그 자체로, 어느 컴퓨터가 관찰 유닛에 대해 최상의 성능을 제공할 수 있는지를 결정할 수 있다.
방법은 주기적 동작 동안 다음의 전략을 추구한다:
컴퓨터가 관찰 유닛에 대해 마스터인 경우, 컴퓨터는, 자신이 자발적으로 이 마스터 역할 또는 이 마스터 컴퓨터 상태를 포기할 때까지 마스터를 유지한다.
2개의 컴퓨터들이 동시에 마스터 슬레이브 분배에 참여하는 경우, 슬레이브 역할을 맡은 그 컴퓨터는, 이전의 마스터가 자신의 역할을 포기하거나 또는 마스터 슬레이브 선택 방법에서 자발적으로 슬레이브 컴퓨터로 강등될 때에만, 마스터로 스위칭(switch)된다. 마스터 컴퓨터는, 예컨대 자신이 장애가 났을 경우, 자신의 마스터 역할을 잃는다.
본 발명에 따른 방법은, 책임 또는 제어 인가의 할당의 복잡성을 상당히 감소시킨다.
가능한 일 실시예에서, 마스터-슬레이브 선택(MSA)은 바람직하게, 컴퓨터(2-i)의 마이크로프로세서(microprocessor) 상에서 실행되는 대응 프로그램(program)에 의해 이루어진다. 각각의 컴퓨터(2-i)는 다른 컴퓨터들과 독립적으로 이러한 마스터-슬레이브 선택(MSA)을 자발적으로 실행한다. 마스터-슬레이브 선택(MSA)은 모든 컴퓨터들의 컴퓨터 상태(RS) 및 컴퓨터들의 현재 상태에 의존한다. 구현된 룩업 테이블은, 컴퓨터들 모두가 동작하는 경우에 기능하는 방법을 도시한다.
본 발명에 따른 방법 및 본 발명에 따른 시스템(1)을 이용시, 어떠한 컴퓨터도 마스터로서 제어 데이터를 공급하지 않는 시간 윈도우들(time windows)(ZE)은 배제되거나 최소화된다. 결과적으로, 시스템의 안정성 및 그에 따른 신뢰도가 증가된다.
본 발명에 따른 시스템(1)의 추가의 이점은, 스위치-오버 트랜션트(switch-over transient)들이 최소화되는 것인데, 즉, 컴퓨터가 마스터 역할을 맡은 경우, 컴퓨터는 가능한 한 오랫동안 마스터를 유지한다. 이는 또한, 시스템(1), 특히 제어 알고리즘들의 안정성을 증가시키며, 그 결과, 시스템(1) 내에서의 신뢰도가 증가된다. 게다가, 본 발명의 방법 및 시스템(1)은, 시스템(1)의 액추에이터 시스템(3)이 항상 최대의 또는 최적의 성능으로 동작 또는 제어된다는 것을 보장한다. 이는 또한, 시스템(1)의 동작 신뢰도를 증가시킨다. 컴퓨터들에 의해 생성된 데이터는 바람직하게 제어 데이터, 특히 설정점 값들을 포함한다. 본 발명에 따른 시스템(1)에서, 마스터 컴퓨터 상태 및 슬레이브 컴퓨터 상태에 부가하여 마스터 중간 컴퓨터 상태가 사용되고, 그 마스터 중간 컴퓨터 상태는 컴퓨터들을 서로에 대해 조정하는 역할을 하고, 특히 마스터-마스터 충돌들을 또한 회피하거나 최소화한다. 결과적으로, 어떠한 마스터 컴퓨터도 이용가능하지 않은 시간 윈도우들은 배제되거나 최소화된다. 자기 자신의 상태에 부가하여, 각각의 컴퓨터는 다른 컴퓨터들과 교환된 성능 데이터 및 상태 데이터를 고려한다. 게다가, 컴퓨터가 맡을 컴퓨터 상태에 대한 다른 컴퓨터들의 예상 거동이 바람직하게 고려된다. 인터럽트의 발생은 바람직하게, 컴퓨터 상태 또는 제어 인가의 결정에서 또한 고려된다.
본 발명의 방법 및 시스템(1)은 다양한 방식들로, 특히 분산형 컴퓨터 구조들을 갖는 신뢰도-중요 시스템들에서 사용될 수 있다. 본 발명의 방법 및 시스템(1)은 예컨대, 산업 시스템들 또는 제조 시스템들 및 운송 디바이스(transportation device)들, 예컨대 기차들 또는 자동차들에 적합하다.
본 발명에 따른 방법의 가능한 일 실시예에서, 컴퓨터들은 다양한 내부 상태들, 예컨대, 듀플렉스 제어 컴퓨터(DDC; duplex control computer) 상태들을 맡을 수 있다. 이들 상태들은 예컨대, "현재 활성임(I am active)", "현재 초기화중임(currently initializing myself)", "곧 완전히 이용가능해질 것임(about to become fully available)", "완전히 이용가능함(fully available)", "전체 시스템에서의 현재 역할을 지금 식별하고 있음(just identifying my current role in total system)", "전체 시스템에서 마스터로서 역할을 유지하고 있음(maintaining my role as master in total system)", "마스터를 물러나서 슬레이브가 되고 있음(withdrawing as master and becoming slave)" 등을 포함한다.
제어-인가된 컴퓨터는 시스템(1)의 액추에이터 시스템(3)을 제어할 수 있으며, 어느 것이 궁극적으로 액추에이터 시스템(3)을 제어할지에 대해 시스템(1)의 나머지 또는 컴퓨터들 중 나머지와 합치(agree)할 수 있다. 컴퓨터가 슬레이브 역할을 맡은 경우, 컴퓨터는 액추에이터 시스템(3)에 대한 제어 데이터(SD)를 계속 계산하고 상기 제어 데이터(SD)를 내부 메모리(internal memory)에 기록한다. 그러나, 이러한 제어 데이터(SD)는 슬레이브 컴퓨터 상태(S-RS)를 맡은 컴퓨터에 의해서는 액추에이터 시스템(3)에 전달되지 않는다. 컴퓨터가 마스터 역할을 맡고 그리고 마스터 컴퓨터 상태(M-RS)를 갖고 있는 한, 액추에이터 시스템(3)은 다른 컴퓨터에 의해 제어되지 않는다.
시스템(1)에서 존재하는 그리고 요구되는 비동시성 때문에, 시스템(1) 내의 특정 컴퓨터가 마스터 역할을 맡을 수 있는지의 여부가 먼저 계산되지만, 비동시성 때문에, 대응하는 결과는 여전히(still) 시스템(1) 내의 추가의 사이클들에 대해 수정되지 않은 채로 존재해야 한다. 이는, 확인을 위한 시간에 대한 필요성, 즉, 시스템이 확인 시간 기간을 기다리는 것에 대응한다. 이러한 확인 시간은 바람직하게 모든 관련 계산들에서 또한 고려된다. 이 확인 시간 기간이 만료되는 이후까지 컴퓨터의 스위칭 오버(switching over)는 발생하지 않는다.
시스템(1)의 액추에이터 시스템(3) 또는 액추에이터는 컴퓨터의 애플리케이션(A)에 의해 작동된다. 복합 시스템(1)은 복수의 액추에이터들을 포함할 수 있다. 이 경우, 제어 데이터(SD)는 또한 복수의 상이한 애플리케이션들에 의해 또는 하나의 파티션 클러스터(PC)에 의해 공동으로 생성될 수 있다.
Claims (15)
- 시스템(system)(1)으로서,
적어도 2개의 비동기 컴퓨터(asynchronous computer)들(2-i)을 갖고,
상기 적어도 2개의 비동기 컴퓨터들(2-i) 각각 상에서 적어도 하나의 애플리케이션(application)(A)이 실행되고, 상기 적어도 하나의 애플리케이션(A)은 적어도 하나의 액추에이터 시스템(actuator system)(3)을 위한 제어 데이터(control data)(SD)를 제공하고, 제공된 제어 데이터(SD)는 상기 액추에이터 시스템(3)의 제어를 위해, 마스터 컴퓨터 상태(master computer status)(M-RS)를 맡은 제어-인가된 컴퓨터(control-authorized computer)(2-i)로부터 상기 액추에이터 시스템(3)으로 송신되고,
상기 시스템(1)의 컴퓨터들(2-i)은 데이터 교환(data exchange)(DAS)에서 데이터 인터페이스(data interface)를 통해 상태 데이터(state data)(ZD) 및 성능 데이터(performance data)(LD)를 주기적으로 서로 교환하고,
상기 컴퓨터들(2-i)은, 상기 컴퓨터(2-i) 상에서 실행되는 마스터-슬레이브 선택(master-slave selection)(MSA)에서, 상기 데이터 교환(DAS)에서 다른 컴퓨터들(2-j)로부터 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 상기 컴퓨터들(2-i)의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여, 각각의 컴퓨터(2-i) 자신이 맡을 컴퓨터 상태(computer status)(RS)를 제어-인가된 또는 제어-인가되지 않은 컴퓨터(2-i)로서 각각 결정하는,
시스템(1). - 제 1 항에 있어서,
상기 컴퓨터(2-i)의 교환된 상태 데이터(ZD)는 상기 컴퓨터(2-i)의 상태 데이터를 갖고,
상기 컴퓨터(2-i)의 상태 데이터는 상기 컴퓨터의 컴퓨터 상태(RS)를 명시하는,
시스템(1). - 제 2 항에 있어서,
상기 컴퓨터(2-i)의 상기 컴퓨터 상태(RS)는,
- 제어-인가된 컴퓨터로서의 마스터 컴퓨터 상태(M-RS),
- 제어-인가되지 않은 컴퓨터로서의 슬레이브 컴퓨터 상태(slave computer status)(S-RS), 및
- 여전히(still) 제어-인가된 컴퓨터로서의 마스터 중간 컴퓨터 상태(master intermediate computer status)(MI-RS)를 갖는,
시스템(1). - 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 시스템(1)의 각각의 컴퓨터(2-i)에는 연관된 시간 윈도우(associated time window)(ZF)가 할당되고, 상기 연관된 시간 윈도우(ZF)에서 상기 컴퓨터(2-i)는 마스터-마스터 충돌(master-master conflict)을 회피하기 위해 마스터 중간 컴퓨터 상태(MI-RS)를 맡고,
할당된 시간 윈도우들(ZF)은 상기 시스템(1)의 다양한 컴퓨터들(2-i)에 대해 상이한,
시스템(1). - 제 4 항에 있어서,
상기 컴퓨터들(2-i)에 할당된 상기 시간 윈도우들(ZF)은 시간 기간(time period)(ZS)보다 각각 더 크고,
상기 시간 기간(ZS)은, 상기 컴퓨터들(2-i)의 서로간의 주기적 통신 동안의 비동시성(asynchronicity)에 의해 그리고/또는 상기 컴퓨터들(2-i)의 시동(startup) 동안의 비동시성에 의해 야기되는,
시스템(1). - 제 4 항 또는 제 5 항에 있어서,
2개의 상이한 컴퓨터들(2-i, R-j)에 할당되는 2개의 시간 윈도우들(ZF) 간의 시간 차이는, 각각의 다른 컴퓨터에 대한 데이터 전달 응답을 위해 필요한 시간 기간(ZS)보다 더 큰,
시스템(1). - 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
상기 컴퓨터(2-i)는, 확인 시간 기간(confirmation time period)의 만료 이후까지, 상기 컴퓨터(2-i)에 대해 결정된 상기 컴퓨터 상태(RS)를 맡지 않는,
시스템(1). - 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
상기 시스템(1)의 각각의 컴퓨터(2-i)는 각각의 경우에서, 다른 컴퓨터들(2-j)과의 데이터 교환(DAS) 동안 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 각각의 컴퓨터(2-i) 자신의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여, 다른 컴퓨터들(2-j)에 대한 예상 컴퓨터 상태(expected computer status)(E-RS)를 결정하는,
시스템(1). - 제 8 항에 있어서,
상기 시스템(1)의 각각의 컴퓨터(2-i)는 각각의 경우에서, 상기 컴퓨터(2-i) 상에서 실행되는 상기 마스터-슬레이브 선택(MSA) 동안, 상태 데이터(ZDOwn, ZDOpp) 및 성능 데이터(LDOwn, LDOpp)에 기반하여 그리고 다른 컴퓨터들(R-j)에 의해 각각의 컴퓨터(2-i)에 대해 결정된 예상 컴퓨터 상태(E-RS)에 기반하여, 컴퓨터(2-i) 자신이 맡을 컴퓨터 상태(RS)를 결정하는,
시스템(1). - 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 컴퓨터(2-i)가 맡을 상기 컴퓨터 상태(RS)는 부가적으로, 상기 컴퓨터(2-i)에서 발생하는 적어도 하나의 컴퓨터 인터럽트(computer interrupt)(RI), 특히 전력 인터럽트의 함수로써 결정되는,
시스템(1). - 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
상기 시스템(1)은, 제어 데이터(SD)를 페일세이프 방식(failsafe fashion)으로 적어도 하나의 액추에이터 시스템(actuator system)(AKT)에 송신하는 리던던트 신뢰도-중요 시스템(redundant reliability-critical system), 특히 분산형 시스템인,
시스템(1). - 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
자신에 대해 결정된 마스터-컴퓨터 상태(M-RS)를 맡은 상기 컴퓨터(2-i)는, 상기 컴퓨터(2-i)의 확인 시간 기간의 만료 후에 제어 데이터(SD)를 상기 액추에이터 시스템(3)에 송신하고, 그리고 상기 컴퓨터(2-i) 상에서 실행되는 마스터-슬레이브 선택(MSA)이 상기 컴퓨터(2-i)에 대해 상이한 컴퓨터 상태(RS)를 결정할 때까지, 자신의 맡은 마스터-컴퓨터 상태(M-RS)를 유지하는,
시스템(1). - 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
슬레이브 컴퓨터 상태(slave computer status)(S-RS)를 맡은 상기 컴퓨터(2-i)는, 지금까지 마스터 제어 상태(M-RS)를 맡은 다른 컴퓨터(2-j)가 상이한 컴퓨터 상태(RS)를 맡고 그리고 각각의 컴퓨터(2-i) 상에서 실행되는 상기 마스터-슬레이브 선택(MSA)이 각각의 컴퓨터(2-i)에 대해 마스터 컴퓨터 상태(M-RS)를 결정할 때까지, 자신이 맡은 슬레이브 컴퓨터 상태(S-RS)로부터 마스터 컴퓨터 상태(M-RS) 변경되지 않는,
시스템(1). - 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
상기 컴퓨터(2-i)의 상태 데이터(ZD)는 상기 컴퓨터(2-i)의 상태를 명시하고, 그리고
상기 성능 데이터(LD)는 상기 제어 데이터(SD)를 생성하기 위해 상기 컴퓨터(2-i) 상에서 실행되는 상기 적어도 하나의 애플리케이션(A)의 성능을 명시하는,
시스템(1). - 시스템(1)의 복수의 비동기 컴퓨터들 중 하나에 제어 인가(control authorization)를 할당하기 위한 방법으로서,
상기 제어 인가는 액추에이터 시스템(3)을 제어하도록 컴퓨터(2)를 인가하고,
상기 방법은,
(a) 각각의 컴퓨터(2-i) 상에서 실행되는 마스터-슬레이브 선택(MSA)에 의해, 데이터 교환(DAS) 동안 다른 컴퓨터들(2-j)로부터 획득된 상태 데이터(ZDOpp) 및 성능 데이터(LDOpp)에 기반하여 그리고 각각의 컴퓨터(2-i) 자신의 상태 데이터(ZDOwn) 및 성능 데이터(LDOwn)에 기반하여, 각각의 컴퓨터(2-i)가 맡을 컴퓨터 상태(RS)를 각각의 컴퓨터(2-i)에 대해 결정하는 단계(S1);
(b) 컴퓨터(2)의 마스터-슬레이브 선택(MSA)에서 마스터-컴퓨터 상태(M-RS)로 결정된 상기 컴퓨터(2)에, 상기 액추에이터 시스템(3)을 제어하기 위한 제어 인가를 할당하는 단계(S2)를 갖는,
시스템(1)의 복수의 비동기 컴퓨터들 중 하나에 제어 인가를 할당하기 위한 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014214974 | 2014-07-30 | ||
DE102014214974.6 | 2014-07-30 | ||
PCT/EP2015/067031 WO2016016135A1 (de) | 2014-07-30 | 2015-07-24 | Verfahren und system zum zuweisen einer steuerberechtigung zu einem rechner |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170039256A true KR20170039256A (ko) | 2017-04-10 |
KR101995515B1 KR101995515B1 (ko) | 2019-07-02 |
Family
ID=53776573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177005634A KR101995515B1 (ko) | 2014-07-30 | 2015-07-24 | 제어 인가를 컴퓨터에 할당하기 위한 방법 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10613502B2 (ko) |
EP (1) | EP3143506B1 (ko) |
KR (1) | KR101995515B1 (ko) |
CN (1) | CN106537268B (ko) |
WO (1) | WO2016016135A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018184699A1 (en) * | 2017-04-07 | 2018-10-11 | Ecole Polytechnique Federale De Lausanne (Epfl) | A controller and an agreement protocol for a real-time control system |
US10843792B2 (en) | 2018-02-01 | 2020-11-24 | Hamilton Sundstrand Corporation | Autonomous reconfiguration of a multi-redundant actuator control system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272753A (ja) * | 1995-03-30 | 1996-10-18 | Fujitsu Ltd | 二重化構成をもつシステム制御装置 |
US20050097165A1 (en) * | 2002-03-11 | 2005-05-05 | Metso Automation Oy | Redundancy in process control system |
EP1860564A1 (de) * | 2006-05-26 | 2007-11-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Austausch von Daten auf Basis des OPC-Kommunikationsprotokolls zwischen redundanten Prozessautomatisierungskomponenten |
US20130290776A1 (en) * | 2012-04-27 | 2013-10-31 | Siemens Aktiengesellschaft | Redundant Automation System and Method for Operating the Redundant Automation System |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1024963C (zh) | 1989-04-04 | 1994-06-08 | 横河电机株式会社 | 双计算机*** |
JP3858696B2 (ja) | 2000-04-28 | 2006-12-20 | 株式会社日立製作所 | 多重化制御システム及びその多重化方法 |
US6564721B2 (en) * | 2001-03-26 | 2003-05-20 | Robert L. Stiles | Rail transport system |
DE102004050350B4 (de) | 2004-10-15 | 2006-11-23 | Siemens Ag | Verfahren und Vorrichtung zur Redundanzkontrolle von elektrischen Einrichtungen |
JP4165499B2 (ja) | 2004-12-13 | 2008-10-15 | 日本電気株式会社 | コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法 |
JP2006178616A (ja) | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム |
CN101794142B (zh) * | 2009-11-02 | 2012-06-13 | 三一重机有限公司 | 一种双机冗余控制方法及其控制装置 |
CN103455005B (zh) | 2013-09-06 | 2015-07-22 | 北京四方继保自动化股份有限公司 | 一种控制器冗余及切换方法 |
-
2015
- 2015-07-24 EP EP15745429.9A patent/EP3143506B1/de active Active
- 2015-07-24 US US15/500,381 patent/US10613502B2/en active Active
- 2015-07-24 WO PCT/EP2015/067031 patent/WO2016016135A1/de active Application Filing
- 2015-07-24 CN CN201580040702.5A patent/CN106537268B/zh active Active
- 2015-07-24 KR KR1020177005634A patent/KR101995515B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272753A (ja) * | 1995-03-30 | 1996-10-18 | Fujitsu Ltd | 二重化構成をもつシステム制御装置 |
US20050097165A1 (en) * | 2002-03-11 | 2005-05-05 | Metso Automation Oy | Redundancy in process control system |
EP1860564A1 (de) * | 2006-05-26 | 2007-11-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Austausch von Daten auf Basis des OPC-Kommunikationsprotokolls zwischen redundanten Prozessautomatisierungskomponenten |
US20100005336A1 (en) * | 2006-05-26 | 2010-01-07 | Carsten Jordan | Method and Device for Exchanging Data on the Basis of the Opc Communications Protocol Between Redundant Process Automation Components |
US20130290776A1 (en) * | 2012-04-27 | 2013-10-31 | Siemens Aktiengesellschaft | Redundant Automation System and Method for Operating the Redundant Automation System |
Also Published As
Publication number | Publication date |
---|---|
US10613502B2 (en) | 2020-04-07 |
CN106537268B (zh) | 2019-10-11 |
EP3143506B1 (de) | 2019-09-04 |
EP3143506A1 (de) | 2017-03-22 |
KR101995515B1 (ko) | 2019-07-02 |
US20170220018A1 (en) | 2017-08-03 |
WO2016016135A1 (de) | 2016-02-04 |
CN106537268A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160046265A1 (en) | Interface for interchanging data between redundant programs for controlling a motor vehicle | |
US9170569B2 (en) | Method for electing an active master device from two redundant master devices | |
CN107526290B (zh) | 用于运行控制器的方法 | |
EP2984528B1 (en) | Control of aircraft systems with at least two remote data concentrators for control of an aircraft system component | |
JP2010505167A (ja) | 工作機械を操作するための操作装置 | |
KR101995515B1 (ko) | 제어 인가를 컴퓨터에 할당하기 위한 방법 및 시스템 | |
JP2015176191A (ja) | コントローラ | |
US9276762B2 (en) | Method for allocating subscriber addresses to bus subscribers of a bus-based control system | |
WO2007074905A1 (ja) | ネットワーク機器システム | |
US20130253706A1 (en) | Safety signal processing system | |
JP7000686B2 (ja) | 制御装置 | |
CN105022333A (zh) | 具有多个cpu模块的plc***及其控制方法 | |
CN110450850B (zh) | 转向控制装置、转向控制方法以及转向*** | |
WO2019082627A1 (ja) | 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 | |
JP2003296133A (ja) | コントローラ | |
EP2547045A1 (en) | Field communication system | |
JP2004220326A (ja) | 制御ソフトウエア構造およびこの構造を用いた制御装置 | |
CN102722466A (zh) | 一种3取2或2取2控制***中的16位多总线电路 | |
CN111052683B (zh) | 网络*** | |
JP5335869B2 (ja) | 制御システム | |
CN202748784U (zh) | 一种3取2或2取2控制***中的16位多总线电路 | |
KR20180031163A (ko) | 캐스케이드 시스템에서 마스터 고장 시 신규 마스터 자동 등록 시스템 및 방법 | |
KR102485286B1 (ko) | 차량용 마스터 제어기, 차량용 슬레이브 제어기, 및 차량용 슬레이브 제어기의 태스크 수행 방법 | |
JP7023726B2 (ja) | 二重化制御システム | |
JP2007241570A (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 |