KR20170062365A - 상황인식 리소스 핫플러그 관리 시스템 및 방법 - Google Patents
상황인식 리소스 핫플러그 관리 시스템 및 방법 Download PDFInfo
- Publication number
- KR20170062365A KR20170062365A KR1020160105588A KR20160105588A KR20170062365A KR 20170062365 A KR20170062365 A KR 20170062365A KR 1020160105588 A KR1020160105588 A KR 1020160105588A KR 20160105588 A KR20160105588 A KR 20160105588A KR 20170062365 A KR20170062365 A KR 20170062365A
- Authority
- KR
- South Korea
- Prior art keywords
- computing system
- hot plug
- scenario
- scenarios
- hot
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 리소스 핫플러그 관리 방법은, 복수의 시나리오들을 포함하는 시나리오 데이터에 접근하는 단계, 컴퓨팅 시스템의 상황(context) 정보에 기초하여 복수의 시나리오들을 평가하는 단계, 및 복수의 시나리오들 중 충족된 시나리오에 따라, 컴퓨팅 시스템에 포함된 리소스의 핫플러그 인(hotplug in) 및 핫플러그 아웃(hotplug out)을 제어하는 단계를 포함할 수 있다.
Description
본 개시의 기술적 사상은 리소스 핫플러그 관리 방법에 관한 것으로서, 자세하게는 상황인식 리소스 핫플러그 관리 시스템 및 방법에 관한 것이다.
컴퓨팅 시스템의 컴퓨팅 성능은 전력 소모와 관계될 수 있다. 예를 들면, 많은 연산을 처리하는 컴퓨팅 시스템은 높은 전력을 소모할 수 있는 한편, 적은 연산을 처리하는 컴퓨팅 시스템은 상대적으로 낮은 전력을 소모할 수 있다. 또한, 컴퓨팅 시스템은 높은 확장성을 위하여 신규한 기능의 수행을 위한 새로운 부품을 수용할 수 있고, 이는 결과적으로 컴퓨팅 시스템의 활용도를 상승시킬 수 있다. 이와 같이, 컴퓨팅 시스템의 사용자에게 유연한 환경을 제공하기 위하여, 컴퓨팅 시스템은 컴퓨팅 시스템에 포함된 부품들의 핫플러그(hotplug)(또는 핫플러깅(hotplugging))를 지원할 수 있다.
본 개시의 기술적 사상은 컴퓨팅 시스템의 상황에 기초하여 리소스 핫플러그를 관리함으로써 리소스의 핫플러그 기법의 효율성을 향상시킬 수 있는, 리소스 핫플러그 관리 시스템 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템의 리소스 핫플러그 관리 방법은, 복수의 시나리오들을 포함하는 시나리오 데이터에 접근하는 단계, 컴퓨팅 시스템의 상황(context) 정보에 기초하여 복수의 시나리오들을 평가하는 단계, 및 복수의 시나리오들 중 충족된 시나리오에 따라 컴퓨팅 시스템에 포함된 리소스의 핫플러그 인(hotplug in) 및 핫플러그 아웃(hotplug out)을 제어하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템은, 프로세서 및 프로세서에 의해서 실행됨으로써 리소스의 핫플러그를 관리하는 방법을 수행하는 복수의 명령어들을 저장하는 컴퓨터로 독출가능한 저장 장치를 포함할 수 있고, 리소스의 핫플러그를 관리하는 방법은, 복수의 시나리오들을 포함하는 시나리오 데이터에 접근하는 단계, 컴퓨팅 시스템의 상황(context) 정보에 기초하여 복수의 시나리오들을 평가하는 단계, 및 복수의 시나리오들 중 충족된 시나리오에 따라 컴퓨팅 시스템에 포함된 리소스의 핫플러그 인(hotplug in) 및 핫플러그 아웃(hotplug out)을 제어하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 리소스 핫플러그 관리 시스템 및 방법은, 컴퓨팅 시스템의 상황(context)에 기초하여 리소스를 핫플러그 인 또는 핫플러그 아웃함으로써, 리소스가 불필요하게 핫플러그 인되거나 핫플러그 아웃되는 것을 방지할 수 있다.
또한, 본 개시의 기술적 사상에 따른 리소스 핫플러그 관리 시스템 및 방법은, 리소스를 최적으로 핫플러그 인하거나 핫플러그 아웃함으로써, 컴퓨팅 시스템에 포함된 리소스들의 활용도를 향상시킬 수 있다.
또한, 본 개시의 기술적 사상에 따른 리소스 핫플러그 관리 시스템 및 방법은, 리소스를 효과적으로 핫플러그 인하거나 핫플러그 아웃함으로써, 컴퓨팅 시스템의 전력 소모를 감소시킬 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 나타내는 순서도이다.
도 2는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 블록도를 나타낸다.
도 3a 및 도 3b는 도 2의 컴퓨팅 시스템의 동작에 따른 컴퓨팅 시스템의 디스플레이들을 나타낸다.
도 4는 본 개시의 예시적 실시예에 따라 도 2의 컴퓨팅 시스템의 리소스들의 핫플러그 인/아웃을 정의하는 시나리오들을 나타낸다.
도 5a 및 도 5b는 본 개시의 예시적 실시예들에 따라 리소스 핫플러그 관리 방법을 수행하는 컴퓨팅 시스템들을 나타낸다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 단계 S400의 예시를 나타내는 순서도이다.
도 7은 본 개시의 예시적 실시예에 따른 시나리오 데이터를 나타내는 도면이다.
도 8은 본 개시의 예시적 실시예에 따라 메모리에 저장된 시나리오 데이터를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따라 도 9의 단계 S800의 예시를 나타내는 도면이다.
도 11은 본 개시의 예시적 실시예에 따른 시나리오들을 나타낸다.
도 12는 본 개시의 예시적 실시예에 따라 도 11의 시나리오에 기초하여 CPU 코어의 핫플러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다.
도 13은 본 개시의 예시적 실시예에 따른 시나리오들을 나타낸다.
도 14는 본 개시의 예시적 실시예에 따라 도 13의 시나리오에 기초하여 CPU 코어의 핫프러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다.
도 15는 본 개시의 예시적 실시예에 다른 시나리오를 나타낸다.
도 16은 본 개시의 예시적 실시예에 따라 리소스 핫플러그 관리 방법을 수행하는 소프트웨어 모듈을 나타낸다.
도 2는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 블록도를 나타낸다.
도 3a 및 도 3b는 도 2의 컴퓨팅 시스템의 동작에 따른 컴퓨팅 시스템의 디스플레이들을 나타낸다.
도 4는 본 개시의 예시적 실시예에 따라 도 2의 컴퓨팅 시스템의 리소스들의 핫플러그 인/아웃을 정의하는 시나리오들을 나타낸다.
도 5a 및 도 5b는 본 개시의 예시적 실시예들에 따라 리소스 핫플러그 관리 방법을 수행하는 컴퓨팅 시스템들을 나타낸다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 단계 S400의 예시를 나타내는 순서도이다.
도 7은 본 개시의 예시적 실시예에 따른 시나리오 데이터를 나타내는 도면이다.
도 8은 본 개시의 예시적 실시예에 따라 메모리에 저장된 시나리오 데이터를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따라 도 9의 단계 S800의 예시를 나타내는 도면이다.
도 11은 본 개시의 예시적 실시예에 따른 시나리오들을 나타낸다.
도 12는 본 개시의 예시적 실시예에 따라 도 11의 시나리오에 기초하여 CPU 코어의 핫플러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다.
도 13은 본 개시의 예시적 실시예에 따른 시나리오들을 나타낸다.
도 14는 본 개시의 예시적 실시예에 따라 도 13의 시나리오에 기초하여 CPU 코어의 핫프러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다.
도 15는 본 개시의 예시적 실시예에 다른 시나리오를 나타낸다.
도 16은 본 개시의 예시적 실시예에 따라 리소스 핫플러그 관리 방법을 수행하는 소프트웨어 모듈을 나타낸다.
도 1은 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 나타내는 순서도이다. 도 1에 도시된 바와 같이, 컴퓨팅 시스템의 리소스 핫플러그 관리 방법은 복수의 단계들(S200, S400, S600)을 포함할 수 있다.
핫플러그(hotplug)(또는 핫플러깅(hotplugging))는 컴퓨팅 시스템에서 리소스들을 컴퓨팅 시스템의 동작 중에 제거하거나 추가하는 기능을 지칭할 수 있다. 예를 들면, 컴퓨팅 시스템의 리소스가 컴퓨팅 시스템의 동작 중에 제거되는 경우 그 리소스는 핫플러그 아웃(hotplug out)된 것으로 지칭될 수 있고, 컴퓨팅 시스템의 리소스가 컴퓨팅 시스템의 동작 중에 추가되는 경우 그 리소스는 핫플러그 인(hotplug in)된 것으로 지칭될 수 있다. 리소스의 핫플러그 인/아웃은 리소스가 컴퓨팅 시스템에서 물리적으로 결합되거나 제거되는 것을 지칭할 수도 있고, 리소스를 턴 온(on)하거나 턴 오프(off)하는 것을 지칭할 수도 있다. 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법은, 컴퓨팅 시스템의 상황에 기반하여 리소스들을 효과적으로 핫플러그 인/아웃함으로서 컴퓨팅 시스템에 향상된 유연성을 제공할 수 있다.
핫플러그의 대상이 되는 컴퓨팅 시스템의 리소스는 다양할 수 있다. 예를 들면, 컴퓨팅 시스템에 포함된 복수의 프로세서들 중 적어도 일부가 핫플러그 인/아웃 될 수도 있고, 컴퓨팅 시스템에 포함된 메모리 장치들 중 적어도 일부가 핫플러그 인/아웃 될 수도 있으며, PCI(Peripheral Component Interconnect) 및 USB(Universal Serial Bus)와 같은 인터페이스도 핫플러그 인/아웃 될 수 있다. 뿐만 아니라, 컴퓨팅 시스템의 하나의 부품 내에서도 핫플러그 인/아웃이 발생할 수 있는데, 예를 들면 멀티-코어 프로세서에 포함된 복수의 코어들 중 적어도 일부가 핫플러그 인/아웃 될 수도 있고, 메모리 장치의 메모리 영역들 중 적어도 일부가 핫플러그 인/아웃 될 수도 있다.
도 1을 참조하면, 단계 S200에서 복수의 시나리오들을 포함하는 시나리오 데이터에 접근하는 동작이 수행될 수 있다. 시나리오는 컴퓨팅 시스템의 상황(context)을 정의하고, 정의된 상황 발생시 리소스의 핫플러그 인 또는 핫플러그 아웃을 정의할 수 있다. 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 리소스 핫플러그 관리 방법은, 미리 정해진 주기마다 복수의 시나리오들을 포함하는 시나리오 데이터에 접근할 수도 있고, 특정 이벤트 발생시 시나리오 데이터에 접근할 수도 있다.
컴퓨팅 시스템의 상황은 컴퓨팅 시스템의 상태(status) 및/또는 행동(behavior)을 나타내는 복수의 파라미터들의 집합으로 정의될 수 있다. 예를 들면, 컴퓨팅 시스템의 상황은, 컴퓨팅 시스템의 현재 모드, 컴퓨팅 시스템의 이전 모드, 디스플레이 밝기, 디스플레이 모드(예컨대, 저전력 모드, 활성 모드, 동면(hibernation) 모드), 디스플레이 갱신 여부, 메모리의 동작 상태(예컨대, 활성 상태, 자가-리프레쉬 상태, 저전력 상태), 이벤트 발생 여부, 발생 이벤트 유형(예컨대, 터치, 키, 센서, 카메라, 마이크 등과 같은 입력 장치에서 발생한 이벤트 또는파일의 생성, 삭제, 오픈, 독출, 기입, 요청 등과 같은 어플리케이션에 의한 이벤트) 등과 같은 컴퓨팅 시스템의 상태(status)를 포함할 수 있고, 시나리오는 그러한 컴퓨팅 시스템의 상태를 나타내는 적어도 하나의 파라미터들의 값들을 정의할 수 있다. 또한, 다른 예시로서 컴퓨팅 시스템의 상황은, 펄스형 부하(pulse like load) 발생, 디스플레이 밝기 변화, 부품들의 전력 모드 천이 등과 같은 컴퓨팅 시스템의 시간의 흐름에 따른 동작인 행동(behavior)을 포함할 수 있고, 시나리오는 그러한 컴퓨팅 시스템의 행동을 나타내는 적어도 하나의 파라미터들의 값들을 정의할 수 있다.
단계 S400에서, 컴퓨팅 시스템의 상황 정보에 기초하여 복수의 시나리오들을 평가하는 동작이 수행될 수 있다. 컴퓨팅 시스템의 현재 상황 정보가 시나리오에서 정의하는 상황과 일치하는지 여부를 판단함으로써, 시나리오는 평가될 수 있다. 예를 들면, 복수의 시나리오들은 순차적으로 각각 평가될 수 있고, 컴퓨팅 시스템의 현재 상황 정보와 일치하는 상황을 정의하는 시나리오, 즉 충족된 시나리오가 판별될 수 있다.
단계 S600에서, 충족된 시나리오에 따라 리소스의 핫플러그 인 및 핫플러그 아웃을 제어하는 동작이 수행될 수 있다. 예를 들면, 단계 S400에 의해서 핫플러그 인이 결정된 리소스가 현재 오프 상태인 경우에는 핫플러그 인됨으로써 온 상태로 전환될 수 있는 한편, 현재 온 상태인 경우에는 온 상태로 유지될 수 있다. 유사하게, 단계 S400에 의해서 핫플러그 아웃이 결정된 리소스가 현재 오프 상태인 경우에는 오프 상태로 유지되는 한편, 현재 온 상태인 경우에는 핫플러그 아웃됨으로써 오프 상태로 전환될 수 있다.
전술된 바와 같이, 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법은 복수의 시나리오들을 포함하는 시나리오 데이터를 사용할 수 있고, 컴퓨팅 시스템의 상황에 기초하여 복수의 시나리오들을 평가함으로써 리소스의 핫플러그 인/아웃을 최적으로 결정할 수 있다. 예를 들면, 후술되는 바와 같이, 복수의 코어들을 포함하는 멀티-코어 프로세서에서, 멀티-코어 프로세서에 의해서 처리되는 부하(즉, 프로세서에 의해서 처리되는 작업)에만 기초하여 코어의 핫플러그 인/아웃을 제어하는 경우 불필요하게 핫플러그 인 또는 핫플러그 아웃되는 코어가 발생할 수 있는 반면, 본 개시의 예시적 실시예에 따라 복수의 시나리오들 및 컴퓨팅 시스템의 상황에 기초하여 코어의 핫플러그 인/아웃을 제어하는 경우 코어가 불필요하게 핫플러그 인 또는 핫플러그 아웃되는 것이 방지될 수 있다. 결과적으로, 컴퓨팅 시스템의 리소스 활용도는 상승할 수 있고, 컴퓨팅 시스템의 전력 소모 역시 감소할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템(100)의 블록도를 나타낸다. 구체적으로, 도 2의 블록도는 컴퓨팅 시스템(100)의 리소스들을 개략적으로 나타낸다. 도 2에 도시된 바와 같이, 컴퓨팅 시스템(100)은 리소스로서, CPU(Central Processing Unit)(111), GPU(Graphics Processing Unit)(112), DSP(Digital Signal Processor)(113), ASIP(Application Specific Instruction set Processor)(114), 메모리(121), USB(122), PCI(123), 디스플레이 모듈(124), 사운드 모듈(125), 스토리지(126), 터치 모듈(127), 카메라 모듈(128) 및 GPIO(General Purpose Input/Output)(129)를 포함할 수 있다. 도 2에 도시된 컴퓨팅 시스템(100)에도 불구하고, 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템이 도 2에 도시된 리소스들 중 일부만을 포함할 수도 있고, 도 2에 도시되지 아니한 리소스를 더 포함할 수도 있는 점은 이해될 것이다.
컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)에 포함된 복수의 리소스들을 활용하여 작업을 수행하는 시스템일 수 있다. 예를 들면, 컴퓨팅 시스템(100)은 비제한적인 예시로서, 개인용 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치 등일 수 있다. 또한, 컴퓨팅 시스템(100)은 사용자의 신체에 부착하여 컴퓨팅 도작을 수행할 수 있는 전자 기기로서 웨어러블 기기(wearable device)(또는 웨어러블 컴퓨터)일 수 있고, 비제한적인 예시로서, 장갑, 안경, 고글(goggle), 헬멧, 암밴드(armband), 시계, 반지, 목걸이 등일 수 있다.
CPU(111)는 컴퓨팅 시스템(100)의 전체 동작을 제어하는 부품으로서, 컴퓨팅 시스템(100)의 리소스들을 제어할 수 있다. 예를 들면, CPU(111)는 운영 체제(Operating System; OS)를 실행할 수 있고, 운영 체제는 컴퓨팅 시스템(100)의 리소스들에 대한 정보를 관리할 수 있으며, 리소스들에 대한 정보에 기초하여 리소스들을 제어할 수 있다. 도 16을 참조하여 후술되는 바와 같이, 운영 체제는 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 수행하는 핫플러그 매니저를 포함할 수 있고, 핫플러그 매니저는 운영 체제에서 획득될 수 있는 컴퓨팅 시스템(100)의 상황 정보를 이용하여 컴퓨팅 시스템(100)의 리소스들의 핫플러그 인/아웃을 제어할 수 있다.
GPU(112), DSP(113) 및 ASIP(114)는 특정 목적을 위하여 최적 설계된 프로세싱 유닛으로서, 자신의 아키텍쳐에서 실행가능한 전용의 명령어(instruction)들을 각각 실행할 수 있다. 비록 도 2에서 GPU(112), DSP(113) 및 ASIP(114)를 모두 포함하는 컴퓨팅 시스템(100)이 도시되었으나, 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템은 CPU(111)만을 포함할 수도 있고, GPU(112), DSP(113) 및 ASIP(114) 중 하나 이상을 포함할 수도 있다.
일 실시예에서, CPU(111), GPU(112), DSP(113) 및 ASIP(114)는 핫플러그 인/아웃이 가능한 하나 이상의 프로세서를 각각 포함할 수 있다. 예를 들면, CPU(111)는 주(primary) 프로세서 및 하나 이상의 부(secondary) 프로세서를 포함할 수 있고, 하나 이상의 부 프로세서는 핫플러그 인/아웃을 지원할 수 있다. 또한, 다른 실시예에서, CPU(111), GPU(112), DSP(113) 및 ASIP(114)는 핫플러그 인/아웃이 가능한 코어를 포함하는 멀티-코어 프로세서를 포함할 수도 있다. 코어는 독립적으로 명령어를 실행할 수 있는 처리 단위를 지칭할 수 있으며, 멀티-코어 프로세서는 복수의 코어들 중 적어도 하나의 코어를 핫플러그 인/아웃을 위한 구조를 제공할 수 있다.
도 3a 및 도 3b는 도 2의 컴퓨팅 시스템(100)의 동작에 따른 컴퓨팅 시스템의 디스플레이들을 나타낸다. 구체적으로, 도 3a는 컴퓨팅 시스템(100)의 모드에 따른 디스플레이들을 나타내고, 도 3b는 컴퓨팅 시스템(100)에서 디스플레이 업데이트가 발생하는 예시들을 나타낸다. 도 3a 및 도 3b에서 컴퓨팅 시스템(100)은 웨어러블 컴퓨터 중 하나로서 스마트 시계인 것으로 예시되나, 본 개시의 기술적 사상이 이에 제한되지 아니하는 점은 이해될 것이다.
도 3a를 참조하면, 컴퓨팅 시스템(100)은 복수의 모드들을 지원할 수 있다. 예를 들면 도 3a에 도시된 바와 같이, 컴퓨팅 시스템(100)은 전력 소모를 감소시키기 위하여 활성(active) 모드, 대기(ambient) 모드 및 절전 모드(또는 깊은(deep) 대기 모드)를 지원할 수 있다. 활성 모드에서 컴퓨팅 시스템(100)은 사용자와의 인터렉션(interaction)(예컨대 사용자의 키 입력, 터치, 컴퓨팅 시스템(100)의 기울임 등)에 응답하여 어플리케이션을 실행하거나, 도 3a에 도시된 바와 같이 사용자의 입력을 대기하는 중(즉, 아이들(idle) 상태)에는 미리 설정된 이미지나 영상을 표시할 수 있다. 미리 정해지 시간(예컨대 1분) 동안 사용자의 입력이 없는 경우, 컴퓨팅 시스템(100)은 활성 모드로부터 대기 모드로 진입할 수 있다.
대기 모드에서 컴퓨팅 시스템(100)은 필요한 정보만을 디스플레이에 표시할 수 있다. 예를 들면, 도 3a에 도시된 바와 같이, 대기 모드에서 컴퓨팅 시스템(100)은 시계 및 운동량 정보만을 표시할 수 있고, 이미지 또는 영상은 표시하지 아니할 수 있다. 이에 따라, 컴퓨팅 시스템(100)은 대기 모드에서 활성 모드에서보다 낮은 전력을 소모할 수 있다. 사용자의 인터렉션이 감지되면 컴퓨팅 시스템(100)은 대기 모드로부터 활성 모드로 진입할 수 있는 한편 미리 정해진 시간(예컨대 30분) 동안 사용자의 입력(예컨대, 키 입력, 터치 등)이 없는 경우 컴퓨팅 시스템(100)은 대기 모드로부터 절전 모드로 진입할 수 있다.
절전 모드에서 컴퓨팅 시스템(100)은 디스플레이를 턴 오프할 수 있다. 예를 들면, 도 3a에 도시된 바와 같이, 절전 모드에서 컴퓨팅 시스템(100)은 디스플레이를 턴 오프함으로써 어떠한 정보도 표시하지 아니할 수 있다. 즉, 컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)의 동작 가능 시간을 연장하거나 불필요한 전력 소모를 최소화하기 위하여 디스플레이를 턴 오프할 수 있다. 사용자의 인터렉션(예컨대 사용자의 키 입력, 터치, 컴퓨팅 시스템(100)의 기울임 및 이동 등)이 발생하면, 컴퓨팅 시스템(100)은 절전 모드로부터 활성 모드로 진입할 수 있다.
컴퓨팅 시스템에 발생된 부하에 기초하여 리소스의 핫플러그 인/아웃을 제어하는 경우, 리소스의 불필요한 핫플러그 인/아웃이 발생할 수 있다. 즉, 도 3a에 도시된 바와 같이, 컴퓨팅 시스템의 모드를 전환하는 이벤트가 발생하는 경우, 이벤트 처리를 위하여 컴퓨팅 시스템은 핫플러그 아웃 상태의 리소스를 핫플러그 인하거나, 핫플러그 인 상태의 리소스를 핫플러그 인 상태로 유지할 수 있다. 그러나, 컴퓨팅 시스템이 활성 모드로부터 대기 모드로 진입하거나 대기 모드로부터 절전 모드로 진입할 때 발생하는 리소스의 핫플러그 인은 컴퓨팅 시스템의 불필요한 전력 소모를 유발할 수 있다.
도 3b를 참조하면, 컴퓨팅 시스템(100)의 디스플레이(10)는 다양한 이벤트들에 응답하여 업데이트 될 수 있다. 도 3b에 도시된 바와 같이, 컴퓨팅 시스템(100)은, 시계 표시를 업데이트하기 위하여 디스플레이(10a)를 업데이트할 수도 있고, 다음 곡의 재생을 표시하기 위하여 디스플레이(10b)를 업데이트할 수도 있고, 문자 또는 메일의 수신을 표시하기 위하여 디스플레이(10c)를 업데이트할 수도 있고, 새로운 날씨를 표시하기 위하여 디스플레이(10d)를 업데이트할 수도 있다.
도 3a의 예시와 유사하게, 컴퓨팅 시스템에 발생된 부하에 기초하여 리소스의 핫플러그 인/아웃을 제어하는 경우, 도 3b에 도시된 디스플레이의 업데이트를 유발하는 이벤트 처리를 위하여 컴퓨팅 시스템은 핫플러그 아웃 상태의 리소스를 핫플러그 인하거나, 핫플러그 인 상태의 리소스를 핫플러그 인 상태로 유지할 수 있다. 그러나, 단순 표시의 변경을 위한 디스플레이의 업데이트를 위하여 발생하는 리소스의 핫플러그 인은 컴퓨팅 시스템의 불필요한 전력 소모를 유발할 수 있다.
본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법은, 도 3a 및 도 3b를 참조하여 전술된 케이스들에서 리소스의 불필요한 핫플러그 인을 방지할 수 있다. 즉, 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법은, 컴퓨팅 시스템(100)에 발생된 부하만을 고려하는 대신 컴퓨팅 시스템(100)의 상황을 인식할 수 있고, 그러한 상황에 기초하여 리소스를 핫플러그 인/아웃 여부를 효율적으로 결정함으로써 리소스의 불필요한 핫플러그 인을 방지할 수 있다.
도 4는 본 개시의 예시적 실시예에 따라 도 2의 컴퓨팅 시스템(100)의 리소스들의 핫플러그 인/아웃을 정의하는 시나리오들을 나타낸다. 도 1을 참조하여 전술된 바와 같이, 시나리오 데이터는 복수의 시나리오들을 포함할 수 있고, 시나리오 각각은 컴퓨팅 시스템의 상황을 정의하고, 정의된 상황 발생시 리소스의 핫플러그 인 또는 핫플러그 아웃을 정의할 수 있다. 도 4에서 핫플러그 인된 리소스는 온(on)으로 표현되고, 핫플러그 아웃된 리소스는 오프(off)로 표현된다. 도 4에 도시된 바와 같이, 주(primary) 리소스는 항상 온 상태에 있을 수 있고, 부(secondary) 리소스가 시나리오에 따라 핫플러그 인 또는 핫플러그 아웃될 수 있다.
도 4에서 음영처리된 부분과 같이, 본 개시의 예시적 실시예에 따른 리소스의 핫플러그 관리 방법에 의해서 부 리소스가 불필요하게 핫플러그 인되는 것이 방지될 수 있다. 예를 들면 도 4에 도시된 바와 같이, 대기 모드 진입 시나리오에 따라 컴퓨팅 시스템(100)이 활성 모드로부터 대기 모드로 진입하는 경우, 시계 분 업데이트 시나리오에 따라 분의 표시를 변경하는 경우, 시계 초 업데이트 시나리오에 따라 초의 표시를 변경하는 경우 및 오디오 재생 시나리오에 따라 다음 곡 재생이 착수되는 경우, 부 리소스는 핫플러그 인되지 않고, 오프 상태로 유지될 수 있다.
또한, 도 4에 도시된 바와 같이, 낮은 우선순위 카드가 발생하는 경우에서, 부 리소스는 핫플러그 인되지 않고, 오프 상태로 유지될 수 있다. 카드(card)는 보다 상세한 정보에 대한 진입점(entry point)으로서 기능하는 내용물의 시트(sheet)를 지칭할 수 있다. 카드는 디스플레이에 표시될 수 있고, 사진, 문자, 링크 등을 포함할 수 있다. 카드가 나타내는 정보의 중요도에 따라 카드는 우선순위를 가질 수 있다. 예를 들면, 하나의 신규 이메일이 도착하거나, 약속 리마인더와 같은 정보에 대응하는 카드는 상대적으로 높은 우선순위를 가질 수 있는 한편, 연속되는 신규 이메일들이 도착하거나, 기상정보에 대응하는 카드는 상대적으로 낮은 우선순위를 가질 수 있다. 컴퓨팅 시스템(100)이 대기 모드에 있는 경우, 높은 우선순위의 카드는 컴퓨팅 시스템(100)이 활성 모드로 전환된 이후에 디스플레이될 수 있고, 낮은 우선순위의 카드는 대기 모드에서 디스플레이 될 수 있다. 본 개시의 예시적 실시예에 따라, 시뮬레이션이나 측정을 통해서 카드의 발생 빈도 등이 사전에 추정될 수 있고, 추정 결과에 기초하여 카드 발생에 따른 리소스의 핫플러그 인/아웃을 정의하는 시나리오가 정의될 수 있다.
도 5a 및 도 5b는 본 개시의 예시적 실시예들에 따라 리소스 핫플러그 관리 방법을 수행하는 컴퓨팅 시스템들을 나타낸다. 도 5a 및 도 5b에 도시된 바와 같이, 컴퓨팅 시스템(100a, 100b)은 서로 통신가능하게 연결된 CPU(130a, 130b) 및 메모리(140a, 140b)를 포함할 수 있다. 이하에서 도 5b에 대한 설명 중 도 5a에 대한 설명과 중복되는 내용은 생략된다.
도 5a를 참조하면, CPU(130a)는 멀티-코어 프로세서로서 복수의 코어들(131a 내지 134a)을 포함할 수 있다. 비록 도 5a에서 4개의 코어들(131a 내지 134a)을 포함하는 CPU(130a)가 도시되었으나, CPU(130a)는 4개 미만 또는 4개 초과의 코어들을 포함할 수도 있다. 메모리(140a)는 핫플러그 매니저(142a), 시나리오 데이터(144a) 및 상황 정보(146a)를 포함(즉, 저장)할 수 있다. 메모리(140a)는 데이터를 저장하는 부품으로서, SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory)과 같은 휘발성 메모리 장치, 또는 ROM(Read Only Memory), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치(flash memory) 와 같은 비휘발성 메모리 장치를 포함할 수 있으나, 본 개시의 기술적 사상이 이에 한정되는 것은 아니다. 또한, 메모리(140a)는 동종 또는 이종의 2이상의 메모리 장치들을 포함할 수 있고, 핫플러그 매니저(142a), 시나리오 데이터(144a) 및 상황 정보(146a) 중 적어도 2개는 상이한 메모리 장치들에 각각 저장될 수도 있다.
본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법은 CPU(130a)가 메모리(140a)에 저장된 핫플러그 매니저(142a)를 실행함으로써 수행될 수 있다. 핫플러그 매니저(144a)는 CPU(130a)에서 실행가능한 복수의 명령어들을 포함할 수 있고, CPU(130a)는 핫플러그 매니저(142a)에 포함된 명령어들을 실행함으로써 (예컨대, 도 1에 도시된) 리소스 핫플러그 관리 방법을 수행할 수 있다. 예를 들면, CPU(130a)의 4개의 코어들(131a 내지 134a) 중 제1 코어(131a)는 주(primary) 코어로서 컴퓨팅 시스템이 동작하는 동안 온 상태에 있을 수 있고 메모리(140a)에 저장된 핫플러그 매니저(144a)를 실행할 수 있다. CPU(130a)의 제2 내지 제4 코어(132a 내지 134a)는 부(secondary) 코어들로서 핫플러그 매니저(142a)에 의해서(즉, 핫플러그 매니저(142a)를 실행하는 주 코어(131a)에 의해서) 핫플러그 인 또는 핫플러그 아웃될 수 있다.
도 1을 참조하여 전술된 바와 같이 시나리오 데이터(144a)는 복수의 시나리오들을 포함할 수 있고, 핫플러그 매니저(142a)는 시나리오 데이터(340a)에 주기적으로 또는 다른 프로시저(procedure)의 요청에 의해서 접근할 수 있다. 또한, 상황 정보(146a)는 컴퓨팅 시스템(100a)의 상황을 나타내는 복수의 파라미터들을 포함할 수 있고, 핫플러그 매니저(142a)는 시나리오 데이터(144a)에 포함된 시나리오들을 평가하기 위하여 상황 정보(146a)에 포함된 파라미터를 참조할 수 있다. 또한, 핫플러그 매니저(142a)는 도 9를 참조하여 후술되는 바와 같이, 상황 정보(146a)에 포함된 파라미터들 중 일부에 기초하여 컴퓨팅 시스템(100a)의 행동을 나타내는 파라미터를 생성할 수도 있다.
도 5b를 참조하면, 본 개시의 예시적 실시예에 따라 핫플러그 매니저(142b)는 시나리오 데이터(144b)를 포함할 수도 있다. 즉, 도 5a에서 핫플러그 매니저(142a)가 주기적으로 또는 다른 프로시저의 요청에 의해서 시나리오 데이터(144a)에 접근할 수 있는 한편, 도 5b에서 핫플러그 매니저(144b)는 주기적으로 호출되거나 다른 프로시저의 호출에 의해서 실행될 수 있고, 핫플러그 매니저(144b)가 실행되면 핫플러그 매니저(144b)에 포함된 시나리오 데이터(144b)가 접근될 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 단계 S400의 예시를 나타내는 순서도이다. 도 1을 참조하여 전술된 바와 같이, 단계 S400에서 컴퓨팅 시스템의 상황 정보에 기초하여 복수의 시나리오들을 평가하는 동작이 수행될 수 있다. 이하에서 도 6은 도 5a의 컴퓨팅 시스템(100a)을 참조하여 설명된다.
도 6을 참조하면, 단계 S420에서 상황 정보에 기초하여 시나리오를 평가하는 동작이 수행될 수 있다. 예를 들면, 시나리오는 하나 이상의 파라미터들의 값을 정의함으로써 컴퓨팅 시스템(100a)의 상황을 정의할 수 있고, 핫플러그 매니저(142a)는 상황 정보(146a)로부터 시나리오에서 정의된 하나 이상의 파라미터를 참조할 수 있다. 핫플러그 매니저(142a)는 컴퓨팅 시스템(100a)의 현재 상황을 나타내는 하나 이상의 파라미터의 값이 시나리오에서 정의된 값과 일치하는지 여부를 판단함으로써 시나리오를 평가할 수 있다. 구체적으로 시나리오를 평가하는 예시들은 도 11 내지 도 14를 참조하여 후술될 것이다.
단계 S440에서, 시나리오가 충족되는지 여부를 판단하는 동작이 수행될 수 있다. 단계 S420에서 평가된 시나리오가 충족된 경우, 도 1의 단계 S400은 종료할 수 있다. 다른 한편으로, 단계 S420에서 평가된 시나리오가 충족되지 아니한 경우, 단계 S460에서, 다음 시나리오를 엑세스하는 동작이 수행될 수 있다. 즉, 충족된 시나리오가 나타낼 때까지 복수의 시나리오들을 평가하는 동작(즉, 단계 S420)이 반복될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 시나리오 데이터(144)를 나타내는 도면이다. 도 7에 도시된 바와 같이, 시나리오 데이터(144)는 성능민감 시나리오 그룹(144_1) 및 비성능민감 시나리오 그룹(144_2)을 포함할 수 있다. 이하에서, 도 7은 도 5a의 컴퓨팅 시스템(100a)을 참조하여 설명된다.
성능민감 시나리오 그룹(144_1)은 컴퓨팅 시스템(100a)의 높은 컴퓨팅 성능이 필요한 상황을 정의하는 시나리오들(PSS_0 내지 PSS_M)을 포함할 수 있다. 즉, 성능민감 시나리오 그룹(144_1)에 포함된 시나리오들(PSS_0 내지 PSS_M) 각각은 충족시 리소스의 핫플러그 인을 정의할 수 있다. 또한 비성능민감 시나리오 그룹(144_2)은 컴퓨팅 시스템(100a)의 높은 컴퓨팅 성능이 필요하지 아니한 상황을 정의하는 시나리오들(NPSS_0 내지 NPSS_N)을 포함할 수 있다. 즉, 비성능민감 시나리오 그룹(144_2)에 포함된 시나리오들(NPSS_0 내지 NPSS_N) 각각은 충족시 리소스의 핫플러그 아웃을 정의할 수 있다. 성능민감 시나리오 그룹(144_1)에 포함된 시나리오 및 비성능민감 시나리오 그룹(144_2)에 포함된 시나리오의 구체적인 예시들은 도 11 및 도 13을 참조하여 후술될 것이다.
도 8은 본 개시의 예시적 실시예에 따라 메모리(300')에 저장된 시나리오 데이터(144')를 나타내는 도면이다. 도 6을 참조하여 전술된 바와 같이, 시나리오 데이터(144')의 복수의 시나리오들 각각은 충족된 시나리오가 나타날 때까지 상황 정보에 기초하여 평가될 수 있다.
본 개시의 예시적 실시예에 따라 시나리오 데이터(144')에서 복수의 시나리오들은 우선순위에 따라 정렬될 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 도 7의 성능민감 시나리오 그룹(144_1)에 포함된 복수의 시나리오들(PSS_0, PSS_1, PSS_2) 및 도 7의 비성능민감 시나리오 그룹(144_2)에 포함된 복수의 시나리오들(NPSS_0, NPSS_1, NPSS_N)은 우선순위에 따라 정렬될 수 있다. 도 1의 시나리오를 평가하는 단계는 복수의 시나리오들을 순차적으로 평가할 수 있고, 이에 따라 상대적으로 높은 우선순위를 가지는 시나리오가 먼저 평가될 수 있고 상대적으로 낮은 우선순위를 가지는 시나리오는 나중에 평가될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 나타내는 순서도이다. 도 9에 도시된 바와 같이, 컴퓨팅 시스템의 리소스 핫플러그 관리 방법은 복수의 단계들(S200', S400', S600')을 포함할 수 있고, 도 1의 예시와 비교할 때 단계 S800을 더 포함할 수 있다. 도 9의 단계들(S200', S400', S600')은 도 1의 단계들(S200, S400, S600)과 동일하거나 유사할 수 있다.
단계 S800에서, 컴퓨팅 시스템의 행동 정보를 생성하는 동작이 수행될 수 있다. 도 9에 도시된 바와 같이, 컴퓨팅 시스템의 상황을 나타내는 상황 정보(146')는 상태 정보(146_1) 및 행동 정보(146_2)를 포함할 수 있고, 행동 정보(146_2)는 컴퓨팅 시스템의 시간의 흐름에 따른 동작의 상황을 나타낼 수 있다. 예를 들면, 복수의 시나리오들 중 일부는 컴퓨팅 시스템의 상태 정보(146_1)에 포함된 제1 파리미터의 값의 시간의 흐름에 다른 변화를 컴퓨팅 시스템의 상황으로서 정의할 수 있고, 이에 따라 단계 S800에서 상태 정보(146_1)에 기초하여 제1 파라미터의 변화를 나타내는 제2 파라미터를 행동 정보(146_2)로서 생성될 수 있다. 단계 S800의 예시는 도 10을 참조하여 후술될 것이다.
도 10은 본 개시의 예시적 실시예에 따라 도 9의 단계 S800의 예시를 나타내는 도면이다. 구체적으로, 도 10은 단계 S800의 예시를 수도 코드(pseudo code)로서 나타낸다. 도 9를 참조하여 전술된 바와 같이, 단계 S800에서 컴퓨팅 시스템의 행동 정보를 생성하는 동작이 수행될 수 있다.
도 10에서, 파라미터 'frequency'는 CPU(예컨대 도 5a의 CPU(130a))의 동작 주파수를 값으로서 가질 수 있고, 파라미터 'high_per'는 CPU가 높은 동작 주파수에 머무른 기간을 나타낼 수 있고, 파라미터 'low_per'는 CPU가 낮은 동작 주파수에 머무른 기간을 나타낼 수 있다. CPU의 동작 주파수가 높은 것은 CPU가 처리하는 작업, 즉 부하가 높다는 것을 의미할 수 있고, 파라미터 'frequency'는 CPU의 현재 동작 주파수를 나타내는 것으로서 도 9의 상태 정보(146_1)에 포함되는 파라미터들 중 하나일 수 있다. 파라미터들 'high_per' 및 'low_per'는 파라미터 'frequency'로부터 생성될 수 있고, 도 9의 행동 정보(146_2)에 포함되는 파라미터들 중 하나일 수 있다.
도 10의 라인 1 내지 4를 참조하면, CPU의 동작 주파수가 미리 정해진 문턱값 'FREQ_THR'보다 높은 경우, 파라미터 'high_per'는 증가하는 반면, 파라미터 'low_per'는 리셋(즉, 0으로 설정)될 수 있다. 유사하게, 도 10의 라인 5 내지 8을 참조하면, CPU의 동작 주파수가 미리 정해진 문턱값 'FREQ_THR' 이하인 경우, 파라미터 'low_per'는 증가하는 반면, 파라미터 'high_per'는 리셋(즉, 0으로 설정)될 수 있다. 이에 따라, 파라미터 'high_per'의 값은 CPU가 높은 동작 주파수(즉, 문턱값 'FREQ_THR'보다 높은 주파수)에 머무른 기간을 나타낼 수 있고, 파라미터 'low_per'의 값은 CPU가 낮은 동작 주파수(즉, 문턱값 'FREQ_THR' 이하의 주파수)에 머무른 기간을 나타낼 수 있다. 행동 정보(146_1)로서 파라미터들 'high_per' 및 'low_per'은 도 13 및 도 14를 참조하여 후술되는 바와 같이, 펄스형 부하를 판단하는데 사용될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 시나리오들을 나타내고, 도 12는 본 개시의 예시적 실시예에 따라 도 11의 시나리오에 기초하여 CPU 코어의 핫플러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다. 도 11을 참조하면, 시나리오(NPSS_p 및 NPSS_q)는 도 7의 비성능민감 시나리오 그룹(144_2)에 포함될 수 있고, 충족시 각각 코어의 핫플러그 아웃을 정의할 수 있다.
시나리오(NPSS_p)에 따르면, 컴퓨팅 시스템이 대기 모드로 진입하는 경우 코어를 핫플러그 아웃하는 것을 정의하는 'HOTPLUG_OUT'이 리턴될 수 있다. 유사하게, 시나리오(NPSS_q)에 따르면, 디스플레이 업데이트의 발생을 나타내는 파라미터 'display_update'가 활성화되는 경우, 코어를 핫플러그 아웃하는 것을 정의하는 'HOTPLUG_OUT'이 리턴될 수 있다. 즉, 시나리오(NPSS_q)는 일정한 기간 동안 디스플레이 업데이트가 발생하지 아니하는 경우 핫플러그 아웃할 것을 정의할 수 있다.
도 12를 참조하면, 본 개시의 예시적 실시예에 따른 리소스 핫플러그 관리 방법을 수행하는 핫플러그 매니저(예컨대, 도 5a의 핫플러그 매니저(142a))는 일정한 주기(T) 마다 실행될 수 있다. 핫플러그 매니저는 일정한 주기(T) 마다 컴퓨팅 시스템의 상황 정보에 기초하여 복수의 시나리오들을 평가함으로써 코어의 핫플러그 인/아웃을 제어할 수 있다. 그러나 본 개시의 기술적 사상은 이에 제한되지 아니하며, 도 12에 도시된 바와 상이하게, 핫플러그 매니저는 특정 이벤트 발생시 프로시저의 호출에 의해서 실행될 수도 있다.
t11 내지 t13에서, 컴퓨팅 시스템은 활성 모드에 있을 수 있고 디스플레이는 빈번하게 업데이트될 수 있다. 이에 따라, t11 내지 t13에서 코어는 온 상태에 있을 수 있다. t14에서, 핫플러그 매니저는 복수의 시나리오들을 평가할 수 있고, t13 내지 t14에서 디스플레이 업데이트가 발생하지 아니하였으므로, 도 11의 시나리오(NPSS_q)가 충족될 수 있다. 이에 따라, 핫플러그 매니저는 코어를 핫플러그 아웃할 수 있고, 코어는 온 상태로부터 오프 상태로 천이할 수 있다.
t23 내지 t24에서, 컴퓨팅 시스템은 활성 모드로부터 대기 모드로 진입할 수 있다. t24에서, 핫플러그 매니저는 복수의 시나리오들을 평가할 수 있고, 컴퓨팅 시스템이 대기 모드로 진입하였으므로, 도 11의 시나리오(NPSS_p)가 충족될 수 있다. 이에 따라, 핫플러그 매니저는 코어를 핫플러그 아웃할 수 있고, 코어는 온 상태로부터 오프 상태로 천이할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 시나리오들을 나타내고, 도 14는 본 개시의 예시적 실시예에 따라 도 13의 시나리오에 기초하여 CPU 코어의 핫프러그 인/아웃이 제어되는 예시를 시간의 흐름에 따라 나타낸다. 도 13을 참조하면, 시나리오(NPSS_r)는 도 7의 비성능민감 시나리오 그룹(144_2)에 포함될 수 있고(즉, 충족시 'HOTPLUG_OUT'을 리턴), 시나리오(PSS_s)는 도 7의 성능민감 시나리오 그룹(144_1)에 포함될 수 있다(즉, 충족시 'HOTPLUG_IN'을 리턴).
시나리오(NPSS_r)에 따르면, 라인 30 내지 라인 31에서 파라미터 'low_per'가 문턱값 'LOW_THR'이상이면 'HOTPLUG_OUT'이 리턴될 수 있다. 즉, CPU의 동작 주파수가 낮아질 때 즉각적으로 코어를 핫플러그 아웃하는 대신, 미리 정해진 기간 이상 CPU의 동작 주파수가 낮은 경우에 코어를 핫플러그 아웃함으로써 부하의 일시적인 변동에 기인하는 코어의 불필요한 핫플러그 아웃이 방지될 수 있다.
라인 32 내지 라인 34에서, 파라미터 'low_per'가 0이면서 현재 코어가 핫플러그 아웃된 상태(즉, 오프 상태)이고 파라미터 'high_per'가 문턱값 'HIGH_THR'보다 작으면, 'HOTPLUG_OUT'이 리턴될 수 있다. 즉, 현재 코어가 오프 상태에 있고 CPU의 동작 주파수가 높아질 때 즉각적으로 코어를 핫플러그 인하는 대신, CPU의 동작 주파수가 높은 기간이 미리 정해진 기간 미만인 경우에 코어를 핫플러그 아웃(즉, 오프 상태로 유지)함으로써 부하의 일시적인 변동에 기인하는 코어의 불필요한 핫플러그 인이 방지될 수 있다.
라인 35 내지 라인 37에서, 현재 코어가 핫플러그 아웃된 상태(즉, 오프 상태)이면, 'HOTPLUG_OUT'이 리턴될 수 있다. 즉, 컴퓨팅 시스템의 상황이 시나리오(NPSS_r)의 선행하는 조건들을 만족하지 못한 경우, 현재 코어가 오프 상태라면 코어는 오프 상태로 유지될 수 있다.
시나리오(PSS_s)에 따르면, 라인 40내지 라인 41에서 파라미터 'hi_per'가 문턱값 'HIGH_THR' 이상이면 'HOTPLUG_IN'이 리턴될 수 있다. 즉, CPU의 동작 주파수가 높아질 때 코어를 즉각적으로 핫플러그 인하는 대신, 미리 정해진 기간 이상 CPU의 동작 주파수가 높은 경우에 코어를 핫플러그 인함으로써 부하의 일시적인 변동에 기인하는 코어의 불필요한 핫플러그 인이 방지될 수 있다.
라인 42 내지 라인 44에서, 파라미터 'high_per'가 0이면서 현재 코어가 핫플러그 인된 상태(즉, 온 상태)이고 파라미터 'low_per'가 문턱값 'LOW_THR'보다 작으면, 'HOTPLUG_IN'이 리턴될 수 있다. 즉, 현재 코어가 온 상태에 있고 CPU의 동작 주파수가 낮아질 때 즉각적으로 코어를 핫플러그 아웃하는 대신, CPU의 동작 주파수가 낮은 기간이 미리 정해진 기간 미만인 경우에 코어를 핫플러그 인(즉, 온 상태로 유지)함으로써 부하의 일시적인 변동에 기인하는 코어의 불필요한 핫플러그 아웃이 방지될 수 있다.
라인 45 내지 라인 47에서, 현재 코어가 핫플러그 인된 상태(즉, 온 상태)이면, 'HOTPLUG_IN'이 리턴될 수 있다. 즉, 컴퓨팅 시스템의 상황이 시나리오(PSS_s)의 선행하는 조건들을 만족하지 못한 경우, 현재 코어가 온 상태라면 코어는 온 상태로 유지될 수 있다.
도 14를 참조하면, 도 13의 예시와 유사하게, 핫플러그 매니저는 일정한 주기(T)마다 실행될 수 있고, 컴퓨팅 시스템의 상황 정보에 기초하여 복수의 시나리오들을 평가함으로써 코어의 핫플러그 인/아웃을 제어할 수 있다. 도 14의 예시에서, 도 13의 문턱값 'HIGH_THR'은 5인 것으로 가정한다.
t31 내지 t32에서, CPU의 동작 주파수는 문턱값 'FREQ_THR'보다 높을 수 있다. t32 및 t33 각각에서 핫플러그 매니저는 복수의 시나리오들을 평가할 수 있고, 파라미터 'hi_per'는 t32 및 t33에서 각각 1 및 2이므로, 도 13의 시나리오(NPSS_r)가 충족될 수 있다(hi_per < HIGH_THR). 이에 따라, 핫플러그 매니저는 코어를 핫플러그 아웃할 수 있고, 코어는 오프 상태로 유지될 수 있다. 결과적으로 t31 내지 t34에서 발생한 펄스형 부하에도 불구하고, 코어의 불필요한 핫플러그 인이 방지될 수 있다.
t36 내지 t40에서 CPU의 동작 주파수는 문턱값 'FREQ_THR'보다 높을 수 있다. 이에 따라, t40에서 파라미터 'hi_per'는 5이므로, 도 13의 시나리오(NPSS_r)는 충족되지 아니하고, 도 13의 시나리오(PSS_s)가 충족될 수 있다(hi_per = HIGH_THR). 이에 따라, 핫플러그 매니저는 코어를 핫플러그 인할 수 있고, 코어는 오프 상태로부터 온 상태로 천이할 수 있다.
도 15는 본 개시의 예시적 실시예에 다른 시나리오를 나타낸다. 구체적으로 도 15는 컴퓨팅 시스템의 상황을 나타내는 복수의 파라미터들을 정의하는 시나리오를 나타낸다. 예를 들면 도 15에 도시된 바와 같이, 도 11 및 도 13의 시나리오들(NPSS_p, NPSS_q, NPSS_r, PSS_s) 중 2이상의 시나리오들(NPSS_p, NPSS_q, NPSS_r)이 하나의 시나리오(NPSS_x)에 대응할 수 있다.
본 개시의 예시적 실시예에 따라, 시나리오는 컴퓨팅 시스템의 행동을 나타내는 파라미터들을 설정할 수도 있다. 예를 들면 도 15의 라인 51 및 라인 52에서, 파라미터 'low_per'는 문턱값 'LOW_THR'보다 크게 설정될 수 있고, 파라미터 'high_per'는 리셋될 수 있다. 즉, 디스플레이 업데이트가 없거나 컴퓨팅 시스템이 대기 모드로 진입하여 코어가 핫플러그 아웃(도 15의 라인 53 참조)이 되는 경우, CPU의 동작 주파수가 낮은 구간을 나타내는 파라미터 'low_per'가 문턱값 'LOW_THR'보다 크게 설정되고 CPU의 동작 주파수가 높은 구간을 나타내는 파라미터 'high_per'가 리셋됨으로써, 핫플러그 매니저에 의한 후속하는 시나리오 평가에서 CPU의 동작 주파수가 낮은 구간이 지속된 것과 같은 컴퓨팅 시스템의 상황을 형성할 수 있다.
도 16은 본 개시의 예시적 실시예에 따라 리소스 핫플러그 관리 방법을 수행하는 소프트웨어 모듈을 나타낸다. 도 5a 및 도 5b를 참조하여 전술된 바와 같이, 본 개시의 예시적 실시예에 따른 리로스 핫플러그 관리 방법은 핫플러그 매니저에 의해서 수행될 수 있다. 도 16에 도시된 바와 같이, 핫플러그 매니저(511, 521, 541)는 컴퓨팅 시스템의 운영 체제(500)에 포함될 수 있다.
도 16에 도시된 소프트웨어 모듈은 컴퓨터로 독출가능한 저장 장치에 저장될 수 있다. 예를 들면, 도 16의 소프트웨어 모듈이 저장된 저장 장치는, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory) 장치, DRAM(Dynamic Random Access Memory) 장치, SRAM(Static Random Access Memory) 장치, 모바일 DRAM 장치 등과 같은 휘발성 메모리 장치 및/또는 EPROM(Erasable Programmable Read-Only Memory) 장치, EEPROM(Electrically Erasable Programmable Read-Only Memory) 장치, 플래시 메모리(Flash Memory) 장치, PRAM(Phase Change Random Access Memory) 장치, RRAM(Resistance Random Access Memory) 장치, NFGM(Nano Floating Gate Memory) 장치, PoRAM(Polymer Random Access Memory) 장치, MRAM(Magnetic Random Access Memory) 장치, FRAM(Ferroelectric Random Access Memory) 장치 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 실시예에 따라, 저장 장치는 솔리드 스테이트 드라이브(solid state drive; SSD), 하드 디스크 드라이브(hard disk drive; HDD), 씨디롬(CD-ROM) 등을 더 포함할 수도 있다.
본 개시의 예시적 실시예에 따라, 핫플러그 매니저는 핫플러그의 대상이 되는 리소스마다 제공될 수 있다. 도 16에 도시된 바와 같이, 운영 체제(500)는, 컴퓨팅 시스템의 리소스들(예컨대, CPU, GPU, 메모리, PCI, USB 등)을 제어하기 위한 복수의 장치 드라이버들(510, 520, 530, 540)을 포함할 수 있고, 복수의 장치 드라이버들(510, 520, 530, 540) 중 핫플러그 인/아웃을 지원하는 리소스들의 장치 드라이버들(510, 520, 540)은 핫플러그 매니저(511, 521, 541)를 각각 포함할 수 있다.
도 16에 도시된 바와 같이, 운영 체제(500)는 컴퓨팅 시스템의 상황을 나타내는 상황 정보(550)를 포함할 수 있고, 장치 드라이버들(510, 520, 540) 각각에 포함된 핫플러그 매니저들(511, 521, 541)은 상황 정보(550)에 접근함으로써 컴퓨팅 시스템의 상황에 기초하여 복수의 시나리오들을 평가할 수 있다. 예를 들면, 제1 핫플러그 매니저(511)는 상황 정보(550)를 접근할 수 있고, 상황 정보(550)에 포함된 파라미터에 기초하여 복수의 사나리오들을 평가할 수 있다. 제1 핫플러그 매니저(511)는 충족된 시나리오에 따라 제1 장치 드라이버(510)가 제어하는 장치(예컨대, PCI)의 핫플러그 인/아웃을 제어할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 컴퓨팅 시스템의 리소스 핫플러그 관리 방법으로서,
복수의 시나리오들을 포함하는 시나리오 데이터에 접근하는 단계;
상기 컴퓨팅 시스템의 상황(context) 정보에 기초하여 상기 복수의 시나리오들을 평가하는 단계; 및
상기 복수의 시나리오들 중 충족된 시나리오에 따라, 상기 컴퓨팅 시스템에 포함된 리소스의 핫플러그 인(hotplug in) 및 핫플러그 아웃(hotplug out)을 제어하는 단계를 포함하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제1항에 있어서,
상기 시나리오 데이터는,
충족시 리소스의 핫플러그 인을 정의하는 시나리오를 포함하는 성능민감(performance sensitive) 시나리오 그룹; 및
충족시 리소스의 핫플러그 아웃을 정의하는 시나리오를 포함하는 비성능민감(non-performance sensitive) 시나리오 그룹을 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제2항에 있어서,
상기 비성능민감 시나리오 그룹은, 대기 모드에서 시계 분 업데이트, 오디오 재생 표시 업데이트 및 저순위 카드 업데이트 중 적어도 하나를 정의하는 시나리오를 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제2항에 있어서,
상기 비성능민감 시나리오 그룹은, 활성 모드에서 시계 초 업데이트 및 대기 모드 진입 중 적어도 하나를 정의하는시나리오를 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제1항에 있어서,
상기 복수의 시나리오들은 상기 시나리오 데이터에서 우선순위에 따라 정렬되고,
상기 복수의 시나리오들을 평가하는 단계는, 상기 복수의 시나리오들을 순차적으로 평가하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제1항에 있어서,
상기 컴퓨팅 시스템은 복수의 코어들을 포함하는 프로세서를 포함하고,
상기 핫플러그 인 또는 핫플러그 아웃을 제어하는 단계는, 상기 복수의 코어들 중 적어도 하나의 핫플러그 인 및 핫플러그 아웃을 제어하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제6항에 있어서,
상기 시나리오 데이터는, 상기 컴퓨팅 시스템이 대기 모드인 경우 상기 복수의 코어들 중 적어도 하나의 핫플러그 아웃을 정의하는 시나리오를 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제6항에 있어서,
상기 시나리오 데이터는, 상기 컴퓨팅 시스템이 활성 모드인 경우 상기 복수의 코어들 중 핫플러그 인된 코어들의 동작 주파수가 미리 정해진 문턱값보다 높은 구간 또는 낮은 구간의 길이에 따라 상기 복수의 코어들 중 적어도 하나의 핫플러그 인 또는 핫플러그 아웃을 정의하는 시나리오를 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제1항에 있어서,
상기 컴퓨팅 시스템의 상황 정보는, 상기 컴퓨팅 시스템의 상태 정보 및 상기 컴퓨터 시스템의 시간의 흐름에 따른 동작인 행동(behavior)을 나타내는 행동 정보를 포함하고,
상기 상태 정보에 기초하여 상기 행동 정보를 생성하는 단계를 더 포함하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법. - 제1항에 있어서,
상기 컴퓨팅 시스템은 워어러블(wearable) 기기인 것을 특징으로 하는 컴퓨팅 시스템의 리소스 핫플러그 관리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/357,402 US10365700B2 (en) | 2015-11-27 | 2016-11-21 | System and method of managing context-aware resource hotplug |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150167517 | 2015-11-27 | ||
KR20150167517 | 2015-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170062365A true KR20170062365A (ko) | 2017-06-07 |
KR102595895B1 KR102595895B1 (ko) | 2023-10-31 |
Family
ID=59223953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160105588A KR102595895B1 (ko) | 2015-11-27 | 2016-08-19 | 상황인식 리소스 핫플러그 관리 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102595895B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080005599A (ko) * | 2005-05-06 | 2008-01-14 | 와이어쓰 | 헤파린 존재하에 티게사이클린의 전달 |
JP2015505395A (ja) * | 2011-12-16 | 2015-02-19 | インテル コーポレイション | 外部ディスプレイ‐データi/oポートを介してグラフィック処理を拡張するための方法、装置およびシステム |
-
2016
- 2016-08-19 KR KR1020160105588A patent/KR102595895B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080005599A (ko) * | 2005-05-06 | 2008-01-14 | 와이어쓰 | 헤파린 존재하에 티게사이클린의 전달 |
JP2015505395A (ja) * | 2011-12-16 | 2015-02-19 | インテル コーポレイション | 外部ディスプレイ‐データi/oポートを介してグラフィック処理を拡張するための方法、装置およびシステム |
Also Published As
Publication number | Publication date |
---|---|
KR102595895B1 (ko) | 2023-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720368B2 (en) | Memory management of data processing systems | |
US9552291B2 (en) | Memory management method | |
TWI521341B (zh) | 節流應用程式對資源之存取 | |
JP6033854B2 (ja) | 大域的コンポジションシステム | |
CN111831437B (zh) | 设备管理方法、装置、存储介质及电子设备 | |
KR20160015864A (ko) | 프로세서의 동적 전압 주파수 스케일링 방법 | |
CN111831440A (zh) | 内存回收方法、装置、存储介质及电子设备 | |
US20210200584A1 (en) | Multi-processor system, multi-core processing device, and method of operating the same | |
JP7306966B2 (ja) | 平均オブジェクト参照に基づいた、コピー・ガベージ・コレクションのためのワーク・スティーリングにおけるスピン・カウントの削減 | |
KR102351200B1 (ko) | 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법 | |
KR102595895B1 (ko) | 상황인식 리소스 핫플러그 관리 시스템 및 방법 | |
JP6291992B2 (ja) | スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラム | |
CN115964180A (zh) | 任务调度方法、装置和电子设备 | |
US10365700B2 (en) | System and method of managing context-aware resource hotplug | |
CN113568748B (zh) | 一种应用进程处理方法、装置、存储介质及电子设备 | |
CN110287437B (zh) | 网页截图方法、装置、存储介质及终端 | |
CN102426535A (zh) | 动态进程虚拟化 | |
KR20150024533A (ko) | 프로세스 운영 방법 및 그 장치 | |
US20230393910A1 (en) | Application relaunch optimization | |
KR101014524B1 (ko) | 데이터 일관성을 유지하는 임베디드 시스템의 데이터 리드 방법 | |
US20240094992A1 (en) | Non-disruptive servicing components of a user mode process | |
CN118012589A (zh) | 工作流调度方法、装置、电子设备及存储介质 | |
CN116028167A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
US9641597B2 (en) | Managing an application on a computing system | |
CN105144103A (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 | ||
GRNT | Written decision to grant |