KR20130114795A - 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템 - Google Patents

동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20130114795A
KR20130114795A KR1020120037112A KR20120037112A KR20130114795A KR 20130114795 A KR20130114795 A KR 20130114795A KR 1020120037112 A KR1020120037112 A KR 1020120037112A KR 20120037112 A KR20120037112 A KR 20120037112A KR 20130114795 A KR20130114795 A KR 20130114795A
Authority
KR
South Korea
Prior art keywords
dvfs
program
processor
dvfsp
computing system
Prior art date
Application number
KR1020120037112A
Other languages
English (en)
Inventor
안명호
Original Assignee
안명호
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 안명호 filed Critical 안명호
Priority to KR1020120037112A priority Critical patent/KR20130114795A/ko
Publication of KR20130114795A publication Critical patent/KR20130114795A/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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS)) 결정 방법은 인터넷을 통하여 DVFS 프로그램이 서버로부터 컴퓨팅 시스템으로 다운로드되어 설치되는 단계, 상기 DVFS 프로그램이 사용자에 의해 실행됨에 따라, 상기 DVFS 프로그램이 상기 컴퓨팅 시스템에서 실행중인 적어도 하나의 프로세스를 포함하는 리스트를 작성하는 단계, 상기 DVFS 프로그램이 상기 리스트를 디스플레이에 디스플레이하는 단계, 및 디스플레이된 상기 리스트에 포함된 상기 적어도 하나의 프로세스 중에서 적어도 하나가 타겟 프로세스로서 입력 장치를 통해 선택되는 경우, 상기 DVFS 프로그램은 상기 타겟 프로세스에 할당된 프로세서를 상기 DVFS를 적용하기 위한 DVFS 프로세서로서 설정하는 단계를 포함할 수 있다.

Description

동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템{DICIDING METHOD OF DYNAMIC VOLTAGE AND FREQUENCY SCALING(DVFS) AND SYSTEM THEREOF}
본 발명의 개념에 따른 실시 예는 동적 전압 및 주파수 스케일링에 관한 것으로, 특히 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템에 관한 것이다.
최근, 시스템, 예컨대 멀티 프로세서 시스템(multi processor system) 또는 멀티 코어 프로세서 시스템(multi core processor system)의 프로세서는 동작 주파수가 빨라질수록 더욱 많은 양의 연산을 처리할 수 있고, 상기 동작 주파수가 높아질수록 더욱 많은 전력을 소모한다. 즉, 상기 프로세서가 높은 동작 주파수 및 그에 따른 높은 동작 전압으로 동작함에 따라 많은 전력을 소모하고 있는 것이다. 다만, 상기 프로세서는 기술적인 진보를 이뤄 처리속도가 과거에 비해 대단히 빨라졌기 때문에 항시 상기 프로세서의 최고속도로 처리할 필요가 없다.
동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS)) 기술은 상기 프로세서의 전압과 주파수를 조절하여 상기 프로세서의 전력 소비를 감소시키는 기술이다. 예컨대, 상기 프로세서의 동작 주파수를 3GHz에서 1GHz로 낮추면 이에 따라 상기 프로세서의 전력 소모를 절감할 수 있다. 상기 DVFS 기술을 이용해서 상기 프로세서의 상기 동작 주파수가 조절될 수 있다면, 상기 DVFS 기술은 전력 소모를 최소화하면서 상기 시스템의 성능을 훼손하지 않을 수 있기 때문에 매우 중요하다.
상기 DVFS 기술을 상기 프로세서에 적용하기 위해서는 상기 DVFS 기술의 적용 시기를 정확히 예측해야할 필요가 있다. 종래에는 상기 DVFS 기술의 상기 적용 시기를 예측하기 위해서 상기 프로세서의 프로세서 사용량(processor consumption)을 이용하여 미래의 프로세서 작업량(workload)을 예측한다. 상기 프로세서 사용량은 상기 시스템에 포함된 프로세서들의 평균값을 나태내기 때문에 정확한 예측이 거의 불가능한 문제점이 있다.
본 발명이 이루고자 하는 기술적인 과제는 프로세서의 작업량 추세(workload trend)을 정확히 예측하여 동적 전압 및 주파수 스케일링을 적용 여부를 결정하는 동적 전압 및 주파수 스케일링 결정 방법 및 그 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS)) 결정 방법은 인터넷을 통하여 DVFS 프로그램이 서버로부터 컴퓨팅 시스템으로 다운로드되어 설치되는 단계, 상기 DVFS 프로그램이 사용자에 의해 실행됨에 따라, 상기 DVFS 프로그램이 상기 컴퓨팅 시스템에서 실행중인 적어도 하나의 프로세스(process)를 포함하는 리스트를 작성하는 단계, 상기 DVFS 프로그램이 상기 리스트를 디스플레이에 디스플레이하는 단계, 및 디스플레이된 상기 리스트에 포함된 상기 적어도 하나의 프로세스 중에서 적어도 하나가 타겟 프로세스(target process)로서 입력 장치를 통해 선택되는 경우, 상기 DVFS 프로그램은 상기 타겟 프로세스에 할당된 프로세서(processor)를 상기 DVFS를 적용하기 위한 DVFS 프로세서로서 설정하는 단계를 포함한다.
본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS))을 수행할 수 있는 컴퓨팅 시스템은 DVFS 프로그램을 저장하는 불휘발성 메모리(nonvolatile memory), 및 상기 불휘발성 메모리에 저장된 상기 DVFS 프로그램을 실행시키기 위한 프로세서(processor)를 포함하며, 상기 DVFS 프로그램이 사용자의 명령에 따라 상기 프로세서에 의해 실행됨에 따라, 상기 DVFS 프로그램이 상기 컴퓨팅 시스템에서 실행중인 적어도 하나의 프로세스(process)를 포함하는 리스트를 작성하는 단계, 상기 DVFS 프로그램이 상기 리스트를 디스플레이에 디스플레이하는 단계, 및 디스플레이된 상기 리스트에 포함된 상기 적어도 하나의 프로세스 중에서 적어도 하나가 타겟 프로세스(target process)로서 입력 장치를 통해 선택되는 경우, 상기 DVFS 프로그램은 상기 타겟 프로세스에 할당된 프로세서(processor)를 상기 DVFS를 적용하기 위한 DVFS 프로세서로서 설정하는 단계를 포함한다.
본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 결정 방법은 타겟 프로세스에 할당된 프로세서의 작업량 추세(workload trend)을 정확히 예측하여 전력 절감을 극대화하고 해당 시스템의 성능 저하를 최소화할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 동적 전압 및 주파수 스케일링 결정 방법을 수행할 수 있는 컴퓨팅 시스템을 포함하는 서버/클라이언트 시스템을 도시한 블록도이다.
도 2는 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 결정 방법을 수행할 수 있는 컴퓨팅 시스템의 동작을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 프로그램이 프로세스 리스트를 디스플레이에 디스플레이하는 사용자 인터페이스이다.
도 4는 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 결정 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 동적 전압 및 주파수 스케일링 컴퓨팅 시스템을 포함하는 서버/클라이언트 시스템을 도시한 블록도이다.
도1을 참조하면, 서버/클라이언트 시스템(10)은 서버(100), 컴퓨팅 시스템(200), 및 서버(100)와 컴퓨팅 시스템(200)을 연결하는 네트워크(110)를 포함할 수 있다. 서버(10)는 클라이언트, 예컨대 컴퓨팅 시스템(200)에 여러 서비스를 제공하고, 컴퓨팅 시스템(200)은 네트워크(110)를 통해 서버(100)에 접속하고 서버(100)에서 제공하는 상기 서비스를 이용할 수 있다. 예컨대, 본 발명의 실시 예에 따른 DVFS 프로그램(DVFSP)은 네트워크(110)를 통해 서버(100)로부터 컴퓨팅 시스템(200)으로 다운로드(download)되어 설치될 수 있다.
컴퓨팅 시스템(200)은 멀티 프로세서(210), 불휘발성 메모리(nonvolatile memory, 230), 메모리(memory, 250) 및 이들을 상호 연결하는 버스(270)를 포함할 수 있다. 컴퓨팅 시스템(200)은 컴퓨터(computer), 랩탑(laptop), 모바일 단말기(mobile terminal) 또는 서버(sever) 일 수 있다.
프로세서(210)는 버스(270)를 통해서 컴퓨팅 시스템(200)의 동작을 제어한다. 프로세서(210)는 서브 프로세서들(210-1,210-2,...,210-n)을 포함할 수 있다. 실시 예에 따라, 프로세서(210)는 멀티 프로세서 또는 멀티 코어 프로세서일 수 있고, 서브 프로세서(210-1,210-2,...,210-n)는 멀티 코어 프로세서들 또는 멀티 코어 프로세서의 코어들 일 수 있다.
컴퓨팅 시스템(200)에서는 여러개의 프로세스(process)들이 실행되고, 서브 프로세서들(210-1,210-2,...,210-n)은 실행 중인 상기 프로세스들 중에서 어느 하나에 할당될 수 있다. 네트워크(110)를 통해 다운로드 된 DVFS 프로그램(DVFSP)은 프로세서(210)에 의해 불휘발성 메모리(230)에 저장되고, 컴퓨팅 시스템(200)에 설치될 수 있다.
불휘발성 메모리(230)는 컴퓨팅 시스템(200)을 구동하는 운영 체제(Operating System) 또는 DVFS 프로그램(DVFSP)을 저장할 수 있다. 예컨대, 불휘발성 메모리(230)는 하드 디스크 드라이브(Hard Disk Drive) 또는 솔리드 스테이트 드라이브(Solid State Drive)일 수 있다.
메모리(250)는 서브 프로세서들(210-1,210-2,...,210-n) 각각의 큐 카운트(Queue Count,QC)를 저장할 수 있다. 또한, 메모리(250)는 DVFS 프로그램(DVFSP)이 메모리(250)에 저장된 큐 카운트(QC)를 분석한 큐 카운트 분석 결과(QCAR)도 저장할 수 있다.
도 2는 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 결정 방법을 수행할 수 있는 컴퓨팅 시스템의 동작을 설명하기 위한 흐름도이고, 도 3은 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 프로그램이 프로세스 리스트를 디스플레이에 디스플레이하는 사용자 인터페이스의 실시 예를 나타낸다.
도 1 내지 도3을 참조하면, DVFS 프로그램(DVFSP)은 네트워크(110), 예컨대 인터넷을 통하여 서버(100)로부터 컴퓨팅 시스템(200)으로 다운로드되어 설치될 수 있다(S100). 예컨대, 프로세서(210)는 서버(100)로부터 다운로드 된 DVFS 프로그램(DVFSP)을 불휘발성 메모리(230)에 저장하고, 컴퓨팅 시스템(200)에 설치할 수 있다.
사용자(User)는 컴퓨팅 시스템(200)에 설치된 DVFS 프로그램(DVSFP)을 실행할 수 있다(S105).
실시 예에 따라, 사용자(User)에 의해 DVFS 프로그램(DVFSP)이 실행됨에 따라, DVFS 프로그램(DVFSP)은 컴퓨팅 시스템(200)에서 실행중인 적어도 하나의 프로세스를 포함하는 프로세스 리스트(PL)를 작성할 수 있다(S110). 여기서, 프로세스는 컴컴퓨터 프로그램(computer program) 또는 어플리케이션(application) 이다.
DVFS 프로그램(DVFSP)은 프로세스 리스트(PL)를 디스플레이에 디스플레이할 수 있다(S130). 도 3은 본 발명의 실시 예에 따른 DVFS 프로그램(DVFSP)이 프로세스 리스트(PL)를 작성하여 디스플레이에 디스플레이하는 사용자 인터페이스(User Interface)를 나타낸다. 사용자(User)는 디스플레이된 프로세스 리스트(PL)에 포함된 적어도 하나의 프로세스 중에서 적어도 하나를 타겟 프로세스(TP)로서 입력 장치를 통해 선택할 수 있다(S135). 예컨대, 상기 입력 장치는 키보드(keyboard), 터치 스크린(touch screen), 또는 포인팅 장치(pointing device) 등 일 수 있다.
다른 실시 예에 따라, 사용자(User)에 의해 DVFS 프로그램(DVFSP)이 실행됨에 따라, 사용자(User)는 적어도 하나의 프로세서 중에서 적어도 하나를 타겟 프로세스(TP)로서 텍스트 에디터(text editor)를 통해 입력할 수 있다. 상기 텍스트 에디터는 문서 파일을 편집하기 위해 쓰이는 소프트웨어일 수 있다.
DVFS 프로그램(DVFSP)은 서브 프로세서들(210-1,210-2,...,210-n)중에서 타겟 프로세스(TP)에 할당된 프로세서를 DVFS 기술을 적용하기 위한 DVFS 프로세서(DVFS_P)로서 설정할 수 있다(S137).
즉, 사용자(User)가 컴퓨팅 시스템(200)의 본래 목적의 임무를 수행하기 위해서 타겟 프로세스(TP)를 설정하고, DVFS 기술(DVFS)을 적용하기 위한 DVFS 프로세서(DVFS_P)를 지정하여 전력의 낭비와 컴퓨팅 시스템(200)의 성능을 최소화하는 것이다.
DVFS 프로그램(DVFSP)은 운영 체제(OS)로 서브 프로세서들(210-1,210-2,...,210-n)의 워크로드 관련 데이터(WLD)를 요청할 수 있다(S180). 운영 체제(OS)는 상기 요청에 응답하여 서브 프로세서들(210-1,210-2,...,210-n)의 워크로드 관련 데이터(WLD)를 DVFS 프로그램(DVFSP)으로 출력할 수 있다(S185).
따라서, DVFS 프로그램(DVFSP)은 운영 체제(OS)로부터 DVFS 프로세서(DVFS_P)의 워크로드 관련 데이터(WLD)를 수집할 수 있다. 워크로드 관련 데이터(WLD)는 프로세서(210) 사용량(processor consumption), 서브 프로세서들(210-1,210-2,...,210-n) 각각의 큐 카운트(QC), 디스크 액티비티(disk activity), 메모리 사용량(memory usage), 또는 네트워크 트래픽(network traffic) 등을 포함할 수 있다.
DVFS 프로그램(DVFSP)은 수집된 워크로드 관련 데이터(WLD) 중에서 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 수집하여 메모리(250)에 저장할 수 있다(S187).
큐 카운트(QC)는 해당 프로세서가 처리해야할 일의 양을 의미한다. 예컨대, 큐 카운트(QC)의 숫자가 작을수록 상기 해당 프로세서가 처리해야할 일들을 제시간에 빨리 처리할 수 있는 것을 의미하고, 상기 숫자가 커진다는 것은 상기 해당 프로세서가 처리해야할 상기 일들을 제시간에 처리하지 못해 쌓여 많아진다는 것을 의미한다. 즉, 큐 카운트(QC)는 상기 해당 프로세서의 작업량(workload)이 늘어날지 또는 줄어들지를 예측하는데 중요한 역할을 한다.
따라서, DVFS 프로그램(DVFSP)은 컴퓨팅 시스템(200)에 주어진 임무를 고려하여 주어진 상기 임무와 관련없는 프로세스에 의해 발생한 데이터를 배제하기 위하여 선택된 타겟 프로세스(TP)에 할당된 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)만을 수집하는 것이다.
DVFS 프로그램(DVFSP)은 메모리(250)에 저장된 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 분석할 수 있다(S190). DVFS 프로그램(DVFSP)은 큐 카운트 분석 결과(QCAR)를 메모리(250)에 저장할 수 있다(S195).
실시 예에 따라, DVFS 프로그램(DVFSP)이 DVFS 프로세서(DVFS_P)로서 설정하는 때, 사용자(User)는 DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 워크로드 관련 데이터(WLD)를 수집하는 간격을 조절하기 위한 데이터 샘플링 인터벌(DSI)을 입력할 수 있다(S150). DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)을 설정하고(S155), 설정된 데이터 샘플링 인터벌(DSI)에 따라 운영 체제(OS)로 서브 프로세서들(210-1,210-2,...,210-n)의 워크로드 관련 데이터(WLD)를 요청할 수 있다(S180).
따라서, DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)마다 수집된 큐 카운트(QC)를 분석하고(S190), 큐 카운트 분석 결과(QCAR)를 메모리(250)에 계속해서 저장할 수 있다(S195).
실시 예에 따라, DVFS 프로그램(DVFSP)이 DVFS 프로세서(DVFS_P)로서 설정하는 때, 사용자(User)는 DVFS 프로그램(DVFSP)이 큐 카운트(QC)의 분석을 시작하기 위해서 데이터 샘플링 카운트(DSC)를 입력할 수 있다(S160). DVFS 프로그램(DVFSP)은 데이터 샘플링 카운트(DSC)를 설정할 수 있다(S165).
예컨대, DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 수집한 DVFS 프로세서(DVFS_P)의 워크로드 관련 데이터(WLD)의 수가 데이터 샘플링 카운트(DSC)보다 크거나 같을 때, DVFS 프로그램(DVFSP)은 수집된 워크로드 관련 데이터(WLD)로부터 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 수집하고(S187) 큐 카운트(QC)를 분석할 수 있다(S190). 또한, DVFS 프로그램은 큐 카운트 분석 결과(QCAR)를 메모리(250)에 저장할 수 있다(S195).
DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 수집한 워크로드 관련 데이터(WLD)의 수가 데이터 샘플링 카운트(DSC)보다 작은 때, DVFS 프로그램(DVFSP)은 수집된 워크로드 관련 데이터(WLD)로부터 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 수집하여 메모리(250)에 저장하지만(S187), 큐 카운트(QC)를 분석할 수는 없다. 다만, DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)에 따라 워크로드 관련 데이터(WLD)를 운영 체제(OS)로부터 수집하는 과정부터 반복할 수 있을 뿐이다.
DVFS 프로그램(DVFSP)은 분석 결과, 예컨대 큐 카운트 분석 결과(QCAR)에 따라 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)의 적용 여부를 판단할 수 있다(S200).
실시 예에 따라, 큐 카운트 분석 결과(QCAR)는 큐 카운트(QC) 차이(differential)의 절대값(Dn)을 포함할 수 있다. 절대값(Dn)은 수학식 1을 통해 구할 수 있다.
[수학식 1]
Figure pat00001
DVFS 프로그램(DVFSP)이 DVFS 프로세서의 첫번째 큐 카운트(QC1)를 수집하고, 첫번째 절대값(D1)을 구할 때, 영번째 큐 카운트(QC0)는 0으로 설정할 수 있다. DVFS 프로그램(DVFSP)이 실행되어 첫번째부터 현재 시점의 n번째까지의 절대값(D1,D2,D3,...,Dn-1,Dn)은 메모리(250)에 저장될 수 있다.
절대값(Dn)은 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)의 증가치 또는 감소치이고, DVFS 프로세서(DVFS_P)의 작업량(workload)이 현재 늘어났는지 또는 줄어들었는지를 잘 반영한다. 다만, 절대값(Dn)은 DVFS 프로세서(DVFS_P)의 작업량(workload)이 이미 늘어난 뒤 또는 줄어든 뒤이기 때문에, DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 적용하기 위한 최적의 시간을 이미 놓치게 되는 것이다.
또한, 절대값(Dn)은 비선형(non-linear) 특성을 보이기 때문에 매우 불규칙하게 움직이며 급격한 변화도 빈번하게 발생할 수 있다. DVFS 프로그램(DVFSP)이 큐 카운트(QC) 차이의 절대값(Dn)만을 이용해서 DVFS 기술(DVFS)의 적용 여부를 판단하면, DVFS 기술(DVFS)을 자주 적용하여 더 많은 전력을 소모하고 프로세서(210)의 안정성 저하에 영향을 줄 수 있다.
따라서, DVFS 프로그램(DVFSP)이 절대값(Dn)으로 DVFS 프로세서(DVFS_P)의 작업량을 정확히 예측하기 어렵기 때문에, DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)의 작업량 추세(workoad trend)를 분석하고, 분석 결과에 따라 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)의 적용 여부를 판단할 수 있다.
예컨대, DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)의 작업량 추세를 분석하기 위해서 절대값(D1,D2,D3,...,Dn-1,Dn)의 평균값(Davgn)을 이용할 수 있다. 평균값(Davgn)은 수학식 2를 통해 구할 수 있다.
[수학식 2]
Figure pat00002
큐 카운트 분석 결과(QCAR)는 평균값(Davgn)을 더 포함할 수 있다. 예컨대, DVFS 프로그램(DVFSP)이 실행되어 첫번째부터 현재 시점의 n번째까지의 평균값(Davg1,Davg2,Davg3,...,Davgn -1,Davgn)은 메모리(250)에 저장될 수 있다. 즉, 평균값(Davgn)은 DVFS 프로그램(DVFSP)이 실행된 시점부터 현재 시점까지 DVFS 프로세서(DVFS_P)의 작업량 추세를 분석하는데 이용될 수 있다.
실시 예에 따라, DVFS 프로그램(DVFSP)이 DVFS 프로세서(DVFS_P)로서 설정하는 때, 사용자(User)는 DVFS 프로그램(DVFSP)이 큐 카운트(QC)의 변화가 일정 시간 동안 지속되는 경우에 DVFS 기술(DVFS)를 적용하기 위한 DVFS 듀레이션(DVFS_DR)을 입력할 수 있다(S170). DVFS 프로그램(DVFSP)은 DVFS 듀레이션(DVFS_DR)를 설정할 수 있다(S175).
예컨대, 큐 카운트(QC)의 상기 변화는 DVFS 프로세서(DVFS_P) 작업량의 증가 추세 또는 감소 추세일 수 있다. 보다 구체적으로, 큐 카운트(QC)의 상기 변화, 예컨대 상기 증가 추세가 일정 시간 동안 지속되는 때 DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행하여 DVFS 프로세서(DVFS_P)의 주파수(frequency)를 높일 수 있다. 큐 카운트(QC)의 상기 변화, 예컨대 상기 감소 추세가 일정 시간 동안 지속되는 때 DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행하여 DVFS 프로세서(DVFS_P)의 상기 주파수를 낮출 수 있다.
큐 카운트(QC)의 변화는 절대값(Dn)과 평균값(Davgn)의 크기를 비교하여 구할 수 있다. 예컨대, 현재 시점의 절대값(Dn)이 현재 시점의 평균값(Davgn)보다 큰 때 DVFS 프로그램(DVFSP)은 상기 변화를 증가 추세로 판단하고, 현재 시점의 절대값(Dn)이 현재 시점의 평균값(Davgn)보다 작은 때 DVFS 프로그램(DVFSP)은 상기 변화를 감소 추세로 판단할 수 있다. 따라서, DVFS 프로그램(DVFSP)은 큐 카운트(QC)의 변화, 예컨대 상기 증가 추세 또는 상기 감소 추세가 일정 시간 동안 지속되는 경우에 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행할 수 있다. 큐 카운트 분석 결과(QCAR)은 큐 카운트(QC)의 상기 변화를 더 포함할 수 있다.
보다 구체적으로, DVFS 듀레이션(DVFS_DR)이 '3'으로 설정된 때, 현재 시점의 평균값(Davgn)이 현재 시점의 절대값(Dn)보다 큰 경우가 3번 이상 지속되는 경우, DVFS 프로그램(DVFSP)은 큐 카운트(QC)의 변화를 일정 시간 동안 증가 추세로 판단하고, DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 적용할 수 있다. 현재 시점의 평균값(Davgn)이 현재 시점의 절대값(Dn)보다 작은 경우가 3번 이상 지속되는 경우, DVFS 프로그램(DVFSP)은 큐 카운트(QC)의 변화를 일정 시간 동안 감소 추세로 판단하고, DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 적용할 수 있다.
즉, 큐 카운트(QC)의 변화가 일정 시간 동안 지속되는 때 DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 적용하기 때문에 전력 소모를 최소화하고 프로세서(210)의 안정성에 도움을 줄 수 있다.
도 4는 본 발명의 실시 예에 따른 동적 전압 및 주파수 스케일링 결정 방법을 설명하기 위한 흐름도이다.
도 1내지 도 4를 참조하면, DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)에 따라 워크로드 관련 데이터(WLD)를 운영 체제(OS)로부터 수집할 수 있다(S300). DVFS 프로그램(DVFSP)은 수집된 워크로드 관련 데이터(WLD) 중에서 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 수집하여 메모리(250)에 저장할 수 있다(S303).
DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 수집한 DVFS 프로세서(DVFS_P)의 워크로드 관련 데이터(WLD)의 수를 데이터 샘플링 카운트(DSC)와 비교할 수 있다(S310).
예컨대, DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 수집한 DVFS 프로세서(DVFS_P)의 워크로드 관련 데이터(WLD)의 수가 데이터 샘플링 카운트(DSC)보다 크거나 같을 때, DVFS 프로그램(DVFSP)은 수집된 DVFS 프로세서(DVFS_P)의 큐 카운트(QC)를 분석할 수 있다. 보다 구체적으로, DVFS 프로그램(DVFSP)은 절대값(Dn)과 평균값(Davgn)을 계산하고 메모리(250)에 저장할 수 있다(S330).
다만, DVFS 프로그램(DVFSP)이 운영 체제(OS)로부터 수집한 워크로드 관련 데이터(WLD)의 수가 데이터 샘플링 카운트(DSC)보다 작은 때, DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)에 따라 워크로드 관련 데이터(WLD)를 운영 체제(OS)로부터 수집하는 과정을 다시 반복할 수 있다.
DVFS 프로그램(DVFSP)은 과거 큐 카운트(QC)의 변화를 판단할 수 있다(S331). 예컨대, DVFS 프로그램(DVFSP)는 메모리(250)에 저장된 상기 과거 큐 카운트(QC)의 변화를 읽어(read)와 상기 과거 큐 카운트(QC)의 변화가 증가 추세인지 감소 추세인지 판단할 수 있다.
과거 큐 카운트(QC)의 변화가 감소 추세인 때, DVFS 프로그램(DVFSP)은 현재 큐 카운트(QC)의 변화가 감소 추세인지 판단하고(S332), 상기 과거 큐 카운트의 변화가 증가 추세인 때, DVFS 프로그램(DVFSP)은 현재 큐 카운트(QC)의 변화가 증가 추세인지 판단할 수 있다(S333). 예컨대, 현재 절대값(Dn)과 현재 평균값(Davgn)의 크기를 비교할 수 있다.
보다 구체적으로, 과거 큐 카운트(QC)의 변화가 감소 추세이고 현재 큐 카운트(QC)의 변화가 감소 추세이거나 상기 과거 큐 카운트(QC)의 변화가 증가 추세이고 상기 현재 큐 카운트(QC)의 변화가 증가 추세인 때, DVFS 프로그램(DVFSP)은 듀레이션 카운트(DR_C)를 1씩 증가시킬 수 있다(S337).
과거 큐 카운트(QC)의 변화가 감소 추세이고 현재 큐 카운트(QC)의 변화가 증가 추세이거나 상기 과거 큐 카운트(QC)의 변화가 증가 추세이고 상기 현재 큐 카운트(QC)의 변화가 감소 추세인 때, DVFS 프로그램(DVFSP)은 듀레이션 카운트(DR_C)를 0으로 리셋(reset)하고(S335), 데이터 샘플링 인터벌(DSI)에 따라 워크로드 관련 데이터(WLD)를 운영 체제(OS)로부터 수집하는 과정부터 다시 반복할 수 있다.
DVFS 프로그램(DVFSP)은 듀레이션 카운트(DR_C)와 DVFS 듀레이션(DVFS_DR)을 비교할 수 있다(S350).
예컨대, 듀레이션 카운트(DR_C)와 DVFS 듀레이션(DVFS_DR)보다 크거나 같은 경우인 때, DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행하고, 듀레이션 카운트(DR_C)를 0으로 리셋할 수 있다(S370).
보다 구체적으로, 큐 카운트(QC)의 변화, 예컨대 증가 추세가 지속되는 때 DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행하여 DVFS 프로세서(DVFS_P)의 주파수를 높일 수 있다. 상기 큐 카운트(QC)의 변화, 예컨대 감소 추세가 일정 시간 동안 지속되는 때 DVFS 프로그램(DVFSP)은 DVFS 프로세서(DVFS_P)에 DVFS 기술(DVFS)을 수행하여 DVFS 프로세서(DVFS_P)의 상기 주파수를 낮출 수 있다.
듀레이션 카운트(DR_C)와 DVFS 듀레이션(DVFS_DR)보다 작은 경우인 때, DVFS 프로그램(DVFSP)은 데이터 샘플링 인터벌(DSI)에 따라 워크로드 관련 데이터(WLD)를 운영 체제(OS)로부터 수집하는 과정부터 다시 반복할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 서버/클라이언트 시스템
100: 서버
200: 컴퓨팅 시스템
210: 프로세서
230: 비휘발성 메모리
250: 메모리
DVFS: 동적 전압 및 주파수 스케일링 기술
DVFSP: 동적 전압 및 주파수 스케일링 프로그램

Claims (2)

  1. 인터넷을 통하여 동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS)) 프로그램이 서버로부터 컴퓨팅 시스템으로 다운로드되어 설치되는 단계;
    상기 DVFS 프로그램이 사용자에 의해 실행됨에 따라, 상기 DVFS 프로그램이 상기 컴퓨팅 시스템에서 실행중인 적어도 하나의 프로세스(process)를 포함하는 리스트를 작성하는 단계;
    상기 DVFS 프로그램이 상기 리스트를 디스플레이에 디스플레이하는 단계; 및
    디스플레이된 상기 리스트에 포함된 상기 적어도 하나의 프로세스 중에서 적어도 하나가 타겟 프로세스(target process)로서 입력 장치를 통해 선택되는 경우, 상기 DVFS 프로그램은 상기 타겟 프로세스에 할당된 프로세서(processor)를 상기 DVFS를 적용하기 위한 DVFS 프로세서로서 설정하는 단계를 포함하는 DVFS 결정 방법.
  2. 동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling(DVFS)) 프로그램을 저장하는 불휘발성 메모리(nonvolatile memory); 및
    상기 불휘발성 메모리에 저장된 상기 DVFS 프로그램을 실행시키기 위한 프로세서(processor)를 포함하며,
    상기 DVFS 프로그램이 사용자의 명령에 따라 상기 프로세서에 의해 실행됨에 따라,
    상기 DVFS 프로그램이 상기 컴퓨팅 시스템에서 실행중인 적어도 하나의 프로세스(process)를 포함하는 리스트를 작성하는 단계;
    상기 DVFS 프로그램이 상기 리스트를 디스플레이에 디스플레이하는 단계; 및
    디스플레이된 상기 리스트에 포함된 상기 적어도 하나의 프로세스 중에서 적어도 하나가 타겟 프로세스(target process)로서 입력 장치를 통해 선택되는 경우, 상기 DVFS 프로그램은 상기 타겟 프로세스에 할당된 프로세서(processor)를 상기 DVFS를 적용하기 위한 DVFS 프로세서로서 설정하는 단계를 포함하는 DVFS 결정 방법을 수행할 수 있는 컴퓨팅 시스템.
KR1020120037112A 2012-04-10 2012-04-10 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템 KR20130114795A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120037112A KR20130114795A (ko) 2012-04-10 2012-04-10 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120037112A KR20130114795A (ko) 2012-04-10 2012-04-10 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20130114795A true KR20130114795A (ko) 2013-10-21

Family

ID=49634610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120037112A KR20130114795A (ko) 2012-04-10 2012-04-10 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템

Country Status (1)

Country Link
KR (1) KR20130114795A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678855A (zh) * 2017-09-19 2018-02-09 中国电子产品可靠性与环境试验研究所 处理器动态调节方法、装置及处理器芯片
US10496142B2 (en) 2014-10-14 2019-12-03 Samsung Electronics Co., Ltd. Electronic device having power device and power control method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496142B2 (en) 2014-10-14 2019-12-03 Samsung Electronics Co., Ltd. Electronic device having power device and power control method thereof
CN107678855A (zh) * 2017-09-19 2018-02-09 中国电子产品可靠性与环境试验研究所 处理器动态调节方法、装置及处理器芯片

Similar Documents

Publication Publication Date Title
US9519562B2 (en) Process demand prediction for distributed power and resource management
Bui et al. Rethinking energy-performance trade-off in mobile web page loading
US9696786B2 (en) System and method for optimizing energy consumption by processors
Choi et al. Learning-based SMT processor resource distribution via hill-climbing
Gaudette et al. Improving smartphone user experience by balancing performance and energy with probabilistic QoS guarantee
US8756600B2 (en) Judging apparatus, method, and recording medium of program for estimating the effect of deployment of an application in a virtual machine environment
US20120192200A1 (en) Load Balancing in Heterogeneous Computing Environments
US20060010101A1 (en) System, method and program product for forecasting the demand on computer resources
Sabharwal et al. Enabling green it through energy-aware software
US9436265B2 (en) Information processing apparatus and load control method
US11966778B2 (en) Cloud application scaler
JP6409543B2 (ja) コンピュータ・システムにおいてジョブを実行する方法、資源マネージャおよび高性能コンピュータ・システム
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
US9588811B2 (en) Method and apparatus for analysis of thread latency
US10216526B2 (en) Controlling method for optimizing a processor and controlling system
Livingston et al. Computer using too much power? give it a rest (runtime energy saving technology)
US20220050716A1 (en) Virtual machine placement method and virtual machine placement device implementing the same
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
KR20130114795A (ko) 동적 전압 및 주파수 스케일링 결정 방법 및 그 컴퓨팅 시스템
Furtunato et al. When parallel speedups hit the memory wall
JP4968325B2 (ja) ソフトウェア最適化装置、および最適化方法
US20180314774A1 (en) System Performance Measurement of Stochastic Workloads
WO2020131389A1 (en) Image classification pipeline
US9519497B1 (en) Managing visual updates
CN113886746A (zh) 页面加载方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right