KR20220085579A - 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법 - Google Patents

멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법 Download PDF

Info

Publication number
KR20220085579A
KR20220085579A KR1020200175755A KR20200175755A KR20220085579A KR 20220085579 A KR20220085579 A KR 20220085579A KR 1020200175755 A KR1020200175755 A KR 1020200175755A KR 20200175755 A KR20200175755 A KR 20200175755A KR 20220085579 A KR20220085579 A KR 20220085579A
Authority
KR
South Korea
Prior art keywords
timing
core
error
task
time tick
Prior art date
Application number
KR1020200175755A
Other languages
English (en)
Other versions
KR102497256B1 (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 KR1020200175755A priority Critical patent/KR102497256B1/ko
Publication of KR20220085579A publication Critical patent/KR20220085579A/ko
Application granted granted Critical
Publication of KR102497256B1 publication Critical patent/KR102497256B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템은, 시간 틱 발생 횟수를 카운팅하는 시간 틱 카운터와, 타이머의 동작 시작 시점 관련한 시간 스탬프를 포함하는 태스크 타이밍 테이블을 구비하는 메인코어, 태스크 수행 중에 상기 태스크 타이밍 테이블을 기초로 태스크 수행 타이밍을 보정하는 서브코어, 및 상기 메인코어와 상기 서브코어의 동작이 활성화되는 스타트업 시점에서, 상기 메인코어와 상기 서브코어 각각의 태스크 수행 타이밍을 동일하게 설정하는 스타트업 로직를 포함한다.

Description

멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법{SYSTEM AND METHOD FOR TIMING SYNCHRONIZATION OF TASK EXECUTION IN MULTI-CORE ENVIRONMENT}
본 발명은 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법에 관한 것이다.
일반적으로 차량의 멀티 코어(Multi-Core) 환경에서는 코어 각각의 태스크가 개별적으로 수행되며, 코어 각각의 태스크는 스케줄링 방식을 채용한 차량 제어 시스템에서 주기적으로 수행된다.
일반적인 차량 제어 시스템에서 멀티 코어 각각의 태스크 수행 타이밍은 상호 독립적이며, 이로 인해 멀티 코어 각각의 태스크 수행 타이밍이 비동기화되는 경우가 있다.
멀티 코어 각각의 태스크 수행 타이밍은, 멀티 코어 사이의 타이밍 이슈 발생 방지를 위해, 다른 코어의 태스크 수행 타이밍과 동기화되는 것이 바람직하다. 그러나 별도의 동기화 메커니즘이 멀티 코어 각각에 적용되지 않은 경우, 멀티 코어 사이의 태스크 수행 타이밍이 비동기화되는 이슈가 발생할 가능성이 있다.
즉, 멀티 코어 사이의 태스크 수행 타이밍이 비동기화되는 이슈를 최소화하기 위해서는, 멀티 코어 사이의 태스크 수행 타이밍을 동기화할 수 있는 동기화 메커니즘이 마련되어야 한다. 또한, 태스크 수행 타이밍의 동기화와 동시에 태스크 수행 주기의 오차율을 최소화하는 방안이 마련되어야 한다.
이에 따라, 멀티 코어 사이의 태스크 수행 타이밍의 동기화를 위해서는 태스크 수행 시작 시점의 동기화와 런타임(Runtime) 중 발생하는 타이밍 오차에 대한 보정 알고리즘이 요구된다.
종래 기술의 경우, 멀티 코어 각각에 할당된 타이머(Timer)를 기반으로 한 시간 틱(Time Tick)에 따라 태스크가 수행된다.
코어는 시간 틱에 따라 태스크를 수행한 이후, 다음 시간 틱이 발생하기까지 아이들(Idle) 상태로 대기함과 동시에 다음 시간 틱의 발생 여부를 모니터링하며, 다음 시간 틱이 발생한 시점에 새로운 주기의 태스크를 수행한다. 코어는 이러한 과정을 반복하면서 주기적으로 태스크를 수행한다.
이러한 태스크 수행 메커니즘을 멀티 코어 각각에 단순 적용하는 경우, 멀티 코어 사이의 타이밍 차이를 고려한 별도의 보정 메커니즘이 없고, 멀티 코어 사이의 태스크 수행 시작 시점이 다를 수 있으므로, 태스크 수행 타이밍의 동기화가 보장될 수 없는 문제가 있다.
또한, 태스크 수행 시작 시점에서 태스크 수행 타이밍의 동기화가 되어 있더라도, 런타임 중 태스크 수행 시간이 길어져 아이들 시간이 시간 틱 발생 시점을 넘어갈 경우 태스크 수행 타이밍의 비동기화가 발생하는 문제가 있다.
따라서, 비동기화 문제를 개선하기 위한 태스크 수행 타이밍 동기화 방식과 오차 보정 메커니즘을 마련함으로써 태스크 수행 타이밍의 동기화에 대한 강건성을 확보하는 것이 요구된다.
대한민국 공개특허 제10-2018-0059263호
이에 본 발명은 상기한 사정을 감안하여 안출된 것으로, 런타임 중 메인 코어의 태스크 수행 시작 시점을 기준으로 하여 서브 코어의 태스크 수행 타이밍을 보정함으로써, 멀티 코어 사이의 태스크 수행 타이밍의 동기화를 보장하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템은, 시간 틱 발생 횟수를 카운팅하는 시간 틱 카운터와, 타이머의 동작 시작 시점 관련한 시간 스탬프를 포함하는 태스크 타이밍 테이블을 구비하는 메인코어; 태스크 수행 중에 상기 태스크 타이밍 테이블을 기초로 태스크 수행 타이밍을 보정하는 서브코어; 및 상기 메인코어와 상기 서브코어의 동작이 활성화되는 스타트업 시점에서, 상기 메인코어와 상기 서브코어 각각의 태스크 수행 타이밍을 동일하게 설정하는 스타트업 로직;을 포함한다.
상기 메인코어는, 태스크 수행 중에 타이머 동작에 따른 시간 틱 카운터와 시간 스탬프를 상기 태스크 타이밍 테이블에 저장할 수 있다.
상기 서브코어는, 태스크 수행 중에 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 상기 메인코어의 시간 틱 카운터를 비교하는 시간 틱 카운터 비교부를 포함할 수 있다.
상기 서브코어는, 상기 시간 틱 카운터 비교부의 비교 결과를 통해 시간 틱 카운터가 서로 일치하거나 자신의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 상기 메인 코어의 시간 스탬프와 상기 메인코어의 현재 타이머값을 비교하는 시간 스탬프 비교기를 포함할 수 있다.
상기 서브코어는, 상기 시간 스탬프 비교부의 비교 결과를 통해 타이밍 오차를 계산하는 태스크 타이밍 오류 검출부를 포함할 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 시간 틱 카운터 비교부의 비교 결과를 통해 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 작은 경우, 태스크 누락 오류로 판단할 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 시간 틱 카운터 비교부의 비교 결과를 통해 시간 틱 카운터가 서로 일치하는 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감함으로써 타이밍 지연 오차를 계산할 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 시간 스탬프 비교기의 비교 결과를 통해 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감하여 오차주기를 계산하고, 기설정된 기준 타이밍 주기에서 상기 오차주기를 차감함으로써 타이밍 우선 생성 오차를 계산할 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 타이밍 지연 오차 또는 상기 타이밍 우선 생성 오차를 기설정된 오차범위와 비교하여 비교결과에 따라 비동기화 오류 여부를 판단할 수 있다.
상기 서브코어는, 상기 태스크 타이밍 오류 검출부의 판단 결과를 고려하여 다음 시간 틱 발생 시점에 오프셋을 반영하는 태스크 타이밍 관리부를 포함할 수 있다.
상기 태스크 타이밍 관리부는, 상기 시간 틱 카운터 비교부의 비교 결과를 통해 태스크 누락 오류로 판단되면, 상기 메인코어의 시간 틱 카운터와 동일하도록 다음 시간 틱 카운터를 보정할 수 있다.
상기 태스크 타이밍 관리부는, 상기 태스크 타이밍 오류 검출부의 계산 결과에 따라 타이밍 지연 오차가 발생하면, 상기 타이밍 지연 오차가 기설정된 오차범위 이내인 경우, 상기 타이밍 지연 오차를 고려하여 다음 시간 틱 발생 시점을 앞당길 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 타이밍 지연 오차가 기설정된 오차범위를 벗어나는 경우, 비동기화 오류가 발생한 것으로 판단할 수 있다.
상기 태스크 타이밍 관리부는, 상기 태스크 타이밍 오류 검출부의 계산 결과에 따라 타이밍 우선 생성 오차가 발생하면, 상기 타이밍 우선 생성 오차가 기설정된 오차범위 이내인 경우, 상기 메인코어의 시간 틱 카운터가 갱신되는 시점으로 다음 시간 틱 발생 시점을 변경할 수 있다.
상기 태스크 타이밍 오류 검출부는, 상기 타이밍 우선 생성 오차가 기설정된 오차범위를 벗어나는 경우, 비동기화 오류가 발생한 것으로 판단할 수 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법은, 메인코어와 서브코어를 포함하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법에 있어서, 상기 메인코어와 동일한 타이머값과 시간 틱 카운터를 가지도록 설정하는 스타트업 단계; 시간 틱이 발생할 때마다 상기 메인코어의 시간 틱 카운터와 상기 서브코어의 시간 틱 카운터를 비교하는 비교 단계; 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터와 같거나 큰 경우, 상기 서브코어의 태스크에 대한 타이밍 오차를 산출하는 타이밍 오차 산출 단계; 및 상기 타이밍 오차에 따라 태스크 수행 타이밍을 보정하는 타이밍 보정 단계;를 포함한다.
상기 스타트업 단계 이후, 상기 시간 틱 발생에 따라 태스크를 수행하는 태스크 수행 단계; 및 상기 타이밍 오차 산출 단계 이후, 상기 타이밍 오차가 기설정된 오차범위 이내인지를 판단하는 오차 범위 판단 단계;를 더 포함할 수 있다.
상기 타이밍 오차가 상기 오차범위를 벗어나는 경우 비동기화 오류를 검출하는 비동기화 오류 검출 단계;를 더 포함할 수 있다.
상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 작은 경우, 태스크 누락 오류를 검출하는 태스크 누락 검출 단계; 및 상기 태스크 누락 오류 검출시, 상기 서브코어의 시간 틱 카운터를 수정하는 시간 틱 카운터 수정 단계;를 더 포함할 수 있다.
상기 타이밍 오차 산출 단계는, 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터와 일치하는 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감하여 타이밍 지연 오차를 산출하는 단계와, 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 현재 타이머값에서 시간 스탬프를 차감하여 오차주기를 산출하고, 기설정된 기준 타이밍 주기에서 상기 오차주기를 차감하여 타이밍 우선 생성 오차를 산출하는 단계를 포함할 수 있다.
본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법에 의하면, 런타임 중 메인 코어의 태스크 수행 시작 시점을 기준으로 하여 서브 코어의 태스크 수행 타이밍을 보정함으로써, 멀티 코어 사이의 태스크 수행 타이밍의 동기화를 보장하는 효과가 있다.
또한, 태스크를 수행하는 과정에서 서브 코어의 태스크 수행 주기의 오류 및 누락에 대한 모니터링이 가능한 효과가 있다.
또한, 메인 코어의 태스크 수행 주기의 정확성이 보장되는 경우, 메인 코어와 동기화되어 동작하는 서브 코어의 태스크 수행 주기의 정확성이 보장되어, 안정성을 확보하는 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템의 블록도이다.
도 2는 스타트업 시점에서 메인코어와 서브코어의 태스크 수행 타이밍을 동일하게 설정하는 과정을 보여주는 도면이다.
도 3은 런타임 중에 서브코어에 발생하는 타이밍 지연과 태스크 우선 수행의 일 예를 설명하기 위한 도면이다.
도 4는 런타임 중에 서브코어에 발생하는 비동기화 오류의 일 예를 설명하기 위한 도면이다.
도 5는 런타임 중에 서브코어에 발생하는 태스크 누락 오류의 일 예를 설명하기 위한 도면이다.
도 6은 런타임 중에 서브코어에 발생하는 비동기화 오류의 일 예를 설명하기 위한 도면이다.
도 7은 도 1의 서브코어의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 8은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법의 순서도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템의 블록도이다.
도 1을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템(100)은, 멀티 코어 사이의 태스크 수행 타이밍 동기화를 위한 메커니즘을 제공하는 것으로서, 스타트업(Startup) 시점에 멀티 코어 각각의 태스크가 동시에 수행되도록 한다.
또한, 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템(100)은, 런타임 중 발생할 수 있는 태스크 지연 등에 의한 멀티 코어 사이의 태스크 타이밍 비동기화 현상을 방지하기 위해, 메인 코어(110)의 시간 스탬프(Time Stamp)를 기준으로 서브 코어(120) 각각의 태스크 수행 타이밍에 오프셋이 적용되도록 하여 멀티 코어 사이의 태스크 수행 타이밍을 지속적으로 동기화시키는 것을 특징으로 한다. 이 때 적용되는 메커니즘은 메인코어(110)의 태스크 지연이 없다는 전제하에서 서브코어(120)의 태스크 수행 주기의 오차율을 보장할 수 있다.
멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템(100)은, 메인코어(110), 서브코어(120), 및 스타트업 로직(130)을 포함한다.
메인코어(110)는, 서브코어(120)와 연동하여 태스크를 수행할 수 있다. 메인코어(110)는 서브코어(120)의 동작을 활성화시킬 수 있다. 메인코어(110)는 타이머 동작에 따라 발생하는 시간 틱을 기준으로 태스크를 수행할 수 있다. 타이머는 메인코어(110)의 동작이 활성화되는 시점에 동작을 시작할 수 있다. 시간 틱은 고정 주기를 가질 수 있다.
메인코어(110)는 시간 틱 발생 횟수를 카운팅하는 시간 틱 카운터(Time Tick Counter)와, 타이머의 동작 시작 시점 관련한 시간 스탬프(Time Stamp)를 태스크 수행 타이밍 보정을 위한 태스크 타이밍 테이블에 저장할 수 있다.
메인코어(110)는 시간 틱이 발생할 때마다 태스크 타이밍 테이블에 시간 틱 카운터와 시간 스탬프를 기록할 수 있다. 이와 같이 메인코어(110)는 다음 시간 틱 발생에 따른 다음 태스크 수행을 준비할 수 있다.
서브코어(120)는, 메인코어(110)와 연동하여 태스크를 수행할 수 있다. 서브코어(120)는 태스크 수행 중에 메인코어(110)의 태스크 타이밍 테이블을 기초로 태스크 수행 타이밍을 보정할 수 있다. 서브코어(120)는 시간 틱이 발생할 때 마다 메인코어(110)의 태스크 타이밍 테이블의 시간 틱 카운터와 자신의 시간 틱 카운터를 비교하는 시간 틱 카운터 비교기(121: Time Tick Counter Comparator)를 포함할 수 있다.
서브코어(120)는 비교한 시간 틱 카운터가 일치하는 경우, 추가적으로 메인코어(110)의 앞선 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하는 시간 스탬프 비교기(123: Time Stamp Comparator)를 포함할 수 있다. 서브코어(120)는 시간 스탬프 비교결과에 따라 어느 정도의 타이밍 오차가 발생하는지 계산하는 태스크 타이밍 오류 검출부(125: Task Timing Fault Detection)를 포함할 수 있다. 서브코어(120)는 발생한 타이밍 오차를 고려하여 다음 시간 틱 발생 시점에 오프셋을 반영함으로써 태스크 수행 타이밍을 보정하는 태스크 타이밍 관리부(127: Task Timing Management)를 포함할 수 있다. 서브코어(120)는 적어도 하나 이상이 구비될 수 있다.
스타트업 로직(130)은 메인코어(110)와 서브코어(120)의 동작이 활성화되는 스타트업 시점에서, 메인코어(110)와 서브코어(120) 각각의 태스크 수행 타이밍을 동일하게 설정하는 시간 동기화기(Time Synchronizer)를 포함할 수 있다. 이 때, 서브코어(120)의 타이머 동작 시작 시점이 메인코어(110)와 동일하게 설정되고, 시간 틱 발생 시점이 메인코어(110)와 동일하게 설정될 수 있다. 스타트업 로직(130)은 메인코어(110)와 서브코어(120) 사이의 타이머 동작 시작 시점에 차이가 발생하는 것을 보정할 수 있다.
이하에서는, 멀티 코어 환경에서 태스크 수행 타이밍을 동기화하는 과정을 상세 설명한다.
도 2는 스타트업 시점에서 메인코어와 서브코어의 태스크 수행 타이밍을 동일하게 설정하는 과정을 보여주는 도면이다.
도 2를 참고하면, 메인코어(110)는 태스크 수행을 위해 동작이 활성화되면, 태스크 연동을 위해 서브코어(120)를 활성화시킬 수 있다.
그런 다음 메인코어(110)는 초기화 절차(Startup Processing)를 수행할 수 있다. 이때, 서브코어(120)는 태스크를 바로 수행하지 않고, 메인코어(110)의 초기화 절차가 완료될 때까지 대기한다(Waiting Main Core Ready).
메인코어(110)의 초기화 절차가 완료되면, 스타트업 로직(130)은 메인코어(110)와 서브코어(120) 각각의 타이머를 동시에 초기화시키고, 타이머 동작 시작(Start Timer)에 따른 시간 틱 발생 시점을 설정한다(Set Time Tick).
이를 통해, 메인코어(110)와 서브코어(120)는 스타트업 시점에서 태스크 수행 타이밍이 동일하게 설정될 수 있다.
도 3은 런타임 중에 서브코어에 발생하는 타이밍 지연과 태스크 우선 수행의 일 예를 설명하기 위한 도면이다.
도 3을 참고하면, 런타임 중에 서브코어(120)는 메인코어(110)의 시간 스탬프를 기준으로 시간 틱 발생 시점을 보정하여, 멀티 코어 사이의 각 태스크 수행 타이밍을 동기화할 수 있다.
메인코어(110)는 시간 틱이 발생할 때마다 태스크 타이밍 테이블에 시간 틱 카운터와 자신의 타이머에 따른 시간 스탬프를 저장함으로써, 다음 시간 틱을 위한 설정을 수행하고, 다음 태스크 수행을 준비한다.
서브코어(120)는 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 메인코어(110)의 시간 틱 카운터를 비교한다.
일 실시예에 있어서, 제1 시간 구간(t1)에서 메인코어(110)와 서브코어(120) 각각의 시간 틱 카운터가 일치하는 경우, 서브코어(120)는 추가적으로 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 어느 정도의 타이밍 오차가 발생하는지 계산할 수 있다.
일 실시예에 있어서, 서브코어(120)는 현재 타이머값에서 메인코어(110)의 시간 스탬프를 차감하여 타이밍 지연 오차를 계산할 수 있다. 여기서, 메인코어(110)의 시간 스탬프가 1000이고, 메인코어(110)의 현재 타이머값이 1050인 경우, 50 만큼의 타이밍 지연 오차가 발생할 수 있다.
서브코어(120)는 타이밍 지연 오차와 기설정된 오차범위(예, 100)를 비교할 수 있다. 서브코어(120)는 타이밍 지연 오차가 기설정된 오차범위 이내인 경우, 타이밍 지연 오차를 다음 시간 틱 발생 시점의 타이머값에 오프셋값으로 반영하여 메인코어(110)의 현재 타이머값을 보정할 수 있다. 이를 통해 서브코어(120)의 시간 틱 발생 시점이 앞당겨짐으로써 메인코어(120)와 태스크 수행 타이밍이 일치하게 된다.
일 실시예에 있어서, 제2 시간 구간(t2)에서 서브코어(120)의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 큰 경우, 서브코어(120)는 메인코어(110)보다 빠르게 태스크를 수행한 것으로 판단할 수 있다. 이때 서브코어(120)는 추가적으로 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 어느 정도의 타이밍 오차가 발생하는지 계산할 수 있다.
일 실시예에 있어서, 서브코어(120)는 현재 타이머값에서 메인코어(110)의 시간 스탬프를 차감하여 오차주기를 계산하고, 기설정된 기준 타이밍 주기(예, 1000)에서 계산된 오차주기를 차감함으로써 타이밍 우선 생성 오차를 계산할 수 있다. 여기서, 메인코어(110)의 시간 스탬프가 3000이고, 메인코어(110)의 현재 타이머값이 3960인 경우, 960의 오차주기와 40의 타이밍 우선 생성 오차가 발생할 수 있다.
서브코어(120)는 타이밍 우선 생성 오차가 기설정된 오차범위(예, 100) 내에 포함되는 경우, 메인코어(110)의 시간 틱 카운터가 갱신될 때까지 대기한 후 갱신 시점으로 다음 시간 틱 발생 시점을 변경함으로써 태스크 수행 타이밍을 보정할 수 있다.
도 4는 런타임 중에 서브코어에 발생하는 비동기화 오류의 일 예를 설명하기 위한 도면이다.
도 4를 참고하면, 서브코어(120)는 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 메인코어(110)의 시간 틱 카운터를 비교한다.
일 실시예에 있어서, 제3 시간 구간(t3)에서 서브코어(120)의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 큰 경우, 서브코어(120)는 메인코어(110)보다 빠르게 태스크를 수행한 것으로 판단할 수 있다. 이때 서브코어(120)는 추가적으로 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 어느 정도의 타이밍 오차가 발생하는지 계산할 수 있다.
일 실시예에 있어서, 서브코어(120)는 현재 타이머값에서 메인코어(110)의 시간 스탬프를 차감하여 오차주기를 계산하고, 기설정된 기준 타이밍 주기에서 오차주기를 차감함으로써 타이밍 우선 생성 오차를 계산할 수 있다. 여기서, 메인코어(110)의 시간 스탬프가 3000이고, 메인코어(110)의 현재 타이머값이 3780인 경우, 780의 오차주기와 220의 타이밍 우선 생성 오차가 발생할 수 있다.
서브코어(120)는 타이밍 우선 생성 오차가 기설정된 오차범위(예, 100)를 벗어나는 경우, 비동기화 오류가 발생한 것으로 판단할 수 있다. 서브코어(120)는 비동기화 오류 해결을 위한 리액션(Reaction)을 요청할 수 있다.
도 5는 런타임 중에 서브코어에 발생하는 태스크 누락 오류의 일 예를 설명하기 위한 도면이다.
도 5를 참고하면, 서브코어(120)는 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 메인코어(110)의 시간 틱 카운터를 비교한다.
일 실시예에 있어서, 제4 시간 구간(t4)에서 서브코어(120)의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 작은 경우, 서브코어(120)는 태스크의 수행이 누락된 것으로 판단할 수 있다. 여기서, 서브코어(120)는 태스크 수행 이후 2050의 주기 동안 다음 태스크 수행이 이루어지지 않은 상태일 수 있다.
서브코어(120)는 태스크 누락 오류를 발생시키며, 태스크 누락 오류 해결을 위한 리액션을 요청할 수 있다.
또한, 서브코어(120)는 메인코어(110)의 시간 틱 카운터와 동일하도록 다음 시간 틱 카운터를 보정할 수 있다.
도 6은 런타임 중에 서브코어에 발생하는 비동기화 오류의 일 예를 설명하기 위한 도면이다.
도 6을 참고하면, 서브코어(120)는 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 메인코어(110)의 시간 틱 카운터를 비교한다.
일 실시예에 있어서, 제5 시간 구간(t5)에서 서브코어(120)의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터와 일치하는 경우, 서브코어(120)는 추가적으로 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 어느 정도의 타이밍 오차가 발생하는지 계산할 수 있다.
일 실시예에 있어서, 서브코어(120)는 현재 타이머값에서 메인코어(110)의 시간 스탬프를 차감함으로써 타이밍 지연 오차를 계산할 수 있다. 여기서, 현재 타이머값이 3220이고, 메인코어(110)의 시간 스탬프가 3000인 경우, 220의 타이밍 지연 오차가 발생할 수 있다.
서브코어(120)는 타이밍 지연 오차와 기설정된 오차범위(예, 100)를 비교할 수 있다. 서브코어(120)는 타이밍 지연 오차가 기설정된 오차범위를 벗어나는 경우, 비동기화 오류로 판단할 수 있다. 서브코어(120)는 비동기화 오류 해결을 위한 리액션을 요청할 수 있다.
도 7은 도 1의 서브코어의 메커니즘의 일 예를 설명하기 위한 도면이다.
도 7을 참고하면, 서브코어(120)는 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 메인코어(110)의 시간 틱 카운터를 비교한다.
서브코어(120)는 비교한 값이 일치하는 경우, 추가적으로 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 어느 정도의 타이밍 오차가 발생하는지 계산한다.
서브코어(120)는 발생한 오차만큼을 다음 시간 틱 발생 시점에 반영한다.
서브코어(120)는 타이밍 오차가 기설정된 오차범위를 넘어서는 경우 비동기화 오류를 발생시키며, 이에 따른 시스템의 리액션을 수행한다.
서브코어(120)는 자신의 시간 틱 카운터가 더 큰 경우 메인코어(110)보다 더 빠르게 태스크를 수행한 것으로 판정할 수 있다.
서브코어(120)는 메인코어(110)의 시간 스탬프와 메인코어(110)의 현재 타이머값을 비교하여 타이밍 오차를 계산할 수 있다. 타이밍 오차가 오차범위 이내 경우 메인코어(110)의 시간 틱 카운터가 갱신되어 서브코어(120)와 일치할 때까지 대기한 후, 다음 시간 틱 발생 시점을 설정한다.
서브코어(120)는 타이밍 오차가 오차범위를 넘어서는 경우 비동기화 오류를 발생시키며, 이에 따른 시스템의 리액션을 수행한다.
서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 작은 경우 태스크의 수행이 누락된 것으로 판단할 수 있으며, 이 경우 태스크 누락 오류를 발생시키며, 이에 따른 시스템의 리액션을 수행한다. 이 때, 서브코어(120)는 메인코어(11)와 동일하도록 자신의 시간 틱 카운터를 보정할 수 있다.
도 8은 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법의 순서도이다.
도 1 및 도 8을 참고하면, 본 발명의 바람직한 실시예에 따른 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법은, 멀티 코어 사이의 태스크 수행 타이밍 동기화를 위한 방법을 제공하는 것으로서, 스타트업(Startup) 시점에 멀티 코어 각각의 태스크가 동시에 수행되도록 한다.
또한, 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법은, 런타임 중 발생할 수 있는 태스크 지연 등에 의한 멀티 코어 사이의 태스크 타이밍 비동기화 현상을 방지하기 위해, 메인 코어(110)의 시간 스탬프(Time Stamp)를 기준으로 서브 코어(120) 각각의 태스크 수행 타이밍에 오프셋이 적용되도록 하여 멀티 코어 사이의 태스크 수행 타이밍을 지속적으로 동기화시키는 것을 특징으로 한다.
먼저, 스타트업 단계(S810)에서, 서브코어(120)는 메인코어(110)와 동일한 타이머값과 시간 틱 카운터를 가지도록 설정될 수 있다. 여기서, 서브코어(120)는 메인코어(110)에 의해 동작이 활성화될 수 있다. 서브코어(120)는 메인코어(110)의 초기화 동작이 완료될 때까지 대기할 수 있다. 서브
태스크 수행 단계(S820)에서, 서브코어(120)는 시간 틱 발생에 따라 태스크를 수행할 수 있다.
비교 단계(S830)에서, 서브코어(120)는 시간 틱이 발생 때마다 메인코어(110)의 시간 틱 카운터와 자신의 시간 틱 카운터를 비교할 수 있다.
카운터 판단 단계(S840)에서, 서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터와 같거나 큰 지를 판단할 수 있다.
타이밍 오차 산출 단계(S850)에서, 서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터와 같거나 큰 경우, 현재 타이머값과 메인코어(110)의 시간 스탬프를 이용하여 타이밍 오차를 산출할 수 있다.
일 실시예에 있어서, 서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터와 일치하는 경우, 현재 타이머값에서 시간 스탬프를 차감하여 타이밍 지연 오차를 산출할 수 있다.
일 실시예에 있어서, 서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 큰 경우, 현재 타이머값에서 시간 스탬프를 차감하여 오차주기를 산출하고, 기설정된 기준 타이밍 주기에서 오차주기를 차감하여 타이밍 우선 생성 오차를 산출할 수 있다.
오차 범위 판단 단계(S860)에서, 서브코어(120)는 타이밍 오차가 오차범위 이내인지를 판단할 수 있다.
타이밍 보정 단계(S870)에서, 서브코어(120)는 타이밍 오차가 오차범위 이내인 경우, 타이밍 지연 오차 또는 타이밍 우선 생성 오차를 고려하여 다음 시간 틱 발생 시점을 변경할 수 있다. 여기서, 다음 시간 틱 발생 시점에 타이밍 지연 오차에 따라 소정 시간 앞당겨질 수 있다. 또한 다음 시간 틱 발생 시점은 타이밍 우선 생성 오차에 따라 소정 시간 늦춰질 수 있다.
한편, S860 단계 이후, 비동기화 오류 검출 단계(S880)에서, 서브코어(120)는 타이밍 오차가 오차범위를 벗어나는 경우, 비동기화 오류를 검출할 수 있다.
리액션 수행 단계(S890)에서, 서브코어(120)는 상위 시스템에 비동기화 오류 해결을 위한 적절한 리액션을 요청할 수 있다.
한편, S840 단계 이후, 태스크 누락 오류 검출 단계(S900)에서, 서브코어(120)는 자신의 시간 틱 카운터가 메인코어(110)의 시간 틱 카운터보다 작은 경우, 태스크 누락 오류를 검출할 수 있다.
시간 틱 카운터 수정 단계(S910)에서, 서브코어(120)는 메인코어(110)와 동일하도록 자신의 시간 틱 카운터를 수정할 수 있다. 이후 서브코어(120)는 수정된 시간 틱 카운터 발생 시점에 태스크를 수행할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.
실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
100: 태스크 수행 타이밍 동기화 시스템
110: 메인코어
120: 서브코어
121: 시간 틱 카운터 비교기
123: 시간 스탬프 비교기
125: 태스크 타이밍 오류 검출부
127: 태스크 타이밍 관리부

Claims (20)

  1. 시간 틱 발생 횟수를 카운팅하는 시간 틱 카운터와, 타이머의 동작 시작 시점 관련한 시간 스탬프를 포함하는 태스크 타이밍 테이블을 구비하는 메인코어;
    태스크 수행 중에 상기 태스크 타이밍 테이블을 기초로 태스크 수행 타이밍을 보정하는 서브코어; 및
    상기 메인코어와 상기 서브코어의 동작이 활성화되는 스타트업 시점에서, 상기 메인코어와 상기 서브코어 각각의 태스크 수행 타이밍을 동일하게 설정하는 스타트업 로직;
    을 포함하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  2. 제 1 항에 있어서,
    상기 메인코어는,
    태스크 수행 중에 타이머 동작에 따른 시간 틱 카운터와 시간 스탬프를 상기 태스크 타이밍 테이블에 저장하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  3. 제 1 항에 있어서,
    상기 서브코어는,
    태스크 수행 중에 시간 틱이 발생할 때마다 자신의 시간 틱 카운터와 상기 메인코어의 시간 틱 카운터를 비교하는 시간 틱 카운터 비교부를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  4. 제 3 항에 있어서,
    상기 서브코어는,
    상기 시간 틱 카운터 비교부의 비교 결과를 통해 시간 틱 카운터가 서로 일치하거나 자신의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 상기 메인 코어의 시간 스탬프와 상기 메인코어의 현재 타이머값을 비교하는 시간 스탬프 비교기를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  5. 제 4 항에 있어서,
    상기 서브코어는,
    상기 시간 스탬프 비교부의 비교 결과를 통해 타이밍 오차를 계산하는 태스크 타이밍 오류 검출부를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  6. 제 5 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 시간 틱 카운터 비교부의 비교 결과를 통해 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 작은 경우, 태스크 누락 오류로 판단하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  7. 제 5 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 시간 틱 카운터 비교부의 비교 결과를 통해 시간 틱 카운터가 서로 일치하는 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감함으로써 타이밍 지연 오차를 계산하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  8. 제 5 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 시간 스탬프 비교기의 비교 결과를 통해 상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감하여 오차주기를 계산하고, 기설정된 기준 타이밍 주기에서 상기 오차주기를 차감함으로써 타이밍 우선 생성 오차를 계산하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  9. 제 8 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 타이밍 지연 오차 또는 상기 타이밍 우선 생성 오차를 기설정된 오차범위와 비교하여 비교결과에 따라 비동기화 오류 여부를 판단하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  10. 제 6 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 서브코어는,
    상기 태스크 타이밍 오류 검출부의 판단 결과를 고려하여 다음 시간 틱 발생 시점에 오프셋을 반영하는 태스크 타이밍 관리부를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  11. 제 10 항에 있어서,
    상기 태스크 타이밍 관리부는,
    상기 시간 틱 카운터 비교부의 비교 결과를 통해 태스크 누락 오류로 판단되면, 상기 메인코어의 시간 틱 카운터와 동일하도록 다음 시간 틱 카운터를 보정하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  12. 제 10 항에 있어서,
    상기 태스크 타이밍 관리부는,
    상기 태스크 타이밍 오류 검출부의 계산 결과에 따라 타이밍 지연 오차가 발생하면, 상기 타이밍 지연 오차가 기설정된 오차범위 이내인 경우, 상기 타이밍 지연 오차를 고려하여 다음 시간 틱 발생 시점을 앞당기는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  13. 제 12 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 타이밍 지연 오차가 기설정된 오차범위를 벗어나는 경우, 비동기화 오류가 발생한 것으로 판단하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  14. 제 10 항에 있어서,
    상기 태스크 타이밍 관리부는,
    상기 태스크 타이밍 오류 검출부의 계산 결과에 따라 타이밍 우선 생성 오차가 발생하면, 상기 타이밍 우선 생성 오차가 기설정된 오차범위 이내인 경우, 상기 메인코어의 시간 틱 카운터가 갱신되는 시점으로 다음 시간 틱 발생 시점을 변경하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  15. 제 14 항에 있어서,
    상기 태스크 타이밍 오류 검출부는,
    상기 타이밍 우선 생성 오차가 기설정된 오차범위를 벗어나는 경우, 비동기화 오류가 발생한 것으로 판단하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템.
  16. 메인코어와 서브코어를 포함하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법에 있어서,
    상기 메인코어와 동일한 타이머값과 시간 틱 카운터를 가지도록 설정하는 스타트업 단계;
    시간 틱이 발생할 때마다 상기 메인코어의 시간 틱 카운터와 상기 서브코어의 시간 틱 카운터를 비교하는 비교 단계;
    상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터와 같거나 큰 경우, 상기 서브코어의 태스크에 대한 타이밍 오차를 산출하는 타이밍 오차 산출 단계; 및
    상기 타이밍 오차에 따라 태스크 수행 타이밍을 보정하는 타이밍 보정 단계;
    를 포함하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법.
  17. 제 16 항에 있어서,
    상기 스타트업 단계 이후, 상기 시간 틱 발생에 따라 태스크를 수행하는 태스크 수행 단계; 및
    상기 타이밍 오차 산출 단계 이후, 상기 타이밍 오차가 기설정된 오차범위 이내인지를 판단하는 오차 범위 판단 단계;
    를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법.
  18. 제 17 항에 있어서,
    상기 타이밍 오차가 상기 오차범위를 벗어나는 경우 비동기화 오류를 검출하는 비동기화 오류 검출 단계;
    를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법.
  19. 제 16 항에 있어서,
    상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 작은 경우, 태스크 누락 오류를 검출하는 태스크 누락 검출 단계; 및
    상기 태스크 누락 오류 검출시, 상기 서브코어의 시간 틱 카운터를 수정하는 시간 틱 카운터 수정 단계;
    를 더 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법.
  20. 제 16 항에 있어서,
    상기 타이밍 오차 산출 단계는,
    상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터와 일치하는 경우, 현재 타이머값에서 상기 메인코어의 시간 스탬프를 차감하여 타이밍 지연 오차를 산출하는 단계와,
    상기 서브코어의 시간 틱 카운터가 상기 메인코어의 시간 틱 카운터보다 큰 경우, 현재 타이머값에서 시간 스탬프를 차감하여 오차주기를 산출하고, 기설정된 기준 타이밍 주기에서 상기 오차주기를 차감하여 타이밍 우선 생성 오차를 산출하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 환경에서 태스크 수행 타이밍 동기화 방법.
KR1020200175755A 2020-12-15 2020-12-15 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법 KR102497256B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175755A KR102497256B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175755A KR102497256B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20220085579A true KR20220085579A (ko) 2022-06-22
KR102497256B1 KR102497256B1 (ko) 2023-02-06

Family

ID=82216548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175755A KR102497256B1 (ko) 2020-12-15 2020-12-15 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102497256B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199393A (ja) * 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd タスク制御装置及びタスク制御方法
JP2012531001A (ja) * 2009-12-22 2012-12-06 インテル・コーポレーション 複数のコアおよびスレッドについてのタイムスタンプカウンタ(tsc)のオフセットの制御
KR101290785B1 (ko) * 2012-04-13 2013-07-30 주식회사 우리기술 분산 제어 시스템의 시간 동기화 장치 및 방법
KR20180059263A (ko) 2016-11-25 2018-06-04 현대오트론 주식회사 멀티 코어 시스템 및 이의 구동 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199393A (ja) * 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd タスク制御装置及びタスク制御方法
JP2012531001A (ja) * 2009-12-22 2012-12-06 インテル・コーポレーション 複数のコアおよびスレッドについてのタイムスタンプカウンタ(tsc)のオフセットの制御
KR101290785B1 (ko) * 2012-04-13 2013-07-30 주식회사 우리기술 분산 제어 시스템의 시간 동기화 장치 및 방법
KR20180059263A (ko) 2016-11-25 2018-06-04 현대오트론 주식회사 멀티 코어 시스템 및 이의 구동 방법

Also Published As

Publication number Publication date
KR102497256B1 (ko) 2023-02-06

Similar Documents

Publication Publication Date Title
US20090158075A1 (en) Synchronization of independent clocks
US10892840B2 (en) Method and apparatus for TDMA slot synchronization and calibration of master and slave
WO2020191043A2 (en) Method of remotely monitoring the timing performance of a ptp slave
US8719386B2 (en) System and method for providing configuration synchronicity
RU2583847C2 (ru) Способ и устройство для синхронизации часов
CN107277594B (zh) 一种视音频与弹幕同步方法及装置
US20050193277A1 (en) Apparatus, method, and program for correcting time of event trace data
US10037346B1 (en) Time reservations for ensuring consistent reads in a distributed database without logging
US9104609B2 (en) Information processing apparatus, system time synchronization method and computer readable medium
KR102497256B1 (ko) 멀티 코어 환경에서 태스크 수행 타이밍 동기화 시스템 및 방법
US20130262911A1 (en) Method and data processing unit for providing a timestamp
JP5143952B2 (ja) 無線基地局
WO2017071357A1 (zh) 时间获取方法与装置
KR101290785B1 (ko) 분산 제어 시스템의 시간 동기화 장치 및 방법
CN109063135B (zh) 一种基于多活分布式架构的数据库复制方法及系统
US11314276B2 (en) Method of time delivery in a computing system and system thereof
WO2019242321A1 (zh) 时间同步方法、装置、网络设备及计算机可读存储介质
JP4605191B2 (ja) 割込み処理同期装置、割込み処理同期方法及びプログラム
CA3014595C (en) Method and apparatus for tdma slot synchronization and calibration of master and slave
CN116131984A (zh) 一种参考时间确定方法、装置、电子设备及存储介质
JP2015059851A (ja) 時刻補正装置、時刻補正方法、および、コンピュータ・プログラム
JP2011248809A (ja) 冗長演算システム
WO2019042102A1 (zh) 一种设备的软件运行环境质量的评估方法及装置
JP2013033374A (ja) 分散型監視制御システム
US10303204B2 (en) Clock diagnostic apparatus, clock diagnostic method, and computer readable medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant