JP2007200213A - 情報処理装置、エントリ構成制御方法及びプログラム - Google Patents

情報処理装置、エントリ構成制御方法及びプログラム Download PDF

Info

Publication number
JP2007200213A
JP2007200213A JP2006020722A JP2006020722A JP2007200213A JP 2007200213 A JP2007200213 A JP 2007200213A JP 2006020722 A JP2006020722 A JP 2006020722A JP 2006020722 A JP2006020722 A JP 2006020722A JP 2007200213 A JP2007200213 A JP 2007200213A
Authority
JP
Japan
Prior art keywords
entry
entries
unit
storage unit
information
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.)
Pending
Application number
JP2006020722A
Other languages
English (en)
Inventor
Kenji Ezoe
健司 江副
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006020722A priority Critical patent/JP2007200213A/ja
Publication of JP2007200213A publication Critical patent/JP2007200213A/ja
Pending legal-status Critical Current

Links

Images

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

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

【課題】命令発行部から発行された命令が登録される記憶部のエントリ毎の動作を停止させることで、情報処理装置の性能低下を抑えつつ、消費電力を低減する。
【解決手段】個別に動作停止が可能な複数のエントリを有する記憶部と、前記エントリに保持されたフラグに基づいて、前記エントリの動作を停止させるエントリ制御部とを有する。記憶部は、リオーダバッファやリザベーションステーションとして構成される。
【選択図】 図1

Description

本発明は、個別に動作停止が可能な複数のエントリを備えた記憶部を有する情報処理装置に関し、当該複数のエントリについて、各エントリ毎の動作を停止する情報処理装置に関する。
従来、情報処理装置における演算器の動作を停止させ、情報処理装置の消費電力の低減を図っていた。
特許文献1には、情報処理装置の演算器へのクロック供給を停止することで当該演算器の動作を停止し、情報処理装置の消費電力を低減するという技術が開示されている。
特開2000−47872号公報
従来の技術によると、情報処理装置の機能中枢たる演算器自体の動作を停止させるため、情報処理装置の性能が低下するという問題がある。
本発明の目的は、命令発行部から発行された命令を登録する記憶部における複数のエントリについて、各エントリ毎の動作を停止させることで、情報処理装置の性能を低下させることなく消費電力を低減できる情報処理装置、エントリ構成制御方法及びプログラムを提供することにある。
本発明の情報処理装置は、個別に動作停止が可能な複数のエントリを有する記憶部と、前記エントリの動作を停止させるエントリ制御部とを有することを特徴とする。
このように、命令発行部から発行された命令が登録される記憶部のエントリ毎の動作を停止させることで、情報処理装置の性能低下を抑えつつ、消費電力を低減することができる。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
(第一の実施形態)
図1を参照すると、本発明の第一の実施形態である情報処理装置1は、命令発行部10と、記憶部20と、制御部30と、エントリ制御部40とを含む。
命令発行部10は、CPUがメモリから読み込んだ命令が,どんな命令であるかを解読し、解読した命令を記憶部20に登録する。
記憶部20は、命令発行部10から発行された命令を一時的に登録する。発行可能となった命令は、記憶部20から発行され、当該命令が演算器やメモリ等へ投入される。なお、記憶部20は、命令をアウトオブオーダーで実行可能なCPUに一般的に実装されるROB(リーダバッファ)やRS(リザベーションステーション)として構成することも可能である。
図1を参照すると、記憶部20は複数のエントリ201を有している。図2を参照して、エントリ201の構成について説明する。各エントリ201は、命令発行部10から発行された命令204と、有効命令フラグ202と、エントリ停止フラグ203とを有する。
有効命令フラグ202は、記憶部20のエントリ201に登録されている命令が未発行であり、命令発行を待っている状態であるか否かを判断するためのフラグである。有効命令フラグ202がオンとなっている場合、エントリ201には未発行の命令204が登録されていることを意味する。有効命令フラグ202がオフとなっている場合、エントリ201には命令204は登録されていないことを意味する。
エントリ停止フラグ203は、エントリ201の動作を停止するべきか否かを判断するためのフラグである。エントリ停止フラグ203がオンとなっている場合、エントリ201の動作を停止させることを意味する。エントリ停止フラグ203がオフとなっている場合、エントリ201を継続して動作させることを意味する。
有効命令フラグ202がオフであり、エントリ201に命令204が登録されておらず、かつ、エントリ停止フラグ203がオンである場合に、当該エントリ201の動作を停止させることが可能となる。エントリ停止フラグ203がオンであっても、有効命令フラグ202がオンであって、エントリ201に未発行の命令204が登録されている場合には、当該エントリ201の動作を停止させることはできない。
なお、有効命令フラグ202及びエントリ停止フラグ203は、1ビットの2進数を用いるように構成してもよい。この場合、例えば、有効命令フラグ202及びエントリ停止フラグ203が“1”である場合、これらのフラグがオンであることを意味し、“0”である場合、これらのフラグがオフであることを意味するように構成してもよい。
エントリ制御部40は、記憶部20の複数のエントリ201のうち、動作を停止することができるエントリを決定し、エントリの動作を停止する。
図3(a)を参照すると、エントリ制御部40は、削減率テーブル保持部42と、エントリ数計算部43と、動作モード値保持部44と、クロック制御部45とを有する。
動作モード値保持部44は、動作モード値を保持する。また、削減率テーブル保持部42は、動作モード値毎に、当該値に対応するエントリの削減率を示した削減率テーブル420を保持する。削減率テーブル420の構成例を図4(a)に示す。図4(a)に示すように、各動作モード値毎に、対応するエントリの削減率が削減率テーブル420に定められている。
なお、動作モード値と削減率の対応は図4(a)に記載された関係に限られず、各動作モード値に対応する削減率を自由に定めることも可能であるし、動作モード値を増やし、より詳細に削減率を定めることも可能である。
また、各動作モード値に対応する削減率を適宜変更可能とするため、削減率テーブル420を更新可能とするように構成してもよい。
次に図5を参照して、動作モード値の設定手順を説明する。
図5(a)に示すように、命令発行部10から記憶部20のエントリ201へ動作モード値変更命令を登録し、当該命令を発行することで、動作モード値保持部42が動作モード値を変更するように構成してもよい。
図5(b)に示すように、動作モード値変更スイッチ421により、新たな動作モード値を動作モード値保持部42へ通知し、動作モード値保持部42が動作モード値を変更するように構成してもよい。
図5(c)に示すように、温度センサー422により、動作モード値保持部42が動作モード値を変更するように構成してもよい。温度センサー422が情報処理装置の温度を検出し、動作モード値保持部42へ出力する。動作モード値保持部42は、当該出力をデコードして情報処理装置の温度を検知する。動作モード値保持部42は、検知した温度に応じて動作モード値を更新するように構成してもよい。例えば、動作モード値保持部42が情報処理装置の基準温度を有し、温度センサー422からの出力をデコードすることで検知した情報処理装置の温度が、当該基準温度から1℃上昇する毎に、エントリの削減率を増加するように動作モード値を変更すればよい。
以上の動作により、動作モード値保持部42へ動作モード値が設定される。なお、動作モード値は一度設定されたらその値に固定されるものではなく、情報処理装置の稼動中に、上記動作により動作モード値が逐次更新されるように構成することも可能である。
エントリ数計算部43は、記憶部20のエントリ201を再構成するため、新たな動作エントリ数を計算する。動作エントリ数とは、記憶部20が有する複数のエントリ201のうち、動作させるエントリ201の数をいう。例えば、記憶部20が10個のエントリ201を有しており、そのうちの5個が動作させる場合、動作エントリ数は5となる。
エントリ数計算部43は、計算した動作エントリ数を制御部30に通知する。また、記憶部20が有するエントリ数から、計算した動作エントリ数を引いた数のエントリ201のエントリ停止フラグ203をオンにする。各エントリ201に番号を付して、最も若い番号のエントリ201のエントリ停止フラグ203から順にオンとするようにしてもよい。また、有効命令フラグがオフとなっており、命令204が登録されていないエントリ201から優先してエントリ停止フラグをオンにし、有効命令フラグがオフであるエントリ201全てのエントリ停止フラグをオンにした後は、エントリ201の番号の若い順にエントリ停止フラグ203をオンにしてもよい。
なお、エントリ停止フラグ203がオンとなっているエントリ201の数が、記憶部20が有するエントリ数から、新たに計算した動作エントリ数を引いた数よりも大きい場合が考えられる。この場合は、エントリ停止フラグ203がオンとなっているエントリの数から、記憶部20が有するエントリ数より新たに計算した動作エントリ数を引いた数を差し引いた数のエントリ201のエントリ停止フラグ203をオフにするように構成すればよい。具体例として、記憶部20のエントリ数が6であり、そのうち4つのエントリについてエントリ停止フラグ203がオンとなっている場合を説明する。この場合において、エントリ数計算部43が新たに計算した動作エントリ数が4となった場合、4−(6−4)=2となるので、エントリ数計算部43はエントリ停止フラグ203がオンとなっているエントリのうち、2つのエントリのエントリ停止フラグ203をオフにする。
また、エントリ停止フラグ203がオンとなっているエントリ201の数と、記憶部20が有するエントリ数から、新たに計算した動作エントリ数を引いた数が等しい場合は、エントリ数計算部43は、エントリ停止フラグ203をオンにはしない。
新しい動作エントリ数の計算には、動作モード値と削減率テーブル420を用いる。エントリ数計算部43は、削減率テーブル420から、動作モード値保持部42が保持する動作モード値に対応する削減率を取得する。記憶部20の最大のエントリ数をMとし、エントリ数計算部43が削減率テーブル420から取得した削減率(%)をxとすると、新しい動作エントリ数は、M(1−x/100)という式により算出される。算出した動作エントリ数が1以下となる場合は、動作エントリ数は1として算出する。情報処理装置の動作を維持するため、最低限のエントリ数を確保するためである。このように、最低限1個のエントリを残して動作せることで、消費電力削減効果が最大で情報処理装置としての最低限の機能は確保できるという効果が得られる。
具体例を図4(a)及び(b)を用いて説明する。図4(b)のパターン1では、記憶部20の最大エントリ数が48であるので、M=48となる。動作モード値が3であるので、図4(a)の削減率テーブル420から、削減率は50%となる。よって、新しい動作エントリ数は、上式から24となる。同様の計算により、図4(b)のパターン2では、新しい動作エントリ数は36となる。図4(b)のパターン3の場合、上式により計算すると、新しい動作エントリ数は2.4となる。この場合、エントリ数計算部43は新しい動作エントリ数を2若しくは3と計算する。つまり、情報処理装置の性能を重視する場合には端数を切り上げて3を新しい動作エントリ数とし、消費電力の削減を重視する場合には端数を切り下げて2を新しい動作エントリ数とする。また、パターン3のように端数が出た場合には、四捨五入により新しい動作エントリ数を計算してもよい。
エントリ制御部40は、図3(b)に示すように、図3(a)の構成に対して使用状況監視部41をさらに有するように構成してもよい。使用状況監視部41は、記憶部20と接続されている。
使用状況監視部41は、記憶部20の使用状況を監視する。具体的には、予め設定された期間毎(例えば、100クロックサイクル毎等)の記憶部20への命令登録数又は記憶部20からの命令発行数を監視し、記憶部20の使用状況として記憶部20の使用率を算出する。なお、使用状況監視部41は、設定された期間毎に記憶部20の使用状況を監視するが、当該期間は設定変更が可能なように構成することもできる。
使用率は次のように算出する。使用状況監視部41は予め設定された期間毎に記憶部20を監視するが、当該期間における命令登録数又は命令発行数の基準値を使用状況監視部41に設定しておく。当該期間に、基準値と同じ数の命令登録又は命令発行が行われた場合、記憶部20の使用率は100%となる。よって、記憶部20の使用率は、(設定された期間の命令登録数又は命令発行数/基準値)×100(%)という式により算出される。
使用状況監視部41は、算出した使用率をエントリ数計算部43に通知する。エントリ数計算部43は、動作モード値と削減率テーブル420を用いて算出した動作エントリ数に対して、使用率をさらに乗算して動作エントリ数を算出する。つまり、動作エントリ数は、記憶部20の最大のエントリ数をM、削減率(%)をx、使用率(%)をyとすると、M(1−x/100)×y/100という式により算出される。計算の結果、動作エントリ数が1以下となった場合には、動作エントリ数は1として算出する。記憶部20のエントリを全て停止してしまうと、情報処理装置としての動作ができなくなるので、最低限のエントリ数を確保するためである。
図6(a)を参照して、具体例を説明する。記憶部20の最大エントリ数が48、動作モード値が3であり、図4(a)の削減率テーブル420から当該動作モード値に対応する削減率は50%となる。また、記憶部20の使用率は30%であるため、上記計算式より、48×(1−50/100)×30/100=7.2が新たな動作エントリ数として算出される。新たな動作エントリ数として端数が出るので、情報処理装置の性能を重視する場合には端数を切り上げて8を新しい動作エントリ数とし、消費電力の削減を重視する場合には端数を切り下げて7を新しい動作エントリ数とする。また、四捨五入により新しい動作エントリ数を計算してもよい。
使用状況監視部41が算出した使用率から、使用頻度を定めて、当該使用頻度に基づいて新たな動作エントリ数を算出するように構成してもよい。この場合、例えば、算出された使用率が0%〜30%の範囲にある場合には使用頻度が「低い」と判断し、使用率が30%〜60%の範囲にある場合には使用頻度が「中間」と判断し、使用率が60%〜100%の範囲にある場合には使用頻度が「高い」と判断すればよい。なお、使用率と使用頻度の対応は、上記の関係に限るものではなく、自由に定めることができる。動作モード値と削減率テーブル420から算出した動作エントリ数に対して、使用頻度に応じた定数を乗算することで新たな動作エントリ数を算出する。例えば、使用頻度が「低い」の場合には定数を0.2、「中間」の場合には0.5、「高い」の場合には0.8とすればよい。なお、使用頻度に応じた定数はこの限りではなく、自由に定めることが可能である。具体例を図6(b)を参照して説明する。パターン1は、使用頻度が「低い」と判断された場合である。この場合、48×(1−50/100)により算出した動作エントリ数に対して、使用頻度に応じた定数(パターン1では0.2)を乗算し、新たな動作エントリ数が4.8と算出される。新たな動作エントリ数として端数が出るので、情報処理装置の性能を重視する場合には端数を切り上げて5を新しい動作エントリ数とし、消費電力の削減を重視する場合には端数を切り下げて4を新しい動作エントリ数とする。また、四捨五入により新しい動作エントリ数を計算してもよい。パターン2及び3は、使用頻度が「中間」の場合の定数として0.5、使用頻度が「高い」の場合の定数として0.8をそれぞれ用いて、パターン1と同様に新たな動作エントリ数を算出している。
なお、エントリ制御部40に、削減率テーブル保持部42と動作モード値保持部44を設けずに、使用状況監視部41により算出した記憶部20の使用率のみに基づいて、エントリ数計算部43が新たな動作エントリ数を算出するように構成してもよい。この場合、記憶部20の最大エントリ数をM、使用率(%)をyとすると、新たな動作エントリ数は、M×y/100により算出される。
エントリ制御部40は、図3(c)又は(d)に示すように、図3(a)の構成に対して分岐予測失敗数監視部46又はキャッシュミス数監視部47をさらに有するように構成してもよい。
分岐予測失敗数監視部46は、予め分岐予測失敗数監視部46に設定された期間における命令の分岐予測失敗数をカウントする。パイプライン処理を行なう情報処理装置は、いくつもの命令を流れ作業的に同時に実行するため、分岐命令でメモリ内の別の部分にジャンプしてしまうと、処理を開始した後続の命令をすべて破棄しなくてはならず、処理効率が低下する。これを防ぐため、命令が分岐するかを予測し、分岐しそうな場合は分岐先の命令をパイプラインに流しこむのが分岐予測である。分岐予測失敗数監視部46は、当該分岐予測が失敗した数をカウントし、失敗率を算出する。分岐予測失敗数監視部46は予め設定された期間毎の分岐予測の失敗数を監視するが、当該期間における分岐予測の回数も共にカウントし、(分岐予測の失敗数/分岐予測の回数)×100(%)という式により失敗率を算出する。記憶部20の最大エントリ数をM、削減率をx、失敗率をFとすると、新たな動作エントリ数は、M(1−x/100)×(1−F/100)という式により算出される。なお、エントリ制御部40に、削減率テーブル保持部42と動作モード値保持部44を設けずに、分岐予測失敗数監視部46により算出した失敗率のみに基づいて、エントリ数計算部43が新たな動作エントリ数を算出するように構成してもよい。この場合、記憶部20の最大エントリ数をM、失敗率(%)をFとすると、新たな動作エントリ数は、M×(1―F/100)という式により算出される。
このように新たな動作エントリ数を算出することにより、失敗率が高く分岐予測失敗による命令の再実行が多い場合に、記憶部20の動作エントリ数を削減し、命令処理の効率を高めつつ消費電力の低減を図ることができるという効果が得られる。
キャッシュミス数監視部47は、予めキャッシュミス数監視部47に設定された期間におけるキャッシュミスの発生回数をカウントし、キャッシュミス率を算出する。キャッシュミス数監視部47は予め設定された期間毎のキャッシュミスの発生回数を監視するが、当該期間におけるキャッシュアクセスの回数も共にカウントし、(キャッシュミスの発生回数/キャッシュアクセスの回数)×100(%)という式によりキャッシュミス率を算出する。記憶部20の最大エントリ数をM、削減率(%)をx、キャッシュミス率(%)をCとすると、新たな動作エントリ数は、M(1−x/100)×(1−C/100)という式により算出される。なお、エントリ制御部40に、削減率テーブル保持部42と動作モード値保持部44を設けずに、キャッシュミス数監視部47により算出したキャッシュミス率のみに基づいて、エントリ数計算部43が新たな動作エントリ数を算出するように構成してもよい。この場合、記憶部20の最大エントリ数をM、キャッシュミス率(%)をCとすると、新たな動作エントリ数は、M×(1−C/100)という式により算出される。
このように新たな動作エントリ数を算出することにより、キャッシュミス率が高く、メインメモリからのリプライ待ちが多い場合に、記憶部10の動作エントリ数を削減し、命令処理の効率を高めつつ消費電力の低減を図ることができるという効果が得られる。
クロック制御部45は、エントリ201の有効命令フラグ202及びエントリ停止フラグ203の状態を監視し、未使用のエントリ201へのクロック供給を停止することで、エントリ201の動作を停止させる。
図7を参照すると、クロック制御部45は、判定部451とクロック供給部452とを有する。クロック制御部45は、記憶部20が有するエントリ201の数と同じ数の判定部451を有する。
判定部451は、記憶部20における1つのエントリ201と接続され、有効命令フラグ202及びエントリ停止フラグ203の状態を監視する。判定部451は、有効命令フラグ202及びエントリ停止フラグ203から、エントリ201が未使用であるか否かを判定する。具体的には、有効命令フラグ202がオフであり、エントリ201に命令が登録されておらず、かつ、エントリ停止フラグ203がオンとなっている場合に、当該エントリ201は未使用であり、クロック供給を停止させるべきと判定する。判定部451は、エントリ201が未使用であると判定した場合、クロック停止判定信号4510によりクロック供給部452に対して、当該エントリ201へのクロック供給を停止するように通知する。
クロック供給部452は、クロック停止判定信号4510により判定部451からクロック供給を停止するように通知を受けた場合、当該エントリ201へのクロック信号4520の供給を停止する。
図8に、判定部451の具体的な回路図を示す。なお、図8に示す回路図は具体例であり、判定部451の構成として図8の回路図に限定はされない。
図8では、有効命令フラグ202及びエントリ停止フラグ203が1ビットの2進数で表され、各フラグが“1”の場合がオンであり、“0”の場合がオフとして説明する。
判定部451は、NOT回路とAND回路とを有する。有効命令フラグ202の値がNOTで反転されてAND回路に入力される。エントリ停止フラグ203の値がそのままAND回路に入力される。よって、有効命令フラグ202が“0”、すなわちエントリ201に命令204が登録されておらず、かつ、エントリ停止フラグ203が“1”の場合にのみ、AND回路の出力が“1”となる。AND回路の出力が、エントリ停止判定信号4510としてクロック供給部452に入力される。図8の例では、AND回路の出力が“1”の場合に、エントリ201へのクロック供給を停止することを示している。判定部451をこのように構成することにより、有効命令フラグ202がオフであり、かつ、エントリ停止フラグ203がオンであるエントリ201へのクロック供給を停止できる。
図9に、クロック供給部452の具体的な回路図を示す。なお、図9に示す回路図は具体例であり、クロック供給部452の構成として図9の回路図に限定はされない。
図9では、クロック停止判定信号4510が“1”の場合に、該当するエントリ201へのクロック供給を停止するものとして説明する。
各判定部451からのエントリ停止判定信号4510がクロック供給部452に入力される。また、クロック信号4520がクロック供給部452に入力される。エントリ停止判定信号4510からの入力は、NOT回路により反転されて、各エントリ毎に設けられているAND回路へ入力される。また、クロック信号4520はそのままAND回路に入力され、AND回路を介してエントリ201へ入力される。よって、エントリ停止判定信号4510が“1”、すなわちエントリ201へのクロック供給を停止することを示している場合、AND回路の出力は常に“0”となり、エントリ201へのクロック供給を停止することができる。
クロック供給部452をこのように構成することで、判定部451によりクロック供給を停止すべきと判断されたエントリ201へのクロック供給のみを停止することが可能となる。
制御部30は、エントリ数計算部43から通知された記憶部20の動作エントリ数を管理し、エントリ停止フラグ203がオンとなっているエントリ201へ命令発行部10から命令204が登録されることを禁止するように制御する。
また、命令発行部10から記憶部20へ送られた命令を、記憶部20内のどのエントリ201に登録するかを制御し、登録された命令の発行を制御する。
さらに、制御部30は、エントリ数計算部43から通知された新たな動作エントリ数と、記憶部20の有効命令数とを比較して、有効命令数が新たな動作エントリ数以上である場合(有効命令数≧新たな動作エントリ数)、命令発行部10に対して、命令発行停止信号を通知して新たな命令登録を停止させる。有効命令数とは、記憶部20の各エントリ201に登録されている、未発行の命令数を意味する。命令発行停止信号を受けた命令発行部10は、記憶部20への命令発行を停止する。
新たな動作エントリ数が有効命令数よりも大きい場合(新たな動作エントリ数>有効命令数)、命令発行停止信号は通知しない。また、既に命令発行停止信号が制御部30から命令発行部10に通知されている場合であって、新たな動作エントリ数が有効命令数よりも大きい場合には、制御部30は命令発行停止信号を解除する。命令発行停止信号が解除されると、命令発行部10は記憶部20への命令発行を再開する。
図10を参照して、命令発行停止信号の通知若しくは解除について説明する。図10は記憶部20が8個のエントリ201を有する場合の、各エントリ201の有効命令フラグ202及びエントリ停止フラグ203の状態遷移図である。図10(a)では、動作エントリ数が8から4に変更され、エントリNo0〜3のエントリ201のエントリ停止フラグ203がオンとなった状態である。この状態において、エントリNo0〜6のエントリ201の有効命令フラグ202がオンとなっている。よって、有効命令数は7、新たな動作エントリ数は4であるので、有効命令数≧新たな動作エントリ数となり、制御部30から命令発行部10に対して命令発行停止信号が通知される。
その後、図10(b)に示すように、エントリNo3及び4のエントリ201に登録されている命令204が発行され、エントリNo3及び4のエントリ201における有効命令フラグ202がオフとなる。しかし、有効命令数は5であり、未だ有効命令数≧新たな動作エントリ数であるので、命令発行停止信号は解除されない。なお、本発明の情報処理装置においては、各エントリ201に登録されている命令204を、アウトオブオーダーで実行可能である。
その後、図10(c)に示すように、エントリNo2及び5のエントリ201に登録されている命令204が発行され、エントリNo2及び5のエントリ201における有効命令フラグ202がオフとなる。ここで、有効命令数が3となり、有効命令数<動作エントリ数となるので、制御部30は命令発行停止信号を解除したことを命令発行部10に通知する。
このように、有効命令数≧新たな動作エントリ数の場合に制御部30が命令発行部10に命令発行停止信号を通知し、新たな命令登録を停止することで、命令発行部10からの命令発行によりエントリ201に登録されている内容が上書きされることを回避できる。
なお、上記の説明において、記憶部20が一つである場合を例として説明したが、記憶部20が複数存在する構成であってもよい。エントリに登録する命令種(メモリアクセス系命令、整数演算系命令、浮動小数点演算系命令)に応じて、複数の記憶部20が設けられることがある。この場合、制御部30及びエントリ制御部40を、複数の記憶部20のそれぞれと接続するように構成される。エントリ制御部40のエントリ数計算部43は、複数の記憶部20それぞれの動作エントリ数を個別に計算する。
このように構成することにより、エントリに登録される命令種に偏りがある場合でも、命令種毎の記憶部20それぞれのエントリについて、個別に動作制御することが可能となり、効率的に消費電力を低減することが可能となる。
次に、本発明の第一の実施形態の動作を図11のフローチャートを用いて説明する。
当該動作モード値と削減率テーブル420により、エントリ数計算部43が動作エントリ数を計算する(S1000)。また、エントリ数計算部43は使用状況監視部41、分岐予測失敗数監視部46及びキャッシュミス数監視部47によりそれぞれ算出された使用率、失敗率及びキャッシュミス率をさらに用いて、動作エントリ数を計算することも可能である。
記憶部20が有するエントリ数から、動作エントリ数を引いた数のエントリ201のエントリ停止フラグ203をオンにする(S1001)。
動作エントリ数を計算後、エントリ数計算部43は、計算した動作エントリ数を制御部30に通知する(S1002)。
制御部30は、エントリ数計算部43から通知された新たな動作エントリ数と、記憶部20のエントリ201中の有効命令数を比較する(S1003)。
比較の結果、有効命令数≧新たな動作エントリ数である場合、制御部30は命令発行部10に対して命令発行停止信号を通知し、命令発行部10から記憶部20への命令登録を停止する(S1004)。
その後、制御部30の制御により記憶部20のエントリ201に登録されている有効命令が発行され、併せてエントリ制御部40のクロック制御部45により見使用のエントリ201へのクロック供給が停止される(S1005)。
制御部30により、改めて有効命令数と新たな動作エントリ数とが比較される(S1006)。有効命令数≧新たな動作エントリ数の場合、再度記憶部20のエントリ201から有効命令が発行され、クロック制御部45により未使用のエントリ201へのクロック供給が停止される。有効命令数<新たな動作エントリ数となるまで当該動作を繰り返す。
有効命令数<新たな動作エントリ数となった場合(S1006でYesの場合)、制御部30は命令発行停止信号を解除する(S1007)。
エントリ停止フラグ203がオンとなっているエントリ201へのクロック供給を全て停止したかを確認する(S1009)。クロック供給が未停止のエントリ201が存在する場合には(S1009でNoの場合)、エントリ停止フラグ203がオンとなっているエントリ201全てに対するクロック供給が停止されるまで、クロック制御部45による処理を繰り返す。
エントリ停止フラグ203がオンとなっているエントリ201全てに対するクロック供給が停止された場合(S1009でYesの場合)、動作を終了する。
また、ステップS1003で有効命令数<新たな動作エントリ数と判断された場合には(S1003でYesの場合)、制御部30による命令発行停止信号の通知はされず、有効命令の発行と、未使用のエントリ201へのクロック供給の停止が実行される(S1008)。エントリ停止フラグ203がオンとなっているエントリ201へのクロック供給が全て停止された場合(S1009でYesの場合)、動作を終了する。
以上の動作を所定の期間毎に繰り返し、常に最適なエントリ構成で情報処理装置が動作できるようにする。
(第一の実施形態による効果)
本実施例の構成のように、未使用のエントリ201へのクロック供給を停止することで、当該エントリ201の動作を停止させることで、情報処理装置の性能に対する影響を最小限に抑えつつ、消費電力の低減・発熱の減少という効果が得られる。
また、記憶部20のエントリ201の構成変更を、情報処理装置の動作を停止させず、かつ、低レイテンシー(低ロス時間)で行うことができるという効果も得られる。
(第二の実施形態)
次に、図12を参照して、本発明の第二の実施形態について説明する。
図12を参照すると、第二の実施形態におけるクロック制御部45は、第一の実施形態の構成に対して、更に障害検出部453を有する。クロック制御部45は、記憶部20が有するエントリ201の数と同じ数の障害検出部453を有する。また、第二の実施形態における記憶部20の各エントリ201に登録される命令204は、命令204のオペコード2041及びオペランド2043にそれぞれ対応するオペコードパリティ2042及びオペランドパリティ2044を有している。
障害検出部453は記憶部20における1つのエントリ201と接続されており、各エントリ201に登録された命令204のオペコード2041及びオペランド2043についてパリティチェックを行うことで、各エントリ201の障害を検出し、障害を検出した場合に当該エントリ201のエントリ停止フラグ203をオンにする。
図12の例では、オペコード2041及びオペランド2043はそれぞれ、8ビットの2進数で表現しているが、本発明のオペコード2041及びオペランド2043は8ビットに限られるわけではない。また、図12の例ではオペコードパリティ2042及びオペランドパリティ2044は1ビットの2進数で表現しているが、1ビットに限られるわけではない。図12の例では、偶数パリティによりパリティチェックを実行している。
図12には、障害検出部453の具体例として回路図を示している。なお、図12に示す回路図は具体例であり、障害検出部453の構成として図12の回路図に限定はされない。
オペコード2041の各ビットとオペコードパリティ2042がXOR回路4531に入力される。つまり、図12の例ではXOR回路4531へ1ビットの2進数が9つ入力されることになる。これらの入力のXOR(排他的論理和)をとることで、入力される“1”の数が奇数ならば、XOR回路4531の出力は常に“1”となり、入力される“1”の数が偶数ならば、XOR回路4531の出力は常に“0”となる。つまり、XOR回路4531の出力が“1”の場合、パリティエラーが発生していることになる。
同様にオペランド2043の各ビットとオペコードパリティ2044がXOR回路4532に入力され、これらの入力のXOR(排他的論理和)がとられる。よって、入力される“1”の数が奇数ならば、XOR回路4532の出力は常に“1”となり、入力される“1”の数が偶数ならば、XOR回路4532の出力は常に“0”となる。つまり、XOR回路4532の出力が“1”の場合、パリティエラーが発生していることになる。
XOR回路4531及びXOR回路4532の出力を、それぞれOR回路4533に入力し、OR(論理和)をとる。よって、OR回路4533の入力のいずれかが“1”であれば、OR回路4533の出力は常に“1”となる。よって、OR回路4533の出力が“1”である場合、オペコード2041若しくはオペランド2043のいずれかにパリティエラーが発生していることを検出できる。OR回路4533の出力を、エントリ停止フラグ203に反映させれば、エントリ201にパリティエラーが発生している場合に、エントリ停止フラグ203をオンにできる。
このような構成を採用することで、障害が発生しているエントリ201のエントリ停止フラグ203をオンにできるので、障害が発生したエントリ201へのクロック供給を停止して、当該エントリの動作を停止することができる。
(第二の実施形態による効果)
本実施例の構成のように、障害が発生したエントリ201のエントリ停止フラグ203をオンにすることで、障害が発生したエントリ201へのクロック供給を停止し、当該エントリの動作を停止することができる。よって、情報処理装置の消費電力を削減できるとともに、情報処理装置の耐故障性を向上できるという効果が得られる。
第一の実施形態における情報処理装置の構成を示すブロック図である。 エントリの構成を示す図である。 エントリ制御部の構成を示す図である。 削減率テーブルの構成、及び、削減率テーブルを用いて動作エントリ数を計算する場合の具体例を示す図である。 動作モード値保持部42の構成を示す図である。 使用率を用いて動作エントリ数を計算する場合の具体例を示す図である。 クロック制御部の構成を示す図である。 判定部の構成の具体例を示す図である。 クロック供給部の構成の具体例を示す図である。 制御部の動作の具体例を示す図である。 第一の実施形態の動作を示すフローチャートである。 第二の実施形態における障害検出部の構成を示す図である。
符号の説明
1 情報処理装置
10 命令発行部
20 記憶部
201 エントリ
202 有効命令フラグ
203 エントリ停止フラグ
204 命令
30 制御部
40 エントリ制御部
41 使用状況監視部
42 削減率テーブル保持部
43 エントリ数計算部
44 動作モード値保持部
45 クロック制御部
451 判定部
452 クロック供給部
453 障害検出部
4531 XOR回路
4532 XOR回路
4533 OR回路
4510 クロック停止判定信号
4520 クロック信号
46 分岐予測失敗数監視部
47 キャッシュミス数監視部
420 削減率テーブル
421 動作モード値変更スイッチ
422 温度センサー

Claims (21)

  1. 個別に動作停止が可能な複数のエントリを有する記憶部と、
    前記エントリの動作を停止させるエントリ制御部とを有することを特徴とする情報処理装置。
  2. 前記複数のエントリはそれぞれ、エントリの動作の要否を示す情報を保持し、
    前記エントリ制御部は、当該情報がエントリの動作停止を示している場合に、当該エントリの動作を停止させることを特徴とする請求項1記載の情報処理装置。
  3. 前記エントリ制御部は、
    前記記憶部の使用状況に関する情報を採取する使用状況監視部と、
    前記使用状況監視部が採取した前記使用状況に関する情報に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定するエントリ数計算部とを有することを特徴とする請求項2記載の情報処理装置。
  4. 前記エントリ制御部は、
    動作モード値を保持する動作モード値保持部と、
    前記動作モード値それぞれに対応するエントリの削減率を示す削減率テーブルを保持する削減率テーブル保持部と、
    前記動作モード値に対応する削減率を前記削減率テーブルから選択し、当該削減率に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定するエントリ数計算部とを有することを特徴とする請求項2記載の情報処理装置。
  5. 前記エントリ制御部は、
    動作モード値を保持する動作モード値保持部と、
    前記動作モード値それぞれに対応するエントリの削減率を示す削減率テーブルを保持する前記削減率テーブル保持部と、
    前記記憶部の使用状況に関する情報を採取する前記使用状況監視部と、
    前記動作モード値に対応する削減率を前記削減率テーブルから選択し、前記バッファが有するエントリ数から当該削減率に相当するエントリ数を除いたエントリ数を算出し、当該エントリ数を前記使用状況監視部が採取した前記使用状況に関する情報に基づいて補正することにより、動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定するエントリ数計算部とを有することを特徴とする請求項2記載の情報処理装置。
  6. 前記記憶部に対して命令を登録する命令発行部と、
    前記エントリ数計算部が計算した動作エントリ数と前記記憶部における有効命令数とを比較し、有効命令数が動作エントリ数以上である場合に、前記命令発行部に対して命令発行停止信号を通知し、前記命令発行部による新たな命令登録を停止させる制御部とを有することを特徴とする請求項1乃至5いずれか1項記載の情報処理装置。
  7. 前記エントリ制御部は、
    前記記憶部のエントリに対するクロック供給を停止し、エントリの動作を停止させるクロック制御部を有することを特徴とする請求項1乃至6いずれか1項記載の情報処理装置。
  8. 前記クロック制御部は、
    動作を停止させるべきエントリを判定する判定部と、
    前記判定部による判定結果に応じて、該当するエントリへのクロック供給を停止するクロック供給部とを有することを特徴とする請求項7記載の情報処理装置。
  9. 前記クロック制御部は、
    エントリでの障害発生を検出する障害検出部を有し、
    前記クロック制御部は、前記障害検出部により障害の発生が検出されたエントリへのクロック供給を停止し、当該エントリの動作を停止させることを特徴とする請求項7又は8いずれか1項記載の情報処理装置。
  10. 記憶部における個別に動作停止が可能な複数のエントリについて、エントリの動作の要否を示す情報を設定するステップと、
    当該情報がエントリの動作停止を示している場合に、当該エントリの動作を停止させるステップとを有することを特徴とするエントリ構成制御方法。
  11. 前記記憶部の使用状況に関する情報を採取するステップを更に有し、
    前記エントリの動作の要否を示す情報を設定するステップは、
    前記使用状況に関する情報に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定するステップであることを特徴とする請求項10記載のエントリ構成制御方法。
  12. 動作モード値に対応する削減率を決定するステップを更に有し、
    前記エントリの動作の要否を示す情報を設定するステップは、
    前記削減率に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定するステップであることを特徴とする請求項10記載のエントリ構成制御方法。
  13. 前記エントリの動作を停止させるステップは、
    エントリへのクロック供給を停止するステップを含むことを特徴とする請求項10乃至12いずれか1項記載のエントリ構成制御方法。
  14. 前記エントリへのクロック供給を停止するステップは、
    動作を停止させるべきエントリを判定するステップを含むことを特徴とする請求項13記載のエントリ構成制御方法。
  15. エントリでの障害発生を検出するステップを更に有し、
    前記エントリへのクロック供給を停止するステップは、
    障害発生が検出されたエントリへのクロック供給を停止するステップであることを特徴とする請求項13又は14いずれか1項記載のエントリ構成制御方法。
  16. コンピュータに、
    記憶部における個別に動作停止が可能な複数のエントリについて、エントリの動作の要否を示す情報を設定する処理と、
    当該情報がエントリの動作停止を示している場合に、当該エントリの動作を停止させる処理とを実行させることを特徴とするプログラム。
  17. コンピュータに、
    前記記憶部の使用状況に関する情報を採取する処理を更に実行させ、
    前記エントリの動作の要否を示す情報を設定する処理は、
    前記使用状況に関する情報に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を変更する処理であることを特徴とする請求項16記載のプログラム。
  18. コンピュータに、
    動作モード値に対応する削減率を決定する処理を更に実行させ、
    前記エントリの動作の要否を示す情報を設定する処理は、
    前記削減率に基づいて動作エントリ数を計算し、前記記憶部が有するエントリ数と当該動作エントリ数の差に相当する数のエントリについて、動作停止を示すように前記情報を設定する処理であることを特徴とする請求項16記載のプログラム。
  19. 前記エントリの動作を停止させる処理は、
    エントリへのクロック供給を停止する処理を含むことを特徴とする請求項16乃至18いずれか1項記載のプログラム。
  20. 前記エントリへのクロック供給を停止する処理は、
    動作を停止させるべきエントリを判定する処理を含むことを特徴とする請求項19記載のプログラム。
  21. コンピュータに、
    エントリでの障害発生を検出する処理を更に実行させ、
    前記エントリへのクロック供給を停止する処理は、
    障害発生が検出されたエントリへのクロック供給を停止する処理であることを特徴とする請求項19又は20いずれか1項記載のプログラム。
JP2006020722A 2006-01-30 2006-01-30 情報処理装置、エントリ構成制御方法及びプログラム Pending JP2007200213A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006020722A JP2007200213A (ja) 2006-01-30 2006-01-30 情報処理装置、エントリ構成制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006020722A JP2007200213A (ja) 2006-01-30 2006-01-30 情報処理装置、エントリ構成制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2007200213A true JP2007200213A (ja) 2007-08-09

Family

ID=38454737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006020722A Pending JP2007200213A (ja) 2006-01-30 2006-01-30 情報処理装置、エントリ構成制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2007200213A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073124A (ja) * 2008-09-22 2010-04-02 Nec Corp 命令制御回路、命令制御方法、および情報処理装置
JP2013037746A (ja) * 2011-08-09 2013-02-21 Renesas Electronics Corp 半導体装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165548A (ja) * 1990-10-30 1992-06-11 Fujitsu Ltd メモリアドレス制御方式
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH09160838A (ja) * 1995-12-07 1997-06-20 Hitachi Ltd キャッシュメモリバックアップ装置
JPH09212416A (ja) * 1995-11-30 1997-08-15 Toshiba Corp 計算機システムおよび計算機システムの電力管理方法
JPH10254587A (ja) * 1997-03-14 1998-09-25 Toshiba Corp コンピュータシステム
JP2001195162A (ja) * 2000-01-06 2001-07-19 Matsushita Electric Ind Co Ltd システム制御用処理装置及びシステム制御方法
JP2003045189A (ja) * 2001-07-31 2003-02-14 Fujitsu Ltd 半導体メモリ
JP2003303030A (ja) * 2002-04-08 2003-10-24 Matsushita Electric Ind Co Ltd クロック制御回路
WO2004104841A1 (ja) * 2003-05-21 2004-12-02 Fujitsu Limited アドレス変換バッファの電力制御方法及びその装置
JP2005084999A (ja) * 2003-09-09 2005-03-31 Seiko Epson Corp キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP2006502488A (ja) * 2002-10-11 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 省電力vliwプロセッサ

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165548A (ja) * 1990-10-30 1992-06-11 Fujitsu Ltd メモリアドレス制御方式
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH09212416A (ja) * 1995-11-30 1997-08-15 Toshiba Corp 計算機システムおよび計算機システムの電力管理方法
JPH09160838A (ja) * 1995-12-07 1997-06-20 Hitachi Ltd キャッシュメモリバックアップ装置
JPH10254587A (ja) * 1997-03-14 1998-09-25 Toshiba Corp コンピュータシステム
JP2001195162A (ja) * 2000-01-06 2001-07-19 Matsushita Electric Ind Co Ltd システム制御用処理装置及びシステム制御方法
JP2003045189A (ja) * 2001-07-31 2003-02-14 Fujitsu Ltd 半導体メモリ
JP2003303030A (ja) * 2002-04-08 2003-10-24 Matsushita Electric Ind Co Ltd クロック制御回路
JP2006502488A (ja) * 2002-10-11 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 省電力vliwプロセッサ
WO2004104841A1 (ja) * 2003-05-21 2004-12-02 Fujitsu Limited アドレス変換バッファの電力制御方法及びその装置
JP2005084999A (ja) * 2003-09-09 2005-03-31 Seiko Epson Corp キャッシュメモリ制御装置およびキャッシュメモリ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073124A (ja) * 2008-09-22 2010-04-02 Nec Corp 命令制御回路、命令制御方法、および情報処理装置
JP2013037746A (ja) * 2011-08-09 2013-02-21 Renesas Electronics Corp 半導体装置
US9135966B2 (en) 2011-08-09 2015-09-15 Renesas Electronics Corporation Semiconductor device including memory capable of reducing power consumption

Similar Documents

Publication Publication Date Title
US9361111B2 (en) Tracking speculative execution of instructions for a register renaming data store
US7836291B2 (en) Method, medium, and apparatus with interrupt handling in a reconfigurable array
JP5336830B2 (ja) ワークロード実行特徴に基づく性能低下のない低パワーのための動的なプロセッサを再構成するための方法、プログラム、およびシステム
US8738971B2 (en) Limiting certain processing activities as error rate probability rises
EP2261797B1 (en) Information processing apparatus and branch prediction method
JP2009501961A (ja) 予測的なプロセッサコンポーネントサスペンドのためのシステム及びその方法
JP2016536665A (ja) 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法
KR102279352B1 (ko) 실행 메카니즘간의 전환 제어
KR20150129327A (ko) 파이프라이닝된 소프트웨어의 동적 최적화
US10102003B2 (en) Intelligent context management
JP2008204357A (ja) 情報処理装置
JP2007200213A (ja) 情報処理装置、エントリ構成制御方法及びプログラム
US9292362B2 (en) Method and apparatus to protect a processor against excessive power usage
JP5233078B2 (ja) プロセッサ及びその処理方法
KR102528699B1 (ko) 가변 길이 명령 처리 모드
JP5549627B2 (ja) マイクロコンピュータ
JP2010257199A (ja) プロセッサ及びプロセッサにおける命令発行の制御方法
JP2007193433A (ja) 情報処理装置
JP5474926B2 (ja) 電力アウェア・リタイヤメント
JP2007058549A (ja) マルチコンピュータモジュールシステム、マルチコンピュータモジュール方法、および、プログラム
JP3795055B1 (ja) 値予測装置、マルチプロセッサシステムおよび値予測方法
JP6477248B2 (ja) 演算処理装置及び演算処理装置の処理方法
JP2008299740A (ja) 非同期マイクロプロセッサ、電子情報装置
JP4311087B2 (ja) プロセッサおよび例外処理方法
JP2013152604A (ja) デジタル信号処理装置、通信装置および誤り制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081215

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110203

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111108