KR101981628B1 - 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치 - Google Patents

버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치 Download PDF

Info

Publication number
KR101981628B1
KR101981628B1 KR1020180148864A KR20180148864A KR101981628B1 KR 101981628 B1 KR101981628 B1 KR 101981628B1 KR 1020180148864 A KR1020180148864 A KR 1020180148864A KR 20180148864 A KR20180148864 A KR 20180148864A KR 101981628 B1 KR101981628 B1 KR 101981628B1
Authority
KR
South Korea
Prior art keywords
frame
message
scheduling
time
generating
Prior art date
Application number
KR1020180148864A
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 KR1020180148864A priority Critical patent/KR101981628B1/ko
Application granted granted Critical
Publication of KR101981628B1 publication Critical patent/KR101981628B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/4015Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/40163Bus networks involving priority mechanisms by assigning priority to messages according to a message field

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치를 개시한다.
본 발명의 실시예에 따른 프레임 스케줄링 방법은 메시지의 주기를 식별하고, 상기 메시지를 생성하는 메시지 생성 단계; 상기 메시지의 주기를 이용하여 상기 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 스케줄링 시간 계산 단계; 상기 스케줄링 시간에 근거하여 프레임을 생성하고, 상기 프레임 내에 상기 메시지를 할당하는 프레임 생성 단계; 및 상기 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 스케줄링 실행 단계를 포함할 수 있다.

Description

버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치{Method and Apparatus for Frame Scheduling Based on Bus Communication}
본 발명은 버스 통신을 기반으로 메시지를 전송하기 위한 프레임을 스케줄링하는 방법 및 그를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
MIL-STD-1553B 미해군과 공군에서 사용하기 위해 개발 된 버스로 현재 군사용, 산업용, 우주용 장비의 데이터 통신으로 폭 넓게 사용이 되고 있는 통신 프로토콜이다. 버스 컨트롤러(BC, Bus Controller)가 데이터 버스에 데이터의 흐름을 책임진다. 버스 컨트롤러는 워드 컨트롤러, 메시지 컨트롤러, 프레임 컨트롤러 등으로 구분될 수 있다.
현재 많이 쓰이는 버스 컨트롤러는 프레임 컨트롤러이다. 프레임 컨트롤러에서는 프레임을 제어하기 위하여 스케줄링을 수행한다. 종래의 프레임 컨트롤러에서는 프레임을 제어하는 스케줄링을 개발자가 수동으로 설정한다. 다시 말해, 종래의 프레임 스케줄링은 개발자가 수동으로 메시지의 주기를 계산해서 Major 프레임 및 Minor 프레임을 만들어 사용하였다.
이에 따라 종래의 프레임 스케줄링은 코드의 복잡도가 올라가고, 프레임 스케줄링을 설정하는 과정에서 실수가 발생할 확률이 높다. 또한, 프레임 컨트롤러에 새로운 메시지가 추가될 경우 프레임을 재구성하는데 수정 시간 및 비용이 증가하는 어려움이 있다.
본 발명은 메시지의 주기를 기반으로 프레임 스케줄링 시간을 계산하고, 계산된 스케줄링 시간에 근거하여 생성된 프레임에 메시지를 할당하여 자동으로 프레임 스케줄을 설정하는 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치를 제공하는 데 주된 목적이 있다.
본 발명의 일 측면에 의하면, 상기 목적을 달성하기 위한 프레임 스케줄링 방법은 메시지의 주기를 식별하고, 상기 메시지를 생성하는 메시지 생성 단계; 상기 메시지의 주기를 이용하여 상기 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 스케줄링 시간 계산 단계; 상기 스케줄링 시간에 근거하여 프레임을 생성하고, 상기 프레임 내에 상기 메시지를 할당하는 프레임 생성 단계; 및 상기 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 스케줄링 실행 단계를 포함할 수 있다.
또한, 본 발명의 다른 측면에 의하면, 상기 목적을 달성하기 위한 프레임 스케줄링 장치는 프로세서; 메모리; 및 상기 메모리에 저장되고, 상기 프로세서에 의해 실행되며, 메시지의 주기를 식별하고, 상기 메시지를 생성하는 메시지 생성 단계; 상기 메시지의 주기를 이용하여 상기 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 스케줄링 시간 계산 단계; 상기 스케줄링 시간에 근거하여 프레임을 생성하고, 상기 프레임 내에 상기 메시지를 할당하는 프레임 생성 단계; 및 상기 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 스케줄링 실행 단계를 수행하는 프로그램을 포함할 수 있다.
이상에서 설명한 바와 같이, 본 발명은 메시지의 주기만 주어지면 통신 버스에 대한 전문 지식이 없어도 자동으로 프레임의 스케줄링을 설정할 수 있는 효과가 있다.
또한, 본 발명은 자동으로 프레임의 스케줄링을 설정함으로써, 개발 기간을 단축하고 수동으로 프레임을 설정하면서 발생할 수 있는 실수를 줄여 신뢰성 있는 버스 통신을 처리할 수 있는 효과가 있다.
또한, 본 발명은 신규 메시지 추가 시 신규 메시지의 주기만을 입력하면 시스템이 자동으로 신규 메시지를 추가한 프레임을 스케줄링할 수 있으며, 이에 따라 프레임 수정 시간 및 비용을 현저히 줄일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 프레임 스케줄링 장치를 개략적으로 나타낸 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 프레임 스케줄링 장치의 프로세서 동작 구성을 개략적으로 나타낸 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 프레임 스케줄링 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 스케줄링 시간을 계산하는 동작을 설명하기 위한 순서도이다.
도 5는 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 프레임을 생성하는 동작을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 프레임을 스케줄링하는 동작을 설명하기 위한 순서도이다.
도 7 및 도 8은 본 발명의 실시예에 따른 프레임 스케줄링 동작을 설명하기 위한 예시도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 이하에서는 도면들을 참조하여 본 발명에서 제안하는 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치에 대해 자세하게 설명하기로 한다.
본 발명에서 프레임 스케줄을 자동으로 설정하기 위한 버스 통신은 MIL-STD-1553B 버스일 수 있으나 반드시 이에 한정되는 것은 아니다. 또한, 본 발명의 프레임 스케줄을 자동으로 설정하는 동작은 군사용, 산업용, 우주용 내장형 소프트웨어 등에 적용될 수 있다.
도 1은 본 발명의 실시예에 따른 프레임 스케줄링 장치를 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 프레임 스케줄링 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함한다.
통신부(110)는 메모리(120) 및 프로세서(130)와 연결되어 데이터를 송수신한다. 또한, 통신부(110)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 예를 들어, 통신부(110)는 인터페이스(Interface)일 수 있으며, 내부 버스(Internal bus) 및 외부 버스(Internal bus) 등으로 구현될 수도 있다.
통신부(110)는 외부의 장치로부터 데이터를 수신하여, 메모리(120) 및 프로세서(130)에 데이터를 전송할 수 있다.
메모리(120)는 통신부(110)가 수신한 데이터 및 프로세서(130)가 처리한 데이터를 저장하는 동작을 수행한다. 예를 들어, 메모리(120)는 프로그램을 저장할 수 있다. 예를 들어, 메모리(120)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.
메모리(120)는 프레임 생성 및 스케줄링 동작과 관련된 명령어 세트 예를 들어, 기능 소프트웨어 등을 저장할 수 있다. 프레임 생성 및 스케줄링 동작과 관련된 명령어 세트는 프로세서(130)에 의해 실행될 수 있다. 프로세서(130)는 명령어 세트에 따라 프레임 생성 및 스케줄링 동작을 수행할 수 있다.
프로세서(130)는 통신부(110)가 수신한 데이터 및 메모리(120)에 저장된 데이터를 처리한다.
프로세서(130)는 목적하는 동작들(Desired Operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(Code) 또는 인스트럭션들(Instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(Microprocessor), 중앙 처리 장치(Central Processing Unit), 프로세서 코어(Processor Core), 멀티-코어 프로세서(Multi-Core Processor), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다. 또한, 프로세서(130)는 통신부(110)와 연동하는 버스 컨드콜러(BC: Bus Controller)일 수 있으며, 특히 프레임 컨트롤러(Frame Controller)의 전체 또는 일부로 구성될 수 있다.
프로세서(130)는 메모리(예를 들어, 메모리(120))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(130)에 의해 유발된 인스트럭션들을 실행한다.
도 2는 본 발명의 실시예에 따른 프레임 스케줄링 장치의 프로세서 동작 구성을 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 프레임 스케줄링 장치(100)의 프로세서(130)는 버스 생성부(210), 메시지 생성부(220), 스케줄링 시간 계산부(230), 프레임 생성부(240) 및 스케줄링 처리부(250)를 포함한다. 여기서, 프레임 생성부(240)는 제1 프레임 생성부(242) 및 제2 프레임 생성부(244)를 포함할 수 있다. 도 2의 프로세서(130)는 일 실시예에 따른 것으로서, 도 2에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 프로세서(130)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다.
도 2에서 프로세서(330)는 프레임 스케줄링 장치(100)에 포함된 일부 구성인 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 통신 및 저장기능을 포함하는 하나의 장치 즉, 프레임 스케줄링 장치(100)와 동일한 장치 형태로 구현될 수도 있다. 이하, 프로세서(330)에 포함된 각각의 구성요소에 대해 설명하도록 한다.
버스 생성부(210)는 사용자의 조작신호에 근거하여 버스를 생성하고, 버스 통신 모드를 설정하는 동작을 수행한다.
버스 생성부(210)는 MIL-STD-1553B 버스를 생성하는 것이 바람직하나 반드시 이에 한정되는 것은 아니다. 또한, 버스 생성부(210)는 버스의 모드를 선택, 논리적 디바이스 번호, 동기 또는 비동기 모드 여부를 선택 등의 버스 통신 모드를 설정한다. 예를 들어, 버스 생성부(210)는 생성된 버스의 BC(Bus Controller) , RT(Remote Terminal), MT(Monitoring) 중 하나의 모드를 선택할 수 있다.
메시지 생성부(220)는 사용자의 조작신호에 근거하여 메시지를 생성하고, 생성된 메시지의 주기를 식별하는 동작을 수행한다.
메시지 생성부(220)는 송신 주소, 수신 주소, 동기 또는 비동기 여부, 워드 크기(0 ~ 32 bit), 메시지 주기(ms) 등을 설정하여 메시지에 대한 데이터 블록을 생성할 수 있다.
메시지 생성부(220)는 MIL-STD-1553B 버스 통신 기반의 메시지를 생성할 수 있다. 예를 들어, 메시지는 명령어(Command Word), 데이터 워드(Data Word), 상태어(Status Word) 등의 형태를 포함하여 생성될 수 있다. 여기서, 명령어는 동기화 신호(Sync, 3 Bit), RT address(5 Bit), Transmit/Receive bit(1 Bit), Subaddress/Mode(5 Bit), Data Word Count/Mode Code(5 Bit), Parity bit(1 Bit) 등으로 구성될 수 있다. 또한, 데이터 워드는 동기화 신호(Sync, 3 Bit), Data bit(16 bit), Parity(1 bit) 등으로 구성될 수 있다. 또한, 상태어는 동기화 신호(Sync, 3 Bit), RT address(5 Bit), Status bit(16 bit), Parity(1 bit) 등으로 구성될 수 있다.
스케줄링 시간 계산부(230)는 메시지의 주기를 이용하여 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 동작을 수행한다.
스케줄링 시간 계산부(230)는 메시지의 주기에 따라 제1 프레임 및 제2 프레임에 대한 시간을 자동으로 계산한다. 여기서, 제1 프레임은 메이저 프레임(Major Frame)을 의미하고, 제2 프레임은 마이너 프레임(Minor Frame)을 의미한다.
구체적으로, 스케줄링 시간 계산부(230)는 메시지의 주기에 대한 LCM(Least Common Multiple) 값을 산출하고, 산출된 LCM 값을 제1 프레임에 대한 제1 프레임 시간으로 입력한다. 스케줄링 시간 계산부(230)는 [수학식 1]을 이용하여 메시지의 주기에 대한 LCM 값을 산출할 수 있다.
Figure 112018118503102-pat00001
스케줄링 시간 계산부(230)는 메시지의 주기에 대한 GCD(Greatest Common Divisor) 값을 산출하고, 산출된 GCD 값을 제2 프레임에 대한 제2 프레임 시간으로 입력한다. 스케줄링 시간 계산부(230)는 [수학식 2]를 이용하여 메시지의 주기에 대한 GCD 값을 산출할 수 있다.
Figure 112018118503102-pat00002
스케줄링 시간 계산부(230)는 산출된 GCD 값을 제2 프레임 시간으로 누적하여 입력한다. 스케줄링 시간 계산부(230)는 [수학식 3]을 이용하여 GCD 값을 누적 입력할 수 있다.
Figure 112018118503102-pat00003
프레임 생성부(240)는 스케줄링 시간 계산부(230)에서 계산된 스케줄링 시간에 근거하여 프레임을 생성하고, 프레임 내에 상기 메시지를 할당한다. 프레임 생성부(240)는 제1 프레임을 생성하는 제1 프레임 생성부(242) 및 제2 프레임을 생성하는 제2 프레임 생성부(244)를 포함한다.
제1 프레임 생성부(242)는 프레임 생성부(240)는 스케줄링 시간에 근거하여 제1 프레임을 생성한다.
제1 프레임 생성부(242)는 제1 프레임의 시간을 획득하고, 제1 프레임의 시간을 기준으로 프레임 초기화를 수행하여 제1 프레임을 생성한다.
제2 프레임 생성부(244)는 메시지의 주기 및 스케줄링 시간을 기반으로 메시지를 할당하여 제2 프레임을 생성하고, 제2 프레임을 제1 프레임에 추가하는 동작을 수행한다.
제2 프레임 생성부(244)는 제2 프레임의 시간을 획득하고, 제2 프레임의 시간을 기준으로 프레임 초기화를 수행하여 제2 프레임을 생성한다.
제2 프레임 생성부(244)는 정렬 알고리즘(Quick Sort)을 이용하여 메시지를 정렬하고, 정렬된 메시지를 제2 프레임에 할당한다. 여기서, 제2 프레임 생성부(244)는 메시지의 주기를 기반으로 메시지를 프레임 시간이 작은 메시지에서 큰 메시지 순으로 정렬한 후 제2 프레임에 할당한다. 제2 프레임 생성부(244)는 메시지를 정렬한 후 제2 프레임에 할당함으로써, 메시지를 제2 프레임에 할당하기 위한 계산 시간(Computation Time)을 최소화할 수 있다.
스케줄링 처리부(250)는 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행한다.
스케줄링 처리부(250)는 메시지의 실행에 대한 메시지 실행코드(OPCODE_XEG) 및 제2 프레임의 호출에 대한 프레임 실행코드(OPCODE_CAL)를 생성한다. 스케줄링 처리부(250)는 생성된 메시지 실행코드 및 상기 프레임 실행 코드를 이용하여 제1 프레임 및 제2 프레임을 등록하여 자동으로 프레임 스케줄링을 실행한다.
도 3은 본 발명의 실시예에 따른 프레임 스케줄링 방법을 설명하기 위한 순서도이다.
프레임 스케줄링 장치(100)는 버스를 생성하고, 버스 통신 모드를 설정한다(S310).
프레임 스케줄링 장치(100)는 MIL-STD-1553B 버스를 생성하는 것이 바람직하나 반드시 이에 한정되는 것은 아니다. 또한, 프레임 스케줄링 장치(100)는 버스의 모드를 선택, 논리적 디바이스 번호, 동기 또는 비동기 모드 여부를 선택 등의 버스 통신 모드를 설정한다. 예를 들어, 프레임 스케줄링 장치(100)는 생성된 버스의 BC , RT, MT 중 하나의 모드를 선택할 수 있다.
프레임 스케줄링 장치(100)는 사용자의 조작신호에 근거하여 메시지를 생성한다(S320). 프레임 스케줄링 장치(100)는 메시지 생성부(220)는 송신 주소, 수신 주소, 동기 또는 비동기 여부, 워드 크기(0 ~ 32 bit), 메시지 주기(ms) 등을 설정하여 메시지에 대한 데이터 블록을 생성할 수 있다. 프레임 스케줄링 장치(100)는 생성된 메시지의 주기를 식별하며, 식별된 메시지의 주기를 이용하여 스케줄링 시간이 계산되도록 한다.
프레임 스케줄링 장치(100)는 제1 프레임 및 제2 프레임의 스케줄링 시간을 계산한다(S330).
프레임 스케줄링 장치(100)는 메시지의 주기에 따라 제1 프레임 및 제2 프레임 각각에 대한 시간을 자동으로 계산한다. 구체적으로, 프레임 스케줄링 장치(100)는 메시지의 주기에 대한 LCM(Least Common Multiple) 값을 산출하고, 산출된 LCM 값을 제1 프레임에 대한 제1 프레임 시간으로 입력한다.
또한, 프레임 스케줄링 장치(100)는 메시지의 주기에 대한 GCD(Greatest Common Divisor) 값을 산출하고, 산출된 GCD 값을 제2 프레임에 대한 제2 프레임 시간으로 입력한다.
프레임 스케줄링 장치(100)는 스케줄링 시간에 근거하여 제1 프레임 및 제2 프레임을 생성한다(S340, S350).
프레임 스케줄링 장치(100)는 스케줄링 시간을 기준으로 메시지의 묶음으로 구성되는 제1 프레임을 생성한다. 또한, 프레임 스케줄링 장치(100)는 메시지 주기와 스케줄링 시간에 근거하여 제2 프레임을 생성하고, 제2 프레임에 메시지를 할당한다. 프레임 스케줄링 장치(100)는 메시지가 할당된 제2 프레임을 제1 프레임에 추가한다.
프레임 스케줄링 장치(100)는 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행한다(S360).
프레임 스케줄링 장치(100)는 메시지의 실행에 대한 메시지 실행코드(OPCODE_XEG) 및 제2 프레임의 호출에 대한 프레임 실행코드(OPCODE_CAL)를 생성하고, 생성된 메시지 실행코드 및 상기 프레임 실행 코드를 이용하여 제1 프레임 및 제2 프레임에 대한 프레임 스케줄링을 실행한다.
도 3에서는 각 단계를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 3에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.
도 3에 기재된 본 실시예에 따른 프레임 스케줄링 방법은 애플리케이션(또는 프로그램)으로 구현되고 단말장치(또는 컴퓨터)로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 프레임 스케줄링 방법을 구현하기 위한 애플리케이션(또는 프로그램)이 기록되고 단말장치(또는 컴퓨터)가 읽을 수 있는 기록매체는 컴퓨팅 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치 또는 매체를 포함한다.
도 4는 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 스케줄링 시간을 계산하는 동작을 설명하기 위한 순서도이다.
도 4에서는 제1 프레임 및 제2 프레임의 스케줄링 시간을 계산하는 도 3의 단계 S330을 구체화한 순서도를 나타낸다.
프레임 스케줄링 장치(100)는 각 메시지의 주기를 토대로 LCM(Least Common Multiple) 값을 계산한다(S410). 그리고, 프레임 스케줄링 장치(100)는 각 메시지의 주기를 토대로 GCD(Greatest Common Divisor) 값을 계산한다(S420). 여기서, LCM 값은 [수학식 1]을 기반으로 계산되며, GCD 값은 [수학식 2]을 기반으로 계산될 수 있다.
이후, 프레임 스케줄링 장치(100)는 계산된 LCM 값을 제1 프레임(Major 프레임)의 시간으로 입력하고(S430), 계산된 GCD 값을 제2 프레임(Minor 프레임)의 시간으로 입력한다(S440). 여기서, 프레임 스케줄링 장치(100)는 제2 프레임의 시간으로 GCD 값을 누적 계산하여 입력한다. GCD 값을 누적 계산하는 동작은 [수학식 3]에 의해 정의될 수 있다.
도 5는 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 프레임을 생성하는 동작을 설명하기 위한 순서도이다.
도 5에서는 스케줄링 시간에 근거하여 제1 프레임 및 제2 프레임을 생성하는 도 3의 단계 S340 및 S350을 구체화한 순서도를 나타낸다.
도 5의 (a)에서는 제1 프레임 생성하는 동작에 대해 설명하도록 한다. 프레임 스케줄링 장치(100)는 도 3의 단계 S330에서 계산된 제1 프레임 시간을 입력하고(S510), 입력된 시간을 기준으로 프레임을 초기화한 후 메모리에 제1 프레임을 생성한다(S512)
도 5의 (b)에서는 제2 프레임 생성하는 동작에 대해 설명하도록 한다. 프레임 스케줄링 장치(100)는 도 3의 단계 S330에서 계산된 제2 프레임 시간을 입력하고(S520), 정렬알고리즘(Quick Sort: O(nlogn))을 이용해서 프레임 시간이 작은 메시지에서 큰 메시지 순으로 정렬한다(S522). 프레임 스케줄링 장치(100)는 메시지의 오름차순 정렬을 통해 메시지를 제2 프레임에 할당 시 계산 시간(Computation Time)을 최소화할 수 있다.
이후, 프레임 스케줄링 장치(100)는 제2 프레임 시간을 기준으로 프레임을 초기화하고 메모리에 제2 프레임을 생성하고(S524), 오름차순으로 정렬되어있는 메시지를 메모리에 생성된 제2 프레임에 할당한다(S526).
도 6은 본 발명의 실시예에 따른 프레임 스케줄링 장치에서 프레임을 스케줄링하는 동작을 설명하기 위한 순서도이다.
도 6에서는 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 도 3의 단계 S360을 구체화한 순서도를 나타낸다.
프레임 스케줄링 장치(100)는 메시지의 실행에 대한 메시지 실행코드(OPCODE_XEG)와 제2 프레임의 호출에 대한 프레임 실행코드(OPCODE_CAL)를 생성한다(S610, S620). 프레임 스케줄링 장치(100)는 생성된 메시지 실행코드 및 상기 프레임 실행 코드를 이용하여 제1 프레임 및 제2 프레임을 등록하여 자동으로 프레임 스케줄링을 실행한다(S630).
도 7 및 도 8은 본 발명의 실시예에 따른 프레임 스케줄링 동작을 설명하기 위한 예시도이다.
도 7 및 도 8에서는 서로 다른 5 개의 메시지를 이용한 MIL-STD-1553B 버스 통신에서 프레임을 자동으로 스케줄링하는 동작에 대한 예시를 나타낸다.
도 7에서는 제1 프레임 및 제2 프레임의 스케줄링 시간을 자동으로 계산하는 과정을 나타내고, 도 8에서는 스케줄링 시간에 근거하여 프레임에 메시지를 할당한 결과를 나타낸다.
도 7을 참고하면, 제1 메시지 내지 제5 메시지를 생성하여 입력받으면, 프레임 스케줄링 장치(100)는 스케줄링 시간을 계산한다. 여기서, 서로 다른 5 개의 메시지는 [표 1]과 같이 정의될 수 있다.
Figure 112018118503102-pat00004
도 7에서, 프레임 스케줄링 장치(100)\는 [수학식 4]와 같이 LCM 값을 계산하여 제1 프레임 시간을 산출할 수 있다.
Figure 112018118503102-pat00005
또한, 프레임 스케줄링 장치(100)는 [수학식 5]와 같이 GCD 값을 계산할 수 있다.
Figure 112018118503102-pat00006
프레임 스케줄링 장치(100)는 [수학식 6]과 같이 GCD 값을 누적 계산하여 제2 프레임 시간을 산출할 수 있다.
Figure 112018118503102-pat00007
프레임 스케줄링 장치(100)는 계산된 제1 프레임 시간(Major Frame time) 및 제2 프레임 시간(Minor Frame time)에 대한 결과는 [표 2]와 같다.
Figure 112018118503102-pat00008
도 8의 (a)를 참조하면, 프레임 스케줄링 장치(100)는 제1 프레임(40 ms)과 제1 프레임에 포함된 2 개의 제2 프레임(20 ms)를 생성할 수 있다.
도 8의 (b)를 참조하면, 프레임 스케줄링 장치(100)는 2 개의 제2 프레임(20 ms) 각각에 오름 차순으로 정렬된 메시지를 할당한다. 프레임 스케줄링 장치(100)는 메시지의 주기에 따라 50 Hz 주기를 갖는 제1 메시지 내지 제3 메시지를 2 개의 제2 프레임(20 ms) 각각에 분할하여 할당하고, 25 Hz 주기를 갖는 제4 메시지 및 제5 메시지는 2 개의 제2 프레임(20 ms) 중 두 번째 제2 프레임(20 ms)에 할당하여 프레임 스케줄링을 수행할 수 있다.
이상의 설명은 본 발명의 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시예들은 본 발명의 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 프레임 스케줄링 장치
110: 통신부 120: 메모리
130: 프로세서
210: 버스 생성부 220: 메시지 생성부
230: 스케줄링 시간 계산부 240: 프레임 생성부
242: 제1 프레임 생성부 244: 제2 프레임 생성부
250: 스케줄링 처리부

Claims (11)

  1. 프레임 스케줄링 장치에서 버스 통신 기반으로 메시지를 전송하기 위한 프레임을 스케줄링하는 방법에 있어서,
    메시지의 주기를 식별하고, 상기 메시지를 생성하는 메시지 생성 단계;
    상기 메시지의 주기를 이용하여 상기 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 스케줄링 시간 계산 단계;
    상기 스케줄링 시간에 근거하여 프레임을 생성하고, 상기 프레임 내에 상기 메시지를 할당하는 프레임 생성 단계; 및
    상기 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 스케줄링 실행 단계를 포함하되,
    상기 프레임 생성 단계는, 상기 스케줄링 시간에 근거하여 제1 프레임을 생성하는 제1 프레임 생성 단계; 및 상기 메시지의 주기 및 상기 스케줄링 시간을 기반으로 상기 메시지를 할당하여 제2 프레임을 생성하고, 상기 제2 프레임을 상기 제1 프레임에 추가하는 제2 프레임 생성 단계를 포함하며,
    상기 스케줄링 시간 계산 단계는, 상기 메시지의 주기에 대한 LCM(Least Common Multiple) 값을 산출하는 단계; 상기 메시지의 주기에 대한 GCD(Greatest Common Divisor) 값을 산출하는 단계; 상기 LCM 값을 상기 제1 프레임에 대한 제1 프레임 시간으로 입력하는 단계; 및 상기 GCD 값을 상기 제2 프레임에 대한 제2 프레임 시간으로 입력하는 단계를 포함하는 것을 특징으로 하는 프레임 스케줄링 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 제1 프레임 생성 단계는,
    상기 제1 프레임의 시간을 획득하고, 상기 제1 프레임의 시간을 기준으로 프레임 초기화를 수행하여 상기 제1 프레임을 생성하는 것을 특징으로 하는 프레임 스케줄링 방법.
  5. 제1항에 있어서,
    상기 제2 프레임 생성 단계는,
    상기 제2 프레임의 시간을 획득하고, 상기 제2 프레임의 시간을 기준으로 프레임 초기화를 수행하여 상기 제2 프레임을 생성하는 것을 특징으로 하는 프레임 스케줄링 방법.
  6. 제5항에 있어서,
    상기 제2 프레임 생성 단계는,
    정렬 알고리즘을 이용하여 상기 메시지를 정렬하고, 정렬된 상기 메시지를 상기 제2 프레임에 할당하는 것을 특징으로 하는 프레임 스케줄링 방법.
  7. 제6항에 있어서,
    상기 제2 프레임 생성 단계는,
    상기 메시지를 상기 제2 프레임에 할당하기 위한 계산 시간(Computation Time)을 최소화하기 위하여 상기 메시지의 주기를 기반으로 상기 메시지를 프레임 시간이 작은 메시지에서 큰 메시지 순으로 정렬한 후 상기 제2 프레임에 할당하는 것을 특징으로 하는 프레임 스케줄링 방법.
  8. 제1항에 있어서,
    상기 스케줄링 실행 단계는,
    상기 메시지의 실행에 대한 메시지 실행코드(OPCODE_XEG) 및 제2 프레임의 호출에 대한 프레임 실행코드(OPCODE_CAL)를 생성하고, 상기 메시지 실행코드 및 상기 프레임 실행 코드를 이용하여 상기 제1 프레임 및 상기 제2 프레임을 등록하여 상기 프레임 스케줄링을 실행하는 것을 특징으로 하는 프레임 스케줄링 방법.
  9. 버스 통신 기반으로 메시지를 전송하기 위한 프레임을 스케줄링하는 장치에 있어서,
    프로세서;
    메모리; 및
    상기 메모리에 저장되고, 상기 프로세서에 의해 실행되며,
    메시지의 주기를 식별하고, 상기 메시지를 생성하는 메시지 생성 단계;
    상기 메시지의 주기를 이용하여 상기 메시지를 전송하기 위한 프레임의 스케줄링 시간을 계산하는 스케줄링 시간 계산 단계;
    상기 스케줄링 시간에 근거하여 프레임을 생성하고, 상기 프레임 내에 상기 메시지를 할당하는 프레임 생성 단계; 및
    상기 프레임에 대한 실행 코드를 생성하여 프레임 스케줄링을 실행하는 스케줄링 실행 단계를 수행하되,
    상기 프레임 생성 단계에서, 상기 스케줄링 시간에 근거하여 제1 프레임을 생성하는 제1 프레임 생성 단계; 및 상기 메시지의 주기 및 상기 스케줄링 시간을 기반으로 상기 메시지를 할당하여 제2 프레임을 생성하고, 상기 제2 프레임을 상기 제1 프레임에 추가하는 제2 프레임 생성 단계를 포함하며,
    상기 스케줄링 시간 계산 단계에서, 상기 메시지의 주기에 대한 LCM(Least Common Multiple) 값을 산출하는 단계; 상기 메시지의 주기에 대한 GCD(Greatest Common Divisor) 값을 산출하는 단계; 상기 LCM 값을 상기 제1 프레임에 대한 제1 프레임 시간으로 입력하는 단계; 및 상기 GCD 값을 상기 제2 프레임에 대한 제2 프레임 시간으로 입력하는 단계를 수행하는 프로그램
    을 포함하는 프레임 스케줄링 장치.
  10. 삭제
  11. 삭제
KR1020180148864A 2018-11-27 2018-11-27 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치 KR101981628B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180148864A KR101981628B1 (ko) 2018-11-27 2018-11-27 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180148864A KR101981628B1 (ko) 2018-11-27 2018-11-27 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치

Publications (1)

Publication Number Publication Date
KR101981628B1 true KR101981628B1 (ko) 2019-05-23

Family

ID=66681081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180148864A KR101981628B1 (ko) 2018-11-27 2018-11-27 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치

Country Status (1)

Country Link
KR (1) KR101981628B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220021099A (ko) * 2020-08-13 2022-02-22 엘아이지넥스원 주식회사 메시지 처리 방법, 메시지 처리 서버 및 이를 포함하는 메시지 처리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090089373A (ko) * 2006-12-07 2009-08-21 모토로라 인코포레이티드 무선 디바이스에서 피코넷 링크와의 각종 무선 링크의 상호동작을 위한 장치 및 방법
US20130036421A1 (en) * 2011-08-01 2013-02-07 Honeywell International Inc. Constrained rate monotonic analysis and scheduling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090089373A (ko) * 2006-12-07 2009-08-21 모토로라 인코포레이티드 무선 디바이스에서 피코넷 링크와의 각종 무선 링크의 상호동작을 위한 장치 및 방법
US20130036421A1 (en) * 2011-08-01 2013-02-07 Honeywell International Inc. Constrained rate monotonic analysis and scheduling

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220021099A (ko) * 2020-08-13 2022-02-22 엘아이지넥스원 주식회사 메시지 처리 방법, 메시지 처리 서버 및 이를 포함하는 메시지 처리 시스템
KR102377306B1 (ko) 2020-08-13 2022-03-22 엘아이지넥스원 주식회사 메시지 처리 방법, 메시지 처리 서버 및 이를 포함하는 메시지 처리 시스템

Similar Documents

Publication Publication Date Title
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
CN105511954B (zh) 一种报文处理方法及装置
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
US8495592B2 (en) Presenting completion progress status of an installer via join points
US10592210B2 (en) Dynamic evaluation and adaption of hardware hash function
US10341264B2 (en) Technologies for scalable packet reception and transmission
KR20200076700A (ko) 성능 기반 패킷 스케줄러를 제공하기 위한 장치 및 방법
CN110597626A (zh) 在分布式系统中资源及任务的分配方法、装置及系统
CN114157701B (zh) 一种任务测试方法、装置、设备以及存储介质
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
US9311348B2 (en) Method and system for implementing an array using different data structures
KR101981628B1 (ko) 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치
JP2005518578A5 (ko)
CN104503868A (zh) 数据同步方法、装置以及系统
US20190384737A1 (en) On-chip accelerator management
CN109213591B (zh) 协程运行栈的分配方法和装置
CN113515366A (zh) 一种总线负载均衡处理方法、装置及存储介质
CN112486492A (zh) 页面生成方法、装置、存储介质及电子设备
CN106484375B (zh) 一种指令块加载方法、软交换设备及系统
EP3188026A1 (en) Memory resource management method and apparatus
CN114995770B (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
CN113778455B (zh) 一种代码转换方法、装置、电子设备及存储介质
US9934035B2 (en) Device and method for tracing updated predicate values
US20050281202A1 (en) Monitoring instructions queueing messages
US9697036B2 (en) Method and apparatus for generating unique identifier for distributed computing environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant