特許第5834936号(P5834936)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧
特許5834936情報処理装置および情報処理装置の制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5834936
(24)【登録日】2015年11月13日
(45)【発行日】2015年12月24日
(54)【発明の名称】情報処理装置および情報処理装置の制御方法
(51)【国際特許分類】
   H03K 5/00 20060101AFI20151203BHJP
   H03K 19/0175 20060101ALI20151203BHJP
   G06F 1/10 20060101ALI20151203BHJP
   G06F 7/00 20060101ALI20151203BHJP
【FI】
   H03K5/00 K
   H03K19/00 101N
   H03K5/00 V
   G06F1/10
   G06F7/00 203
【請求項の数】7
【全頁数】29
(21)【出願番号】特願2012-6979(P2012-6979)
(22)【出願日】2012年1月17日
(65)【公開番号】特開2013-150048(P2013-150048A)
(43)【公開日】2013年8月1日
【審査請求日】2014年11月25日
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究成果に係る特許出願(平成21年度独立行政法人新エネルギー・産業技術開発機構「極低電力回路・システム技術開発(グリーンITプロジェクト)」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願)
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニー株式会社
(74)【代理人】
【識別番号】100112955
【弁理士】
【氏名又は名称】丸島 敏一
(72)【発明者】
【氏名】平入 孝二
【審査官】 柳下 勝幸
(56)【参考文献】
【文献】 特開2009−164733(JP,A)
【文献】 特表2006−508615(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 5/00
G06F 1/10
G06F 7/00
H03K 19/0175
(57)【特許請求の範囲】
【請求項1】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持部と、
前記実行結果が前記保持部に保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成部と
を具備し、
前記タイミング判断部は、前記立上りに同期して出力された前記データ信号に対応する前記実行結果が前記立下りに同期して前記保持部に保持されるまでの猶予期間である立下り猶予期間と前記立下りに同期して出力された前記データ信号に対応する前記実行結果が前記立上りに同期して前記保持部に保持されるまでの猶予期間である立上り猶予期間との各々が前記セットアップタイムを満たすか否かを判断し、
前記クロック制御部は、
前記立下り猶予期間または前記立上り猶予期間が前記セットアップタイムを満たさないと判断された場合には前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するタイミング制御部と、
前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たさないと判断された場合には前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たすように前記クロック信号の周期を長くするクロック周期制御部とを備える
情報処理装置。
【請求項2】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持部と、
前記実行結果が前記保持部に保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成部と
を具備し、
前記クロック制御部は、前記猶予期間が前記セットアップタイムを満たすまで前記一方のタイミングを早くする制御と前記猶予期間が前記セットアップタイムを満たすまで前記他方のタイミングを遅らせる制御との少なくとも一方を実行する
報処理装置。
【請求項3】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持部と、
前記実行結果が前記保持部に保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成部と、
前記処理部により出力された前記実行結果を遅延させて前記保持部へ出力する遅延部とを具備し、
前記タイミング判断部は、前記遅延部により遅延された実行結果が前記保持部に保持されるまでの期間を前記猶予期間として当該猶予期間が前記保持部のセットアップタイムを満たすか否かを判断する
報処理装置。
【請求項4】
前記遅延部により遅延された実行結果から当該実行結果のエラーを検出するためのエラー検出符号を生成するエラー検出符号生成部をさらに具備し、
前記タイミング判断部は、前記エラー検出符号を使用することにより前記遅延された実行結果のエラーを検出した場合には前記猶予期間について前記セットアップタイムを満たさないと判断する
請求項記載の情報処理装置。
【請求項5】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持部と、
前記実行結果が前記保持部に保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には所定電圧昇圧した前記電圧を前記電源供給部に供給させる電圧制御部と

を具備し、
前記処理部は、電源供給部から供給された電圧に応じた実行時間で前記データ信号に対して前記所定の処理を実行する
報処理装置。
【請求項6】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理手順と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持部に保持する保持手順と、
前記保持部に前記実行結果が保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断手順と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御手順と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成手順と
を具備し、
前記クロック制御手順において、前記猶予期間が前記セットアップタイムを満たすまで前記一方のタイミングを早くする制御と前記猶予期間が前記セットアップタイムを満たすまで前記他方のタイミングを遅らせる制御との少なくとも一方を実行する
情報処理装置の制御方法。
【請求項7】
クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理手順と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持部に保持する保持手順と、
前記保持部に前記実行結果が保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断手順と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御手順と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成手順と
前記処理手順により出力された前記実行結果を遅延させて前記保持部へ出力する遅延手順とを具備し、
前記タイミング判断手順において、前記遅延手順により遅延された実行結果が前記保持部に保持されるまでの期間を前記猶予期間として当該猶予期間が前記保持部のセットアップタイムを満たすか否かを判断する
情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理装置、および、その制御方法に関する。詳しくは、クロック信号に同期して動作する情報処理装置、および、その制御方法に関する。
【背景技術】
【0002】
クロック信号に同期して動作する回路では、そのクロック信号に同期してデータ信号を保持するとともに出力するレジスタなどの記憶素子と、その出力されたデータ信号に対して論理演算などの処理を実行する組合せ論理回路による処理回路とが設けられる。このような回路においては、処理回路からの実行結果の出力のタイミングをクロック信号に同期させる場合に、その出力のタイミングを調整するためのリタイミング回路がさらに設けられることがある。例えば、入力された信号をクロック信号に同期して保持するとともに出力するフリップフロップを備えるリタイミング回路が提案されている(特許文献1参照。)。
【0003】
このようなリタイミング回路では、処理回路へデータ信号が出力されるタイミング(例えば、立上がりのタイミング)と異なるタイミング(例えば、立下りのタイミング)で、そのデータ信号に対する処理の実行結果を保持する場合がある。処理回路へのデータ信号の出力のタイミングに対して、実行結果を保持するタイミングを遅らせることにより、実行結果が確実に保持され、リタイミング回路におけるタイミングエラーの発生が抑制される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−290775号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述の従来技術では、タイミングエラーの発生を抑制することができないおそれがある。例えば、処理回路の電圧の低下などの原因により、処理回路における実行時間が長くなることがある。実行時間が長くなると、実行結果の出力が後れて、その実行結果がリタイミング回路に保持されるまでの猶予期間がリタイミング回路のセットアップタイムに満たなくなるおそれがある。ここで、セットアップタイムは、リタイミング回路などに対してデータの取り込みが指示されるタイミングに先立って、出力側の回路(処理回路など)が予めデータ信号を出力し続けるべき時間である。猶予期間がセットアップタイムを満たさない場合には、リタイミング回路が実行結果の保持に失敗し、タイミングエラーが生じてしまうことになる。
【0006】
本技術はこのような状況に鑑みて生み出されたものであり、クロック信号に同期して動作する回路において、タイミングエラーの発生を抑制することを目的とする。
【課題を解決するための手段】
【0007】
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、上記立上りおよび上記立下りのうちの他方のタイミングに同期して上記実行結果を保持する保持部と、上記実行結果が上記保持部に保持されるまでの猶予期間が上記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、上記猶予期間がセットアップタイムを満たさないと判断された場合には上記猶予期間が上記セットアップタイムを満たすように上記立上りおよび上記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、上記制御されたタイミングに従って上記クロック信号を生成するクロック生成部とを具備する情報処理装置、および、その制御方法である。これにより、猶予期間がセットアップタイムを満たすように、立上りおよび立下りのうちの少なくとも一方のタイミングが制御されるという作用をもたらす。
【0008】
また、この第1の側面において、上記判断部は、上記立上りに同期して出力された上記データ信号に対応する上記実行結果が上記立下りに同期して上記保持部に保持されるまでの猶予期間である立下り猶予期間と上記立下りに同期して出力された上記データ信号に対応する上記実行結果が上記立上りに同期して上記保持部に保持されるまでの猶予期間である立上り猶予期間との各々が上記セットアップタイムを満たすか否かを判断し、上記クロック制御部は、上記立下り猶予期間または上記立上り猶予期間が上記セットアップタイムを満たさないと判断された場合には上記立下り猶予期間および上記立上り猶予期間がいずれも上記セットアップタイムを満たすように上記立上りおよび上記立下りのうちの少なくとも一方のタイミングを制御するタイミング制御部と、上記立下り猶予期間および上記立上り猶予期間がいずれも上記セットアップタイムを満たさないと判断された場合には上記立下り猶予期間および上記立上り猶予期間がいずれも上記セットアップタイムを満たすように上記クロック信号の周期を長くするクロック周期制御部とを備えてもよい。これにより、立下り猶予期間および上記立上り猶予期間がいずれも上記セットアップタイムを満たすように上記クロック信号の周期が長くなるという作用をもたらす。
【0009】
また、この第1の側面において、上記クロック制御部は、上記猶予期間が上記セットアップタイムを満たすまで上記一方のタイミングを早くする制御と上記猶予期間が上記セットアップタイムを満たすまで上記他方のタイミングを遅らせる制御との少なくとも一方を実行してもよい。これにより、猶予期間がセットアップタイムを満たすまで一方のタイミングを早くする制御と猶予期間がセットアップタイムを満たすまで他方のタイミングを遅くする制御とのうちの少なくとも一方が実行されるという作用をもたらす。
【0010】
また、この第1の側面において、上記処理部により出力された上記実行結果を遅延させて上記保持部へ出力する遅延部をさらに具備し、上記タイミング判断部は、上記遅延部により遅延された実行結果が上記保持部に保持されるまでの期間を上記猶予期間として当該猶予期間が上記保持部のセットアップタイムを満たすか否かを判断してもよい。これにより、遅延された実行結果が保持部に保持されるまでの猶予期間が保持部のセットアップタイムを満たすか否かが判断されるという作用をもたらす。
【0011】
また、この第1の側面において、上記遅延部により遅延された実行結果から当該実行結果のエラーを検出するためのエラー検出符号を生成するエラー検出符号生成部をさらに具備し、上記タイミング判断部は、上記エラー検出符号を使用することにより上記遅延された実行結果のエラーを検出した場合には上記猶予期間について上記セットアップタイムを満たさないと判断してもよい。これにより、エラー検出符号を使用することにより実行結果のエラーが検出された場合に猶予期間がセットアップタイムを満たさないと判断されるという作用をもたらす。
【0012】
また、この第1の側面において、上記処理部は、電源供給部から供給された電圧に応じた実行時間で上記データ信号に対して上記所定の処理を実行し、上記猶予期間がセットアップタイムを満たさないと判断された場合には所定電圧昇圧した上記電圧を上記電源供給部に供給させる電圧制御部とをさらに具備してもよい。これにより、猶予期間がセットアップタイムを満たさない場合に所定電圧昇圧した電圧が保持部に供給されるという作用をもたらす。
【発明の効果】
【0013】
本技術によれば、クロック信号に同期して動作する回路において、タイミングエラーの発生が抑制されるという優れた効果を奏し得る。
【図面の簡単な説明】
【0014】
図1】第1の実施の形態における情報処理装置の一構成例を示す全体図である。
図2】第1の実施の形態における情報処理装置の一構成例を示すブロック図である。
図3】第1の実施の形態におけるパリティ生成部の一構成例を示すブロック図である。
図4】第1の実施の形態におけるパリティ検査部の一構成例を示すブロック図である。
図5】第1の実施の形態におけるマスタプロセッサの一構成例を示すブロック図である。
図6】第1の実施の形態におけるクロック制御部の動作の一例を示す表である。
図7】第1の実施の形態におけるクロック生成部200の一構成例を示すブロック図である。
図8】第1の実施の形態におけるクロック生成回路の動作の一例を示す表である。
図9】第1の実施の形態におけるクロック生成部の動作を示すタイミングチャートである。
図10】第1の実施の形態におけるエラー未検出時の情報処理装置の動作を示すタイミングチャートである。
図11】第1の実施の形態におけるPNエラー検出時の情報処理装置の動作を示すタイミングチャートである。
図12】第1の実施の形態におけるPNエラー低減時の情報処理装置の動作を示すタイミングチャートである。
図13】第1の実施の形態におけるNPエラー検出時の情報処理装置の動作を示すタイミングチャートである。
図14】第1の実施の形態におけるNPエラー低減時の情報処理装置の動作を示すタイミングチャートである。
図15】第1の実施の形態におけるPNエラーおよびNPエラー低減時の情報処理装置の動作を示すタイミングチャートである。
図16】第1の実施の形態におけるクロック制御部の動作の一例を示すフローチャートである。
図17】第2の実施の形態におけるマスタプロセッサの一構成例を示すブロック図である。
図18】第2の実施の形態における電圧制御部の動作の一例を示す表である。
図19】第3の実施の形態における情報処理装置の一構成例を示すブロック図である。
図20】第3の実施の形態におけるパリティ生成部の一構成例を示すブロック図である。
図21】第3の実施の形態におけるパリティ検査部の一構成例を示すブロック図である。
図22】第3の実施の形態におけるマスタプロセッサの一構成例を示すブロック図である。
図23】第3の実施の形態におけるクロック制御部の動作の一例を示す表である。
【発明を実施するための形態】
【0015】
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(エラーの発生頻度が高い場合にエッジタイミングを制御する例)
2.第2の実施の形態(エラーの発生頻度が高い場合にエッジタイミングおよび電圧を制御する例)
3.第3の実施の形態(猶予期間を短くした状態におけるエラーの発生頻度が高い場合にエッジタイミングを制御する例)
【0016】
<1.第1の実施の形態>
[情報処理装置の構成例]
図1は、実施の形態における情報処理装置100の一構成例を示す全体図である。情報処理装置100は、様々な情報処理を実行する装置であり、クロック生成部200およびマスタプロセッサ600を備える。また、情報処理装置100は、複数段のパイプラインレジスタと、パリティ検査部520および550とを備える。これらのパイプラインレジスタのうちの1段目のパイプラインレジスタ310は処理対象のデータを供給し、2段目以降の複数段(例えば、16段)のパイプラインレジスタ320は、パイプライン処理における所定のステージの実行結果を保持する。これらのパイプラインレジスタ310および320は、例えば、クロック信号の立上りに同期して動作する。立上りに同期して動作するパイプラインレジスタ(310および320)の各段の間には、タイミングを調整するために、例えば、クロック信号の立下りに同期して動作するパイプラインレジスタ330が挿入される。パイプラインレジスタ320を16段とした場合、パイプラインレジスタ330も16段挿入される。
【0017】
クロック生成部200は、マスタプロセッサ600により制御されるクロック周期pCK、立上りエッジタイミングtRおよび立下りエッジタイミングtFに従って、基準クロック信号bCLKからクロック信号CLKを生成するものである。このクロック生成部200は、基準クロック信号bCLKの周波数を分周し、その分周した信号をクロック信号CLKとして出力する。分周における分周比は、クロック周期pCKに対応する周波数(f)と基準クロック信号bCLKの周波数(f)との比率(f/f)である。また、クロック生成部200は、立上りエッジタイミングtRおよび立下りエッジタイミングtFに従って、クロック信号CLKのエッジタイミングを調整する。クロック生成部200は、分周した信号をクロック信号CLKとしてパイプラインレジスタ(310、320および330など)と、マスタプロセッサ600とに出力する。また、クロック生成部200は、リセット信号RSTが入力された場合には、クロック信号CLKの生成および出力を停止する。
【0018】
パイプラインレジスタ310は、クロック信号CLKの立上りに同期して処理対象のデータを保持するとともにパイプラインレジスタ320に出力するものである。パイプラインレジスタ310が保持するデータは、例えば、16ビットのデータを含む。
【0019】
パイプラインレジスタ320および330は、クロック信号CLKに同期してパイプライン処理における所定のステージの実行結果を保持するとともに出力するものである。また、パイプラインレジスタ320および330は、実行結果に加えて、その実行結果のエラーを検出するためのパリティビットを保持する。パイプラインレジスタ320および330に保持される実行結果は、例えば、16ビットのデータを含む。パイプラインレジスタ320は、クロック信号CLKの立上りに同期して動作し、偶数段目に配置される。パイプラインレジスタ330は、クロック信号CLKの立下りに同期して動作し、奇数段目に配置される。これらのパイプラインレジスタ320等の間には、パリティビットを生成するパリティ生成部と、所定の演算を実行する演算器とが挿入されており、これらは、図1において省略されている。これらのパリティ生成部および演算器の構成の詳細については後述する。
【0020】
パリティ検査部520は、偶数段目のパイプラインレジスタ320に保持されたパリティビットを使用してパイプラインレジスタ320に保持されたデータにおけるエラーを検出するものである。パリティ検査部520は、その検出結果をマスタプロセッサ600へ出力する。偶数段目のパイプラインレジスタ320の各々に、パリティ検査部520が設けられており、これらのパリティ検査部520は、パリティエラーの検出結果をエラー情報E_PN1乃至16としてマスタプロセッサ600へ出力する。
【0021】
パリティ検査部550は、奇数段目のパイプラインレジスタ330に保持されたパリティビットを使用してパイプラインレジスタ330に保持されたデータにおけるエラーを検出するものである。パリティ検査部550は、その検出結果をマスタプロセッサ600へ出力する。奇数段目のパイプラインレジスタ330の各々に、パリティ検査部550が設けられており、これらのパリティ検査部550は、パリティエラーの検出結果をエラー情報E_NP1乃至16としてマスタプロセッサ600へ出力する。
【0022】
マスタプロセッサ600は、エラーの検出結果に基づいてクロック周期pCK、立上りエッジタイミングtRおよび立下りエッジタイミングtFを制御するものである。制御内容の詳細については後述する。
【0023】
図2は、実施の形態における情報処理装置100の一構成例を示すブロック図である。図2に示すように、情報処理装置100には、パリティ生成部510および540と、演算器410、420および430とが設けられている。
【0024】
1段目のパイプラインレジスタ310は、クロック信号CLKの立上りに同期してデータを保持するとともに信号線319を介して演算器410へ出力する。
【0025】
偶数段目のパイプラインレジスタ320は、クロック信号CLKの立下りに同期して実行結果およびパリティビットを保持するとともに出力する。パイプラインレジスタ320は、例えば、16ビットのデータを含む実行結果と、4ビットのパリティビットとを保持する。パイプラインレジスタ320は、信号線328を介して演算器420およびパリティ検査部520へデータを出力し、信号線329を介してパリティ検査部520へパリティビットを出力する。
【0026】
3段目以降の奇数段目のパイプラインレジスタ330は、クロック信号CLKの立上りに同期して実行結果およびパリティビットを保持するとともに出力する。パイプラインレジスタ330は、例えば、16ビットのデータを含む実行結果と、4ビットのパリティビットとを保持する。パイプラインレジスタ330は、信号線338を介して演算器430およびパリティ検査部550へデータを出力し、信号線339を介してパリティ検査部550へパリティビットを出力する。なお、パイプラインレジスタ320および330は、特許請求の範囲における保持部の一例である。
【0027】
演算器410は、1段目のパイプラインレジスタ310が出力したデータに対して所定の演算を実行するものである。演算器410は、演算の実行結果をパリティ生成部510およびパイプラインレジスタ320に信号線419を介して出力する。この実行結果は、例えば、16ビットのデータを含む。演算器420は、偶数段目のパイプラインレジスタ320が出力したデータに対して所定の演算を実行するものであり、演算器430は、3段目以降の奇数段目のパイプラインレジスタ330が出力したデータに対して所定の演算を実行するものである。なお、演算器410、420および430は、特許請求の範囲における処理部の一例である。
【0028】
パリティ生成部510は、演算器410が出力した実行結果からパリティビットを生成する。パリティ生成部510は、例えば、16ビットのデータを構成する4つの4ビットのビット列のそれぞれに対してXOR(排他的論理和)演算を実行することにより、4ビットのパリティビットを生成する。パリティ生成部510は、生成したパリティビットをパイプラインレジスタ320に信号線519を介して出力する。パリティ生成部510以外のパリティ生成部の構成は、パリティ生成部510と同様である。
【0029】
パリティ検査部520は、パイプラインレジスタ320に保持されたパリティビットを使用してパイプラインレジスタ320に保持されたデータにおけるエラーを検出する。パリティ検査部520は、例えば、16ビットのデータを構成する4つの4ビットのビット列それぞれに対してXOR演算を実行することにより、4ビットのパリティビットを生成する。そして、パリティ検査部520は、生成したパリティビットとパイプラインレジスタ320に保持されたパリティビットとを比較し、比較結果の各々のOR(論理和)演算の結果を示す1ビットの情報をエラーの検出結果として生成する。パリティ検査部520は、その検出結果をマスタプロセッサ600へ信号線539を介して出力する。
【0030】
ここで、パリティ検査部520により検出されたエラーは、演算器410からの実行結果がパイプラインレジスタ320に保持されるまでの猶予期間が、パイプラインレジスタ320のセットアップタイムに満たない場合に検出される。言い換えれば、このエラーは、立上りエッジ(Positive edge)に同期して出力されたデータ信号に対する演算の実行結果が、立下りエッジ(Negative edge)のタイミングで保持されなかった場合に検出される。このようなエラーを以下、「PNエラー」と称する。16個のパリティ検査部520は、検出結果としてPNエラー情報E_PN1乃至E_PN16を出力する。
【0031】
パリティ検査部550は、パイプラインレジスタ330に保持されたパリティビットを使用してパイプラインレジスタ330に保持されたデータにおけるエラーを検出するものである。パリティ検査部550の構成は、パリティ検査部520の構成と同様である。パリティ検査部550は、エラーの検出結果をマスタプロセッサ600へ信号線559を介して出力する。
【0032】
ここで、パリティ検査部550により検出されたエラーは、演算器420からの実行結果がパイプラインレジスタ330に保持されるまでの猶予期間が、パイプラインレジスタ330のセットアップタイムに満たない場合に検出される。言い換えれば、このエラーは、立下りエッジ(Negative edge)に同期して出力されたデータ信号に対する演算の実行結果が、立上りエッジ(Positive edge)のタイミングで保持されなかった場合に検出される。このようなエラーを以下、「NPエラー」と称する。16個のパリティ検査部550は、検出結果としてNPエラー情報E_NP1乃至E_NP16を出力する。なお、パリティ検査部520および550は、特許請求の範囲におけるタイミング判断部の一例である。
【0033】
マスタプロセッサ600は、PNエラーまたはNPエラーが検出された(すなわち、猶予期間がセットアップタイムに満たない)場合に、猶予期間がセットアップタイムを満たすようにエッジタイミングを制御する。
【0034】
具体的には、PNエラーが検出された場合には、マスタプロセッサ600は、立上りエッジタイミングtRを早くする制御と立下りエッジタイミングtFを遅くする制御とのうちの少なくとも一方を実行する。この制御により、クロック信号CLKのデューティ比が高くなる。この結果、立上りに同期して出力されたデータ信号に対する演算の実行結果が、立下りのタイミングで保持されるまでの猶予期間が長くなり、セットアップタイムが満たされるようになる。したがって、PNエラーの発生頻度が低減する。
【0035】
一方、NPエラーが検出された場合には、マスタプロセッサ600は、立上りエッジタイミングtRを遅くする制御と立下りエッジタイミングtFを早くする制御とのうちの少なくとも一方を実行する。この制御により、クロック信号CLKのデューティ比が低くなる。この結果、立下りに同期して出力されたデータ信号に対する演算の実行結果が、立上りのタイミングで保持されるまでの猶予期間が長くなり、セットアップタイムが満たされるようになる。したがって、NPエラーの発生頻度が低減する。
【0036】
ここで、PNエラーおよびNPエラーの両方が検出された場合には、エッジタイミングの制御では、PNエラーおよびNPエラーの両方の発生頻度をいずれも低減させることは困難である。これは、PNエラーの発生頻度を低減するにはデューティ比が高くなる制御を行う必要があるのに対し、NPエラーの発生頻度を低減するにはデューティ比が低くなる制御を行う必要があるためである。そこで、PNエラーおよびNPエラーの両方が検出された場合には、マスタプロセッサ600は、クロック周期pCKを長くする制御を実行する。クロック周期pCKを長くすることにより、実行結果が立下りに同期して保持されるまでの猶予期間と実行結果が立上りに同期して保持されるまでの猶予期間との両方が長くなる。この結果、両方の猶予期間がいずれもセットアップタイムを満たすようになり、PNエラーおよびNPエラーの発生頻度が低減する。
【0037】
なお、マスタプロセッサ600は、特許請求の範囲に記載のクロック制御部の一例である。また、情報処理装置100は、パリティ検査を行っているが、猶予期間がセットアップに満たないか否かを判断することができるのであれば、パリティ検査以外の処理を実行することもできる。例えば、情報処理装置100は、猶予期間がセットアップに満たないか否かを判断するために、チェックサムやハッシュ関数などを使用してエラーを検出する処理を実行してもよい。
【0038】
[パリティ生成部の構成例]
図3は、第1の実施の形態におけるパリティ生成部510の一構成例を示すブロック図である。このパリティ生成部510は、XORゲート511乃至514を備える。
【0039】
XORゲート511乃至514は、入力値の排他的論理和を出力するものである。演算器410から出力される16ビットのデータは、それぞれが4ビットのビット列からなる4つのグループに分けられる。XORゲート511乃至514には、それぞれ異なるグループに属するビット列が入力される。XORゲート511乃至514は、入力されたビット列の排他的論理和をパリティビットとしてパイプラインレジスタ320へ出力する。
【0040】
[パリティ検査部の構成例]
図4は、第1の実施の形態におけるパリティ検査部520の一構成例を示すブロック図である。このパリティ検査部520は、XORゲート521乃至528とORゲート529を備える。
【0041】
XORゲート521乃至528は、入力値の排他的論理和を出力するものである。XORゲート521乃至524には、それぞれ異なるグループに属する4ビットのビット列が入力される。XORゲート521乃至524は、入力値の排他的論理和を、それぞれ、XORゲート525乃至528へ出力する。これらの排他的論理和は、それぞれ、対応するグループに属する4ビットのうちの「1」のビットが偶数個である場合に「0」となるevenパリティビットである。
【0042】
XORゲート525乃至528には、それぞれ、XORゲート521乃至524からの互いに異なるパリティビットと、パイプラインレジスタ320からのパリティビットとが1つずつ入力される。XORゲート525乃至528は、これらの入力値の排他的論理和をエラー情報としてORゲート529へ出力する。これらのエラー情報は、それぞれ、対応するグループに属するビット列にパリティエラーが検出された場合に「1」となり、検出されない場合に「0」となる1ビットの情報である。
【0043】
ORゲート529は、入力値の論理和を出力するものである。このORゲート529は、XORゲート525乃至528からのエラー情報の論理和をPNエラー情報E_PN1としてマスタプロセッサ600へ出力する。
【0044】
[マスタプロセッサの構成例]
図5は、第1の実施の形態におけるマスタプロセッサ600の一構成例を示すブロック図である。このマスタプロセッサ600は、エラー計数部610、タイムスライス制御部620、および、クロック制御部630を備える。
【0045】
エラー計数部610は、所定の計数期間内に検出されたエラーの数を計数するものである。この計数期間を以下、「タイムスライス」と称する。タイムスライスの長さには、クロック信号CLKのクロック周期より長い期間が設定される。例えば、タイムスライスの長さには、クロック信号CLKの周期の129倍の期間(すなわち、129クロックサイクル)が設定される。エラー計数部610は、PNエラー累和器611、PNエラーカウンタ612、NPエラー累和器613およびNPエラーカウンタ614を備える。
【0046】
PNエラー累和器611は、1クロック周期内において検出されたPNエラーの合計値を算出するものである。PNエラー累和器611には、PNエラー情報E_PN1乃至16からなる16ビットのビット列が入力される。PNエラー累和器611は、このビット列における「1」の値のビット数(すなわち、PNエラーの合計値)を算出する。PNエラー累和器611は、算出した合計値をPNエラーカウンタ612に出力する。
【0047】
NPエラー累和器613は、1クロック周期内において検出されたNPエラーの合計値を算出するものである。NPエラー累和器613には、NPエラー情報E_NP1乃至16からなる16ビットのビット列が入力される。NPエラー累和器613は、このビット列における「1」の値のビット数を算出してNPエラーカウンタ614に出力する。
【0048】
PNエラーカウンタ612は、タイムスライス内に検出されたPNエラーの数を計数するものである。PNエラーカウンタ612は、クロック信号CLKに同期してPNエラー累和器611からの合計値をカウント値に加算する。PNエラーカウンタ612は、カウント値をPNエラー総数E_PNtotalとしてクロック制御部630に出力する。また、PNエラーカウンタ612は、エラー数リセット信号eRSTが入力された場合には、カウント値を初期値(例えば、「0」)にする。
【0049】
NPエラーカウンタ614は、タイムスライス内に検出されたNPエラーの数を計数するものである。NPエラーカウンタ614は、クロック信号CLKに同期してNPエラー累和器613からの合計値をカウント値に加算する。NPエラーカウンタ614は、カウント値をNPエラー総数E_NPtotalとしてクロック制御部630に出力する。また、NPエラーカウンタ614は、エラー数リセット信号eRSTが入力された場合には、カウント値を初期値(例えば、「0」)にする。
【0050】
タイムスライス制御部620は、タイムスライス内において、クロック信号CLKを制御するタイミングを指示するものである。タイムスライス制御部620は、タイムスライスカウンタ621およびスライス開始フラグ生成部622を備える。
【0051】
タイムスライスカウンタ621は、タイムスライス内の経過時間を計数するものである。このタイムスライスカウンタ621は、クロック信号CLKのクロック周期が経過するたびに、例えば、カウント値を1つ減分する。カウント値が「0」となった次のクロック周期において、タイムスライスカウンタ621は、カウント値を初期値(例えば、10進法で「128」)にリセットする。
【0052】
スライス開始フラグ生成部622は、タイムスライスカウンタ621のカウント値に基づいてスライス開始フラグおよびエラー数リセット信号eRSTを生成するものである。スライス開始フラグは、タイムスライス内の所定のタイミングにおいてクロック信号の周期およびエッジタイミングの制御量の出力を指示する信号である。スライス開始フラグ生成部622は、例えば、タイムスライスカウンタ621の値が「126」であるときに、スライス開始フラグを生成してクロック制御部630へ出力する。そして、スライス開始フラグを出力した次のクロック周期において、スライス開始フラグ生成部622は、エラー計数部610へエラー数リセット信号eRSTを出力する。
【0053】
クロック制御部630は、エラー数に基づいてクロック信号CLKの周期およびエッジタイミングを制御するものである。このクロック制御部630は、スライス開始フラグが入力されると、PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalを参照する。PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも所定の閾値未満である場合には、クロック制御部630は、クロック周期pCKと、立上りエッジタイミングtRおよび立下りエッジタイミングtFとを初期値に制御する。
【0054】
ここで、クロック周期pCKには、例えば、基準クロック信号bCLKの周期に対する逓倍数(言い換えれば、分周比の逆数)が設定される。例えば、分周比が「1/10」に制御される場合には、10進法で「10」の値がクロック周期pCKとして設定される。また、立上りエッジタイミングtRおよび立下りエッジタイミングtFには、クロック信号CLKの周期の開始時点から、立上りまたは立下りのタイミングまでの経過時間を基準クロック信号bCLKの周期で除した値が設定される。例えば、クロック信号CLKの周期の開始時点から、基準クロック信号bCLKの5クロック分が経過する時点を立下りのタイミングとする場合、立下りエッジタイミングtFには、10進法で「5」の値が設定される。
【0055】
PNエラー総数E_PNtotalが閾値以上であり、かつ、NPエラー総数E_NPtotalが閾値未満である場合には、クロック制御部630は、PNエラーの発生頻度を低減するための制御を行う。具体的には、クロック制御部630は、立上りエッジタイミングtRを早くする制御と、立下りエッジタイミングtFを遅くする制御とのうちの少なくとも一方を行う。
【0056】
PNエラー総数E_PNtotalが閾値未満であり、かつ、NPエラー総数E_NPtotalが閾値以上である場合には、クロック制御部630は、NPエラーの発生頻度を低減するための制御を行う。具体的には、クロック制御部630は、立下りエッジタイミングtFを早くする制御と、立上りエッジタイミングtRを遅くする制御とのうちの少なくとも一方を行う。
【0057】
PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも閾値以上である場合には、クロック制御部630は、クロック周期pCKを長くする制御を行う。
【0058】
なお、PNエラー総数E_PNtotalに対応する閾値と、NPエラー総数E_NPtotalに対応する閾値とを同じ値としているが、これらの閾値を異なる値に設定してもよい。これらの閾値は、エラーを検出するパリティ検査部の数や、パイプラインレジスタの仕様に応じて適切な値が設定される。例えば、PNエラーを検出するパリティ検査部の数が、NPエラーを検出するパリティ検査部の数よりも多い場合には、PNエラー総数E_PNtotalに対応する閾値を、NPエラー総数E_NPtotalに対応する閾値より大きく設定すればよい。
【0059】
図6は、第1の実施の形態におけるクロック制御部630の動作の一例を示す表である。スライス開始フラグが入力されると、クロック制御部630は、PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalを参照する。PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも閾値未満である場合には、クロック制御部630は、クロック周期pCKと、立上りエッジタイミングtRおよび立下りエッジタイミングtFとを初期値に制御する。クロック周期pCKの初期値は、例えば「10」であり、立上りエッジタイミングtRおよび立下りエッジタイミングtFの初期値は、例えば、「0」および「5」である。
【0060】
PNエラー総数E_PNtotalのみが閾値以上である場合には、クロック制御部630は、例えば、立上りエッジタイミングtRを「0」に立下りエッジタイミングtFを「7」に制御する。また、クロック周期pCKは、「10」に制御される。
【0061】
NPエラー総数E_NPtotalのみが閾値以上である場合には、クロック制御部630は、例えば、立上りエッジタイミングtRを「2」に立下りエッジタイミングtFを「5」に制御する。また、クロック周期pCKは、「10」に制御される。
【0062】
PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも閾値以上である場合には、クロック制御部630は、クロック周期pCKを「14」に変更する。また、クロック周期pCKの変更の前後においてデューティ比は同じ値であることが望ましい。このため、クロック制御部630は、例えば、立上りエッジタイミングtRを「0」に、立下りエッジタイミングtFを「7」に制御する。
【0063】
[クロック生成部の構成例]
図7は、第1の実施の形態におけるクロック生成部200の一構成例を示すブロック図である。クロック生成部200は、クロック生成回路210、経過時間カウンタ220、および、レジスタ230を備える。
【0064】
経過時間カウンタ220は、基準クロック信号bCLKに同期して数値を計数するものである。経過時間カウンタ220は、計数した数値をカウント値cCNTとしてクロック生成回路210に信号線229を介して出力するとともに自身に帰還させる。また、経過時間カウンタ220は、カウント値の初期化を指示するカウンタリセット信号cRSTが入力された場合には、カウント値cCNTを初期値にリセットする。
【0065】
クロック生成回路210は、クロック信号CLKの信号値を生成するものである。このクロック生成回路210には、立上りエッジタイミングtR、立下りエッジタイミングtF、クロック周期pCK、リセット信号RST、および、カウント値cCNTが入力される。クロック生成回路210は、カウント値cCNTと、立上りエッジタイミングtR、立下りエッジタイミングtFおよびクロック周期pCKとを比較する。カウント値cCNTが立上りエッジタイミングtR以上かつ立下りエッジタイミングtF未満である場合には、クロック生成回路210は、「1」の値をクロック信号値VALとしてレジスタ230に信号線219を介して出力する。それ以外の場合には、クロック生成回路210は、「0」の値をクロック信号値VALとしてレジスタ230に出力する。
【0066】
また、カウント値cCNTがクロック周期pCKと一致する場合には、クロック生成回路210は、カウンタリセット信号cRSTを経過時間カウンタ220に信号線218を介して出力する。リセット信号RSTが入力された場合には、クロック生成回路210は、「0」の値をクロック信号値VALとしてレジスタ230に出力するとともにカウンタリセット信号cRSTを経過時間カウンタ220に出力する。
【0067】
このように、基準クロック信号bCLKに同期して計数されたカウント値がクロック周期pCKの周期で初期化されるため、このクロック周期pCKで生成されるクロック信号CLKは、基準クロック信号bCLKを分周した信号となる。
【0068】
なお、クロック生成部200は、マスタプロセッサ600の制御に従って、経過時間カウンタ220を使用してクロック信号CLKの周期およびタイミングを変更しているが、クロック生成部200の構成は、図7に例示した構成に限定されない。例えば、タイミングの変更は、位相比較器を使用して行ってもよい。また、周期の変更は、例えば、PLL(Phased Lock Loop)および分周器を使用して行ってもよい。
【0069】
レジスタ230は、基準クロック信号bCLKに同期して、クロック信号値VALを保持するとともにクロック信号CLKとしてパイプラインレジスタ310等へ出力するものである。クロック生成回路210がクロック信号値VALを生成する処理において遅延時間が生じても、レジスタ230の動作により、クロック信号CLKの値の遷移のタイミングが調整される。
【0070】
図8は、第1の実施の形態におけるクロック生成回路210の動作の一例を示す表である。リセット信号RSTが入力された場合には、クロック生成回路210は、「0」の値をクロック信号値VALとして出力し、カウンタリセット信号cRSTを出力する。リセット信号RSTが入力されていない場合には、クロック生成回路210は、カウント値cCNTと、立上りエッジタイミングtR、立下りエッジタイミングtFおよびクロック周期pCKとを比較する。比較した結果、カウント値cCNTが立上りエッジタイミングtR未満である場合には、クロック生成回路210は、「0」の値をクロック信号値VALとして出力する。カウント値cCNTが立上りエッジタイミングtR以上かつ立下りエッジタイミングtF未満である場合には、クロック生成回路210は、「1」の値をクロック信号値VALとして出力する。カウント値cCNTが立下りエッジタイミングtF以上である場合には、クロック生成回路210は、「0」の値をクロック信号値VALとして出力する。カウント値cCNTがクロック周期pCKに一致する場合には、クロック生成回路210は、カウンタリセット信号cRSTを出力する。
【0071】
[クロック生成部の動作例]
図9は、第1の実施の形態におけるクロック生成部200の動作を示すタイミングチャートである。リセット信号RSTが入力されていない場合には、経過時間カウンタ220は、カウント値CNTを基準クロック信号bCLKに同期して増分する。
【0072】
クロック生成回路210は、カウント値cCNTが立上りエッジタイミングtR以上かつ立下りエッジタイミングtF未満である場合に、「1」の値をクロック信号値VALとして出力する。例えば、立上りエッジタイミングtRに「2」が設定され、立下りエッジタイミングtFに「7」が設定された場合を考える。この場合、カウント値cCNTが「2」になったときにクロック信号値VALに「1」が設定され、カウント値cCNTが「7」になったときにクロック信号値VALに「0」が設定される。
【0073】
レジスタ230は、基準クロック信号bCLKに同期して、クロック信号値VALの値を保持するとともにクロック信号CLKとして出力する。
【0074】
カウント値cCNTとクロック周期pCK(例えば、「10」)とが等しい場合には、クロック生成回路210は、カウンタリセット信号cRSTを経過時間カウンタ220に出力する。経過時間カウンタ220は、カウンタリセット信号cRSTが入力されると、カウント値を初期値(例えば、「0」)にリセットする。
【0075】
[情報処理装置の動作例]
図10は、第1の実施の形態におけるエラー未検出時の情報処理装置の動作を示すタイミングチャートである。PNエラー総数およびNPエラー総数のいずれもが閾値以下の場合には、クロック制御部630は、例えば、立上りエッジタイミングtRを「0」に、立下りエッジタイミングtFを「5」に制御し、クロック周期pCKを「10」に制御する。
【0076】
演算器410は、クロック信号CLKの立上りに同期して入力された信号に対して、所定の演算を実行し、実行結果としてデータ信号Q1を出力する。パイプラインレジスタ320は、クロック信号CLKの立下りに同期してデータ信号Q1を保持するとともにデータ信号rQ1として出力する。
【0077】
演算器420は、パイプラインレジスタ320からのデータ信号rQ1に対して所定の演算を実行し、実行結果としてデータ信号Q2を出力する。パイプラインレジスタ330は、クロック信号CLKの立上りに同期してデータ信号Q2を保持するとともにデータ信号rQ2として出力する。
【0078】
パイプラインレジスタ320からのデータ信号rQ1に対して、演算器420による演算の実行時間の分、データ信号Q2の出力は遅延する。しかし、データ信号rQ1が演算器420へ出力されるタイミング(tF)と異なるタイミング(tR)で、パイプラインレジスタ330が、演算器420からのデータ信号Q2を保持するため、データ信号が確実に受け渡される。
【0079】
図11は、第1の実施の形態におけるPNエラー検出時の情報処理装置の動作を示すタイミングチャートである。電圧の低下などの原因により、演算器410の演算時間が長くなった場合を考える。演算器410からのデータ信号Q1の出力のタイミングの遅れが大きいと、データ信号Q1がパイプラインレジスタ320に保持されるまでの猶予期間がパイプラインレジスタ320のセットアップタイムに満たなくなることがある。このときには、出力されたデータ信号Q1と、保持されたデータ信号rQ1との値が異なる値となり、PNエラーが検出される。
【0080】
図12は、第1の実施の形態におけるPNエラー低減時の情報処理装置の動作を示すタイミングチャートである。PNエラー総数が閾値以上である場合、クロック制御部630は、立下りエッジタイミングtFを遅らせる制御を行う。この結果、データ信号Q1が立下りエッジタイミングtFに同期して保持されるまでの猶予期間が長くなり、セットアップタイムが満たされるようになる。したがって、PNエラーの発生頻度が低減する。
【0081】
図13は、第1の実施の形態におけるNPエラー検出時の情報処理装置の動作を示すタイミングチャートである。電圧の低下などの原因により、演算器420の演算時間が長くなった場合を考える。演算器420からのデータ信号Q2の出力のタイミングの遅れが大きいと、データ信号Q2がパイプラインレジスタ330に保持されるまでの猶予期間がパイプラインレジスタ330のセットアップタイムに満たなくなることがある。このときには、出力されたデータ信号Q2と、保持されたデータ信号rQ2との値が異なる値となり、NPエラーが検出される。
【0082】
図14は、第1の実施の形態におけるNPエラー低減時の情報処理装置の動作を示すタイミングチャートである。NPエラー総数が閾値以上である場合、クロック制御部630は、立上りエッジタイミングtRを遅らせる制御を行う。この結果、データ信号Q2が立上りエッジタイミングtRに同期して保持されるまでの猶予期間が長くなり、セットアップタイムが満たされるようになる。したがって、NPエラーの発生頻度が低減する。
【0083】
図15は、第1の実施の形態におけるPNエラーおよびNPエラー低減時の情報処理装置の動作を示すタイミングチャートである。PNエラー総数およびNPエラー総数がいずれも閾値以上である場合には、クロック制御部630は、クロック周期pCKを長くする制御を行う。この結果、データ信号Q1が立下りエッジタイミングtFに同期して保持されるまでの猶予期間が長くなり、PNエラーの発生頻度が低減する。さらに、データ信号Q2が立上りエッジタイミングtRに同期して保持されるまでの猶予期間も長くなり、NPエラーの発生頻度も低減する。
【0084】
[クロック制御部の動作例]
図16は、第1の実施の形態におけるクロック制御部630の動作の一例を示すフローチャートである。この動作は、スライス開始フラグがクロック制御部630に入力されたときに開始する。クロック制御部630は、PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも閾値未満であるか否かを判断する(ステップS901)。E_PNtotalおよびE_NPtotalがいずれも閾値未満である場合には(ステップS901:Yes)、クロック制御部630は、クロック周期およびエッジタイミングを初期値に制御する(ステップS902)。クロック周期pCKの初期値は、例えば「10」であり、立上りエッジタイミングtRおよび立下りエッジタイミングtFの初期値は、例えば、「0」および「5」である。
【0085】
E_PNtotalおよびE_NPtotalのいずれかが閾値以上である場合には(ステップS901:No)、クロック制御部630は、E_PNtotalが閾値以上であり、かつ、E_NPtotalが閾値未満であるか否かを判断する(ステップS903)。E_PNtotalが閾値以上であり、かつ、E_NPtotalが閾値未満である場合(ステップS903:Yes)、クロック制御部630は、立下りエッジタイミングtFを遅らせる。例えば、クロック制御部630は、立上りエッジタイミングtRを「0」に立下りエッジタイミングtFを「7」に制御する(ステップS904)。
【0086】
E_PNtotalが閾値以上であり、かつ、E_NPtotalが閾値未満である条件が満たされない場合について考える。この場合(ステップS903:No)、クロック制御部630は、E_PNtotalが閾値未満であり、かつ、E_NPtotalが閾値以上であるか否かを判断する(ステップS905)。E_PNtotalが閾値未満であり、かつ、E_NPtotalが閾値以上である場合(ステップS905:Yes)、クロック制御部630は、立上りエッジタイミングtRを遅らせる。例えば、クロック制御部630は、立上りエッジタイミングtRを「2」に立下りエッジタイミングtFを「5」に制御する(ステップS906)。
【0087】
PNエラー総数E_PNtotalおよびNPエラー総数E_NPtotalがいずれも閾値以上である場合(ステップS905:No)、クロック制御部630は、クロック周期pCKを長くする。例えば、クロック制御部630は、クロック周期pCKを「14」に変更する。また、クロック制御部630は、デューティ比を一定に保つようにエッジタイミングを制御する。例えば、クロック制御部630は、立上りエッジタイミングtRを「0」に、立下りエッジタイミングtFを「7」に制御する(ステップS907)。ステップS902、S904、S906、S907の後、クロック制御部630は、クロック信号CLKを制御する動作を終了する。
【0088】
このように、本技術の第1の実施の形態によれば、実行結果が保持されるまでの猶予期間がセットアップタイムを満たすようにクロック信号を制御することにより、猶予期間においてセットアップタイムが満たされるようになる。これにより、パイプラインレジスタ310などに実行結果が確実に保持され、タイミングエラーの発生が抑制される。
【0089】
<2.第2の実施の形態>
[マスタプロセッサの構成例]
図17は、第2の実施の形態におけるマスタプロセッサ600の一構成例を示すブロック図である。第2の実施の形態のマスタプロセッサ600は、クロック信号を制御するほか、電圧を制御する点において第1の実施の形態と異なる。第2の実施の形態のマスタプロセッサ600は、電圧制御部640およびエラー未検出状態継続カウンタ650をさらに備える。
【0090】
電圧制御部640は、エラーの検出頻度に基づいて情報処理装置100に供給される電圧を制御するものである。この電圧制御部640には、スライス開始フラグ、PNエラー総数、NPエラー総数、および、エラー未検出状態継続カウンタ650のカウント値vCNTが入力される。
【0091】
電圧制御部640は、スライス開始フラグが入力された場合にNPエラー総数またはPNエラー総数を参照する。NPエラー総数およびPNエラー総数のうちのいずれかが閾値以上である場合には、電圧制御部640は、情報処理装置100に電源を供給する電源回路に対して、電圧を所定電圧昇圧するための電圧制御量ΔVを出力する。
【0092】
一方、NPエラー総数およびPNエラー総数がいずれも閾値未満である場合には、電圧制御部640は、カウント値vCNTが設定期間(例えば、1以上の整数)に達しているか否かを判断する。カウント値vCNTが設定期間未満である場合には、エラー未検出状態継続カウンタ650を制御してカウント値vCNTを増分させる。カウント値vCNTが設定期間である場合には、電圧制御部640は、電圧を所定電圧高圧するための電圧制御量ΔVを電源回路に出力し、カウント値vCNTを初期値(例えば、「0」)にする。
【0093】
電源回路は、情報処理装置100に電源を供給し、電圧制御量ΔVに従って供給する電圧を降圧または昇圧するものである。
【0094】
一般に、供給される電圧が低下すると演算器410等の回路における演算の実行時間が長くなり、逆に電圧が高くなると実行時間は短くなる。このため、エラー数が閾値以上となった場合に昇圧することにより、実行時間が短くなってタイミングエラーの発生頻度が低減する。また、タイムスライス当たりのエラー数が閾値未満である期間が一定期間以上である場合に、降圧することにより、電力消費量を低減することができる。
【0095】
なお、電圧制御部640は、クロック制御部630と同様に、スライス開始フラグが入力されたときに制御量の出力を行う構成としている。しかし、電圧制御部640は、クロック制御部630とは異なるタイミングで制御量を出力してもよい。
【0096】
図18は、第2の実施の形態における電圧制御部640の動作の一例を示す表である。電圧制御部640は、スライス開始フラグが入力された場合にNPエラー総数またはPNエラー総数を参照する。
【0097】
NPエラー総数およびPNエラー総数がいずれも閾値未満である場合には、電圧制御部640は、カウント値vCNTが設定期間に達しているか否かを判断する。カウント値vCNTが設定期間未満である場合には、電圧制御部640は、カウント値vCNTを増分する。一方、カウント値vCNTが設定期間に達している場合には、電圧制御部640は、降圧用設定値を設定した電圧制御量ΔVを出力し、カウント値vCNTを初期値(例えば、「0」)にする。
【0098】
NPエラー総数およびPNエラー総数のうちのいずれかが閾値以上である場合には、電圧制御部640は、昇圧用設定値を設定した電圧制御量ΔVを出力し、カウント値vCNTを初期値にする。
【0099】
なお、電圧を制御する際にエラー総数と比較する閾値は、クロック信号を制御する際の閾値と同じ値としているが、これらの閾値を異なる値に設定してもよい。また、昇圧用設定値は、エラーの種類に関らずに同じ値としているが、電圧制御部640は、エラーの種類に応じて異なる昇圧用設定値を設定してもよい。例えば、NPエラー総数およびPNエラー総数の両方が閾値以上となった場合の昇圧用設定値を、NPエラー総数およびPNエラー総数のいずれかが閾値以上となった場合の昇圧用設定値より大きくしてもよい。NPエラーおよびPNエラーの両方が検出される状態は、いずれか一方が検出される状態よりも深刻な状態であると推測されるためである。
【0100】
このように、本技術の第2の実施の形態によれば、エラーが検出された場合にはマスタプロセッサ600が情報処理装置100に供給される電圧を昇圧させることにより、エラー発生時に、供給される電圧が昇圧される。これにより、演算器410等における実行時間が短くなり、エラーの発生がさらに抑制される。
【0101】
<3.第3の実施の形態>
[情報処理装置の構成例]
図19は、第3の実施の形態における情報処理装置100の一構成例を示すブロック図である。第3の実施の形態の情報処理装置100は、演算結果を遅延させ、遅延させた信号が保持されるまでの期間がセットアップタイムを満たすか否かを判断する点において、第1の実施の形態と異なる。
【0102】
第3の実施の形態のパリティ生成部510は、データ信号Q1から第1パリティビットおよび第2パリティビットを生成する。ここで、第1パリティビットは、データ信号Q1から生成されたパリティビットであり、データ信号Q1に対して遅延した信号である。第2パリティビットは、第1パリティビットから生成されたパリティビットであり、第1パリティビットにおけるエラーを検出するために使用されるものである。パリティ生成部510は、第1パリティビットおよび第2パリティビットをパイプラインレジスタ320に信号線518および519を介して出力する。
【0103】
第3の実施の形態のパリティ検査部520は、第1パリティビットを使用してデータ信号rQ1におけるパリティエラーを検出し、その検出結果をシステムエラー情報E_SS1−1としてマスタプロセッサ600へ出力する。また、パリティ検査部520は、第2パリティビットを使用して第1パリティビットにおけるパリティエラーを検出し、その検出結果をPNエラー情報E_PN1としてマスタプロセッサ600へ出力する。E_PN1乃至16を出力するパリティ検査部520は、システムエラー情報E_SYS1−1乃至1−16を出力し、E_NP1乃至16を出力するパリティ検査部550は、システムエラー情報E_SYS2−1乃至2−16を出力するものとする。
【0104】
この第2パリティビットにより検出されるPNエラーは、データ信号Q1に対して遅延した第1パリティビットが保持されるまでの猶予期間がセットアップタイムに満たない場合に検出される。遅延した第1パリティビットが保持されるまでの猶予期間は、遅延していないデータ信号Q1が保持されるまでの猶予期間より短くなる。このため、第2パリティビットを使用することにより、PNエラーをより確実に検出することができる。NPエラーについても同様である。
【0105】
第3の実施の形態のマスタプロセッサ600は、PNエラーおよびNPエラーの検出頻度に基づいて第1の実施の形態と同様にクロック周期およびエッジタイミングを制御する。また、システムエラーが検出された場合には、クロック生成部200にリセット信号RSTを出力する。
【0106】
[パリティ生成部の構成例]
図20は、第3の実施の形態におけるパリティ生成部510の一構成例を示すブロック図である。第3の実施の形態のパリティ生成部510は、XORゲート515をさらに備える点において第1の実施の形態と異なる。
【0107】
XORゲート511乃至514は、入力されたビット列の排他的論理和を第1パリティビットとしてパイプラインレジスタ320およびXORゲート515へ出力する。なお、XORゲート511乃至514は、特許請求の範囲に記載の遅延部の一例である。
【0108】
XORゲート515は、入力値の排他的論理和を出力するものである。XORゲート515は、XORゲート511乃至514からの第1パリティビットの排他的論理和を第2パリティビットとしてパイプラインレジスタ320へ出力する。
【0109】
なお、パリティ生成部510は、XORゲートによりデータ信号を遅延させる構成としているが、データ信号が遅延するのであれば、XORゲート以外の素子や回路を使用してもよい。例えば、4入力のXORゲート511乃至514を16個のバッファに置き換え、それらの出力をXORゲート515に入力してもよい。
【0110】
[パリティ検査部の構成例]
図21は、第3の実施の形態におけるパリティ検査部520の一構成例を示すブロック図である。第3の実施の形態のパリティ検査部520は、XORゲート530および531をさらに備える点において第1の実施の形態と異なる。
【0111】
XORゲート521乃至524は、入力されたビット列の排他的論理和を第1パリティビットとしてXORゲート530とXORゲート525乃至528とへ出力する。XORゲート525乃至528は、XORゲート521乃至524からの第1パリティビットパイプラインレジスタ320からの第1パリティビットとの排他的論理和をエラー情報としてORゲート529へ出力する。ORゲート529は、XORゲート525乃至528からのエラー情報の論理和をシステムエラー情報E_SYS1−1としてマスタプロセッサ600へ出力する。
【0112】
XORゲート530および531は、入力値の排他的論理和を出力するものである。XORゲート530は、XORゲート521乃至524からの第1パリティビットの排他的論理和を第2パリティビットとしてXORゲート531へ出力する。XORゲート531は、XORゲート530からの第2パリティビットとパイプラインレジスタ320からの第2パリティビットとの排他的論理和をPNエラー情報E_PN1としてマスタプロセッサ600に出力する。
【0113】
[マスタプロセッサの構成例]
図22は、第3の実施の形態におけるマスタプロセッサ600の一構成例を示すブロック図である。第3の実施の形態のマスタプロセッサ600は、エラー計数部610においてシステムエラー累和器615およびシステムエラーカウンタ616をさらに備える点において第1の実施の形態と異なる。
【0114】
システムエラー累和器615は、1クロック周期内において検出されたシステムエラーの合計値を算出するものである。システムエラー累和器615には、システムエラー情報E_SYS1−1乃至1−16およびE_SYS2−1乃至2−16からなる32ビットのビット列が入力される。システムエラー累和器615は、このビット列における「1」の値のビット数を算出してシステムエラーカウンタ616に出力する。
【0115】
システムエラーカウンタ616は、タイムスライス内に検出されたシステムエラーの数を計数するものである。システムエラーカウンタ616は、クロック信号CLKに同期してシステムエラー累和器615からの合計値をカウント値に加算する。システムエラーカウンタ616は、カウント値をシステムエラー総数E_SYStotalとしてクロック制御部630に出力する。また、システムエラーカウンタ616は、エラー数リセット信号eRSTが入力された場合には、カウント値を初期値(例えば、「0」)にする。
【0116】
クロック制御部630は、システムエラー総数E_SYStotalが閾値以上である場合にはリセット信号RSTをクロック生成部200に出力する。一方、システムエラー総数E_SYStotalが閾値未満である場合にはクロック制御部630は、第1の実施の形態と同様のクロック信号の制御を実行する。なお、システムエラー総数と比較する閾値は、PNエラー総数やNPエラー総数と比較する閾値と異なる値であってもよい。
【0117】
なお、クロック制御部630は、システムエラーが検出された場合には、リセット信号により全ての素子や回路へのクロック信号CLKの出力を停止させているが、システムエラーが検出された箇所への出力のみを停止させる構成としてもよい。例えば、クロック制御部630は、立上りに同期するパイプラインレジスタにのみシステムエラーが検出された場合には、それらのパイプラインレジスタへの出力のみを停止させればよい。
【0118】
また、クロック制御部630は、システムエラーが検出された場合にクロック信号CLKの出力を停止させているが、代わりに、クロック周期を長くする制御と電源電圧を昇圧させる制御とのうちの少なくとも一方を実行してもよい。この場合、システムエラー検出時のクロック周期は、PNエラーまたはNPエラー検出時のクロック周期より長く設定すればよい。また、システムエラー検出時の電圧制御量は、PNエラーまたはNPエラーの検出時の電圧制御量より大きく設定すればよい。これは、システムエラーが検出された場合、PNエラーまたはNPエラーの検出時よりも深刻なタイミングエラーが生じていると推測されるためである。
【0119】
図23は、第3の実施の形態におけるクロック制御部630の動作の一例を示す表である。クロック制御部630は、システムエラー総数E_SYStotalが閾値以上である場合にはリセット信号RSTを出力する。一方、システムエラー総数E_SYStotalが閾値未満である場合にはクロック制御部630は、第1の実施の形態と同様の制御を実行する。
【0120】
このように、本技術の第3の実施の形態によれば、遅延させた実行結果が保持されるまでの猶予期間がセットアップタイムを満たすようにクロック信号を制御することより、比較的短い猶予期間においてセットアップタイムが満たされるようになる。これにより、遅延させない場合よりもエラーの検出精度が向上し、エラーの発生がさらに抑制される。
【0121】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【0122】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
【0123】
なお、本技術は以下のような構成もとることができる。
(1)クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理部と、
前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持部と、
前記実行結果が前記保持部に保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断部と、
前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御部と、
前記制御されたタイミングに従って前記クロック信号を生成するクロック生成部と
を具備する情報処理装置。
(2)前記判断部は、前記立上りに同期して出力された前記データ信号に対応する前記実行結果が前記立下りに同期して前記保持部に保持されるまでの猶予期間である立下り猶予期間と前記立下りに同期して出力された前記データ信号に対応する前記実行結果が前記立上りに同期して前記保持部に保持されるまでの猶予期間である立上り猶予期間との各々が前記セットアップタイムを満たすか否かを判断し、
前記クロック制御部は、
前記立下り猶予期間または前記立上り猶予期間が前記セットアップタイムを満たさないと判断された場合には前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するタイミング制御部と、
前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たさないと判断された場合には前記立下り猶予期間および前記立上り猶予期間がいずれも前記セットアップタイムを満たすように前記クロック信号の周期を長くするクロック周期制御部と
を備える
前記(1)記載の情報処理装置。
(3)前記クロック制御部は、前記猶予期間が前記セットアップタイムを満たすまで前記一方のタイミングを早くする制御と前記猶予期間が前記セットアップタイムを満たすまで前記他方のタイミングを遅らせる制御との少なくとも一方を実行する
前記(1)または(2)記載の情報処理装置。
(4)前記処理部により出力された前記実行結果を遅延させて前記保持部へ出力する遅延部をさらに具備し、
前記タイミング判断部は、前記遅延部により遅延された実行結果が前記保持部に保持されるまでの期間を前記猶予期間として当該猶予期間が前記保持部のセットアップタイムを満たすか否かを判断する
前記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)前記遅延部により遅延された実行結果から当該実行結果のエラーを検出するためのエラー検出符号を生成するエラー検出符号生成部をさらに具備し、
前記タイミング判断部は、前記エラー検出符号を使用することにより前記遅延された実行結果のエラーを検出した場合には前記猶予期間について前記セットアップタイムを満たさないと判断する
前記(4)記載の情報処理装置。
(6)前記処理部は、電源供給部から供給された電圧に応じた実行時間で前記データ信号に対して前記所定の処理を実行し、
前記猶予期間がセットアップタイムを満たさないと判断された場合には所定電圧昇圧した前記電圧を前記電源供給部に供給させる電圧制御部と
をさらに具備する
前記(1)乃至(5)のいずれかに記載の情報処理装置。
(7)処理部が、クロック信号の立上りおよび立下りのうちのいずれか一方のタイミングに同期して出力されたデータ信号に対して所定の処理を実行して当該実行結果を出力する処理手順と、
保持部が、前記立上りおよび前記立下りのうちの他方のタイミングに同期して前記実行結果を保持する保持手順と、
タイミング判断部が、前記保持部に前記実行結果が保持されるまでの猶予期間が前記保持部のセットアップタイムを満たすか否かを判断するタイミング判断手順と、
クロック制御部が、前記猶予期間がセットアップタイムを満たさないと判断された場合には前記猶予期間が前記セットアップタイムを満たすように前記立上りおよび前記立下りのうちの少なくとも一方のタイミングを制御するクロック制御手順と、
クロック生成部が、前記制御されたタイミングに従って前記クロック信号を生成するクロック生成手順と
を具備する情報処理装置の制御方法。
【符号の説明】
【0124】
100 情報処理装置
200 クロック生成部
210 クロック生成回路
220 経過時間カウンタ
230 レジスタ
310、320、330 パイプラインレジスタ
410、420、430 演算器
510、50 パリティ生成部
511〜515、521〜528、530、531 XOR(排他的論理和)ゲート
520、550 パリティ検査部
529 OR(論理和)ゲート
600 マスタプロセッサ
610 エラー計数部
611 PNエラー累和器
612 PNエラーカウンタ
613 NPエラー累和器
614 NPエラーカウンタ
615 システムエラー累和器
616 システムエラーカウンタ
620 タイムスライス制御部
621 タイムスライスカウンタ
622 スライス開始フラグ生成部
630 クロック制御部
640 電圧制御部
650 エラー未検出状態継続カウンタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23