(57)【要約】【課題】起動時にハードウェアの調整を行うシステムにおいて、調整の精度の向上と、システムの起動時間の短縮とを、併せて実現する。【解決手段】システムの起動時にシステムが正しく動作するようにハードウェアを調整するキャリブレーション実行部１４２と、このキャリブレーション実行部１４２により調整されたハードウェアの設定を示す補正情報を、調整が行われたときの環境条件に対応付けて保持する補正データ保持部１４３とを備える。そして、キャリブレーション実行部１４２は、システムが起動されたときの環境条件に相当する環境条件に対応付けられた補正情報が補正データ保持部１４３に保持されている場合には、ハードウェアを調整する代わりに、保持されている補正情報に基づいてハードウェアの設定を行う。【選択図】図２
2010186404.tif 000002
【特許請求の範囲】
【請求項１】
起動時にハードウェアの設定を行うシステムにおいて、
システムの起動時に、当該システムが正しく動作するようにハードウェアを調整するキャリブレーション実行部と、
前記キャリブレーション実行部により調整された前記ハードウェアの設定を示す補正情報を、当該調整が行われたときの環境条件に対応付けて保持する保持部とを備え、
前記キャリブレーション実行部は、システムが起動されたときの環境条件に相当する環境条件に対応付けられた前記補正情報が前記保持部に保持されている場合には、前記ハードウェアを調整する代わりに、当該補正情報に基づいて当該ハードウェアの設定を行う、システム。
【請求項２】
前記環境条件に基づいて設定された起動条件を満足する場合にシステムを起動させる起動制御部をさらに備え、
前記キャリブレーション実行部は、前記起動制御部により前記起動条件を満足してシステムが起動した場合は、前記保持部に前記補正情報が保持されているか否かに関わらず、前記ハードウェアを調整する、請求項１に記載のシステム。
【請求項３】
前記キャリブレーション実行部は、前記起動制御部により前記起動条件を満足してシステムを起動した場合における前記環境条件に相当する環境条件に対応付けられた前記補正情報が、既に前記保持部に保持されている場合、調整により得られた前記ハードウェアの設定と当該保持部に保持されている当該補正情報に基づいて新たな補正情報を生成し、当該保持部に保持させる、請求項２に記載のシステム。
【請求項４】
前記キャリブレーション実行部による前記ハードウェアの調整が行われたときの当該ハードウェアの周囲の温度を取得する温度監視部をさらに備え、
前記保持部は、前記環境条件として、少なくとも前記温度監視部により取得された温度を、前記補正情報と対応付けて保持する、請求項１乃至請求項３のいずれかに記載のシステム。
【請求項５】
前記キャリブレーション実行部は、前記ハードウェアの調整として、システムに搭載された半導体チップ間の信号伝送のタイミングを調整する、請求項１乃至請求項４のいずれかに記載のシステム。
【請求項６】
起動時にハードウェアの設定を行うシステムにおいて、
少なくとも２つの異なる起動条件のいずれかを満足する場合にシステムを起動させる起動制御部と、
第１の起動条件を満足してシステムが起動された場合に、当該システムが正しく動作するハードウェアの設定を取得するための調整を行う調整部と、
前記調整部の調整により得られた、前記システムが正しく動作する前記ハードウェアの設定を示す補正情報を保持する保持部と、
第２の起動条件を満足してシステムが起動された場合に、前記保持部に保持された前記補正情報に基づいて前記ハードウェアを設定する設定部と、
を備える、システム。
【請求項７】
前記第１の起動条件は、少なくとも前記ハードウェアの周囲の温度を含む環境条件に基づいて設定され、
前記保持部は、前記補正情報を、前記調整部により前記ハードウェアの調整が行われたときの前記環境条件に対応づけて保持する、請求項６に記載のシステム。
【請求項８】
前記設定部は、システムが起動されたときの環境条件に相当する環境条件に対応づけられた前記補正情報に基づいて前記ハードウェアの設定を行う、請求項７に記載のシステム。
【請求項９】
前記設定部は、システムが起動されたときの環境条件に相当する環境条件に対応づけられた前記補正情報が前記保持部に保持されていない場合に、当該保持部に保持されている補正情報に基づいてシステムが起動されたときの当該環境条件において行われるべき前記ハードウェアの設定を求め、当該ハードウェアを設定する、請求項８に記載のシステム。
【請求項１０】
起動時に半導体チップ間の信号伝送のタイミング調整を行うシステムにおいて、
少なくとも、前記システムのハードウェアの周囲の温度を含む環境条件に基づいて設定された第１の起動条件および他の第２の起動条件のいずれかを満足する場合にシステムを起動させる起動制御部と、
システムの起動時に、当該システムが正しく動作するように、当該システムに搭載された半導体チップ間の信号伝送のタイミングを設定するキャリブレーション実行部と、
前記キャリブレーション実行部による前記信号伝送のタイミングの設定を示す補正情報を、当該設定が行われたときの前記環境条件に対応付けて保持する保持部とを備え、
前記キャリブレーション実行部は、
前記第１の起動条件を満足してシステムが起動された場合に、当該システムが正しく動作する信号伝送のタイミングの設定を取得するための調整を行い、当該調整により得られた設定を示す前記補正情報を前記保持部に保持させ、
前記第２の起動条件を満足してシステムが起動された場合に、システムが起動されたときの環境条件に相当する環境条件に対応付けられた前記補正情報が前記保持部に保持されている場合には、当該補正情報に基づいて当該信号伝送のタイミングを設定する、システム。
【請求項１１】
起動時にハードウェアの設定を行うシステムの起動方法であって、
少なくとも、２つの異なる起動条件のいずれかを満足する場合にシステムを起動させるステップと、
第１の起動条件を満足してシステムが起動された場合に、当該システムが正しく動作するハードウェアの設定を取得するための調整を行うステップと、
前記調整により得られた、前記システムが正しく動作する前記ハードウェアの設定を示す補正情報を保持部に保持するステップと、
第２の起動条件を満足してシステムが起動された場合に、前記保持部に保持された前記補正情報に基づいて前記ハードウェアを設定するステップと、
を含む、方法。
【請求項１２】
前記第１の起動条件は、少なくとも前記ハードウェアの周囲の温度を含む環境条件に基づいて設定され、
前記補正情報を保持する前記ステップでは、補正情報が、前記ハードウェアの調整が行われたときの前記環境条件に対応づけて保持され、
前記ハードウェアを設定する前記ステップでは、システムが起動されたときの環境条件に相当する環境条件に対応づけられた前記補正情報に基づいて前記ハードウェアが設定される、
請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時にハードウェアの調整、特に、信号伝送のタイミング調整を行うコンピュータおよびその調整方法に関する。
【背景技術】
【０００２】
Cell Broadband Engine（商標）（以下、Ｃｅｌｌプロセッサ）は、高速なデータ伝送を担保するため、特別のインターフェイスを介して、メイン・メモリであるＸＤＲ（商標）メモリやＩＯブリッジと接続される。複数のＣｅｌｌプロセッサが搭載されるシステムにおいては、Ｃｅｌｌプロセッサ間の接続も同様である（Ｃｅｌｌプロセッサについては非特許文献１を、ＸＤＲメモリについては非特許文献２を、インターフェイスについては非特許文献３を参照）。
【０００３】
このため、Ｃｅｌｌプロセッサを搭載したコンピュータ・システム（以下、システム）では、起動の際、電源投入後に、まずキャリブレーションと呼ばれる信号伝送のタイミング調整が行われる（非特許文献４参照）。したがって、キャリブレーションが行われる信号は、
（１）Ｃｅｌｌプロセッサ−ＸＤＲメモリ間
（２）Ｃｅｌｌプロセッサ−ＩＯブリッジ間
（３）Ｃｅｌｌプロセッサ−Ｃｅｌｌプロセッサ間（複数のＣｅｌｌプロセッサが搭載されたシステム）
の３種類である。
【０００４】
好適な信号伝送のタイミングは、各デバイスの個体差および周囲温度に応じて大きく異なる可能性がある。そのため、キャリブレーションは、システムに電源が投入されるたびに実行される。
【０００５】
【非特許文献１】「Cell Broadband Engine(TM) アーキテクチャ」、［online］、ソニー株式会社、［平成２１年１月２１日検索］、インターネット＜URL : http://cell.scei.co.jp/pdf/CBE_Architecture_v101_j.pdf＞
【非特許文献２】「XDR(TM)」、［online］、ラムバス・インコーポレーテッド、［平成２１年１月２１日検索］、インターネット＜URL : http://www.rambus.com/jp/products/xdr/index.html＞
【非特許文献３】「FlexPhase(TM) Timing Adjustments」、［online］、ラムバス・インコーポレーテッド、［平成２１年１月２１日検索］、インターネット＜URL : http://www.rambus.com/jp/patents/innovations/detail/flexphase_timing.html＞
【非特許文献４】「Cell Broadband Engine CMOS SOI 90 nm Hardware Initialization Guide」、［online］、インターナショナル・ビジネス・マシーンズ・コーポレーション、［平成２１年１月２１日検索］、インターネット＜URL : http://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/BD3F1F4C3DB32C7487257142006131BC＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
Ｃｅｌｌプロセッサを搭載したシステムで起動時に行われるキャリブレーションでは、上記のデバイス間で特定のパターンの信号を伝送し、動作クロックの調整が行われる。そして、様々なパターンの信号を用いて繰り返し調整を行うことにより、キャリブレーションの精度が向上する。一方、様々なパターンの信号を用いてキャリブレーションを行うと、それだけ処理に要する時間が増大する。すなわち、精度の高いキャリブレーションを行うためには、より多くの時間を要し、キャリブレーションに要する時間を短縮するには、キャリブレーションの精度を犠牲にすることとなる。ここで、キャリブレーションは、システムの起動時に毎度行われるため、キャリブレーションに要する時間の長短は、システムの起動時間に大きく影響する。
【０００７】
さらに、キャリブレーションに要する時間は、システムが搭載するメモリの容量が大きくなると、リニアに増大する。すなわち、メモリ容量の大きいシステムでは、キャリブレーションに要する時間が長くなるため、システムの起動時間も長くなってしまう。これを回避してシステムの起動時間を短縮するためには、従来は、キャリブレーションの精度を低下させてキャリブレーションに要する時間の短縮を図るしかなかった。
【０００８】
なお、ここではＣｅｌｌプロセッサを搭載したシステムについて説明したが、他のシステムであっても、起動時にハードウェアの調整を行うことが必要なシステムならば、同様の課題を有すると言える。
【０００９】
本発明は、以上の課題を解決し、起動時にハードウェアの調整を行うシステムにおいて、調整の精度の向上と、システムの起動時間の短縮とを、併せて実現することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明は、次のようなシステムとして構成される。このシステムは、システムの起動時にシステムが正しく動作するようにハードウェアを調整するキャリブレーション実行部と、このキャリブレーション実行部により調整されたハードウェアの設定を示す補正情報を、調整が行われたときの環境条件に対応付けて保持する保持部とを備える。そして、キャリブレーション実行部は、システムが起動されたときの環境条件に相当する環境条件に対応付けられた補正情報が保持部に保持されている場合には、ハードウェアを調整する代わりに、保持されている補正情報に基づいてハードウェアの設定を行う。
【００１１】
また、上記のシステムにおいて、環境条件に基づいて設定された起動条件を満足する場合にシステムを起動させる起動制御部をさらに備える構成としても良い。この場合、キャリブレーション実行部は、起動制御部により起動条件を満足してシステムが起動した場合は、保持部に補正情報が保持されているか否かに関わらず、ハードウェアを調整する。
さらに好ましくは、キャリブレーション実行部は、起動制御部により起動条件を満足してシステムを起動した場合における環境条件に相当する環境条件に対応付けられた補正情報が、既に保持部に保持されている場合、調整により得られたハードウェアの設定と保持部に保持されている補正情報に基づいて新たな補正情報を生成し、保持部に保持させる。
【００１２】
また、上記のシステムにおいて、キャリブレーション実行部によるハードウェアの調整が行われたときの当該ハードウェアの周囲の温度を取得する温度監視部をさらに備える構成とすることもできる。この場合、保持部は、環境条件として、少なくとも温度監視部により取得された温度を、補正情報と対応付けて保持することができる。
また、キャリブレーション実行部は、ハードウェアの調整として、システムに搭載された半導体チップ間の信号伝送のタイミングを調整することができる。
【００１３】
また、本発明は、次のようなシステムとしても構成される。このシステムは、少なくとも２つの異なる起動条件のいずれかを満足する場合にシステムを起動させる起動制御部と、第１の起動条件を満足してシステムが起動された場合に、システムが正しく動作するハードウェアの設定を取得するための調整を行う調整部と、調整部の調整により得られた、システムが正しく動作するハードウェアの設定を示す補正情報を保持する保持部と、第２の起動条件を満足してシステムが起動された場合に、保持部に保持された補正情報に基づいてハードウェアを設定する設定部と、を備える。
【００１４】
より好ましくは、第１の起動条件は、少なくともハードウェアの周囲の温度を含む環境条件に基づいて設定される。そして、保持部は、補正情報を、調整部によりハードウェアの調整が行われたときの環境条件に対応づけて保持する。
さらに好ましくは、設定部は、システムが起動されたときの環境条件に相当する環境条件に対応づけられた補正情報に基づいてハードウェアの設定を行う。
さらに好ましくは、設定部は、システムが起動されたときの環境条件に相当する環境条件に対応づけられた補正情報が保持部に保持されていない場合に、保持部に保持されている補正情報に基づいてシステムが起動されたときの環境条件において行われるべきハードウェアの設定を求め、ハードウェアを設定する。
【００１５】
また、本発明は、起動時にハードウェアの設定を行うシステムの起動方法としても実現される。この方法は、少なくとも２つの異なる起動条件のいずれかを満足する場合にシステムを起動させるステップと、第１の起動条件を満足してシステムが起動された場合に、システムが正しく動作するハードウェアの設定を取得するための調整を行うステップと、調整により得られた、システムが正しく動作するハードウェアの設定を示す補正情報を保持部に保持するステップと、第２の起動条件を満足してシステムが起動された場合に、保持部に保持された補正情報に基づいてハードウェアを設定するステップと、を含む。
【発明の効果】
【００１６】
以上のように構成された本発明によれば、起動時にハードウェアの調整を行うシステムにおいて、調整の精度の向上と、システムの起動時間の短縮とを、併せて実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
本実施形態では、システムが、一定条件下で自動的に起動し、システムが正しく動作するハードウェアの設定を取得するための当該ハードウェアの調整を行う。そして、システムは、調整の結果として得られるハードウェアの設定を、補正情報として、調整が行われた条件（温度等）の情報に関連付けて保存する。そして、システムは、ユーザ操作によって起動される場合（すなわち、ユーザがシステムを使用する場合）は、起動時の条件に相当する補正情報が保存されていれば、改めて調整を行うことなく、この補正情報を用いてハードウェアを設定する。
【００１８】
以下の説明では、起動時にハードウェアの調整を行うシステムとして、Ｃｅｌｌプロセッサを搭載したシステムを対象とする。Ｃｅｌｌプロセッサを搭載したシステムでは、起動時に、Ｃｅｌｌプロセッサを含む半導体チップ（以下、単にチップと記す）間の信号伝送のタイミング調整であるキャリブレーションが行われる。本実施形態では、システムが一定条件下で自動的に起動した場合に、ハードウェアの調整としてキャリブレーションを行い、システムが正しく動作する信号伝送のタイミングの設定を取得し、得られた設定の情報を補正情報として保存する。そして、ユーザ操作によって起動される場合に、保存されている補正情報を用いて、信号伝送のタイミングを設定する。
【００１９】
＜システム構成＞
図１は、本実施形態が適用されるＣｅｌｌプロセッサを搭載したシステムの構成例を示す図である。
図１に示すように、本実施形態のシステム１００は、Ｃｅｌｌプロセッサ１１０と、ＸＤＲメモリ１２０と、ＩＯブリッジ１３０とを備える。また、システム起動時の動作制御等を行うシステム・コントローラ１４０と、各部に電力を供給する電源ユニット１５０とを備える。
【００２０】
また、図１に示すように、Ｃｅｌｌプロセッサ１１０と、ＸＤＲメモリ１２０と、ＩＯブリッジ１３０は、メインボード上に実装されている。Ｃｅｌｌプロセッサ１１０とＸＤＲメモリ１２０、およびＣｅｌｌプロセッサ１１０とＩＯブリッジ１３０は、ＦｌｅｘＩＯ（商標）を介して接続される。図１には、Ｃｅｌｌプロセッサ１１０が１個のみ、メインボード上に実装された構成が示されているが、複数のＣｅｌｌプロセッサ１１０を実装しても良い。この場合、Ｃｅｌｌプロセッサ１１０どうしの間もＦｌｅｘＩＯを介して接続される。
【００２１】
システム・コントローラ１４０は、システム１００の起動制御を行う。また、システム起動時に、上記のメインボード上のチップ間のキャリブレーションを行う。このシステム・コントローラ１４０の機能の詳細については後述する。システム・コントローラ１４０は、特に図示しないが、プロセッサと、プロセッサが実行するプログラムやプロセッサによる処理に用いられるデータを格納したＲＯＭと、作業用のＲＡＭとを備える。また、システム・コントローラ１４０は、後述の電源ユニット１５０の構成により、メイン電源ＯＦＦの状態でもバッテリー・バックアップされている。
【００２２】
電源ユニット１５０は、上記のメインボード上の各チップおよびシステム・コントローラ１４０に電力を供給する。この電源ユニット１５０は、少なくともメイン電源とスタンバイ電源とを備え（いずれも図示せず）、電力の供給状態として、次の３つの状態（Power State）を持つ。
Ｓｔａｔｅ−１：全電源ＯＦＦ
Ｓｔａｔｅ−２：スタンバイ電源ＯＮ、メイン電源ＯＦＦ
Ｓｔａｔｅ−３：スタンバイ電源ＯＮ、メイン電源ＯＮ
【００２３】
ここで、メインボード上の各チップは、メイン電源から電力を供給される。また、システム・コントローラ１４０は、スタンバイ電源から電力を供給される。すなわち、Ｓｔａｔｅ−１では、メインボード上のチップおよびシステム・コントローラ１４０は、共に動作せず、Ｓｔａｔｅ−２では、システム・コントローラ１４０のみが動作する。Ｓｔａｔｅ−３では、メインボード上のチップおよびシステム・コントローラ１４０は、共に動作する。通常、システム１００の電源を落とした状態では、メイン電源のみがＯＦＦとなり、システム・コントローラ１４０は動作可能である。
【００２４】
＜システム・コントローラ１４０の機能構成＞
図２は、システム・コントローラ１４０の機能構成例を示す図である。
図２に示すように、システム・コントローラ１４０は、起動制御部１４１と、キャリブレーション実行部１４２と、補正データ保持部１４３と、温度監視部１４４とを備える。上記のように、このシステム・コントローラ１４０の各機能ブロックは、電源ユニット１５０によるスタンバイ電源によって動作する。なお、図２に示すシステム・コントローラ１４０の機能ブロックは、本実施形態における特徴的な機能を実現するためのものである。実際には、システム・コントローラ１４０は、これらの機能の他、冷却ファンの回転数の制御等、様々な機能を有する。
【００２５】
起動制御部１４１は、例えば、システム・コントローラ１４０のプログラム制御されたプロセッサにより実現され、電源ユニット１５０に接続しており、メインボードへ電力を供給するメイン電源を制御する。具体的には、ユーザによる電源投入のための操作（電源ボタンの押下等）が行われたことを検知してメイン電源をＯＮとし、システム１００を起動させる。また、本実施形態の起動制御部１４１は、予め設定された一定条件を満足する場合に、メイン電源をＯＮとし、システム１００を起動させる。これは、詳しくは後述するが、一定条件下でシステム１００を自動的に起動させ、キャリブレーション（信号伝送のタイミング調整）を実行するためである。
【００２６】
自動的に起動するための起動条件としては、主に時間条件と環境条件とが設定される。時間条件は、実際のシステム１００の使用態様等に応じて個別的に任意に設定することができる。ただし、システム１００を自動的に起動させるのは、ユーザがシステム１００を使用しないときであることが好ましい。したがって、例えば、深夜の時間帯や週末等のシステム１００が使用されない時間帯に起動するように、時間条件を設定する。また、メイン電源がＯＦＦとなった後、一定期間以上経過したことを条件として加えても良い。
【００２７】
また本実施形態では、環境条件として、特に温度条件を設定する。これは、チップ間の信号伝送の特性は、周囲温度の変化に大きく影響を受けるためである。具体的には、例えば、一定の温度間隔（例えば、５℃ごと）でキャリブレーションを実行するため、設定された温度間隔分だけ周囲温度が変化したならばシステム１００を起動するように、温度条件を設定することができる。なお、環境条件は、温度条件に限定されるものではなく、調整対象のハードウェアに影響を与える、他の種々の条件を設定することができる。
【００２８】
キャリブレーション実行部１４２は、例えば、システム・コントローラ１４０のプログラム制御されたプロセッサにより実現され、メインボードのＩＯブリッジ１３０に接続しており、キャリブレーションを実行して、チップ間の信号伝送のタイミングを設定する。すなわち、キャリブレーション実行部１４２は、ハードウェアの設定を取得するための調整を行う調整部、および調整によって得られた補正情報に基づいてハードウェアを設定する設定部として機能する。
【００２９】
キャリブレーションでは、Ｃｅｌｌプロセッサ１１０とＸＤＲメモリ１２０やＩＯブリッジ１３０との間で、動作クロックを変更しながら特定のパターンの信号を伝送させて動作結果を検査する。これにより、システム１００が正しく動作する動作クロックのタイミング（以下、クロック・タイミング）が特定される。そして、特定されたクロック・タイミングに基づいて、信号伝送のタイミングの設定（以下、タイミング設定）が行われる。システム１００が複数のＣｅｌｌプロセッサ１１０を搭載する場合には、Ｃｅｌｌプロセッサ１１０どうしの間の信号伝送についても、同様の操作が行われる。
【００３０】
具体的なキャリブレーションの方法としては、例えば、次のように行うことができる。まず、動作クロックの１周期を、例えば０ｘ０００〜０ｘ３ＦＦに分割する。そして、分割単位１つ分ずつ動作クロックをずらしながら同じパターンの信号を伝送して、システム１００が正しく動作するクロック・タイミングを特定する。キャリブレーションは、単一の信号パターンのみを用いるのではなく、様々な信号パターンを用いて適切なクロック・タイミングを得ることにより、タイミング設定の精度を向上させることができ、システム１００を安定的に動作させることが可能となる。
【００３１】
また、本実施形態のキャリブレーション実行部１４２は、システム１００の起動時の態様によって、キャリブレーションを行わずに、タイミング設定を行う場合がある。上記のように、起動制御部１４１による起動制御は、環境条件を含む一定の起動条件を満足する場合に、自動的にシステム１００を起動させる場合と、ユーザによる起動操作に応じてシステム１００を起動させる場合とがある。
【００３２】
前者の自動的な起動は、補正情報を得るための起動である。そこで、この場合は、キャリブレーション実行部１４２はキャリブレーションを実行する。これにより、環境条件（周囲温度）に応じて、システム１００が正しく動作するクロック・タイミングが特定される。得られたクロック・タイミングは、補正データとして保存される。
【００３３】
一方、後者の起動操作に基づく起動は、ユーザがシステム１００を使用するための起動である。したがって、起動時間の短縮が望まれる。そこで、この場合は、原則としてキャリブレーションを行わず、保存されている補正データ（クロック・タイミング）に基づいて、タイミング設定を行う。これにより、キャリブレーションに要する時間分、起動時間が短縮される。
【００３４】
補正データ保持部１４３は、例えば、システム・コントローラ１４０のＲＡＭにより実現され、キャリブレーション実行部１４２がキャリブレーションを実行することによって得られたクロック・タイミングを、補正データとして保持する。上記のように、起動制御部１４１は、予め設定された環境条件に基づいてシステム１００を起動させるので、キャリブレーションによって得られたクロック・タイミングは、システム１００が起動したときの環境条件に対応付けることができる。そこで、補正データ保持部１４３は、例えば、クロック・タイミングと環境条件（周囲温度）とを対応付けたマッピング・テーブルの形式で、補正データを保持する。
【００３５】
図３は、補正データ保持部１４３に保持される補正データのマッピング・テーブルの例を示す図である。
図３に示すマッピング・テーブルには、キャリブレーションによって得られたクロック・タイミングの補正値（図３ではキャリブレーション値と表示）が、周囲温度の値に対応付けて保持されている。この例において、キャリブレーションは、周囲温度２０℃〜３０℃の間で、５℃間隔で行われたものとする。図示のマッピング・テーブルを参照すると、周囲温度２０℃のときの補正値は１ＦＦ、周囲温度２５℃のときの補正値は２０Ｃ、周囲温度３０℃のときの補正値は２２０となっている。
【００３６】
温度監視部１４４は、例えば、システム・コントローラ１４０のプログラム制御されたプロセッサにより実現され、図示しない温度センサに接続されており、周囲温度を監視し、温度情報を取得する。ここで、周囲温度とは、メインボード上のチップの周囲の温度であり、システム１００の筐体内温度である。システム１００の使用環境によっては、システム１００が設置されている室内の温度等を用いても良い。温度監視部１４４が取得した温度情報は、起動制御部１４１およびキャリブレーション実行部１４２に送られる。起動制御部１４１では、この温度情報に基づき、システム１００を自動的に起動させるための起動条件を満足したか否かが判断される。キャリブレーション実行部１４２では、この温度情報を含む環境条件に、キャリブレーションで得られたクロック・タイミングが対応付けられる。
【００３７】
＜システム起動時の動作＞
次に、システム１００の起動時におけるシステム・コントローラ１４０の動作について説明する。
図４は、システム・コントローラ１４０の動作の流れを示すフローチャートである。
上記のように、起動制御部１４１は、環境条件を含む一定の起動条件を満足する場合と、ユーザによる起動操作を受け付けた場合に、システム１００を起動する。ここでは、前者の起動条件を第１起動条件、後者のユーザの起動操作を第２起動条件と呼ぶ。したがって、起動制御部１４１は、第１起動条件または第２起動条件のいずれかを満足した場合に、システム１００を起動する（ステップ４０１）。
【００３８】
第１起動条件として、具体的には、例えば、温度監視部１４４により取得された温度情報（周囲温度）が５℃変化（上昇または下降）した場合とすることができる。また、第１起動条件には、上述したように、時間条件も設定される。したがって、この例によれば、時間条件を満足する時間帯において、電源ユニット１５０のメイン電源がＯＦＦとなったときから温度情報が５℃変化したならば、第１起動条件を満足してシステム１００が自動的に起動する。
【００３９】
第１起動条件を満足してシステム１００が起動した場合（ステップ４０２）、キャリブレーション実行部１４２は、キャリブレーションを実行し、クロック・タイミング（補正値）を得る（ステップ４０３）。そして、得られたクロック・タイミングと温度監視部１４４から取得した温度情報とを対応付けて補正データを生成し（ステップ４０４）、補正データ保持部１４３に格納する（ステップ４０５）。そして、システム１００の終了処理を行い、メイン電源をＯＦＦにする（ステップ４０６）。
【００４０】
一方、第２起動条件を満足してシステム１００が起動した場合（ステップ４０２）、キャリブレーション実行部１４２は、まず、温度監視部１４４から取得した温度情報に基づいて、補正データ保持部１４３を調べる。補正データ保持部１４３に、この温度情報に対応付けられたクロック・タイミング（補正データ）が保持されている場合（ステップ４０７でＹｅｓ）、キャリブレーション実行部１４２は、この補正データを用いて、半導体チップ間の信号伝送のタイミング設定を行う（ステップ４０８）。
【００４１】
温度監視部１４４から取得した温度情報に対応する補正データが補正データ保持部１４３に保持されていない場合（ステップ４０７でＮｏ）、キャリブレーション実行部１４２は、キャリブレーションを実行する（ステップ４０９）。そして、キャリブレーションにより得られたクロック・タイミング（補正値）を用いて、半導体チップ間の信号伝送のタイミング設定を行う（ステップ４１０）。
【００４２】
以上の動作によれば、第１起動条件を満足してシステム１００が起動する場合は、ユーザがシステム１００を使用することを目的としていないので、起動時間の短縮は要請されない。したがって、種々の信号パターンを用いてキャリブレーションを行い、精度の高いクロック・タイミングの補正データを得ることができる。一方、第２起動条件を満足してシステム１００が起動する場合は、ユーザがシステム１００を使用することを目的とするため、起動時間は短い方が好ましい。この場合、本実施形態では、環境条件が対応する補正データが存在すれば、キャリブレーションを行う代わりに、この補正データを用いてタイミング設定を行うことができる。そのため、補正データによる精度の高いタイミング設定を行うことができ、かつ、キャリブレーションを行わない分だけシステム１００の起動時間を短縮することができる。
【００４３】
さて、上記の動作例では、起動時の環境条件に対応する補正データが存在しない場合に、キャリブレーションを行ってクロック・タイミングを得ることとした（ステップ４０９参照）。そのため、この場合の起動には、起動時にキャリブレーションを行う従来のシステムと同様の時間を要することとなる。このような場合にもシステム１００の起動時間を短縮する方策として、補正データ保持部１４３に保持されている補正データを用いた補間により、起動時の環境条件に対応する補正データを生成することが考えられる。
【００４４】
図５は、図３に示したマッピング・テーブルと同様のマッピング・テーブルを、１℃ごとの温度間隔で記載した図である。
図５を参照すると、周囲温度が２０℃、２５℃、３０℃である場合については、それぞれクロック・タイミングの補正値（キャリブレーション値）が記録されている。一方、これらの間の温度（２１℃〜２４℃、２６℃〜２９℃）については、キャリブレーションが行われておらず、補正値は記録されていない。したがって、ユーザ操作等により第２起動条件を満足してシステム１００が起動するときの周囲温度が、例えば２７℃であった場合、補正データを用いてタイミング設定を行うことができない。
【００４５】
しかし、Ｃｅｌｌプロセッサ１１０を搭載したシステム１００における、特定の温度Ａのときのクロック・タイミングの補正値は、一般に、温度Ａよりも低い温度Ｂのときの補正値と、温度Ａよりも高い温度Ｃのときの補正値の間の値となる。すなわち、システム１００の起動時の周囲温度が２７℃であった場合の補正値Ｓは、
０ｘ２０Ｃ＜Ｓ＜０ｘ２２０
の範囲に収まる。したがって、この特性を考慮すれば、キャリブレーションを行う場合と比較すれば精度は低下するが、適当なクロック・タイミングの補正値を推定することができる。そして、推定した補正値を用いることにより、キャリブレーションを行わずにタイミング設定を行うことができ、起動時間を大幅に短縮することができる。
【００４６】
また、第１起動条件を満足してシステム１００が起動した場合に行われるキャリブレーションは、上記のように補正データを得るためのものであるが、これは、同じ周囲温度に対して複数回行っても良い。この場合、キャリブレーションを行って得られた補正データと、補正データ保持部１４３に既に保持されている補正データとに基づいて新たな補正データを生成し、補正データ保持部１４３の内容を更新する。例えば、最近５回分のキャリブレーションの結果を蓄積し、平均を取って新たな補正データとする。このようにして適宜更新された補正データを用いることにより、タイミング設定の精度のさらなる向上が期待される。
【００４７】
以上、Ｃｅｌｌプロセッサ１１０を搭載したシステム１００を例として本実施形態を説明したが、本実施形態は、上記の具体的なシステム構成例や動作例に限定されるものではない。例えば、上記の例では、環境条件に基づく起動条件（第１起動条件）として、周囲温度が一定温度（５℃）だけ変化した場合に、システム１００を起動させることとした。これに対し、周囲温度の変化を起動条件とするのではなく、予め起動させる周囲温度を適当な温度間隔で指定しておき、該当する周囲温度となったときにシステム１００を起動させるようにしても良い。
【００４８】
また、上記の例では、ユーザの起動操作を第２起動条件としたが、特定の時間（業務開始時など）に自動的にシステム１００を起動させる場合には、タイマー設定された時間を第２起動条件としても良い。
【００４９】
また、本実施形態の適用対象は、上述した、Ｃｅｌｌプロセッサ１１０を搭載したシステム１００において、信号伝送のタイミング調整を行う場合に限定されない。起動時に当該システムが正しく動作するためのハードウェアの設定を行う種々のシステムに対して、広く適用することが可能である。本実施形態を他のシステムに適用する場合には、ハードウェアの設定に影響を与える、具体的な環境条件に基づいて、システムの起動条件が設定され、ハードウェアの設定内容に応じた補正データが保存されることとなる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態が適用されるＣｅｌｌプロセッサを搭載したシステムの構成例を示す図である。
【図２】本実施形態のシステム・コントローラの機能構成例を示す図である。
【図３】本実施形態の補正データ保持部に保持される補正データのマッピング・テーブルの例を示す図である。
【図４】本実施形態のシステム・コントローラの動作の流れを示すフローチャートである。
【図５】図３に示したマッピング・テーブルと同様のマッピング・テーブルを、１℃ごとの温度間隔で記載した図である。
【符号の説明】
【００５１】
１００…（コンピュータ）システム、１１０…Ｃｅｌｌプロセッサ、１２０…ＸＤＲメモリ、１３０…ＩＯブリッジ、１４０…システム・コントローラ、１５０…電源ユニット、１４１…起動制御部、１４２…キャリブレーション実行部、１４３…補正データ保持部、１４４…温度監視部
【図１】
2010186404.tif 000003
【図２】
2010186404.tif 000004
【図３】
2010186404.tif 000005
【図４】
2010186404.tif 000006
【図５】
2010186404.tif 000007