KR20210120299A - 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치 - Google Patents

폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치 Download PDF

Info

Publication number
KR20210120299A
KR20210120299A KR1020200036830A KR20200036830A KR20210120299A KR 20210120299 A KR20210120299 A KR 20210120299A KR 1020200036830 A KR1020200036830 A KR 1020200036830A KR 20200036830 A KR20200036830 A KR 20200036830A KR 20210120299 A KR20210120299 A KR 20210120299A
Authority
KR
South Korea
Prior art keywords
polling
input
output
processor
frequency
Prior art date
Application number
KR1020200036830A
Other languages
English (en)
Other versions
KR102369354B1 (ko
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 KR1020200036830A priority Critical patent/KR102369354B1/ko
Priority to US17/210,556 priority patent/US11474588B2/en
Publication of KR20210120299A publication Critical patent/KR20210120299A/ko
Application granted granted Critical
Publication of KR102369354B1 publication Critical patent/KR102369354B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • 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)
  • Power Sources (AREA)

Abstract

본 발명은 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치에 관한 것으로, 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 방법은, 스토리지에 의한 입출력(I/O) 요청의 처리 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계, 상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계, 및 상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함한다.

Description

폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치{METHODS AND APPARATUSES FOR CONTROLLING POWER EFFICIENCY BASED ON POLLING I/O}
본 발명은 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치에 관한 것이다.
종래 스토리지보다 더 높은 성능을 제공하는 초고성능 스토리지 디바이스가 등장하고 대중화되면서 모바일 디바이스에 사용되는 스토리지의 속도가 개선되고 있다. 하지만, 이러한 발전을 기존 모바일 운영체제에서 고려하지 않아 고성능 스토리지의 성능을 충분히 사용할 수 없다는 문제점이 존재한다.
도 1은 종래의 인터럽트 I/O 방식을 나타낸 도면이다.
인터럽트 방식(Interrupt-based I/O service)은 모든 I/O 요청을 비동기적으로 처리한다. 스토리지 디바이스(Storage Device) 내부에서 I/O 데이터를 처리하는 동안 해당 I/O 요청을 제출한 프로세스는 I/O 처리가 완료될 때까지 슬립(Sleep)상태에 진입한다. 이때, CPU 스케줄러는 해당 태스크를 다른 CPU로 위임하거나 전력 소모를 줄이기 위한 저전력 모드로 변경한다. 이후, I/O 요청 처리가 완료되면 CPU는 인터럽트로 중지된 태스크를 다시 수행하도록 한다. 해당 기법은 적은 CPU 자원을 요구하긴 하지만 높은 I/O 응답시간을 보여준다.
이와 같이, 종래에 사용되는 인터럽트 I/O 방식은 프로세스가 I/O를 스토리지 디바이스로 보내면 I/O 처리가 완료될 때까지 다른 I/O 작업을 할당하거나 CPU를 저전력 모드로 변경한다. 하지만, 작업 할당 및 모드 변경으로 인해 발생하는 오버헤드가 발생한다. 이러한 오버헤드는 응답시간이 짧아질수록 더 큰 비율을 차지하기 때문에 고성능 스토리지일수록 문제가 심화된다.
도 2는 종래의 폴링 I/O 방식을 나타낸 도면이다.
종래의 폴링 I/O 방식은 이전 인터럽트 방식과 달리 운영체제가 쉬지 않고 스토리지 디바이스의 I/O 요청 완료 여부를 확인한다. 해당 방식은 컨텍스트 스위치(context switch) 혹은 슬립(Sleep)모드로의 진입을 하지 않는다. 따라서 시스템의 I/O 반응속도를 낮추고 처리량을 높이는 데 효과적이다. 그러나 CPU가 계속적으로 스토리지 디바이스를 체크하기 때문에 상당한 CPU 자원 소모가 발생한다.
이와 같이, 폴링 I/O 방식은 인터럽트 I/O 방식과 달리 작업 전환 오버헤드가 존재하지 않아 같은 CPU 클럭 속도 (Frequency)에서도 인터럽트 I/O 처리 방식보다 더 높은 성능을 보여준다. 이때, CPU Frequency를 조정해 전력 소모 효율을 조절하는 종래기술 중 하나인 CPU 거버너(Governor)는 이러한 폴링 I/O 처리 방식에 대한 고려를 전혀 하고 있지 않다. 따라서 폴링 I/O 처리 방식이 수행될 때, 이의 전력 소모량 대비 더 높은 성능에 대한 이점을 얻을 수 없다.
한편, 종래의 스토리지보다 더 높은 성능을 제공하는 초고성능 스토리지 디바이스가 등장하고 대중화되면서 모바일 디바이스에서도 초고성능 스토리지의 사용이 늘어나고 있다. 하지만, 종래 모바일 운영체제에서는 초고성능 스토리지 디바이스의 짧은 응답시간을 고려하지 않았기 때문에, 이의 높은 성능을 충분히 사용하지 못한다. 이 문제를 해결하기 위해, I/O가 동작되는 동안 CPU에 다른 작업을 할당하는 인터럽트 I/O 처리 방식 대신, 작업 완료 여부를 계속해 확인하는 폴링 I/O 처리 방식이 주목받고 있다.
한편, 모바일 디바이스에서는 사용시간 증가를 위해 전력 소모를 줄이려고 노력하고 있다. 그 중 하나인 CPU 거버너(Governor) 기술은 CPU 주파수를 변경해 CPU 성능과 CPU 전력 소모 효율을 조절한다. 이와 같이, 모바일 디바이스는 사용시간 증가를 위해 CPU 전력 효율 조절 기술인 종래의 CPU 거버너(Governor)를 사용한다. 하지만, 이러한 종래의 CPU 거버너는 짧은 응답시간에 최적화된 폴링 I/O에 대한 고려가 되어있지 않다. 모바일 스토리지 디바이스의 성능이 높아짐에도 불구하고 이에 대한 최적화가 수행되고 있지 않다.
본 발명의 실시예들은 스토리지 디바이스의 높아지는 성능에 적합한 폴링 입출력(I/O) 방식의 특성을 고려하여 프로세서의 전력 효율을 향상시키기 위한, 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치를 제공하고자 한다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위의 환경에서도 다양하게 확장될 수 있을 것이다.
본 발명의 일 실시예에 따르면, 전력 효율 조절 장치에 의해 수행되는 전력 효율 조절 방법에 있어서, 스토리지에 의한 입출력(I/O) 요청의 처리 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계; 상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계; 및 상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법이 제공될 수 있다.
상기 방법은, 상기 프로세서의 사용량이 기설정된 임계치를 초과하는지를 확인하는 단계를 더 포함할 수 있다.
상기 폴링 카운트가 발생하는지를 확인하는 단계는, 상기 프로세서의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트가 발생하는지를 확인할 수 있다.
상기 방법은, 상기 프로세서의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화하는 단계를 더 포함할 수 있다.
상기 프로세서의 주파수를 변경하는 단계는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값 이하이면, 상기 프로세서의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경할 수 있다.
상기 프로세서의 주파수를 변경하는 단계는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수를 단계적으로 변경할 수 있다.
상기 프로세서의 주파수를 변경하는 단계는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 상기 폴로 주파수를 입출력 민감도의 배수만큼 변경할 수 있다.
상기 입출력 민감도가 작을수록 상기 폴로 주파수가 증가하는 속도가 높아지고, 상기 입출력 민감도가 클수록 상기 폴로 주파수가 증가하는 속도가 낮아질 수 있다.
상기 폴링 카운트는 폴링 동작 여부 및 폴링이 수행된 횟수를 포함할 수 있다.
상기 방법은, 사용자에 의해 설정된 프로세서의 성능에 따라 상기 입출력 민감도를 조절하는 단계를 더 포함할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 입출력(I/O) 요청을 처리하는 스토리지; 상기 스토리지와 연결된 메모리; 상기 스토리지 및 상기 메모리와 연결되고, 폴링 입출력(Polling I/O) 방식 기반으로 상기 입출력 요청의 처리 여부를 확인하는 프로세서; 및 상기 프로세서의 주파수를 조절하는 커널부를 포함하고, 상기 커널부는, 상기 스토리지에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하고, 상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화하고, 상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 장치가 제공될 수 있다.
상기 커널부는, 상기 프로세서의 사용량이 기설정된 임계치를 초과하는지를 확인할 수 있다.
상기 커널부는, 상기 프로세서의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트가 발생하는지를 확인할 수 있다.
상기 커널부는, 상기 프로세서의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화할 수 있다.
상기 커널부는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값 이하이면, 상기 프로세서의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경할 수 있다.
상기 커널부는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수를 단계적으로 변경할 수 있다.
상기 커널부는, 상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 상기 폴로 주파수를 입출력 민감도의 배수만큼 변경할 수 있다.
상기 입출력 민감도가 작을수록 상기 폴로 주파수가 증가하는 속도가 높아지고, 상기 입출력 민감도가 클수록 상기 폴로 주파수가 증가하는 속도가 낮아질 수 있다.
상기 폴링 카운트는 폴링 동작 여부 및 폴링이 수행된 횟수를 포함할 수 있다.
상기 커널부는, 사용자에 의해 설정된 프로세서의 성능에 따라 상기 입출력 민감도를 조절할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 스토리지, 메모리 및 프로세서가 구비된 전력 효율 조절 장치에 의해 실행될 때, 상기 전력 효율 조절 장치로 하여금 방법을 실행하게 하는 명령어들을 저장하기 위한 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은: 스토리지에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계; 상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계; 및 상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 실시예들은 종래 기술인 CPU 거버너를 개선함으로써 별도의 추가 장치 없이 폴링 I/O 수행을 감지해 CPU가 지원하는 주파수의 최대치(Max CPU Frequency)를 낮출 수 있다. 이를 통해서, CPU는 사용하는 총 전력 소모량을 줄일 수 있다.
또한, 본 발명의 실시예들은 폴링 I/O가 수행되는 횟수가 많아지면 더 높은 성능이 필요하다고 판단함에 따라, 프로세서의 주파수를 단계적으로 증가시켜 더 높은 성능을 제공할 수 있다.
또한, 본 발명의 실시예들은 폴링 I/O 양에 따라서 전력 효율을 단계적으로 조절함으로써, 추가 장치 없이 사용자가 필요로 하는 성능과 전력효율을 제공할 수 있다.
도 1은 종래의 인터럽트 I/O 방식을 나타낸 도면이다.
도 2는 종래의 폴링 I/O 방식을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 장치의 구성을 설명하기 위한 구성도이다.
도 4는 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 방법을 나타낸 흐름도이다.
도 5 및 도 6은 본 발명의 일 실시예와 종래 기술에 따른 CPU 전력 소모량 및 I/O 응답시간을 비교한 도면이다.
도 7은 본 발명의 일 실시예에서 I/O 민감도(I/O_sensitivity)에 따른 CPU 주파수 변화를 나타내는 도면이다.
도 8 및 도 9는 본 발명의 일 실시예에서 I/O 민감도(I/O_sensitivity)에 따른 CPU 수행시간 및 CPU 전력 소모량을 나타내는 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해될 수 있다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들이 용어들에 의해 한정되는 것은 아니다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 발명에서 사용한 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나 이는 당 분야에 종사하는 기술자의 의도, 판례, 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 발명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시예들을 첨부 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 3은 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 장치의 구성을 설명하기 위한 구성도이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 장치(100)는 프로세서(110), 메모리(120), 스토리지(130) 및 커널부(140)를 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 폴링 입출력 방식 기반 전력 효율 조절 장치(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 폴링 입출력 방식 기반 전력 효율 조절 장치(100)가 구현될 수 있다.
이하, 도 3의 폴링 입출력 방식 기반 전력 효율 조절 장치(100)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.
스토리지(130)는 폴링 입출력 방식 기반 전력 효율 조절 장치(100)에서의 입출력(I/O) 요청을 처리한다.
메모리(120)는 스토리지(130) 및 프로세서(110)와 연결된다. 메모리(120)는 커널부(140)로 하여금 폴링 입출력 방식 기반 전력 효율 조절 방법을 수행하게 하는 적어도 하나의 프로그램을 저장한다.
프로세서(110)는 스토리지(130) 및 메모리(120)와 연결되고, 폴링 입출력(Polling I/O) 방식 기반으로 입출력 요청의 처리 여부를 확인한다. 프로세서(110)는 중앙 처리 유닛(CPU, Central Processing Unit)일 수 있다.
커널부(140)는 적어도 하나의 프로그램을 수행함으로써, 프로세서(110)의 주파수를 조절한다. 커널부(140)는 스토리지(130)에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하고, 폴링 카운트가 발생하지 않으면, 프로세서(110)의 최대 주파수를 초기화하고, 폴링 카운트가 발생하면, 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 프로세서(110)의 주파수를 변경한다.
이와 같이, 폴링 입출력 방식 기반 전력 효율 조절 장치(100)는 폴링 I/O 양에 따라 단계적으로 전력 효율을 조절할 수 있다. 전력 효율 조절 장치(100)는 폴링 I/O 동작을 감지하면 더 낮은 프로세서(110)의 주파수를 사용해, 종래에 동작되는 인터럽트 I/O 보다 더 높은 성능을 보장하면서 소모 전력은 줄일 수 있다. 또한, 전력 효율 조절 장치(100)는 폴링 I/O양이 많아짐에 따라 더 높은 성능이 필요하다 판단되면 프로세서(110)의 주파수(CPU Frequency)를 높여 성능을 높일 수 있다.
실시예들에 따르면, 커널부(140)는, 프로세서(110)의 사용량이 기설정된 임계치를 초과하는지를 확인할 수 있다.
실시예들에 따르면, 커널부(140)는 프로세서(110)의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트가 발생하는지를 확인할 수 있다.
실시예들에 따르면, 커널부(140)는 프로세서(110)의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화할 수 있다.
실시예들에 따르면, 커널부(140)는 발생된 폴링 카운트가 입출력 민감도의 배수 값 이하이면, 프로세서(110)의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서(110)의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경할 수 있다.
실시예들에 따르면, 커널부(140)는 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서(110)의 최소 주파수인 폴로 주파수를 단계적으로 변경할 수 있다.
실시예들에 따르면, 커널부(140)는 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 상기 폴로 주파수를 입출력 민감도의 배수만큼 변경할 수 있다.
실시예들에 따르면, 입출력 민감도가 작을수록 폴로 주파수가 증가하는 속도가 높아지고, 입출력 민감도가 클수록 폴로 주파수가 증가하는 속도가 낮아질 수 있다.
실시예들에 따르면, 폴링 카운트는 폴링 동작 여부 및 폴링이 수행된 횟수를 포함할 수 있다.
실시예들에 따르면, 커널부(140)는 사용자에 의해 설정된 프로세서(110)의 성능에 따라 상기 입출력 민감도를 조절할 수 있다.
이와 같이, 폴링 입출력 방식 기반 전력 효율 조절 장치(100)는 추가 장치 없이 폴링 I/O에 대한 CPU 주파수를 낮춰 사용 전력을 낮추기 위하여 CPU 온디맨드(Ondemand) 거버너를 개선한 것이다. 기본 CPU 거버너로 주로 사용되는 온디맨드(Ondemand) 거버너는 CPU 사용량에 따라서 CPU 주파수를 조정한다. 이때, 전력 효율 조절 장치(100)는 폴링 I/O 동작을 감지하면 CPU가 동작 가능한 최대 주파수 값을 낮춤으로써 폴링 동작 시 수행되는 주파수를 낮출 수 있다. 또한, 전력 효율 조절 장치(100)는 추후 폴링 I/O 양이 커짐에 따라 최대 주파수 값을 높여 수행되는 성능을 높일 수 있다.
도 4는 본 발명의 일 실시예에 따른 폴링 입출력 방식 기반 전력 효율 조절 방법을 나타낸 흐름도이다.
단계 S101에서, 전력 효율 조절 장치(100)는 프로세서(110)의 사용량을 측정한다.
단계 S102에서, 전력 효율 조절 장치(100)는 프로세서(110)의 사용량이 기설정된 임계치(예컨대, 95% 등)를 초과하는지를 확인한다.
단계 S103에서, 전력 효율 조절 장치(100)는 프로세서(110)의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화한다.
단계 S104에서, 전력 효율 조절 장치(100)는 프로세서(110)의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트를 획득한다.
그리고 단계 S105에서, 전력 효율 조절 장치(100)는 폴링 카운트가 발생하는지를 확인한다. 즉, 전력 효율 조절 장치(100)는 스토리지(130)에 의한 입출력(I/O) 요청의 처리 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인한다.
단계 S106에서, 전력 효율 조절 장치(100)는 폴링 카운트가 발생하지 않으면, 프로세서(110)의 최대 주파수를 초기한다.
단계 S107에서, 전력 효율 조절 장치(100)는 폴링 카운트가 발생하면, 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하는지를 확인한다. 여기서, 전력 효율 조절 장치(100)는 사용자에 의해 설정된 프로세서(110)의 성능에 따라 입출력 민감도를 조절할 수 있다.
단계 S108에서, 전력 효율 조절 장치(100)는 발생된 폴링 카운트가 입출력 민감도의 배수 값 미만 이하이면, 프로세서(110)의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서(110)의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경한다.
단계 S109에서, 전력 효율 조절 장치(100)는 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 폴로 주파수를 입출력 민감도의 배수인 n 단계만큼 변경한다. 이와 같이, 전력 효율 조절 장치(100)는 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서(110)의 최소 주파수인 폴로 주파수를 단계적으로 변경할 수 있다.
이와 같이, 전력 효율 조절 장치(100)는 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 프로세서(110)의 주파수를 변경할 수 있다. 입출력 민감도가 작을수록 폴로 주파수가 증가하는 속도가 높아지고, 입출력 민감도가 클수록 상기 폴로 주파수가 증가하는 속도가 낮아진다.
한편, 본 발명의 일 실시예에 따른 전력 효율 조절 장치(100)는 프로세스가 폴링 I/O 동작을 수행할 때마다 CPU가 조정 가능한 최대 CPU 주파수를 낮춰 전력 소모량을 줄일 수 있다. 또한, 전력 효율 조절 장치(100)는 수행되는 I/O 양에 따라서 더 높은 성능이 필요하다고 판단되는 경우, 최대 CPU 주파수를 다시 단계적으로 높여줌으로써 사용자가 필요로 하는 성능을 제공할 수 있다.
본 발명의 일 실시예에서는 온디맨드(Ondemand) 거버너에 새롭게 추가된 폴링 카운트(poll_count) 인자와 CPU 사용량(utilization)을 사용해 폴링 I/O 동작 여부를 확인할 수 있다.
전력 효율 조절 장치(100)는 폴링의 경우 대부분의 CPU 사용량을 사용하므로 이를 우선적으로 비교한다. 전력 효율 조절 장치(100)는 CPU 사용량이 95%를 넘지 않는 경우 폴링 카운트(poll_count) 및 CPU 주파수의 초기화를 해줌으로써 폴링 I/O가 수행중이 아닐 때는 종래 동작과 같이 동작할 수 있게 한다.
또한, 폴링 카운트(poll_count)는 정수 타입인 int 형태의 인자로서 단순히 폴링의 수행 여부뿐만 아니라 폴링이 수행된 횟수도 확인하는 역할도 맡고 있다. 폴링 카운트(poll_count)는 blk_mq_poll()이라는 스토리지(130)에서 I/O가 완료되었는지 여부를 계속 확인하는 함수가 수행될 때마다 하나씩 증가한다. 전력 효율 조절 장치(100)는 수행된 폴링 I/O 수를 측정할 수 있다.
본 발명의 일 실시예에 따른 전력 효율 조절 장치(100)에서 동작하는 온디맨드(Ondemand) 거버너는 정해진 시간마다 od_update() 함수를 불러 현재 CPU 사용률을 측정하여 그에 따라 CPU 주파수를 결정한다. 이때, 본 발명의 일 실시예에서는 CPU 주파수를 변경하기 전에 폴링 여부 및 I/O 수에 따라 CPU 최대 주파수(Max Frequency)를 낮춰줌으로써 전력소모 효율을 조정할 수 있다.
여기서, 폴로 주파수(Pollo Frequency)와 I/O 민감도(I/O_sensitivity)라는 두 가지 개념이 추가되어 사용된다. 폴로 주파수(Pollo Frequency)는 폴링 I/O를 사용시 인터럽트 I/O보다 더 높은 성능을 보여주는 제일 낮은 CPU 주파수를 나타낸다. 전력 효율 조절 장치(100)는 폴링 I/O가 동작한다고 판단되면 현재 CPU 최대 주파수(Max Frequency)를 폴로 주파수(Pollo Frequency)로 변경한다. 그리고 I/O 민감도(I/O_sensitivity)는 폴링 카운트(poll_count)와 비교해 더 높은 성능이 필요하다고 판단되는 기준을 나타낸다.
전력 효율 조절 장치(100)는 I/O 민감도(I/O_sensitivity) 값을 기준으로 이의 n 배수와 비교해, 폴링 카운트(poll_count)가 I/O 민감도(I/O_sensitivity)를 넘어가면 성능을 원래의 CPU 최대 주파수(Max Frequency)까지 단계적으로 올릴 수 있다. 만약, 전력 효율 조절 장치(100)는 폴링 카운트(poll_count)가 I/O 민감도(I/O_sensitivity)의 세 배를 넘기면 폴로 주파수(Pollo Frequency)를 세 단계 높인다. 따라서 전력 효율 조절 장치(100)는 사용자가 필요로 하는 성능에 따라 I/O 민감도(I/O_sensitivity)를 설정함으로써, 원하는 성능을 사용할 수 있다.
한편, 본 발명의 실시예들은 폴링 I/O가 수행될 때 CPU 주파수를 낮춰 CPU 전력 소모량을 줄일 수 있는 지를 검증하기 위해 다음과 같은 환경을 구축하였다. 리눅스 커널 4.19.64 버전을 사용하였고 우분투(Ubuntu) 16.04.6 LTS 버전을 활용하였다. I/O 응답시간을 확인하기 위해 FIO 벤치마크의 O_DIRECT 옵션을 사용해 임의 쓰기 I/O를 20GB 만큼 발행하였다. 그리고 CPU 주파수를 측정하기 위해 cpuinfo를, CPU 전력 소모량을 측정하기 위하여 sysfs 모듈의 powercap을 사용하였다. I/O 민감도(I/O_sensitivity)에 따른 효과를 확인하기 위하여 I/O 민감도(I/O_sensitivity)의 값을 100MB, 500MB, 1GB, 2GB, 5GB 그리고 10GB로 변경해가며 실험하였다. 베이스라인(Baseline)은 종래 커널의 인터럽트 I/O 처리 방식을 의미하고 PollO는 본 발명인 폴링 I/O 처리 방식을 뜻한다.
도 5 및 도 6은 본 발명의 일 실시예와 종래 기술에 따른 CPU 전력 소모량 및 I/O 응답시간을 비교한 도면이다.
실험 결과, 도 5와 같이, 본 발명의 실시예(PollO)가 종래 기법보다 더 낮은 CPU 전력 소모량을 보여주는 것을 확인하였다. 그럼에도 불구하고 도 6에서 보듯, 본 발명의 실시예(PollO)의 응답시간이 더 낮은 것을 보여준다. 이는 폴링 I/O를 감지해 그림 1, 2에서 보듯 최대 CPU 주파수를 미리 정해놓은 폴로 주파수(Pollo Frequency)로 낮춰주기 때문이다.
도 7은 본 발명의 일 실시예에서 I/O 민감도(I/O_sensitivity)에 따른 CPU 주파수 변화를 나타내는 도면이다.
도 7에 도시된 바와 같이, I/O 민감도(I/O_sensitivity)가 작을수록 CPU 주파수가 올라가는 속도가 높아 더 오랫동안 높은 CPU 주파수를 사용할 수 있게 한다.
반대로 I/O 민감도(I/O_sensitivity)가 클수록 더 오랫동안 낮은 CPU 주파수를 사용하게 된다. 또한, I/O 민감도(I/O_sensitivity)의 변화에 따라서 총 수행 시간 및 전력 소모량도 변하는 것을 알 수 있다.
도 8 및 도 9는 본 발명의 일 실시예에서 I/O 민감도(I/O_sensitivity)에 따른 CPU 수행시간 및 CPU 전력 소모량을 나타내는 도면이다.
도 8에 도시된 바와 같이, I/O 민감도(I/O_sensitivity)가 작아질수록 높은 CPU 주파수를 더 오랫동안 사용해 수행시간이 짧아지는 것을 확인 할 수 있다.
그리고 도 9에서 보듯, I/O 민감도(I/O_sensitivity)가 커질수록 CPU 전력소모량이 적어지는 것을 확인할 수 있다.
이와 같이, 본 발명의 실시예들은 폴링 I/O 처리 방식을 고려해 추가 장치 없이 CPU 전력 소모량을 동적으로 줄일 수 있다. 또한, 본 발명의 실시예들은 이를 통해 모바일 사용자에게 더 많은 성능과 전력 선택권을 제공할 수 있다.
한편, 스토리지, 메모리 및 프로세서가 구비된 전력 효율 조절 장치에 의해 실행될 때, 상기 전력 효율 조절 장치로 하여금 방법을 실행하게 하는 명령어들을 저장하기 위한 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은: 스토리지에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계; 상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계; 및 상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 이상에서 설명된 다양한 실시예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 전력 효율 조절 장치
110: 프로세서
120: 메모리
130: 스토리지
140: 커널부

Claims (21)

  1. 전력 효율 조절 장치에 의해 수행되는 전력 효율 조절 방법에 있어서,
    스토리지에 의한 입출력(I/O) 요청의 처리 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계;
    상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계; 및
    상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  2. 제1항에 있어서,
    상기 프로세서의 사용량이 기설정된 임계치를 초과하는지를 확인하는 단계를 더 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  3. 제2항에 있어서,
    상기 폴링 카운트가 발생하는지를 확인하는 단계는,
    상기 프로세서의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트가 발생하는지를 확인하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  4. 제2항에 있어서,
    상기 프로세서의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화하는 단계를 더 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  5. 제1항에 있어서,
    상기 프로세서의 주파수를 변경하는 단계는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값 이하이면, 상기 프로세서의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  6. 제1항에 있어서,
    상기 프로세서의 주파수를 변경하는 단계는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수를 단계적으로 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  7. 제6항에 있어서,
    상기 프로세서의 주파수를 변경하는 단계는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 상기 폴로 주파수를 입출력 민감도의 배수만큼 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  8. 제6항에 있어서,
    상기 입출력 민감도가 작을수록 상기 폴로 주파수가 증가하는 속도가 높아지고, 상기 입출력 민감도가 클수록 상기 폴로 주파수가 증가하는 속도가 낮아지는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  9. 제6항에 있어서,
    상기 폴링 카운트는 폴링 동작 여부 및 폴링이 수행된 횟수를 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  10. 제1항에 있어서,
    사용자에 의해 설정된 프로세서의 성능에 따라 상기 입출력 민감도를 조절하는 단계를 더 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 방법.
  11. 입출력(I/O) 요청을 처리하는 스토리지;
    상기 스토리지와 연결된 메모리;
    상기 스토리지 및 상기 메모리와 연결되고, 폴링 입출력(Polling I/O) 방식 기반으로 상기 입출력 요청의 처리 여부를 확인하는 프로세서; 및
    상기 프로세서의 주파수를 조절하는 커널부를 포함하고,
    상기 커널부는,
    상기 스토리지에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하고,
    상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화하고,
    상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  12. 제11항에 있어서,
    상기 커널부는,
    상기 프로세서의 사용량이 기설정된 임계치를 초과하는지를 확인하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  13. 제12항에 있어서,
    상기 커널부는,
    상기 프로세서의 사용량이 기설정된 임계치를 초과하면, 폴링 카운트가 발생하는지를 확인하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  14. 제12항에 있어서,
    상기 커널부는,
    상기 프로세서의 사용량이 기설정된 임계치 이하이면, 폴링 카운트 및 최대 주파수를 초기화하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  15. 제11항에 있어서,
    상기 커널부는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값 이하이면, 상기 프로세서의 최대 주파수를, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수(Pollo frequency)로 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  16. 제11항에 있어서,
    상기 커널부는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 인터럽트 입출력 보다 높은 성능을 보여주는 프로세서의 최소 주파수인 폴로 주파수를 단계적으로 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  17. 제16항에 있어서,
    상기 커널부는,
    상기 발생된 폴링 카운트가 입출력 민감도의 배수 값을 초과하면, 상기 폴로 주파수를 입출력 민감도의 배수만큼 변경하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  18. 제16항에 있어서,
    상기 입출력 민감도가 작을수록 상기 폴로 주파수가 증가하는 속도가 높아지고, 상기 입출력 민감도가 클수록 상기 폴로 주파수가 증가하는 속도가 낮아지는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  19. 제16항에 있어서,
    상기 폴링 카운트는 폴링 동작 여부 및 폴링이 수행된 횟수를 포함하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  20. 제11항에 있어서,
    상기 커널부는,
    사용자에 의해 설정된 프로세서의 성능에 따라 상기 입출력 민감도를 조절하는, 폴링 입출력 방식 기반 전력 효율 조절 장치.
  21. 스토리지, 메모리 및 프로세서가 구비된 전력 효율 조절 장치에 의해 실행될 때, 상기 전력 효율 조절 장치로 하여금 방법을 실행하게 하는 명령어들을 저장하기 위한 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은:
    스토리지에서 입출력(I/O)의 완료 여부를 확인하는 폴링 입출력(Polling I/O) 동작에 따른 폴링 카운트가 발생하는지를 확인하는 단계;
    상기 폴링 카운트가 발생하지 않으면, 프로세서의 최대 주파수를 초기화는 단계; 및
    상기 폴링 카운트가 발생하면, 상기 발생된 폴링 카운트와 입출력 민감도(I/O sensitivity)와의 비교에 따라 상기 프로세서의 주파수를 변경하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능한 저장 매체.
KR1020200036830A 2020-03-26 2020-03-26 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치 KR102369354B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200036830A KR102369354B1 (ko) 2020-03-26 2020-03-26 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치
US17/210,556 US11474588B2 (en) 2020-03-26 2021-03-24 Method and apparatus for controlling power efficiency of processor based on polling I/O

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200036830A KR102369354B1 (ko) 2020-03-26 2020-03-26 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210120299A true KR20210120299A (ko) 2021-10-07
KR102369354B1 KR102369354B1 (ko) 2022-03-02

Family

ID=77855939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200036830A KR102369354B1 (ko) 2020-03-26 2020-03-26 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치

Country Status (2)

Country Link
US (1) US11474588B2 (ko)
KR (1) KR102369354B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100550195B1 (ko) * 2002-12-18 2006-02-08 인터내셔널 비지네스 머신즈 코포레이션 전력을 고려한 적응형 폴링
KR20170049195A (ko) * 2015-10-28 2017-05-10 고려대학교 산학협력단 전자 기기의 입출력 버스 주파수 설정 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239652A (en) * 1991-02-04 1993-08-24 Apple Computer, Inc. Arrangement for reducing computer power consumption by turning off the microprocessor when inactive
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US8706652B2 (en) * 2009-06-09 2014-04-22 Northwestern University System and method for controlling power consumption in a computer system based on user satisfaction
JP5528939B2 (ja) * 2010-07-29 2014-06-25 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
KR102222752B1 (ko) * 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법
US11734204B2 (en) * 2019-04-02 2023-08-22 Intel Corporation Adaptive processor resource utilization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100550195B1 (ko) * 2002-12-18 2006-02-08 인터내셔널 비지네스 머신즈 코포레이션 전력을 고려한 적응형 폴링
KR20170049195A (ko) * 2015-10-28 2017-05-10 고려대학교 산학협력단 전자 기기의 입출력 버스 주파수 설정 방법

Also Published As

Publication number Publication date
US20210303057A1 (en) 2021-09-30
KR102369354B1 (ko) 2022-03-02
US11474588B2 (en) 2022-10-18

Similar Documents

Publication Publication Date Title
US11543968B2 (en) Computer system for performing adaptive interrupt control and method for controlling interrupt thereof
US10089266B2 (en) Power saving feature for storage subsystems
EP3411775B1 (en) Forced idling of memory subsystems
US7725637B2 (en) Methods and apparatus for generating system management interrupts
US9063835B2 (en) Managing processing of user requests and data replication for a mass storage system
US10877790B2 (en) Information processing apparatus, control method and storage medium
EP3869318B1 (en) Storage devices configured to support multiple hosts and operation methods thereof
KR20140142530A (ko) 데이터 저장 장치 및 그것의 명령어 스케줄링 방법
US9128711B2 (en) Method, computer system and control device for reducing power consumption
US11741031B2 (en) Adaptive I/O completion method and recordable medium storing program for the same
KR101899719B1 (ko) 가상 머신에 대한 입출력 성능 제한 방법
Lee et al. Efficient hybrid polling for ultra-low latency storage devices
KR102369354B1 (ko) 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치
US11709626B2 (en) Scheduling storage system tasks to promote low latency and sustainability
KR101513398B1 (ko) 소모전력을 감소시킬 수 있는 단말장치 및 이의 제어방법
JPWO2010089808A1 (ja) 仮想計算機の割当方法及び割当プログラム並びに仮想計算機環境を有する情報処理装置
KR102625723B1 (ko) 전자 장치 및 전자 장치의 제어 방법
US11106361B2 (en) Technologies for lockless, scalable, and adaptive storage quality of service
WO2023287407A1 (en) Hardware component initialization
TW201727435A (zh) 具有多核心處理器的電子裝置以及多核心處理器的管理方法
CN108196942B (zh) 一种内存超分配虚拟机的快速启动方法
US20150242131A1 (en) Storage control device and storage apparatus
US10073723B2 (en) Dynamic range-based messaging
CN113439260A (zh) 针对低时延存储设备的i/o完成轮询
US11829798B2 (en) System and method to improve data compression ratios for fixed block sizes in a smart data accelerator interface device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant