(57)【特許請求の範囲】
【請求項１】
第１の通信部を有するコントローラと、
第２の通信部を有する機能拡張ユニットと、
リセット信号を前記コントローラに出力するリセット回路と、
を有する情報処理装置であって、
前記機能拡張ユニットは、前記第２の通信部における通信準備が完了した後に、前記通信準備が完了したことを示す信号を前記リセット回路に出力し、
前記リセット回路は、前記信号の受信に応じて、前記コントローラへの前記リセット信号の出力を停止し、
前記機能拡張ユニットは時間を計測するタイマを有し、
前記機能拡張ユニットは、前記第２の通信部における通信準備が完了していなくても、前記タイマが計測した時間に基づいて前記第２の通信部における通信準備が完了したことを示す信号を前記リセット回路に出力し、
前記コントローラの第１の通信部は、前記コントローラへの前記リセット信号の入力が停止したことにしたがって、リンクトレーニングを開始するために前記第２の通信部との通信を開始する
ことを特徴とする情報処理装置。
【請求項２】
前記機能拡張ユニットは、前記タイマが計測した時間が予め設定された所定時間を経過した場合、前記信号を出力する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定時間は、前記機能拡張ユニットが備える資源に応じて決定される
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記コントローラが前記第２の通信部に探索リクエストを送信し、前記探索リクエストに対する応答がなかった場合、前記コントローラは表示部にエラー表示をさせる
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記機能拡張ユニットは、ＦＰＧＡ用のユーザロジック部と、コンフィグレーション部とを備える
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置は、印刷装置、画像形成装置、複合画像形成装置のいずれかである
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
第１の通信部を有するコントローラと、
第２の通信部を有する機能拡張ユニットと、
リセット信号を前記コントローラに出力するリセット回路と、
を有する情報処理装置の制御方法であって、
前記機能拡張ユニットにより、前記第２の通信部における通信準備が確立した後に、前記通信準備が完了したことを示す信号を前記リセット回路に出力する工程と、
前記リセット回路により、前記信号の受信に応じて、前記コントローラへの前記リセット信号の出力を停止する工程と、
前記機能拡張ユニットにより、前記第２の通信部における通信準備が完了していなくても、タイマが計測した時間に基づいて前記第２の通信部における通信準備が完了したことを示す信号を前記リセット回路に出力する工程と、
前記コントローラの第１の通信部により、前記コントローラへの前記リセット信号の入力が停止したことにしたがって、リンクトレーニングを開始するために前記第２の通信部との通信を開始する工程と、を有する
ことを特徴とする情報処理装置の制御方法。
【請求項８】
請求項７の情報処理装置の制御方法をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
近年、広帯域幅が必要なデータ通信における通信規格として、例えばＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）（以降、ＰＣＩｅと記載）などがＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を初めとした情報処理装置にて広く利用されている。
【０００３】
ＰＣＩｅの規格では、デバイスへの電源投入後、リセットが解除されてから１００ｍＳ以内にデバイスの初期化処理を終え、リンクトレーニングシーケンスに入る。そして、リンク確立処理を終えリンクアップしてコンフィグレーションリクエストを受け入れ可能な状態にとならなければならないことが定められている。
【０００４】
また一方で、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの任意に論理回路を構成可能なデバイスを、ＰＣＩｅデバイスとして使用することが多くなってきている。ＦＰＧＡをＰＣＩｅデバイスとして使用するには、デバイスへの電源投入後、リンクトレーニングシーケンスに入る前にエンドポイントとなるＰＣＩｅ制御部を含むＦＰＧＡのコンフィグレーションが完了している必要がある。
【０００５】
一般的にＦＰＧＡのコンフィグレーションは、回路情報の大きさによって完了までの時間が異なる。そのため初期化処理が完了してリンクトレーニングシーケンスに入るまでの時間も回路情報の大きさによって異なることになる。
【０００６】
このように、通信を行うデバイス毎の初期化処理の時間に差があったり、ＦＰＧＡの回路情報の大きさによってリンクトレーニングシーケンスに入るまでの時間に差があったりすると、以下のような課題が発生する。つまり、一方のデバイスの初期化処理が終了せず、規格で定める時間内にリンクトレーニングシーケンスに必要な時間を確保することができない問題が発生することがある。
このため、通信デバイス間がリンクアップすることができない問題を解決するために、以下のような提案がなされている。例えばＰＣＩｅ通信デバイスへの電源供給に対して、初期化処理に時間のかかるＰＣＩｅ通信デバイスの起動処理が完了した通知を受けてから電源供給が行われるように電源供給を遅らせる制御を遅らせる方法が提案されている（例えば、特許文献１参照）。
この方法では電源供給を遅延させ、リンクトレーニングシーケンスに入る時点のタイミングを合わせ、確実にリンクアップを行うよう制御をしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−０２２４７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら上記の方法では、ＰＣＩｅ通信デバイスへの電源供給のタイミングを遅延させているためシステム全体では起動時間が長くなってしまう。情報処理装置が電源投入されてからのブートアップ時間は、短時間化されることが望まれており、システム全体の起動時間が長くなってしまうのは望ましくない。
【０００９】
また、複数のＰＣＩｅ通信デバイスが接続されるシステムにおいて、なんらかの異常があり一つでもＰＣＩｅ通信デバイスの起動処理が正常に完了しなかった場合、ＰＣＩｅ通信デバイスへの電源供給がされない。そのため、全てのＰＣＩｅ通信デバイスと接続できない状態となる。
【００１０】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数のコントローラに供給される電源で各通信部の起動処理が終了しない状態でも、システム全体の起動時間を短縮できる仕組みを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成する本発明のメモリ制御装置は以下に示す構成を備える。
第１の通信部を有するコントローラと、第２の通信部を有する機能拡張ユニットと、リセット信号を前記コントローラに出力するリセット回路と、を有する情報処理装置であって、前記機能拡張ユニットは、前記第２の通信部における通信準備が完了した後に、前記通信準備が完了したことを示す信号を前記リセット回路に出力し、前記リセット回路は、前記信号の受信に応じて、前記コントローラへの前記リセット信号の出力を停止し、前記機能拡張ユニットは時間を計測するタイマを有し、前記機能拡張ユニットは、前記第２の通信部における通信準備が完了していなくても、前記タイマが計測した時間に基づいて前記第２の通信部における通信準備が完了したことを示す信号を前記リセット回路に出力し、前記コントローラの第１の通信部は、前記コントローラへの前記リセット信号の入力が停止したことにしたがって、リンクトレーニングを開始するために前記第２の通信部との通信を開始することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数のコントローラに供給される電源で各通信部の起動処理が終了しない状態でも、各コントローラに対して出力されているリセット信号を解除することで、システム全体の起動時間を短縮できる。
また、いずれかのコントローラの通信部に異常があった時でも所定の縮退動作を実行させることができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置の構成を説明するブロック図である。
【図２】Ｒｅａｄｙ信号生成部の構成を示すブロック図である。
【図３】情報処理装置の制御方法を説明するフローチャートである。
【図４】図１の動作を説明するタイミングチャートである。
【図５】Ｒｅａｄｙ信号生成部の構成を示すブロック図である。
【図６】情報処理装置の制御方法を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す情報処理装置の構成を説明するブロック図である。なお、本実施形態において、情報処理装置には、印刷装置、画像形成装置、複合画像形成装置を含むものとする。
図１において、情報処理装置１５０は主制御部１００、副制御部１４０、機能拡張ユニット１７０、電力供給部１３０、電源リセット制御部１６０、電源部１０５から構成される。ここで、主制御部１００を第１のコントローラと呼び、副制御部１４０、機能拡張ユニット１７０を第２のコントローラと呼ぶ。
【００１５】
主制御部１００は、ＲＯＭ１０１、ＣＰＵ１０２、ＲＡＭ１０３、ＰＣＩｅ制御部１０４、ＨＤＤ１０６から構成される。ＲＯＭ１０１は、ブートプログラム（ＢＩＯＳ）やＯＳ、アプリケーションプログラムを含む。電源部１０５は、電力供給部１３０から供給されたＤＣ電力１３１を、主制御部１００と副制御部１４０が必要とする適切な電圧に変換し、変換した電圧が安定したら、その旨をＰＧＯＯＤ信号１６１にて電源リセット制御部１６０に通知する。電源部１０５が主制御部１００に対して電力１３３を供給し、電源リセット制御部１６０がリセット信号１６３を解除すると、ＣＰＵ１０２はＲＯＭ１０１からブートプログラムを読み出して動作開始する。ここで、電源リセット制御部１６０は、第３の信号であるＲＥＡＤＹ信号を受信することに応じて、主制御部１００または副制御部１４０、機能拡張ユニット１７０に出力されているリセット信号を解除する。
【００１６】
ＲＡＭ１０３は、ＣＰＵ１０２がプログラム実行する際のデータや、ＨＤＤ１０６から読み出したデータを一時的に格納する。ＨＤＤ１０６は、ＣＰＵ１０２で動作するプログラム上で処理するデータを格納する。
【００１７】
ＰＣＩｅ制御部１０４は、ＰＣＩｅバス１４４を介して副制御部１４０のＰＣＩｅ制御部１４２と接続され、副制御部１４０とデータの授受を行う。またＰＣＩｅ制御部１０４は、ＰＣＩｅバス１２０を介してＦＰＧＡ１１０のＰＣＩｅ制御部１１２と接続され、ＦＰＧＡ１１０とデータの授受を行う。なお、ＰＣＩｅ制御部１４２を第２の通信部と呼ぶ。
【００１８】
ＰＣＩｅ制御部１０４は、電源部１０５によって主制御部１００に電力供給され、電源リセット制御部１６０によってリセット信号１６３を解除されると、ＣＰＵ１０２が介入することなく、リンクトレーニングによる物理的接続確認が可能な状態になる。
【００１９】
副制御部１４０は、ＣＰＵ１４１、ＰＣＩｅ制御部１４２，ＲＡＭ１４３から構成される。ＲＡＭ１４３は、ブートプログラムやＣＰＵ１４１がプログラム実行する際のデータを一時的に格納する。ＰＣＩｅ制御部１４２は、電源部１０５によって副制御部１４０に電力供給され、電源リセット制御部１６０によってリセット信号１６３を解除されると、ＣＰＵ１４１が介入することなく、リンクトレーニングによる物理的接続確認が可能な状態になる。
ＰＣＩｅ制御部１４２は、主制御部１００のＰＣＩｅ制御部１０４からＣＰＵ１４１のブートプログラムのデータを受け取り、ＲＡＭ１４３に展開しＣＰＵ１４１は動作開始する。機能拡張ユニット１７０は、ＦＰＧＡ１１０、ＲＯＭ１１４、電源部１１５、Ｒｅａｄｙ信号生成部１１６から構成される。
【００２０】
機能拡張ユニット１７０は、不図示のカードエッジコネクタあるいは汎用コネクタあるいは汎用ケーブルなどを介して情報処理装置１５０に電気的に接続され着脱可能なユニットである。本実施形態では着脱可能なユニットを例示しているが、本発明は着脱ができない場合でも適用可能である。機能拡張ユニット１７０は、情報処理装置１５０に電気的に接続されている場合、機能拡張ユニット検出用信号１７１を出力する。
【００２１】
機能拡張ユニット検出用信号１７１は、例えば機能拡張ユニット１７０内の不図示の抵抗器で電力１３４にプルアップ接続される。そして、機能拡張ユニット１７０が情報処理装置１５０に電気的に接続されていれば出力するような構成でもよいし、また機能拡張ユニット１７０内の不図示のＣＰＵなどが出力するような構成でもよい。
【００２２】
情報処理装置１５０は、機能拡張ユニット１７０が装着されていない場合、機能拡張ユニット検出用信号１７１は出力されないが、主制御部１００と副制御部１４０と電源部１０５と電力供給部１３０と電源リセット制御部１６０の構成で動作が可能である。
【００２３】
ＦＰＧＡ１１０は、ユーザロジック部１１１、ＰＣＩｅ制御部１１２、コンフィグレーション部１１３から構成される。ＦＰＧＡ用のユーザロジック部として機能するユーザロジック部１１１は、コンフィグレーション部１１３によって、書き替え可能な回路部である。なお、ＰＣＩｅ制御部１１２を第２の通信部と呼ぶ。
【００２４】
ＰＣＩｅ制御部１１２は、ＰＣＩｅバス１２０を介して、主制御部１００のＰＣＩｅ制御部１０４と接続され、主制御部１００とデータの授受を行う。ここで、ＰＣＩｅ制御部１１２がＦＰＧＡ１１０のハードマクロである場合は、リンクトレーニングによる物理的接続確認が可能な状態になるためには、コンフィグレーション部１１３によって、ＰＣＩｅ制御部１１２の初期設定が完了する必要がある。
【００２５】
電源部１１５は、電力供給部１３０から供給されたＤＣ電力１３２を、ＦＰＧＡ１１０とＲＯＭ１１４が必要とする適切な電圧に変換し、変換した電圧が安定したらＰＧＯＯＤ信号１２２をＲｅａｄｙ信号生成部１１６に通知する。
【００２６】
コンフィグレーション部１１３は、電源部１１５からＦＰＧＡ１１０に電力１３４が供給されると、ＲＯＭ１１４に格納された情報に従いユーザロジック部１１１やＰＣＩｅ制御部１１２のコンフィグレーション、初期設定を行う。ユーザロジック部１１１やＰＣＩｅ制御部１１２のコンフィグレーション、初期設定は、リセット信号１６３の解除を待たずに行われる。
【００２７】
また、コンフィグレーション部１１３は、ＲＯＭ１１４から読み込んだ情報を基にコンフィグレーション完了した時に、Ｒｅａｄｙ信号生成部１１６にその旨をＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１によって通知する。
【００２８】
ＲＯＭ１１４は、ＰＣＩｅ制御部１１２の初期設定情報（以下、インタフェース情報と記載する）やユーザロジック部１１１のコンフィグレーション情報と初期設定情報（以下、コア情報と記載する）などを格納する。
【００２９】
Ｒｅａｄｙ信号生成部１１６は、ＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１とＰＧＯＯＤ信号１２２の状態から後述の説明の方法でＲｅａｄｙ信号１６２を生成し、電源リセット制御部１６０に通知する。
【００３０】
電源リセット制御部１６０は、機能拡張ユニット検出用信号１７１が出力されている時は、電源部１０５からＰＧＯＯＤ信号１６１とＲｅａｄｙ信号生成部１１６からＲｅａｄｙ信号１６２の両方が通知されたらリセット信号１６３を解除する。
電源リセット制御部１６０は、機能拡張ユニット検出用信号１７１が出力されていない時は、電源部１０５からＰＧＯＯＤ信号１６１のみが通知されたらリセット信号１６３を解除する。
電力供給部１３０はＡＣ電源（不図示）から供給された電源をＡＣ−ＤＣ変換し、ＤＣ電力１３１とＤＣ電力１３２を、電源部１０５と電源部１１５に供給する。
【００３１】
図２は、図１に示したＲｅａｄｙ信号生成部１１６の構成を示すブロック図である。
図２において、Ｒｅａｄｙ信号生成部１１６は、タイマ部２００とＡＮＤゲート２０１とＯＲゲート２０２から構成される。ＡＮＤゲート２０１は、ＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１とＰＧＯＯＤ信号１２２をＡＮＤした信号（第１の信号）を生成し、ＯＲゲート２０２へ出力する。
タイマ部２００はＲｅａｄｙ信号生成部１１６に電力１３４が供給され始めてからの経過時間（所定時間）をカウントし、所定の時間が経過したらＯＲゲート２０２へ信号を出力する。ＯＲゲート２０２は、ＡＮＤゲート２０１からの信号とタイマ部２００からの信号（第２の信号）をＯＲした信号をＲｅａｄｙ信号１６２（第３の信号）として電源リセット制御部１６０に出力する。なお、上記所定時間は、機能拡張ユニット１７０の資源に応じて可変決定できるように構成されているものとする。
【００３２】
図３は、本実施形態における情報処理装置の制御方法を説明するフローチャートである。特に図３の（Ａ）は、情報処理装置１５０の機能拡張ユニット１７０の起動処理例である。
まず、不図示のシステム電源がＯＮされると、電源部１１５がＦＰＧＡ１１０に電力供給し、コンフィグレーション部１１３は、ＲＯＭ１１４からインタフェース情報を読み出し（Ｓ３０１）、ＰＣＩｅ制御部１１２に対して初期設定を行う（Ｓ３０２）。
【００３３】
コンフィグレーション部１１３は、ＰＣＩｅ制御部１１２に対する初期設定が完了すると、コンフィグレーションが完了した旨をＲｅａｄｙ信号生成部１１６に通知（ＲＥＡＤＹ通知）するためにＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１を出力する（Ｓ３０３）。この時点で、ＰＣＩｅ制御部１１２は、リンクトレーニングによる物理的接続確認が可能な状態になる。
【００３４】
次に、ＰＣＩｅ制御部１１２とＰＣＩｅ制御部１０４は、お互いにリンクトレーニングを行い、物理的接続を確立する（Ｓ３０４）。Ｓ３０４で、ＰＣＩｅ制御部１１２がお互いのリンクトレーニングが正常に完了していると判断した場合（Ｓ３０５でＹｅｓ）、ＦＰＧＡ１１０側のＰＣＩｅ制御部１１２は、主制御部１００側のＰＣＩｅ制御部１０４のリクエストに応答する（Ｓ３０６）。例えば、主制御部１００からのベンダＩＤ、デバイスＩＤの送信要求に対して、ＰＣＩｅ制御部１１２は、Ｓ３０２で初期設定されたベンダＩＤ、デバイスＩＤをＰＣＩｅバス１２０を介して主制御部１００に送信する。
Ｓ３０４で、お互いのリンクトレーニングが正常に完了していないとＰＣＩｅ制御部１１２が判断した場合（Ｓ３０５でＮｏ）、そのまま起動処理を終了する。
【００３５】
図３の（Ｂ）は、図１に示した情報処理装置１５０の主制御部１００の起動処理例である。
ＰＣＩｅ制御部１０４は、電源リセット制御部１６０からリセット信号１６３が解除されたら（Ｓ３１０でＹｅｓ）、ＣＰＵ１０２が介入することなく、リンクトレーニングによる物理的接続確認が可能な状態に初期化される（Ｓ３１１）。すると、ＰＣＩｅ制御部１０４は、ＰＣＩｅ制御部１１２とＰＣＩｅ制御部１４２とそれぞれお互いにリンクトレーニングを行い、物理的接続を確立する（Ｓ３１２）。
【００３６】
その後、ＣＰＵ１０２は、ＲＯＭ１０１からＢＩＯＳを読み出し、主制御部１００のブートを開始する（Ｓ３１３）。その処理の中で、ＣＰＵ１０２は、ＰＣＩｅ制御部１０４を介して、ＰＣＩｅバス１２０とＰＣＩｅバス１４４の先に接続されているデバイスを探索するためにリクエストを送信する（Ｓ３１４）。
【００３７】
Ｓ３１２で、お互いのリンクトレーニングが正常に完了している場合、機能拡張ユニット１７０のＰＣＩｅ制御部１１２と副制御部１４０のＰＣＩｅ制御部１４２は、主制御部１００側のＰＣＩｅ制御部１０４が出力したリクエストに応答してくる。このリクエストの応答によって主制御部１００は、副制御部１４０と機能拡張ユニット１７０をＰＣＩｅデバイスとして認識することできる。
全てのＰＣＩｅ制御部１１２，１４２からリクエスト応答があるとＰＣＩｅ制御部１０４が判断した場合（Ｓ３１５でＹｅｓ）、主制御部１００は、正常に起動したものとし、通常動作を開始し（Ｓ３１６）、起動処理を終了する。
次に、全てのＰＣＩｅ制御部からリクエスト応答がなかった場合（Ｓ３１５でＮｏ）、副制御部１４０のＰＣＩｅ制御部１４２からリクエスト応答があるかどうかを判断する（Ｓ３１７）。
【００３８】
ＰＣＩｅ制御部１４２からリクエスト応答があり、ＰＣＩｅ制御部１１２からはリクエスト応答がない場合（Ｓ３１７でＹｅｓ）、主制御部１００は縮退処理の動作として、主制御部１００は副制御部１４０と動作を開始し（Ｓ３１８）、起動処理を終了する。
ＰＣＩｅ制御部１４２からリクエスト応答がないとＣＩｅ制御部１０４が判断した場合（Ｓ３１７でＮｏ）、主制御部１００は不図示の表示部に起動エラーした旨を図示しない操作部が備える表示部に表示し（Ｓ３１９）、起動処理を終了する。
これにより、ユーザは、特定のデバイス（本実施形態では、機能拡張ユニット１７０）が検知できずに、縮退動作で情報処理装置が起動していることを確認することができ、その後のデバイス交換等の対応を迅速に採ることができる。
【００３９】
図３の（Ｃ）は、本実施形態における情報処理装置１５０の機能拡張ユニット１７０の起動処理例である。
ＰＣＩｅ制御部１４２は、電源リセット制御部１６０からリセット信号１６３が解除されたら（Ｓ３２０でＹｅｓ）、ＣＰＵ１４１が介入することなく、リンクトレーニングによる物理的接続確認が可能な状態に初期化される（Ｓ３２１）。すると、ＰＣＩｅ制御部１４２は、ＰＣＩｅ制御部１０４とお互いにリンクトレーニングを行い、物理的接続を確立する（Ｓ３２２）。
【００４０】
Ｓ３２２で、お互いのリンクトレーニングが正常に完了しているとＰＣＩｅ制御部１４２が判断した場合（Ｓ３２３でＹｅｓ）、副制御部１４０のＰＣＩｅ制御部１４２は、主制御部１００側のＰＣＩｅ制御部１０４のリクエストに応答する（Ｓ３２４）。そして、起動処理を終了する。
一方、Ｓ３２２で、お互いのリンクトレーニングが正常に完了していないとＣＩｅ制御部１４２が判断した場合（Ｓ３２３でＮｏ）、そのまま起動処理を終了する。
【００４１】
図４は、図１の動作を説明するタイミングチャートである。
特に図４の（Ａ）は、図１に示した主制御部１００と副制御部１４０と機能拡張ユニット１７０が正常に起動し、ＰＣＩｅバス１４４、ＰＣＩｅバス１２０がそれぞれ接続されるまでのタイミングチャートである。
【００４２】
まず不図示のシステム電源がＯＮされると、電源部１０５は適切な電圧に変換し、変換した電圧が安定したら（時刻ｔ＝Ｔ１）、電源リセット制御部１６０にＰＧＯＯＤ信号１６１を通知する。また、電源部１１５は適切な電圧に変換し、変換した電圧が安定したら（時刻ｔ＝Ｔ２）、Ｒｅａｄｙ信号生成部１１６にＰＧＯＯＤ信号１２２を通知する。
次に、コンフィグレーション部１１３は、コンフィグレーション完了した時に（時刻ｔ＝Ｔ３）、Ｒｅａｄｙ信号生成部１１６にＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１を通知する。
【００４３】
Ｒｅａｄｙ信号生成部１１６は、ＰＧＯＯＤ信号１２２とＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１の両方が通知されたら（時刻ｔ＝Ｔ３）、Ｒｅａｄｙ信号１６２を電源リセット制御部１６０に通知する。
電源リセット制御部１６０は、ＰＧＯＯＤ信号１６１とＲｅａｄｙ信号１６２の両方が通知されたら（時刻ｔ＝Ｔ４）リセット信号１６３を解除する。
ＰＣＩｅ制御部１０４は、時刻ｔ＝Ｔ５にてＰＣＩｅ制御部１１２とＰＣＩｅ制御部１４２とそれぞれお互いにリンクトレーニングを開始し、物理的接続を確立する。
【００４４】
ＣＰＵ１０２は、時刻ｔ＝Ｔ６にてＰＣＩｅ制御部１０４を介して、ＰＣＩｅバス１２０とＰＣＩｅバス１４４の先に接続されているデバイスを探索するためにリクエストを送信する。ＰＣＩｅ制御部１１２とＰＣＩｅ制御部１４２は、そのリクエストの応答によって主制御部１００は副制御部１４０と機能拡張ユニット１７０をＰＣＩｅデバイスとして認識することできる。
【００４５】
図４の（Ｂ）は、図１に示した主制御部１００と副制御部１４０は正常に起動し、機能拡張ユニット１７０になんらかの異常があり正常に起動できなかった場合の、ＰＣＩｅバス１４４が接続されるまでのタイミングチャートである。
【００４６】
まず不図示のシステム電源がＯＮされると、電源部１０５は適切な電圧に変換し、変換した電圧が安定したら（時刻ｔ＝Ｔ１）、電源リセット制御部１６０にＰＧＯＯＤ信号１６１を通知する。また、電源部１１５は適切な電圧に変換し、変換した電圧が安定したら（時刻ｔ＝Ｔ２）、Ｒｅａｄｙ信号生成部１１６にＰＧＯＯＤ信号１２２を通知する。
【００４７】
次に、Ｒｅａｄｙ信号生成部１１６は、タイマ部２００がＲｅａｄｙ信号生成部１１６に電力１３４の供給開始からの時間をカウントし所定の時間が経過したら（時刻ｔ＝Ｔ７）、強制的にＲｅａｄｙ信号１６２として出力する。電源リセット制御部１６０は、ＰＧＯＯＤ信号１６１とＲｅａｄｙ信号１６２の両方が通知されたら（時刻ｔ＝Ｔ８）リセット信号１６３を解除する。
ＰＣＩｅ制御部１０４は、時刻ｔ＝Ｔ９にてＰＣＩｅ制御部１４２とお互いにリンクトレーニングを開始し、物理的接続を確立する。
【００４８】
ＣＰＵ１０２は、時刻ｔ＝Ｔ１０にてＰＣＩｅ制御部１０４を介して、ＰＣＩｅバス１４４の先に接続されているデバイスを探索するためにリクエストを送信する。ＰＣＩｅ制御部１４２は、そのリクエストの応答によって主制御部１００は副制御部１４０をＣＩｅデバイスとして認識することできる。
【００４９】
以上の実施形態によれば、正常に情報処理装置１５０が起動した時には、主制御部１００のＣＰＵ１０２で実行されるＰＣＩｅデバイスの探索処理時に、確実に機能拡張部をＰＣＩｅデバイスとして検出することができる。また同時にシステム全体の起動時間を最短にすることができる。
一方、機能拡張ユニット１７０に異常があった時でも縮退動作として情報処理装置１５０の一部動作が可能となる。
【００５０】
〔第２実施形態〕
次に、第２実施形態について図面を参照して説明する。なお、第１実施形態において説明をした図や、フローチャートの図に関する説明は省略することとする。第２実施形態と第１実施形態との違いは、図２のＲｅａｄｙ信号生成部１１６のブロック図であり、具体的にはＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１とＰＧＯＯＤ信号１２２の状態からＲｅａｄｙ信号１６２を出力する方法が異なる。
【００５１】
図５は、本実施形態を示すＲｅａｄｙ信号生成部１１６の構成を示すブロック図である。
図５において、Ｒｅａｄｙ信号生成部１１６はＣＰＵ５００から構成される。ＣＰＵ５００は、ＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１とＰＧＯＯＤ信号１２２が入力され、その状態から後述の方法でＲｅａｄｙ信号１６２を出力するか否かを判断する。なお、ＣＰＵ５００は、電源手段から電源が投入される毎に、所定時間が経過しても第１の信号が入力されない状態が継続する場合、第２のコントローラである機能拡張ユニット１７０が異常状態であることを示す情報（異常フラグ）を記憶する。
【００５２】
図６は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、ＣＰＵ５００がＲｅａｄｙ信号１６２を出力するか否かを判断する処理例である。
Ｒｅａｄｙ信号生成部１１６に電源投入された後、ＣＰＵ５００は異常フラグが立っているかを判断し（Ｓ６０１）、異常フラグが立っているとＣＰＵ５００が判断した場合（Ｓ６０１でＹｅｓ）、Ｓ６０４に処理を移行する。
一方、異常フラグが立っていないとＣＰＵ５００が判断した場合（Ｓ６０１でＮｏ）、ＣＰＵ５００は、ＰＧＯＯＤ信号１２２が出力されたかを判断する（Ｓ６０２）。
【００５３】
Ｓ６０２にてＣＰＵ５００がＰＧＯＯＤ信号１２２は出力されていると判断した場合（Ｓ６０２でＹｅｓ）、ＣＰＵ５００は、ＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１が出力されたかを判断する（Ｓ６０３）。Ｓ６０２にて、ＣＰＵ５００がＰＧＯＯＤ信号１２２は出力されてないと判断した場合（Ｓ６０２でＮｏ）、Ｓ６０５に処理を移行する。
Ｓ６０３にて、ＣＰＵ５００がＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１は出力されていると判断した場合（Ｓ６０３でＹｅｓ）、Ｓ６０４に処理を移行する。Ｓ６０３にて、ＣＰＵ５００がＣＯＮＦＩＧ＿ＤＯＮＥ信号１２１は出力されていないと判断した場合（Ｓ６０３でＮｏ）、Ｓ６０５に処理を移行する。
Ｓ６０４にて、ＣＰＵ５００はＲｅａｄｙ信号１６２を出力し、処理を終了する。
一方、Ｓ６０５では、ＣＰＵ５００は電源投入後、図４に示した一定時間ｔ＝Ｔ７が経過したかを判断し、経過したと判断した場合（Ｓ６０５でＹｅｓ）、Ｓ６０６に処理を移行する。
Ｓ６０５にて、ＣＰＵ５００は電源投入後、一定時間ｔ＝Ｔ７が経過していないと判断した場合（Ｓ６０５でＮｏ）、Ｓ６０２に処理を移行する。
Ｓ６０６にて、ＣＰＵ５００は起動時の異常が発生した回数をカウントアップし、異常回数がＮ回以上であるかを判断する（Ｓ６０７）。このＮは１以上の数字である。Ｓ６０７にて、ＣＰＵ５００は異常回数がＮ回以上であると判断した場合（Ｓ６０７でＹｅｓ）、Ｓ６０８に処理を移行する。Ｓ６０７にて、ＣＰＵ５００は異常回数がＮ回以上でないと判断した場合（Ｓ６０７でＮｏ）、Ｓ６０４に処理を移行する。Ｓ６０８にて、ＣＰＵ５００は異常フラグをたて、Ｓ６０４に処理を移行する。
【００５４】
以上の実施形態によれば、正常に情報処理装置１５０が起動した時には、主制御部１００のＣＰＵ１０２で実行されるＰＣＩｅデバイスの探索処理時に、確実に機能拡張部をＰＣＩｅデバイスとして検出することができる。また同時にシステム全体の起動時間を最短にすることができる。
【００５５】
また、機能拡張ユニット１７０に異常があった場合、縮退動作として情報処理装置１５０の一部動作が可能となるまでの起動時間は、異常があった初回は時間ｔ＝Ｔ７経過するまで待つことになる。
一方でＮ回目以降は時間ｔ＝Ｔ７経過するまで待つことなく、Ｓ６０１からＳ６０４へ処理が進むので、起動時間を最短にすることができる。
【００５６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５７】
１５０  情報処理装置
【図１】
0006700665.tif 000002
【図２】
0006700665.tif 000003
【図３】
0006700665.tif 000004
【図４】
0006700665.tif 000005
【図５】
0006700665.tif 000006
【図６】
0006700665.tif 000007