KR20220096820A - 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
KR20220096820A
KR20220096820A KR1020200189606A KR20200189606A KR20220096820A KR 20220096820 A KR20220096820 A KR 20220096820A KR 1020200189606 A KR1020200189606 A KR 1020200189606A KR 20200189606 A KR20200189606 A KR 20200189606A KR 20220096820 A KR20220096820 A KR 20220096820A
Authority
KR
South Korea
Prior art keywords
length
rate
input
electronic device
transmission queue
Prior art date
Application number
KR1020200189606A
Other languages
Korean (ko)
Other versions
KR102503579B1 (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

Disclosed are an electronic device for controlling an interrupt generation rate based on a transmission queue and a control method of the electronic device. The electronic device according to the present disclosure receives an input/output request from an external device, enables an interrupt indicating a completion of an operation to be generated when the operation according to the input/output request is completed, and transmits an input/output response for a phase input/output request to the external device. Specifically, the electronic device controls a generation rate of the interrupt to a first rate, identifies a length of a transmission queue for transmitting an input/output response to the external device, and enables the generation rate of the interrupt to be changed to a second rate faster than that of the first rate when the length of the transmission queue exceeds a predetermined threshold length.

Description

송신 큐에 기초하여 인터럽트를 제어하는 전자 장치 및 이의 제어 방법{ELECTRONIC DEVICE FOR CONTROLLING INTERRUPT BASED ON TRANSMISSION QUEUE AND CONTROL METHOD THEREOF}ELECTRONIC DEVICE FOR CONTROLLING INTERRUPT BASED ON TRANSMISSION QUEUE AND CONTROL METHOD THEREOF

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

근래에는 입출력 장치(input/output device, I/O device)의 처리 속도가 현저하게 향상됨에 따라 입출력 요청(input/output request, I/O request)에 따라 발생되는 인터럽트(interrupt)의 개수가 크게 증가하고 있다. 그런데, 입출력 장치에 의해 발생되는 인터럽트의 개수가 지나치게 증가하면, 발생되는 인터럽트 자체를 처리하기 위한 리소스의 양이 증가하게 되고, 이에 따라 다른 작업을 처리하기 위한 리소스가 제한되는 문제가 발생될 수 있다. In recent years, as the processing speed of input/output devices (I/O devices) has been significantly improved, 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 interrupt itself increases, and accordingly, there may be a problem that resources for processing other tasks are limited. .

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

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

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

상술한 바와 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 통신부, 복수의 모듈에 관련된 데이터를 저장하는 메모리 및 상기 통신부를 통해 외부 장치로부터 입출력 요청을 수신하고, 상기 입출력 요청에 따른 동작이 완료되면, 상기 동작의 완료를 나타내는 인터럽트를 발생시키며, 상기 입출력 요청에 대한 입출력 응답을 상기 외부 장치로 전송하도록 상기 통신부를 제어하는 프로세서를 포함하고, 상기 프로세서는 상기 인터럽트의 발생 속도를 제1 속도로 제어하고, 상기 입출력 응답을 상기 외부 장치로 전송하기 위한 송신 큐(queue)의 길이를 식별하며, 상기 송신 큐의 길이가 기 설정된 임계 길이를 초과하면, 상기 인터럽트의 발생 속도를 상기 제1 속도보다 빠른 제2 속도로 변경한다. According to an 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 the 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 control at a first speed, identify 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 rate of occurrence of the interrupt is determined The second speed is changed to a faster speed than the first speed.

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

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

여기서, 상기 제어 구간의 길이는 상기 송신 큐의 길이와 상기 임계 길이 사이의 차이를 바탕으로 결정될 수 있다. Here, the length of the control period 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 a 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 속도로 변경할 수 있다. On the other hand, the threshold length includes a first threshold length and a second threshold length longer than the first threshold length, and the processor determines the rate of occurrence of the interrupt when the length of the transmission queue exceeds the first threshold length. When the second rate is changed and the length of the transmission queue exceeds the second threshold length, the interrupt generation rate may be changed to a third rate faster than the second rate.

한편, 상기 프로세서는 복수의 코어(core)를 포함하고, 상기 복수의 코어 별로 상기 인터럽트의 발생 속도를 제어할 수 있다. Meanwhile, the processor may include a plurality of cores, and may control the interrupt generation rate 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, an interrupt indicating completion of the operation is generated when an operation according to the input/output request is completed, and the input/output request A method of controlling an electronic device for transmitting an input/output response to the external device to the external device, the method comprising: controlling the interrupt generation rate to a first rate; and when the length of the transmission queue exceeds a preset threshold length, changing the interrupt generation rate 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 is input/output from an external device Receives a request, generates an interrupt indicating completion of the operation when an operation according to the input/output request is completed, transmits an input/output response to the input/output request to the external device, and the control method of the electronic device includes: controlling the generation rate to a first rate, identifying a 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 changing the generation rate of ? to a second rate that is 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 schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure;
5 is a block diagram illustrating in detail the configuration of an electronic device according to an embodiment of the present disclosure.

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

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

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

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

본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. In the present disclosure, expressions such as “have,” “may have,” “include,” or “may include” indicate the presence of a corresponding characteristic (eg, a numerical value, function, operation, or component such as a part). and does not exclude the presence 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" means (1) includes at least one A, (2) includes at least one B; Or (3) it may refer to all cases including both at least one A and at least one B.

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

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

반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.On the other hand, when it is said that a component (eg, a first component) is "directly connected" or "directly connected" to another component (eg, a second component), the component and the It may be understood that other components (eg, a third component) do not exist between 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, depending on the context, for example, “suitable for,” “having the capacity to” ," "designed to," "adapted to," "made to," or "capable of." The term “configured (or configured to)” may not necessarily mean only “specifically designed to” in hardware.

대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some circumstances, the expression “a device configured to” may mean that the device is “capable of” with other devices or parts. For example, the phrase "a processor configured (or configured to perform) A, B, and C" refers to a dedicated processor (eg, an embedded processor) for performing the corresponding operations, or by executing one or more software programs stored in a memory device. , may mean a generic-purpose processor (eg, a CPU or an 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 as 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 with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.

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

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

도 1은 본 개시의 일 실시 예에 따른 전자 장치 및 외부 장치에 대해 간략하게 설명하기 위한 개념도이다.1 is a conceptual diagram for briefly explaining 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)는 '클라이언트 단말' 등과 같은 용어로 지칭될 수 있다. 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 input/output response (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 term such as a 'server' or an 'I/O device', and the external device 200 may be referred to as a term such 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 may generate an interrupt indicating that the input/output request has been received, thereby allowing the application to perform an operation according to the input/output request. Also, when the operation according to the input/output response is completed, the electronic device 100 may empty a transmission queue for data packets corresponding to the input/output response by generating an interrupt indicating that the operation according to the input/output response is completed. .

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

이하에서는 도 2 내지 도 5를 참조하여, 인터럽트의 발생 속도를 효과적으로 제어함으로써 상술한 바와 같은 문제점을 해결하기 위한 본 개시의 다양한 실시 예에 대해 설명한다. 이하에서 특별히 명시하지 않는 한 '인터럽트'라는 용어는 입출력 요청에 따른 동작이 완료되었음을 나타내는 인터럽트를 지칭하기 위한 용어로 사용된다. Hereinafter, various embodiments of the present disclosure for solving the above-described problems by effectively controlling an interrupt generation rate will be described with reference to FIGS. 2 to 5 . Unless otherwise specified below, the term 'interrupt' is used as a term 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 method of controlling 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 the interrupt generation rate as the first rate ( S210 ). Here, the term 'first rate' is used as a term to refer 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 setting of a user or a developer. For example, the first rate may be a rate of generating 1000 interrupts per second. The first speed may be preferably determined within a range capable of reducing the occurrence of overhead according to the interrupt processing as described above. Meanwhile, the term 'interrupt generation rate' may be replaced with terms such as 'interrupt generation rate' or 'interrupt occurrence 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. In addition, the 'transmission queue length' may correspond to the amount (the number of bytes) of packets filled in the transmission queue. Meanwhile, when a preset time comes or when a preset amount of packets are filled in 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 the operation according to the input/output response is completed is generated, the transmission queue is emptied, so that a new data packet can be filled in the transmission queue.

구체적으로, 전자 장치(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 be changed by the setting of the user or the developer. In particular, it is recommended that the increase in resources according to the monitoring of the length of the transmission queue itself be determined within a range that does not cause a load on the entire system. may be desirable.

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

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

한편, 이상에서는 송신 큐의 길이와의 비교 대상이 되는 임계 길이가 하나로 특정되는 경우를 전제로 설명하였으나, 본 개시가 이에 국한되는 것은 아니다. 즉, 본 개시에 따른 임계 길이는 복수의 임계 길이를 포함할 수 있으며, 전자 장치(100)는 복수의 임계 길이에 따라 구분되는 복수의 제어 구간 별로 상이한 속도로 인터럽트가 발생되도록 제어할 수도 있다. 예를 들어, 인터럽트가 제1 속도로 발생되는 동안 송신 큐의 길이가 제1 임계 길이를 초과하면, 전자 장치(100)는 인터럽트의 발생 속도를 제1 속도보다 빠른 제2 속도로 제어할 수 있으며, 인터럽트가 제2 속도로 발생되는 동안 송신 큐의 길이가 제1 임계 길이보다 긴 제2 임계 길이를 초과하면, 전자 장치(100)는 인터럽트의 발생 속도를 제2 속도보다 빠른 제3 속도로 제어할 수 있다. Meanwhile, in the above description, it is assumed that one critical length to be compared with the length of the transmission queue is specified, 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 a plurality of control sections divided according to the plurality of threshold lengths. For example, if the length of the transmission queue exceeds the first threshold length while the interrupt is generated at the first rate, the electronic device 100 may control the interrupt generation rate to a second rate faster than the first rate, , when the length of the transmission queue exceeds the second threshold length, which is longer than the first threshold length, while the interrupt is generated at the second rate, the electronic device 100 controls the generation rate of the interrupt to the third rate faster than the second rate can do.

한편, 이상에서는 상술한 바와 같은 제어 방법을 수행하기 위한 전자 장치(100)의 프로세서의 코어(core)가 하나인 경우를 전제로 설명하였으나, 본 개시에 따른 전자 장치(100)의 프로세서는 복수의 코어를 포함할 수도 있다. 그리고, 프로세서가 복수의 코어를 포함하는 경우에는 복수의 코어 별로 본 개시에 따른 인터럽트의 발생 속도의 제어 방법이 각각 적용될 수도 있다.Meanwhile, in the above description, it is assumed that there is one core of the processor of the electronic device 100 for performing the above-described control method, but the processor of the electronic device 100 according to the present disclosure includes a plurality of processors. It may include a core. In addition, when the processor includes a plurality of cores, the interrupt generation speed control method 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 rate to be low, the occurrence of overhead due 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 rate, it is possible to prevent delay of input/output response.

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

도 2에 대한 설명에서는 송신 큐의 길이를 모니터링한 결과에 따라 인터럽트의 발생 속도를 증가시키는 방법 자체에 대해서만 설명하였으나, 본 개시의 다른 실시 예에 따르면, 소정의 구간 동안에만 인터럽트의 발생 속도를 증가시키고, 그 구간이 경과된 후에는 다시 인터럽트의 발생 속도를 감소시킬 수도 있다. 이하에서는 도 3을 참조하여 본 개시의 다른 실시 예에 대해 상술한다.In the description of FIG. 2, only the method of increasing the interrupt generation rate itself according to the result of monitoring the length of the transmission queue has been described. However, according to another embodiment of the present disclosure, the interrupt generation rate is increased only during a predetermined period. After the interval has elapsed, the interrupt generation rate can 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 transmit a response to the input/output request to the external device 200 . The length of the queue may be identified (S320). And, when the length of the transmission queue is less than the preset threshold length (S330-N), the electronic device 100 may maintain the interrupt generation rate at the first rate and monitor the length of the transmission queue in real time. Since the above steps have been described above in the description of FIG. 2 , a redundant description of the same content 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 section based on a difference between the length of the transmission queue and the threshold length (S340). Here, the 'control period' refers to a period in which the interrupt generation rate is maintained at the second rate. When the length of the control section is determined, the electronic device 100 may change the interrupt generation rate to a second rate faster than the first rate (S350). And, the interrupt generation rate may be maintained at the second rate until the control period elapses (S360-N).

한편, 제어 구간의 길이가 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 결정된다는 것은, 송신 큐의 길이가 기 설정된 임계 길이를 초과하는 정도가 클수록 제어 구간이 더 길게 결정될 수 있다는 것을 의미한다. 다시 말해, 송신 큐가 많이 채워진 경우일 수록 입출력 응답의 전송을 더 지연시킬 수 있기 때문에, 전자 장치(100)는 입출력 응답의 지연을 해소하기 위해 인터럽터의 발생 속도를 높이기 위한 제어 구간의 길이를 더 길게 설정할 수 있다. 특히, 제어 구간의 길이는 송신 큐의 길이와 임계 길이 사이의 차이에 비례하도록 결정될 수 있다. On the other hand, 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 greater the extent to which the length of the transmission queue exceeds the preset threshold length, the longer the control interval can be determined. . In other words, since the transmission of the input/output response can be delayed more when the transmission queue is filled more, the electronic device 100 increases the length of the control section for increasing the generation rate of the interrupter in order to solve the delay of the input/output response. It 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 interrupt generation rate as the first rate. In other words, when the period in which the interrupter generation rate is increased has elapsed, the electronic device 100 reduces the interrupter generation rate again, thereby preventing overhead that may occur when the interrupt generation rate is increased for an excessive time. can

한편, 이상에서는 제어 구간이 하나의 구간으로 특정되는 경우를 전제로 설명하였으나, 본 개시에 따른 제어 구간은 복수의 제어 구간을 포함할 수 있으며, 복수의 제어 구간 별로 상이한 인터럽트의 발생 속도가 적용될 수도 있다. 예를 들어, 송신 큐의 길이가 임계 길이를 초과하면, 전자 장치(100)는 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 제1 제어 구간 및 제2 제어 구간의 길이를 결정할 수 있다. 예를 들어, 제1 제어 구간의 길이는 3초이고, 제2 제어 구간의 길이는 1초일 수 있다. 제1 제어 구간 및 제2 제어 구간의 길이가 결정되면, 전자 장치(100)는 제1 제어 구간 동안 인터럽트의 발생 속도를 제2 속도보다 빠른 제3 속도로 변경하고, 제2 제어 구간 동안 인터럽트의 발생 속도를 제1 속도보다 빠르고 제3 속도보다는 느린 제2 속도로 변경할 수 있다. Meanwhile, in the above description, it is assumed that the control section is specified as one section, but the control section according to the present disclosure may include a plurality of control sections, and different interrupt generation rates may be applied to each of the plurality of control sections. have. For example, when the length of the transmission queue exceeds the threshold length, the electronic device 100 may determine the lengths of the first control interval and the second control interval based on a 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 interrupt generation rate during the first control period to a third rate faster than the second rate, and during the second control period The rate of occurrence 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 an interrupt generation rate according to a result of monitoring the length of the transmission queue, thereby preventing delay in input/output response and at the same time delaying a predetermined time. After this elapses, the generation of the interrupter is reduced again, thereby minimizing the occurrence of overhead due to interrupt processing.

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

도 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 input/output request processing module 131 , transmission queue monitoring module 132 , and interrupt generation control module 133 . may include modules of However, the configurations as shown in FIGS. 4 and 5 are merely exemplary, and in implementing the present disclosure, a new configuration may be added or some configuration may be omitted in addition to the configuration shown in FIGS. 4 and 5 . of course there is

통신부(110)는 회로를 포함하며, 외부 장치(200)와의 통신을 수행할 수 있다. 구체적으로, 프로세서(130)는 통신부(110)를 통해 연결된 외부 장치(200)로부터 각종 데이터 또는 정보를 수신할 수 있으며, 외부 장치(200)로 각종 데이터 또는 정보를 전송할 수도 있다.The communication unit 110 includes a circuit and may communicate 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 and a Bluetooth method. In the case of using a WiFi module or a Bluetooth module, various types of connection information such as an SSID may be first transmitted and received, and various types of information may be transmitted and received after communication connection 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), 5th Generation (5G), and the like. 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 to 960 MHz, and 2.45 GHz.

특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(130)는 통신부(110)를 통해 외부 장치(200)로부터 입출력 요청을 수신할 수 있다. 그리고, 프로세서(130)는 입출력 요청에 대응되는 입출력 응답을 외부 장치(200)로 전송하도록 통신부(110)를 제어할 수 있다. 한편, 프로세서(130)는 통신부(110)를 통해 외부 장치(200)로부터 본 개시에 따라 인터럽트의 발생 속도를 제어하기 위한 다양한 소프트웨어 모듈에 대한 데이터를 수신하여 메모리(120)에 저장할 수도 있다. In particular, according to various embodiments of the present disclosure, the processor 130 may receive an input/output request from the external device 200 through the communication unit 110 . In addition, 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 generation rate according to the present disclosure from the external device 200 through the communication unit 110 and store the data 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 . In addition, an operating system (O/S) for driving the electronic device 100 may be stored in the memory 120 . In addition, various software programs or applications for operating the electronic device 100 according to various embodiments of the present disclosure may be stored in the memory 120 . In addition, 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 reading/writing/modification/deletion/update of data by the processor 130 may be performed.

한편, 본 개시에서 메모리(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, it may be used in the meaning of including a micro SD card, a memory stick).

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

그 밖에도 본 개시의 목적을 달성하기 위한 범위 내에서 필요한 다양한 정보가 메모리(120)에 저장될 수 있으며, 메모리(120)에 저장된 정보는 외부 장치(200)로부터 수신되거나 사용자에 의해 입력됨에 따라 갱신될 수도 있다.In addition, various information necessary within the scope for 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 the user. it might be

프로세서(130)는 전자 장치(100)의 전반적인 동작을 제어한다. 구체적으로, 프로세서(130)는 상술한 바와 같은 통신부(110) 및 메모리(120)를 포함하는 전자 장치(100)의 구성과 연결되며, 상술한 바와 같은 메모리(120)에 저장된 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치(100)의 동작을 전반적으로 제어할 수 있다.The processor 130 controls the overall operation 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 receives at least one instruction stored in the memory 120 as described above. By executing it, the overall operation of the electronic device 100 may be 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)등을 포함하는 의미로 사용될 수 있다.The processor 130 may be implemented in various 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), or a digital signal processor (Digital Signal). Processor, DSP). Meanwhile, in the present disclosure, the term processor 130 may be used to include a central processing unit (CPU), a graphic processing unit (GPU), a main processing unit (MPU), and the like.

특히, 본 개시에 따른 다양한 실시 예에 있어서, 프로세서(130)는 입출력 요청 처리 모듈(131), 송신 큐 모니터링 모듈(132) 및 인터럽트 발생 제어 모듈(133) 등과 같은 복수의 모듈을 통해 본 개시에 따른 다양한 실시 예를 구현할 수 있다. 본 개시에 따른 복수의 모듈들은 소프트웨어 모듈로 구현될 수 있으며, 다만 복수의 모듈 중 적어도 하나는 하드웨어 모듈로 구현될 수도 있다. 한편, 복수의 모듈에 관련된 데이터는 메모리(120)에 저장될 수 있으며, 프로세서(130)는 메모리(120)에 액세스하여 복수의 모듈을 로딩함으로써 복수의 모듈을 이용할 수 있다. In particular, in various embodiments according to the present disclosure, the processor 130 is configured in the present disclosure through a plurality of modules such as the input/output request processing module 131 , the transmission queue monitoring module 132 and the interrupt generation control module 133 . Various embodiments 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 access the memory 120 and use the plurality of modules by 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 the operation according to the input/output request, and accordingly, a data packet corresponding to the input/output response can create

'송신 큐 모니터링 모듈(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 Information on the length of the transmission queue may be transmitted to the interrupt generation 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 is generated and the rate of occurrence. 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. Also, 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 on 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 may 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 interrupt generation rate as the first rate through the interrupt generation module. In addition, 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 transmission queue exceeds the preset 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 preset threshold length, the processor 130 may maintain the interrupt generation rate at the first rate through the interrupt generation control module. Here, maintaining the interrupt generation rate at the first rate means that no additional control is performed while the interrupt generation rate is maintained at the first rate, and the duration of the interrupt until the period of identifying the length of the transmission queue again occurs. It may include the meaning of controlling so that the generation rate becomes the first rate.

한편, 송신 큐의 길이가 임계 길이를 초과하면, 프로세서(130)는 기 설정된 제어 구간 동안 인터럽트의 발생 속도를 제2 속도로 변경하고, 제어 구간이 경과되면, 다시 인터럽트의 발생 속도를 제1 속도로 변경할 수 있다. 여기서, 제어 구간의 길이는 송신 큐의 길이와 임계 길이 사이의 차이를 바탕으로 결정될 수 있으며, 보다 구체적으로는, 송신 큐의 길이와 임계 길이 사이의 차이에 비례하도록 결정될 수 있다. On the other hand, when 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 again 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 to be proportional 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, the embodiments related to the control method as described above with reference to FIGS. 1 to 3 may be similarly 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 method for controlling 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 including a program for executing a control method of the electronic device 100 , the electronic device 100 receives an input/output request from the external device 200 and responds according to the input/output request. When the operation is completed, an interrupt indicating the completion of the operation is generated, and an input/output response to the phase input/output request may be transmitted to the external device 200 . And, the control method of the electronic device 100 includes the steps of controlling an interrupt generation rate to a first rate, identifying a length of a transmission queue for transmitting an input/output response to the external device 200, and a transmission queue The method may include changing the interrupt generation rate to a second rate that is faster than the first rate when the length of α exceeds a preset threshold length.

이상에서 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해 간략하게 설명하였으나, 이는 중복 설명을 생략하기 위한 것일 뿐이며, 전자 장치(100)에 대한 다양한 실시 예는 전자 장치(100)의 제어 방법, 그리고 전자 장치(100)의 제어 방법을 실행하는 프로그램을 포함하는 컴퓨터 판독 가능 기록매체에 대해서도 적용될 수 있음은 물론이다.In the above, the control method of the electronic device 100 and the computer-readable recording medium including a program for executing the control method of the electronic device 100 have been briefly described, but this is only for omitting redundant description, and Of course, various embodiments of the device 100 may be applied to a computer-readable recording medium including a control method of the electronic device 100 and a program for 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-transitory storage medium' is a tangible device and only means that it does not contain a signal (eg, electromagnetic wave). It does not distinguish the case where it is stored as For example, the 'non-transitory 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 an embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly or online between smartphones (eg: smartphones). In the case of online distribution, at least a portion of the computer program product (eg, a downloadable app) is stored in device-readable storage, such as the manufacturer's server, the server of an application store, or the memory 120 of a relay server. At least temporarily stored in the medium, or may be temporarily created.

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

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

한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.Meanwhile, the term “unit” or “module” used in the present disclosure includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, part, or circuit. can A “unit” or “module” may be an integrally formed component or a minimum unit or a part of performing one or more functions. For example, the module may be configured as 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 instructions stored in a machine-readable storage medium readable by a machine (eg, a computer). The device calls the stored instructions from the storage medium. and, as a device capable of operating according to the called command, the electronic device 100 (eg, the electronic device 100) according to the disclosed embodiments may be included.

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

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.In the above, preferred embodiments of the present disclosure have been illustrated and described, but the present disclosure is not limited to the specific embodiments described above, and it is common in the technical field to which the disclosure pertains without departing from the gist of the disclosure as claimed in the claims. Various modifications may be made by those having the knowledge of

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

Claims (10)

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

A non-transitory computer-readable recording medium comprising a program for executing a control method of an electronic device,
The electronic device is
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;
The control method of the electronic device,
controlling the interrupt generation rate to a first rate;
identifying a length of a transmission queue for transmitting the input/output response to the external device; and
changing the interrupt generation rate to a second rate faster than the first rate when the length of the transmission queue exceeds a preset threshold length; A computer-readable recording medium comprising a.

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 true KR20220096820A (en) 2022-07-07
KR102503579B1 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)

Citations (3)

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

Patent Citations (3)

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

Also Published As

Publication number Publication date
KR102503579B1 (en) 2023-02-24

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
US10979503B2 (en) System and method for improved storage access in multi core system
US11188399B2 (en) Determining whether to suppress an interrupt indicating completion of processing of a frame based on priority of the frame and current value information
JP6072084B2 (en) Virtual computer system and data transfer control method for virtual computer system
JP2006338538A (en) Stream processor
KR20210080009A (en) Accelerator, method for operating the same and device including the same
US8615609B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
KR102503579B1 (en) Electronic device for controlling interrupt based on transmission queue and control method thereof
JP6193189B2 (en) NAND background processing controller
US10901491B2 (en) Sleep management method and device, and computer storage medium
US20190243673A1 (en) System and method for timing out guest operating system requests from hypervisor level
KR102625723B1 (en) Electronic device and controlling method of electronic device
US8806078B2 (en) Information processing device and program product
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
US10884733B2 (en) Information processing apparatus, and information processing method
CN110764710A (en) Data access method and storage system of low-delay and high-IOPS
JP5654440B2 (en) Wireless communication system, relay device, and communication method
KR102535532B1 (en) Data Reduction Device, Data Reduction Method And System Including Data Reduction Device
US12032474B2 (en) Computer-readable recording medium storing acceleration test program, acceleration test method, and acceleration test apparatus
US20220413996A1 (en) Computer-readable recording medium storing acceleration test program, acceleration test method, and acceleration test apparatus
US9223542B2 (en) Variable-sized buffers mapped to hardware registers
CN113711192A (en) Information processing apparatus

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