KR102063716B1 - 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 - Google Patents
데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 Download PDFInfo
- Publication number
- KR102063716B1 KR102063716B1 KR1020130054522A KR20130054522A KR102063716B1 KR 102063716 B1 KR102063716 B1 KR 102063716B1 KR 1020130054522 A KR1020130054522 A KR 1020130054522A KR 20130054522 A KR20130054522 A KR 20130054522A KR 102063716 B1 KR102063716 B1 KR 102063716B1
- Authority
- KR
- South Korea
- Prior art keywords
- power
- power information
- processor
- data
- memory
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/3243—Power saving in microcontroller unit
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- 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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B70/00—Technologies for an efficient end-user side electric power management and consumption
- Y02B70/10—Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
Abstract
데이터를 기반으로 전력을 관리하는 프로세싱 장치가 개시된다. 일 실시예에 따른 프로세싱 장치는 프로세서로부터 메모리로의 접근 신호에 반응하여, 해당 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보를 획득하고, 해당 전력 정보에 기초하여 프로세서의 전력 모드를 제어한다.
Description
아래의 실시예들은 모바일 장치, 멀티미디어 장치, 임베디드 시스템 등에 있어서, 전력 관리가 필요한 분야에 적용이 가능한 프로세싱 장치 및 프로세싱 방법에 관한 것이다.
성능이 좋은 하나의 프로세서 대신, 상대적으로 성능은 떨어지지만 여러 개의 프로세서를 사용하는 멀티 프로세서 시스템은 현재 모바일 장치 및 여러 임베디드 시스템에서 많이 사용되고 있다. 성능이 좋은 프로세서를 만들기가 공정상 어렵고, 전력 소비가 크기 때문에, 그 대안으로 멀티 프로세서 시스템을 사용한다.
멀티 프로세서 시스템은 동일한 성능의 싱글 프로세서 보다 전력 소비가 적으나 여전히 전력 소모는 모바일 장치 물론 고성능 슈퍼 컴퓨팅에서도 극복해야 할 문제이다.
멀티 프로세서 시스템에서는 동일한 프로세서를 여러 개 사용하기도 하지만, 다른 프로세서를 여러 개 사용하는 이기종 멀티 프로세서 시스템(Heterogeneous Multicore system)으로 구성하기도 한다. 이는 용도에 맞게 여러 개의 다른 프로세서를 사용함으로써, 불필요한 자원 낭비를 줄이고 전력을 절감하기 위한 것이다.
일 측에 따른 프로세싱 장치는 복수의 전력 모드들을 이용하여 동작하는 프로세서; 상기 프로세서의 동작을 위한 데이터를 저장하는 메모리; 상기 프로세서로부터 상기 메모리로의 접근 신호에 반응하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 관리부; 및 상기 전력 정보가 존재하는 경우, 상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 제어하는 전력 콘트롤러를 포함한다.
이 때, 상기 전력 정보 관리부는 상기 접근 신호에 포함된 메모리 주소-상기 메모리 주소는 상기 접근 요청되는 데이터를 위한 주소임-를 획득하는 주소 획득부; 미리 구비된 전력 정보 세트 중 상기 메모리 주소에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 판단부; 및 상기 메모리 주소에 대응되는 전력 정보가 존재하는 경우, 상기 메모리 주소에 대응되는 전력 정보를 상기 전력 콘트롤러로 제공하는 전력 정보 제공부를 포함할 수 있다.
또한, 상기 미리 구비된 전력 정보 세트는 복수의 전력 정보 투플들을 포함하고, 상기 복수의 전력 정보 투플들 각각은 특정 데이터의 시작 주소; 상기 특정 데이터의 길이; 상기 특정 데이터에 대응되는 전력 모드를 지시하는 원소(element); 및 상기 프로세서의 전력 모드에 대한 상기 특정 데이터의 가중치 중 적어도 하나를 포함할 수 있다.
또한, 상기 전력 콘트롤러는 상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 결정하는 전력 모드 결정부; 및 상기 결정된 전력 모드에 기초하여 상기 프로세서의 전력 모드를 제어하는 전력 모드 제어부를 포함할 수 있다.
또한, 상기 프로세싱 장치는 실행 파일을 획득하고, 상기 실행 파일에 포함된 실행 코드 및 전력 정보 코드를 추출하는 실행 파일 처리부; 및 상기 실행 코드를 상기 메모리에 적재하는 메모리 적재부를 더 포함하고, 상기 전력 정보 관리부는 상기 메모리 적재 결과 및 상기 전력 정보 코드에 기초하여 전력 정보 세트를 업데이트할 수 있다.
또한, 상기 실행 파일은 컴파일러 및 링커에 의해 생성되고, 상기 컴파일러는 소스 코드에 포함된 전력 정보 지시자에 기초하여 상기 전력 정보 코드 및 상기 실행 코드를 생성하며, 상기 링커는 상기 생성된 전력 정보 코드 및 상기 생성된 실행 코드를 포함하는 상기 실행 파일을 생성할 수 있다.
다른 일 측에 따른 프로세싱 장치는 복수의 프로세서들-상기 복수의 프로세서들 각각은 적어도 하나의 전력 모드를 이용하여 동작함-; 상기 복수의 프로세서들의 동작을 위한 데이터를 저장하는 메모리; 상기 복수의 프로세서들 중 적어도 하나로부터 상기 메모리로의 접근 신호에 반응하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 관리부; 및 상기 전력 정보가 존재하는 경우, 상기 전력 정보에 기초하여 상기 적어도 하나의 프로세서의 전력 모드를 제어하는 전력 콘트롤러를 포함할 수 있다.
이 때, 상기 전력 정보 관리부는 접근 요청하는 프로세서의 유형과 무관하게, 접근 요청되는 특정 데이터에 대응되는 동일한 전력 정보를 상기 전력 콘트롤러로 제공할 수 있다.
또한, 제1 프로세서 및 제2 프로세서가 동일한 전력 정보에 대응되는 데이터에 접근하는 경우, 상기 전력 콘트롤러는 상기 동일한 전력 정보에 기초하여 상기 제1 프로세서의 전력 모드 및 상기 제2 프로세서의 전력 모드를 상이하게 제어할 수 있다.
또 다른 일 측에 따른 데이터 기반의 전력 관리 장치는 사용 전력 타입이 구분된 데이터를 저장하는 메모리; 상기 데이터를 처리하는 프로세서; 상기 프로세서로부터 상기 데이터에 대한 처리 요청을 수신하고, 상기 수신된 처리 요청에 응답하여 상기 메모리로부터 상기 데이터를 독출하여 상기 프로세서에 제공하는 메모리 콘트롤러; 및 상기 독출된 데이터에 포함되어 있는 상기 사용 전력 타입에 기초하여 상기 프로세서의 전력을 제어하는 전력 콘트롤러를 포함한다.
이 때, 상기 메모리 콘트롤러는, 상기 독출된 데이터에 상기 사용 전력 타입이 포함되어 있는지를 확인하고, 확인 결과 상기 사용 전력 타입이 포함되어 있는 경우, 상기 확인된 사용 전력 타입을 상기 전력 콘트롤러에 제공할 수 있다.
또 다른 일 측에 따른 프로세싱 방법은 복수의 전력 모드들을 이용하여 동작하는 프로세서로부터 상기 프로세서의 동작을 위한 데이터를 저장하는 메모리로의 접근 신호를 감지하는 단계; 상기 접근 신호에 반응하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 단계; 및 상기 전력 정보가 존재하는 경우, 상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 제어하는 단계를 포함한다.
이 때, 상기 전력 정보가 존재하는지 여부를 판단하는 단계는 상기 접근 신호에 포함된 메모리 주소-상기 메모리 주소는 상기 접근 요청되는 데이터를 위한 주소임-를 획득하는 단계; 및 미리 구비된 전력 정보 세트 중 상기 메모리 주소에 대응되는 전력 정보가 존재하는지 여부를 판단하는 단계를 포함할 수 있다.
또한, 상기 프로세서의 전력 모드를 제어하는 단계는 상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 변경할지 여부를 결정하는 단계; 및 상기 프로세서의 전력 모드를 변경한다는 결정에 따라, 상기 프로세서의 전력 모드를 변경하기 위한 제어 신호를 생성하는 단계를 포함할 수 있다.
또한, 상기 프로세싱 방법은 실행 파일을 획득하고, 상기 실행 파일에 포함된 실행 코드 및 전력 정보 코드를 추출하는 단계; 및 상기 실행 코드를 상기 메모리에 적재하는 단계를 더 포함하고, 상기 전력 정보가 존재하는지 여부를 판단하는 단계는 상기 메모리 적재 결과 및 상기 전력 정보 코드에 기초하여 전력 정보 세트를 업데이트하는 단계를 포함할 수 있다.
도 1은 일 실시예에 따른 복수의 프로세서들을 포함하는 프로세싱 장치를 나타낸 블록도.
도 2는 일 실시예에 따른 프로세싱 장치를 이용하는 데이터 기반 전력 관리 기법을 설명하기 위한 도면.
도 3은 일 실시예에 따른 데이터 기반 전력 정보 기술 방법을 설명하기 위한 도면.
도 4는 일 실시예에 따른 데이터 기반 전력 정보 생성 방법을 설명하기 위한 도면.
도 5는 일 실시예에 따른 전력 정보 세트를 설명하기 위한 도면.
도 6은 일 실시예에 따른 프로세싱 장치를 나타낸 블록도.
도 7은 일 실시예에 따른 데이터 기반의 전력 정보를 적재하는 방법을 나타낸 동작 흐름도.
도 8은 일 실시예에 따른 데이터 기반 전력 관리를 위한 전력 콘트롤러의 동작 방법을 나타내는 동작 흐름도.
도 9는 일 실시예에 따른 데이터 기반 전력 관리를 위한 메모리 콘트롤러의 동작방법을 나타내는 동작 흐름도.
도 2는 일 실시예에 따른 프로세싱 장치를 이용하는 데이터 기반 전력 관리 기법을 설명하기 위한 도면.
도 3은 일 실시예에 따른 데이터 기반 전력 정보 기술 방법을 설명하기 위한 도면.
도 4는 일 실시예에 따른 데이터 기반 전력 정보 생성 방법을 설명하기 위한 도면.
도 5는 일 실시예에 따른 전력 정보 세트를 설명하기 위한 도면.
도 6은 일 실시예에 따른 프로세싱 장치를 나타낸 블록도.
도 7은 일 실시예에 따른 데이터 기반의 전력 정보를 적재하는 방법을 나타낸 동작 흐름도.
도 8은 일 실시예에 따른 데이터 기반 전력 관리를 위한 전력 콘트롤러의 동작 방법을 나타내는 동작 흐름도.
도 9는 일 실시예에 따른 데이터 기반 전력 관리를 위한 메모리 콘트롤러의 동작방법을 나타내는 동작 흐름도.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
실시예들을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 해당 기술이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 복수의 프로세서들을 포함하는 프로세싱 장치를 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 프로세싱 장치(100)는 데이터 중심의 전력 관리를 수행할 수 있다. 일 실시예에 따른 프로세싱 장치(100)의 데이터에 대응되는 전력 정보를 지니고 있고, 프로세서는 해당 데이터를 처리할 때, 그 정보를 이용하여 전력 관리를 수행할 수 있다. 이로써, 사용자에 의해 소스 코드의 데이터에 전력 정보만 기술되면, 모든 프로세서는 자동으로 전력 관리를 수행할 수 있다.
따라서, 일 실시예에 따른 프로세싱 장치(100)를 이용하면, 사용자의 편의성이 향상될 수 있다. 뿐만 아니라, 일 실시예에 따른 프로세싱 장치(100)를 이용하면, 세분화된(fine-grained) 전력 관리가 가능하다.
싱글 코어 시스템에 비하여 멀티 프로세서 시스템에서는 메모리 크기나 접근속도 등이 시스템 성능에 결정적인 역할을 한다. 이는 멀티 프로세서 시스템에서 성능의 중심이 계산이 아닌 데이터에 있다는 것을 의미할 수 있고, 일 실시예에 따른 프로세싱 장치(100)를 이용하면, 멀티 프로세서 시스템에 적합한 전력 관리 기술을 제공할 수 있다.
또한, 일 실시예에 따른 프로세싱 장치(100)는 멀티미디어 응용에 적합할 수 있다. 예를 들어, 멀티미디어 응용에서는 파이프라인(Pipeline) 등과 같이 데이터가 스트림(stream)처럼 흐르는 방식으로 처리될 수 있다. 이렇듯, 데이터를 중심으로 연산이 수행되는 경우, 전력 관리 역시 데이터에 따라 달라지는 것이 바람직하다.
이를 위해, 일 실시예에 따른 프로세싱 장치(100)는 메모리(110), 프로세서(140), 전력 컨트롤러(130), 및 전력 정보 관리부(도면 미표시)를 포함할 수 있다.
일 실시예에 따른 프로세서(140)는 복수의 전력 모드들을 이용하여 동작할 수 있고, 일 실시예에 따른 메모리(110)는 프로세서(140)의 동작을 위한 데이터를 저장할 수 있다.
일 실시예에 따른 전력 정보 관리부(도면 미표시)는 프로세서(140)로부터 메모리(110)로의 접근 신호에 반응하여, 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단할 수 있다. 전력 정보 관리부(도면 미표시)는 구현 여부에 따라 메모리 콘트롤러(120)에 포함되거나, 전력 콘트롤러(130)에 포함될 수 있다. 물론, 전력 정보 관리부(도면 미표시)는 메모리 콘트롤러(120) 및 전력 콘트롤러(130)와 별도로 구비될 수 있다.
이하, 설명의 편의를 위하여 전력 정보 관리부(도면 미표시)가 메모리 콘트롤러(120)에 포함되는 경우를 가정한다. 다만, 전술한 바와 같이 전력 정보 관리부(도면 미표시)의 구현은 메모리 콘트롤러(120)에 포함되는 경우로 한정되지 않는다.
일 실시예에 따른 전력 콘트롤러(130)는 프로세서(140)의 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는 경우, 전력 정보에 기초하여 프로세서(140)의 전력 모드를 제어할 수 있다.
일 실시예에 따른 프로세서(140)는 메모리(110)에 저장되어 있는 데이터를 연산하는 등의 처리를 할 수 있다. 프로세서(140)는 중앙 처리 유닛(CPU, Central Processing Unit), 그래픽 처리 유닛(GPU, Graphics Processing Unit), 하드웨어 가속기(HWA, Hardware Accelerator), 디지털 신호 프로세서(DSP, Digital Signal Processor) 등 복수의 이종 프로세서들을 포함하는 멀티 프로세서로 해석될 수 있다. 물론, 경우에 따라 프로세서(140)는 복수의 동종 프로세서들을 포함하는 멀티 프로세서를 포함할 수 있다.
이에, 프로세서(140)는 접근 가능한 메모리(110)가 존재하고, 프로세서(140)에 포함되는 하위 프로세서들은 메모리 콘트롤러(120)를 통해 메모리(110)에 접근할 수 있다.
여기서, 각 모듈의 구성, 개수, 연결구조는 달라질 수 있다.
일 실시예에 따르면, 메모리 콘트롤러(120)는 접근 요청하는 하위 프로세서의 유형과 무관하게, 접근 요청되는 특정 데이터에 대응되는 동일한 전력 정보를 전력 콘트롤러(130)로 제공할 수 있다.
예를 들어, 중앙 처리 유닛(141)과 그래픽 처리 유닛(142)이 동일한 주소에 저장된 데이터에 접근을 요청한 경우를 가정하자. 이 경우, 메모리 콘트롤러(120)는 중앙 처리 유닛(141)과 그래픽 처리 유닛(142)에게 동일한 전력 정보를 제공할 수 있다.
다만, 전력 콘트롤러(130)는 동일한 전력 정보에 기초하여 중앙 처리 유닛(141)의 전력 모드와 그래픽 처리 유닛(142)의 전력 모드를 상이하게 제어할 수 있다.
보다 구체적으로, 전력 콘트롤러(130)는 따라 동일한 전력 정보를 수신하는 경우에도, 내부 정책에 따라 중앙 처리 유닛(141)의 전력 모드와 그래픽 처리 유닛(142)의 전력 모드를 상이하게 제어할 수 있다.
다른 실시예에 따르면, 메모리(110)는 사용 전력 타입이 구분된 데이터를 저장하고 이를 유지할 수 있다. 예를 들어, 메모리(110)는 데이터 저장 시, 데이터의 전력 정보를 포함하는 태그(tag) 등을 함께 저장할 수 있다.
메모리(110)에 접근할 때, 메모리 콘트롤러(120)는 전력 콘트롤러(130)에 신호를 주고, 해당 메모리(110) 접근에 대응되는 전력 제어가 필요할 경우, 전력 콘트롤러(120)를 이용하여 프로세서(140)의 전력을 조절할 수 있다.
메모리 콘트롤러(120)는 프로세서(140)로부터 데이터에 대한 처리 요청을 수신하고, 수신된 처리 요청에 응답하여 메모리(140)로부터 데이터를 독출하여 프로세서(140)에 제공할 수 있다.
이 때, 일 실시예에 따른 메모리 콘트롤러(120)는 독출된 데이터에 사용 전력 타입이 포함되어 있는지를 확인할 수 있다. 확인 결과 사용 전력 타입이 포함되어 있는 경우라면, 메모리 콘트롤러(120)는 확인된 사용 전력 타입을 전력 콘트롤러(130)에 제공할 수 있다. 전력 콘트롤러(130)는 메모리 콘트롤러(120)로부터 전달된 사용 전력 타입에 따라서 프로세서(140)의 전력을 제어할 수 있다.
전력 콘트롤러(130)는 독출된 데이터에 포함되어 있는 사용 전력 타입에 기초하여 프로세서(140)의 전력을 제어할 수 있다.
도 2는 일 실시예에 따른 프로세싱 장치를 이용하는 데이터 기반 전력 관리 기법을 설명하기 위한 도면이다.
도 2를 참조하면, 일 실시예에 따른 데이터(220)는 전력 정보를 지니고 있고 프로세서(210)는 데이터(220)에 어떤 동작을 수행할 때, 그 데이터(220)의 전력 정보를 이용하여 동작을 수행할 수 있다.
여기서는 전력 관리가 컴퓨팅의 과정에 포함되기 때문에, 전력 관리가 컴퓨팅과 별개가 아닌 컴퓨팅의 일부가 되는 것이다.
사용자는 프로그램 코드(230)를 기술할 때, 각 데이터에 전력 타입(231)을 기술함으로 전력 관리를 할 수 있다.
예를 들어, 프로그램 코드(230)에 전력 타입(231)이 기술되면, 각 프로세서는 프로그램 코드(230)의 실행 중에 해당 데이터를 처리할 때 해당 데이터에 대응되는 전력 타입에 기초하여 전력 관리를 수행할 수 있다.
도 3은 일 실시예에 따른 데이터 기반 전력 정보 기술 방법을 설명하기 위한 도면이다.
도 3은 사용자가 데이터의 전력 타입을 프로그래밍을 통해 기술한 것으로, 타입 기술자(Type qualifier, 310, 320, 330, 340)와 같은 전력 정보 지시자를 통해 기술할 수 있다.
일 실시예에 따르면, 타입 기술자로서 저전력(LP, Low Power), 중전력(MP, Middle Power), 고전력(HP, High Power) 등의 전력 모드에 대응되는 사용 전력 타입이 미리 정의될 수 있다.
또한, 함수의 인자로 사용되는 범용전력(GP, Generic template Power)의 타입 기술자도 정의될 수 있으며, 범용전력의 타입 기술자로 선언된 인자는 저전력(LP, Low Power), 중전력(MP, Middle Power), 고전력(HP, High Power) 등의 전력 모드에 대응되는 사용 전력 타입들의 데이터를 모두 수용할 수 있다.
타입 기술자는 데이터 타입 및 속성(attribute) 등에 따라 기술될 수 있고 프로그래밍 언어에 따라 달라 질 수 있다.
보다 구체적으로, 전체 코드(300) 중에서 데이터에 해당하는 부분은 사전에 사용 전력 타입이 정의될 수 있다.
예를 들어, 도면부호 310과 같이 정수(integer)로 구분되는 변수 'a'에는 사용 전력 타입으로서 '_lp_'가 삽입되어 저전력(low power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 320와 같이 캐릭터로 구분되는 배열 변수 b[10]에는 사용 전력 타입으로서 '_mp_'가 삽입되어 중전력(middle power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 330에서는 함수 'ISR0'의 정의에 있어 사용 전력 타입으로서 '_hp_'가 삽입되어 함수 'ISR0'가 고전력(high power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 340에서 보는 바와 같이, 함수 'decode'의 인자 중에서 inputData에 사용 전력 타입으로서 '_gp_'를 삽입하여 함수 'decode'가 범용 전력(generic power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
종래에는 전력관리의 중심을 코드로 본다. 즉, 코드의 일부분을 저전력 구간으로 설정하고 관리를 한다.
그에 반해, 일 실시예에 따른 데이터 기반의 전력 관리 장치는 전력 관리의 중심을 코드가 아닌 데이터로 본다. 즉, 사용 전력 타입을 삽입함으로써 데이터에 전력 모드를 설정하고, 연산 장치는 상기 데이터가 처리될 때 삽입된 사용 전력 타입에 해당하는 전력 모드로 동작시킬 수 있다.
그러므로 해당 데이터를 사용하는 부분을 찾아 전력 관리 구간으로 간주하고 관리를 할 수 있다.
데이터를 처리하는데 따른 전력 모드를 설정하는 방법으로는 새로운 데이터 타입을 도입하거나, 기존 데이터 타입에 사용 전력 타입을 삽입함으로써 구현할 수 있다.
일 실시예에 따른 메모리 콘트롤러는 메모리에 저장되어 있고 프로세서가 요청하는 데이터의 전체 코드에서 '_lp_', '_mp_', '_hp_', 및 '_gp_' 등의 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다.
검색되면, 전력 콘트롤러는 해당 데이터에 대해서 해당 전력 타입의 전력 모드로 동작할 수 있도록 프로세서를 제어할 수 있다.
도 4는 일 실시예에 따른 데이터 기반 전력 정보 생성 방법을 설명하기 위한 도면이다.
도 4는 전력 정보가 포함된 바이너리를 생성하는 과정을 나타낸다. 기존에는 소스 코드를 컴파일러가 오브젝트 코드로 변경하고, 해당 오브젝트들을 링커가 바이너리로 만들 수 있다.
일 실시예에 따르면, 컴파일러(420)가 소스 코드(410)에 포함된 전력 정보 지시자에 기초하여 오브젝트 파일(430) 등 실행 코드와 함께 전력 정보(450)를 포함하는 전력 정보 코드를 생성할 수 있다.
이 경우, 링커(440)는 생성된 전력 정보 코드 및 생성된 실행 코드를 포함하는 실행 파일을 생성할 수 있다. 예를 들어, 링커(440)는 링킹 작업을 통하여 오브젝트 파일(430)에 대한 바이너리(460)를 만들면서, 바이너리(460)에 전력 정보(450)를 포함시킬 수 있다.
도 5는 일 실시예에 따른 전력 정보 세트를 설명하기 위한 도면이다.
도 5를 참조하면, 일 실시예에 따른 프로세싱 장치는 데이터의 시작위치와 길이를 저장하여, 프로세서에 의해 접근되는 메모리 주소가 이 범위에 포함하는지 여부를 판단할 수 있다.
일 실시예에 따른 프로세싱 장치는 복수의 전력 정보 투플들을 포함하는 미리 구비된 전력 정보 세트(500)를 이용할 수 있다.
이 때, 시작위치와 길이로 결정되는 범위를 전력 영역(power region)으로 정의할 수 있고, 해당 전력 영역은 각각 전력 정보 및 가중치(weight)를 가질 수 있다. 전력 정보는 사용자가 기술한 것이나, 프로그램이 실행되는 런타임에 재구성된 전력 정보일 수 있다. 가중치는 해당 데이터가 사용되는 코드의 특성을 반영하며, 마찬가지로 런타임에 결정될 수 있다.
전력 정보 세트(500)는 도 4에서 생성된 바이너리(460)에 포함될 수 있다. 물론, 경우에 따라 전력 정보 세트(500)가 저장되는 위치 및 전력 정보 세트(500)의 구성은 달라질 수 있다.
도 6은 일 실시예에 따른 프로세싱 장치를 나타낸 블록도이다.
도 6을 참조하면, 일 실시예에 따른 프로세싱 장치(600)는 프로세서(610)가 접근하는 메모리(630)의 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단할 수 있다.
판단 결과, 메모리(630)에 대응되는 전력 정보가 존재하는 경우에, 메모리 콘트롤러(620)는 전력 콘트롤러(640)에게 전력 정보를 제공할 수 있다. 전력 콘트롤러(640)는 해당 전력 정보를 이용하여 프로세서(610)의 전력 모드를 제어할 수 있다. 여기서, 메모리 콘트롤러(640)는 주소변환 등을 수행할 수 있고, 전력 콘트롤러(640)는 특정 정책에 따라 프로세서(610)의 전력을 조절할 수 있다.
메모리 콘트롤러(620)나 전력 콘트롤러(640)의 수나 구성은 달라질 수 있으며, 메모리(630)의 종류 및 위치에 따라서 메모리 콘트롤러(620)의 위치 및 구성이 달라질 수 있다.
도 7은 일 실시예에 따른 데이터 기반의 전력 정보를 적재하는 방법을 나타낸 동작 흐름도이다.
도 7을 참조하면, 응용 바이너리에는 실제 응용을 동작시킬 수 있는 프로그램과 데이터 기반의 전력 정보가 함께 있다. 데이터 기반 전력 관리 방법에서는 프로그램과 데이터 기반의 전력 정보를 분할할 수 있다(단계 701).
일 실시예에 따른 데이터 기반 전력 관리 방법은 프로그램에 대해 일반 로딩과정을 거칠 수 있다(단계 702). 로딩과정의 결과 프로그램의 주소가 결정이 되면, 데이터 기반 전력 관리 방법은 데이터 기반 전력 정보를 업데이트할 수 있다(단계 703).
일 실시예에 따른 데이터 기반 전력 관리 방법은 데이터 기반 전력 정보를 메모리 콘트롤러에 로딩시킬 수 있다(단계 704).
메모리 콘트롤러에 로딩된 데이터 기반 전력 정보는 프로세서가 접근하는 데이터가 전력 정보의 소유 유무를 판단하는데 사용될 수 있다. 메모리 콘트롤러가 전력 정보 적재 및 판단을 담당하고 있지만, 다른 장치가 담당할 수도 있다. 예를 들어 프로세서에 새로운 모듈이 추가될 수도 있고, 전력 콘트롤러에서 모두 담당할 수도 있다.
도면에 도시하지 않았으나, 다른 실시예에 따른 도 1의 프로세싱 장치(100)는 실행 파일 처리부 및 메모리 적재부를 더 포함할 수 있다.
실행 파일 처리부는 실행 파일을 획득하고, 실행 파일에 포함된 실행 코드 및 전력 정보 코드를 추출할 수 있다. 여기서, 실행 파일은 응용 바이너리를 포함하고, 실행 코드는 프로그램을 포함하며, 전력 정보 코드는 데이터 기반 전력 정보를 포함할 수 있다. 또한, 실행 코드는 명령어 코드 및 데이터 코드를 포함할 수 있다.
메모리 적재부는 추출된 실행 코드를 메모리에 적재할 수 있고, 도 1의 메모리 콘트롤러(120)에 포함된 전력 정보 관리부는 메모리 적재 결과 및 전력 정보 코드에 기초하여 도 5의 전력 정보 세트(500)를 업데이트할 수 있다.
도 8은 일 실시예에 따른 데이터 기반 전력 관리를 위한 전력 콘트롤러의 동작 방법을 나타내는 동작 흐름도이다.
도 8을 참조하면, 일 실시예에 따른 데이터 기반의 전력 관리 방법은 메모리를 통해, 사용 전력 타입이 구분된 데이터를 저장하고 이를 유지할 수 있다.
일 실시예에 따른 데이터 기반의 전력 관리 방법은 프로세서를 통해, 데이터를 처리하고, 메모리 콘트롤러를 통해, 프로세서로부터 데이터에 대한 처리 요청을 수신하며, 수신된 처리 요청에 응답하여 메모리로부터 데이터를 독출하여 프로세서에 제공할 수 있다.
또한, 일 실시예에 따른 데이터 기반의 전력 관리 방법은 전력 콘트롤러를 통해, 독출된 데이터에 대응되는 전력 정보에 기초하여 프로세서의 전력을 제어할 수 있다.
구체적으로, 메모리 콘트롤러는 프로세서로부터 접근 가능한 메모리 주소를 요청 받는다.
메모리 콘트롤러는 이 주소가 전력 정보를 가지고 있는 데이터인지를 확인할 수 있다. 이 때, 전력 정보를 가지고 있는 데이터 주소 범위를 전력 영역(power region)이라고 한다. 만약 그 주소가 전력 영역 안에 있다면, 해당 전력 정보를 전력 콘트롤러에게 전달하고, 전력 콘트롤러는 메모리 콘트롤러로부터 전력 정보를 수집할 수 있다(단계 801).
전력 콘트롤러는 메모리 콘트롤러로부터 수집한 전력 정보에 기초하여 해당 프로세서의 전력 모드를 결정할 수 있다 (단계 802). 전력 콘트롤러의 전력 모드 결정 방법은 다양할 수 있다. 전력 콘트롤러는 전력 정보뿐 아니라 미리 구비된 내부 정책에 기초하여 프로세서의 전력 모드를 결정할 수 있다.
예를 들어, 일 실시예에 따른 전력 콘트롤러는 메모리 콘트롤러로부터 얻은 전력 정보를 바로 적용하여 전력 모드를 결정할 수 있다. 뿐만 아니라, 일 실시예에 따른 전력 콘트롤러는 기존의 전력 정보를 프로파일링한 결과를 이용하여 전력 모드를 결정할 수도 있다.
일 실시예에 따른 전력 콘트롤러는 메모리 콘트롤러로부터 여러 전력 정보가 번갈아 입력되는 경우, 매번 전력 모드를 갱신시키지 않는다. 이러한 경우, 일 실시예에 따른 전력 콘트롤러는 해당 전력 정보를 바탕으로 평균값을 취함으로써 전력 모드를 결정할 수 있다.
일 실시예에 따른 전력 콘트롤러는 응용의 코드에 따른 가중치를 주어 전력 모드 결정을 위한 연산을 수행할 수도 있다. 이 경우, 일 실시예에 따른 전력 콘트롤러는 반복문에 사용되는 데이터라면 해당 데이터가 전력 모드 결정에 미치는 가중치를 높게 부여할 수 있다.
전력 콘트롤러는 결정된 전력 모드를 이용하여 프로세서의 전력 모드를 변경할 것인지를 판단할 수 있다 (단계 803).
만약, 프로세서의 전력 모드를 변경해야 한다면, 전력 콘트롤러는 프로세서의 전력 모드를 변경하는 절차를 수행할 수 있다 (단계 804). 만약, 전력 모드를 변경할 필요가 없다면, 전력 콘트롤러는 전력 관리를 종료할 수 있다.
전력 모드를 변경하지 않을 때에도, 사용된 전력 정보는 프로파일링을 위해 따로 관리될 수 있다. 경우에 따라, 전력 콘트롤러는 여러 개의 메모리 콘트롤러로부터 입력을 받을 수 있다.
도면에 표시하지 않았으나, 도 1의 전력 콘트롤러(130)는 전력 모드 결정부 및 전력 모드 제어부를 포함할 수 있다.
전력 모드 결정부는 전력 정보에 기초하여 도 1의 프로세서(140)의 전력 모드를 결정할 수 있다. 이 때, 전력 모드 결정부는 도 1의 프로세서(140)가 이용하는 복수의 전력 모드들 중 어느 하나의 전력 모드를 선택할 수 있다.
전력 모드 제어부는 결정된 전력 모드에 기초하여 프로세서의 전력 모드를 제어할 수 있다. 이 경우, 전력 모드 제어부는 결정된 전력 모드와 현재 프로세서의 전력 모드를 비교함으로써, 프로세서의 전력 모드를 변경할지 여부를 결정할 수 있다.
예를 들어, 전력 모드 제어부는 결정된 전력 모드와 현재 프로세서의 전력 모드가 동일한 경우, 별도의 제어 신호를 생성하지 않을 수 있다. 반면, 전력 모드 제어부는 결정된 전력 모드와 현재 프로세서의 전력 모드가 상이한 경우, 프로세서의 전력 모드를 변경하는 제어 신호를 생성할 수 있다.
도 9는 일 실시예에 따른 데이터 기반 전력 관리를 위한 메모리 콘트롤러의 동작방법을 나타내는 동작 흐름도이다.
도 9를 참조하면, 메모리 콘트롤러는 프로세서가 요구하는 메모리 주소를 수집할 수 있다(단계 901).
메모리 콘트롤러는 수집된 메모리 주소가 전력 영역 내에 위치하였는지 여부를 확인할 수 있다(단계 902). 만약, 전력 영역 내에 위치하였다면 메모리 콘트롤러는 전력 콘트롤러로 전력 정보를 전송할 수 있다(단계 903).
또한, 메모리 콘트롤러는 메모리 주소를 이용하여 메모리의 데이터를 프로세서에 전송할 수 있다(단계 904). 예를 들어, 메모리 콘트롤러는 데이터 처리를 위해서 메모리로부터 해당 주소에 대한 데이터를 프로세서에게 전달하는 동작을 수행할 수 있다.
메모리 콘트롤러는 수집된 메모리 주소가 전력 영역 내에 위치하였는지 여부를 확인하고, 전력 영역 내에 위치하지 않았다면, 단계 904로 분기하여 메모리의 데이터를 프로세서로 전달할 수 있다.
예를 들어, 만약 전력 영역에 있는 데이터가 아니라면 그냥 일반 데이터이므로, 메모리 콘트롤러는 메모리로부터 해당 주소에 대한 데이터를 프로세서에게 전달하는 동작만 수행할 수 있다.
여기서 메모리 콘트롤러는 주소에 대한 변환을 수행할 수 있다. 일반적인 프로세서에서는 가상 주소를 물리 주소로 변환시키는 모듈을 사용하기도 한다. 이 변환과정에서 추가적으로 전력 영역 탐지 로직을 사용함으로써, 실행 오버헤드 없이 전력 관리를 수행할 수 있다. 즉, 메모리 콘트롤러는 주소에 대한 변환을 하드웨어적으로 동시에 수행할 수 있기 때문에 실행 오버헤드 없이 전력 관리를 수행할 수 있다.
전력영역을 구성하는 단위는 메모리 콘트롤러가 유지하는 메모리의 단위가 될 수 있다. 메모리 주소의 최소 단위 및 페이지(page), 캐쉬 라인(cache line) 단위 등이 될 수 있다. 실제적으로 프로세서가 요구하는 메모리 주소에 맞게 맵핑 및 관리만 가능하다면 어떤 단위도 사용가능 하다.
도면에 표시하지 않았으나, 도 1의 메모리 컨트롤러(120)에 포함된 전력 정보 관리부는 주소 획득부, 전력 정보 판단부, 및 전력 정보 제공부를 포함할 수 있다.
주소 획득부는 도 1의 프로세서(140)로부터의 접근 신호에 포함된 메모리 주소를 획득하고, 전력 정보 판단부는 미리 구비된 도 5의 전력 정보 세트(500) 중 접근 요청된 메모리 주소에 대응되는 전력 정보가 존재하는지 여부를 판단할 수 있다.
전력 정보 제공부는 접근 요청된 메모리 주소에 대응되는 전력 정보가 존재하는 경우, 해당 전력 정보를 도 1의 전력 콘트롤러(130)로 제공할 수 있다.
일 실시예에 따른 데이터 기반의 전력 관리 장치 및 방법을 이용하면, 하드웨어 레벨에서 데이터 중심의 전력 관리를 수행할 수 있다.
데이터는 전력 정보를 지니고 있고, 프로세서는 해당 데이터를 처리할 때, 그 정보를 이용하여 전력 관리를 수행할 수 있다. 이로써, 사용자는 데이터에 전력 정보만 기술하게 되면, 모든 프로세서가 알아서 전력 관리를 수행할 수 있다.
일 실시예에 따른 데이터 기반의 전력 관리 장치 및 방법을 이용하면, 기존에 모든 프로세서의 전력 관리를 하는 것에 비해 데이터의 전력 타입을 기술하는 것만으로도 전력 관리가 가능해지기 때문에 사용자의 편의성이 향상될 수 있다.
일 실시예에 따른 데이터 기반의 전력 관리 장치 및 방법을 이용하면 일반적으로 사용자가 직접 전력 관리를 하는 경우의 Coarse-grained 전력관리에 비하여 세분화된(fine-grained) 전력 관리가 가능하다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (18)
- 복수의 전력 모드들을 기반으로 동작하는 프로세서;
상기 프로세서의 동작을 위한 데이터를 저장하는 메모리;
상기 프로세서로부터 상기 메모리로의 접근 신호에 응답하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 관리부; 및
상기 전력 정보가 존재하는 경우, 상기 프로세서가 상기 복수의 전력 모드들 중 상기 전력 정보에 대응하는 전력 모드에 기초하여 상기 접근 요청되는 데이터를 처리하도록 상기 프로세서의 전력 모드를 제어하는 전력 콘트롤러를 포함하고,
상기 전력 정보 관리부는 상기 접근 신호에 포함된 메모리 주소가 미리 설정된 주소 범위에 포함되는지 여부를 판별하고, 상기 메모리 주소가 상기 미리 설정된 주소 범위에 포함되는 경우, 상기 접근 요청되는 데이터에 대응되는 상기 전력 정보가 존재하는 것으로 판단하는 프로세싱 장치. - 제1항에 있어서,
상기 전력 정보 관리부는
상기 접근 신호에 포함된 상기 메모리 주소를 획득하는 주소 획득부;
미리 구비된 전력 정보 세트 중 상기 메모리 주소에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 판단부; 및
상기 메모리 주소에 대응되는 전력 정보가 존재하는 경우, 상기 메모리 주소에 대응되는 전력 정보를 상기 전력 콘트롤러로 제공하는 전력 정보 제공부
를 포함하는 프로세싱 장치. - 제2항에 있어서,
상기 미리 구비된 전력 정보 세트는 복수의 전력 정보 투플들을 포함하고,
상기 복수의 전력 정보 투플들 각각은
특정 데이터의 시작 주소;
상기 특정 데이터의 길이;
상기 특정 데이터에 대응되는 전력 모드를 지시하는 원소(element); 및
상기 프로세서의 전력 모드에 대한 상기 특정 데이터의 가중치
중 적어도 하나를 포함하는 프로세싱 장치. - 제1항에 있어서,
상기 전력 콘트롤러는
상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 결정하는 전력 모드 결정부; 및
상기 결정된 전력 모드에 기초하여 상기 프로세서의 전력 모드를 제어하는 전력 모드 제어부
를 포함하는 프로세싱 장치. - 제2항에 있어서,
실행 파일을 획득하고, 상기 실행 파일에 포함된 실행 코드 및 전력 정보 코드를 추출하는 실행 파일 처리부; 및
상기 실행 코드를 상기 메모리에 적재하는 메모리 적재부
를 더 포함하고,
상기 전력 정보 관리부는 상기 메모리 적재 결과 및 상기 전력 정보 코드에 기초하여 상기 미리 구비된 전력 정보 세트를 업데이트하는 프로세싱 장치. - 제5항에 있어서,
상기 실행 파일은 컴파일러 및 링커에 의해 생성되고,
상기 컴파일러는 소스 코드에 포함된 전력 정보 지시자에 기초하여 상기 전력 정보 코드 및 상기 실행 코드를 생성하며,
상기 링커는 상기 생성된 전력 정보 코드 및 상기 생성된 실행 코드를 포함하는 상기 실행 파일을 생성하는 프로세싱 장치. - 각각이 복수의 전력 모드들을 기반으로 동작하는 복수의 프로세서들;
상기 복수의 프로세서들의 동작을 위한 데이터를 저장하는 메모리;
상기 복수의 프로세서들 중 적어도 하나로부터 상기 메모리로의 접근 신호에 응답하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 전력 정보 관리부; 및
상기 전력 정보가 존재하는 경우, 상기 적어도 하나의 프로세서가 상기 복수의 전력 모드들 중 상기 전력 정보에 대응하는 전력 모드에 기초하여 상기 접근 요청되는 데이터를 처리하도록 상기 적어도 하나의 프로세서의 전력 모드를 제어하는 전력 콘트롤러를 포함하고,
상기 전력 정보 관리부는 상기 접근 신호에 포함된 메모리 주소가 미리 설정된 주소 범위에 포함되는지 여부를 판별하고, 상기 메모리 주소가 상기 미리 설정된 주소 범위에 포함되는 경우, 상기 접근 요청되는 데이터에 대응되는 상기 전력 정보가 존재하는 것으로 판단하는 프로세싱 장치. - 제7항에 있어서,
상기 전력 정보 관리부는 접근 요청하는 프로세서의 유형과 무관하게, 접근 요청되는 특정 데이터에 대응되는 동일한 전력 정보를 상기 전력 콘트롤러로 제공하는 프로세싱 장치. - 제7항에 있어서,
제1 프로세서 및 제2 프로세서가 동일한 전력 정보에 대응되는 데이터에 접근하는 경우, 상기 전력 콘트롤러는 상기 동일한 전력 정보에 기초하여 상기 제1 프로세서의 전력 모드 및 상기 제2 프로세서의 전력 모드를 상이하게 제어하는 프로세싱 장치. - 사용 전력 타입이 구분된 데이터를 저장하는 메모리;
상기 데이터를 처리하는 프로세서;
상기 프로세서로부터 상기 데이터에 대한 처리 요청을 수신하고, 상기 수신된 처리 요청에 응답하여 상기 메모리로부터 상기 데이터를 독출하여 상기 프로세서에 제공하는 메모리 콘트롤러; 및
상기 데이터에 대응되는 사용 전력 타입에 기초하여 상기 프로세서의 전력을 제어하는 전력 콘트롤러를 포함하고,
상기 메모리 콘트롤러는 상기 데이터에 대한 처리 요청에 응답하여, 상기 처리 요청에 포함된 메모리 주소가 미리 설정된 주소 범위에 포함되는지 여부를 판별하고, 상기 메모리 주소가 상기 미리 설정된 주소 범위에 포함되는 경우, 상기 데이터에 대응되는 상기 사용 전력 타입을 상기 전력 콘트롤러로 제공하는 데이터 기반의 전력 관리 장치. - 삭제
- 복수의 전력 모드들을 이용하여 동작하는 프로세서로부터 상기 프로세서의 동작을 위한 데이터를 저장하는 메모리로의 접근 신호를 감지하는 단계;
상기 접근 신호에 응답하여, 상기 접근 신호에 의해 접근 요청되는 데이터에 대응되는 전력 정보가 존재하는지 여부를 판단하는 단계; 및
상기 전력 정보가 존재하는 경우, 상기 프로세서가 상기 복수의 전력 모드들 중 상기 전력 정보에 대응하는 전력 모드에 기초하여 상기 접근 요청되는 데이터를 처리하도록 상기 프로세서의 전력 모드를 제어하는 단계를 포함하고,
상기 전력 정보가 존재하는지 여부를 판단하는 단계는,
상기 접근 신호에 포함된 메모리 주소가 미리 설정된 주소 범위에 포함되는지 여부를 판별하는 단계; 및
상기 메모리 주소가 상기 미리 설정된 주소 범위에 포함되는 경우, 상기 접근 요청되는 데이터에 대응되는 상기 전력 정보가 존재하는 것으로 판단하는 단계를 포함하는 프로세싱 방법. - 제12항에 있어서,
상기 메모리 주소가 상기 미리 설정된 주소 범위에 포함되는지 여부를 판별하는 단계는,
상기 접근 신호로부터 상기 메모리 주소를 획득하는 단계; 및
미리 구비된 전력 정보 세트를 기반으로 상기 메모리 주소에 대응되는 상기 미리 설정된 주소 범위를 확인하는 단계
를 포함하는 프로세싱 방법. - 제13항에 있어서,
상기 미리 구비된 전력 정보 세트는 복수의 전력 정보 투플들을 포함하고,
상기 복수의 전력 정보 투플들 각각은
특정 데이터의 시작 주소;
상기 특정 데이터의 길이;
상기 특정 데이터에 대응되는 전력 모드를 지시하는 원소(element); 및
상기 프로세서의 전력 모드에 대한 상기 특정 데이터의 가중치
중 적어도 하나를 포함하는 프로세싱 방법. - 제12항에 있어서,
상기 프로세서의 전력 모드를 제어하는 단계는
상기 전력 정보에 기초하여 상기 프로세서의 전력 모드를 변경할지 여부를 결정하는 단계; 및
상기 프로세서의 전력 모드를 변경한다는 결정에 따라, 상기 프로세서의 전력 모드를 변경하기 위한 제어 신호를 생성하는 단계
를 포함하는 프로세싱 방법. - 제13항에 있어서,
실행 파일을 획득하고, 상기 실행 파일에 포함된 실행 코드 및 전력 정보 코드를 추출하는 단계; 및
상기 실행 코드를 상기 메모리에 적재하는 단계
를 더 포함하고,
상기 전력 정보가 존재하는지 여부를 판단하는 단계는
상기 메모리 적재 결과 및 상기 전력 정보 코드에 기초하여 상기 미리 구비된 전력 정보 세트를 업데이트하는 단계
를 포함하는 프로세싱 방법. - 제16항에 있어서,
상기 실행 파일은 컴파일러 및 링커에 의해 생성되고,
상기 컴파일러는 소스 코드에 포함된 전력 정보 지시자에 기초하여 상기 전력 정보 코드 및 상기 실행 코드를 생성하며,
상기 링커는 상기 생성된 전력 정보 코드 및 상기 생성된 실행 코드를 포함하는 상기 실행 파일을 생성하는 프로세싱 방법. - 제12항 내지 제17항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130054522A KR102063716B1 (ko) | 2013-05-14 | 2013-05-14 | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 |
US14/275,311 US9870042B2 (en) | 2013-05-14 | 2014-05-12 | Apparatus and method managing power based on data |
CN201410204030.4A CN104156051B (zh) | 2013-05-14 | 2014-05-14 | 基于数据管理功率的设备和方法 |
EP14168289.8A EP2804099B1 (en) | 2013-05-14 | 2014-05-14 | Apparatus and method managing power based on data |
JP2014100636A JP6457200B2 (ja) | 2013-05-14 | 2014-05-14 | プロセッシング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130054522A KR102063716B1 (ko) | 2013-05-14 | 2013-05-14 | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140134523A KR20140134523A (ko) | 2014-11-24 |
KR102063716B1 true KR102063716B1 (ko) | 2020-02-11 |
Family
ID=50979504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130054522A KR102063716B1 (ko) | 2013-05-14 | 2013-05-14 | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9870042B2 (ko) |
EP (1) | EP2804099B1 (ko) |
JP (1) | JP6457200B2 (ko) |
KR (1) | KR102063716B1 (ko) |
CN (1) | CN104156051B (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323304B2 (en) * | 2013-12-18 | 2016-04-26 | NXGN Data, Inc. | Dynamic self-correcting power management for solid state drive |
US9519323B2 (en) * | 2014-09-30 | 2016-12-13 | Dell Products L.P. | Systems and methods for power and thermal support of information handling resources |
US9886081B2 (en) * | 2015-09-16 | 2018-02-06 | Qualcomm Incorporated | Managing power-down modes |
JP6130949B1 (ja) * | 2016-03-17 | 2017-05-17 | 株式会社東芝 | メモリシステムおよびプロセッサシステム |
CN113900680A (zh) * | 2020-07-06 | 2022-01-07 | 中国移动通信集团重庆有限公司 | 代码管理方法、装置及计算设备 |
JP2022027240A (ja) * | 2020-07-31 | 2022-02-10 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置および情報処理方法 |
US12131163B2 (en) * | 2021-04-30 | 2024-10-29 | Oracle International Corporation | Processor supporting self-relative addressing modes |
JP2023076063A (ja) | 2021-11-22 | 2023-06-01 | 富士通株式会社 | 制御プログラム、情報処理装置および制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182589A1 (en) * | 2002-01-30 | 2003-09-25 | Takenobu Tani | Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557557A (en) * | 1994-10-04 | 1996-09-17 | Texas Instruments Incorporated | Processor power profiler |
JP3520611B2 (ja) * | 1995-07-06 | 2004-04-19 | 株式会社日立製作所 | プロセッサの制御方法 |
US6219796B1 (en) | 1997-12-23 | 2001-04-17 | Texas Instruments Incorporated | Power reduction for processors by software control of functional units |
SE516923C2 (sv) * | 1999-11-25 | 2002-03-26 | Ericsson Telefon Ab L M | En och samma skärm drivs i två moder,som inte kan användas samtidigt |
JP2001184208A (ja) | 1999-12-27 | 2001-07-06 | Matsushita Electric Ind Co Ltd | 低電力マイクロプロセッサおよびプログラム低電力化方法 |
US6625740B1 (en) * | 2000-01-13 | 2003-09-23 | Cirrus Logic, Inc. | Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions |
JP3877518B2 (ja) * | 2000-12-13 | 2007-02-07 | 松下電器産業株式会社 | プロセッサの電力制御装置 |
US6775787B2 (en) * | 2002-01-02 | 2004-08-10 | Intel Corporation | Instruction scheduling based on power estimation |
JP2003296123A (ja) | 2002-01-30 | 2003-10-17 | Matsushita Electric Ind Co Ltd | 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ |
CN100407102C (zh) | 2002-12-04 | 2008-07-30 | Nxp股份有限公司 | 基于软件的微处理器功率损耗控制 |
JP2004318502A (ja) | 2003-04-16 | 2004-11-11 | Matsushita Electric Ind Co Ltd | 電力制御機能を備えたマイクロプロセッサ及び命令変換装置 |
JP2008234270A (ja) * | 2007-03-20 | 2008-10-02 | Fujitsu Ltd | 情報処理装置および情報処理装置の制御方法 |
JP5008138B2 (ja) * | 2007-11-12 | 2012-08-22 | 株式会社リコー | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
US20100332877A1 (en) * | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
WO2012154611A1 (en) | 2011-05-06 | 2012-11-15 | Marvell World Trade Ltd. | Memory on-demand, managing power in memory |
CN102999155B (zh) * | 2011-09-09 | 2016-10-05 | 联想(北京)有限公司 | 电子终端、触摸控制方法和显示屏背光控制方法 |
KR101959252B1 (ko) | 2012-07-16 | 2019-07-04 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 장치 및 방법 |
-
2013
- 2013-05-14 KR KR1020130054522A patent/KR102063716B1/ko active IP Right Grant
-
2014
- 2014-05-12 US US14/275,311 patent/US9870042B2/en active Active
- 2014-05-14 EP EP14168289.8A patent/EP2804099B1/en active Active
- 2014-05-14 JP JP2014100636A patent/JP6457200B2/ja active Active
- 2014-05-14 CN CN201410204030.4A patent/CN104156051B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182589A1 (en) * | 2002-01-30 | 2003-09-25 | Takenobu Tani | Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction |
Also Published As
Publication number | Publication date |
---|---|
US9870042B2 (en) | 2018-01-16 |
EP2804099A1 (en) | 2014-11-19 |
CN104156051A (zh) | 2014-11-19 |
JP2014225263A (ja) | 2014-12-04 |
EP2804099B1 (en) | 2017-09-20 |
US20140344602A1 (en) | 2014-11-20 |
CN104156051B (zh) | 2019-09-06 |
KR20140134523A (ko) | 2014-11-24 |
JP6457200B2 (ja) | 2019-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102063716B1 (ko) | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 | |
US10372493B2 (en) | Thread and/or virtual machine scheduling for cores with diverse capabilities | |
US9619298B2 (en) | Scheduling computing tasks for multi-processor systems based on resource requirements | |
JP5707011B2 (ja) | 統合分岐先・述語予測 | |
US9146682B2 (en) | Method and apparatus for storing data | |
US20130080805A1 (en) | Dynamic partitioning for heterogeneous cores | |
EP3398113B1 (en) | Loop code processor optimizations | |
US20150046679A1 (en) | Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems | |
US8914808B2 (en) | Apparatus and method for dynamically reconfiguring state of application program in a many-core system | |
US9405349B2 (en) | Multi-core apparatus and job scheduling method thereof | |
US8495307B2 (en) | Target memory hierarchy specification in a multi-core computer processing system | |
US9430240B1 (en) | Pre-computation slice merging for prefetching in a computer processor | |
US9086873B2 (en) | Methods and apparatus to compile instructions for a vector of instruction pointers processor architecture | |
KR20110106717A (ko) | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 | |
WO2013096629A1 (en) | Providing hint register storage for a processor | |
US20150301865A1 (en) | Hardware resource allocation for applications | |
JP6400296B2 (ja) | マルチモード支援プロセッサ及びマルチモードを支援する処理方法 | |
US9639472B2 (en) | Prefetch list management in a computer system | |
US10241838B2 (en) | Domain based resource isolation in multi-core systems | |
JP2014056425A (ja) | データ管理装置、データ管理システム、処理割当方法および処理割当プログラム | |
US20120180063A1 (en) | Method and Apparatus for Providing Management of Parallel Library Implementation | |
US20140331025A1 (en) | Reconfigurable processor and operation method thereof | |
US9330005B2 (en) | Interface and method for inter-thread communication | |
CN112783823A (zh) | 共享代码的系统与代码共享方法 | |
US20230205532A1 (en) | Offloading computation based on extended instruction set architecture |
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 |