[go: up one dir, main page]

KR20000022171A - 동기화 방법 - Google Patents

동기화 방법 Download PDF

Info

Publication number
KR20000022171A
KR20000022171A KR1019980710589A KR19980710589A KR20000022171A KR 20000022171 A KR20000022171 A KR 20000022171A KR 1019980710589 A KR1019980710589 A KR 1019980710589A KR 19980710589 A KR19980710589 A KR 19980710589A KR 20000022171 A KR20000022171 A KR 20000022171A
Authority
KR
South Korea
Prior art keywords
synchronization
sequence
machine
instruction
incremental
Prior art date
Application number
KR1019980710589A
Other languages
English (en)
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 KR20000022171A publication Critical patent/KR20000022171A/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24186Redundant processors are synchronised
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25483Synchronize several controllers using messages over data bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)
  • Programmable Controllers (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

본 발명은 서로 대응하는 장소에 동기화 카운터(SZ, SZ')의 증분을 위한 증분 스테이트먼트(IA)를 포함하는 기계 명령(MP)의 기능상 동일한 시퀀스를 프로세스의 제어를 위해 실행하는 적어도 2개의 부분 시스템(2, 2')으로 이루어진 리던던트 자동화 시스템(1)용 동기화 방법에 관한 것이다. 동기화는 적어도 하나의 부분 시스템(2, 2')이 특별 이벤트(11)를 레지스트할 때 동기화 카운터(SZ, SZ')의 값에 의해 이루어진다. 이것을 위해, 동기화 카운터 목표치(SZZ)가 검출됨으로써, 각각의 동기화 카운터(SZ, SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달하는 동기화 위치(SP)에 도달할 때 부분 시스템이 기계 명령(MP) 시퀀스의 실행을 중단시킨다.

Description

동기화 방법
자동화 시스템의 동기화 방법은 일반적으로 공지되어 있다. 유럽 특허 제 0 497 147호에 따른 방법에서 2개의 부분 시스템으로 형성된 자동화 시스템의 부분 시스템들이 늦어도 사용자에 의해 미리 선택 가능한 시간의 경과한 후에 동기화된다. 유사한 것이 유럽 특허 공개 제 EP-A-0 616 274호에도 적용된다. 여기서, 동기화는 기계 명령들의 하나의 시퀀스의 실제 실행 시간에 따라 이루어진다. 이것을 위해, 응용 프로그램의 명령의 실행 시간을 알아야 하고 상기 실행 시간을 계속 가산해야 한다. 공지된 방법은 동기화를 위해 불필요하게 많은 시간이 소요된다는 점에서 최상이지 못하다.
본 발명은 적어도 2개의 부분 시스템으로 이루어지고, 상기 부분 시스템이 적어도 하나의 프로세서를 포함하며 통신 수단을 통해 서로 결합되고 하나의 프로세스를 제어하기 위해 기계 명령의 기능상 동일한 시퀀스를 실행하며 때때로 통신 수단을 통해 서로 동기화되는, 리던던트(redundant) 자동화 시스템의 동기화 방법에 관한 것이다.
도 1은 자동화 시스템의 블록 회로도이고,
도 2는 동기화 방법의 원리를 설명하기 위한 도면이며,
도 3은 동기화 방법의 플로우 챠트이고,
도 4는 삽입 방법의 원리를 설명하기 위한 도면이며,
도 5 및 6은 삽입 방법의 플로우 챠트이다.
본 발명의 목적은 최소 비용으로 적어도 2개의 부분 시스템으로 형성된 자동화 시스템용 동기화 방법을 제공하는 것이다. 상기 동기화 방법은 특별한 하드웨어의 존재 여부와 무관해야 한다. 본 발명에 따른 동기화 방법은 또한 자동화 시스템의 계산 능력을 가급적 적게 저하시켜야 한다.
상기 목적은 청구범위 제 1항 또는 2항에 제시된 특징에 따른 방법에 의해 달성된다.
상기 동기화 방법은 증분 스테이트먼트에 의해 증분되는, 즉 1씩 증가되는 각각의 부분 시스템용 카운터 -이하, 동기화 카운터라 함- 를 기초로 한다. 증분은 프로세서에 있어 매우 간단한 과제이며, 개별 경우 단 하나의 클록 주기 이내에, 즉 매우 신속히 이루어진다.
동기화는 적어도 2개의 부분 시스템 중 하나가 -이하, 경보 표시된 부분 시스템이라 함- 특별 이벤트, 예컨대 인터럽트 또는 알람을 레지스트하는 경우에 수행된다. 이 경우, 경보 표시된 부분 시스템은 적어도 하나의 다른 부분 시스템에 그것의 동기화 카운터의 실제값을 전송한다. 이러한 전송에 의해 적어도 하나의 다른 부분 시스템은 적어도 특별 이벤트가 발생했다는 것을 알게 된다. 적어도 하나의 다른 부분 시스템은 각각의 다른 부분 시스템에 그것의 동기화 카운터의 실제값을 전송한다. 따라서, 각각의 부분 시스템은 고유 동기화 카운터의 실제값 및 적어도 하나의 다른 부분 시스템의 동기화 카운터의 값을 전송받는다.
특별 이벤트의 발생 시점에서 기계 명령의 시퀀스를 실행할 때 하나의 부분 시스템이 적어도 하나의 다른 부분 시스템에 앞설 수 있다. 이러한 경우에는, 앞선 부분 시스템이 다수의 증분 스테이트먼트를 이미 실행함으로써, 부분 시스템들의 동기화 카운터의 값이 달라질 수 있다.
각각의 부분 시스템은 고유의 동기화 카운터의 값 및 적어도 하나의 다른 부분 시스템의 동기화 카운터의 값으로부터 실제 최대값을 검출한다. 모든 부분 시스템이 기계 명령 시퀀스의 후속 실행에 의해 공통으로 도달할 수 있는 동기화 카운터의 값은 동기화 카운터의 1씩 증가된 -즉, 증분된(incremented)- 최대값이다. 따라서, 각각의 부분 시스템에서 모든 부분 시스템의 동기화 카운터의 최대값이 증분된다. 모든 부분 시스템에 대해 동일한 상기 값은 이하, 동기화 카운터 목표치라 한다. 상기 동기화 카운터 목표치는 대안으로서, 먼저 동기화 카운터의 값이 증분된 다음, 동기화 카운터 목표치가 그것의 최대치로서 검출됨으로써 결정될 수도 있다.
부분 시스템은 각각의 동기화 카운터의 값이 동기화 카운터 목표치에 도달되는 증분 스테이트먼트의 위치 -이하, 동기화 위치라 함- 에 도달할 때 기계 명령 시퀀스의 실행을 중단시킨다. 상기 증분 스테이트먼트가 기계 명령의 기능상 동일한 시퀀스의 서로 대응하는 장소에 나타나기 때문에, 증분 스테이트먼트가 잠재 동기화 위치로서 매우 적합하다.
상기 동기화 위치의 도달은 각각의 동기화 카운터의 값과 동기화 카운터 목표치를 비교함으로써 매우 간단히 검출될 수 있다. 따라서, 상기 동기화 방법은 하나의 프로세스에 대해 매우 신속히 효율적으로 수행될 수 있는 증분 또는 비교 연산을 기초로 한다.
2개의 부분 시스템이 상이한 시점에서 그들의 동기화 위치에 도달할 수 있기 때문에, 각각의 부분 시스템이 동기화 신호로 동기화 위치의 도달을 적어도 하나의 다른 부분 시스템에 신호화한다. 그리고 나서, 각각의 부분 시스템은 적어도 하나의 다른 부분 시스템으로부터 동기화 위치에 도달했다는 것을 나타내는 동기화 신호의 입력을 기다린다. 하나 이상의 다른 부분 시스템이 있는 경우, 각각의 부분 시스템은 모든 다른 부분 시스템으로부터 동기화 신호의 입력을 기다리므로, 모든 부분 시스템이 동기화 위치에 도달할 때야 비로소 각각의 부분 시스템이 후속 동작을 수행한다. 그러나, 마찬가지로 동기화 위치의 도달시 동기화 신호가 교체되지 않는 경우도 가능하다.
각각의 부분 시스템은 동기화 위치의 도달 후에 그리고 적어도 하나의 다른 부분 시스템으로부터 동기화 신호의 레지스트 후에 특별 이벤트에 대한 고유 반응을 검출하고 이것을 실행한다. 상기 반응은 특별 이벤트에 대한 기계 명령의 고유 시퀀스이다. 그리고 나서, 각각의 부분 시스템은 동기화 위치의 도달시 동기화로 인해 그리고 특별 이벤트에 대한 반응으로 인해 실행을 보류했던 기계 명령 시퀀스의 실행을 속행한다.
경보 표시된 부분 시스템은 특별 이벤트의 레지스트 직후부터, 예컨대 동기화 카운터의 실제값 전송부터 동기화 신호의 전송까지의 어느 시점에서 특별 이벤트를 적어도 하나의 다른 부분 시스템에 전송한다.
특별 이벤트에 대한 고유 반응을 실행하기 위해 동기화 신호의 교체 또는 동기화 신호에 대한 대기가 이루어지지 않는 경우도 있다. 이러한 경우에는 동기화 위치의 도달시 특별 이벤트 고유 반응이 직접 실행된다. 그 경우 시간적 동기화가 이루어지지는 않지만, 본 발명에 따른 방법에 의해 특별 이벤트 고유 반응이 동시는 아니지만, 기계 명령 시퀀스내에서 기능상 동일한 위치에서 실행될 수 있다. 따라서, 소정 동기화가 보장되는데, 그 이유는 동기화 위치가 기능상 동일한 기계 명령 시퀀스의 서로 대응하는 위치에 배치되기 때문이다.
동기화 위치의 도달은 청구범위 제 3항에 따라 기계 명령 시퀀스의 한 기계 명령의 어드레스, 특히 실제로 실행되는 기계 명령의 어드레스 및 동기화 위치에 대응하는 기계 명령의 어드레스가 검출될 수 있을 때 특히 효율적으로 이루어질 수 있다.
이로 인해, 기계 명령 시퀀스의 실행시 -적어도 경보 표시된 부분 시스템에 의한 특별 이벤트의 레지스트 후에- 항상 실제로 실행되는 기계 명령의 어드레스가 동기화 위치에 대응하는 기계 명령의 어드레스와 비교된다. 비교되는 2개의 어드레스가 일치하면, 동기화 위치가 도달된다. 이렇게 함으로써, 기계 명령 시퀀스의 실행이 정확히 동기화 위치의 도달시 중단된다.
동기화 위치가 기계 명령 시퀀스의 조건부로 또는 무조건부로 반복되는 하나의 부분 시퀀스 내에 놓이는 경우, 개별 기계 명령이 여러번 처리된다. 그러나, 증분 스테이트먼트의 위치는 증분 스테이트먼트의 실행에 의해 동기화 카운터가 동기화 카운터 목표치에 도달할 때야 비로소 동기화 위치로 된다. 따라서, 루프의 경우 증분 스테이트먼트가 루프의 범주에서 여러번 처리되지만, 일정수의 처리 후에야 동기화 위치로 된다. 이 경우에는 증분 스테이트먼트의 어드레스 검출이 불충분하다. 이 경우 실제로 실행되는 기계 명령의 어드레스가 잠재 동기화 위치에 대응하는 기계 명령의 어드레스와 일치하고 동시에 동기화 카운터가 동기화 카운터 목표치와 일치할 때야 비로소, 동기화 위치가 도달된다.
전술한 바와 같이, 각각의 기계 명령의 어드레스가 검출될 수 있으면, 동기화 위치에 "브레이크-포인트"가 연결될 수 있으므로, 기계 명령 시퀀스의 실행이 정확히 동기화 위치에서 중단된다. 그 경우, 동기화 위치 -즉, 브레이크 포인트와 연결된 어드레스- 가 도달되는지의 여부를 체크하는 것은 프로세서가 직접 한다. 통상적으로 -INTEL사의 프로세서, 예컨대 i80386, i80486, 펜티엄, 등- 브레이크 포인트와 연결된 어드레스의 도달시 인터럽트가 트리거된다. 상기 인터럽트의 발생은 문제의 어드레스의 도달을 명확히 지시한다.
프로세서가 싱글 스텝 모드(Single-Step-Mode)로 동작될 수 있으면, 대안으로서 기계 명령 시퀀스의 실행시 -적어도 경보 표시된 부분 시스템이 특별 이벤트를 레지스트한 후에 - 항상 실제로 실행되는 기계 명령의 어드레스가 동기화 위치의 어드레스와 비교될 수 있다. 2개의 어드레스가 일치하면, 동기화 위치가 도달되고 기계 명령 시퀀스의 개별 명령의 처리가 중단된다.
동기화 위치의 도달에 대한 다른 효율적인 방법은 청구범위 제 4항의 특징에 따라 기계 명령 시퀀스의 실행시 -적어도 경보 표시된 부분 시스템에 의한 특별 이벤트의 레지스트 후에- 항상 동기화 카운터의 값이 동기화 카운터 목표치와 비교되고, 동기화 카운터의 값이 동기화 카운터 목표치에 이르면 기계 명령 시퀀스의 실행이 중단되는 것이다. 이것을 위해, 제 1 메모리 지점 및 제 2 메모리 지점이 검출된다. 제 1 메모리 지점에 동기화 카운터의 값이 저장되고 제 2 메모리 지점에 동기화 카운터 목표치가 저장된다. 프로세서, 특히 INTEL사의 상기 프로세서가 사용되면, 제 1 메모리 장소의 내용과 제 2 메모리 장소의 내용이 일치하면, 기계 명령 시퀀스의 실행이 중단되도록, 프로세서가 프로그래밍될 수 있다. 프로세서의 상기 특수 기능은 지금까지는 특히 에러 탐색 프로그램 -소위, 디버거- 에 이용되었다. 물론, 이것이 동기화 위치의 도달에도 이용될 수 있다.
기계 명령 시퀀스 내부에서 증분 스테이트먼트의 위치는 상이한 스트래티지에 따라 정해질 수 있다. 기계 명령 시퀀스가 프로그래밍 언어의 명령 시퀀스로 형성되면, 명령 시퀀스가 기계 명령 시퀀스로 변환되는 동안 증분 스테이트먼트가 삽입되는 것이 바람직하다. 증분 스테이트먼트가 기계 명령 시퀀스의 발생 후 그것의 실행 전에 재배치에 의해 이것내로 삽입되는 것도 본 발명의 범주에 속한다.
명령 시퀀스가 관련 명령 시퀀스들이 하나의 블록으로 통합된 프로그래밍 언어의 명령 시퀀스이면, 증분 스테이트먼트가 블록의 경계 중 적어도 하나에서 기계 명령의 시퀀스내로 삽입된다. 이러한 프로그래밍 언어에 대한 예는 한 블록의 선언을 위한 언어 수단를 가진 모든 "구조화된" 프로그래밍 언어 -예컨대 파스칼, PEARL, C/C++ 등- 이다. 또한, 특별한 언어 수단은 암시적으로 하나의 블록을 정한다.
항상 증분 스테이트먼트가 -유럽 특허 공개 제 0 497 147호에 따른 선행 기술에서와 같이- 모든 점프 명령, 예컨대 조건부 및 무조건부 점프 명령과 관련해서 삽입된다. 여기서, 점프 명령은 프로세서에서 직접 이해 가능한 언어 레벨에서 조건부 또는 무조건부 점프를 야기시키는 모든 명령 및 고급 언어로된 스테이트먼트를 의미한다. 이것이 필요한 이유는 점프에 의해 실제로 증분 스테이트먼트가 점프되기 때문이다. 특히, 긴, 가급적 무제한의 시간에 걸친 점프에 의해 2개의 증분 스테이트먼트 사이에서 기계 명령만이 실행됨으로써, 상기 시간 동안 증분 스테이트먼트가 실행되지 않을 수도 있다. 이 경우에는 잠재 동기화 위치가 도달되지 않음으로써, 동기화가 수행되지 않을 것이다. 따라서, 증분 스테이트먼트가 종종 상기 점프 명령 앞에 삽입되지만, 이것이 필수적이지는 않다.
소위, 서브 프로그램이 호출되는 경우, 증분 스테이트먼트가 서브 프로그램 내부에, 즉 서브 프로그램의 처음에 그리고 서브 프로그램의 끝에 삽입되는 것이 바람직하다. 따라서, 바람직하게는 기계 명령의 시퀀스내로 증분 스테이트먼트의 삽입이 현저히 간단해질 수 있는데, 그 이유는 서브 프로그램의 호출은 항상 명확히 검출될 수 없지만, 서브 프로그램의 시작 및 끝은 정확히 검출될 수 있기 때문이다. 예로는 어셈블러 프로그래밍 언어에 대해, 서브 프로그램으로의 점프 또는 서브 프로그램으로부터 백점프(back jump)를 트리거시키는 CALL 및 RET-스테이트먼트가 있다.
통상적으로 블록-지향 구조화를 위한 언어 수단을 제공하지 않는 특수한 프로그래밍 언어를 가진 프로그램 내장식 제어의 경우, 증분 스테이트먼트가 항상 점프 명령 전에 삽입된다. 특히, 프로그램 내장식 제어의 경우 기계 명령 시퀀스의 구조화가 종종 소위 "블록"에 의해 이루어진다. 프로그램 내장식 제어의 기계 명령 시퀀스의 실행시 필요한 블록 교체가 점프 명령에 의해 구현되기 때문에, 여기서도 점프 명령 전에 증분 스테이트먼트의 삽입이 원하는 결과를 가져온다. 동일한 것이 유사한 방식으로 예컨대 어셈블러 또는 베이식과 같은 구조화되지 않은 또는 단지 적게 구조화된 프로그래밍 언어에도 적용된다.
또한, 증분 스테이트먼트가 기계 명령 시퀀스의 일정한, 특히 사용자에 의해 미리 정해진 수의 개별 명령 후에도 기계 명령의 시퀀스내로 삽입될 수도 있다. 이러한 방식으로 미리 주어진 증분 스테이트먼트의 순서는 2개의 증분 스테이트먼트 발생 사이의 평균 시간 간격이 항상 거의 동일하게 유지된다는 장점을 갖는다. 2개의 증분 스테이트먼트 발생 사이의 시간 간격은 증분 스테이트먼트 사이에 실행되는 개별 명령들의 실행 시간의 합에 의해 결정된다.
증분 스테이트먼트에 대응하는 잠재 동기화 위치가 실제로 등간격인 것이 바람직하면, 프로그래밍 언어의 명령 시퀀스가 기계 명령 시퀀스로 변환되는 동안 개별 명령의 실행 시간이 검출되고 상기 개별 명령들의 실행 시간을 가산함으로써 개별 명령 시퀀스의 실행 시간이 검출된다. 일정한, 특히 사용자에 의해 미리 정해질 수 있는 실행 시간이 도달되면, 증분 스테이트먼트가 기계 명령의 시퀀스내로 삽입된다. 하나의 증분 스테이트먼트 후에 개별 명령의 실행 시간의 가산이 다시 0에서 시작한다. 그러나, 전술한 이유 때문에 항상 점프 명령 전에 증분 스테이트먼트가 삽입되어야 한다. 점프 명령 전에 증분 스테이트먼트가 삽입되는 것에 부가해서 일정 실행 시간/간격 그리드 후에 증분 스테이트먼드가 삽입될 수 있다. 대안으로서, 점프 명령 전에 삽입되는 하나의 증분 스테이트먼트 후에 0에서 실행 시간 또는 간격 카운팅이 시작될 수도 있다.
또한, 소오스 시퀀스가 일정한 기계 명령 또는 일정 명령 시퀀스에 대해, 특히 기계 명령 시퀀스의 일정 부분 또는 명령 시퀀스의 일정 부분 시퀀스 -이하, 서치 시퀀스라 함- 에 대해 조사됨으로써, 증분 스테이트먼트가 기계 명령의 시퀀스내로 또는 명령 시퀀스 -이하 소오스 시퀀스라 함- 내로 삽입될 수 있다.
소오스 시퀀스내에서 서치 시퀀스가 검출되면, 증분 스테이트먼트가 서치 시퀀스에 앞서거나 또는 첨가될 수 있다. 서치 시퀀스는 전술한 실시예에 따라 증분 스테이트먼트가 할당되는 소오스 시퀀스의 요소를 나타낸다 -즉, 적어도 블록 경계 및/또는 점프 명령.
특별한 실시예에 따라, 증분 스테이트먼트의 삽입이 특수한 컴파일러에 의해 이루어진다. 특수한 컴파일러의 변환 방법은 예컨대 하나의 블록 또는 하나의 점프 명령을 규정하는 언어 수단이 검출되어 관련 기계 명령 및 부가로 증분 스테이트먼트로 번역되는 점이 표준 컴파일러와 다르다.
대안으로서, 소위 "프리-프로세서(pre-processor)"가 제공된다. 프리-프로세서에 의해 프로그래밍 언어의 명령 시퀀스의 예비 처리가 가능하다. 특별한 -프로그래머에게 알려진- 구문을 이용해서 상기 프리-프로세서는 프로그래밍 언어의 특정 언어 수단, 예컨대 하나의 블록을 개시시키는 언어 수단이 상기 블록을 개시시키는 언어 수단 및 증분 스테이트먼트를 트리거시키는 다른 언어 수단으로 교체되게 한다.
그러나, 증분 스테이트먼트가 사용자에게 투명한 방식으로 기계 명령의 시퀀스내로 삽입되는 것이 바람직하다. 프리-프로세서에서 전술한 스테이트먼트는 사용자에게 알려져 있고 그것에 따라 조작될 수 있다. 그러나, 조작은 동기화시에 에러를 유발시키거나 및/또는 형성된 프로그램 자체에서 에러를 유발시킬 수 있다. 따라서, 명령 시퀀스내로 증분 스테이트먼트를 삽입하기 위한 바람직한 대안에서는 상기 프리-프로세서 대신에 실제로 다른 스테이트먼트에 따른 교체와 무관하게 적어도 상기 실시예에 따라 증분 스테이트먼트가 할당되는 명령 시퀀스를 상기 명령 시퀀스 및 증분 스테이트먼트로 변환시키는 프리-프로세서가 사용된다.
사용자에 의해 영향을 받지 않는, 전술한 증분 스테이트먼트의 삽입 대안에 의해, 사용자 자신이 증분 스테이트먼트를 기계 명령의 시퀀스내로 또는 명령 시퀀스내로 삽입하는 것이 가능하다.
또다른 장점 및 세부 사항은 하기의 실시예 설명에 제시된다.
도 1에 따라 리던던트 자동화 시스템(1)은 적어도 2개의 부분 시스템(2), (2')으로 이루어진다. 2개의 부분 시스템(2), (2')은 도시되지 않은 기술적 프로세스의 제어를 위해 기술적 프로세스에 접속될 수 있다. 각각의 부분 시스템(2), (2')은 프로세서(3), 데이터 메모리 유닛(4), 명령 시퀀스 메모리 유닛(5) 및 적어도 하나의 통신 수단(6)을 포함한다. 여기서, 데이터 메모리 유닛(4) 및 명령 시퀀스 메모리 유닛(5)은 반드시 리던던트 자동화 시스템의 별도의 유닛일 필요는 없다.
적어도 2개의 부분 시스템(2), (2')은 통신 수단(6) 및 버스(7)를 통해 서로 또는 도시되지 않은 기술적 프로세스와 통신한다.
데이터 메모리 유닛(4)에는 적어도 동기화 카운터(SZ), (SZ')의 값 및 동기화 카운터 목표치(SZZ)가 저장된다. 명령 시퀀스 메모리 유닛(5)에는 적어도 기계 명령(MP)의 시퀀스가 저장된다. 기계 명령(MP)의 시퀀스는 2개의 부분 시스템(2), (2')에 대해 적어도 기능적으로 동일하다. 도시되지 않은 기술적 프로세스의 제어를 위해, 부분 시스템(2), (2')의 프로세서(3)가 명령 시퀀스 메모리 유닛(5)의 기계 명령(MP)의 시퀀스를 실행한다.
도 2에는 적어도 2개의 부분 시스템(2), (2')에 대한 기계 명령(MP)이 도시된다. 여기서, 좌측에 있는 기계 명령(MP)의 시퀀스는 부분 시스템(2)의 기계 명령(MP)의 시퀀스이고, 우측에 있는 기계 명령(MP)의 시퀀스는 부분 시스템(2')의 기계 명령(MP)의 시퀀스이다.
도 2에 따라, 증분 스테이트먼트(IA)가 기계 명령의 시퀀스내로 삽입된다. 증분 스테이트먼트(IA)에 의해 각각의 부분 시스템(2), (2')의 동기화 카운터(SZ), (SZ')가 증분된다. 즉, 1씩 커진다. 기계 명령(MP) 시퀀스내에 화살표(10), (10')로 표시된 위치는 특별 이벤트(11)의 발생 시점에서 실제로 실행되는 기계 명령을 표시한다. 도 2에 나타나는 바와 같이, 부분 시스템(2), (2') 중 적어도 하나가 특별 이벤트(11)를 레지스트한다.
도 2에 따라 상기 시점에서 부분 시스템(2), (2')은 기계 명령(MP) 시퀀스의 상이한 기계 명령을 실행한다. 이 시점에서 특별 이벤트(11)의 처리는 경우에 따라 자동화 시스템(1)의 부분 시스템(2), (2')의 일치되지 않는 데이터를 야기시킨다. 따라서, 특별 이벤트(11)의 처리 전에 부분 시스템(2), (2')의 동기화가 필요하다. 동기화 카운터(SZ)는 특별 이벤트(11)의 발생 시점에서 부분 시스템(2)에 대해 값(n)을 갖는다. 동기화 카운터(SZ')는 특별 이벤트(11)의 발생 시점에서 부분 시스템(2')에 대해 값(n+1)을 갖는다.
동기화를 위해, 기계 명령(MP) 시퀀스의 실행시 적어도 하나의 다른 부분 시스템(2), (2')에 앞서는 부분 시스템(2), (2')은 다른 부분 시스템(2), (2')이 기계 명령(MP)의 기능상 동일한 시퀀스내의 대응하는 위치에 도달할 때까지, 기계 명령(MP) 시퀀스의 실행을 중단해야 한다.
기계 명령(MP)의 시퀀스내에서 바로 대응하는 위치는 각각 증분 스테이트먼트(IA)이다. 도 2에 도시된 상태에서 동기화 카운터(SZ')는 값(n+1)을 갖는다. 동기화 카운터(SZ)는 값(n)을 갖는다. 실제 상태에서 부분 시스템(2')의 기계 명령(MP) 시퀀스의 실행은 중단되는 한편, 부분 시스템(2)에서 기계 명령(MP) 시퀀스의 실행은 동기화 카운터(SZ)가 값(n+1)을 가질 때까지 계속되지만, 동기화가 이루어지지 않을 것이다.
따라서, 2개의 부분 시스템(2), (2')이 동시에 도달될 수 있는 다음 증분 스테이트먼트(IA)는 동기화 카운터(SZ) 및 동기화 카운터(SZ')가 값(n+2)을 갖는 증분 스테이트먼트(IA)이다. 2개의 부분 시스템(2), (2')이 공통으로 도달할 수 있는 동기화 카운터(SZ), (SZ')의 값은 동기화 카운터 목표치(SZZ)이다. 동기화 위치(SP)는 동기화 카운터(SZ), (SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달되는 기계 명령(MP) 시퀀스 내의 증분 스테이트먼트(IA)의 위치에 상응한다.
특별 이벤트(11)의 레지스트 후에, 도 3에 따른 경보 표시된 부분 시스템(2)이 동기화 카운터 목표치(SZZ)를 검출하기 위해 동기화 카운터(SZ)의 값 및 특별 이벤트(11)를 다른 부분 시스템(2')에 송신한다. 이것은 특별 이벤트(11)를 전송하기 위한 가장 이른 시점이다. 특별 이벤트는 늦어도 동기화 신호(SS)의 전송과 함께 전송되어야 한다. 이로 인해, 적어도 하나의 다른 부분 시스템(2')이 특별 이벤트(11)의 발생을 알리고, 경보 표시된 부분 시스템(2)이 수신하는 동기화 카운터(SZ')의 실제값을 송신한다.
따라서, 각각의 부분 시스템(2), (2')이 고유의 동기화 카운터(SZ)의 값 및 적어도 하나의 다른 부분 시스템(2), (2')의 동기화 카운터(SZ')의 값을 검출한다. 동기화 카운터 목표치(SZZ)는 2개의 증분된 동기화 카운터(SZ), (SZ')의 최대값으로부터 얻어진다. 대안으로서, 먼저 최대값을 검출하고 상기 최대값의 증분값에 의해 동기화 카운터 목표치(SZZ)를 검출하는 것도 가능하다.
2개의 부분 시스템(2), (2')은 동기화 카운터(SZ), (SZ')의 교체 후에 기계 명령(MP) 시퀀스의 실행을 계속한다. 기계 명령(MP) 시퀀스의 실행시 부분 시스템(2), (2') 중 하나가 동기화 위치(SP)에 도달하면, 기계 명령(MP) 시퀀스의 실행이 중단된다. 동기화 위치(SP)의 도달은 기계 명령(MP) 시퀀스의 실제로 실행된 명령의 어드레스와 동기화 위치(SP)의 어드레스를 비교함으로써, 또는 도 3에 따라 동기화 카운터(SZ), (SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달하는지를 모니터링함으로써 검출될 수 있다.
동기화 위치(SP)에 도달한 각각의 부분 시스템(2), (2')dms 동기화 위치(SP)의 도달을 동기화 신호(SS)의 전송에 의해 적어도 하나의 다른 부분 시스템(2), (2')에 신호화한다. 경보 표시된 부분 시스템(2), (2')은 특별 이벤트(11)의 레지스트 직후부터 동기화 신호(SS)의 전송 사이의 어느 시점에서 특별 이벤트(11)를 적어도 하나의 다른 부분 시스템(2), (2')에 전송한다.
각각의 부분 시스템(2), (2')은 동기화 위치(SP)에 도달하고 동기화신호(SS)가 적어도 하나의 다른 부분 시스템(2), (2')에 의해 수신되면 즉시, 특별 이벤트(11)에 대한 고유의 반응을 검출하고 이것을 실행한다. 특별 이벤트(11)에 대한 고유의 반응을 실행한 후에, 부분 시스템(2), (2')은 동기화 위치(SP) 다음의 기계 명령(MP) 시퀀스의 실행을 계속한다.
전술한 바와 같이, 특별 이벤트(11)에 대한 고유 반응의 실행을 위해 동기화 신호(SS)의 교체 또는 동기화 신호(SS)에 대한 대기가 필요치 않은 경우도 있다. 이러한 경우에는 동기화 위치(SP)의 도달시 특별 이벤트 고유 반응이 직접 실행된다. 따라서, 도 3에 따른 플로우 챠트에서 문의 "SZ < SZZ ?"와 "특별 이벤트 고유 반응"의 실행 사이의 블록은 옵션이다. 정확한 시간적 동기화가 필요없고 그것 대신에 특별 이벤트 고유 반응이 동시에가 아니라 기계 명령(MP) 시퀀스의 기능상 동일한 위치에서 실행되는 것으로 충분한 경우, 상기 옵션 부분이 생략된다.
본 발명에 따른 동기화 방법의 다른 실시예에 따르면, 증분 스테이트먼트(IA) 대신에 감소 스테이트먼트(IA)가 기계 명령의 시퀀스 사이로 삽입된다. 이러한 경우 -동기화 카운터(SZ), (SZ')가 0으로부터 출발해서 1씩 증분되는 것과 마찬가지로- 동기화 카운터(SZ), (SZ')는 출발값, 예컨대 32,767로부터 시작해서 감소된다. 이 동기화 방법은 감소된 동기화 카운터(SZ), (SZ')의 평가에 의해 완전히 유사한 방식으로 수행된다.
도 4는 프로그래밍 언어의 명령 시퀀스의 예로 증분 스테이트먼트의 삽입 방법을 나타낸다. 특히 구조화된 프로그래밍 언어에 있어서 프로그램 흐름이 소위 구조화 챠트로 도시된다. 구조화 챠트에는 특히 블록 한계 및 그에 따른 구조화가 나타난다. 좌측에는 간단한 구조화 챠트가 개략적으로 도시된다. 구조화 챠트는 2개의 블록(B1) 및 (B2)으로 이루어진다. 예컨대, 블록(B1)은 소위 메인 프로그램에 대한 것인 반면, 블록(B2)은 소위 서브 프로그램에 대한 것이다.
프로그램의 실행은 메인 프로그램(B1)에서 시작한다. 메인 프로그램(B1) 및 서브 프로그램(B2)은 하나의 별도 블록을 형성한다. 따라서, 이것들은 블록 명령내에 내장된다. 메인 프로그램(B1) 또는 서브 프로그램(B2)을 시작할 때 블록 명령은 각각 블록을 개시시키고, 메인 프로그램(B1) 또는 서브 프로그램(B2)을 끝낼 때 블록 명령은 블록 명령은 블록을 종료시킨다. 하나의 블록의 스테이트먼트내에서 예컨대, 루프에서와 같이 여러번 반복되는 스테이트먼트에 대해 부가의 블록이 발생할 수도 있다. 서브 프로그램(B2)은 메인 프로그램(B1)내에서 내부 블록으로부터 호출된다.
도4의 우측은 삽입된 증분 스테이트먼트(IA)를 가진 구조화 챠트를 나타낸다. 하나의 블록을 개시시키는 각각의 블록 명령은 하나의 블록 명령을 개시시키는 블록 명령 및 증분 스테이트먼트(IA)로 변환된다; 하나의 블록을 종료시키는 각각의 블록 명령은 증분 스테이트먼트(IA), 및 하나의 블록을 종료시키는 블록 명령으로 변환된다. 블록 명령 및 증분 스테이트먼트(IA)의 순서는 도 4에 도시된 순서에 국한되지 않으며 바뀔 수도 있다. 메인 프로그램(B1)의 내부 블록내에서 서브 프로그램(B2)을 호출하는 스테이트먼트도 증분 스테이트먼트(IA), 및 서브 프로그램(B2)을 호출하는 스테이트먼트로 변환된다.
도 5 및 6은 삽입 방법의 플로우 챠트를 나타낸다.
도 5는 청구범위 제 6항에 따른 삽입 방법을 나타낸다. 먼저, 명령 카운터(BZ)의 값이 초기화된다. 즉, 0에 세트된다. 그리고 나서, 기계 명령(MP) 시퀀스의 실제로 후속하는 기계 명령이 검출된다. 상기 기계 명령이 점프 명령인 경우에만, 증분 스테이트먼트(IA)가 기계 명령(MP)의 시퀀스내로 삽입된다. 명령 카운터(BZ)가 명령 카운터 한계치(BZS)를 초과하는 경우에만, 증분 스테이트먼트(IA)가 기계 명령(MP)의 시퀀스내로 삽입된 다음, 명령 카운터(BZ)가 다시 0에 세트된다. 그리고 나서, 검출된 기계 명령이 기계 명령(MP)의 시퀀스내에 삽입된다. 기계 명령(MP)의 삽입에 이어서, 명령 카운터(BZ)가 증분된다. 즉, 1씩 증가되는데, 그 이유는 기계 명령(MP) 시퀀스의 기계 명령의 수가 정확히 하나의 기계 명령씩 증가하기 때문이다. 처리는 다음 기계 명령의 검출에 의해 모든 기계 명령이 처리될 때까지 계속된다.
도 5에 따른 명령 카운터(BZ) 또는 명령 카운터 한계치(BZS) 대신에, 실행 시간 카운터 또는 실행 시간 카운터 한계치가 사용될 수도 있다. 실행 시간 카운터는 삽입된 기계 명령의 실행 시간 만큼 증가된다. 실행 시간 카운터 한계치는 2개의 증분 스테이트먼트(IA) 사이의 실행 시간을 프리세팅(presetting)한다.
도 6은 기계 명령(MP) 시퀀스 또는 프로그래밍 언어의 명령 시퀀스에 관련한 청구범위 제 7항에 따른 삽입 방법을 나타낸다. 상기 시퀀스의 해석에 의해 프로세스, 특히 기술적 프로세스가 제어된다. 증분 스테이트먼트(IA)의 삽입을 위해, 기계 명령(MP) 시퀀스 또는 명령 시퀀스가 서치 시퀀스의 발생에 대해 탐색된다. 서치 시퀀스가 기계 명령의 시퀀스 또는 명령 시퀀스내에서 발견되었을 때만 증분 스테이트먼트가 이것내로 삽입된다. 이 삽입 방법은 기계 명령 시퀀스 또는 명령 시퀀스의 조사에 의해 이것들이 완전히 조사될 때까지 계속된다.
그리고 나서, "기능상 동일한" 이라는 용어의 의미가 결정되어야 한다. 기계 명령의 기능상 동일한 시퀀스는 예컨대, 하나의 동일한 과제를 표시하는 상이한 고급 언어의 스테이트먼트를 컴파일링한 결과로서 형성된다. 또한, 기계 명령의 기능상 동일한 시퀀스는 고급 언어에 대한 상이한 컴파일러에 의해 변환되었던 고급 언어의 스테이트먼트를 컴파일링한 결과로서 형성된다. 기계 명령의 기능상 동일한 시퀀스는 하나의 동일한 컴파일러에 의해 상기 컴파일러에 대한 상이한 파라미터, 예컨대 상이한 최적화 단계로 처리되었던 동일한 과제를 나타내는 하나의 동일한 고급 언어의 스테이트먼트를 컴파일링한 결과를 나타내기도 한다.

Claims (10)

  1. 적어도 2개의 부분 시스템(2, 2')으로 이루어지고, 상기 부분 시스템(2, 2')이 적어도 하나의 프로세서(3)를 포함하며 통신 수단(6)을 통해 서로 결합되고 하나의 프로세스를 제어하기 위해 기계 명령(MP)의 기능상 동일한 시퀀스를 실행하며 때때로 통신 수단을 통해 서로 동기화되는, 리던던트 자동화 시스템의 동기화 방법에 있어서,
    - 각각의 부분 시스템(2, 2')이 동기화 카운터(SZ, SZ')를 포함하고,
    - 기능상 동일한 기계 명령(MP)의 시퀀스가 서로 대응하는 장소에 증분 또는 감소 스테이트먼트(IA)를 포함하며, 상기 스테이트먼트에 의해 동기화 카운터(SZ, SZ')가 증분되거나 감소되고,
    - 적어도 부분 시스템(2, 2') 중 하나, 즉 경보 표시된 부분 시스템(2, 2')이 특별 이벤트(11)를 레지스트할 때, 동기화가 수행되며,
    - 상기 동기화는 각각의 부분 시스템(2, 2')이
    a) 다른 부분 시스템(2, 2')에 그것의 동기화 카운터(SZ, SZ')의 실제값을 전송하는 단계,
    b) 고유의 동기화 카운터(SZ, SZ')의 증분된 또는 감소된 값 및 다른 부분 시스템(2, 2')의 동기화 카운터(SZ, SZ')의 증분된 또는 감소된 값으로부터 실제 최대 또는 최소 값, 즉 동기화 카운터 목표치(SZZ)를 검출하는 단계,
    c) 각각의 동기화 카운터(SZ, SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달되는, 기계 명령(MP) 시퀀스내의 위치 -이하, 동기화 위치(SP)라 함- 에 도달시 기계 명령(MP) 시퀀스의 실행을 중단시키는 단계,
    d) 특별 이벤트(11)에 대한 고유 반응을 검출하고, 이것을 실행한 다음, 동기화 위치(SP) 다음의 기계 명령(MP) 시퀀스의 실행을 계속하는 단계로 이루어지고,
    - 경보 표시된 부분 시스템(2, 2')이 다른 부분 시스템(2, 2')에 특별 이벤트(11)를 특별 이벤트(11)의 레지스트 직후부터 특별 이벤트(11)에 대한 고유 반응의 검출 사이의 어느 시점에서 전송하는 것을 특징으로 하는 동기화 방법.
  2. 적어도 2개의 부분 시스템(2, 2')으로 이루어지고, 상기 부분 시스템(2, 2')이 적어도 하나의 프로세서(3)를 포함하며 통신 수단(6)을 통해 서로 결합되고 하나의 프로세스를 제어하기 위해 기계 명령(MP)의 기능상 동일한 시퀀스를 실행하며 때때로 통신 수단을 통해 서로 동기화되는, 리던던트 자동화 시스템의 동기화 방법에 있어서,
    - 각각의 부분 시스템(2, 2')이 동기화 카운터(SZ, SZ')를 포함하고,
    - 기능상 동일한 기계 명령(MP)의 시퀀스가 서로 대응하는 장소에 증분 또는 감소 스테이트먼트(IA)를 포함하며, 상기 스테이트먼트에 의해 동기화 카운터(SZ, SZ')가 증분되거나 감소되고,
    - 적어도 부분 시스템(2, 2') 중 하나, 즉 경보 표시된 부분 시스템(2, 2')이 특별 이벤트(11)를 레지스트할 때, 동기화가 수행되며,
    - 상기 동기화는 각각의 부분 시스템(2, 2')이
    a) 다른 부분 시스템(2, 2')에 그것의 동기화 카운터(SZ, SZ')의 실제값을 전송하는 단계,
    b) 고유의 동기화 카운터(SZ, SZ')의 증분된 또는 감소된 값 및 다른 부분 시스템(2, 2')의 동기화 카운터(SZ, SZ')의 증분된 또는 감소된 값으로부터 실제 최대 또는 최소 값, 즉 동기화 카운터 목표치(SZZ)를 검출하는 단계,
    c) 각각의 동기화 카운터(SZ, SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달되는, 기계 명령(MP) 시퀀스내의 위치 -이하, 동기화 위치(SP)라 함- 에 도달시 기계 명령(MP) 시퀀스의 실행을 중단시키는 단계,
    d) 동기화 신호(SS)에 의해 동기화 위치(SP)의 도달을 다른 부분 시스템(2,2')에 신호화하는 단계,
    e) 동기화 위치(SP)의 도달 후 및 다른 부분 시스템(2,2')에 의한 동기화 신호의 레지스트 후에 특별 이벤트(11)에 대한 고유 반응을 검출하고, 이것을 실행한 다음, 동기화 위치(SP) 다음의 기계 명령(MP) 시퀀스의 실행을 계속하는 단계로 이루어지고,
    - 경보 표시된 부분 시스템(2, 2')이 다른 부분 시스템(2, 2')에 특별 이벤트(11)를 특별 이벤트(11)의 레지스트 직후부터 특별 이벤트(11)에 대한 고유 반응의 검출 사이의 어느 시점에서 전송하는 것을 특징으로 하는 동기화 방법.
  3. 제 1항 또는 2항에 있어서,
    - 기계 명령(MP) 시퀀스의 각각의 기계 명령에 기계 명령(MP) 시퀀스내의 그것의 위치에 의해 하나의 명확한 어드레스가 할당되고,
    - 기계 명령(MP) 시퀀스의 각각의 기계 명령의 상기 어드레스, 특히 실제로 실행되는 기계 명령의 어드레스 및 동기화 위치(SP)에 대응하는 기계 명령의 어드레스가 검출되며,
    - 기계 명령(MP) 시퀀스의 실행시 -적어도 경보 표시된 부분 시스템(2, 2')에 의한 특별 이벤트(11)의 레지스트 후에- 항상 실제로 실행되는 기계 명령의 어드레스가 동기화 위치(SP)에 대응하는 기계 명령의 어드레스와 비교되고,
    - 정확히 동기화 위치(SP)의 도달시 기계 명령(MP) 시퀀스의 실행이 중단되는 것을 특징으로하는 동기화 방법.
  4. 제 1항 또는 2항에 있어서,
    - 기계 명령(MP) 시퀀스의 실행시 -적어도 경보 표시된 부분 시스템(2, 2')에 의한 특별 이벤트(11)의 레지스트 후에- 항상 동기화 카운터(SZ, SZ')의 값이 동기화 카운터 목표치(SZZ)와 비교되고,
    - 동기화 카운터(SZ, SZ')의 값이 동기화 카운터 목표치(SZZ)에 도달하면, 기계 명령(MP) 시퀀스의 실행이 중단되는 것을 특징으로 하는 동기화 방법.
  5. 제 1항, 2항, 3항 또는 4항에 있어서, 증분 스테이트먼트(IA)가 적어도
    - 기계 명령(MP) 시퀀스의 일정 수의 개별 명령 후에 또는 -소수의 기계 명령의 실행 시간 평가 하에- 일정한, 등간격의 실행 시간 간격으로
    - 각각의 점프 명령과 관련해서 실행되는 것을 특징으로 하는 동기화 방법.
  6. 제 1항 내지 5항 중 어느 한 항에 있어서, 증분 스테이트먼트(IA)가 각각
    - 기계 명령(MP) 시퀀스의 일정 수의 개별 명령 후에 또는 -소수의 기계 명령의 실행 시간 평가 하에- 일정한, 등간격의 실행 시간 간격으로
    - 각각의 점프 명령과 관련해서 기계 명령(MP)의 시퀀스내로 삽입되는 것으특징으로 하는 동기화 방법.
  7. 제 1항 내지 6항 중 어느 한 항에 있어서,
    - 기계 명령(MP) 시퀀스가 프로그래밍 언어의 명령 시퀀스로부터 발생되고,
    - 기계 명령(MP) 시퀀스 또는 명령 시퀀스가 일정한 기계 명령 또는 일정 명령 시퀀스에 대해, 특히 기계 명령(MP) 시퀀스의 일정 부분 또는 명령 시퀀스의 일정 부분 -이하, 서치 시퀀스라 함- 에 대해 조사되며,
    - 서치 시퀀스의 발생이 검출되고,
    - 증분 스테이트먼트(IA)가 서치 시퀀스에 앞서거나 또는 첨가되는 것을 특징으로 하는 동기화 방법.
  8. 제 7항에 있어서,
    - 관련 명령 시퀀스가 하나의 블록으로 통합되고,
    - 서치 시퀀스 중 하나가 블록의 경계 중 적어도 하나 및/또는 점프 명령인 것을 특징으로 하는 동기화 방법.
  9. 제 8항에 있어서,
    - 증분 스테이트먼트(IA)가 기계 명령(MP) 시퀀스의 발생 동안 이것내로 삽입되고,
    - 기계 명령(MP) 시퀀스의 발생이 공지된 방식으로 특별한 컴파일러에 의해 이루어지며,
    - 특별한 컴파일러는 서치 시퀀스의 검출시 증분 스테이트먼트(IA)를 발생시키고 기계 명령(MP)의 시퀀스내로 삽입하는 것을 특징으로 하는 동기화 방법.
  10. 제 8항 또는 9항에 있어서,
    - 증분 스테이트먼트(IA)가 기계 명령(MP) 시퀀스의 발생 전 및/또는 후에 이것내로 삽입되고,
    - 기계 명령(MP) 시퀀스의 발생이 공지된 방식으로 표준 컴파일러에 의해 이루어지며,
    - 상기 발생 전 및/또는 후에 서치 시퀀스의 검출시 증분 스테이트먼트(IA)가 기계 명령(MP) 시퀀스내로 또는 명령 시퀀스내로 삽입되는 것을 특징으로 하는 동기화 방법.
KR1019980710589A 1996-06-24 1997-06-03 동기화 방법 KR20000022171A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19625195.8 1996-06-24
DE19625195A DE19625195A1 (de) 1996-06-24 1996-06-24 Synchronisationsverfahren

Publications (1)

Publication Number Publication Date
KR20000022171A true KR20000022171A (ko) 2000-04-25

Family

ID=7797824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980710589A KR20000022171A (ko) 1996-06-24 1997-06-03 동기화 방법

Country Status (9)

Country Link
US (1) US6356795B1 (ko)
EP (1) EP0907912B1 (ko)
JP (1) JP2000513468A (ko)
KR (1) KR20000022171A (ko)
CN (1) CN1228173A (ko)
AT (1) ATE192583T1 (ko)
DE (2) DE19625195A1 (ko)
ES (1) ES2146474T3 (ko)
WO (1) WO1997050024A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247143B1 (en) 1998-06-30 2001-06-12 Sun Microsystems, Inc. I/O handling for a multiprocessor computer system
DE19834331A1 (de) 1998-07-30 2000-02-10 Bosch Gmbh Robert Sicherheitsvorrichtung für eine speicherprogrammierbare Steuerung
DE19836347C2 (de) * 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
DE10065417B4 (de) * 2000-12-27 2011-07-21 Siemens AG, 80333 Programmierung von zyklischen Maschinen
US6941175B2 (en) * 2000-12-27 2005-09-06 Siemens Aktiengesellschaft Method of operating an industrial controller
FI113113B (fi) * 2001-11-20 2004-02-27 Nokia Corp Menetelmä ja laite integroitujen piirien ajan synkronoimiseksi
EP1398699A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
EP1398701A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
CN100380258C (zh) * 2002-09-16 2008-04-09 罗伯特-博希股份公司 运行至少两个相互连接的控制器的方法和计算系统
CN1303544C (zh) * 2003-05-16 2007-03-07 浙江中控技术股份有限公司 自动进行开关量事件先后顺序记录的系统及其方法
JP2005006037A (ja) * 2003-06-12 2005-01-06 Nec Corp メディア同期システム及びそれに用いるサービス提供方法
US7665070B2 (en) * 2004-04-23 2010-02-16 International Business Machines Corporation Method and apparatus for a computing system using meta program representation
US7353365B2 (en) * 2004-09-29 2008-04-01 Intel Corporation Implementing check instructions in each thread within a redundant multithreading environments
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8078898B2 (en) * 2007-06-07 2011-12-13 Texas Instruments Incorporated Synchronizing TAP controllers with sequence on TMS lead
JP4697314B2 (ja) 2009-02-05 2011-06-08 横河電機株式会社 二重化フィールド制御装置
CN101916068B (zh) * 2010-07-29 2012-01-11 北京交大资产经营有限公司 基于2取2结构的计算机控制系统及其实现方法
GB2497017B (en) * 2010-08-20 2018-05-23 Siemens Ag Method for redundantly controlling processes of an automation system
DE102010039607B3 (de) * 2010-08-20 2011-11-10 Siemens Aktiengesellschaft Verfahren zum redundanten Steuern von Prozessen eines Automatisierungssystems
BE1020023A5 (nl) * 2011-01-28 2013-04-02 Niko Nv Systeem en werkwijze voor het aansturen van producten.
US8880198B2 (en) * 2011-08-23 2014-11-04 Siemens Aktiengesellschaft Byzantine fault-tolerant SCADA system
EP2615511A1 (de) * 2012-01-12 2013-07-17 Siemens Aktiengesellschaft Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
EP2657797B1 (de) * 2012-04-27 2017-01-18 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE102012106601A1 (de) 2012-07-20 2014-05-15 Pilz Gmbh & Co. Kg Verfahren zum Synchronisieren von Anzeigeelementen
US9256426B2 (en) * 2012-09-14 2016-02-09 General Electric Company Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse
EP2765464A1 (de) 2013-02-08 2014-08-13 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
EP2857913B1 (de) * 2013-10-01 2019-04-24 Siemens Aktiengesellschaft Redundantes Automatisierungssystem
EP3229141A1 (de) 2016-04-07 2017-10-11 Siemens Aktiengesellschaft Verfahren zur erhöhung der verfügbarkeit eines redundanten automatisierungssystems sowie redundantes automatisierungssystem
EP3246771B1 (de) 2016-05-17 2021-06-30 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems
EP3428748B1 (de) * 2017-07-13 2020-08-26 Siemens Aktiengesellschaft Verfahren und anordnung zum betrieb von zwei redundanten systemen
EP3751363B1 (de) 2019-06-11 2022-11-23 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und entsprechendes system
EP3872582A1 (de) 2020-02-26 2021-09-01 Siemens Aktiengesellschaft Redundant ausgelegtes automatisierungssystem
EP3872583B1 (de) 2020-02-26 2023-07-19 Siemens Aktiengesellschaft Redundant ausgelegtes automatisierungssystem
TWI782316B (zh) * 2020-08-24 2022-11-01 達明機器人股份有限公司 作業程序同步的方法
EP4428633A1 (de) 2023-03-08 2024-09-11 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und redundantes automatisierungssystem

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674036A (en) * 1984-11-23 1987-06-16 Gte Communication Systems Corporation Duplex controller synchronization circuit for processors which utilizes an address input
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
EP0394514B1 (de) * 1989-04-25 1994-07-13 Siemens Aktiengesellschaft Verfahren zur Synchronisation von Datenverarbeitungsanlagen
EP0497147A3 (en) * 1991-01-28 1993-05-05 Siemens Aktiengesellschaft Redundant automation system
DE4104114C2 (de) * 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
EP0616274B1 (de) * 1993-03-16 1996-06-05 Siemens Aktiengesellschaft Synchronisationsverfahren für Automatisierungssysteme
DE4401467C2 (de) * 1993-03-25 1996-12-12 Siemens Ag Betriebsverfahren für ein redundant aus mindestens zwei Teilsystemen aufgebautes Automatisierungssystem
DE4405297C2 (de) * 1994-02-19 1997-06-05 Bosch Gmbh Robert Verfahren zur Synchronisation von Sendeeinrichtungen in Zugangseinheiten bei einem getakteten Bussystem

Also Published As

Publication number Publication date
ATE192583T1 (de) 2000-05-15
WO1997050024A1 (de) 1997-12-31
ES2146474T3 (es) 2000-08-01
EP0907912B1 (de) 2000-05-03
US6356795B1 (en) 2002-03-12
EP0907912A1 (de) 1999-04-14
JP2000513468A (ja) 2000-10-10
DE59701592D1 (de) 2000-06-08
DE19625195A1 (de) 1998-01-02
CN1228173A (zh) 1999-09-08

Similar Documents

Publication Publication Date Title
KR20000022171A (ko) 동기화 방법
US6308318B2 (en) Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US20030187612A1 (en) Execution time measurement device in a control unit and an execution time measurement method
US4635258A (en) System for detecting a program execution fault
US5163152A (en) Interrupt control apparatus for a microprocessor providing real time priority processing of interrupt requests
US20040168047A1 (en) Processor and compiler for creating program for the processor
JP6042025B2 (ja) ソフトウェア搭載機器及びソフトウェア更新方法
EP3475828B1 (en) An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
US5930470A (en) Debugging system and debugging method
EP0423773A2 (en) Emergency resumption processing apparatus for an information processing system
EP0821306A2 (en) High-speed simulation method
US5640514A (en) Synchronization method for automation systems
Andre et al. A mixed implementation of a real-time system
PT929056E (pt) Instalacao de vigilancia
EP0402483A1 (en) Control method for robot
KR100655275B1 (ko) 조건 분기 명령어의 컴파일 방법
US20020169510A1 (en) Method for process-variable-dependent identification signal emission
KR100321995B1 (ko) 교환시스템에서 효율적인 타이머 관리방법
JP2880658B2 (ja) マルチタスクプログラムの暴走検出装置
Bradley et al. A formal design and implementation method for real-time embedded systems
JPH0455945A (ja) 非局所出口関数フレーム生成コンパイルドコード出力方式
JPH01251142A (ja) プログラムトレース方式
KR19980022135A (ko) 임베디드 시스템에서 싱글태스크로 멀티테스킹하는 기법
JPH05257745A (ja) マイクロコンピュータの暴走監視方式
JPH06348548A (ja) プログラム記憶式制御装置の監視方法および装置

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 19981224

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid