(57)【要約】【課題】バススイッチを備えたシステムにおいて、ＣＰＵ以外のバスマスタが関与するトランザクションについても監視する。【解決手段】コントローラ２０００に内蔵されたシステムバスブリッジ２００７には、バススイッチ１００とデバッグモジュール１０１とが含まれている。デバッグモジュール１０１には、監視対象のスレーブバスを選択するセレクタ１０２と、アドレス範囲やデータ値、マスタＩＤ値等を設定可能なレジスタをそれぞれ持つトランザクション検出装置Ａ，Ｂが備えられている。各トランザクション検出装置は、設定された条件に一致するトランザクション、たとえば設定されたマスタＩＤから要求されたトランザクションを検出して、割り込みを発生する。【選択図】図１
2006113906.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定手段と、
前記各種信号の値が、前記条件に合致することを検出する検出手段と、
前記検出手段により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生手段と
を備えることを特徴とするバス監視装置。
【請求項２】
前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタＩＤが含まれ、前記設定手段は、前記条件としてマスタＩＤを設定でき、前記検出手段は、前記条件としてマスタＩＤが設定されている場合には、前記スレーブバス上のマスタＩＤの値が、前記条件に合致することを検出することを特徴とする請求項１に記載のバス監視装置。
【請求項３】
前記設定手段はさらに、前記条件としてマスタＩＤのうちの所望の桁を示すマスタＩＤマスクを設定でき、前記検出手段は、前記条件としてマスタＩＤマスクが設定されている場合には、前記マスタＩＤマスクによりマスクされた桁を除いた前記スレーブバス上のマスタＩＤの値が、前記条件に合致することを検出することを特徴とする請求項１または２に記載のバス監視装置。
【請求項４】
前記スレーブバス上の信号には、アドレス情報、ライトデータ情報、ライトデータマスク情報、データレーン情報、ライトリード識別情報、バイトイネーブル情報の少なくともいずれかが含まれ、前記設定手段は、アドレス情報、ライトデータ情報、ライトデータマスク情報、データレーン情報、ライトリード識別情報、バイトイネーブル情報の少なくともいずれかについて前記条件を設定でき、前記検出手段は、前記スレーブバス上の信号の値が前記設定手段により設定した条件に合致することを検出することを特徴とする請求項１乃至３のいずれか１項に記載のバス監視装置。
【請求項５】
複数のスレーブバスのうちからひとつを選択する選択手段を更に備え、前記スレーブバスは、前記選択手段により選択されたスレーブバスであることを特徴とする請求項１または２に記載のバス監視装置。
【請求項６】
前記設定手段は少なくとも２つの条件を設定でき、前記検出手段は前記少なくとも２つの条件それぞれについて満足されていることを検出し、前記割込発生手段は、パラレルモードにおいて、前記少なくとの２つの条件のいずれかが満足された場合に割込み信号を発生させることを特徴とする請求項１乃至５のいずれか１項に記載のバス監視装置。
【請求項７】
前記設定手段は少なくとも２つの条件を設定でき、前記検出手段は前記少なくとも２つの条件それぞれについて満足されていることを検出し、前記割込発生手段は、シーケンシャルモードにおいて、前記少なくとの２つの条件が、一定の順序ですべて満足された場合に割込み信号を発生させることを特徴とする請求項１乃至６のいずれか１項に記載のバス監視装置。
【請求項８】
前記設定手段は、前記シーケンシャルモードと前記パラレルモードのいずれかを選択するための設定が可能であり、前記割込発生手段は、設定に応じて割込を発生させることを特徴とする、請求項６を引用する請求項７に記載のバス監視装置。
【請求項９】
複数のスレーブバスと、
プロセッサを含む複数のバスマスタがそれぞれ接続された複数のマスタバスと、
前記複数のスレーブバスと前記複数のマスタバスとを、１対１で切り換え可能に接続するバススイッチと、
請求項１乃至８のいずれか１項に記載のバス監視装置とを備え、
前記バス監視装置の前記割込み信号発生手段により発生された割り込み信号を前記プロセッサの割込信号として入力し、前記プロセッサは、割り込み信号が入力された場合には、前記スレーブバスに接続されたメモリの所定アドレスからプログラムを実行することを特徴とするバス監視装置付きコントローラ。
【請求項１０】
複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定工程と、
前記各種信号の値が、前記条件に合致することを検出する検出工程と、
前記検出工程により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生工程と
を備え、
前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタＩＤが含まれ、前記設定工程では、前記条件としてマスタＩＤを設定でき、前記検出工程では、前記条件としてマスタＩＤが設定されている場合には、前記スレーブバス上のマスタＩＤの値が、前記条件に合致することを検出することを特徴とするバス監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば電子制御システムのバスの監視の方法に関し、特に、デジタル複写機能を備える画像入出力装置におけるバスを監視するバス監視装置及びそれを備えたコントローラに関する。
【背景技術】
【０００２】
従来、ICE（インサーキットエミュレータ）などを使ってCPU内蔵のLSIのデバッグを行なう際、対象となるCPUが発行したトランザクションを監視する機能がよく利用されてきた。この機能は、監視対象のCPUが発行したトランザクション（たとえばメモリやＩＯに対するリードやライト）のみを監視するものであった。監視のためには一定の条件をレジスタ等に設定し、その条件と一致するアドレスやデータ、トランザクションモード（リード／ライト）のトランザクションが検出されると割込を発生する。そしてその一方、たとえば実行された処理の履歴を循環的に保存しておくことで、割り込み直前の処理をトレース可能とすることができ、デバッグを容易化することが可能となっている。
【０００３】
このようなデバッグツールとして、従来の単体型ＣＰＵでは外付けのＩＣＥを利用できたが、ＣＰＵを部品として組み込んだシステムＬＳＩなどでは必ずしも利用できないことから、ＬＳＩ自体にデバッグツールを内蔵しておくものもある（特許文献１等参照）。上述のようにこのタイプのデバッガでも、ＣＰＵ発行のトランザクションを監視するものであった。
【特許文献１】特開２００３−１７３３６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これに対してクロスバスイッチなどのバスブリッジを用いたシステムにおいては、ひとつのCPUだけでなく、他のCPUやDMACなどが、同一のRAMなどをアクセスすることが多い。このため従来のICEを使ったデバッグでは、RAMに対してのCPU以外からのトランザクションについては、監視することができなかった。また、監視したい対象はRAMだけではなく、ROM、さらにはシステムに存在する様々なレジスタ、IOポートなどにも及ぶ。
【０００５】
本発明は上記従来例に鑑みてなされたもので、CPUだけではなく、その他のCPUや、DMACなどのマスタモジュールから発行されるトランザクションを監視し、さらには、トランザクションの対象となるスレーブもRAMだけではなく、他のスレーブモジュールについてのトランザクションについても監視することができるバス監視装置およびそれを備えたコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下の構成を備える。
【０００７】
複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定手段と、
前記各種信号の値が、前記条件に合致することを検出する検出手段と、
前記検出手段により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生手段とを備える。
【０００８】
さらに好ましくは、前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタＩＤが含まれ、前記設定手段は、前記条件としてマスタＩＤを設定でき、前記検出手段は、前記条件としてマスタＩＤが設定されている場合には、前記スレーブバス上のマスタＩＤの値が、前記条件に合致することを検出する。
【０００９】
あるいは、本発明は以下の構成を備えるバス監視装置付きコントローラにある。
【００１０】
複数のスレーブバスと、
プロセッサを含む複数のバスマスタがそれぞれ接続された複数のマスタバスと、
前記複数のスレーブバスと前記複数のマスタバスとを、１対１で切り換え可能に接続するバススイッチと、
請求項１乃至８のいずれか１項に記載のバス監視装置とを備え、
前記バス監視装置の前記割込み信号発生手段により発生された割り込み信号を前記プロセッサの割込信号として入力し、前記プロセッサは、割り込み信号が入力された場合には、前記スレーブバスに接続されたメモリにあらかじめ格納した所定のプログラムを実行することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数のバスマスタがバスを共有するシステムにおいて、共有されるバスをプログラム実行中に監視して、所望の条件が満足された場合に割り込み信号を発生させることができる。さらに、割り込み発生の条件として、共有されるバスを使用している特定のマスタのマスタＩＤを設定することができる。このために、共有バスを監視している場合でも、それをどのバスマスタが使用しているかを指定して割込を発生させられる。それにより、単にアクセスされるアドレスや、書き込まれるデータに限らず、それらアドレスおよびデータに関するアクセスを発生するバスマスタをも特定でき、より割込発生の条件を絞り込むことが可能となる。
【発明を実施するための最良の形態】
【００１２】
（第１の実施形態）
以下、図面を参照して本発明の実施の形態を説明する。第１の実施の形態におけるデジタル複合機を図２に示す。２０００は、本発明の画像入出力制御装置及び画像処理装置を適用可能なコントローラ（Controller Unit）である。ここで、２１５０はデジタル複合機全体を制御するシステム制御部である。２１４９及び２１５１は入力した画像データに対して所定の画像処理を行う画像処理部であり、その詳細については後述する。２００８は画像リングであり、システム処理部２１５０と画像処理部２１４９、及び画像処理部２１５１をリング状に接続する。
【００１３】
２０１２は各種設定や動作指示操作を行うための操作部である。２００２はＲＡＭであり、２００３はＲＯＭである。２１４３は汎用ＰＣＩバスであり、２００４は外部記憶装置、２１４４は、ディスクコントローラである。２０５０は、公衆回線と接続するためのモデム、２１４６はＰＨＹ／ＰＭＤであり、ＬＡＮ２０１１と接続しており、デジタル複合機はモデム２０５０及びＰＨＹ／ＰＭＤを介して外部機器と通信可能である。画像処理部１（２１４９）には、プリンタ２０９５、スキャナ２０７０、画像メモリ１及び２（２１２３）が接続されている。
【００１４】
ここで、ハードウェアとしての観点から見た、コントローラ２０００の構成について説明する。従来から、デジタル複写機等画像入出力装置におけるコントローラは、システムＬＳＩとして半導体基板上に構成されている。特に近年、本実施の形態に対応させると、システム制御部２１５０及び画像処理部１（２１４９）及び画像処理部２（２１５１）等の機能を実現するための回路を、１つの半導体基板上に構成したコントローラが提案されている。
【００１５】
次に、システム制御部２１５０及び画像処理部１（２１４９）の内部構成を説明する。コントローラ２０００は、画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５と接続し、一方ではＬＡＮ２０１１や公衆回線ＷＡＮ２０５１と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う為のコントローラである。ＣＰＵ２００１はシステム全体を制御するプロセッサである。本実施の形態では２つのＣＰＵを用いた例を示す。これら二つのＣＰＵは、共通のＣＰＵバス２１２６に接続され、さらに、システムバスブリッジ２００７に接続される。
【００１６】
システムバスブリッジ２００７は、バススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス１（２１２７）、ＩＯバス２（２１２９）、画像リングインターフェース１（２１４７）、画像リングインターフェース２（２１４８）が接続される。ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＡＭ２００２は、ＲＡＭコントローラ２１２４により制御される。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。ＲＯＭコントローラ２１２５により制御される。
【００１７】
ＩＯバス１（２１２７）は、内部ＩＯバスの一種であり、標準バスであるＵＳＢバスのコントローラ、ＵＳＢインターフェース２１３８、汎用シリアルポート２１３９、インタラプトコントローラ２１４０、ＧＰＩＯインターフェース２１４１が接続される。ＩＯバス１（２１２７）には、バスアービタ（図示せず）が含まれる。
【００１８】
操作部Ｉ／Ｆ２００６は操作部ＵＩ２０１２とのインターフェース部で、操作部２０１６に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。
【００１９】
ＩＯバス２（２１２９）は内部ＩＯバスの一種であり、汎用バスインターフェース１及び２（２１４２）と、ＬＡＮコントローラ２０１０が接続される。ＩＯバス２（２１４２）にはバスアービタ（図示せず）が含まれる。汎用バスインターフェース１と２（２１４２）は、２つの同一のバスインターフェースから成り、標準ＩＯバスをサポートするバスブリッジである。本実施の形態では、ＰＣＩバス（２１４３）を採用した例を示した。ＨＤＤ２００４はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ２１４４を介して一方のＰＣＩバス２１４３に接続される。ＬＡＮコントローラ２０１０は、ＭＡＣ回路２１４５、ＰＨＹ／ＰＭＤ回路２１４６を介しＬＡＮ２０１１に接続し、情報の入出力を行う。Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、情報の入出力を行う。
【００２０】
パケット転送手段である画像リングインターフェース１（２１４７）及び画像リングインターフェース２（２１４８）は、システムバスブリッジ２００７と画像データを高速で転送する画像リング２００８を接続し、タイル化されたデータをＲＡＭ２００２と画像処理部２１４９間で転送するＤＭＡコントローラである。同じくパケット転送手段である画像リング２００８は、一連の単方向接続経路の組み合わせにより構成される。画像リング２００８は、画像処理部１（２１４９）内で、画像リングインターフェース３（２１０１）、及び画像リングインターフェース４（２１０２）を介し、コマンド処理部２１０４、ステータス処理部２１０５、タイルバス２１２７に接続される。
【００２１】
コマンド処理部２１０４は、画像リングインターフェースへの接続に加え、レジスタ設定バス２１０９に接続され、画像リングを介して入力したＣＰＵ２００１より発行されたレジスタ設定要求を、レジスタ設定バス２１０９に接続される該当ブロックへ書き込む。また、ＣＰＵ２００１より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース４（２１０２）に転送する。ステータス処理部２１０５は各画像処理部の情報を監視し、ＣＰＵ２００１に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインターフェース４（２１０２）に出力する。タイルバス２１０７には上記ブロックに加え、画像入力インターフェース２１１２、画像出力インターフェース２１１３、複数の矩形画像処理部２１１６〜２１１９、２０３０等の機能ブロックが接続される。本実施の形態では、矩形画像処理部として、多値化部２１１９、２値化部２１１８、色空間変換部２１１７、画像回転部２０３０、解像度変換部２１１６を実装している。
【００２２】
画像処理部１（２１４９）内の、画像入力インターフェース２１１２は、後述するスキャナ２１７０により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された、所定の方法により矩形データへの構造変換とクロックの同期化を行い、タイルバス２１０７に対し出力を行う。画像処理部１（２１４９）内の画像出力インターフェース（２１１３）は、タイルバス２１０７からの矩形データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ２０９５へ出力する。
【００２３】
画像回転部２０３０は画像データの回転を行う。解像度変換部２１１６は画像の解像度の変更を行う。色空間変換部２１１７はカラー及びグレースケール画像の色空間の変換を行う。２値化部２１１８は、多値カラー、グレースケール画像を２値化する。多値化部２１１９は２値画像を多値データへ変換する。
【００２４】
メモリ制御部２１２２は、メモリバス２１０８に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ１及び画像メモリ２（２１２３）に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにＳＤＲＡＭを用いるものとする。
【００２５】
次に、本実施の形態におけるデジタル複合機を含むネットワークシステム全体の構成図を図３に示す。１００１は上述した本実施の形態におけるデジタル複合機であり、本発明の画像出力制御装置及び画像処理装置を適用可能なコントローラにより制御されている。デジタル複合機１００１は、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク１０１０（以下ＬＡＮ）に流したり、ＬＡＮから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないＦＡＸ送信手段により、ＰＳＴＮまたはＩＳＤＮ１０３０に送信したり、ＰＳＴＮまたはＩＳＤＮから受信した画像をプリンタによりプリントアウトできる。１００２は、データベースサーバで、デジタル複合機１００１により読み込んだ２値画像及び多値画像をデータベースとして管理する。
【００２６】
１００３は、データベースサーバ１００２のデータベースクライアントで、データベース１００２に保存されている画像データの閲覧／検索等ができる。１００４は、電子メールサーバで、デジタル複合機１００１により読み取った画像を電子メールの添付として受け取ることができる。１００５は、電子メールのクライアントで、電子メールサーバ１００４の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。１００６がＨＴＭＬ文書をＬＡＮに提供するＷＷＷサーバで、デジタル複合機１００１によりＷＷＷサーバで提供されるＨＴＭＬ文書をプリントアウトできる。１０１１は、ルータでＬＡＮ１０１０をインターネット／イントラネット１０１２と連結する。インターネット／イントラネットに、前述したデータベースサーバ１００２、ＷＷＷサーバ１００６、電子メールサーバ１００４、デジタル複合機１００１と同様の装置が、それぞれ１０２０，１０２１，１０２２，１０２３として連結している。一方、デジタル複合機１００１は、ＰＳＴＮまたはＩＳＤＮ１０３０を介して、ＦＡＸ装置１０３１と送受信可能になっている。また、ＬＡＮ上にプリンタ１０４０も連結されており、デジタル複合機１００１により読み取った画像をプリントアウト可能なように構成されている。
【００２７】
次に、本発明の画像入出力制御装置及び画像処理装置を適用可能なコントローラ２０００内で処理されるパケットデータのパケットフォーマットについて説明する。本実施の形態におけるコントローラ２０００内では、画像データ、ＣＰＵ２００１によるコマンド、各ブロックより発行される割り込み情報等を、パケット化された形式で転送する。本実施の形態では、図４に示すデータパケット、図６に示すコマンドパケット、図７に示すインタラプトパケットの３種の異なる種類のパケットが使用される。
まず、図４を用いてデータパケットについて説明する。本実施の形態では画像データを32pixel x 32pixelのタイル（Tile）単位の画像データ（ImageData+padding）３００２に分割して取り扱う例を示した。このタイル単位の画像に、必要なヘッダ情報（header）３００１及び画像付加情報等（Zdata+padding）３００３を付加してデータパケット（DataPacket）とする。以下にヘッダ情報３００１に含まれる情報について説明を行う。
【００２８】
パケットのタイプはヘッダ情報３００１内のパケットタイプ（PcktType）３００４で区別される。チップＩＤ（ChipID）３００５はパケットを送信するターゲットとなるチップのＩＤを示す。データタイプ（DataType）３００６ではデータのタイプを示す。ページＩＤ（PageID）３００７はページを示しており、ジョブＩＤ（JobID）３００８はソフトウェアで管理するためのＩＤを格納する。タイルの番号はＹ方向のタイル座標３００９とＸ方向のタイル座標３０１０の組み合わせで、ＹｎＸｎで表される。データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では非圧縮の場合を示した。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ（CompressFlag）３０１７で示される。プロセスインストラクション（Process Instruction）３０１１は左詰で処理順に設定し、各処理ユニット（上述の矩形画像処理部等）は、処理後プロセスインストラクション３０１１を左に８ビットシフトする。プロセスインストラクション３０１１はユニットＩＤ（UnitID）３０１９とモード（Mode）３０２０の組が８組格納されている。ユニットＩＤ３０１９は各処理ユニットを指定し、モード３０２０は各処理ユニットでの動作モードを指定する。これにより、１つのパケットは８つのユニットで連続して処理することができる。パケット長（PacketByteLength）３０１２はパケットのトータルバイト数を示す。画像データ長（ImageDataByteLengh）３０１５は画像データのバイト数、Ｚデータ長（ZdataByteLength）３０１６は画像付加情報のバイト数を表し、画像データオフセット（ImageDataOffset）３０１３、Ｚデータオフセット（ZdataOffset）３０１４は、それぞれのデータのパケットの先頭からのオフセットを表している。
【００２９】
次に、図５を用いてパケットテーブル（Packet Table）について説明する。各パケットはパケットテーブル６００１によって管理する。パケットテーブル６００１の構成要素は次の通りで、それぞれテーブルの値に０を５ｂｉｔ付加すると、パケットの先頭アドレス（PacketAddressPointer）６００２、パケット長（Byte Length）６００５となる。またここで、Packet Address Pointer 27bit + 5b00000 = パケット先頭アドレス、Packet Length 11bit + 5b00000 = パケット長の関係が成り立つ。パケットテーブル６００１とチェーンテーブル（ChainTable）６０１０は分割されないものとする。
【００３０】
パケットテーブル６００１は常に走査方向に並んでおり、Yn/Xn＝000/000, 000/001,000/002,....という順で並んでいる。このパケットテーブル６００１のEエントリは一意にひとつのタイルを示す。また、Yn/Xmaxの次のエントリはYn+1/X0となる。パケットがひとつ前のパケットとまったく同じ データである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに１つめのエントリと同じ先頭アドレス（PacketAddressPointer）、パケット長（PacketLength）を格納する。１つのパケットデータを２つのテーブルエントリが指すようなかたちになる。この場合、２つめのテーブルエントリのリピートフラグ（RepeatFlag）６００３がセットされる。パケットがチェーンＤＭＡにより複数に分断された場合は、分割フラグ（DivideFlag）６００４をセットし、そのパケットの先頭部分が入っているチェーンブロックのチェーンテーブル番号（ChainTableNo）６００６をセットする。チェーンテーブル６０１０のエントリはチェーンブロックアドレス（ChainBlockAddress）６０１１とチェーンブロック長（ChainBlockLength）６０１２からなっており、テーブルの最後のエントリにはアドレス、データ長共に０を格納しておく。
【００３１】
次に、図６を用いてコマンドパケット（Command Packet）について説明する。コマンドパケットはレジスタ設定バス２１０９へのアクセスを行うためのものである。コマンドパケットを用いることにより、ＣＰＵ２００１より画像メモリ２１２３へのアクセスも可能である。チップＩＤ（ChipID）４００４にはコマンドパケットの送信先となる画像処理部を表すＩＤが格納される。ページＩＤ（PageID）４００７、ジョブＩＤ（JobID）４００８はソフトウェアで管理するためのページＩＤとジョブＩＤを格納する。パケットＩＤ（PacketID）４００９は１次元で表される。従って、データパケット（Data Packet）のＸ座標（X-coordinate）４００９のみを使用する。パケット長（PacketByteLength）４０１０は１２８Ｂｙｔｅ固定である。パケットデータ部（Command）４００２には、アドレス（Address）４０１１とデータ（Data）４０１２の組を１つのコマンドとして、最大１２個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプは、コマンドタイプ（CmdType）４００５で示され、コマンドの数はコマンド数（Cmdnum）４００６で示される。
【００３２】
最後に、図７を用いてインタラプトパケット（Interrupt Packet）について説明する。インタラプトパケットは画像処理部からＣＰＵ２００１への割り込みを通知するためのものである。ステータス処理部２１０５はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプトパケットを送信してはならない。パケット長（PacketByteLength）５００６は１２８Ｂｙｔｅ固定である。パケットデータ部（IntData）５００２には、画像処理部の各内部モジュール（各矩形画像処理部、入出力インターフェイス等）のステータス情報（ModuleStatus）５００７が格納されている。ステータス処理部２１０５は画像処理部内の各モジュールのステータス情報を集め、一括してシステム制御部２１５０に送ることができる。チップＩＤ（ChipID）５００４にはインタラプトパケットの送信先となるシステム制御部２１５０を表すＩＤが、また、インタラプトチップＩＤ（IntChipID）５００５にはインタラプトの送信元となる画像処理部を表すＩＤが格納される。
【００３３】
以下、コントローラ２０００が行う典型的な処理として、ユーザーが操作部２０１２よりコピージョブの指示を行った場合の処理を、図８、図９に示すフローチャートを用いて説明する。まず、コントローラ２０００がコピージョブを受け、スキャナ２０７０を用いたスキャン動作を開始し終了するまでの処理を図８を用いて説明する。
【００３４】
ＣＰＵ２００１は、操作部インターフェース２００６より情報の伝達を受け、紙サイズ等の情報より、画像リングインターフェース２（２１４８）に、転送パケット数、ＲＡＭ２００２上での画像格納アドレス等の必要情報をプログラムする（Ｓ８０１）。ＣＰＵ２００１はレジスタアクセスリング２１３７を介し、画像リングインターフェース１（２１４７）内部にあるコマンドパケット生成レジスタをプログラミングし、画像入力インターフェース２１１２へ、紙サイズ、色空間情報等、必要情報を設定するための、コマンドパケットを生成する。この場合、コマンドパケットのチップＩＤ４００４を画像処理部１（２１４９）を示す“１”に設定する（Ｓ８０２）。
【００３５】
その後、画像リングインターフェイス１（２１４７）は、コマンドパケットを画像リング２００８を介して画像処理部１（２１４９）へ転送する（Ｓ８０３）。画像処理部１（２１４９）に到達したコマンドパケットは、画像処理部１内の画像リングインターフェース３（２１０１）において、コマンドパケットのチップＩＤが検査される。ここで、コマンドパケットのチップＩＤと、自チップのＩＤが“１”で一致する。この場合、コマンド処理部（２１０４）はコマンドパケットのコマンドデータ及びヘッダの情報に基づき、レジスタ設定バス（２１０９）を介し画像入力インターフェース２１１２をプログラムする（Ｓ８０６）。
【００３６】
続いて、同様に、ＣＰＵ２００１はコマンドパケットを用い、画像入力インターフェース２１１２内部のスキャナ通信インターフェースをプログラミングし、スキャナ２０７０に対し、スキャンの開始を指示する（Ｓ８０７）。 スキャナ２０７０より入力された画像情報は画像入力インターフェース２１１２、及びメモリバス２１０８を介し、メモリ制御部２１２２により制御される画像メモリ２１２３に一旦格納される（Ｓ８０８）。格納された画像データは、再び画像入力インターフェース２１１２により、３２×３２画素ごとに読み出され、パケットタイプ（PcktType）３００４、チップＩＤ（ChipID）３００５、データタイプ（DataType）３００６、ページＩＤ（PageID）３００７、ジョブＩＤ（Job ID）３００８、Ｙ方向のタイル座標（PacketIDYcoordinate）３００９、Ｘ方向のタイル座標（PacketIDXcoordinate）３０１０、圧縮フラグ（CompressFlag）３０１７、プロセスインストラクション（Process Instruction）３０１１、パケットのデータ長（PacketByteLength）３０１２等のヘッダ情報を画像データに付加してデータパケットを生成し、生成したデータパケットをタイルバス２１０７に出力する（Ｓ８０９）。
【００３７】
上記データパケットは順次作成され、コマンドパケットと同様に、チップＩＤに基づき画像リングインターフェース４（２１０２）、画像リング２００８、画像リングインターフェース２（２１４８）を介し画像リングインターフェース２（２１４８）に転送される。そして画像リングインターフェース２（２１４８）にプログラミングされた情報に基づき、ＲＡＭ２００２に順次格納される。画像リングインターフェース２（２１４８）は同時に、パケットテーブル６００１をＲＡＭ２００２上に作成する（Ｓ８１０）。
１ページのスキャン動作が終了すると、スキャナ通信手段を用い、画像入力インターフェースに終了が伝達される。画像入力インターフェース２１１２は、割り込み信号（図示せず）を用い、ステータス処理部２１０５に割り込みを通知する（Ｓ８１１）。
【００３８】
画像処理部１（２１４９）内のステータス処理部２１０５はインタラプトパケット（図７）を作成し、画像リングインタフェース２（２１４８）へ転送する（Ｓ８１２）。画像リングインターフェース２１４８はインタラプトパケットを解釈し、インタラプト信号（図示せず）により、インタラプトをインタラプトコントローラ２１４０へ伝達する。インタラプトは、インタラプトコントローラ２１４０より、ＣＰＵ２００１に伝達され、ＣＰＵ２００１はスキャン動作の終了を検出する（Ｓ８１３）。
【００３９】
スキャン動作を終了すると、プリンタ２０９５を用いたプリント動作を開始する。プリント動作におけるコントローラ２０００の処理について図９を用いて説明する。ＣＰＵ２００１はレジスタアクセスリング２１３７を介し、チップＩＤ“１”を有するコマンドパケットを作成する（Ｓ９０１）。そして、作成したコマンドパケットを画像リングインターフェース1（２１４７）より、画像リング２００８を介して画像処理部１（２１４９）に転送する（Ｓ９０２）。画像処理部１（２１４９）の画像リングインターフェース３（２１０１）は、入力したコマンドパケットを検査する。ここで、チップＩＤが“１”であるので、コマンドパケットのコマンドデータに基づき、コマンド処理部２１０４、レジスタ設定バス２１０９を介し、画像処理部１（２１４９）内の画像出力インターフェース（２１１３）へ画像出力処理のための必要情報の設定を行う（Ｓ９０３）。ＣＰＵ２００１は同様に、コマンドパケットを使用し、画像処理部１内の画像出力インターフェース２１１３に備えられたプリンタ通信手段により、プリンタ２０９５に印字待機を指示する（Ｓ９０４）。続いて、ＣＰＵ２００１は画像リングインターフェース１（２１４７）内に備えられたＤＭＡ手段に、パケットテーブルの存在するメモリアドレス等をプログラムする（Ｓ９０５）。
【００４０】
画像リングインターフェース１（２１４７）内のＤＭＡは、プログラムされた情報に基づき、ＲＡＭ２００２内より、データパケットを読み出しチップＩＤ“１”をヘッダに付加したデータパケットを生成する（Ｓ９０６）。そして、画像リングインターフェース１（２１４７）内のＤＭＡは、生成したデータパケットを画像リング２００８を介し、画像処理部１（２１４９）に転送する（Ｓ９０７）。画像処理部１（２１４９）の画像リングインターフェース３（２１０１）は、入力したデータパケットを検査する。ここで、チップＩＤが“１”であるので、画像リングインターフェース３（２１０１）、タイルバス（２１０７）を介し、順次画像出力インターフェース２１１３へ転送する（Ｓ９０８）。画像出力インターフェース２１１３は、受け取ったデータパケットより、画像部分を抽出し、画像データを画像メモリ２１２３へ格納する（Ｓ９０９）。必要画素分画像データが画像メモリ２１２３に蓄積された時点で、画像出力インターフェース２１１３は画像データを画像メモリ２１２３より順次読み出し、プリンタ２０９５に出力する（Ｓ９１０）。結果、ユーザーは、コピー結果である画像プリントを得る。画像出力が必要画素数終了した時点で、スキャン動作の場合と同様に、インタラプトパケットにより、終了割り込みがＣＰＵ２００１に伝達される（Ｓ９１１）。
【００４１】
以上、スキャナ２０７０及び画像処理部１（２１４９）を用いたスキャン動作、プリンタ２０９５と画像処理部１（２０９５）を用いたプリント動作を組み合わせたコピー動作を説明した。
【００４２】
図２におけるシステムバスブリッジ２００７はバススイッチであり、ＣＰＵバス２１２６、ＲＡＭコントローラ２１２４、ＲＯＭコントローラ２１２５、ＩＯバス１（２１２７）、ＩＯバス２（２１２９）、画像リングインターフェース１（２１４７）、画像リングインターフェース２（２１４８）が接続されている。
【００４３】
＜デバッグモジュール＞
次に、デバッグモジュールの動作について説明する。デバッグモジュールはシステムバスブリッジ２００７内に設けられている。図１はシステムバスブリッジ内のデバッグモジュール周辺のブロック図である。１００はバススイッチ、１０１はデバッグモジュールである。バススイッチ１００は、マスタバスとスレーブバスとをスイッチングするためのバススイッチである。各マスタバスはバスマスタが接続されたバスであり、たとえばＣＰＵバス２１２６、ＩＯバス１（２１２７）、ＩＯバス２（２１２９）、画像リングインターフェース１（２１４７）、画像リングインターフェース２（２１４８）などにシステムバスブリッジ２００７の外側でそれぞれ接続されている。また、各スレーブバスはバスマスタとはなり得ないデバイス、たとえばＲＡＭコントローラ（２１２４）、ＲＯＭコントローラ（２１２５）などである。これらマスタバスはシステムバスブリッジ２００７にそれぞれ接続されている。各バスは、たとえば２８ビットのアドレスバスおよび３２ビットの制御バスと、１２８ビットのデータバスとを含む。スレーブバスは、バススイッチ１００により１対１に接続されているマスタバス上のバスマスタにより使用される。したがってスレーブバスはバススイッチによる接続先のマスタバスを切り換えることで、各バスマスタにより時分割で共有されるともいえる。
【００４４】
バススイッチ１００は、バスマスタから指定されたマスタＩＤとスレーブＩＤに従って、指定されたマスタバスとスレーブバスとを接続する。本実施形態では、マスタＩＤおよびスレーブＩＤとも４ビットであるものとするが、これは一例に過ぎない。そして制御バスは、少なくともマスタＩＤのためにそのうちの４ビットが割り当てられている。すなわち、バスマスタがデータの書き込みや読み出しといったトランザクションを発行すると、制御バスには要求元のマスタＩＤを示す信号が流れている。ここでトランザクションとは、ＣＰＵやＤＭＡコントローラ等のバスマスタから、たとえばメモリ等のスレーブに対するデータの書き込みや読み出しといった動作をいい、バスマスタからのアドレス信号や制御信号の出力と、バスマスタからスレーブへのデータ信号や制御信号等の出力あるいはスレーブからマスタへのデータ信号や制御信号等の出力とによって、１トランザクションが完結する。スレーブバスにはこのほか、トランザクションがライトかリードを示すリード／ライト信号、バイト（８ビット）単位でデータの載せられたデータバスを示すバイトイネーブル信号等が含まれる。
【００４５】
さて、デバッグモジュール１０１はトランザクション検出装置Ａ（１０３）とトランザクション検出装置Ｂ（１０４）の２組のトランザクション検出装置を持ち、ＣＰＵを含む各マスタがアクセス可能なスレーブデバイス、すなわち本実施形態では物理空間内のＲＡＭあるいはＲＯＭが接続されるスレーブバスを選択するためのセレクタ（１０２）によって選択される。この選択は、選択するスレーブのスレーブＩＤをセレクタ１０２に設けたレジスタ（後述のスレーブセレクトレジスタ）に設定することで行える。後述の通りデバッグモジュール１０１にはレジスタとそれぞれのレジスタにマスタ（たとえばＣＰＵ）から所望とする値を書き込むための仕組みを備えている（図１０参照。ただしスレーブＩＤをセットするレジスタは不図示。）セレクタ１０２は、そのレジスタに設定されたスレーブＩＤに対応するスレーブバスを、トランザクション検出装置Ａ、Ｂそれぞれに対して出力する。
【００４６】
デバッグモジュール１０１は、２つのトランザクション検出装置Ａ１０３、Ｂ１０４を備えることにより、選択したスレーブバスを流れるトランザクションを２つまで検出することが出来る。検出条件を示すトランザクション情報は、各装置に個別に設定することができる。また、２つの検出装置をカスケード接続することにより、順序を伴った二つのトランザクションを検出し、割り込みを発生することが出来る。そのためには、所望とする条件（これをブレークコンディションあるいはトランザクション情報と呼ぶ。）をレジスタ群１０３ａ，１０４ａに設定し、アドレスバスやデータバス、制御バスの信号が、設定した条件に合致している場合に、設定条件に合致したトランザクションの検出を示す割込み信号が発生する。トランザクションが検出された場合、そのときのバス等のステータスがレジスタ群１０２ｂ，１０４ｂにセットされる。
【００４７】
発生した割込み信号をどのように利用するかは、コントローラ２０００の利用者により作成された割り込みプログラム等の内容によって定義可能である。たとえば、発生した割込み信号はＣＰＵ２００１に入力されて割り込み処理を発生させる。割り込み処理では、割り込み原因の解析および原因に応じた処理への分岐が行われる。そしてたとえばデバッグに必要な情報を獲得するための処理を行う。その処理には、トレース情報やブレークコンディションの出力や保存等が含まれる。デバッグモードで実行している際には、一定量のメモリがトレースバッファとして割り当てられる。そして、実行されるトランザクションに係る情報はトレースバッファに循環的に記録されて、プログラムがブレークすると、ブレークポイント（トランザクションの検出条件の合致によりデバッグ対象のプログラムが中断することをブレークと呼び、ブレークしたプログラムの箇所をブレークポイントと呼ぶことにする。）直前の一定量のトランザクションに係る情報を参照することができる。もちろんこれはトランザクション検出により発生する割り込みの応用の一例に過ぎず、コントローラ２０００の利用者によって処理内容は所望とする内容に定義可能である。
【００４８】
なお、検出の設定が必要無いトランザクション検出装置については、当該トランザクション検出装置のトランザクション情報を検出される可能性のないものに設定しておく。物理空間内のスレーブモジュールがマッピングされていない空間へ設定しておくことにより、使用禁止に出来る。たとえば、トランザクション検出装置Ａが、ＲＡＭコントローラにつながるスレーブバスに接続されているとする。その場合、指定アドレスにアクセスしたことを検出条件とする検出モードを設定し、ＲＡＭが実装された物理メモリ空間の上限アドレスを越えるアドレス値を指定アドレスとして設定すれば、トランザクション検出装置Ａによって、ブレークコンディションの満足が検出されることはない。
【００４９】
＜トランザクション検出装置＞
このような動作を実現するために、トランザクション検出装置Ａ１０３は図１０に示すような構成を備える。もちろん図１０は一例であって、所望とするトランザクション検出機能が実現できる他の構成も取り得る。図１０において、ブレークコンディションをセットするためのレジスタ群１０３ａは、アドレス系レジスタ１００２、データ系レジスタ１００５、マスタＩＤ系レジスタ１００８、コントロール系レジスタ１０１２を含む。また、トランザクション検出時のステータスを保存するレジスタ群１０３ｂがステータス系レジスタ１０１１に相当する。これらのレジスタ群は、本実施形態においてはバススイッチ１００からのスレーブバスに接続されており、各レジスタごとに値の書き込み及び読み出しが可能（これはレジスタ毎に定められている。）である。もちろんレジスタへのアクセスが可能であればスレーブバスである必要はない。ここで各レジスタ群に含まれるレジスタについて説明する。なお、頬実施形態のデバッグモジュールに含まれる全レジスタは３２ビット構成である。また説明においてデフォルト値とは、利用者により特に値が指定されていない場合にセットされるべき値であり、たとえばブレークコンディションをセットするためにプログラムにより、ブレークコンディション設定時に与えられる。１６進数で表記し、４桁毎に“＿”で区切って表す。またアクセスモードは、当該レジスタが読み出し可能であればＲ、書き込み可能であればＷと表示している。両方可能ならＲ／Ｗである。またレジスタにおいてＭＳＢを３１（ビット）、ＬＳＢを０（ビット）と表す。
【００５０】
（コントロール系レジスタ）
（１）DBG_Control（デバッグコントロールレジスタ）
・デフォルト値：0x0000_0000、
・アクセスモード：R/W、
・31ビット：Debug Mode Enable（デバッグモード。０：デバッグモードオフを示し、トランザクションの検出は行わない（少なくとも検出時の割込み信号は発生しない。）１：デバッグモードオンを示し、ブレークコンディションに従ってトランザクションが検出される。）
・30ビット：Parallel/Sequential（シーケンシャルモード。０：パラレルモードを示し、トランザクション検出装置Ａ、Ｂのいずれかでブレークコンディションが満足されれば検出割り込みが発生する。１: シーケンシャルモードを示し、トランザクション検出装置Ａでブレークコンディションが満足されたのちにトランザクション検出装置Ｂでブレークコンディションが満足されれば検出割り込みが発生する。）
・29-0ビット：未使用
（２）DBG_Slave_Sel（スレーブセレクトレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R/W
・31-28ビット：Master Select（マスタセレクト。０：スレーブＡを選択。１：スレーブＢを選択。）
・27-0：未使用
（３）DBG_Report_Sel（レポートセレクトレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R/W
・31ビット：NMI/Int Select（割り込みセレクト。１：トランザクション検出をNMIで出力する。０：通常の割り込みで出力する。）
・30ビット：SRT/HRT Select（ＮＭＩ選択時に、１：SRT、０：ＨＲＴを選択する。）
・29-0ビット：未使用
（４）DBG_Ctl_sig_mask_1（デバッグコントロールマスクレジスタ）
・デフォルト値：0x000F_0000
・アクセスモード：R/W
・31ビット：Rd access enable（リードアクセスイネーブル。１：リードトランザクションを検出する。０：しない。）
・30ビット：Wr access enable（ライトアクセスイネーブル。１：ライトトランザクションを検出する。０：しない。）
・29-20：未使用
・19-16：DataLaneCmpEn（データレーンコンペアイネーブル。４レーン（各３２ビット）のデータのうち、トランザクションの検出対象とするレーンを示す。各レーンに対応したビットについて、１：対象とする。０：しない。）
・15-4ビット：未使用
・3-0ビット：ByteEnMask（バイトイネーブルマスク。各データレーン（３２ビット）について、制御バスに含まれるバイトイネーブル信号（バイト（８ビット）単位でデータの有効性を示す。）のうち、テストされるバイトイネーブル信号を示す。各ビットについて、０：当該ビットに対応するバイトイネーブル信号を値“１”と比較する。１：対応するバイトイネーブル信号はすべて“１”であるとみなす）。
【００５１】
本実施形態では、これらレジスタのうち、デバッグコントロールマスクレジスタはトランザクション検出装置Ａ，Ｂそれぞれに備えられている。その他のレジスタはトランザクション検出装置Ｂに備えられている。したがって本実施形態では、コントロール系レジスタ１０２に含まれているのはデバッグコントロールマスクレジスタだけとなっている。
【００５２】
（アドレス系レジスタ）
（１）DBG_Addr_1_bottom（ボトムアドレスレジスタ）
・デフォルト値：0x7FFF_FFFF
・アクセスモード：R/W
・31-4ビット：Bottom of physical address for break 1（ブレークコンディションとなるアドレス範囲の下限値を示す。この値以上のアドレスが条件に合致する。）
・3-0ビット：未使用
（２） DBG_Addr_1_top（トップアドレスレジスタ）
・デフォルト値：0x7FFF_FFFF
・アクセスモード：R/W
・31-4ビット：Top of physical address for break 1 （ブレークコンディションとなるアドレス範囲の上限値を示す。この値以下のアドレスが条件に合致する。）
・3-0ビット：未使用。
【００５３】
（マスタＩＤ系レジスタ）
（１）DBG_MID_Pattern_1（マスタＩＤパターンレジスタ）
・デフォルト値： 0x0000_0000
・アクセスモード：W/R
・31-4ビット：未使用
・3-0ビット：MID pattern for break1（ブレークコンディションとなるマスタＩＤを示す。ただし、後述のマスタＩＤマスクレジスタで与えられる値でマスクされる。マスクされたビットは一致しているものと判定される。）
（２）DBG_MID_Mask_1（マスタＩＤマスクレジスタ）
・デフォルト値：0x0000_000F
・アクセスモード：W/R
・31-4ビット：未使用
・3-0ビット：MID mask for break1（ ブレークコンディションとなるマスタＩＤに適用されるマスクを示す）。
【００５４】
（データ系レジスタ）
（１）DBG_ WrD_Pattern_1（ライトデータパターンレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R/W
・31-0ビット：WrD_Pattern_1（ブレークコンディションとなる書き込みデータを示す。ただし、後述のライトデータマスクレジスタで与えられる値でマスクされる。マスクされたビットは一致しているものと判定される。）
（２）DBG_WrD_Mask_1（ライトデータマスクレジスタ）
・デフォルト値：0xFFFF_FFFF
・アクセスモード：R/W
・31-0ビット：WrD_Mask_1（ブレークコンディションとなる書き込みデータに適用されるマスクを示す）。
【００５５】
以上のレジスタがデバッグモジュールには備えられている。このうち、デバッグコントロールレジスタ、スレーブセレクトレジスタおよびレポートセレクトレジスタを除いては、トランザクション検出装置Ａに含まれており、同じものがトランザクション検出装置Ｂにも備えられている（トランザクション検出装置Ｂについてはレジスタ名の“１”が“２”と変わる）。そしてステータス系レジスタとしては以下のものがある。スレーブセレクトレジスタはセレクタに属する。デバッグコントロールレジスタおよびレポートセレクトレジスタは、本実施形態ではトランザクション検出装置Ｂのみに属する。いずれにも属さないように構成することもできる。
【００５６】
なおライトデータの比較を行なう場合には、Write access enableビットをセットする必要がある。以下に各データレーンに対応するビットを示す表を掲げる。この表では、たとえばデータレーン３は、データの１２７ビット〜９６ビットまでを含み、そのデータレーンには、データレーンコンペアイネーブルの最上位ビット（ビット３）、ライトパターンレジスタの全ビット、ライトマスクレジスタの全ビット、バイトイネーブルマスクの全ビットが対応していることが分かる。
【００５７】
データレーン   ３        ２       １       ０
Write Data     [127:96]  [95:64]  [63:32]  [31:0]
DataLaneCmpEn  [3]       [2]      [1]      [0]
WrD_Pattern    [31:0]    [31:0]   [31:0]   [31:0]
WrD_Mask       [31:0]    [31:0]   [31:0]   [31:0]
ByteEnMask     [3:0]     [3:0]    [3:0]    [3:0]。
【００５８】
（ステータス系レジスタ）
（１）DBG_status（デバッグステータスレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R/W
・31ビット：Debug reg Set 1 NMI/Int（デバッグ設定１。シーケンシャルモードにおいて、第１の条件（トランザクション検出装置Ａにおけるブレークコンディション）が満足された場合にセットされる。）
・30ビット：Debug reg Set 2 NMI/Int（デバッグ設定２。シーケンシャルモードにおいて、第２の条件（トランザクション検出装置Ｂにおけるブレークコンディション）が満足された場合にセットされる。）
・29-0：未使用
（２）DBG_Triggerd_Addr_1（トリガアドレスレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-3：DBG register 1 triggerd address（トランザクション検出装置Ａで条件にブレーク合致するトランザクションが検出された場合のアドレス値）
・2-0：未使用
（３）DBG_Triggerd_MID_1（トリガマスタＩＤレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-4ビット：未使用
・3-0ビット：Triggered MID（トランザクション検出装置Ａで条件にブレーク合致するトランザクションが検出された場合のマスタＩＤ）
（４）DBG_Triggerd_Data_1_Hi（トリガデータ最上位レジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-0：DBG register 1 triggerd Data Higher 32bit（トランザクション検出装置Ａでブレーク条件に合致するトランザクションが検出された場合のデータのうち最上位３２ビット）
（５）DBG_Triggerd_Data_1_Mid_Hi（トリガデータ中上位レジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-0：DBG register 1 triggerd Data Middle Higher 32bit（トランザクション検出装置Ａでブレーク条件に合致するトランザクションが検出された場合のデータのうち最上位３２ビットに続く３２ビット）
（６）DBG_Triggerd_Data_1_Mid_Lo（トリガデータ中下位レジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-0：DBG register 1 triggerd Data Middle Lower 32bit（トランザクション検出装置Ａでブレーク条件に合致するトランザクションが検出された場合のデータのうち最下位３２ビットの上位３２ビット）
（７）DBG_Triggerd_Data_1_Lo（トリガデータ最下位レジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31-0：DBG register 1 triggerd Data Lower 32bit（トランザクション検出装置Ａでブレーク条件に合致するトランザクションが検出された場合のデータのうち最下位３２ビット）
（８）DBG_Triggerd_Control_1（トリガコントロールレジスタ）
・デフォルト値：0x0000_0000
・アクセスモード：R
・31：Rd/Wr（補足された（ブレーク条件に合致した）トランザクションは、１：Read、０：Write）
・30-16：未使用
・15-0：Byte Enable（各ビットについて、１：対応するバイトレーンはアクティブ。０：アクティブではない。）
これらレジスタは、デバッグステータスレジスタを除いて、トランザクション検出装置Ｂにも備えられている。デバッグステータスレジスタは両トランザクション検出装置で共用されており、本実施形態ではトランザクション検出装置Ｂに備えられている。
【００５９】
さて、図１０について続きを説明する。アドレス比較器１００４は、アドレスバスの値をトップアドレスレジスタおよびボトムアドレスレジスタの値と比較し、アドレスバスの値がトップアドレスレジスタ値以下、かつボトムアドレスレジスタ値以上であれば、一致信号を出力する。
【００６０】
データ比較器１００７は、デバッグコントロールマスクレジスタの設定がライトアクセスイネーブルとセットされた場合とリードアクセスイネーブルとセットされた場合とで振るまいが異なる。ライトアクセスイネーブルならは、制御バスのリード／ライト信号が「ライト」であることを条件として、以下の動作を行う。データバスの４つのデータレーンのうち、デバッグコントロールマスクレジスタでイネーブルとされたデータレーンについて、ライトデータマスクレジスタでマスクされていないビットを、ライトデータパターンレジスタの値と比較する。イネーブルとされているレーンのうち、ひとつのレーンについて値が一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
【００６１】
一方リードアクセスイネーブルではデータの比較は行わず、制御バスのリード／ライト信号が「リード」すなわちリードトランザクションであれば一致信号が出力される。なおデータ比較器ではデータの比較のみ行い、リード／ライトモードについては別途判定器を設けて、その判定結果を合成しても良い。
【００６２】
マスタＩＤ比較器１０１０は、制御バスのマスタＩＤ信号について、マスタＩＤマスクレジスタでマスクされていないビットを、マスタＩＤパターンレジスタの値と比較する。値が一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
【００６３】
バイトイネーブル比較器１０１４は、バイトコントロールマスクレジスタのバイトイネーブルマスクレジスタの値に応じて、マスクされていない制御バス上のバイトイネーブル信号の値を“１”（イネーブル相当値）と比較し、一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
【００６４】
検出器１０１３は、全比較器から一致信号が入力されたなら、言い換えれば入力一致信号がすべて「一致」を示しているならば、検出信号を出力する。トランザクション検出装置Ａから出力された検出信号は、トランザクション検出装置Ｂに入力される。また検出信号が出力されると、そのときのアドレス値、データ値、マスタＩＤがそれぞれトリガアドレスレジスタ、トリガデータレジスタ（最上位〜最下位）、トリガマスタＩＤレジスタに保持される。また、そのときのトランザクションモード（リード／ライトの別）、バイトイネーブル信号の値も、トリガコントロールレジスタに保持される。
【００６５】
図１１にトランザクション検出装置Ｂ１０４の構成を示す。検出部１００１’は、図１０に示したトランザクション検出装置Ａと同様の構成を有する。割り込み生成部１１０４には、トランザクション検出装置Ａ１０３からの検出信号と、検出部１００１’からの検出信号と、コントロール系レジスタのうち、両トランザクション検出装置で共用される共用コントロールレジスタ１１０２の値が入力される。共用コントロールレジスタ１１０２には、デバッグコントロールレジスタとレポートセレクトレジスタとが含まれる。
【００６６】
割込み生成部１１０３は、デバッグコントロールレジスタの「デバッグモード」がオフであれば割り込み信号を出力することはない。オンであれば、デバッグコントロールレジスタの「シーケンシャルモード」に応じて動作が変わる。シーケンシャルモードでなければ、すなわちパラレルモードであれば、トランザクション検出装置Ａ１０３からの検出信号か、あるいは検出部１００１’からの検出信号のいずれかが入力されていれば（オンであれば）、割込み信号を生成して出力する。一方シーケンシャルモードであれば、トランザクション検出装置Ａからの検出信号が入力された場合にはデバッグステータスレジスタのデバッグ設定１をセットし、デバッグ設定１がセットされており、かつ検出部１００１’からの検出信号が入力された場合にはデバッグステータスレジスタのデバッグ設定２をセットする。それとともに、割込み信号を生成する。ここで生成され、出力される割込み信号は、レポートセレクトレジスタの「割込みセレクト」の値が「ＮＭＩ」であれはノンマスカブル割り込み信号であり、「ＩＮＴ」であれば通常の割り込み信号となる。
【００６７】
以上のような構成で、設定したブレークコンディション（トランザクション情報）が満足された場合には、割込み信号が発生される。ブレークコンディションとしては、アドレスの範囲や、書き込まれるデータの値（ビット毎に桁指定可）、イネーブル指定されたバイトレーンの位置、バスを使用しているマスタＩＤなどが指定できる。そして、割り込みによってデバッグ対象のプログラムの実行を停止した状態で、所望の処理を実行させることができる。
【００６８】
＜ブレーク機能＞
さて、図１０や図１１に示したデバッグモジュールを用いて、ブレークコンディションを組み合わせることでより複雑な条件を設定することもできる。図１のデバッグモジュール１０１を用いて実現出来る代表的な機能として次のものがある。ただしデバッグモードはすべてセットしておく必要がある。また、上記レジスタの説明でデフォルト値とした値をセットする場合には、その説明を省略した。なお、アドレスはTopとBottomによる領域指定が可能で、データにはマスクパターンが設定できる。
（１）Address region break（アドレス領域ブレーク） 1：トランザクション検出装置Ａについて、トップアドレスレジスタ及びボトムアドレスレジスタに所望とする範囲をセットし、データマスクレジスタに全１（0xFFFF_FFFF）、マスタＩＤレジスタに全１、デバッグコントロールマスクレジスタに0xC00F_000Fをセットする。
（２）Address region break 2：トランザクション検出装置Ｂについて同上。
（３）Master ID break（マスタＩＤブレーク）1：トランザクション検出装置Ａについて、トップアドレスレジスタ及びボトムアドレスレジスタに必ず合致する値をセットし、データマスクレジスタに全１（0xFFFF_FFFF）、マスタＩＤマスクレジスタにはテストしたいビットを０とした値を、マスタＩＤパターンレジスタには所望とするマスタＩＤの値を、デバッグコントロールマスクレジスタには0xC00F_000Fをセットする。
（４）Master ID break 2：トランザクション検出装置Ｂについて同上。
（５）Write Data pattern break（書き込みデータパターンブレーク） 1：トランザクション検出装置Ａについて、トップアドレスレジスタ及びボトムアドレスレジスタに必ず合致する値をセットし、データマスクレジスタには所望とするマスク値を、データパターンレジスタには所望とする値を、マスタＩＤマスクレジスタには全１をセットする。また、デバッグコントロールマスクレジスタについては、ライトアクセスイネーブルビットと、所望のデータレーンに対応するデータレーンコンペアイネーブルビットとをセットする。必要に応じてバイトイネーブルマスクをセットすることもできる。
（６）Write Data pattern break 2：トランザクション検出装置Ｂについて同上。
（７）Address + Write Data 1：：トランザクション検出装置Ａについて、上記アドレス領域ブレークと、書き込みデータパターンブレークとの組み合わせ。
（８）Address + Write Data 2：トランザクション検出装置Ｂについて同上。
（９）Address 1 → Address 2：トランザクション検出装置Ａ、Ｂそれぞれについてアドレス領域ブレークの設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
（１０）Write Data 1 → Write Data 2：トランザクション検出装置Ａ、Ｂそれぞれについてデータパターンブレークの設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
（１１）Address + Write Data 1 → Address + Write Data 2：トランザクション検出装置Ａ、Ｂそれぞれについてアドレス領域ブレークとデータパターンブレークを組み合わせた設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
【００６９】
また、以下の制限事項がある。
(1)リードデータパターンによるブレークは出来ない（リードはアドレスのみ）。
(2)アドレス指定は、128ビット（16バイト）単位。
(3)キャッシュON時は、キャッシュの設定により、プログラムでアクセスを発行してもブレークがかからない可能性がある。また、キャッシュライン単位のブレーク設定になる（32バイト）。
例えば、コピーバックモードの場合には、ライトがバスに出現しないためブレークは不可能。リードもキャッシュヒットする場合はブレークしない。
(4)物理アドレスによるブレークとなる。仮想アドレスではブレークはかからない。
(5)トランザクションの検出から、割り込み発行までは、数サイクルのディレイが発生する。
【００７０】
さて、ここで本実施形態に特徴的なブレークコンディションを説明する。なお上述した代表的なブレーク機能と重複するものもあるが、あらためて述べる。
【００７１】
（１．Address Only）
第１はアドレス監視モードである。DBG Data Pattern Mask 1/2レジスタに0XFFFF_FFFF_FFFF_FFFFを設定し、DBG Address top 1/2に上限（より大きい値）, DBG Address bottom 1/2レジスタに下限（より小さい）アドレスを設定する。そしてこれらレジスタに設定された範囲内のアドレスへのアクセスを検出して割り込みを発生する。上限＜下限の設定をした場合の動作は保証しない（もちろん上限と下限の大小関係は定義により変わることもあり得る。）ブレークコンディションとして、リード、ライト、発行CPU、バイトイネーブルパターン等の選択が可能である。トランザクション検出装置（１０３，１０４）にはスレーブバスからのアドレス信号と、設定されたレジスタのアドレス情報を比較する装置が含まれている。スレーブバスからのアドレスがレジスタのTopとBottomの間に入っていた場合、アドレスがヒットしたことになる。
【００７２】
（２．Write Data Pattern Only）
トランザクション検出装置（１０３，１０４）には、スレーブバスからのライトデータ信号と設定されたレジスタのライトデータ情報とを比較する装置（データ比較器１００７）が含まれている。DBG Data Pattern 1/2（１または２を1/2と表記する。）レジスタに書き込みが発生する可能性のあるパターンを設定し、比較が必要なビットを位置に該当するDBG Data Pattern Mask 1/2レジスタのビットを０に設定し、 DBG Address top 1/2, DBG Address bottom 1/2を全空間に設定することにより、トランザクション検出装置は書き込みデータのパターンマッチングによる割り込みを発生する。ここでは１サイクル毎に１２８ビットのデータの比較を行なう。ライトデータ／データマスク／バイトイネーブルマスクの指定は３２ビットデータでしか設定できないので、１２８ビットを構成する４つの３２ビットデータレーンのすべてに同一のデータパターンが使用される。また、２ビートのバーストライト時には、１ビート目と２ビート目の両方が比較対象となる。１２８ビットのビート内で、どのデータレーンを比較するかはDataLaneCmpEn[3:0]で指定する。なおＸ［m:n］は、信号（あるいはレジスタ）Ｘにおける第ｍビットから第ｎビットまでの（ｍ−ｎ＋１）ビットを表す。２ビートバーストライト時は、監視対象のデータレーンは両方のビートで同一のデータレーン設定になる。DataLaneCmpEn[3:0]で複数のデータレーンを有効にした場合、どれかひとつのレーンでヒットすると、全体としてヒットしたとみなされる。ライトデータコンペアを無効にするには、データレーンをすべてディセーブルするか、あるいは、すべてのデータをマスクする。ライトデータについては、ライトバイトイネーブルがイネーブルとなっているデータのみが比較対象となる。
【００７３】
（３．Write Byte Enable Compare）
トランザクション検出装置（１０３，１０４）にはスレーブバスからのバイトイネーブル信号と、設定されたレジスタのバイトイネーブル情報を比較する装置（バイトイネーブル比較器１０１４）が含まれている。３２ビットデータレーンの中で、どのバイトイネーブルが立っているかの比較を行なう。ライトバイトイネーブルマスクとデータレーンイネーブルとの組み合わせにより、任意のバイトに対して比較を行なうことができる。バーストライトの場合はすべてのバイトイネーブルが立っているはずなので意味はない。複数のデータレーンを有効にした場合、どれかひとつのレーンでヒットすると、全体としてヒットしたとみなされる。すべての３２ビットデータレーンのすべてに同一のマスクパターンが使用される。バイトイネーブルコンペアを無効にするには、データレーンをすべてディセーブルするか、あるいはすべてのバイトイネーブルをマスクする。
【００７４】
（４．Read or Write Acecss）
トランザクション検出装置（１０３，１０４）にはスレーブバスからのライトリード識別信号と、設定されたレジスタのライトリード識別情報を比較する装置（本実施形態ではデータ比較器１００７に含むものとした。）が含まれている。ライトアクセスでトリガをかけたい場合、Write access enableビットをセットする。リードアクセスでトリガをかけたい場合、Read access enableビットをセットする。Read access enableビットをセットした場合、ライトデータパターンコンペアは無効にする必要がある。
【００７５】
（５．Master ID Compare）
トランザクション検出装置（１０３，１０４）にはスレーブバスからのマスタID信号と、設定されたレジスタのマスタID情報を比較する装置（マスタＩＤ比較器１０１０）が含まれている。MID Patternレジスタに、トリガをかけるマスタIDをセットし、MID Maskレジスタにマスクをセットすることができる。マスタIDコンペアを無効にするにはMID Maskレジスタをすべてマスクする。
【００７６】
（６．Address＋ Write Data Pattern ）
アドレスとライトデータを組み合わせることにより、特定のアドレスへの特定のデータライトが検出できる。
【００７７】
（７．Parallel mode & Sequential mode）
上記1/2の二組のレジスタ群は、独立して、どちらかの条件が満たされた場合に割り込みを発生するParallelモード、第１の条件が満たされてから、第２の条件の満足を待つSequentialモードの２通りのモードを持つ。
【００７８】
（８．その他）
２組のレジスタは、上記以外の方法でも、工夫により、各種条件により、割り込み発生を行うことが出来る。デバッグ対象のマスタを変更する際には、デバッグモジュールの機能を停止させておくことが必要である。
【００７９】
上記デバッグレジスタのいずれかがヒットした場合、割り込み信号がアサートされる。アサート条件は、シリアルモード時には条件1→条件２であり、パラレルモード時には条件１または条件２である。クリア条件は、デバッグステータスの何れかのビットをクリアしたことである。
【００８０】
なお、本実施形態では、２つのスレーブバスからひとつを選択してモニタする例を示したが、当然３つ以上のスレーブバスから選択することも考えられる。
【００８１】
このように、本実施形態によれば、複数のバスマスタがバスを共有するシステムにおいて、共有されるバスをプログラム実行中に監視して、所望の条件が満足された場合に当該プログラムに対して割り込みを発生させることができる。さらに、割り込み発生の条件として、共有されるバスを使用しているマスタを特定することができる。たとえば、クロスバスイッチなどのバスブリッジを用いたシステムにおいて、ひとつのCPUだけでなく、他のCPUやDMACなどが、同一のRAMなどをアクセスする場合がある。また、監視したい対象はRAMだけではなく、ROM、さらにはシステムに存在する様々なレジスタ、IOポートなどにも及ぶ場合もある。その様な場合に、ひとつのCPUだけではなく、その他のCPUや、DMACなどのマスタモジュールから発行されるトランザクションを監視し、さらには、トランザクションの対象となるスレーブもRAMだけではなく、他のスレーブモジュールについてのトランザクションについても監視することができる。
【図面の簡単な説明】
【００８２】
【図１】指定信号線の指定アドレスをトラップするための回路のブロック図である。
【図２Ａ】デジタル複合機を説明する図である。
【図２Ｂ】デジタル複合機を説明する図である。
【図３】デジタル複合機を含むネットワークシステム全体の構成図である。
【図４】コントローラ２０００において用いられるデータパケットについて説明する図である。
【図５】コントローラ２０００において用いられるパケットテーブルについて説明する図である。
【図６】コントローラ２０００において用いられるコマンドパケットについて説明する図である。
【図７】コントローラ２０００において用いられるインタラプトパケットについて説明する図である。
【図８】デジタル複合機においてコピージョブの指示を行った場合のスキャン動作について説明する図である。
【図９】デジタル複合機においてコピージョブの指示を行った場合のプリント動作について説明する図である。
【図１０】本実施形態のトランザクション検出装置Ａの構成を示すブロック図である。
【図１１】本実施形態のトランザクション検出装置Ｂの構成を示すブロック図である。
【符号の説明】
【００８３】
２０００  コントローラ
２００１  ＣＰＵ
２００８  画像リング
２０７０  スキャナ
２０９５  プリンタ
２１０１  画像リングインターフェース３
２１０２  画像リングインターフェース４
２１４７  画像リングインターフェース１
２１４８  画像リングインターフェース２
２１４９  画像処理部１
２１５０  システム制御部
２１５１  画像処理部２
２１５２  画像処理部３
２１０３  タイル伸張部
２１０６  タイル圧縮部
【図１】
2006113906.tif 000003
【図２Ａ】
2006113906.tif 000004
【図２Ｂ】
2006113906.tif 000005
【図３】
2006113906.tif 000006
【図４】
2006113906.tif 000007
【図５】
2006113906.tif 000008
【図６】
2006113906.tif 000009
【図７】
2006113906.tif 000010
【図８】
2006113906.tif 000011
【図９】
2006113906.tif 000012
【図１０】
2006113906.tif 000013
【図１１】
2006113906.tif 000014