KR102154246B1 - Satellite and the method for analyzing its software time - Google Patents

Satellite and the method for analyzing its software time Download PDF

Info

Publication number
KR102154246B1
KR102154246B1 KR1020180169907A KR20180169907A KR102154246B1 KR 102154246 B1 KR102154246 B1 KR 102154246B1 KR 1020180169907 A KR1020180169907 A KR 1020180169907A KR 20180169907 A KR20180169907 A KR 20180169907A KR 102154246 B1 KR102154246 B1 KR 102154246B1
Authority
KR
South Korea
Prior art keywords
task
time
telemetry
processor
software
Prior art date
Application number
KR1020180169907A
Other languages
Korean (ko)
Other versions
KR20200080045A (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 KR1020180169907A priority Critical patent/KR102154246B1/en
Publication of KR20200080045A publication Critical patent/KR20200080045A/en
Application granted granted Critical
Publication of KR102154246B1 publication Critical patent/KR102154246B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • B64G2700/00

Abstract

본 발명은 인공위성 및 이의 소프트웨어 수행시간 분석 방법에 관한 것으로서, 더욱 구체적으로는 인공위성의 소프트웨어의 수행 시간을 하드웨어를 통해 측정하는 방법에 관한 것이다.
본 발명의 인공위성의 소프트웨어(software) 수행시간 측정 방법은, 적어도 하나의 태스크(task)를 수행하는 단계, 적어도 하나의 태스크의 시작 시간 및 종료 시간을 하드웨어(hardware)에 기록하는 단계, 하드웨어에 기록된 시작 시간 및 종료 시간을 바탕으로, 적어도 하나의 태스크에 대한 수행시간 데이터를 생성하는 단계 및 수행시간 데이터를 저장하는 단계를 포함한다.
The present invention relates to an artificial satellite and a method of analyzing the execution time of the software thereof, and more particularly, to a method of measuring the execution time of the software of the artificial satellite through hardware.
The method of measuring software execution time of an artificial satellite of the present invention includes performing at least one task, recording a start time and an end time of at least one task in hardware, and recording in hardware And generating execution time data for at least one task and storing execution time data based on the set start time and end time.

Figure R1020180169907
Figure R1020180169907

Description

인공위성 및 이의 소프트웨어 수행시간 분석 방법{SATELLITE AND THE METHOD FOR ANALYZING ITS SOFTWARE TIME}Satellite and its software execution time analysis method {SATELLITE AND THE METHOD FOR ANALYZING ITS SOFTWARE TIME}

본 발명은 인공위성 및 이의 소프트웨어 수행시간 분석 방법에 관한 것으로서, 더욱 구체적으로는 인공위성의 소프트웨어의 수행 시간을 하드웨어를 통해 측정하는 방법에 관한 것이다.The present invention relates to an artificial satellite and a method of analyzing the execution time of the software thereof, and more particularly, to a method of measuring the execution time of the software of the artificial satellite through hardware.

오늘날 다양한 목적과 임무를 위해 우주로 인공위성들이 발사되고 있다. 이러한 인공위성들은 목적과 임무의 달성을 위한 소프트웨어가 탑재된다. 인공위성에 탑재된 소프트웨어는 위성의 모든 상태, 동작을 관리, 제어하며 위성 본연의 임무 수행을 하는데 필수적이다. Today, satellites are being launched into space for a variety of purposes and missions. These satellites are equipped with software to achieve their purpose and mission. The software installed on the satellite manages and controls all the states and motions of the satellite, and is essential for performing the satellite's original mission.

이러한 인공위성의 소프트웨어는 실시간성을 만족해야 하며, 이는 위성의 안전 및 성능에 영향을 미치게 된다. 실시간성의 만족은 주어진 태스크(task)가 정해진 스케줄에 따라 제한된 시간 안에 수행을 마칠 때 이루어질 수 있다. The software of these satellites must satisfy real-time, which will affect the safety and performance of the satellite. Satisfaction with real-time performance can be achieved when a given task is completed within a limited time according to a predetermined schedule.

일반적인 인공위성에는 시스템 기준 클럭에 따라 값이 순차적으로 증가하는 클록 카운터(Clock Counter)가 구현되어 있다. 소프트웨어는 이 클럭카운터를 이용하여 마이너 사이클마다 수행 시간을 측정하는데, 일반적인 텔레메트리 주기 (정지궤도 위성: 10 마이너 사이클 = 1초, 저궤도 위성: 8 마이너 사이클 = 1초)로는 해당 결과를 지상으로 전송하기 어렵다. 이에 따라, 종래에는 MCS (Minor Cycle Sampling) 등 별도의 방법을 적용하여 지상으로 전송하였다. In general satellites, a clock counter is implemented in which the value increases sequentially according to the system reference clock. The software uses this clock counter to measure the execution time for each minor cycle. With a typical telemetry period (geostationary satellites: 10 minor cycles = 1 second, LEO satellites: 8 minor cycles = 1 second), the result is transferred to the ground. Difficult to transmit Accordingly, conventionally, a separate method such as Minor Cycle Sampling (MCS) was applied to transmit the data to the ground.

다만, 종래에는, MCS 방법을 사용함에 있어서 마이너 사이클(minor cycle)의 수만큼 저장공간을 확보하여 한다는 문제점이 있었고, 소프트웨어가 각각의 수행 시간을 계산하는 과정에서 딜레이가 발생하며, 소프트웨어의 불필요한 복잡성이 초래된다는 문제점이 있어 왔다.However, conventionally, there was a problem in that the MCS method was used to secure storage space as many as the number of minor cycles, and a delay occurred in the process of calculating each execution time by the software, and unnecessary complexity of the software. There has been a problem that this is caused.

본 발명은 상술한 문제점을 해결하기 위한 필요성에 따른 것으로 본 발명이 해결하고자 하는 일 과제는, 인공위성에 탑재된 소프트웨어가 수행 시간의 시작 및 종료 시점의 카운트 값을 확인할 필요 없이, 시작 및 종료 시점을 알려주어 하드웨어의 주소를 액세스함으로써 단순화된 소프트웨어를 제공하는 것이다.The present invention is in accordance with the necessity for solving the above-described problems, and one problem to be solved by the present invention is that the software mounted on the satellite does not need to check the count values of the start and end times of the execution time, It tells you to provide a simplified software by accessing the address of the hardware.

본 발명의 일 실시 예에 따른 인공위성의 소프트웨어(software) 수행시간 측정 방법은, 적어도 하나의 태스크(task)를 수행하는 단계; 상기 적어도 하나의 태스크의 시작 시간 및 종료 시간을 하드웨어(hardware)에 기록하는 단계; 상기 하드웨어에 기록된 상기 시작 시간 및 종료 시간을 바탕으로, 상기 적어도 하나의 태스크에 대한 수행시간 데이터를 생성하는 단계; 및 상기 수행시간 데이터를 저장하는 단계;를 포함할 수 있다. According to an embodiment of the present invention, a method for measuring execution time of software of an artificial satellite may include performing at least one task; Recording a start time and an end time of the at least one task in hardware; Generating execution time data for the at least one task based on the start time and end time recorded in the hardware; And storing the execution time data.

또한, 상기 기록하는 단계는, 상기 적어도 하나의 태스크 중 제1 태스크에 가 수행되는 경우, 상기 하드웨어의 제1 주소에 액세스(access)하여 상기 제1 태스크의 시작 시간 및 종료 시간을 기록하는 것일 수 있다. In addition, the recording may be to record the start time and end time of the first task by accessing the first address of the hardware when is performed on the first task among the at least one task. have.

또한, 상기 기록하는 단계는, 상기 적어도 하나의 태스크 중 상기 제1 태스크와 유형 및 소 주기(minor cycle)가 서로 상이한 제2 태스크가 수행되는 경우, 상기 하드웨어의 제2 주소에 액세스하여 상기 제2 태스크의 시작 시간 및 종료 시간을 기록하는 것일 수 있다. In addition, the recording may include accessing the second address of the hardware and performing the second task when a second task having a type and a minor cycle different from the first task among the at least one task is performed. It may be to record the start time and end time of the task.

또한, 상기 생성하는 단계는, 텔레메트리(Telemetry) 생성 규칙에 기초하여, 상기 시작 시간 및 종료 시간을 포함하는 텔레메트리 프레임을 상기 수행시간 데이터로 생성하는 것일 수 있다.In addition, the generating may be to generate a telemetry frame including the start time and end time as the execution time data based on a telemetry generation rule.

또한, 상기 수행시간 측정 방법은, 저장된 상기 수행시간 데이터를 지상으로 전송하는 단계;를 더 포함할 수 있다.In addition, the execution time measurement method may further include transmitting the stored execution time data to the ground.

한편, 본 발명의 일 실시 예에 따른 컴퓨터를 이용하여 인공위성의 소프트웨어(software) 수행시간 측정 방법은 상술한 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램을 이용할 수 있다.Meanwhile, the method of measuring the execution time of software for an artificial satellite using a computer according to an embodiment of the present invention may use a computer program stored in a medium to execute the above-described method.

한편, 본 발명의 일 실시 예에 따른 인공위성은 메모리; 및 프로세서;를 포함하고, 상기 프로세서는, 적어도 하나의 태스크(task)를 수행하고, 상기 적어도 하나의 태스크의 시작 시간 및 종료 시간을 하드웨어(hardware)에 기록하고, 상기 하드웨어에 기록된 상기 시작 시간 및 종료 시간을 바탕으로, 상기 적어도 하나의 태스크에 대한 수행시간 데이터를 생성하고, 상기 수행시간 데이터를 상기 메모리에 저장할 수 있다. On the other hand, the satellite according to an embodiment of the present invention includes a memory; And a processor; wherein the processor performs at least one task, records a start time and an end time of the at least one task in hardware, and the start time recorded in the hardware And execution time data for the at least one task may be generated based on an end time, and the execution time data may be stored in the memory.

또한, 상기 프로세서는, 상기 적어도 하나의 태스크 중 제1 태스크에 가 수행되는 경우, 상기 하드웨어의 제1 주소에 액세스(access)하여 상기 제1 태스크의 시작 시간 및 종료 시간을 기록할 수 있다. In addition, the processor may access a first address of the hardware and record a start time and an end time of the first task when is performed on the first task among the at least one task.

또한, 상기 프로세서는, 상기 적어도 하나의 태스크 중 상기 제1 태스크와 유형 및 소 주기(minor cycle)가 서로 상이한 제2 태스크가 수행되는 경우, 상기 하드웨어의 제2 주소에 액세스하여 상기 제2 태스크의 시작 시간 및 종료 시간을 기록할 수 있다.In addition, when a second task having a type and a minor cycle different from the first task among the at least one task is performed, the processor accesses the second address of the hardware Start time and end time can be recorded.

또한, 상기 프로세서는, 텔레메트리(Telemetry) 생성 규칙에 기초하여, 상기 시작 시간 및 종료 시간을 포함하는 텔레메트리 프레임을 상기 수행시간 데이터로 생성할 수 있다. .In addition, the processor may generate a telemetry frame including the start time and end time as the execution time data based on a telemetry generation rule. .

또한, 상기 인공위성은, 통신부;를 더 포함하고, 상기 프로세서는, 저장된 상기 수행시간 데이터를 지상으로 전송하도록 상기 통신부를 제어할 수 있다.In addition, the satellite may further include a communication unit, and the processor may control the communication unit to transmit the stored execution time data to the ground.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명에 따르면, 소프트웨어는 하드웨어에 시작 및 종료 시점을 알려주는 역할만 수행함으로써 소프트웨어가 단순화될 수 있으며, 시간 측정을 위한 부가적인 처리가 줄어들게 된다.According to the present invention, the software can be simplified by only informing the hardware of the start and end times, and additional processing for time measurement is reduced.

또한, 시간측정데이터를 지상으로 전송하기 위해 MCS(Minor Cycle Sampling) 와 같은 별도의 방법을 사용하였으나, 본 발명을 이용하면 기존의 텔레메트리(telemetry) 처리 방법을 그대로 적용할 수 있어서, 소프트웨어의 구현 및 운영이 용이해진다.In addition, a separate method such as Minor Cycle Sampling (MCS) was used to transmit the time measurement data to the ground. However, by using the present invention, the existing telemetry processing method can be applied as it is. It becomes easy to implement and operate.

도 1은 본 발명의 일 실시 예에 따른 인공위성에 포함된 구성을 설명하기 위한 블록도이다.
도 2는 종래의 인공위성 소프트웨어가 counter를 이용하여 태스크의 수행 시간을 측정하는 것을 설명하기 위한 도면이다.
도 3은 종래의 인공위성 소프트웨어의 수행시간 측정결과를 전송하기 위한 MCS(minor cycle sampling) 방법을 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른, 인공위성의 소프트웨어 수행 시간을 측정하는 방법을 설명하기 위한 도면이다.
1 is a block diagram illustrating a configuration included in an artificial satellite according to an embodiment of the present invention.
2 is a diagram for explaining how a conventional satellite software measures a task execution time using a counter.
3 is a diagram showing a minor cycle sampling (MCS) method for transmitting a result of measuring an execution time of a conventional satellite software.
4 is a diagram for describing a method of measuring a software execution time of an artificial satellite according to an embodiment of the present invention.

이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings. However, this is not intended to limit the techniques described in this document to specific embodiments, and it should be understood that various modifications, equivalents, and/or alternatives of the embodiments of this document are included. In connection with the description of the drawings, similar reference numerals may be used for similar elements.

또한, 본 문서에서 사용된 "제 1," "제 2," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.In addition, expressions such as "first," "second," etc. used in this document can modify various elements regardless of their order and/or importance, and to distinguish one element from other elements. It is used only and does not limit the components. For example, a first user device and a second user device may represent different user devices regardless of order or importance. For example, without departing from the scope of the rights described in this document, a first component may be referred to as a second component, and similarly, a second component may be renamed to a first component.

어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.Some component (eg, a first component) is "(functionally or communicatively) coupled with/to)" to another component (eg, a second component) or " When referred to as "connected to", it should be understood that the certain component may be directly connected to the other component, or may be connected through another component (eg, a third component). On the other hand, when a component (eg, a first component) is referred to as being “directly connected” or “directly connected” to another component (eg, a second component), the component and the It may be understood that no other component (eg, a third component) exists between the different components.

본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the technical field described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted as having the same or similar meanings as those in the context of the related technology, and unless explicitly defined in this document, an ideal or excessively formal meaning Is not interpreted as. In some cases, even terms defined in this document cannot be interpreted to exclude embodiments of this document.

이하에서, 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다. Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 인공위성의 구성을 설명하기 위한 블록도이다. 본 발명에서 '인공위성'은 3차원 공간상에서 이동하는 다양한 장치일 수 있다. 가령 인공위성은 지구 및/또는 다른 행성의 주위를 공전하거나 이동하면서 지상국과 데이터를 송수신하는 장치일 수 있다. 이러한 경우 인공위성은 발사체 등에 탑재되어 발사대를 통하여 발사될 수 있다. 이때 인공위성에는 소정의 목적 및/또는 용도에 따른 소프트웨어가 탑재될 수 있다.1 is a block diagram illustrating a configuration of an artificial satellite according to an embodiment of the present invention. In the present invention, the'artificial satellite' may be various devices that move in a three-dimensional space. For example, an artificial satellite may be a device that transmits and receives data to and from a ground station while orbiting or moving around the Earth and/or other planets. In this case, the satellite may be mounted on a launch vehicle and launched through the launch pad. In this case, software according to a predetermined purpose and/or purpose may be mounted on the satellite.

또한, 인공위성은 대기권 내에서 소정의 목적 및/또는 용도에 따라 비행하는 비행체일 수도 있다. 이러한 경우 인공위성은 발사체 및/또는 발사대 없이도 이륙 및/또는 착륙할 수 있다. 다만, 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In addition, the satellite may be a flying vehicle in the atmosphere according to a predetermined purpose and/or use. In this case, the satellite can take off and/or land without a launch vehicle and/or launch pad. However, this is an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 인공위성은 소정의 시간 간격마다 신호를 지상국으로 전송할 수 있다. 즉 인공위성은 일정한 시간 주기로 신호를 지상국으로 전송할 수 있다. 예를 들면 인공위성은 5초 주기로 신호를 지상국으로 전송할 수 있다.The satellite according to an embodiment of the present invention may transmit a signal to a ground station at predetermined time intervals. In other words, the satellite can transmit signals to the ground station at a certain period of time. For example, a satellite can transmit a signal to a ground station every 5 seconds.

이때 인공위성이 지상국으로 전송하는 신호는 텔레메트리(Telemetry)로써, 프레임(Frame) 및/또는 패킷(Packet)단위로 전송될 수 있다. 따라서 인공위성은 소정의 시간 간격마다 프레임 및/또는 패킷을 지상국으로 전송할 수 있다. In this case, a signal transmitted by the satellite to the ground station is telemetry, and may be transmitted in a frame and/or packet unit. Accordingly, the satellite can transmit frames and/or packets to the ground station at predetermined time intervals.

인공위성이 지상국으로 전송하는 프레임 및/또는 패킷에는 해당 프레임 및/또는 패킷의 순번에 관한 정보가 포함될 수 있다. 가령 인공위성이 지상국에 10번째로 보내는 프레임 및/또는 패킷의 경우, 해당 프레임 및/또는 패킷 내에 해당 프레임 및/또는 패킷이 10번째로 전송되는 것임을 식별할 수 있는 정보가 포함될 수 있다. The frame and/or packet transmitted by the satellite to the ground station may include information on the sequence number of the frame and/or packet. For example, in the case of a frame and/or packet that the satellite sends to the ground station for the tenth time, information for identifying that the frame and/or packet is transmitted for the tenth time may be included in the frame and/or packet.

물론 상술한 순번 정보 외에, 프레임 및/또는 패킷에는 소정의 규칙 및/또는 규격에 따른 다양한 데이터들(가령 인공위성의 상태에 관한 데이터 등)이 더 포함될 수 있다.Of course, in addition to the above-described sequence number information, the frame and/or packet may further include various data (eg, data related to the state of the satellite) according to a predetermined rule and/or standard.

본 발명의 일 실시 예에 따른 인공위성은 텔레메트리 처리부(150)를 포함하는 프로세서(100), 클럭카운터(Clock Counter, 110), 시간측정부(120), 결과기록부(130), 텔레메트리 생성부(140) 및 설정부(160)를 포함할 수 있다.The satellite according to an embodiment of the present invention includes a processor 100 including a telemetry processing unit 150, a clock counter 110, a time measurement unit 120, a result recording unit 130, and a telemetry. A generator 140 and a setting unit 160 may be included.

클럭카운터(110)는 시스템 기준 클럭에 따라 1 틱마다 값이 1이 증가하는 카운터이다. 구체적으로, 틱은 기설정된 시간 간격으로 결정될 수 있고, 또는 시스템이 동작을 제어하기 위한 시스템 이벤트를 기준으로 결정될 수도 있다. 클럭카운터(110)는 기설정된 틱이 도과할 때마다 카운터 값을 1씩 증가시킬 수 있고, 프로세서(100)는 카운터 값을 기준으로 소프트웨어의 수행 시간을 획득할 수 있다. The clock counter 110 is a counter whose value increases by 1 every tick according to the system reference clock. Specifically, the tick may be determined at a preset time interval, or may be determined based on a system event for the system to control an operation. The clock counter 110 may increase the counter value by 1 whenever a preset tick passes, and the processor 100 may acquire the execution time of software based on the counter value.

시간측정부(120)는 프로세서(100)에서 수행되는 소프트웨어로부터 신호를 받으면, 클럭카운터(110)를 통해 시간측정을 수행하고, 결과 값을 결과 기록부(130)로 전송할 수 있다. When receiving a signal from software performed by the processor 100, the time measurement unit 120 may perform time measurement through the clock counter 110 and transmit the result value to the result recording unit 130.

결과기록부(130)는 시간측정부(120)로부터 전송된 측정결과를 정해진 방법에 따라 기록하는 장치로, 태스크(Task) 종류, 소 주기(Minor Cycle) 순서 등에 따라 기록을 관리할 수 있다. The result recording unit 130 is a device that records the measurement result transmitted from the time measurement unit 120 according to a predetermined method, and may manage recording according to a task type, a minor cycle order, and the like.

텔레메트리 생성부(140)는 결과기록부에 저장된 시간 측정데이터를 소프트웨어의 요청에 따라 텔레메트리 처리를 위한 데이터를 생성하는 장치이다.The telemetry generation unit 140 is a device that generates data for telemetry processing according to a request of software from time measurement data stored in the result recording unit.

설정부(160)는 시간 측정 및 기록, 자료 형식 등 처리에 필요한 다양한 기초 데이터를 설정하고 저장하기 위한 구성이며, 기초 데이터 값은 기설정된 값일 수도 있으나, 상황 별로 프로세서(100)에 의해 변경될 수 있다. The setting unit 160 is a configuration for setting and storing various basic data necessary for processing such as time measurement and recording, data format, etc., and the basic data value may be a preset value, but may be changed by the processor 100 for each situation. have.

도 1에는 클럭카운터(110), 시간측정부(120), 결과기록부(130), 텔레메트리 생성부(140) 및 설정부(160)가 별개의 장치로 구현한 것을 도시하였지만, 상술한 복수의 장치들은 하나의 장치로 구현될 수 있다. 바꾸어 말하면 복수의 장치(110, 120, 130, 140, 160)는 물리적으로 각각 또는 일부 집합으로 분리된 별개의 장치일 수도 있고, 동일한 프로세서에 의해 구동되는 별개의 어플리케이션, 프로세스, 태스크 중 어느 하나일 수도 있다. 다만, 이하에서는 설명의 편의를 위하여 복수의 장치가 별개의 장치임을 전제로 설명한다. 1 shows that the clock counter 110, the time measurement unit 120, the result recording unit 130, the telemetry generation unit 140, and the setting unit 160 are implemented as separate devices. The devices of may be implemented as a single device. In other words, the plurality of devices (110, 120, 130, 140, 160) may be separate devices physically separated into individual or partial sets, or any one of a separate application, process, or task driven by the same processor. May be. However, in the following description, for convenience of description, it is assumed that a plurality of devices are separate devices.

한편, 텔레메트리 처리부(150)는 프로세서(100)에 포함될 수 있다. 텔레메트리 처리부(150)는 프로세서(100)에서의 소프트웨어 수행을 위한 소프트웨어 컴포넌트일 수 있다. Meanwhile, the telemetry processing unit 150 may be included in the processor 100. The telemetry processing unit 150 may be a software component for software execution in the processor 100.

텔레메트리 처리부(150)는 프로세서(100)에서의 태스크 수행 결과 기록을 텔레메트리 생성부(140)에 요청하여 획득하고, 이를 지상으로 전송할 프레임(Frame)에 기록하는 역할을 수행한다. 이때, 지상으로 전송할 프레임은 소프트웨어 수행이 시작되거나 종료될 때 하드웨어의 특정 주소가 액세스된 시간 정보를 포함하는 텔레메트리 프레임일 수 있다. The telemetry processing unit 150 requests and obtains a record of a task execution result in the processor 100 from the telemetry generation unit 140, and records the result in a frame to be transmitted to the ground. In this case, the frame to be transmitted to the ground may be a telemetry frame including time information at which a specific address of hardware is accessed when software execution starts or ends.

본 발명의 일 실시 예에 따른 프로세서(100)는, 소프트웨어를 통해 태스크를 수행할 때 시간측정부(120)로 시작 및 종료를 알리는 신호를 전달할 수 있다. 예를 들면, 프로세서(100)는 소프트웨어 태스크 1(170)을 실행할 때 시간측정부(120)로 시작 신호를 전송할 수 있고, 시간측정부(120)는 클럭카운터(110)의 클럭을 이용하여 소프트웨어 태스크 1(170)의 시작 시간을 획득할 수 있다. 또한 프로세서(100)는 소프트웨어 태스크 1(170)을 종료할 때 시간측정부(120)로 종료 신호를 전송할 수 있고, 시간측정부(120)는 클럭카운터(110)의 클럭을 이용하여 소프트웨어 태스크 1(170)의 종료 시간을 획득할 수 있다. 이는 프로세서(100)가 소프트웨어 태스크 1(170)과 상이한 소프트웨어 태스크2(180)를 수행할 때도 마찬가지이다. When performing a task through software, the processor 100 according to an embodiment of the present invention may transmit a signal indicating start and end to the time measurement unit 120. For example, the processor 100 may transmit a start signal to the time measurement unit 120 when executing the software task 1 170, and the time measurement unit 120 uses the clock of the clock counter 110 The start time of task 1 170 may be acquired. In addition, the processor 100 may transmit an end signal to the time measurement unit 120 when the software task 1 170 ends, and the time measurement unit 120 uses the clock of the clock counter 110 to transmit the software task 1 It is possible to obtain the end time of (170). This is also the case when the processor 100 performs software task 2 180 different from software task 1 170.

이때, 프로세서(100)는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.In this case, the processor 100 may refer to a data processing device embedded in hardware having a circuit physically structured to perform a function represented by a code or command included in a program. As an example of such a data processing device built into the hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) Circuit) and processing devices such as a Field Programmable Gate Array (FPGA) may be covered, but the scope of the present invention is not limited thereto.

예를 들어, 프로세서(100)는 램(RAM), 롬(ROM), 시스템 버스를 포함할 수 있다. 여기서, 롬은 시스템 부팅을 위한 명령어 세트가 저장되는 구성이고, CPU는 롬에 저장된 명령어에 따라 메모리(미도시)에 저장된 운영체제를 램에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, CPU는 메모리에 저장된 각종 애플리케이션을 램에 복사하고, 실행시켜 각종 동작을 수행할 수 있다. For example, the processor 100 may include RAM, ROM, and a system bus. Here, the ROM is a configuration in which the instruction set for booting the system is stored, and the CPU copies the operating system stored in the memory (not shown) to RAM according to the instruction stored in the ROM, and executes O/S to boot the system. When booting is complete, the CPU can perform various operations by copying various applications stored in the memory to RAM and executing them.

이상에서는 프로세서(100)가 하나의 CPU만을 포함하는 것으로 설명하였지만, 구현 시에는 복수의 CPU(또는 DSP, SoC 등)으로 구현될 수 있다.In the above, it has been described that the processor 100 includes only one CPU, but when implemented, it may be implemented with a plurality of CPUs (or DSP, SoC, etc.).

한편, 도 1에서는 도시하지 않았지만, 본 발명의 인공위성은 메모리 및 통신부를 더 포함할 수 있다. Meanwhile, although not shown in FIG. 1, the satellite of the present invention may further include a memory and a communication unit.

특히, 메모리는 본 발명의 일 실시 예에 따라, 프로세서(100)에 의해 할당된 특정 주소 값에 소프트웨어의 수행이 시작되거나 종료될 때의 시각을 기록하거나, 다른 구성요소에 기록된 시간 정보를 바탕으로 생성한 데이터를 저장할 수 있다. 이때, 생성된 데이터는 시작 또는 종료할 때의 시각을 포함하는 ??레메트리 처리를 위한 데이터일 수 있다. 즉, 메모리는 결과기록부(130)를 포함하고 있을 수 있으나, 이에 한정하지 않고 별도의 구성으로 구현될 수도 있다. In particular, the memory records the time when the execution of software starts or ends in a specific address value allocated by the processor 100, or based on time information recorded in other components, according to an embodiment of the present invention. You can save the created data. In this case, the generated data may be data for ?remetry processing including a time at the time of start or end. That is, the memory may include the result recording unit 130, but is not limited thereto and may be implemented in a separate configuration.

메모리는 프로세서(100)의 처리 또는 제어를 위한 프로그램 등 인공위성의 전반의 동작을 위한 다양한 데이터를 저장할 수 있다. 메모리는 인공위성에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 인공위성의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한, 이러한 응용 프로그램 중 적어도 일부는, 인공위성의 기본적인 기능을 위하여 제작 당시부터 인공위성 상에 존재할 수 있다. 응용 프로그램은, 메모리에 저장되고, 프로세서(100)에 의하여 인공위성의 동작(또는 기능)을 수행하도록 구동될 수 있다. The memory may store various data for overall operation of the satellite, such as a program for processing or controlling the processor 100. The memory may store a plurality of application programs (application programs or applications) driven by the satellite, data for operation of the satellite, and instructions. At least some of these application programs may be downloaded from an external server through wireless communication. In addition, at least some of these application programs may exist on the satellite from the time of manufacture for basic functions of the satellite. The application program may be stored in a memory and driven by the processor 100 to perform an operation (or function) of an artificial satellite.

메모리는 SGM(Semi-Global-Matching), TCM의 형태로 구현될 수 있다. 다만, 이에 한정하지 않으며, 메모리는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리는 프로세서(100)에 의해 액세스 되며, 프로세서(100)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리, 프로세서(100) 내 ROM, RAM 또는 장착 가능한 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. The memory may be implemented in the form of Semi-Global-Matching (SGM) or TCM. However, the present invention is not limited thereto, and the memory may be implemented as a nonvolatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory is accessed by the processor 100, and data read/write/edit/delete/update by the processor 100 may be performed. In the present disclosure, the term memory may include memory, ROM, RAM, or an attachable memory card (not shown) (eg, micro SD card, memory stick) in the processor 100.

한편, 통신부는 지상의 지상국과 신호를 송수신하기 위한 구성이다. 구체적으로 인공위성은 통신부를 통해 인공위성에서 생성한 소프트웨어 수행시간에 대한 정보를 포함하는 텔레메트리 프레임을 지상국으로 송신할 수 있다. On the other hand, the communication unit is a configuration for transmitting and receiving signals with a ground station on the ground. Specifically, the satellite may transmit a telemetry frame including information on the execution time of software generated by the satellite to the ground station through the communication unit.

본 발명에서 지상국(미도시)은 인공위성과 신호를 송수신하고, 인공위성으로부터 수신된 텔레메트리로부터 위성의 상태를 분석하며, 이에 기초하여 인공위성을 제어하는 장치를 의미할 수 있다. 이에 따라 지상국은 신호를 송수신 하기 위한 안테나와, 이러한 안테나의 각도 조절을 위한 안테나 구동부를 포함할 수 있다. 물론 지상국은 전술한 구성 외에도, 프로세서 등을 더 포함할 수 있다.In the present invention, a ground station (not shown) may refer to a device that transmits and receives signals to and from an artificial satellite, analyzes the state of the satellite from telemetry received from the satellite, and controls the satellite based thereon. Accordingly, the ground station may include an antenna for transmitting and receiving signals and an antenna driver for adjusting the angle of the antenna. Of course, the ground station may further include a processor or the like in addition to the above-described configuration.

한편, 본 발명의 일 실시예에 따른 프로세서(100)는 전술한 인공위성 및 지상국과 별도로 구비될 수 있다. 예를 들면, 인공위성은 다른 구성을 전반적으로 제어하는 프로세서(미도시)를 포함하면서도, 소프트웨어의 수행시간을 측정하기 위한 프로세서(100)를 별도의 구성으로 포함할 수 있다.Meanwhile, the processor 100 according to an embodiment of the present invention may be provided separately from the above-described satellite and ground station. For example, the satellite may include a processor (not shown) that controls other components as a whole, and may include a processor 100 for measuring the execution time of software as a separate component.

도 2는 종래의 인공위성 소프트웨어가 카운터를 이용하여 태스크의 수행 시간을 측정하는 것을 설명하기 위한 도면이다. 2 is a diagram for explaining how a conventional satellite software measures a task execution time using a counter.

도 2를 참조하면, 소프트웨어는 클럭카운터를 이용하여 시간 측정을 하고자 하는 태스크(Task)의 시작과 끝부분에서 각각 카운터 값을 획득하고, 이 두 값의 차이를 이용하여 수행시간을 측정할 수 있다. Referring to FIG. 2, the software obtains a counter value at the start and end of a task to measure time using a clock counter, and can measure execution time by using the difference between these two values. .

구체적으로, 인공위성의 소프트웨어는 각 마이너 사이클(minor cycle)마다 태스크를 수행할 수 있다. 즉, 소프트웨어는 제1 소 주기 동안 제1 태스크(210)의 수행 시작 시간(start time)을 기록하고, 수행 종료 시간(end time)을 기록할 수 있다. 소프트웨어는 기록된 시작 시간과 종료 시간을 처리하여 수행 시간(elapsed time)을 계산할 수 있다. 즉, 상술한 방법에 의해 소프트웨어는 제1 minor cycle 동안 제1 태스크가 수행된 수행시간(211)을 측정할 수 있다. 마찬가지로 소프트웨어는 제1 minor cycle 동안 제2 태스크(220)의 수행시간(221)을 측정할 수 있다. Specifically, the satellite's software can perform a task in each minor cycle. That is, the software may record the execution start time of the first task 210 during the first sub-period and record the execution end time. The software can calculate the elapsed time by processing the recorded start and end times. That is, by the above-described method, the software may measure the execution time 211 that the first task was performed during the first minor cycle. Similarly, the software may measure the execution time 221 of the second task 220 during the first minor cycle.

즉, 인공위성의 소프트웨어는 각 마이너 사이클(minor cycle)에서의 각각의 태스크에 대한 수행시간(211, 212, 213, 221, 222, 223)을 측정하고 소 주기 프레임(minor cycle frame)을 생성할 수 있다. That is, the satellite's software can measure the execution time (211, 212, 213, 221, 222, 223) for each task in each minor cycle and generate a minor cycle frame. have.

다만, 상술한 바와 같이 소프트웨어가 각각의 태스크에 대한 수행 시작시간과 종료시간을 기록하고 계산하여 수행시간을 측정하는 경우, 프로세스를 수행하고 단순히 수행 시작 및 종료를 알리는 경우에 비해 상대적으로 복잡하게 구현되어야 한다. However, as described above, when the software records and calculates the execution start time and end time for each task to measure the execution time, it is implemented relatively more complicated than the case of performing the process and simply notifying the execution start and end. Should be.

또한, 기존의 일반적인 텔레메트리 주기 (정지궤도 위성: 10 마이너 사이클 = 1초, 저궤도 위성: 8 마이너 사이클 = 1초)로는 해당 결과를 지상으로 전송하기 어렵다. 이에 따라, 종래에는 도 3과 같이 MCS (Minor Cycle Sampling) 등 별도의 방법을 적용하여 지상으로 전송하였다.In addition, it is difficult to transmit the result to the ground with the conventional telemetry period (geostationary satellite: 10 minor cycles = 1 second, low orbit satellite: 8 minor cycles = 1 second). Accordingly, conventionally, as shown in FIG. 3, a separate method such as Minor Cycle Sampling (MCS) was applied to transmit the data to the ground.

도 3은 종래의 인공위성 소프트웨어의 수행시간 측정결과를 전송하기 위한 MCS(minor cycle sampling) 방법을 도시한 도면이다. 3 is a diagram showing a minor cycle sampling (MCS) method for transmitting a result of measuring an execution time of a conventional satellite software.

도 3을 참조하면, 인공위성의 소프트웨어는 1초 동안 10번의 마이너 사이클(minor cycle)을 포함할 수 있다. 예를 들면, 인공위성 소프트웨어는 N 초에서 N+1초 동안 10 minor cycle 를 포함하고, 이에 따라 D0 내지 D9, 10번의 태스크를 수행할 수 있다. Referring to FIG. 3, the satellite software may include 10 minor cycles for 1 second. For example, the satellite software includes 10 minor cycles for N seconds to N+1 seconds, and accordingly, D0 to D9, 10 tasks can be performed.

종래의 인공위성 소프트웨어는 마이너 사이클(minor cycle) 별 태스크에 대한 측정 결과를 MCS(minor cycle sampling) 데이터프레임에 샘플링하여 각각의 결과를 누락하지 않고 지상(ground)로 전송하였다. Conventional satellite software samples the measurement results for tasks for each minor cycle in a minor cycle sampling (MCS) data frame and transmits the results to the ground without omission.

즉, MCS(minor cycle sampling) 처리하여 지상으로 전송하는 경우, 초기 마이너 사이클(minor cycle)에 따른 결과 값이 삭제되는 것을 방지하기 위해 각각의 minor cycle마다 각각 정해진 저장공간으로 별도로 할당하여야 한다. 즉, 기존의 방법에 의하면, 과도하게 많은 저장공간이 소비될 수 있다는 단점이 있다. In other words, when MCS (minor cycle sampling) is processed and transmitted to the ground, a storage space must be separately allocated for each minor cycle in order to prevent deletion of a result value according to an initial minor cycle. That is, according to the conventional method, there is a disadvantage in that an excessively large amount of storage space may be consumed.

도 4는 본 발명의 일 실시 예에 따른, 인공위성의 소프트웨어 수행 시간을 측정하는 방법을 설명하기 위한 도면이다. 4 is a diagram for describing a method of measuring a software execution time of an artificial satellite according to an embodiment of the present invention.

도 4를 참조하면, 프로세서(100)는 인공위성 소프트웨어에서의 제1 태스크 시작 신호를 하드웨어로 전송하기 위해 시작 명령어(410)를 실행할 수 있다. 이때, 하드웨어는 시간측정부(120)와 같이, 소프트웨어를 구동하기 위한 프로세서(100)와 별도의 구성 요소일 수 있다. 다만, 이에 한정하지 않고, 하드웨어는 프로세서(100)에 포함된 구성 중 소프트웨어를 수행하기 구성을 제외한 구성일 수도 있다. Referring to FIG. 4, the processor 100 may execute a start command 410 to transmit a first task start signal from the satellite software to hardware. In this case, the hardware may be a separate component from the processor 100 for driving software, such as the time measurement unit 120. However, the present invention is not limited thereto, and the hardware may be a component other than a component for executing software among components included in the processor 100.

시작 명령어(410)를 통한 제1 태스크 수행 시작 신호를 수신하면, 하드웨어는 클럭카운터(110)의 카운터 값을 통해 시작 시각을 획득할 수 있다. 이후, 프로세서(100)는 제1 태스크에 대응하는 결과기록부(130)의 특정 주소를 읽거나(read), 쓰는(write) 방법을 통해 액세스할 수 있다. 프로세서(100)는 액세스 시각을 바탕으로 인공위성 소프트웨어가 제1 태스크 수행을 시작한 시각을 프레임에 기록하도록 텔레메트리 생성부(140)를 제어할 수 있다. 이때, 프레임은 인공위성에서 지상으로 전송하기 위한 텔레메트리 처리를 위한 데이터일 수 있으나, 이에 한정하지 않는다. When receiving the first task execution start signal through the start command 410, the hardware may acquire the start time through the counter value of the clock counter 110. Thereafter, the processor 100 may access a specific address of the result recording unit 130 corresponding to the first task through a read or write method. The processor 100 may control the telemetry generation unit 140 to record a time at which the satellite software starts performing the first task in a frame based on the access time. In this case, the frame may be data for telemetry processing for transmission from a satellite to the ground, but is not limited thereto.

달리 말하면, 프로세서(100)는 하드웨어의 특정 주소에 대한 액세스(access) 시각에 대응하는 클럭카운터의 카운터 값을 기록할 수 있다. 여기서 클럭카운터는 시스템 기준 클럭에 따라 1 틱마다 값이 1씩 증가하는 카운터일 수 있다. 즉, 프로세서(100)는 제1 태스크에 대응하는 하드웨어의 특정 주소를 읽거나(read), 쓸(write) 때의 카운터 값을 통해 기록하여 소프트웨어의 수행 시작 시각을 획득할 수 있다. In other words, the processor 100 may record a counter value of a clock counter corresponding to an access time to a specific address of hardware. Here, the clock counter may be a counter whose value increases by 1 every 1 tick according to the system reference clock. That is, the processor 100 may acquire a software execution start time by reading a specific address of the hardware corresponding to the first task or recording it through a counter value at the time of reading or writing.

한편, 프로세서(100)는 인공위성 소프트웨어가 제1 태스크를 수행하기 위한 종료 명령어(411)를 실행할 수 있다. 또한, 인공위성의 소프트웨어가 제1 태스크 수행을 종료할 때, 프로세서(100)는 인공위성 소프트웨어에서의 제1 태스크 종료 신호를 하드웨어로 전송하기 위해 명령어(412)를 실행할 수 있다. 종료 명령어(412)를 통한 제1 태스크 수행 종료 신호를 수신하면, 프로세서(100)는 제1 태스크에 대응하는 결과기록부(130)의 특정 주소를 읽거나(read), 쓸 수(write) 있다. 프로세서(100)는 하드웨어의 특정 주소에 대한 액세스(access) 시각을 획득할 수 있고, 액세스 시각을 통해 인공위성의 소프트웨어가 제1 태스크 수행 종료 시각을 프레임에 기록할 수 있다.Meanwhile, the processor 100 may execute a termination command 411 for the satellite software to perform the first task. In addition, when the satellite software finishes performing the first task, the processor 100 may execute a command 412 to transmit a first task termination signal from the satellite software to hardware. When receiving the end signal for performing the first task through the end command 412, the processor 100 may read or write a specific address of the result recording unit 130 corresponding to the first task. The processor 100 may acquire an access time to a specific address of hardware, and through the access time, the software of the satellite may record the end time of performing the first task in a frame.

이후, 프로세서(100)는 다음 마이너 사이클(minor cycle)이 시작되면, 곧바로 제1 태스크를 수행하기 위한 시작 명령어(410)를 실행할 수 있다(S413). Thereafter, when the next minor cycle starts, the processor 100 may immediately execute a start command 410 for performing the first task (S413).

또한, 프로세서(100)는 제2 태스크에 대하여 동일한 프로세스를 수행할 수 있다. 즉, 프로세서(100)는 제2 태스크의 시작을 알리기 위한 시작 명령어(420), 제2 태스크의 수행을 위한 명령어(421), 제2 태스크의 종료를 알리기 위한 종료 명령어(422)를 실행할 수 있다. 또한, 프로세서(100)는 제2 태스크의 시작 및 종료 신호에 대응하여, 하드웨어의 특정 주소를 액세스함으로써, 제2 태스크 수행 시작 및 종료 시각을 프레임에 기록할 수 있다. 마찬가지로, 프로세서(100)는 다음 마이너 사이클(minor cycle)이 시작되면, 제2 태스크를 수행하기 위한 시작 명령어(420)를 실행할 수 있다(S423). 이때, 프로세서(100)는 제1 태스크와 제2 태스크를 동일한 소 주기에 수행할 수 있고, 동시에 수행할 수도 있다. Also, the processor 100 may perform the same process for the second task. That is, the processor 100 may execute a start command 420 for notifying the start of the second task, a command 421 for executing the second task, and a termination command 422 for notifying the end of the second task. . In addition, the processor 100 may record the start and end times of performing the second task in a frame by accessing a specific address of the hardware in response to the start and end signals of the second task. Similarly, when the next minor cycle starts, the processor 100 may execute a start command 420 for performing the second task (S423). In this case, the processor 100 may perform the first task and the second task in the same sub-period, or may perform simultaneously.

즉, 프로세서(100)는 하나의 마이너 사이클(minor cycle)에서 태스크를 수행할 때, 추가적인 계산 프로세스 소프트웨어의 시작 및 종료에 대한 신호만을 하드웨어(본 실시 예에서는 시간측정부)로 전송할 수 있다. 이에 따라, 본 발명의 인공위성 소프트웨어는 추가적인 연산 부분 없이 효율적으로 태스크를 수행할 수 있다는 효과가 있다. That is, when performing a task in one minor cycle, the processor 100 may transmit only signals for starting and ending additional calculation process software to hardware (a time measuring unit in this embodiment). Accordingly, there is an effect that the satellite software of the present invention can efficiently perform tasks without an additional computational part.

상술한 설명에서는 프로세서(100)가 제1 태스크와 제2 태스크를 수행하는 것만을 설명하였으나, 이는 예시에 불과하며 동일한 마이너 사이클(minor cycle) 동안 2개 이상의 태스크를 동시에 수행할 수 있다. In the above description, only the processor 100 performs the first task and the second task, but this is only an example, and two or more tasks may be simultaneously performed during the same minor cycle.

또한, 이에 한정하지 않으며, 프로세서(100)는 태스크(task)의 종류, 마이너 사이클(minor cycle)의 순서에 따라 기록을 관리할 수 있다. 구체적으로, 프로세서(100)는 상이한 종류의 태스크에 대하여 하드웨어의 상이한 주소에 기록하여 구분하여 관리할 수 있다. 이때 하드웨어는 결과기록부(130)일 수 있으나, 이에 한정하지 않는다. Further, the present invention is not limited thereto, and the processor 100 may manage recording according to the type of task and the order of minor cycles. Specifically, the processor 100 may separate and manage different types of tasks by recording them in different addresses of hardware. In this case, the hardware may be the result recording unit 130, but is not limited thereto.

또한, 프로세서(100)는 상이한 minor cycle에서의 동일한 태스크에 대하여 하드웨어의 동일한 주소에 기록할 수 있다. 즉, 프로세서(100)는 복수의 마이너 사이클(minor cycle)에 대하여도 동일한 태스크인 경우, 동일한 주소에 각각의 마이너 사이클(minor cycle)에서의 결과를 시각 정보를 기록할 수 있다. 이후, 인공위성은 해당 주소 값에 저장된 정보를 바탕으로 생성한 텔레메트리 정보를 지상으로 전송할 수 있다. 이에 따라, 본 발명을 통해, 동일한 텔레메트리 전송 주기 내에서의 복수의 동일한 태스크에 대하여, 수행시간 정보를 상실하지 않으면서도 저장공간을 효율적으로 사용할 수 있다는 효과가 있다. 다만, 이는 일 실시 예에 불과하며, 프로세서(100)는 상이한 태스크에 대하여 하나의 하드웨어 주소에 상이한 값을 read하거나 write함으로써 구분하여 기록할 수도 있다. Further, the processor 100 may write to the same address of hardware for the same task in different minor cycles. That is, when the task is the same for a plurality of minor cycles, the processor 100 may record visual information of the result of each minor cycle in the same address. Thereafter, the satellite may transmit telemetry information generated based on information stored in the corresponding address value to the ground. Accordingly, through the present invention, for a plurality of the same tasks within the same telemetry transmission period, there is an effect that the storage space can be efficiently used without losing execution time information. However, this is only an exemplary embodiment, and the processor 100 may separately record different values by reading or writing different values to one hardware address for different tasks.

본 발명의 일 실시 예에 따르면, 프로세서(100)는 시간 측정 및 기록, 자료 형식 등 처리에 필요한 다양한 기초 데이터를 설정할 수 있다. 기설정된 기초 데이터는 소프트웨어의 태스크 수행함에 있어서 변경될 수 있다. According to an embodiment of the present invention, the processor 100 may set various basic data necessary for processing, such as time measurement and recording, and data format. The preset basic data may be changed when performing a task of software.

본 발명의 또 다른 실시 예에 따르면, 프로세서(100)는 RTC, 1 PPS 등 기준이 되는 하드웨어 시간을 입력으로 하여 태스크 수행 시간 측정을 종료할 수 있다. 또한 프로세서(100)는 기설정된 방법으로 텔레메트리 데이터를 처리할 수 있고, 새로운 태스크 수행 시간 측정을 시작하도록 초기화 할 수 있다.According to another embodiment of the present invention, the processor 100 may terminate the measurement of the task execution time by inputting a hardware time that is a reference such as RTC or 1 PPS as an input. In addition, the processor 100 may process telemetry data in a preset manner and initialize to start measuring a new task execution time.

또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. In addition, various modifications are possible by those of ordinary skill in the art, and these modifications should not be individually understood from the technical spirit or prospect of the present invention.

따라서, 본 발명의 사상은 앞에서 설명된 실시 예들에 국한하여 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위가 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is not limited to the embodiments described above, and not only the claims to be described later, but also all ranges equivalent to or equivalently changed from the scope of the present invention. It will be said to belong to.

100: 프로세서
110: 클럭 카운터
120: 시간측정부
130: 결과기록부
140: 텔레메트리 생성부
150: 텔레메트리 처리부
160: 설정부
100: processor
110: clock counter
120: time measurement unit
130: result record book
140: Telemetry generator
150: telemetry processing unit
160: setting unit

Claims (10)

하드웨어를 이용하여 인공위성에 탑재된 소프트웨어의 수행시간을 측정하기 위한 인공위성에 있어서,
통신부;
적어도 하나의 태스크에 대응하는 하드웨어 주소를 포함하고, 상기 하드웨어 주소에 액세스하는 시간을 기록하는 결과기록부;
소프트웨어를 실행시켜 적어도 하나의 태스크(task)를 시작 또는 종료하고, 상기 적어도 하나의 태스크 중 제1 태스크를 시작 또는 종료하면 상기 제1 태스크에 대응하는 제1 하드웨어 주소에 액세스하고, 상기 적어도 하나의 태스크 중 제2 태스크를 시작 또는 종료하면 제2 태스크에 대응하는 제2 하드웨어 주소에 액세스하고 프로세서;
시스템 기준 클럭에 따라 1틱 씩 증가하는 클럭카운터(clock counter)의 카운터 값을 이용하여 상기 프로세서가 상기 결과기록부에 액세스하는 액세스 시각을 획득하는 시간측정부; 및
상기 액세스 시각이 기록된 프레임을 기초로 상기 적어도 하나의 태스크에 대한 텔레메트리 데이터를 생성하는 텔레메트리 생성부;를 포함하고,
상기 시간측정부는,
상기 프로세서가 상기 제1 태스크를 시작하여 상기 제1 하드웨어 주소에 액세스하는 제1 액세스 시각을 획득하고, 상기 제1 태스크를 종료하여 상기 제1 하드웨어 주소에 액세스하는 제2 액세스 시각을 획득하고, 상기 제2 태스크를 시작하여 상기 제2 하드웨어 주소에 액세스하는 제3 액세스 시각을 획득하고, 상기 제2 태스크를 종료하여 상기 제2 하드웨어 주소에 액세스하는 제4 액세스 시각을 획득하고,
상기 결과기록부는 상기 제1 액세스 시각 내지 제4 액세스 시각을 기록하고,
상기 텔레메트리 생성부는 상기 결과기록부에 기록된 상기 제1 액세스 시각 내지 제4 액세스 시각을 상기 프레임에 기록하여 텔레메트리 데이터를 생성하고,
상기 통신부는 상기 텔레메트리 데이터를 지상으로 전송하는 인공위성.
In an artificial satellite for measuring the execution time of software mounted on the satellite using hardware,
Communication department;
A result recording unit including a hardware address corresponding to at least one task and recording an access time of the hardware address;
When at least one task is started or terminated by executing software, and a first task among the at least one task is started or terminated, a first hardware address corresponding to the first task is accessed, and the at least one task When starting or ending a second task among the tasks, the processor accesses a second hardware address corresponding to the second task;
A time measuring unit for acquiring an access time for the processor to access the result recording unit by using a counter value of a clock counter increasing by one tick according to a system reference clock; And
Including; a telemetry generating unit for generating telemetry data for the at least one task based on the frame in which the access time is recorded, and
The time measurement unit,
The processor starts the first task to obtain a first access time for accessing the first hardware address, and ending the first task to obtain a second access time for accessing the first hardware address, and the Starting a second task to obtain a third access time for accessing the second hardware address, ending the second task to obtain a fourth access time for accessing the second hardware address,
The result recording unit records the first access time to the fourth access time,
The telemetry generation unit generates telemetry data by recording the first access time to the fourth access time recorded in the result recording unit in the frame,
The communication unit is an artificial satellite that transmits the telemetry data to the ground.
삭제delete 삭제delete 제1항에 있어서,
상기 텔레메트리 생성부는 텔레메트리(Telemetry) 생성 규칙에 기초하여, 시작 시간 및 종료 시간을 포함하는 텔레메트리 프레임을 상기 텔레메트리 데이터로 생성하는 인공위성.
The method of claim 1,
The telemetry generating unit generates a telemetry frame including a start time and an end time as the telemetry data based on a telemetry generation rule.
제1항에 있어서,
상기 시간측정부, 상기 결과기록부, 상기 텔레메트리 생성부 및 상기 결과기록부는 상기 프로세서와 상이한 별도의 하드웨어 칩으로 구현되는 인공위성.
The method of claim 1,
The time measurement unit, the result recording unit, the telemetry generation unit, and the result recording unit are implemented as a separate hardware chip different from the processor.
인공위성의 소프트웨어(software) 수행시간 측정 방법에 있어서,
프로세서에 의해, 소프트웨어를 실행시켜 적어도 하나의 태스크(task) 중 제1 태스크를 시작 또는 종료하고, 상기 제1 태스크에 대응하는 결과기록부 상 제1 하드웨어 주소에 액세스하는 단계;
시간측정부에 의해, 상기 제1 태스크를 시작하여 상기 제1 하드웨어 주소에 액세스하는 제1 액세스 시각을 획득하고, 상기 제1 태스크를 종료하여 상기 제1 하드웨어 주소에 액세스하는 제2 액세스 시각을 획득하는 단계;
프로세서에 의해, 소프트웨어를 실행시켜 적어도 하나의 태스크(task) 중 제2 태스크를 시작 또는 종료하고, 상기 제2 태스크에 대응하는 상기 결과기록부 상 제2 하드웨어 주소에 액세스하는 단계;
시간측정부에 의해, 상기 제2 태스크를 시작하여 상기 제2 하드웨어 주소에 액세스하는 제3 액세스 시각을 획득하고, 상기 제1 태스크를 종료하여 상기 제1 하드웨어 주소에 액세스하는 제4 액세스 시각을 획득하는 단계;
상기 제1 액세스 시각 내지 제4 액세스 시각을 프레임에 기록하여 텔레메트리 데이터를 생성하는 단계; 및
상기 텔레메트리 데이터를 지상으로 전송하는 단계; 를 포함하는 수행시간 측정 방법.
In the satellite's software (software) execution time measurement method,
Starting or ending a first task among at least one task by executing software, by a processor, and accessing a first hardware address on a result recording unit corresponding to the first task;
A time measurement unit obtains a first access time for accessing the first hardware address by starting the first task, and obtaining a second access time for accessing the first hardware address by ending the first task Step to do;
Starting or ending a second task among at least one task by executing software, by a processor, and accessing a second hardware address on the result recording unit corresponding to the second task;
A time measurement unit obtains a third access time for accessing the second hardware address by starting the second task, and obtaining a fourth access time for accessing the first hardware address by ending the first task Step to do;
Generating telemetry data by recording the first to fourth access times in a frame; And
Transmitting the telemetry data to the ground; A method of measuring a running time comprising a.
삭제delete 삭제delete 제6항에 있어서,
상기 생성하는 단계는 텔레메트리(Telemetry) 생성 규칙에 기초하여, 시작 시간 및 종료 시간을 포함하는 텔레메트리 프레임을 상기 텔레메트리 데이터로 생성하는 수행시간 측정 방법.
The method of claim 6,
In the generating step, a telemetry frame including a start time and an end time is generated as the telemetry data based on a telemetry generation rule.
컴퓨터를 이용하여 제6항 및 제9항 중 어느 한 항의 방법을 실행하기 위하여 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a recording medium to execute the method of any one of claims 6 and 9 using a computer.
KR1020180169907A 2018-12-26 2018-12-26 Satellite and the method for analyzing its software time KR102154246B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180169907A KR102154246B1 (en) 2018-12-26 2018-12-26 Satellite and the method for analyzing its software time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180169907A KR102154246B1 (en) 2018-12-26 2018-12-26 Satellite and the method for analyzing its software time

Publications (2)

Publication Number Publication Date
KR20200080045A KR20200080045A (en) 2020-07-06
KR102154246B1 true KR102154246B1 (en) 2020-09-21

Family

ID=71571655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180169907A KR102154246B1 (en) 2018-12-26 2018-12-26 Satellite and the method for analyzing its software time

Country Status (1)

Country Link
KR (1) KR102154246B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100738330B1 (en) 2006-09-28 2007-07-12 한국전자통신연구원 System and method of using unified satellite operation data
JP2008310748A (en) * 2007-06-18 2008-12-25 Honda Motor Co Ltd Task execution time recording device, task execution time recording method, and task execution recording program
KR101526468B1 (en) 2013-12-17 2015-06-09 한국항공우주연구원 Verification system and operating method for Satellite Flight Software
KR101651647B1 (en) * 2015-09-09 2016-08-26 한국항공우주연구원 Time synchronization method between satellite and ground equipment, and satellite system thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10034459A1 (en) * 2000-07-15 2002-01-24 Bosch Gmbh Robert Method and device for measuring the runtime of a task in a real-time system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100738330B1 (en) 2006-09-28 2007-07-12 한국전자통신연구원 System and method of using unified satellite operation data
JP2008310748A (en) * 2007-06-18 2008-12-25 Honda Motor Co Ltd Task execution time recording device, task execution time recording method, and task execution recording program
KR101526468B1 (en) 2013-12-17 2015-06-09 한국항공우주연구원 Verification system and operating method for Satellite Flight Software
KR101651647B1 (en) * 2015-09-09 2016-08-26 한국항공우주연구원 Time synchronization method between satellite and ground equipment, and satellite system thereof

Also Published As

Publication number Publication date
KR20200080045A (en) 2020-07-06

Similar Documents

Publication Publication Date Title
US9483189B2 (en) Systems and methods for scheduling write requests for a solid state storage device
US8719559B2 (en) Memory tagging and preservation during a hot upgrade
EP2335145B1 (en) Methods to communicate a timestamp to a storage system
US9164785B2 (en) Predicting performance of a consolidated virtualized computing environment
US5630102A (en) In-circuit-emulation event management system
US7320126B2 (en) Implementation of in system programming to update firmware on memory cards
US7409330B2 (en) Method and system for software debugging using a simulator
WO2017059721A1 (en) Information storage method, device and server
JPH06168084A (en) Apparatus and method for decision of costmetrics
CN112035397B (en) Electronic system including FPGA and method of operating the same
US6983234B1 (en) System and method for validating processor performance and functionality
US9418181B2 (en) Simulated input/output devices
CN109213439B (en) System and method for reducing write latency
US20150278032A1 (en) Providing services on system being recovered
US20130151647A1 (en) Method for rewriting program, reprogram apparatus, and electronic control unit
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
KR102154246B1 (en) Satellite and the method for analyzing its software time
US7739633B2 (en) Verification of highly optimized synchronous pipelines via random simulation driven by critical resource scheduling system and program product
CN111310192B (en) Data processing method, device, storage medium and processor
JP3531225B2 (en) Data processing device
US20210026800A1 (en) Method for Delaying Fundamental Reset in Power Loss Protection (PLP) Enabled Devices
CN109101456B (en) Data interactive communication method and device in simulation SSD and terminal
US10740002B1 (en) System status log
CN106802847B (en) Method and apparatus for emulating a slow storage disk
US10073762B2 (en) Debug device, debug method, and debug program

Legal Events

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