JP5668505B2 - クロック周波数制御プログラム、クロック周波数制御装置 - Google Patents

クロック周波数制御プログラム、クロック周波数制御装置 Download PDF

Info

Publication number
JP5668505B2
JP5668505B2 JP2011021721A JP2011021721A JP5668505B2 JP 5668505 B2 JP5668505 B2 JP 5668505B2 JP 2011021721 A JP2011021721 A JP 2011021721A JP 2011021721 A JP2011021721 A JP 2011021721A JP 5668505 B2 JP5668505 B2 JP 5668505B2
Authority
JP
Japan
Prior art keywords
clock frequency
switching
processor
occurrences
frequency control
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2011021721A
Other languages
English (en)
Other versions
JP2012164006A (ja
Inventor
聡 平井
聡 平井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011021721A priority Critical patent/JP5668505B2/ja
Publication of JP2012164006A publication Critical patent/JP2012164006A/ja
Application granted granted Critical
Publication of JP5668505B2 publication Critical patent/JP5668505B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Description

本発明は、プロセッサにおけるクロック周波数を制御する技術に関する。
プロセッサの動作特性に応じてクロック周波数を変化させる技術がある。一例として、プロセッサにおいて発生する種々のイベントの発生回数を所定時間間隔でカウントすることによって動作特性を特定し、その動作特性に応じてクロック周波数を変更する技術が提案されている。この技術では、非効率的な動作(例えば、外部装置からの応答を待つイベント等)が多く発生しているときに、クロック周波数を低下させて消費電力を抑制する一方、非効率的な動作の発生が減少すると、クロック周波数を増加させて処理性能を向上させている。
なお、プロセッサにおいて発生するイベントの発生回数のカウントに関連する先行技術としては、例えば、イベントの発生回数のカウント値をプロセスごとに採取する方法がある。
特開2009−277228号公報 特開2009−223451号公報
ここで、プロセッサで実行されるプロセスによって、プロセス処理におけるプロセッサの動作特性はそれぞれ異なる。そして、プロセスによっては、クロック周波数を増加させてもプロセッサの処理が効果的に高速化しない場合がある。この場合、クロック周波数増加に伴って増加する消費電力に相応するだけの処理効率の向上が図れない。しかし、上述のような従来技術では、プロセスごとにクロック周波数を変更することが難しかった。
以上のような問題点に鑑み、本技術は、プロセッサの消費電力を抑制させることを目的とする。
本技術は、1つの側面において、プロセッサによる制御を割当てるプロセスの切り替えが検出されたときに、切り替え後にプロセッサによる制御が割当てられる切り替え後プロセスを特定する。さらに、プロセスごとに対応付けて記憶手段に記憶された、プロセス処理におけるプロセッサの動作特性を示す特性値のうち、切り替え後プロセスに対応する特性値を記憶手段から取得する。そして、切り替え後プロセスに対応する特性値と所定閾値とを比較し、比較結果に応じて、プロセッサのクロック周波数の制御を行う。
本技術によれば、1つの側面において、プロセッサの消費電力を抑制することが可能となる。
クロック周波数制御技術の一実施形態が具現化された情報処理装置のハードウェア構成の一例の説明図である。 一実施形態に係るクロック周波数制御装置を含んだ情報処理装置の機能ブロック図の説明図である。 一実施形態に係る性能モニタリングカウンタの構造の説明図である。 一実施形態に係る閾値テーブルの構造の説明図である。 一実施形態に係る動作特性テーブルの構造の説明図である。 一実施形態に係るクロック周波数制御装置を含んだ情報処理装置の各構成要素の処理の説明図である。 一実施形態に係る割り込みハンドラの処理を示すフローチャートである。
本明細書では、マルチタスク処理を行うプロセッサによる制御を割当てるプロセスの切り替え時に、切り替え後のプロセス処理におけるプロセッサの動作特性が所定条件を満たすか否かに基づいて、クロック周波数の制御を行う技術について説明する。かかるクロック周波数制御技術によれば、プロセスごとの動作特性、すなわち、アプリケーションごとの特性に応じたクロック周波数の制御が可能となる。具体的には、例えば、クロック周波数を増加させることで処理速度が効果的に向上する特性を有するアプリケーションのプロセスを実行するときにのみクロック周波数を増加させて処理速度を向上させる。一方で、クロック周波数を増加させても処理速度が効果的に向上しない特性を有するアプリケーションのプロセスを実行するときには、クロック周波数を無駄に増加させることを防ぐ。このため、本明細書で説明するクロック周波数制御技術によれば、プロセスごとの動作特性に応じたクロック周波数の制御が実現されるため、消費電力を抑制しつつ、効果的にプロセッサにおける処理効率を向上させることができる。
図1は、上述したクロック周波数制御技術の一実施形態が具現化された情報処理装置のハードウェア構成の一例を示す。本情報処理装置は、プロセッサ1、メモリ2、ストレージ3、可搬記憶媒体駆動装置4、入出力装置5及び通信インタフェース6を備える。
プロセッサ1は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。かかるプロセッサ1は、制御に用いる各種情報が格納される制御レジスタ、既にアクセスしたメモリ2等の内容を一時的に格納可能なキャッシュ、及び、仮想記憶のページテーブルのキャッシュとしての機能を果たすTLBを備える。なお、プロセッサ1は、CPU(Central Processing
Unit)コアが複数設けられている構成でもよい。
メモリ2は、例えばRAM(Random Access Memory)等の記憶手段であり、プロセッサ1で実行されるプログラムがロードされるとともに、プロセッサ1の処理に用いるデータが格納されるメインメモリである。また、ストレージ3は、例えばHDD(Hard Disk Drive)やフラッシュメモリ等の記憶手段であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置4は、可搬記憶媒体7に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体7は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。なお、プロセッサ1は、メモリ2やストレージ3と協働しつつ、ストレージ3や可搬記憶媒体7に格納されたプログラムを実行する。なお、プロセッサ1が実行するプログラムや、アクセス対象となるデータは、当該情報処理装置と通信可能な他の装置に格納されていてもよい。
入出力装置5は例えばキーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、情報処理装置による処理結果を出力する。通信インタフェース6は例えばLAN(Local Area Network)カード等であり、外部とのデータ通信を可能にする。上述した情報処理装置の各構成要素は、バス8で接続されている。
図2は、本実施形態に係るクロック周波数制御装置を含んだ情報処理装置の機能ブロック図の一例である。本情報処理装置は、プロセッサ10、メモリ20、オペレーティングシステム30、デバイスドライバ40及びアプリケーション処理部50を有する。プロセッサ10は、図1のプロセッサ1に対応し、メモリ20は、図1のメモリ2に対応する。
プロセッサ10は、性能モニタリングカウンタ11及びオーバークロック機能設定レジスタ12を備えている。
性能モニタリングカウンタ11は、プロセッサ10において発生するイベント等の発生回数をカウントするカウンタである。性能モニタリングカウンタ11でカウントするイベントには、プロセッサ内部で発生するイベント及びプロセッサ外部とのやり取りで発生するイベントの両方が含まれる。この性能モニタリングカウンタ11のカウント値は、換言すれば、プロセス処理におけるプロセッサの動作特性を示す特性値である。本実施形態では、性能モニタリングカウンタ11は、クロック周波数の制御をするための判断基準となるプロセッサの動作特性を特定可能なイベントの一例として、実行命令数、メモリアクセス数及びI/Oアクセス数のカウントを行う。また、性能モニタリングカウンタ11には、所定のイベントが発生したときに所定のベクタに割り込み処理を発生させるように設定をすることが可能である。本実施形態では、性能モニタリングカウンタ11が、TLBのエントリの無効化(TLBフラッシュ)を検出したときに、後述する割り込みハンドラ42を呼び出すように設定をする。なお、TLBフラッシュを検出することによりプロセスの切り替えを検出する技術については、特開2009−223451号公報に記載の技術を用いることができる。かかる技術を用いることにより、オペレーティングシステム30を改変することなくプロセスの切り替えを検出でき、オーバーヘッドも少なく抑えることができる。
オーバークロック機能設定レジスタ12は、プロセッサ10におけるオーバークロック機能(即ち、プロセッサを通常のクロック周波数を上回るクロック周波数で動作させる機能)を有効にするか又は無効にするかの制御を行うレジスタである。
メモリ20には、閾値テーブル21と、動作特性テーブル22が格納される。
閾値テーブル21は、プロセス処理におけるプロセッサの動作特性を示す性能モニタリングカウンタ11のカウント値との比較において、クロック周波数を増加させるか否かを判定するための閾値等が格納されるテーブルである。
動作特性テーブル22は、性能モニタリングカウンタ11のカウント値が、プロセスごとに設定されるテーブルである。
なお、閾値テーブル21及び動作特性テーブル22に格納されている情報は、テーブル形式に限らず、いかなる形式でメモリ20に記憶されていてもよい。特に、閾値については、少なくともクロック周波数を増加させるか否かの判定処理において使用可能なパラメータであればよい。
デバイスドライバ40は、オペレーティングシステム30と連携して動作し、カウンタ設定部41と、割り込みハンドラ42と、を有する。
カウンタ設定部41は、後述するアプリケーション処理部50から、性能モニタリングカウンタ11によるイベント発生回数の計測の開始又は終了指示を受信したときに、性能モニタリングカウンタ11のイベント設定を行う。性能モニタリングカウンタ11のイベ
ント設定とは、具体的には、性能モニタリングカウンタ11がカウントを行うイベントや、イベントが発生したときのアクション等の設定である。
割り込みハンドラ42は、プロセッサ10による制御の割り当て対象のプロセス、すなわちプロセッサ10により制御されるプロセスが切り替わってTLBフラッシュが発生したときに、割り込み処理を行う。割り込みハンドラ42は、プロセス特定部43、記憶部44及びクロック周波数制御部45を有する。
プロセス特定部43は、プロセッサ10による制御の割り当て対象の切り替え前後のプロセスを識別するための情報をオペレーティングシステム30から取得し、切り替え前後のプロセスを特定する。なお、以下、プロセッサ10による制御の割り当て対象の切り替え前のプロセスを「切り替え前プロセス」、切り替え後のプロセスを「切り替え後プロセス」という。
記憶部44は、プロセス特定部43が特定した切り替え前プロセスにつき、性能モニタリングカウンタ11のカウント値をメモリ20の動作特性テーブル22に格納する(すなわち、記憶手段に記憶させる)。
クロック周波数制御部45は、動作特性テーブル22に格納された性能モニタリングカウンタ11のカウント値のうち、プロセス特定部43が特定した切り替え後プロセスに対応するカウント値を取得する。一方で、クロック周波数制御部45は、閾値テーブル21に格納された閾値を取得する。そして、クロック周波数制御部45は、計測対象となるイベントごとに、動作特性テーブル22から取得した切り替え後プロセスのカウント値と閾値とを比較する。さらに、クロック周波数制御部45は、その比較結果に応じて、オーバークロック機能設定レジスタ12の値を、オーバークロック機能を有効にする値又はオーバークロック機能を無効にする値のいずれかに設定する。これにより、オーバークロック機能が有効又は無効のいずれかに制御される。換言すれば、クロック周波数制御部45は、切り替え後プロセスのプロセス処理におけるプロセッサの動作特性に応じて、オーバークロック機能を有効にするか無効にするかの制御を行う。
アプリケーション処理部50は、オペレーティングシステム30上において各種アプリケーションの処理を行う。このアプリケーション処理部50は、アプリケーションの1つとして管理プログラムの処理を行う。管理プログラムは、性能モニタリングカウンタ11によるイベント発生回数の計測の開始又は終了指示、クロック周波数制御の開始指示又は終了指示を行う。さらに、管理プログラムは、閾値テーブル21への閾値の設定等を行う。アプリケーション処理部50は、これらの処理を、入出力装置5を介して受け付けたユーザからの入力に基づいて行ってもよいし、単に管理プログラムの実行が開始されたことを契機として行ってもよい。
図3は、本実施形態に係る性能モニタリングカウンタ11の構造を示す。性能モニタリングカウンタ11は、カウント値及びイベント設定の組み合わせで実装されている。イベント設定は、(A)発生回数をカウントする対象(計測対象)のイベント、(B)イベントが発生したときに割り込み処理を行うか否か、(C)割り込み処理を発生させる場合、イベントが何回発生するごとに割り込み処理を行うか、の設定を含む。例えば、図3に示す1つめの性能モニタリングカウンタ11のイベント設定には、「TLB Flash/割り込みON/1回毎」と設定されている。このイベント設定は、「(A)TLBフラッシュの発生回数をカウントする(B)TLBフラッシュが発生したときに割り込み処理を行う(C)割り込み処理を、TLBフラッシュが1回発生する毎に行う」ことを意味している。図3に示す他の性能モニタリングカウンタ11〜11も同様であり、2つめの性能モニタリングカウンタ11は、実行命令の発生回数をカウントする。また、3つめの性能
モニタリングカウンタ11は、メモリアクセス(L2キャッシュ又はL3キャッシュミス)の発生回数をカウントする。4つめの性能モニタリングカウンタ11は、I/Oアクセスの発生回数をカウントする。
図4は、本実施形態に係る閾値テーブル21の構造を示す。閾値テーブル21は、図4に示すように、性能モニタリングカウンタ11で発生回数をカウントする計測対象のイベントと、そのイベント内容に応じた閾値と、クロック周波数を増加させるか否かを、閾値との比較においてどのように判定するかを示す判定基準と、を含む。なお、この閾値は、イベントのクロック単位(すなわち、単位時間(1クロック)あたり)の発生回数と比較するための閾値である。判定基準には、具体的には「1」又は「2」のいずれかの値が格納される。判定基準が「1」の場合には、イベントのクロック単位の発生回数が閾値よりも大きいときに、クロック周波数を増加させる判定基準を満たすものとする。一方、判定基準が「2」の場合には、イベントのクロック単位の発生回数が閾値以下であるときに、クロック周波数を増加させる判定基準を満たすものとする。
図5は、本実施形態に係る動作特性テーブル22の構造を示す。動作特性テーブル22は、図5に示すように、プロセスを一意に特定する識別子(PID)と、性能モニタリングカウンタ11による計測期間におけるクロック発生数(積算値)と、性能モニタリングカウンタ11による計測対象のイベントである実行命令数、メモリアクセス数及びI/Oアクセスと、を含む。実行命令数、メモリアクセス数及びI/Oアクセスは、それぞれ、計測期間における積算値及びクロック単位のカウント値を含む。
次に、本実施形態に係るクロック周波数制御装置を含んだ情報処理装置における各構成要素の処理の一例につき、図6の(1)〜(7)を参照して説明する。
(1)アプリケーション処理部50は、管理プログラムを実行し、性能モニタリングカウンタ11における計測の開始指示及びクロック周波数制御の開始指示を、デバイスドライバ40のカウンタ設定部41に送信する。この送信処理は、上述したように、入出力装置5を介してユーザから指示が入力されたことを契機として行ってもよいし、単に管理プログラムの実行開始を契機として行ってもよい。
(2)また、アプリケーション処理部50は、メモリ20の閾値テーブル21に、計測対象の各イベントの閾値及び判定基準を設定する。ここで、アプリケーション処理部50は、入出力装置5を介してユーザから閾値及び判定基準が入力された場合には入力を受け付け、その入力された閾値及び判定基準を閾値テーブル21に設定してもよい。なお、上述したように、閾値及び判定基準は必ずしもテーブルの形式で保持されている必要はない。また、閾値及び判定基準は、この段階で必ずしもメモリ20に保持される必要があるものでもなく、後述する割り込みハンドラ42におけるカウント値と閾値との比較処理において使用可能であればよい。
(3)カウンタ設定部41は、アプリケーション処理部50から受信した指示に応じ、性能モニタリングカウンタ11の設定を行う。具体的には、性能モニタリングカウンタ11のイベント設定に、図3で示したような内容の設定を行う。さらに、カウンタ設定部41は、TLBフラッシュ発生時、すなわち、プロセス切り替え時に割り込みハンドラ42が呼び出されるように、割り込みハンドラ42のアドレスを割込みベクタ(図示略)に設定する。そして、デバイスドライバ40及びプロセッサ10は、プロセス処理におけるプロセッサの動作特性の計測及びクロック周波数制御を開始する。
(4)ここで、オペレーティングシステム30によりTLBフラッシュが行われたことを性能モニタリングカウンタ11が検出し、TLBフラッシュのカウント値が増加すると、性能モニタリングカウンタ11のイベント設定に基づき、割り込みハンドラ42の割り込み処理が開始する。換言すれば、プロセッサ10による制御の割り当て対象のプロセスの切り替えが発生したときに、割り込みハンドラ42の割り込み処理が発生する。
(5)割り込みハンドラ42は、切り替え前プロセス及び切り替え後プロセスを特定する
。そして、割り込みハンドラ42は、性能モニタリングカウンタ11の計測対象のイベントのカウント値を読み出し、読み出したカウント値を、切り替え前プロセスの動作特性を示すカウント値として動作特性テーブル22に格納する。
(6)一方、割り込みハンドラ42は、動作特性テーブル22を参照して、切り替え後プロセスの動作特性を示す計測対象のイベントのカウント値を取得する一方、閾値テーブル21を参照して、計測対象のイベントの判定基準及び閾値を取得する。そして、計測対象のイベントのそれぞれについて、取得した判定基準に基づき、カウント値と閾値とを比較する。
(7)さらに、割り込みハンドラ42は、(6)の比較の結果、計測対象のイベントのうちいずれかのカウント値が、クロック周波数を増加させる判定基準を満たす場合には、オーバークロック機能設定レジスタ12に、オーバークロック機能を有効にする値を設定する。一方、割り込みハンドラ42は、(6)の比較の結果、計測対象の全てのイベントのカウント値が、クロック周波数を増加させる判定基準を満たさない場合には、オーバークロック機能設定レジスタ12に、オーバークロック機能を無効にする値を設定する。換言すれば、割り込みハンドラ42は、切り替え後プロセスにおいて、オーバークロック状態にすることが処理速度の向上に有効である場合には、オーバークロック機能を有効にする一方、オーバークロック状態にすることが処理速度の向上にあまり有効でない場合には、オーバークロック機能を無効にする。
なお、図6には示していないが、アプリケーション処理部50は、性能モニタリングカウンタ11における計測の終了指示及びクロック周波数制御の終了指示を、デバイスドライバ40のカウンタ設定部41に送信する。この処理も、上述したように、入出力装置5を介してユーザから指示が入力されたことを契機として行ってもよい。そして、カウンタ設定部41及び割り込みハンドラ42を含むデバイスドライバ40並びに性能モニタリングカウンタ11を含むプロセッサ10は、プロセス処理におけるプロセッサの動作特性の計測及びクロック周波数制御を終了する。
次に、割り込みハンドラ42の処理を、図7のフローチャートを参照して詳述する。なお、この処理は、上述した図6の説明における(5)〜(7)に対応するものである。
ステップ1(図ではS1と略記する。以下同様)では、プロセス特定部43が、切り替え前プロセスのプロセス識別子及び切り替え後プロセスのプロセス識別子をオペレーティングシステム30から取得して、切り替え前プロセス及び切り替え後プロセスを特定する。
ステップ2では、記憶部44が、性能モニタリングカウンタ11の計測対象のイベントのカウント値を読み出す。この読み出した値は、切り替え前プロセスについて計測されたカウント値である。記憶部44は、動作特性テーブル22に格納されているカウント値のうち、プロセス特定部43が特定した切り替え前プロセスのプロセス識別子に対応するカウント値に、読み出したカウント値を反映させる。具体的には、記憶部44は、動作特性テーブル22に格納された、切り替え前プロセスのプロセス識別子に対応するクロック発生数の積算値に、前回のプロセス切り替えから今回のプロセス切り替えまでのクロック発生数を加算する。なお、前回のプロセス切り替えから今回のプロセス切り替えまでのクロック発生数は、プロセッサ10においてカウンタ等で保持しておけばよい。また、記憶部44は、動作特性テーブル22に格納されたカウント値のうち、切り替え前プロセスのプロセス識別子に対応する実行命令数の積算値に、性能モニタリングカウンタ11の実行命令数のカウント値を加算する。さらに、記憶部44は、実行命令数の積算値をクロック発生数の積算値で除算して、クロック単位、すなわち、単位時間あたりの実行命令数を算出する。なお、この単位時間あたりの実行命令数は、単位時間あたりの実行命令数の平均値となる。そして、記憶部44は、これらの算出した値で、性能モニタリングカウンタ11
のクロック単位の実行命令数を更新する。また、記憶部44は、メモリアクセス数及びI/Oアクセス数についても、実行命令数と同様に処理を行う。
なお、動作特性テーブル22に、切り替え前プロセスのプロセス識別子に対応するカウント値が登録されていない場合には、記憶部44は、次のように処理を行う。すなわち、記憶部44は、性能モニタリングカウンタ11から読み出したカウント値を積算値とするとともに、その積算値を、前回のプロセス切り替えから今回のプロセス切り替えまでのクロック発生数で除算してクロック単位のカウント値を算出する。そして、記憶部44は、前回のプロセス切り替えから今回のプロセス切り替えまでのクロック発生数並びにカウント値の積算値及びクロック単位のカウント値を、プロセス識別子に対応付けて動作特性テーブル22に新たに格納する。
また、各イベントのカウント値の積算値は、計測している期間全体の積算値に限定されるものではなく、例えば、所定期間分(所定数のクロック発生数分)のカウント値が積算されるごとに、積算値をリセットしてもよい。さらには、記憶部44は、切り替え前プロセスのプロセス識別子に対応するカウント値が動作特性テーブル22に既に登録されている場合にも、上記のような新たにカウント値を格納する場合における処理と同様に、直近の計測期間のみのカウント値で動作特性テーブル22を更新してもよい。
ステップ3では、クロック周波数制御部45が、動作特性テーブル22を参照し、プロセス特定部43により特定された切り替え後プロセスのプロセス識別子に対応するカウント値が動作特性テーブル22に格納されているか否かを判定する。クロック周波数制御部45は、切り替え後プロセスのプロセス識別子に対応するカウンタ値が動作特性テーブル22に登録されていればステップ4に進み(Yes)、登録されていなければステップ7に進む(No)。
ステップ4では、クロック周波数制御部45が、動作特性テーブル22に格納されているカウント値のうち、切り替え後プロセスのプロセス識別子に対応するカウント値を読み出す。
ステップ5では、クロック周波数制御部45が、計測対象のイベントのそれぞれにつき、動作特性テーブル22から読み出した、切り替え後プロセスのプロセス識別子に対応するカウント値と、閾値テーブル21の閾値と、を比較する。具体的には、クロック周波数制御部45は、計測対象のイベントである実行命令数、メモリアクセス数及びI/Oアクセス数のそれぞれにつき、閾値テーブル21に格納された判断基準に基づいて、切り替え後プロセスのクロック単位のカウント値と閾値との比較を行う。そして、クロック周波数制御部45は、計測対象のイベントの少なくともいずれか1つにおけるクロック単位のカウント値が、クロック周波数を増加させる判定基準を満たしているか否かを判定する。具体的には、閾値テーブル21に格納された判定基準が「1」である実行命令数については、クロック単位の発生回数が閾値よりも大きいか否かを判定する。一方、閾値テーブル21に格納された判定基準が「2」であるメモリアクセス数及びI/Oアクセス数については、クロック単位の発生回数が閾値以下であるか否かを判定する。そして、クロック周波数制御部45は、計測対象のイベントの少なくともいずれか1つにおけるクロック単位のカウント値が判定基準を満たしていれば、ステップ6に進み(Yes)、計測対象の全てのイベントのクロック単位のカウント値が判定基準を満たしていなければ、ステップ7に進む(No)。なお、クロック周波数制御部45は、上述のような判定方法に限らず、例えば、計測対象の全てのイベントにおけるクロック単位のカウント値がクロック周波数を増加させる判定基準を満たしているときにのみ、ステップ6に進むようにしてもよい。
ステップ6では、クロック周波数制御部45が、オーバークロック機能設定レジスタ1
2の値を、オーバークロック機能を有効にする値に設定する。換言すれば、クロック周波数制御部45は、クロック周波数が通常のクロック周波数を超えて増加し得るように制御を行う。
ステップ7では、クロック周波数制御部45が、オーバークロック機能設定レジスタ12の値を、オーバークロック機能を無効にする値に設定する。換言すれば、クロック周波数制御部45は、クロック周波数が通常のクロック周波数を超えないように制御を行う。
ステップ8では、クロック周波数制御部45が、性能モニタリングカウンタ11のカウント値を初期化する。このように、性能モニタリングカウンタ11のカウント値が、プロセスの切り替えごとに発生する割り込み処理において初期化されることにより、性能モニタリングカウンタ11は、プロセス毎のカウント値を保持できることとなる。
かかるクロック周波数制御技術によれば、プロセス毎(すなわち、アプリケーション毎)のイベントの発生回数が性能モニタリングカウンタ11で計測され、動作特性テーブル22に格納される。そして、プロセスの切り替えが発生したときに、切り替え後プロセスについて動作特性テーブル22に格納された性能モニタリングカウンタ11のカウント値と閾値との比較結果に基づいて、オーバークロック機能を有効にするか無効にするかが決定され、クロック周波数が制御される。このため、マルチタスク処理においてプロセスにプロセッサの制御が割り当てられるときに、そのプロセス処理におけるプロセッサの動作特性に応じて、オーバークロック機能のONとOFFが切り替えられることとなる。
具体的には、例えば、単位時間あたりの実行命令数が多くカウントされるプロセスは、クロック周波数を増加させると、効果的に処理速度が向上する傾向にある。逆に、単位時間あたりのメモリアクセス数やI/Oアクセス数が多くカウントされるプロセスは、クロック周波数を増加させても、処理速度が向上しない傾向にある。本実施形態に係るクロック周波数制御技術によれば、プロセスごとにこれらのイベントが発生する回数と閾値とが比較される。そして、イベントに応じた判定基準に基づいて、オーバークロック機能がON又はOFFのいずれかに制御され、クロック周波数が切り替えられる。このため、プロセスの動作特性に応じて、プロセッサにおける処理効率を効果的に向上させる一方で、無駄な消費電力を抑制することができる。
なお、上記実施形態では、クロック周波数の制御を、プロセッサに一般的に具備されているオーバークロック機能を有効にするか無効にするかを切り替えることで簡易に実現している。しかしながら、クロック周波数の制御方法はかかる方法に限定されるものではなく、いかなる方法を用いてもよい。
また、上記実施形態では、プロセスの切り替えを検出する毎に、切り替え前プロセスについての性能モニタリングカウンタ11のカウント値を動作特性テーブル22に格納している。これにより、直近のプロセッサにおける動作状態を動作特性テーブル22に反映させることができ、動作特性テーブル22の各プロセスのカウント値の精度が高くなる。しかしながら、動作特性テーブル22のカウント値の初期化はプロセスの切り替え毎に行う必要があるものの、動作特性テーブル22への格納については、必ずしもプロセスの切り替え時に行う必要があるものではない。例えば、処理のオーバーヘッドを低減させるべく、プロセスの切り替えが複数回行われる毎に、動作テーブル22へのカウント値の反映を行ってもよい。さらには、例えば、予め管理プログラムで、アプリケーションごとにプロセスの動作特性を示す特性値を保持しておき、アプリケーション実行時に、その特性値をプロセス識別子に対応付けて動作特性テーブル22に格納するようにしてもよい。
さらに、計測対象とするイベントを、ユーザにより設定可能としてもよい。具体的には
、例えば、アプリケーション処理部50の管理プログラムが、入出力装置5から入力されたイベント設定情報を受け付け、入力されたイベント設定情報で指定されたイベントを、動作特性テーブル22の項目として設定してもよい。一方で、管理プログラムは、カウンタ設定部41に対し、性能モニタリングカウンタ11において当該入力されたイベントの発生回数をカウントするように指示を送信し、カウンタ設定部41が、かかる指示内容を性能モニタリングカウンタ11のイベント設定に反映させればよい。このように、計測対象のイベントをユーザが任意に切り替えることができるようにすることで、クロック周波数制御における汎用性及び柔軟性が向上する。
上述した情報処理装置の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)プロセッサによって制御されるプロセスの切り替えが検出されたときに、切り替え後のプロセスを特定し、プロセスごとに対応付けて記憶手段に記憶された、各プロセス処理における前記プロセッサの動作特性を示す特性値のうち、特定された前記切り替え後のプロセスに対応する特性値を該記憶手段から取得し、取得した前記切り替え後のプロセスに対応する特性値と所定閾値とを比較し、比較結果に応じて、前記プロセッサのクロック周波数の制御を行う処理をコンピュータに実行させるクロック周波数制御プログラム。
(付記2)前記クロック周波数の制御を行う処理は、前記比較結果に応じて前記プロセッサのオーバークロック機能を有効又は無効にする付記1に記載のクロック周波数制御プログラム。
(付記3)前記特性値は、所定時間内にプロセス処理において発生する所定イベントの発生回数である一方、前記所定閾値はイベント内容に応じた値であり、前記クロック周波数の制御を行う処理は、前記所定イベントに応じた判定基準に基づき、前記切り替え後のプロセスにおいて発生する前記所定イベントの発生回数と当該所定イベントの内容に応じた所定閾値との比較結果に応じて、前記プロセッサのクロック周波数の制御を行う付記1又は2に記載のクロック周波数制御プログラム。
(付記4)前記所定イベントは、ユーザによる入力で指定されたイベントである付記3に記載のクロック周波数制御プログラム。
(付記5)前記特性値及び所定閾値は、クロック単位の実行命令数である付記1〜4のいずれか1つに記載のクロック周波数制御プログラム。
(付記6)前記特性値及び所定閾値は、クロック単位のメモリアクセス数である付記1〜5のいずれか1つに記載のクロック周波数制御プログラム。
(付記7)前記特性値及び所定閾値は、クロック単位のI/Oアクセス数である付記1〜6のいずれか1つに記載のクロック周波数制御プログラム。
(付記8)前記プロセスを特定する処理は、プロセスの切り替え前まで前記プロセッサによって制御されていた切り替え前のプロセスをさらに特定し、特定した前記切り替え前のプロセスについて計測された特性値を、前記記憶手段に記憶させる処理を、前記コンピュータにさらに実行させる付記1〜7のいずれか1つに記載のクロック周波数制御プログ
ラム。
(付記9)前記クロック周波数の制御を行う処理は、ユーザにより入力された閾値と前記特性値とを比較する付記1〜8のいずれか1つに記載のクロック周波数制御プログラム。
(付記10)プロセッサによって制御されるプロセスの切り替えが検出されたときに、切り替え後のプロセスを特定する手段と、プロセスごとに対応付けて記憶手段に記憶された、各プロセス処理における前記プロセッサの動作特性を示す特性値のうち、特定された前記切り替え後のプロセスに対応する特性値を該記憶手段から取得する手段と、取得した前記切り替え後のプロセスに対応する特性値と所定閾値とを比較し、比較結果に応じて、プロセッサのクロック周波数の制御を行う手段と、を備えたクロック周波数制御装置。
10 プロセッサ
11 性能モニタリングカウンタ
12 オーバークロック機能設定レジスタ
20 メモリ
21 閾値テーブル
22 動作特性テーブル
30 オペレーティングシステム
40 デバイスドライバ
41 カウンタ設定部
42 割り込みハンドラ
43 プロセス特定部
44 記憶部
45 クロック周波数制御部
50 アプリケーション処理部

Claims (4)

  1. プロセッサによって制御されるプロセスの切り替えが検出されたときに、切り替え後のプロセスを特定し、
    プロセスごとに対応付けて記憶手段に記憶された、各プロセス処理における前記プロセッサの動作特性を示す特性値であって所定時間内に各プロセス処理において発生する複数の所定イベントそれぞれの発生回数のうち、特定された前記切り替え後のプロセスに対応する発生回数を該記憶手段から取得し、
    取得した前記切り替え後のプロセスに対応する前記所定イベントごとの発生回数と、当該所定イベントごとに対応させて設定された所定閾値とを比較し、当該比較結果、及び当該比較結果において前記所定イベントの発生回数が前記所定閾値よりも大きいとき又は小さいときのいずれの場合にクロック周波数を増加させるかが前記所定イベントごとに対応させて設定された判定基準に基づいて、前記プロセッサのクロック周波数の制御を行う、
    処理をコンピュータに実行させるクロック周波数制御プログラム。
  2. 前記クロック周波数の制御を行う処理は、前記比較結果に応じて前記プロセッサのオーバークロック機能を有効又は無効にする請求項1記載のクロック周波数制御プログラム。
  3. 前記プロセスを特定する処理は、プロセスの切り替え前まで前記プロセッサによって制御されていた切り替え前のプロセスをさらに特定し、
    特定した前記切り替え前のプロセスについて計測された特性値を、前記記憶手段に記憶させる処理を、前記コンピュータにさらに実行させる請求項1又は2に記載のクロック周波数制御プログラム。
  4. プロセッサによって制御されるプロセスの切り替えが検出されたときに、切り替え後のプロセスを特定する手段と、
    プロセスごとに対応付けて記憶手段に記憶された、各プロセス処理における前記プロセッサの動作特性を示す特性値であって所定時間内に各プロセス処理において発生する複数の所定イベントそれぞれの発生回数のうち、特定された前記切り替え後のプロセスに対応する発生回数を該記憶手段から取得する手段と、
    取得した前記切り替え後のプロセスに対応する前記所定イベントごとの発生回数と、当該所定イベントごとに対応させて設定された所定閾値とを比較し、当該比較結果、及び当該比較結果において前記所定イベントの発生回数が前記所定閾値よりも大きいとき又は小さいときのいずれの場合にクロック周波数を増加させるかが前記所定イベントごとに対応させて設定された判定基準に基づいて、前記プロセッサのクロック周波数の制御を行う手段と、
    を備えたクロック周波数制御装置。
JP2011021721A 2011-02-03 2011-02-03 クロック周波数制御プログラム、クロック周波数制御装置 Expired - Fee Related JP5668505B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011021721A JP5668505B2 (ja) 2011-02-03 2011-02-03 クロック周波数制御プログラム、クロック周波数制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011021721A JP5668505B2 (ja) 2011-02-03 2011-02-03 クロック周波数制御プログラム、クロック周波数制御装置

Publications (2)

Publication Number Publication Date
JP2012164006A JP2012164006A (ja) 2012-08-30
JP5668505B2 true JP5668505B2 (ja) 2015-02-12

Family

ID=46843359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011021721A Expired - Fee Related JP5668505B2 (ja) 2011-02-03 2011-02-03 クロック周波数制御プログラム、クロック周波数制御装置

Country Status (1)

Country Link
JP (1) JP5668505B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123205B (zh) * 2013-04-24 2018-01-23 联想(北京)有限公司 一种检测cpu超频工作状态的方法及装置
JP2023021662A (ja) 2021-08-02 2023-02-14 富士通株式会社 プログラムおよび管理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280216A (ja) * 2003-03-13 2004-10-07 Toshiba Corp 情報処理装置およびクロック周波数制御方法
US20090327656A1 (en) * 2008-05-16 2009-12-31 Dan Baum Efficiency-based determination of operational characteristics
JP5676845B2 (ja) * 2008-11-06 2015-02-25 イグジット−キューブ,インク. コンピュータシステム、カーネルスケジューリングシステム、リソース割当方法及びプロセス実行共有方法
JP5445739B2 (ja) * 2009-03-23 2014-03-19 日本電気株式会社 リソース割当装置、リソース割当方法、及びプログラム

Also Published As

Publication number Publication date
JP2012164006A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
US10551896B2 (en) Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
US8347119B2 (en) System and method for processor utilization adjustment to improve deep C-state use
US10929179B2 (en) Scheduling method and electronic device
JP2012064086A (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
RU2670909C2 (ru) Восстановление контекста потока в многопоточной компьютерной системе
US20160077571A1 (en) Heuristic Processor Power Management in Operating Systems
CN115269196A (zh) 线程池动态创建方法、装置、设备及存储介质
US9274827B2 (en) Data processing apparatus, transmitting apparatus, transmission control method, scheduling method, and computer product
JP5136658B2 (ja) 仮想計算機の割当方法及び割当プログラム並びに仮想計算機環境を有する情報処理装置
JP5668505B2 (ja) クロック周波数制御プログラム、クロック周波数制御装置
WO2014141419A1 (ja) 仮想計算機システムおよびスケジューリング方法
CN109753338B (zh) 虚拟gpu使用率的检测方法和装置
CN107209721B (zh) 对本地及非本地存储器的自适应存储器存取
US9323642B2 (en) Calculation apparatus, calculation method, and recording medium for calculation program
JP6354387B2 (ja) 情報処理装置、情報処理システム及び割込装置制御方法
KR102625723B1 (ko) 전자 장치 및 전자 장치의 제어 방법
JP6217008B2 (ja) 電子機器、制御方法、及び、プログラム
US20230096814A1 (en) Re-reference indicator for re-reference interval prediction cache replacement policy
JP5332716B2 (ja) 起動制御方法、情報処理装置及びプログラム
US11436146B2 (en) Storage control apparatus, processing apparatus, computer system, and storage control method
WO2017013799A1 (ja) 計算機及び計算機の制御方法
JP2007172519A (ja) 情報処理装置、ソフトウェアモジュールのリンク管理方法及びプログラム
JP2007293814A (ja) プロセッサ装置とその処理方法
JP2023021662A (ja) プログラムおよび管理方法
JP6213309B2 (ja) 情報処理装置、情報処理装置の性能情報採取プログラム及び情報処理装置の性能情報採取方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140507

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees