JP2006113906A - バス監視装置及びバス監視装置付きコントローラ - Google Patents

バス監視装置及びバス監視装置付きコントローラ Download PDF

Info

Publication number
JP2006113906A
JP2006113906A JP2004302067A JP2004302067A JP2006113906A JP 2006113906 A JP2006113906 A JP 2006113906A JP 2004302067 A JP2004302067 A JP 2004302067A JP 2004302067 A JP2004302067 A JP 2004302067A JP 2006113906 A JP2006113906 A JP 2006113906A
Authority
JP
Japan
Prior art keywords
bus
master
condition
data
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004302067A
Other languages
English (en)
Inventor
Takashi Fujiwara
隆史 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004302067A priority Critical patent/JP2006113906A/ja
Publication of JP2006113906A publication Critical patent/JP2006113906A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】バススイッチを備えたシステムにおいて、CPU以外のバスマスタが関与するトランザクションについても監視する。
【解決手段】コントローラ2000に内蔵されたシステムバスブリッジ2007には、バススイッチ100とデバッグモジュール101とが含まれている。デバッグモジュール101には、監視対象のスレーブバスを選択するセレクタ102と、アドレス範囲やデータ値、マスタID値等を設定可能なレジスタをそれぞれ持つトランザクション検出装置A,Bが備えられている。各トランザクション検出装置は、設定された条件に一致するトランザクション、たとえば設定されたマスタIDから要求されたトランザクションを検出して、割り込みを発生する。
【選択図】図1

Description

本発明は、たとえば電子制御システムのバスの監視の方法に関し、特に、デジタル複写機能を備える画像入出力装置におけるバスを監視するバス監視装置及びそれを備えたコントローラに関する。
従来、ICE(インサーキットエミュレータ)などを使ってCPU内蔵のLSIのデバッグを行なう際、対象となるCPUが発行したトランザクションを監視する機能がよく利用されてきた。この機能は、監視対象のCPUが発行したトランザクション(たとえばメモリやIOに対するリードやライト)のみを監視するものであった。監視のためには一定の条件をレジスタ等に設定し、その条件と一致するアドレスやデータ、トランザクションモード(リード/ライト)のトランザクションが検出されると割込を発生する。そしてその一方、たとえば実行された処理の履歴を循環的に保存しておくことで、割り込み直前の処理をトレース可能とすることができ、デバッグを容易化することが可能となっている。
このようなデバッグツールとして、従来の単体型CPUでは外付けのICEを利用できたが、CPUを部品として組み込んだシステムLSIなどでは必ずしも利用できないことから、LSI自体にデバッグツールを内蔵しておくものもある(特許文献1等参照)。上述のようにこのタイプのデバッガでも、CPU発行のトランザクションを監視するものであった。
特開2003−173362号公報
これに対してクロスバスイッチなどのバスブリッジを用いたシステムにおいては、ひとつのCPUだけでなく、他のCPUやDMACなどが、同一のRAMなどをアクセスすることが多い。このため従来のICEを使ったデバッグでは、RAMに対してのCPU以外からのトランザクションについては、監視することができなかった。また、監視したい対象はRAMだけではなく、ROM、さらにはシステムに存在する様々なレジスタ、IOポートなどにも及ぶ。
本発明は上記従来例に鑑みてなされたもので、CPUだけではなく、その他のCPUや、DMACなどのマスタモジュールから発行されるトランザクションを監視し、さらには、トランザクションの対象となるスレーブもRAMだけではなく、他のスレーブモジュールについてのトランザクションについても監視することができるバス監視装置およびそれを備えたコントローラを提供することを目的とする。
上記目的を達成するために、本発明は以下の構成を備える。
複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定手段と、
前記各種信号の値が、前記条件に合致することを検出する検出手段と、
前記検出手段により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生手段とを備える。
さらに好ましくは、前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタIDが含まれ、前記設定手段は、前記条件としてマスタIDを設定でき、前記検出手段は、前記条件としてマスタIDが設定されている場合には、前記スレーブバス上のマスタIDの値が、前記条件に合致することを検出する。
あるいは、本発明は以下の構成を備えるバス監視装置付きコントローラにある。
複数のスレーブバスと、
プロセッサを含む複数のバスマスタがそれぞれ接続された複数のマスタバスと、
前記複数のスレーブバスと前記複数のマスタバスとを、1対1で切り換え可能に接続するバススイッチと、
請求項1乃至8のいずれか1項に記載のバス監視装置とを備え、
前記バス監視装置の前記割込み信号発生手段により発生された割り込み信号を前記プロセッサの割込信号として入力し、前記プロセッサは、割り込み信号が入力された場合には、前記スレーブバスに接続されたメモリにあらかじめ格納した所定のプログラムを実行することを特徴とする。
本発明によれば、複数のバスマスタがバスを共有するシステムにおいて、共有されるバスをプログラム実行中に監視して、所望の条件が満足された場合に割り込み信号を発生させることができる。さらに、割り込み発生の条件として、共有されるバスを使用している特定のマスタのマスタIDを設定することができる。このために、共有バスを監視している場合でも、それをどのバスマスタが使用しているかを指定して割込を発生させられる。それにより、単にアクセスされるアドレスや、書き込まれるデータに限らず、それらアドレスおよびデータに関するアクセスを発生するバスマスタをも特定でき、より割込発生の条件を絞り込むことが可能となる。
(第1の実施形態)
以下、図面を参照して本発明の実施の形態を説明する。第1の実施の形態におけるデジタル複合機を図2に示す。2000は、本発明の画像入出力制御装置及び画像処理装置を適用可能なコントローラ(Controller Unit)である。ここで、2150はデジタル複合機全体を制御するシステム制御部である。2149及び2151は入力した画像データに対して所定の画像処理を行う画像処理部であり、その詳細については後述する。2008は画像リングであり、システム処理部2150と画像処理部2149、及び画像処理部2151をリング状に接続する。
2012は各種設定や動作指示操作を行うための操作部である。2002はRAMであり、2003はROMである。2143は汎用PCIバスであり、2004は外部記憶装置、2144は、ディスクコントローラである。2050は、公衆回線と接続するためのモデム、2146はPHY/PMDであり、LAN2011と接続しており、デジタル複合機はモデム2050及びPHY/PMDを介して外部機器と通信可能である。画像処理部1(2149)には、プリンタ2095、スキャナ2070、画像メモリ1及び2(2123)が接続されている。
ここで、ハードウェアとしての観点から見た、コントローラ2000の構成について説明する。従来から、デジタル複写機等画像入出力装置におけるコントローラは、システムLSIとして半導体基板上に構成されている。特に近年、本実施の形態に対応させると、システム制御部2150及び画像処理部1(2149)及び画像処理部2(2151)等の機能を実現するための回路を、1つの半導体基板上に構成したコントローラが提案されている。
次に、システム制御部2150及び画像処理部1(2149)の内部構成を説明する。コントローラ2000は、画像入力デバイスであるスキャナ2070や画像出力デバイスであるプリンタ2095と接続し、一方ではLAN2011や公衆回線WAN2051と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う為のコントローラである。CPU2001はシステム全体を制御するプロセッサである。本実施の形態では2つのCPUを用いた例を示す。これら二つのCPUは、共通のCPUバス2126に接続され、さらに、システムバスブリッジ2007に接続される。
システムバスブリッジ2007は、バススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、IOバス1(2127)、IOバス2(2129)、画像リングインターフェース1(2147)、画像リングインターフェース2(2148)が接続される。RAM2002は、CPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。RAM2002は、RAMコントローラ2124により制御される。ROM2003はブートROMであり、システムのブートプログラムが格納されている。ROMコントローラ2125により制御される。
IOバス1(2127)は、内部IOバスの一種であり、標準バスであるUSBバスのコントローラ、USBインターフェース2138、汎用シリアルポート2139、インタラプトコントローラ2140、GPIOインターフェース2141が接続される。IOバス1(2127)には、バスアービタ(図示せず)が含まれる。
操作部I/F2006は操作部UI2012とのインターフェース部で、操作部2016に表示する画像データを操作部2012に対して出力する。また、操作部2012から本システム使用者が入力した情報を、CPU2001に伝える役割をする。
IOバス2(2129)は内部IOバスの一種であり、汎用バスインターフェース1及び2(2142)と、LANコントローラ2010が接続される。IOバス2(2142)にはバスアービタ(図示せず)が含まれる。汎用バスインターフェース1と2(2142)は、2つの同一のバスインターフェースから成り、標準IOバスをサポートするバスブリッジである。本実施の形態では、PCIバス(2143)を採用した例を示した。HDD2004はハードディスクドライブで、システムソフトウェア、画像データを格納する。ディスクコントローラ2144を介して一方のPCIバス2143に接続される。LANコントローラ2010は、MAC回路2145、PHY/PMD回路2146を介しLAN2011に接続し、情報の入出力を行う。Modem2050は公衆回線2051に接続し、情報の入出力を行う。
パケット転送手段である画像リングインターフェース1(2147)及び画像リングインターフェース2(2148)は、システムバスブリッジ2007と画像データを高速で転送する画像リング2008を接続し、タイル化されたデータをRAM2002と画像処理部2149間で転送するDMAコントローラである。同じくパケット転送手段である画像リング2008は、一連の単方向接続経路の組み合わせにより構成される。画像リング2008は、画像処理部1(2149)内で、画像リングインターフェース3(2101)、及び画像リングインターフェース4(2102)を介し、コマンド処理部2104、ステータス処理部2105、タイルバス2127に接続される。
コマンド処理部2104は、画像リングインターフェースへの接続に加え、レジスタ設定バス2109に接続され、画像リングを介して入力したCPU2001より発行されたレジスタ設定要求を、レジスタ設定バス2109に接続される該当ブロックへ書き込む。また、CPU2001より発行されたレジスタ読み出し要求に基づき、レジスタ設定バスを介して該当レジスタより情報を読み出し、画像リングインターフェース4(2102)に転送する。ステータス処理部2105は各画像処理部の情報を監視し、CPU2001に対してインタラプトを発行するためのインタラプトバケットを生成し、画像リングインターフェース4(2102)に出力する。タイルバス2107には上記ブロックに加え、画像入力インターフェース2112、画像出力インターフェース2113、複数の矩形画像処理部2116〜2119、2030等の機能ブロックが接続される。本実施の形態では、矩形画像処理部として、多値化部2119、2値化部2118、色空間変換部2117、画像回転部2030、解像度変換部2116を実装している。
画像処理部1(2149)内の、画像入力インターフェース2112は、後述するスキャナ2170により補正画像処理されたラスタイメージデータを入力とし、レジスタ設定バスを介して設定された、所定の方法により矩形データへの構造変換とクロックの同期化を行い、タイルバス2107に対し出力を行う。画像処理部1(2149)内の画像出力インターフェース(2113)は、タイルバス2107からの矩形データを入力とし、ラスター画像への構造変換及び、クロックレートの変更を行い、ラスター画像をプリンタ2095へ出力する。
画像回転部2030は画像データの回転を行う。解像度変換部2116は画像の解像度の変更を行う。色空間変換部2117はカラー及びグレースケール画像の色空間の変換を行う。2値化部2118は、多値カラー、グレースケール画像を2値化する。多値化部2119は2値画像を多値データへ変換する。
メモリ制御部2122は、メモリバス2108に接続され、各画像処理部の要求に従い、あらかじめ設定されたアドレス分割により、画像メモリ1及び画像メモリ2(2123)に対して、画像データの書き込み、読み出し、必要に応じてリフレッシュ等の動作を行う。本実施の形態では、画像メモリにSDRAMを用いるものとする。
次に、本実施の形態におけるデジタル複合機を含むネットワークシステム全体の構成図を図3に示す。1001は上述した本実施の形態におけるデジタル複合機であり、本発明の画像出力制御装置及び画像処理装置を適用可能なコントローラにより制御されている。デジタル複合機1001は、スキャナとプリンタから構成され、スキャナから読み込んだ画像をローカルエリアネットワーク1010(以下LAN)に流したり、LANから受信した画像をプリンタによりプリントアウトできる。また、スキャナから読んだ画像を図示しないFAX送信手段により、PSTNまたはISDN1030に送信したり、PSTNまたはISDNから受信した画像をプリンタによりプリントアウトできる。1002は、データベースサーバで、デジタル複合機1001により読み込んだ2値画像及び多値画像をデータベースとして管理する。
1003は、データベースサーバ1002のデータベースクライアントで、データベース1002に保存されている画像データの閲覧/検索等ができる。1004は、電子メールサーバで、デジタル複合機1001により読み取った画像を電子メールの添付として受け取ることができる。1005は、電子メールのクライアントで、電子メールサーバ1004の受け取ったメールを受信し閲覧したり、電子メールを送信したりすることが可能である。1006がHTML文書をLANに提供するWWWサーバで、デジタル複合機1001によりWWWサーバで提供されるHTML文書をプリントアウトできる。1011は、ルータでLAN1010をインターネット/イントラネット1012と連結する。インターネット/イントラネットに、前述したデータベースサーバ1002、WWWサーバ1006、電子メールサーバ1004、デジタル複合機1001と同様の装置が、それぞれ1020,1021,1022,1023として連結している。一方、デジタル複合機1001は、PSTNまたはISDN1030を介して、FAX装置1031と送受信可能になっている。また、LAN上にプリンタ1040も連結されており、デジタル複合機1001により読み取った画像をプリントアウト可能なように構成されている。
次に、本発明の画像入出力制御装置及び画像処理装置を適用可能なコントローラ2000内で処理されるパケットデータのパケットフォーマットについて説明する。本実施の形態におけるコントローラ2000内では、画像データ、CPU2001によるコマンド、各ブロックより発行される割り込み情報等を、パケット化された形式で転送する。本実施の形態では、図4に示すデータパケット、図6に示すコマンドパケット、図7に示すインタラプトパケットの3種の異なる種類のパケットが使用される。
まず、図4を用いてデータパケットについて説明する。本実施の形態では画像データを32pixel x 32pixelのタイル(Tile)単位の画像データ(ImageData+padding)3002に分割して取り扱う例を示した。このタイル単位の画像に、必要なヘッダ情報(header)3001及び画像付加情報等(Zdata+padding)3003を付加してデータパケット(DataPacket)とする。以下にヘッダ情報3001に含まれる情報について説明を行う。
パケットのタイプはヘッダ情報3001内のパケットタイプ(PcktType)3004で区別される。チップID(ChipID)3005はパケットを送信するターゲットとなるチップのIDを示す。データタイプ(DataType)3006ではデータのタイプを示す。ページID(PageID)3007はページを示しており、ジョブID(JobID)3008はソフトウェアで管理するためのIDを格納する。タイルの番号はY方向のタイル座標3009とX方向のタイル座標3010の組み合わせで、YnXnで表される。データパケットは画像データが圧縮されている場合と非圧縮の場合がある。本実施形態では非圧縮の場合を示した。圧縮されている場合と非圧縮の場合との区別は圧縮フラグ(CompressFlag)3017で示される。プロセスインストラクション(Process Instruction)3011は左詰で処理順に設定し、各処理ユニット(上述の矩形画像処理部等)は、処理後プロセスインストラクション3011を左に8ビットシフトする。プロセスインストラクション3011はユニットID(UnitID)3019とモード(Mode)3020の組が8組格納されている。ユニットID3019は各処理ユニットを指定し、モード3020は各処理ユニットでの動作モードを指定する。これにより、1つのパケットは8つのユニットで連続して処理することができる。パケット長(PacketByteLength)3012はパケットのトータルバイト数を示す。画像データ長(ImageDataByteLengh)3015は画像データのバイト数、Zデータ長(ZdataByteLength)3016は画像付加情報のバイト数を表し、画像データオフセット(ImageDataOffset)3013、Zデータオフセット(ZdataOffset)3014は、それぞれのデータのパケットの先頭からのオフセットを表している。
次に、図5を用いてパケットテーブル(Packet Table)について説明する。各パケットはパケットテーブル6001によって管理する。パケットテーブル6001の構成要素は次の通りで、それぞれテーブルの値に0を5bit付加すると、パケットの先頭アドレス(PacketAddressPointer)6002、パケット長(Byte Length)6005となる。またここで、Packet Address Pointer 27bit + 5b00000 = パケット先頭アドレス、Packet Length 11bit + 5b00000 = パケット長の関係が成り立つ。パケットテーブル6001とチェーンテーブル(ChainTable)6010は分割されないものとする。
パケットテーブル6001は常に走査方向に並んでおり、Yn/Xn=000/000, 000/001,000/002,....という順で並んでいる。このパケットテーブル6001のEエントリは一意にひとつのタイルを示す。また、Yn/Xmaxの次のエントリはYn+1/X0となる。パケットがひとつ前のパケットとまったく同じ データである場合は、そのパケットはメモリ上には書かず、パケットテーブルのエントリに1つめのエントリと同じ先頭アドレス(PacketAddressPointer)、パケット長(PacketLength)を格納する。1つのパケットデータを2つのテーブルエントリが指すようなかたちになる。この場合、2つめのテーブルエントリのリピートフラグ(RepeatFlag)6003がセットされる。パケットがチェーンDMAにより複数に分断された場合は、分割フラグ(DivideFlag)6004をセットし、そのパケットの先頭部分が入っているチェーンブロックのチェーンテーブル番号(ChainTableNo)6006をセットする。チェーンテーブル6010のエントリはチェーンブロックアドレス(ChainBlockAddress)6011とチェーンブロック長(ChainBlockLength)6012からなっており、テーブルの最後のエントリにはアドレス、データ長共に0を格納しておく。
次に、図6を用いてコマンドパケット(Command Packet)について説明する。コマンドパケットはレジスタ設定バス2109へのアクセスを行うためのものである。コマンドパケットを用いることにより、CPU2001より画像メモリ2123へのアクセスも可能である。チップID(ChipID)4004にはコマンドパケットの送信先となる画像処理部を表すIDが格納される。ページID(PageID)4007、ジョブID(JobID)4008はソフトウェアで管理するためのページIDとジョブIDを格納する。パケットID(PacketID)4009は1次元で表される。従って、データパケット(Data Packet)のX座標(X-coordinate)4009のみを使用する。パケット長(PacketByteLength)4010は128Byte固定である。パケットデータ部(Command)4002には、アドレス(Address)4011とデータ(Data)4012の組を1つのコマンドとして、最大12個のコマンドを格納することが可能である。ライトかリードかのコマンドのタイプは、コマンドタイプ(CmdType)4005で示され、コマンドの数はコマンド数(Cmdnum)4006で示される。
最後に、図7を用いてインタラプトパケット(Interrupt Packet)について説明する。インタラプトパケットは画像処理部からCPU2001への割り込みを通知するためのものである。ステータス処理部2105はインタラプトパケットを送信すると、次に送信の許可がされるまではインタラプトパケットを送信してはならない。パケット長(PacketByteLength)5006は128Byte固定である。パケットデータ部(IntData)5002には、画像処理部の各内部モジュール(各矩形画像処理部、入出力インターフェイス等)のステータス情報(ModuleStatus)5007が格納されている。ステータス処理部2105は画像処理部内の各モジュールのステータス情報を集め、一括してシステム制御部2150に送ることができる。チップID(ChipID)5004にはインタラプトパケットの送信先となるシステム制御部2150を表すIDが、また、インタラプトチップID(IntChipID)5005にはインタラプトの送信元となる画像処理部を表すIDが格納される。
以下、コントローラ2000が行う典型的な処理として、ユーザーが操作部2012よりコピージョブの指示を行った場合の処理を、図8、図9に示すフローチャートを用いて説明する。まず、コントローラ2000がコピージョブを受け、スキャナ2070を用いたスキャン動作を開始し終了するまでの処理を図8を用いて説明する。
CPU2001は、操作部インターフェース2006より情報の伝達を受け、紙サイズ等の情報より、画像リングインターフェース2(2148)に、転送パケット数、RAM2002上での画像格納アドレス等の必要情報をプログラムする(S801)。CPU2001はレジスタアクセスリング2137を介し、画像リングインターフェース1(2147)内部にあるコマンドパケット生成レジスタをプログラミングし、画像入力インターフェース2112へ、紙サイズ、色空間情報等、必要情報を設定するための、コマンドパケットを生成する。この場合、コマンドパケットのチップID4004を画像処理部1(2149)を示す“1”に設定する(S802)。
その後、画像リングインターフェイス1(2147)は、コマンドパケットを画像リング2008を介して画像処理部1(2149)へ転送する(S803)。画像処理部1(2149)に到達したコマンドパケットは、画像処理部1内の画像リングインターフェース3(2101)において、コマンドパケットのチップIDが検査される。ここで、コマンドパケットのチップIDと、自チップのIDが“1”で一致する。この場合、コマンド処理部(2104)はコマンドパケットのコマンドデータ及びヘッダの情報に基づき、レジスタ設定バス(2109)を介し画像入力インターフェース2112をプログラムする(S806)。
続いて、同様に、CPU2001はコマンドパケットを用い、画像入力インターフェース2112内部のスキャナ通信インターフェースをプログラミングし、スキャナ2070に対し、スキャンの開始を指示する(S807)。 スキャナ2070より入力された画像情報は画像入力インターフェース2112、及びメモリバス2108を介し、メモリ制御部2122により制御される画像メモリ2123に一旦格納される(S808)。格納された画像データは、再び画像入力インターフェース2112により、32×32画素ごとに読み出され、パケットタイプ(PcktType)3004、チップID(ChipID)3005、データタイプ(DataType)3006、ページID(PageID)3007、ジョブID(Job ID)3008、Y方向のタイル座標(PacketIDYcoordinate)3009、X方向のタイル座標(PacketIDXcoordinate)3010、圧縮フラグ(CompressFlag)3017、プロセスインストラクション(Process Instruction)3011、パケットのデータ長(PacketByteLength)3012等のヘッダ情報を画像データに付加してデータパケットを生成し、生成したデータパケットをタイルバス2107に出力する(S809)。
上記データパケットは順次作成され、コマンドパケットと同様に、チップIDに基づき画像リングインターフェース4(2102)、画像リング2008、画像リングインターフェース2(2148)を介し画像リングインターフェース2(2148)に転送される。そして画像リングインターフェース2(2148)にプログラミングされた情報に基づき、RAM2002に順次格納される。画像リングインターフェース2(2148)は同時に、パケットテーブル6001をRAM2002上に作成する(S810)。
1ページのスキャン動作が終了すると、スキャナ通信手段を用い、画像入力インターフェースに終了が伝達される。画像入力インターフェース2112は、割り込み信号(図示せず)を用い、ステータス処理部2105に割り込みを通知する(S811)。
画像処理部1(2149)内のステータス処理部2105はインタラプトパケット(図7)を作成し、画像リングインタフェース2(2148)へ転送する(S812)。画像リングインターフェース2148はインタラプトパケットを解釈し、インタラプト信号(図示せず)により、インタラプトをインタラプトコントローラ2140へ伝達する。インタラプトは、インタラプトコントローラ2140より、CPU2001に伝達され、CPU2001はスキャン動作の終了を検出する(S813)。
スキャン動作を終了すると、プリンタ2095を用いたプリント動作を開始する。プリント動作におけるコントローラ2000の処理について図9を用いて説明する。CPU2001はレジスタアクセスリング2137を介し、チップID“1”を有するコマンドパケットを作成する(S901)。そして、作成したコマンドパケットを画像リングインターフェース1(2147)より、画像リング2008を介して画像処理部1(2149)に転送する(S902)。画像処理部1(2149)の画像リングインターフェース3(2101)は、入力したコマンドパケットを検査する。ここで、チップIDが“1”であるので、コマンドパケットのコマンドデータに基づき、コマンド処理部2104、レジスタ設定バス2109を介し、画像処理部1(2149)内の画像出力インターフェース(2113)へ画像出力処理のための必要情報の設定を行う(S903)。CPU2001は同様に、コマンドパケットを使用し、画像処理部1内の画像出力インターフェース2113に備えられたプリンタ通信手段により、プリンタ2095に印字待機を指示する(S904)。続いて、CPU2001は画像リングインターフェース1(2147)内に備えられたDMA手段に、パケットテーブルの存在するメモリアドレス等をプログラムする(S905)。
画像リングインターフェース1(2147)内のDMAは、プログラムされた情報に基づき、RAM2002内より、データパケットを読み出しチップID“1”をヘッダに付加したデータパケットを生成する(S906)。そして、画像リングインターフェース1(2147)内のDMAは、生成したデータパケットを画像リング2008を介し、画像処理部1(2149)に転送する(S907)。画像処理部1(2149)の画像リングインターフェース3(2101)は、入力したデータパケットを検査する。ここで、チップIDが“1”であるので、画像リングインターフェース3(2101)、タイルバス(2107)を介し、順次画像出力インターフェース2113へ転送する(S908)。画像出力インターフェース2113は、受け取ったデータパケットより、画像部分を抽出し、画像データを画像メモリ2123へ格納する(S909)。必要画素分画像データが画像メモリ2123に蓄積された時点で、画像出力インターフェース2113は画像データを画像メモリ2123より順次読み出し、プリンタ2095に出力する(S910)。結果、ユーザーは、コピー結果である画像プリントを得る。画像出力が必要画素数終了した時点で、スキャン動作の場合と同様に、インタラプトパケットにより、終了割り込みがCPU2001に伝達される(S911)。
以上、スキャナ2070及び画像処理部1(2149)を用いたスキャン動作、プリンタ2095と画像処理部1(2095)を用いたプリント動作を組み合わせたコピー動作を説明した。
図2におけるシステムバスブリッジ2007はバススイッチであり、CPUバス2126、RAMコントローラ2124、ROMコントローラ2125、IOバス1(2127)、IOバス2(2129)、画像リングインターフェース1(2147)、画像リングインターフェース2(2148)が接続されている。
<デバッグモジュール>
次に、デバッグモジュールの動作について説明する。デバッグモジュールはシステムバスブリッジ2007内に設けられている。図1はシステムバスブリッジ内のデバッグモジュール周辺のブロック図である。100はバススイッチ、101はデバッグモジュールである。バススイッチ100は、マスタバスとスレーブバスとをスイッチングするためのバススイッチである。各マスタバスはバスマスタが接続されたバスであり、たとえばCPUバス2126、IOバス1(2127)、IOバス2(2129)、画像リングインターフェース1(2147)、画像リングインターフェース2(2148)などにシステムバスブリッジ2007の外側でそれぞれ接続されている。また、各スレーブバスはバスマスタとはなり得ないデバイス、たとえばRAMコントローラ(2124)、ROMコントローラ(2125)などである。これらマスタバスはシステムバスブリッジ2007にそれぞれ接続されている。各バスは、たとえば28ビットのアドレスバスおよび32ビットの制御バスと、128ビットのデータバスとを含む。スレーブバスは、バススイッチ100により1対1に接続されているマスタバス上のバスマスタにより使用される。したがってスレーブバスはバススイッチによる接続先のマスタバスを切り換えることで、各バスマスタにより時分割で共有されるともいえる。
バススイッチ100は、バスマスタから指定されたマスタIDとスレーブIDに従って、指定されたマスタバスとスレーブバスとを接続する。本実施形態では、マスタIDおよびスレーブIDとも4ビットであるものとするが、これは一例に過ぎない。そして制御バスは、少なくともマスタIDのためにそのうちの4ビットが割り当てられている。すなわち、バスマスタがデータの書き込みや読み出しといったトランザクションを発行すると、制御バスには要求元のマスタIDを示す信号が流れている。ここでトランザクションとは、CPUやDMAコントローラ等のバスマスタから、たとえばメモリ等のスレーブに対するデータの書き込みや読み出しといった動作をいい、バスマスタからのアドレス信号や制御信号の出力と、バスマスタからスレーブへのデータ信号や制御信号等の出力あるいはスレーブからマスタへのデータ信号や制御信号等の出力とによって、1トランザクションが完結する。スレーブバスにはこのほか、トランザクションがライトかリードを示すリード/ライト信号、バイト(8ビット)単位でデータの載せられたデータバスを示すバイトイネーブル信号等が含まれる。
さて、デバッグモジュール101はトランザクション検出装置A(103)とトランザクション検出装置B(104)の2組のトランザクション検出装置を持ち、CPUを含む各マスタがアクセス可能なスレーブデバイス、すなわち本実施形態では物理空間内のRAMあるいはROMが接続されるスレーブバスを選択するためのセレクタ(102)によって選択される。この選択は、選択するスレーブのスレーブIDをセレクタ102に設けたレジスタ(後述のスレーブセレクトレジスタ)に設定することで行える。後述の通りデバッグモジュール101にはレジスタとそれぞれのレジスタにマスタ(たとえばCPU)から所望とする値を書き込むための仕組みを備えている(図10参照。ただしスレーブIDをセットするレジスタは不図示。)セレクタ102は、そのレジスタに設定されたスレーブIDに対応するスレーブバスを、トランザクション検出装置A、Bそれぞれに対して出力する。
デバッグモジュール101は、2つのトランザクション検出装置A103、B104を備えることにより、選択したスレーブバスを流れるトランザクションを2つまで検出することが出来る。検出条件を示すトランザクション情報は、各装置に個別に設定することができる。また、2つの検出装置をカスケード接続することにより、順序を伴った二つのトランザクションを検出し、割り込みを発生することが出来る。そのためには、所望とする条件(これをブレークコンディションあるいはトランザクション情報と呼ぶ。)をレジスタ群103a,104aに設定し、アドレスバスやデータバス、制御バスの信号が、設定した条件に合致している場合に、設定条件に合致したトランザクションの検出を示す割込み信号が発生する。トランザクションが検出された場合、そのときのバス等のステータスがレジスタ群102b,104bにセットされる。
発生した割込み信号をどのように利用するかは、コントローラ2000の利用者により作成された割り込みプログラム等の内容によって定義可能である。たとえば、発生した割込み信号はCPU2001に入力されて割り込み処理を発生させる。割り込み処理では、割り込み原因の解析および原因に応じた処理への分岐が行われる。そしてたとえばデバッグに必要な情報を獲得するための処理を行う。その処理には、トレース情報やブレークコンディションの出力や保存等が含まれる。デバッグモードで実行している際には、一定量のメモリがトレースバッファとして割り当てられる。そして、実行されるトランザクションに係る情報はトレースバッファに循環的に記録されて、プログラムがブレークすると、ブレークポイント(トランザクションの検出条件の合致によりデバッグ対象のプログラムが中断することをブレークと呼び、ブレークしたプログラムの箇所をブレークポイントと呼ぶことにする。)直前の一定量のトランザクションに係る情報を参照することができる。もちろんこれはトランザクション検出により発生する割り込みの応用の一例に過ぎず、コントローラ2000の利用者によって処理内容は所望とする内容に定義可能である。
なお、検出の設定が必要無いトランザクション検出装置については、当該トランザクション検出装置のトランザクション情報を検出される可能性のないものに設定しておく。物理空間内のスレーブモジュールがマッピングされていない空間へ設定しておくことにより、使用禁止に出来る。たとえば、トランザクション検出装置Aが、RAMコントローラにつながるスレーブバスに接続されているとする。その場合、指定アドレスにアクセスしたことを検出条件とする検出モードを設定し、RAMが実装された物理メモリ空間の上限アドレスを越えるアドレス値を指定アドレスとして設定すれば、トランザクション検出装置Aによって、ブレークコンディションの満足が検出されることはない。
<トランザクション検出装置>
このような動作を実現するために、トランザクション検出装置A103は図10に示すような構成を備える。もちろん図10は一例であって、所望とするトランザクション検出機能が実現できる他の構成も取り得る。図10において、ブレークコンディションをセットするためのレジスタ群103aは、アドレス系レジスタ1002、データ系レジスタ1005、マスタID系レジスタ1008、コントロール系レジスタ1012を含む。また、トランザクション検出時のステータスを保存するレジスタ群103bがステータス系レジスタ1011に相当する。これらのレジスタ群は、本実施形態においてはバススイッチ100からのスレーブバスに接続されており、各レジスタごとに値の書き込み及び読み出しが可能(これはレジスタ毎に定められている。)である。もちろんレジスタへのアクセスが可能であればスレーブバスである必要はない。ここで各レジスタ群に含まれるレジスタについて説明する。なお、頬実施形態のデバッグモジュールに含まれる全レジスタは32ビット構成である。また説明においてデフォルト値とは、利用者により特に値が指定されていない場合にセットされるべき値であり、たとえばブレークコンディションをセットするためにプログラムにより、ブレークコンディション設定時に与えられる。16進数で表記し、4桁毎に“_”で区切って表す。またアクセスモードは、当該レジスタが読み出し可能であればR、書き込み可能であればWと表示している。両方可能ならR/Wである。またレジスタにおいてMSBを31(ビット)、LSBを0(ビット)と表す。
(コントロール系レジスタ)
(1)DBG_Control(デバッグコントロールレジスタ)
・デフォルト値:0x0000_0000、
・アクセスモード:R/W、
・31ビット:Debug Mode Enable(デバッグモード。0:デバッグモードオフを示し、トランザクションの検出は行わない(少なくとも検出時の割込み信号は発生しない。)1:デバッグモードオンを示し、ブレークコンディションに従ってトランザクションが検出される。)
・30ビット:Parallel/Sequential(シーケンシャルモード。0:パラレルモードを示し、トランザクション検出装置A、Bのいずれかでブレークコンディションが満足されれば検出割り込みが発生する。1: シーケンシャルモードを示し、トランザクション検出装置Aでブレークコンディションが満足されたのちにトランザクション検出装置Bでブレークコンディションが満足されれば検出割り込みが発生する。)
・29-0ビット:未使用
(2)DBG_Slave_Sel(スレーブセレクトレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R/W
・31-28ビット:Master Select(マスタセレクト。0:スレーブAを選択。1:スレーブBを選択。)
・27-0:未使用
(3)DBG_Report_Sel(レポートセレクトレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R/W
・31ビット:NMI/Int Select(割り込みセレクト。1:トランザクション検出をNMIで出力する。0:通常の割り込みで出力する。)
・30ビット:SRT/HRT Select(NMI選択時に、1:SRT、0:HRTを選択する。)
・29-0ビット:未使用
(4)DBG_Ctl_sig_mask_1(デバッグコントロールマスクレジスタ)
・デフォルト値:0x000F_0000
・アクセスモード:R/W
・31ビット:Rd access enable(リードアクセスイネーブル。1:リードトランザクションを検出する。0:しない。)
・30ビット:Wr access enable(ライトアクセスイネーブル。1:ライトトランザクションを検出する。0:しない。)
・29-20:未使用
・19-16:DataLaneCmpEn(データレーンコンペアイネーブル。4レーン(各32ビット)のデータのうち、トランザクションの検出対象とするレーンを示す。各レーンに対応したビットについて、1:対象とする。0:しない。)
・15-4ビット:未使用
・3-0ビット:ByteEnMask(バイトイネーブルマスク。各データレーン(32ビット)について、制御バスに含まれるバイトイネーブル信号(バイト(8ビット)単位でデータの有効性を示す。)のうち、テストされるバイトイネーブル信号を示す。各ビットについて、0:当該ビットに対応するバイトイネーブル信号を値“1”と比較する。1:対応するバイトイネーブル信号はすべて“1”であるとみなす)。
本実施形態では、これらレジスタのうち、デバッグコントロールマスクレジスタはトランザクション検出装置A,Bそれぞれに備えられている。その他のレジスタはトランザクション検出装置Bに備えられている。したがって本実施形態では、コントロール系レジスタ102に含まれているのはデバッグコントロールマスクレジスタだけとなっている。
(アドレス系レジスタ)
(1)DBG_Addr_1_bottom(ボトムアドレスレジスタ)
・デフォルト値:0x7FFF_FFFF
・アクセスモード:R/W
・31-4ビット:Bottom of physical address for break 1(ブレークコンディションとなるアドレス範囲の下限値を示す。この値以上のアドレスが条件に合致する。)
・3-0ビット:未使用
(2) DBG_Addr_1_top(トップアドレスレジスタ)
・デフォルト値:0x7FFF_FFFF
・アクセスモード:R/W
・31-4ビット:Top of physical address for break 1 (ブレークコンディションとなるアドレス範囲の上限値を示す。この値以下のアドレスが条件に合致する。)
・3-0ビット:未使用。
(マスタID系レジスタ)
(1)DBG_MID_Pattern_1(マスタIDパターンレジスタ)
・デフォルト値: 0x0000_0000
・アクセスモード:W/R
・31-4ビット:未使用
・3-0ビット:MID pattern for break1(ブレークコンディションとなるマスタIDを示す。ただし、後述のマスタIDマスクレジスタで与えられる値でマスクされる。マスクされたビットは一致しているものと判定される。)
(2)DBG_MID_Mask_1(マスタIDマスクレジスタ)
・デフォルト値:0x0000_000F
・アクセスモード:W/R
・31-4ビット:未使用
・3-0ビット:MID mask for break1( ブレークコンディションとなるマスタIDに適用されるマスクを示す)。
(データ系レジスタ)
(1)DBG_ WrD_Pattern_1(ライトデータパターンレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R/W
・31-0ビット:WrD_Pattern_1(ブレークコンディションとなる書き込みデータを示す。ただし、後述のライトデータマスクレジスタで与えられる値でマスクされる。マスクされたビットは一致しているものと判定される。)
(2)DBG_WrD_Mask_1(ライトデータマスクレジスタ)
・デフォルト値:0xFFFF_FFFF
・アクセスモード:R/W
・31-0ビット:WrD_Mask_1(ブレークコンディションとなる書き込みデータに適用されるマスクを示す)。
以上のレジスタがデバッグモジュールには備えられている。このうち、デバッグコントロールレジスタ、スレーブセレクトレジスタおよびレポートセレクトレジスタを除いては、トランザクション検出装置Aに含まれており、同じものがトランザクション検出装置Bにも備えられている(トランザクション検出装置Bについてはレジスタ名の“1”が“2”と変わる)。そしてステータス系レジスタとしては以下のものがある。スレーブセレクトレジスタはセレクタに属する。デバッグコントロールレジスタおよびレポートセレクトレジスタは、本実施形態ではトランザクション検出装置Bのみに属する。いずれにも属さないように構成することもできる。
なおライトデータの比較を行なう場合には、Write access enableビットをセットする必要がある。以下に各データレーンに対応するビットを示す表を掲げる。この表では、たとえばデータレーン3は、データの127ビット〜96ビットまでを含み、そのデータレーンには、データレーンコンペアイネーブルの最上位ビット(ビット3)、ライトパターンレジスタの全ビット、ライトマスクレジスタの全ビット、バイトイネーブルマスクの全ビットが対応していることが分かる。
データレーン 3 2 1 0
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]。
(ステータス系レジスタ)
(1)DBG_status(デバッグステータスレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R/W
・31ビット:Debug reg Set 1 NMI/Int(デバッグ設定1。シーケンシャルモードにおいて、第1の条件(トランザクション検出装置Aにおけるブレークコンディション)が満足された場合にセットされる。)
・30ビット:Debug reg Set 2 NMI/Int(デバッグ設定2。シーケンシャルモードにおいて、第2の条件(トランザクション検出装置Bにおけるブレークコンディション)が満足された場合にセットされる。)
・29-0:未使用
(2)DBG_Triggerd_Addr_1(トリガアドレスレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-3:DBG register 1 triggerd address(トランザクション検出装置Aで条件にブレーク合致するトランザクションが検出された場合のアドレス値)
・2-0:未使用
(3)DBG_Triggerd_MID_1(トリガマスタIDレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-4ビット:未使用
・3-0ビット:Triggered MID(トランザクション検出装置Aで条件にブレーク合致するトランザクションが検出された場合のマスタID)
(4)DBG_Triggerd_Data_1_Hi(トリガデータ最上位レジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-0:DBG register 1 triggerd Data Higher 32bit(トランザクション検出装置Aでブレーク条件に合致するトランザクションが検出された場合のデータのうち最上位32ビット)
(5)DBG_Triggerd_Data_1_Mid_Hi(トリガデータ中上位レジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-0:DBG register 1 triggerd Data Middle Higher 32bit(トランザクション検出装置Aでブレーク条件に合致するトランザクションが検出された場合のデータのうち最上位32ビットに続く32ビット)
(6)DBG_Triggerd_Data_1_Mid_Lo(トリガデータ中下位レジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-0:DBG register 1 triggerd Data Middle Lower 32bit(トランザクション検出装置Aでブレーク条件に合致するトランザクションが検出された場合のデータのうち最下位32ビットの上位32ビット)
(7)DBG_Triggerd_Data_1_Lo(トリガデータ最下位レジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31-0:DBG register 1 triggerd Data Lower 32bit(トランザクション検出装置Aでブレーク条件に合致するトランザクションが検出された場合のデータのうち最下位32ビット)
(8)DBG_Triggerd_Control_1(トリガコントロールレジスタ)
・デフォルト値:0x0000_0000
・アクセスモード:R
・31:Rd/Wr(補足された(ブレーク条件に合致した)トランザクションは、1:Read、0:Write)
・30-16:未使用
・15-0:Byte Enable(各ビットについて、1:対応するバイトレーンはアクティブ。0:アクティブではない。)
これらレジスタは、デバッグステータスレジスタを除いて、トランザクション検出装置Bにも備えられている。デバッグステータスレジスタは両トランザクション検出装置で共用されており、本実施形態ではトランザクション検出装置Bに備えられている。
さて、図10について続きを説明する。アドレス比較器1004は、アドレスバスの値をトップアドレスレジスタおよびボトムアドレスレジスタの値と比較し、アドレスバスの値がトップアドレスレジスタ値以下、かつボトムアドレスレジスタ値以上であれば、一致信号を出力する。
データ比較器1007は、デバッグコントロールマスクレジスタの設定がライトアクセスイネーブルとセットされた場合とリードアクセスイネーブルとセットされた場合とで振るまいが異なる。ライトアクセスイネーブルならは、制御バスのリード/ライト信号が「ライト」であることを条件として、以下の動作を行う。データバスの4つのデータレーンのうち、デバッグコントロールマスクレジスタでイネーブルとされたデータレーンについて、ライトデータマスクレジスタでマスクされていないビットを、ライトデータパターンレジスタの値と比較する。イネーブルとされているレーンのうち、ひとつのレーンについて値が一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
一方リードアクセスイネーブルではデータの比較は行わず、制御バスのリード/ライト信号が「リード」すなわちリードトランザクションであれば一致信号が出力される。なおデータ比較器ではデータの比較のみ行い、リード/ライトモードについては別途判定器を設けて、その判定結果を合成しても良い。
マスタID比較器1010は、制御バスのマスタID信号について、マスタIDマスクレジスタでマスクされていないビットを、マスタIDパターンレジスタの値と比較する。値が一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
バイトイネーブル比較器1014は、バイトコントロールマスクレジスタのバイトイネーブルマスクレジスタの値に応じて、マスクされていない制御バス上のバイトイネーブル信号の値を“1”(イネーブル相当値)と比較し、一致すれば一致信号を出力する。全ビットがマスクされていれば常に一致信号が出力される。
検出器1013は、全比較器から一致信号が入力されたなら、言い換えれば入力一致信号がすべて「一致」を示しているならば、検出信号を出力する。トランザクション検出装置Aから出力された検出信号は、トランザクション検出装置Bに入力される。また検出信号が出力されると、そのときのアドレス値、データ値、マスタIDがそれぞれトリガアドレスレジスタ、トリガデータレジスタ(最上位〜最下位)、トリガマスタIDレジスタに保持される。また、そのときのトランザクションモード(リード/ライトの別)、バイトイネーブル信号の値も、トリガコントロールレジスタに保持される。
図11にトランザクション検出装置B104の構成を示す。検出部1001’は、図10に示したトランザクション検出装置Aと同様の構成を有する。割り込み生成部1104には、トランザクション検出装置A103からの検出信号と、検出部1001’からの検出信号と、コントロール系レジスタのうち、両トランザクション検出装置で共用される共用コントロールレジスタ1102の値が入力される。共用コントロールレジスタ1102には、デバッグコントロールレジスタとレポートセレクトレジスタとが含まれる。
割込み生成部1103は、デバッグコントロールレジスタの「デバッグモード」がオフであれば割り込み信号を出力することはない。オンであれば、デバッグコントロールレジスタの「シーケンシャルモード」に応じて動作が変わる。シーケンシャルモードでなければ、すなわちパラレルモードであれば、トランザクション検出装置A103からの検出信号か、あるいは検出部1001’からの検出信号のいずれかが入力されていれば(オンであれば)、割込み信号を生成して出力する。一方シーケンシャルモードであれば、トランザクション検出装置Aからの検出信号が入力された場合にはデバッグステータスレジスタのデバッグ設定1をセットし、デバッグ設定1がセットされており、かつ検出部1001’からの検出信号が入力された場合にはデバッグステータスレジスタのデバッグ設定2をセットする。それとともに、割込み信号を生成する。ここで生成され、出力される割込み信号は、レポートセレクトレジスタの「割込みセレクト」の値が「NMI」であれはノンマスカブル割り込み信号であり、「INT」であれば通常の割り込み信号となる。
以上のような構成で、設定したブレークコンディション(トランザクション情報)が満足された場合には、割込み信号が発生される。ブレークコンディションとしては、アドレスの範囲や、書き込まれるデータの値(ビット毎に桁指定可)、イネーブル指定されたバイトレーンの位置、バスを使用しているマスタIDなどが指定できる。そして、割り込みによってデバッグ対象のプログラムの実行を停止した状態で、所望の処理を実行させることができる。
<ブレーク機能>
さて、図10や図11に示したデバッグモジュールを用いて、ブレークコンディションを組み合わせることでより複雑な条件を設定することもできる。図1のデバッグモジュール101を用いて実現出来る代表的な機能として次のものがある。ただしデバッグモードはすべてセットしておく必要がある。また、上記レジスタの説明でデフォルト値とした値をセットする場合には、その説明を省略した。なお、アドレスはTopとBottomによる領域指定が可能で、データにはマスクパターンが設定できる。
(1)Address region break(アドレス領域ブレーク) 1:トランザクション検出装置Aについて、トップアドレスレジスタ及びボトムアドレスレジスタに所望とする範囲をセットし、データマスクレジスタに全1(0xFFFF_FFFF)、マスタIDレジスタに全1、デバッグコントロールマスクレジスタに0xC00F_000Fをセットする。
(2)Address region break 2:トランザクション検出装置Bについて同上。
(3)Master ID break(マスタIDブレーク)1:トランザクション検出装置Aについて、トップアドレスレジスタ及びボトムアドレスレジスタに必ず合致する値をセットし、データマスクレジスタに全1(0xFFFF_FFFF)、マスタIDマスクレジスタにはテストしたいビットを0とした値を、マスタIDパターンレジスタには所望とするマスタIDの値を、デバッグコントロールマスクレジスタには0xC00F_000Fをセットする。
(4)Master ID break 2:トランザクション検出装置Bについて同上。
(5)Write Data pattern break(書き込みデータパターンブレーク) 1:トランザクション検出装置Aについて、トップアドレスレジスタ及びボトムアドレスレジスタに必ず合致する値をセットし、データマスクレジスタには所望とするマスク値を、データパターンレジスタには所望とする値を、マスタIDマスクレジスタには全1をセットする。また、デバッグコントロールマスクレジスタについては、ライトアクセスイネーブルビットと、所望のデータレーンに対応するデータレーンコンペアイネーブルビットとをセットする。必要に応じてバイトイネーブルマスクをセットすることもできる。
(6)Write Data pattern break 2:トランザクション検出装置Bについて同上。
(7)Address + Write Data 1::トランザクション検出装置Aについて、上記アドレス領域ブレークと、書き込みデータパターンブレークとの組み合わせ。
(8)Address + Write Data 2:トランザクション検出装置Bについて同上。
(9)Address 1 → Address 2:トランザクション検出装置A、Bそれぞれについてアドレス領域ブレークの設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
(10)Write Data 1 → Write Data 2:トランザクション検出装置A、Bそれぞれについてデータパターンブレークの設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
(11)Address + Write Data 1 → Address + Write Data 2:トランザクション検出装置A、Bそれぞれについてアドレス領域ブレークとデータパターンブレークを組み合わせた設定を行う。ただし、デバッグコントロールレジスタの「シーケンシャル」モードをセットしておく。
また、以下の制限事項がある。
(1)リードデータパターンによるブレークは出来ない(リードはアドレスのみ)。
(2)アドレス指定は、128ビット(16バイト)単位。
(3)キャッシュON時は、キャッシュの設定により、プログラムでアクセスを発行してもブレークがかからない可能性がある。また、キャッシュライン単位のブレーク設定になる(32バイト)。
例えば、コピーバックモードの場合には、ライトがバスに出現しないためブレークは不可能。リードもキャッシュヒットする場合はブレークしない。
(4)物理アドレスによるブレークとなる。仮想アドレスではブレークはかからない。
(5)トランザクションの検出から、割り込み発行までは、数サイクルのディレイが発生する。
さて、ここで本実施形態に特徴的なブレークコンディションを説明する。なお上述した代表的なブレーク機能と重複するものもあるが、あらためて述べる。
(1.Address Only)
第1はアドレス監視モードである。DBG Data Pattern Mask 1/2レジスタに0XFFFF_FFFF_FFFF_FFFFを設定し、DBG Address top 1/2に上限(より大きい値), DBG Address bottom 1/2レジスタに下限(より小さい)アドレスを設定する。そしてこれらレジスタに設定された範囲内のアドレスへのアクセスを検出して割り込みを発生する。上限<下限の設定をした場合の動作は保証しない(もちろん上限と下限の大小関係は定義により変わることもあり得る。)ブレークコンディションとして、リード、ライト、発行CPU、バイトイネーブルパターン等の選択が可能である。トランザクション検出装置(103,104)にはスレーブバスからのアドレス信号と、設定されたレジスタのアドレス情報を比較する装置が含まれている。スレーブバスからのアドレスがレジスタのTopとBottomの間に入っていた場合、アドレスがヒットしたことになる。
(2.Write Data Pattern Only)
トランザクション検出装置(103,104)には、スレーブバスからのライトデータ信号と設定されたレジスタのライトデータ情報とを比較する装置(データ比較器1007)が含まれている。DBG Data Pattern 1/2(1または2を1/2と表記する。)レジスタに書き込みが発生する可能性のあるパターンを設定し、比較が必要なビットを位置に該当するDBG Data Pattern Mask 1/2レジスタのビットを0に設定し、 DBG Address top 1/2, DBG Address bottom 1/2を全空間に設定することにより、トランザクション検出装置は書き込みデータのパターンマッチングによる割り込みを発生する。ここでは1サイクル毎に128ビットのデータの比較を行なう。ライトデータ/データマスク/バイトイネーブルマスクの指定は32ビットデータでしか設定できないので、128ビットを構成する4つの32ビットデータレーンのすべてに同一のデータパターンが使用される。また、2ビートのバーストライト時には、1ビート目と2ビート目の両方が比較対象となる。128ビットのビート内で、どのデータレーンを比較するかはDataLaneCmpEn[3:0]で指定する。なおX[m:n]は、信号(あるいはレジスタ)Xにおける第mビットから第nビットまでの(m−n+1)ビットを表す。2ビートバーストライト時は、監視対象のデータレーンは両方のビートで同一のデータレーン設定になる。DataLaneCmpEn[3:0]で複数のデータレーンを有効にした場合、どれかひとつのレーンでヒットすると、全体としてヒットしたとみなされる。ライトデータコンペアを無効にするには、データレーンをすべてディセーブルするか、あるいは、すべてのデータをマスクする。ライトデータについては、ライトバイトイネーブルがイネーブルとなっているデータのみが比較対象となる。
(3.Write Byte Enable Compare)
トランザクション検出装置(103,104)にはスレーブバスからのバイトイネーブル信号と、設定されたレジスタのバイトイネーブル情報を比較する装置(バイトイネーブル比較器1014)が含まれている。32ビットデータレーンの中で、どのバイトイネーブルが立っているかの比較を行なう。ライトバイトイネーブルマスクとデータレーンイネーブルとの組み合わせにより、任意のバイトに対して比較を行なうことができる。バーストライトの場合はすべてのバイトイネーブルが立っているはずなので意味はない。複数のデータレーンを有効にした場合、どれかひとつのレーンでヒットすると、全体としてヒットしたとみなされる。すべての32ビットデータレーンのすべてに同一のマスクパターンが使用される。バイトイネーブルコンペアを無効にするには、データレーンをすべてディセーブルするか、あるいはすべてのバイトイネーブルをマスクする。
(4.Read or Write Acecss)
トランザクション検出装置(103,104)にはスレーブバスからのライトリード識別信号と、設定されたレジスタのライトリード識別情報を比較する装置(本実施形態ではデータ比較器1007に含むものとした。)が含まれている。ライトアクセスでトリガをかけたい場合、Write access enableビットをセットする。リードアクセスでトリガをかけたい場合、Read access enableビットをセットする。Read access enableビットをセットした場合、ライトデータパターンコンペアは無効にする必要がある。
(5.Master ID Compare)
トランザクション検出装置(103,104)にはスレーブバスからのマスタID信号と、設定されたレジスタのマスタID情報を比較する装置(マスタID比較器1010)が含まれている。MID Patternレジスタに、トリガをかけるマスタIDをセットし、MID Maskレジスタにマスクをセットすることができる。マスタIDコンペアを無効にするにはMID Maskレジスタをすべてマスクする。
(6.Address+ Write Data Pattern )
アドレスとライトデータを組み合わせることにより、特定のアドレスへの特定のデータライトが検出できる。
(7.Parallel mode & Sequential mode)
上記1/2の二組のレジスタ群は、独立して、どちらかの条件が満たされた場合に割り込みを発生するParallelモード、第1の条件が満たされてから、第2の条件の満足を待つSequentialモードの2通りのモードを持つ。
(8.その他)
2組のレジスタは、上記以外の方法でも、工夫により、各種条件により、割り込み発生を行うことが出来る。デバッグ対象のマスタを変更する際には、デバッグモジュールの機能を停止させておくことが必要である。
上記デバッグレジスタのいずれかがヒットした場合、割り込み信号がアサートされる。アサート条件は、シリアルモード時には条件1→条件2であり、パラレルモード時には条件1または条件2である。クリア条件は、デバッグステータスの何れかのビットをクリアしたことである。
なお、本実施形態では、2つのスレーブバスからひとつを選択してモニタする例を示したが、当然3つ以上のスレーブバスから選択することも考えられる。
このように、本実施形態によれば、複数のバスマスタがバスを共有するシステムにおいて、共有されるバスをプログラム実行中に監視して、所望の条件が満足された場合に当該プログラムに対して割り込みを発生させることができる。さらに、割り込み発生の条件として、共有されるバスを使用しているマスタを特定することができる。たとえば、クロスバスイッチなどのバスブリッジを用いたシステムにおいて、ひとつのCPUだけでなく、他のCPUやDMACなどが、同一のRAMなどをアクセスする場合がある。また、監視したい対象はRAMだけではなく、ROM、さらにはシステムに存在する様々なレジスタ、IOポートなどにも及ぶ場合もある。その様な場合に、ひとつのCPUだけではなく、その他のCPUや、DMACなどのマスタモジュールから発行されるトランザクションを監視し、さらには、トランザクションの対象となるスレーブもRAMだけではなく、他のスレーブモジュールについてのトランザクションについても監視することができる。
指定信号線の指定アドレスをトラップするための回路のブロック図である。 デジタル複合機を説明する図である。 デジタル複合機を説明する図である。 デジタル複合機を含むネットワークシステム全体の構成図である。 コントローラ2000において用いられるデータパケットについて説明する図である。 コントローラ2000において用いられるパケットテーブルについて説明する図である。 コントローラ2000において用いられるコマンドパケットについて説明する図である。 コントローラ2000において用いられるインタラプトパケットについて説明する図である。 デジタル複合機においてコピージョブの指示を行った場合のスキャン動作について説明する図である。 デジタル複合機においてコピージョブの指示を行った場合のプリント動作について説明する図である。 本実施形態のトランザクション検出装置Aの構成を示すブロック図である。 本実施形態のトランザクション検出装置Bの構成を示すブロック図である。
符号の説明
2000 コントローラ
2001 CPU
2008 画像リング
2070 スキャナ
2095 プリンタ
2101 画像リングインターフェース3
2102 画像リングインターフェース4
2147 画像リングインターフェース1
2148 画像リングインターフェース2
2149 画像処理部1
2150 システム制御部
2151 画像処理部2
2152 画像処理部3
2103 タイル伸張部
2106 タイル圧縮部

Claims (10)

  1. 複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定手段と、
    前記各種信号の値が、前記条件に合致することを検出する検出手段と、
    前記検出手段により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生手段と
    を備えることを特徴とするバス監視装置。
  2. 前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタIDが含まれ、前記設定手段は、前記条件としてマスタIDを設定でき、前記検出手段は、前記条件としてマスタIDが設定されている場合には、前記スレーブバス上のマスタIDの値が、前記条件に合致することを検出することを特徴とする請求項1に記載のバス監視装置。
  3. 前記設定手段はさらに、前記条件としてマスタIDのうちの所望の桁を示すマスタIDマスクを設定でき、前記検出手段は、前記条件としてマスタIDマスクが設定されている場合には、前記マスタIDマスクによりマスクされた桁を除いた前記スレーブバス上のマスタIDの値が、前記条件に合致することを検出することを特徴とする請求項1または2に記載のバス監視装置。
  4. 前記スレーブバス上の信号には、アドレス情報、ライトデータ情報、ライトデータマスク情報、データレーン情報、ライトリード識別情報、バイトイネーブル情報の少なくともいずれかが含まれ、前記設定手段は、アドレス情報、ライトデータ情報、ライトデータマスク情報、データレーン情報、ライトリード識別情報、バイトイネーブル情報の少なくともいずれかについて前記条件を設定でき、前記検出手段は、前記スレーブバス上の信号の値が前記設定手段により設定した条件に合致することを検出することを特徴とする請求項1乃至3のいずれか1項に記載のバス監視装置。
  5. 複数のスレーブバスのうちからひとつを選択する選択手段を更に備え、前記スレーブバスは、前記選択手段により選択されたスレーブバスであることを特徴とする請求項1または2に記載のバス監視装置。
  6. 前記設定手段は少なくとも2つの条件を設定でき、前記検出手段は前記少なくとも2つの条件それぞれについて満足されていることを検出し、前記割込発生手段は、パラレルモードにおいて、前記少なくとの2つの条件のいずれかが満足された場合に割込み信号を発生させることを特徴とする請求項1乃至5のいずれか1項に記載のバス監視装置。
  7. 前記設定手段は少なくとも2つの条件を設定でき、前記検出手段は前記少なくとも2つの条件それぞれについて満足されていることを検出し、前記割込発生手段は、シーケンシャルモードにおいて、前記少なくとの2つの条件が、一定の順序ですべて満足された場合に割込み信号を発生させることを特徴とする請求項1乃至6のいずれか1項に記載のバス監視装置。
  8. 前記設定手段は、前記シーケンシャルモードと前記パラレルモードのいずれかを選択するための設定が可能であり、前記割込発生手段は、設定に応じて割込を発生させることを特徴とする、請求項6を引用する請求項7に記載のバス監視装置。
  9. 複数のスレーブバスと、
    プロセッサを含む複数のバスマスタがそれぞれ接続された複数のマスタバスと、
    前記複数のスレーブバスと前記複数のマスタバスとを、1対1で切り換え可能に接続するバススイッチと、
    請求項1乃至8のいずれか1項に記載のバス監視装置とを備え、
    前記バス監視装置の前記割込み信号発生手段により発生された割り込み信号を前記プロセッサの割込信号として入力し、前記プロセッサは、割り込み信号が入力された場合には、前記スレーブバスに接続されたメモリの所定アドレスからプログラムを実行することを特徴とするバス監視装置付きコントローラ。
  10. 複数のバスマスタにより共有されるスレーブバス上の各種信号について、所望とする条件を示す値を設定する設定工程と、
    前記各種信号の値が、前記条件に合致することを検出する検出工程と、
    前記検出工程により、前記各種信号の値が前記条件に合致することを検知した場合、割り込み信号を発生させる割込発生工程と
    を備え、
    前記スレーブバス上の信号として、前記スレーブバスを使用しているバスマスタを示すマスタIDが含まれ、前記設定工程では、前記条件としてマスタIDを設定でき、前記検出工程では、前記条件としてマスタIDが設定されている場合には、前記スレーブバス上のマスタIDの値が、前記条件に合致することを検出することを特徴とするバス監視方法。
JP2004302067A 2004-10-15 2004-10-15 バス監視装置及びバス監視装置付きコントローラ Withdrawn JP2006113906A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004302067A JP2006113906A (ja) 2004-10-15 2004-10-15 バス監視装置及びバス監視装置付きコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004302067A JP2006113906A (ja) 2004-10-15 2004-10-15 バス監視装置及びバス監視装置付きコントローラ

Publications (1)

Publication Number Publication Date
JP2006113906A true JP2006113906A (ja) 2006-04-27

Family

ID=36382371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004302067A Withdrawn JP2006113906A (ja) 2004-10-15 2004-10-15 バス監視装置及びバス監視装置付きコントローラ

Country Status (1)

Country Link
JP (1) JP2006113906A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225694A (ja) * 2007-03-09 2008-09-25 Ricoh Co Ltd 半導体集積回路及びエラー解析方法
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置
CN101556571B (zh) * 2009-04-08 2011-11-23 苏州国芯科技有限公司 实现clb总线与从属模块之间高低速切换的桥接器
US8374842B2 (en) 2008-05-28 2013-02-12 Panasonic Corporation Device emulation support apparatus, device emulation support method, device emulation support circuit and information processor
JP2015035024A (ja) * 2013-08-07 2015-02-19 富士ゼロックス株式会社 通信装置、通信システム、及び通信処理プログラム
CN105261329A (zh) * 2015-11-26 2016-01-20 西安诺瓦电子科技有限公司 多led显示模组管理方法
JP2016186707A (ja) * 2015-03-27 2016-10-27 富士通株式会社 デバッグ回路、半導体装置及びデバッグ方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225694A (ja) * 2007-03-09 2008-09-25 Ricoh Co Ltd 半導体集積回路及びエラー解析方法
JP2008293212A (ja) * 2007-05-23 2008-12-04 Hitachi Ltd 情報処理装置のトランザクション管理方法及び情報処理装置
US8374842B2 (en) 2008-05-28 2013-02-12 Panasonic Corporation Device emulation support apparatus, device emulation support method, device emulation support circuit and information processor
CN101556571B (zh) * 2009-04-08 2011-11-23 苏州国芯科技有限公司 实现clb总线与从属模块之间高低速切换的桥接器
JP2015035024A (ja) * 2013-08-07 2015-02-19 富士ゼロックス株式会社 通信装置、通信システム、及び通信処理プログラム
JP2016186707A (ja) * 2015-03-27 2016-10-27 富士通株式会社 デバッグ回路、半導体装置及びデバッグ方法
CN105261329A (zh) * 2015-11-26 2016-01-20 西安诺瓦电子科技有限公司 多led显示模组管理方法

Similar Documents

Publication Publication Date Title
EP1909474B1 (en) Image processor and its control method
JP5209461B2 (ja) 集積回路内のデバイス間のデータ転送
JP2004126678A (ja) システムコントローラ
US7522662B2 (en) Electronic device including image forming apparatus
JP2006113906A (ja) バス監視装置及びバス監視装置付きコントローラ
AU721230B2 (en) Universal operator station module for a distributed process control system
US20060117226A1 (en) Data communication system and data communication method
US8245089B2 (en) Transmission device, image data transmission system and transmission method
JP3730586B2 (ja) 画像処理装置
JP2020197857A (ja) 画像形成装置、その制御方法、及びプログラム
JP2009037574A (ja) 半導体集積回路
JP2003271414A (ja) 入出力制御装置及びコンピュータシステム
JP4427393B2 (ja) 半導体集積回路
KR100570786B1 (ko) 복합기기의 제어기
JP6833491B2 (ja) 情報処理装置
JP2001084161A (ja) データ処理装置
JP2009230350A (ja) 統合異常検知用データ取得装置
JP5499682B2 (ja) 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体
JP2005078591A (ja) 画像処理システム及びその画像処理方法
JP2023146920A (ja) 情報処理装置および集積回路
JP2003281087A (ja) メモリターゲット装置及びデータ転送システム
JP2006040120A (ja) 画像処理機能メモリ
JP2006166102A (ja) マルチファンクションシステムコントローラ
JP2005006000A (ja) 画像処理システム
JPH0399337A (ja) データ処理ユニットの診断方法、データ処理ユニット、データ処理システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108