KR20040084832A - 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어방법, 클럭 제어 프로그램 및 그 프로그램 제품 - Google Patents

정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어방법, 클럭 제어 프로그램 및 그 프로그램 제품 Download PDF

Info

Publication number
KR20040084832A
KR20040084832A KR1020040020367A KR20040020367A KR20040084832A KR 20040084832 A KR20040084832 A KR 20040084832A KR 1020040020367 A KR1020040020367 A KR 1020040020367A KR 20040020367 A KR20040020367 A KR 20040020367A KR 20040084832 A KR20040084832 A KR 20040084832A
Authority
KR
South Korea
Prior art keywords
clock
frequency
specific processing
processing section
time
Prior art date
Application number
KR1020040020367A
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 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR20040084832A publication Critical patent/KR20040084832A/ko

Links

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
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C15/00Generating random numbers; Lottery apparatus
    • G07C15/001Generating random numbers; Lottery apparatus with balls or the like
    • 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
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Transfer Systems (AREA)

Abstract

처리의 실시간성과 소비 전력의 저감을 양립적으로 실현된다.
클럭 제어부(102)는, 클럭 생성부(101)가 생성하는 클럭을 제어하여 클럭 주파수를 결정한다. 연산 처리부(103)는, 클럭 제어부(102)를 통하여 공급되는 클럭에 따라서, 기억부(1O4)로부터 취득한 소프트웨어를 실행한다. 배타 처리 구간 검출부(110)는, 배타적인 처리를 행하는 구간인 배타 처리 구간의 개시와 종료를 검출한다. 클럭 판정부(111)는, 배타 처리 구간 검출부(110)가 특정 처리 구간의 개시를 검출한 경우에는 클럭 주파수를 높이도록 클럭 제어부(102)에 명령하고, 배타 처리 구간 검출부(110)가 특정 처리 구간의 종료를 검출한 경우에는 클럭 주파수를 낮추도록 클럭 제어부(102)에 명령한다.

Description

정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어 방법, 클럭 제어 프로그램 및 그 프로그램 제품{INFORMATION PROCESSING APPARATUS, ELECTRONIC DEVICE, METHOD FOR CONTROLLING A CLOCK OF THE INFORMATION PROCESSING APPARATUS, PROGRAM FOR CONTROLLING A CLOCK, AND PROGRAM PRODUCT FOR THE SAME}
본 발명은, 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어 방법, 클럭 제어 프로그램 및 그 프로그램 제품에 관한 것으로, 특히, 클럭 주파수를 제어는 것에 따른 소비 전력을 저감하는 기술에 관한 것이다.
현재의 가전 기기, 예컨대 휴대 전화, 휴대 AV 기기, 디지털 카메라 등에 있어서, 소비 전력을 낮게 억제하고자 하는 요구가 크다. 최근의 가전 기기에는 CPU(중앙 연산 처리 장치)를 비롯하여 많은 처리 장치가 다수 내장되어 있다. 또한, 이들의 처리 장치 상에서, 다수의 소프트웨어가 동시에 동작하거나, 디스플레이 등의 전력을 크게 소비하는 표시 장치가 구비되어 있기 때문에, 소비 전력이 증대하는 경향에 있고, 소비 전력을 억제하는 기술이 필요하게 되어 왔다.
정보 처리 장치가 소비하는 전력을 작게 하는 기술로서, 정보 처리 장치에 공급하는 클럭의 주파수인 클럭 주파수를, 정보 처리 장치의 상태에 따라 제어하는 기술이 알려져 있다. 그러한 종래 기술로서, 통상은 느린 클럭 주파수로 동작하여, CPU에 대한 외부 인터럽트 기간과 그 후의 일정 기간만 특별히, CPU에 공급하는 클럭 주파수를 높이는 기술이 개시되어 있다(예컨대, 특허 문헌 1 참조). 이 기술은, 인터럽트 플래그를 세우고 있는 장치상의 하드웨어를 참조함으로써, 클럭 주파수의 제어를 행하고 있다.
또한, 전제로서 각 태스크가 필요로 하는 최저한의 성능이 설정되어 있고,각 태스크를 기동할 때에 그 성능에 따라 클럭 주파수를 제어하도록 설정 회로에 설정하는 기술이 개시되어 있다(예컨대, 특허 문헌 2 참조).
또한, 멀티태스크 오퍼레이팅 시스템 하에서, 클럭 주파수를 낮추는 태스크를 항상 최하위의 우선도로 준비하는 기술이 개시되어 있다(예컨대, 특허 문헌 3 참조). 이 기술은, 다른 모든 태스크의 처리가 종료하였을 때, 즉, 시스템이 대기 상태로 들어 간 경우에, 클럭 주파수를 낮추는 것에 의해 소비 전력을 억제하고 있다.
(특허 문헌 1)
일본 특허 공개 평성 제 5-108191 호 공보
(특허 문헌 2)
일본 특허 공개 평성 제 8-76874 호 공보
(특허 문헌 3)
일본 특허 공개 평성 제 4-278612 호 공보
그러나, 가전 기기의 소비 전력을 억제함과 동시에, 기기를 정상으로 동작시킬 필요가 있어, 가전 기기가 구비하는 처리 장치에는, 실시간성이 요구되는 것이 많다. 실시간성이란, 처리의 요구로부터 소정의 시간 내에 그 내용의 처리가 행해지는 것을 보증하는 것이다. 배타적인 처리를 행하는 구간, 예컨대, 소정의 처리를 행하고 있을 때에 다른 처리가 행해지는 것을 금지한 구간에서는, 다른 처리의요구가 접수되지 않기 때문에, 실시간성을 손상할 위험성이 있다. 따라서, 배타적인 처리를 행하는 구간은, 가능한 한 단시간으로 처리하지 않으면 안 된다.
상기 특허 문헌 1에 개시된 종래 기술은, 외부 인터럽트 기간의 클럭 주파수를 높이는 처리를 행하고 있고, 외부 인터럽트 기간에서는 소비 전력이 항상 높은 상태로 되어, 실시간의 전력 절약 제어를 행할 수 없다고 하는 과제를 갖고 있었다. 또한, 상기 특허 문헌 2에 개시된 종래 기술은, 각 태스크가 필요로 하는 성능에 따른 클럭 주파수의 제어를 행하고 있고, 미리, 각 태스크가 필요로 하는 성능을 결정하여, 설정해 놓을 필요가 있다고 하는 과제를 갖고 있었다. 또한, 상기 특허 문헌 3에 개시된 종래 기술은, 다른 모든 태스크의 처리가 종료하였을 때에 클럭 주파수를 낮추는 처리를 행하고 있기 때문에, 다른 모든 태스크가 종료할 때까지 소비 전력은 높은 채로 되어, 실시간의 전력 절약 제어를 행할 수 없다고 하는 과제를 갖고 있었다.
본 발명은, 상기 과제를 해결하기 위해서 행해진 것으로서, 처리의 실시간성을 확보하면서 소비 전력을 저감하는 것을 가능하게 하는 정보 처리 장치, 해당 정보 처리 장치를 구비하는 전기 기기, 정보 처리 장치의 클럭 제어 방법, 클럭 제어 프로그램 및 그 프로그램 제품을 제공하는 것을 목적으로 하고 있다.
도 1은 본 발명의 실시예 1에 있어서의 정보 처리 장치의 구성을 나타내는 블록도,
도 2는 처리 구간과 클럭 주파수의 관계를 도시하는 도면,
도 3은 클럭 제어의 처리의 흐름을 나타내는 플로우차트,
도 4는 클럭 제어의 처리의 흐름을 나타내는 플로우차트,
도 5는 본 발명의 실시예 2에 있어서의 정보 처리 장치의 구성을 나타내는 블록도,
도 6은 클럭 주파수 저하 시의 전압 제어의 흐름을 나타내는 플로우차트,
도 7은 클럭 주파수 상승 시의 전압 제어의 흐름을 나타내는 플로우차트,
도 8은 전압과 시간의 관계를 나타내는 그래프,
도 9는 배타적으로 처리를 행하는 구간과 그 처리 구간의 과거의 실행 시간 정보를 도시하는 도면,
도 10은 배타적으로 처리를 행하는 구간이 개시되었을 때에 실행 시간의 정보에 근거하여 처리하는 흐름을 나타내는 플로우차트,
도 11은 클럭 주파수와 시간의 관계를 나타내는 그래프,
도 12는 배타적으로 처리를 행하는 구간의 종료로부터 다음의 배타적인 처리의 개시까지의 처리 구간의 과거의 실행 시간 정보를 도시하는 도면,
도 13은 배타적으로 처리를 행하는 구간이 종료되었을 때에 실행 시간의 정보에 근거하여 처리하는 흐름을 나타내는 플로우차트,
도 14는 클럭 주파수와 시간의 관계를 나타내는 그래프.
도면의 주요 부분에 대한 부호의 설명
101, 201 : 클럭 생성부 102, 202 : 클럭 제어부
103, 203 : 연산 처리부 104, 204 : 기억부
105, 205 : CPU 106, 206 : DSP
107, 207 : RAM 108, 208 : ROM
109, 209 : 버스
110, 213 : 배타 처리 구간 검출부(특정 처리 구간 검출부)
111, 214 : 클럭 제어 판정부 210 : AC 전원
211 : 전지 212 : 전원 제어부
상기 과제를 해결하여 상기 목적을 달성하기 위해서, 청구항 1에 기재된 발명은, 정보 처리 장치로서, 클럭을 생성하는 클럭 생성부와, 상기 클럭 생성부가생성하는 클럭을 제어하여 클럭 주파수를 정하는 클럭 제어부와, 소프트웨어를 기억하는 기억부와, 상기 클럭 제어부를 통하여 공급되는 클럭에 따라서, 상기 기억부로부터 취득한 상기 소프트웨어를 실행하는 연산 처리부와, 상기 연산 처리부가 미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출부와, 상기 특정 처리 구간 검출부가 취득한 결과에 근거하여, 클럭 주파수를 제어하는 명령을 상기 클럭 제어부에 전하는 클럭 제어 판정부를 구비하며, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에는 클럭 주파수를 높이도록 상기 클럭 제어부에 명령하고, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에는 클럭 주파수를 낮추도록 상기 클럭 제어부에 명령하는 것이다.
청구항 1에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에는 클럭 판정부가 클럭 주파수를 높이도록 클럭 제어부에 명령하고, 특정 처리 구간 검출부가 특정 처리 구간의 종료를 검출한 경우에는 클럭 판정부가 클럭 주파수를 낮추도록 클럭 제어부에 명령한다. 그리고, 클럭 제어부가 제어하는 클럭에 따라서 연산 처리부가 기억부에 기억되는 소프트웨어를 실행한다. 따라서, 실시간성이 요구되는 처리를 특정한 처리로 하는 것에 의해, 처리의 실시간성을 확보하면서 소비 전력을 저감할 수 있다.
청구항 2에 기재된 발명은, 청구항 1에 기재된 정보 처리 장치로서, 상기 특정 처리 구간이, 배타적으로 처리를 행하는 구간인 것이다.
청구항 2에 기재된 발명에 의하면, 특정 처리 구간이, 통상에 있어서 실시간성이 요구되는 배타적으로 처리를 행하는 구간이기 때문에, 처리의 실시간성을 확보하면서 소비 전력을 저감할 수 있다.
청구항 3에 기재된 발명은, 청구항 1에 기재된 정보 처리 장치로서, 상기 특정 처리 구간이, 배타적으로 처리를 행하는 복수의 구간 중의 미리 정해진 특정한 구간인 것이다.
청구항 3에 기재된 발명에 의하면, 특정 처리 구간이, 배타적으로 처리를 행하는 복수의 구간 중의 미리 정해진 특정한 구간이기 때문에, 배타적으로 처리를 행하는 복수의 구간 중, 반드시 실시간성을 요구되지 않는 구간에 대해서까지, 소비 전력을 높여 처리 시간을 빠르게 하는 낭비를 해소할 수 있다. 그에 의해, 처리의 실시간성을 확보하면서 소비 전력의 절감 효과를 더 높일 수 있다.
청구항 4에 기재된 발명은, 청구항 1에 기재된 정보 처리 장치로서, 상기 클럭 제어부로부터 클럭 주파수의 정보를 얻어, 상기 연산 처리부와 상기 기억부에 공급하는 전압을 제어하는 전원 제어부를 더 구비하며, 상기 전원 제어부는, 상기 클럭 주파수를 높이는 것에 대응하여 전압을 상승시키고, 상기 클럭 주파수를 낮추는 것에 대응하여 전압을 저하시키는 것이다.
청구항 4에 기재된 발명에 의하면, 전원 제어부가, 클럭 제어부가 클럭 주파수를 높이는 것에 대응하여 연산 처리부와 기억부에 공급하는 전압을 상승시키고, 클럭 주파수를 낮추는 것에 대응하여 상기 전압을 저하시키기 때문에, 처리의 실시간성을 확보하면서 소비 전력을 더 효과적으로 저감할 수 있다.
청구항 5에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어부는, 상기 전원 제어부가 전압을 상승시키고 있는 동안에, 전압의 상승에 따라, 상기 연산 처리부가 동작 가능한 범위에서 클럭 주파수를 단계적으로 높여 가는 것이다.
청구항 5에 기재된 발명에 의하면, 클럭 제어부가, 전원 제어부가 전압을 상승시키고 있는 동안에, 전압의 상승에 따라 연산 처리부가 동작 가능한 범위에서 클럭 주파수를 단계적으로 높여 가기 때문에, 연산 처리부는 전압의 상승 과정에서도 처리를 실행할 수 있어, 그에 의해 처리의 실시간성이 보다 효과적으로 확보된다.
청구항 6에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 특정 처리 구간이 종료하기까지의 시간인 특정 처리 기간을 이전의 상기 특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 특정 처리 기간이 임계값을 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 것이다.
청구항 6에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에, 클럭 제어 판정부가, 특정 처리 기간을 이전의 특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 특정 처리 기간이 임계값을 초과하는 때에 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하며, 예측된 특정 처리 기간이 임계값 미만인 때에 클럭 주파수를 높이는 명령을 통지하지 않는다. 이때문에, 클럭 주파수를 높이더라도 특정한 처리를 보다 단 시간에서 종료하여 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우에까지, 클럭 주파수를 상승시키는 것을 회피할 수 있다.
청구항 7에 기재된 발명은, 청구항 6에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 전원 제어부가 전압을 상승시키는 데 소요되는 시간인 전압 상승 시간에 의존하고 또한 상기 전압 상승 시간 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 7에 기재된 발명에 의하면, 클럭 제어 판정부가, 전압 상승 시간에 의존하고 또한 전압 상승 시간 이상인 시간을 임계값으로 하기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 보다 적절하게 실행할 수 있다.
청구항 8에 기재된 발명은, 청구항 7에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 전압 상승 시간과 상기 전원 제어부가 전압을 하강시키는 데 소요되는 시간인 전압 하강 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 8에 기재된 발명에 의하면, 클럭 제어 판정부가, 전압 상승 시간과 전압 하강 시간과의 합에 의존하고 또한 이 합 이상인 시간을 임계값으로 하기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 보다 한층 적절하게 실행할 수 있다.
청구항 9에 기재된 발명은, 청구항 6에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 클럭 제어부가 클럭 주파수를 상승시키는 데 소요되는 시간인 주파수 상승 시간에 의존하고 또한 상기 주파수 상승 시간 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 9에 기재된 발명에 의하면, 클럭 제어부가, 주파수 상승 시간에 의존하고 또한 주파수 상승 시간 이상인 시간을 임계값으로 하기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 보다 적절하게 실행할 수 있다.
청구항 10에 기재된 발명은, 청구항 9에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 주파수 상승 시간과 상기 클럭 제어부가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 10에 기재된 발명에 의하면, 클럭 제어 판정부가, 주파수 상승 시간과 주파수 하강 시간과의 합에 의존하고 또한 이 합 이상인 시간을 임계값으로 하기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 보다 한층 적절하게 실행할 수 있다.
청구항 11에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간과 상기 클럭 주파수를 높게 하였을 때에 상기 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간을 이전의 상기특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 전압 제어부가 전압을 상승 및 하강시키는 데 소요되는 기간인 전압 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값을, 예측된 상기 저속 특정 처리 기간이 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 저속 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 것이다.
청구항 11에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에, 클럭 제어 판정부가, 고속 특정 처리 기간과 저속 특정 처리 기간을 이전의 특정한 처리에 소요된 시간에 근거하여 예측하고, 전압 변경 시간이라고 예측된 고속 특정 처리 기간과의 합에 의존하고 또한 이 합 이상의 값인 임계값을, 예측된 저속 특정 처리 기간이 초과하는 때에, 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 저속 특정 처리 기간이 임계값 미만인 때에 클럭 주파수를 높이는 명령을 통지하지 않기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 한층 더 적절하게 실행할 수 있다.
청구항 12에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간과 상기 클럭 주파수를 높게 하였을 때에 상기 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간을 이전의 상기특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 클럭 제어부가 클럭 주파수를 상승 및 하강시키는 데 소요되는 기간인 주파수 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값을, 예측된 상기 저속 특정 처리 기간이 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 저속 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 것이다.
청구항 12에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에, 클럭 제어 판정부가, 고속 특정 처리 기간과 저속 특정 처리 기간을 이전의 특정한 처리에 소요된 시간에 근거하여 예측하고, 주파수 변경 시간이라고 예측된 고속 특정 처리 기간과의 합에 의존하고 또한 이 합 이상의 값인 임계값을, 예측된 저속 특정 처리 기간이 초과하는 때에, 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 저속 특정 처리 기간이 임계값 미만인 때에 클럭 주파수를 높이는 명령을 통지하지 않기 때문에, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우의 클럭 주파수의 상승의 회피를, 한층 더 적절하게 실행할 수 있다.
청구항 13에 기재된 발명은, 청구항 4에 기재의 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 높게 하였을 때에 당해 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간과, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간을, 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 전압 제어부가 전압을 상승 및 하강시키는 데 소요되는 기간인 전압 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값에 비해서, 예측된 상기 저속 특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 높이는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 것이다.
청구항 13에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에, 클럭 제어 판정부가, 예측한 고속 특정 처리 기간과 전압 변경 기간과의 합에 의존하여 이 합 이상의 값인 임계값에 비해, 예측한 저속 특정 처리 기간이 크게 되는 유효 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어부에 클럭 주파수를 유효 주파수까지 높이는 명령을 통지하고, 유효 주파수가 정해진 범위 내에 없을 때에는, 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는다. 이 때문에, 정해진 범위 및 낮은 채로의 주파수 중에서, 특정한 처리를 보다 단시간에 실행하는 데에 있어서 바람직한 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 보다 적절하게 실현한다.
청구항 14에 기재된 발명은, 청구항 13에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 유효 주파수로서 복수의 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 복수의 주파수 중의 가장 높은 주파수까지 상기 클럭 주파수를 높이는 명령을 상기 클럭 제어부에 통지하는 것이다.
청구항 14에 기재된 발명에 의하면, 유효 주파수로서 복수의 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어 판정부가, 복수의 주파수 중의 가장 높은 주파수까지 클럭 주파수를 높이는 명령을 클럭 제어부에 통지한다. 즉, 특정한 처리를 가장 단시간에 실행할 수 있는 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 한층 더 적절하게 실현한다.
청구항 15에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 높게 하였을 때에 당해 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간과, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간을, 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 클럭 제어부가 클럭 주파수를 상승 및 하강시키는 데 소요되는 기간인 주파수 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값에 비해, 예측된 상기 저속 특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 높이는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 것이다.
청구항 15에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 개시를 검출한 경우에, 클럭 제어 판정부가, 예측한 고속 특정 처리 기간과 주파수 변경 기간과의 합에 의존하여 이 합 이상의 값인 임계값에 비해, 예측한 저속 특정 처리 기간이 크게 되는 유효 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어부에 클럭 주파수를 유효 주파수까지 높이는 명령을 통지하고, 유효 주파수가 정해진 범위 내에 없을 때에는, 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는다. 이 때문에, 정해진 범위 및 낮은 채로의 주파수 중에서, 특정한 처리를 보다 단시간에 실행하는 데에 있어서 바람직한 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 보다 적절하게 실현한다.
청구항 16에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 상기 클럭 주파수를 낮게 하였을 때에 다음으로 당해 특정 처리 구간의 개시를 검출하기까지의 시간인 저속 비특정 처리 기간을 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 저속 비특정 처리 기간이 임계값을 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하고, 예측된 상기 저속 비특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 것이다.
청구항 16에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 종료를 검출한 경우에, 클럭 제어 판정부가, 저속 비특정 처리 기간을 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 저속 비특정 처리 기간이 임계값을 초과하는 때에 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하고, 예측된 저속 비특정 처리 기간이 임계값 미만인 때에 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는다. 이 때문에, 클럭 주파수를 낮게 하여 소비 전력을 절감하는 효과가 얇은 경우에까지, 클럭 주파수를 하강시키는 것을 회피할 수 있다.
청구항 17에 기재된 발명은, 청구항 16에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 전원 제어부가 전압을 하강시키는 데 소요되는 시간인 전압 하강 시간에 의존하고 또한 상기 전압 하강 시간 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 17에 기재된 발명에 의하면, 클럭 제어 판정부가, 전압 하강 시간에 의존하고 또한 전압 하강 시간 이상인 시간을 임계값으로 하기 때문에, 소비 전력을 절감하는 효과가 얇은 경우의 클럭 주파수의 하강의 회피를, 보다 적절하게 실행할 수 있다.
청구항 18에 기재된 발명은, 청구항 17에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 전압 하강 시간과 상기 전원 제어부가 전압을 상승시키는 데 소요되는 시간인 전압 상승 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 18에 기재된 발명에 의하면, 클럭 제어 판정부가, 전압 하강 시간과 전압 상승 시간과의 합에 의존하고 또한 이 합 이상인 시간을 임계값으로 하기 때문에, 소비 전력을 절감하는 효과가 얇은 경우의 클럭 주파수의 하강의 회피를, 보다 한층 적절하게 실행할 수 있다.
청구항 19에 기재된 발명은, 청구항 16에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 클럭 제어부가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간에 의존하고 또한 상기 주파수 하강 시간 이상인 시간을상기 임계값으로 하는 것이다.
청구항 19에 기재된 발명에 의하면, 클럭 제어 판정부가, 주파수 하강 시간에 의존하고 또한 주파수 하강 시간 이상인 시간을 상기 임계값으로 하기 때문에, 소비 전력을 절감하는 효과가 얇은 경우의 클럭 주파수의 하강의 회피를, 보다 적절하게 실행할 수 있다.
청구항 20에 기재된 발명은, 청구항 19에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 주파수 하강 시간과 상기 클럭 제어부가 클럭 주파수를 상승시키는 데 소요되는 시간인 주파수 상승 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 것이다.
청구항 20에 기재된 발명에 의하면, 클럭 제어 판정부가, 주파수 하강 시간과 주파수 상승 시간과의 합에 의존하고 또한 이 합 이상인 시간을 임계값으로 하기 때문에, 소비 전력을 절감하는 효과가 얇은 경우의 클럭 주파수의 하강의 회피를, 보다 한층 적절하게 실행할 수 있다.
청구항 21에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 낮게 하였을 때에 다음의 상기 특정 처리 구간이 개시하기까지의 시간인 저속 비특정 처리 기간을 이전의 상기 특정한 처리 이외의 처리에 소요된 시간에 근거하여 예측하고, 상기 전압 제어부가 전압을 하강 및 상승시키는 데 소요되는 기간인 전압 변경 기간에 의존하여 상기 전압 변경 기간 이상의 값인 임계값에 비해, 예측된 상기 저속 비특정 처리기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 낮추는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 것이다.
청구항 21에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 종료를 검출한 경우에, 클럭 제어 판정부가, 전압 변경 기간에 의존하여 전압 변경 기간 이상의 값인 임계값에 비해, 예측한 저속 비특정 처리 기간이 크게 되는 유효 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어부에 클럭 주파수를 유효 주파수까지 낮추는 명령을 통지하고, 유효 주파수가 정해진 범위 내에 없을 때에는, 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는다. 이 때문에, 정해진 범위 및 높은 채로의 주파수 중에서, 소비 전력을 절감하는 데에 있어서 바람직한 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 보다 적절하게 실현한다.
청구항 22에 기재된 발명은, 청구항 21에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 유효 주파수로서 복수의 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 복수의 주파수 중의 가장 낮은 주파수까지 상기 클럭 주파수를 낮추는 명령을 상기 클럭 제어부에 통지하는 것이다.
청구항 22에 기재된 발명에 의하면, 유효 주파수로서 복수의 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어 판정부가, 복수의 주파수 중의 가장 낮은 주파수까지 클럭 주파수를 낮추는 명령을 클럭 제어부에 통지한다. 즉, 소비 전력을절감하는 데에 있어서 가장 바람직한 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 한층 더 적절하게 실현한다.
청구항 23에 기재된 발명은, 청구항 4에 기재된 정보 처리 장치로서, 상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 낮게 하였을 때에 다음의 상기 특정 처리 구간이 개시하기까지의 시간인 저속 비특정 처리 기간을 이전의 상기 특정한 처리 이외의 처리에 소요된 시간에 근거하여 예측하고, 상기 클럭 제어부가 클럭 주파수를 하강 및 상승시키는 데 소요되는 기간인 주파수 변경 기간에 의존하여 상기 주파수 변경 기간 이상의 값인 임계값에 비해, 예측된 상기 저속 비특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 낮추는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 것이다.
청구항 23에 기재된 발명에 의하면, 특정 처리 구간 검출부가 특정 처리 구간의 종료를 검출한 경우에, 클럭 제어 판정부가, 주파수 변경 기간에 의존하여 주파수 변경 기간 이상의 값인 임계값에 비해, 예측한 저속 비특정 처리 기간이 크게 되는 유효 주파수가 정해진 범위 내에 있을 때에는, 클럭 제어부에 클럭 주파수를 유효 주파수까지 낮추는 명령을 통지하고, 유효 주파수가 정해진 범위 내에 없을 때에는, 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는다. 이 때문에, 정해진 범위 및 높은 채로의 주파수 중에서, 소비 전력을 절감하는 데에 있어서 바람직한 클럭 주파수가 선택된다. 따라서, 처리의 실시간성과 소비 전력의 절감의 양립이, 보다 적절하게 실현한다.
청구항 24에 기재된 발명은, 전기 기기로서, 청구항 1 내지 청구항 23 증 어느 한 항에 기재된 정보 처리 장치를 구비하는 것이다.
청구항 24에 기재된 발명에 의하면, 전기 기기가 본 발명의 정보 처리 장치를 구비하기 때문에, 정보 처리 장치에 의한 처리의 실시간성과 소비 전력의 절감이 양립적으로 실현된다.
청구항 25에 기재된 발명은, 정보 처리 장치의 클럭 제어 방법으로서, 미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출 공정과, 상기 특정 처리 구간 검출 공정이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 공정이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 공정을 구비하는 것을 특징으로 하는 것이다.
청구항 25에 기재된 발명에 의하면, 특정 처리 구간 검출 공정이 특정 처리 구간의 개시를 검출한 경우에는, 클럭 제어 공정이 정보 처리 장치의 클럭 주파수를 높이고, 특정 처리 구간 검출 공정이 특정 처리 구간의 종료를 검출한 경우에는, 클럭 제어 공정이 클럭 주파수를 낮춘다. 이 때문에, 처리의 실시간성과 소비 전력의 절감이 양립적으로 실현된다.
청구항 26에 기재된 발명은, 클럭 제어 프로그램으로서, 정보 처리 장치에, 미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출 기능과, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 기능을 실현시키기 위한 것이다.
청구항 26에 기재된 발명에 의하면, 클럭 제어 프로그램이, 정보 처리 장치에 본 발명의 정보 처리 장치의 각 기능을 실현시키기 때문에, 처리의 실시간성과 소비 전력의 절감이 양립적으로 실현된다.
청구항 27에 기재된 발명은, 프로그램 제품으로서, 정보 처리 장치에, 미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출 기능과, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 기능을 실현시키기 위한 클럭 제어 프로그램과, 상기 클럭 제어 프로그램을 유지하는 신호 유지 매체를 구비하는 것이다.
청구항 27에 기재된 발명에 의하면, 신호 유지 매체에 본 발명의 클럭 제어 프로그램이 유지되어 있기 때문에, 이 신호 유지 매체를 통하여 클럭 제어 프로그램이 정보 처리 장치에 판독되는 것에 의해, 처리의 실시간성과 소비 전력의 절감이 양립적으로 실현된다.
청구항 28에 기재된 발명은, 청구항 27에 기재의 프로그램 제품으로서, 상기 신호 유지 매체가, 기록 매체와 전송 매체 증의 적어도 하나인 것이다.
이 구성에 의하면, 클럭 제어 프로그램이 기록 매체와 전송 매체 중의 적어도 하나에 의해서 유지되기 때문에, 이들 매체를 통하여 컴퓨터에 클럭 제어 프로그램이 규정하는 기능을 실현시킬 수 있다.
(발명의 실시예)
이하, 본 발명의 실시예에 있어서, 도면을 이용하여 설명한다.
(실시예 1)
도 1은, 본 발명의 실시예 1에 있어서의 정보 처리 장치의 구성을 나타낸 블럭도이다. 도 1에 있어서, 클럭 생성부(101)는, 일정 주파수로 클럭을 생성하는 발진 회로이다. 클럭 생성부(101)에서 생성되는 클럭은, 정보 처리 장치 내의 연산 처리부나 기억부에 공급하는 클럭원으로 된다.
클럭 제어부(102)는, 클럭 생성부(101)에서 생성된 클럭을 분주 기능이나 분주 회로에 의해서 분주하여, 클럭 생성부(101)가 생성한 클럭의 주파수를 제어한다. 예컨대, 클럭 생성부(1O1)에서 생성된 클럭의 주파수 x를 1/m(m은 자연수)로 분주하여, x/m(m은 자연수)의 주파수의 클럭을 출력한다.
또한, 클럭 제어부(102)를 실현하는 방법으로서 분주하는 것만이 아니라, 클럭 생성부(101)에서 생성된 클럭을 증대시키는 방식으로 실현하더라도 좋다.
클럭 제어부(102)로부터 출력된 클럭은, 정보 처리 장치 내의 연산 처리부(103)나 기억부(104)에 공급하는 클럭으로 된다.
또, 도 1에서는 동일한 클럭을 연산 처리부(103)나 기억부(104)에 공급하고 있지만, 연산 처리부(103)나 기억부(104)에 각각의 클럭을 공급하는 구성, 즉 비동기의 클럭을 공급하는 구성이라도 좋다. 또한, 연산 처리부(103)를 구성하는 CPU(105)나 DSP(106)마다, 각각의 클럭을 공급하더라도 좋다. 그러한 구성을 실현하기 위해서는, 클럭 생성부(101)와 클럭 제어부(102)를 복수 구비하여 클럭 그 자체를 개개로 발생시키거나, 클럭 생성부(101)를 하나 구비하여 클럭 제어부(102)가 복수의 분주 회로를 조작하여, 상이한 주파수의 클럭을 복수 발생시키는 구성을 취한다.
연산 처리부(103)는, 클럭 제어부(102)로부터 공급되는 클럭에 따라서 프로그램의 실행이나 연산 처리를 행하는 프로세서이다. 이 프로세서에는, 예컨대, 도 1에 도시하는 CPU(105)나 DSP(106)가 있다. CPU(105)는 중앙 연산 장치로서, DSP(106)는 특정한 연산 처리를 고속화한 디지탈 신호 처리 장치이다. 연산 처리부(103)는, 멀티프로세서로 실현하더라도 좋다.
기억부(104)는, 정보 처리 장치에서 동작시키는 소프트웨어(즉, 프로그램) 및 정보 처리 장치의 동작에 필요한 데이터를 기억하고 있다. 기억부(104)는, 예컨대 RAM(l07)이나 ROM(108)로 이루어진다. 기억부(104)는, 2차 기억 장치에 의해서 실현하더라도 좋고, 분리 가능한 기억 매체를 이용하여도 좋다. 자기 기억 매체로서 플로피 디스크나 하드 디스크를 구비하더라도 좋고, 빛 기억 매체로서 CD나 MD나 DVD를 구비하더라도 좋다. 기억부(104)는, 프로세서가 구비하는 내부 RAM, 레지스터, 캐시(cache)이어도 좋다.
버스(109)는, 연산 처리부(103)를 구성하는 각 구성 요소(CPU(105)나 DSP(106))와 기억부(104)를 구성하는 각 구성 요소(RAM(l07)나 ROM(l08)) 사이를 접속하고 있고, 버스(109)를 거쳐서, 소프트웨어나 데이터의 교환을 행한다.
상기의 소프트웨어 및 데이터는, ROM(l08), 플렉시블 디스크, CD-ROM 등의 기록 매체(31)를 통하여 공급하는 것도, 전화 회선, 네트워크 등의 전송 매체(33)를 통하여 공급하는 것도 가능하다. 도 1에는, 기록 매체(31)로서 CD-ROM이 도시되어 있고, 전송 매체(33)로서 전화 회선이 도시되어 있다. CD-ROM에 기록된 소프트웨어 및 데이터는, 정보 처리 장치의 외부 장치로서의 CD-ROM 판독 장치(32)를 버스(109)에 접속함으로써, 판독할 수 있고, 또한 RAM(17) 혹은 도시하지 않은 하드 디스크에 저장할 수 있다. 기록 매체(31)로서 ROM(108)의 형태로 소프트웨어 및 데이터가 공급되는 경우에는, 해당 ROM(l08)을 정보 처리 장치에 탑재함으로써, 정보 처리 장치는 소프트웨어 및 데이터에 따른 처리를 실행할 수 있게 된다. 전송 매체(33)를 통하여 공급되는 소프트웨어 및 데이터는, 버스(109)를 통하여 수신되어, RAM(l07) 혹은 도시하지 않은 하드 디스크에 저장된다. 전송 매체(33)는, 유선의 전송 매체에 한하지 않고 무선의 전송 매체이더라도 좋다.
배타 처리 구간 검출부(110)는, 배타적으로 처리를 행하는 구간의 개시와 종료를 검출한다. 상세한 것에 대해서는, 이후에 도 2를 이용하여 설명한다.
클럭 제어 판정부(111)는, 배타 처리 구간 검출부(110)로부터 배타적인 처리 구간의 개시 혹은 종료의 통지를 수취하고, 수취한 통지에 따라서, 클럭 주파수를 제어하는 명령을 클럭 제어부(102)에 통지한다. 상세한 것에 대해서는, 배타 처리구간 검출부(110)와 마찬가지로, 후술한다.
기억부(104)에 기억되어 있는 소프트웨어는, 버스(109)를 통하여 연산 처리부(103)에 로드되어 실행된다. 예컨대, 정보 처리 장치가 소프트웨어를 실행하는 때에는, RAM(l07)에 기억하고 있던 소프트웨어를 CPU(105)에 로드한 후, CPU(105)에 의해서 실행된다. 그 때, 예컨대, 기억부(104)의 RAM(107)으로부터 소프트웨어의 실행에 필요한 데이터를 수시로 판독하여, 버스(109)를 통하여 연산 처리부(103)의 CPU(105)에 보낸다.
또, 소프트웨어가 CPU(105)가 아니라 DSP(106)나 다른 프로세서에 로드되어 실행되는 경우나, 혹은 소프트웨어가 RAM(l07)가 아니라 ROM(l08)이나 그 외의 기억 매체에 기억되어 있는 경우에도, 본 발명의 정보 처리 장치를 마찬가지로 실시할 수 있다.
소프트웨어는, CPU(105)를 점유하여 실행하기 위해서, 혹은 특정한 자원을 이용한 처리를 실행하기 위해서, 다른 요구를 접수하지 않고 배타적으로 처리를 행하는 구간을 갖는다. 배타적으로 처리를 행하는 구간은, 자신의 처리를 우선적으로 실행하기 위해서 다른 처리를 접수하지 않는 구간이다. 배타적으로 처리를 행하는 구간으로서, 예컨대, 디바이스나 소프트웨어가 요구하는 인터럽트 처리를 금지하는 인터럽트 금지 구간이나, CPU의 실행권을 다른 실행 단위로 양보하지 않는 프리엠프트 금지 구간이나, 록(lock) 기구를 이용하여 다른 실행 단위나 다른 CPU로부터 동일 자원에 액세스되는 것을 금지하는 구간 등이 존재한다.
여기서 실행 단위란, 독자의 실행 상태를 유지하는 단위이다. 일례를 들면프로세스나 태스크 혹은 스레드(thread)라고 불리는 것이 있다. 기본 소프트웨어의 처리 부분(커넬(kernel) 공간의 처리 부분) 그 자체도 하나의 실행 단위로 파악된다. 또한, 기본 소프트웨어의 처리 부분 중에 있어서, 인터럽트에 따라 각 인터럽트 요구용의 처리가 실행되는 경우가 있지만, 그들의 처리를 각각의 실행 단위로 파악하더라도 좋다. 멀티프로세서를 구비하는 정보 처리 장치에서는, 각 프로세서에서 동작하는 처리가 각각 별도의 실행 단위를 갖는다.
상기의 배타적으로 처리를 행하는 구간 내에서 별도의 처리 요구가 생기더라도, 요구된 처리는 배타적인 처리 구간이 종료할 때까지 접수되지 않고, 실행이 대폭 지연할 가능성이 있다. 한편, 요구한 처리가 실행되기까지의 시간에 일정한 제약이 있는 것, 즉 실시간성을 요구하는 처리가 배타적인 처리 구간에서 요구되면, 실시간성을 크게 손상시킬 위험성이 있다. 따라서, 배타적으로 처리를 행하는 구간은, 실시간성을 보증하기 위해서 가능한 한 단시간으로 처리를 행하지 않으면 안 된다.
본 발명의 일 실시예에 따른 정보 처리 장치에서는, 클럭 제어부(102)에서 클럭을 제어함으로써, 두개의 모드를 갖는다. 하나는 배타적으로 처리를 행하는 구간으로 처리를 고속으로 종료하는 고속 처리 모드이며, 또 하나는 배타적으로 처리를 행하지 않는 통상의 처리 구간에서 전력 소비를 억제하여 처리를 행하는 저 전력 소비 모드이다. 고속 처리 모드에서는, 클럭 주파수를 높임으로써 고속으로 처리하고, 저 전력 소비 모드에서는, 클럭 주파수를 낮추어 저속으로 처리하여 소비 전력을 저하시킨다.
도 2에, 배타적으로 처리를 행하는 구간에 있어서의 클럭의 펄스파의 변화를 도시하고, 클럭 주파수를 제어하고 있는 형태를 도시한다.
배타 처리 구간 검출부(110)는, 배타적으로 처리를 행하는 구간의 검출을 행한다. 도 2의 (121)는, 배타적인 처리가 아닌 통상의 처리 구간에서 배타적으로 처리를 행하는 구간으로 들어갔을 때에, 배타 처리 구간 검출부(110)가, 배타적인 처리의 개시를 검출하는 것을 나타낸다. 또한, 도 2의 (122)는, 배타적으로 처리를 행하는 구간으로부터 통상의 처리 구간으로 되돌아갔을 때에, 배타 처리 구간 검출부(110)가, 배타적인 처리의 종료를 검출하는 것을 나타낸다. 배타적인 처리 구간의 개시와 종료는 명시적으로 도시되어 있고, 배타 처리 구간 검출부(110)가 자동으로 검출을 행하는 것이 가능하다.
클럭 제어 판정부(111)는, 배타 처리 구간 검출부(110)로부터 배타적인 처리 구간의 개시 혹은 종료의 통지를 수취한다. 클럭 제어 판정부(111)는, 배타적인 처리 구간의 개시의 통지를 수취한 경우, 클럭 제어부(102)에 클럭 주파수를 높이는 명령을 통지하고, 배타적인 처리 구간의 종료의 통지를 수취한 경우, 클럭 제어부(102)에 클럭 주파수를 낮추는 명령을 통지한다. 이에 따라, 도 2에 도시한 바와 같이, 배타적인 처리 구간은, 고속 처리 모드로 처리를 행하고, 통상의 처리 구간은, 저 전력 소비 모드로 처리를 행하는 것으로 된다.
배타 처리 구간 검출부(110)와 클럭 제어 판정부(111)를, 예컨대, 소프트웨어에 의해서 실현할 수 있다. 배타적인 처리 구간의 개시 혹은 종료 타이밍이, 소프트웨어로 명시적으로 도시되어 있는 경우, 클럭 제어 판정부(111)에 통지하는 부분을 개시 처리나 종료 처리 중에 매립하는 것에 의해, 배타 처리 구간 검출부(110)를 실현할 수 있다. 또한, 배타적인 처리 구간의 개시의 경우, 그 매립하는 처리에 클럭 제어부(102)로 클럭 주파수를 높이는 명령을 넣은 것, 혹은 종료의 경우, 그 매립하는 처리에 클럭 제어부(102)로 클럭 주파수를 낮추는 명령을 넣은 것에 의해, 클럭 제어 판정부(111)를 실현할 수 있다.
또한, 배타 처리 구간 검출부(110)와 클럭 제어 판정부(111)를 소프트웨어에 의해서 실현하는 별도의 방식으로서, 클럭 제어를 행하는 인터페이스를 준비해 두고, 소프트웨어 중에서 배타적인 처리 구간을 개시 혹은 종료하는 전후로, 그 인터페이스를 삽입하는 방식도 취할 수 있다. 즉, 소프트웨어 개발자가, 배타적인 처리 구간의 개시에 따라 클럭 주파수를 높이거나, 혹은 종료에 따라 클럭 주파수를 낮추는 처리를 삽입함으로써, 배타 처리 구간 검출부(110)와 클럭 제어 판정부(111)를 실현할 수 있다.
도 3에, 배타 처리 구간 검출부(110)가 배타적으로 처리를 행하는 구간을 검출하고, 클럭 제어 판정부(111)가 클럭 제어부(102)에 클럭을 제어하는 명령을 출력하는 흐름을 나타낸다.
최초로, 배타 처리 구간 검출부(110)는, 배타적인 처리 구간의 개시를 검출하였는지 여부를 판정한다(Sl41). 배타적인 처리 구간의 개시를 검출하지 않은 경우(S141가 No), 처음으로 돌아가 S141의 판정 처리를 반복한다. 한편, 배타적인 처리 구간의 개시를 검출한 경우(S141가 Yes), 배타 처리 구간 검출부(110)가, 배타적인 처리 구간의 개시를 클럭 제어 판정부(111)에 통지한다(S142).
통지를 수취하여, 클럭 제어 판정부(111)는, 클럭 제어부(102)에 대해 클럭의 주파수를 높이도록 명령을 통지한다(S143). 이에 따라, 정보 처리 장치는, 고속 처리 모드로 전환된다.
그 후, 연산 처리부(103)가, 배타적인 처리를 실행하여(S144), 배타 처리 구간 검출부(110)가 배타적인 처리 구간의 종료를 검출하였는지 여부를 판정한다(S145). 배타적인 처리 구간의 종료를 검출하지 않은 경우(S145가 No), S144의 처리로 되돌아가 배타적인 처리를 계속하여 실행한다. 한편, 배타적인 처리 구간의 종료를 검출한 경우(S145가 Yes), 배타 처리 구간 검출부(110)가, 배타적인 처리 구간의 종료를 클럭 제어 판정부(111)에 통지한다(S146).
통지를 수취하여, 클럭 제어 판정부(111)는 클럭 제어부(102)에 대해 클럭의 주파수를 낮추도록 명령을 송출한다(S147). 이에 따라, 정보 처리 장치는, 저 전력 소비 모드로 전환된다.
이상으로부터, 본 발명의 정보 처리 장치는, 배타적인 처리 구간에서의 처리를, 고속 처리 모드로 처리하는 것이 가능해진다.
도 4에, 배타 처리 구간 검출부(l1O)가 배타적으로 처리를 행하는 구간을 검출하고, 클럭 제어 판정부(111)가 클럭 제어부(102)에 클럭을 제어하는 명령을 출력하는 흐름의 별도의 방식을 나타낸다.
최초로, 연산 처리부(103)는, 소정의 특정한 처리를 개시한다(S161). 다음에, 배타 처리 구간 검출부(110)는, 처리를 행하고 있는 현재의 구간이, 배타적으로 처리를 행하는 구간인지 여부를 판정한다(S162). 배타적인 처리 구간이 아닌 (통상의 처리 구간) 경우(S162가 No), S163으로 천이한다. 한편, 배타적인 처리 구간인 경우(S162가 Yes), S168로 천이한다.
배타 처리 구간 검출부(110)는, 처리 중인 처리로부터, 배타적인 처리 구간의 개시를 검출하였는지 여부를 판정한다(S163). 배타적인 처리 구간의 개시를 검출한 경우(S163이 Yes), 연산 처리부(103)가, 배타적인 처리 구간을 개시한다(S164). 그렇지 않은 경우(S163이 No), 연산 처리부(103)는, 처리중인 처리 내용에 따라서 처리를 행한다(S167).
S164에서 배타적인 처리 구간을 개시한 후에, 배타 처리 구간 검출부(110)가, 배타적인 처리 구간의 개시를 클럭 제어 판정부(111)에 통지한다(S165). 이 통지를 수취하여, 클럭 제어 판정부(111)는, 클럭 제어부(102)에 대해 클럭의 주파수를 높이도록 명령을 통지한다(S166). 이에 따라, 정보 처리 장치는, 고속 처리 모드로 전환된다.
클럭 제어부(102)는, 클럭 제어 판정부(111)로부터의 명령을 수취하여 클럭 주파수를 높인다. 예컨대, 미리 고속 처리 모드의 클럭 주파수를 50MHz로 정해져 있으면, 클럭 제어부(102)는 50MHz까지 클럭 주파수를 높인다. 그 외에도, 예컨대, 클럭 제어부(102)는 분주비를 1로 하여, 클럭 생성부(101)에서 생성되는 클럭을 분주하지 않고 연산 처리부(103)나 기억부(104)에 공급하는 방식이 있다. 혹은, 연산 처리부(103)나 기억부(104)의 각 장치의 허용하는 클럭 주파수의 상한값이 설정되어 있고, 클럭 제어부(102)는 설정되어 있는 각 장치의 상한값을 만족하는 범위 내에서, 최대의 클럭 주파수로 출력하도록 클럭을 제어하더라도 좋다.
한편, 배타 처리 구간 검출부(110)는, 배타적인 처리 구간의 종료를 검출하였는지 여부를 판정하고(S168), 그 결과, 배타적으로 처리를 행하는 구간으로부터 출력하는 처리인 경우(S168가 Yes), 배타적으로 처리를 행하는 구간을 종료한다(S169). 그렇지 않은 경우(S168가 No), 연산 처리부(103)가, 처리 중인 처리 내용에 따라서 처리를 행한다(S167).
S169에서 배타적인 처리 구간을 종료한 후에, 배타 처리 구간 검출부(110)가, 배타적인 처리 구간의 종료를 클럭 제어 판정부(111)에 통지한다(S170). 이 통지를 수취하여, 클럭 제어 판정부(111)는, 클럭 제어부(102)에 대해 클럭의 주파수를 낮추도록 명령을 송출한다(S171). 이에 따라, 정보 처리 장치는, 저 전력 소비 모드로 전환된다.
클럭 제어부(102)는, 클럭 제어 판정부(111)로부터의 명령을 수취하여, 클럭 주파수를 낮춘다. 예컨대, 미리 저 전력 소비 모드의 클럭 주파수를 5MHz로 정하고 있으면, 클럭 제어부(102)는 5MHz까지 클럭 주파수를 낮춘다. 혹은, 연산 처리부(103)나 기억부(104)의 각 장치의 허용하는 클럭 주파수의 하한값이 설정되어 있고, 클럭 제어부(102)는 설정되어 있는 각 장치의 하한값을 만족하는 범위 내에서, 최소의 클럭 주파수로 출력하도록 클럭을 제어하더라도 좋다.
클럭 제어부(102)가 클럭 제어 판정부(111)로부터의 명령을 수취하여, 클럭 주파수를 낮추는 별도의 방식으로서, 저 전력 소비 모드 시의 클럭 주파수는, 정보 처리 장치의 부하 상태, 또는 발열에 의해서 상승하는 온도 상태, 또는 공급하는 전지의 나머지 용량 등을 고려하여 결정하더라도 좋다.
또한 별도의 방식으로서, 배타적으로 처리를 행하는 구간으로 들어가서 S166에서 클럭 주파수를 높이기 전에, 그때까지 동작하고 있었던 클럭 주파수를 기억해 두고, 배타적으로 처리를 행하는 구간으로부터 나갔을 때에 그 주파수로 되돌리는 것이어도 좋다.
상술한 바와 같이, 정보 처리 장치의 허용하는 범위 내에서 최대의 클럭 주파수로 동작시킴으로써, 배타적인 처리를 행하는 구간의 처리 시간을 짧게 하여 실시간성을 높일 수 있다. 배타적으로 처리를 행하지 않는 통상의 처리 구간에서는, 클럭 주파수를 정보 처리 장치의 허용하는 범위 내에서 최소까지 낮추어, 소비 전력을 억제할 수 있다. 따라서, 소비 전력을 최대한으로 억제하여 실시간성을 높일 수 있다.
(실시예 2)
또한, 본 발명의 실시예 2에 있어서의 정보 처리 장치에서는, 클럭 주파수를 낮추는 것에 따라, 전원으로부터 공급하는 전압을 낮춤으로써 소비 전력을 억제하는 것을 가능하게 한다. 정보 처리 장치에 공급하는 전압은, 클럭 주파수에 따라서 최저 필요하게 되는 수준이 하드웨어에 의해서 결정된다. 일반적으로 클럭 주파수를 낮추면, 최저 필요하게 되는 전압도 그에 따라서 저하하기 때문에, 클럭 주파수가 높았을 때의 전압으로부터 전압을 저하시킬 수 있다. 또한, 소비 전력은 전압의 자승에 비례하여 변화하기 때문에, 전압의 영향을 크게 받는다.
클럭 주파수를 낮추는 것에 따라, 전원으로부터 공급하는 전압을 낮춤으로써소비 전력을 억제하는 정보 처리 장치를 도 5에 나타낸다. 도 5는, 도 1의 정보 처리 장치에, AC 전원(210)과, 전지(211)와, 전원 제어부(212)가 추가되어 있다. 클럭 생성부(201), 클럭 제어부(202), 연산 처리부(203), 기억부(204), CPU(205), DSP(206), RAM(207), ROM(208), 버스(209), 배타 처리 구간 검출부(213), 클럭 제어 판정부(214)는 실시예 1과 마찬가지의 기능을 갖는다.
AC 전원(210) 및 전지(211)는, 정보 처리 장치의 전원 공급부이다. AC 전원(210)으로부터 전압을 공급하더라도 좋고, 전지(211)로부터 전압을 공급하더라도 좋다.
전원 제어부(212)는, AC 전원(210) 및 전지(211) 중에서 전원 공급부를 선택함과 동시에, 정보 처리 장치에 공급하는 전압을 제어한다.
실시예 2는, 실시예 1과 마찬가지로 도 4에 나타내는 플로우차트의 흐름에 따르지만, 도 4의 S166과 S171에 새로운 단계가 더 추가된 것으로 된다.
실시예 2에 있어서, 도 4의 S171은 도 6에 나타내는 순서로 된다. 도 6을 이용하여, 실시예 2에서 클럭 주파수를 낮추는 명령을 통지한 경우의 처리를 설명한다. 클럭 제어 판정부(214)가, 클럭 주파수를 낮추는 명령을 클럭 제어부(202)에 통지한다(S221). 이 통지를 수취하여, 클럭 제어부(202)가, 클럭 주파수를 낮추었을 때에, 클럭 제어부(202)는, 전원 제어부(212)에 클럭 주파수를 낮춘 것을 통지한다(S222). 전원 제어부(212)는, 클럭 주파수가 낮아지면, 그에 따라서 CPU(205)나 DSP(206) 등의 연산 처리부(203)나, RAM(207)나 ROM(208) 등의 기억부(204)에 공급하는 전압을 낮춘다(S223).
전압은, 클럭 제어부(202), 연산 처리부(203), 기억부(204) 등의 정보 처리 장치 내의 구성 요소가 동작할 수 있는 범위까지 낮출 수 있다. 예컨대, 모든 구성 요소가 동작할 수 있는 것을 보증하기 위해, 각 구성 요소가 나타내는 최저의 전압 중, 최대의 값까지 낮출 수 있다. 예컨대, 구체적으로 설명하면, 구성 요소 A가 동작 가능한 최저 전압이 5V, 구성 요소 B가 동작 가능한 최저 전압이 7V, 구성 요소 C가 동작 가능한 최저 전압이 15V로 한 경우, 이 3개의 구성 요소가 동작 가능한 최대의 값인 15V까지, 전압을 낮추는 것이 가능해진다.
또한, 실시예 2에 있어서, 도 4의 순서 S166는 도 7에 나타내는 순서로 된다. 도 7을 이용하여, 실시예 2에서 클럭 주파수를 높이는 명령을 통지한 경우의 처리를 설명한다. 클럭 제어 판정부(214)가, 클럭 주파수를 높이는 명령을 클럭 제어부(202)에 통지한다(S221). 이 통지를 수치하여, 클럭 제어부(202)가, 클럭 주파수를 높였을 때에, 클럭 제어부(202)는, 전원 제어부(212)에 클럭 주파수를 높인 것을 통지한다(S232). 전원 제어부(212)는, 클럭 주파수가 높아지면, 그에 따라서 CPU(205)나 DSP(206) 등의 연산 처리부(203)나, RAM(207)나 ROM(208) 등의 기억부(204)에 공급하는 전압을 높인다(S233).
전압은, 클럭 제어부(202), 연산 처리부(203), 기억부(204) 등의 정보 처리 장치 내의 장치가 동작할 수 있는 범위까지 높일 수 있다. 예컨대, 모든 장치가 동작할 수 있는 것을 보증하기 위해서, 각 장치가 나타내는 최고의 전압 중, 최소의 값까지 높일 수 있다.
이상과 같이, 클럭 주파수를 낮춤으로써 소비 전력을 억제할 뿐만이 아니라,전원 제어부(212)에 의해서 전압을 변화시킴으로써, 소비 전력을 더 억제할 수 있게 된다.
그러나, 도 8에 나타내는 바와 같이, 전압을 상승시키기 위해서는 전압을 상승시켜 안정화시키기 위한 시간이 필요하다. 전압을 (251)로부터 (252)의 수준으로 상승시켜 클럭 주파수를 높이는 경우에는, 전압이 상승하여 안정화하였을 때에, 전원 제어부(212)는 클럭 제어부(202)에 통지하여, 클럭 제어부(202)는 클럭 주파수를 높인다. 통상, 전압을 상승시켜 안정화하기 직전에, 목표로 하는 (252)의 수준의 전압을 상회하는 상태가 계속된다. 이 경우, 도 8의 (252)의 전압의 수준을 하회하지 않는 것이 보증되어 있으면, (252)의 전압의 수준에 도달한 시점(253)에서 전원 제어부(212)가 클럭 제어부(202)에 클럭 주파수를 높이도록 통지하더라도 좋다.
전압이 상승하고 있는 동안에도 동작하는 정보 처리 장치에 있어서, 전압의 수준이 (252)에 도달하기까지의 동안에 클럭 주파수를 변화시키지 않는 경우, 배타적으로 처리를 행하는 구간의 선두에서는 실시간성이 손상되게 된다. 그래서, 전압을 도 8의 (251)로부터 (252)의 수준으로 상승시키고 있는 동안에, 클럭 제어부(202)는, 단계적으로 클럭 주파수를 높일 수 있다. 이 경우, 클럭 제어부(202)는, 전압의 값과 그 전압을 기초로 공급 가능한 클럭 주파수와의 대응 정보를 유지하여, 전압 제어부(212)로부터 공급되는 전압의 값의 변화에 따라 클럭 주파수를 설정한다.
또한, 전압의 상승 중에 단계적으로 클럭 주파수를 높이는 방식으로서, 기억부(204)가 전압의 값과 그 전압을 기초로 공급 가능한 클럭 주파수와의 대응 정보를 유지하는 방식이라도 좋다. 이 경우, 연산 처리부(203)가 기억부(204)로부터 로드한 대응 정보를 바탕으로, 전원 제어부(212)로부터 공급되는 현재의 전압으로 공급 가능한 클럭 주파수를 얻는다. 다음에, 연산 처리부(203)는 클럭 제어부(202)에 그 클럭 주파수까지 높이는 것을 명령한다.
전압의 값과 클럭 주파수의 대응 정보란, 예컨대, 연산 처리부(203)의 CPU(205)나 DSP(206), 혹은 기억부(204)의 RAM(207)나 ROM(208) 등의 각 구성 요소가 특정한 클럭 주파수로 동작하기 위해서 최저 필요로 하는 전압 수준의 정보이다. 예컨대, 몇 개의 단계로 나눈 클럭 주파수에 대해 필요한 전압의 수준을 기술한 대응표나, 혹은 구성 요소마다 클럭 주파수를 입력으로 하여 필요한 전압의 수준을 출력하는 함수가 대응 정보로 된다.
하나의 클럭 제어부(202)가, 정보 처리 장치 내의 하나의 구성 요소에 클럭을 공급하고 있는 경우, 상기한 클럭 주파수와 전압의 대응표나 함수에 따라서 클럭 주파수를 높여 가면 좋다. 하나의 클럭 제어부(202)로부터 동일한 클럭 주파수로 클럭을 복수의 구성 요소에 공급하고 있는 경우, 구성 요소 중에서 가장 높은 전압을 요구하는 구성 요소에 맞추어 그 전압을 임계값으로 하여, 그 임계값을 초과하였을 때에 클럭 주파수를 높이도록 하면 좋다.
클럭 제어부(202)는, 전원 제어부(212)로부터 항상 전압의 수준을 검지하고 있고, 전압과 클럭 주파수의 대응 정보에 대조하여, 그 전압의 수준에 따른 클럭 주파수로 제어한다. 그렇게 함으로써, 배타적으로 처리를 행하는 구간으로 들어가전압을 상승시키고 있는 동안에도, 그 때의 전압에 대응하여 클럭 주파수를 상승시키는 것이 가능해져, 실시간성을 강화할 수 있다.
또한, 전압을 저하시키기 위해서는 전압을 저하시켜 안정화시키기 위한 시간이 필요하다. 전압을 (252)로부터 (251)의 수준으로 저하시켜 클럭 주파수를 낮추는 경우에는, 전압을 저하시키기 전의 시점(254)에서, 전원 제어부(212)가 클럭 제어부(202)에 클럭 주파수를 낮추도록 통지한다. 통상, 전압을 저하시켜 안정화하기 직전에, 목표로 하는 (251)의 수준의 전압을 하회하는 상태가 계속된다. (251)의 수준에 도달하기까지의 최소의 전압이 보증되어 있는 경우, 클럭 제어부(202)는, 전압이 불안정한 상태인 때도 포함시켜, 최소의 전압으로도 공급 가능한 클럭 주파수로 제어한다. 전압이 안정화한 후에 전원 제어부(212)가 클럭 제어부(202)에 통지하고, 그 전압에 대응한 클럭 주파수로 다시 제어하더라도 좋다.
또한, 도 8의 (256)에 도시하는 바와 같이, 전압이 상승이 종료할 때까지 배타적으로 처리를 행하는 구간이 종료하여 전압을 곧이어 재차 낮추지 않으면 안 되는 경우, 전원 제어부(212)가 전압을 변경하는 처리나 클럭 제어부(202)가 전압의 변경에 따라 클럭 주파수를 변경하는 처리가 쓸데없게 된다. 그래서, 곧이어 배타적인 처리가 종료하는 경우에, 클럭 제어 판정부(214)는 클럭을 높이는 명령을 클럭 제어부(202)에 통지하지 않는 방법이 취해진다. 단, 배타적으로 처리를 행하는 구간에서 실시간성을 유지하기 위해서, 곧이어 배타적인 처리가 종료하는 경우에도, 클럭 제어 판정부(214)가 클럭을 높이는 명령을 클럭 제어부(202)에 통지하더라도 좋다.
곧이어 배타적인 처리가 종료하였는지 여부를 클럭 제어 판정부(214)가 판정하기 위해서, 예컨대 도 9에 도시하는 바와 같이, 해당하는 배타적인 처리 구간의 실행 시간의 정보를 기억부(204)에 보존하고 있다. 클럭 제어 판정부(214)는, 기억부(204)로부터 이 정보를 취득하여 이용한다. 소정의 배타적인 처리를 개시하는 지점이 있으면, 그 지점에 대응하는 지점으로서 반드시 그 배타적인 처리 구간을 종료하는 지점이 존재한다. 그 개시 지점으로부터 종료 지점까지의 구간이, 배타적으로 처리를 행하는 구간이다.
도 9의 좌측 란(301)에는, 배타적으로 처리를 행하는 구간을 복수 마련하고 있다. 배타적인 처리 구간인 인터럽트 금지 구간이나 프리엠프트 금지 구간은, 연산 처리부(203)가 실행하는 처리 중인 복수 개소에서 설정되어 있다. 따라서, 각각의 배타적인 처리 구간의 실행 시간의 정보를 유지하기 위해서, 처리 구간이 어느 개소의 배타적인 처리 구간인 것인지 특정할 필요가 있다.
배타적인 처리 구간을 특정하는 방식의 하나로서, 소프트웨어 의한 방식이 있다. 이것은, 프로그램 중에, 어떤 배타적인 처리 구간의 개시 및 종료인 것인지를 통지하는 프로그램을 집어넣은 방식이다. 예컨대, 배타 처리 구간 검출부(213)에 의해서 검출하는 배타적인 처리 구간을 미리 추출하여, 각각의 처리 구간을 특정하는 수치 등의 식별 기호와의 일람을 준비해 둔다. 소프트웨어가, 배타적인 처리 구간을 실행할 때에, 그 일람 중에서 대응하는 식별 기호를 기억부(204)에, 예컨대, 「구간 개시 #1」등으로 통지한다. 그에 의해, 어떤 배타적인 처리 구간인 것인지를 명시적으로 나타낼 수 있다.
보다 상세하게는, 예를 들어 미리 프로그램을 작성할 때에, 각 처리 구간을 일의적으로 구별하는 식별명을 부여하여 작성하고, 프로그램 실행 중에 배타적인 처리 구간을 개시(또는 종료)하기 직전(또는 직후)에 그 구간의 식별명을 통지하는 코드를, 프로그램 중에 집어넣는다고 하는 방법을 채용할 수 있다. 이 때, 기억부(204)에는, 도 9의 좌측 란(301)의 내용, 즉 모든(혹은 일부의) 지정된 배타적인 처리 구간의 식별명을 기억시켜 놓는다. 일부의 지정된 배타적인 처리 구간의 식별명만을 기억시키는 것은, 후술하는 바와 같이, 배타적인 처리 구간 중, 일부에 대해서만, 클럭 제어의 대상으로 되기 때문이다.
별도의 예로서, 이미 작성된 프로그램에 대해, 전처리로서 미리 정적으로 프로그램을 해석한 후에, 배타적인 처리 구간의 개시 및 종료를 추출하고, 추출한 것에 배타적인 처리 구간의 식별명을 부여하여, 도 9의 좌측 란(301)의 내용으로서 기억부(204)에 기억시켜 놓는다고 하는 방법도 채용할 수 있다. 이 경우, 프로그램 실행 시에 배타적인 처리 구간의 개시 및 종료를 통지하기 위한 코드를, 이전 처리의 과정에서, 프로그램 중에 삽입해 놓는다.
여기서 전처리란, 프로그램의 실행 전에 실행하는 처리를 의미한다. 전처리는, 예컨대 정보 처리 장치에 전원이 투입된 후에 연산 처리부(203)가 동작을 개시한 직후에, 특정한 프로그램을 실행함으로써 실행할 수 있다. 혹은, CPU(205)란 별도의 CPU를 연산 처리부(203)에 내장해 놓고, 이 별도의 CPU가 특정한 프로그램을 실행함으로써 전처리를 행하더라도 좋다. 전처리는, 이미 작성된 프로그램이 기억부(204)에 탑재되기 전에, 사람의 손으로 또는 툴(tool)을 이용하여 해당 프로그램을 해석함으로써 실행할 수도 있다. 또한, 「정적」이란, 프로그램 실행 중이라는 의미의 「동적이다」에 대립하는 개념이다. 따라서, 「정적으로 해석한다」란, 프로그램이 실행되고 있는 중에서, 그것과 동시에 해석하는 것은 아니고, 실행되어 있을 때의 프로그램, 말하자면 중지 중인 프로그램 혹은 사용 전의 프로그램을 해석하는 것을 의미한다.
또, 프로그램의 해석은 정적으로 행해도, 기억부(204)에 도 9의 좌측 란(301)의 내용을 기억시키는 처리는, 동적으로 실행하는 것도 가능하다. 그것에는, 예컨대, 프로그램이 실행되는 중에서 배타적인 처리 구간이 실행될 때에, 해당 구간의 식별명을 기억부(204)에 기억시키기 위한 코드를, 정적으로 프로그램의 해석을 행하는 과정에서, 프로그램 중에 삽입해 놓으면 좋다.
또한, 배타적인 처리 구간을 특정하는 별도의 방식으로서, 배타적인 처리를 행할 때의 연산 처리부(203)의 내부 정보에 근거하여 일의적으로 특정하는 방식이어도 좋다. 연산 처리부(203)의 내부 정보란, 내부에서 처리를 행하기 위해서 사용되는 레지스터의 값 등이다. 연산 처리부(203)는, 배타적인 처리 구간을 실행할 때에, 그 처리 구간을 특정할 수 있는 연산 처리부(203)의 내부 정보를 기억부(204)에 통지한다.
보다 상세하게는, 이 방식은, 프로그램에 의해서 배타적인 처리 구간을 통지하는 것은 아니고, 하드웨어나 CPU(205)의 상태에 근거하여, 배타적인 처리 구간을 식별하는 것이다. CPU(205)의 내부 정보로서, 예컨대, 복수의 레지스터의 내용을 이용할 수 있다. 특정한 레지스터의 값을 취득함으로써, 어느 하나의 배타적인 처리 구간인지를 특정하는 것이 가능하다. 예컨대, 레지스터 중의 프로그램 카운터의 값은 프로그램의 실행 번지를 가리키기 때문에, 이것을 배타적인 처리 구간의 식별에 이용할 수 있다. 이 경우에는, 미리 프로그램 카운터의 값을 통지하는 코드를 프로그램 중에 집어넣어 놓으면 좋다.
별도의 예로서, 레지스터중의 스택 포인터(stack pointer)의 값을 바탕으로, 스택되어 있는 정보, 즉 기억부(204)의 메모리 영역 중, 스택에 할당되어 있는 영역에 기억되어 있는 정보를 찾아낼 수 있다. 이 정보로부터, 함수의 호출 관계를 파악할 수 있다. 파악된 함수의 호출 관계로부터, 배타적인 처리 구간을 동적으로 검출하는 것이 가능해진다. 여기서, 「함수」란, C 언어라고 하는 함수를 일례로 하는 것으로, 서브루틴 혹은 이것과 유사한 것, 즉, 주소요된 처리 단위로 인용 가능한 처리 단위를 의미한다.
이상에서 서술한 각종 방식에 의해, 도 9에 나타내는 배타적인 처리 구간의 실행 시간의 정보를 기억부(204)가 관리할 수 있다. 또, 도 9의 좌측 란(301) 뿐만 아니라, 후술하는 도 12의 좌측 란(401)에 대해서도, 동일한 방법을 취하는 것이 가능하다.
도 9의 (302, 303, 304)의 정보는, (301)로 나타내는 각각의 배타적인 처리 구간을 지금까지 실행하여 얻어진 시간 정보를 기억한 것이다. 상세하게 말하면, (302)에는 전회 실행하였을 때에 필요한 시간을 나타내고 있다. 또한 (303)에는, 각각의 배타적인 처리 구간을 실행하였을 때에 필요한 시간의 합계와, 실행한 모든 회수를 나타내고 있다. (304)에는, (303)로부터 얻어진 실행 시간의 합계와 실행회수를 기초로 계산하여, 각각의 배타적인 처리 구간의 평균의 실행 시간을 나타내고 있다.
배타적으로 처리를 행하는 있는 구간이 개시되었을 때에, 그 처리 구간의 실행 시간의 정보에 근거하여 처리하는 흐름을 도 10의 플로우차트로 나타낸다. 우선 배타적으로 처리를 행하는 구간이 개시되면(S351), 연산 처리부(203)는, 이 배타적인 처리 구간의 실효 시간을 파악하기 위해서, 시간의 계측을 개시한다(S352). 다음에, 배타 처리 구간 검출부(213)는, 현재 실행하고 있는 배타적인 처리 구간의 실행 시간이 충분히 긴지 여부를 판정한다(S353). 이 판정을 행하기 위해서 실행 시간의 경계치를 설정하여, 현재 실행하고 있는 배타적인 처리 구간의 예측 실행 시간과 비교하여 판정하면 좋다.
임계값은, 전압이 상승하는 데 소요되는 시간을 고려하여 설정한다. 또한, 예측 실행 시간은, 도 9에 나타내는 배타적인 처리 구간의 실행 시간의 정보에 근거하여 예측한다. (304)에 나타내는 배타적인 처리의 평균의 실행 시간을 이용해도 좋고, (302)에 나타내는 전회의 실행 시간을 이용해도 좋다. 예컨대, 임계값이 10 마이크로초(10μsec)이며, 예측 실행 시간에 (304)의 평균의 실행 시간을 이용하는 경우, 도 9에 도시하는 바와 같이 배타적인 처리로서 식별 번호 1의 인터럽트 금지의 구간이 개시되면, 임계값보다 예측 실행 시간인 평균의 실행 시간 98.99μsec 쪽이 길기 때문에, 이 구간의 실행 시간은 충분히 길다고 판정한다. 반대로, 식별 번호 2의 인터럽트 금지 구간이 개시되면, 임계값보다 평균의 실행 시간 0.72μsec이 짧기 때문에, 이 구간의 실행 시간이 충분히 길다고 판정하지 않는다.
배타 처리 구간 검출부(213)가, 실행 중이 배타적인 처리 구간이 충분히 길다고 판정하면(S353이 Yes), 연산 처리부(203)는, 클럭 주파수를 높이도록 클럭 제어부(202)에 명령하여(S354), 후속의 처리를 계속하여 실행한다(S355). 한편, 실행 중의 처리 구간이 충분히 길다고 판정하지 않으면(S353이 No), 클럭 주파수를 높이지 않고 후속의 처리를 계속하여 실행한다(S355).
배타 처리 구간 검출부(213)가, 실행 중의 배타적인 처리 구간을 종료하는 지점을 검출하면(S356), 연산 처리부(203)는, S353의 처리에 있어서, 이전의 실행 시간이 충분히 길다고 판정하여, 이 처리 구간에서 클럭 주파수를 높일지 여부를 판정한다(S357). 클럭 주파수를 높이고 있지 않은 경우(S357이 No), 이 처리 구간의 실행 시간이, 클럭 주파수가 높아지고 있지 않는 만큼 크게 된다. 그 때문에, 본래 높일 것이었던 클럭 주파수와의 비를 취하여, 클럭 주파수를 높여 실행한 경우의 실행 시간으로 보정한다(S358). 예컨대, 40MHz의 클럭 주파수로 높이는 것을 설정하였지만, 4MHz의 낮은 클럭 주파수대로 이 처리 구간을 실행한 경우, 클럭 주파수의 비는 10으로 되어, 실행 시간은 1/10(10분의 1)배로 보정한다. 그 후, 연산 처리부(203)는, 이 처리 구간의 시간 계측을 종료하여 실행에 소요된 시간의 정보를 보존한다(S359). 예컨대, 도 9에 도시하는 바와 같이 (302)의 전회의 실행 시간이나 (303)나 (304)의 평균의 실행 시간의 정보를 갱신하면 좋다.
또, 임계값과 대비해야 할 예측 실행 시간으로서, 클럭 주파수를 낮게 유지한 채로 실행했다고 가정하였을 때의 예측 실행 시간을 선택하는 것이 바람직하지만, 다른 클럭 주파수에 대응하는 예측 실행 시간을 채용하더라도 지장 없다. 또한, 임계값으로서, 전압 제어부(212)가 전압을 상승시키는 데 소요되는 시간, 즉 전압 상승 시간 그 자체를 설정할 수 있다. 또한, 임계값으로서 전압 상승 시간에 있는 마진을 부가한 시간을 설정하더라도 좋다. 또한, 임계값으로서, 전압 상승 시간과, 전압 제어부(212)가 전압을 하강시키는 데 소요되는 시간, 즉 전압 하강 시간과의 합을 설정할 수 있다. 또한, 임계값으로서, 상기의 합에 있는 마진을 부가한 시간을 설정하더라도 좋다.
또는, 임계값과 대비해야 할 예측 실행 시간으로서, 클럭 주파수를 낮게 유지한 채로 실행했다고 가정하였을 때의 예측 실행 시간을 선택한 경우에는, 임계값으로서, 상기의 합에 클럭 주파수를 높게 하였을 때의 예측 실행 시간을 가산한 가산 기간을 설정하더라도 좋다. 또, 임계값으로서, 이 가산 기간에 있는 마진을 부가한 시간을 설정하더라도 좋다. 각각에 따른 확실도를 갖고, 실시간성을 확보하는 데에 있어서 역효과로 되는 경우 또는 효과가 얇은 경우에, 클럭 주파수의 상승을 회피할 수 있다. 또, 마진을 부가하기 위해서는, 예컨대, 정(正)의 정수를 가산하거나, 혹은 1을 초과하는 정수를 승산하면 좋다.
전압 상승 시간 및 전압 하강 시간을 임계값에 반영시키는 것은, 전압 제어부(212)가 지시를 받고 나서, 전압의 변경을 달성할 때까지 시간이 필요한 경우가 있는 것을 고려한 것이다. 위에 서술한 도 10의 순서는, 전압을 변경하는 데 소요되는 기간에서는, 프로그램의 실행은 정지하고 있는 것을 전제로 하고 있다. 즉, 도 8에 있어서 클럭 주파수를 높였을 때의 예측 실행 시간은, 전압이 높은 값(252)으로 일정으로 되어 있는 기간에 상당한다.
또한, 임계값에 반영시켜야 되는 전압 상승 시간의 대신에, 클럭 제어부(202)가 클럭 주파수를 상승시키는 데 소요되는 시간인 주파수 상승 시간을 이용할 수 있다. 마찬가지로, 임계값에 반영시켜야 되는 전압 하강 시간의 대신에, 클럭 제어부(202)가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간을 이용할 수 있다. 주파수 상승 시간 및 주파수 하강 시간을 임계값에 반영시키는 것은, 클럭 제어부(202)가 지시를 받고 나서, 클럭 주파수의 변경을 달성할 때까지 시간이 필요한 경우가 있는 것을 고려한 것이다. 위에 서술한 도 10의 순서는, 클럭 주파수를 변경하는 데 소요되는 기간에서는, 프로그램의 실행은 정지하고 있는 것을 전제로 하고 있다.
도 11은, 클럭 주파수의 변경에 시간이 필요한 경우의 클럭 주파수의 변화 형태를 나타내는 그래프이다. 도 11에 있어서, 클럭 주파수는 낮은 값(501)으로부터 높은 값(502)으로 상승하는 데, 소정의 시간이 소요되고 있다. 마찬가지로, 클럭 주파수는 높은 값(502)으로부터 낮은 값(501)으로 하강하는 데, 소정의 시간이 소요되고 있다. 도 11에 있어서 클럭 주파수를 높였을 때의 예측 실행 시간은, 클럭 주파수가 높은 값(502)으로 일정하게 되어 있는 기간, 즉 시간(503)∼시간(504)의 기간에 상당한다.
도 10을 이용하여 배타적으로 처리를 행하는 구간의 처리 흐름을 나타내었지만, 전압과 그에 따른 클럭 주파수의 조합을 복수 취득하는 경우, S353과 S354의 순서로 배타적인 처리 구간을 최단으로 하는 것과 같은 전압과 클럭 주파수를 선택할 수 있다.
S353과 S354에 있어서 최적의 전압과 클럭 주파수를 선택하는 방법을 서술한다. 우선, 도 8에 나타내는 (251)의 수준으로부터 (252)의 수준으로 전압이 상승하여 안정하기까지의 시간은, 현재의 전압 수준과 변경 후의 전압 수준의 2값, 및 전압의 상승 속도, 즉 전압 쌍 시간의 곡선 경사에 의해서 정해진다. 또한, 배타적인 처리 구간의 예측 실행 시간은, 소정의 클럭 주파수에 근거한 예측 실행 시간과 변경 후의 클럭 주파수의 2값에 의해서 정해진다. 변경 후의 클럭 주파수는, 변경 후의 전압 수준에 따른 최대의 클럭 주파수이기 때문에, 변경 후의 전압의 수준에 의해서 정해진다. 따라서 결과적으로, 전압의 상승 시간보다도 배타적인 처리 구간의 예측 실행 시간이 길다고 하는 조건 하에서, 배타적인 처리 구간의 예측 실행 시간을 최단으로 하는 것과 같은 전압 수준을 선택하면 좋다. 그 전압 수준에 따른 최대의 클럭 주파수가 최적의 클럭 주파수이다.
보다 상세하게 설명하면, 상기 처리 순서는, 전압의 상승 중 및 하강 중에는 프로그램을 실행할 수 없는 것을 전제로 하고 있다. 즉, 상기 처리 순서는, 도 8 또는 도 11에 있어서 전압이 평탄한 기간에 한하여 프로그램이 실행되는 것을 전제로 하고 있다. 상기 처리 순서는, 이 전제의 위에서, 전압과 클럭 주파수를 단순히, 「고속 처리 모드」와 「저 전력 소비 모드」에 대응한 2개의 값 사이에서 변경하는 것은 아니고, 전압의 상승 속도 및 하강 속도, 환언하면 전압의 상승 시간 및 하강 시간과, 상승시킨 클럭 주파수로 배타적인 처리 구간의 처리를 행하는 데 소요되는 시간과의 관계를 고려하여, 최적의 전압과 대응하는 클럭 주파수로 상승시키는 것이다.
이하에 구체 예를 든다. 통상의 동작 모드인 「저 전력 소비 모드」에서는, 20MHz의 속도로 연산 처리부(203)가 동작하고 있을 때에, 소정의 배타적인 처리 구간의 처리 시간이 60초라고 예측된 것으로 한다. 이 경우에, 클럭 주파수를 60MHz로 상승시키면, 단순한 계산에 의하면, 배타적인 처리 구간의 처리 시간은 20초로 되는 것이 기대된다. 그러나, 클럭 주파수를 10MHz분 상승시키기 위해서, 전압을 상승시키는 시간으로서 5초가 필요하다고 가정하면, 클럭 주파수를 20MHz로부터 60MHz까지 상승시키고, 또한 그 후 하강시키는 데 합계 4O초의 시간을 필요로 한다. 즉, 배타적인 처리 구간의 처리 시간인 20초를 포함하면, 전압이 본래의 낮은 값으로 되돌아갈 때까지, 20+40=60초의 시간이 필요하게 된다.
이에 대해, 클럭 주파수를 60MHz가 아니라, 40MHz로까지 상승시키는 경우에는, 20MHz로부터 40MHz까지 상승시키고, 또한 그 후 하강시킬 데에는, 합계 20초의 시간으로 충분하다. 클럭 주파수가 40MHz이면, 클럭 주파수가 20MHz인 경우에 비해 처리 속도는 2배로 되기 때문에, 배타적인 처리 구간의 처리 시간은 30초로 된다. 즉, 배타적인 처리 구간의 처리 시간인 30초를 포함해서, 30+20=50초의 시간으로 전압이 본래의 낮은 값으로 되돌아간다.
이와 같이, 미리 정해진 범위에서, 상승시켜야 되는 최적의 클럭 주파수를 선택할 수 있다. 즉, 전압이 본래의 낮은 값으로 되돌아가기까지의 시간, 혹은 이것에 있는 마진을 부가한 시간보다도, 클럭 주파수를 낮은 채로 유지한 상태에서 배타적인 처리 구간의 처리를 행한 경우에 예측되는 시간이 길게 되는 클럭 주파수인 유효 주파수가 미리 정해진 범위에 있으면, 클럭 주파수를 유효 주파수까지 상승시키고, 유효 주파수가 미리 정해진 범위에 없을 경우에는, 클럭 주파수를 상승시키지 않으면 좋다. 미리 정해진 범위는, 클럭 주파수의 범위를 단계적으로 정하는 것이어도 좋고, 연속한 범위이어도 좋다. 하나의 클럭 주파수에 대해, 배타적인 처리 구간의 처리 시간에 대한 예측값이 얻어지면, 다른 임의의 클럭 주파수에 대해, 배타적인 처리 구간의 처리 시간, 및 전압의 상승 및 하강에 소요되는 시간은, 단순한 계산으로 얻을 수 있다.
이와 같이, 배타적인 처리 구간을 최단으로 하는 것과 같은 전압과 클럭 주파수를 선택한 경우, S357과 S358의 순서 중에서, 선택한 클럭 주파수에 따라 계측한 실행 시간을 보정할 필요가 있다. S359에서 보존되는 시간 정보는, 소정의 특정한 클럭 주파수에 근거하여 계측된 시간 정보이다. 예컨대, 배타적인 처리 구간의 실행 시간을 정보 처리 장치가 허용하는 최대의 클럭 주파수에 근거하여 계측되어 있는 경우, 실제로 실행하였을 때의 클럭 주파수와의 비를 취하여 보정을 행한다. 기준으로 되는 최대의 클럭 주파수가 40MHz이며, 배타적인 처리 구간에서 선택한 클럭 주파수가 고정으로 20MHz 혹은 평균적으로 20MHz이면, 계측한 실행 시간을 20/40=0.5배로 보정하여, S359에서 시간 정보로서 보존한다. 즉, 20MHz의 클럭 주파수 하에서 실행 시간이 10초였으면, 0.5배로 보정한 5초가 시간 정보로서 보존된다. 또, 배타적인 처리 구간의 실행 시간을 기록하기 위한 기준으로 되는 클럭 주파수는, 임의의 값으로 정할 수 있다.
한편, 도 8의 (257)에 도시하는 바와 같이 전압이 완전히 저하할 때까지 재차 배타적으로 처리를 행하는 구간이 개시하여 전압을 곧이어 재차 높이지 않으면 안 되는 경우, 배타적으로 처리를 행하는 구간에서 곧바로 전압이 목표의 수준(252)까지 도달하지 않기 때문에, 클럭 주파수를 곧이어 높일 수 없고, 실시간성이 손상된다. 또한, 전원 제어부(212)가 전압을 변경하는 처리나, 전압의 변경에 따라 클럭 제어부(202)가 클럭 주파수를 변경하는 처리가 낭비된다. 그래서, 배타적으로 처리를 행하는 구간이 종료하여 곧이어 재차 배타적으로 처리를 행하는 구간이 개시하는 경우에, 클럭 제어 판정부(214)는, 클럭을 낮추는 명령을 클럭 제어부(202)에 통지하지 않고, 전압을 (252)의 수준으로 유지하여 클럭 주파수를 높은 채로 유지하는 방법이 취해진다.
곧이어 재차 배타적인 처리가 개시하는지 여부를 클럭 제어 판정부(214)가 판정하기 위해서, 예컨대 도 12에 도시하는 바와 같이, 배타적인 처리의 종료로부터 다음의 배타적인 처리의 개시까지의 처리 구간의 실행 시간의 정보를 기억부(204)에 보존하고 있다. 클럭 제어 판정부(214)는, 기억부(204)로부터 이 정보를 취득하여 이용한다. 도 9에 나타내는 정보와 크게 상이한 점은, 소정의 배타적인 처리를 종료하는 지점과 그 다음에 실행되는 배타적인 처리를 개시하는 지점과는 일대일로 대응하지 않는 점이다. 소정의 배타적인 처리를 종료하면, 인터럽트 등의 처리에 의해서 여러 가지로 실행 경로가 변화하는 것이 생각되고, 다음의 배타적인 처리의 개시 지점과의 조합을 모두 생각할 필요가 있다. 도 12의 (401)에는, 각각의 인터럽트 금지 구간이나 프리엠프트 금지 구간의 종료 지점에 대해, 가능성으로서 생각되는 다음의 배타적인 처리를 개시하는 지점과의 조합이생긴다.
배타적인 처리 구간의 개시와 종료는, 연산 처리부(203)가 실행하는 처리중인 복수 개소에서 설정되어 있다. 따라서, 각각의 조합에 따라 실행 시간의 정보를 유지하기 위해서, 어떤 개소의 배타적인 처리 구간의 개시 및 종료인 것인지 특정할 필요가 있다. 그들을 특정하는 방식은, 상술한 배타적인 처리 구간을 특정하는 방식과 마찬가지의 방식에 의해 실현할 수 있다.
예컨대, 배타 처리 구간 검출부(213)에 의해서 검출하는 배타적인 처리 구간의 개시와 종료를 미리 추출하여, 각각의 지점을 특정하는 수치 등의 식별 기호와의 일람을 준비해 둔다. 소프트웨어 중에서 배타적인 처리 구간을 개시 혹은 종료할 때에, 그 일람 중에서 대응하는 식별 기호를 기억부(204)에 통지한다. 그에 의해, 소정의 배타적인 처리 구간의 개시 혹은 종료인 것인지를 명시적으로 나타낼 수 있다.
또한, 배타적인 처리 구간의 개시와 종료를 특정하는 별도의 방식으로서, 배타적인 처리를 행할 때의 연산 처리부(203)의 내부 정보에 근거하여 일의적으로 특정하는 방식이라도 좋다. 연산 처리부(203)의 내부 정보란, 내부에서 처리를 행하기 위해서 사용되는 레지스터의 값 등이다. 연산 처리부(203)는, 배타적인 처리 구간을 개시 및 종료할 때에, 그 지점을 특정할 수 있는 연산 처리부(203)의 내부 정보를 기억부(204)에 통지한다.
이들의 방식에 의해, 도 12에 나타내는 배타적인 처리 구간의 실행 시간의 정보를 기억부(204)가 관리할 수 있다.
도 12의 (402, 403, 404)의 정보는, (401)로 나타내는 각각의 종료 지점으로부터 개시 지점까지의 처리 구간을 지금까지 실행하여 얻어진 시간 정보를 기억한 것이며, (402)에는 전회 실행하였을 때에 소요된 시간을 나타내고 있다. 또한 (403)에는, 각각의 종료 지점으로부터 개시 지점까지의 처리 구간을 실행하였을 때에 소요된 시간의 합계와, 실행한 모든 회수를 나타내고 있다. (404)에는, (403)으로부터 얻어진 실행 시간의 합계와 실행 회수를 기초로 계산하여, 각각의 종료 지점으로부터 개시 지점까지의 처리 구간의 평균의 실행 시간을 나타내고 있다.
배타적으로 처리를 행하는 있는 구간이 종료되었을 때에, 다음으로 배타적인 처리 구간이 개시되기까지의 실행 시간의 정보에 근거하여 처리하는 흐름을 도 13의 플로우차트로 나타낸다. 우선, 배타적으로 처리를 행하는 구간이 종료되면 (S451), 연산 처리부(203)는, 배타적인 처리 구간이 개시되기까지의 실행 시간을 파악하기 위해서 시간의 계측을 개시한다(S452). 다음에, 연산 처리 수단(203)은, 현재 실행하고 있는 처리 구간의 실행 시간이 충분히 긴지 여부를 판정한다 (S453). 이 판정을 행하기 위해서, 실행 시간이 충분히 긴지 여부를 판정하기 위한 실행 시간의 임계치를 설정하여, 현재 실행하고 있는 배타적인 처리 구간의 예측 실행 시간과 비교하여 판정하면 좋다.
임계값은, 전압이 하강하는 데 소요되는 시간을 고려하여 설정한다. 또한, 예측 실행 시간은 도 12에 나타내는 배타적인 처리의 종료 지점으로부터 개시 지점까지의 구간의 실행 시간의 정보에 근거하여 예측한다. (404)로 나타내는 평균의 실행 시간을 이용해도 좋고, (402)로 나타내는 전회의 실행 시간을 이용해도 좋다.예컨대, 임계값이 10μsec이며, 예측 실행 시간에 (404)의 평균의 실행 시간 중 최단의 것을 이용하는 경우, 도 12에 도시하는 바와 같이 식별 번호 1의 인터럽트 금지의 구간이 종료되면, 예측 실행 시간은 다음에 식별 번호 2의 인터럽트 금지가 개시되는 경우가 최단이며, 임계값보다 예측 실행 시간인 평균의 실행 시간의 446.04μsec 쪽이 길기 때문에, 이 구간의 실행 시간은 충분히 길다고 판정한다. 반대로, 식별 번호 1의 프리엠프트 금지 구간이 종료되면, 예측 실행 시간은 다음에 식별 번호 1의 인터럽트 금지 구간이 개시되는 경우이며, 임계값보다 평균의 실행 시간 4.86μsec이 짧기 때문에, 이 구간의 실행 시간이 충분히 길다고 판정하지 않는다.
실행 중의 처리 구간이 충분히 길다고 판정하면(S453이 Yes), 연산 처리부(203)는, 클럭 주파수를 낮추도록 클럭 제어부(202)에 명령하여(S454), 후속의 처리를 계속하여 실행한다(S455). 한편, 실행 중의 처리 구간이 충분히 길다고 판정하지 않으면(S453가 No), 클럭 주파수를 낮추지 않고 후속의 처리를 계속하여 실행한다(S455).
배타 처리 구간 검출부(213)가, 실행 중인 배타적인 처리 구간을 개시하는 지점을 검출하면(S456), S453의 처리에 있어서, 이전의 실행 시간이 충분히 길다고 판정하여, 이 처리 구간에서 클럭 주파수를 낮출지 여부를 판정한다(S457). 클럭 주파수를 낮추고 있지 않은 경우(S457이 No), 이 처리 구간의 실행 시간이, 클럭 주파수가 낮아지고 있지 않은 만큼 크게 된다. 그 때문에, 본래 낮출 것이었던 클럭 주파수와의 비를 취하여, 클럭 주파수를 높여 실행한 경우의 실행 시간으로 보정한다(S459). 예컨대, 4MHz의 클럭 주파수로 낮추는 것을 설정했었지만, 40MHz의 높은 클럭 주파수 그대로 이 처리 구간을 실행한 경우, 클럭 주파수의 비는 1/10(10분의 1)로 되어, 실행 시간은 10배로 보정한다. 그 후, 이 처리 구간의 시간 계측을 종료하여 실행에 소요된 시간의 정보를 보존한다(S459). 예컨대, 도 12에 도시하는 바와 같이 (402)의 전회의 실행 시간이나 (403)나 (404)의 평균 실행 시간의 정보를 갱신하면 좋다.
또, 임계값과 대비해야 할 예측 실행 시간으로서, 클럭 주파수를 낮추어 실행했다고 가정했을 때의 예측 실행 시간을 선택하는 것이 바람직하다. 또한, 임계값으로서, 전압 제어부(2l2)가 전압을 하강시키는 데 소요되는 시간, 즉 전압 하강 시간 그 자체를 설정할 수 있다. 또한, 임계값으로서 전압 하강 시간에 있는 마진을 부가한 시간을 설정하더라도 좋다. 또한, 임계값으로서, 전압 하강 시간과, 전압 제어부(212)가 전압을 상승시키는 데 소요되는 시간, 즉 전압 상승 시간과의 합을 설정할 수 있다. 또한, 임계값으로서, 상기의 합에 있는 마진을 부가한 시간을 설정하더라도 좋다. 각각에 따른 확실도를 갖고, 소비 전력을 절감하는 효과가 얇은 경우에까지, 클럭 주파수를 하강시키는 것을 회피할 수 있다.
또한, 임계값에 반영시켜야 되는 전압 상승 시간 대신에, 클럭 제어부(202)가 클럭 주파수를 상승시키는 데 소요되는 시간인 주파수 상승 시간을 이용할 수 있다. 마찬가지로, 임계값에 반영시켜야 되는 전압 하강 시간 대신에, 클럭 제어부(202)가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간을 이용할 수 있다.
도 14는, 클럭 주파수의 변경에 시간이 필요한 경우의 클럭 주파수의 변화 형태를 나타내는 그래프이다. 도 14에 있어서, 클럭 주파수는 높은 값(511)으로부터 낮은 값(512)으로 하강하는 데, 소정의 시간이 소요되고 있다. 마찬가지로, 클럭 주파수는 낮은 값(512)으로부터 높은 값(511)으로 상승하는 데, 소정의 시간이 소요되고 있다. 전압의 변경에 시간이 필요한 경우의 전압 변화의 형태는, 도 14와 마찬가지로 도시된다.
전압 상승 시간 및 전압 하강 시간을 임계값에 반영시키는 것은, 전압 제어부(212)가 지시를 받고 나서, 전압의 변경을 달성할 때까지 시간이 필요한 경우가 있는 것을 고려한 것이다. 또한, 주파수 상승 시간 및 주파수 하강 시간을 임계값에 반영시키는 것은, 클럭 제어부(202)가 지시를 받고 나서, 클럭 주파수의 변경을 달성할 때까지 시간이 필요한 경우가 있는 것을 고려한 것이다. 위에 서술한 도 13의 순서는, 전압을 변경하는 데 소요되는 시간 혹은 클럭 주파수를 변경하는 데 소요되는 시간에서는, 프로그램의 실행은 정지하고 있는 것을 전제로 하고 있다. 도 14에 있어서 클럭 주파수를 낮게 하였을 때의 예측 실행 시간은, 클럭 주파수가 낮은 값(512)으로 일정하게 되어 있는 기간, 즉 시간(513)∼시간(514)의 기간에 상당한다.
도 13을 이용하여, 배타적으로 처리를 행하는 구간이 종료되었을 때에, 다음에 배타적인 처리 구간이 개시되기까지의 처리의 흐름을 나타내었지만, 전압과 그에 따른 클럭 주파수의 조합을 복수 취득하는 경우, S453과 S454의 순서로 배타적인 처리의 종료로부터 다음 개시까지의 구간을 최장으로 하는 것과 같은 전압과 클럭 주파수를 선택할 수 있다.
S453과 S454에 있어서 최적의 전압과 클럭 주파수를 선택하는 방법을 서술한다. 우선, 도 8에 나타내는 (252)의 수준으로부터 (251)의 수준으로 전압이 하강하여 안정하기까지의 시간은, 현재의 전압 수준과 변경 후의 전압 수준의 2값, 및 전압의 하강 속도, 즉 전압 쌍 시간의 곡선 경사에 의해서 정해진다. 또한, 배타적인 처리의 종료로부터 다음 개시까지의 구간의 예측 실행 시간은, 소정의 클럭 주파수에 근거한 예측 실행 시간과 변경 후의 클럭 주파수의 2값에 의해서 정해진다. 변경 후의 클럭 주파수는, 변경 후의 전압 수준에 따른 최대의 클럭 주파수이기 때문에, 변경 후의 전압 수준에 의해서 정해진다. 따라서 결과적으로, 전압의 하강 시간보다도 배타적인 처리의 종료로부터 다음 개시까지의 구간의 예측 실행 시간이 길다고 하는 조건 하에서, 예측 실행 시간을 최장으로 하는 것과 같은 전압의 수준을 선택하면 좋다. 그 전압의 수준에 따른 최대의 클럭 주파수가 최적의 클럭 주파수이다.
보다 상세하게 설명하면, 상기 처리 순서는, 전압의 상승 중 및 하강 중에는 프로그램을 실행할 수 없는 것을 전제로 하고 있다. 즉, 상기 처리 순서는, 도 14에 있어서 전압이 평탄한 기간에 한하여 프로그램이 실행되는 것을 전제로 하고 있다. 상기 처리 순서는, 이 전제의 위에서, 전압과 클럭 주파수를 단순히, 「고속 처리 모드」와 「저 전력 소비 모드」에 대응한 2개의 값 사이에서 변경하는 것은 아니고, 전압의 하강 속도 및 상승 속도, 환언하면 전압의 하강 시간 및 상승 시간과, 하강시킨 클럭 주파수로 배타적이지 않은 처리 구간의 처리를 행하는 데 소요되는 시간과의 관계를 고려하여, 최적의 전압과 대응하는 클럭 주파수로 하강시키는 것이다.
이하에 구체 예를 든다. 연산 처리부(203)가 60MHz의 속도로 실행하고 있던 「고속 처리 모드」가 종료하였을 때에, 다음 배타적인 처리 구간의 개시까지의 처리 시간, 즉 비배타적인 처리 구간의 처리 시간이 10초라고 예측된 것으로 한다. 이 경우에, 클럭 주파수를 20MHz로 하강시키면, 단순한 계산에 의하면, 비배타적인 처리 구간의 처리 시간은 30초로 된다고 예측된다. 그러나, 클럭 주파수를 10MHz 분 하강시키기 위해서, 전압을 하강시키는 시간으로서 5초가 필요하면 가정하면, 클럭 주파수를 60MHz로부터 20MHz까지 하강시키고, 또한 그 후 상승시키는 데 합계 40초의 시간을 필요로 한다. 즉, 주파수를 낮게 하여 비배타적인 처리 구간의 처리를 행하였을 때의 처리 시간인 30초는, 클럭 주파수의 하강 및 상승에 소요되는 시간인 40초에 비해 짧다. 이 경우에는, 클럭 주파수를 낮추는 것에 의한 소비 전력의 절감 효과는 희박하며, 클럭 주파수를 낮추지 않으면 좋다.
이에 대해, 클럭 주파수를 20MHz가 아니라, 40MHz에까지 하강시키는 경우에는, 60MHz로부터 50MHz까지 하강시키고, 또한 그 후 상승시키는 데에는, 합계 10초의 시간으로 충분하다. 클럭 주파수가 50MHz이면, 비배타적인 처리 구간의 처리 시간은 12초로 된다. 즉, 주파수를 50MHz까지 낮게 하여 비배타적인 처리 구간의 처리를 행하였을 때의 처리 시간인 12초는, 클럭 주파수의 하강 및 상승에 소요되는 시간인 10초에 비해 짧다. 이 경우에는, 클럭 주파수를 낮추는 것에 의한 소비 전력의 절감 효과는 높다고 할 수 있어, 클럭 주파수를, 예컨대, 50MHz까지 낮추면좋다.
이와 같이, 미리 정해진 범위에서, 하강시켜야 할 최적의 클럭 주파수를 선택할 수 있다. 즉, 전압이 본래의 높은 값으로 되돌아가기까지의 시간, 혹은 이것에 있는 마진을 부가한 시간보다도, 클럭 주파수를 낮게 하여 비배타적인 처리 구간의 처리를 행한 경우에 예측되는 시간이 길게 되는 클럭 주파수인 유효 주파수가, 미리 정해진 범위에 있으면, 클럭 주파수를 유효 주파수까지 낮추고, 유효 주파수가 미리 정해진 범위에 없으면 클럭 주파수를 하강시키지 않으면 좋다. 미리 정해진 범위는, 클럭 주파수의 범위를 단계적으로 정하는 것이라도 좋고, 연속한 범위이더라도 좋다. 하나의 클럭 주파수에 대해, 비배타적인 처리 구간의 처리 시간에 대한 예측값이 얻어진면, 다른 임의의 클럭 주파수에 대해, 비배타적인 처리 구간의 처리 시간, 및 전압의 상승 및 하강에 소요되는 시간은, 단순한 계산으로 얻을 수 있다.
이와 같이, 배타적인 처리의 종료로부터 다음 개시까지의 구간을 최장으로 하는 것과 같은 전압과 클럭 주파수를 선택한 경우, S457과 S458의 순서 중에서, 선택한 클럭 주파수에 따라 계측한 실행 시간을 보정할 필요가 있다. S459에서 보존되는 시간 정보는, 소정의 특정한 클럭 주파수에 근거하여 계측된 시간 정보이다. 예컨대, 배타적인 처리의 종료로부터 다음 개시까지의 실행 시간을, 정보 처리 장치가 허용하는 최소의 클럭 주파수에 근거하여 계측되어 있는 경우, 실제로 실행하였을 때의 클럭 주파수와의 비를 취하여 보정을 행한다. 기준으로 되는 최소의 클럭 주파수가 4MHz이며, 배타적인 처리 구간에서 선택한 클럭 주파수가 고정으로 20MHz 혹은 평균적으로 20MHz이면, 계측한 실행 시간을 20/4=5배로 보정하여, S459에서 시간 정보로서 보존한다. 즉, 20MHz의 클럭 주파수 하에서 실행 시간이 10초였으면, 5배로 보정한 50초가 시간 정보로서 보존된다. 또, 배타적인 처리 구간의 실행 시간을 기록하기 위한 기준으로 되는 클럭 주파수는, 임의의 값으로 정할 수 있다.
(그 밖의 실시예)
이상의 실시예에서는, 배타적인 처리 구간과 그 이외의 처리 구간 사이에서 클럭 주파수를 변경하는 예를 나타내었다. 그러나, 배타적인 처리 구간에 한하지 않고, 일반적으로 특정한 처리 구간에 대해, 상기 배타적인 처리 구간과 마찬가지의 처리를 행하도록 정보 처리 장치를 구성하더라도 좋다. 작성하는 프로그램 혹은 이미 작성된 프로그램 중에, 배타적인 처리 구간과 마찬가지로 어떠한 특정한 처리를 행하는 구간을 특정하여, 식별명을 통지하는 코드를 매립하는 것은 가능하다. 그에 의해, 배타적 처리 구간 검출부(110 또는 213)와 마찬가지의 동작을 행하는 특정 처리 구간 검출부에 의해서, 프로그램의 실행 중에 특정한 처리 구간의 개시 및 종료를 검출할 수 있다.
또한, 배타적 처리 구간 검출부(110 또는 213)가, 프로그램 중의 다수가 배타적인 처리 구간 중, 미리 정해진 특정한 배타적인 처리 구간만을 검출하도록 정보 처리 장치를 구성하더라도 좋다. 예컨대, 프리엠프트 금지 구간이 실행되어 있더라도, 그 구간을 포함하는 처리 조건의 여하에 따라서는, 통상에 있어서 다른 프로세스가 존재하지 않는 경우가 있고, 프리엠프트 금지의 필요가 없는 경우가 있기 때문이다. 작성하는 프로그램 혹은 이미 작성된 프로그램 중에, 여러 가지 배타적인 처리 구간 중의 단수 또는 복수의 특정한 구간만을 특정하여, 식별명을 통지하는 코드를 매립하는 것은 가능하다. 그에 의해, 배타적 처리 구간 검출부(110 또는 213)는, 프로그램의 실행 중에, 배타적인 처리 구간중의 특정한 것에 대해서만, 개시 및 종료를 검출하는 것이 가능해진다. 또한, 하드웨어의 상태에 근거하는 방법에 있어서도, 예컨대, 스택의 트레이스에 근거하여 함수의 호출 관계가 특정한 것을 등록(또는 제외)하거나, 소정의 레지스터가 특정 상태이면 그 때의 처리를 등록(또는 제외)하거나 하는 것이 가능하다.
(산업상의 이용 가능성)
본 발명의 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어 방법, 클럭 제어 프로그램 및 그 프로그램 제품은, 처리의 실시간성과 소비 전력의 절감을 양립적으로 실현하기 때문에, 산업상 유용하다.
이상과 같이 본 발명의 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어 방법, 클럭 제어 프로그램 및 그 프로그램 제품에 의하면, 처리의 실시간성과 소비 전력의 절감이 양립적으로 실현된다.

Claims (28)

  1. 클럭을 생성하는 클럭 생성부와,
    상기 클럭 생성부가 생성하는 클럭을 제어하여 클럭 주파수를 결정하는 클럭 제어부와,
    소프트웨어를 기억하는 기억부와,
    상기 클럭 제어부를 통해 공급되는 클럭에 따라서, 상기 기억부로부터 취득한 상기 소프트웨어를 실행하는 연산 처리부와,
    상기 연산 처리부가 미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출부와,
    상기 특정 처리 구간 검출부가 취득한 결과에 근거하여, 클럭 주파수를 제어하는 명령을 상기 클럭 제어부에 전하는 클럭 제어 판정부를 구비하며,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에는 클럭 주파수를 높이도록 상기 클럭 제어부에 명령하고, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에는 클럭 주파수를 낮추도록 상기 클럭 제어부에 명령하는 정보 처리 장치.
  2. 제 1 항에 있어서,
    상기 특정 처리 구간이, 배타적으로 처리를 행하는 구간인 정보 처리 장치.
  3. 제 1 항에 있어서,
    상기 특정 처리 구간이, 배타적으로 처리를 행하는 복수의 구간 중의 미리 정해진 특정한 구간인 정보 처리 장치.
  4. 제 1 항에 있어서,
    상기 클럭 제어부로부터 클럭 주파수의 정보를 얻어, 상기 연산 처리부와 상기 기억부에 공급하는 전압을 제어하는 전원 제어부를 더 구비하며,
    상기 전원 제어부는, 상기 클럭 주파수를 높이는 것에 대응하여 전압을 상승시키고, 상기 클럭 주파수를 낮추는 것에 대응하여 전압을 저하시키는 정보 처리 장치.
  5. 제 4 항에 있어서,
    상기 클럭 제어부는, 상기 전원 제어부가 전압을 상승시키고 있는 동안에, 전압의 상승에 따라, 상기 연산 처리부가 동작 가능한 범위에서 클럭 주파수를 단계적으로 높여 가는 정보 처리 장치.
  6. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 특정 처리 구간이 종료하기까지의 시간인 특정 처리 기간을 이전의 상기 특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 특정 처리 기간이 임계값을 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 정보 처리 장치.
  7. 제 6 항에 있어서,
    상기 클럭 제어 판정부는, 상기 전원 제어부가 전압을 상승시키는데 소요되는 시간인 전압 상승 시간에 의존하고 또한 상기 전압 상승 시간 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  8. 제 7 항에 있어서,
    상기 클럭 제어 판정부는, 상기 전압 상승 시간과 상기 전원 제어부가 전압을 하강시키는데 소요되는 시간인 전압 하강 시간과의 합에 의존하고 또한 상기 합이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  9. 제 6 항에 있어서,
    상기 클럭 제어 판정부는, 상기 클럭 제어부가 클럭 주파수를 상승시키는데 소요되는 시간인 주파수 상승 시간에 의존하고 또한 상기 주파수 상승 시간 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  10. 제 9 항에 있어서,
    상기 클럭 제어 판정부는, 상기 주파수 상승 시간과 상기 클럭 제어부가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  11. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간과 상기 클럭 주파수를 높게 하였을 때에 상기 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간을이전의 상기 특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 전압 제어부가 전압을 상승 및 하강시키는 데 소요되는 기간인 전압 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값을, 예측된 상기 저속 특정 처리 기간이 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 저속 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 정보 처리 장치.
  12. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간과 상기 클럭 주파수를 높게 하였을 때에 상기 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간을 이전의 상기 특정한 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 클럭 제어부가 클럭 주파수를 상승 및 하강시키는 데 소요되는 기간인 주파수 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값을, 예측된 상기 저속 특정 처리 기간이 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하고, 예측된 상기 저속 특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 정보처리 장치.
  13. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 높게 하였을 때에 당해 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간과, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간을, 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 전압 제어부가 전압을 상승 및 하강시키는 데 소요되는 기간인 전압 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값에 비해서, 예측된 상기 저속 특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 높이는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 정보 처리 장치.
  14. 제 13 항에 있어서,
    상기 클럭 제어 판정부는, 상기 유효 주파수로서 복수의 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 복수의 주파수중의 가장 높은 주파수까지 상기 클럭 주파수를 높이는 명령을 상기 클럭 제어부에 통지하는 정보 처리 장치.
  15. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 개시를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 높게 하였을 때에 당해 특정 처리 구간이 종료하기까지의 시간인 고속 특정 처리 기간과, 상기 클럭 주파수를 낮게 유지한 채로 상기 특정 처리 구간이 종료하기까지의 시간인 저속 특정 처리 기간을, 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 고속 특정 처리 기간과 상기 클럭 제어부가 클럭 주파수를 상승 및 하강시키는 데 소요되는 기간인 주파수 변경 기간과의 합에 의존하여 상기 합 이상의 값인 임계값에 비해, 예측된 상기 저속 특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 높이는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 높이는 명령을 통지하지 않는 정보 처리 장치.
  16. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 상기 클럭 주파수를 낮게 하였을 때에 다음으로 당해 특정 처리 구간의 개시를 검출하기까지의 시간인 저속 비특정 처리 기간을 이전의 처리에 소요된 시간에 근거하여 예측하고, 예측된 상기 저속 비특정 처리 기간이 임계값을 초과하는 때에, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하고, 예측된 상기 저속 비특정 처리 기간이 상기 임계값 미만인 때에, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 정보 처리 장치.
  17. 제 16 항에 있어서,
    상기 클럭 제어 판정부는, 상기 전원 제어부가 전압을 하강시키는 데 소요되는 시간인 전압 하강 시간에 의존하고 또한 상기 전압 하강 시간 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  18. 제 17 항에 있어서,
    상기 클럭 제어 판정부는, 상기 전압 하강 시간과 상기 전원 제어부가 전압을 상승시키는 데 소요되는 시간인 전압 상승 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  19. 제 16 항에 있어서,
    상기 클럭 제어 판정부는, 상기 클럭 제어부가 클럭 주파수를 하강시키는 데 소요되는 시간인 주파수 하강 시간에 의존하고 또한 상기 주파수 하강 시간 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  20. 제 19 항에 있어서,
    상기 클럭 제어 판정부는, 상기 주파수 하강 시간과 상기 클럭 제어부가 클럭 주파수를 상승시키는 데 소요되는 시간인 주파수 상승 시간과의 합에 의존하고 또한 상기 합 이상인 시간을 상기 임계값으로 하는 정보 처리 장치.
  21. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 낮게 하였을 때에 다음의 상기 특정 처리 구간이 개시하기까지의 시간인 저속 비특정 처리 기간을 이전의 상기 특정한 처리 이외의 처리에 소요된 시간에 근거하여 예측하고, 상기 전압 제어부가 전압을 하강 및 상승시키는 데 소요되는 기간인 전압 변경 기간에 의존하여 상기 전압 변경 기간 이상의 값인 임계값에 비해, 예측된 상기 저속비특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 낮추는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 정보 처리 장치.
  22. 제 21 항에 있어서,
    상기 클럭 제어 판정부는, 상기 유효 주파수로서 복수의 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 복수의 주파수중의 가장 낮은 주파수까지 상기 클럭 주파수를 낮추는 명령을 상기 클럭 제어부에 통지하는 정보 처리 장치.
  23. 제 4 항에 있어서,
    상기 클럭 제어 판정부는, 상기 특정 처리 구간 검출부가 상기 특정 처리 구간의 종료를 검출한 경우에, 정해진 범위 내에서 상기 클럭 주파수를 낮게 하였을 때에 다음의 상기 특정 처리 구간이 개시하기까지의 시간인 저속 비특정 처리 기간을 이전의 상기 특정한 처리 이외의 처리에 소요된 시간에 근거하여 예측하고, 상기 클럭 제어부가 클럭 주파수를 하강 및 상승시키는 데 소요되는 기간인 주파수 변경 기간에 의존하여 상기 주파수 변경 기간 이상의 값인 임계값에 비해, 예측된 상기 저속 비특정 처리 기간이 크게 되는 주파수인 유효 주파수가 상기 정해진 범위 내에 있을 때에는, 상기 클럭 제어부에 클럭 주파수를 상기 유효 주파수까지 낮추는 명령을 통지하고, 상기 유효 주파수가 상기 정해진 범위 내에 없을 때에는, 상기 클럭 제어부에 클럭 주파수를 낮추는 명령을 통지하지 않는 정보 처리 장치.
  24. 청구항 1 내지 청구항 23 중 어느 한 항에 기재된 정보 처리 장치를 구비하는 전기 기기.
  25. 정보 처리 장치의 클럭 제어 방법으로서,
    미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출 공정과,
    상기 특정 처리 구간 검출 공정이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 공정이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 공정을 구비하는 것을 특징으로 하는 정보 처리 장치의 클럭 제어 방법.
  26. 정보 처리 장치에,
    미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를검출하는 특정 처리 구간 검출 기능과,
    상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 기능을 실현시키기 위한 클럭 제어 프로그램.
  27. 정보 처리 장치에,
    미리 정해진 특정한 처리를 행하는 구간인 특정 처리 구간의 개시와 종료를 검출하는 특정 처리 구간 검출 기능과, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 개시를 검출한 경우에는 상기 정보 처리 장치의 클럭 주파수를 높이고, 상기 특정 처리 구간 검출 기능이 상기 특정 처리 구간의 종료를 검출한 경우에는 상기 클럭 주파수를 낮추는 클럭 제어 기능을 실현시키기 위한 클럭 제어 프로그램과,
    상기 클럭 제어 프로그램을 유지하는 신호 유지 매체
    를 구비하는 프로그램 제품.
  28. 제 27 항에 있어서,
    상기 신호 유지 매체가, 기록 매체와 전송 매체 중의 적어도 하나인 프로그램 제품.
KR1020040020367A 2003-03-26 2004-03-25 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어방법, 클럭 제어 프로그램 및 그 프로그램 제품 KR20040084832A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003085042 2003-03-26
JPJP-P-2003-00085042 2003-03-26

Publications (1)

Publication Number Publication Date
KR20040084832A true KR20040084832A (ko) 2004-10-06

Family

ID=32821489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040020367A KR20040084832A (ko) 2003-03-26 2004-03-25 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어방법, 클럭 제어 프로그램 및 그 프로그램 제품

Country Status (4)

Country Link
US (1) US7346791B2 (ko)
EP (1) EP1462915A3 (ko)
KR (1) KR20040084832A (ko)
CN (1) CN1328639C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231558B1 (ko) * 2009-10-05 2013-02-07 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서에서의 전압 및 주파수의 신뢰성있는 설정

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI351818B (en) * 2005-01-11 2011-11-01 Altera Corp Power management of components having clock proces
JP2007034839A (ja) * 2005-07-28 2007-02-08 Matsushita Electric Ind Co Ltd 集積回路の動作周波数制御方法
JP4817760B2 (ja) * 2005-08-26 2011-11-16 キヤノン株式会社 情報処理装置及びそのシステムクロック周波数の設定方法
JP2007233718A (ja) * 2006-03-01 2007-09-13 Canon Inc 制御装置及び半導体集積回路
TWI313806B (en) * 2006-05-12 2009-08-21 Asustek Comp Inc Virtual sleep method
US8316158B1 (en) 2007-03-12 2012-11-20 Cypress Semiconductor Corporation Configuration of programmable device using a DMA controller
US8108708B2 (en) * 2007-05-03 2012-01-31 Microchip Technology Incorporated Power optimization when using external clock sources
US7992015B2 (en) * 2008-02-05 2011-08-02 Dell Products L.P. Processor performance state optimization
FR2928496B1 (fr) * 2008-03-06 2015-09-25 Commissariat Energie Atomique Dispositif d'alimentation d'un circuit electrique, en particulier d'un circuit numerique
US8756446B2 (en) * 2008-04-11 2014-06-17 Freescale Semiconductor, Inc. Microprocessor having a low-power mode and a non-low power mode, data processing system and computer program product
JP5328445B2 (ja) * 2008-05-02 2013-10-30 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
TWI369604B (en) 2008-09-24 2012-08-01 Asmedia Technology Inc Clock generating device and method thereof and computer system using the same
GB0821459D0 (en) * 2008-11-24 2008-12-31 Icera Inc Active power management
TWI425366B (zh) * 2009-03-30 2014-02-01 Mstar Semiconductor Inc 根據通訊協定處理來執行資料存取的方法與裝置
US8407492B2 (en) * 2010-01-14 2013-03-26 The Boeing Company System and method of asynchronous logic power management
JP5545376B2 (ja) 2010-12-22 2014-07-09 富士通株式会社 マルチコアプロセッサシステム、および電力制御方法
JP5696603B2 (ja) * 2011-06-29 2015-04-08 富士通株式会社 計算機システム、計算機システムの電力制御方法およびプログラム
JP5917132B2 (ja) * 2011-12-22 2016-05-11 株式会社東芝 電気機器の運転制御システム及び方法
JP5787096B2 (ja) * 2012-06-20 2015-09-30 横河電機株式会社 物理量測定装置、物理量測定方法
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US20180025094A1 (en) * 2016-07-19 2018-01-25 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US20190101969A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Control Blocks for Processor Power Management

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142684A (en) * 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
US5222239A (en) * 1989-07-28 1993-06-22 Prof. Michael H. Davis Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources
JPH0776894B2 (ja) 1991-02-25 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセッサ用クロック信号の制御方法及び情報処理システム
US5237694A (en) * 1991-05-30 1993-08-17 Advanced Micro Devices, Inc. Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor
JPH05108191A (ja) 1991-10-11 1993-04-30 Toshiba Corp ポータブルコンピユータ
US5546568A (en) * 1993-12-29 1996-08-13 Intel Corporation CPU clock control unit
JPH0876874A (ja) 1994-09-06 1996-03-22 Hitachi Ltd 中央処理装置のクロック制御装置およびクロック制御方法
US5745375A (en) * 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
JPH10301661A (ja) * 1997-04-23 1998-11-13 Matsushita Electric Ind Co Ltd クロック供給装置
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor
US6501999B1 (en) * 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
KR100487543B1 (ko) * 2000-09-01 2005-05-03 엘지전자 주식회사 시피유 스케쥴링 방법
JP3877518B2 (ja) * 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
JP4139579B2 (ja) * 2001-06-19 2008-08-27 株式会社ルネサステクノロジ 半導体装置および半導体装置の動作モード制御方法
US6622253B2 (en) * 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231558B1 (ko) * 2009-10-05 2013-02-07 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서에서의 전압 및 주파수의 신뢰성있는 설정

Also Published As

Publication number Publication date
EP1462915A3 (en) 2009-01-21
CN1328639C (zh) 2007-07-25
US7346791B2 (en) 2008-03-18
US20040193935A1 (en) 2004-09-30
EP1462915A2 (en) 2004-09-29
CN1532666A (zh) 2004-09-29

Similar Documents

Publication Publication Date Title
KR20040084832A (ko) 정보 처리 장치, 전기 기기, 정보 처리 장치의 클럭 제어방법, 클럭 제어 프로그램 및 그 프로그램 제품
KR100707530B1 (ko) 자동 cpu 속도 제어를 위한 장치 및 방법
US9081558B2 (en) System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature
JPH10268963A (ja) 情報処理装置
EP1620783B1 (en) Method and apparatus for dynamic power management in a processor system
US8996595B2 (en) User activity response dynamic frequency scaling processor power management system and method
KR101562448B1 (ko) 휴대용 컴퓨팅 디바이스의 멀티코어 프로세서에서 다수의 코어들로의 전력을 동적으로 제어하는 방법 및 시스템
US6289399B1 (en) Computer and parameter setting method
KR950033774A (ko) 정보 처리 장치, 그 처리 방법 및 전원 제어 방법
KR101516859B1 (ko) 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법
US20140115363A1 (en) Modal workload scheduling in a heterogeneous multi-processor system on a chip
JP2016538637A (ja) システムオンチップにおける動的dcvs調整および作業負荷スケジューリングのためのシステムおよび方法
EP2513745A1 (en) System and method for controlling central processing unit power based on inferred workload parallelism
JP2006185407A (ja) ピーク電力制御方法および装置
JP2005285093A (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
JP4422523B2 (ja) 情報処理装置、電気機器、情報処理装置のクロック制御方法、クロック制御プログラム及びその記録媒体
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
JP2003202935A (ja) 電力管理方式及び電力管理方法
CN110795383A (zh) SoC频率控制方法、装置、终端及存储介质
JP2004295450A (ja) プロセッサ、このプロセッサのクロック周波数決定方法及び電源電圧決定方法
CN115712337A (zh) 处理器的调度方法、装置、电子设备及存储介质
CN114546098A (zh) 调节处理器频率的方法、装置、存储介质及电子设备
CN118170460A (zh) 一种应用启动方法及电子设备、存储介质
AU2008200446B2 (en) Method and apparatus for dynamic power management in a processor system
JP2003167750A (ja) 管理装置及び管理方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid