KR20050099660A - 멀티프로세서 시스템에서의 데이터 동기 방법 - Google Patents

멀티프로세서 시스템에서의 데이터 동기 방법 Download PDF

Info

Publication number
KR20050099660A
KR20050099660A KR1020040024816A KR20040024816A KR20050099660A KR 20050099660 A KR20050099660 A KR 20050099660A KR 1020040024816 A KR1020040024816 A KR 1020040024816A KR 20040024816 A KR20040024816 A KR 20040024816A KR 20050099660 A KR20050099660 A KR 20050099660A
Authority
KR
South Korea
Prior art keywords
subprocessor
data
main processor
initialization
message
Prior art date
Application number
KR1020040024816A
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 삼성탈레스 주식회사
Priority to KR1020040024816A priority Critical patent/KR20050099660A/ko
Publication of KR20050099660A publication Critical patent/KR20050099660A/ko

Links

Classifications

    • 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/10Arrangements for initial synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 메인 프로세서 및 복수 개의 서브 프로세서로 이루어진 멀티프로세서 시스템에서 시스템 초기화시 데이터 동기 방법에 있어서, 상기 메인 프로세서 및 상기 복수 개의 서브 프로세서 각각이 자체 초기화를 수행하는 단계와, 상기 메인 프로세서가 상기 각 서브 프로세서에게 동기 데이터 수신 준비 여부를 문의하는 메시지를 전송하는 단계와, 상기 각 서브 프로세서가 동기 데이터 수신 준비 여부를 문의하는 메시지에 대한 응답 메시지를 전송하는 단계와, 상기 메인 프로세서가 각 서브 프로세서에게 동기 데이터를 전송하는 단계와, 상기 각 서브 프로세서가 동기 데이터를 수신하는 단계를 포함하는 것을 특징으로 한다.

Description

멀티프로세서 시스템에서의 데이터 동기 방법{DATA SYNCHRONIZATION METHOD IN MULTI-PROCESSOR SYSTEM}
본 발명은 멀티프로세서 시스템에서의 데이터 동기 방법에 관한 것이다.
오늘날의 통신시스템은 사용자의 다양한 요구사항의 충족을 위해, 여러 기능이 통합적으로 수행되도록 설계된다. 여러 기능을 한 시스템에 수용하기 위해서는 하나 이상의 프로세서를 장착한 여러 개의 모듈이 하나의 시스템을 구성하는 경우가 많다. 이러한 복잡한 시스템에서의 중요한 요소 중 하나는, 모든 통신시스템이 그러하듯이, 시스템 초기화이다. 시스템 초기화는 통신시스템이 요구되는 성능을 제공하고, 원활한 동작 수행하기 위하여 반드시 필요한 요소이다. 통신시스템 초기화에서 우선적으로 고려되어야 할 사항은 모듈간의 데이터 동기이다.
데이터 동기를 수행하기 위하여 모듈 사이에는 물리계층, 데이터링크 계층 및 어플리케이션 계층이 존재하여야 한다. 계층 간에는 데이터 통신을 통제하는 규칙인 프로토콜이 존재하여, 시스템 내의 모듈 간 데이터 송수신을 가능하게 한다. 통신시스템의 모듈 간에 데이터 동기가 이루어지지 않고 서로 상이한 데이터를 가지고 있을 경우, 전체 통신시스템은 예측 불가한 이상 동작을 수행할 수 있다.
종래의 통신시스템 사이의 초기 동기화는 별도로 정해진 사항이 없고, 일반적으로 데이터 송수신 전의 절차가 생략되고, 실제 필요한 데이터만 전송되는 방식으로 이루어졌다. 그에 따라 송수신 절차가 구조적이지 못하였다. 또한 프로세서의 역할도 따로 정의하지 않았다.
따라서, 본 발명의 목적은 통신시스템의 멀티프로세서의 역할을 정의하고, 프로세서 간의 초기 데이터 전송 순서를 정함으로써 효율적인 데이터통신과 프로세서별로 독립적으로 동기화하는 방법을 제공함에 있다.
상기 목적을 달성하기 위해 본 발명은 메인 프로세서 및 복수 개의 서브 프로세서로 이루어진 멀티프로세서 시스템에서 시스템 초기화시 데이터 동기 방법에 있어서, 상기 메인 프로세서 및 상기 복수 개의 서브 프로세서 각각이 자체 초기화를 수행하는 단계와, 상기 메인 프로세서가 상기 각 서브 프로세서에게 동기 데이터 수신 준비 여부를 문의하는 메시지를 전송하는 단계와, 상기 각 서브 프로세서가 동기 데이터 수신 준비 여부를 문의하는 메시지에 대한 응답 메시지를 전송하는 단계와, 상기 메인 프로세서가 각 서브 프로세서에게 동기 데이터를 전송하는 단계와, 상기 각 서브 프로세서가 동기 데이터를 수신하는 단계를 포함하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
본 발명은 멀티프로세서 간에 공유메모리를 사용할 수 없는 시스템(외부 통신로를 통한 방법으로만 데이터 송수신이 가능한 시스템)에서 시스템의 초기화 시, 시스템 내부의 각각의 모듈에 실장된 프로세서들 간의 데이터 동기를 위한 프로세서의 설정 및 데이터 동기 순서를 제공한다.
도 1은 본 발명의 실시예에 따른 멀티프로세서 시스템을 나타낸 도면이다.
도 1을 참조하면, 메인 프로세서(10)는 복수개의 서브 프로세서(20~40)에 연결되어 있다. 메인 프로세서(10)는 모듈 간 데이터 동기 수행에 있어 중심 역할을 한다. 메인 프로세서(10)가 있는 모듈은 통신시스템의 주요 데이터 전체를 NVRAM(Non-Volatile RAM)에 저장하여 시스템이 다운된 상황에서도 주요 데이터를 잃지 않고 보유할 수 있도록 한다. 그리고 복수개의 서브 프로세서(20~40)는 통신 시스템에서 독자적인 기능을 수행하며, 초기화 시 메인 프로세서(10)로부터 주요 데이터를 다운로드 받는다.
이어서 도 2를 참조하여 프로세서에서 자체 초기화 동작에 대해 설명한다.
도 2는 본 발명에 따른 프로세서에서의 자체 초기화 과정을 설명하기 위한 도면이다. 프로세서 초기화는 자체 초기화 단계와 데이터 동기 단계로 구분된다. 프로세서 간 데이터 동기 수행을 위하여 각각의 메인 및 서브 프로세서의 자체 초기화 단계에서는 도 2에 도시된 과정들이 수행된다.
도 2를 참조하면, 메인 또는 서브 프로세서는 먼저 단계 110에서 통신 디바이스 초기화를 수행한다. 메인 또는 서브 프로세서는 통신 디바이스 초기화시, 물리계층 및 데이터 링크 계층에서의 디바이스를 상위 어플리케이션 계층에서 사용할 수 있도록 초기화를 수행한다. 이어서, 메인 또는 서브 프로세서는 단계 120에서 타스크 생성 및 초기화를 수행한다. 메인 또는 서브 프로세서는 타스크 생성 및 초기화시, 데이터 동기를 수행하기 위한 타스크를 생성한다. 모듈별 고유 기능을 수행하는 타스크들은 데이터 동기 수행 타스크 보다 늦게 생성되거나, 같이 생성되더라도 데이터 동기가 완료될 때까지 일시 정지(Suspend)되어야 한다. 타스크 생성 및 초기화를 수행한 후, 메인 또는 서브 프로세서는 단계 130에서 메시지 큐 생성 및 초기화를 수행한다. 메인 프로세서에서의 메시지큐는 서브 프로세서의 개수와 메시지 전달 빈도를 고려하여 크기를 결정한다. 이때, 메인 프로세서에서는 서브 프로세서의 개수가 많을 경우 서브 프로세서로부터 메시지큐로 수신된 메시지를 한 사이클(Cycle)에 처리할 수 있도록, 메시지큐의 크기를 서브 프로세서의 개수보다 초과되도록 설정하여야 한다. 마지막으로 메인 또는 서브 프로세서는 단계 140에서 변수 생성 및 초기화를 수행한다. 즉, 메인 또는 서브 프로세서는 데이터 동기에 필요한 변수를 생성하고, 초기화한다. 여기서 필요한 변수는 각각의 동기 상태를 관리할 수 있는 전역변수(global variable)이다.
이어서 초기화시 메인 또는 서브 프로세서는 자체적인 초기화를 먼저 수행하고 데이터 동기를 위한 절차를 수행한다. 이하 도 3을 참조하여 데이터 동기를 위한 절차를 설명한다.
도 3은 본 발명의 실시예에 따른 멀티프로세서 시스템에서 초기화시 데이터 동기를 위한 메시지 흐름도를 나타낸 도면이다. 도 3에서는 1개의 메인 프로세서(10)와 2개의 서브 프로세서(20,30)간의 메시지 흐름도를 나타내었다. 서브 프로세서의 개수는 메인 프로세서의 성능에 따라 제한되는데, 메인 프로세서의 성능이 허락된다면, 서브 프로세서의 개수의 제한은 없다.
도 3을 참조하면, 먼저 메인 프로세서(10), 제1 서브 프로세서(20) 및 제2 서브 프로세서(30)는 각각 단계 202에서 자체적인 초기화를 개시한다. 각 프로세서에서의 자체적인 초기화 과정에 대해서는 도 2를 참조하여 전술한 바와 같다. 이어서, 메인 프로세서(10)가 단계 204에서 자체 초기화를 종료하고 단계 206에서 자체 초기화를 종료한 상태인 Prep 상태에 진입한다. 이어서 메인 프로세서(10)는 단계 208에서 연결된 제1 서브 프로세서(20)에게 자체 초기화를 종료하였는 지의 여부를 문의하는 메시지(con_request)를 전송한다. 제1 서브 프로세서(20)는 메인 프로세서(10)로부터 초기화 종료를 문의하는 메시지를 수신할 때 자체 초기화를 종료하지 않은 상태에 있다. 따라서, 제1 프로세서(20)는 그에 따른 응답 메시지를 메인 프로세서(10)로 전송하지 않는다. 유사하게, 메인 프로세서(10)는 단계 212에서 연결된 제2 서브 프로세서(30)에게 자체 초기화를 종료하였는 지의 여부를 문의하는 메시지(con_request)를 전송한다. 제2 프로세서(30)는 메인 프로세서(10)로부터 초기화 종료를 문의하는 메시지를 수신할 때 자체 초기화를 종료하지 않은 상태에 있다. 따라서, 제2 서브 프로세서(30)는 그에 따른 응답 메시지를 메인 프로세서(10)로 전송하지 않는다. 이후 제1 서브 프로세서(20)는 단계 210에서 자체 초기화를 종료하고 제2 프로세서(30)는 단계 214에서 자체 초기화를 종료한다.
메인 프로세서(10)는 제1 및 제2 서브 프로세서(20,30)로부터 초기화 종료를 문의하는 메시지를 전송한 후 그에 따른 응답 메시지를 수신하지 못하면 초기화 종료를 문의하는 메시지를 재전송한다. 즉, 도 3에서 메인 프로세서(10)는 단계 216에서 제1 서브 프로세서(20)에게 초기화 종료를 문의하는 메시지를 재전송하고 단계 218에서 제2 서브 프로세서(30)에게 초기화 종료를 문의하는 메시지를 재전송한다. 이에 응답하여 제1 서브 프로세서(20)는 단계 220에서 메인 프로세서(10)로 자체 초기화가 종료되었음을 나타내는 메시지(conf_response)를 전송한다. 그리고 제2 서브 프로세서(30)는 단계 222에서 메인 프로세서(10)로 자체 초기화가 종료되었음을 나타내는 메시지를 전송한다.
메인 프로세서(10)는 제1 및 제2 서브 프로세서(20,30)로부터 각각 자체 초기화가 종료되었음을 나타내는 메시지를 수신하면, 단계 224로 진행하여 서브 프로세서와 서로 간의 존재를 확인한 상태로 진입한다.
한편, 메인 프로세서(10)는 서브 프로세서와의 데이터 동기 과정에서 조건에 따라 상태 천이가 발생한다. 그러나, 서브 프로세서들(20,30)는 상태 천이는 발생하지 않고 메인 프로세서(10)로부터 요구 사항을 포함하고 있는 메시지를 수신하였을 때, 해당 절차를 수행하고 응답 메시지를 메인 프로세서(10)로 전송한다.
이어서, 메인 프로세서(10)는 단계 226에서 제1 서브 프로세서(20)로 동기 데이터 전송 수신 준비 여부를 문의하는 메시지(trans_request)를 전송한다. 제1 서브 프로세서(20)는 동기 데이터 전송 수신 준비 여부를 문의하는 메시지(trans_request)에 응답하여 동기 데이터 전송 수신 준비 완료를 나타내는 메시지(trans_response)를 메인 프로세서(10)로 전송한다.
그리고 메인 프로세서(10)는 단계 228에서 제2 서브 프로세서(30)로 동기 데이터 전송 수신 준비 여부를 문의하는 메시지(trans_request)를 전송한다. 제2 서브 프로세서(30)는 동기 데이터 전송 수신 준비 여부를 문의하는 메시지(trans_request)에 응답하여 동기 데이터 전송 수신 준비 완료를 나타내는 메시지(trans_response)를 메인 프로세서(10)로 전송한다. 이에 따라 메인 프로세서(10)는 단계 234에서 실질적으로 서브 프로세서들(20,30)로 동기 데이터를 전송할 수 있는 상태가 된다.
이후 메인 프로세서(10)는 단계 236에서 제1 서브 프로세서(20)에게 제1 서브 프로세서를 위한 동기 데이터(sub #1 data)를 전송한다. 메인 프로세서(10)는 동기 데이터의 전송 후 단계 238에서 동기 데이터 전송 완료를 알리기 위한 메시지(finish_request)를 제1 서브 프로세서(20)로 전송한다. 유사하게 메인 프로세서(10)는 단계 240에서 제2 서브 프로세서(30)에게 제2 서브 프로세서를 위한 동기 데이터(sub #2 data)를 전송한다. 메인 프로세서(10)는 동기 데이터의 전송 후 단계 242에서 동기 데이터 전송 완료를 알리기 위한 메시지(finish_request)를 제2 서브 프로세서(30)로 전송한다.
제1 서브 프로세서(20)는 동기 데이터 전송 완료를 알리기 위한 메시지(finish_request)를 수신하면 단계 244에서 이에 응답하여 동기 데이터 수신 완료를 알리기 위한 메시지(finish_response)를 메인 프로세서(10)로 전송한다. 그리고 제2 서브 프로세서(30)는 동기 데이터 전송 완료를 알리기 위한 메시지(finish_request)를 수신하면 단계 246에서 이에 응답하여 동기 데이터 수신 완료를 알리기 위한 메시지(finish_response)를 메인 프로세서(10)로 전송한다.
메인 프로세서(10)는 제1 및 제2 서브 프로세서(20,30)로부터 동기 데이터 수신 완료를 알리기 위한 메시지(finish_response)를 수신하면 단계 248로 진행하여 동기 데이터 전송을 모두 종료한다. 그리고 메인 프로세서(10)는 단계 250에서 데이터 동기를 완료한다. 또 제1 및 제2 서브 프로세서(20,30)는 각각 단계 252 및 254에서 데이터 동기를 완료한다.
본 발명은 통신시스템에서의 가장 중요한 요소 중 하나인 시스템 초기화를 통해, 통신시스템이 요구되는 성능을 제공하고 원활한 동작 수행을 보장한다.
통신시스템 초기화에서 우선적으로 고려되어야 할 사항은 모듈간의 데이터 동기인데, 통신시스템이 멀티프로세서 환경이고, 프로세서 간 공유메모리 사용이 불가하다면, 어플리케이션 초기 동기수행이 어렵게 된다. 본 발명은 프로세서의 역할을 정의하고, 데이터 동기 순서를 제시함으로써, 표준화된 어플리케이션 초기 동기 수행이 가능하다.
도 1은 본 발명의 실시예에 따른 멀티프로세서 시스템을 나타낸 도면,
도 2는 본 발명에 따른 프로세서에서의 자체 초기화 과정을 설명하기 위한 도면,
도 3은 본 발명의 실시예에 따른 멀티프로세서 시스템에서 초기화시 데이터 동기를 위한 메시지 흐름도를 나타낸 도면.

Claims (3)

  1. 메인 프로세서 및 복수 개의 서브 프로세서로 이루어진 멀티프로세서 시스템에서 시스템 초기화시 데이터 동기 방법에 있어서,
    상기 메인 프로세서 및 상기 복수 개의 서브 프로세서 각각이 자체 초기화를 수행하는 단계와,
    상기 메인 프로세서가 상기 각 서브 프로세서에게 동기 데이터 수신 준비 여부를 문의하는 메시지를 전송하는 단계와,
    상기 각 서브 프로세서가 동기 데이터 수신 준비 여부를 문의하는 메시지에 대한 응답 메시지를 전송하는 단계와,
    상기 메인 프로세서가 각 서브 프로세서에게 동기 데이터를 전송하는 단계와,
    상기 각 서브 프로세서가 동기 데이터를 수신하는 단계를 포함하는 것을 특징으로 하는 데이터 동기 방법.
  2. 제1항에 있어서,
    상기 메인 프로세서 및 복수 개의 서브 프로세서가 데이터 동기 후 정상적으로 고유 기능을 수행하는 단계를 더 포함하는 것을 특징으로 하는 데이터 동기 방법.
  3. 제1항에 있어서, 상기 자체 초기화 단계 후
    상기 메인 프로세서가 상기 각 서브 프로세서에게 초기화 완료를 문의하는 메시지를 전송하는 단계와,
    상기 각 서브 프로세서가 초기화 완료를 문의하는 메시지 및 동기 데이터 수신 준비 여부를 문의하는 메시지에 대한 응답 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 데이터 동기 방법.
KR1020040024816A 2004-04-12 2004-04-12 멀티프로세서 시스템에서의 데이터 동기 방법 KR20050099660A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040024816A KR20050099660A (ko) 2004-04-12 2004-04-12 멀티프로세서 시스템에서의 데이터 동기 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040024816A KR20050099660A (ko) 2004-04-12 2004-04-12 멀티프로세서 시스템에서의 데이터 동기 방법

Publications (1)

Publication Number Publication Date
KR20050099660A true KR20050099660A (ko) 2005-10-17

Family

ID=37278674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040024816A KR20050099660A (ko) 2004-04-12 2004-04-12 멀티프로세서 시스템에서의 데이터 동기 방법

Country Status (1)

Country Link
KR (1) KR20050099660A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009054661A1 (en) * 2007-10-25 2009-04-30 Lg Electronics Inc. Procedure for managing data synchronization under multiple devices environment
CN104539661A (zh) * 2014-12-11 2015-04-22 曙光信息产业(北京)有限公司 消息队列处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009054661A1 (en) * 2007-10-25 2009-04-30 Lg Electronics Inc. Procedure for managing data synchronization under multiple devices environment
CN104539661A (zh) * 2014-12-11 2015-04-22 曙光信息产业(北京)有限公司 消息队列处理方法和装置
CN104539661B (zh) * 2014-12-11 2018-11-06 曙光信息产业(北京)有限公司 消息队列处理方法和装置

Similar Documents

Publication Publication Date Title
EP3336697B1 (en) Edge computing platform
CN104618155B (zh) 一种虚拟机容错的方法、装置及系统
US9235455B2 (en) Multi-core distributed processing using shared memory and communication link
CN111176761A (zh) 微服务调用方法和装置
JP7382298B2 (ja) 駐車処理のための方法、システム、装置及び車両コントローラ
CN116243995B (zh) 通信方法、装置、计算机可读存储介质以及电子设备
CN114077508B (zh) 一种远程图像渲染方法、装置、电子设备以及介质
JP2005092880A (ja) リソース・グリッドを自動的に確立するための機構
JP5629012B2 (ja) 入力ツール呼出システム、方法およびプロキシ装置
KR102127591B1 (ko) 이벤트 기반 비동기식 통신 프레임워크에서의 동기식 통신 방법 및 장치
WO2011114477A1 (ja) 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム
KR20050099660A (ko) 멀티프로세서 시스템에서의 데이터 동기 방법
EP3467655A1 (en) System and method for mpi implementation in an embedded operating system
CN109669788A (zh) 面向直接内存访问互连通信的多核芯片的mpi实现方法
CN113110883B (zh) 区块链系统的启动方法、装置、设备和存储介质
CN115562887A (zh) 基于数据组包的核间数据通信方法、系统、设备及介质
JPH11265297A (ja) 分散シミュレータシステム
CN109669793B (zh) 中间件进程内对象调用方法
CN113608861A (zh) 一种软件化载荷计算资源虚拟化分配方法及装置
JP2003067199A (ja) アプリケーションプログラム
WO2015067052A1 (zh) 测试命令发送方法、装置及系统
TW202340942A (zh) 高可用服務之部署系統、方法及其電腦可讀媒介
JP2001265610A (ja) デバイス制御方法
JP2003058515A (ja) プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法
CN117667822A (zh) 一种基于amp架构的多核启动及核间通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application