KR20110114869A - 결함 허용이 가능한 분산 동기화 방법 및 장치 - Google Patents

결함 허용이 가능한 분산 동기화 방법 및 장치 Download PDF

Info

Publication number
KR20110114869A
KR20110114869A KR1020100034240A KR20100034240A KR20110114869A KR 20110114869 A KR20110114869 A KR 20110114869A KR 1020100034240 A KR1020100034240 A KR 1020100034240A KR 20100034240 A KR20100034240 A KR 20100034240A KR 20110114869 A KR20110114869 A KR 20110114869A
Authority
KR
South Korea
Prior art keywords
time
slave
master
synchronization
masters
Prior art date
Application number
KR1020100034240A
Other languages
English (en)
Other versions
KR101192896B1 (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 성균관대학교산학협력단
Priority to KR1020100034240A priority Critical patent/KR101192896B1/ko
Publication of KR20110114869A publication Critical patent/KR20110114869A/ko
Application granted granted Critical
Publication of KR101192896B1 publication Critical patent/KR101192896B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/08Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Abstract

본 발명은 결함 허용이 가능한 분산 동기화 방법에 관한 것으로, 복수의 타임 마스터 중에서 어느 하나가 스타터 노드로 지정되는 S1 단계, 싱크 타임 마스터가 상기 스타터 노드에 동기화되는 S2 단계, 스타터 노드와 상기 싱크 타임 마스터의 싱크 프레임이 타임 슬레이브에 주기적으로 전송되는 S3 단계 및 타임 슬레이브가 전송된 싱크 프레임을 이용하여 복수의 타임 마스터와 동기화되는 S4 단계를 포함하는 것을 특징으로 한다.
본 발명은 복수의 타임 마스터에서 전송된 싱크 프레임으로부터 계산되는 오프셋 값에 대한 평균값을 기준으로 슬레이브를 동기화하여, 일부 마스터에 결함이 발생하여도 안정적인 동기화가 가능한 분산 동기화 방법 및 장치를 제공한다.

Description

결함 허용이 가능한 분산 동기화 방법 및 장치{DISTRIBUTED SYNCHRONIZATION METHOD AND APPARATUS FOR FAULT TOLERANCE}
본 발명은 이더넷 기반 시스템에서 동기화를 위해 사용되는 분산 동기화 방법 및 장치에 관한 것이다. 본 발명은 특히 이더넷 기반 시스템에서 복수의 타임 마스터를 사용하여 결함 허용이 가능한 분산 동기화 방법 및 장치에 관한 것이다.
Ethernet 통신을 기반으로 하는 모션 제어 네트워크는 동기 모션 제어와 같은 고속의 실시간 데이터를 전송하는데 주로 사용된다. 이 시스템에서는 동기화를 위해 클럭 동기화 표준인 IEEE 1588을 제정하여 널리 사용되고 있다. IEEE 1588은 EtherCAT, PowerLINK 등에서 활용되고 있다.
IEEE 1588 동기화 방법은 하나의 타임 마스터가 복수의 타임 슬레이브를 동기화시킨다. 따라서 타임 마스터에 결함이 발생하는 경우 전체 동기화에 문제가 발생한다. 이 경우 자동화 로봇과 같이 안전이 중요한 어플리케이션에서는 큰 인명이나 재산상의 문제가 발생할 수 있다.
이를 방지하기 위해 IEEE 1588 Best Master Clock Algorithm (BMCA)이나 기존 마스터에 문제가 발생하면 백업 마스터가 기존 마스터의 역할을 대신하는 마스터 중복 기법이 널리 사용된다.
BMCA 기법의 경우 여러 개의 마스터 중 가장 좋은 마스터를 선출하여 해당 마스터를 기준으로 네트워크를 동기화한다. 이때 선출된 마스터가 결함이 발생하면 다시 선출 알고리즘을 수행하여 새로운 가장 좋은 마스터를 선출한다. BMCA 기법의 경우 기존 하나의 마스터가 발생하는 문제점은 해결 가능하지만 재선출 과정에서 소요되는 시간이 길기 때문에 높은 성능의 동기화를 제공하기에는 어려움이 있다.
반면 마스터 중복 기법은 백업 마스터가 기존 마스터를 대체하기 위해 초기화되는 등의 작업을 수행해야 하기 때문에 대체하는데 많은 시간이 소요되는 문제점이 있다.
백업 마스터 구동을 위해 소요되는 시간에도 전체 네트워크의 동기화가 요구되는데 이를 해결할 수 없다는 문제점이 있다.
또한 단일 타임 마스터를 사용하기 때문에 타임 마스터에 결함이 발생하여 잘못된 타임 스탬프를 전송한 경우, 전체 네트워크 동기화가 제대로 수행되지 못하는 문제점이 있다.
본 발명에 따른 결함 허용이 가능한 분산 동기화 방법 및 장치는 다음과 같은 해결과제를 목적으로 한다.
첫째, 마스터에 결함이 생겨도 전체 네트워크의 동기화는 정상적으로 수행 되게 하고자 한다.
둘째, 마스터에 결함이 생긴 경우라도 시간의 단락 없이 곧바로 동기화가 수행되게 하고자 한다.
셋째, 복수의 마스터 중 하나 이상에 결함이 발생하여도 전체 네트워크의 동기화는 정상적으로 수행 되게 하고자 한다.
넷째, 마스터 중에서 동기화에만 관여하는 타임 마스터를 복수 개 두어 전체 시스템의 부하를 감소시키고자 한다.
다섯째, 결함이 없는 동기화 수행으로 네트워크를 통해 데이터가 안정적이고 효율적으로 전송되도록 한다.
여섯째, 특히 안정성과 동기화 성능이 중요시되는 자동화 로봇, 조선 로봇 등의 어플리케이션이 안정적으로 동작하도록 한다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
본 발명은 결함 허용이 가능한 분산 동기화 방법에 관한 것이다.
본 발명의 방법은 복수의 타임 마스터 중에서 어느 하나가 스타터 노드로 지정되는 S1 단계, 복수의 타임 마스터 중에서 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터가 스타터 노드에 동기화되는 S2 단계, 스타터 노드와 싱크 타임 마스터의 싱크 프레임이 타임 슬레이브에 주기적으로 전송되는 S3 단계 및 타임 슬레이브가 전송된 싱크 프레임을 이용하여 복수의 타임 마스터와 동기화되는 S4 단계를 포함한다.
본 발명의 S1 단계는 복수의 타임 마스터가 정상적으로 작동되는지 여부를 검사하는 단계 및 정상적으로 작동하는 타임 마스터 중 어느 하나가 지정되는 단계를 포함한다.
본 발명의 S2 단계는 싱크 타임 마스터가 스타터 노드로부터 전송되는 싱크 프레임을 이용하여, 스타터 노드에 동기화되는 것을 포함한다.
본 발명의 S4 단계는 타임 슬레이브가 복수의 싱크 프레임을 전송받는 S4-1 단계, 복수의 싱크 프레임으로부터 복수의 클럭 오프셋 값이 산출되는 S4-2 단계 및 산출된 복수의 클럭 오프셋 값을 이용하여 타임 슬레이브가 복수의 타임 마스터에 동기화되는 S4-3 단계를 포함한다.
본 발명의 S4-3 단계는 S4-2 단계에서 산출된 복수의 클럭 오프셋 값의 평균값을 기준으로 타임 슬레이브를 동기화시키는 것을 포함한다.
본 발명의 S4-3 단계는 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 또는 최소값을 제외하고 산출된 평균값을 기준으로 타임 슬레이브를 동기화시키는 것을 포함한다.
본 발명의 S4-3 단계는 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 제외하고 산출된 평균값을 기준으로 타임 슬레이브를 동기화시키는 것을 포함한다.
본 발명의 S4-3 단계는 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 복수 차례 제외하고 남은 오프셋 값에 대한 평균값을 기준으로 타임 슬레이브를 동기화시키는 것을 포함한다.
본 발명에서 복수 차례의 오프셋 값의 최대값 및 최소값 제외는 최대값 및 최소값을 제외하고 남은 클럭 오프셋 값이 하나 이상인 것을 한계 조건으로하여, 입력된 특정 횟수만큼 수행되는 것을 포함한다.
본 발명의 방법은 복수의 타임 마스터 중 하나만을 마스터로 사용하여 타임 슬레이브를 IEEE 1588 동기화 방법에 의해 동기화시키는 제1 모드 또는 제1항 내지 제9항 중 어느 한 항에 따른 분산 동기화 방법으로 복수의 타임 마스터가 타임 슬레이브를 동기화시키는 제2 모드를 포함하되, 제1 모드 및 제2 모드 상호 간에 모드 변경이 가능한 것을 포함한다.
본 발명은 결함 허용이 가능한 분산 동기화 장치에 관한 것이다.
본 발명의 장치는 복수의 타임 마스터 중에서 지정된 스타터 노드, 복수의 타임 마스터 중에서 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터 및 복수의 타임 마스터와 네트워크로 연결되고, 복수의 타임 마스터로부터 복수의 싱크 프레임을 전송받아 동기화되는 타임 슬레이브를 포함한다.
본 발명의 스타터 노드는 복수의 타임 마스터가 정상적으로 작동되는지 검사한 후에 정상적으로 작동되는 타임 마스터 중에서 지정되는 것을 포함한다.
본 발명의 스타터 노드는 싱크 타임 마스터에 싱크 프레임을 전송하여, 스타터 노드와 싱크 타임 마스터 간에 동기화를 수행하는 것을 포함한다.
본 발명의 타임 슬레이브는 전송된 복수의 싱크 프레임으로부터 복수의 클럭 오프셋 값을 산출하고, 산출된 오프셋 값을 이용하여 동기화되는 것을 포함한다.
본 발명의 타임 슬레이브는 산출된 복수의 클럭 오프셋 값의 평균값을 기준으로 동기화되는 것을 포함한다.
본 발명의 타임 슬레이브는 산출된 복수의 클럭 오프셋 값 중 최대값 또는 최소값을 제외한 나머지 오프셋 값의 평균값을 기준으로 동기화되는 것을 포함한다.
본 발명의 타임 슬레이브는 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 제외한 나머지 오프셋 값의 평균값을 기준으로 동기화되는 것을 포함한다.
본 발명의 타임 슬레이브는 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 복수 차례 제외하고 남은 오프셋 값에 대한 평균값을 기준으로 동기화되는 것을 포함한다.특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
본 발명의 타임 마스터는 네트워크를 통해 타임 슬레이브 및 타임 마스터에 연결되는 마스터 통신 모듈, 클럭 소스로부터 클럭을 입력받아 현재의 클럭을 저장하는 마스터 클럭 관리 모듈, 클럭 관리 모듈의 클럭 값으로 타임 스탬프를 추출하여 통신 모듈에 탑재하는 타임 스탬프 모듈 및 클럭 관리 모듈 및 통신 모듈을 제어하여 동기화 알고리즘을 수행하는 마스터 동기화 모듈을 포함한다.
본 발명의 타임 슬레이브는 네트워크를 통해 동기화 관련된 싱크 프레임을 수신하는 슬레이브 통신 모듈, 슬레이브 통신 모듈에 수신된 싱크 프레임을 이용하여 동기화 알고리즘을 수행하는 슬레이브 동기화 모듈 및 슬레이브 동기화 모듈의 동기화 알고리즘에 따라 클럭 정보를 저장하는 슬레이브 클럭 관리 모듈을 포함한다.
본 발명은 복수의 타임 마스터를 사용하여 타임 마스터 중 일부에 결함이 발생하여도 전체 네트워크 동기화가 정상적으로 수행되는 분산 동기화 방법 및 장치를 제공한다.
본 발명은 시스템 전체를 제어하는 마스터를 복수 개 두는 것이 아니라 동기화 기능만을 수행하는 타임 마스터만을 복수 개 두어 효과적인 동기화가 수행되는 분산 동기화 방법 및 장치를 제공한다.
본 발명은 복수의 타임 마스터에서 전송된 싱크 프레임으로부터 계산되는 오프셋 값에 대한 평균값을 기준으로 슬레이브를 동기화하여, 일부 마스터에 결함이 발생하여도 안정적인 동기화가 가능한 분산 동기화 방법 및 장치를 제공한다.
본 발명은 복수의 타임 마스터에서 전송된 싱크 프레임으로부터 계산되는 오프셋 값 중 최대값 및 최소값을 제외한 평균값으로 슬레이브를 동기화하여, 일부 마스터에 결함이 발생하여도 안정적인 동기화가 가능한 분산 동기화 방법 및 장치를 제공한다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
도 1은 종래의 IEEE 1588 동기화 기법을 도시한 도면이다.
도 2는 본 발명에 따른 동기화 방법을 개략적으로 설명한 순서도이다.
도 3은 오프셋 값 중 최대값 및 최소값을 복수 차례 제거하여 평균값을 산출하는 과정에 대한 하나의 실시예를 도시한다.
도 4는 하나의 타임 마스터를 사용하는 제1 모드와 본 발명에 따른 복수의 타임 마스터를 상용하는 제2모드 간 상호 변환을 설명한 블록 다이어그램이다.
도 5는 본 발명에 따른 장치 중 하나의 실시예를 예시한 블록 다이어그램이다.
도 6은 본 발명에 따른 타임 마스터의 구성을 도시한 블록 다이어그램이다.
도 7은 타임 마스터의 동기화 모듈에 탑재되어 동작하는 동기화 기법에 대한 순서도이다.
도 8은 본 발명에 따른 타임 슬레이브의 구성을 도시한 블록 다이어그램이다.
도 9는 타임 슬레이브의 동기화 모듈에 탑재되어 동작하는 동기화 기법에 대한 순서도이다.
이하에서는 도면을 참조하면서 본 발명에 따른 결함 허용이 가능한 분산 동기화 방법 및 장치에 관하여 구체적으로 설명하겠다.
도 1은 종래의 IEEE 1588 동기화 과정을 설명하기 위한 도면이다. 본 발명에서도 마스터와 슬레이브 상호 간에 동기화가 수행되는 동작 자체는 동일하므로, 간략하게 살펴본다.
IEEE 1588은 하나의 타임 마스터와 복수의 타임 슬레이브로 구성되며, 타임 마스터는 IEEE 1588 알고리즘을 사용해 복수의 슬레이브를 마스터의 클럭으로 동기화시킨다.
구체적으로 살펴보면, 타임 마스터는 싱크 메시지를 주기적으로 타임 슬레이브로 전송한다. 싱크 메시지는 타임 마스터의 타임 스탬프 t1을 타임 슬레이브로 전송하기 위해 사용된다.
이때 타임 마스터 내부의 운영체제 등의 영향으로 인해 타임 스탬프 t1가 실제 네트워크 메시지로 전송될 때까지 지연이 발생할 수 있으므로, 이 지연 시간을 줄이기 위해 실제 타임 스탬프 t1은 팔로우업 메시지를 통해 타임 슬레이브로 전송되며 싱크 메시지는 수신한 시점의 타임 스탬프 t2를 타임 슬레이브 내에 저장하기 위해 전송된다.
팔로우업 메시지를 전송받은 타임 슬레이브는 싱크 메시지가 전송될 때 발생한 네트워크 전송 지연 시간을 계산하기 위해 딜레이 요청 메시지를 타임 마스터로 전송한다.
딜레이 요청 메시지를 전송받은 타임 마스터는 딜레이 요청 메시지를 수신한 시점의 타임 스탬프(t4)를 딜레이 응답 메시지를 통해 타임 슬레이브로 전송한다.
타임 슬레이브는 하기의 수식들을 이용하여 타임 마스터와 타임 슬레이브 간의 클럭 오프셋(offset_from_master)을 계산할 수 있다. 타임 슬레이브는 자신의 클럭에 클럭 오프셋(offset_form_master)를 더함으로써 자신의 클럭을 타임 마스터에 동기화시킬 수 있다.
oneway_delay = ((master_to_slave_delay + (slave_to_master_delay))/2
master_to_slave_delay = t2-t1
slave_to_master_delay = t4-t3
offset_from_master = t2-t1-oneway_delay (최종 오프셋 계산식)
도 2는 본 발명에 따른 결함 허용이 가능한 분산 동기화 방법을 개략적으로 도시한다.
본 발명에 따른 결함 허용이 가능한 분산 동기화 방법은 복수의 타임 마스터 중에서 어느 하나가 스타터 노드로 지정되는 S1 단계, 복수의 타임 마스터 중에서 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터가 스타터 노드에 동기화되는 S2 단계, 스타터 노드와 싱크 타임 마스터의 싱크 프레임이 타임 슬레이브에 주기적으로 전송되는 S3 단계 및 타임 슬레이브가 전송된 싱크 프레임을 이용하여 복수의 타임 마스터와 동기화되는 S4 단계를 포함한다.
본 발명에 따른 마스터는 시스템 제어를 위해 필요한 전체 마스터가 아니고, 동기화를 위한 동작만을 수행하는 타임 마스터를 이용한다. 이를 통해 복수의 타임 마스터를 사용하더라고 시스템에 부하를 주지 않고 효율적인 동기화가 가능하다.
본 발명의 주요한 특징 중에 하나는 복수의 타임 마스터를 사용한다는 것이다. 즉 동기화를 위해 복수의 타임마스터가 동작을 하고 타임 슬레이브는 복수의 타임 마스터에 동기화되는 것이다.
복수의 타임 마스터를 사용하기에 타임 마스터 간에도 동기화 작업이 필요하다. 이를 위해 S1 단계에서 복수의 타임 마스터 중 하나를 스타터 노드로 지정한다. 스타터 노드 지정은 시스템 또는 사용자의 선택에 의해 결정될 수도 있다.
또 다른 실시예로서, 동기화가 시작되는 스타터에 결함이 있으면 문제가 발생하기 때문에, 동기화 수행되기 이전에 복수의 타임 마스터가 제대로 동작하는지 검사하는 것이 바람직하다. 이를 통해 정상적으로 작동하는 타임 마스터 중 하나가 스타터 노드로 지정될 수 있다.
복수의 타임 마스터 중 스타터 노드를 제외한 나머지 노드를 특정하기 위해 "싱크 타임 마스터"라고 명명한다. 즉 복수의 타임 마스터는 스타터 노드와 하나 이상의 싱크 타임 마스터 노드로 구성된다.
스타터 노드가 싱크 프레임을 싱크 마스터 노드에 전송하여 싱크 프레임 마스터가 스타터 노드에 맞추어 동기화 된다(S2 단계). 전체 타임 마스터 상호 간의 동기화는 타임 슬레이브를 동기화하기 위한 전제조건이 된다.
S4 단계는 타임 슬레이브가 복수의 싱크 프레임을 전송받는 S4-1 단계, 복수의 싱크 프레임으로부터 복수의 클럭 오프셋 값이 산출되는 S4-2 단계 및 산출된 복수의 클럭 오프셋 값을 이용하여 타임 슬레이브가 복수의 타임 마스터에 동기화되는 S4-3 단계를 포함한다.
본 발명에서 핵심이 되는 구성이며 가장 다양한 실시예가 가능한 S4 단계는 타임 슬레이브가 복수의 타임 마스터에 동기화되는 과정이다. 여기서 복수의 타임 마스터란 스타터 노드와 싱크 타임 마스터를 포함한다.
복수의 타임 마스터(스타터 노드와 하나 이상의 싱크 타임 마스터)는 싱크 프레임을 타임 슬레이브로 전송한다. 타임 슬레이브는 복수의 싱크 프레임을 전송받고 복수의 클럭 오프셋 값을 산출한다. 오프셋 값 산출은 도 1에서 설명한 종래의 IEEE 1588 방법을 통해 산출된다.
산출된 복수의 클럭 오프셋 값을 이용하여 타임 슬레이브가 복수의 타임 마스터에 동기화된다. 구체적으로 어떤 값을 기준으로 동기화 가능한지 살펴본다.
일 실시예로서, 산출된 복수의 클럭 오프셋 값에 대한 평균값을 계산하여 이를 동기화의 기준으로 삼을 수 있다. 이 경우 일부 타임 마스터에 결함이 발생한 경우 평균값도 다소 잘못된 값으로 계산될 여지가 있다. 그러나 많은 수의 타임 마스터를 사용하는 경우 일부 타임 마스터에 결함이 발생해도 평균값을 시스템에서 허용될 수 있는 범위 내로 산출될 수 있다.
또 다른 실시예로서, 먼저 산출된 복수의 클럭 오프셋 값을 메모리 등의 테이블에 정렬하고, 평균값을 산출하는 것이 아니라 테이블의 중간값을 기준으로 타임 슬레이브를 동기화하는 것이다. 이 경우 평균값 산출이라는 과정이 생략되므로, 보다 빨리 동기화가 수행될 수 있다.
중간값 선정은 자료구조이론이나 알고리즘이론을 통해 널리 알려진 다른 방법으로도 선정될 수 있다.
또 다른 실시예로서, 먼저 산출된 복수의 클럭 오프셋 값을 메모리 등의 테이블에 정렬하고, 최대값 또는 최소값을 제외하고 산출된 평균값을 기준으로 타임 슬레이브를 동기화시킬 수 있다. 이 경우 최소한 타임 마스터는 3개 이상인 것이 바람직 할 것이다.
타임 마스터에 결함이 발생한다면 결함이 발생한 타임 마스터로부터 계산된 오프셋 값은 최대값 또는 최소값 영역에 속하기 때문에 의미 있는 실시예가 된다.
또 다른 실시예로서, 먼저 산출된 복수의 클럭 오프셋 값을 메모리 등의 테이블에 정렬하고, 최대값 및 최소값을 제외하고 산출된 평균값을 기준으로 타임 슬레이브를 동기화시킬 수 있다.
또 다른 실시예로서, 먼저 산출된 복수의 클럭 오프셋 값을 메모리 등의 테이블에 정렬하고, 최대값 및 최소값 영역의 복수 개의 오프셋을 제외하고 평균값을 산출할 수 있다. 즉 최대값 및 최소값을 복수 차례 제거하는 과정을 거치고 남은 하나 이상의 오프셋 값의 평균값을 기준으로 타임 슬레이브의 동기화를 수행하는 것이다.
여기서 몇 차례의 최대값 및 최소값을 제거할 것인가의 문제가 있는데 사용자가 입력하여 사전에 정의된 횟수만큼 제거하는 것이 바람직하다.
Figure pat00001
예컨대 상기의 테이블과 같이 사전에 정의된 횟수만큼 제거하는 것으로 정의되면, 별다른 연산 없이 조속하게 오프셋 값에 대한 평균값을 산출할 수 있다.
또 다른 실시예로서 시스템상에서 종전의 오프셋 평균값과 차후에 계산된 오프셋 값 평균값의 편차가 갑자기 커진 경우 2회 또는 3회 등으로 제거 횟수를 설정할 수도 있을 것이다.
최대값 및 최소값을 제외하고 남은 값으로 평균을 계산할 수 있어야 하므로 최대값 및 최소값을 제거 횟수에는 한계 조건이 있다. 즉 최대값 및 최소값을 제외하고 남은 클럭 오프셋 값이 하나 이상인 것을 한계 조건으로 제거가 수행되어야만 할 것이다.
도 3은 최대값 및 최소값을 복수 차례 제외하는 방법의 일 실시예를 도시한다. 즉 최대값 및 최소값을 2차례 제거하고 남은 평균값을 기준으로 타임 슬레이브를 동기화하게 된다.
복수의 타임 마스터를 사용하는 분산 동기화 방법으로서, 복수의 타임 마스터 중 하나만을 마스터로 사용하여 타임 슬레이브를 IEEE 1588 동기화 방법에 의해 동기화시키는 제1 모드(종래의 동기화 방법과 유사함) 또는 전술한 본 발명에 따른 결함 허용 가능한 분산 동기화 방법으로 복수의 타임 마스터가 타임 슬레이브를 동기화시키는 제2 모드를 갖는 방법이 가능하다. 즉 일정한 경우 제1 모드로 진행을 하다가 특정한 조건이 발생하거나 시스템의 선택에 의해 제2 모드로 변경될 수 있다. 제2 모드에서 제1 모드로 변경되는 것도 가능할 것이다.
도 4는 이와 같은 아이디어를 설명하고 있다. 즉 INIT은 동기화가 수행되지 않는 초기 상태를 말하고, NFT(Non Fault Tolerance)는 결함 허용되지 않는 종래 방법을 의미하고, FT(Fault Tolerance)는 본 발명에 따른 결함 허용되는 동기화 방법을 의미한다.
이하 본 발명에 따른 결함 허용이 가능한 분산 동기화 장치에 대해 상세히 설명하고자 한다. 다만, 결함 허용이 가능한 분산 동기화 방법과 공통되는 설명은 생략하고 장치에 있어 핵심적인 구성을 중심으로 설명한다.
도 5는 본 발명에 따른 장치 중 하나의 실시예를 개략적으로 도시한다. 도 5는 2개의 타임 마스터(200, 210)와 2개의 타임 슬레이브(230)를 갖는 네트워크 시스템(240)을 상정하여 설명한다. 본 발명의 장치는 도 3에 표현된 버스 토폴로지 뿐만 아니라 링, 라인, 스타, 트리 토폴로지 등 다양한 토폴로지에서 적용이 가능하다.
본 발명에 따른 결함 허용이 가능한 분산 동기화 장치는 복수의 타임 마스터 중에서 지정된 스타터 노드, 복수의 타임 마스터 중에서 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터 및 복수의 타임 마스터와 네트워크로 연결되고 복수의 타임 마스터로부터 복수의 싱크 프레임을 전송받아 동기화되는 타임 슬레이브를 포함한다.
본 발명의 스타터 노드는 복수의 타임 마스터가 정상적으로 작동되는지 검사한 후에 정상적으로 작동되는 타임 마스터 중에서 지정되는 것이 바람직하다.
본 발명의 방법과 같이 스타터 노드는 싱크 타임 마스터에 싱크 프레임을 전송하여, 스타터 노드와 싱크 타임 마스터 간에 동기화를 수행한다.
타임 슬레이브는 본 발명의 방법에서 설명한 바와 같이 복수의 싱크 프레임을 전송받고, 복수의 오프셋 값을 산출하여 복수의 타임 마스터와 동기화된다.
도 6에 도시된 바와 같이 타임 마스터(300)는 구체적으로 네트워크(240)를 통해 타임 슬레이브 및 타임 마스터에 연결되는 마스터 통신 모듈(330), 클럭 소스로부터 클럭을 입력받아 현재의 클럭을 저장하는 마스터 클럭 관리 모듈(320), 클럭 관리 모듈의 클럭 값으로 타임 스탬프를 추출하여 통신 모듈에 탑재하는 타임 스탬프 모듈(340) 및 클럭 관리 모듈 및 통신 모듈을 제어하여 동기화 알고리즘을 수행하는 마스터 동기화 모듈(310)을 포함한다.
도 7은 타임 마스터의 동기화 모듈에 탑재되어 동작하는 동기화 기법에 대한 순서도이다.
동기화를 수행하기 위해 먼저 마스터들 간의 동기화가 완료되어야 한다. 이를 위해 타임 마스터들 중 하나의 노드가 스타터 노드로 지정된다. 스타터 노드는 싱크 프레임을 전송하여 자신의 클럭을 기반으로 다른 타임 마스터를 동기화시키고, 그 후 다른 타임 마스터들은 각자의 싱크 메시지를 전송한다. 이를 위한 순서는 아래와 같다.
타임 마스터는 먼저 자신이 스타터 노드로 설정되어 있는지를 확인한 후, 스타터 노드이면 싱크 프레임을 전송하고 타이머를 설정하여 주기적으로 싱크 프레임을 전송한다.
스타터 노드가 아닌 싱크 타임 마스터는 스타터 노드로부터의 싱크 프레임을 대기한다. 스타터 노드로부터 싱크 프레임을 전송받으면 이를 이용해 자신을 스타터에 동기화시키고 타이머를 설정하여 주기적으로 싱크 프레임을 전송한다.
도 8에 도시된 바와 같이 타임 슬레이브(400)는 네트워크(240)를 통해 동기화 관련된 싱크 프레임을 수신하는 슬레이브 통신 모듈(430), 슬레이브 통신 모듈에 수신된 싱크 프레임을 이용하여 동기화 알고리즘을 수행하는 슬레이브 동기화 모듈(410) 및 슬레이브 동기화 모듈의 동기화 알고리즘에 따라 클럭 정보를 저장하는 슬레이브 클럭 관리 모듈(420)을 포함한다.
도 9는 타임 슬레이브의 동기화 모듈에 탑재되어 동작하는 동기화 기법에 대한 순서도이다.
타임 슬레이브는 먼저 타이머를 초기화하고 싱크 프레임 수신을 대기한다. 싱크 프레임이 수신되면 종래 기술인 IEEE 1588을 이용하여 싱크 프레임을 전송한 노드와의 클럭 오프셋을 계산하여 오프셋 테이블에 저장한다. 이때 여러번 싱크 프레임을 수신하게 되면 각각의 싱크 프레임에 대한 오프셋을 계산하여 하나의 테이블에 저장한다. 싱크 프레임을 하나 이상 수신한 경우로서, 타이머가 만기가 되면 타임 슬레이브는 결함 허용 가능한 중간값 알고리즘을 사용하여 테이블에 저장된 1개 이상의 타임 오프셋들을 정렬하여 최상위 값과 최하위 값을 제외하고 평균값을 계산하고 계산 결과를 이용하여 자신의 클럭을 동기화시킨다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
200: 스타터 노드 210, 300: 타임 마스터
220,400: 타임 슬레이브 240: 네트워크
310: 마스터 동기화 모듈 320: 마스터 클럭 관리 모듈
330: 마스터 통신 모듈 340: 타임 스탬프 모듈
410: 슬레이브 동기화 모듈 420: 슬레이브 클럭 관리 모듈
430: 슬레이브 통신 모듈

Claims (21)

  1. 복수의 타임 마스터 중에서 어느 하나가 스타터 노드로 지정되는 S1 단계;
    상기 복수의 타임 마스터 중에서 상기 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터가 상기 스타터 노드에 동기화되는 S2 단계;
    상기 스타터 노드와 상기 싱크 타임 마스터의 싱크 프레임이 타임 슬레이브에 주기적으로 전송되는 S3 단계; 및
    상기 타임 슬레이브가 상기 전송된 싱크 프레임을 이용하여 상기 복수의 타임 마스터와 동기화되는 S4 단계를 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  2. 제2항에 있어서,
    상기 S1 단계는
    상기 복수의 타임 마스터가 정상적으로 작동되는지 여부를 검사하는 단계; 및
    정상적으로 작동하는 타임 마스터 중 어느 하나가 지정되는 단계를 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  3. 제1항에 있어서,
    상기 S2 단계는
    상기 싱크 타임 마스터가 상기 스타터 노드로부터 전송되는 싱크 프레임을 이용하여, 상기 스타터 노드에 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  4. 제1항에 있어서,
    상기 S4 단계는
    상기 타임 슬레이브가 복수의 싱크 프레임을 전송받는 S4-1 단계;
    상기 복수의 싱크 프레임으로부터 복수의 클럭 오프셋 값이 산출되는 S4-2 단계; 및
    상기 산출된 복수의 클럭 오프셋 값을 이용하여 상기 타임 슬레이브가 상기 복수의 타임 마스터에 동기화되는 S4-3 단계를 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  5. 제4항에 있어서,
    상기 S4-3 단계는 상기 S4-2 단계에서 산출된 복수의 클럭 오프셋 값의 평균값을 기준으로 상기 타임 슬레이브를 동기화시키는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  6. 제4항에 있어서,
    상기 S4-3 단계는 상기 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 또는 최소값을 제외하고 산출된 평균값을 기준으로 상기 타임 슬레이브를 동기화시키는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  7. 제4항에 있어서,
    상기 S4-3 단계는 상기 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 제외하고 산출된 평균값을 기준으로 상기 타임 슬레이브를 동기화시키는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  8. 제4항에 있어서,
    상기 S4-3 단계는 상기 S4-2 단계에서 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 복수 차례 제외하고 남은 오프셋 값에 대한 평균값을 기준으로 상기 타임 슬레이브를 동기화시키는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  9. 제8항에 있어서,
    상기 복수 차례의 최대값 및 최소값 제외는
    최대값 및 최소값을 제외하고 남은 클럭 오프셋 값이 하나 이상인 것을 한계 조건으로 하여, 입력된 특정 횟수만큼 수행되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  10. 복수의 타임 마스터 중 하나만을 마스터로 사용하여 타임 슬레이브를 IEEE 1588 동기화 방법에 의해 동기화시키는 제1 모드; 또는
    상기 제1항 내지 제9항 중 어느 한 항에 따른 분산 동기화 방법으로 복수의 타임 마스터가 타임 슬레이브를 동기화시키는 제2 모드를 포함하되,
    상기 제1 모드 및 상기 제2 모드 상호 간에 모드 변경이 가능한 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 방법.
  11. 복수의 타임 마스터 중에서 지정된 스타터 노드;
    상기 복수의 타임 마스터 중에서 상기 스타터 노드를 제외한 나머지 타임 마스터인 싱크 타임 마스터; 및
    상기 복수의 타임 마스터와 네트워크로 연결되고, 상기 복수의 타임 마스터로부터 복수의 싱크 프레임을 전송받아 동기화되는 타임 슬레이브를 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  12. 제11항에 있어서,
    상기 스타터 노드는 상기 복수의 타임 마스터가 정상적으로 작동되는지 검사한 후에 정상적으로 작동되는 타임 마스터 중에서 지정되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  13. 제11항에 있어서,
    상기 스타터 노드는 상기 싱크 타임 마스터에 싱크 프레임을 전송하여, 상기 스타터 노드와 상기 싱크 타임 마스터 간에 동기화를 수행하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  14. 제11항에 있어서,
    상기 타임 슬레이브는
    상기 전송된 복수의 싱크 프레임으로부터 복수의 클럭 오프셋 값을 산출하고, 상기 산출된 오프셋 값을 이용하여 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  15. 제14항에 있어서,
    상기 타임 슬레이브는 상기 산출된 복수의 클럭 오프셋 값의 평균값을 기준으로 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  16. 제14항에 있어서,
    상기 타임 슬레이브는 상기 산출된 복수의 클럭 오프셋 값 중 최대값 또는 최소값을 제외한 나머지 오프셋 값의 평균값을 기준으로 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  17. 제14항에 있어서,
    상기 타임 슬레이브는 상기 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 제외한 나머지 오프셋 값의 평균값을 기준으로 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  18. 제14항에 있어서,
    상기 타임 슬레이브는 상기 산출된 복수의 클럭 오프셋 값 중 최대값 및 최소값을 복수 차례 제외하고 남은 오프셋 값에 대한 평균값을 기준으로 동기화되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  19. 제18항에 있어서,
    상기 복수 차례의 최대값 및 최소값 제외는
    최대값 및 최소값을 제외하고 남은 클럭 오프셋 값이 최소한 하나 이상인 것을 한계 조건으로 하여, 입력된 특정 횟수만큼 수행되는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  20. 제11항에 있어서,
    상기 타임 마스터는
    네트워크를 통해 상기 타임 슬레이브 및 타임 마스터에 연결되는 마스터 통신 모듈;
    클럭 소스로부터 클럭을 입력받아 현재의 클럭을 저장하는 마스터 클럭 관리 모듈;
    상기 클럭 관리 모듈의 클럭 값으로 타임 스탬프를 추출하여 상기 통신 모듈에 탑재하는 타임 스탬프 모듈; 및
    상기 클럭 관리 모듈 및 통신 모듈을 제어하여 동기화 알고리즘을 수행하는 마스터 동기화 모듈을 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
  21. 제11항에 있어서,
    상기 타임 슬레이브는
    네트워크를 통해 동기화 관련된 싱크 프레임을 수신하는 슬레이브 통신 모듈;
    상기 슬레이브 통신 모듈에 수신된 싱크 프레임을 이용하여 동기화 알고리즘을 수행하는 슬레이브 동기화 모듈; 및
    상기 슬레이브 동기화 모듈의 동기화 알고리즘에 따라 클럭 정보를 저장하는 슬레이브 클럭 관리 모듈;
    을 포함하는 것을 특징으로 하는 결함 허용이 가능한 분산 동기화 장치.
KR1020100034240A 2010-04-14 2010-04-14 결함 허용이 가능한 분산 동기화 방법 및 장치 KR101192896B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100034240A KR101192896B1 (ko) 2010-04-14 2010-04-14 결함 허용이 가능한 분산 동기화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100034240A KR101192896B1 (ko) 2010-04-14 2010-04-14 결함 허용이 가능한 분산 동기화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110114869A true KR20110114869A (ko) 2011-10-20
KR101192896B1 KR101192896B1 (ko) 2012-10-18

Family

ID=45029674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100034240A KR101192896B1 (ko) 2010-04-14 2010-04-14 결함 허용이 가능한 분산 동기화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101192896B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095224B2 (en) 2014-03-03 2018-10-09 Samsung Electronics Co., Ltd. EtherCAT control device and factory automation system having the same
KR102328671B1 (ko) * 2020-12-17 2021-11-18 주식회사 지오플랜 무선 동기화 방법 및 장치
KR102328672B1 (ko) * 2020-12-17 2021-11-18 주식회사 지오플랜 하이브리드 동기화 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3664580B2 (ja) 1998-03-09 2005-06-29 富士通株式会社 クロック切替装置
JP2005229322A (ja) * 2004-02-13 2005-08-25 Yaskawa Electric Corp マスタスレーブ同期通信システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095224B2 (en) 2014-03-03 2018-10-09 Samsung Electronics Co., Ltd. EtherCAT control device and factory automation system having the same
US10579048B2 (en) 2014-03-03 2020-03-03 Samsung Electronics Co., Ltd. EtherCAT control device and factory automation system having the same
KR102328671B1 (ko) * 2020-12-17 2021-11-18 주식회사 지오플랜 무선 동기화 방법 및 장치
KR102328672B1 (ko) * 2020-12-17 2021-11-18 주식회사 지오플랜 하이브리드 동기화 방법 및 장치

Also Published As

Publication number Publication date
KR101192896B1 (ko) 2012-10-18

Similar Documents

Publication Publication Date Title
US8339969B2 (en) Distributed ethernet system and method for detecting fault based thereon
CN102833061B (zh) 基于无缝冗余环网的提高时钟精度的方法及节点
EP3016316A1 (en) Network control method and apparatus
CN105471622A (zh) 一种基于Galera的控制节点主备切换的高可用方法及系统
CN110830276A (zh) 一种基于冷冗余机制的EtherCAT通信系统及方法
CN109639512B (zh) 一种vts多传感器信息综合处理系统的热备份方法
CN105790825B (zh) 一种分布式保护中控制器热备份的方法和装置
US9019959B2 (en) Node, switch, and system
US11228499B1 (en) Control network planning
JP5266705B2 (ja) 通信システム
CN102158335B (zh) 时间同步端口的处理方法及装置
CN104092528A (zh) 一种时钟同步方法和装置
KR101192896B1 (ko) 결함 허용이 가능한 분산 동기화 방법 및 장치
US20110173347A1 (en) Method for synchronizing local clocks in a distributed computer network
JP2022128404A (ja) データパケット管理方法およびコンピュータプログラム
JP5775473B2 (ja) エッジ装置冗長化システム、切替制御装置およびエッジ装置冗長化方法
US20170366286A1 (en) Master/slave negotiation associated with a synchronous ethernet network
CN102412984A (zh) 一种转发表项的管理方法和设备
CN102487332B (zh) 故障处理方法、装置和系统
KR101358995B1 (ko) 고가용성 관리 방법 및 시스템
CN102983997A (zh) 主控服务迁移方法及装置
CN116800773A (zh) 网络同步通信方法及装置
JP4994280B2 (ja) ルート変更型ネットワーク装置及びシステム
KR20120051632A (ko) 링형 토폴로지를 갖는 분산 시스템에서의 클럭 동기화 방법 및 장치
CN105577310A (zh) 一种时间触发网络中任务分区与通信调度的同步方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151109

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee