説明

情報処理装置、情報処理システム、情報処理装置の制御方法、および、プログラム

【課題】誤動作が生じない電源電圧または周波数の正確な値を情報処理装置に設定することを容易にする。
【解決手段】第1パリティ生成部420は、演算器310により処理された処理データのエラーを検出するための第1のエラー検出符号を生成する。第2パリティ生成部は、第1のエラー検出符号から処理データのエラーを検出するための第2のエラー検出符号を生成する。第1パリティ検査部460は、保持された第1のエラー検出符号を使用して保持された処理データのエラーを第1のエラーとして検出する。第2パリティ検査部470は、保持された第2のエラー検出符号を使用して保持された処理データのエラーを第2のエラーとして検出する。制御量出力部500は、第1のエラーの発生率が第1の閾値以下であるときに、第2の閾値を第2のエラーの発生率の目標値として電源電圧または周波数を制御する制御量を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理装置の制御方法、および、プログラムに関し、特に、電源電圧または周波数を制御する情報処理装置、情報処理システム、情報処理装置の制御方法、および、プログラムに関する。
【背景技術】
【0002】
近年、マイクロプロセッサ等に使用される論理回路では、消費電力に対する演算処理効率の向上が要求されることが多い。論理回路のレイアウトを変えないで、動的な制御により演算処理効率を向上させる方法としては、動作周波数を一定にして電源電圧を低下させる方法や、電源電圧を一定にして周波数を増加させる方法などがある。しかし、電源電圧を低下させた場合、または、周波数を増加させた場合、論理回路が誤動作する確率が増加してしまうことが知られている。
【0003】
ここで、論理回路において誤動作の原因となるエラーは、タイミング違反性エラーと、それ以外のエラーとに分けることができる。タイミング違反性エラーとは、回路の応答タイミングが設定時の想定範囲からずれてしまうことにより生じるエラーである。
【0004】
タイミング違反性エラー以外のエラーとしては、F/Fリテンション性エラーなどがある。F/Fリテンション性エラーとは、フリップフロップが同一値を保持する期間が、設計値より短くなったために生じるエラーである。
【0005】
これらの発生頻度と電源電圧または周波数との間の関係は、論理回路ごとに様々であるため、エラーの発生率が許容値以下となる電源電圧や周波数を正確に予測することが困難であった。
【0006】
これらのエラーの発生率が許容値以下となる電源電圧または周波数を予測するには、論路回路において、電源電圧または周波数ごとにエラーの発生率を調べる必要がある。エラーを検出する方法として、EDS(Error Detection Sequentials)とTRC(Tunable Replica Circuit)とを使用する方法が提案されている(例えば、非特許文献1参照。)。EDSとは、タイミング違反性エラーを検出することができる特殊なフリップフロップである。TRCとは、インバータを連ねることにより、論理回路においてクリティカル・パスの遅延を模倣して、その分だけ遅延したデータ信号を出力する回路である。TRCから出力されたデータ信号をEDSに入力し、そのEDSによるタイミング違反性エラーの検出結果を参照すれば、クリティカル・パスにおけるタイミング違反性エラーの発生の有無を予測することができる。
【0007】
また、エラーを検出するために、TD(Timing-Detector)回路を使用する方法も提案されている(例えば、非特許文献2参照。)。TD回路は、データ信号の立上り、および、立下りを検出してパルス信号を生成し、それらのパルス信号の生成タイミングとクロック信号の遷移タイミングとを比較してエラーを検出する回路である。TD回路により、論理回路におけるタイミング違反性エラーが検出される。
【0008】
EDSおよびTRCや、TD回路を使用して、電源電圧または周波数が異なる動作条件ごとにエラーを検出することにより、エラーの発生頻度が許容値以下となる電源電圧または周波数の値が求められる。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】James Tschanz, et al., A 45nm Resilient and Adaptive Microprocessor Core for Dynamic Variation Tolerance, ISSCC 2010.
【非特許文献2】David Bull1, et al., A Power-Efficient 32b ARM ISA Processor Using Timing-Error Detection and Correction for Transient-Error Tolerance and Adaptation to PVT Variation, ISSCC 2010.
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上述の従来技術では、誤動作が生じない電源電圧または周波数の正確な値を情報処理装置に設定することが困難であった。
【0011】
EDSおよびTRCやTD回路を使用する方法では、タイミング違反性エラーを検出できるが、それ以外のエラー、例えば、F/Fリテンション性エラーを検出することができない。このため、タイミング違反性エラー以外のエラーの発生頻度が高い回路について、誤動作が生じない電源電圧または動作周波数の正確な値を得ることが困難になる。また、EDSやTD回路は、それぞれフリップフロップを備えている。このため、EDSやTD回路を備えることにより、フリップフロップにおいて生じうる、F/Fリテンション性エラーなどのエラーが、かえって増加してしまうことがある。さらに、EDSおよびTRCでは、クリティカル・パスになると予測したパスのみを観測しているが、予測したパス以外のパスの遅延がクリティカルになる可能性もある。その場合、エラー検出結果から得られた電源電圧または動作周波数の値が不正確になってしまう。正確な値を得るために全てのパスを観測対象とすると、膨大な回路規模のEDSおよびTRCを要し、多大な手間やコストが生じてしまう。同様に、TD回路においても、観測対象の回路の規模が増大するほど、必要なTD回路の数が増加し、電源電圧または動作周波数の正確な値を得るのに多大な手間やコストが生じてしまう。
【0012】
EDSおよびTRCやTD回路を用いなくとも、パリティ検査などを行うことにより簡易にエラーを検出することができる。しかし、パリティ検査等を行う回路では、パリティビットの生成が間に合わないほど大きな遅延が生じた場合に、その遅延によるタイミング違反性エラーを検出することができないことがあった。
【0013】
したがって、EDSおよびTRCやTD回路を使用する方法や、パリティ検査等を行う方法では、誤動作が生じない電源電圧または周波数の正確な値を得ることが困難であった。
【0014】
本発明はこのような状況に鑑みてなされたものであり、誤動作が生じない電源電圧または周波数の正確な値を情報処理装置に設定することを容易にすることを目的とする。
【課題を解決するための手段】
【0015】
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、クロック信号に従ってデータを保持するとともに出力する第1の保持部と、上記出力されたデータを処理して処理データとして出力する処理部と、上記処理データから上記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成部と、上記第1のエラー検出符号から上記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成部と、上記クロック信号に従って上記処理データと上記第1および第2のエラー検出符号とを保持する第2の保持部と、上記保持された第1のエラー検出符号を使用して上記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出部と、上記保持された第2のエラー検出符号を使用して上記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出部と、上記第1エラー検出部による上記第1のエラーの発生率が第1の閾値以下であり、かつ、上記第2エラー検出部による上記第2のエラーの発生率が第2の閾値より大きいときに、上記第2のエラーの発生率と上記処理部の電源電圧または上記クロック信号の周波数との間の所定の関係に基づいて、上記第2の閾値を上記第2のエラーの発生率の目標値として上記電源電圧または上記周波数を制御する制御量を出力する制御量出力部とを具備する情報処理装置、その制御方法、および、プログラムである。これにより、第1エラーの発生率が第1の閾値以下であるときに、第2エラーの発生率を第2の閾値以下の目標値として電源電圧または周波数を制御する制御量が出力されるという作用をもたらす。
【0016】
また、この第1の側面において、上記制御量出力部は、エラー検出単位期間内に検出された上記第1のエラーの数を計数する第1エラー計数部と、上記エラー検出単位期間内に検出された上記第2のエラーの数を計数する第2エラー計数部と、上記エラー検出単位期間において計数された上記第1エラーの数から得られた上記第1のエラーの発生率が第1の閾値以下であり、かつ、上記エラー検出単位期間において計数された上記第2エラーの数から得られた上記第2のエラーの発生率が第2の閾値より大きいときに上記所定の関係に基づいて上記制御量を生成する制御量生成部とを備えてもよい。これにより、エラー検出単位期間において計数された第1エラーの数から得られた第1エラーの発生率が第1の閾値以下であるときに第2エラーの発生率を第2の閾値以下の目標値として電源電圧または周波数を制御する制御量が出力されるという作用をもたらす。
【0017】
また、この第1の側面において、上記制御量生成部は、上記エラー検出単位期間において検出された上記第2のエラーの数の対数に、上記所定の関係から得られた上記制御量を対応付けて記憶する変換テーブルと、上記エラー検出単位において計数された上記第2のエラーの数の対数を演算する対数演算部と、上記エラー検出単位期間において計数された上記第1エラーの数から得られた上記第1のエラーの発生率が第1の閾値以下であり、かつ、上記エラー検出単位期間において計数された上記第2エラーの数から得られた上記第2のエラーの発生率が第2の閾値より大きいときに上記対数演算部により演算された上記対数に対応する上記制御量を上記変換テーブルから取得する電圧制御量取得部とを備えてもよい。これにより、第2エラー数に対応する制御量が変換テーブルから取得されるという作用をもたらす。
【0018】
また、この第1の側面において、上記対数演算部は、上記第2のエラーの数を2進表記したビット列において1のビットのうちの最上位の桁の値から1を減算した値を上記対数として出力してもよい。これにより、第2のエラーの数を2進表記したビット列において1のビットのうちの最上位の桁の値から1を減算した値が上記対数として出力されるという作用をもたらす。
【0019】
また、この第1の側面において、上記制御量は、上記電源電圧の制御量であり、上記制御量出力部は、上記第1のエラーの発生率が上記第1の閾値より大きければ、上記電源電圧を所定電圧昇圧するための上記制御量を出力してもよい。これにより、第1のエラーの発生率が第1の閾値より大きければ、電源電圧が所定電圧昇圧されるという作用をもたらす。
【0020】
また、この第1の側面において、上記制御量は、上記電源電圧の制御量であり、上記制御量出力部は、所定の判断基準期間以上の間、上記第1のエラーの発生率が上記第1の閾値以下であり、かつ、上記第2のエラーの発生率が上記第2の閾値以下であれば、上記電源電圧を所定電圧降圧するための上記制御量を出力してもよい。これにより、所定の判断基準期間以上の間、第1および第2のエラーの発生率がそれぞれの閾値以下であれば、電源電圧を所定電圧降圧するための制御量が出力されるという作用をもたらす。
【0021】
また、この第1の側面において、上記制御量は、上記電源電圧の制御量であり、上記制御量生成部は、上記エラー検出単位期間ごとに上記制御量を生成し、それぞれの上記エラー検出単位期間において、前回に生成した上記制御量が0であったならば、上記所定の関係に基づいて今回の上記制御量を生成してもよい。これにより、前回に生成した制御量が0であったならば、所定の関係に基づいて今回の制御量が生成されるという作用をもたらす。
【0022】
また、この第1の側面において、上記制御量生成部は、上記第2のエラーの発生率が第1の上限値以上である場合、または、前回に生成した上記制御量が0であった場合に上記所定の関係に基づいて今回の上記制御量を生成してもよい。これにより、第2のエラーの発生率が第1の上限値以上である場合、または、前回に生成した制御量が0であった場合に所定の関係に基づいて今回の上記制御量が生成されるという作用をもたらす。
【0023】
また、この第1の側面において、上記制御量生成部は、上記第2のエラー発生率が上記第1の上限値より大きい第2の上限値以上である場合に上記電源電圧を所定電圧昇圧するための上記制御量を生成してもよい。これにより、第2のエラー発生率が第2の上限値以上である場合に電源電圧を所定電圧昇圧するための制御量が生成されるという作用をもたらす。
【0024】
また、この第1の側面において、上記制御量は、上記周波数の制御量であり、上記制御量に従って周波数を設定した上記クロック信号を生成するクロック生成回路をさらに具備してもよい。これにより、制御量に従って周波数が設定されたクロック信号が生成されるという作用をもたらす。
【0025】
また、この第1の側面において、上記制御量出力部は、上記第1のエラーの発生率が上記第1の閾値より大きければ、上記周波数を所定周波数減少するための上記制御量を出力してもよい。これにより、第1のエラーの発生率が第1の閾値より大きければ、周波数を所定周波数減少するための制御量が出力されるという作用をもたらす。
【0026】
また、この第1の側面において、上記制御量出力部は、所定の判断基準期間以上の間、上記第1のエラーの発生率が上記第1の閾値以下であり、かつ、上記第2のエラーの発生率が上記第2の閾値以下であれば、上記周波数を所定周波数増加するための上記制御量を出力してもよい。これにより、所定の判断基準期間以上の間、第1および第2のエラーの発生率がそれぞれの閾値以下であれば、周波数を所定周波数増加するための制御量が出力されるという作用をもたらす。
【0027】
また、本発明の第2の側面は、クロック信号に従ってデータを保持するとともに出力する第1の保持部と、上記出力されたデータを処理して処理データとして出力する処理部と、上記処理データから上記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成部と、上記第1のエラー検出符号から上記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成部と、上記クロック信号に従って上記処理データと上記第1および第2のエラー検出符号とを保持する第2の保持部と、上記保持された第1のエラー検出符号を使用して上記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出部と、上記保持された第2のエラー検出符号を使用して上記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出部と、上記第1エラー検出部による上記第1のエラーの発生率が第1の閾値以下であり、かつ、上記第2エラー検出部による上記第2のエラーの発生率が第2の閾値より大きいときに、上記第2のエラーの発生率と上記処理部の電源電圧または上記クロック信号の周波数との間の所定の関係に基づいて、上記第2の閾値を上記第2のエラーの発生率の目標値として上記電源電圧または上記周波数を制御する制御量を出力する制御量出力部とを具備する情報処理装置と、上記情報処理装置に上記電源電圧を供給するとともに上記出力された制御量に基づいて上記電源電圧を制御する電源装置とを具備する情報処理システムである。これにより、第1エラーの発生率が第1の閾値以下であるときに、第2エラーの発生率を第2の閾値以下の目標値として電源電圧または周波数を制御する制御量が出力されるという作用をもたらす。
【発明の効果】
【0028】
本発明によれば、誤動作が生じない電源電圧または周波数の正確な値を情報処理装置に設定することを容易にするという優れた効果を奏し得る。
【図面の簡単な説明】
【0029】
【図1】本発明の第1の実施の形態における情報処理システムの一構成例を示すブロック図である。
【図2】本発明の第1の実施の形態における第1パリティ生成部および第2パリティ生成部の一構成例を示す回路図である。
【図3】本発明の第1の実施の形態における第1パリティ検査部および第2パリティ検査部の一構成例を示す回路図である。
【図4】本発明の第1の実施の形態における制御量出力部の一構成例を示すブロック図である。
【図5】本発明の第1の実施の形態におけるタイムスライス制御部の動作結果の一例を示す真理値表である。
【図6】本発明の第1の実施の形態における対数演算部の演算結果の一例を示す表である。
【図7】本発明の第1の実施の形態における第2エラー発生率と電源電圧との間の関係の一例を示すグラフである。
【図8】本発明の第1の実施の形態における第2エラー発生率の対数と電源電圧との間の関係の一例を示すグラフである。
【図9】本発明の第1の実施の形態における対数演算部の出力値と電圧制御量との間の関係の一例を示すグラフである。
【図10】本発明の第1の実施の形態における電圧制御量変換テーブルの一例である。
【図11】本発明の第1の実施の形態における電源装置の一構成例を示すブロック図である。
【図12】本発明の第1の実施の形態における電圧制御量取得部の動作の一例を示すフローチャートである。
【図13】本発明の第1の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。
【図14】本発明の第1の実施の形態におけるエラー未検出状態継続判断処理の一例を示すフローチャートである。
【図15】本発明の第1の実施の形態における情報処理装置の動作の一例を示すタイミングチャートである。
【図16】本発明の第1の実施の形態における電源装置の動作の一例を示すタイミングチャートである。
【図17】本発明の第1の実施の形態における情報処理システムの動作の一例を示すタイミンチャートである。
【図18】本発明の第1の実施の形態における安定状態の情報処理システムの動作の一例を示すタイミングチャートである。
【図19】本発明の第1の実施の形態における制御量演算部の動作の一例を示すタイミングチャートである。
【図20】本発明の第1の実施の形態における安定状態の制御量演算部の動作の一例を示すタイミングチャートである。
【図21】情報処理装置の誤動作の原因をまとめた表である。
【図22】本発明の第1の実施形態の情報処理装置と従来技術を用いた装置とを比較した表である。
【図23】本発明の第1の実施の形態の変形例における情報処理システムの動作の一例を示すタイミングチャートである。
【図24】本発明の第1の実施の形態の変形例における情報処理システムの一構成例を示すブロック図である。
【図25】本発明の第1の実施の形態の変形例におけるパリティ生成部の一構成例を示すブロック図である。
【図26】本発明の第2の実施の形態における制御量出力部の一構成例を示すブロック図である。
【図27】本発明の第2の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。
【図28】本発明の第2の実施の形態における制御量演算部の動作の一例を示すタイミングチャートである。
【図29】本発明の第3の実施の形態における制御量出力部の一構成例を示すブロック図である。
【図30】本発明の第3の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。
【図31】本発明の第3の実施の形態における制御量演算部の動作の一例を示すタイミングチャートである。
【図32】本発明の第4の実施の形態における情報処理システムの一構成例を示すブロック図である。
【図33】本発明の第4の実施の形態における制御量出力部の一構成例を示すブロック図である。
【図34】本発明の第4の実施の形態における周波数制御量取得処理の一例を示すフローチャートである。
【図35】本発明の第4の実施の形態における遷移頻度と周期内遷移時刻との間の関係を示すグラフである。
【発明を実施するための形態】
【0030】
以下、本発明を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(電源電圧の制御:第2エラー数の対数を演算する例)
2.第2の実施の形態(電源電圧の制御:第2エラー数の増加を防止する例)
3.第3の実施の形態(電源電圧の制御:第1エラー数の発生を防止する例)
4.第4の実施の形態(周波数の制御)
【0031】
<1.第1の実施の形態>
[情報処理システムの構成例]
図1は、本発明の実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、情報処理装置100および電源装置700を備える。情報処理装置100は、クロック生成回路110と、パイプラインレジスタ210および220と、演算器310と、パリティ生成部410と、パリティ検査部450と、制御量出力部500とを備える。
【0032】
クロック生成回路110は、所定の周波数のクロック信号CLKを生成するものである。クロック生成回路110は、生成したクロック信号CLKをパイプラインレジスタ210および220と制御量出力部500とに供給する。
【0033】
パイプラインレジスタ210は、クロック信号CLKに従ってパイプライン処理における所定のステージの処理結果を保持するとともに出力するものである。パイプラインレジスタ210が保持する処理結果は、例えば、16ビットのデータを含む。パイプラインレジスタ210は、クロック信号CLKにしたがって所定のステージの処理結果を保持するとともに演算器310へ出力する。
【0034】
演算器310は、パイプラインレジスタ210が出力したデータに対して所定の演算を実行するものである。演算器310は、演算結果をパリティ生成部410およびパイプラインレジスタ220に信号線901を介して出力する。この演算結果には、16ビットのデータが含まれる。
【0035】
パリティ生成部410は、第1パリティ生成部420および第2パリティ生成部430を備える。
【0036】
第1パリティ生成部420は、演算器310が出力したデータからパリティビットを生成するものである。例えば、第1パリティ生成部420は、16ビットのデータを構成する4つの4ビットのビット列のそれぞれに対してXOR(排他的論理和)演算を実行することにより、4ビットのパリティビットを生成する。以下、データから生成された各パリティビットを第1パリティビットと称する。第1パリティ生成部420は、生成した各第1パリティビットを第2パリティ生成部430およびパイプラインレジスタ220に信号線902を介して出力する。
【0037】
第2パリティ生成部430は、第1パリティ生成部420が出力した第1パリティビットからパリティビットを生成するものである。例えば、第2パリティ生成部430は、4つの第1パリティビットに対してXOR演算を実行することにより、1ビットのパリティビットを生成する。以下、第1パリティビットから生成されたパリティビットを第2パリティビットと称する。第2パリティ生成部430は、生成した第2パリティビットをパイプラインレジスタ220に信号線903を介して出力する。
【0038】
パイプラインレジスタ220は、クロック信号CLKに従ってパイプライン処理における所定のステージの処理結果を保持するとともに出力するものである。具体的には、パイプラインレジスタ220は、クロック信号CLKにしたがって、演算器310から出力されたデータとパリティ生成部410から出力された第1パリティビットおよび第2パリティビットとを保持するとともに後段のステージへ出力する。ここで、パイプラインレジスタ220に保持された、演算結果のデータは、信号線904を介して第1パリティ検査部と後段のステージとに出力される。また、パイプラインレジスタ220に保持された第1パリティビットおよび第2パリティビットは、信号線905および906を介してパリティ検査部450に出力される。
【0039】
パリティ検査部450は、第1パリティ検査部460および第2パリティ検査部470を備える。
【0040】
第1パリティ検査部460は、パイプラインレジスタ220に保持された第1パリティビットを使用してパイプラインレジスタ220に保持された演算結果のデータにおけるエラーを検出するものである。例えば、第1パリティ検査部460は、16ビットのデータを構成する4つの4ビットのビット列それぞれに対してXOR演算を実行することにより、4ビットのパリティビットを生成する。そして、第1パリティ検査部460は、生成した4つのパリティビットを第2パリティ検査部470に信号線907を介して出力する。また、第1パリティ検査部460は、生成した各パリティビットとパイプラインレジスタ220に保持された各第1パリティビットとを比較し、各比較結果のOR(論理和)演算の結果を示す1ビットの情報を第1エラー検出情報として生成する。いずれかの比較結果が不一致であれば、エラーが検出される。以下、第1パリティビットにより検出されたエラーを第1エラーと称する。第1パリティ検査部460は、第1エラー検出情報を制御量出力部500に信号線908を介して出力する。
【0041】
第2パリティ検査部470は、パイプラインレジスタ220に保持された第2パリティビットを使用してパイプラインレジスタ220に保持された演算結果のデータにおけるエラーを検出するものである。具体的には、第2パリティ検査部470は、第1パリティ検査部460が出力した4ビットのパリティビットに対してXOR演算を実行することにより、1ビットのパリティビットを生成する。第2パリティ検査部470は、生成したパリティビットと第2パリティビットとを比較し、比較結果を示す1ビットの情報を第2エラー検出情報として生成する。比較結果が不一致であれば、エラーが検出される。以下、第2パリティビットにより検出されたエラーを第2エラーと称する。第2パリティ検査部470は、第2エラー検出情報を制御量出力部500に信号線909を介して出力する。
【0042】
制御量出力部500は、第1エラー検出情報および第2エラー検出情報に基づいて、情報処理装置100に供給される電源電圧VDDを制御するための電圧制御量ΔVを出力するものである。具体的には、制御量出力部500は、第1エラー検出情報および第2エラー検出情報から第1エラーおよび第2エラーの発生率を取得する。制御量出力部500は、第1エラーの発生率が第1の閾値より大きければ、電源電圧VDDを緊急昇圧するなどのシステムエラーを回避するための処理を実行する。ここで、第1の閾値は、第1エラーの発生率の許容値である。第1の閾値には、0以上の実数(例えば、0)が設定される。
【0043】
第1エラーの発生率が第1の閾値以下であれば、制御量出力部500は、第2の閾値を第2エラーの発生率の目標値として、電源電圧VDDを制御する電圧制御量ΔVを演算する。ここで、第2の閾値は、第2エラーの発生率の許容値である。第2の閾値には、0以上の実数(例えば、1/129)が設定される。第2エラーの発生率が第2の閾値より大きければ、0以外の電圧制御量ΔVが演算され、第2エラーの発生率が第2の閾値以下であれば、電圧制御量ΔVは0になる。電圧制御量ΔVの演算方法の詳細については、後述する。制御量出力部500は、演算した電圧制御量ΔVを電源装置700に信号線912を介して出力する。電圧制御量ΔVを出力した後、制御量出力部500は、所定のタイミングで電圧制御フラグを電源装置700に信号線911を介して出力する。電圧制御フラグは、出力した電圧制御量ΔVの電源電圧VDDへの加算を電源装置700に指示する信号である。
【0044】
電源装置700は、情報処理装置100に電源を供給するものである。電源装置700は、ケーブル910を介して電源を情報処理装置100に供給する。そして、電源装置700は、電圧制御フラグを受け取った場合に、電圧制御量ΔVを電源電圧VDDに加算した値で電源電圧を更新する。
【0045】
なお、パイプラインレジスタ210および220は、特許請求の範囲に記載の第1および第2の保持部の一例である。第1パリティ生成部420は、特許請求の範囲に記載の第1エラー検出部号生成部の一例である。第2パリティ生成部430は、特許請求の範囲に記載の第2エラー検出部号生成部の一例である。第1パリティ検査部460は、特許請求の範囲に記載の第1エラー検出部の一例である。第2パリティ検査部470は、特許請求の範囲に記載の第2エラー検出部の一例である。
【0046】
図2は、本発明の第1の実施の形態における第1パリティ生成部420および第2パリティ生成部430の一構成例を示す回路図である。第1パリティ生成部420は、XORゲート421乃至424を備える。第2パリティ生成部430は、XORゲート431を備える。
【0047】
XORゲート421乃至424および431は、入力値の排他的論理和を出力するものである。演算器310から出力される16ビットのデータは、それぞれが4ビットのビット列を含む4つのグループに分けられる。XORゲート421乃至424には、それぞれ異なるグループに属するビット列が入力される。XORゲート421乃至424は、入力されたビット列の排他的論理和を第1パリティビットとしてXORゲート431およびパイプラインレジスタ220へ出力する。XORゲート431は、XORゲート421乃至424からの4つの第1パリティビットの排他的論理和を第2パリティビットとしてパイプラインレジスタ220へ出力する。
【0048】
図3は、本発明の第1の実施の形態における第1パリティ検査部460および第2パリティ検査部470の一構成例を示す回路図である。第1パリティ検査部460は、XORゲート461乃至468およびORゲート469を備える。第2パリティ検査部470は、XORゲート471および472を備える。
【0049】
XORゲート461乃至468とXORゲート471および472とは、入力値の排他的論理和を出力するものである。XORゲート461乃至464には、それぞれ異なるグループに属するビット列が入力される。XORゲート461乃至464は、入力値の排他的論理和を、それぞれ、XORゲート465乃至468へ出力する。これらの排他的論理和は、それぞれ、対応するグループに属する4ビットのうちの1のビットが偶数個である場合に0となるevenパリティビットである。また、XORゲート461乃至464は、それらのパリティビットをXORゲート471へも出力する。XORゲート465乃至468には、それぞれ、XORゲート461乃至464からの互いに異なるパリティビットと第1パリティビットとが1つずつ入力される。XORゲート465乃至468は、これらの入力値の排他的論理和をORゲート469へ出力する。これらの排他的論理和は、それぞれ、対応するグループに属するビット列にパリティエラー(すなわち、第1エラー)が検出された場合に1となり、検出されない場合に0となる1ビットのエラー検出情報である。XORゲート471は、XORゲート465乃至468からの入力値の排他的論理和をXORゲート472へ出力する。この排他的論理和は、16ビットのデータのうちの1のビットが偶数個である場合に0となるevenパリティビットである。XORゲート472には、XORゲート471からのパリティビットと第2パリティビットとが入力される。XORゲート472は、これらの入力値の排他的論理和を第2エラー検出情報として制御量出力部500へ出力する。
【0050】
ORゲート469は、入力値の論理和を出力するものである。ORゲート469は、XORゲート465乃至468からのエラー検出情報の論理和を第1エラー検出情報として制御量出力部500へ出力する。
【0051】
図4は、本発明の第1の実施の形態における制御量出力部500の一構成例を示すブロック図である。制御量出力部500は、エラー計数部510、タイムスライス制御部520、および、制御量演算部530を備える。エラー計数部510は、第1エラーカウンタ511および第2エラーカウンタ512を備える。タイムスライス制御部520は、ダウンカウンタ521、スライス開始フラグ生成部522、および、電圧制御フラグ生成部523を備える。制御量演算部530は、電圧制御量変換テーブル531、対数演算部532、電圧制御量取得部533、および、エラー未検出状態継続カウンタ534を備える。
【0052】
第1エラーカウンタ511は、第1エラー検出情報に基づいて、エラー検出のための所定の単位期間内に検出された第1エラーの数を計数するものである。この単位期間を以下、「タイムスライス」と称する。タイムスライスの長さには、クロックサイクルより長い期間が設定される。例えば、タイムスライスの長さには、129クロックサイクルが設定される。第1エラーカウンタ511は、各クロックサイクルにおいて、第1エラーが検出されたことを第1エラー検出情報が示していれば、カウンタ値を1つ増分する。第1エラーカウンタ511は、そのカウンタ値を第1エラー数として電圧制御量取得部533に信号線921を介して出力する。そして、第1エラーカウンタ511のカウンタ値は、タイムスライス内の所定のタイミングで、スライス開始フラグ生成部522により0に初期化される。
【0053】
第2エラーカウンタ512は、第2エラー検出情報に基づいてタイムスライス内に検出された第2エラーの数を計数するものである。具体的には、第2エラーカウンタ512は、クロック信号CLKの示す各クロックサイクルにおいて、第2エラーが検出されたことを第2エラー検出情報が示していれば、カウンタ値を1つ増分する。第2エラーカウンタ512は、そのカウンタ値を第2エラー数として対数演算部532および電圧制御量取得部533に信号線922を介して出力する。そして、第2エラーカウンタ512のカウンタ値は、タイムスライス内の所定のタイミングで、スライス開始フラグ生成部522により0に初期化される。
【0054】
ダウンカウンタ521は、タイムスライス内の経過時間を計数するものである。具体的には、ダウンカウンタ521は、クロックサイクルが経過するたびに、カウンタ値を1つ減分する。カウンタ値が0となった次のクロックサイクルにおいて、ダウンカウンタ521は、カウンタ値を初期値(例えば、128)にリセットする。
【0055】
スライス開始フラグ生成部522は、ダウンカウンタ521のカウンタ値に基づいてスライス開始フラグおよびリセット信号を生成するものである。スライス開始フラグは、タイムスライス内の所定のタイミングにおいて制御量演算部530に電圧制御量ΔVの演算の開始を指示する信号である。リセット信号は、第1エラーカウンタ511および第2エラーカウンタ512に初期化を指示する信号である。スライス開始フラグ生成部522は、例えば、ダウンカウンタ521の値が126であるときに、スライス開始フラグを生成して制御量演算部530へ信号線923を介して出力する。そして、スライス開始フラグを出力してから、所定のクロックサイクル数(例えば、4クロックサイクル)が経過したとき、スライス開始フラグ生成部522は、信号線924を介してリセット信号を出力する。ここで、リセット信号は、スライス開始フラグが出力されてから、電源制御量ΔVの演算が終了するのに十分な時間が経過したタイミングにおいて出力される。
【0056】
電圧制御フラグ生成部523は、ダウンカウンタ521のカウンタ値に基づいて電圧制御フラグを生成するものである。具体的には、電圧制御フラグ生成部523は、タイムスライス内の所定の期間(例えば、ダウンカウンタ521のカウンタ値が119乃至64の期間)において、電圧制御フラグを生成して電源装置700へ出力する。ここで、電圧制御フラグは、スライス開始フラグが出力されてから、電源制御量ΔVの演算が終了するのに十分な時間が経過したタイミングにおいて出力される。また、電圧制御フラグの出力期間には、電源装置700が電圧制御フラグを受け取るのに十分な時間が設定される。電源装置700が遠方にあって、電圧制御フラグの信号遷移の伝達に時間がかかる場合、電圧制御フラグの出力期間には比較的長い時間が設定される。
【0057】
電圧制御量変換テーブル531は、第2エラー数の対数と電圧制御量ΔVとを対応付けて記憶するものである。第2エラー数は、電源電圧VDDが低下するほど、指数関数的に増加することが多い。第2エラー数と電源電圧VDDとの間に指数関係がある場合、その指数関係は、第2エラー数の対数と電源電圧VDDとの間の比例関係に近似することができる。また、エラー発生率が第2の閾値(例えば、1/129)になるときの電源電圧は、最低動作電圧Vminとして予め定義される。上述の比例関係に基づいて、電圧制御量変換テーブル531には、第2エラー数の対数ごとに、それらの対数に対応する各電源電圧VDDを最低動作電圧Vminに制御するための電圧制御量ΔVが格納される。
【0058】
対数演算部532は、第2エラー数の対数を演算するものである。対数の底の値は、例えば2に設定される。対数演算部532は、演算結果を電圧制御量取得部533へ出力する。
【0059】
電圧制御量取得部533は、第1エラー数および第2エラー数に基づいて、電圧制御量ΔVを取得するものである。詳細には、電圧制御量取得部533は、第1エラーの発生率が第1の閾値より大きければ、電源電圧VDDを緊急昇圧するなど、システムエラーを回避するための処理を実行する。第1エラーの発生率が第1の閾値以下であれば、電圧制御量取得部533は、第1エラーの発生率が第1閾値であり、かつ、第2エラーの発生率が第2の閾値以下である状態が一定期間、継続しているか否かを判断する。具体的には、電圧制御量取得部533は、第1エラーおよび第2エラーの発生率が各閾値以下の状態(以下、「エラー未検出の状態」と称する)が継続したタイムスライスの数をエラー未検出状態継続カウンタ534に計数させておく。電圧制御量取得部533は、そのカウンタ値を参照することにより、エラー未検出の状態が一定期間継続したかを、判断する。
【0060】
エラー未検出の状態が一定期間、継続していない場合、電圧制御量取得部533は、第2エラー数の対数に対応する電圧制御量ΔVを電圧制御量変換テーブル531から取得して電源装置700へ出力する。ただし、前回のタイムスライスにおいて、0以外の電圧制御量ΔVを出力していたのであれば、電圧制御量取得部533は、第2エラー数の対数の値にかかわらず、今回のタイムスライスにおいて出力する電圧制御量ΔVを0にする。これは、電圧制御量ΔVを正確に算出するためである。電源電圧VDDは、一般に電圧制御量ΔVが出力されても、直ちに変動するものではなく、電圧制御量ΔVに現在値を加算した値に電源電圧VDDが更新されるまでに、ある程度の時間がかかる。電源電圧VDDの更新中に検出された第2エラーの数は、更新後の電源電圧VDDにおいて検出された第2エラーの数とは言い難い。このため、電源電圧VDDの更新中に検出された第2エラーの数に基づいて制御量演算部530が電圧制御量ΔVを演算すると、不正確な値の電圧制御量ΔVが出力されてしまう。したがって、前回のタイムスライスにおいて、0以外の電圧制御量ΔVが出力された場合、電源電圧VDDが更新中である今回のタイムスライスにおいて電圧制御量ΔVは0とされる。
【0061】
一方、エラー未検出の状態が一定期間、継続していた場合、電圧制御量取得部533は、電源電圧VDDを降圧するための所定の降圧設定値を電圧制御量ΔVの値として出力する。
【0062】
エラー未検出状態継続カウンタ534は、電圧制御量取得部533の制御に従って、エラー未検出の状態が継続したタイムスライスの数を計数するものである。
【0063】
なお、タイムスライスは、特許請求の範囲に記載のエラー検出単位期間の一例である。第1エラーカウンタ511は、特許請求の範囲に記載の第1エラー計数部の一例である。第2エラーカウンタ512は、特許請求の範囲に記載の第2エラー計数部の一例である。
【0064】
図5は、本発明の第1の実施の形態におけるタイムスライス制御部520の動作結果の一例を示す真理値表である。ダウンカウンタ521のカウンタ値が128または127である場合、タイムスライス制御部520は、スライス開始フラグおよび電圧制御フラグの値を0にする。この期間は、タイムスライスにおいて、待機サイクルに含まれる。そして、ダウンカウンタ521のカウンタ値が126になったとき、タイムスライス制御部520は、スライス開始フラグを1にして出力する。
【0065】
ダウンカウンタ521のカウンタ値が125乃至120である間、タイムスライス制御部520は、スライス開始フラグおよび電圧制御フラグの値を0にする。この期間は、電圧制御量算出サイクルに区分される。電圧制御量算出サイクルの長さには、電圧制御量ΔVの演算が終了するまでに十分な時間が設定される。電圧制御量算出サイクルの長さを複数クロックサイクルに設定した場合、電圧制御量ΔVの演算が複数クロックサイクルに渡って行われることが許容される。しかし、その場合であっても、1クロックサイクルで直ちに算出が終了するように、制御量演算部530に回路が実装されてもよいのは勿論である。ダウンカウンタ521のカウンタ値が119乃至64である間、タイムスライス制御部520は、電圧制御フラグの値を1にして出力する。この期間は、電圧制御量供給サイクルに区分される。電圧制御量供給サイクルの長さには、電源装置700が電圧制御フラグを受け取るのに十分な時間が設定される。ダウンカウンタ521のカウンタ値が63乃至0である間、タイムスライス制御部520は、スライス開始フラグおよび電圧制御フラグの値を0にする。この期間は、タイムスライスにおいて、待機サイクルに含まれる。
【0066】
図6は、本発明の第1の実施の形態における対数演算部532の演算結果の一例を示す表である。対数演算部532は、第2エラー数を示すビット列において1のビットのうちの最上位桁のビットの桁から1を減算した値を出力するプライオリティエンコーダなどにより実現される。この出力値は、2を底とした第2エラー数E2の対数から小数点以下を切り捨てた値になる。例えば、第2エラー数を示すビット列が「00000011」である場合、2桁目より下位の1桁目のビットが0に置き換えられた「00000010」が演算される。そして、このビット列のうちの1のビットの桁(「2」)から1を減算した値(「1」)を示すビット列「001」が出力される。また、第2エラー数が「00000111」である場合、2桁目以降のビットが全て0に置き換えられた「00000100」が演算される。そして、このビット列のうちの1のビットの桁(「3」)から1を減算した値(「2」)を示すビット列「010」が出力される。
【0067】
図7は、本発明の第1の実施の形態における第2エラー発生率R2と電源電圧VDDとの間の関係の一例を示すグラフである。図7において縦軸は、第2エラー発生率R2であり、横軸は電源電圧VDDである。図7に示した例では、電源電圧VDDの低下に伴って、第2エラー発生率R2が指数関数的に増大している。
【0068】
図8は、本発明の第1の実施の形態における第2エラー発生率R2の対数と電源電圧VDDとの間の関係の一例を示すグラフである。図8において縦軸は、第2エラー発生率R2の対数(=log2R2)であり、横軸は電源電圧VDDである。図7における、電源電圧VDDと第2エラー発生率R2との間の指数関係は、図8に示すように、第2エラー発生率R2の対数と電源電圧VDDとの間の比例関係に近似することができる。この比例関係から、ある第2エラー発生率R2が検出されたときに、その第2エラー発生率R2に対応する電源電圧VDDを最低動作電圧Vminにするための電圧制御量ΔVが算出される。
【0069】
図9は、本発明の第1の実施の形態における対数演算部532の出力値と電圧制御量ΔVとの間の関係の一例を示すグラフである。図9において縦軸は電圧制御量ΔVであり、横軸は対数演算部532の出力値である。対数演算部532は、タイムスライス(129サイクル)内に検出された第2エラー数E2の対数の近似値(≒log2E2)を演算して出力する。129サイクル内の第2エラー数E2は、第2エラー発生率R2に129を乗算した値であるから、log2E2は、図8における縦軸のlog2R2にlog2129を加算した値となる。図8に例示したように、第2エラー発生率R2の対数と電源電圧VDDとの間に比例関係があったため、図9に示すように電圧制御量ΔVは、出力値に比例して変化する。電圧制御量変換テーブル531には、図9に例示した比例関係に基づいて、対数演算部532の出力値ごとに、その出力値に対応する電圧制御量ΔVが設定される。
【0070】
図10は、電圧制御量変換テーブル531に記憶される情報の一例である。電圧制御量変換テーブル531には、対数演算部532の各出力値に対応付けて電圧制御量ΔVが設定される。各出力値には、電源電圧を所定電圧降圧するための降圧用設定値(例えば、−1)と、第2エラー数の対数と電源電圧との間の比例関係に基づいて設定された値とが電圧制御量ΔVとして対応付けられる。ここで、降圧用設定値は、対数演算部532の出力値が0であり、かつ、エラー未検出状態継続フラグが1である場合に電圧制御量変換テーブル531から読み出される。
【0071】
ここで、エラー未検出状態継続フラグは、所定数(CFG_COUNT)以上のタイムスライスの間、エラー未検出の状態が継続した場合に1が設定され、そうでない場合に0が設定されるフラグである。つまり、CFG_COUNT以上、エラー未検出の状態が継続した場合に、降圧用設定値が電圧制御量ΔVの値として出力される。
【0072】
なお、CFG_COUNTの示すタイムスライスの期間は、特許請求の範囲に記載の判断基準期間の一例である。
【0073】
図10において、出力値は2進数で表記され、電圧制御量ΔVは符合付き2進数で表記されている。エラー発生率の対数と電圧制御量との間の比例関係に基づいて、例えば、出力値「001」に対応付けて「0001」の電圧制御量ΔVが設定される。また、出力値「010」、「011」、「100」に対応付けて「0010」、「0011」、「0100」の電圧制御量ΔVが設定される。このように、対数演算部532の出力値、すなわち第2エラー数の対数に比例した値が電圧制御量ΔVに設定される。なお、図10に例示した電圧制御量ΔVの各値は、図9に例示した比例関係が観察された回路とは別の回路から得られた比例関係に基づいて設定されたものである。
【0074】
図11は、本発明の第1の実施の形態における電源装置700の一構成例を示すブロック図である。電源装置700は、ステートマシン710と、切替器720および740と、加算器730と、電圧指標値レジスタ750と、電源回路760とを備える。
【0075】
切替器720は、ステートマシン710の制御に従って、情報処理装置100からの電圧制御量ΔVとΔVmaxとを切り替えて加算器730に出力するものである。
【0076】
加算器730は、電圧指標値レジスタ750から出力された電源電圧VDDに切替器720の出力値を加算するものである。加算器730は、加算結果をVDD_Nextとして、切替器740の入力端子に出力する。
【0077】
切替器740は、ステートマシン710の制御に従って、加算器730からのVDD_Nextとステートマシン710から出力された電源電圧の初期値VDD_Initとを切り替えて電圧指標値レジスタ750に出力するものである。
【0078】
電圧指標値レジスタ750は、ステートマシン710の制御に従って、切替器740の出力値を保持するとともに加算器730および電源回路760に出力するものである。
【0079】
電源回路760は、電圧指標値レジスタ750からの出力値に基づいて電源電圧VDDを制御するものである。電源回路760は、供給している電源電圧VDDの現在値を、電圧指標値レジスタ750の出力値に近づける制御を行う。電源回路760は、電源電圧VDDを情報処理装置100に供給する。
【0080】
ステートマシン710は、切替器720および740と、加算器730と、電圧指標値レジスタ750とを制御するものである。詳細には、ステートマシン710は、電源装置700に電源が投入されると、電源電圧の初期値VDD_Initを切替器740に出力する。そして、ステートマシン710は、切替器740および電圧指標値レジスタ750を制御して、初期値VDD_Initを電圧指標値レジスタ750に保持させる。初期値VDD_Initを保持させた後、ステートマシン710は、情報処理装置100からの電圧制御フラグの受付けを開始する。
【0081】
電圧制御フラグを連続して受け取ったクロックサイクル数が更新設定値(例えば、2)以上であると、ステートマシン710は、電源電圧VDDに電圧制御量ΔVを加算した値で電圧指標値レジスタ750の値を更新する。具体的には、ステートマシン710は、切替器720を制御して電圧制御量ΔVを加算器730に入力し、切替器740および電圧指標値レジスタ750を制御して加算器730の加算結果VDD_Nextで電圧指標値レジスタ750の値を更新する。
【0082】
また、電圧制御フラグの立下りから、m(mは、1以上の整数)回、クロックサイクルが経過するまでの期間(以下、「安定化期間」と称する)において、ステートマシン710は、1の電圧制御フラグを受け付けない。
【0083】
また、ステートマシン710は、n(nは、mより大きい整数)回、連続して電圧制御フラグを受け取らなかった場合、深刻なシステムエラーが情報処理装置100に生じたと判断する。この場合、ステートマシン710は、切替器720および740と電圧指標値レジスタ750とを制御して、電源電圧VDDにΔVmaxを加算した値で電圧指標値レジスタ750の値を更新する。
【0084】
ここで、ステートマシン710は、電圧制御量ΔVに重み付けを行って、電源電圧VDDに加算させてもよい。例えば、ステートマシン710が2倍の重み付けを行い、ΔVが−1、電源電圧VDDの更新前の値が125である場合、電源電圧VDDは123に更新される。重み付けが許容されるのは、電圧指標値レジスタ750の値が実際に出力される電源電圧を決定するためのファクターであるものの、その値と実際の電源電圧とが比例関係にあるとは限らないためである。実際には、電源回路760内のDC電源生成回路と、その電源によって動作する全ての回路との間の相互作用により、電圧指標値レジスタ750の値と実際の電源電圧との間の関係が定められる。
【0085】
[情報処理システムの動作]
続いて、図12乃至20を参照して、本発明の第1の実施の形態の情報処理システムの動作について説明する。図12は、本発明の第1の実施の形態における電圧制御量取得部533の動作の一例を示すフローチャートである。この動作は、情報処理装置100に電源電圧VDDが供給された場合、または、電圧制御量取得部533に初期化が指示された場合に開始する。
【0086】
電圧制御量取得部533は、エラー未検出状態継続カウンタ534をリセットし、各種のフラグを初期化する(ステップS910)。そして、電圧制御量取得部533は、スライス開始フラグが1であるか否かを判断する(ステップS915)。
【0087】
スライス開始フラグが1であれば(ステップS915:Yes)、電圧制御量取得部533は、電圧制御量ΔVを取得するための電圧制御量取得処理を実行する(ステップS920)。スライス開始フラグが0である場合(ステップS915:No)、または、ステップS920の後、電圧制御量取得部533は、ステップS915に戻る。
【0088】
図13は、本発明の第1の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。電圧制御量取得部533は、第1エラー数が0であるか否かを判断する(ステップS921)。第1エラー数が0でない場合(ステップS921:No)、電圧制御量取得部533は、エラー未検出状態継続カウンタ534をリセットし、電圧制御量ΔVとしてΔVmaxを出力し、緊急昇圧を試みる(ステップS922)。
【0089】
第1エラー数が0である場合(ステップS921:Yes)、電圧制御量取得部533は、破棄フラグが0であるか否かを判断する(ステップS923)。
【0090】
ここで、破棄フラグは、前回のタイムスライスにおいて演算された電圧制御量ΔVが0でない場合に1が設定され、そうでない場合に0が設定されるフラグである。破棄フラグは、0以外の電圧制御量ΔVが出力されたタイムスライスの次のタイムスライスでは電圧制御量を0にするために使用される。ステップS910の初期化において、破棄フラグは、例えば、0に初期化される。なお、破棄フラグは、1に初期化されてもよい。システム立ち上げ直後の電源の不安定さが忌避されるならば、破棄フラグは1に初期化されることが望ましい。そうでない場合は、破棄フラグは0に初期化される。
【0091】
破棄フラグが1である場合(ステップS923:No)、電圧制御量取得部533は、破棄フラグを0にし、電圧制御量ΔVを0にする(ステップS924)。
【0092】
破棄フラグが0である場合(ステップS923:Yes)、電圧制御量取得部533は、第2エラーが未検出(すなわち、第2エラーの発生率が第2の閾値以下)であり、かつ、エラー未検出状態継続フラグが1であるか否かを判断する(ステップS925)。
【0093】
第2エラーが検出された場合、または、エラー未検出状態継続フラグが0である場合(ステップS925:No)、電圧制御量取得部533は、第2エラー数E2の対数に対応する値を電圧制御量変換テーブル531から読み出す。電圧制御量取得部533は、読み出した値をΔVとして出力する(ステップS926)。
【0094】
第2エラーが未検出であり、かつ、エラー未検出状態継続フラグが1である場合(ステップS925:Yes)、電圧制御量取得部533は、電圧制御量変換テーブル531から降圧用設定値(例えば、−1)を読み出してΔVとして出力する(ステップS927)。
【0095】
ステップS926またはS927の後、電圧制御量取得部533は、今回、取得した電圧制御量ΔVが0であるか否かを判断する(ステップS928)。電圧制御量ΔVが0でない場合(ステップS928:No)、電圧制御量取得部533は、破棄フラグを1にする(ステップS929)。
【0096】
ステップS929の後、または、電圧制御量ΔVが0である場合(ステップS928:Yes)、電圧制御量取得部533は、エラー未検出状態継続判断処理を実行する(ステップS940)。ステップS922、S924、または、ステップS940の後、電圧制御量取得部533は、電圧制御量取得処理を終了する。
【0097】
図14は、本発明の第1の実施の形態におけるエラー未検出状態継続判断処理の一例を示すフローチャートである。電圧制御量取得部533は、第2エラー数が0であるか否かを判断する(ステップS941)。第2エラー数が0でない場合(ステップS941:No)、電圧制御量取得部533は、エラー未検出状態継続カウンタ534をリセットし、エラー未検出状態継続フラグを0にする(ステップS942)。
【0098】
第2エラー数が0である場合(ステップS941:Yes)、電圧制御量取得部533は、エラー未検出状態継続カウンタ534のカウンタ値をカウントアップする(ステップS943)。そして、電圧制御量取得部533は、エラー未検出状態継続カウンタ534のカウンタ値がCFG_COUNT以上であるか否かを判断する(ステップS944)。
【0099】
カウンタ値がCFG_COUNT以上である場合(ステップS944:Yes)、電圧制御量取得部533は、エラー未検出状態継続フラグを1にする(ステップS945)。カウンタ値がCFG_COUNT未満である場合(ステップS944:No)、電圧制御量取得部533は、エラー未検出状態継続フラグを0にする(ステップS946)。
【0100】
ステップS942、S945、または、S946の後、電圧制御量取得部533は、エラー未検出状態継続判断処理を終了する。
【0101】
図15は、本発明の第1の実施の形態における情報処理装置の動作の一例を示すタイミングチャートである。タイムスライスにおける待機サイクルが経過したとき、スライス開始フラグ生成部522は、スライス開始フラグを生成して電圧制御量取得部533に信号線923を介して出力する。そして、スライス開始フラグ生成部522は、スライス開始フラグの出力後に信号線924を介してリセット信号を出力する。電圧制御量取得部533は、スライス開始フラグを受け取ると、対数演算部532の出力値に対応する値を電圧制御量変換テーブル531から読み出し、電圧制御量ΔVとして信号線912を介して出力する。リセット信号の出力タイミングは、新たな電圧制御量ΔVが演算された後に第1エラーカウンタ511および第2エラーカウンタ512がリセットされるように設定される。
【0102】
電圧制御量算出サイクルが経過すると、電圧制御フラグ生成部523は、信号線911を介して電圧制御フラグの電源装置700への出力を開始する。電圧制御供給サイクルが経過すると、電圧制御フラグ生成部523は、電圧制御フラグの出力を停止する。電圧制御供給サイクルの長さは、電圧制御供給サイクルの経過前に、電源装置700が、電圧制御フラグの信号遷移を補足できるように設定される。
【0103】
図16は、本発明の第1の実施の形態における電源装置700の動作の一例を示すタイミングチャートである。信号線912を介して、電圧制御量ΔVが電源装置700に出力され、その後に信号線911を介して電圧制御フラグが出力される。ステートマシン710は、連続して電圧制御フラグを受け取ったのであれば、電圧指標値レジスタ750の値を、電源電圧VDDに電圧制御量ΔVを加算した値に更新する。例えば、電圧指標値レジスタ750の値が「125」であり、「−1」の値の電圧制御量ΔVを受け取ってから、連続して電圧制御フラグを受け取った場合について考える。この場合、電圧指標値レジスタ750の値は、「124」の値に更新される。電源回路760は、電圧指標値レジスタ750の値になるように電源電圧VDDを制御しつつ、情報処理装置100にケーブル910を介して供給する。
【0104】
図17は、本発明の第1の実施の形態における情報処理システムの動作の一例を示すタイミングチャートである。情報処理装置100において、第2エラーカウンタ512は、タイムスライス内において検出された第2エラー数を計数して信号線922を介して出力する。電圧制御量取得部533は、前回のタイムスライスにおいて計数された第2エラー数を参照し、その第2エラー数の対数に対応する電圧制御量ΔVを電圧制御量変換テーブル531から読み出し、信号線912を介して出力する。新たな電圧制御量ΔVが出力された後に、電圧制御フラグ生成部523は、電圧制御フラグを電源装置700に信号線911を介して出力する。
【0105】
一方、電源装置700において、ステートマシン710は、電圧制御フラグを受け取ると、電圧指標値レジスタ750の値を電圧制御量ΔVに電源電圧VDDを加算した値で更新する。電源回路は、ケーブル910を介して電源を供給しつつ、更新された電圧指標値レジスタ750の値になるように電源電圧VDDを制御する。
【0106】
なお、図17乃至20では、第1エラーカウンタ511が計数した第1エラー数は省略されている。図17乃至20の全てのタイムスライスにおいて、第1エラー数は0であったものとする。
【0107】
図17において、CFG_COUNTに0が設定され、タイムスライス#0において第2エラー数が「0」であった場合について考える。この場合、エラー未検出の状態がCFG_COUNT以上継続していたため、次のタイムスライス#1において、電圧制御量取得部533は、降圧設定値「−1」を電圧制御量ΔVとして出力する。ΔVに0以外の値が出力されたため、次のタイムスライス#2において、電圧制御量取得部533は、電圧制御量ΔVを0にする。タイムスライス#1において第2エラー数は「60」であったが、この第2エラー数は、タイムスライス#2において演算に用いられず、破棄される。
【0108】
一方、電源装置700において、ステートマシン710は、タイムスライス#1において、電圧制御フラグを受け取ると、電圧指標値レジスタ750の値を電圧制御量ΔV(「−1」)に電源電圧VDDの現在値(「64」)を加算した値(「63」)で更新する。
【0109】
タイムスライス#2においては、第2エラー数が「128」であったものとする。その次のタイムスライス#3において、電圧制御量取得部533は、第2エラー数の対数に対応する値「+7」を電圧制御量変換テーブル531から読み出して電圧制御量ΔVとして出力する。
【0110】
一方、電源装置700において、ステートマシン710は、タイムスライス#3において、電圧制御フラグを受け取ると、電圧指標値レジスタ750の値を電圧制御量ΔV(「+7」)に電源電圧VDDの現在値(「63」)を加算した値(「70」)で更新する。
【0111】
図17に例示したように、電源電圧は、タイムスライスを単位期間として、変動と安定とを繰り返すことになる。また、電源電圧は、0以外の電圧制御量ΔVが出力されても直ちに変動せず、電源電圧の更新が完了するまでには、ある程度の時間を要する。例えば、タイムスライス#3において、電圧指標値レジスタ750は、「63」から「70」に更新されるが、タイムスライス#3においては「70」に対応する値への電源電圧の更新が完了していない。更新が完了するのは、タイムスライス#4になったときである。したがって、このタイムスライス#3において検出された第2エラーの数は、「70」に対応する値の電源電圧のときのものであるとは言い難い。このため、タイムスライス#3において検出された第2エラーの数はタイムスライス#4において演算に使用されず、破棄される。
【0112】
図18は、本発明の第1の実施の形態における安定状態の情報処理システムの動作の一例を示すタイミングチャートである。CFG_COUNTに2が設定され、タイムスライス#11において、降圧設定値「−1」が設定された場合について考える。電圧制御量ΔVに0以外の値が出力されたため、次のタイムスライス#12において、電圧制御量取得部533は、電圧制御量ΔVを「0」にする。タイムスライス#11において計数された第2エラー数「3」は、破棄される。そして、タイムスライス#12および#13においても第2エラー数が「0」であったとする。この場合、タイムスライス#12および#13においては、エラー未検出の状態の継続期間がCFG_COUNT(「2」)未満であり、第2エラー数が0であるため、タイムスライス#13および#14において電圧制御量ΔVは「0」とされる。タイムスライス#15においては、エラー未検出の状態の継続期間がCFG_COUNT(「2」)以上となり、直前のタイムスライス内の第2エラー数も0であったため、電圧制御量取得部533は、降圧設定値「−1」を電圧制御量ΔVとして出力する。
【0113】
図18のタイムスライス#12乃至14に例示したように、電圧制御量ΔVを演算したものの、その値が「0」であった場合には、実質的な電圧変動は生じない。したがって、このような場合には、制御量演算部530は、タイムスライス#13乃至15において、連続して、直前のタイムスライスのエラー数を参照して演算を行うことができる。
【0114】
図19は、本発明の第1の実施の形態における制御量演算部530の動作の一例を示すタイミングチャートである。CFG_COUNTに2が設定され、タイムスライス#1において、電圧制御量ΔVとして「1」が出力された場合について考える。電圧制御量ΔVが0でないため、電圧制御量取得部533は、破棄フラグに「1」を設定する。次のタイムスライス#2においては、破棄フラグが1であるため、電圧制御量取得部533は、第2エラー数に関らず、電圧制御量ΔVを「0」にする。
【0115】
タイムスライス#2および#3においては、第2エラー数が「0」であったため、タイムスライス#3および#4において電圧制御量取得部533は、エラー未検出状態継続カウンタ534をカウントアップする。この結果、タイムスライス#5において、エラー未検出状態継続カウンタ534のカウンタ値がCFG_COUNT(「2」)以上となる。加えて、直前のタイムスライス#4内で計数された第2エラー数が0であったため、電圧制御量取得部533は、降圧設定値「−1」を電圧制御量ΔVとして出力する。その後のタイムスライスにおいても、第2エラー数が「0」である限り、エラー未検出状態継続カウンタ534がカウントアップされ、1タイムスライスおきに電圧制御量ΔVは、降圧設定値「−1」とされる。
【0116】
図19に例示したように、第1エラーおよび第2エラーが未検出の状態がCFG_COUNT以上、継続すると、その後は、第1エラーまたは第2エラーが検出されない限り、徐々に電源電圧が降下される降圧モードに移行する。
【0117】
図20は、本発明の第1の実施の形態における安定状態の制御量演算部530の動作の一例を示すタイミングチャートである。図20は、図19の最後のタイムスライス#8より後の制御量演算部530の動作を示すものである。電源電圧が図19に例示したように徐々に降下していくと、いつかは第1エラーまたは第2エラーが発生する。図20では、第1エラーは検出されていないがタイムスライス#10において第2エラー数が「20」計数されている。この場合、タイムスライス#11において、電圧制御量取得部533は、第2エラー数の対数に対応する「4」を電圧制御量変換テーブル531から読み出して電圧制御量ΔVとして出力する。電源電圧VDDの昇圧により、エラーの発生率が低減し、タイムスライス#12以降は、第2エラー数として「1」、「0」が交互に計数される。第2エラー数として「1」および「0」が交互に計数されると、第2エラー数「1」のときに、電圧制御量取得部533がエラー未検出状態継続カウンタ534をリセットするため、カウンタ値がCFG_COUNT以上とならない。したがって、降圧設定値が出力されない。また、第2エラー数が第2の閾値(1/129)に対応する値(「1」)以下であるため、電圧制御量ΔVは0とされる。この結果、第2エラー数が1より大きくならない限り、電源電圧VDDが変動しない安定な状態となる。
【0118】
次に図21および図22を参照して、第2パリティビットを生成する意義について説明する。図21は、情報処理装置の誤動作の原因をまとめた表である。図22に例示したように、誤動作の原因となるエラーは、タイミング違反性エラーと、それ以外のエラーとに分けることができる。タイミング違反性エラーには、セットアップ違反性エラー、ホールド違反性エラー、および、最小パルス幅違反性エラーなどがある。タイミング違反性エラー以外のエラーには、F/Fリテンション性エラーや論理ゲートDC伝達特性エラーなどがある。
【0119】
セットアップ違反性エラーとは、入力側にデータの取り込みが指示されるタイミングに先立って、出力側の回路が予めデータ信号を出力し続けるべき時間(セットアップタイム)が設計値より短いことにより生じるエラーである。
【0120】
例えば、図1に例示した情報処理装置100において、あるクロック信号CLKの遷移のタイミングに対して演算器310からのデータの遷移タイミングの遅延が比較的大きくなってしまった場合を考える。この場合、次のクロック信号CLKの遷移のタイミングに先立って、演算器310がデータを出力し続けるべき時間(セットアップタイム)が設計値より小さくなることがある。この結果、パイプラインレジスタ220に誤った値が保持されてセットアップ違反性エラーが発生する。
【0121】
図23に記載のホールド違反性エラーとは、入力側の回路が、データの取り込みを指示されてからデータを保持し続けるべき時間(ホールドアップタイム)が設計値より短いことにより生じるエラーである。
【0122】
最小パルス幅違反性エラーとは、供給クロックのデューティー比が崩れるなどして、クロック信号のパルス幅が、フリップフロップの規定する最小パルス幅に満たなくなったことを原因として生じるエラーである。
【0123】
F/Fリテンション性エラーとは、フリップフロップが同一値を保持する期間が、設計値より短くなったために生じるエラーである。
【0124】
論理ゲートDC伝達特性エラーとは、論理回路上の「0」、「1」に対応する電位が、電源やグランドの電位などの完全な電位とならない不完全な状態となることにより生じるエラーである。
【0125】
図21に例示したように、エラー緩和の動的手法としては、動作周波数を遅くしたり、電源電圧VDDを昇圧したりする方法がある。エラー緩和の静的手法としては、セットアップマージンを増加したり、ホールドマージンを増加したりする方法がある。静的手法が困難である場合、電源電圧VDDを昇圧するなどの動的手法が選択される。
【0126】
電源電圧VDDを昇圧してエラーを緩和する場合、電源電圧VDDごとにエラーの発生率を測定し、その測定結果から、誤動作が生じない電源電圧を推測する。
【0127】
情報処理装置100では、パリティ検査を行うことにより、図22に例示した各種のエラーを検出することができる。特に、情報処理装置100は、第1パリティビットから第2パリティビットを生成している。このため、第1パリティビットしか生成しない場合と比較してセットアップ違反性エラーを確実に検出することができる。
【0128】
第2パリティビットの生成により、セットアップ違反性エラーを確実に検出できる理由について説明する。まず、クロック信号CLKの周期をtCKとし、演算器310の遷移タイミングの遅延時間をtDP_maxとする。第1パリティビットの生成タイミングは、演算器310によるデータの生成タイミングに対して遅延する。この遅延時間をtST1とする。第2パリティビットは、第1パリティビットから生成されるため、第2パリティビットの生成タイミングは、第1パリティビットの生成タイミングに対して遅延する。この遅延時間をtST2とする。ここで、
tCK1>tDP_max、かつ、
tCK1≦(tDP_max+tST1)
の条件を満たすクロック周期tCK1を考える。tCK1>tDP_maxであるため、演算結果はパイプラインレジスタ220に書き込まれる。しかし、tCK1≦(tDP_max+tST1)であるため、第1パリティビットの生成が間に合わず、第1エラーが検出される。このように、データの生成が間に合うが第1パリティビットの生成が間に合わないほどクロック周期が小さいのであれば、第1パリティビットによるパリティ検査によりSetup違反性エラーを検出できる。次に、
tCK2>(tDP_max+tST1)、かつ、
tCK2≦(tDP_max+tST1+tST2)
の条件を満たすクロック周期tCK2(>tCK1)を考える。tCK2>(tDP_max+tST1)であるため、演算結果および第1パリティビットはパイプラインレジスタ220に書き込まれる。しかし、tCK2≦(tDP_max+tST1+tST2)であるため、第2パリティビットの生成が間に合わず、第2エラーが検出される。このように、第1パリティビットの生成が間に合うが第2パリティビットの生成が間に合わない程度のクロック周期(tCK2)である場合、第1パリティビットではエラーが検出されないが、第2パリティビットによりセットアップ違反性エラーが検出される。したがって、情報処理装置100は、第2パリティビットを生成することにより、セットアップ違反性エラーをより確実に検出することができる。
【0129】
情報処理装置100は、上述したように第2パリティビットによりセットアップ違反性エラーを確実に検出することができるほか、第1のパリティビットにより、セットアップ違反性エラー以外の各種のエラーも検出することができる。これに対して、図22にまとめたように、前述のEDSおよびTRCを使用する技術では、セットアップ違反性エラーしか検出することができない。また、前述のTD回路では、セットアップ違反性エラーおよびホールド違反性エラーしか検出することができない。
【0130】
このように、本発明の第1の実施の形態によれば、情報処理装置100は、第1パリティビットを使用して第1エラーを検出し、第1パリティビットから生成した第2パリティビットを使用して第2エラーを検出する。そして、情報処理装置100は、第1エラーの発生率が第1の閾値以下であるときに、第2の閾値を第2エラーの発生率の目標値として電源電圧を制御する電圧制御量を出力する。これにより、第1パリティビットを使用した検査により検出できないタイミング違反性エラーを、第2パリティビットを使用して検出することできる。したがって、第2パリティビットにより検出された第2エラーの発生率を第2の閾値にするための電圧制御量を出力することにより、タイミング違反性エラーの発生を防止することができる。また、情報処理装置100は、EDSおよびTRCやTD回路のように、特殊なフリップフロップを備える必要がない。このため、情報処理装置100は、回路規模が比較的小さくて済む。さらに、情報処理装置100は、タイミング違反性エラーに加えて、タイミング違反性エラー以外のエラーも第1パリティビットから検出できる。したがって、誤動作が生じない正確な電源電圧を容易に設定することができる。
【0131】
また、制御量出力部500は、タイムスライス内に検出された第1エラーおよび第2エラーの数を計数する第1エラーカウンタ511および第2エラーカウンタ512を備える。これにより、情報処理装置100の動作中にエラー発生率を求め、動的に電源電圧を制御することができる。
【0132】
また、電圧制御量取得部533は、対数演算部532が演算した第2エラー数の対数に対応する電圧制御量ΔVを電圧制御量変換テーブル531から取得する。これにより、電圧制御量取得部533は、対数から電圧制御量ΔVを演算する必要がなくなり、容易に電圧制御量ΔVを取得することができる。
【0133】
また、対数演算部532は、第2エラー数を2進表記したビット列において1のビットの最上位の桁から1を減算した値を、第2エラー数の対数として出力する。これにより、対数演算部532は、簡易なビット演算により、第2エラー数の対数を容易に算出することができる。
【0134】
また、制御量出力部500は、第1エラーの発生率が第1の閾値より大きければ、電源電圧を所定電圧昇圧するための電圧制御量ΔVmaxを出力する。これにより、情報処理装置100に誤動作が生じることを、より確実に防止することができる。
【0135】
また、制御量出力部500は、所定の判断基準期間(例えば、CFG_COUNT)以上の間、エラー未検出であれば、電源電圧を所定電圧降圧するための電圧制御量を出力する。これにより、誤動作を防止しつつ、消費電力に対する演算処理効率を向上させることできる。
【0136】
さらに、制御量演算部530は、前回のタイムスライスに生成した電圧制御量ΔVが0であったならば、第2エラーの発生率と電源電圧との間の関係に基づいて、今回の電圧制御量ΔVを演算して出力する。この構成によれば、電源電圧の更新中に検出されたエラーの数に基づいて電圧制御量を演算することがなくなり、正確な電圧制御量ΔVを出力することができる。
【0137】
なお、情報処理装置100は、エラー検出にパリティビットを使用しているが、エラーを検出できるのであれば、パリティビット以外のエラー検出符号を使用することもできる。例えば、情報処理装置100は、チェックサムやハッシュ関数などを使用してエラーを検出してもよい。
【0138】
また、情報処理装置100は、パイプラインレジスタ210および220にデータおよびパリティビットを保持しているが、データ等を保持するデバイスは、パイプラインレジスタに限定されない。
【0139】
また、情報処理装置100は、演算器310によりデータを処理しているが、演算器以外の回路によりデータを処理することもできる。
【0140】
また、電圧制御量取得部533は、第2エラー数の対数に対応する電圧制御量を電圧制御量変換テーブル531から取得している。しかし、電圧制御量取得部533は電圧制御量変換テーブル531を備えず、第2エラー数の対数に対して演算を行うことにより、電圧制御量を生成してもよい。例えば、電圧制御量取得部533は、図9に例示した第2エラー数の対数と、電圧制御量との間の比例関係を示す関係式を定義しておき、第2エラー数の対数を、その関係式に代入して演算することにより電圧制御量ΔVを生成することもできる。
【0141】
また、情報処理装置100は、第2エラーの発生率と電源電圧との間の指数関係を、第2エラーの発生率の対数と電源電圧との間の比例関係に近似することにより、電圧制御量ΔVの取得を容易にしている。しかし、情報処理装置100は、電圧制御量ΔVの取得が容易になるのであれば、第2エラーの発生率の対数を求める演算以外の演算により、近似を行ってもよい。
【0142】
また、対数演算部532は、ビット列において1のビットの最上位桁から1を減算することにより、対数を演算しているが、他の演算方法により対数を演算してもよい。
【0143】
また、タイムスライス制御部520では、タイムスライスの長さが129に設定されているが、タイムスライスの長さは任意に設定できる。また、タイムスライス内の待機サイクルなどの各サイクルの開始タイミングや長さも任意に設定可能である。
【0144】
また、情報処理装置100は、第1エラー数が1以上であった場合に緊急昇圧を行っているが、緊急昇圧のほか、エラー回復処理や復旧処理などを実行することもできる。
【0145】
また、タイムスライス制御部520は、各タイムスライスにおいて、所定のタイミングで電圧制御フラグを生成している。しかし、タイムスライス制御部520は、演算された電圧制御量ΔVを参照し、図23に示すように、ΔVが0でない場合にのみ、電圧制御フラグを生成することもできる。
【0146】
また、情報処理装置100は、パリティ生成部およびパリティ検査部を1つずつ備えているが、図24に示すように、それぞれを複数備えることもできる。図24におけるパリティ生成部#1および#2は、図1におけるパリティ生成部410と同様の構成である。また、図24におけるパリティ検査部#1および#2は、図1におけるパリティ検査部450と同様の構成である。この場合、第1エラー検出情報および第2エラー検出情報は、それぞれ、複数ビット生成される。この場合、制御量出力部500は、各クロックサイクルにおいて、各パイプラインで検出された第1エラーの合計値を第1エラーカウンタのカウンタ値に加算する。第2エラーについても同様に、各クロックサイクルにおいて、各パイプラインで検出された第2エラーの合計値が第2エラーカウンタのカウンタ値に加算される。
【0147】
また、情報処理装置100は、第1パリティビットから第2パリティビットを生成しているが、第2パリティビットから、さらにパリティビットを生成してもよい。例えば、図25に示すパリティ生成部は、64ビットのデータから16ビットの第1パリティビットを生成し、その第1パリティビットから4ビットの第2パリティビットを生成する。さらに、パリティ生成部は、第2パリティビットから1ビットの第3パリティビットを生成する。第3パリティビットは、第2パリティビットよりさらに遅延するため、情報処理装置100は、第2パリティビットで検出されないセットアップ違反性エラーを第3パリティビットにより確実に検出することができる。
【0148】
また、情報処理装置100は、16ビットのデータから4ビットの第1パリティビットと1ビットの第2パリティビットとを生成している。しかし、データやパリティビットのビット数は、任意である。例えば、情報処理装置100は、32ビットのデータから8ビットの第1パリティビットと1ビットの第2パリティビットを生成することもできる。何ビットごとにパリティビットを生成するかは、エラー検出率とハードウェアオーバーヘッドとの間のトレードオフ関係に基づいて、目的、状況に応じて適切に定められる。
【0149】
<2.第2の実施の形態>
[情報処理装置の動作]
次に図26乃至28を参照して、本発明の第2の実施の形態について説明する。第2の実施の形態の情報処理装置は、第2エラー数の増大を抑制するための制御をさらに行う点で第1の実施の形態の情報処理装置と異なる。図26は、本発明の第2の実施の形態の制御量出力部501の一構成例を示すブロック図である。制御量出力部501は、制御量演算部530の代わりに制御量演算部540を備える点で第1の実施の形態の制御量出力部500と異なる。制御量演算部540は、電圧制御量取得部533の代わりに電圧制御量取得部541および第1上限値記憶部542を備える点で第1の実施の形態の制御量演算部530と異なる。
【0150】
第1上限値記憶部542は、第1上限値を記憶するものである。この第1上限値は、第2エラー数の許容値であり、0以上の整数が設定される。電圧制御量取得部541は、第2エラー数が、第1上限値記憶部542から読み出した第1上限値以上であれば、破棄フラグに関らず、速やかに昇圧を行う点で第1の電圧制御量取得部533と異なる。
【0151】
図27は、本発明の第2の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。第2の実施の形態の電圧制御量取得処理は、ステップS931をさらに実行する点で第1の実施の形態の電圧制御量取得処理と異なる。
【0152】
第1エラー数が0である場合(ステップS921:Yes)、電圧制御量取得部541は、第2エラー数が第1上限値以上であるか否かを判断する(ステップS931)。第2エラー数が第1上限値以上であれば(ステップS931:Yes)、電圧制御量取得部541は第2エラーが未検出であり、かつ、エラー未検出状態継続フラグが1であるか否かを判断する(ステップS925)。第2エラー数が第1上限値未満であれば(ステップS931:No)、電圧制御量取得部541は破棄フラグが0であるか否かを判断する(ステップS923)。
【0153】
図27に例示したように、電圧制御量取得部541は、ステップS931において、第2エラー数が、ある一定量(第1上限値)以上であれば、破棄フラグに関らず、速やかに昇圧を行う。第1の実施の形態では、ステップS931を備えず、電圧制御量取得部541は、破棄フラグを参照して、前回の電圧制御量ΔVが0でなければ(すなわち、破棄フラグが1であれば)、電圧制御量ΔVを0にしていた。この構成では、0以外の電圧制御量ΔVを出力した次のタイムスライスにおいて、第2エラー数が増加していたとしても、その第2エラー数が参照されずに破棄されてしまう。ステップS931の実行により、0以外の電圧制御量ΔVを出力した次のタイムスライスであっても、第2エラー数が、ある一定量以上であれば、昇圧が行われて第2エラー数の増大が防止される。
【0154】
図28は、本発明の第2の実施の形態における制御量演算部540の動作の一例を示すタイミングチャートである。タイムスライス#9において、「−1」が出力されたため、破棄フラグが1に更新される。次のタイムスライス#10において、電圧制御量取得部541は、第2エラー数(「8」)が第1上限値(例えば、「5」)以上であったため、破棄フラグの値に関らず、第2エラー数の対数に対応する値「3」を電圧制御量ΔVとして出力する。この結果、タイムスライス#10において第2エラー数が「1」に減少する。
【0155】
第1の実施の形態では、図20に例示したように、電圧制御量ΔVとして「−1」が出力された次のタイムスライス#10において、電圧制御量取得部541は、破棄フラグが1であったため、第2エラー数に関りなく、電圧制御量ΔVを0にしていた。この結果、タイムスライス#10において、第2エラー数が増加し、「20」が計数されていた。これに対して、第2の実施の形態では、図28に例示したように、電圧制御量ΔVとして「−1」が出力された次のタイムスライス#10において、電圧制御量取得部541が、破棄フラグに関りなく、第2エラー数に応じて昇圧を試みている。したがって、第2エラー数の増加が防止される。
【0156】
このように、第2の実施の形態によれば、電圧制御量取得部541は、第2エラー数が第1上限値以上である場合、または、前回の電圧制御量ΔVが0であった場合に第2エラー数に応じた電圧制御量ΔVを取得する。このため、第2エラー数の増加が抑制される。
【0157】
<3.第3の実施の形態>
[情報処理装置の動作]
次に図29乃至31を参照して、本発明の第3の実施の形態について説明する。第3の実施の形態の情報処理装置100は、第1エラーの発生を防止するための制御をさらに行う点で第2の実施の形態の情報処理装置100と異なる。図29は、本発明の第2の実施の形態の制御量出力部502の一構成例を示すブロック図である。制御量出力部502は、制御量演算部540の代わりに制御量演算部550を備える点で第2の実施の形態の制御量出力部501と異なる。制御量演算部550は、電圧制御量取得部541の代わりに電圧制御量取得部551および第2上限値記憶部552を備える点で第2の実施の形態の制御量演算部540と異なる。
【0158】
第2上限値記憶部552は、第2上限値を記憶するものである。この第2上限値は、第2エラー数の許容値であり、第1上限値より大きな整数が設定される。電圧制御量取得部551は、第2のエラーの発生率が、第2上限値記憶部552から読み出した第2上限値以上である場合に緊急昇圧を試みる点で、第2の実施の形態の電圧制御量取得部541と異なる。
【0159】
図30は、本発明の第3の実施の形態における電圧制御量取得処理の一例を示すフローチャートである。第3の実施の形態の電圧制御量取得処理は、ステップS932をさらに実行する点で第2の実施の形態の電圧制御量取得処理と異なる。
【0160】
第1エラー数が0である場合(ステップS921:Yes)、電圧制御量取得部533は、第2エラー数が第2上限値以上であるか否かを判断する(ステップS932)。第2エラー数が第2上限値以上である場合(ステップS932:Yes)、電圧制御量取得部551は緊急昇圧を試みる(ステップS922)。第2エラー数が第2上限値未満である場合(ステップS932:No)、電圧制御量取得部551は、第2エラー数が第2上限値以上であるか否かを判断する(ステップS931)。
【0161】
第2エラー数が10以上になると、第1エラーが発生しうるということが事前に分かっている場合を考える。この場合、第2エラー数が10に近づいたときに電圧制御量変換テーブル531から得られる電圧制御量ΔVを出力していては、第1エラーが発生する危険性を十分に低くすることができないため、少しマージンを持たせて、第2上限値に7を設定しておく。この制御により、第1エラーが発生する前に緊急昇圧が行われ、第1エラーの発生が防止される。
【0162】
図31は、本発明の第3の実施の形態における制御量演算部550の動作の一例を示すタイミングチャートである。タイムスライス#9において、「−1」が電圧制御量ΔVとして出力されたため、破棄フラグに1が設定される。次のタイムスライス#10において、電圧制御量取得部551は、第2エラー数が「8」を参照し、参照した値が第2上限値(例えば、「7」)以上であったため、破棄フラグの値に関らず、緊急昇圧を試みる。この結果、タイムスライス#10において第2エラー数が「1」に減少する。
【0163】
このように、第3の実施の形態によれば、電圧制御量取得部551は、第2エラー数が第2上限値以上である場合に電源電圧を所定電圧昇圧するための電圧制御量ΔVmaxを出力する。この結果、第1エラーの発生が防止される。
【0164】
<4.第4の実施の形態>
[情報処理装置の構成]
次に図32乃至36を参照して、本発明の第4の実施の形態について説明する。図32は、本発明の第4の実施の形態における情報処理装置103の一構成例を示すブロック図である。情報処理装置103の構成は、クロック生成回路110および制御量出力部500の代わりにクロック生成回路113および制御量出力部503を備える点において第1の実施の形態の情報処理装置100と異なる。
【0165】
制御量出力部503は、電圧制御フラグおよび電圧制御量ΔVの代わりに、周波数制御フラグおよび周波数制御量Δfをクロック生成回路113に出力する点において第1の制御量出力部500と異なる。周波数制御フラグは、クロック信号CLKの周波数への周波数制御量Δfの加算をクロック生成回路113に指示する信号である。周波数制御量Δfは、クロック信号CLKの周波数を制御するための制御量である。例えば、クロック信号CLKのベースクロック自体の周波数の増減値や、ベースクロックに対する倍率の増減値が周波数制御量として出力される。クロック生成回路113は、周波数制御量の分、クロック信号CLKの周波数を制御する。
【0166】
図33は、本発明の第4の実施の形態における制御量出力部503の一構成例を示すブロック図である。制御量出力部503の構成は、タイムスライス制御部520および制御量演算部530の代わりにタイムスライス制御部560および周波数制御量出力部570を備える点において第1の実施の形態の制御量出力部500と異なる。タイムスライス制御部560は、電圧制御フラグ生成部523の代わりに周波数制御フラグ生成部561を備える点において第1の実施の形態のタイムスライス制御部520と異なる。
【0167】
周波数制御フラグ生成部561は、ダウンカウンタ521のカウンタ値に基づいて周波数制御フラグを生成するものである。周波数制御フラグの出力開始のタイミングは、電圧制御フラグの出力開始のタイミングと同様である。一方、周波数制御フラグの出力期間には、電圧制御フラグの出力期間より短い期間が設定される。
【0168】
周波数制御量出力部570は、周波数制御量変換テーブル571、周波数制御量取得部572、および、エラー未検出状態継続フラグ534を備える。
【0169】
周波数制御量変換テーブル571は、第2エラー数と周波数制御量Δfとを対応付けて記憶するものである。第2エラー数が許容値になるときの周波数が、最大動作周波数fmaxとして予め定められる。第2エラー数と周波数との間の関係に基づいて、第2エラー数ごとに、それらに対応する各周波数を最大動作周波数fmaxに制御するための周波数制御量Δfが周波数制御量変換テーブル571に格納される。
【0170】
周波数制御量取得部572は、第1エラー数および第2エラー数に基づいて、周波数制御量Δfを取得するものである。具体的には、周波数制御量取得部572は、第1エラーの発生率が第1の閾値より大きければ、クロック周波数を緊急低下させるなど、システムエラーを回避するための処理を実行する。第1エラーの発生率が第1の閾値以下であれば、周波数制御量取得部572は、エラー未検出の状態が一定期間、継続しているか否かを判断する。
【0171】
エラー未検出の状態が一定期間、継続していない場合、周波数制御量取得部572は、第2エラー数に対応する周波数制御量Δfを周波数制御量変換テーブル571から取得してクロック生成回路113へ出力する。
【0172】
一方、エラー未検出の状態が一定期間、継続していた場合、周波数制御量取得部572は、周波数を所定周波数、増加するための周波数制御量Δfを出力する。
【0173】
第4の実施の形態のエラー未検出状態継続カウンタ534の構成は、第1の実施の形態のエラー未検出状態継続カウンタ534と同様の構成である。
【0174】
[情報処理装置の動作]
図34を参照して、本発明の第4の実施の形態における情報処理装置103の動作について説明する。図34は、本発明の第4の実施の形態における周波数制御量取得処理の一例を示すフローチャートである。
【0175】
周波数制御量取得部572は、計数された第1エラー数が0であるか否かを判断する(ステップS951)。第1エラー数が0でない場合(ステップS951:No)、周波数制御量取得部572は、エラー未検出状態継続カウンタ534をリセットする。また、周波数制御量取得部572は、周波数制御量Δfmaxを出力して動作周波数を低下させる(ステップS952)。
【0176】
第1エラー数が0である場合(ステップS951:Yes)、周波数制御量取得部572は、第2エラーが未検出であり、かつ、エラー未検出状態継続フラグが1であるか否かを判断する(ステップS953)。
【0177】
第2エラーが検出された場合、または、エラー未検出状態継続フラグが0である場合(ステップS953:No)、周波数制御量取得部572は、第2エラー数に対応する値を周波数制御量変換テーブル571から読み出す。周波数制御量取得部572は、読み出した値をΔfとして出力する(ステップS954)。
【0178】
第2エラーが未検出であり、かつ、エラー未検出状態継続フラグが1である場合(ステップS953:Yes)、周波数制御量取得部572は、動作周波数を所定周波数、増加させるための周波数制御量Δfを出力する(ステップS955)。
【0179】
ステップS954またはS955の後、周波数制御量取得部572は、エラー未検出状態継続判断処理を実行する(ステップS940)。第4の実施の形態のエラー未検出状態継続判断処理は、第1の実施の形態のエラー未検出状態継続判断処理と同様である。ステップS952またはS940の後、周波数制御量取得部572は、周波数制御量取得処理を終了する。
【0180】
図35を参照して、周波数とエラー発生率との間の関係について説明する。図35は、本発明の第4の実施の形態における遷移頻度と周期内遷移時刻との間の関係を示すグラフである。図35において、縦軸はデータの遷移頻度であり、横軸は周期内遷移時刻である。周期内遷移時刻は、クロック信号に同期して演算が実行された場合に、そのクロック信号の周期内においてデータが遷移した時刻である。言い換えれば、周期内遷移時刻は、クロック信号の遷移タイミングに対して、データの遷移が遅延した時間である。遷移頻度は、複数回の演算をデータに対して実行して、各演算において、そのデータが遷移した時刻(すなわち、周期内遷移時刻)を測定し、時刻ごとの遷移回数を演算回数で除算した値である。例えば、1000回の演算を行い、そのうち、周期内遷移時刻9においてデータが遷移した回数が10回であった場合、周期内遷移時刻9における遷移頻度は、0.01となる。
【0181】
グラフにおいて「×」は、演算結果の16ビットのデータの遷移頻度をプロットしたものである。「△」は、16ビットのデータから生成された第1パリティビットの遷移頻度をプロットしたものである。「○」は、第1パリティビットから生成された第2パリティビットの遷移頻度をプロットしたものである。
【0182】
図35に示すように、データ(「×」)の遷移タイミングに対して、そのデータから生成される第1パリティビット(「△」)の遷移タイミングは遅延している。第1パリティビット(「△」)の遷移タイミングに対して、その第1パリティビットから生成される第2パリティビット(「○」)の遷移タイミングはさらに遅延する。
【0183】
動作周波数を速くしていくと、遅延時間が最も大きい第2パリティビットの遷移が間に合わなくなり、第2エラーの発生率が高くなる。図35においては、周期内遷移時刻「25」において第2パリティビットの遷移頻度が0であるが、周期内遷移時刻「26」では、遷移頻度が0より大きくなる。このため、周期内遷移時刻「25」に対応する周期になるまで周波数を増加すると、第2エラーが発生し始める。周波数を増加していくと、第2エラー数は周波数の増加に伴いさらに増加し、第1エラーの発生確率も増大していく。例えば、周期内遷移時刻「21」においては、第1パリティビットの遷移頻度が0より大きくなっている。このため、周期内遷移時刻「21」に対応する周期になるまで周波数を増加していくと、第1エラーが発生し始める。
【0184】
上述の関係に基づいて、第2エラー数が許容値になるときの周波数を最大動作周波数fmaxとして、第2エラー数ごとに、それらに対応する各周波数を最大動作周波数fmaxに制御するための周波数制御量Δfが求められる。
【0185】
このように、本発明の第4の実施の形態によれば、情報処理装置103は、第1エラーの発生率が第1の閾値以下であるときに、第2の閾値を第2エラーの発生率の目標値として周波数を制御する周波数制御量を出力する。この構成によれば、第1パリティビットを使用した検査により検出できないタイミング違反性エラーを、第2パリティビットを使用して検出することできる。したがって、第2パリティビットにより検出された第2エラーの発生率を第2の閾値にするための周波数制御量を出力することにより、タイミング違反性エラーの発生を防止することができる。情報処理装置103は、EDSおよびTRCやTD回路のように、特殊なフリップフロップを備える必要がない。このため、情報処理装置103は、回路規模が比較的小さくて済む。また、情報処理装置103は、タイミング違反性エラーに加えて、タイミング違反性エラー以外のエラーも第1パリティビットから検出できる。したがって、誤動作が生じない正確な周波数を容易に設定することができる。
【0186】
なお、周波数と第2エラーの発生率との間に指数関係が観察される回路の場合、第1の実施の形態と同様に、対数演算部を設けて、第2エラー数の対数に対応する周波数制御量を変換テーブルから読み出す構成とすることもできる。
【0187】
また、第1乃至第4の実施の形態においては、第1エラー数の許容値を0にしているが、0より大きな値を許容値に設定してもよいのは勿論である。例えば、図34のステップS951において、周波数制御量取得部572は、第1エラー数がERR_LIMIT(ERR_LIMITは0より大きい整数)以下であるか否かを判断してもよい。
【0188】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【0189】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
【符号の説明】
【0190】
100、103 情報処理装置
110、113 クロック生成回路
210、220 パイプラインレジスタ
310 演算器
410 パリティ生成部
420 第1パリティ生成部
421〜424、431、461〜468、471、472 XORゲート
430 第2パリティ生成部
450 パリティ検査部
460 第1パリティ検査部
469 ORゲート
470 第2パリティ検査部
500、501、502、503 制御量出力部
510 エラー計数部
511 第1エラーカウンタ
512 第2エラーカウンタ
520、560 タイムスライス制御部
521 ダウンカウンタ
522 スライス開始フラグ生成部
523 電圧制御フラグ生成部
530、540、550 制御量演算部
531 電圧制御量変換テーブル
532 対数演算部
533、541、551 電圧制御量取得部
534 エラー未検出状態継続カウンタ
542 第1上限値記憶部
552 第2上限値記憶部
561 周波数制御フラグ生成部
570 周波数制御量出力部
571 周波数制御量変換テーブル
572 周波数制御量取得部
700 電源装置
710 ステートマシン
720、740 切替器
730 加算器
750 電圧指標値レジスタ
760 電源回路

【特許請求の範囲】
【請求項1】
クロック信号に従ってデータを保持するとともに出力する第1の保持部と、
前記出力されたデータを処理して処理データとして出力する処理部と、
前記処理データから前記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成部と、
前記第1のエラー検出符号から前記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成部と、
前記クロック信号に従って前記処理データと前記第1および第2のエラー検出符号とを保持する第2の保持部と、
前記保持された第1のエラー検出符号を使用して前記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出部と、
前記保持された第2のエラー検出符号を使用して前記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出部と、
前記第1エラー検出部による前記第1のエラーの発生率が第1の閾値以下であり、かつ、前記第2エラー検出部による前記第2のエラーの発生率が第2の閾値より大きいときに、前記第2のエラーの発生率と前記処理部の電源電圧または前記クロック信号の周波数との間の所定の関係に基づいて、前記第2の閾値を前記第2のエラーの発生率の目標値として前記電源電圧または前記周波数を制御する制御量を出力する制御量出力部と
を具備する情報処理装置。
【請求項2】
前記制御量出力部は、
エラー検出単位期間内に検出された前記第1のエラーの数を計数する第1エラー計数部と、
前記エラー検出単位期間内に検出された前記第2のエラーの数を計数する第2エラー計数部と、
前記エラー検出単位期間において計数された前記第1エラーの数から得られた前記第1のエラーの発生率が前記第1の閾値以下であり、かつ、前記エラー検出単位期間において計数された前記第2エラーの数から得られた前記第2のエラーの発生率が前記第2の閾値より大きいときに前記所定の関係に基づいて前記制御量を生成する制御量生成部と
を備える請求項1記載の情報処理装置。
【請求項3】
前記制御量は、前記電源電圧の制御量であり、
前記制御量生成部は、
前記エラー検出単位期間において検出された前記第2のエラーの数の対数に、前記所定の関係から得られた前記制御量を対応付けて記憶する変換テーブルと、
前記エラー検出単位において計数された前記第2のエラーの数の対数を演算する対数演算部と、
前記エラー検出単位期間において計数された前記第1エラーの数から得られた前記第1のエラーの発生率が前記第1の閾値以下であり、かつ、前記エラー検出単位期間において計数された前記第2エラーの数から得られた前記第2のエラーの発生率が前記第2の閾値より大きいときに前記対数演算部により演算された前記対数に対応する前記制御量を前記変換テーブルから取得する電圧制御量取得部と
を備える請求項2記載の情報処理装置。
【請求項4】
前記対数演算部は、前記第2のエラーの数を2進表記したビット列において1のビットのうちの最上位の桁の値から1を減算した値を前記対数として出力する
請求項3記載の情報処理装置。
【請求項5】
前記制御量は、前記電源電圧の制御量であり、
前記制御量出力部は、前記第1のエラーの発生率が前記第1の閾値より大きければ、前記電源電圧を所定電圧昇圧するための前記制御量を出力する
請求項1記載の情報処理装置。
【請求項6】
前記制御量は、前記電源電圧の制御量であり、
前記制御量出力部は、所定の判断基準期間以上の間、前記第1のエラーの発生率が前記第1の閾値以下であり、かつ、前記第2のエラーの発生率が前記第2の閾値以下であれば、前記電源電圧を所定電圧降圧するための前記制御量を出力する
請求項1記載の情報処理装置。
【請求項7】
前記制御量は、前記電源電圧の制御量であり、
前記制御量生成部は、前記エラー検出単位期間ごとに前記制御量を生成し、それぞれの前記エラー検出単位期間において、前回に生成した前記制御量が0であったならば、前記所定の関係に基づいて今回の前記制御量を生成する
請求項2記載の情報処理装置。
【請求項8】
前記制御量生成部は、前記第2のエラーの発生率が第1の上限値以上である場合、または、前回に生成した前記制御量が0であった場合に前記所定の関係に基づいて今回の前記制御量を生成する
請求項7記載の情報処理装置。
【請求項9】
前記制御量生成部は、前記第2のエラー発生率が前記第1の上限値より大きい第2の上限値以上である場合に前記電源電圧を所定電圧昇圧するための前記制御量を生成する
請求項8記載の情報処理装置。
【請求項10】
前記制御量は、前記周波数の制御量であり、
前記制御量に従って周波数を設定した前記クロック信号を生成するクロック生成回路をさらに具備する
請求項1記載の情報処理装置。
【請求項11】
前記制御量出力部は、前記第1のエラーの発生率が前記第1の閾値より大きければ、前記周波数を所定周波数減少するための前記制御量を出力する
請求項10記載の情報処理装置。
【請求項12】
前記制御量出力部は、所定の判断基準期間以上の間、前記第1のエラーの発生率が前記第1の閾値以下であり、かつ、前記第2のエラーの発生率が前記第2の閾値以下であれば、前記周波数を所定周波数増加するための前記制御量を出力する
請求項10記載の情報処理装置。
【請求項13】
クロック信号に従ってデータを保持するとともに出力する第1の保持部と、前記出力されたデータを処理して処理データとして出力する処理部と、前記処理データから前記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成部と、前記第1のエラー検出符号から前記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成部と、前記クロック信号に従って前記処理データと前記第1および第2のエラー検出符号とを保持する第2の保持部と、前記保持された第1のエラー検出符号を使用して前記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出部と、前記保持された第2のエラー検出符号を使用して前記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出部と、前記第1エラー検出部による前記第1のエラーの発生率が第1の閾値以下であり、かつ、前記第2エラー検出部による前記第2のエラーの発生率が第2の閾値より大きいときに、前記第2のエラーの発生率と前記処理部の電源電圧または前記クロック信号の周波数との間の所定の関係に基づいて、前記第2の閾値を前記第2のエラーの発生率の目標値として前記電源電圧または前記周波数を制御する制御量を出力する制御量出力部とを具備する情報処理装置と、
前記情報処理装置に前記電源電圧を供給するとともに前記出力された制御量に基づいて前記電源電圧を制御する電源装置と
を具備する情報処理システム。
【請求項14】
処理部により処理された処理データから前記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成手順と、
前記第1のエラー検出符号から前記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成手順と、
クロック信号に従って前記処理データと前記第1および第2のエラー検出符号とを保持する保持部に保持された第1のエラー検出符号を使用して前記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出手順と、
前記保持された第2のエラー検出符号を使用して前記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出手順と、
前記第1エラー検出部による前記第1のエラーの発生率が第1の閾値以下であり、かつ、前記第2エラー検出部による前記第2のエラーの発生率が第2の閾値より大きいときに、前記第2のエラーの発生率と前記処理部の電源電圧または前記クロック信号の周波数との間の所定の関係に基づいて、前記第2の閾値を前記第2のエラーの発生率の目標値として前記電源電圧または前記周波数を制御する制御量を出力する制御量出力手順と
を具備する情報処理装置の制御方法。
【請求項15】
処理部により処理された処理データから前記処理データのエラーを検出するための第1のエラー検出符号を生成する第1エラー検出符号生成手順と、
前記第1のエラー検出符号から前記処理データのエラーを検出するための第2のエラー検出符号を生成する第2エラー検出符号生成手順と、
クロック信号に従って前記処理データと前記第1および第2のエラー検出符号とを保持する保持部に保持された第1のエラー検出符号を使用して前記保持された処理データのエラーを第1のエラーとして検出する第1エラー検出手順と、
前記保持された第2のエラー検出符号を使用して前記保持された処理データのエラーを第2のエラーとして検出する第2エラー検出手順と、
前記第1エラー検出部による前記第1のエラーの発生率が第1の閾値以下であり、かつ、前記第2エラー検出部による前記第2のエラーの発生率が第2の閾値より大きいときに、前記第2のエラーの発生率と前記処理部の電源電圧または前記クロック信号の周波数との間の所定の関係に基づいて、前記第2の閾値を前記第2のエラーの発生率の目標値として前記電源電圧または前記周波数を制御する制御量を出力する制御量出力手順と
をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2012−212291(P2012−212291A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−77214(P2011−77214)
【出願日】平成23年3月31日(2011.3.31)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究成果に係る特許出願(平成21年度独立行政法人新エネルギー・産業技術開発機構「極低電力回路・システム技術開発(グリーンITプロジェクト)」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】