(57)【特許請求の範囲】
【請求項１】
データ及びコマンドをトランザクションで転送する１つのマスターチップと前記マスターチップから転送されるトランザクションを受け取る複数のスレーブチップとをリング状の経路により接続したデータ転送装置におけるデータ転送方法であって、
前記１つのマスターチップが、前記経路における次のスレーブチップにトランザクションを転送する第１の転送工程と、
前記複数のスレーブチップの各々が、前記トランザクションを受け取って解析し、該トランザクションが自スレーブチップに対するものであれば、該トランザクションを内部処理する解析工程と、
前記複数のスレーブチップの各々が、前記解析工程の処理と並行して、当該トランザクションを前記経路における次のチップに転送する第２の転送工程とを有することを特徴とするデータ転送方法。
【請求項２】
前記マスターチップから前記複数のスレーブチップに対して行われるトランザクションは、前記複数のスレーブチップ内に存在するレジスタのライト、リードまたは前記スレーブチップのリセットを行うものであることを特徴とする請求項１に記載のデータ転送方法。
【請求項３】
転送を行うトランザクションの転送方式は、前記スレーブチップに対してのライト、リード、コンフィグレーション、リセットの種類を有することを特徴とする請求項１または２に記載のデータ転送方法。
【請求項４】
前記転送を行うトランザクションは、コマンドの情報を持つコマンドトランザクションとレジスタのデータの情報を持つデータトランザクションとに別れて、それぞれ前記各スレーブチップに対して転送されることを特徴とする請求項１に記載のデータ転送方法。
【請求項５】
前記コマンドトランザクションには、リードのトランザクションであるかライトのトランザクションであるかコンフィグレーションのトランザクションであるかを判断する第１の識別子と、前記コマンドトランザクションであるか前記データトランザクションであるかを判断する第２の識別子と、前記データトランザクション中のデータのデータ幅を判断する第３の識別子と、ライト及びリードする際のレジスタのアドレス情報と、前記複数のスレーブチップを判断する識別情報とを含んでいることを特徴とする請求項４に記載のデータ転送方法。
【請求項６】
前記データトランザクションには、リードのトランザクションであるかライトのトランザクションであるかコンフィグレーションのトランザクションであるかを判断する第４の識別子と、前記コマンドトランザクションであるかデータトランザクションであるかを判断する第５の識別子と、前記データトランザクション中のデータのデータ幅を判断する第６の識別子と、ライト及びリードする際のレジスタのデータ情報とを含んでいることを特徴とする請求項４に記載のデータ転送方法。
【請求項７】
前記解析工程は、前記コマンドトランザクションを受け取った際に、前記第１、第２、第４、第５の識別子と、前記アドレス情報と、前記識別情報とを判定する判定工程を有し、該当するトランザクションのみに対して処理を行うことを特徴とする請求項６に記載のデータ転送方法。
【請求項８】
前記ライトのトランザクションは、前記マスターチップが前記スレーブチップに対して発行したトランザクションが、前記マスターチップに戻る前に次のトランザクションを発行することが可能であることを特徴とする請求項３に記載のデータ転送方法。
【請求項９】
前記リードのトランザクションは、前記複数のスレーブチップに対して、該当する前記スレーブチップの内部に存在するレジスタにのみデータをリードするものであり、前記各スレーブチップは、それぞれリードのコマンドトランザクションを受け取り、前記スレーブチップ内部にて該当するか否かを判断し、それと並行して次の前記スレーブチップに前記リードのコマンドトランザクションを転送し、前記リードのトランザクションが該当する場合は、前記スレーブチップは、その内部に存在するレジスタにリードを行い、そのリードしたレジスタデータをデータトランザクションとして、次の前記スレーブチップに転送し、該転送されたリードのコマンドトランザクション及びデータトランザクションは、最終的に前記マスターチップに送られ、該マスターチップは、前記リードのデータトランザクションの受け取りが終了した時点で、前記リードのトランザクションが終了したものと判断するように、一連のリードのトランザクション動作を行うことを特徴とする請求項５に記載のデータ転送方法。
【請求項１０】
前記マスターチップは、前記リードのトランザクションが終了したと判断するまでは、次のトランザクションの発行を行わないことを特徴とする請求項９に記載のデータ転送方法。
【請求項１１】
前記複数のスレーブチップを判断するために、前記マスターチップは、前記各スレーブチップに対してコンフィグレーションのトランザクションを発行し、前記コンフィグレーションのトランザクションによって前記各スレーブチップに番号を付け、この番号を前記識別情報として前記コマンドトランザクション中の情報に付加することを特徴とする請求項３または５に記載のデータ転送方法。
【請求項１２】
前記コンフィグレーションのトランザクションは、前記マスターチップが前記コンフィグレーションのトランザクションを発行することにより、何度でも前記各スレーブチップに対してコンフィグレーションを行うことが可能であることを特徴とする請求項１１に記載のデータ転送方法。
【請求項１３】
前記マスターチップと前記スレーブチップとの間を転送されるトランザクション全てに、ある一定単位のデータ幅を持たせ、前記データ幅の単位で全てのトランザクションを管理することで、有効なトランザクションが転送されているか否かを判断する判断工程を有することを特徴とする請求項１に記載のデータ転送方法。
【請求項１４】
前記トランザクションの前記データ幅単位で全てのトランザクションを管理する際に、前記トランザクションの単位において有効なトランザクションの開始位置を判断するために、有効なトランザクションの単位の最初のデータ１ビットを常にＨ（Ｈｉｇｈ）状態にし、データのトランザクションが行われていない無効なトランザクション範囲においては前記データ１ビットをＬ（Ｌｏｗ）状態に保つことで、前記トランザクションの単位における有効データの開始位置を判断する判断工程を有することを特徴とする請求項１３に記載のデータ転送方法。
【請求項１５】
前記データは、１ビットのシリアルデータであることを特徴とする請求項１乃至１４のいずれかに記載のデータ転送方法。
【請求項１６】
前記マスターチップは、データ及びそのデータを転送するために用いる同期クロックを転送し、前記複数のスレーブチップは、前記マスターチップから転送されるデータを前記同期クロックに従って受け取る第１のスレーブチップと、他のスレーブチップから転送されるデータとそのデータ転送用の同期クロックとを受け取る第２のスレーブチップとを有することを特徴とするデータ転送方法。
【請求項１７】
前記マスターチップから前記第１及び第２のスレーブチップに対して転送されたデータの転送状態を、前記第１及び第２のスレーブチップ内に保持することが可能なことを特徴とする請求項１６に記載のデータ転送方法。
【請求項１８】
前記データの転送状態は、データの転送状況によってデータに乗るノイズによる信号線の信頼性を表すものであることを特徴とする請求項１７に記載のデータ転送方法。
【請求項１９】
前記第１及び第２のスレーブチップ内に保持されたデータの転送状態は、前記マスターチップから読み出すことが可能であり、その読み出し方は、前記第１及び第２のスレーブチップ内に存在するレジスタのリードを行う方法と同等であるか、または別の信号線として前記第１及び第２のスレーブチップ外へ出力することで、前記マスターチップがデータの転送状態を知ることが可能であることを特徴とする請求項１７または１８に記載のデータ転送方法。
【請求項２０】
前記マスターチップから前記第１及び第２のスレーブチップ内に保持されたデータの転送状態を読み出し、そのデータの転送状態が悪い場合には、データの転送速度を低下させることによって、データの転送状態を良好にすることを特徴とする請求項１９に記載のデータ転送方法。
【請求項２１】
前記マスターチップから前記第１及び第２のスレーブチップ内に保持されたデータの転送状態を読み出し、そのデータの転送状態が悪い場合には、データ転送時のデータの信頼性が悪いものと判断し、再度同じデータを転送することにより、データの転送の信頼性を向上させることを特徴とする請求項１９に記載のデータ転送方法。
【請求項２２】
前記マスターチップから前記第１及び第２のスレーブチップ内に保持されたデータの転送状態は、前記第１及び第２のスレーブチップへ転送されてきたデータ転送用の同期クロックの立ち上がりでのデータの状態と、データ転送用の同期クロックの立ち上がりでのデータの状態とを保持したものから生成されたデータの転送状態であることを特徴とする請求項１７乃至２１のいずれかに記載のデータ転送方法。
【請求項２３】
前記マスターのチップから前記第１及び第２のスレーブチップ内に保持されたデータの転送状態を読み出すか否かは、ユーザが前記マスターチップからのリードを制御することにより、選択することが可能であることを特徴とする請求項１９に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップ等の電子チップ相互間を接続するデータ転送方法に関する。
【背景技術】
【０００２】
複数のチップ間でレジスタの設定等を行うためには、マスターとなるチップから複数の各スレーブに対してレジスタ設定用に、アドレスバス、ライト用のデータバス、リード用のデータバス、チップのセレクト信号を全スレーブチップに接続していた（例えば、特許文献１参照）。
【０００３】
また、リセットもチップ毎に別々にリセットピンが用意され、このリセットピンに対してリセット信号が別々に基板上で接続されていた。
【０００４】
この場合、各チップ間に接続されているバスの信号線及びリセット信号を全て、チップが組み込まれる基板上で接続しなければならない。
【０００５】
そのため、接続されるスレーブチップの個数に比例して、前記アドレスバス、ライト用のデータバス、リード用のデータバス、チップのセレクト信号、リセット信号が増加する。
【０００６】
また、各チップにおいて、レジスタの設定用に入出力用のピン、リセットピンが必要であり、ピン数の増加も生じる。
【０００７】
レジスタ設定等のチップの初期設定や、データ処理前に設定するための信号線においては、チップのデータ処理に比べ頻繁に設定する必要はなく、設定速度も低速で十分な場合が多い。
【０００８】
また、シリアルにてデータを転送する場合に、マスターチップに対してスレーブチップは１対１で接続し、データの転送を行わなければならない。その際には、レジスタのライト、リードを行うために、マスターチップからスレーブチップ方向にデータが転送される信号線と、スレーブチップからマスターチップ方向にデータが転送される信号線の２本を最低必要とする。
【０００９】
マスターチップ１つで、全スレーブチップに直接データを転送する場合には、マスターチップから各スレーブチップ方向へ転送される信号線と、各スレーブチップからマスターチップ方向へ転送される信号線を、各々、スレーブチップの個数分必要となり、マスターチップはそれぞれのスレーブチップに対する転送を制御しなければならない。また、マスターチップがどのスレーブチップにデータのライト及びリードのアクセスを行うかの制御のためのチップセレクトの信号線をスレーブチップの個数分、マスターチップから各スレーブチップへ接続しなければならない。
【００１０】
また、マスターチップから各スレーブチップへ転送される信号線の信号レベルの状態を知ることはできず、基板の状態や信号線の配線状態等によって信号線にノイズが乗り、そのノイズの影響により信号レベルが変わることで転送データにエラーが生じる可能性がある。
【００１１】
各スレーブチップで受信したデータにノイズによるエラーが発生した場合は、各スレーブチップ内において、受信したデータに対してバリティエラーのエラー処理を行う場合等が考えられる。この場合、バリティービットの取り方によってデータのエラーを検知できる場合もあるが、エラー処理の信頼性は低い。
【００１２】
前者の場合には、それぞれのスレーブチップから割り込み信号が出るため、割り込み信号線がスレーブチップ数分必要となり、信号線、ピン数の増加につながる。
【００１３】
また、後者の場合には、マスターチップからスレーブチップへ転送する信号線の状態とスレーブチップからマスターチップへ転送する信号線の状態が同じではないため、マスターチップからスレーブチップへ転送する場合にエラーが生じたものが、スレーブチップからマスターチップへ転送する際に、再度ノイズの影響でエラーが生じてしまう可能性がある。
【特許文献１】特開２００１−１４２７３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記従来例のレジスタ設定等のための信号は、チップの信号処理を行う前に初期設定を行ったり、途中、設定を行う程度で、データ処理に比べ頻繁に通信を行う必要はない場合が多く、処理スピードも設定速度も低速で十分な場合が多いため、チップ間でレジスタ設定を行う際には、レジスタ設定用の信号線をバスデータではなくシリアルデータでの通信で十分な場合が多い。
【００１５】
しかし、前記のような処理速度の要求の場合にも、バスの信号線を使ってチップ間を接続し、配線を増加し、複雑化している場合が多い。
【００１６】
また、前記のような処理速度の要求の場合には、配線性を考慮し、チップ間の配線数を極力少なくすることで、システム全体の配線数の削減及び設計の容易化につながる。
【００１７】
また、シリアルデータで通信を行った場合、バリティエラー等によりシリアルデータのエラー状況を判断しているが、エラーのビット位置によってはエラーを判断しきれない場合がある。また、バリティエラーにより割り込みを発生させる場合も、バリティエラーが頻繁に発生する場合には、その都度、ＣＰＵ等の制御部分に割り込みが発生し、ＣＰＵの動作性能を低下させる危険性がある。
【００１８】
また、リセットをチップに対して行う場合は、それぞれチップに個別にリセット信号を設ける必要がある。リセットを行う制御は、通常、同じボード上のチップ全体にリセットを行い、ある特定のチップのみをリセットするように制御することはない。
【００１９】
また、リセット信号を他のチップで制御する場合は、各対象となるチップにリセット信号を別々に設け、それぞれを制御しなければならない。
【００２０】
そのため、対象となるチップの個数分のリセット信号が必要となり、配線の増加及び複雑化を招いている。
【００２１】
マスターチップに接続される複数のスレーブチップに対して、マスターチップ側から必要なチップのみをリセットしたり、全てのスレーブチップをリセットする制御が行えることで、リセット信号の削減及び特定のスレーブチップのみをリセットすることが可能となる。
【００２２】
また、マスターチップに対してスレーブチップにシリアルデータを転送する場合には、通信データの転送は１対１の関係を持ち、１個のマスターチップからデータを転送することができるのは、接続されている１個のスレーブチップのみであった。
【００２３】
また、シリアルデータを転送するためのデータのマスターチップ１個に対して、複数のスレーブチップにデータを転送する場合には、対象となるスレーブチップを識別するためにチップのセレクト信号（以下、チップセレクトと記述する。）を別に用意し、アクセス時にそのチップセレクト信号をアサートする必要があった。
【００２４】
更に、チップセレクト信号は、そのスレーブチップの個数分だけ必要となり、信号線の増加につながっていた。
【００２５】
そこで、本発明は、上述のような従来技術の欠点に鑑みてなされたものであり、１個のマスターチップから複数のスレーブチップに対してデータを１度のトランザクションで転送することができると共に、チップのポート数の削減及び各チップを接続する信号線の増加防止を図ることが可能なデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
上記目的を達成するために、本発明のデータ転送方法は、データ及びコマンドをトランザクションで転送する１つのマスターチップと前記マスターチップから転送されるトランザクションを受け取る複数のスレーブチップとをリング状の経路により接続したデータ転送装置におけるデータ転送方法であって、前記１つのマスターチップが、前記経路における次のスレーブチップにトランザクションを転送する第１の転送工程と、前記複数のスレーブチップの各々が、前記トランザクションを受け取って解析し、該トランザクションが自スレーブチップに対するものであれば、該トランザクションを内部処理する解析工程と、前記複数のスレーブチップの各々が、前記解析工程の処理と並行して、当該トランザクションを前記経路における次のチップに転送する第２の転送工程とを有することを特徴とする。
【発明の効果】
【００２７】
本発明によれば、１個のマスターチップから複数のスレーブチップに対してデータを１度のトランザクションで転送することが可能となると共に、チップのポート数の削減及び各チップを接続する信号線の増加防止を図ることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明のデータ転送方法、データ転送装置、プログラム及び記憶媒体の実施形態について、図面を参照しながら説明する。
【００２９】
［第１の実施形態］
先ず、本発明の第１の実施形態を、図１乃至図７に基づき説明する。
【００３０】
本実施の形態では、上記従来技術の有する問題点を解決するために、１個のマスターチップに対して１個以上の複数のスレーブチップを、シリアルデータの信号線と転送同期用のクロック線との２本の信号線をリング状に接続し、そのシリアルデータの信号線上に転送を行いたいレジスタデータの情報を流し、シリアルデータの信号線上のシリアルデータの情報は、各スレーブチップ間を順に転送され、最後にマスターチップに戻って来る構成を取る。
【００３１】
転送同期用のクロック線も、シリアルデータの信号線と同様に、マスターチップからスレーブチップに転送され、順次、各スレーブチップ間を転送され、最後にマスターチップに戻って来る構成を取る。
【００３２】
マスターチップ及び各スレーブチップは、前記転送同期用のクロック線に対して同期化してシリアルデータの信号線上のデータを受信及び送信する。
【００３３】
転送するシリアルデータを全て数ビット単位で１つのトランザクションの単位として扱い、このトランザクション単位でシリアルデータが有効であるか否かを判断する。
【００３４】
トランザクション単位でシリアルデータを転送する際に、有効なトランザクションのデータの開始点を判別するために、トランザクション単位の最初の１ビットだけを常にＨ（Ｈｉｇｈ）状態にし、無効なトランザクション間は、常にＬ（Ｌｏｗ）状態にする。これによって有効なトランザクションの開始点を判別し、トランザクション単位で扱うデータのビット数分転送された時点で、そのトランザクションは転送を終了したものと判断する。
【００３５】
前記トランザクション単位で、マスターチップ、スレーブチップ間におけるシリアルデータの転送中に、そのトランザクションにビットエラーが発生し、そのトランザクションに不適当なデータ情報が含まれてしまった場合に、各スレーブチップにおいて、その不適当なデータ情報が、そのままスレーブチップ内のレジスタ等に書き込まれないようにエラー管理を行う。
【００３６】
前記エラー管理は、前記トランザクション単位においてマスターチップでパリティビットを付加し、スレーブチップに転送を行い、各スレーブチップは、前記トランザクション単位でデータを受信する際に、各トランザクション単位でパリティの検出を行いマスターチップが付加したパリティビットとスレーブチップで受信したパリティビットが合致しているか否かを判断することでエラーのトランザクションを検出する。
【００３７】
前記エラー管理は、各スレーブチップにおいてパリティビットの確認を行うだけでなく、スレーブチップからリング状の信号線上を転送されマスターチップに戻ってきたシリアルデータにおいても、スレーブチップと同様、前記トランザクション単位でパリティビットの確認を行う。
【００３８】
前記エラー管理において、各スレーブチップでエラーのトランザクションを検出した場合、各スレーブチップは、そのトランザクションに不適当なデータ情報が存在するものと認識し、そのトランザクションのデータに関して、スレーブチップ内のレジスタ等に書き込み及び読み込みを行わず、そのまま、次のスレーブチップまたはマスターチップに転送する。
【００３９】
前記エラー管理において、マスターチップでエラーのトランザクションを検出した場合、スレーブチップは、そのトランザクションに不適当なデータ情報が存在するものと認識し、そのトランザクションのデータに関してのエラー表示を行い、そのトランザクションの転送に失敗したことを外部に通知する。
【００４０】
シリアルデータを転送の種類を判別するためのコマンドデータと、転送を行いたいデータとに分け、それぞれコマンドデータのトランザクション（以下、コマンドトランザクションあるいはコマンド部と記述する。）とデータのトランザクション（以下、データトランザクションあるいはデータ部と記述する。）とする。
【００４１】
更に、複数のスレーブチップをマスターチップが個々に識別するために、マスターチップは、各スレーブチップに対してコンフィグレーションのトランザクションを発行し、このコンフィグレーションのトランザクションによって各スレーブチップにユニークな番号を付け、この番号をスレーブチップを識別するチップＩＤ（識別子）とする。
【００４２】
コマンドトランザクションには、データトランザクションかコマンドトランザクションかを識別する識別子（以下、Ｃ／Ｄ識別子と記述する。）と、ライトのトランザクションかリードのトランザクションかを識別する識別子（以下、Ｗ／Ｒ識別子と記述する。）と、データの転送幅を識別する識別子（以下、Ｂｉｔ  Ｍｏｄｅと記述する。）と、スレーブチップを識別するチップＩＤの識別子（以下，Ｃｈｉｐ  ＩＤと記述する。）と、リードまたはライトするアドレスの情報を含む。
【００４３】
データトランザクションには、Ｃ／Ｄ識別子と、Ｗ／Ｒ識別子と、ＢｉｔＭｏｄｅと、リードまたはライトするデータの情報を含む。
【００４４】
＜ライトのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタにデータをライトする時は、マスターチップは、スレーブチップに対してコマンドトランザクションを発行し、続けてデータトランザクションを発行する。
【００４５】
この時、コマンドトランザクション中には、Ｃ／Ｄ識別子をアクティブに（例えば、コマンドトランザクション時にはＣ／Ｄ識別子はアクティブ、データトランザクション時には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、Ｂｉｔ  Ｍｏｄｅを所定のデータ幅情報に設定し、Ｃｈｉｐ  ＩＤを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【００４６】
この時、データトランザクション中には、Ｃ／Ｄ識別子を非アクティブに（例えば、コマンドトランザクション時にはＣ／Ｄ識別子はアクティブ、データトランザクション時には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、Ｂｉｔ  Ｍｏｄｅを所定のデータ幅情報に設定し、所定のレジスタのライトするデータ値を設定した情報が含まれている。
【００４７】
この時、マスターチップは、該マスターチップが発行したライトのトランザクションが、各スレーブチップを介してマスターチップに戻って来ない間でも、連続してライトのトランザクションを発行させる。
【００４８】
そのため、ライトのトランザクションに関して、マスターチップは、各スレーブチップにデータが書き込まれたか否かをライトのトランザクションによって確認することはない。マスターチップは、スレーブチップからリング状の信号線上に送られてきたトランザクションを受信し、そのトランザクションにパリティのエラーがあるか否かのみを判断する。
【００４９】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが、該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタにデータをライトする。そのスレーブチップに該当しないトランザクションに関しては、次々に次のスレーブチップまたはマスターチップに送ることで、ライトのトランザクションを次々に処理する。
【００５０】
これによって、ライトを行いたいスレーブチップのレジスタに対して、マスターチップはライトすることが可能になる。
【００５１】
＜リードのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタのデータをリードする時は、マスターチップは、スレーブチップに対してコマンドトランザクションを発行する。
【００５２】
この時、コマンドトランザクション中には、Ｃ／Ｄ識別子をアクティブに、Ｗ／Ｒ識別子を非アクティブに、Ｂｉｔ  Ｍｏｄｅを所定のデータ幅情報に設定し、Ｃｈｉｐ  ＩＤを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【００５３】
この時、マスターチップは、該マスターチップが発行したリードのコマンドトランザクションが、各スレーブチップを介した後、マスターチップに戻って来て、該当するスレーブチップから発行されるリードのデータトランザクションをマスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【００５４】
リードのトランザクションに関しては、マスターチップがスレーブチップに転送したリードのコマンドトランザクションが、スレーブチップで受信され、スレーブチップから次のスレーブチップまたはマスターチップへコマンドトランザクションを転送しつつ、該当するスレーブチップからリードのデータトランザクションの発行が行われる。
【００５５】
マスターチップでは、このリードのコマンドトランザクションを受信した後、リードのデータトランザクションを受信する。マスターチップは、このリードのデータトランザクションを受信し終えるまでは、リードのデータトランザクションの受信待ち状態になり、マスターチップがリードのトランザクションを受信し終えた後に、マスターチップは、次のトランザクションの転送動作に移る。
【００５６】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタに対してデータをリードする。
【００５７】
前記該当するスレーブチップは、このリードしたレジスタデータからリードのデータトランザクションの転送を行う。
【００５８】
この時、前記該当するスレーブチップは、リードのデータトランザクションを発行するのに必要な前記識別子及びデータの設定情報を付加して、リードのデータトランザクションとする。
【００５９】
スレーブチップにおいて、リードのコマンドトランザクションが該当しない場合は、次々に次のスレーブチップまたはマスターチップにリードのコマンドトランザクションをそのまま転送することで、リードのコマンドトランザクションを処理する。
【００６０】
マスターチップは、リードのトランザクション時には、リードのコマンドトランザクションを受信し、その後、リードのデータトランザクションを受け取ることになる。そのため、マスターチップは、リードのコマンドトランザクションを受信した時に、Ｃｈｉｐ  ＩＤからリードを行ったスレーブチップを確定し、アドレスの情報からリードを行ったレジスタのアドレスを確定し、リードのデータトランザクションを受信した時に、データの情報からリードを行ったレジスタのデータ値を確定することができる。
【００６１】
これによって、リードを行いたいスレーブチップのレジスタに対して、マスターチップはリードすることが可能になる。
【００６２】
以下、図面を参照して具体的に説明する。
【００６３】
＜ネットワークシステム全体の説明＞
図１は、本実施の形態に係るデータ転送装置を有するデータ処理システムの構成を示すブロック図であり、同図において、１００は第１の画像入出力システム、１０１は第２の画像入出力システム、１０２は第１のデータベースサーバ、１０３はデータベースクライアント、１０４は電子メールクライアント、１０５は第１の電子メールサーバ、１０６は第１のＷＷＷサーバ、１０７はＤＮＳサーバ、１０８はルータ、１０９はＬＡＮ（ローカルエリアネットワーク）、１１０は第２のデータベースサーバ、１１１は第２のＷＷＷサーバ、１１２は第２の電子メールサーバ、１１３はインターネット／イントラネット、１１４はファクシミリ（ＦＡＸ）、１１５はＰＳＴＮ（public switched telephone network:公衆電話網）またはＩＳＤＮ（integrated service digital network:統合サービスデジタル網）である。
【００６４】
第１の画像入出力システム１００、第１のデータベースサーバ１０２、データベースクライアント１０３、電子メールクライアント１０４、第１の電子メールサーバ１０５、第１のＷＷＷサーバ１０６、ＤＮＳサーバ１０７及びルータ１０８は、ＬＡＮ１０９に接続されている。
【００６５】
また、第２の画像入出力システム１０１、第２のデータベースサーバ１１０、第２のＷＷＷサーバ１１１、第２の電子メールサーバ１１２は、インターネット／イントラネット１１３に接続されている。このインターネット／イントラネット１１３にはルータ１０８が接続されている。
【００６６】
図２は、画像入出力システム１００，１０１の構成を示すブロック図であり、同図に示すように画像入出力システム１００，１０１は、リーダ部Ｒとプリンタ部Ｐとコントローラユニット２００と操作部２０１と記録部（ＣＤ−ＲＯＭ）２０２を有している。リーダ部Ｒ、プリンタ部Ｐ、操作部２０１及び記録部は、コントローラユニット２００に接続されている。
【００６７】
図１に示す複数のサーバ１０２，１０５，１０６，１０７，１１０，１１１，１１２からプリントのジョブの実行を行うことで、ＬＡＮ１０９を介して画像入出力システム１００，１０１にプリントのジョブ及び画像データが送られ、画像入出力システム１００，１０１のプリンタ部Ｐによりプリントアウトしたり、リーダ部Ｒから読み込んだ画像をＬＡＮ１０９に流すこともできる。
【００６８】
また、リーダ部Ｒから読み込んだ画像を図示しないＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ１１５に送信したり、ＰＳＴＮまたはＩＳＤＮ１１５から受信した画像をプリンタ部Ｐによりプリントアウトできる。
【００６９】
リーダ部Ｒは、原稿画像を光学的に読み取り、画像データに変換する。リーダ部Ｒは、原稿用紙を搬送するための機能を持つ原稿給送ユニット（ＤＦユニット）２０３と、原稿を読み取るための機能を持つスキャナユニット２０４とで構成される。
【００７０】
プリンタ部Ｐは、記録紙を搬送し、その上に画像データを可視画像として印字して装置外に排紙するものである。プリンタ部Ｐは、画像データを記録紙に転写及び定着させる機能を持つマーキングユニット２０５と、複数種類の記録紙カセットを持つ給紙ユニット２０６と、印字された記録紙をソート及びステイプルして機外へ出力する機能を持つ排紙ユニット２０７とで構成される。
【００７１】
コントローラユニット２００は、リーダ部Ｒ、プリンタ部Ｐと電気的に接続され、更にＬＡＮ１０９、ＰＳＴＮまたはＩＳＤＮ１１５、インターネット／イントラネット１１３等のネットワークと接続されている。コントローラユニット２００は、リーダ部Ｒを制御して、原稿の画像データを読み込み、プリンタ部Ｐを制御してプリントデータ及び画像データを記録用紙に出力するコピー機能と、ＬＡＮ１０９からのプリントのジョブの実行を近距離無線通信のインターフェースからの制御信号を受けてプリンタ部Ｐを制御してプリントデータ及び画像データを記録用紙に出力するプリンタ機能と、ネットワークを介して受信したコードデータを画像データに変換してプリンタ部Ｐに出力するプリンタ機能と、リーダ部Ｒから読み取った画像データをコードデータに変換し、ＬＡＮ１０９を介してＰＣ（パーソナルコンピュータ）等へ送信するスキャナ機能とを提供する。
【００７２】
操作部２０１は、コントローラユニット２００に電気的に接続され、液晶タッチパネル等で構成され、画像入出力システム１００，１０１を操作するためのユーザインターフェースを提供する。
【００７３】
データベースサーバ１０２，１１０は、画像入出力システム１００，１０１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００７４】
図３は、リーダＲ及びプリンタ部Ｐの内部概略構成を示す側断面図であり、同図において、リーダ部Ｒの原稿給送ユニット２０３は、原稿を先頭順に１枚ずつプラテンガラス３００上へ給送し、原稿の読み取り動作終了後、プラテンガラス３００上の原稿を排出するものである。原稿がプラテンガラス３００上に搬送されると、ランプ３０１を点灯し、そして、光学ユニット３０２の移動を開始させて、原稿を露光走査する。この時の原稿からの反射光は、ミラー３０３，３０４，３０５及びレンズ３０６によってＣＣＤイメージセンサ（以下、ＣＣＤと記述する。）３０７へ導かれる。このように、走査された原稿の画像は，ＣＣＤ３０７によって読み取られる。
【００７５】
リーダ画像前処理部３０８は、ＣＣＤ３０７から出力される画像データに所定の処理を施して、コントローラユニット２００（図１参照）へ出力するものである。
【００７６】
プリンタ画像処理部３０９は、コントローラユニット２００から送られる画像信号をレーザドライバ３１０へ出力するものである。
【００７７】
プリンタ部Ｐのレーザドライバ３１０は、レーザ発光部３１１，３１２，３１３，３１４を駆動するものであり、プリンタ画像処理部３０９から出力された画像データに応じたレーザ光をレーザ発光部３１１〜３１４から発光させる。このレーザ光は、ミラー３１５，３１６，３１７，３１８，３１９，３２０，３２１，３２２，３２３，３２４，３２５，３２６によって感光ドラム３２７，３２８，３２９，３３０に照射され、感光ドラム３２７〜３３０には、レーザ光に応じた潜像が形成される。３３１，３３２，３３３，３３４は、それぞれブラック（Ｂｋ）、イエロー（Ｙ）、シアン（Ｃ）、マゼンダ（Ｍ）のトナーによって、潜像を現像するための現像器であり、各現像器３３１〜３３４により現像された各色のトナーは、用紙に転写されてフルカラーのプリントアウトが行われる。
【００７８】
給紙ユニット２０６の用紙カセット３３５，３３６及び手差しトレイ３３７のいずれかより、レーザ光の照射開始と同期したタイミングで給紙された用紙は、レジストローラ３３８を経て、転写ベルト３３９上に吸着され、搬送される。そして、感光ドラム３２７〜３３０に付着された現像剤を記録紙に転写する。現像剤を転写された記録紙は、定着部３４０に搬送され、この定着部３４０の熱と圧力とにより現像剤は記像紙に定着される。定着部３４０を通過した記録紙は、排出ローラ３４１によって排出トレイ３４２上に排出される。排紙ユニット２０７は、排出された記録紙を束ねて仕分けを行ったり、仕分けされた記録紙のステイプルを行う。
【００７９】
また、両面記録が設定されている場合は、排出ローラ３４１のところまで記録紙を搬送した後、排出ローラ３４１の回転方向を逆転させ、フラッパ３４３によって再給紙搬送路３４４へ記録紙を導く。再給紙搬送路３４４へ導かれた記録紙は、上述したタイミングで転写ベルト３３９へ給紙される。
【００８０】
＜リーダ画像前処理部の説明＞
図４は、リーダ画像前処理部３０８の詳細な構成を示すブロック図である。
【００８１】
リーダ画像前処理部３０８では、プラテンガラス３００上の原稿はＣＣＤ３０７に読み取られて電気信号に変換される（ＣＣＤ３０７は、カラーセンサの場合、ＲＧＢのカラーフィルタが１ラインＣＣＤ上にＲＧＢ順にインラインに乗ったものでも、３ラインＣＣＤで、それぞれＲフィルタ・Ｇフィルタ・ＢフィルタをそれぞれのＣＣＤ毎に並べたものでも構わないし、フィルタがオンチップ化またはフィルタがＣＣＤと別構成になったものでも構わない）。そして、その電気信号（アナログ画像信号）は、リーダ画像前処理部３０８に入力され、クランプ＆Ａｍｐ．＆Ｓ／Ｈ＆Ａ／Ｄ部４０１でサンプルホールド（Ｓ／Ｈ）され、アナログ画像信号のダークレベルを基準電位にクランプし、所定量に増幅され（上記処理順番は表記順とは限らない）、Ａ／Ｄ変換されて、例えば、ＲＧＢ各８ビットのデジタル信号に変換される。そして、ＲＧＢ信号は、シェーディング部４０２でシェーディング補正処理及び黒補正処理が施された後、コントローラユニット２００へ出力される。
【００８２】
＜コントローラユニットの説明＞
コントローラユニット２００の機能を、図５及び図６に基づき説明する。
【００８３】
図５は、コントローラユニット２００の内部構成を示すブロック図、図６は、システム制御部の内部構成を示すブロック図である。
【００８４】
図５において、Ｐはプリンタ部、Ｒはリーダ部、３０８はリーダ画像処理部、３０９はプリンタ画像処理部、５００はシステム制御部、５０１は画像処理部、５０２〜５０５はメモリ、５０６はシリアルデータ受信用のポート、５０７はシリアルデータ受信用の同期用のクロックポート、５０８はシリアルデータ送信用のポート、５０９はシリアルデータ送信用の同期用のクロックポート、５１０はシリアルデータ用の信号線、５１１は同期用のクロック信号線である。
【００８５】
システム制御部５００は、コントローラユニット２００全体の制御部であり、１つのチップになっている。リーダ画像処理部３０８、プリンタ画像処理部３０９、画像処理部５０１は、それぞれ別々のチップで、システム制御部５００と接続されており、画像データ及び制御信号を送受信してデータの処理を行う。
【００８６】
リーダ画像処理部３０８、プリンタ画像処理部３０９、画像処理部５０１、システム制御部５００は、それぞれ、レジスタ設定用に１ビットのシリアルデータの送受信用の機能及びチップのポートを持っている。
【００８７】
前記チップのポートは、それぞれ、シリアルデータ受信用のポート５０６と、シリアルデータ受信用の同期用のクロックポート５０７と、シリアルデータ送信用のポート５０８と、シリアルデータ送信用の同期用のクロックポート５０９とを持つ。
【００８８】
システム制御部５００、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のそれぞれのシリアルデータ用のポートは、１本の信号線によってリング状に接続されており、シリアルデータ用の信号線５１０と同期用のクロック信号線５１１とがそれぞれペアとなって、前記各チップ相互間を接続している。
【００８９】
システム制御部５００は、シリアルデータの転送においてマスターチップであり、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８は、全てシリアルデータの転送においてスレーブチップに対応する。
【００９０】
図６において、６００は操作部、６０１はユーザ登録コード記憶部、６０２は無線通信のインタフェース、２００はコントローラユニット、５００はシステム制御部である。
【００９１】
システム制御部５００は、操作部インタフェース２００６、ユーザ登録コードインタフェース２００９、無線通信インタフェース２００８を有している。
【００９２】
システム制御部５００内のマスターインタフェース２１４７、スレーブインタフェース２１４８は、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８と前記シリアルデータの送受信を行うためのインタフェースである。マスターインタフェース２１４７は、プリンタ画像処理部３０９とシリアルデータ用の信号線５１０及び同期用のクロック信号線５１１を介して接続されており、システムバスブリッジ２００７とも接続されている。また、スレーブインタフェース２１４８は、リーダ画像処理部３０８とシリアルデータ用の信号線５１０及び同期用のクロック信号線５１１を介して接続されており、システムバスブリッジ２００７とも接続されている。
【００９３】
図４のメモリ５０２〜５０５は、プリンタ部Ｐのプリンタ用の感光ドラムにおける画像データの遅延量を制御するためのメモリで、各色成分（ＹＭＣＫ）毎にメモリを持ち、各色成分毎の画像データを数ページ分保持することができる。ここでは、メモリとしてＳＤＲＡＭを使用する。
【００９４】
画像処理部５０１は、プリンタ及びリーダ用の画像処理を行う画像処理ブロックである。
【００９５】
コントローラユニット２００は、画像入力装置であるリーダ部Ｒ、リーダ画像前処理部３０８（図３参照）や画像出力デバイスであるプリンタ部Ｐと接続し、一方では、ＬＡＮ２０１１や公衆回線(ＷＡＮ)２０５１等のネットワークに接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行うものである。
【００９６】
図６において、ＣＰＵ２００１は、システム全体を制御するプロセッサである。このＣＰＵ２００１は、ＣＰＵバス２１２６に接続され、更に、システムバスブリッジ２００７に接続されている。
【００９７】
操作部インタフェース２００６は、操作部６００とのインタフェース部で、操作部６００に表示する画像データを該操作部６００に対して出力する。
【００９８】
ＣＰＵ００１が処理データを格納するためのメモリとしては、ＲＡＭ（ランダムアクセスメモリ）２００２、ＲＯＭ（リードオンリーメモリ）２００３が用意されており、それぞれＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５によってアクセス制御される。
【００９９】
２００４は外部記憶装置としてのハードディスクドライブ（ＨＤＤ）で、システムソフトウェア、プリントのジョブの情報、画像データを格納する。ＨＤＤ２００４へのアクセスは、汎用バスインタフェース２１４２を介して、ＰＣＩバス２１４３を用いてディスクコントローラ２１４４により行う。
【０１００】
ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１（図１のＬＡＮ１０９に相当する。）に接続し、情報の入出力を行う。
【０１０１】
＜チップ間のシリアルデータ転送の構成＞
コントローラユニット２００では、システム制御部５００、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８間でリング状に接続されているシリアルデータ用の信号線５１０と同期用のクロック信号線５１１とを用いて、シリアルデータの転送を行う制御機能を持つ構成を取る。
【０１０２】
図７は、チップ間のシリアルデータ転送の構成を説明する図である。
【０１０３】
図７において、システム制御部５００は、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８に対して、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各チップ内部のレジスタのリード及びライトアクセスをシリアルデータ用の信号線５１０と同期用のクロック信号線５１１とを用いて行う。
【０１０４】
システム制御部５００内のマスターインタフェース２１４７から送信されるシリアルデータは、シリアルデータ用の信号線５１０上を通り、同期用のクロック信号線５１１と同期したタイミングで、プリンタ画像処理部３０９内のスレーブインタフェース（１）７０１に送られ、次に、プリンタ画像処理部３０９で受信された後、プリンタ画像処理部３０９内のマスターインタフェース（１）７０２からシリアルデータ用の信号線５１０上を通り、同期用のクロック信号線５１１と同期したタイミングで画像処理部５０１内のスレーブインタフェース（２）７０３に送られる。
【０１０５】
同様に、シリアルデータは、画像処理部５０１内のスレーブインタフェース（２）７０３で受信された後、画像処理部５０１内のマスターインタフェース（２）７０４からシリアルデータ用の信号線５１０上を通り、同期用のクロック信号線５１１と同期したタイミングでリーダ画像処理部３０８内のスレーブインタフェース（３）７０５に送られる。
【０１０６】
同様に、シリアルデータは、リーダ画像処理部３０８内のスレーブインタフェース（３）７０５で受信された後、リーダ画像処理部３０８内のマスターインタフェース（３）７０６からシリアルデータ用の信号線５１０上を通り、同期用のクロック信号線５１１と同期したタイミングでシステム制御部５００内のスレーブインタフェース２１４８に送られる。
【０１０７】
マスターインタフェース（１）７０１、スレーブインタフェース（１）７０２は、プリンタ画像処理部３０９内の内部バス７０７と接続されており、前記送受信したシリアルデータを内部バス７０７に展開するインタフェースを取る。同様に、マスターインタフェース（２）７０３、スレーブインタフェース（２）７０４は、画像処理部５０１内の内部バス７０８と、マスターインタフェース（３）７０５、スレーブインタフェース（３）７０６は、リーダ画像処理部３０８内の内部バス７０９とそれぞれ接続され、前記送受信したシリアルデータを内部バス７０８，７０９に展開するインタフェースを取る。
【０１０８】
内部バス７０７，７０８，７０９は、それぞれのチップ内部のレジスタのリード及びライトアクセス用のバスであり、この内部バス７０７〜７０９を介してチップ内部のレジスタのアクセスを行う。
【０１０９】
＜チップ間のシリアルデータ転送を用いたライト動作＞
システム制御部５００内のＣＰＵ２００１からレジスタのライト動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、ライトを行うレジスタのアドレスが、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のいずれかである場合、ライト動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０１１０】
マスターインタフェース２１４７では、ライト動作の命令を受け、該当するスレーブチップのChipIDとアドレスの情報を用いて、ライトのコマンドトランザクション作成する。マスターインタフェース２１４７で作成されたライトのコマンドトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１０と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０１１１】
プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップは、ライトのコマンドトランザクションを受け、ライトアドレスが該当する場合には、スレーブインタフェース（１）７０１若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５は、内部バス７０７，７０８，７０９上にライトデータのアクセスを行う。
【０１１２】
同時に、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップ内のマスターインタフェース（１）７０２若しくはマスターインタフェース（２）７０４、マスターインタフェース（３）７０６は、スレーブインタフェース（１）７０１若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５で受信したシリアルデータをシリアルデータ用の信号線５１０上に、同期用のクロック信号線５１１と同期したタイミングで送信する。
【０１１３】
スレーブインタフェース２１４８では、リーダ画像処理部３０８内のマスターインタフェース（３）７０６から送信されたシリアルデータを受信してパリティのエラーが無いことを確認して、ライトのトランザクションが終了したことを認識する。
【０１１４】
この時、スレーブインタフェース２１４８で受信したシリアルデータにパリティのエラーが有った場合には、トランザクションにエラーが有ったとみなし、エラーコードをＣＰＵ２００１に対して発行することでエラー処理を行う。
【０１１５】
＜チップ間のシリアルデータ転送を用いたリード動作＞
システム制御部５００内のＣＰＵ２００１からレジスタのリード動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、リードを行うレジスタのアドレスが、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のいずれかである場合、ライト動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０１１６】
マスターインタフェース２１４７では、リード動作の命令を受け、該当するスレーブチップのChipIDとアドレスの情報とを用いて、リードのコマンドトランザクションを作成する。マスターインタフェース２１４７で作成されたリードのコマンドトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１０と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０１１７】
プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップは、リードのコマンドトランザクションを受け、リードアドレスが該当する場合には、スレーブインタフェース（１）７０１若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５は、内部バス７０７，７０８，７０９上にリードデータのアクセスを行う。
【０１１８】
同時に、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップ内のマスターインタフェース（１）７０２若しくはマスターインタフェース（２）７０４、マスターインタフェース（３）７０６は、スレーブインタフェース（１）７０１若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５で受信したシリアルデータをシリアルデータ用の信号線５１０上に、同期用のクロック信号線５１１と同期したタイミングで送信する。
【０１１９】
リードのコマンドトランザクションを受け、リードアドレスが該当するスレーブインタフェース（１）７０１若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５の各スレーブチップのインタフェースは、内部バス７０７，７０８，７０９からのリードデータを受け、各スレーブチップ内のマスターインタフェース（１）７０２若しくはマスターインタフェース（２）７０４、マスターインタフェース（３）７０６で、リードのデータトランザクションを作成し、シリアルデータに変換した後、シリアルデータ用の信号線５１０上に同期用のクロック信号線５１１と同期したタイミングで送信する。
【０１２０】
スレーブインタフェース２１４８では、リーダ画像処理部３０８内のマスターインタフェース（３）７０６から送信されたシリアルデータのうち、リードのコマンドトランザクションを受信した後、リードのデータトランザクションを受信する。
【０１２１】
スレーブインタフェース２１４８は、前記リードのデータトランザクションを受信した後、前記受信したリードのデータトランザクションから必要なレジスタのリードデータの情報を取得し、システム制御部５００内のＣＰＵ２００１へシステムバスブリッジ２００７、ＣＰＵバス２１２６を介してレジスタのリードデータを送る。
【０１２２】
この時、スレーブインタフェース２１４８は、前記リードのコマンドトランザクション及びデータトランザクションにパリティのエラーが無いことを確認してリードのトランザクションが終了したことを認識する。
【０１２３】
この時、スレーブインタフェース２１４８で受信したシリアルデータにパリティのエラーが有った場合には、トランザクションにエラーが有ったとみなし、エラーコードをＣＰＵ２００１に対して発行することでエラー処理を行う。
【０１２４】
尚、図６において、２００６は操作部インタフェース、２００８は無線通信インタフェース、２００９はユーザ登録コードインタフェース、２１２７はＩＯバス、２０５０はモデム（Ｍｏｄｅｍ）、２０６０はレンダリング部である。
【０１２５】
以上説明したように、本実施の形態によれば、複数のチップ間でシリアルデータの送受信を行う際に、マスターチップからスレーブチップにシリアルデータを転送する場合には、１個のマスターチップから複数のスレーブチップに対してシリアルデータを１度のトランザクションで転送することができる。
【０１２６】
また、シリアルデータを転送するためのマスターチップ及び各スレーブチップが持つインタフェースのポートは、シリアルデータ用ポートとシリアルデータ転送用の同期クロック信号用ポートの２ポートのみで済み、チップのポート数の削減を図ることが可能である。
【０１２７】
また、スレーブチップのチップ数が増加した場合でも、各チップの持つポートは変わらず、リング上に信号線を接続するため、各チップを接続する信号線の増加も防ぐことができる。
【０１２８】
［第２の実施形態］
次に、本発明の第２の実施形態を、図８乃至図１０に基づき説明する。
【０１２９】
本実施の形態では、上記従来技術の有する問題を解決するために、１個のマスターチップに対して１個以上の複数のスレーブチップを、シリアルデータの信号線と転送同期用のクロック線との２本の信号線をリング状に接続し、そのシリアルデータの信号線上に転送を行いたいレジスタデータの情報を流し、シリアルデータの信号線上のシリアルデータの情報は、各スレーブチップ間を順に転送され、最後にマスターチップに戻ってくる構成を取る。
【０１３０】
転送同期用のクロック線も、シリアルデータの信号線と同様に、マスターチップからスレーブチップに転送され、順次、各スレーブチップ間を転送され、最後にマスターチップに戻ってくる構成を取る。
【０１３１】
マスターチップ及び各スレーブチップは、前記転送同期用のクロック線に対して同期化してシリアルデータの信号線上のデータを受信及び送信する。
【０１３２】
前記マスターチップとスレーブチップの構成を用いたシリアルデータの転送を行うことで、マスターチップから、各スレーブチップに対してレジスタのリード、ライトの制御を行う。
【０１３３】
レジスタのライトを行う場合は、ライトのトランザクションをマスターチップが発行することで、所定スレーブチップ内にあるレジスタのみが書き込まれる。
【０１３４】
同様に、レジスタのリードを行う場合は、リードのトランザクションをマスターチップが発行することで、所定スレーブチップ内にあるレジスタのデータのみが読み込まれる。
【０１３５】
また、転送中のシリアルデータにエラーがあった場合、マスターチップ及びＣＰＵがスレーブのエラー状況を把握するために、各スレーブチップ内に、シリアルデータの転送状態を保持するラッチを設け、このラッチに各スレーブチップは、転送されて来るシリアルデータの状態を常に監視し、ノイズによるエラーが生じた場合には、このラッチにエラー状況を保存する。
【０１３６】
このシリアルデータの転送状態は、各スレーブチップにおいて、シリアルデータを受信する初段に、シリアルデータ転送用のクロック同期のフリップフロップ（以後、ＦＦと記述する。）で同期化したデータと、シリアルデータ転送用のクロックを反転したクロックに同期したＦＦで同期化したデータとから生成される。
【０１３７】
シリアルデータ転送用のクロック同期のＦＦで同期化したシリアルデータと、シリアルデータ転送用のクロックを反転したクロックに同期したＦＦで同期化したデータとのＸＯＲをとり、この情報を前記ラッチによりエラー状態として保持する。
【０１３８】
このエラー状態は、シリアルデータがノイズによる影響が無い場合と、シリアルデータにノイズの影響が反映されて、半クロック以下のショットノイズが発生した場合とは、状態が異なってくる。
【０１３９】
即ち、ノイズによる影響によりシリアルデータにエラーが発生する場合と正常な場合とを、前記エラー状態により判断することができる。
【０１４０】
マスターチップ及びＣＰＵがスレーブのエラー状況を判断したい場合に、前記エラー状態を保持するラッチをアクセスする。アクセスされたスレーブチップは、前記エラー情報をシリアルデータに変換して、シリアルデータとしてマスターチップ及び次段のスレーブチップへ転送を行う。マスターチップから各スレーブチップに対してのレジスタのリードと同様のフロー制御になる。
【０１４１】
マスターチップ及びＣＰＵは、前記エラー状態を所定のスレーブチップより読み込んだ後、もし、エラー状態であった場合には、所定のスレーブチップに正常なデータが転送できなかったと判断し、再度、前記所定のスレーブチップにデータを転送するか、若しくは転送するクロックの周波数を落として転送する際のノイズの影響を緩和して、ノイズの影響による転送データのエラーが発生しないクロックの周波数を最適化する方法をとる。
【０１４２】
以下、本実施の形態におけるシリアルデータの転送形式、トランザクション、各トランザクションにおける動作、転送データのエラー発生時の処理について説明する。
【０１４３】
＜シリアルデータの転送、トランザクションの形式＞
転送するシリアルデータを全て数ビット単位で１つのトランザクションの単位として扱い、このトランザクション単位でシリアルデータが有効であるか否かを判断する。
【０１４４】
トランザクション単位でシリアルデータを転送する際に、有効なトランザクションのデータの開始点を判別するために、トランザクション単位の最初の１ビットだけを常にＨ状態にし、無効なトランザクション間は常にＬ状態にする。これによって有効なトランザクションの開始点を判別し、トランザクション単位で扱うデータのビット数分転送された時点で、そのトランザクションは転送を終了したものと判断する。
【０１４５】
シリアルデータに転送の種類を判別するためのコマンドデータと、転送を行いたいデータとを分け、それぞれコマンドデータのトランザクション（以下、コマンド部と記述する。）とデータのトランザクション（以下、データ部と記述する。）とする。
【０１４６】
更に、複数のスレーブチップをマスターチップが個々に識別するために、マスターチップは、各スレーブチップに対してコンフィグレーションのトランザクションを発行し、このコンフィグレーションのトランザクションによって各スレーブチップにユニークな番号を付け、この番号をスレーブチップを識別するチップＩＤとする。
【０１４７】
コマンド部には、データ部かコマンド部かを識別する識別子（以下、Ｃ／Ｄ識別子と記述する。）と、ライトのトランザクションかリードのトランザクションかを識別する識別子（以下、Ｗ／Ｒ識別子と記述する。）と、データの転送幅を識別する識別子（以下、BitModeと記述する。）と、スレーブチップを識別するチップＩＤの識別子（以下、ChipIDと記述する。）と、リードまたはライトするアドレスの情報を含む。
【０１４８】
データ部には、Ｃ／Ｄ識別子と、Ｗ／Ｒ識別子と、BitModeと、リードまたはライトするデータの情報を含む。
【０１４９】
＜コンフィグレーションのトランザクション動作＞
複数のスレーブチップに各トランザクションを発行するために、マスターチップは、システムリセット後、最初に各スレーブチップに対してコンフィグレーションのトランザクションを発行し、各スレーブチップにChipIDを割り振る。
【０１５０】
コンフィグレーショントランザクションにはコマンド部のみが存在し、このコマンド部中には、Ｃ／Ｗ識別子をアクティブに（例えば、コマンド部の場合にはＣ／Ｗ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｔｙｐｅ識別子（例えば、コンフィグレーショントランザクションの場合には００）、ChipID（マスターチップから発行する時のChipIDは０とする）の情報が含まれている。
【０１５１】
マスターチップは、該マスターチップが発行したコンフィグレーショントランザクションが、各スレーブチップを介した後、マスターチップに戻り、マスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【０１５２】
各スレーブチップは、コンフィグレーショントランザクションを受信した場合は、各スレーブチップ内に保持しているチップＩＤデータ用のレジスタに、コンフィグレーショントランザクション中のChipIDのデータに１加算した値を、前記チップＩＤデータ用のレジスタに保持する。
【０１５３】
各スレーブチップは、前記チップＩＤデータ用のレジスタに保持したChipIDの値を次のスレーブチップまたはマスターチップに送るコンフィグレーショントランザクション中に入れて送る。
【０１５４】
コンフィグレーショントランザクションは、各スレーブチップを介して最後にマスターチップに送られて来て、マスターチップは、送られて来たコンフィグレーショントランザクションのChipIDの値を見て、スレーブチップが何個同じリング状に接続されているかを判断する。ChipIDの値がＮであれば、Ｎ個のスレーブチップが同じリング状に接続されていることになる。
【０１５５】
＜レジスタライトのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタにデータをライトする場合は、マスターチップは、スレーブチップに対してコマンド部を発行し、続けてデータ部を発行する。
【０１５６】
この時、コマンド部中には、Ｃ／Ｗ識別子をアクティブに（例えば、コマンド部の場合にはＣ／Ｗ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、BitModeを所定のデータ幅情報に設定し、ChipIDを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【０１５７】
この時、データ部中には、Ｃ／Ｗ識別子を非アクティブに（例えば、コマンド部の場合にはＣ／Ｗ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、BitModeを所定のデータ幅情報に設定し、所定のレジスタのライトするデータ値を設定した情報が含まれている。
【０１５８】
この時、マスターチップは、該マスターチップが発行したライトのトランザクションが、各スレーブチップを介してマスターチップに戻って来ない間でも、連続してライトのトランザクションを発行させる。
【０１５９】
そのため、ライトのトランザクションに関して、マスターチップは、各スレーブチップにデータが書き込まれたか否かをライトのトランザクションによって確認することはない。マスターチップは、スレーブチップからリング状の信号線上に送られて来たトランザクションを受信し、そのトランザクションにパリティのエラーが有るか否かのみを判断する。
【０１６０】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタにデータをライトする。そのスレーブチップに該当しないトランザクションに関しては、次々に次のスレーブチップまたはマスターチップに送ることで、ライトのトランザクションを次々に処理する。
【０１６１】
これによって、ライトを行いたいスレーブチップのレジスタに対して、マスターチップはライトすることが可能になる。
【０１６２】
＜レジスタリードのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタのデータをリードする場合は、マスターチップは、スレーブチップに対してコマンド部のみを発行する。
【０１６３】
この時、コマンド部中には、Ｃ／Ｗ識別子をアクティブに、Ｗ／Ｒ識別子を非アクティブに、BitModeを所定のデータ幅情報に設定し、ChipIDを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【０１６４】
この時、マスターチップは、該マスターチップが発行したリードのコマンド部が、各スレーブチップを介した後、マスターチップに戻って来て該当するスレーブチップから発行されるリードのデータ部をマスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【０１６５】
リードのトランザクションに関しては、マスターチップがスレーブチップに転送したリードのコマンド部がスレーブチップで受信され、スレーブチップから次のスレーブチップまたはマスターチップへコマンド部を転送しつつ、該当するスレーブチップからリードのデータ部の発行が行われる。
【０１６６】
マスターチップでは、このリードのコマンド部を受信した後、リードのデータ部を受信する。マスターチップは、このリードのデータ部を受信し終えるまでは、リードのデータ部の受信待ち状態になり、マスターチップがリードのトランザクションを受信し終えた後に、マスターチップは、次のトランザクションの転送動作に移る。
【０１６７】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタに対してデータをリードする。
【０１６８】
前記該当するスレーブチップは、このリードしたレジスタデータからリードのデータ部の転送を行う。この時、前記該当するスレーブチップは、リードのデータ部を発行するに必要な前記識別子及びデータの設定情報を付加してリードのデータ部とする。
【０１６９】
スレーブチップにおいて、リードのコマンド部が該当しない場合は、次々に次のスレーブチップまたはマスターチップにリードのコマンド部をそのまま転送することで、リードのコマンド部を処理する。
【０１７０】
マスターチップは、リードのトランザクション時には、リードのコマンド部を受信し、その後リードのデータ部を受け取ることになる。そのため、マスターチップは、リードのコマンド部を受信した時に、ChipIDからリードを行ったスレーブチップを確定し、アドレスの情報からリードを行ったレジスタのアドレスを確定し、リードのデータ部を受信した時に、データの情報からリードを行ったレジスタのデータ値を確定することができる。
【０１７１】
これによって、リードを行いたいスレーブチップのレジスタに対して、マスターチップはリードすることが可能になる。
【０１７２】
＜転送シリアルデータエラー時の処理方法（１）＞
前記エラー状態を保持するラッチにおいて、各スレーブチップでエラー状態を検出した場合、各スレーブチップは、そのトランザクションに不適当なデータ情報が存在すると認識し、そのトランザクションのデータに関してスレーブチップ内のレジスタ等にライト及びリードを行わず、そのまま次のスレーブチップまたはマスターチップに転送する。
【０１７３】
マスターチップまたはＣＰＵは、前記エラー状態を保持するラッチを定期的に読みに行くか、若しくは必要時に読むことによって、スレーブチップの転送状態を判断する。
【０１７４】
その時に、転送状態がエラー状態である場合には、マスターチップまたはＣＰＵは、再度、エラーが発生したレジスタに対してアクセスを行う。ライトのトランザクションの場合は、エラーが発生した同じレジスタに対して、同じデータを再度ライトする。リードのトランザクションの場合は、エラーが発生した同じレジスタに対して再度リードを行う。
【０１７５】
＜転送シリアルデータエラー時の処理方法（２）＞
マスターチップまたはＣＰＵは、前記エラー状態を保持するラッチを定期的に読みに行くか、若しくは必要時に読むことによって、スレーブチップの転送状態を判断する。
【０１７６】
その時に、転送状態がエラー状態である場合には、マスターチップまたはＣＰＵは、シリアルデータ転送用のクロックの周波数を下げ、それによって、シリアル転送の際に受けるノイズの影響を低減させる。転送するクロックの周波数が低くなれば、ノイズによるシリアルデータのエラーは発生し難くなる。
【０１７７】
シリアルデータの転送するレートを考慮して、転送クロックの周波数を下げ、その時の各スレーブチップのエラー状態を保持するラッチを読みに行き、エラー状態がある場合には、更に転送クロックの周波数を下げる。
【０１７８】
上記の処理を繰り返して、ノイズの影響の受けない最適な転送クロックの周波数を決定する。
【０１７９】
以下、本実施の形態について、図８乃至図１０を参照して具体的に説明する。
【０１８０】
尚、本実施の形態に係るデータ転送装置を有するデータ処理システムの構成は、上述した第１の実施形態における図１乃至図７と同一であるから、必要に応じてこれら各図を流用して説明する。
【０１８１】
＜シリアルデータ、トランザクションの形式＞
図８は、本実施の形態に係るデータ転送装置におけるトランザクションに用いるシリアルデータのデータ形式の一例を示す図であり、同図において、８０１はSTUFFED BIT（スタッフドビット）、８０２はPARITY BIT(パリティビット)、８０３はコマンド部、８０４はデータ部である。
【０１８２】
また、図９は、本実施の形態に係るデータ転送装置におけるリセット動作の説明図であり、同図において、９００はスレーブチップ、９０１はインタフェース、９０２は内部回路（１）、９０３は内部回路（２）、９０４は内部回路（３）、９０５はリセット信号、９０６はリセットジェネレータである。
【０１８３】
更に、図１０は、本実施の形態に係るデータ転送装置におけるリセット動作の説明図であり、同図において、１００１，１００２はＦＦ、１００３はＸＯＲゲート、１００４はラッチ、１００５は出力データ線である。
【０１８４】
転送するシリアルデータを全て数ビット単位で１つのトランザクションの単位として扱い、このトランザクション単位でシリアルデータが有効であるか否かを判断する。
【０１８５】
トランザクション単位でシリアルデータを転送する際に、有効なトランザクションのデータの開始点を判別するために、トランザクション単位の最初の１ビットであるSTUFFED BIT８０１（図８参照）だけを常にＨ状態にし、無効なトランザクション間は常にＬ状態にする。これによって有効なトランザクションの開始点を判別し、トランザクション単位で扱うデータのビット数分転送された時点で、そのトランザクションは転送を終了したものと判断する。
【０１８６】
前記トランザクション単位においてマスターチップでPARITY BIT８０２（図８参照）を付加することでエラーのトランザクションを検出する。
【０１８７】
トランザクションは、図８に示すように、コマンド部８０３とデータ部８０４とに別れ、コマンド部８０３、データ部８０４の順で転送が行われる。
【０１８８】
それぞれのヘッダ内にトランザクションの動作を示す識別子を盛り込んでおり、その後に、コマンド部８０３の場合はアドレスデータの情報が、データ部８０４の場合はレジスタのデータの情報がそれぞれ入る。
【０１８９】
＜チップ間のシリアルデータ転送を用いたコンフィグレーション動作＞
図６において、システム制御部５００内のＣＰＵ２００１からレジスタのコンフィグレーション動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、コンフィグレーション動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０１９０】
前記コンフィグレーション動作命令は、ＣＰＵ２００１が、マスターインタフェース２１４７に対して、制御可能なスレーブチップがリング状に何個接続されているかを判断するための命令セットである。このコンフィグレーション動作命令の中には、マスターインタフェース２１４７に対してコンフィグレーションのトランザクションを発行する命令と、発行されたコンフィグレーションのトランザクションがマスターインタフェース２１４７に戻って来たChipIDの値を読む命令を含んでいる。
【０１９１】
このChipIDの値が、マスターインタフェース２１４７に同リング状に接続されているスレーブチップ数に相当する。
【０１９２】
マスターインタフェース２１４７では、ＣＰＵ２００１からのコンフィグレーション動作の命令を受け、ChipIDを０の値にして、コンフィグレーションのトランザクションを作成する。マスターインタフェース２１４７で作成されたコンフィグレーションのトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１（図７参照）と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０１９３】
プリンタ画像処理部３０９のスレーブインタフェース（１）７０１は、前記コンフィグレーションのトランザクションを受け、受信したChipIDの値に１を加算した値を自分のChipIDとして保存する。前記１を加算した値のChipIDをコンフィグレーションのトランザクションとして、マスターインタフェース（１）７０１から、シリアルデータの信号として、同期用のクロック信号と同期したタイミングで画像処理部５０１のスレーブインタフェース（２）７０３へ送信する。
【０１９４】
同様に、コンフィグレーションのトランザクションは、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップを通って、最後にシステム制御部５００内のスレーブインタフェース２１４８へ送られる。
【０１９５】
スレーブインタフェース２１４８は、前記コンフィグレーションのトランザクションを受信した後、ChipIDの情報を取得し、システム制御部５００内のＣＰＵ２００１へシステムバスブリッジ２００７、ＣＰＵバス２１２６を介してChipIDのデータを送る。
【０１９６】
このChipIDの数値が、スレーブチップの個数及びそれぞれの番号（ID）となる。
【０１９７】
この場合、プリンタ画像処理部３０９のChipIDは１で、画像処理部５０１のChipIDは２で、リーダ画像処理部３０８のChipIDは３となる。ＣＰＵ２００１は、スレーブチップが３個接続されているものと認識する。
【０１９８】
＜チップ間のシリアルデータ転送を用いたライト動作＞
システム制御部５００内のＣＰＵ２００１からレジスタのライト動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、ライトを行うレジスタのアドレスが、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のいずれかである場合、ライト動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０１９９】
前記ライト動作命令は、ＣＰＵ２００１）が、マスターインタフェース２１４７に対して、制御可能なスレーブチップ内のレジスタに対して、ライトを行うChipIDの情報とアドレスの情報とライトデータの情報を含んでいる。
【０２００】
マスターインタフェース２１４７では、ライト動作の命令を受け、該当するスレーブチップのChipIDとアドレスの情報を用いて、ライトのコマンド部を作成する。マスターインタフェース２１４７で作成されたライトのコマンド部のトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２０１】
次に、コマンド部のトランザクションを発行した後、マスターインタフェース２１４７は、前記ライトデータの情報を用いて、ライトのデータ部を作成する。マスターインタフェース２１４７で作成されたライトのデータ部は、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２０２】
プリンタ画像処理部３０９のスレーブインタフェース（１）７０１は、ライトのコマンド部のトランザクションを受け、ライトアドレスが該当する場合には、データ部のトランザクションからライトデータを内部バス７０７上に書き込む。同時にマスターインタフェース２１４７を介して、そのまま並行してスレーブインタフェース（１）７０１に送られて来たシリアルデータを次の画像処理部５０１へ同期用のクロック信号線５１１と同期したタイミングで送信する。
【０２０３】
この時、スレーブインタフェース（１）７０１で受信したシリアルデータにパリティのエラーが有った場合には、トランザクションにエラーが有ったとみなし、内部バス７０７上にデータのライトは行わない。
【０２０４】
同様に、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップにおいても同様にデータのライト動作を行う。
【０２０５】
スレーブインタフェース２１４８では、リーダ画像処理部３０８内のマスターインタフェース（３）７０６から送信されたシリアルデータを受信して、パリティのエラーが無いことを確認して、データライトのトランザクションが終了したものと認識する。
【０２０６】
この時、スレーブインタフェース２１４８で受信したシリアルデータにパリティのエラーが有った場合には、トランザクションにエラーが有ったとみなし、エラーコードをＣＰＵ２００１に対して発行することでエラー処理を行う。
【０２０７】
＜チップ間のシリアルデータ転送を用いたリード動作＞
システム制御部５００内のＣＰＵ２００１からレジスタのリード動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、リードを行うレジスタのアドレスが、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のいずれかである場合、リード動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０２０８】
マスターインタフェース２１４７では、リード動作の命令を受け、該当するスレーブチップのChipIDとアドレスの情報を用いて、リードのコマンド部を作成する。マスターインタフェース２１４７で作成されたリードのコマンド部は、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２０９】
前記リード動作命令は、ＣＰＵ２００１が、マスターインタフェース２１４７に対して、制御可能なスレーブチップ内のレジスタに対して、リードを行うChipIDの情報とアドレスの情報を含んでいる。
【０２１０】
プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップは、リードのコマンド部を受け、リードアドレスが該当する場合には、スレーブインタフェース（１）７０１、若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５は、内部バス７０７，７０８，７０９上にリードデータのアクセスを行う。
【０２１１】
同時に、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップ内のマスターインタフェース（１）７０２、若しくはマスターインタフェース（２）７０４、マスターインタフェース（３）７０６は、スレーブインタフェース（１）７０１、若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５で受信したシリアルデータをシリアルデータ用の信号線５１０上に、同期用のクロック信号線５１１と同期したタイミングで送信する。
【０２１２】
リードのコマンド部を受け、リードアドレスが該当するスレーブインタフェース（１）７０１、若しくはスレーブインタフェース（２）７０３、スレーブインタフェース（３）７０５の各スレーブチップのインタフェースは、内部バス７０７，７０８，７０９からのリードデータを受け、各スレーブチップ内のマスターインタフェース（１）７０２、若しくはマスターインタフェース（２）７０４、マスターインタフェース（３）７０６で、リードのデータトランザクションを作成し、シリアルデータに変換した後に、シリアルデータ用の信号線５１０上に、同期用のクロック信号線５１１と同期したタイミングで送信する。
【０２１３】
スレーブインタフェース２１４８では、リーダ画像処理部３０８内のマスターインタフェース（３）７０６から送信されたシリアルデータのうち、リードのコマンド部を受信した後、リードのデータトランザクションを受信する。
【０２１４】
スレーブインタフェース２１４８は、前記リードのデータトランザクションを受信した後、前記受信したリードのデータトランザクションから必要なレジスタのリードデータの情報を取得し、システム制御部５００内のＣＰＵ２００１へシステムバスブリッジ２００７、ＣＰＵバス２１２６を介してレジスタのリードデータを送る。
【０２１５】
この時、スレーブインタフェース２１４８は、前記リードのコマンド部及びデータ部にパリティのエラーが無いことを確認して、リードのトランザクションが終了したものと認識する。
【０２１６】
この時、スレーブインタフェース２１４８で受信したシリアルデータにパリティのエラーが有った場合には、トランザクションにエラーが有ったみなし、エラーコードをＣＰＵ２００１に対して発行することでエラー処理を行う。
【０２１７】
＜チップ間のシリアルデータ転送を用いたシリアルデータエラー処理＞
システム制御部５００内のＣＰＵ２００１からスレーブチップに対してレジスタのライト動作命令か、リード動作命令が送られた場合、マスターインタフェース２１４７から該当するスレーブチップに対して所定のトランザクションが転送される。
【０２１８】
それぞれのスレーブチップは、転送されて来るシリアルデータは、図９中のインタフェース９０１へ送られる。ここで、図９中のインタフェース９０１は、スレーブインタフェース（１）７０１とマスターインタフェース（１）７０２の組に相当する。
【０２１９】
図９中の内部回路（１）９０２、内部回路（２）９０３、内部回路（３）９０４は、スレーブチップ９００内に存在する内部回路であり、この内部回路９０２〜９０４内のレジスタをマスターインタフェース２１４７はシリアルデータ転送にて、インタフェース９０１を介してアクセスする。
【０２２０】
それぞれのスレーブチップは、転送されて来るシリアルデータを、図１０中の初段のＦＦ１００１にて転送用のクロックと同期化すると共に、シリアルデータ転送用のクロックを反転したクロックに同期したＦＦ１００２で同期化する。このＦＦ１００１，１００２の出力データは、ＸＯＲゲート１００３でＸＯＲされ、その結果の情報をラッチ１００４に保持する。
【０２２１】
マスターインタフェース２１４７では、リセット動作の命令を受け、該当するスレーブチップのChipIDを用いて、リセットのトランザクション作成する。マスターインタフェース２１４７で作成されたリセットのトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２２２】
前記リセット動作命令は、ＣＰＵ２００１が、マスターインタフェース２１４７に対して、制御可能なスレーブチップを、個別にまたは一度に全てリセットを行うための命令セットである。このリセット動作命令の中には、マスターインタフェース２１４７に対してリセットのトランザクションを発行する命令と、リセットを行いたいスレーブチップのChipIDの値を含んでいる。
【０２２３】
前記ChipIDの値は、プリンタ画像処理部３０９をリセットしたい場合のChipIDは１、画像処理部５０１をリセットしたい場合のChipIDは２、リーダ画像処理部３０８をリセットしたい場合のChipIDは３、全てのスレーブチップをリセットしたい場合のChipIDは０にそれぞれ設定される。
【０２２４】
マスターインタフェース２１４７では、ＣＰＵ２００１からのリセット動作の命令を受け、リセットのトランザクションを作成する。マスターインタフェース２１４７で作成されたリセットのトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２２５】
プリンタ画像処理部３０９のスレーブインタフェース（１）７０１は、前記リセットのトランザクションを受け、受信したChipIDの値が０またはコンフィグレーション時に保持したChipIDの値と同じ場合は、リセット処理を行う。但し、リセット処理を行う前にリセットのトランザクションを、マスターインタフェース（１）７０２からシリアルデータの信号として、同期用のクロック信号と同期したタイミングで画像処理部５０１のスレーブインタフェース（２）７０３へ送信する。マスターインタフェース（１）７０２からリセットのトランザクションが送信し終えてから、前記リセット処理を実行する。
【０２２６】
前記リセット処理は、プリンタ画像処理部３０９の内部の回路に対してのリセットを行うのと、スレーブインタフェース（１）７０１、マスターインタフェース（１）７０２に対してリセットを行う。前記リセットは、マスターインタフェース（１）７０２からリセットのトランザクションが転送し終えてから実行される。プリンタ画像処理部３０９の内部の回路に対してのリセットは、スレーブインタフェース（１）７０１またはマスターインタフェース（１）７０２からリセット信号を内部回路に対して出力することで実現する。
【０２２７】
図９は、リセット動作についての説明図である。同図中のインタフェース９０１は、スレーブインタフェース（１）７０１とマスターインタフェース（１）７０２の組に相当する。上述した内部回路が、内部回路（１）９０２、内部回路（２）９０３、内部回路（３）９０４に相当する。リセット動作時には、インタフェース９０１は、前記内部回路９０２〜９０４に対してリセット信号９０５をアクティブにする。リセット信号９０５のアクティブ区間が所定の時間以上必要ならば、リセットジェネレータ９０６を用いてリセット信号９０５のアクティブ区間を必要な時間数分伸ばすことで、内部回路（１）９０２、内部回路（２）９０３、内部回路（３）９０４に対してリセットを行う。同時に、インタフェース９０１自体もリセット状態に移る。
【０２２８】
同様に、リセットのトランザクションは、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップを通って、最後に、システム制御部５００内のスレーブインタフェース２１４８へ送られる。
【０２２９】
これによって、ＣＰＵ２００１からの所望のスレーブチップに対してのみリセット動作を行うことが可能になり、他のスレーブチップにはリセットの影響を及ぼさない。
【０２３０】
以上詳述したように、本実施の形態によれば、複数のチップ間でシリアルデータの送受信を行う際に、マスターチップに対してスレーブチップにシリアルデータを転送する場合には、１個のマスターチップから複数のスレーブチップに対してシリアルデータを一度のトランザクションでデータを転送することができる。
【０２３１】
また、シリアルデータを転送するためのマスターチップ及び各スレーブチップが持つインタフェースのポートは、シリアルデータ用のポートとシリアルデータ転送用の同期クロック信号用ポートの２ポートのみで済み、チップのポート数削減を行うことが可能である。
【０２３２】
また、スレーブチップのチップ数が増加した場合でも、各チップの持つポートは変わらず、リング上に信号線を接続するため、各チップを接続する信号線の増加も防ぐことができる。
【０２３３】
更に、所定のスレーブチップのみをリセットまたは初期状態にしたい場合、マスターチップから通信を行うことにより、他のチップ及びシステム自体をリセットする必要が無く、容易に所定のスレーブチップのみをリセットすることが可能である。
【０２３４】
［第３の実施形態］
次に、本発明の第３の実施形態を説明する。
【０２３５】
本実施の形態では、上記従来技術の有する問題点を解決するために、１個のマスターチップに対して１個以上の複数のスレーブチップをシリアルデータの信号線と転送同期用のクロック線との２本の信号線をリング状に接続し、そのシリアルデータの信号線上に転送を行いたいレジスタデータの情報を流し、シリアルデータの信号線上のシリアルデータの情報は、各スレーブチップ間を順に転送され、最後にマスターチップに戻って来る構成を取る。
【０２３６】
転送同期用のクロック線も、シリアルデータの信号線と同様に、マスターのチップからスレーブのチップに転送され、順次、各スレーブのチップ間を転送され、最後にマスターのチップに戻ってくる構成を取る。
【０２３７】
マスターチップ及び各スレーブチップは、前記転送同期用のクロック線に対して同期化してシリアルデータの信号線上のデータを受信及び送信する。
【０２３８】
前記マスターチップとスレーブチップの構成を用いたシリアルデータの転送を行うことで、マスターチップから各スレーブチップに対してリセットや、レジスタのリード、ライトの制御を行う。
【０２３９】
マスターチップから各スレーブチップに対してリセットを行う場合には、リセットのトランザクションを発行し、発行されたトランザクションは、シリアルデータとしてマスターチップからリング状に接続されたスレーブチップに対して順に流れていく。各スレーブチップは、前記シリアルデータを受信し、対象の場合のみ内部をリセット処理し、その他の場合は次のスレーブチップまたはマスターチップにシリアルデータを送る。これによって、対象のスレーブチップのみリセットが行なわれる。
【０２４０】
同様に、レジスタのライトを行う場合は、ライトのトランザクションをマスターチップが発行することで、所定のスレーブチップ内のレジスタのみがライトされる。
【０２４１】
同様に、レジスタのリードを行う場合は、リードのトランザクションをマスターチップが発行することで、所定のスレーブチップ内のレジスタのデータのみがリードされる。
【０２４２】
＜シリアルデータの転送、トランザクションの形式＞
転送するシリアルデータを全て数ビット単位で１つのトランザクションの単位として扱い、このトランザクション単位でシリアルデータが有効であるか否かを判断する。
【０２４３】
トランザクション単位でシリアルデータを転送する際に、有効なトランザクションのデータの開始点を判別するために、トランザクション単位の最初の１ビットだけを常にＨ状態にし、無効なトランザクション間は、常にＬ状態にする。これによって有効なトランザクションの開始点を判別し、トランザクション単位で扱うデータのビット数分転送された時点で、そのトランザクションは転送を終了したものと判断する。
【０２４４】
前記トランザクション単位で、マスターチップとスレーブチップ間におけるシリアルデータの転送中に、そのトランザクションにビットエラーが発生し、そのトランザクションに不適当なデータ情報が含まれてしまった場合に、各スレーブチップにおいて、その不適当なデータ情報が、そのままスレーブチップ内のレジスタ等に書き込まれないようにエラー管理を行う。
【０２４５】
前記エラー管理は、前記トランザクション単位においてマスターチップでパリティビットを付加し、スレーブチップに転送を行い、各スレーブチップは、前記トランザクション単位でデータを受信する際に、各トランザクション単位でパリティの検出を行いマスターチップが付加したパリティビットとスレーブチップで受信したパリティビットとが合致しているか否かを判断することで、エラーのトランザクションを検出する。
【０２４６】
前記エラー管理は、各スレーブチップにおいてパリティビットの確認を行うだけでなく、スレーブチップからリング状の信号線上を転送されマスターチップに戻ってきたシリアルデータにおいても、スレーブチップと同様、前記トランザクション単位でパリティビットの確認を行う。
【０２４７】
前記エラー管理において、各スレーブチップでエラーのトランザクションを検出した場合、各スレーブチップは、そのトランザクションに不適当なデータ情報存在するものと認識し、そのトランザクションのデータに関してスレーブチップ内のレジスタ等にライト及びリードを行わず、そのまま次のスレーブチップまたはマスターチップに転送する。
【０２４８】
前記エラー管理において、マスターチップでエラーのトランザクションを検出した場合、スレーブチップは、そのトランザクションに不適当なデータ情報存在するものと認識し、そのトランザクションのデータに関してのエラー表示を行い、そのトランザクションの転送に失敗したことを外部に通知する。
【０２４９】
シリアルデータに転送の種類を判別するためのコマンドデータと、転送を行いたいデータとを分け、それぞれコマンドデータのトランザクション（以下、コマンド部と記述する。）とデータのトランザクション（以下、データ部と記述する。）とする。
【０２５０】
更に、複数のスレーブチップをマスターチップが個々に識別するために、マスターチップは、各スレーブチップに対してコンフィグレーションのトランザクションを発行し、このコンフィグレーションのトランザクションによって各スレーブチップにユニークな番号を付け、この番号をスレーブチップを識別するチップIDとする。
【０２５１】
コマンド部には、データ部かコマンド部かを識別する識別子（以下、Ｃ／Ｄ識別子と記述する。）と、ライトのトランザクションかリードのトランザクションかを識別する識別子（以下、Ｗ／Ｒ識別子と記述する。）と、データの転送幅を識別する識別子（以下、BitModeと記述する。）と、スレーブチップを識別するチップIDの識別子（以下、ChipIDと記述する。）と、リードまたはライトするアドレスの情報を含む。
【０２５２】
データ部には、Ｃ／Ｄ識別子と、Ｗ／Ｒ識別子と、BitModeと、リードまたはライトするデータの情報を含む。
【０２５３】
＜コンフィグレーションのトランザクション動作＞
複数のスレーブのチップに各トランザクションを発行するために、マスターのチップは、システムリセット後、最初に各スレーブのチップに対してコンフィグレーションのトランザクションを発行し、各スレーブのチップにChipIDを割り振る。
【０２５４】
リセットトランザクションが発行された場合にも、リセット後、最初にコンフィグレーショントランザクションを発行し、各スレーブチップにChipIDを振り直して、各トランザクションを開始する。
【０２５５】
コンフィグレーショントランザクションには、コマンド部のみが存在し、このコマンド部中には、Ｃ／Ｄ識別子をアクティブに（例えば、コマンド部の場合にはＣ／Ｄ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｔｙｐｅ識別子（例えば、コンフィグレーショントランザクションの場合には００）、ChipID（マスターチップから発行する時のChipIDは０とする）の情報が含まれている。
【０２５６】
マスターチップは、該マスターチップが発行したコンフィグレーショントランザクションが、各スレーブチップを介した後、マスターチップに戻り、マスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【０２５７】
各スレーブチップは、コンフィグレーショントランザクションを受信した場合は、各スレーブチップ内に保持しているチップIDデータ用のレジスタに、コンフィグレーショントランザクション中のChipIDのデータに１加算した値を、前記チップIDデータ用のレジスタに保持する。
【０２５８】
各スレーブチップは、前記チップIDデータ用のレジスタに保持したChipIDの値を次のスレーブチップまたはマスターチップに送るコンフィグレーショントランザクション中に入れて送る。
【０２５９】
コンフィグレーショントランザクションは、各スレーブチップを介して最後に、マスターチップに送られて来て、マスターチップは、送られて来たコンフィグレーショントランザクションのChipIDの値を見て、スレーブチップが何個同じリング状に接続されているかを判断する。ChipIDの値がＮであれば、Ｎ個のスレーブチップが同じリング状に接続されていることになる。
【０２６０】
＜ライトのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタにデータをライトする場合は、マスターチップは、スレーブチップに対してコマンド部を発行し、続けてデータ部を発行する。
【０２６１】
この時、コマンド部中には、Ｃ／Ｄ識別子をアクティブに（例えば、コマンド部の場合にはＣ／Ｄ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、BitModeを所定のデータ幅情報に設定し、ChipIDを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【０２６２】
この時、データ部中には、Ｃ／Ｄ識別子を非アクティブに（例えば、コマンド部の場合にはＣ／Ｄ識別子はアクティブ、データ部の場合には非アクティブであるとする）、Ｗ／Ｒ識別子をアクティブに（例えば、ライトのトランザクション時にはＷ／Ｒ識別子はアクティブ、リードのトランザクション時には非アクティブであるとする）、BitModeを所定のデータ幅情報に設定し、所定のレジスタのライトするデータ値を設定した情報が含まれている。
【０２６３】
この時、マスターチップは、該マスターチップが発行したライトのトランザクションが、各スレーブチップを介してマスターチップに戻って来ない間でも、連続してライトのトランザクションを発行させる。
【０２６４】
そのため、ライトのトランザクションに関して、マスターチップは、各スレーブチップにデータが書き込まれたか否かをライトのトランザクションによって確認することはない。マスターチップは、スレーブチップからリング状の信号線上に送られてきたトランザクションを受信し、そのトランザクションにパリティのエラーがあるか否かのみを判断する。
【０２６５】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタにデータをライトする。そのスレーブチップに該当しないトランザクションに関しては、次々に次のスレーブチップまたはマスターチップに送ることで、ライトのトランザクションを次々に処理する。
【０２６６】
これによって、ライトを行いたいスレーブチップのレジスタに対して、マスターチップはライトすることが可能になる。
【０２６７】
＜リードのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、スレーブチップ内にあるレジスタのデータをリードする場合は、マスターチップは、スレーブチップに対してコマンド部のみを発行する。
【０２６８】
この時、コマンド部中には、Ｃ／Ｄ識別子をアクティブに、Ｗ／Ｒ識別子を非アクティブに、BitModeを所定のデータ幅情報に設定し、ChipIDを所定の値（対象となるスレーブチップのコンフィグレーション値）に、所定のレジスタのアドレス値を設定した情報が含まれている。
【０２６９】
この時、マスターチップは、該マスターチップが発行したリードのコマンド部が、各スレーブチップを介した後、マスターチップに戻って来て、該当するスレーブチップから発行されるリードのデータ部をマスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【０２７０】
リードのトランザクションに関しては、マスターチップがスレーブチップに転送したリードのコマンド部が、スレーブチップで受信され、スレーブチップから次のスレーブチップまたはマスターチップへコマンド部を転送しつつ、該当するスレーブチップからリードのデータ部の発行が行われる。
【０２７１】
マスターチップでは、このリードのコマンド部を受信した後、リードのデータ部を受信する。マスターチップは、このリードのデータ部を受信し終えるまでは、リードのデータ部の受信待ち状態になり、マスターチップがリードのトランザクションを受信し終えた後に、マスターチップは、次のトランザクションの転送動作に移る。
【０２７２】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送される各トランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びデータの設定情報を読み込み、その受信したトランザクションが該当するトランザクションか否かを判断し、該当するトランザクションに反応して、そのスレーブチップ内部のレジスタに対してデータをリードする。
【０２７３】
前記該当するスレーブチップは、このリードしたレジスタデータからリードのデータ部の転送を行う。この時、前記該当するスレーブチップは、リードのデータ部を発行するに必要な前記識別子及びデータの設定情報を付加してリードのデータ部とする。
【０２７４】
スレーブチップにおいて、リードのコマンド部が該当しない場合は、次々に次のスレーブチップまたはマスターチップにリードのコマンド部をそのまま転送することで、リードのコマンド部を処理する。
【０２７５】
マスターチップは、リードのトランザクション時には、リードのコマンド部を受信し、その後リードのデータ部を受け取ることになる。そのため、マスターチップは、リードのコマンド部を受信した時に、ChipIDからリードを行ったスレーブチップを確定し、アドレスの情報からリードを行ったレジスタのアドレスを確定し、リードのデータ部を受信した時に、データの情報からリードを行ったレジスタのデータ値を確定することができる。
【０２７６】
これによって、リードを行いたいスレーブチップのレジスタに対して、マスターチップはリードすることが可能になる。
【０２７７】
＜リセットのトランザクション動作＞
複数のスレーブチップ中で、ある特定のスレーブチップに対して、リセットを行う場合は、マスターチップは、スレーブチップに対してリセットトランザクションを発行する。
【０２７８】
リセットトランザクションにはコマンド部のみが存在し、このコマンド部中には、Ｃ／Ｄ識別子をアクティブに（例えば、コマンド部の場合にはＣ／Ｄ識別子はアクティブ、データ部の場合には非アクティブであるとする）、ChipIDをリセットを行うスレーブチップの所定値（対象となるスレーブチップのコンフィグレーション値）に設定した情報が含まれている。
【０２７９】
マスターチップは、該マスターチップが発行したリセットトランザクションが各スレーブチップを介した後マスターチップに戻り、該マスターチップが受信し終えるまでは、次のトランザクションの発行は行わない。
【０２８０】
リセットトランザクションは、マスターチップから発行された後、リング状に接続されたシリアル線路を通じ、各スレーブチップへ送られる。
【０２８１】
この時、各スレーブチップは、マスターチップまたはスレーブチップから転送されるトランザクションを受信し、そのトランザクション中に含まれる前記各識別子及びChipIDの設定情報を読み込み、その受信したトランザクションが、リセットトランザクションで且つChipIDが対象の値である場合にのみ、リセットトランザクションに反応し、リセット動作に移る。受信したリセットトランザクションが、そのスレーブチップに該当しない場合は、リセットの処理を行わず、次々に次のスレーブチップまたはマスターチップにリセットトランザクションを送る。
【０２８２】
受信したリセットトランザクションが、そのスレーブチップに該当する場合でも、そのリセットトランザクションは、次のスレーブチップまたはマスターチップに送る。
【０２８３】
リセットトランザクションが該当し、リセットの処理を行う場合には、トランザクションを制御している内部回路（１）のリセットを行う。この内部回路（１）は、スレーブチップ内部に搭載されて、各トランザクションの制御を行う。この時、トランザクションを次のスレーブチップまたはマスターチップに送るブロックの回路は、トランザクションを次のスレーブチップまたはマスターチップに送り終えた後にリセットがかかるように制御する。これにより、次に送るトランザクションにリセット処理の影響が無く、データを送ることが可能になる。
【０２８４】
リセット処理は、スレーブチップ内部にリセットの処理がかかるように、リセットトランザクションを処理するブロックの前記内部回路（１）からリセット信号（１）を出力することで実現する。リセットトランザクションによるリセット処理が実行された場合には、前記内部回路（１）は、リセット信号（１）を所定の時間アクティブ状態にし、スレーブチップ内部の各回路のリセットを行う。その後、内部回路（１）内部のリセットを行い、所定の時間後にリセット信号（１）を非アクティブにする。
【０２８５】
以下、本実施の形態について具体的に説明する。
【０２８６】
尚、本実施の形態に係るデータ転送装置を有するデータ処理システムの構成は、上述した第１の実施形態における図１乃至図７と同一であり、また、本実施の形態に係るデータ転送装置におけるトランザクションのシリアルデータのデータ構成は、上述した第２の実施形態における図８と同一であり、更に、本実施の形態に係るデータ転送装置におけるリセット動作の説明図は上述した第２の実施形態における図９と同一でるから、必要に応じてこれら各図を流用して説明する。
【０２８７】
＜チップ間のシリアルデータ転送を用いたリセット動作＞
図６において、システム制御部５００内のＣＰＵ２００１からスレーブチップに対してリセット動作命令が、ＣＰＵバス２１２６を介してシステムバスブリッジ２００７に送られ、リセットを行うチップが、プリンタ画像処理部３０９、画像処理部５０１、リーダ画像処理部３０８のいずれかである場合、リセット動作命令は、システムバスブリッジ２００７からマスターインタフェース２１４７に送られる。
【０２８８】
マスターインタフェース２１４７では、リセット動作の命令を受け、該当するスレーブチップのChipIDを用いて、リセットのトランザクションを作成する。マスターインタフェース２１４７で作成されたリセットのトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２８９】
前記リセット動作命令は、ＣＰＵ２００１が、マスターインタフェース２１４７に対して、制御可能なスレーブチップを、個別にまたは一度に全てリセットを行うための命令セットである。このリセット動作命令の中には、マスターインタフェース２１４７に対してリセットのトランザクションを発行する命令と、リセットを行いたいスレーブチップのChipIDの値を含んでいる。
【０２９０】
前記ChipIDの値は、プリンタ画像処理部３０９をリセットしたい場合のChipIDは１、画像処理部５０１をリセットしたい場合のChipIDは２、リーダ画像処理部３０８をリセットしたい場合のChipIDは３、全てのスレーブチップをリセットしたい場合のChipIDは０にそれぞれ設定される。
【０２９１】
マスターインタフェース２１４７では、ＣＰＵ２００１からのリセット動作の命令を受け、リセットのトランザクションを作成する。マスターインタフェース２１４７で作成されたリセットのトランザクションは、マスターインタフェース２１４７から、シリアルデータとして同期用のクロック信号線５１１と同期したタイミングでプリンタ画像処理部３０９に送られる。
【０２９２】
図７において、プリンタ画像処理部３０９のスレーブインタフェース（１）７０１は、前記リセットのトランザクションを受け、受信したChipIDの値が０またはコンフィグレーション時に保持したChipIDの値と同じ場合は、リセット処理を行う。但し、リセット処理を行う前にリセットのトランザクションを、マスターインタフェース（１）７０２からシリアルデータの信号として、同期用のクロック信号と同期したタイミングで画像処理部５０１のスレーブインタフェース（２）７０３へ送信する。マスターインタフェース（１）７０２からリセットのトランザクションが送信し終えてから、前記リセット処理を実行する。
【０２９３】
前記リセット処理は、プリンタ画像処理部３０９の内部の回路に対してのリセットを行うのと、スレーブインタフェース（１）７０１、マスターインタフェース（１）７０２に対してリセットを行う。前記リセットは、マスターインタフェース（１）７０２からリセットのトランザクションが転送し終えてから実行される。プリンタ画像処理部３０９の内部の回路に対してのリセットは、スレーブインタフェース（１）７０１またはマスターインタフェース（１）７０２からリセット信号を内部回路に対して出力することで実現する。
【０２９４】
図９中のインタフェース９０１は、スレーブインタフェース（１）７０１とマスターインタフェース（１）７０２の組に相当する。前記内部回路が内部回路（１）９０２、内部回路（２）９０３、内部回路（３）９０４に相当する。リセット動作時には、インタフェース９０１は、前記内部回路９０２〜９０４に対してリセット信号９０５をアクティブにする。リセット信号９０５のアクティブ区間が所定の時間以上必要ならば、リセットジェネレータ９０６を用いてリセット信号９０５のアクティブ区間を必要な時間数分伸ばすことで、内部回路（１）９０２、内部回路（２）９０３、内部回路（３）９０４に対してリセットを行う。同時に、インタフェース９０１自体もリセット状態に移る。
【０２９５】
同様に、リセットのトランザクションは、画像処理部５０１、リーダ画像処理部３０８の各スレーブチップを通って最後に、システム制御部５００内のスレーブインタフェース２１４８へ送られる。
【０２９６】
これによって、ＣＰＵ２００１からの所望のスレーブチップに対してのみリセット動作を行うことが可能になり、他のスレーブチップにはリセットの影響を及ぼさない。
【０２９７】
尚、本実施の形態に係る＜チップ間のシリアルデータ転送の構成＞、＜シリアルデータ、トランザクションの形式＞、＜チップ間のシリアルデータ転送を用いたコンフィグレーション動作＞、＜チップ間のシリアルデータ転送を用いたライト動作＞、＜チップ間のシリアルデータ転送を用いたリード動作＞については、上述した第２の実施形態と同一であるから、その説明は省略する。
【０２９８】
以上詳述したように、本実施の形態によれば、複数のチップ間でシリアルデータの送受信を行う際に、マスターチップに対してスレーブチップにシリアルデータを転送する場合には、１個のマスターチップから複数のスレーブチップに対してシリアルデータを一度のトランザクションでデータを転送することができる。
【０２９９】
また、シリアルデータを転送するためのマスターチップ及び各スレーブチップが持つインタフェースのポートは、シリアルデータ用のポートとシリアルデータ転送用の同期クロック信号用ポートの２ポートのみで済み、チップのポート数削減を行うことが可能である。
【０３００】
また、スレーブチップのチップ数が増加した場合でも各チップの持つポートは変わらず、リング上に信号線を接続するため、各チップを接続する信号線の増加も防ぐことができる。
【０３０１】
更に、所定のスレーブチップのみをリセットまたは初期状態にしたい場合、マスターチップから通信を行うことにより、他のチップ及びシステム自体をリセットする必要が無く、容易に所定のスレーブチップのみをリセットすることが可能である。
【０３０２】
［その他の実施形態］
以上が本発明の実施形態の説明であるが、本発明は、これら実施形態に限られるものではなく、特許請求の範囲で示した機能、または実施形態の構成が持つ機能を達成できる構成であれば、どのようなものであっても適用可能である。
【０３０３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体及びプログラムは本発明を構成することになる。
【０３０４】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０３０５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０３０６】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０３０７】
【図１】本発明の第１の実施形態に係るデータ転送装置を有するシステムの構成を示すブロック図である。
【図２】図１に示すシステムにおける画像入出力システムの全体構成を示すブロック図である。
【図３】図１に示すシステムにおける画像入出力システムのリーダ部及びプリンタ部の内部構成を示す側断面図である。
【図４】図１に示すシステムにおける画像入出力システムのリーダ画像前処理部の構成を示すブロック図である。
【図５】図１に示すシステムにおける画像入出力システムのコントローラユニット内部の概略構成を示すブロック図である。
【図６】図１に示すシステムにおける画像入出力システムのコントローラユニットの内部詳細構成を示すブロック図である。
【図７】本発明の第１の実施形態に係るデータ転送装置におけるチップ間のシリアルデータ転送の構成を示す図である。
【図８】本発明の第１の実施形態に係るデータ転送装置におけるトランザクションのシリアルデータのデータ構成を示す図である。
【図９】本発明の第２の実施形態に係るデータ転送装置におけるリセット動作の説明図である。
【図１０】本発明の第２の実施形態に係るデータ転送装置におけるリセット動作の説明図である。
【符号の説明】
【０３０８】
１００      第１の画像入出力システム
１０１      第２の画像入出力システム
１０２      第１のデータベースサーバ
１０３      データベースクライアント
１０４      電子メールクライアント
１０５      第１の電子メールサーバ
１０６      第１のＷＷＷサーバ
１０７      ＤＮＳサーバ
１０８      ルータ
１０９      ＬＡＮ（ローカルエリアネットワーク）
１１０      第２のデータベースサーバ
１１１      第２のＷＷＷサーバ
１１２      第２の電子メールサーバ
１１３      インターネット／イントラネット
１１４      ファクシミリ（ＦＡＸ）
１１５      ＰＳＴＮ（public switched telephone network:公衆電話網）またはＩＳＤＮ（integrated service digital network:統合サービスデジタル網）
Ｒ          リーダ部
Ｐ          プリンタ部
２００      コントローラユニット
２０１      操作部
２０２      記録部（ＣＤ−ＲＯＭ）
２０３      原稿給送ユニット（ＤＦユニット）
２０４      スキャナユニット
２０５      マーキングユニット
２０６      給紙ユニット
２０７      排紙ユニット
３０７      ＣＣＤ
３０８      リーダ画像処理部
４０１      クランプ＆Ａｍｐ．＆Ｓ／Ｈ＆Ａ／Ｄ部
４０２      シェーディング部
５００      システム制御部
５０１      画像処理部
５０２      メモリ
５０３      メモリ
５０４      メモリ
５０５      メモリ
５０６      シリアルデータ受信用ポート
５０７      シリアルデータ受信用の同期用クロックポート
５０８      シリアルデータ送信用ポート
５０９      シリアルデータ送信用の同期用クロックポート
５１０      シリアルデータ用信号線
５１１      同期用クロック信号線
７０１      スレーブインタフェース（１）
７０２      マスターインタフェース（１）
７０３      スレーブインタフェース（２）
７０４      マスターインタフェース（２）
７０５      スレーブインタフェース（３）
７０６      マスターインタフェース（３）
７０７      内部バス
７０８      内部バス
７０９      内部バス
８０３      コマンド部
８０４      データ部
９００      スレーブチップ
９０１      インタフェース
９０２      内部回路（１）
９０３      内部回路（２）
９０４      内部回路（３）
９０５      リセット信号
９０６      リセットジェネレータ
１００１    ＦＦ
１００２    ＦＦ
１００３    ＸＯＲゲート
１００４    ラッチ
１００５    出力データ線
【図１】
0004697924.tif 000002
【図２】
0004697924.tif 000003
【図３】
0004697924.tif 000004
【図４】
0004697924.tif 000005
【図５】
0004697924.tif 000006
【図６】
0004697924.tif 000007
【図７】
0004697924.tif 000008
【図８】
0004697924.tif 000009
【図９】
0004697924.tif 000010
【図１０】
0004697924.tif 000011