(57)【特許請求の範囲】
【請求項１】
所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCI Expressインタフェースを介して接続される画像形成装置であって、
前記制御モジュールが、
前記デバイスモジュールとの間のリンクを確立させる初期化部と、
転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、
前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、
前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、
前記複数のデバイスモジュールのそれぞれが、
前記PCI Expressインタフェースを介して、前記制御モジュールに対してデータの送受信を行う従データ転送部と、
前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、
前記初期化部が、第１のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第１のデバイスモジュールへ転送し、
前記第１のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第１のデバイスモジュールとの間のリンクを確立させた後、
前記制御モジュールにおいて、第１のデバイスモジュールへのデータ転送要求があった場合に、
前記リンク確認部が、前記第１のデバイスモジュールとの間のリンクの状態を確認し、
前記確認したリンクの状態が正常でないと判断された場合、
前記初期化部が、前記第１のデバイスモジュール用のレジスタ初期値を、前記第１のデバイスモジュールへ再度転送し、
前記第１のデバイスモジュールが、自己のコンフィグレーションレジスタに、再度転送されてきたレジスタ初期値を再度記憶させて、前記第１のデバイスモジュールとの間のリンクを再度確立させた後、前記主データ転送部が、前記転送要求のあったデータを前記第１のデバイスモジュールへ転送することを特徴とする画像形成装置。
【請求項２】
前記リンク確認部が、前記主データ転送部を用いて、前記第１のデバイスモジュールから、第１のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を取得して、
前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、
レジスタ情報とレジスタ初期値とが一致する場合はリンクの状態が正常であると判断し、レジスタ情報とレジスタ初期値とが一致しない場合はリンクの状態が正常でないと判断することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記記憶部に記憶されたレジスタ初期値および前記コンフィグレーションレジスタに記憶されたレジスタ情報には、デバイスモジュールを特定するデバイスID、デバイスモジュールの現在の状態を示すステータスレジスタ、およびデバイスモジュールのベースアドレスが含まれていることを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCI Expressインタフェースを介して接続される画像形成
装置のリンク復旧方法であって、
前記制御モジュールが、
前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、
前記デバイスモジュールのそれぞれが、
前記PCI Expressインタフェースを介して、前記制御モジュールの主データ転送部とデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、
前記初期化部が、第１のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第１のデバイスモジュールへ転送し、
前記第１のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第１のデバイスモジュールとの間のリンクを確立させた後、
前記制御モジュールにおいて、前記第１のデバイスモジュールへのデータ転送要求があった場合に、
前記リンク確認部が、前記主データ転送部を用いて、前記第１のデバイスモジュールの従データ転送部に対して、前記第１のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を読み出すことを要求するコマンドを送信し、
前記コマンドを受信した前記第１のデバイスモジュールの従データ転送部が、前記レジスタ情報を読み出して、前記主データ転送部に対して送信し、
前記リンク確認部は、主データ転送部によって受信されたレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、
レジスタ情報とレジスタ初期値とが一致しない場合は、リンクの状態が正常でないと判断し、
前記初期化部が、前記第１のデバイスモジュール用のレジスタ初期値を、前記第１のデバイスモジュールへ再度転送し、前記第１のデバイスモジュールが、自己のコンフィグレーションレジスタに、転送されてきたレジスタ初期値を記憶させて、前記第１のデバイスモジュールとの間のリンクを再度確立させた後、
前記主データ転送部が、前記転送要求のあったデータを、前記第１のデバイスモジュールへ転送することを特徴とする画像形成装置のリンク復旧方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像形成装置に関し、特に、画像形成装置の機能を実現する各処理モジュール間で確立されたリンクにエラーが発生した場合に、そのリンクを復旧させる機能を有する画像形成装置に関する。
【背景技術】
【０００２】
従来から、デジタル複写機、デジタル複合機（MFP：マルチファンクション・プリンタ）等の画像形成装置では、CPU、画像処理モジュール、メモリなどの各デバイス間の接続手段として、PCI（Peripheral Component Interconnect）に代表されるパラレル方式のインタフェースが使用されている。
しかし、パラレル方式のインタフェースでは、レーシングやスキューなどの問題があり、高速・高画質の画像形成装置に使用するには、転送レートが不十分となってきている。そこで、最近では、高速シリアルインタフェースであるPCI Expressインタフェース（以下、PCIeと呼ぶ）を、画像形成装置に使用することが提案されている。
【０００３】
PCIeは、リンクと呼ばれる通信路を介して、デバイス間を相互接続するための国際規格であり、PCI-SIG（Peripheral Component Interconnect Special Interest Group）によって、通信コマンド、レジスタ値およびシーケンス等が、詳細に規定されている。規定されている。
【０００４】
PCIeに接続されたデバイス間においては、バスコマンドを使用してデータの転送が行われる。バスコマンドは、PCIeの信号ラインのうち４本のC/BE[3:0]信号線を利用して転送される。
【０００５】
画像データ等の書き込みや読み出しを行う前に、PCIeを利用するデバイス間でリンクの確立が行われる。リンクの確立のために、デバイスに備えられたコンフィグレーションレジスタ（以下、CONREGと呼ぶ）の設定が行われる。
たとえば、画像形成装置の全体の動作を制御する制御モジュールと、画像処理を実行する画像処理モジュールとの間において、制御モジュールから画像処理モジュールに転送されるコマンドによって、画像処理モジュールの中に備えられたコンフィグレーションレジスタ（CONREG）に含まれる各情報の初期設定が行われる。
【０００６】
この初期設定では、主として、デバイスを特定するデバイスID、デバイスの現在の動作状態をチェックするためのステータスレジスタ、接続デバイスを特定するベースアドレスなどの初期値を設定記憶させる。
このコンフィグレーションレジスタの設定は、通常の画像データそのものの転送処理とは別に、コンフィグレーション・トランザクションを発生させて行われる。
【０００７】
また、各デバイスにはデバッグ用のレジスタが備えられ、PCIeを介したデータ転送にエラーが発生すると、ステータスレジスタにそのエラー状態が保持される。
特許文献１では、エラーが発生したパケットの目的地のアドレスをデバッグ用レジスタに保存し、再度同じエラー発生を再現させて、その保存したアドレスと同じアドレスへのトランザクションを検出して、エラー発生源を特定するエラー解析方法が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２２５６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のPCIeを利用したデータ転送では、ステータスレジスタやデバッグ用レジスタの内容を確認することにより、エラーが発生したことを検知することができ、エラー発生時に、再度コンフィグレーションレジスタの初期化を行うことによりリンクを確立させて、正常なデータ転送ができるようにしていた。
しかし、データ転送時などにおいて、信号ラインに、静電気などの外部ノイズが加わることにより、デバイスのコンフィグレーションレジスタ（CONREG）に設定されていた値が破壊される場合があった。
【００１０】
たとえば、CONREGの設定値のうち、ベースアドレスやステータスレジスタの値が初期値と異なる値に書きかえられてしまう場合があった。
このように、CONREGの初期値が破壊されてしまった場合、従来のPCIeのシーケンスでは、初期値が破壊されたことを検出する手段がなく、確立されていたリンクそのものも切断されることにより、その後のデータ通信が不能になる場合もあった。
【００１１】
また、特許文献１においても、エラーの発生源を特定できたとしても、そのエラー発生源を除去するようなシーケンスはないので、CONREGの初期値が破壊されてしまった場合は、同様にリンクが切断され、データ通信が不能になる。
このように従来の装置では、CONREGの値が破壊されることにより、リンクが切断されデータ通信が不能になった場合は、自動的な復旧手段はなく、装置の電源を再投入するか、あるいはリセット（手動でリセットスイッチを押す）をする必要があった。
【００１２】
そこで、この発明は、以上のような事情を考慮してなされたものであり、外部ノイズが原因でモジュール間のデータ転送のためのリンクが切断された場合においても、再度リンクを確立させてデータ転送を継続させることが可能な画像形成装置を提供することを課題とする。
【課題を解決するための手段】
【００１３】
この発明は、所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCI Expressインタフェースを介して接続される画像形成装置であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、前記複数のデバイスモジュールのそれぞれが、前記PCI Expressインタフェースを介して、前記制御モジュールに対してデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、前記初期化部が、第１のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第１のデバイスモジュールへ転送し、前記第１のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第１のデバイスモジュールとの間のリンクを確立させた後、前記制御モジュールにおいて、第１のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記第１のデバイスモジュールとの間のリンクの状態を確認し、前記確認したリンクの状態が正常でないと判断された場合、前記初期化部が、前記第１のデバイスモジュール用のレジスタ初期値を、前記第１のデバイスモジュールへ再度転送し、前記第１のデバイスモジュールが、自己のコンフィグレーションレジスタに、再度転送されてきたレジスタ初期値を再度記憶させて、前記第１のデバイスモジュールとの間のリンクを再度確立させた後、前記主データ転送部が、前記転送要求のあったデータを前記第１のデバイスモジュールへ転送することを特徴とする画像形成装置を提供するものである。
これによれば、リンクの状態が正常でないと判断された場合、リンクを確立させた後にデータの転送を行うので、装置を再起動させることはなく、装置が動作不能になることも回避できる。
【００１４】
また、前記複数のデバイスモジュールのそれぞれが、前記PCI Expressインタフェースを介して、前記制御モジュールに対してデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定されかつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備えていることを特徴とする。
【００１５】
また、前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記リンク確認部が、前記主データ転送部を用いて、前記第１のデバイスモジュールから、第１のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致する場合はリンクの状態が正常であると判断し、レジスタ情報とレジスタ初期値とが一致しない場合はリンクの状態が正常でないと判断することを特徴とする。
【００１６】
また、前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記初期化部は、前記デバイスモジュールのうち第２のデバイスモジュールとの間のリンクを確立するために、前記第２のデバイスモジュール用のレジスタ初期値を、前記第２のデバイスモジュールへ転送し、前記第２のデバイスモジュールは、自己のコンフィグレーションレジスタに、転送されてきたレジスタ初期値を記憶させることを特徴とする。
【００１７】
また、前記記憶部に記憶されたレジスタ初期値および前記コンフィグレーションレジスタに記憶されたレジスタ情報には、デバイスモジュールを特定するデバイスID、デバイスモジュールの現在の状態を示すステータスレジスタ、およびデバイスモジュールのベースアドレスが含まれていることを特徴とする。
【００１８】
さらに、この発明は、所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCI Expressインタフェースを介して接続される画像形成装置のリンク復旧方法であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、前記デバイスモジュールのそれぞれが、前記PCI Expressインタフェースを介して、前記制御モジュールの主データ転送部とデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、前記初期化部が、第１のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第１のデバイスモジュールへ転送し、前記第１のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第１のデバイスモジュールとの間のリンクを確立させた後、前記制御モジュールにおいて、前記第１のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記主データ転送部を用いて、前記第１のデバイスモジュールの従データ転送部に対して、前記第１のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を読み出すことを要求するコマンドを送信し、前記コマンドを受信した前記第１のデバイスモジュールの従データ転送部が、前記レジスタ情報を読み出して、前記主データ転送部に対して送信し、前記リンク確認部は、主データ転送部によって受信されたレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致しない場合は、リンクの状態が正常でないと判断し、前記初期化部が、前記第１のデバイスモジュール用のレジスタ初期値を、前記第１のデバイスモジュールへ再度転送し、前記第１のデバイスモジュールが、自己のコンフィグレーションレジスタに、転送されてきたレジスタ初期値を記憶させて、前記第１のデバイスモジュールとの間のリンクを再度確立させた後、前記主データ転送部が、前記転送要求のあったデータを、前記第１のデバイスモジュールへ転送することを特徴とする画像形成装置のリンク復旧方法を提供するものである。
【発明の効果】
【００１９】
この発明によれば、制御モジュールから第１のデバイスモジュールへのデータ転送要求があった場合に、リンク確認部が、第１のデバイスモジュールとの間のリンクの状態を確認し、リンクの状態が正常でないと判断された場合、初期化部が再度リンクを確立させた後に、転送要求のあったデータを第１のデバイスモジュールへ転送するので、静電気などの外部ノイズが原因でリンクが切断されてしまった場合、リンクが確立されていない状態でデータ転送が行われることを未然に防止し、画像形成装置が動作不能になることを回避することができる。
【図面の簡単な説明】
【００２０】
【図１】この発明の画像形成装置のPCIeに接続されたモジュールの一実施例の構成ブロック図である。
【図２】この発明のリンク初期化および確認処理の一実施例のフローチャートである。
【図３】この発明のPCIeで利用されるバスコマンドの一実施例の説明図である。
【図４】この発明のコンフィグレーションレジスタの情報の説明図である。
【図５】この発明のリンク初期化処理の一実施例のシーケンス説明図である。
【図６】この発明のリンク確認とリンク復旧処理の一実施例のシーケンス説明図である。
【発明を実施するための形態】
【００２１】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。なお、これによって、この発明が限定されるものではない。
＜画像形成装置の構成＞
図１に、この発明の画像形成装置を構成するモジュールの一実施例の概略構成ブロック図を示す。
図１では、画像形成装置のうち、主として、画像形成に利用する各種ハードウェアの動作を制御する部分のブロック図を示している。
この発明の画像形成装置は、たとえば、デジタル複写機、デジタル複合機（MFP、マルチ  ファンクション  プリンタ）に相当し、文字、図形、記号、画像等からなる２次元情報を入力し、その２次元情報を記憶、加工等し、用紙等に出力する装置である。
【００２２】
図１の実施例においては、制御モジュール１と、インタフェースモジュール３と、画像処理モジュール４とが、PCIe（Peripheral Component Interconnect Express）２インタフェースを介して接続されている。ただし、モジュールの数と種類は、これに限るものではない。
これらの各モジュールは、主として、ASICとして提供することができ、たとえば、MFPのコントロール基板上に配置される。
PCIeインタフェースは、ASICのようなデバイスを相互接続して、各デバイス間で送受信されるシリアル信号を流すデータ伝送路（バス）の規格であり、前記したように、PCI-SIG（Peripheral Component Interconnect Special Interest Group）によって規定されたものである。
【００２３】
制御モジュール１は、主として、１つのMPFコントロールASICで構成され、他のモジュールに対して制御コマンドを送り、他のモジュール（デバイスモジュール）の動作および停止等の制御を行う部分である。
図１においては、たとえば、制御モジュール１から、画像処理モジュール４に対して、PCIeを介してデータ転送コマンドを送信し、取得された画像データを画像処理モジュールに転送して、画像圧縮等の画像処理を行わせる。以下、制御モジュール以外のモジュール（３，４）を、デバイスモジュールと呼ぶ。１つのデバイスモジュールは、画像形成装置で実現される多数の機能のうち、所定の機能を実行する部分である。
【００２４】
制御モジュール１は、主として、制御部（CPU）１１、主データ転送部１２、機能モジュール１３、記憶部１４とからなり、機能モジュール１３として予め設定されている機能を実行する。
制御部（CPU）１１は、たとえば、ROM、RAM、I/Oコントローラ、タイマー等を内蔵して、ROM等に予め記憶されている制御プログラムに基づいて、各種ハードウェアを動作させる部分である。
機能モジュール１３は、この画像形成装置で実現される機能を実行する部分であり、ハードウェアの論理回路ブロック、あるいは、制御プログラムの一つのモジュールによって構成される。
図１では、機能モジュール１３として、この発明の特徴となる機能である初期化部１５、リンク確認部１６、ジョブ実行部１７を示している。ただし、この他にも多数の機能モジュールを備えてもよい。
【００２５】
初期化部１５は、制御モジュール１と、PCIe２を介して接続されている他のデバイスモジュール（たとえばインタフェースモジュール３、画像処理モジュール４）との間のリンクを確立させる処理を行う部分である。
この初期化部１５では、後述するように、各デバイスモジュールに備えられたコンフィグレーションレジスタ（CONREG）の中に、初期値を設定する処理（リンク初期化処理あるいはコンフィグレーションと呼ぶ）を行う。
たとえば、画像処理モジュール４のコンフィグレーションレジスタ（CONREG）の中の「デバイスID」、「ステータスレジスタ」、「コマンドレジスタ」、「ベースアドレス」に、記憶部１４に予め記憶されているレジスタ初期値を書き込むためのコマンドを、画像処理モジュール４に対して送信する。
これにより、制御モジュールと、所望のデバイスモジュールとの間のリンクを確立するために、そのデバイスモジュール用のレジスタ初期値が、そのデバイスモジュールへ転送される。
【００２６】
リンク確認部１６は、制御モジュール１と所定のデバイスモジュールとの間のリンクの状態を確認する部分である。すなわち、リンクが正常に確立されているかどうかをチェックする。
リンクの状態が正常であるとは、制御モジュールとデバイスモジュールとの間で、転送コマンド、送信データ、受信データ等のデータが転送可能な状態をいい、リンクの状態が正常でないとは、制御モジュールとデバイスモジュールとの間で、転送コマンド等のデータが転送できない状態を言う。
リンクが確立されているかどうかの確認（リンク確認処理）は、そのデバイスモジュールのコンフィグレーションレジスタ（CONREG）に記憶されている各設定値（以下、レジスタ情報とも呼ぶ）を読み出し、読み出した設定値（レジスタ情報）と、記憶部１４に予め記憶されていたレジスタ初期値と一致するかどうかをチェックすることにより行う。
【００２７】
この発明では、利用者の入力操作、たとえばコピー操作により何らかのジョブ要求のイベントが発生した場合、そのイベントに関係するデバイスモジュールにデータ転送等のジョブを実行する前に、そのデバイスモジュールに対して、リンクの確認処理を行うことを特徴とする。
このリンクの確認処理において、読み出したレジスタ情報の値とレジスタ初期値とが一致した場合、リンクの状態は正常に確立した状態であると判断し、要求されたジョブに対応するデータ転送等（ジョブ開始処理）を行う。
ただし、一致しない場合は、リンクの状態が正常でないと判断し、初期化部１５により、正常でなかったデバイスモジュールとの間のリンクを確立させるリンク初期化処理（コンフィグレーション）を、再度行い、その後、主データ転送部により、転送要求のあったデータを、そのデバイスモジュールへ転送する。
【００２８】
ジョブ実行部１７は、要求されたジョブを実際に実行する部分であり、たとえば、コピー操作によりスキャンした画像データを、インタフェースモジュール３にデータ転送する処理を行う。
実行されるジョブは、この発明の画像形成装置に予め備えられた機能によって異なる。
【００２９】
主データ転送部１２は、転送要求のあったデータを、所定のデバイスモジュールへ転送する部分であり、詳しくは、PCIe２に対してデジタル信号の読み出しと書き込みを行う部分である。制御モジュール１に備えられるものは、PCIeマスタモジュールとも呼ぶ。
他のデバイスモジュールに備えられる従データ転送部は、PCIeインタフェースを介して、制御モジュール１に対してデータの送受信を行うものであり、PCIeスレーブモジュールと呼ぶ。
【００３０】
記憶部１４は、主として、上記したようなレジスタ初期値を予め記憶しておく部分である。レジスタ初期値は、複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要な情報であり、各デバイスモジュールごとに別々に記憶しておく。
記憶部１４には、この他にも、マスタモジュールとスレーブモジュール間で転送されるデータや、コマンド等の情報が記憶される。
記憶部１４としては、電源を切断しても記憶しておくべきデータ、たとえばレジスタ初期値などを記憶するために、ROM等の不揮発性メモリが用いられ、データ転送中に一時的に記憶され電源切断時には消去してもよいデータを記憶するために、RAM等の書きかえ可能なメモリが用いられる。
【００３１】
また、図１に示すように、インタフェースモジュール３や画像処理モジュール４のようなデバイスモジュールは、主として、従データ転送部（３１，４１）、コンフィグレーションレジスタ（CONREG、３２，４２）、機能モジュール（３３，４３）とから構成される。
デバイスモジュールは、制御モジュール１から送信された要求コマンドを受信して、そのデバイスの機能として予め定められた機能モジュールを実行する部分である。
インタフェースモジュール３は、１つまたは複数の機能モジュール３３を備えたインタフェースASICにより実現され、たとえば、USB機能、Ethernet(登録商標)機能などを実行する部分である。
また、画像処理モジュール４は、１つまたは複数の機能モジュール４３を備えた画像処理ASICにより実現され、たとえば、画像編集（拡大、縮小、回転）機能、色補正機能などを実行する部分である。
【００３２】
従データ転送部（３１，４１）は、上記した主データ転送部１２と同様に、PCIe２に対してデジタル信号の読み出しと書き込みを行う部分であり、上記したように制御モジュール１からの要求コマンドによって動作するデバイスモジュールに備えられているので、上記したようにPCIeスレーブモジュールとも呼ぶ。
コンフィグレーションレジスタ（CONREG）３２，４２は、上記したように、制御モジュールとの間のリンク確立のために必要な情報や、PCIeを介して各デバイスモジュールの動作に必要なデータの送受信を行うために必要な情報を記憶しておく部分である。このCONREGの内容は、制御モジュールとの間のリンクを確立するときに設定される。
コンフィグレーションレジスタ（CONREG）としては、情報を一時記憶するためにRAM等を用いることができるが、従データ転送部（スレーブモジュール）の中に、１つの論理素子として設けてもよい。
【００３３】
また、機能モジュール（３３，４３）は、各デバイスモジュールで実行される機能を示したものであり、ハードウェアロジック回路で構成してもよいが、ROM等に内蔵した制御プログラムによって実現してもよい。
デバイスモジュールの機能モジュールが制御プログラムで実現される場合は、図１に示すように、他の構成部分とバス接続されるのではなく、制御プログラムに基づいてASIC内のハードウェアロジックを動作させることにより、その機能が実現される。
【００３４】
コンフィグレーションレジスタ（CONREG）に設定されるレジスタ情報は、PCIeの規格によって定められている。
図４に、PCIeの規格によって定められたコンフィグレーションレジスタ（CONREG）の情報の説明図を示す。
CONREGは、アドレス00Hから3CHまでの領域を持ち、各レジスタ情報には、所定バイト数の領域が割り当てられている。
たとえば、デバイスモジュールの現在の状態を示すステータスレジスタは、アドレス04Hと05Hの領域に、２バイトのデータとして記憶される。
また、デバイスモジュールのベースアドレスは、アドレス10Hから27Hまでの領域に、２４バイトのデータとして記憶される。
また、デバイスモジュールを特定するデバイスIDは、アドレス02Hと03Hの領域に、２バイトのデータとして記憶される。
以下に、各レジスタ内容の概略を説明する。
【００３５】
レジスタ内容についての説明
・ベンダID（オフセット 00h-01h,2バイト）
デバイス・メーカーを指定する領域で、IDはPCI-SIGにより割り当てられる。
・デバイスID（オフセット02h-03h,2バイト）
デバイスを指定する領域で、IDはデバイスメーカー管理の下に割り当てられる。
・コマンド（オフセット04h‐05h、2バイト）
デバイスに関する制御機能が、各ビットに割り当てられる。
・ステータス（オフセット 06h-07h,2バイト）
デバイスに関するステータス（エラー状況等）が、各ビットに割り当てられる。
【００３６】
・Rev ID(オフセット 08h,1バイト)
デバイス固有のリビジョン番号を指定する領域で、IDはデバイス・メーカにより割り当てられる。
・クラス・コード（オフセット 09h-0Bh, 3バイト）
PCI-SIGによって定義された機能クラスの分類を示す。
・キャッシュ・メモリ・サイズ（オフセット 0Ch,1バイト）
キャッシュ・メモリ・ブロックの制御単位となるキャッシュ・ライン・サイズが設定される。
・マスタ・レイテンシ・タイマ（オフセット  0Dh, 1バイト）
レイテンシ・タイマ設定は、PCI Expressデバイスでは影響されない。このレジスタは00hに固定的に設定される。
【００３７】
・ヘッダ・タイプ（オフセット 0Eh,1バイト）
オフセット10h以降のヘッダ・フォーマット・タイプの指定と、複合機能デバイスであるかどうかを示す。
・BIST（オフセット 0Fh,1バイト）
起動時のセルフテスト機能を制御するレジスタであり、通常動作時は0x00が設定される。
・キャパビリティー・ポインタ（オフセット34h,1バイト）
デバイス固有の新しいキャパビリティ・リストが存在するアドレス・ポインタを示す。このレジスタはステータスビット４がEnableの場合のみ有効である。
・割り込みライン（オフセット  3Dh,1バイト）
割り込み信号線のルーティン部情報を格納するレジスタで、BIOS,PCIバス・ドライバ・OSのみが利用する。デバイス・ドライバやハードウェア側ではこの数値に影響を受ける事はない。
【００３８】
・割り込みピン（オフセット  3Dh,1バイト）
4本の割り込み信号線（INTA〜INTD）を使用することができ、デバイスがどの信号線を使っているかを示す。
・ベース・アドレス・レジスタ（オフセット 10h-27h,24バイト）
PCIデバイスのレジスタやメモリ・バッファを、CPUのメモリ空間とI/O空間にマッピングするためのアドレスを設定するレジスタである。
・Cardbus CISポインタ（オフセット 28h-2Bh,4バイト）
CardbusカードのCIS(Card Information Structure)の開始アドレスを示す。
・サブシステム・ベンダID（オフセット 2Ch-2Dh,2バイト）
アドイン・カード設計ベンダを定義するID番号を示す。
【００３９】
・サブシステムID（オフセット 2Eh-2Fh、2バイト）
アドイン・カード設計ベンダが定義するシステム定義IDを示す。このIDはベンダに依存する。
・拡張ROMベース・アドレス（オフセット 30h-33h,4バイト）
PCIeに追加されるアドイン・カード等に実装される、拡張ROMが使用するアドレス空間を示す。
・最小Gnt（オフセット3Eh,1バイト）
最小Gnt設定は、PCI Expressデバイスでは影響がなく、このレジスタは00hに固定される。
・最大レイテンシ（オフセット 3Fh,1バイト）
最大レイテンシ設定はPCI Expressデバイスでは影響がなく、このレジスタは00hに固定される。
【００４０】
また、コンフィグレーションレジスタ（CONREG）に設定される数値の一具体例を、以下に示す。
コンフィグレーション設定値としては、たとえば以下の値を設定する。
アドレス00h     デバイスID  =0x 1014, ベンダーID=0x13bd
アドレス04h     ステータスレジスタ=0x0000, コマンドレジスタ=0x0007
アドレス08h     クラスコード=0x0001, RevID=0x0580
アドレス0Ch     BIST=0x00, ヘッダ=0x00,レイテンシタイマ=0x00,キャッシュ＝0x20
アドレス10h     ベースアドレス0=-0x60000000,
アドレス14h     ベースアドレス1= 0x E0000000
アドレス18h     ベースアドレス2=0xFFFFFFFF
アドレス1Ch     ベースアドレス3=0x00000000
アドレス20h     ベースアドレス４=0x00000000
アドレス24h     ベースアドレス5=0x00000000
【００４１】
アドレス28h     CISカードポインタ=0x00000000
アドレス2Ch     サブシステムID=0x00000000,サブシステムVID＝0x13bd
アドレス30h     ExpansionROMベースアドレス＝0x00000000,
アドレス34h     キャパビリティポインタ=0x00000000]
アドレス3Ch     最大レイテンシ=0x0004,最小GNT=0x0000,
割り込みピン＝0x0001,割り込みライン＝0x0000
【００４２】
図３に、PCIeを介して送受信されるバスコマンドの一実施例の説明図を示す。
これらのバスコマンドを利用して、制御モジュール１とデバイスモジュール（３，４）間のデータ転送が行われる。
たとえば、画像処理モジュール４に対して、リンク初期化を行う場合は、制御モジュール１から、画像処理モジュール４に、バスコマンドとして1011(コンフィグレーションライト)が送信され、画像処理モジュール４のコンフィグレーションレジスタ４２に、記憶部１４に予め記憶されていたレジスタ初期値が書き込まれる。
【００４３】
また、リンク確認部１６により、画像処理モジュール４のコンフィグレーションレジスタ４２の内容を読み出す場合は、制御モジュール１から画像処理モジュール４に、バスコマンドとして1010(コンフィグレーションリード)が送信される。
画像処理モジュール４は、このバスコマンドを受信すると、コンフィグレーションレジスタ（CONREG）４２の内容を読み出して、読み出した内容を制御モジュール１に転送する。
【００４４】
＜この発明のリンク初期化処理とデータ転送処理＞
図２に、この発明のリンク初期化とリンク確認処理に関する一実施例のフローチャートを示す。
一般的に、この発明の画像形成装置の電源が投入されると、制御モジュール１と、各デバイスモジュール（３，４）との間で、PCIeのリンクを確立するための初期化処理が行われる。
リンクが確立した後、そのリンクが確立した制御モジュール１とデバイスモジュールとの間で所定のデータ転送が実行される。
【００４５】
また、この発明では、初期化によりリンクが確立した後において、何らかのジョブ要求がされた場合、すぐにそのジョブを開始するのではなく、リンク確認処理を行って、リンクが正常な状態であることを確認した後に、ジョブの開始処理を行う。
【００４６】
すなわち、この発明では、MFPなどの画像形成装置において、利用者がコピー操作、プリント操作、あるいはスキャン操作などをすることによって、その操作に対応した所定のジョブを実行する場合、そのジョブを実際に実行する前に、デバイスモジュールのリンク状態を確認し、リンクが確立されていない場合には再度リンクの初期化設定（再コンフィグレーション）を行うので、リンクが確立されていない状態でデータ転送が行われることを未然に防止し、画像形成装置が動作不能となることを回避することができる。
【００４７】
以下、図２のフローチャートに基づいて、リンク初期化などの処理内容を説明する。
まず、画像形成装置の電源が投入されると、ステップＳ１において、制御モジュール１のCPU１が、リンク初期化処理（PCIeコンフィグレーション）を実行する。
図５に、リンク初期化処理の一実施例のシーケンスの説明図を示す。
【００４８】
ここでは、制御モジュール１と、インタフェースモジュール３および画像処理モジュール４に代表される各デバイスモジュールとの間のリンクを確立するために、CPU１は、記憶部１４に予め記憶されているレジスタ初期値を読み出し、主データ転送部１２は、読み出されたレジスタ初期値を含む初期化コマンドを、リンクを確立させようとするデバイスモジュールの従データ転送部に対して、送信する。
このコマンドは、主データ転送部１２からPCIe上に送出されるが、画像データなどの実際のジョブデータの転送（リード、ライト）処理とは異なり、PCIe上に、コンフィグレーション  トランザクションを発生させて送出される。
【００４９】
ここで、コンフィグレーション  トランザクションとは、接続デバイスとのコンフィグレーションレジスタRead,Writeを意味するものであり、実際のデータ転送処理は、IORead/Write,メモリRead/Writeによって行われる点で、転送形式が異なる。
従データ転送部３１が、このコマンドを受信すると、コマンドに含まれるレジスタ初期値を、コンフィグレーションレジスタ（CONREG）に書き込む。
すなわち、転送されてきたレジスタ初期値の各レジスタ情報を、図４に示したようなコンフィグレーションレジスタ内部の対応するアドレスに、記憶させる。これにより、デバイスIDやベースアドレスなどが初期設定されると、PCIeのリンクが確立したことになる。
この後、制御モジュール１と、CONREGが初期設定されたデバイスモジュール（３、４）との間で、画像データ等のデータ転送が可能な状態となる。
【００５０】
ステップＳ２において、CPU１１は、利用者の入力操作に伴うジョブ要求が入力されたか否かを確認する。
たとえば、利用者が、特定のキーを押下げてコピー操作をした場合、CPU１１は、コピー操作に伴う割り込み入力を検出し、コピー処理というジョブ要求があったことを確認する。
ステップＳ３において、ジョブ要求があった場合はステップＳ４へ進み、そうでない場合はステップＳ２へ戻る。
【００５１】
ステップＳ４において、CPU１１は、リンク確認処理を行う。
ジョブ要求があった場合、ジョブに対して処理モジュールが予め決まっている事から、そのジョブ要求と関係するデバイスモジュールを特定し、どのデバイスモジュールに対するリンクを確認するかを決定する。
リンク確認処理では、デバイスモジュール（３、４）のコンフィグレーションレジスタ（CONREG）に記憶されているレジスタ情報の内容を読み出し、読み出したレジスタ情報の内容と記憶部１４に記憶されているレジスタ初期値とを比較して、一致するか否かをチェックする。
図６に、リンク確認処理の一実施例のシーケンスの説明図を示す。
リンク確認処理において、まず、CPU１１は、主データ転送部１２に、リンクの確認をするデバイスモジュール（３、４）の従データ転送部（３１、４１）へ、レジスタ確認コマンドを送信するように指示を出す。
この指示を受けた主データ転送部１２は、レジスタ確認コマンドを、PCIeを介して、確認をするデバイスモジュールの従データ転送部へ送信する。
【００５２】
従データ転送部がそのコマンドを受信すると、コンフィグレーションレジスタ（CONREG）の中に記憶されているレジスタ情報を読み出して、この読み出したCONREGのレジスタ情報を含む応答コマンドを、PCIeを介して主データ転送部１２へ送信する。
主データ転送部１２が、この応答コマンドを受信すると、その中に含まれるレジスタ情報を取得する。そして取得されたCONREGのレジスタ情報と、記憶部１４に記憶されていたレジスタ初期値とを比較する。
【００５３】
ここでの比較は、図４に示したようなCONREGのすべての情報と、対応するレジスタ初期値のすべてとが一致するか否かをチェックしてもよい。
ただし、すべての情報の比較をするのではなく、主要な情報のみについて、一致するか否かのチェックをしてもよい。
たとえば、CONREGの情報のうち、デバイスIDと、ステータスレジスタと、ベースアドレスについて、対応するレジスタ初期値と一致するか否かをチェックしてもよい。
この比較処理において、チェックした情報のうち１つでも不一致となるものがあれば、リンクの状態が正常でない（切れている）と判断する。
一方、チェックしたすべての情報が一致する場合は、リンクの状態は正常な状態であると判断する。
【００５４】
ステップＳ４のリンク確認処理の後、ステップＳ５において、チェックしたすべてのCONREGの情報が、レジスタ初期値と一致する場合は、ステップＳ７へ進み、チェックしたCONREGの情報のうち１つでも不一致となるものがあった場合は、ステップＳ６へ進む。
ステップＳ６において、再度PCIeコンフィグレーションを行う。この処理は、ステップＳ１におけるリンク初期化処理と同じものである。
この処理により、制御モジュール１からリンクが正常でなかったデバイスモジュールに対して、正しいレジスタ初期値が転送され、そのデバイスモジュールのCONREGに正しい値が書き込まれる。
これにより、制御モジュール１と、リンクが正常でなかったデバイスモジュールとのリンクが復旧される。
したがって、リンクが復旧した後は、両モジュール間で、画像データ等のデータ転送が可能となる。
ステップＳ６の後、ステップＳ７へ進む。
【００５５】
ステップＳ７において、ステップＳ２で確認されたジョブの開始処理を行い、モジュール間でのデータ転送を実行する。
たとえば、画像処理モジュール４に対するジョブ要求が発生していた場合は、そのジョブを開始するために、CPU１がIOWrite/ReadまたはメモリWrite/ReadコマンドをPCIe経由で画像処理ASICに送信し、要求のあったジョブ処理を行う。
このジョブ要求に伴うデータ転送処理などが終了すると、処理を完了する。
【符号の説明】
【００５６】
１  制御モジュール
２  PCI Express（PCIe）
３  インタフェースモジュール（インタフェースASIC）
４  画像処理モジュール（画像処理ASIC）
１１  制御部（CPU）
１２  主データ転送部（PCIeマスターモジュール）
１３  機能モジュール
１４  記憶部
１５  初期化部
１６  リンク確認部
１７  ジョブ実行部
３１  従データ転送部（PCIeスレーブモジュール）
３２  コンフィグレーションレジスタ（CONREG）
３３  機能モジュール
４１  従データ転送部
４２  コンフィグレーションレジスタ（CONREG）
４３  機能モジュール
【図１】
0005542787.tif 000002
【図２】
0005542787.tif 000003
【図３】
0005542787.tif 000004
【図４】
0005542787.tif 000005
【図５】
0005542787.tif 000006
【図６】
0005542787.tif 000007