(57)【要約】【課題】  アプリケーションによるバストランザクションを解析し、アプリケーション毎にバス占有率を示す情報を提供する。【解決手段】  システムバスに発行されるトランザクションをモニタし、そのトランザクションとアプリケーションとを関連付ける情報を保有する。そして、モニタされたトランザクションを保有された情報に基づいてアプリケーション別に区分して提供する。【選択図】      図９
2007207120.tif 000002
【特許請求の範囲】
【請求項１】
システムバスの解析を支援する機能を有するシステム検証装置であって、
システムバスに発行されるトランザクションをモニタするバスモニタ手段と、
前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有手段と、
前記バスモニタ手段でモニタされたトランザクションを前記情報保有手段で保有された情報に基づいてアプリケーション別に区分する区分手段と、
を有することを特徴とするシステム検証装置。
【請求項２】
前記情報保有手段は、前記アプリケーションと、アプリケーションの実行に使用されるメモリ領域とを関連付ける情報を保有することを特徴とする請求項１記載のシステム検証装置。
【請求項３】
前記情報保有手段は、前記アプリケーションと、アプリケーションの実行に使用されるメモリ領域とを関連付ける情報を動的に生成する生成手段を更に有することを特徴とする請求項１記載のシステム検証装置。
【請求項４】
前記生成手段は、外部入力インターフェースのデータへのアクセスに対してアプリケーションを定義し、そのアドレスのデータがハードウェア処理され、格納されるアドレスに対して同一アプリケーションを定義していくことにより、アプリケーションの実行に使用されるメモリ領域を生成することを特徴とする請求項３記載のシステム検証装置。
【請求項５】
前記区分手段は、前記トランザクションのアドレスと、前記アプリケーションの実行に使用されるメモリ領域のアドレスとを比較し、比較結果に基づいてアプリケーション別に区分することを特徴とする請求項２又は３記載のシステム検証装置。
【請求項６】
システムバスの解析を支援する機能を有するシステム検証装置の検証方法であって、
システムバスに発行されるトランザクションをモニタするバスモニタ工程と、
前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有工程と、
前記バスモニタ工程でモニタされたトランザクションを前記情報保有工程で保有された情報に基づいてアプリケーション別に区分する区分工程と、
を有することを特徴とするシステム検証装置の検証方法。
【請求項７】
請求項６に記載のシステム検証装置の検証方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムバスの解析を支援する機能を有するシステム検証技術に関するものである。
【背景技術】
【０００２】
近年、ハードウェアとソフトウェアを結合した協調検証は、システムＬＳＩの開発に際し、ソフトウェアの早期開発、ハードウェアアーキテクチャ探索、ハードウェアとソフトウェアの同時動作時不具合のデバッグなど、様々な目的で用いられている。例えば、特許文献１参照。
【０００３】
また、画像データなどのデータ量の多い複数アプリケーションが動作するプログラムを実行するシステムＬＳＩでは、複数アプリケーションの同時動作時にバストラフィックが増加し、バス帯域が不足する。その結果、アプリケーションの動作が遅くなるという問題が発生する。そのため、開発者はシステムＬＳＩの開発時に、バス帯域が不足していないことを検証する目的で、ハードウェアとソフトウェアの協調検証を行っている。
【特許文献１】特開2003-233634号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、ハードウェアとソフトウェアの協調検証ツールであるバス解析手法では、どのバスマスタがどのくらいの時間バスを使用しているかを示す情報をバスマスタ毎にバス占有率として提供可能としている。
【０００５】
しかしながら、複数アプリケーションの同時動作時にバス帯域が不足していないことを検証する目的で、ハードウェアとソフトウェアの協調検証を行う場合、開発者にとってはむしろ、どのアプリケーション処理がどれだけバスを使用しているかが重要である。これは、検証結果からバス帯域の不足が確認された場合、バストラフィックを減少させるためのアルゴリズムの変更やバスアーキテクチャの変更は、アプリケーション単位で検討するからである。従って、従来のバストランザクションとバスマスタの関連性を示すだけでは、問題となるアプリケーションの早期把握が困難である。
【０００６】
即ち、問題となるアプリケーションを把握するためには、バストランザクションとアプリケーションとの関連性を明らかにしたアプリケーション毎にバスの占有率を示す情報が有効である。
【０００７】
本発明は、アプリケーションによるバストランザクションを解析し、アプリケーション毎にバス占有率を示す情報を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、システムバスの解析を支援する機能を有するシステム検証装置であって、システムバスに発行されるトランザクションをモニタするバスモニタ手段と、前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有手段と、前記バスモニタ手段でモニタされたトランザクションを前記情報保有手段で保有された情報に基づいてアプリケーション別に区分する区分手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、バスに発生したトランザクションを、起因するアプリケーション別に区分することにより、アプリケーション毎にバスの占有率の情報を提供することが可能となり、問題になるアプリケーションの早期把握が可能となる。
【００１０】
更に、バストランザクションとアプリケーションとを関連付ける情報に基づき、より詳細なアプリケーションの工程毎にバスの占有率の情報を取得することが可能となり、バス解析に有効な情報が得られる。
【００１１】
また、ソフトウェアプログラムを参照せずに実現しているためソフトウェア構造に依存することなく、バスに発生したトランザクションを、起因するアプリケーション別に区分することが可能である。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１３】
［第１の実施形態］
第１の実施形態として、バスに発生したトランザクションをアプリケーション別に区分するシステムＬＳＩ検証装置について説明する。
【００１４】
図１は、第１の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。図１において、１０１は検証対象のシステムである。システム１０１はメインプロセッサのＣＰＵ１０２、メインメモリ１０３、ワークメモリ１０４、画像処理を行うサブプロセッサ（Sub-pro1）１０５、信号処理を行うサブプロセッサ（Sub-pro2）１０６を含む。更に、システムバス１０７、外部インターフェースとシステムバス間のデータ転送を行うＤＭＡコントローラ（ＤＭＡＣ）１０８、ＣＣＤインターフェース１０９、カードインターフェース１１０、シリアルインターフェース１１１を含む。また、このＤＭＡＣ１０８は、ＣＣＤインターフェース、カードインターフェース、シリアルインターフェース用に３チャネルを内蔵する。
【００１５】
また、１１２はトランザクションとアプリケーションとを関連付けるためのアプリケーションリンク情報である。１１３はシステムバス１０７に接続されたバスモニタであり、システムバス１０７に発生したトランザクションを収集する。このバスモニタ１１３は、トランザクションをモニタする機能を有する。１１４はバス解析処理部であり、バスモニタ１１３で収集した情報とアプリケーションリンク情報１１２とを入力し、その解析結果をアプリケーション別に区分した解析結果情報１１５として出力する。
【００１６】
図２は、検証対象のシステム１０１におけるメモリマップを示す図である。図２に示す２０１はメインメモリ１０３に対応する領域でアドレス0x0000_0000〜0x4000_0000番地が割り当てられている。この領域内にＣＣＤインターフェース１０９から取り込んだデータを格納する領域２０３がアドレス0x0200_000〜0x05FF_FFFF番地に割り当てられている。また、この領域内にＭＰ３データを格納する領域２０４がアドレス0x0600_0000〜0x09FF_FFFF番地に割り当てられている。
【００１７】
一方、２０２はワークメモリ１０４に対応する領域でアドレス0xF000_0000〜0xF008000番地が割り当てられている。この領域内に画像処理後のＣＣＤデータを格納する領域２０５がアドレス0xF000_0000〜0xF001_FFFF番地に割り当てられている。また、この領域内にＭＰ３デコードデータを格納する領域２０６がアドレス0xF002_000〜0xF002_FFFF番地に割り当てられている。
【００１８】
次に、図３を用いて検証対象のシステム１０１において、写真撮影とＭＰ３再生の２つのアプリケーションが実行されたときのデータフローについて説明する。
【００１９】
図３は、第１の実施形態における写真撮影とＭＰ３再生のアプリケーションを実行時のデータフローを示す図である。図３において、３０１〜３０３は写真撮影実行時に発生するデータフローである。３０１はＣＣＤインターフェース１０９からメインメモリ１０３へ、３０２はメインメモリ１０３からサブプロセッサ１０５へ、３０３はサブプロセッサ１０５からワークメモリ１０４へのデータフローである。
【００２０】
また、３０４〜３０７はＭＰ３再生実行時に発生するデータフローである。３０４はカードインターフェース１１０からメインメモリ１０３へ、３０５はメインメモリ１０３からサブプロセッサ１０６へのデータフローである。更に、３０６はサブプロセッサ１０６からワークメモリ１０４へ、３０７はワークメモリ１０４からシリアルインターフェース１１１へのデータフローである。
【００２１】
ここで、２つのアプリケーションの動作を、システムバス１０７上に発生するデータに着目して説明する。
［写真撮影］以下の（Ａ）工程〜（Ｃ）工程の各工程で動作する。
（Ａ）ＣＰＵ１０２によって起動されたＤＭＡＣ１０８がＣＣＤインターフェース１０９から撮影データを取り込み、撮像データをメインメモリ１０３内のＣＣＤデータ格納領域２０３へ転送する。このとき、ＤＭＡＣ１０８がバスマスタとなり、システムバス１０７にライトトランザクションを発生させる。このトランザクションはデータフロー３０１に対応する。
（Ｂ）１フレームのデータ転送が終わると、サブプロセッサ１０５がメインメモリ１０３内のＣＣＤデータ格納領域２０３から処理単位の撮像データを取り込む。このとき、サブプロセッサ１０５がバスマスタとなり、システムバス１０７にリードトランザクションを発生させる。このトランザクションはデータフロー３０２に対応する。
（Ｃ）サブプロセッサ１０５内部での画像処理が終わると、画像処理後のデータをワークメモリ１０４内のＣＣＤ画像処理データ格納領域２０５へ転送する。このとき、サブプロセッサ１０５がバスマスタとなり、システムバス１０７にライトトランザクションを発生させる。このトランザクションはデータフロー３０３に対応する。
［ＭＰ３再生］以下の（Ｄ）工程〜（Ｇ）工程の各工程で動作する。
（Ｄ）ＣＰＵ１０２によって起動されたＤＭＡＣ１０８がカードインターフェース１１０からＭＰ３再生データをメインメモリ１０３内のＭＰ３データ格納領域２０４へ転送する。このとき、ＤＭＡＣ１０８がバスマスタとなり、システムバス１０７にライトトランザクションを発生させる。このトランザクションはデータフロー３０４に対応する。
（Ｅ）サブプロセッサ１０６がメインメモリ１０３内のＭＰ３データ格納領域２０４からＭＰ３データを取り込む。このとき、サブプロセッサ１０６がバスマスタとなり、システムバス１０７にリードトランザクションを発生させる。このトランザクションはデータフロー３０５に対応する。
（Ｆ）サブプロセッサ１０６内部でデコード処理が終わると、デコードデータをワークメモリ１０４内のＭＰ３デコードデータ格納領域２０６へ転送する。このとき、サブプロセッサ１０６がバスマスタとなり、システムバス１０７にライトトランザクションを発生させる。このトランザクションはデータフロー３０６に対応する。
（Ｇ）ＣＰＵ１０２によって起動されたＤＭＡＣ１０８がワークメモリ１０４内部のＭＰ３デコードデータ格納領域２０６からシリアルインターフェース１１１へデータを転送する。このとき、ＤＭＡＣ１０８がバスマスタとなり、システムバス１０７にリードトランザクションを発生させる。このトランザクションはデータフロー３０７に対応する。
【００２２】
図４は、２つのアプリケーションを実行時にシステムバス１０７に発生するトランザクションをバスモニタ１１３で収集し表示した結果を示す図である。図４において、４０１はシミュレーション時間、４０２はアドレスバスの値、４０３はデータバスの値である。４０４はトランザクションの属性情報であり、「Ｒ」がリード属性、「Ｗ」がライト属性を示している。そして、４０５はバスを使用しているバスマスタを示す情報である。
【００２３】
従来、バスモニタ１１３で収集したシミュレーション時間とバスマスタ情報とに基づきバスマスタ毎のバスの占有情報を作成する。
【００２４】
図５は、従来のバスマスタ毎のバスの占有情報を示す図である。図５において、横軸がシミュレーション時間を示し、１カラムはクロックの１サイクルに相当する。各マスタがどのサイクルでバスを使用しているかが示されている。
【００２５】
従来得られる図４及び図５に示す情報からバスのトランザクションとアプリケーション処理の関連性は判断し難い。
【００２６】
一方、第１の実施形態におけるシステムＬＳＩ検証装置では、バスモニタ１１３で収集したトランザクションとアプリケーションの関連性をバス解析処理部１１４が以下のように解析する。
【００２７】
まず、トランザクション４０６はＤＭＡＣ１０８がバスマスタとなり、アドレス0x06XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ１０３のＭＰ３データ格納領域２０４にアクセスしていることが分かり、このトランザクションはＭＰ３再生の（Ｄ）工程のトランザクションであると判断できる。
【００２８】
次に、トランザクション４０７はＤＭＡＣ１０８がバスマスタとなり、アドレス0x02XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ１０３のＣＣＤデータ格納領域２０３にアクセスしていることが分かり、このトランザクションは写真撮影の（Ａ）工程のトランザクションであると判断できる。
【００２９】
次に、トランザクション４０８はサブプロセッサ１０６がバスマスタとなり、アドレス0x06XX_XXXX番地をリードする。アドレスマップより、メインメモリ１０３のＭＰ３データ格納領域２０４にアクセスしていることが分かり、このトランザクションはＭＰ３再生の（Ｅ）工程のトランザクションであると判断できる。
【００３０】
次に、トランザクション４０９はトランザクション４０７と同じであり、（Ａ）工程と（Ｄ）工程が並列に動作している。
【００３１】
その後、トランザクション４１０が発生し、サブプロセッサ１０５がバスマスタとなり、アドレス0x02XX_XXXX番地をリードする。アドレスマップより、ＣＣＤデータ格納領域２０３にアクセスしていることが分かり、このトランザクションは（Ｂ）工程のトランザクションであると判断できる。
【００３２】
次に、トランザクション４１１はサブプロセッサ１０６がバスマスタとなり、アドレス0xF002_XXXX番地にデータをライトする。アドレスマップより、ＭＰ３デコードデータ格納領域２０６にアクセスしていることが分かり、このトランザクションは（Ｆ）工程のトランザクションであると判断できる。
【００３３】
次に、トランザクション４１２はサブプロセッサ１０５がバスマスタとなり、アドレス0xF000_XXXX番地にデータをライトする。アドレスマップより、ＣＣＤ画像処理データ格納領域２０５にアクセスしていることが分かり、（Ｃ）工程のトランザクションであると判断できる。
【００３４】
次に、トランザクション４１３はＤＭＡＣ１０８がバスマスタとなり、アドレス0xF002_XXXX番地をリードする。アドレスマップより、ＭＰ３デコードデータ格納領域２０６にアクセスしていることが分かり、このトランザクションは（Ｇ）工程のトランザクションであると判断できる。
【００３５】
次に、トランザクション４１４はＤＭＡＣ１０８がバスマスタとなり、アドレス0x02XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ１０３のＣＣＤデータ格納領域２０３にアクセスしていることが分かり、このトランザクションは写真撮影の（Ａ）工程のトランザクションであると判断できる。
【００３６】
上述の解析を行うために、第１の実施形態では、トランザクションとアプリケーションを関連付けるアプリケーションリンク情報１１２を本検証装置内に持つ。
【００３７】
図６は、第１の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。「写真撮影」のアプリケーションは図２に示すシステムメモリマップよりアドレス0x0200_0000〜0x03FF_FFFF番地と0xF000_0000〜0xF001_FFFF番地が割り当てられている。そして、「ＭＰ３再生」のアプリケーションはアドレス0x0600_0000〜0x07FF_FFFF番地と0xF002_0000〜0xF003_FFFF番地が割り当てられている。この情報が、トランザクションとアプリケーションを関連付けるリンク情報となる。従って、この情報を利用してバス解析処理部１１４が、バスモニタ１１３が収集したトランザクションを、起因するアプリケーション別に区分する。
【００３８】
図７は、第１の実施形態におけるバス解析処理部１１４の処理を示すフローチャートである。尚、図７において、「Addr」と「application」は変数として定義されているものとする。
【００３９】
まず、ステップＳ７０１で、バスモニタ１１３が取得したトランザクションのアドレスを変数Addrに代入する。次に、ステップＳ７０２で、アプリケーションリンク情報１１２を参照し、写真撮影に関連するアドレスと比較する。ここで、条件が真（true）であればステップＳ７０３へ進み、変数applicationに“写真撮影”を代入する。また、条件が偽（false）であればステップＳ７０４へ進み、アプリケーションリンク情報１１２を参照し、ＭＰ３再生に関連するアドレスと比較する。ここで、条件が真（true）であればステップＳ７０５へ進み、変数applicationに“ＭＰ３再生”を代入する。
【００４０】
図８は、第１の実施形態におけるバス解析処理部１１４の解析結果情報１１５の一例を示す図である。図８に示すように、バスモニタ１１３で収集したデータに、アプリケーション情報を示す変数applicationが付加されて表示される。８０１はアプリケーション情報である。
【００４１】
更に、図８に示すデータ中のシミュレーション時間及びアプリケーション情報からアプリケーション毎のバスの占有情報を作ることが可能になる。
【００４２】
図９は、第１の実施形態におけるアプリケーション毎のバスの占有情報を示す図である。図９において、横軸がシミュレーション時間を示し、１カラムはクロックの１サイクルに相当する。各アプリケーションがどのサイクルでバスを使用しているかを示している。従って、図９に示すように、どのアプリケーションがバスを混雑させているか一目瞭然である。
【００４３】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。尚、第２の実施形態におけるシステムＬＳＩ検証装置の構成は、図１に示す第１の実施形態と同様であり、その説明は省略する。また、
第２の実施形態では、アプリケーションリンク情報１１２として、図１０に示す情報を用いるものとする。
【００４４】
図１０は、第２の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。図１０に示すように、第２の実施形態では、アプリケーションの工程番号とその工程番号に対応するトランザクションの属性が付加されている。この情報を使用してバス解析処理部１１４が、バスモニタ１１３で収集したトランザクションを、起因するアプリケーションの工程別に区分する。
【００４５】
図１１は、第２の実施形態におけるバス解析処理部１１４の処理を示すフローチャートである。尚、図１１において、「Addr」、「Attr」、「application」、「koutei」は変数として定義されているものとする。
【００４６】
まず、ステップＳ１１０１で、バスモニタ１１３が取得したトランザクションのアドレスを変数Addrに、属性を変数Attrに代入する。次に、ステップＳ１１０２で、アプリケーションリンク情報１１２（図１０）を参照し、アドレスと比較する。そして、ステップＳ１１０３で、ステップＳ１１０２における比較結果に基づいて関連するアプリケーションを示す変数applicationを決定する。
【００４７】
次に、ステップＳ１１０４で、アプリケーションリンク情報１１２（図１０）を参照し、属性がライト（Ｗ）であるか、リード（Ｒ）であるかを判定する。そして、ステップＳ１１０５で、ステップＳ１１０４における属性判定結果に基づいて、トランザクションに関連するアプリケーションの工程を示す変数kouteiを決定する。
【００４８】
図１２は、第２の実施形態におけるバス解析処理部１１４の解析結果情報１１５の一例を示す図である。図１２に示すように、バスモニタ１１３で収集したデータにアプリケーション情報を示す変数application及び工程を示す変数kouteiが付加されて表示される。１２０１は付加したアプリケーションとその工程情報である。
【００４９】
更に、図１２に示すデータ中のシミュレーション時間、工程情報からアプリケーションの工程毎にバスの占有情報を作ることが可能となる。
【００５０】
図１３は、第２の実施形態におけるアプリケーションの工程毎にバスの占有情報を示す図である。図１３において、横軸がシミュレーション時間を示し、１カラムはクロックの１サイクルに相当する。各アプリケーションの工程がどのサイクルでバスを使用しているかを示している。
【００５１】
第２の実施形態によれば、バストランザクションとアプリケーションを関連付ける情報を備えることで、より詳細なアプリケーションの工程毎にバスの占有率の情報を取得することが可能となる。
【００５２】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態について詳細に説明する。第１又は第２の実施形態では、アプリケーションリンク情報としてアプリケーションとメモリアドレス領域を予め関連付けた情報（図６又は図１０）を使用する例を挙げた。しかし、プロセッサのＭＭＵ機能を使用したシステムでは、動的にメモリ領域を割り当てるので、アプリケーションとメモリアドレス領域を予め関連付けた情報を準備できない。そこで、第３の実施形態では、以下のような手法を実施するものである。
【００５３】
データフローの起点となる外部入力インターフェースのデータへのアクセスに対して、外部入力インターフェース固有のアプリケーションを定義し、そのデータがハードウェア処理され、格納されていくアドレスを追跡する。そして、そのアドレスにも同一アプリケーションを定義することによりアドレスとアプリケーションを動的に関連付けていく。
【００５４】
図１４は、第３の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。図１４において、１４０１は検証対象のシステムである。このシステムは図１に示すシステム１０１と同一で、システム１４０１のデータフローは図３と同一で、トランザクションの発行の順序は図４と同一である。但し、動的にメモリ領域を割り当てるシステムであるため、メモリマップ内の用途２０３〜２０６は分かっていない。
【００５５】
また、１４０２はアプリケーションリンク情報である。このリンク情報１４０２には、各マスタが現在実行しているアプリケーションの情報を持つ、マスタ別アプリケーションテーブル１４０３が含まれる。更に、現在そのアドレスを使用しているアプリケーションの情報を持つ、アドレス別アプリケーションテーブル１４０４が含まれる。
【００５６】
１４０５はアプリケーションリンク情報生成部であり、バスモニタ１４０６で収集したトランザクション情報、ＤＭＡＣと外部インターフェース間の信号１４０８及びテーブル１４０３、１４０４の情報を入力する。そして、トランザクションが発生する毎にアプリケーションリンク情報１４０２のテーブル１４０３、１４０４を書き換える。１４０７はバス解析処理部であり、１４０９はバス解析処理部１４０７による解析結果である。
【００５７】
図１５は、第３の実施形態におけるマスタ別アプリケーションテーブル１４０３の構成の一例を示す図である。図１５において、１５０１はマスタ（Master）を示す。１５０２は現在そのマスタが処理しているアプリケーションを示すカレントアプリケーションＩＤ（current application ID）である。尚、このカレントアプリケーションＩＤ１５０２がアプリケーションリンク情報生成部１４０５によって書き換えられる。
【００５８】
図１６は、第３の実施形態におけるアドレス別アプリケーションテーブルの構成の一例を示す図である。図１６において、１６０１はアドレス（address）である。１６０２は現在そのアドレスを使用しているアプリケーションを示すカレントアプリケーションＩＤ（current application ID）である。尚、このカレントアプリケーションＩＤ１６０２がアプリケーションリンク情報生成部１４０５によって書き換えられる。
【００５９】
ここで、アプリケーションリンク情報生成部１４０５がバスモニタ１４０６で収集したトランザクション情報とテーブル１４０３、１４０４の情報を入力し、アプリケーションリンク情報１４０２を書き換える処理について説明する。
【００６０】
図１７は、第３の実施形態におけるアプリケーションリンク情報生成部１４０５の処理を示すフローチャートである。尚、図１７において、「Addr」、「Attr」、「Master」は変数として定義されているものとする。
【００６１】
まず、ステップＳ１７０１で、バスモニタ１４０６が取得したトランザクションのアドレスを変数Addrに、属性を変数Attrに、バスマスタのマスタＩＤを変数Masterにそれぞれ格納する。次に、ステップＳ１７０２で、属性がリード（Ｒ）であるか否かを判定する。ここで、リードであればステップＳ１７０３へ進み、マスタ別アプリケーションテーブル１４０３のマスタ１５０１を変数Masterで検索する。そして、検索されたマスタ１５０１に対応するカレントアプリケーションＩＤ１５０２を、アドレス別アプリケーションテーブル１４０４のカレントアプリケーションＩＤ１６０２で書き換える。具体的には、変数Addrでアドレス別アプリケーションテーブル１４０４を検索し、検索されたアドレス１６０１に対応するカレントアプリケーションＩＤ１６０２で書き換える。
【００６２】
また、ステップＳ１７０２で、属性がリードでなければステップＳ１７０４へ進み、ライトか判定する。ここで、ライトであればステップＳ１７０５へ進み、アドレス別アプリケーションテーブルのアドレス１６０１を変数Addrで検索する。そして、検索されたアドレス１６０１に対応するカレントアプリケーションＩＤ１６０２を、マスタ別アプリケーションテーブル１４０３のカレントアプリケーションＩＤ１５０２で書き換える。具体的には、変数Masterでマスタ別アプリケーションテーブル１４０３を検索し、検索されたマスタ１５０１に対応するカレントアプリケーションＩＤ１５０２で書き換える。
【００６３】
次に、データフローの起点となる外部入力インターフェースのデータアクセスに対する定義について説明する。
【００６４】
システム１４０１において、外部入力インターフェースであるＣＣＤインターフェース及びカードインターフェースからメインメモリへのデータ転送が行われる。データ転送は、ＤＭＡＣがＣＣＤインターフェース、カードインターフェースとの間の信号１４０８（リクエスト信号とアクノリッジ信号のハンドシェーク方式）で行われる。その後、メインメモリのアドレスに対してデータをライトするバストランザクションを発行する。ここで、外部入力インターフェースは個別にリクエスト信号とアクノリッジ信号を持つ。
【００６５】
一方、アプリケーションリンク情報生成部１４０５が各々の外部入力インターフェースのアクノリッジ信号をモニタし、アクノリッジ信号の発行を検知すると、マスタ別アプリケーションテーブル１４０２を書き換える。つまり、マスタ別アプリケーションテーブル１４０２におけるマスタ１５０１のＤＭＡＣのカレントアプリケーションＩＤ１５０２を該当する外部入力インターフェース固有のアプリケーションに書き換える。これにより、起点となるデータアクセスに対するアプリケーションを定義する。
【００６６】
ここで、図１８を用いて本システムが図４に示すトランザクションを発行して動作する時のマスタ別アプリケーションテーブル１４０３とアドレス別アプリケーションテーブル１４０４の状態遷移について説明する。
【００６７】
尚、カードインターフェース固有のアプリケーションを「ＭＰ３再生」、ＣＣＤインターフェース固有のアプリケーションを「写真撮影」とする。またトランザクション４０６の前に、カードインターフェースのアクノリッジが発行され、トランザクション４０７の前に、ＣＣＤインターフェースのアクノリッジが発行されるものとする。
【００６８】
図１８は、第３の実施形態におけるテーブル１４０３、１４０４が図１７に示すフローに従って状態遷移する様子を示す図である。１８０１は初期状態である。初期状態では、マスタ別アプリケーションテーブル１４０３、アドレス別アプリケーションテーブル１４０４のカレントアプリケーションＩＤは共に定義されていない。
【００６９】
カードインターフェースにＤＭＡＣからアクセスがあり、アクノリッジが発行されると、カードインターフェースのデータアクセス開始状態１８０２に遷移する。このとき、アプリケーションリンク情報生成部１４０５がマスタ別アプリケーションテーブル１４０３におけるマスタ１５０１のＤＭＡＣのカレントアプリケーションＩＤ１５０２を「ＭＰ３再生」と定義する。
【００７０】
続いて、トランザクション４０６が発行されると状態１８０３に遷移する。このとき、バスマスタはＤＭＡＣ、属性はライト（Ｗ）なので、図１７に示すステップＳ１７０５へ進み、アドレス別アプリケーションテーブル１４０４の書き換えを行う。即ち、マスタ別アプリケーションテーブル１４０３におけるＤＭＡＣのカレントアプリケーションＩＤがアドレス別アプリケーションテーブル１４０４のカレントアプリケーションＩＤにコピーされ、「ＭＰ３再生」となる。ここで書き換えは、アドレス別アプリケーションテーブル１４０４における、現在のアドレスである変数Addrのアドレスに対して行われる。
【００７１】
次に、ＣＣＤインターフェースにＤＭＡＣからアクセスがあり、アクノリッジが発行されると、ＣＣＤインターフェースへのデータアクセス開始状態１８０４に遷移する。このとき、アプリケーションリンク情報生成部１４０５がマスタ別アプリケーションテーブル１４０３におけるマスタ１５０１のＤＭＡＣのカレントアプリケーションＩＤ１５０２を「写真撮影」と定義する。
【００７２】
続いて、トランザクション４０７が発行されると状態１８０５に遷移する。このとき、バスマスタはＤＭＡＣ、属性はライト（Ｗ）なので、図１７に示すステップＳ１７０５へ進み、アドレス別アプリケーションテーブル１４０４の書き換えを行う。即ち、マスタ別アプリケーションテーブル１４０３におけるＤＭＡＣのカレントアプリケーションＩＤがアドレス別アプリケーションテーブル１４０４のカレントアプリケーションＩＤにコピーされ、「写真撮影」となる。ここで書き換えは、アドレス別アプリケーションテーブル１４０４における、現在のアドレスである変数Addrのアドレスに対して行われる。
【００７３】
続いて、トランザクション４０８が発行されると状態１８０６に遷移する。このとき、バスマスタはサブプロセッサ２（Sub-pro2）、属性はリード（Ｒ）なので、図１７に示すステップＳ１７０３へ進み、マスタ別アプリケーションテーブル１４０３の書き換えを行う。即ち、アドレス別アプリケーションテーブル１４０４における現在のアドレスのカレントアプリケーションＩＤがマスタ別アプリケーションテーブル１４０３のカレントアプリケーションＩＤにコピーされる。従って、マスタ別アプリケーションテーブル１４０３におけるサブプロセッサ２に対応するカレントアプリケーションＩＤは「ＭＰ３再生」となる。
【００７４】
以上のように、アドレスとアプリケーションを動的に関連付けていく。
【００７５】
次に、バス解析処理部１４０７の処理は、第１の実施形態と同様である。即ち、バスにトランザクションが発生すると、アプリケーションリンク情報を参照し、バスに発生したトランザクションのアドレスと比較する。そして、一致したアドレスのアプリケーションＩＤを、そのトランザクションに関連するアプリケーションとする。
【００７６】
第３の実施形態では、アプリケーションリンク情報として、トランザクション毎に更新されたアドレス別アプリケーションテーブル１４０４を用いることで、第１の実施形態と同様に、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
【００７７】
即ち、動的なメモリ領域が割り当てられるシステムにおいても、バスに発生したトランザクションを起因するアプリケーション別に区分し、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
【００７８】
［第４の実施形態］
次に、図面を参照しながら本発明に係る第４の実施形態について詳細に説明する。第４の実施形態では、動的にメモリ領域を割り当てるシステムであり、かつ外部入力インターフェースのデータにアドレスが割り当てられているシステムを例に挙げて説明する。
【００７９】
図１９は、第４の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。第４の実施形態におけるシステムは、外部入力インターフェースのデータにアドレスが割り当てられているシステムである。尚、図１４に示す第３の実施形態とは、システムのＣＣＤインターフェース１９０２、カードインターフェース１９０３、シリアルインターフェース１９０４がシステムバス１９０５に接続され、アドレスが割り当てられている点が異なる。従って、第４の実施形態では、個々の外部入力インターフェースにアドレスが割り当てられているため、ＣＰＵ１９０１が該当アドレスにリードアクセスすることでデータを取得する。
【００８０】
図１９において、１９０８はアプリケーションリンク情報であり、図１４に示す第３の実施形態と同様に、マスタ別アプリケーションテーブル１９０９、アドレス別アプリケーションテーブル１９１０が含まれる。１９０７はアプリケーションリンク情報生成部であり、バスモニタ１９０６で収集したトランザクション情報、テーブル１９０９、１９１０の情報を入力し、トランザクションが発生する毎にアプリケーションリンク情報１９０８を書き換える。１９１１はバス解析処理部であり、１９１２はバス解析処理部１９１１による解析結果である。
【００８１】
図２０は、図１９に示すシステムにおけるメモリマップを示す図である。この例では、ＣＣＤインターフェース１９０２のデータのアドレスを0xA000_0000とし、カードインターフェース１９０３のデータのアドレスを0xB000_0000とする。更に、シリアルインターフェース１９０４のデータのアドレスを0xC000_0000とする。
【００８２】
次に、図２１を用いて図１９に示すシステムにおいて、写真撮影とＭＰ３再生の２つのアプリケーションが実行されたときのデータフローについて説明する。
【００８３】
図２１は、第４の実施形態における写真撮影とＭＰ３再生のアプリケーションを実行時のデータフローを示す図である。図２１において、２１０１〜２１０４は写真撮影実行時に発生するデータフローである。ＣＣＤインターフェース１９０２からのデータをＣＰＵ１９０１がメインメモリへ転送する場合、ＣＰＵ１９０１がバスマスタとなる。そして、ＣＣＤインターフェース１９０２からデータをリードするフロー２１０１とリードデータをメインメモリへライトするフロー２１０２となる。２１０３はメインメモリからサブプロセッサ１、２１０４はサブプロセッサ１からワークメモリへのデータフローである。
【００８４】
また、２１０５〜２１１０はＭＰ３再生実行時に発生するデータフローである。カードインターフェース１９０３からのデータをＣＰＵ１９０１がメインメモリへ転送する場合、ＣＰＵ１９０１がバスマスタとなる。そして、カードインターフェース１９０３からデータをリードするフロー２１０５とリードデータをメインメモリへライトするフロー２１０６となる。２１０７はメインメモリからサブプロセッサ２、２１０８はサブプロセッサ２からワークメモリ、２１０９はワークメモリからＤＭＡＣ、２１１０はＤＭＡＣからシリアルインターフェースへのデータフローである。
【００８５】
図２２は、２つのアプリケーションを実行したときにシステムバス１９０５に発生するトランザクションをバスモニタ１９０６で収集し表示した結果を示す図である。図２２において、２２０１はシミュレーション時間、２２０２はアドレスバスの値、２２０３はデータバスの値である。２２０４はトランザクションの属性情報であり、「Ｒ］がリード属性、「Ｗ」がライト属性を示している。そして、２２０５はバスを使用しているバスマスタを示す情報である。
【００８６】
２２０６のＲで示されるトランザクションはＣＰＵ１９０１がカードインターフェースへリードアクセスするトランザクションで、データフロー２１０５に対応する。２２０６のＷで示されるトランザクションはＣＰＵ１９０１がメインメモリへライトアクセスするトランザクションで、データフロー２１０６に対応する。２２０７のＲで示されるトランザクションはＣＰＵ１９０１がＣＣＤインターフェースへリードアクセスするトランザクションで、データフロー２１０１に対応する。２２０７のＷで示されるトランザクションはＣＰＵ１９０１がメインメモリへライトアクセスするトランザクションで、データフロー２１０２に対応する。
【００８７】
２２０８はサブプロセッサ２がメインメモリへリードアクセスするトランザクションで、データフロー２１０７に対応する。２２０９は２２０７と同様である。２２１０はサブプロセッサ１がメインメモリへリードアクセスするトランザクションで、データフロー２１０３に対応する。２２１１はサブプロセッサ２がワークメモリへライトアクセスするトランザクションで、データフロー２１０８に対応する。
【００８８】
２２１２はサブプロセッサ１がワークメモリへライトアクセスするトランザクションで、データフロー２１０４に対応する。２２１３のＲで示されるトランザクションはＤＭＡＣがワークメモリへリードアクセスするトランザクションでデータフロー２１０９に対応する。２２１３のＷで示されるトランザクションはＤＭＡＣがシリアルインターフェースへライトアクセスするトランザクションでデータフロー２１１０に対応する。２２１４は２２１３と同様である。
【００８９】
尚、第４の実施形態において、アプリケーションリンク情報生成部１９０７がアプリケーションリンク情報１９０８を生成する処理は図１７に示す第３の実施形態と同様であり、その説明は省略する。
【００９０】
データフローの起点となる外部入力インターフェースのデータアクセスに対する定義は、アドレス別アプリケーションテーブル(1910)の外部入力インターフェースのデータのアドレスに対して固有のアプリケーションを定義しておけばよい。
【００９１】
ここで、図２３を用いて本システムが図２２に示すトランザクションを発行して動作する時のマスタ別アプリケーションテーブル１９０９とアドレス別アプリケーションテーブル１９１０の状態遷移について説明する。
【００９２】
尚、カードインターフェース固有のアプリケーションを「ＭＰ３再生」、ＣＣＤインターフェース固有のアプリケーションを「写真撮影」とする。
【００９３】
図２３は、第４の実施形態におけるテーブル１９０９、１９１０が図１７に示すフローに従って状態遷移する様子を示す図である。２３０１は初期状態である。初期状態では、アドレス別アプリケーションテーブル１９０９の外部入力インターフェースのデータアドレスに対して固有のアプリケーションを定義しておく。
【００９４】
カードインターフェースにＣＰＵ１９０１からリードアクセスがあり、トランザクション２２０６の第一番目が発行されると状態２３０２に遷移する。このとき、バスマスタはＣＰＵ、属性はＲなので、図１７に示すステップＳ１７０３へ進み、マスタ別アプリケーションテーブル１９０９の書き換えを行う。即ち、アドレス別アプリケーションテーブル１９１０における現在のアドレスのカレントアプリケーションＩＤがマスタ別アプリケーションテーブル１９０９のカレントアプリケーションＩＤにコピーされる。現在のアドレスは、カードインターフェースのデータアドレスであるので、ＣＰＵのカレントアプリケーションＩＤは「ＭＰ３再生」となる。
【００９５】
続いて、トランザクション２２０６の第二番目が発行されると状態２３０３に遷移する。このとき、バスマスタはＣＰＵ、属性はＷなので、図１７に示すステップＳ１７０５へ進み、アドレス別アプリケーションテーブル１９１０の書き換えを行う。即ち、マスタ別アプリケーションテーブル１９０９におけるＣＰＵのカレントアプリケーションＩＤがアドレス別アプリケーションテーブル１９１０のカレントアプリケーションＩＤにコピーされ、「ＭＰ３再生」となる。
【００９６】
ＣＣＤインターフェースにＤＭＡＣからリードアクセスがあり、トランザクション２２０７の第一番目が発行されると状態２３０４に遷移する。このとき、バスマスタはＣＰＵ、属性はＲなので、図１７に示すステップＳ１７０３へ進み、マスタ別アプリケーションテーブル１９０９の書き換えを行う。即ち、アドレス別アプリケーションテーブル１９１０の現在のアドレスのカレントアプリケーションＩＤがマスタ別アプリケーションテーブル１９０９のカレントアプリケーションＩＤにコピーされる。現在のアドレスは、ＣＣＤインターフェースのデータアドレスであるので、ＣＰＵのカレントアプリケーションＩＤは「写真撮影」となる。
【００９７】
続いて、トランザクション２２０７の第二番目が発行されると状態２３０５に遷移する。このとき、バスマスタはＣＰＵ、属性はＷなので、図１７に示すステップＳ１７０５へ進み、アドレス別アプリケーションテーブル１９１０の書き換えを行う。即ち、マスタ別アプリケーションテーブル１９０９におけるＣＰＵのカレントアプリケーションＩＤがアドレス別アプリケーションテーブル１９１０のカレントアプリケーションＩＤにコピーされ、「写真撮影」となる。
【００９８】
続いて、トランザクション２２０８が発行されると状態２１０６に遷移する。このとき、バスマスタはサブプロセッサ２、属性はＲなので、図１７に示すステップＳ１７０３へ進み、マスタ別アプリケーションテーブル１９０９の書き換えを行う。即ち、アドレス別アプリケーションテーブル１９１０の現在のアドレスのカレントアプリケーションＩＤがマスタ別アプリケーションテーブル１９０９のカレントアプリケーションＩＤにコピーされる。
【００９９】
以上のように、アドレスとアプリケーションを動的に関連付けていく。
【０１００】
次に、バス解析処理部１９１１の処理は、第１の実施形態と同様である。即ち、バスにトランザクションが発生すると、アプリケーションリンク情報を参照し、バスに発生したトランザクションのアドレスと比較する。そして、一致したアドレスのアプリケーションＩＤを、そのトランザクションに関連するアプリケーションとする。
【０１０１】
第４の実施形態によれば、外部入力インターフェースのデータにアドレスが割り当てられるシステムでも、バスに発生したトランザクションを、起因するアプリケーション別に区分し、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
【０１０２】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【０１０３】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１０４】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１０５】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１０６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【０１０７】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０８】
【図１】第１の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。
【図２】検証対象のシステム１０１におけるメモリマップを示す図である。
【図３】第１の実施形態における写真撮影とＭＰ３再生のアプリケーションを実行時のデータフローを示す図である。
【図４】２つのアプリケーションを実行時にシステムバス１０７に発生するトランザクションをバスモニタ１１３で収集し表示した結果を示す図である。
【図５】従来のバスマスタ毎のバスの占有情報を示す図である。
【図６】第１の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。
【図７】第１の実施形態におけるバス解析処理部１１４の処理を示すフローチャートである。
【図８】第１の実施形態におけるバス解析処理部１１４の解析結果情報１１５の一例を示す図である。
【図９】第１の実施形態におけるアプリケーション毎のバスの占有情報を示す図である。
【図１０】第２の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。
【図１１】第２の実施形態におけるバス解析処理部１１４の処理を示すフローチャートである。
【図１２】第２の実施形態におけるバス解析処理部１１４の解析結果情報１１５の一例を示す図である。
【図１３】第２の実施形態におけるアプリケーションの工程毎にバスの占有情報を示す図である。
【図１４】第３の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。
【図１５】第３の実施形態におけるマスタ別アプリケーションテーブル１４０３の構成の一例を示す図である。
【図１６】第３の実施形態におけるアドレス別アプリケーションテーブルの構成の一例を示す図である。
【図１７】第３の実施形態におけるアプリケーションリンク情報生成部１４０５の処理を示すフローチャートである。
【図１８】第３の実施形態におけるテーブル１４０３、１４０４が図１７に示すフローに従って状態遷移する様子を示す図である。
【図１９】第４の実施形態におけるシステムＬＳＩ検証装置の構成の一例を示す図である。
【図２０】図１９に示すシステムにおけるメモリマップを示す図である
【図２１】第４の実施形態における写真撮影とＭＰ３再生のアプリケーションを実行時のデータフローを示す図である。
【図２２】２つのアプリケーションを実行したときにシステムバス１９０５に発生するトランザクションをバスモニタ１９０６で収集し表示した結果を示す図である。
【図２３】第４の実施形態におけるテーブル１９０９、１９１０が図１７に示すフローに従って状態遷移する様子を示す図である。
【符号の説明】
【０１０９】
１０１  検証対象のシステム
１０２  ＣＰＵ
１０３  メインメモリ
１０４  ワークメモリ
１０５  サブプロセッサ（Sub-pro1）
１０６  サブプロセッサ（Sub-pro2）
１０７  システムバス
１０８  ＤＭＡコントローラ（ＤＭＡＣ）
１０９  ＣＣＤインターフェース
１１０  カードインターフェース
１１１  シリアルインターフェース
１１２  アプリケーションリンク情報
１１３  バスモニタ
１１４  バス解析処理部
１１５  解析結果情報
【図１】
2007207120.tif 000003
【図２】
2007207120.tif 000004
【図３】
2007207120.tif 000005
【図４】
2007207120.tif 000006
【図５】
2007207120.tif 000007
【図６】
2007207120.tif 000008
【図７】
2007207120.tif 000009
【図８】
2007207120.tif 000010
【図９】
2007207120.tif 000011
【図１０】
2007207120.tif 000012
【図１１】
2007207120.tif 000013
【図１２】
2007207120.tif 000014
【図１３】
2007207120.tif 000015
【図１４】
2007207120.tif 000016
【図１５】
2007207120.tif 000017
【図１６】
2007207120.tif 000018
【図１７】
2007207120.tif 000019
【図１８】
2007207120.tif 000020
【図１９】
2007207120.tif 000021
【図２０】
2007207120.tif 000022
【図２１】
2007207120.tif 000023
【図２２】
2007207120.tif 000024
【図２３】
2007207120.tif 000025