KR102503579B1 - Electronic device for controlling interrupt based on transmission queue and control method thereof - Google Patents

Electronic device for controlling interrupt based on transmission queue and control method thereof Download PDF

Info

Publication number
KR102503579B1
KR102503579B1 KR1020200189606A KR20200189606A KR102503579B1 KR 102503579 B1 KR102503579 B1 KR 102503579B1 KR 1020200189606 A KR1020200189606 A KR 1020200189606A KR 20200189606 A KR20200189606 A KR 20200189606A KR 102503579 B1 KR102503579 B1 KR 102503579B1
Authority
KR
South Korea
Prior art keywords
rate
length
interrupt
input
transmission queue
Prior art date
Application number
KR1020200189606A
Other languages
Korean (ko)
Other versions
KR20220096820A (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 KR1020200189606A priority Critical patent/KR102503579B1/en
Publication of KR20220096820A publication Critical patent/KR20220096820A/en
Application granted granted Critical
Publication of KR102503579B1 publication Critical patent/KR102503579B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Abstract

송신 큐를 바탕으로 인터럽트의 발생 속도를 제어하기 위한 전자 장치 및 전자 장치의 제어 방법이 개시된다. 본 개시에 따른 전자 장치는 외부 장치로부터 입출력 요청을 수신하고, 입출력 요청에 따른 동작이 완료되면 동작의 완료를 나타내는 인터럽트를 발생시키며, 상 입출력 요청에 대한 입출력 응답을 외부 장치로 전송한다. 특히, 전자 장치는 인터럽트의 발생 속도를 제1 속도로 제어하고, 입출력 응답을 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하며, 송신 큐의 길이가 기 설정된 임계 길이를 초과하면 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 변경한다.An electronic device for controlling an interrupt generation rate based on a transmit queue and a control method of the electronic device are disclosed. An electronic device according to the present disclosure receives an input/output request from an external device, generates an interrupt indicating completion of the operation when an operation according to the input/output request is completed, and transmits an input/output response to the input/output request to the external device. In particular, the electronic device controls the generation rate of the interrupt to a first rate, identifies the length of a transmission queue for transmitting an input/output response to an external device, and interrupts an interrupt when the length of the transmission queue exceeds a preset threshold length. Change the generation rate of to a second rate faster than the first rate.

Description

송신 큐에 기초하여 인터럽트를 제어하는 전자 장치 및 이의 제어 방법{ELECTRONIC DEVICE FOR CONTROLLING INTERRUPT BASED ON TRANSMISSION QUEUE AND CONTROL METHOD THEREOF}Electronic device for controlling an interrupt based on a transmission queue and method for controlling the same

본 개시는 전자 장치 및 전자 장치의 제어 방법에 관한 것으로서, 구체적으로는 송신 큐를 바탕으로 인터럽트의 발생 속도를 제어하기 위한 전자 장치 및 전자 장치의 제어 방법에 관한 것이다. The present disclosure relates to an electronic device and a control method of the electronic device, and more specifically, to an electronic device for controlling an interrupt generation rate based on a transmission queue and a control method of the electronic device.

근래에는 입출력 장치(input/output device, I/O device)의 처리 속도가 현저하게 향상됨에 따라 입출력 요청(input/output request, I/O request)에 따라 발생되는 인터럽트(interrupt)의 개수가 크게 증가하고 있다. 그런데, 입출력 장치에 의해 발생되는 인터럽트의 개수가 지나치게 증가하면, 발생되는 인터럽트 자체를 처리하기 위한 리소스의 양이 증가하게 되고, 이에 따라 다른 작업을 처리하기 위한 리소스가 제한되는 문제가 발생될 수 있다. Recently, as the processing speed of input/output devices (I/O devices) has improved remarkably, the number of interrupts generated according to input/output requests (I/O requests) has greatly increased. are doing However, if the number of interrupts generated by the input/output device increases excessively, the amount of resources for processing the generated interrupts itself increases, and accordingly, a problem in that resources for processing other tasks is limited may occur. .

상술한 문제를 해결하기 위한 종래 기술로서, CPU와 NIC 사이의 통신에 있어서 네트워크 패킷 및 바이트 수의 합계에 따라 인터럽트의 발생 속도를 제어하는 기술이 존재하지만, 이에 따르면, 인터럽트의 발생 속도가 지나치게 지연됨에 따라 I/O 응답의 전송이 지연될 수 있다. As a prior art for solving the above-described problem, there is a technology for controlling the generation speed of interrupts according to the sum of network packets and bytes in communication between a CPU and a NIC, but according to this, the generation speed of interrupts is excessively delayed. Depending on this, the transmission of I/O response may be delayed.

또 다른 종래 기술로서, 호스트와 저장 장치 사이의 통신에 있어서 호스트의 CPU 부하 및 지연된 입출력의 개수에 따라 인터럽트의 발생 속도를 제어하는 기술이 존재하지만, 이에 따르면 이미 지연된 입출력의 개수에 따라 인터럽트의 발생 속도를 제어하기 때문에 입출력 응답의 전송 지연에 대한 근본적인 해결책이 되기는 어렵다는 한계가 있다. As another prior art, in the communication between the host and the storage device, there is a technology for controlling the rate of occurrence of interrupts according to the CPU load of the host and the number of delayed I/Os, but according to this technology, interrupts are generated according to the number of already delayed I/Os. Because it controls the speed, there is a limitation that it is difficult to be a fundamental solution to the transmission delay of the input/output response.

본 개시는 상술한 바와 같은 종래 기술의 문제점을 극복하기 위한 것으로서, 본 개시의 목적은 송신 큐를 바탕으로 인터럽트의 발생 속도를 제어함으로써, 인터럽트 처리에 따른 오버헤드의 발생을 최소화하면서도 입출력 응답의 지연을 방지할 수 있는 전자 장치 및 전자 장치의 제어 방법을 제공함에 있다.The present disclosure is to overcome the problems of the prior art as described above, and an object of the present disclosure is to control the generation rate of interrupts based on a transmit queue, thereby minimizing the occurrence of overhead due to interrupt processing and delaying input/output responses. It is to provide an electronic device and a control method of the electronic device capable of preventing the

상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 통신부, 복수의 모듈에 관련된 데이터를 저장하는 메모리 및 상기 통신부를 통해 외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면, 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하도록 상기 통신부를 제어하는 프로세서를 포함하고, 상기 프로세서는 상기 인터럽트의 발생 속도를 제1 속도로 제어하고, 상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하며, 상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경한다. According to one embodiment of the present disclosure for achieving the above object, an electronic device receives an input/output request from an external device through a communication unit, a memory for storing data related to a plurality of modules, and the communication unit, and the input/output request and a processor for controlling the communication unit to generate an interrupt indicating completion of the operation and to transmit an input/output response to the input/output request to the external device when the operation according to the above is completed, wherein the processor controls the speed at which the interrupt is generated. is controlled at a first rate, and a length of a transmission queue for transmitting the input/output response to the external device is identified. When the length of the transmission queue exceeds a predetermined threshold length, the interrupt generation rate is set. The second speed is changed to a faster speed than the first speed.

여기서, 상기 프로세서는 상기 송신 큐의 길이가 기 설정된 임계 길이 미만이면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 유지할 수 있다. Here, the processor may maintain the generation rate of the interrupt at the first rate when the length of the transmission queue is less than a preset threshold length.

한편, 상기 프로세서는 상기 송신 큐의 길이가 상기 임계 길이를 초과하면, 기 설정된 제어 구간 동안 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하고, 상기 제어 구간이 경과되면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 변경할 수 있다. Meanwhile, when the length of the transmission queue exceeds the threshold length, the processor changes the generation rate of the interrupt to the second rate during a preset control period, and when the control period elapses, the generation rate of the interrupt is reduced. It can be changed to the first speed.

여기서, 상기 제어 구간의 길이는 상기 송신 큐의 길이와 상기 임계 길이 사이의 차이를 바탕으로 결정될 수 있다. Here, the length of the control interval may be determined based on a difference between the length of the transmission queue and the threshold length.

여기서, 상기 제어 구간의 길이는 상기 송신 큐의 길이와 상기 임계 길이 사이의 차이에 비례하도록 결정될 수 있다. Here, the length of the control interval may be determined to be proportional to the difference between the length of the transmission queue and the threshold length.

한편, 상기 제1 속도는 상기 입출력 요청에 따른 동작을 수행하기 위한 어플리케이션에 대응되는 지연 시간(latency)을 바탕으로 결정될 수 있다. Meanwhile, the first speed may be determined based on a latency corresponding to an application for performing an operation according to the input/output request.

한편, 상기 임계 길이는 제1 임계 길이 및 상기 제1 임계 길이보다 긴 제2 임계 길이를 포함하고, 상기 프로세서는 상기 송신 큐의 길이가 상기 제1 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하고, 상기 송신 큐의 길이가 상기 제2 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제2 속도보다 빠른 제3 속도로 변경할 수 있다. Meanwhile, the threshold length includes a first threshold length and a second threshold length longer than the first threshold length, and when the length of the transmit queue exceeds the first threshold length, the processor determines the generation speed of the interrupt. When the rate is changed to the second rate and the length of the transmission queue exceeds the second threshold length, the generation rate of the interrupt may be changed to a third rate faster than the second rate.

한편, 상기 프로세서는 복수의 코어(core)를 포함하고, 상기 복수의 코어 별로 상기 인터럽트의 발생 속도를 제어할 수 있다. Meanwhile, the processor may include a plurality of cores, and control the generation rate of the interrupt for each of the plurality of cores.

상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하는 전자 장치의 제어 방법에 있어서, 상기 인터럽트의 발생 속도를 제1 속도로 제어하는 단계, 상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하는 단계 및 상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경하는 단계를 포함한다.According to an embodiment of the present disclosure for achieving the above object, an input/output request is received from an external device, and when an operation according to the input/output request is completed, an interrupt indicating completion of the operation is generated, and the input/output request is received. A control method of an electronic device that transmits an input/output response to an external device to an external device, the step of controlling the generation rate of the interrupt to a first rate, a transmission queue for transmitting the input/output response to the external device identifying a length and, if the length of the transmission queue exceeds a predetermined threshold length, changing the generation rate of the interrupt to a second rate faster than the first rate.

한편, 상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 상기 전자 장치는 외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하고, 상기 전자 장치의 제어 방법은 상기 인터럽트의 발생 속도를 제1 속도로 제어하는 단계, 상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하는 단계 및 상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경하는 단계, 를 포함한다.Meanwhile, according to an embodiment of the present disclosure for achieving the above object, in a non-transitory computer-readable recording medium including a program for executing a control method of an electronic device, the electronic device inputs/outputs from an external device. Receives a request, generates an interrupt indicating completion of the operation when the operation according to the input/output request is completed, transmits an input/output response to the input/output request to the external device, and controls the electronic device of the interrupt. Controlling the generation rate to a first rate, identifying the length of a transmission queue for transmitting the input/output response to the external device, and when the length of the transmission queue exceeds a preset threshold length, the interrupt and changing the generation rate of to a second rate faster than the first rate.

도 1은 본 개시의 일 실시 예에 따른 전자 장치 및 외부 장치에 대해 간략하게 설명하기 위한 개념도,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도,
도 3은 본 개시의 다른 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도,
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략하게 나타내는 블록도, 그리고,
도 5는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세하게 나타내는 블록도이다.
1 is a conceptual diagram for briefly explaining an electronic device and an external device according to an embodiment of the present disclosure;
2 is a flowchart illustrating a control method of an electronic device according to an embodiment of the present disclosure;
3 is a flowchart illustrating a control method of an electronic device according to another embodiment of the present disclosure;
4 is a block diagram briefly showing the configuration of an electronic device according to an embodiment of the present disclosure, and
5 is a block diagram showing the configuration of an electronic device according to an embodiment of the present disclosure in detail.

본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Since the present embodiments can apply various transformations and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to the specific embodiments, and should be understood to include various modifications, equivalents, and/or alternatives of the embodiments of the present disclosure. In connection with the description of the drawings, like reference numerals may be used for like elements.

본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. In describing the present disclosure, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present disclosure, a detailed description thereof will be omitted.

덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.In addition, the following embodiments may be modified in many different forms, and the scope of the technical idea of the present disclosure is not limited to the following embodiments. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the spirit of the disclosure to those skilled in the art.

본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.Terms used in this disclosure are only used to describe specific embodiments, and are not intended to limit the scope of rights. Singular expressions include plural expressions unless the context clearly dictates otherwise.

본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. In the present disclosure, expressions such as “has,” “can have,” “includes,” or “can include” indicate the presence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.

본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this disclosure, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, Or (3) may refer to all cases including at least one A and at least one B.

본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as "first," "second," "first," or "second," used in the present disclosure may modify various elements regardless of order and/or importance, and may refer to one element as It is used only to distinguish it from other components and does not limit the corresponding components.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is "(operatively or communicatively) coupled with/to" another component (e.g., a second component); When referred to as "connected to", it should be understood that the certain component may be directly connected to the other component or connected through another component (eg, a third component).

반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.On the other hand, when an element (eg, a first element) is referred to as being “directly connected” or “directly connected” to another element (eg, a second element), the element and the above It may be understood that other components (eg, a third component) do not exist between the other components.

본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. The expression “configured to (or configured to)” as used in this disclosure means, depending on the situation, for example, “suitable for,” “having the capacity to.” ," "designed to," "adapted to," "made to," or "capable of." The term "configured (or set) to" may not necessarily mean only "specifically designed to" hardware.

대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some contexts, the phrase "device configured to" may mean that the device is "capable of" in conjunction with other devices or components. For example, the phrase "a processor configured (or configured) to perform A, B, and C" may include a dedicated processor (eg, embedded processor) to perform the operation, or by executing one or more software programs stored in a memory device. , may mean a general-purpose processor (eg, CPU or application processor) capable of performing corresponding operations.

실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented with hardware or software, or a combination of hardware and software. In addition, a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented by at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.

한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. Meanwhile, various elements and areas in the drawings are schematically drawn. Therefore, the technical spirit of the present invention is not limited by the relative size or spacing drawn in the accompanying drawings.

이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, an embodiment according to the present disclosure will be described in detail so that those skilled in the art can easily implement it.

도 1은 본 개시의 일 실시 예에 따른 전자 장치 및 외부 장치에 대해 간략하게 설명하기 위한 개념도이다.1 is a conceptual diagram briefly describing an electronic device and an external device according to an embodiment of the present disclosure.

도 1에 도시된 바와 같이, 본 개시에 따른 전자 장치(100)는 외부 장치(200)로부터 입출력 요청(input/output request, I/O request)를 수신할 수 있다. 그리고, 전자 장치(100)는 입출력 요청에 대응되는 입출력 응답(I/O response)을 외부 장치(200)로 전송할 수 있다. 본 개시에 따른 전자 장치(100)는 '서버' 또는 'I/O 장치' 등과 같은 용어로 지칭될 수 있으며, 외부 장치(200)는 '클라이언트 단말' 등과 같은 용어로 지칭될 수 있다. As shown in FIG. 1 , the electronic device 100 according to the present disclosure may receive an input/output request (I/O request) from the external device 200 . In addition, the electronic device 100 may transmit an I/O response corresponding to the input/output request to the external device 200 . The electronic device 100 according to the present disclosure may be referred to as a 'server' or 'I/O device', and the external device 200 may be referred to as a 'client terminal'.

한편, 외부 장치(200)로부터 입출력 요청이 수신되면, 전자 장치(100)는 입출력 요청이 수신되었음을 나타내는 인터럽트(interrupt)를 발생시킴으로써, 어플리케이션이 입출력 요청에 따른 동작을 수행하도록 할 수 있다. 또한, 입출력 응답에 따른 동작이 완료되면, 전자 장치(100)는 입출력 응답에 따른 동작이 완료되었음을 나타내는 인터럽트를 발생시킴으로써, 입출력 응답에 대응되는 데이터 패킷들을 위한 송신 큐(transmission queue)를 비울 수 있다. Meanwhile, when an input/output request is received from the external device 200, the electronic device 100 generates an interrupt indicating that the input/output request has been received, so that the application can perform an operation according to the input/output request. In addition, when the operation according to the input/output response is completed, the electronic device 100 generates an interrupt indicating that the operation according to the input/output response is completed, thereby emptying a transmission queue for data packets corresponding to the input/output response. .

그런데, 인터럽트가 지나치게 빠르게 발생되면, 인터럽트를 처리하기 위한 리소스가 과도하게 증가하고 이에 따라 다른 작업을 처리하기 위한 리소스가 제한되는 문제가 발생할 수 있다. 반대로 인터럽트가 지나치게 느리게 발생되면, 송신 큐의 채워진 상태가 지속되어 새로운 데이터 패킷을 전송할 수 없게 되는 입출력 응답의 지연 문제가 발생할 수 있다. 따라서, 인터럽트 처리에 따른 오버헤드의 발생을 줄이면서도 입출력 응답의 지연을 방지할 수 있도록 인터럽트의 발생 속도를 제어할 필요가 있다. However, if an interrupt is generated too quickly, a problem may occur in which resources for processing the interrupt are excessively increased and resources for processing other tasks are limited accordingly. Conversely, if the interrupt occurs too slowly, a delayed problem of input/output response may occur in which a transmission queue remains filled and new data packets cannot be transmitted. Therefore, it is necessary to control the generation speed of interrupts to prevent delay in input/output response while reducing the occurrence of overhead due to interrupt processing.

이하에서는 도 2 내지 도 5를 참조하여, 인터럽트의 발생 속도를 효과적으로 제어함으로써 상술한 바와 같은 문제점을 해결하기 위한 본 개시의 다양한 실시 예에 대해 설명한다. 이하에서 특별히 명시하지 않는 한 '인터럽트'라는 용어는 입출력 요청에 따른 동작이 완료되었음을 나타내는 인터럽트를 지칭하기 위한 용어로 사용된다. Hereinafter, with reference to FIGS. 2 to 5 , various embodiments of the present disclosure for solving the above problems by effectively controlling an interrupt generation rate will be described. In the following, unless otherwise specified, the term 'interrupt' is used to refer to an interrupt indicating that an operation according to an input/output request has been completed.

도 2는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다.2 is a flowchart illustrating a control method of an electronic device according to an embodiment of the present disclosure.

도 2에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도로 제어할 수 있다(S210). 여기서, '제1 속도'라는 용어는 본 개시에 따라 설정되는 초기 인터럽트 발생 속도를 지칭하기 위한 용어로 사용된다. 구체적으로, 제1 속도는 입출력 요청에 따른 동작을 수행하기 위한 어플리케이션에 대응되는 지연 시간(latency)을 바탕으로 결정될 수 있다. 한편, 제1 속도는 사용자 또는 개발자의 설정에 따라 결정될 수도 있다. 예를 들어, 제1 속도는 초당 1000개의 인터럽트를 발생시키는 속도일 수 있다. 제1 속도는 전술한 바와 같은 인터럽트 처리에 따른 오버헤드의 발생을 줄일 수 있는 범위 내에서 결정되는 것이 바람직할 수 있다. 한편, '인터럽트의 발생 속도'라는 용어는 '인터럽트의 생성 속도' 또는 '인터럽트의 발생 주기' 등과 같은 용어로 대체될 수 있다. As shown in FIG. 2 , the electronic device 100 according to an embodiment of the present disclosure may control an interrupt generating rate to a first rate (S210). Here, the term 'first rate' is used as a term for referring to an initial interrupt generation rate set according to the present disclosure. Specifically, the first speed may be determined based on a latency corresponding to an application for performing an operation according to an input/output request. Meanwhile, the first speed may be determined according to a user's or developer's setting. For example, the first rate may be a rate that generates 1000 interrupts per second. The first speed may be preferably determined within a range capable of reducing the occurrence of overhead due to interrupt processing as described above. Meanwhile, the term 'interrupt generation rate' may be replaced with terms such as 'interrupt generation rate' or 'interrupt generation period'.

전자 장치(100)는 입출력 요청에 대한 입출력 응답을 외부 장치(200)로 전송하기 위한 송신 큐의 길이를 식별할 수 있다(S220). 여기서, '송신 큐'란 입출력 요청에 대한 응답에 대응되는 패킷들을 스택(stack) 형식으로 채워 두기 위한 소프트웨어 구조체를 말한다. 그리고, '송신 큐의 길이'는 송신 큐에 채워진 패킷들의 양(바이트 수)에 대응될 수 있다. 한편, 기 설정된 시간이 되거나 기 설정된 양의 패킷들이 송신 큐에 채워지면, 송신 큐에 채워진 패킷들이 외부 장치(200)로 전송될 수 있다. 또한, 입출력 응답에 따른 동작이 완료되었음을 나타내는 인터럽트가 발생되면, 송신 큐가 비워지고 그에 따라 새로운 데이터 패킷이 송신 큐에 채워질 수 있게 된다. The electronic device 100 may identify the length of the transmission queue for transmitting the input/output response to the input/output request to the external device 200 (S220). Here, the 'transmission queue' refers to a software structure for filling packets corresponding to responses to input/output requests in a stack format. Also, the 'length of the transmission queue' may correspond to the amount (number of bytes) of packets filled in the transmission queue. Meanwhile, when a preset time arrives or a preset amount of packets fill the transmission queue, the packets filled in the transmission queue may be transmitted to the external device 200 . In addition, when an interrupt indicating that an operation according to an input/output response is completed is generated, the transmission queue is emptied and a new data packet can be filled in the transmission queue accordingly.

구체적으로, 전자 장치(100)는 제1 속도로 인터럽트가 발생되는 동안 송신 큐의 길이를 실시간으로 모니터링할 수 있다. 송신 큐의 길이를 모니터링하는 주기는 사용자 또는 개발자의 설정에 의해 달라질 수 있으며, 특히 송신 큐의 길이를 모니터링하는 것 자체에 따른 리소스의 증가가 전체 시스템의 부하를 초래하지 않는 범위 내에서 결정되는 것이 바람직할 수 있다. Specifically, the electronic device 100 may monitor the length of the transmission queue in real time while an interrupt is generated at the first rate. The period of monitoring the length of the transmission queue may vary depending on the setting of the user or the developer. In particular, it is important to determine the length of the transmission queue within a range in which the increase in resources due to itself does not cause a load on the entire system. may be desirable.

송신 큐의 길이가 기 설정된 임계 길이를 초과하지 않으면(S230-N) 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도로 유지하되, 상술한 바와 같이 실시 간으로 송신 큐의 길이를 지속적으로 모니터링할 수 있다. 다시 말해, 송신 큐의 공간이 부족한 상태가 아닌 것으로 식별되면, 전자 장치(100)는 기존의 인터럽트 발생 속도를 유지함으로써 인터럽트 처리에 따른 오버헤드의 발생을 지속적으로 방지할 수 있다. 송신 큐의 길이와의 비교 대상이 되는 '임계 길이'는 사용자 또는 개발자의 설정에 따라 변경될 수 있다.If the length of the transmission queue does not exceed the predetermined threshold length (S230-N), the electronic device 100 maintains the interrupt generating rate at the first rate, but continuously adjusts the length of the transmission queue in real time as described above. can be monitored. In other words, if it is identified that the space of the transmission queue is not insufficient, the electronic device 100 can continuously prevent the occurrence of overhead due to interrupt processing by maintaining the existing interrupt generation speed. The 'critical length' to be compared with the length of the transmission queue can be changed according to the setting of the user or developer.

반면, 송신 큐의 길이가 기 설정된 임계 길이를 초과하면(S230-Y), 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 변경할 수 있다(S240). 여기서, '제2 속도'란 본 개시에 따라 변경된 인터럽트의 발생 속도를 전술한 바와 같은 제1 속도와 구별하여 특정하기 위한 용어로 사용된다. 제2 속도 또한 제1 속도와 마찬가지로 사용자 또는 개발자의 설정에 따라 상이하게 결정될 수 있으며, 예를 들어, 제2 속도는 초당 3000개의 인터럽트를 발생시키는 속도일 수 있다. 제2 속도는 인터럽트가 지나치게 느리게 발생되는 경우 입출력 응답의 전송이 지연되는 문제를 해결하면서도, 인터럽트 처리에 따른 오버헤드가 지나치게 증가하지 않는 범위 내에서 결정되는 것이 바람직할 수 있다. On the other hand, if the length of the transmit queue exceeds the predetermined threshold length (S230-Y), the electronic device 100 may change the interrupt generating rate to a second rate faster than the first rate (S240). Here, the 'second speed' is used as a term for specifying the generation speed of the interrupt changed according to the present disclosure by distinguishing it from the first speed as described above. Like the first speed, the second speed may also be differently determined according to settings of a user or developer. For example, the second speed may be a speed that generates 3000 interrupts per second. The second speed may be determined within a range in which overhead due to interrupt processing does not excessively increase while resolving a problem in which transmission of an input/output response is delayed when an interrupt occurs too slowly.

한편, 이상에서는 송신 큐의 길이와의 비교 대상이 되는 임계 길이가 하나로 특정되는 경우를 전제로 설명하였으나, 본 개시가 이에 국한되는 것은 아니다. 즉, 본 개시에 따른 임계 길이는 복수의 임계 길이를 포함할 수 있으며, 전자 장치(100)는 복수의 임계 길이에 따라 구분되는 복수의 제어 구간 별로 상이한 속도로 인터럽트가 발생되도록 제어할 수도 있다. 예를 들어, 인터럽트가 제1 속도로 발생되는 동안 송신 큐의 길이가 제1 임계 길이를 초과하면, 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 제어할 수 있으며, 인터럽트가 제2 속도로 발생되는 동안 송신 큐의 길이가 제1 임계 길이보다 긴 제2 임계 길이를 초과하면, 전자 장치(100)는 인터럽트의 발생 속도를 제2 속도보다 빠른 제3 속도로 제어할 수 있다. Meanwhile, the above has been described on the premise that the threshold length to be compared with the length of the transmission queue is specified as one, but the present disclosure is not limited thereto. That is, the threshold length according to the present disclosure may include a plurality of threshold lengths, and the electronic device 100 may control interrupts to be generated at different rates for each of a plurality of control intervals classified according to the plurality of threshold lengths. For example, if the length of the transmit queue exceeds the first threshold length while the interrupt is generated at the first rate, the electronic device 100 may control the generation rate of the interrupt to a second rate faster than the first rate. , If the length of the transmit queue exceeds the second threshold length longer than the first threshold length while the interrupt is generated at the second rate, the electronic device 100 controls the interrupt generation rate to a third rate faster than the second rate. can do.

한편, 이상에서는 상술한 바와 같은 제어 방법을 수행하기 위한 전자 장치(100)의 프로세서의 코어(core)가 하나인 경우를 전제로 설명하였으나, 본 개시에 따른 전자 장치(100)의 프로세서는 복수의 코어를 포함할 수도 있다. 그리고, 프로세서가 복수의 코어를 포함하는 경우에는 복수의 코어 별로 본 개시에 따른 인터럽트의 발생 속도의 제어 방법이 각각 적용될 수도 있다.Meanwhile, the above has been described on the premise that the processor of the electronic device 100 for performing the above-described control method has one core, but the processor of the electronic device 100 according to the present disclosure has a plurality of cores. It may contain a core. Also, when the processor includes a plurality of cores, the method for controlling the generation speed of interrupts according to the present disclosure may be applied to each of the plurality of cores.

도 2를 참조하여 상술한 바와 같은 실시 예에 따르면, 초기 인터럽트의 발생 속도를 낮게 설정함으로써 인터럽트 처리에 따른 오버헤드의 발생을 줄임과 동시에, 실시간으로 송신 큐의 길이를 모니터링한 결과에 따라 인터럽트의 발생 속도를 증가시킴으로써 입출력 응답의 지연을 방지할 수 있게 된다. According to the embodiment as described above with reference to FIG. 2, by setting the initial interrupt generation speed low, the occurrence of overhead according to interrupt processing is reduced, and at the same time, the interrupt is generated according to the result of monitoring the length of the transmission queue in real time. By increasing the generation speed, it is possible to prevent a delay in the input/output response.

도 3은 본 개시의 다른 실시 예에 따른 전자 장치의 제어 방법을 나타내는 흐름도이다.3 is a flowchart illustrating a control method of an electronic device according to another embodiment of the present disclosure.

도 2에 대한 설명에서는 송신 큐의 길이를 모니터링한 결과에 따라 인터럽트의 발생 속도를 증가시키는 방법 자체에 대해서만 설명하였으나, 본 개시의 다른 실시 예에 따르면, 소정의 구간 동안에만 인터럽트의 발생 속도를 증가시키고, 그 구간이 경과된 후에는 다시 인터럽트의 발생 속도를 감소시킬 수도 있다. 이하에서는 도 3을 참조하여 본 개시의 다른 실시 예에 대해 상술한다.In the description of FIG. 2, only the method itself for increasing the generation rate of the interrupt according to the result of monitoring the length of the transmission queue has been described, but according to another embodiment of the present disclosure, the generation rate of the interrupt is increased only during a predetermined period. and, after that period has elapsed, the interrupt generation speed may be reduced again. Hereinafter, another embodiment of the present disclosure will be described in detail with reference to FIG. 3 .

도 3를 참조하면, 전술한 바와 같이, 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도로 제어할 수 있으며(S310), 입출력 요청에 대한 응답을 외부 장치(200)로 전송하기 위한 송신 큐의 길이를 식별할 수 있다(S320). 그리고, 송신 큐의 길이가 기 설정된 임계 길이 미만이면(S330-N), 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도로 유지하고, 실시 간으로 송신 큐의 길이를 모니터링할 수 있다. 이상의 단계에 대해서는 도 2에 대한 설명에서 상술하였으므로, 동일한 내용에 대한 중복 설명은 생략한다. Referring to FIG. 3 , as described above, the electronic device 100 may control the interrupt generation rate to the first rate (S310), and transmits a response to the input/output request to the external device 200. The length of the queue can be identified (S320). And, if the length of the transmission queue is less than the predetermined threshold length (S330-N), the electronic device 100 may maintain the interrupt generating rate at the first rate and monitor the transmission queue length in real time. Since the above steps have been described in detail in the description of FIG. 2 , redundant description of the same contents will be omitted.

한편, 송신 큐의 길이가 임계 길이를 초과하면(S330-Y), 전자 장치(100)는 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 제어 구간의 길이를 결정할 수 있다(S340). 여기서, '제어 구간'이란 인터럽트의 발생 속도를 제2 속도로 유지하는 구간을 말한다. 제어 구간의 길이가 결정되면, 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 변경할 수 있다(S350). 그리고, 인터럽트의 발생 속도는 제어 구간이 경과하기 전까지 제2 속도로 유지될 수 있다(S360-N). Meanwhile, when the length of the transmission queue exceeds the threshold length (S330-Y), the electronic device 100 may determine the length of the control interval based on the difference between the length of the transmission queue and the threshold length (S340). Here, the 'control period' refers to a period in which the generation speed of the interrupt is maintained at the second speed. When the length of the control period is determined, the electronic device 100 may change the interrupt generating rate to a second rate faster than the first rate (S350). And, the generation rate of the interrupt may be maintained at the second rate until the control period elapses (S360-N).

한편, 제어 구간의 길이가 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 결정된다는 것은, 송신 큐의 길이가 기 설정된 임계 길이를 초과하는 정도가 클수록 제어 구간이 더 길게 결정될 수 있다는 것을 의미한다. 다시 말해, 송신 큐가 많이 채워진 경우일 수록 입출력 응답의 전송을 더 지연시킬 수 있기 때문에, 전자 장치(100)는 입출력 응답의 지연을 해소하기 위해 인터럽터의 발생 속도를 높이기 위한 제어 구간의 길이를 더 길게 설정할 수 있다. 특히, 제어 구간의 길이는 송신 큐의 길이와 임계 길이 사이의 차이에 비례하도록 결정될 수 있다. Meanwhile, the fact that the length of the control interval is determined based on the difference between the length of the transmission queue and the threshold length means that the longer the control interval can be determined as the length of the transmission queue exceeds the preset threshold length. . In other words, since the transmission of the input/output response can be further delayed when the transmission queue is more filled, the electronic device 100 increases the length of the control period for increasing the generation speed of the interrupter in order to solve the delay in the input/output response. Can be set long. In particular, the length of the control interval may be determined to be proportional to the difference between the length of the transmission queue and the threshold length.

제어 구간이 경과되면(S360-Y), 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도로 제어할 수 있다. 다시 말해, 인터럽터의 발생 속도를 높이는 구간이 경과되면, 전자 장치(100)는 인터럽터의 발생 속도를 다시 감소시킴으로써, 과도한 시간 동안 인터럽트의 발생 속도를 증가시키는 경우에 발생될 수 있는 오버헤드를 방지할 수 있다.When the control period elapses (S360-Y), the electronic device 100 may control the generation speed of the interrupt to the first speed. In other words, when the period of increasing the interrupter generation rate elapses, the electronic device 100 reduces the interrupter generation rate again to prevent overhead that may occur when the interrupt generation rate is increased for an excessive amount of time. can

한편, 이상에서는 제어 구간이 하나의 구간으로 특정되는 경우를 전제로 설명하였으나, 본 개시에 따른 제어 구간은 복수의 제어 구간을 포함할 수 있으며, 복수의 제어 구간 별로 상이한 인터럽트의 발생 속도가 적용될 수도 있다. 예를 들어, 송신 큐의 길이가 임계 길이를 초과하면, 전자 장치(100)는 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 제1 제어 구간 및 제2 제어 구간의 길이를 결정할 수 있다. 예를 들어, 제1 제어 구간의 길이는 3초이고, 제2 제어 구간의 길이는 1초일 수 있다. 제1 제어 구간 및 제2 제어 구간의 길이가 결정되면, 전자 장치(100)는 제1 제어 구간 동안 인터럽트의 발생 속도를 제2 속도보다 빠른 제3 속도로 변경하고, 제2 제어 구간 동안 인터럽트의 발생 속도를 제1 속도보다 빠르고 제3 속도보다는 느린 제2 속도로 변경할 수 있다. Meanwhile, the above has been described on the premise that the control period is specified as one period, but the control period according to the present disclosure may include a plurality of control periods, and different interrupt generation rates may be applied for each of the plurality of control periods. there is. For example, if the length of the transmission queue exceeds the threshold length, the electronic device 100 may determine the lengths of the first control period and the second control period based on the difference between the length of the transmission queue and the threshold length. For example, the length of the first control period may be 3 seconds, and the length of the second control period may be 1 second. When the lengths of the first control period and the second control period are determined, the electronic device 100 changes the generation rate of the interrupt during the first control period to a third rate faster than the second rate, and the interrupt rate during the second control period The generation rate may be changed to a second rate that is faster than the first rate and slower than the third rate.

도 3을 참조하여 상술한 바와 같은 실시 예에 따르면, 전자 장치(100)는 송신 큐의 길이를 모니터링한 결과에 따라 인터럽트의 발생 속도를 증가시킴으로써 입출력 응답의 지연을 방지함과 동시에, 소정의 시간이 경과된 후에는 다시 인터럽터의 발생 속도를 다시 감소시킴으로써 인터럽트 처리에 따른 오버헤드의 발생을 최소화할 수 있게 된다. According to the embodiment described above with reference to FIG. 3 , the electronic device 100 increases the interrupt generating rate according to the result of monitoring the length of the transmission queue, thereby preventing delay in the input/output response, and at the same time, for a predetermined period of time. After this elapses, the generation speed of the interrupter is reduced again, thereby minimizing the occurrence of overhead due to interrupt processing.

도 4는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 간략하게 나타내는 블록도, 그리고, 도 5는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세하게 나타내는 블록도이다.4 is a block diagram briefly illustrating a configuration of an electronic device according to an embodiment of the present disclosure, and FIG. 5 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure in detail.

도 4에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함한다. 또한, 도 5에 도시된 바와 같이, 본 개시의 일 실시 예에 따른 전자 장치(100)는 입출력 요청 처리 모듈(131), 송신 큐 모니터링 모듈(132) 및 인터럽트 발생 제어 모듈(133)과 같은 복수의 모듈을 포함할 수 있다. 그러나, 도 4 및 도 5에 도시된 바와 같은 구성들은 예시적인 것에 불과할 뿐이며, 본 개시를 실시함에 있어 도 4 및 도 5에 도시된 바와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음은 물론이다.As shown in FIG. 4 , the electronic device 100 according to an embodiment of the present disclosure includes a communication unit 110 , a memory 120 and a processor 130 . In addition, as shown in FIG. 5 , the electronic device 100 according to an embodiment of the present disclosure includes a plurality of devices such as an input/output request processing module 131, a transmission queue monitoring module 132, and an interrupt generating control module 133. of modules may be included. However, the configurations shown in FIGS. 4 and 5 are merely exemplary, and new configurations may be added or some configurations may be omitted in addition to the configurations shown in FIGS. 4 and 5 in practicing the present disclosure. Of course there is.

통신부(110)는 회로를 포함하며, 외부 장치(200)와의 통신을 수행할 수 있다. 구체적으로, 프로세서(130)는 통신부(110)를 통해 연결된 외부 장치(200)로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치(200)로 각종 데이터 또는 정보를 전송할 수도 있다.The communication unit 110 includes a circuit and can perform communication with the external device 200 . Specifically, the processor 130 may receive various data or information from the external device 200 connected through the communication unit 110 and may transmit various data or information to the external device 200 .

통신부(110)는 WiFi 모듈, Bluetooth 모듈, 무선 통신 모듈, 및 NFC 모듈 중 적어도 하나를 포함할 수 있다. 구체적으로, WiFi 모듈과 Bluetooth 모듈 각각은 WiFi 방식, Bluetooth 방식으로 통신을 수행할 수 있다. WiFi 모듈이나 Bluetooth 모듈을 이용하는 경우에는 SSID 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. The communication unit 110 may include at least one of a WiFi module, a Bluetooth module, a wireless communication module, and an NFC module. Specifically, each of the WiFi module and the Bluetooth module may perform communication using a WiFi method or a Bluetooth method. In the case of using a WiFi module or a Bluetooth module, various connection information such as an SSID is first transmitted and received, and various information can be transmitted and received after communication is connected using this.

또한, 무선 통신 모듈은 IEEE, Zigbee, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행할 수 있다. 그리고, NFC 모듈은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 통신을 수행할 수 있다.In addition, the wireless communication module may perform communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), and 5th Generation (5G). In addition, the NFC module may perform communication using a Near Field Communication (NFC) method using a 13.56 MHz band among various RF-ID frequency bands such as 135 kHz, 13.56 MHz, 433 MHz, 860 ~ 960 MHz, and 2.45 GHz.

특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(130)는 통신부(110)를 통해 외부 장치(200)로부터 입출력 요청을 수신할 수 있다. 그리고, 프로세서(130)는 입출력 요청에 대응되는 입출력 응답을 외부 장치(200)로 전송하도록 통신부(110)를 제어할 수 있다. 한편, 프로세서(130)는 통신부(110)를 통해 외부 장치(200)로부터 본 개시에 따라 인터럽트의 발생 속도를 제어하기 위한 다양한 소프트웨어 모듈에 대한 데이터를 수신하여 메모리(120)에 저장할 수도 있다. In particular, in various embodiments according to the present disclosure, the processor 130 may receive an input/output request from the external device 200 through the communication unit 110 . Also, the processor 130 may control the communication unit 110 to transmit an input/output response corresponding to the input/output request to the external device 200 . Meanwhile, the processor 130 may receive data for various software modules for controlling an interrupt generating speed according to the present disclosure from the external device 200 through the communication unit 110 and store them in the memory 120 .

메모리(120)에는 전자 장치(100)에 관한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 그리고, 메모리(120)에는 전자 장치(100)를 구동시키기 위한 O/S(Operating System)가 저장될 수 있다. 또한, 메모리(120)에는 본 개시의 다양한 실시 예들에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 프로그램이나 애플리케이션이 저장될 수도 있다. 그리고, 메모리(120)는 플래시 메모리(Flash Memory) 등과 같은 반도체 메모리나 하드디스크(Hard Disk) 등과 같은 자기 저장 매체 등을 포함할 수 있다.At least one instruction related to the electronic device 100 may be stored in the memory 120 . Also, an operating system (O/S) for driving the electronic device 100 may be stored in the memory 120 . Also, various software programs or applications for operating the electronic device 100 may be stored in the memory 120 according to various embodiments of the present disclosure. Also, the memory 120 may include a semiconductor memory such as a flash memory or a magnetic storage medium such as a hard disk.

구체적으로, 메모리(120)에는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위한 각종 소프트웨어 모듈이 저장될 수 있으며, 프로세서(130)는 메모리(120)에 저장된 각종 소프트웨어 모듈을 실행하여 전자 장치(100)의 동작을 제어할 수 있다. 즉, 메모리(120)는 프로세서(130)에 의해 액세스되며, 프로세서(130)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. Specifically, various software modules for operating the electronic device 100 may be stored in the memory 120 according to various embodiments of the present disclosure, and the processor 130 executes various software modules stored in the memory 120. Thus, the operation of the electronic device 100 may be controlled. That is, the memory 120 is accessed by the processor 130, and data can be read/written/modified/deleted/updated by the processor 130.

한편, 본 개시에서 메모리(120)라는 용어는 메모리(120), 프로세서(130) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함하는 의미로 사용될 수 있다.Meanwhile, in the present disclosure, the term memory 120 refers to the memory 120, a ROM (not shown) in the processor 130, a RAM (not shown), or a memory card (not shown) mounted in the electronic device 100 (eg For example, micro SD card, memory stick) may be used as a meaning including.

특히, 본 개시에 따른 다양한 실시 예에 있어서, 메모리(120)에는 인터럽트의 발생 속도를 제어하기 위한 복수의 모듈 및 복수의 모듈에 관련된 다양한 정보/데이터가 저장될 수 있다. 또한, 메모리(120)에는 본 개시에 따른 제1 속도, 제2 속도 및 제3 속도 등에 대한 정보와 같이, 프로세서(130)에 의해 결정되거나 사용자 또는 개발자에 의해 설정된 인터럽트 발생 속도에 대한 정보가 저장될 수 있다. 뿐만 아니라, 메모리(120)에는 본 개시에 따른 임계 길이, 제어 구간 등에 대한 정보가 저장될 수도 있다. In particular, in various embodiments according to the present disclosure, the memory 120 may store a plurality of modules for controlling an interrupt generation speed and various information/data related to the plurality of modules. In addition, the memory 120 stores information on interrupt generation rates determined by the processor 130 or set by users or developers, such as information on the first rate, second rate, and third rate according to the present disclosure. It can be. In addition, the memory 120 may store information about a critical length, a control period, and the like according to the present disclosure.

그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(120)에 저장될 수 있으며, 메모리(120)에 저장된 정보는 외부 장치(200)로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.In addition, various information required within the scope of achieving the object of the present disclosure may be stored in the memory 120, and the information stored in the memory 120 is updated as received from the external device 200 or input by a user. It could be.

프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(130)는 상술한 바와 같은 통신부(110) 및 메모리(120)를 포함하는 전자 장치(100)의 구성과 연결되며, 상술한 바와 같은 메모리(120)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치(100)의 동작을 전반적으로 제어할 수 있다.The processor 130 controls overall operations of the electronic device 100 . Specifically, the processor 130 is connected to the configuration of the electronic device 100 including the communication unit 110 and the memory 120 as described above, and transmits at least one instruction stored in the memory 120 as described above. By executing, the operation of the electronic device 100 may be overall controlled.

프로세서(130)는 다양한 방식으로 구현될 수 있다. 예를 들어, 프로세서(130)는 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware Finite State Machine, FSM), 디지털 신호 프로세서(Digital Signal Processor, DSP) 중 적어도 하나로 구현될 수 있다. 한편, 본 개시에서 프로세서(130)라는 용어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 MPU(Main Processing Unit)등을 포함하는 의미로 사용될 수 있다.Processor 130 can be implemented in a variety of ways. For example, the processor 130 may include an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, hardware control logic, a hardware finite state machine (FSM), a digital signal processor Processor, DSP) may be implemented as at least one. Meanwhile, in the present disclosure, the term processor 130 may be used to include a Central Processing Unit (CPU), a Graphic Processing Unit (GPU), and a Main Processing Unit (MPU).

특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(130)는 입출력 요청 처리 모듈(131), 송신 큐 모니터링 모듈(132) 및 인터럽트 발생 제어 모듈(133) 등과 같은 복수의 모듈을 통해 본 개시에 따른 다양한 실시 예를 구현할 수 있다. 본 개시에 따른 복수의 모듈들은 소프트웨어 모듈로 구현될 수 있으며, 다만 복수의 모듈 중 적어도 하나는 하드웨어 모듈로 구현될 수도 있다. 한편, 복수의 모듈에 관련된 데이터는 메모리(120)에 저장될 수 있으며, 프로세서(130)는 메모리(120)에 액세스하여 복수의 모듈을 로딩함으로써 복수의 모듈을 이용할 수 있다. In particular, in various embodiments according to the present disclosure, the processor 130 is configured according to the present disclosure through a plurality of modules such as the input/output request processing module 131, the transmit queue monitoring module 132, and the interrupt generation control module 133. Various embodiments according to may be implemented. A plurality of modules according to the present disclosure may be implemented as a software module, but at least one of the plurality of modules may be implemented as a hardware module. Meanwhile, data related to a plurality of modules may be stored in the memory 120, and the processor 130 may use the plurality of modules by accessing the memory 120 and loading the plurality of modules.

'입출력 요청 처리 모듈(131)'은 입출력 요청에 따른 동작을 수행하여 입출력 응답을 획득할 수 있는 모듈을 말한다. 구체적으로, 외부 장치(200)로부터 입출력 요청이 수신되면, 입출력 요청 모듈은 입출력 요청에 따른 동작을 수행할 수 있는 어플리케이션을 통해 입출력 요청에 따른 동작을 수행하고, 그에 따라 입출력 응답에 대응되는 데이터 패킷들을 생성할 수 있다. The 'input/output request processing module 131' refers to a module capable of obtaining an input/output response by performing an operation according to an input/output request. Specifically, when an input/output request is received from the external device 200, the input/output request module performs an operation according to the input/output request through an application capable of performing an operation according to the input/output request, and thus a data packet corresponding to the input/output response. can create them.

'송신 큐 모니터링 모듈(132)'은 입출력 응답에 대응되는 데이터 패킷들을 위한 송신 큐의 길이를 식별할 수 있는 모듈을 말한다. 구체적으로, 입출력 요청 처리 모듈(131)을 통해 입출력 요청에 따른 동작이 완료되면, 송신 큐 모니터링 모듈(132)은 송신 큐에 채워진 패킷들의 바이트 수를 바탕으로 송신 큐의 길이를 식별하고, 식별된 송신 큐의 길이에 대한 정보를 인터럽트 발생 제어 모듈(133)에 전송할 수 있다. The 'transmission queue monitoring module 132' refers to a module capable of identifying the length of a transmission queue for data packets corresponding to an input/output response. Specifically, when the operation according to the input/output request is completed through the input/output request processing module 131, the transmission queue monitoring module 132 identifies the length of the transmission queue based on the number of bytes of packets filled in the transmission queue, and identifies the length of the transmission queue. Information on the length of the transmission queue may be transmitted to the interrupt generating control module 133 .

'인터럽트 발생 제어 모듈(133)'은 인터럽트의 발생 여부와 발생 속도를 제어할 수 있는 모듈을 말한다. 구체적으로, 외부 장치(200)로부터 입출력 요청이 수신되면, 인터럽트 발생 제어 모듈(133)은 입출력 요청이 수신되었음을 나타내는 인터럽트를 발생시키도록 통신부(110)를 제어할 수 있다. 또한, 입출력 응답에 따른 동작이 완료되면, 인터럽트 발생 제어 모듈(133)은 입출력 응답에 따른 동작이 완료되었음을 나타내는 인터럽트를 발생시키도록 통신부(110)를 제어할 수 있다. The 'interrupt generation control module 133' refers to a module capable of controlling whether or not an interrupt occurs and the speed at which it occurs. Specifically, when an input/output request is received from the external device 200, the interrupt generation control module 133 may control the communication unit 110 to generate an interrupt indicating that the input/output request has been received. In addition, when the operation according to the input/output response is completed, the interrupt generation control module 133 may control the communication unit 110 to generate an interrupt indicating that the operation according to the input/output response is completed.

또한, 송신 큐 모니터링 모듈(132)로부터 송신 큐의 길이에 대한 정보가 수신되면, 인터럽트 발생 제어 모듈(133)은 송신 큐의 길이를 바탕으로 인터럽트 발생 속도를 결정하고, 결정된 인터럽트 발생 속도에 대한 정보를 통신부(110)에 전송함으로써, 통신부(110)가 결정된 인터럽트 발생 속도로 인터럽트를 발생시키도록 통신부(110)를 제어할 수 있다. 특히, 본 개시의 일 실시 예에 따르면, 프로세서(130)는 인터럽트 발생 모듈을 통해 인터럽트의 발생 속도를 제1 속도로 제어할 수 있다. 그리고, 프로세서(130)는 송신 큐 모니터링 모듈(132)을 통해 입출력 응답을 외부 장치(200)로 전송하기 위한 송신 큐의 길이를 식별할 수 있다. 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 프로세서(130)는 인터럽트 발생 제어 모듈(133)을 통해 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 변경할 수 있다. 송신 큐의 길이가 기 설정된 임계 길이 미만이면, 프로세서(130)는 인터럽트의 발생 제어 모듈을 통해 인터럽트의 발생 속도를 제1 속도로 유지할 수 있다. 여기서, 인터럽트의 발생 속도를 제1 속도로 유지한다는 것은, 인터럽트의 발생 속도를 제1 속도로 유지한 상태에서 추가적인 제어를 하지 않는다는 의미와, 다시 송신 큐의 길이를 식별하는 주기가 되기 전까지 인터럽트의 발생 속도가 제1 속도가 되도록 제어한다는 의미를 포함할 수 있다. In addition, when information about the length of the transmission queue is received from the transmission queue monitoring module 132, the interrupt generation control module 133 determines an interrupt generation rate based on the length of the transmission queue, and information on the determined interrupt generation rate. By transmitting to the communication unit 110, the communication unit 110 can control the communication unit 110 to generate an interrupt at the determined interrupt generation rate. In particular, according to an embodiment of the present disclosure, the processor 130 may control the generation rate of the interrupt to the first rate through the interrupt generation module. Also, the processor 130 may identify the length of the transmission queue for transmitting the input/output response to the external device 200 through the transmission queue monitoring module 132 . When the length of the transmit queue exceeds the predetermined threshold length, the processor 130 may change the interrupt generation rate to a second rate faster than the first rate through the interrupt generation control module 133 . If the length of the transmission queue is less than the predetermined critical length, the processor 130 may maintain the interrupt generation rate at the first rate through the interrupt generation control module. Here, maintaining the generation rate of the interrupt at the first rate means that additional control is not performed while the generation rate of the interrupt is maintained at the first rate, and the occurrence of the interrupt until the transmission queue length is identified again. This may include the meaning of controlling the generation speed to be the first speed.

한편, 송신 큐의 길이가 임계 길이를 초과하면, 프로세서(130)는 기 설정된 제어 구간 동안 인터럽트의 발생 속도를 제2 속도로 변경하고, 제어 구간이 경과되면, 다시 인터럽트의 발생 속도를 제1 속도로 변경할 수 있다. 여기서, 제어 구간의 길이는 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 결정될 수 있으며, 보다 구체적으로는, 송신 큐의 길이와 임계 길이 사이의 차이에 비례하도록 결정될 수 있다. On the other hand, if the length of the transmission queue exceeds the threshold length, the processor 130 changes the interrupt generation rate to the second rate during the preset control period, and when the control period elapses, the interrupt generation rate is changed to the first rate. can be changed to Here, the length of the control interval may be determined based on the difference between the length of the transmission queue and the threshold length, and more specifically, may be determined in proportion to the difference between the length of the transmission queue and the threshold length.

이상에서 상술한 바와 같은 프로세서(130)의 제어 과정 이외에도, 도 1 내지 도 3을 참조하여 상술한 바와 같은 제어 방법에 관한 실시 예들은 본 개시에 따른 프로세서(130)의 제어 과정에 대해서도 마찬가지로 적용될 수 있음은 물론이다. In addition to the control process of the processor 130 as described above, embodiments of the control method described above with reference to FIGS. 1 to 3 may be applied to the control process of the processor 130 according to the present disclosure. Of course there is.

한편, 도 1 내지 도 3을 참조하여 상술한 바와 같은 전자 장치(100)의 제어 방법은 프로그램으로 구현되어 전자 장치(100)에 제공될 수 있다. 특히, 전자 장치(100)의 제어 방법을 포함하는 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다. Meanwhile, the control method of the electronic device 100 as described above with reference to FIGS. 1 to 3 may be implemented as a program and provided to the electronic device 100 . In particular, a program including a control method of the electronic device 100 may be stored and provided in a non-transitory computer readable medium.

구체적으로, 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서, 전자 장치(100)는 외부 장치(200)로부터 입출력 요청을 수신하고, 입출력 요청에 따른 동작이 완료되면 동작의 완료를 나타내는 인터럽트를 발생시키며, 상 입출력 요청에 대한 입출력 응답을 외부 장치(200)로 전송할 수 있다. 그리고, 전자 장치(100)의 제어 방법은 인터럽트의 발생 속도를 제1 속도로 제어하는 단계, 입출력 응답을 외부 장치(200)로 전송하기 위한 송신 큐(queue)의 길이를 식별하는 단계 및 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 변경하는 단계를 포함할 수 있다. Specifically, in a non-transitory computer-readable recording medium containing a program that executes a control method of the electronic device 100, the electronic device 100 receives an input/output request from the external device 200, and responds to the input/output request. When the operation is completed, an interrupt indicating completion of the operation may be generated, and an input/output response to the phase input/output request may be transmitted to the external device 200 . Further, the control method of the electronic device 100 includes controlling the interrupt generation rate to a first rate, identifying the length of a transmission queue for transmitting an input/output response to the external device 200, and the transmission queue. When the length of is greater than a preset threshold length, changing the generation rate of the interrupt to a second rate faster than the first rate may be included.

이상에서 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 전자 장치(100)에 대한 다양한 실시 예는 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.In the above, the control method of the electronic device 100 and the computer readable recording medium including the program for executing the control method of the electronic device 100 have been briefly described, but this is only for omitting redundant description, and Various embodiments of the device 100 can also be applied to a computer readable recording medium including a control method of the electronic device 100 and a program executing the control method of the electronic device 100 .

한편, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.Meanwhile, the device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as . For example, a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.

일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리(120)와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or between two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smartphones. In the case of online distribution, at least a portion of a computer program product (eg, a downloadable app) is a device-readable storage such as a manufacturer's server, an application store's server, or a relay server's memory 120. It can be at least temporarily stored in a medium or temporarily created.

이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. Each of the components (eg, modules or programs) according to various embodiments of the present disclosure as described above may be composed of a single object or a plurality of entities, and some of the sub-components described above are omitted. or other sub-elements may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity and perform the same or similar functions performed by each corresponding component prior to integration.

다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.According to various embodiments, operations performed by modules, programs, or other components may be executed sequentially, in parallel, repetitively, or heuristically, or at least some operations may be executed in a different order, may be omitted, or other operations may be added. can

한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.On the other hand, the term "unit" or "module" used in the present disclosure includes units composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, parts, or circuits, for example. can A “unit” or “module” may be an integrated component or a minimum unit or part thereof that performs one or more functions. For example, the module may be composed of an application-specific integrated circuit (ASIC).

본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(100)(예: 전자 장치(100))를 포함할 수 있다. Various embodiments of the present disclosure may be implemented as software including commands stored in a storage medium readable by a machine (eg, a computer). The device calls the stored commands from the storage medium. And, as a device capable of operating according to the called command, it may include the electronic device 100 (eg, the electronic device 100) according to the disclosed embodiments.

상기 명령이 프로세서(130)에 의해 실행될 경우, 프로세서(130)가 직접 또는 상기 프로세서(130)의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. When the command is executed by the processor 130, the processor 130 may directly or use other components under the control of the processor 130 to perform a function corresponding to the command. An instruction may include code generated or executed by a compiler or interpreter.

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

100: 전자 장치 200: 외부 장치
110: 통신부 120: 메모리
130: 프로세서
100: electronic device 200: external device
110: communication unit 120: memory
130: processor

Claims (10)

전자 장치에 있어서,
통신부;
복수의 모듈에 관련된 데이터를 저장하는 메모리; 및
상기 통신부를 통해 외부 장치로부터 입출력 요청을 수신하고,
상기 입출력 요청에 따른 동작이 완료되면, 상기 동작의 완료를 나타내는 인터럽트를 발생시키며,
상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하도록 상기 통신부를 제어하는 프로세서; 를 포함하고,
상기 프로세서는,
상기 인터럽트의 발생 속도를 제1 속도로 제어하고,
상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하며,
상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경하고,
상기 송신 큐의 길이가 기 설정된 임계 길이 미만이면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 유지하고,
상기 송신큐의 길이가 상기 임계 길이를 초과하면, 기 설정된 제어 구간 동안 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하고,
상기 제어 구간이 경과되면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 변경하고,
상기 제1 속도는, 상기 입출력 요청에 따른 동작을 수행하기 위한 어플리케이션에 대응되는 지연 시간(latency)을 바탕으로 결정되는, 전자 장치.
In electronic devices,
communications department;
a memory for storing data related to a plurality of modules; and
Receiving an input/output request from an external device through the communication unit;
When the operation according to the input/output request is completed, an interrupt indicating the completion of the operation is generated,
a processor controlling the communication unit to transmit an input/output response to the input/output request to the external device; including,
the processor,
Controlling the generation rate of the interrupt to a first rate;
Identifies the length of a transmission queue for transmitting the input/output response to the external device;
When the length of the transmission queue exceeds a preset threshold length, changing the generation rate of the interrupt to a second rate faster than the first rate;
If the length of the transmission queue is less than a predetermined threshold length, maintaining the generation rate of the interrupt at the first rate;
When the length of the transmission queue exceeds the threshold length, changing the generation rate of the interrupt to the second rate during a preset control period;
When the control period elapses, changing the generation rate of the interrupt to the first rate;
The first speed is determined based on a latency corresponding to an application for performing an operation according to the input/output request.
삭제delete 삭제delete 제1 항에 있어서,
상기 제어 구간의 길이는 상기 송신 큐의 길이와 상기 임계 길이 사이의 차이를 바탕으로 결정되는 전자 장치.
According to claim 1,
The electronic device of claim 1 , wherein the length of the control interval is determined based on a difference between the length of the transmission queue and the threshold length.
제4 항에 있어서,
상기 제어 구간의 길이는 상기 송신 큐의 길이와 상기 임계 길이 사이의 차이에 비례하도록 결정되는 전자 장치.
According to claim 4,
The electronic device of claim 1 , wherein the length of the control interval is determined to be proportional to a difference between the length of the transmission queue and the threshold length.
삭제delete 제1 항에 있어서,
상기 임계 길이는 제1 임계 길이 및 상기 제1 임계 길이보다 긴 제2 임계 길이를 포함하고,
상기 프로세서는,
상기 송신 큐의 길이가 상기 제1 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하고,
상기 송신 큐의 길이가 상기 제2 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제2 속도보다 빠른 제3 속도로 변경하는 전자 장치.
According to claim 1,
The threshold length includes a first threshold length and a second threshold length longer than the first threshold length,
the processor,
When the length of the transmit queue exceeds the first threshold length, changing the generation rate of the interrupt to the second rate;
and changing the generation rate of the interrupt to a third rate faster than the second rate when the length of the transmit queue exceeds the second threshold length.
제1 항에 있어서,
상기 프로세서는,
복수의 코어(core)를 포함하고,
상기 복수의 코어 별로 상기 인터럽트의 발생 속도를 제어하는 전자 장치.
According to claim 1,
the processor,
Including a plurality of cores,
An electronic device that controls the generation speed of the interrupt for each of the plurality of cores.
외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하는 전자 장치의 제어 방법에 있어서,
상기 인터럽트의 발생 속도를 제1 속도로 제어하는 단계;
상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하는 단계; 및
상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경하는 단계; 를 포함하고,
상기 변경하는 단계는,
상기 송신 큐의 길이가 기 설정된 임계 길이 미만이면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 유지하는 단계;
상기 송신 큐의 길이가 상기 임계 길이를 초과하면, 기 설정된 제어 구간 동안 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하는 단계; 및
상기 제어 구간이 경과되면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 변경하는 단계;를 포함하고,
상기 제1 속도는, 상기 입출력 요청에 따른 동작을 수행하기 위한 어플리케이션에 대응되는 지연 시간(latency)을 바탕으로 결정되는 것인, 전자 장치의 제어 방법.
A control method of an electronic device that receives an input/output request from an external device, generates an interrupt indicating completion of the operation when an operation according to the input/output request is completed, and transmits an input/output response to the input/output request to the external device. ,
controlling the generation rate of the interrupt to a first rate;
identifying the length of a transmission queue for transmitting the input/output response to the external device; and
changing the generation rate of the interrupt to a second rate faster than the first rate when the length of the transmission queue exceeds a preset threshold length; including,
The changing step is
maintaining the generation rate of the interrupt at the first rate when the length of the transmission queue is less than a predetermined threshold length;
changing the generation rate of the interrupt to the second rate during a preset control period when the length of the transmission queue exceeds the threshold length; and
When the control period elapses, changing the generation rate of the interrupt to the first rate; includes,
The first speed is determined based on a latency corresponding to an application for performing an operation according to the input/output request.
전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서,
상기 전자 장치는,
외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하고,
상기 전자 장치의 제어 방법은,
상기 인터럽트의 발생 속도를 제1 속도로 제어하는 단계;
상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하는 단계; 및
상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경하는 단계; 를 포함하고,
상기 변경하는 단계는,
상기 송신 큐의 길이가 기 설정된 임계 길이 미만이면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 유지하는 단계;
상기 송신 큐의 길이가 상기 임계 길이를 초과하면, 기 설정된 제어 구간 동안 상기 인터럽트의 발생 속도를 상기 제2 속도로 변경하는 단계; 및
상기 제어 구간이 경과되면, 상기 인터럽트의 발생 속도를 상기 제1 속도로 변경하는 단계;를 포함하고,
상기 제1 속도는, 상기 입출력 요청에 따른 동작을 수행하기 위한 어플리케이션에 대응되는 지연 시간(latency)을 바탕으로 결정되는 것인, 컴퓨터 판독 가능 기록매체.

In a non-transitory computer-readable recording medium containing a program that executes a control method of an electronic device,
The electronic device,
Receiving an input/output request from an external device, generating an interrupt indicating completion of the operation when an operation according to the input/output request is completed, and transmitting an input/output response to the input/output request to the external device;
The control method of the electronic device,
controlling the generation rate of the interrupt to a first rate;
identifying the length of a transmission queue for transmitting the input/output response to the external device; and
changing the generation rate of the interrupt to a second rate faster than the first rate when the length of the transmission queue exceeds a predetermined threshold length; including,
The changing step is
maintaining the generation rate of the interrupt at the first rate when the length of the transmission queue is less than a predetermined threshold length;
changing the generation rate of the interrupt to the second rate during a preset control period when the length of the transmission queue exceeds the threshold length; and
When the control period elapses, changing the generation rate of the interrupt to the first rate; includes,
The first speed is determined based on a latency corresponding to an application for performing an operation according to the input/output request.

KR1020200189606A 2020-12-31 2020-12-31 Electronic device for controlling interrupt based on transmission queue and control method thereof KR102503579B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200189606A KR102503579B1 (en) 2020-12-31 2020-12-31 Electronic device for controlling interrupt based on transmission queue and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200189606A KR102503579B1 (en) 2020-12-31 2020-12-31 Electronic device for controlling interrupt based on transmission queue and control method thereof

Publications (2)

Publication Number Publication Date
KR20220096820A KR20220096820A (en) 2022-07-07
KR102503579B1 true KR102503579B1 (en) 2023-02-24

Family

ID=82398034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200189606A KR102503579B1 (en) 2020-12-31 2020-12-31 Electronic device for controlling interrupt based on transmission queue and control method thereof

Country Status (1)

Country Link
KR (1) KR102503579B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100528861B1 (en) * 2003-03-04 2005-11-16 삼성전자주식회사 Packet forwarding system having control packet processor that allocates the bandwidth for control packet adaptively and a method processing thereof
KR101386345B1 (en) * 2012-05-30 2014-04-16 충북대학교 산학협력단 Data transmission system and method using multipath of terminal equipped with the multiple interfaces in wired-wireless converged network
KR102649324B1 (en) * 2016-05-19 2024-03-20 삼성전자주식회사 Computer system for performing adaptive interrupt control and method for controlling interrupt thereof

Also Published As

Publication number Publication date
KR20220096820A (en) 2022-07-07

Similar Documents

Publication Publication Date Title
KR102245247B1 (en) GPU remote communication using triggered actions
EP3091434B1 (en) Chip starting method, multi-core processor chip and storage medium
CN112204524A (en) Embedded scheduling of hardware resources for hardware acceleration
US10909655B2 (en) Direct memory access for graphics processing unit packet processing
WO2016078343A1 (en) Method for scheduling device, task manager and storage medium
CN112799696B (en) Firmware upgrading method and related equipment
US8615609B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
CN114513472A (en) Network congestion control method and device
KR20210095687A (en) Scheduling method and apparatus, electronic device and recording medium
CN110209548B (en) Service control method, system, electronic device and computer readable storage medium
KR102503579B1 (en) Electronic device for controlling interrupt based on transmission queue and control method thereof
US10901491B2 (en) Sleep management method and device, and computer storage medium
KR102625723B1 (en) Electronic device and controlling method of electronic device
WO2017105558A2 (en) Technologies for aggregation-based message synchronization
CN110764710B (en) Low-delay high-IOPS data access method and storage system
EP2413248A1 (en) Direct memory access device for multi-core system and operating method of the same
US11044116B2 (en) Management device, communication system, management method, and computer readable medium
US20240064502A1 (en) Method for controlling the roaming of a mobile station operating a download and a rendering of a video content, and system executing the method
JP5654440B2 (en) Wireless communication system, relay device, and communication method
US9223542B2 (en) Variable-sized buffers mapped to hardware registers
JP2023135539A (en) Monitoring device, data terminal, data communication system, monitoring method, and program
US9043442B2 (en) Control method of information processing system, server device, and terminal device
JP5586442B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE DATA TRANSFER METHOD, AND COMMUNICATION PROGRAM
CN113711192A (en) Information processing apparatus
JP2014126917A (en) Built-in system and inter-cpu communication method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant