KR102268112B1 - 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템 - Google Patents

위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템 Download PDF

Info

Publication number
KR102268112B1
KR102268112B1 KR1020190173886A KR20190173886A KR102268112B1 KR 102268112 B1 KR102268112 B1 KR 102268112B1 KR 1020190173886 A KR1020190173886 A KR 1020190173886A KR 20190173886 A KR20190173886 A KR 20190173886A KR 102268112 B1 KR102268112 B1 KR 102268112B1
Authority
KR
South Korea
Prior art keywords
command
satellite
buffer
index
satellite command
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190173886A
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 KR1020190173886A priority Critical patent/KR102268112B1/ko
Application granted granted Critical
Publication of KR102268112B1 publication Critical patent/KR102268112B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64GCOSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
    • B64G1/00Cosmonautic vehicles
    • B64G1/10Artificial satellites; Systems of such satellites; Interplanetary vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64GCOSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
    • B64G1/00Cosmonautic vehicles
    • B64G1/22Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
    • B64G1/66Arrangements or adaptations of apparatus or instruments, not otherwise provided for
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • General Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Astronomy & Astrophysics (AREA)
  • Radio Relay Systems (AREA)

Abstract

위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템이 개시된다. 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 방법은, 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하는 단계와, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하는 단계와, 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 단계와, 상기 타겟 버퍼에 상기 위성 커맨드를 저장하는 단계와, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 단계, 및 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 단계를 포함한다.

Description

위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템{METHOD AND SYSTEM FOR SAVING SATELLITE COMMANDS}
본 발명은 위성 커맨드 저장 처리 방법에 연관되며, 보다 특정하게는 위성 커맨드의 저장 방식의 개선을 통한 메모리 공간의 절감에 연관된다.
위성 시스템에 내장하여 발사할 위성 저장명령(이하 '위성 커맨드')은 상대시간 저장명령(RTCS)과, 절대시간 저장명령으로 구분되며, 각 위성 커맨드는 연결 리스트(Linked-List) 구조로 메모리 공간에 저장되고 있다.
종래 기술에 따르면, 다목적 위성 시스템의 경우 메모리 공간에 위성 커맨드를 저장하기 위한 커맨드 버퍼를 가장 길이가 긴 위성 커맨드가 사용되는 기준으로 예컨대 72 B의 크기로 설정하고 있으나, 실제로 사용되는 위성 커맨드는 대부분 10 B 이내로 작은 길이이고, 25 B이상으로 길이가 긴 위성 커맨드는 소수에 불과하며, 위성 커맨드 마다 불필요한 공간이 할당되고 있어, 메모리 공간의 낭비가 큰 실정이다.
이하에서는 도 1을 참조하여 종래 기술에 따른 위성 커맨드 저장 방식을 설명한다.
도 1은 종래 기술에 따른 위성 커맨드 저장 처리 일례를 도시한 도면이다.
도 1을 참조하면, 종래 기술에서는 위성 커맨드를 저장하는 커맨드 버퍼(Command Buffer)(110)를 72 B의 최대 길이 범위로 균일하게 할당하고 있다.
이에 따라 최대 2048개의 위성 커맨드를 저장하려면, 커맨드 버퍼(110)에만 144 KB(= 72 B * 2048개)의 저장 공간이 요구된다.
또한 종래 기술에서는 연결 리스트(Linked-List) 구조로 위성 커맨드를 저장하고 있어, 커맨드 버퍼(110)에 저장되는 각 위성 커맨드에 대한 인덱스 정보를 저장하기 위한 인덱스 버퍼(Index Buffer)(120)가 필요하다.
각 인덱스 정보는 RTCS Number(RTCS 번호), Delta-Time, CMD Length(101), Pointer to Next의 필드로 구성되고, 각각의 필드는 2 B를 차지하므로, 하나의 인덱스 정보는 8 B의 길이를 가지게 된다. 이에 따라 인덱스 버퍼(120)에는 16 KB(= 8 B * 2048개)의 저장 공간이 요구된다.
즉 종래 기술에 따르면 최대 2048개의 위성 커맨드를 저장 처리하기 위해 총 160 KB (=144 KB + 16 KB)의 상당히 큰 메모리 공간(100)이 필요하게 된다.
한편, CMD Length(커맨드 길이) 필드(101)를 참조하면, 실제로 커맨드 버퍼(110)에 저장되는 각 위성 커맨드의 길이는 대부분 10 B 이내로 길이가 짧은 편이고, 길이가 70 B 또는 30 B로 긴 위성 커맨드는 극히 일부이다.
하지만 종래 기술에서는 이러한 위성 커맨드의 실제 길이와 개수 등을 전혀 고려하지 않고 단순히 위성 커맨드의 최대 길이를 고려해서 가장 큰 사이즈인 72 B로 고정된 길이 범위로 할당하고 있어, 메모리 공간(100) 활용이 비효율적인 문제점을 나타내고 있다.
이에 따라 위성 커맨드의 실제 길이를 고려하여 효율적인 방식으로 위성 커맨드를 저장할 커맨드 버퍼(110)를 생성하여 메모리 공간(100) 사용을 절감하기 위한 기술이 요구되고 있다.
본 발명은 위성 시스템에 저장하려는 위성 커맨드의 실제의 길이를 고려하여, 위성 커맨드를 저장할 커맨드 버퍼 및 인덱스 정보를 저장할 인덱스 버퍼의 사이즈와 구성을 변경해 메모리 공간을 효율적으로 설계하는 것을 목적으로 한다.
본 발명의 일실시예는 저장 가능한 커맨드의 길이 범위를 단계적으로 상이하게 할당한 복수의 커맨드 버퍼를 마련해 두고, 입력되는 위성 커맨드의 실제 길이에 따라, 어느 하나의 커맨드 버퍼를 선택해서 위성 커맨드를 저장함으로써, 메모리 공간 사용을 절감하는 것을 목적으로 한다.
본 발명의 다른 실시예는 복수의 슬롯으로 구분되는 하나의 커맨드 버퍼를, 슬롯 마다 균일한 최소의 길이 범위(예, '20 B')를 할당해 마련해 두고, 입력되는 위성 커맨드의 실제 길이에 따라, 하나의 슬롯 만으로 저장되지 않을 경우에만 추가적으로 슬롯을 사용하여 위성 커맨드를 저장함으로써, 메모리 공간 사용을 절감하는 것을 목적으로 한다.
본 발명의 일실시예에 따른 위성 커맨드 저장 처리 방법은, 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하는 단계와, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하는 단계와, 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 단계와, 상기 타겟 버퍼에 상기 위성 커맨드를 저장하는 단계와, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 단계, 및 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 방법은, 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하는 단계와, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하는 단계와, 입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하는 단계와, 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는 단계와, 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 단계, 및 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록하는 단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 시스템은, 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하고, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하는 생성부와, 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 확인부와, 상기 타겟 버퍼에 상기 위성 커맨드를 저장하고, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 저장부, 및 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 기록부를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 시스템은, 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하고, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하는 생성부와, 입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하고, 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하고, 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 저장부, 및 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록하는 기록부를 포함할 수 있다.
본 발명의 일실시예에 따르면, 하나의 위성 커맨드가 저장되는데 필요한 메모리 공간을 위성 커맨드의 실제 길이에 맞추어 할당함으로써, 사용되지 않고 남는 공간을 줄여 메모리 공간에 저장 가능한 위성 커맨드의 수를 증대할 수 있다.
본 발명의 일실시예에 따르면, 최대 2048개의 위성 커맨드를 저장 시, 종래의 저장 방식에서 대략 160 KB 정도가 사용되던 메모리 공간을 대략 72 KB 또는 70 KB 정도로 대폭 절감할 수 있다.
도 1은 종래 기술에 따른 위성 커맨드 저장 처리 일례를 도시한 도면이다.
도 2는 본 발명에 따른 위성 커맨드 저장 처리 시스템의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 시스템에서, 위성 커맨드를 저장 처리하는 일례를 도시한 도면이다.
도 4는 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 시스템에서, 위성 커맨드를 저장 처리하는 다른 일례를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 방법의 순서를 도시한 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 방법의 순서를 도시한 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 일실시예에 따른 위성 커맨드 저장 처리 시스템은, 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하고, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하고, 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하고, 상기 타겟 버퍼에 상기 위성 커맨드를 저장하고, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하고, 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록할 수 있다.
본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 시스템은, 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하고, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하고, 입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하고, 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하고, 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하고, 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록할 수 있다.
본 명세서에서 사용하는 "위성 커맨드"는 위성 시스템에 내장하여 발사하거나, 또는 위성 시스템이 발사된 이후에 지상 관제 시스템에서 상기 위성 시스템에 추가하려는 위성 저장명령으로서, 예를 들면, 상대시간 저장명령(RTCS)일 수 있다.
본 발명에 따른 위성 커맨드 저장 처리 시스템은, 위성 시스템의 내부 또는 외부에 구현될 수 있으나, 이하 도 2에서는 설명의 편의를 위해 본 발명의 위성 커맨드 저장 처리 시스템(200)이 위성 시스템(201)의 외부에 구현되는 것을 한정하여 설명한다.
도 2는 본 발명에 따른 위성 커맨드 저장 처리 시스템의 내부 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 시스템(200)은 생성부(210), 확인부(220), 저장부(230) 및 기록부(240)를 포함하여 구성할 수 있다. 또한, 실시예에 따라 위성 커맨드 저장 처리 시스템(200)은 실행부(250) 및 삭제부(260)를 각각 추가하여 구성할 수 있다.
생성부(210)는 메모리 공간(270) 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하는 기능을 한다.
일례로 생성부(210)는 할당 가능한 커맨드 길이 범위('0~72 B') 중 최소 길이 범위(예, '20 B 이하')를 할당한 제1 커맨드 버퍼를 생성하고, 할당 가능한 커맨드 길이 범위('0~72 B') 중 최대 길이 범위(예, '40 B 초과 72 B 이하')를 할당한 제2 커맨드 버퍼를 생성하고, 상기 최소 길이 범위와 상기 최대 길이 범위 사이의 중간 길이 범위(예, '20 B 초과 40 B 이하')를 할당한 제3 커맨드 버퍼를 생성할 수 있다.
상기 최소 길이 범위와, 상기 중간 길이 범위 및 상기 최대 길이 범위는, 지상 관제 시스템(202)의 관리자 단말에 의해 단계적으로 커지도록 사전에 정해질 수 있으며, 일례로 상기 최소 길이 범위는 전체 위성 커맨드가 갖는 최소 길이(예, '4 B')를 포함하도록 정해질 수 있고, 상기 최대 길이 범위는 상기 전체 위성 커맨드가 갖는 최대 길이(예, '70 B')를 포함하도록 정해질 수 있다.
이때 상기 위성 커맨드의 전체 수에 비하여, 특정 커맨드 버퍼에 할당된 길이 범위에 속하는 위성 커맨드의 수가 일정 비율('1/16'=128개) 이상인 경우, 생성부(210)는 상기 특정 커맨드 버퍼에 할당된 길이 범위를 예를 들어 10 B 단위로 분할하여, 분할된 각 길이 범위 마다 커맨드 버퍼를 생성할 수도 있다. 이 경우 메모리 공간(270)에 생성되는 커맨드 버퍼의 개수는 3개를 초과할 수 있다.
도 3을 참조하면, 생성부(210)는 CMD 길이(CMD Length)가 '20 B' 이하인 위성 커맨드를 저장하기 위한 제1 커맨드 버퍼(310)와, CMD 길이가 '40B~72 B'인 위성 커맨드를 저장하기 위한 제2 커맨드 버퍼(330) 및 CMD 길이가 '20 B~40B'인 위성 커맨드를 저장하기 위한 제3 커맨드 버퍼(320)를 각각 메모리 공간(270, 300)에 생성할 수 있다.
입력되는 위성 커맨드의 길이는 '20 B' 미만으로 짧은 경우가 대다수이므로, 생성부(210)는 길이가 짧은 위성 커맨드를 저장하기 위한 제1 커맨드 버퍼(310)를, 위성 커맨드의 전체 수(2048개)를 고려하여, '40 KB' (=20 B * 2048 개)의 사이즈로 생성할 수 있다.
한편, 생성부(210)는 길이가 '20 B' 이상으로 긴 경우는 극소수이므로, 제2 커맨드 버퍼(330)와 제3 커맨드 버퍼(320)를, 위성 커맨드의 전체 수(2048개)의 일정 비율('1/16')에 해당하는 위성 커맨드(128개)를 저장 가능한 사이즈로 생성할 수 있다.
즉 생성부(210)는 제2 커맨드 버퍼(330)를 '9 KB' (=72 B * 128 개)의 사이즈로 생성하고, 제3 커맨드 버퍼(320)를 '5 KB' (=40 B * 128 개)의 사이즈로 생성할 수 있다.
이처럼 생성부(210)는 최소/중간/최대와 같이 단계적으로 커지는 길이 범위를 할당한 복수의 커맨드 버퍼(310, 320, 330)를 메모리 공간(270) 내에 생성하여, 입력되는 위성 커맨드의 실제 길이에 딱 맞는 커맨드 버퍼에 위성 커맨드가 선택적으로 저장되도록 할 수 있다.
또한 생성부(210)는 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 메모리 공간(270) 내에 생성하는 기능을 한다.
즉 생성부(210)는 어느 하나의 커맨드 버퍼에 저장될 위성 커맨드의 인덱스 정보 저장을 위해 상기 인덱스 버퍼를 커맨드 버퍼의 수 만큼 메모리 공간(270)에 생성할 수 있다.
예를 들어 도 3을 참조하면 생성부(210)는 제1 커맨드 버퍼(310)에 저장되는 위성 커맨드의 인덱스 정보를 저장하기 위한 인덱스 버퍼(301)와, 제2 커맨드 버퍼(330)에 저장되는 위성 커맨드의 인덱스 정보를 저장하기 위한 인덱스 버퍼(303)와, 제3 커맨드 버퍼(320)에 저장되는 위성 커맨드의 인덱스 정보를 저장하기 위한 인덱스 버퍼(302)를 메모리 공간(270)에 각각 생성할 수 있다.
일례로 생성부(210)는 상기 제1 커맨드 버퍼에 대응하는 인덱스 버퍼를, 상기 입력되는 위성 커맨드의 전체 수를 고려하여 설정한 사이즈로 생성할 수 있다.
예를 들어 도 3을 참조하면, 생성부(210)는 대다수의 위성 커맨드가 저장되는 제1 커맨드 버퍼(310)에 대응하는 인덱스 버퍼(301)를, 위성 커맨드의 전체 수(2048개)와 인덱스 정보 하나의 길이('8 B')를 고려해 '16 KB' (=8 B * 2048 개)의 사이즈로 생성할 수 있다.
본 실시예에서 상기 인덱스 정보는 RTCS Number(RTCS 번호), Delta-Time, CMD Length, New Bank(304), Pointer to Next의 필드로 구성될 수 있다.
RTCS Number는 상대시간 저장명령(RTCS)의 수를 나타내는 필드이고, Delta-Time은 명령 사이의 수행 시간 간격을 나타내는 필드이고, CMD Length는 위성 커맨드의 실제 길이를 나타내는 필드이고, New Bank(304)는 상기 위성 커맨드 이후에 입력될 차기 위성 커맨드를 저장할 커맨드 버퍼의 뱅크 번호(#0~#2), 즉 버퍼 식별자를 나타내는 필드이고, Pointer to Next는 상기 차기 위성 커맨드를 저장할 저장위치를 나타내는 필드일 수 있다.
이 중 CMD Length는 2 B가 필요했던 종래 기술과 달리 1 B로 할당되고, 남는 1B에 New Bank(304)가 할당될 수 있다. 나머지 필드는 각각 2 B로 할당되어, 하나의 인덱스 정보는 종래 기술과 마찬가지로 8 B의 길이를 가질 수 있다.
또한 생성부(210)는 상기 제2 커맨드 버퍼에 대응하는 인덱스 버퍼 및 상기 제3 커맨드 버퍼에 대응하는 인덱스 버퍼 각각을, 상기 입력되는 위성 커맨드의 전체 수에 대한 일정 비율을 고려하여 설정한 사이즈로 생성할 수 있다.
예를 들어 도 3을 참조하면, 생성부(210)는 제1 커맨드 버퍼(310)에 비해 적은 수의 위성 커맨드가 저장되는 제2 커맨드 버퍼(330)와 제3 커맨드 버퍼(320)에 각각 대응하는 인덱스 버퍼(303, 302)를, 상기 입력되는 위성 커맨드의 전체 수(2048개)에 대한 일정 비율('1/16' = 128개)을 고려해 '1 KB' (= 8 B * 128 개)의 사이즈로 생성할 수 있다.
여기서 생성부(210)는 발명의 구현에 앞서 메모리 공간(270)에 사전에 저장된 RTCS Location Table을 참조하여, 입력되는 위성 커맨드의 전체 수('2048개')를 확인할 수 있다. 또한 후술하는 저장부(230)에 의해 각 RTCS 중 처음 저장될 명령의 인덱스 버퍼 상의 위치도 RTCS Location Table에서 확인될 수 있다.
상술과 같이 생성한 복수의 커맨드 버퍼(310, 320, 330)를 이용할 경우, 최대 2048개의 위성 커맨드를 저장 시, 대략 72 KB 정도(=16 KB +1 KB+1 KB (인덱스 버퍼) + 40 KB+5 KB+9 KB (커맨드 버퍼))의 메모리 공간(270, 300)을 사용하여 저장 가능해지므로, 대략 160 KB 가 사용되는 종래 기술에서 보다 메모리 공간(270, 300)의 효율성을 높일 수 있다.
확인부(220)는 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 기능을 한다.
일례로, 확인부(220)는 상기 위성 커맨드의 길이가 상기 최소 길이 범위에 속하면, 상기 제1 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하고, 상기 위성 커맨드의 길이가 상기 최대 길이 범위에 속하면, 상기 제2 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하고, 상기 위성 커맨드의 길이가 상기 중간 길이 범위에 속하면, 상기 제3 커맨드 버퍼를, 상기 타겟 버퍼로서 확인할 수 있다.
예를 들어 도 3을 참조하면, 확인부(220)는 입력되는 위성 커맨드의 길이가 '4 B'이면, 최소 길이 범위(예, '20 B 이하')에 속하므로 제1 커맨드 버퍼(310)를 위성 커맨드를 저장할 타겟 버퍼로서 확인할 수 있다.
예를 들어 도 3을 참조하면, 확인부(220)는 입력되는 위성 커맨드의 길이가 '30 B'이면, 중간 길이 범위(예, '20 B 초과 40 B 이하')에 속하므로 제3 커맨드 버퍼(320)를 위성 커맨드를 저장할 타겟 버퍼로서 확인할 수 있다.
예를 들어 도 3을 참조하면, 확인부(220)는 입력되는 위성 커맨드의 길이가 '70 B'이면, 최대 길이 범위(예, '40 B 초과 72 B 이하')에 속하므로 제2 커맨드 버퍼(330)를 위성 커맨드를 저장할 타겟 버퍼로서 확인할 수 있다.
저장부(230)는 상기 타겟 버퍼에 상기 위성 커맨드를 저장하고, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 기능을 한다.
일례로 저장부(230)는 입력되는 위성 커맨드를 타겟 버퍼로서 확인된 커맨드 버퍼에 순차적으로 저장하고, 상기 위성 커맨드의 저장에 연동하여, 상기 위성 커맨드의 내부 커맨드(RTCS 번호), 수행 시간간격(Delta-Time) 및 커맨드 길이(CMD Length)를 포함하는 인덱스 정보를, 상기 인덱스 버퍼에 저장할 수 있다.
기록부(240)는 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 기능을 한다.
즉 기록부(240)는 상기 위성 커맨드가 저장된 커맨드 버퍼의 식별자(뱅크 번호)와 해당 커맨드 버퍼 내에서의 저장위치를, 상기 위성 커맨드에 대한 인덱스 정보가 아닌, 상기 이전 위성 커맨드의 인덱스 정보에 기록할 수 있다.
마찬가지로 기록부(240)는 상기 위성 커맨드 이후에 입력되는 차기 위성 커맨드가 어느 하나의 커맨드 버퍼에 저장되면, 해당 커맨드 버퍼의 식별자와 해당 커맨드 버퍼 내에서의 저장위치를, 상기 위성 커맨드에 대한 인덱스 정보에 기록할 수 있다.
이처럼 기록부(240)는 각 인덱스 정보 마다, 차기 위성 커맨드가 저장된 커맨드 버퍼의 식별자와 저장위치를 기록 함으로써, 연속해서 입력되는 위성 커맨드들이 연결 리스트(Linked-List) 구조로 메모리 공간(270)에 저장되도록 할 수 있다.
예를 들어 도 3을 참조하면, CMD 길이가 '6B'인 위성 커맨드 A가 입력되는 경우, 확인부(220)는 최소 길이 범위(예, '20 B 이하')를 할당한 제1 커맨드 버퍼(310)를 타겟 버퍼로 확인하고, 저장부(230)는 위성 커맨드 A를 제1 커맨드 버퍼(310)에 순차적으로 저장하고, 위성 커맨드 A의 인덱스 정보를 인덱스 버퍼(301)에 저장할 수 있다. 이 경우, 기록부(240)는 위성 커맨드 A를 저장한 제1 커맨드 버퍼(310)의 버퍼 식별자 '#0'과 저장위치 'SCSA Index 578'을, 위성 커맨드 A 이전에 입력된 위성 커맨드의 인덱스 정보에 기록할 수 있다.
상기 위성 커맨드 A에 이어서 CMD 길이가 '70 B'인 위성 커맨드 B가 최초로 입력되면, 확인부(220)는 최대 길이 범위(예, '40 B 초과 72 B 이하')를 할당한 제2 커맨드 버퍼(330)를 타겟 버퍼로서 확인하고, 저장부(230)는 위성 커맨드 B를 제2 커맨드 버퍼(330)에 순차적으로 저장하고, 위성 커맨드 B의 인덱스 정보를 인덱스 버퍼(303)에 저장할 수 있다.
이 경우 기록부(240)는 위성 커맨드 B 이전에 입력된 위성 커맨드 A의 인덱스 정보의 New Bank(304) 필드와 Ptr to Next 필드에, 위성 커맨드 B 를 저장한 제2 커맨드 버퍼(330)의 버퍼 식별자 '#2'와 제2 커맨드 버퍼(330) 내에서의 저장위치 'SCSA Index 0'을 기록할 수 있다.
상기 위성 커맨드 B에 이어서 CMD 길이가 '70 B'인 위성 커맨드 C가 두번째로 입력되면, 확인부(220)는 최대 길이 범위(예, '40 B 초과 72 B 이하')를 할당한 제2 커맨드 버퍼(330)를 타겟 버퍼로서 확인하고, 저장부(230)는 제2 커맨드 버퍼(330) 내 상기 위성 커맨드 B 다음의 저장위치에 위성 커맨드 C를 저장한 후, 위성 커맨드 C의 인덱스 정보를 인덱스 버퍼(303)에 저장할 수 있다.
이 경우 기록부(240)는 위성 커맨드 C 이전에 입력된 위성 커맨드 B의 인덱스 정보의 New Bank(306) 필드와 Ptr to Next 필드에, 위성 커맨드 C 를 저장한 제2 커맨드 버퍼(330)의 버퍼 식별자 '#2'와 제2 커맨드 버퍼(330) 내에서의 저장위치 'SCSA Index 1'을 기록할 수 있다.
또한 CMD 길이가 '30 B'인 위성 커맨드 D가 최초로 입력될 경우, 확인부(220)는 중간 길이 범위(예, '20 B 초과 40 B 이하')를 할당한 제3 커맨드 버퍼(320)를 타겟 버퍼로서 확인하고, 저장부(230)는 제3 커맨드 버퍼(320) 내 'SCSA Index 1'에 위성 커맨드 D를 저장한 후, 위성 커맨드 D의 인덱스 정보를 인덱스 버퍼(302)에 저장할 수 있다.
이 경우 기록부(240)는 위성 커맨드 D 이전에 입력된 위성 커맨드의 인덱스 정보에 위성 커맨드 D 를 저장한 제3 커맨드 버퍼(320)의 버퍼 식별자 '#1'과 제3 커맨드 버퍼(320) 내에서의 저장위치 'SCSA Index 0'을 기록할 수 있다.
상기 위성 커맨드 D에 이어서 CMD 길이가 '6 B'인 위성 커맨드 E가 입력되면, 확인부(220)는 최대 길이 범위(예, '20 B 이하')를 할당한 제1 커맨드 버퍼(310)를 타겟 버퍼로서 확인하고, 저장부(230)는 제1 커맨드 버퍼(310) 내 'SCSA Index 581'에 위성 커맨드 E를 저장한 후, 위성 커맨드 E의 인덱스 정보를 인덱스 버퍼(301)에 저장할 수 있다.
이 경우 기록부(240)는 위성 커맨드 E 이전에 입력된 위성 커맨드 D의 인덱스 정보의 New Bank(305) 필드와 Ptr to Next 필드에, 위성 커맨드 E 를 저장한 제1 커맨드 버퍼(310)의 버퍼 식별자 '#0'과 제1 커맨드 버퍼(310) 내에서의 저장위치 'SCSA Index 581'을 기록할 수 있다.
이처럼 본 발명의 일실시예에 의하면, 저장 가능한 커맨드의 길이 범위를 단계적으로 상이하게 할당한 복수의 커맨드 버퍼를 마련해 두고, 입력되는 위성 커맨드의 실제 길이에 따라, 어느 하나의 커맨드 버퍼를 선택해서 위성 커맨드를 저장함으로써, 메모리 공간 사용을 절감할 수 있다.
실시예에 따라 위성 커맨드 저장 처리 시스템(200)은 실행부(250)를 더 포함하여 구성할 수 있다.
실행부(250)는 상기 위성 커맨드가, 정해진 시간간격(Delta-Time)에 따라 수행되는 상대시간 저장명령(RTCS)인 경우, 지상 관제 시스템(202)으로부터의 RTCS 활성화 명령에 따라, 상기 인덱스 버퍼를 참조하여, 상기 타켓 버퍼에 저장된 상기 위성 커맨드의 상대시간 저장명령을 리드하고, 리드한 상기 상대시간 저장명령을 절대시간 명령으로 변환하여, 상기 정해진 시간간격에 따라 위성 시스템에서 실행되도록 처리하는 기능을 한다.
예를 들어, 도 3을 참조하면, 실행부(250)는 지상 관제 시스템(202)으로부터 메모리 공간(270, 300)에 저장된 상대시간 저장명령(RTCS)을 실행하는 RTCS 활성화 명령이 수신되면, 인덱스 버퍼(301, 302, 303)에 저장된 각 인덱스 정보에서, 차기 위성 커맨드가 저장되는 커맨드 버퍼의 버퍼 식별자(뱅크 번호)를 기록한 New Bank(304)와 차기 위성 커맨드의 저장위치를 기록한 Ptr to Next를 참조하여, 연결 리스트(Linked-List) 구조로 복수의 커맨드 버퍼(310, 320, 330) 각각에 저장된 위성 커맨드들을 저장된 순서로 리드할 수 있다. 실행부(250)는 순차적으로 리드되는 각 상대시간 저장명령을 절대시간 명령으로 변환한 후, 정해진 시간간격(Delta-Time)을 두고 위성 시스템에서 실행되도록 할 수 있다.
또한 실시예에 따라 위성 커맨드 저장 처리 시스템(200)은 삭제부(260)를 더 포함하여 구성할 수 있다.
삭제부(260)는 상기 위성 시스템에서의 실행에 따라, 상기 타켓 버퍼에서 상기 상대시간 저장명령을 삭제 처리하는 기능을 한다.
저장부(230)는 상기 삭제 처리 이후, 지상 관제 시스템(202)으로부터 상대시간 저장명령이 추가로 전송되면, 상기 추가로 전송된 상대시간 저장명령을, 상기 타켓 버퍼 내 삭제 처리된 영역에 저장할 수 있다.
예를 들어 도 3을 참조하면 삭제부(260)는 RTCS 활성화 명령에 따라 실행되는 상대시간 저장명령을 도 3의 커맨드 버퍼(310, 320, 330)에서 삭제 처리하고, 삭제 처리된 상대시간 저장명령의 인덱스 정보를 인덱스 버퍼(301, 302, 303)에서 삭제 처리할 수 있다.
이후 저장부(230)는 지상 관제 시스템(202)으로부터 추가로 업로드 되는 RTCS 명령군을, 상기 삭제 처리에 따라 비어 있는 도 3의 커맨드 버퍼(310, 320, 330) 내 영역에 순차적으로 저장할 수 있다.
또한, 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 시스템(200)은, 생성부(210)와, 저장부(230) 및 기록부(240)를 포함하여 구성할 수 있다.
생성부(210)는 메모리 공간(270) 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하고, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하는 기능을 한다.
생성부(210)는 복수 개의 슬롯을 포함하는 하나의 커맨드 버퍼를 생성하되, 각 슬롯 마다 최고 길이 범위('72 B이하')를 균일하게 할당하는 종래 기술과 달리, 대다수의 위성 커맨드의 길이를 고려하여, 각 슬롯 마다 최소 길이 범위('20 B 이하')를 균일하게 할당해 커맨드 버퍼를 생성할 수 있다.
예를 들어 도 4를 참조하면 생성부(210)는 SCSA Index '0'부터 SCSA Index '2559'까지의 총2560개의 슬롯을 포함하는 커맨드 버퍼(410)를 메모리 공간(270, 400) 내에 생성하고, 각 슬롯 마다 예컨대 20 B 이하의 최소 길이 범위를 동일하게 할당할 수 있다.
또한 생성부(210)는 위성 커맨드의 전체 수를 고려하여 2048개의 슬롯을 포함하는 커맨드 버퍼를 마련하는 종래 기술과 달리, 최소 길이 범위('20 B 이하')를 초과하는 위성 커맨드의 경우 여러 개의 슬롯을 이용해 저장할 수 있도록, 위성 커맨드의 전체 수 보다 많은 수의 슬롯을 가지도록 커맨드 버퍼를 생성할 수 있다.
예를 들어 도 4에 도시한 것처럼, 생성부(210)는 도 1에서 72 B 이하의 최대 길이 범위가 할당된 커맨드 버퍼(100)의 슬롯 개수(2048개) 보다 많은 슬롯을 포함하도록 커맨드 버퍼(410)를 생성할 수 있다.
또한 생성부(210)는 도 3에서 20 B 이하의 최소 길이 범위가 할당된 제1 커맨드 버퍼(310)의 슬롯 개수('2048개')와, 제2 커맨드 버퍼(330)의 슬롯 개수('127개')와, 제3 커맨드 버퍼(320)의 슬롯 개수('127개')를 합친 것 보다 많은 슬롯을 포함하도록 커맨드 버퍼(410)를 생성할 수도 있다.
또한 생성부(210)는 커맨드 버퍼(410)와 동일한 슬롯 개수를 가지는 인덱스 버퍼(420)를 메모리 공간(270) 내에 생성하여, 커맨드 버퍼(410)에 저장되는 위성 커맨드의 인덱스 정보가 인덱스 버퍼(420)에 저장되도록 할 수 있다.
즉 생성부(210)는 커맨드 버퍼(410)와 마찬가지로 복수의 슬롯으로 구분되는 인덱스 버퍼(420)를 생성하여, 커맨드 버퍼(410) 내 각 슬롯에 저장되는 위성 커맨드의 인덱스 정보가, 인덱스 버퍼(420) 내 해당 슬롯에 저장되도록 할 수 있다.
상술과 같이 생성한 커맨드 버퍼(410)를 이용할 경우, 최대 2048개의 위성 커맨드를 저장 시, 대략 70 KB 정도(= 인덱스 버퍼 20 KB + 커맨드 버퍼 50 KB)의 메모리 공간(270, 400)을 사용하여 저장 가능해지므로, 대략 160 KB가 필요한 종래 기술 보다 메모리 공간(270, 400)의 효율성을 높일 수 있다.
저장부(230)는 입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하는 기능을 한다.
이때 저장부(230)는 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위('20 B 이하')를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장한다.
저장부(230)는 기본적으로 하나의 슬롯을 사용해 위성 커맨드를 저장하되, 위성 커맨드의 길이가 '20 B 이상으로 커서 하나의 슬롯 만으로 위성 커맨드를 저장하기 어려운 경우, 차기의 슬롯을 추가로 이용해 위성 커맨드를 커맨드 버퍼에 저장할 수 있다.
예를 들어 저장부(230)는 도 4에 도시된 커맨드 버퍼(410)에 위성 커맨드를 저장하려는 경우, 입력되는 위성 커맨드 A의 CMD 길이가 '70 B'이면, '20 B 이하의 최소 길이 범위가 할당된 하나의 슬롯 만으로 위성 커맨드 A를 모두 저장하는데 부족하므로, 부족한 길이(50B) 만큼 총 3개의 슬롯을 추가로 이용할 수 있다.
즉 저장부(230)는 총 4개의 슬롯을 이용하여 위성 커맨드 A를 커맨드 버퍼(410) 내 SCSA Index 579~582의 저장위치에 저장할 수 있다.
또한 저장부(230)는 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장한다.
예를 들어 저장부(230)는 위성 커맨드 A를 총 4개의 슬롯을 이용해 커맨드 버퍼(410)에 저장함에 따라, 위성 커맨드 A의 인덱스 정보도 총 4개의 슬롯을 사용해 인덱스 버퍼(420) 내 SCSA Index 579~582의 저장위치에 저장할 수 있다.
기록부(240)는 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록하는 기능을 한다.
본 실시예에서 인덱스 정보는 RTCS Number(RTCS 번호), Delta-Time, CMD Length, Long CMD(401), Pointer to Next의 필드로 구성될 수 있다.
RTCS Number는 상대시간 저장명령(RTCS)의 수를 나타내는 필드이고, Delta-Time은 명령 사이의 수행 시간 간격을 나타내는 필드이고, CMD Length는 위성 커맨드의 실제 길이를 나타내는 필드이고, Long CMD는 상기 위성 커맨드를 저장 시 추가로 이용한 하위 슬롯의 수를 나타내는 필드이고, Pointer to Next는 차기 위성 커맨드를 저장할 저장위치를 나타내는 필드일 수 있다.
이 중 CMD Length는 2 B가 필요했던 종래 기술과 달리 1 B로 할당되고, 남는 1B에 Long CMD가 할당되며, 나머지 필드는 각각 2 B로 할당되어, 하나의 인덱스 정보는 종래 기술과 마찬가지로 8 B의 길이를 가질 수 있다.
기록부(240)는 도 4에 도시된 Long CMD(401) 필드를 이용하여, 위성 커맨드를 저장 시 추가로 이용한 하위 슬롯의 수를 기록할 수 있다.
예를 들어 기록부(240)는 CMD 길이가 70B인 위성 커맨드 A를 총 4개의 슬롯('SCSA Index 579~582')에 저장한 경우, 4개의 슬롯 중 첫번째 슬롯('SCSA Index 579')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '3'이므로, 첫번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '3'을 기록하고, 두번째 슬롯('SCSA Index 580')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '2'이므로, 두번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '2'을 기록하고, 세번째 슬롯('SCSA Index 581')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '1'이므로, 세번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '1'을 기록하고, 네번째 슬롯('SCSA Index 582')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '0'이므로, 네번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '0'을 기록할 수 있다.
마찬가지로 기록부(240)는 CMD 길이가 70B인 위성 커맨드 B를 총 4개의 슬롯('SCSA Index 583~586')에 저장한 경우, 인덱스 버퍼(420)의 해당 슬롯('SCSA Index 583~586')에 저장되는 인덱스 정보 내 Long CMD(401)를 각각 '3', '2', '1', '0'으로 기록할 수 있다.
마찬가지로 기록부(240)는 CMD 길이가 30B인 위성 커맨드 C를 총 2개의 슬롯('SCSA Index 589, 590')에 저장한 경우, 2개의 슬롯 중 첫번째 슬롯('SCSA Index 589)을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '1'이므로, 인덱스 버퍼(420)의 슬롯('SCSA Index 589)에 저장되는 인덱스 정보 내 Long CMD(401)를 '1'로 기록하고, 두번째 슬롯('SCSA Index 590)을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '0'이므로, 인덱스 버퍼(420)의 슬롯('SCSA Index 590)에 저장되는 인덱스 정보 내 Long CMD(401)를 '0'으로 기록할 수 있다.
이처럼 본 발명의 다른 실시예에 의하면, 커맨드 버퍼 내 슬롯 마다 최소의 길이 범위(예, '20 B')를 할당해 두고, 입력되는 위성 커맨드의 실제 길이가, 하나의 슬롯 만으로 저장되지 않을 경우에만 추가적으로 슬롯을 사용하여 위성 커맨드를 저장함으로써, 메모리 공간 사용을 종래 기술의 절반 이하로 절감할 수 있다.
이상과 같이 본 명세서에서는 위성 커맨드 저장을 위한 메모리 공간의 사용 절감을 위해, 저장 가능한 커맨드의 길이 범위를 단계적으로 상이하게 할당한 복수의 커맨드 버퍼(예, '20 B 이하', '20 B 초과 40 B 이하', '40B 초과 72 B 이하')를 이용하여 위성 커맨드를 저장하는 방안 1과, 최소 길이 범위(예, '20 B 이하')를 균일하게 할당한 복수의 슬롯을 포함하는 단일의 커맨드 버퍼를 이용하여 위성 커맨드를 저장하는 방안 2를 제안한다.
방안 1에서 사용되는 메모리 공간은 대략 72 KB이고 방안 2에서 사용되는 메모리 공간은 대략 70 KB로서 유사한 수준이고, 160 KB가 필요한 종래 기술에 비해 메모리 절감 효과가 뛰어나므로 방안 1과 방안 2는 선택적으로 이용 가능하지만, 만일 최소 길이 범위('20 B 이하')를 초과하는 위성 커맨드의 수가 일정 수를 초과한다면, 위성 커맨드를 저장 시 추가로 이용한 하위 슬롯의 수를 슬롯 마다 기록하는 과정은 비효율적일 수 있다.
이에 따라 본 명세서에서는 최소 길이 범위('20 B 이하')를 초과하는 위성 커맨드의 수가 일정 수를 초과하는지 판단하여, 초과하는 경우에 방안 1에 따른 저장 방식으로 위성 커맨드를 저장하고, 초과하지 않으면 방안 2에 따른 저장 방식으로 위성 커맨드를 저장할 수 있다.
이와 같이 본 발명에 따르면, 위성 시스템에 저장하려는 위성 커맨드의 실제의 길이와 수를 고려하여, 위성 커맨드를 저장할 커맨드 버퍼 및 인덱스 정보를 저장할 인덱스 버퍼의 사이즈와 구성을 변경해 메모리 공간을 효율적으로 설계할 수 있다.
도 3은 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 시스템에서, 위성 커맨드를 저장 처리하는 일례를 도시한 도면이다.
도 3을 참조하면, 위성 커맨드 저장 처리 시스템은 저장 가능한 커맨드의 길이 범위가 단계적으로 상이한 커맨드 버퍼(Command Buffer)(310, 320, 330)와, 그에 대응하는 인덱스 버퍼(Index Buffer)(301, 302, 303)를 메모리 공간(300)에 생성하고, 입력되는 위성 커맨드의 길이가 해당되는 어느 하나의 커맨드 버퍼에 위성 커맨드를 연결 리스트 구조로 저장하고, 위성 커맨드가 저장된 커맨드 버퍼의 식별자(뱅크 번호)와 해당 커맨드 버퍼 내에서의 저장위치를, 상기 위성 커맨드의 이전에 입력된 이전 위성 커맨드의 인덱스 정보 내 New Bank(304, 305, 306)에 기록할 수 있다.
즉 위성 커맨드 저장 처리 시스템은 커맨드 버퍼(310, 320, 330)에 저장되는 위성 커맨드의 길이 범위를, 최소 길이 범위(예, '20 B 이하')와 중간 길이 범위(예, '20 B 초과 40 B 이하') 및 최대 길이 범위(예, '40 B 초과 72 B 이하')로 단계 별로 할당해 두고, 입력되는 위성 커맨드의 길이에 따라, 커맨드 버퍼(310, 320, 330) 중 어느 하나의 커맨드 버퍼를 선택해서 위성 커맨드를 저장할 수 있다.
각 커맨드 버퍼(310, 320, 330)에는 버퍼 식별자로서 뱅크 번호 #0, #1, #2가 부여되고, 위성 커맨드 저장 처리 시스템은 입력되는 위성 커맨드가 저장된 커맨드 버퍼를 구분하는 인자(뱅크 번호)를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드의 New Bank(304, 305, 306)에 기록할 수 있다.
이에 따라 커맨드 버퍼(310, 320, 330)에 각각 40 KB, 5 KB, 9 KB가 사용되고, 인덱스 버퍼(301, 302, 303)에 각각 16 KB, 1 KB, 1 KB가 사용되므로, 메모리 공간(300) 사용은 대략 72 KB로 절감될 수 있다.
도 4는 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 시스템에서, 위성 커맨드를 저장 처리하는 다른 일례를 도시한 도면이다.
도 4를 참조하면, 위성 커맨드 저장 처리 시스템은 최소 길이 범위('20 B 이하')를 균일하게 할당한 복수의 슬롯을 포함하는 커맨드 버퍼(410)와 그에 대응하는 인덱스 버퍼(420)를 메모리 공간(400)에 생성하고, 위성 커맨드가 입력되면, 기본적으로 하나의 슬롯을 이용하여 위성 커맨드를 커맨드 버퍼(410)에 저장하고, 입력되는 위성 커맨드의 길이가 하나의 슬롯에 할당된 길이 범위를 초과할 경우에 상기 슬롯에 이어지는 하위 슬롯을 추가로 이용하여 위성 커맨드를 커맨드 버퍼(410)에 저장하고, 추가로 이용한 하위 슬롯의 수를 상기 위성 커맨드의 인덱스 정보 내 Long CMD(401)에 기록할 수 있다.
Long CMD(401)는 위성 커맨드의 길이가 하나의 슬롯에 할당된 길이 범위를 초과하는 긴 명령어(Long CMD)인지 여부를 나타내는 필드이다.
위성 커맨드 저장 처리 시스템은, 입력된 위성 커맨드가 하나의 슬롯에 할당된 길이 범위를 초과하는 긴 명령어가 아닌 경우, Long CMD(401)는 '0'으로 기록되고, 하나의 슬롯에 할당된 길이 범위를 초과하는 긴 명령어인 경우, 초과하는 슬롯 수를 내림차순으로 기록할 수 있다.
예를 들어 위성 커맨드 저장 처리 시스템은 길이가 70 B인 위성 커맨드 A가 입력되면, 하나의 슬롯에 할당된 최소 길이 범위(20 B 이하)를 3개 초과하므로 위성 커맨드 A의 인덱스 정보 내 Long CMD(401) 필드에, 초과하는 슬롯 수를 '3', '2', 1', '0'과 같이 내림차순으로 기록할 수 있다.
또한 위성 커맨드 저장 처리 시스템은 길이가 30 B인 위성 커맨드 C가 입력되면, 하나의 슬롯에 할당된 최소 길이 범위(20 B 이하)를 1개 초과하므로, 위성 커맨드 A의 인덱스 정보 내 Long CMD(401) 필드에, 초과하는 슬롯 수를 1', '0'과 같이 내림차순으로 기록할 수 있다.
이에 따라 커맨드 버퍼(410)에 대략 50 KB가 사용되고, Long CMD(401) 필드로서 512 B가 추가로 사용되더라도 인덱스 버퍼(420)에 대략 20 KB가 사용되므로, 메모리 공간(400) 사용은 대략 70 KB로 절감될 수 있다.
따라서 본 발명에 의하면, 하나의 위성 커맨드가 저장되는데 필요한 메모리 공간을 위성 커맨드의 실제 길이에 맞추어 할당함으로써, 사용되지 않고 남는 공간을 줄여 메모리 공간에 저장 가능한 위성 커맨드의 수를 증대할 수 있다.
이하, 도 5 내지 도 6에서는 본 발명의 실시예들에 따른 위성 커맨드 저장 처리 시스템(200)의 작업 흐름을 상세히 설명한다.
도 5는 본 발명의 일실시예에 따른 위성 커맨드 저장 처리 방법의 순서를 도시한 흐름도이다.
본 실시예에 따른 위성 커맨드 저장 처리 방법은, 상술한 위성 커맨드 저장 처리 시스템(200)에 의해 수행될 수 있다.
도 5를 참조하면, 단계(510)에서, 위성 커맨드 저장 처리 시스템(200)은 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성한다.
단계(520)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성한다.
단계(530)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인한다.
단계(540)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 타겟 버퍼에 상기 위성 커맨드를 저장한다.
단계(550)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장한다.
단계(560)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록한다.
즉 위성 커맨드 저장 처리 시스템(200)은 위성 커맨드가 저장된 커맨드의 식별자(뱅크번호)와 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록 함으로써, 연속해서 입력되는 위성 커맨드들이 연결 리스트(Linked-List) 구조로 메모리 공간(270)에 저장되도록 할 수 있다.
예를 들어 도 3을 참조하면, 위성 커맨드 저장 처리 시스템(200)은 CMD 길이가 '6B'인 위성 커맨드 A가 입력되는 경우, 최소 길이 범위(예, '20 B 이하')를 할당한 제1 커맨드 버퍼(310)를 타겟 버퍼로 확인하고, 위성 커맨드 A를 제1 커맨드 버퍼(310)에 순차적으로 저장하고, 위성 커맨드 A의 인덱스 정보를 인덱스 버퍼(301)에 저장하고, 위성 커맨드 A를 저장한 제1 커맨드 버퍼(310)의 버퍼 식별자 '#0'과 저장위치 'SCSA Index 578'을, 위성 커맨드 A 이전에 입력된 위성 커맨드의 인덱스 정보에 기록할 수 있다.
상기 위성 커맨드 A에 이어서 CMD 길이가 '70 B'인 위성 커맨드 B가 최초로 입력되면, 위성 커맨드 저장 처리 시스템(200)은 최대 길이 범위(예, '40 B 초과 72 B 이하')를 할당한 제2 커맨드 버퍼(330)를 타겟 버퍼로서 확인하고, 위성 커맨드 B를 제2 커맨드 버퍼(330)에 순차적으로 저장하고, 위성 커맨드 B의 인덱스 정보를 인덱스 버퍼(303)에 저장하고, 위성 커맨드 B 이전에 입력된 위성 커맨드 A의 인덱스 정보의 New Bank(304) 필드와 Ptr to Next 필드에, 위성 커맨드 B 를 저장한 제2 커맨드 버퍼(330)의 버퍼 식별자 '#2'와 제2 커맨드 버퍼(330) 내에서의 저장위치 'SCSA Index 0'을 기록할 수 있다.
이와 같이, 본 발명의 일실시예에 따르면, 저장 가능한 커맨드의 길이 범위를 단계적으로 상이하게 할당한 복수의 커맨드 버퍼를 마련해 두고, 입력되는 위성 커맨드의 실제 길이에 따라, 어느 하나의 커맨드 버퍼를 선택해서 위성 커맨드를 저장함으로써, 메모리 공간 사용을 절감할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 위성 커맨드 저장 처리 방법의 순서를 도시한 흐름도이다.
본 실시예에 따른 위성 커맨드 저장 처리 방법은, 상술한 위성 커맨드 저장 처리 시스템(200)에 의해 수행될 수 있다.
도 6을 참조하면, 단계(610)에서, 위성 커맨드 저장 처리 시스템(200)은 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성한다.
단계(620)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성한다.
단계(630)에서, 위성 커맨드 저장 처리 시스템(200)은 입력되는 위성 커맨드를 상기 복수의 슬롯 중 하나의 슬롯(제1 슬롯)을 이용하여 상기 커맨드 버퍼에 저장한다.
단계(640)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 위성 커맨드의 길이가, 하나의 슬롯에 할당된 길이 범위를 초과하는지 판단한다.
상기 판단 결과, 상기 위성 커맨드의 길이가, 하나의 슬롯(제1 슬롯)에 할당된 길이 범위를 초과하지 않으면, 위성 커맨드 저장 처리 시스템(200)은 단계(660)로 이동하여, 상기 커맨드 버퍼에 저장한 위성 커맨드의 인덱스 정보를 상기 인덱스 버퍼에 저장한다.
상기 판단 결과, 상기 위성 커맨드의 길이가, 하나의 슬롯에 할당된 길이 범위를 초과하면, 단계(650)에서, 위성 커맨드 저장 처리 시스템(200)은 하나의 슬롯(제2 슬롯)을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하고, 단계(640)로 이동하여, 위성 커맨드의 길이가 하나의 슬롯(제2 슬롯)에 할당된 길이 범위를 초과하는지 재판단한다.
상기 재판단 결과, 상기 위성 커맨드의 길이가, 하나의 슬롯(제2 슬롯)에 할당된 길이 범위를 초과하면, 위성 커맨드 저장 처리 시스템(200)은 단계(630 내지 650)를 반복한다.
즉 위성 커맨드 저장 처리 시스템(200)은 상기 위성 커맨드의 길이가, 하나의 슬롯(제2 슬롯)에 할당된 길이 범위를 초과하지 않을 때까지 단계(630 내지 650)를 반복함으로써, 상기 위성 커맨드를 온전히 상기 커맨드 버퍼에 저장한다.
상기 재판단 결과, 상기 위성 커맨드의 길이가, 하나의 슬롯(제2 슬롯)에 할당된 길이 범위를 초과하지 않으면, 단계(660)에서, 위성 커맨드 저장 처리 시스템(200)은 단계(630 내지 650)에서 상기 커맨드 버퍼에 저장한 위성 커맨드의 인덱스 정보를 상기 인덱스 버퍼에 저장한다.
단계(670)에서, 위성 커맨드 저장 처리 시스템(200)은 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록한다.
예를 들어 도 4를 참조하면 위성 커맨드 저장 처리 시스템(200)은 CMD 길이가 70B인 위성 커맨드 A를 총 4개의 슬롯('SCSA Index 579~582')에 저장한 경우, 4개의 슬롯 중 첫번째 슬롯('SCSA Index 579')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '3'이므로, 첫번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '3'을 기록하고, 두번째 슬롯('SCSA Index 580')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '2'이므로, 두번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '2'을 기록하고, 세번째 슬롯('SCSA Index 581')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '1'이므로, 세번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '1'을 기록하고, 네번째 슬롯('SCSA Index 582')을 기준으로 했을 때 추가로 이용한 하위 슬롯의 수는 '0'이므로, 네번째 슬롯에 저장된 인덱스 정보 내 Long CMD(401) 필드에 '0'을 기록할 수 있다.
이와 같이, 본 발명의 일실시예에 따르면, 복수의 슬롯으로 구분되는 하나의 커맨드 버퍼를, 슬롯 마다 균일한 최소의 길이 범위(예, '20 B')를 할당해 마련해 두고, 입력되는 위성 커맨드의 실제 길이에 따라, 하나의 슬롯 만으로 저장되지 않을 경우에만 추가적으로 슬롯을 사용하여 위성 커맨드를 저장함으로써, 메모리 공간 사용을 절감할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
200: 위성 커맨드 저장 처리 시스템
201: 위성 시스템
202: 지상 관제 시스템
210: 생성부
220: 확인부
230: 저장부
240: 기록부
250: 실행부
260: 삭제부
270: 메모리 공간

Claims (17)

  1. 위성 커맨드 저장 처리 시스템에 의해 구현되는 위성 커맨드 저장 처리 방법에 있어서,
    상기 위성 커맨드 저장 처리 시스템 내 생성부에서, 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하는 단계;
    상기 생성부에서, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하는 단계;
    상기 위성 커맨드 저장 처리 시스템 내 확인부에서, 상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 단계;
    상기 위성 커맨드 저장 처리 시스템 내 저장부에서, 상기 타겟 버퍼에 상기 위성 커맨드를 저장하는 단계;
    상기 저장부에서, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 단계; 및
    상기 위성 커맨드 저장 처리 시스템 내 기록부에서, 상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 단계
    를 포함하는 위성 커맨드 저장 처리 방법.
  2. 제1항에 있어서,
    상기 위성 커맨드에 이어서 차기 위성 커맨드가 입력되는 경우,
    상기 복수의 커맨드 버퍼 중 타겟 버퍼로 확인되는 어느 하나의 커맨드 버퍼에 상기 차기 위성 커맨드가 저장되면,
    상기 기록부에서, 상기 차기 위성 커맨드가 저장되는 타겟 버퍼의 식별자와, 타겟 버퍼 내에서의 저장위치를, 상기 인덱스 버퍼에 저장된 상기 위성 커맨드의 상기 인덱스 정보에 기록하는 단계
    를 더 포함하는 위성 커맨드 저장 처리 방법.
  3. 제1항에 있어서,
    상기 복수의 커맨드 버퍼를 생성하는 단계는,
    할당 가능한 커맨드의 길이 범위 중, 최소 길이 범위를 할당한 제1 커맨드 버퍼를 생성하는 단계;
    할당 가능한 커맨드의 길이 범위 중, 최대 길이 범위를 할당한 제2 커맨드 버퍼를 생성하는 단계; 및
    상기 최소 길이 범위와 상기 최대 길이 범위 사이의 중간 길이 범위를 할당한 제3 커맨드 버퍼를 생성하는 단계
    를 포함하는 위성 커맨드 저장 처리 방법.
  4. 제3항에 있어서,
    상기 타겟 버퍼로서 확인하는 단계는,
    상기 위성 커맨드의 길이가 상기 최소 길이 범위에 속하면, 상기 제1 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하는 단계;
    상기 위성 커맨드의 길이가 상기 최대 길이 범위에 속하면, 상기 제2 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하는 단계; 및
    상기 위성 커맨드의 길이가 상기 중간 길이 범위에 속하면, 상기 제3 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하는 단계
    를 포함하는 위성 커맨드 저장 처리 방법.
  5. 제3항에 있어서,
    상기 인덱스 버퍼를 생성하는 단계는,
    상기 제1 커맨드 버퍼에 대응하는 인덱스 버퍼를, 상기 입력되는 위성 커맨드의 전체 수를 고려하여 설정한 사이즈로 생성하는 단계; 및
    상기 제2 커맨드 버퍼에 대응하는 인덱스 버퍼 및 상기 제3 커맨드 버퍼에 대응하는 인덱스 버퍼 각각을, 상기 입력되는 위성 커맨드의 전체 수에 대한 일정 비율을 고려하여 설정한 사이즈로 생성하는 단계
    를 포함하는 위성 커맨드 저장 처리 방법.
  6. 제1항에 있어서,
    상기 위성 커맨드가, 정해진 시간간격(Delta-Time)에 따라 수행되는 상대시간 저장명령(RTCS)인 경우,
    지상 관제 시스템으로부터의 RTCS 활성화 명령에 따라,
    상기 위성 커맨드 저장 처리 시스템 내 실행부에서, 상기 인덱스 버퍼를 참조하여, 상기 타켓 버퍼에 저장된 상기 위성 커맨드의 상대시간 저장명령을 리드하는 단계; 및
    상기 실행부에서, 리드한 상기 상대시간 저장명령을 절대시간 명령으로 변환하여, 상기 정해진 시간간격에 따라 위성 시스템에서 실행되도록 처리하는 단계
    를 더 포함하는 위성 커맨드 저장 처리 방법.
  7. 제6항에 있어서,
    상기 위성 커맨드 저장 처리 시스템 내 삭제부에서, 상기 위성 시스템에서의 실행에 따라, 상기 타켓 버퍼에서 상기 상대시간 저장명령을 삭제 처리하는 단계; 및
    상기 저장부에서, 상기 삭제 처리 이후, 상기 지상 관제 시스템으로부터 상대시간 저장명령이 추가로 전송되면, 상기 추가로 전송된 상대시간 저장명령을, 상기 타켓 버퍼 내 삭제 처리된 영역에 저장하는 단계
    를 더 포함하는 위성 커맨드 저장 처리 방법.
  8. 위성 커맨드 저장 처리 시스템에 의해 구현되는 위성 커맨드 저장 처리 방법에 있어서,
    상기 위성 커맨드 저장 처리 시스템 내 생성부에서, 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하는 단계;
    상기 생성부에서, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하는 단계;
    상기 위성 커맨드 저장 처리 시스템 내 저장부에서, 입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하는 단계로서, 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는 단계;
    상기 저장부에서, 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 단계; 및
    상기 위성 커맨드 저장 처리 시스템 내 기록부에서, 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록하는 단계
    를 포함하는 위성 커맨드 저장 처리 방법.
  9. 메모리 공간 내에, 저장 가능한 커맨드의 길이 범위가 상이하게 할당된 복수의 커맨드 버퍼를 생성하고, 상기 복수의 커맨드 버퍼 각각에 대응하여 인덱스 버퍼를 생성하는 생성부;
    상기 복수의 커맨드 버퍼 중에서, 입력되는 위성 커맨드의 길이에 해당되는 어느 하나를 타겟 버퍼로서 확인하는 확인부;
    상기 타겟 버퍼에 상기 위성 커맨드를 저장하고, 상기 타겟 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 저장부; 및
    상기 타겟 버퍼의 식별자와, 상기 타겟 버퍼 내에서의 저장위치를, 상기 위성 커맨드 이전에 입력된 이전 위성 커맨드에 대한 인덱스 정보에 기록하는 기록부
    를 포함하는 위성 커맨드 저장 처리 시스템.
  10. 제9항에 있어서,
    상기 위성 커맨드에 이어서 차기 위성 커맨드가 입력되는 경우,
    상기 저장부에 의해, 상기 복수의 커맨드 버퍼 중 타겟 버퍼로 확인되는 어느 하나의 커맨드 버퍼에 상기 차기 위성 커맨드가 저장되면,
    상기 기록부는,
    상기 차기 위성 커맨드가 저장되는 타겟 버퍼의 식별자와, 타겟 버퍼 내에서의 저장위치를, 상기 인덱스 버퍼에 저장된 상기 위성 커맨드의 상기 인덱스 정보에 기록하는
    위성 커맨드 저장 처리 시스템.
  11. 제9항에 있어서,
    상기 생성부는,
    할당 가능한 커맨드의 길이 범위 중, 최소 길이 범위를 할당한 제1 커맨드 버퍼를 생성하고,
    할당 가능한 커맨드의 길이 범위 중, 최대 길이 범위를 할당한 제2 커맨드 버퍼를 생성하고,
    상기 최소 길이 범위와 상기 최대 길이 범위 사이의 중간 길이 범위를 할당한 제3 커맨드 버퍼를 생성하는
    위성 커맨드 저장 처리 시스템.
  12. 제11항에 있어서,
    상기 확인부는,
    상기 위성 커맨드의 길이가 상기 최소 길이 범위에 속하면, 상기 제1 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하고,
    상기 위성 커맨드의 길이가 상기 최대 길이 범위에 속하면, 상기 제2 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하고,
    상기 위성 커맨드의 길이가 상기 중간 길이 범위에 속하면, 상기 제3 커맨드 버퍼를, 상기 타겟 버퍼로서 확인하는
    위성 커맨드 저장 처리 시스템.
  13. 제11항에 있어서,
    상기 생성부는,
    상기 제1 커맨드 버퍼에 대응하는 인덱스 버퍼를, 상기 입력되는 위성 커맨드의 전체 수를 고려하여 설정한 사이즈로 생성하고,
    상기 제2 커맨드 버퍼에 대응하는 인덱스 버퍼 및 상기 제3 커맨드 버퍼에 대응하는 인덱스 버퍼 각각을, 상기 입력되는 위성 커맨드의 전체 수에 대한 일정 비율을 고려하여 설정한 사이즈로 생성하는
    위성 커맨드 저장 처리 시스템.
  14. 제9항에 있어서,
    상기 위성 커맨드가, 정해진 시간간격(Delta-Time)에 따라 수행되는 상대시간 저장명령(RTCS)인 경우,
    지상 관제 시스템으로부터의 RTCS 활성화 명령에 따라,
    상기 인덱스 버퍼를 참조하여, 상기 타켓 버퍼에 저장된 상기 위성 커맨드의 상대시간 저장명령을 리드하고, 리드한 상기 상대시간 저장명령을 절대시간 명령으로 변환하여, 상기 정해진 시간간격에 따라 위성 시스템에서 실행되도록 처리하는 실행부
    를 더 포함하는 위성 커맨드 저장 처리 시스템.
  15. 제14항에 있어서,
    상기 위성 시스템에서의 실행에 따라, 상기 타켓 버퍼에서 상기 상대시간 저장명령을 삭제 처리하는 삭제부
    를 더 포함하고,
    상기 저장부는,
    상기 삭제 처리 이후, 상기 지상 관제 시스템으로부터 상대시간 저장명령이 추가로 전송되면, 상기 추가로 전송된 상대시간 저장명령을, 상기 타켓 버퍼 내 삭제 처리된 영역에 저장하는
    위성 커맨드 저장 처리 시스템.
  16. 메모리 공간 내에, 동일한 길이 범위가 할당된 복수의 슬롯을 포함하는 커맨드 버퍼를 생성하고, 상기 커맨드 버퍼에 대응하여 인덱스 버퍼를 생성하는 생성부;
    입력되는 위성 커맨드를 상기 복수의 슬롯 중 제1 슬롯을 이용하여 상기 커맨드 버퍼에 저장하고, 상기 위성 커맨드의 길이가, 상기 제1 슬롯에 할당된 길이 범위를 초과하면, 상기 제1 슬롯에 이어지는 제2 슬롯을 추가로 이용하여 상기 위성 커맨드를 상기 커맨드 버퍼에 저장하고, 상기 커맨드 버퍼에 상기 위성 커맨드를 저장함에 따라, 상기 위성 커맨드에 대한 인덱스 정보를 상기 인덱스 버퍼에 저장하는 저장부; 및
    상기 위성 커맨드를 상기 커맨드 버퍼에 저장하는데 추가로 이용한 슬롯의 수를, 상기 인덱스 정보에 기록하는 기록부
    를 포함하는 위성 커맨드 저장 처리 시스템.
  17. 제1항 내지 제8항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020190173886A 2019-12-24 2019-12-24 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템 Active KR102268112B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190173886A KR102268112B1 (ko) 2019-12-24 2019-12-24 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190173886A KR102268112B1 (ko) 2019-12-24 2019-12-24 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템

Publications (1)

Publication Number Publication Date
KR102268112B1 true KR102268112B1 (ko) 2021-06-22

Family

ID=76600875

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190173886A Active KR102268112B1 (ko) 2019-12-24 2019-12-24 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템

Country Status (1)

Country Link
KR (1) KR102268112B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010050794A (ko) * 1999-10-01 2001-06-25 가나이 쓰토무 개선된 분기 제어 명령을 이용하는 프로세서 구조 및동작
KR100294276B1 (ko) * 1991-07-08 2001-09-17 야스카와 히데아키 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조
KR20170048114A (ko) * 2015-10-26 2017-05-08 삼성전자주식회사 저장 장치 및 저장 장치에 의해 기록 명령이 수행되는 방법
JP2018528651A (ja) * 2015-07-23 2018-09-27 クアルコム,インコーポレイテッド 衛星通信システム内のベントパイプ中継器における不連続送信のための方法および装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100294276B1 (ko) * 1991-07-08 2001-09-17 야스카와 히데아키 고속트랩및예외상태를구현한알아이에스씨마이크로프로세서구조
KR20010050794A (ko) * 1999-10-01 2001-06-25 가나이 쓰토무 개선된 분기 제어 명령을 이용하는 프로세서 구조 및동작
JP2018528651A (ja) * 2015-07-23 2018-09-27 クアルコム,インコーポレイテッド 衛星通信システム内のベントパイプ中継器における不連続送信のための方法および装置
KR20170048114A (ko) * 2015-10-26 2017-05-08 삼성전자주식회사 저장 장치 및 저장 장치에 의해 기록 명령이 수행되는 방법

Similar Documents

Publication Publication Date Title
US7774581B2 (en) Apparatus for compressing instruction word for parallel processing VLIW computer and method for the same
JP4778942B2 (ja) 不揮発性メモリを管理する装置及び方法
US9274865B2 (en) Implementing enhanced buffer management for data storage devices
US8472449B2 (en) Packet file system
KR20110095049A (ko) 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법
US10831738B2 (en) Parallelized in-place radix sorting
JP5862589B2 (ja) ディスクアレイ装置
KR102056730B1 (ko) Vliw 프로세서를 위한 명령어 압축 장치 및 방법과, 명령어 인출 장치 및 방법
CN110489425A (zh) 一种数据访问方法、装置、设备及存储介质
CN114518841A (zh) 存储器中处理器和使用存储器中处理器输出指令的方法
KR20210027625A (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN105243027A (zh) 在存储设备中存储数据的方法和存储控制器
US9213486B2 (en) Writing new data of a first block size to a second block size using a write-write mode
KR102268112B1 (ko) 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템
US11287996B2 (en) Method, device and computer program product for storing data
US9858040B2 (en) Parallelized in-place radix sorting
US8195696B2 (en) File format converting method
US12130746B2 (en) Memory system and method
JP2012128782A (ja) ディスクアレイ装置を備えたストレージシステム、ディスクアレイ装置及びエクステントサイズ変更方法
US9858179B2 (en) Data sort using memory-intensive exosort
CN112783896B (zh) 一种用于加载文件减少内存使用率的方法
KR102886960B1 (ko) 그래픽 처리 장치를 이용한 유전자 서열 정렬 방법
JP5994647B2 (ja) データ記録装置、及びデータ記録方法
US9329791B2 (en) File system and file system converting method
CN110716904A (zh) 一种嵌入式文件系统设计方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20191224

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20201221

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210614

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210616

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210617

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240313

Start annual number: 4

End annual number: 4