"所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCIExpressインタフェースを介して接続される画像形成装置であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部とを備え、第1のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記第1のデバイスモジュールとの間のリンクの状態を確認し、前記確認したリンクの状態が正常でないと判断された場合、前記初期化部が、前記第1のデバイスモジュールとの間のリンクを確立させた後、前記主データ転送部が、前記転送要求のあったデータを前記第1のデバイスモジュールへ転送することを特徴とする画像形成装置。前記複数のデバイスモジュールのそれぞれが、前記PCIExpressインタフェースを介して、前記制御モジュールに対してデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定されかつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備えていることを特徴とする請求項1に記載の画像形成装置。前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記リンク確認部が、前記主データ転送部を用いて、前記第1のデバイスモジュールから、第1のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致する場合はリンクの状態が正常であると判断し、レジスタ情報とレジスタ初期値とが一致しない場合はリンクの状態が正常でないと判断することを特徴とする請求項2に記載の画像形成装置。前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記初期化部は、前記デバイスモジュールのうち第2のデバイスモジュールとの間のリンクを確立するために、前記第2のデバイスモジュール用のレジスタ初期値を、前記第2のデバイスモジュールへ転送し、前記第2のデバイスモジュールは、自己のコンフィグレーションレジスタに、転送されてきたレジスタ初期値を記憶させることを特徴とする請求項2に記載の画像形成装置。前記記憶部に記憶されたレジスタ初期値および前記コンフィグレーションレジスタに記憶されたレジスタ情報には、デバイスモジュールを特定するデバイスID、デバイスモジュールの現在の状態を示すステータスレジスタ、およびデバイスモジュールのベースアドレスが含まれていることを特徴とする請求項3または4に記載の画像形成装置。所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCIExpressインタフェースを介して接続される画像形成装置のリンク復旧方法であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、前記デバイスモジュールのそれぞれが、前記PCIExpressインタフェースを介して、前記制御モジュールの主データ転送部とデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、前記初期化部が、第1のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第1のデバイスモジュールへ転送し、前記第1のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第1のデバイスモジュールとの間のリンクを確立させた後、前記制御モジュールにおいて、前記第1のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記主データ転送部を用いて、前記第1のデバイスモジュールの従データ転送部に対して、前記第1のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を読み出すことを要求するコマンドを送信し、前記コマンドを受信した前記第1のデバイスモジュールの従データ転送部が、前記レジスタ情報を読み出して、前記主データ転送部に対して送信し、前記リンク確認部は、主データ転送部によって受信されたレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致しない場合は、リンクの状態が正常でないと判断し、前記初期化部が、前記第1のデバイスモジュールとの間のリンクを再度確立させた後、前記主データ転送部が、前記転送要求のあったデータを、前記第1のデバイスモジュールへ転送することを特徴とする画像形成装置のリンク復旧方法。従来のPCIeを利用したデータ転送では、ステータスレジスタやデバッグ用レジスタの内容を確認することにより、エラーが発生したことを検知することができ、エラー発生時に、再度コンフィグレーションレジスタの初期化を行うことによりリンクを確立させて、正常なデータ転送ができるようにしていた。しかし、データ転送時などにおいて、信号ラインに、静電気などの外部ノイズが加わることにより、デバイスのコンフィグレーションレジスタCONREGに設定されていた値が破壊される場合があった。たとえば、CONREGの設定値のうち、ベースアドレスやステータスレジスタの値が初期値と異なる値に書きかえられてしまう場合があった。このように、CONREGの初期値が破壊されてしまった場合、従来のPCIeのシーケンスでは、初期値が破壊されたことを検出する手段がなく、確立されていたリンクそのものも切断されることにより、その後のデータ通信が不能になる場合もあった。また、特許文献1においても、エラーの発生源を特定できたとしても、そのエラー発生源を除去するようなシーケンスはないので、CONREGの初期値が破壊されてしまった場合は、同様にリンクが切断され、データ通信が不能になる。このように従来の装置では、CONREGの値が破壊されることにより、リンクが切断されデータ通信が不能になった場合は、自動的な復旧手段はなく、装置の電源を再投入するか、あるいはリセット手動でリセットスイッチを押すをする必要があった。そこで、この発明は、以上のような事情を考慮してなされたものであり、外部ノイズが原因でモジュール間のデータ転送のためのリンクが切断された場合においても、再度リンクを確立させてデータ転送を継続させることが可能な画像形成装置を提供することを課題とする。この発明は、所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCIExpressインタフェースを介して接続される画像形成装置であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部とを備え、第1のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記第1のデバイスモジュールとの間のリンクの状態を確認し、前記確認したリンクの状態が正常でないと判断された場合、前記初期化部が、前記第1のデバイスモジュールとの間のリンクを確立させた後、前記主データ転送部が、前記転送要求のあったデータを前記第1のデバイスモジュールへ転送することを特徴とする画像形成装置を提供するものである。これによれば、リンクの状態が正常でないと判断された場合、リンクを確立させた後にデータの転送を行うので、装置を再起動させることはなく、装置が動作不能になることも回避できる。また、前記複数のデバイスモジュールのそれぞれが、前記PCIExpressインタフェースを介して、前記制御モジュールに対してデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定されかつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備えていることを特徴とする。また、前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記リンク確認部が、前記主データ転送部を用いて、前記第1のデバイスモジュールから、第1のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致する場合はリンクの状態が正常であると判断し、レジスタ情報とレジスタ初期値とが一致しない場合はリンクの状態が正常でないと判断することを特徴とする。また、前記制御モジュールが、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部を備え、前記初期化部は、前記デバイスモジュールのうち第2のデバイスモジュールとの間のリンクを確立するために、前記第2のデバイスモジュール用のレジスタ初期値を、前記第2のデバイスモジュールへ転送し、前記第2のデバイスモジュールは、自己のコンフィグレーションレジスタに、転送されてきたレジスタ初期値を記憶させることを特徴とする。また、前記記憶部に記憶されたレジスタ初期値および前記コンフィグレーションレジスタに記憶されたレジスタ情報には、デバイスモジュールを特定するデバイスID、デバイスモジュールの現在の状態を示すステータスレジスタ、およびデバイスモジュールのベースアドレスが含まれていることを特徴とする。さらに、この発明は、所定の機能を実行する複数のデバイスモジュールと、前記デバイスモジュールの動作を制御する制御モジュールとが、PCIExpressインタフェースを介して接続される画像形成装置のリンク復旧方法であって、前記制御モジュールが、前記デバイスモジュールとの間のリンクを確立させる初期化部と、転送要求のあったデータを、所定のデバイスモジュールへ転送する主データ転送部と、前記デバイスモジュールとの間のリンクの状態を確認するリンク確認部と、前記複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要なレジスタ初期値を記憶した記憶部とを備え、前記デバイスモジュールのそれぞれが、前記PCIExpressインタフェースを介して、前記制御モジュールの主データ転送部とデータの送受信を行う従データ転送部と、前記制御モジュールとの間のリンクを確立するときに設定され、かつデータの送受信のために必要なレジスタ情報を記憶したコンフィグレーションレジスタとを備え、前記初期化部が、第1のデバイスモジュールとの間のリンクを確立するために前記記憶部に記憶されているレジスタ初期値を、前記第1のデバイスモジュールへ転送し、前記第1のデバイスモジュールが、転送されてきたレジスタ初期値を、前記コンフィグレーションレジスタに記憶して、前記制御モジュールと前記第1のデバイスモジュールとの間のリンクを確立させた後、前記制御モジュールにおいて、前記第1のデバイスモジュールへのデータ転送要求があった場合に、前記リンク確認部が、前記主データ転送部を用いて、前記第1のデバイスモジュールの従データ転送部に対して、前記第1のデバイスモジュールのコンフィグレーションレジスタに記憶されているレジスタ情報を読み出すことを要求するコマンドを送信し、前記コマンドを受信した前記第1のデバイスモジュールの従データ転送部が、前記レジスタ情報を読み出して、前記主データ転送部に対して送信し、前記リンク確認部は、主データ転送部によって受信されたレジスタ情報を取得して、前記取得したレジスタ情報と、前記記憶部に記憶されているレジスタ初期値とを比較し、レジスタ情報とレジスタ初期値とが一致しない場合は、リンクの状態が正常でないと判断し、前記初期化部が、前記第1のデバイスモジュールとの間のリンクを再度確立させた後、前記主データ転送部が、前記転送要求のあったデータを、前記第1のデバイスモジュールへ転送することを特徴とする画像形成装置のリンク復旧方法を提供するものである。この発明によれば、制御モジュールから第1のデバイスモジュールへのデータ転送要求があった場合に、リンク確認部が、第1のデバイスモジュールとの間のリンクの状態を確認し、リンクの状態が正常でないと判断された場合、初期化部が再度リンクを確立させた後に、転送要求のあったデータを第1のデバイスモジュールへ転送するので、静電気などの外部ノイズが原因でリンクが切断されてしまった場合、リンクが確立されていない状態でデータ転送が行われることを未然に防止し、画像形成装置が動作不能になることを回避することができる。以下に、本発明を実施するための最良の形態について図面を参照して説明する。なお、これによって、この発明が限定されるものではない。<画像形成装置の構成>図1に、この発明の画像形成装置を構成するモジュールの一実施例の概略構成ブロック図を示す。図1では、画像形成装置のうち、主として、画像形成に利用する各種ハードウェアの動作を制御する部分のブロック図を示している。この発明の画像形成装置は、たとえば、デジタル複写機、デジタル複合機MFP、マルチファンクションプリンタに相当し、文字、図形、記号、画像等からなる2次元情報を入力し、その2次元情報を記憶、加工等し、用紙等に出力する装置である。図1の実施例においては、制御モジュール1と、インタフェースモジュール3と、画像処理モジュール4とが、PCIePeripheralComponentInterconnectExpress2インタフェースを介して接続されている。ただし、モジュールの数と種類は、これに限るものではない。これらの各モジュールは、主として、ASICとして提供することができ、たとえば、MFPのコントロール基板上に配置される。PCIeインタフェースは、ASICのようなデバイスを相互接続して、各デバイス間で送受信されるシリアル信号を流すデータ伝送路バスの規格であり、前記したように、PCISIGPeripheralComponentInterconnectSpecialInterestGroupによって規定されたものである。制御モジュール1は、主として、1つのMPFコントロールASICで構成され、他のモジュールに対して制御コマンドを送り、他のモジュールデバイスモジュールの動作および停止等の制御を行う部分である。図1においては、たとえば、制御モジュール1から、画像処理モジュール4に対して、PCIeを介してデータ転送コマンドを送信し、取得された画像データを画像処理モジュールに転送して、画像圧縮等の画像処理を行わせる。以下、制御モジュール以外のモジュール3,4を、デバイスモジュールと呼ぶ。1つのデバイスモジュールは、画像形成装置で実現される多数の機能のうち、所定の機能を実行する部分である。制御モジュール1は、主として、制御部CPU11、主データ転送部12、機能モジュール13、記憶部14とからなり、機能モジュール13として予め設定されている機能を実行する。制御部CPU11は、たとえば、ROM、RAM、IOコントローラ、タイマー等を内蔵して、ROM等に予め記憶されている制御プログラムに基づいて、各種ハードウェアを動作させる部分である。機能モジュール13は、この画像形成装置で実現される機能を実行する部分であり、ハードウェアの論理回路ブロック、あるいは、制御プログラムの一つのモジュールによって構成される。図1では、機能モジュール13として、この発明の特徴となる機能である初期化部15、リンク確認部16、ジョブ実行部17を示している。ただし、この他にも多数の機能モジュールを備えてもよい。初期化部15は、制御モジュール1と、PCIe2を介して接続されている他のデバイスモジュールたとえばインタフェースモジュール3、画像処理モジュール4との間のリンクを確立させる処理を行う部分である。この初期化部15では、後述するように、各デバイスモジュールに備えられたコンフィグレーションレジスタCONREGの中に、初期値を設定する処理リンク初期化処理あるいはコンフィグレーションと呼ぶを行う。たとえば、画像処理モジュール4のコンフィグレーションレジスタCONREGの中のデバイスID、ステータスレジスタ、コマンドレジスタ、ベースアドレスに、記憶部14に予め記憶されているレジスタ初期値を書き込むためのコマンドを、画像処理モジュール4に対して送信する。これにより、制御モジュールと、所望のデバイスモジュールとの間のリンクを確立するために、そのデバイスモジュール用のレジスタ初期値が、そのデバイスモジュールへ転送される。リンク確認部16は、制御モジュール1と所定のデバイスモジュールとの間のリンクの状態を確認する部分である。すなわち、リンクが正常に確立されているかどうかをチェックする。リンクの状態が正常であるとは、制御モジュールとデバイスモジュールとの間で、転送コマンド、送信データ、受信データ等のデータが転送可能な状態をいい、リンクの状態が正常でないとは、制御モジュールとデバイスモジュールとの間で、転送コマンド等のデータが転送できない状態を言う。リンクが確立されているかどうかの確認リンク確認処理は、そのデバイスモジュールのコンフィグレーションレジスタCONREGに記憶されている各設定値以下、レジスタ情報とも呼ぶを読み出し、読み出した設定値レジスタ情報と、記憶部14に予め記憶されていたレジスタ初期値と一致するかどうかをチェックすることにより行う。この発明では、利用者の入力操作、たとえばコピー操作により何らかのジョブ要求のイベントが発生した場合、そのイベントに関係するデバイスモジュールにデータ転送等のジョブを実行する前に、そのデバイスモジュールに対して、リンクの確認処理を行うことを特徴とする。このリンクの確認処理において、読み出したレジスタ情報の値とレジスタ初期値とが一致した場合、リンクの状態は正常に確立した状態であると判断し、要求されたジョブに対応するデータ転送等ジョブ開始処理を行う。ただし、一致しない場合は、リンクの状態が正常でないと判断し、初期化部15により、正常でなかったデバイスモジュールとの間のリンクを確立させるリンク初期化処理コンフィグレーションを、再度行い、その後、主データ転送部により、転送要求のあったデータを、そのデバイスモジュールへ転送する。ジョブ実行部17は、要求されたジョブを実際に実行する部分であり、たとえば、コピー操作によりスキャンした画像データを、インタフェースモジュール3にデータ転送する処理を行う。実行されるジョブは、この発明の画像形成装置に予め備えられた機能によって異なる。主データ転送部12は、転送要求のあったデータを、所定のデバイスモジュールへ転送する部分であり、詳しくは、PCIe2に対してデジタル信号の読み出しと書き込みを行う部分である。制御モジュール1に備えられるものは、PCIeマスタモジュールとも呼ぶ。他のデバイスモジュールに備えられる従データ転送部は、PCIeインタフェースを介して、制御モジュール1に対してデータの送受信を行うものであり、PCIeスレーブモジュールと呼ぶ。記憶部14は、主として、上記したようなレジスタ初期値を予め記憶しておく部分である。レジスタ初期値は、複数のデバイスモジュールのそれぞれとの間のリンクを確立するために必要な情報であり、各デバイスモジュールごとに別々に記憶しておく。記憶部14には、この他にも、マスタモジュールとスレーブモジュール間で転送されるデータや、コマンド等の情報が記憶される。記憶部14としては、電源を切断しても記憶しておくべきデータ、たとえばレジスタ初期値などを記憶するために、ROM等の不揮発性メモリが用いられ、データ転送中に一時的に記憶され電源切断時には消去してもよいデータを記憶するために、RAM等の書きかえ可能なメモリが用いられる。また、図1に示すように、インタフェースモジュール3や画像処理モジュール4のようなデバイスモジュールは、主として、従データ転送部31,41、コンフィグレーションレジスタCONREG、32,42、機能モジュール33,43とから構成される。デバイスモジュールは、制御モジュール1から送信された要求コマンドを受信して、そのデバイスの機能として予め定められた機能モジュールを実行する部分である。インタフェースモジュール3は、1つまたは複数の機能モジュール33を備えたインタフェースASICにより実現され、たとえば、USB機能、Ethernet機能などを実行する部分である。また、画像処理モジュール4は、1つまたは複数の機能モジュール43を備えた画像処理ASICにより実現され、たとえば、画像編集拡大、縮小、回転機能、色補正機能などを実行する部分である。従データ転送部31,41は、上記した主データ転送部12と同様に、PCIe2に対してデジタル信号の読み出しと書き込みを行う部分であり、上記したように制御モジュール1からの要求コマンドによって動作するデバイスモジュールに備えられているので、上記したようにPCIeスレーブモジュールとも呼ぶ。コンフィグレーションレジスタCONREG32,42は、上記したように、制御モジュールとの間のリンク確立のために必要な情報や、PCIeを介して各デバイスモジュールの動作に必要なデータの送受信を行うために必要な情報を記憶しておく部分である。このCONREGの内容は、制御モジュールとの間のリンクを確立するときに設定される。コンフィグレーションレジスタCONREGとしては、情報を一時記憶するためにRAM等を用いることができるが、従データ転送部スレーブモジュールの中に、1つの論理素子として設けてもよい。また、機能モジュール33,43は、各デバイスモジュールで実行される機能を示したものであり、ハードウェアロジック回路で構成してもよいが、ROM等に内蔵した制御プログラムによって実現してもよい。デバイスモジュールの機能モジュールが制御プログラムで実現される場合は、図1に示すように、他の構成部分とバス接続されるのではなく、制御プログラムに基づいてASIC内のハードウェアロジックを動作させることにより、その機能が実現される。コンフィグレーションレジスタCONREGに設定されるレジスタ情報は、PCIeの規格によって定められている。図4に、PCIeの規格によって定められたコンフィグレーションレジスタCONREGの情報の説明図を示す。CONREGは、アドレス00Hから3CHまでの領域を持ち、各レジスタ情報には、所定バイト数の領域が割り当てられている。たとえば、デバイスモジュールの現在の状態を示すステータスレジスタは、アドレス04Hと05Hの領域に、2バイトのデータとして記憶される。また、デバイスモジュールのベースアドレスは、アドレス10Hから27Hまでの領域に、24バイトのデータとして記憶される。また、デバイスモジュールを特定するデバイスIDは、アドレス02Hと03Hの領域に、2バイトのデータとして記憶される。以下に、各レジスタ内容の概略を説明する。レジスタ内容についての説明ベンダIDオフセット00h01h2バイトデバイスメーカーを指定する領域で、IDはPCISIGにより割り当てられる。デバイスIDオフセット02h03h2バイトデバイスを指定する領域で、IDはデバイスメーカー管理の下に割り当てられる。コマンドオフセット04h‐05h、2バイトデバイスに関する制御機能が、各ビットに割り当てられる。ステータスオフセット06h07h2バイトデバイスに関するステータスエラー状況等が、各ビットに割り当てられる。RevIDデバイス固有のリビジョン番号を指定する領域で、IDはデバイスメーカにより割り当てられる。クラスコードオフセット09h0Bh3バイトPCISIGによって定義された機能クラスの分類を示す。キャッシュメモリサイズオフセット0Ch1バイトキャッシュメモリブロックの制御単位となるキャッシュラインサイズが設定される。マスタレイテンシタイマオフセット0Dh1バイトレイテンシタイマ設定は、PCIExpressデバイスでは影響されない。このレジスタは00hに固定的に設定される。ヘッダタイプオフセット0Eh1バイトオフセット10h以降のヘッダフォーマットタイプの指定と、複合機能デバイスであるかどうかを示す。BISTオフセット0Fh1バイト起動時のセルフテスト機能を制御するレジスタであり、通常動作時は0x00が設定される。キャパビリティーポインタオフセット34h1バイトデバイス固有の新しいキャパビリティリストが存在するアドレスポインタを示す。このレジスタはステータスビット4がEnableの場合のみ有効である。割り込みラインオフセット3Dh1バイト割り込み信号線のルーティン部情報を格納するレジスタで、BIOSPCIバスドライバOSのみが利用する。デバイスドライバやハードウェア側ではこの数値に影響を受ける事はない。割り込みピンオフセット3Dh1バイト4本の割り込み信号線INTA~INTDを使用することができ、デバイスがどの信号線を使っているかを示す。ベースアドレスレジスタオフセット10h27h24バイトPCIデバイスのレジスタやメモリバッファを、CPUのメモリ空間とIO空間にマッピングするためのアドレスを設定するレジスタである。CardbusCISポインタオフセット28h2Bh4バイトCardbusカードのCISの開始アドレスを示す。サブシステムベンダIDオフセット2Ch2Dh2バイトアドインカード設計ベンダを定義するID番号を示す。サブシステムIDオフセット2Eh2Fh、2バイトアドインカード設計ベンダが定義するシステム定義IDを示す。このIDはベンダに依存する。拡張ROMベースアドレスオフセット30h33h4バイトPCIeに追加されるアドインカード等に実装される、拡張ROMが使用するアドレス空間を示す。最小Gntオフセット3Eh1バイト最小Gnt設定は、PCIExpressデバイスでは影響がなく、このレジスタは00hに固定される。最大レイテンシオフセット3Fh1バイト最大レイテンシ設定はPCIExpressデバイスでは影響がなく、このレジスタは00hに固定される。また、コンフィグレーションレジスタCONREGに設定される数値の一具体例を、以下に示す。コンフィグレーション設定値としては、たとえば以下の値を設定する。アドレス00hデバイスID0x1014ベンダーID0x13bdアドレス04hステータスレジスタ0x0000コマンドレジスタ0x0007アドレス08hクラスコード0x0001RevID0x0580アドレス0ChBIST0x00ヘッダ0x00レイテンシタイマ0x00キャッシュ=0x20アドレス10hベースアドレス00x60000000アドレス14hベースアドレス10xE0000000アドレス18hベースアドレス20xFFFFFFFFアドレス1Chベースアドレス30x00000000アドレス20hベースアドレス40x00000000アドレス24hベースアドレス50x00000000アドレス28hCISカードポインタ0x00000000アドレス2ChサブシステムID0x00000000サブシステムVID=0x13bdアドレス30hExpansionROMベースアドレス=0x00000000アドレス34hキャパビリティポインタ0x00000000アドレス3Ch最大レイテンシ0x0004最小GNT0x0000割り込みピン=0x0001割り込みライン=0x0000図3に、PCIeを介して送受信されるバスコマンドの一実施例の説明図を示す。これらのバスコマンドを利用して、制御モジュール1とデバイスモジュール3,4間のデータ転送が行われる。たとえば、画像処理モジュール4に対して、リンク初期化を行う場合は、制御モジュール1から、画像処理モジュール4に、バスコマンドとして1011が送信され、画像処理モジュール4のコンフィグレーションレジスタ42に、記憶部14に予め記憶されていたレジスタ初期値が書き込まれる。また、リンク確認部16により、画像処理モジュール4のコンフィグレーションレジスタ42の内容を読み出す場合は、制御モジュール1から画像処理モジュール4に、バスコマンドとして1010が送信される。画像処理モジュール4は、このバスコマンドを受信すると、コンフィグレーションレジスタCONREG42の内容を読み出して、読み出した内容を制御モジュール1に転送する。<この発明のリンク初期化処理とデータ転送処理>図2に、この発明のリンク初期化とリンク確認処理に関する一実施例のフローチャートを示す。一般的に、この発明の画像形成装置の電源が投入されると、制御モジュール1と、各デバイスモジュール3,4との間で、PCIeのリンクを確立するための初期化処理が行われる。リンクが確立した後、そのリンクが確立した制御モジュール1とデバイスモジュールとの間で所定のデータ転送が実行される。また、この発明では、初期化によりリンクが確立した後において、何らかのジョブ要求がされた場合、すぐにそのジョブを開始するのではなく、リンク確認処理を行って、リンクが正常な状態であることを確認した後に、ジョブの開始処理を行う。すなわち、この発明では、MFPなどの画像形成装置において、利用者がコピー操作、プリント操作、あるいはスキャン操作などをすることによって、その操作に対応した所定のジョブを実行する場合、そのジョブを実際に実行する前に、デバイスモジュールのリンク状態を確認し、リンクが確立されていない場合には再度リンクの初期化設定再コンフィグレーションを行うので、リンクが確立されていない状態でデータ転送が行われることを未然に防止し、画像形成装置が動作不能となることを回避することができる。以下、図2のフローチャートに基づいて、リンク初期化などの処理内容を説明する。まず、画像形成装置の電源が投入されると、ステップS1において、制御モジュール1のCPU1が、リンク初期化処理PCIeコンフィグレーションを実行する。図5に、リンク初期化処理の一実施例のシーケンスの説明図を示す。ここでは、制御モジュール1と、インタフェースモジュール3および画像処理モジュール4に代表される各デバイスモジュールとの間のリンクを確立するために、CPU1は、記憶部14に予め記憶されているレジスタ初期値を読み出し、主データ転送部12は、読み出されたレジスタ初期値を含む初期化コマンドを、リンクを確立させようとするデバイスモジュールの従データ転送部に対して、送信する。このコマンドは、主データ転送部12からPCIe上に送出されるが、画像データなどの実際のジョブデータの転送リード、ライト処理とは異なり、PCIe上に、コンフィグレーショントランザクションを発生させて送出される。ここで、コンフィグレーショントランザクションとは、接続デバイスとのコンフィグレーションレジスタReadWriteを意味するものであり、実際のデータ転送処理は、IOReadWriteメモリReadWriteによって行われる点で、転送形式が異なる。従データ転送部31が、このコマンドを受信すると、コマンドに含まれるレジスタ初期値を、コンフィグレーションレジスタCONREGに書き込む。すなわち、転送されてきたレジスタ初期値の各レジスタ情報を、図4に示したようなコンフィグレーションレジスタ内部の対応するアドレスに、記憶させる。これにより、デバイスIDやベースアドレスなどが初期設定されると、PCIeのリンクが確立したことになる。この後、制御モジュール1と、CONREGが初期設定されたデバイスモジュール3、4との間で、画像データ等のデータ転送が可能な状態となる。ステップS2において、CPU11は、利用者の入力操作に伴うジョブ要求が入力されたか否かを確認する。たとえば、利用者が、特定のキーを押下げてコピー操作をした場合、CPU11は、コピー操作に伴う割り込み入力を検出し、コピー処理というジョブ要求があったことを確認する。ステップS3において、ジョブ要求があった場合はステップS4へ進み、そうでない場合はステップS2へ戻る。ステップS4において、CPU11は、リンク確認処理を行う。ジョブ要求があった場合、ジョブに対して処理モジュールが予め決まっている事から、そのジョブ要求と関係するデバイスモジュールを特定し、どのデバイスモジュールに対するリンクを確認するかを決定する。リンク確認処理では、デバイスモジュール3、4のコンフィグレーションレジスタCONREGに記憶されているレジスタ情報の内容を読み出し、読み出したレジスタ情報の内容と記憶部14に記憶されているレジスタ初期値とを比較して、一致するか否かをチェックする。図6に、リンク確認処理の一実施例のシーケンスの説明図を示す。リンク確認処理において、まず、CPU11は、主データ転送部12に、リンクの確認をするデバイスモジュール3、4の従データ転送部31、41へ、レジスタ確認コマンドを送信するように指示を出す。この指示を受けた主データ転送部12は、レジスタ確認コマンドを、PCIeを介して、確認をするデバイスモジュールの従データ転送部へ送信する。従データ転送部がそのコマンドを受信すると、コンフィグレーションレジスタCONREGの中に記憶されているレジスタ情報を読み出して、この読み出したCONREGのレジスタ情報を含む応答コマンドを、PCIeを介して主データ転送部12へ送信する。主データ転送部12が、この応答コマンドを受信すると、その中に含まれるレジスタ情報を取得する。そして取得されたCONREGのレジスタ情報と、記憶部14に記憶されていたレジスタ初期値とを比較する。ここでの比較は、図4に示したようなCONREGのすべての情報と、対応するレジスタ初期値のすべてとが一致するか否かをチェックしてもよい。ただし、すべての情報の比較をするのではなく、主要な情報のみについて、一致するか否かのチェックをしてもよい。たとえば、CONREGの情報のうち、デバイスIDと、ステータスレジスタと、ベースアドレスについて、対応するレジスタ初期値と一致するか否かをチェックしてもよい。この比較処理において、チェックした情報のうち1つでも不一致となるものがあれば、リンクの状態が正常でない切れていると判断する。一方、チェックしたすべての情報が一致する場合は、リンクの状態は正常な状態であると判断する。ステップS4のリンク確認処理の後、ステップS5において、チェックしたすべてのCONREGの情報が、レジスタ初期値と一致する場合は、ステップS7へ進み、チェックしたCONREGの情報のうち1つでも不一致となるものがあった場合は、ステップS6へ進む。ステップS6において、再度PCIeコンフィグレーションを行う。この処理は、ステップS1におけるリンク初期化処理と同じものである。この処理により、制御モジュール1からリンクが正常でなかったデバイスモジュールに対して、正しいレジスタ初期値が転送され、そのデバイスモジュールのCONREGに正しい値が書き込まれる。これにより、制御モジュール1と、リンクが正常でなかったデバイスモジュールとのリンクが復旧される。したがって、リンクが復旧した後は、両モジュール間で、画像データ等のデータ転送が可能となる。ステップS6の後、ステップS7へ進む。ステップS7において、ステップS2で確認されたジョブの開始処理を行い、モジュール間でのデータ転送を実行する。たとえば、画像処理モジュール4に対するジョブ要求が発生していた場合は、そのジョブを開始するために、CPU1がIOWriteReadまたはメモリWriteReadコマンドをPCIe経由で画像処理ASICに送信し、要求のあったジョブ処理を行う。このジョブ要求に伴うデータ転送処理などが終了すると、処理を完了する。"