(57)【要約】【課題】  バスマスター毎のバス情報をスレーブデバイス毎に正確に把握する。【解決手段】  バスに発行されたトランザクションをバスマスター毎に入力し、入力したトランザクションに基づいてバスマスター毎のバス情報を計測し、計測したバスマスター毎のバス情報をスレーブデバイス毎に格納することにより、バスマスター毎のバス情報をスレーブデバイス毎に読み出し可能とする。【選択図】      図１
2006119998.tif 000002
【特許請求の範囲】
【請求項１】
バスに発行されたトランザクションをバスマスター毎に入力する入力手段と、
前記入力手段で入力したトランザクションに基づいて前記バスマスター毎のバス情報を計測する計測手段と、
前記計測手段で計測された前記バスマスター毎のバス情報をスレーブデバイス毎に格納する格納手段とを有し、
前記バスマスター毎のバス情報を前記スレーブデバイス毎に読み出し可能とすることを特徴とするバス情報収集装置。
【請求項２】
前記計測手段は、前記バス情報として少なくともトランザクションの回数及び遅延時間を計測することを特徴とする請求項１記載のバス情報収集装置。
【請求項３】
前記遅延時間は、前記バスマスターによる転送要求開始からスレーブデバイスでの転送完了までの遅延時間であることを特徴とする請求項２記載のバス情報収集装置。
【請求項４】
前記遅延時間は、前記バスマスターによる転送要求開始からスレーブデバイスでの転送開始までの遅延時間であることを特徴とする請求項２記載のバス情報収集装置。
【請求項５】
前記遅延時間は、前記スレーブデバイスによる転送開始からスレーブデバイスでの転送完了までの遅延時間であることを特徴とする請求項２記載のバス情報収集装置。
【請求項６】
前記遅延時間は、前記バスマスターによる転送要求開始からスレーブデバイスでの転送完了までの遅延時間と、前記バスマスターによる転送要求開始からスレーブデバイスでの転送開始までの遅延時間と、前記スレーブデバイスによる転送開始からスレーブデバイスでの転送完了までの遅延時間との何れかを計測対象バスマスター毎に切り替え可能とすることを特徴とする請求項２記載のバス情報収集装置。
【請求項７】
請求項１記載のバス情報収集装置を内蔵することを特徴とするデータ処理装置。
【請求項８】
バスに発行されたトランザクションをバスマスター毎に入力する入力工程と、
前記入力工程で入力したトランザクションに基づいて前記バスマスター毎のバス情報を計測する計測工程と、
前記計測工程で計測された前記バスマスター毎のバス情報をスレーブデバイス毎に格納する格納工程とを有し、
前記バスマスター毎のバス情報を前記スレーブデバイス毎に読み出し可能とすることを特徴とするバス情報収集方法。
【請求項９】
コンピュータを請求項１記載のバス情報収集装置の各手段として機能させるためのプログラム。
【請求項１０】
請求項９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスマスターから発行されるトランザクションのバス情報を収集する技術に関する。
【背景技術】
【０００２】
近年、半導体集積回路の回路規模は半導体プロセスの進化と共に増大し、１つのチップに搭載される機能は益々多様化・複雑化してきている。これに伴い、制御ソフトウェアも同様に大規模化・高機能化してきており、ハードウェアの性能を十分に発揮できるソフトウェアを効率良く開発することが求められている（例えば、特許文献１参照）。
【特許文献１】特開平06-131215号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
半導体集積回路は、１つのチップに様々な機能を搭載してコストダウンができる反面、実機でのソフトウェア開発では内部の動作状態を把握するのが困難であるため、デバッグ作業や性能向上のための最適化作業が効率的にできないという問題がある。
【０００４】
例えば、半導体集積回路に外部へバスのトレース情報等を出力する機能を持たせることで、ある程度内部状態を把握することは可能であるが、出力データを解析するための装置が必要になる。また、出力用の外部端子や出力データを蓄積する大容量のメモリを設けることでコストアップとなる。更に、動作周波数が上がると十分な情報を出力できない。
【０００５】
また、１つのバスに複数のバスマスターと複数のスレーブデバイスとが接続されている場合、単純にバスの使用率等を計測しただけでは個々のバスマスター、スレーブデバイスの状態を十分に把握できないという問題がある。
【０００６】
本発明は、上記課題を解決するためになされたものであり、バスマスター毎のバス情報をスレーブデバイス毎に正確に把握することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、バスに発行されたトランザクションをバスマスター毎に入力する入力手段と、前記入力手段で入力したトランザクションに基づいて前記バスマスター毎のバス情報を計測する計測手段と、前記計測手段で計測された前記バスマスター毎のバス情報をスレーブデバイス毎に格納する格納手段とを有し、前記バスマスター毎のバス情報を前記スレーブデバイス毎に読み出し可能とすることを特徴とする。
【０００８】
また、本発明は、バスに発行されたトランザクションをバスマスター毎に入力する入力工程と、前記入力工程で入力したトランザクションに基づいて前記バスマスター毎のバス情報を計測する計測工程と、前記計測工程で計測された前記バスマスター毎のバス情報をスレーブデバイス毎に格納する格納工程とを有し、前記バスマスター毎のバス情報を前記スレーブデバイス毎に読み出し可能とすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、バスマスター毎のバス情報をスレーブデバイス毎に正確に把握することができるため、ソフトウェア開発におけるデバッグ作業、性能解析作業、最適化作業等を効率的に行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【実施例１】
【００１１】
図１は、実施例１におけるバス情報収集回路の構成例を示すブロック図である。図１に示すように、バス情報収集回路１は、レジスタインターフェース（Ｉ／Ｆ）２、レジスタアクセス制御部３、バスマスターＡのバス情報測定部４、バスマスターＢのバス情報測定部５から構成されている。
【００１２】
尚、図１では、バスマスターＡとバスマスターＢの２つのバスマスターが存在する場合を例に示しているが、バスマスターの数はこれに限るものではなく、バスマスターが３つ存在しても良い。その場合、３つのバスマスターに対応してバス情報測定部が構成されていれば良い。
【００１３】
レジスタインターフェース２は、不図示のＣＰＵがバス情報収集回路１の動作制御及び測定された情報を読み出すために、バス情報測定部４及びバス情報測定部５のレジスタに対して読み書きを行う入出力部である。
【００１４】
レジスタアクセス制御部３は、ＣＰＵのアクセスにおけるアドレス値のデコード処理を行い、所定のアドレスにマッピングされているバス情報測定部４及びバス情報測定部５のレジスタに対する読み書きを制御する。
【００１５】
バス情報測定部４は、バスマスターＡのバス情報を測定するブロックで、バスマスターＡがバス上で発行するトランザクションの回数と遅延時間（レイテンシ）に関する情報を転送方向別及び転送対象となるスレーブデバイス別に測定する。
【００１６】
更に、バス情報測定部４は、バス動作情報入力部１０、レジスタ１２、動作制御部１３、トランザクション回数計測部１４、レイテンシ計測部１５、最大レイテンシ検出部１６、最小レイテンシ検出部１７から構成されている。
【００１７】
バス動作情報入力部１０には、バス上で発行されるトランザクションの内容を把握するために必要な情報が入力され、測定対象のバスマスターからの転送要求信号と読み書きを示す転送方向信号、バスの調停を行うアービターからの転送許可信号、スレーブデバイスを特定するデコーダーからのスレーブデバイス識別信号、スレーブデバイスからの転送完了信号等が入力される。
【００１８】
レジスタ１２はレジスタ群で構成され、バス情報測定部４の制御用及び測定された情報読み出しインターフェースとして使用される。ここで、レジスタ１２の内部について詳細に説明する。
【００１９】
図２は、実施例１におけるレジスタ１２の詳細な構成を示すブロック図である。図２に示すように、レジスタ１２はバス情報測定部４の動作モードや動作開始及び停止等を設定するコントロールレジスタ２０、スレーブデバイスＡに対する読み出しトランザクションの情報を保持するバス情報レジスタ２１、スレーブデバイスＡに対する書き込みトランザクションの情報を保持するバス情報レジスタ２２、スレーブデバイスＢに対する読み出しトランザクションの情報を保持するバス情報レジスタ２３、スレーブデバイスＢに対する書き込みトランザクションの情報を保持するバス情報レジスタ２４から構成されている。
【００２０】
尚、図２では、スレーブデバイスＡとスレーブデバイスＢの２つのスレーブデバイスが存在する場合を例に示しているが、スレーブデバイスの数はこれに限らず、スレーブデバイスの数に応じて、読み出しトランザクション用及び書き込みトランザクション用のバス情報レジスタが構成されていれば良い。
【００２１】
レジスタ１２の各バス情報レジスタ２１〜２４は、更にトランザクション回数を保持するトランザクション回数レジスタ３０、レイテンシの累積値（単位はクロックサイクル）を保持するレイテンシ累積レジスタ３１、レイテンシの最大値（単位はクロックサイクル）を保持するレイテンシ最大値レジスタ３２、レイテンシの最小値（単位はクロックサイクル）を保持するレイテンシ最小値レジスタ３３から構成される。
【００２２】
ここで図１に戻り、バス情報測定部４の動作制御部１３は、コントロールレジスタ２０に設定された値に従い、バス情報測定部４における各ブロックの初期化や動作開始・停止等の制御を行う。
【００２３】
トランザクション回数計測部１４は、バス動作情報入力部１０からの入力に従い、転送方向別及び対象スレーブデバイス別にトランザクションの回数を計測し、レジスタ１２のトランザクション回数レジスタ３０に計測値を格納する。
【００２４】
レイテンシ計測部１５は、バス動作情報入力部１０からの入力に従い、転送方向別及び対象スレーブデバイス別にトランザクションのレイテンシの累積を計測し、レジスタ１２のレイテンシ累積レジスタ３１に計測値を格納する。また、各トランザクションにおけるレイテンシを最大レイテンシ検出部１６と最小レイテンシ検出部１７に通知する。
【００２５】
最大レイテンシ検出部１６は、バス動作情報入力部１０からの入力に従い、転送方向別及び対象スレーブデバイス別にトランザクションの最大レイテンシの検出を行う。また、レイテンシ計測部１５からレイテンシの計測値が通知されると、レジスタ１２のレイテンシ最大値レジスタ３２の値と比較し、レイテンシ計測部１５から通知されたレイテンシの計測値が大きい場合は、レイテンシ最大値レジスタ３２を更新する。
【００２６】
最小レイテンシ検出部１７は、バス動作情報入力部１０からの入力に従い、転送方向別及び対象スレーブデバイス別にトランザクションの最小レイテンシの検出を行う。また、レイテンシ計測部１５からレイテンシの計測値が通知されると、レジスタ１２のレイテンシ最小値レジスタ３３の値と比較し、レイテンシ計測部１５から通知されたレイテンシの計測値が小さい場合は、レイテンシ最小値レジスタ３３を更新する。
【００２７】
バス情報測定部５は、バスマスターＢのバス情報を測定するブロックであり、その構成はバス情報測定部４の構成と同一のものである。以下の説明において、バス情報測定部５に関しては、バス情報測定部４の説明に対し対象バスマスターが異なること以外は同様であるとして説明を省略する。
【００２８】
次に、図３を用いて、実施例１におけるバス情報収集回路１の動作について説明する。図３は、バス情報収集回路１の動作を説明するためのタイミングチャートである。ここではバスマスターＡがバスに発行したトランザクションの動作を示し、「clk」はクロックサイクル、「request」は転送要求信号、「grant」は転送許可信号、「address」は転送対象領域のアドレス、「rw」は転送方向（Lowで読み出し、Highで書き込み）、「done」は転送完了信号、「rdata」は転送対象領域からの読み出しデータ、「wdata」は転送対象領域への書き込みデータ、「slave」は転送対象スレーブデバイスの識別値を示すものである。
【００２９】
まず、不図示のＣＰＵがコントロールレジスタ２０に対して動作開始の設定を行うと、バス情報測定部４は、レジスタ１２の初期化を行い、トランザクション回数計測部１４とレイテンシ計測部１５の動作を開始する。尚、レジスタ１２の初期化として、各バス情報レジスタ２１〜２４のトランザクション回数レジスタ３０、レイテンシ累積レジスタ３１、レイテンシ最大値レジスタ３２はそれぞれ“０”に、レイテンシ最小値レジスタ３２は設定可能な最大値（例えば、１６ビット構成の場合は６５５３５）の値に設定される。
【００３０】
図３において、３〜９クロックサイクルの間は、バスマスターＡがスレーブデバイスＡのアドレスA0領域に対してデータ（wdata0）を書き込むトランザクションを示している。具体的には、３クロックサイクル目において、バスマスターＡがrequest信号をアサートし、トランザクションが開始されると、レイテンシ計測部１５がそのトランザクションにおけるレイテンシの計測を開始する。そして、５クロックサイクル目において、アービターからgrant信号がアサートされると、バスマスターＡは次の６クロックサイクル目からaddress信号をA0、rw信号をHigh、wdata信号をwdata0に変化させる。
【００３１】
この６クロックサイクル目において、バスマスターＡがaddress信号を変化させると、デコーダーがアドレスA0をデコードし、slave信号をスレーブデバイスＡを示す識別値に変化させる。その後、９クロックサイクル目において、done信号がアサートされると転送完了となり、レイテンシ計測部１５はレイテンシの計測を終了（レイテンシは７クロックサイクル）する。
【００３２】
このトランザクションは、スレーブデバイスＡに対する書き込みであるため、レジスタ１２のバス情報レジスタ２２の値が更新される。まずトランザクション回数計測部１４はトランザクション回数レジスタ３０の値に“１”を加える。また、レイテンシ計測部１５はレイテンシ累積レジスタ３１に計測したレイテンシ（７クロックサイクル）を加える。更に、最大レイテンシ検出部１６はレイテンシ計測部１５が計測したレイテンシの値（７クロックサイクル）とレイテンシ最大値レジスタ３２の値（０クロックサイクル）とを比較し、レイテンシ計測部１５の計測値が大きいのでレイテンシ最大値レジスタ３２の値を７クロックサイクルに更新する。そして、最小レイテンシ検出部１７はレイテンシ計測部１５が計測したレイテンシの値（７クロックサイクル）とレイテンシ最小値レジスタ３３の値（設定可能な最大クロックサイクル）とを比較し、レイテンシ計測部１５の計測値が小さいのでレイテンシ最小値レジスタ３３の値を７クロックサイクルに更新する。
【００３３】
図３に示す１４〜２３クロックサイクルの間は、バスマスターＡがスレーブデバイスＢのアドレスA1領域からrdata1のデータを読み出すトランザクションを示している。具体的には、１４クロックサイクル目において、バスマスターＡがrequest信号をアサートし、トランザクションが開始されると、レイテンシ計測部１５はそのトランザクションにおけるレイテンシの計測を開始する。そして、１５クロックサイクル目において、アービターからgrant信号がアサートされると、バスマスターＡは次の１６クロックサイクル目からaddress信号をA1、rw信号をLow（読み出し）に変化させる。
【００３４】
この１６クロックサイクル目において、バスマスターＡがaddress信号を変化させると、デコーダーはアドレスA1をデコードし、slave信号をスレーブデバイスＢを示す識別値に変化させる。その後、２３クロックサイクル目において、rdata信号の変化と共にdone信号がアサートされると転送完了となり、レイテンシ計測部１５はレイテンシの計測（レイテンシは１０クロックサイクル）を終了する。
【００３５】
このトランザクションは、スレーブデバイスＢに対する読み出しであるため、レジスタ１２のバス情報レジスタ２３の値が更新される。まずトランザクション回数計測部１４はトランザクション回数レジスタ３０の値に“１”を加える。また、レイテンシ計測部１５はレイテンシ累積レジスタ３１に計測したレイテンシ（１０クロックサイクル）を加える。更に、最大レイテンシ検出部１６はレイテンシ計測部１５が計測したレイテンシの値（１０クロックサイクル）とレイテンシ最大値レジスタ３２の値（０クロックサイクル）とを比較し、レイテンシ計測部１５の計測値が大きいのでレイテンシ最大値レジスタ３２の値を１０クロックサイクルに更新する。そして、最小レイテンシ検出部１７はレイテンシ計測部１５が計測したレイテンシの値（１０クロックサイクル）とレイテンシ最小値レジスタ３３の値（設定可能な最大クロックサイクル）とを比較し、レイテンシ計測部１５の計測値が小さいのでレイテンシ最小値レジスタ３３の値を１０クロックサイクルに更新する。
【００３６】
上述したように、バスマスターＡがトランザクションを発行する毎に、バス情報測定部４が動作を行い、転送方向（読み出し／書き込み）及びスレーブデバイス別に備えられているトランザクション回数レジスタ３０、レイテンシ累積レジスタ３１、レイテンシ最大値レジスタ３２、レイテンシ最小値レジスタ３３の値を更新していく。
【００３７】
尚、バス情報計測部４及びバス情報計測部５のレジスタ１２に保持されている情報は、ＣＰＵがいつでも読み出すことができ、通信デバイスを使って外部へ出力する等の処理を行うことができる。
【００３８】
次に、図４を用いて、所定のバスマスターが発行するトランザクションが１回のトランザクションで複数のデータ転送を行うバースト転送である場合を例に説明する。
【００３９】
図４は、バースト転送における動作を説明するためのタイミングチャートである。図４において、burst信号はデータ転送回数、stb信号は転送データのストローブ信号を示し、それ以外は図３と同じである。
【００４０】
図４に示す３〜９クロックサイクルの間は、アドレスA0からの領域に対し２回（burst信号が２）のデータ書き込み（wd0、wd1）が行われている。そして、１４〜２３クロックサイクルの間は、アドレスA1からの領域に対し４回（burst信号が4）のデータ読み出し（rd0、rd1、rd2、rd3）が行われている。これらバースト転送においても、トランザクション回数、レイテンシの累積、最大値、最小値は図３を用いて説明した場合と同様に計測される。
【００４１】
尚、このburst信号が“１”である場合は、シングル転送と全く同じであることは言うまでもない。
【００４２】
また、トランザクションがシングル転送のみの場合は、トランザクション回数をデータ換算して転送データ量を得ることができるが、バースト転送が混在するとトランザクション回数だけでは転送データ量を得ることができない。そこで、バス情報測定部４にburst信号からデータ転送回数を計測するユニットと、レジスタ１２に新たにデータ転送回数を格納するレジスタを設けることで、バースト転送が混在しても転送データ量を得ることができる。
【００４３】
また、上述した説明では、レイテンシ計測部１５はバスマスターＡが転送要求を出してから転送が完了するまでのレイテンシを計測したが、バスマスターＡが転送要求を出してからアービターから転送許可を得るまでのレイテンシを計測するように構成しても良い。この場合も、トランザクション回数、レイテンシの累積、最大値、最小値は上述した説明と同様に計測される。そうすることでバスの調停におけるレイテンシ情報が得られ、バスマスター間でバスの使用権に対する競合がどの程度発生しているかを把握できる。
【００４４】
例えば、図３に示す３〜９クロックサイクルの間のトランザクションでは、レイテンシ計測部１５で計測されるレイテンシはrequest信号がアサートされてからgrant信号がアサートされるまでの２クロックサイクルである。ここで、バスに競合が発生していない場合、１クロックサイクルでgrant信号がアサートされると仮定すると、１クロックサイクル分バスの競合が発生していたことになる。一方、１４〜２３クロックサイクルの間のトランザクションでは、レイテンシ計測部１５で計測されるレイテンシは１クロックサイクルであり、バスに競合は発生していない。
【００４５】
レイテンシの計測対象として、転送要求を出してから転送が完了するまでを計測するか、或いは転送要求を出してから転送許可を得るまでを計測するかの何れを選択するかは、コントロールレジスタ２０で排他的に設定できるようにしても良い。また、レジスタ１２に新たにレジスタを追加して両方の値を同時に計測できるようにしても良い。
【００４６】
また、上述した説明では、レイテンシ計測部１５はバスマスターＡが転送要求を出してから転送が完了するまでのレイテンシを計測したが、バスマスターＡがアービターから転送許可を得てから転送が完了するまでのレイテンシを計測するように構成しても良い。この場合も、トランザクション回数、レイテンシの累積、最大値、最小値は上述した説明と同様に計測される。そうすることでスレーブデバイスにおけるレイテンシ情報が得られ、スレーブデバイスに対して効率良く制御できているかを把握できる。
【００４７】
例えば、図３において、３〜９クロックサイクルの間のトランザクションでは、レイテンシ計測部１５で計測されるレイテンシはgrant信号がアサートされてからdone信号がアサートされるまでの５クロックサイクルである。ここで、スレーブデバイスの最短応答時間が５クロックサイクルであるとすると、スレーブデバイスにおいて、特に問題なく最短応答されたことになる。一方、１４〜２３クロックサイクルの間のトランザクションでは、レイテンシ計測部１５で計測されるレイテンシは９クロックサイクルであり、スレーブデバイスにおいて応答を遅らせる要因が発生したことが分かる。
【００４８】
レイテンシの計測対象として、転送要求を出してから転送が完了するまでを計測するか、或いは転送許可を得てから転送完了までを計測するかの何れを選択するかは、コントロールレジスタ２０で排他的に設定できるようにしても良い。また、レジスタ１２に新たにレジスタを追加して両方の値を同時に計測できるようにしても良い。
【００４９】
また、上述した説明では、バスマスターとスレーブデバイスとがそれぞれ２つずつ存在する場合に適用される例であるが、バスマスターの増減に対してはバス情報計測部を増減させる、スレーブデバイスの増減に対してはバス情報計測部内の各レジスタを増減させることで同様に適用可能である。
【００５０】
また、上述した説明では、転送方向別にトランザクションを区別していたが、読み出しと書き込みの一方の情報しか必要ない場合はその区別を行わず、バス情報計測部内のレジスタを何れか一方の半分に減らしても良い。
【００５１】
また、特定のバスマスターが特定のスレーブデバイスにのみアクセスする場合は、そのバスマスターを対象とするバス情報計測部において、レジスタを対象スレーブデバイス用のみの構成にしても良い。
【００５２】
実施例１によれば、複数のバスマスターと複数のスレーブデバイスが存在するシステム構成において、各バスマスター及び各スレーブデバイス別にバスの情報を収集することができる。
【実施例２】
【００５３】
次に、図面を参照しながら本発明に係る実施例２について詳細に説明する。実施例２では、ホストコンピュータと接続されるデータ処理装置として、バス情報収集回路を用いたプリンタを例に、プリンタを制御するソフトウェア開発におけるデバッグ作業、性能解析作業、最適化作業の効率を向上させた場合について説明する。
【００５４】
図５は、バス情報収集回路を用いたプリンタの構成例を示すブロック図である。図５に示すように、パーソナルコンピュータ（ＰＣ）４０とプリンタ４１は、ＵＳＢケーブルで接続されている。このＵＳＢは高速シリアルバス通信規格であり、様々な機器を接続するためのものとして広く一般的に普及している。
【００５５】
プリンタ４１には、実施例１で説明したバス情報収集回路を含む半導体集積回路４２、メモリカードスロット等に接続されたメモリカード４３、半導体集積回路４２の制御プログラム等が格納された不揮発性のＲＯＭ４４、半導体集積回路４２が動作時にワークメモリ領域として使用するＤＲＡＭ４５、印刷を行う印字ヘッド等の印字部４６が搭載されている。
【００５６】
図５に示す半導体集積回路４２は、プリンタ４１全体を制御するＣＰＵ５１と、ＲＯＭ４４に対してデータの読み出し制御を行うＲＯＭコントローラ５２と、システムバス６４の調停を行うアービター５３と、システムバス上で発行されるトランザクションのアドレスをデコードし対象スレーブデバイスを特定するデコーダー５４と、割り込みやタイマ制御等を行う周辺回路５５と、ＤＲＡＭ４５に対してデータの読み書き制御を行うＤＲＡＭコントローラ５６と、バスマスター機能を有し、印字部４６を制御する印字コントローラ５７と、ＰＣ４０と接続するためのＵＳＢデバイスコントローラ５８と、メモリカード４３に対してデータ転送を制御するカードコントローラ５９と、カードコントローラ５９用ＤＭＡコントローラ６０と、前述したバス情報収集回路１に相当するバス情報収集部６１と、バスマスター機能を有し、印刷用の画像処理を行って印字データを生成する印刷画像処理部６２と、ＣＰＵ５１の動作プログラム配置用やワーク領域として使用するＳＲＡＭ６３とで構成される。
【００５７】
ここで、システムバス６４に接続されているバスマスターとしては、ＣＰＵ５１、印字コントローラ５７、ＤＭＡコントローラ６０、印刷画像処理部６２の計４つである。また、スレーブデバイスとしては、ＲＯＭコントローラ５２を経由するＲＯＭ領域、ＤＲＡＭコントローラ５６を経由するＤＲＡＭ領域、ＳＲＡＭ６３のＳＲＡＭ領域、各コントローラのレジスタ領域の４つのアドレス空間が割り当てられている。
【００５８】
上述のＣＰＵ５１、印字コントローラ５７、印刷画像処理部６２は、システムバス６４にシングル転送とバースト転送を混在させてトランザクションを発行する。
【００５９】
そして、アービター５３は、ＣＰＵ５１によって設定される各バスマスターの優先度に応じてシステムバス使用権の調停を行う。
【００６０】
実施例２のバス情報収集部６１は、ＣＰＵ５１、印字コントローラ５７、印刷画像処理部６２のバス情報を収集し、それぞれのトランザクション回数とデータ転送回数、ＣＰＵ５１に対して、ＲＯＭ領域とＳＲＡＭ領域の転送要求を出してから転送許可を得るまでのレイテンシ、印字コントローラ５７に対して、ＤＲＡＭ領域の転送要求を出してから転送が完了するまでのレイテンシ、印刷画像処理部６２に対して、ＤＲＡＭ領域の転送許可を得てから転送が完了するまでのレイテンシを収集する構成とする。また、バス情報収集部６１には、ＣＰＵ５１、印字コントローラ５７、印刷画像処理部６２からの転送要求信号と読み書きを示す転送方向信号及び転送回数信号、アービター５３からの転送許可信号、デコーダー５４からのスレーブデバイス識別信号、各スレーブデバイスからの転送完了信号が入力される。
【００６１】
次に、プリンタ４１のソフトウェア開発におけるデバッグ作業、性能解析作業、最適化作業に関して、メモリカード４３に圧縮保存されている画像ファイルを印字部４６で印刷処理を行うソフトウェア開発を例に説明する。
【００６２】
この印刷処理において、半導体集積回路４２内では次のような動作が行われる。ＣＰＵ５１がＤＲＡＭ４５上に画像ファイルを格納するためのバッファ領域、画像ファイルの伸張処理結果を格納するためのバッファ領域、印字データを格納するためのバッファ領域を確保する。メモリカード４３内に保存された画像ファイルはカードコントローラ５９及びＤＭＡコントローラ６０によってＤＲＡＭ４５へ書き込まれる。そして、ＣＰＵ５１は、ＤＲＡＭ４５へ書き込まれた画像ファイルを読み出し、伸張処理を行って結果をＤＲＡＭ４５へ書き込む。
【００６３】
このＤＲＡＭ４５への書き込みが終了すると、印刷画像処理部６２がＤＲＡＭ４５から伸張処理結果を読み出し、印刷画像処理を行って印字データをＤＲＡＭ４５へ書き込む。そして、印字コントローラ５７がＤＲＡＭ４５から印字データを読み出し、印字部４６へ印字データを転送する。
【００６４】
これらの処理は所定のデータサイズ単位で順次並列に動作するため、システムバス６４上ではそれぞれのバスマスターからのＤＲＡＭ４５に対する読み書きが大量に発生する。また、ＣＰＵ５１に対して割り込み処理や画像処理による大きな負荷がかかるため、割り込み処理や伸張処理用プログラム、参照頻度の高いデータをＲＯＭ４４及びＤＲＡＭ４５と比較して高速に動作するＳＲＡＭ６３上に配置し、処理の高速化が行われている。
【００６５】
上述した動作のソフトウェア開発におけるデバッグ作業、性能解析作業、最適化作業では、実際にプリンタ４１を動作させ、バス情報収集部６１によってＣＰＵ５１、印字コントローラ５７、印刷画像処理部６２のバス情報を収集する。そして、収集したデータは、ＣＰＵ５１がバス情報収集部６１のレジスタに保持されているデータを読み込み、ＵＳＢデバイスコントローラ５８等の通信デバイスを使ってＰＣ４０へ転送し、表示させる。
【００６６】
例えば、ＣＰＵ５１に対するバス情報として以下のようなデータが得られたとする。
【００６７】
[ＲＯＭ領域からの読み出し]
トランザクション回数：１,２５７,３４９回
データ転送回数：５,０２８,５３１回
レイテンシ累積：２５,４３５,８３４クロックサイクル
レイテンシ最大値：１３４クロックサイクル
レイテンシ最小値：１クロックサイクル
[ＳＲＡＭ領域からの読み出し]
トランザクション回数：５,２４１,７４６回
データ転送回数：２０,９６６,９８４回
レイテンシ累積：１３４,９５８,３２７クロックサイクル
レイテンシ最大値：１２８クロックサイクル
レイテンシ最小値：１クロックサイクル
上記のレイテンシは、システムバス６４の調停レイテンシ（転送要求を出してから転送許可を得るまで）を計測したもので、１回のトランザクション当たりＲＯＭ４４領域からの読み出しで約２０クロックサイクルであり、ＳＲＡＭ６３領域からの読み出しで約２６クロックサイクルであることが分かる。また、システムバス６４に競合が発生していない状態での調停レイテンシが１クロックサイクルであるとすると、システムバス６４の競合によってＣＰＵ５１の調停レイテンシが２０倍以上増加し、動作速度に影響していることが分かる。
【００６８】
よって、ＣＰＵ５１の動作速度を高めるためには、アービター５３におけるＣＰＵ５１の優先度を高くし、競合状態でも優先的にシステムバスを使用できるような対処を行えば良い。
【００６９】
また、印字コントローラ５７に対するバス情報として以下のようなデータが得られたとする。
【００７０】
[ＤＲＡＭ領域からの読み出し]
トランザクション回数：１０５,４５３,２１０回
データ転送回数：４４２,９０３,４８２回
レイテンシ累積：３,９２１,４００,６３９クロックサイクル
レイテンシ最大値：４５クロックサイクル
レイテンシ最小値：３０クロックサイクル
上記のレイテンシは転送要求を出してから転送が完了するまでを計測したもので、1回のトランザクションあたりＤＲＡＭ領域からの読み出しが約37クロックサイクルであることが分かる。印字部４６に対して10万回のデータ転送を200万クロックサイクル内で完了しなければならない制約があるとすると、10万回のデータ転送に必要なトランザクション回数は約２３,８１０回、その全てが最大レイテンシで実行されたとしても約107万クロックサイクルで、制約に対し約2倍の性能で印字コントローラ５７が動作していることが分かる。
【００７１】
また、印刷画像処理部６２に対するバス情報として、以下のようなデータが得られたとする。
【００７２】
[ＤＲＡＭ領域からの読み出し]
トランザクション回数：２３,６４７,５１５回
データ転送回数：４７,２９３,１０３回
レイテンシ累積：７６１,４４９,９８３クロックサイクル
レ  イテンシ最大値：３５クロックサイクル
レイテンシ最小値：２９クロックサイクル
[ＤＲＡＭ領域への書き込み]
トランザクション回数：１０５,４５３,２１０回
データ転送回数：４４２,９０３,４８２回
レイテンシ累積：２,８４７,２３６,６７０クロックサイクル
レイテンシ最大値：３２クロックサイクル
レイテンシ最小値：２６クロックサイクル
上記のレイテンシはスレーブデバイスにおけるレイテンシ（転送許可を得てから転送が完了するまで）を計測したもので、１回のトランザクション当たりＤＲＡＭ４５領域からの読み出しで約３２クロックサイクルであり、ＤＲＡＭ４５領域への書き込みで約２７クロックサイクルであることが分かる。
【００７３】
このように、ＤＲＡＭ４５において、同一のページに連続でアクセスするページヒット状態で読み出し及び書き込みレイテンシがそれぞれ２９及び２６クロックサイクルであり、異なるページにアクセスするページミス状態で読み出し及び書き込みレイテンシがそれぞれ３５及び３２クロックサイクルであるとすると、印刷画像処理部６２がＤＲＡＭ４５領域からデータを読み出す場合はページミス状態の比率が高く、効率的な読み出しを行っていないことが分かる。よって、ＤＲＡＭ４５領域に対して効率的にアクセスするためには、ＤＲＡＭ４５領域に確保する各種バッファ領域をできるだけ、ページミス状態が発生しないように調整する対処を行えば良い。
【００７４】
以上説明したように、実施例によれば、複数のバスマスターと複数のスレーブデバイスが存在する構成において、各バスマスター及び各スレーブデバイス別にバスの情報を収集し、その情報に基づいてソフトウェア開発におけるデバッグ作業、性能解析作業、最適化作業を効率的に行うことができる。
【００７５】
実施例２では、本発明に係るバス情報収集回路を用いたデータ処理装置としてプリンタを例に説明したが、本発明はこれに限定されるものではなく、複数のバスマスターと複数のスレーブデバイスが存在する構成において、各バスマスターと各スレーブデバイス別にバスの情報を収集するものであれば、他の装置にも適用可能である。
【００７６】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００７７】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７８】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７９】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８２】
【図１】実施例１におけるバス情報収集回路の構成例を示すブロック図である。
【図２】実施例１におけるレジスタ１２の詳細な構成を示すブロック図である。
【図３】バス情報収集回路１の動作を説明するためのタイミングチャートである。
【図４】バースト転送における動作を説明するためのタイミングチャートである。
【図５】バス情報収集回路を用いたプリンタの構成例を示すブロック図である。
【符号の説明】
【００８３】
１  バス情報収集回路
２  レジスタインターフェース
３  レジスタアクセス制御部
４  バス情報測定部
５  バス情報測定部
１０  バス動作情報入力部
１２  レジスタ
１３  動作制御部
１４  トランザクション回数計測部
１５  レイテンシ計測部
１６  最大レイテンシ検出部
１７  最小レイテンシ検出部
２０  コントロールレジスタ
２１  バス情報レジスタ
２２  バス情報レジスタ
２３  バス情報レジスタ
２４  バス情報レジスタ
３０  トランザクション回数レジスタ
３１  レイテンシ累積レジスタ
３２  レイテンシ最大値レジスタ
３３  レイテンシ最小値レジスタ
４０  ＰＣ
４１  プリンタ
４２  半導体集積回路
４３  メモリカード
４４  ＲＯＭ
４５  ＤＲＡＭ
４６  印字部
５１  ＣＰＵ
５２  ＲＯＭコントローラ
５３  アービター
５４  デコーダ
５５  周辺回路
５６  ＤＲＡＭコントローラ
５７  印字コントローラ
５８  ＵＳＢデバイスコントローラ
５９  カードコントローラ
６０  ＤＭＡコントローラ
６２  印刷画像処理部
６３  ＳＲＡＭ
６４  システムバス
【図１】
2006119998.tif 000003
【図２】
2006119998.tif 000004
【図３】
2006119998.tif 000005
【図４】
2006119998.tif 000006
【図５】
2006119998.tif 000007