JP2007207120A - システム検証装置及びその検証方法 - Google Patents
システム検証装置及びその検証方法 Download PDFInfo
- Publication number
- JP2007207120A JP2007207120A JP2006027708A JP2006027708A JP2007207120A JP 2007207120 A JP2007207120 A JP 2007207120A JP 2006027708 A JP2006027708 A JP 2006027708A JP 2006027708 A JP2006027708 A JP 2006027708A JP 2007207120 A JP2007207120 A JP 2007207120A
- Authority
- JP
- Japan
- Prior art keywords
- application
- bus
- transaction
- address
- information
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】 アプリケーションによるバストランザクションを解析し、アプリケーション毎にバス占有率を示す情報を提供する。
【解決手段】 システムバスに発行されるトランザクションをモニタし、そのトランザクションとアプリケーションとを関連付ける情報を保有する。そして、モニタされたトランザクションを保有された情報に基づいてアプリケーション別に区分して提供する。
【選択図】 図9
【解決手段】 システムバスに発行されるトランザクションをモニタし、そのトランザクションとアプリケーションとを関連付ける情報を保有する。そして、モニタされたトランザクションを保有された情報に基づいてアプリケーション別に区分して提供する。
【選択図】 図9
Description
本発明は、システムバスの解析を支援する機能を有するシステム検証技術に関するものである。
近年、ハードウェアとソフトウェアを結合した協調検証は、システムLSIの開発に際し、ソフトウェアの早期開発、ハードウェアアーキテクチャ探索、ハードウェアとソフトウェアの同時動作時不具合のデバッグなど、様々な目的で用いられている。例えば、特許文献1参照。
また、画像データなどのデータ量の多い複数アプリケーションが動作するプログラムを実行するシステムLSIでは、複数アプリケーションの同時動作時にバストラフィックが増加し、バス帯域が不足する。その結果、アプリケーションの動作が遅くなるという問題が発生する。そのため、開発者はシステムLSIの開発時に、バス帯域が不足していないことを検証する目的で、ハードウェアとソフトウェアの協調検証を行っている。
特開2003-233634号公報
従来、ハードウェアとソフトウェアの協調検証ツールであるバス解析手法では、どのバスマスタがどのくらいの時間バスを使用しているかを示す情報をバスマスタ毎にバス占有率として提供可能としている。
しかしながら、複数アプリケーションの同時動作時にバス帯域が不足していないことを検証する目的で、ハードウェアとソフトウェアの協調検証を行う場合、開発者にとってはむしろ、どのアプリケーション処理がどれだけバスを使用しているかが重要である。これは、検証結果からバス帯域の不足が確認された場合、バストラフィックを減少させるためのアルゴリズムの変更やバスアーキテクチャの変更は、アプリケーション単位で検討するからである。従って、従来のバストランザクションとバスマスタの関連性を示すだけでは、問題となるアプリケーションの早期把握が困難である。
即ち、問題となるアプリケーションを把握するためには、バストランザクションとアプリケーションとの関連性を明らかにしたアプリケーション毎にバスの占有率を示す情報が有効である。
本発明は、アプリケーションによるバストランザクションを解析し、アプリケーション毎にバス占有率を示す情報を提供することを目的とする。
本発明は、システムバスの解析を支援する機能を有するシステム検証装置であって、システムバスに発行されるトランザクションをモニタするバスモニタ手段と、前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有手段と、前記バスモニタ手段でモニタされたトランザクションを前記情報保有手段で保有された情報に基づいてアプリケーション別に区分する区分手段とを有することを特徴とする。
本発明によれば、バスに発生したトランザクションを、起因するアプリケーション別に区分することにより、アプリケーション毎にバスの占有率の情報を提供することが可能となり、問題になるアプリケーションの早期把握が可能となる。
更に、バストランザクションとアプリケーションとを関連付ける情報に基づき、より詳細なアプリケーションの工程毎にバスの占有率の情報を取得することが可能となり、バス解析に有効な情報が得られる。
また、ソフトウェアプログラムを参照せずに実現しているためソフトウェア構造に依存することなく、バスに発生したトランザクションを、起因するアプリケーション別に区分することが可能である。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
[第1の実施形態]
第1の実施形態として、バスに発生したトランザクションをアプリケーション別に区分するシステムLSI検証装置について説明する。
第1の実施形態として、バスに発生したトランザクションをアプリケーション別に区分するシステムLSI検証装置について説明する。
図1は、第1の実施形態におけるシステムLSI検証装置の構成の一例を示す図である。図1において、101は検証対象のシステムである。システム101はメインプロセッサのCPU102、メインメモリ103、ワークメモリ104、画像処理を行うサブプロセッサ(Sub-pro1)105、信号処理を行うサブプロセッサ(Sub-pro2)106を含む。更に、システムバス107、外部インターフェースとシステムバス間のデータ転送を行うDMAコントローラ(DMAC)108、CCDインターフェース109、カードインターフェース110、シリアルインターフェース111を含む。また、このDMAC108は、CCDインターフェース、カードインターフェース、シリアルインターフェース用に3チャネルを内蔵する。
また、112はトランザクションとアプリケーションとを関連付けるためのアプリケーションリンク情報である。113はシステムバス107に接続されたバスモニタであり、システムバス107に発生したトランザクションを収集する。このバスモニタ113は、トランザクションをモニタする機能を有する。114はバス解析処理部であり、バスモニタ113で収集した情報とアプリケーションリンク情報112とを入力し、その解析結果をアプリケーション別に区分した解析結果情報115として出力する。
図2は、検証対象のシステム101におけるメモリマップを示す図である。図2に示す201はメインメモリ103に対応する領域でアドレス0x0000_0000〜0x4000_0000番地が割り当てられている。この領域内にCCDインターフェース109から取り込んだデータを格納する領域203がアドレス0x0200_000〜0x05FF_FFFF番地に割り当てられている。また、この領域内にMP3データを格納する領域204がアドレス0x0600_0000〜0x09FF_FFFF番地に割り当てられている。
一方、202はワークメモリ104に対応する領域でアドレス0xF000_0000〜0xF008000番地が割り当てられている。この領域内に画像処理後のCCDデータを格納する領域205がアドレス0xF000_0000〜0xF001_FFFF番地に割り当てられている。また、この領域内にMP3デコードデータを格納する領域206がアドレス0xF002_000〜0xF002_FFFF番地に割り当てられている。
次に、図3を用いて検証対象のシステム101において、写真撮影とMP3再生の2つのアプリケーションが実行されたときのデータフローについて説明する。
図3は、第1の実施形態における写真撮影とMP3再生のアプリケーションを実行時のデータフローを示す図である。図3において、301〜303は写真撮影実行時に発生するデータフローである。301はCCDインターフェース109からメインメモリ103へ、302はメインメモリ103からサブプロセッサ105へ、303はサブプロセッサ105からワークメモリ104へのデータフローである。
また、304〜307はMP3再生実行時に発生するデータフローである。304はカードインターフェース110からメインメモリ103へ、305はメインメモリ103からサブプロセッサ106へのデータフローである。更に、306はサブプロセッサ106からワークメモリ104へ、307はワークメモリ104からシリアルインターフェース111へのデータフローである。
ここで、2つのアプリケーションの動作を、システムバス107上に発生するデータに着目して説明する。
[写真撮影]以下の(A)工程〜(C)工程の各工程で動作する。
(A)CPU102によって起動されたDMAC108がCCDインターフェース109から撮影データを取り込み、撮像データをメインメモリ103内のCCDデータ格納領域203へ転送する。このとき、DMAC108がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー301に対応する。
(B)1フレームのデータ転送が終わると、サブプロセッサ105がメインメモリ103内のCCDデータ格納領域203から処理単位の撮像データを取り込む。このとき、サブプロセッサ105がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー302に対応する。
(C)サブプロセッサ105内部での画像処理が終わると、画像処理後のデータをワークメモリ104内のCCD画像処理データ格納領域205へ転送する。このとき、サブプロセッサ105がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー303に対応する。
[MP3再生]以下の(D)工程〜(G)工程の各工程で動作する。
(D)CPU102によって起動されたDMAC108がカードインターフェース110からMP3再生データをメインメモリ103内のMP3データ格納領域204へ転送する。このとき、DMAC108がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー304に対応する。
(E)サブプロセッサ106がメインメモリ103内のMP3データ格納領域204からMP3データを取り込む。このとき、サブプロセッサ106がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー305に対応する。
(F)サブプロセッサ106内部でデコード処理が終わると、デコードデータをワークメモリ104内のMP3デコードデータ格納領域206へ転送する。このとき、サブプロセッサ106がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー306に対応する。
(G)CPU102によって起動されたDMAC108がワークメモリ104内部のMP3デコードデータ格納領域206からシリアルインターフェース111へデータを転送する。このとき、DMAC108がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー307に対応する。
[写真撮影]以下の(A)工程〜(C)工程の各工程で動作する。
(A)CPU102によって起動されたDMAC108がCCDインターフェース109から撮影データを取り込み、撮像データをメインメモリ103内のCCDデータ格納領域203へ転送する。このとき、DMAC108がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー301に対応する。
(B)1フレームのデータ転送が終わると、サブプロセッサ105がメインメモリ103内のCCDデータ格納領域203から処理単位の撮像データを取り込む。このとき、サブプロセッサ105がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー302に対応する。
(C)サブプロセッサ105内部での画像処理が終わると、画像処理後のデータをワークメモリ104内のCCD画像処理データ格納領域205へ転送する。このとき、サブプロセッサ105がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー303に対応する。
[MP3再生]以下の(D)工程〜(G)工程の各工程で動作する。
(D)CPU102によって起動されたDMAC108がカードインターフェース110からMP3再生データをメインメモリ103内のMP3データ格納領域204へ転送する。このとき、DMAC108がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー304に対応する。
(E)サブプロセッサ106がメインメモリ103内のMP3データ格納領域204からMP3データを取り込む。このとき、サブプロセッサ106がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー305に対応する。
(F)サブプロセッサ106内部でデコード処理が終わると、デコードデータをワークメモリ104内のMP3デコードデータ格納領域206へ転送する。このとき、サブプロセッサ106がバスマスタとなり、システムバス107にライトトランザクションを発生させる。このトランザクションはデータフロー306に対応する。
(G)CPU102によって起動されたDMAC108がワークメモリ104内部のMP3デコードデータ格納領域206からシリアルインターフェース111へデータを転送する。このとき、DMAC108がバスマスタとなり、システムバス107にリードトランザクションを発生させる。このトランザクションはデータフロー307に対応する。
図4は、2つのアプリケーションを実行時にシステムバス107に発生するトランザクションをバスモニタ113で収集し表示した結果を示す図である。図4において、401はシミュレーション時間、402はアドレスバスの値、403はデータバスの値である。404はトランザクションの属性情報であり、「R」がリード属性、「W」がライト属性を示している。そして、405はバスを使用しているバスマスタを示す情報である。
従来、バスモニタ113で収集したシミュレーション時間とバスマスタ情報とに基づきバスマスタ毎のバスの占有情報を作成する。
図5は、従来のバスマスタ毎のバスの占有情報を示す図である。図5において、横軸がシミュレーション時間を示し、1カラムはクロックの1サイクルに相当する。各マスタがどのサイクルでバスを使用しているかが示されている。
従来得られる図4及び図5に示す情報からバスのトランザクションとアプリケーション処理の関連性は判断し難い。
一方、第1の実施形態におけるシステムLSI検証装置では、バスモニタ113で収集したトランザクションとアプリケーションの関連性をバス解析処理部114が以下のように解析する。
まず、トランザクション406はDMAC108がバスマスタとなり、アドレス0x06XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ103のMP3データ格納領域204にアクセスしていることが分かり、このトランザクションはMP3再生の(D)工程のトランザクションであると判断できる。
次に、トランザクション407はDMAC108がバスマスタとなり、アドレス0x02XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ103のCCDデータ格納領域203にアクセスしていることが分かり、このトランザクションは写真撮影の(A)工程のトランザクションであると判断できる。
次に、トランザクション408はサブプロセッサ106がバスマスタとなり、アドレス0x06XX_XXXX番地をリードする。アドレスマップより、メインメモリ103のMP3データ格納領域204にアクセスしていることが分かり、このトランザクションはMP3再生の(E)工程のトランザクションであると判断できる。
次に、トランザクション409はトランザクション407と同じであり、(A)工程と(D)工程が並列に動作している。
その後、トランザクション410が発生し、サブプロセッサ105がバスマスタとなり、アドレス0x02XX_XXXX番地をリードする。アドレスマップより、CCDデータ格納領域203にアクセスしていることが分かり、このトランザクションは(B)工程のトランザクションであると判断できる。
次に、トランザクション411はサブプロセッサ106がバスマスタとなり、アドレス0xF002_XXXX番地にデータをライトする。アドレスマップより、MP3デコードデータ格納領域206にアクセスしていることが分かり、このトランザクションは(F)工程のトランザクションであると判断できる。
次に、トランザクション412はサブプロセッサ105がバスマスタとなり、アドレス0xF000_XXXX番地にデータをライトする。アドレスマップより、CCD画像処理データ格納領域205にアクセスしていることが分かり、(C)工程のトランザクションであると判断できる。
次に、トランザクション413はDMAC108がバスマスタとなり、アドレス0xF002_XXXX番地をリードする。アドレスマップより、MP3デコードデータ格納領域206にアクセスしていることが分かり、このトランザクションは(G)工程のトランザクションであると判断できる。
次に、トランザクション414はDMAC108がバスマスタとなり、アドレス0x02XX_XXXX番地にデータをライトする。アドレスマップより、メインメモリ103のCCDデータ格納領域203にアクセスしていることが分かり、このトランザクションは写真撮影の(A)工程のトランザクションであると判断できる。
上述の解析を行うために、第1の実施形態では、トランザクションとアプリケーションを関連付けるアプリケーションリンク情報112を本検証装置内に持つ。
図6は、第1の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。「写真撮影」のアプリケーションは図2に示すシステムメモリマップよりアドレス0x0200_0000〜0x03FF_FFFF番地と0xF000_0000〜0xF001_FFFF番地が割り当てられている。そして、「MP3再生」のアプリケーションはアドレス0x0600_0000〜0x07FF_FFFF番地と0xF002_0000〜0xF003_FFFF番地が割り当てられている。この情報が、トランザクションとアプリケーションを関連付けるリンク情報となる。従って、この情報を利用してバス解析処理部114が、バスモニタ113が収集したトランザクションを、起因するアプリケーション別に区分する。
図7は、第1の実施形態におけるバス解析処理部114の処理を示すフローチャートである。尚、図7において、「Addr」と「application」は変数として定義されているものとする。
まず、ステップS701で、バスモニタ113が取得したトランザクションのアドレスを変数Addrに代入する。次に、ステップS702で、アプリケーションリンク情報112を参照し、写真撮影に関連するアドレスと比較する。ここで、条件が真(true)であればステップS703へ進み、変数applicationに“写真撮影”を代入する。また、条件が偽(false)であればステップS704へ進み、アプリケーションリンク情報112を参照し、MP3再生に関連するアドレスと比較する。ここで、条件が真(true)であればステップS705へ進み、変数applicationに“MP3再生”を代入する。
図8は、第1の実施形態におけるバス解析処理部114の解析結果情報115の一例を示す図である。図8に示すように、バスモニタ113で収集したデータに、アプリケーション情報を示す変数applicationが付加されて表示される。801はアプリケーション情報である。
更に、図8に示すデータ中のシミュレーション時間及びアプリケーション情報からアプリケーション毎のバスの占有情報を作ることが可能になる。
図9は、第1の実施形態におけるアプリケーション毎のバスの占有情報を示す図である。図9において、横軸がシミュレーション時間を示し、1カラムはクロックの1サイクルに相当する。各アプリケーションがどのサイクルでバスを使用しているかを示している。従って、図9に示すように、どのアプリケーションがバスを混雑させているか一目瞭然である。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態について詳細に説明する。尚、第2の実施形態におけるシステムLSI検証装置の構成は、図1に示す第1の実施形態と同様であり、その説明は省略する。また、
第2の実施形態では、アプリケーションリンク情報112として、図10に示す情報を用いるものとする。
次に、図面を参照しながら本発明に係る第2の実施形態について詳細に説明する。尚、第2の実施形態におけるシステムLSI検証装置の構成は、図1に示す第1の実施形態と同様であり、その説明は省略する。また、
第2の実施形態では、アプリケーションリンク情報112として、図10に示す情報を用いるものとする。
図10は、第2の実施形態におけるアプリケーションリンク情報の構成の一例を示す図である。図10に示すように、第2の実施形態では、アプリケーションの工程番号とその工程番号に対応するトランザクションの属性が付加されている。この情報を使用してバス解析処理部114が、バスモニタ113で収集したトランザクションを、起因するアプリケーションの工程別に区分する。
図11は、第2の実施形態におけるバス解析処理部114の処理を示すフローチャートである。尚、図11において、「Addr」、「Attr」、「application」、「koutei」は変数として定義されているものとする。
まず、ステップS1101で、バスモニタ113が取得したトランザクションのアドレスを変数Addrに、属性を変数Attrに代入する。次に、ステップS1102で、アプリケーションリンク情報112(図10)を参照し、アドレスと比較する。そして、ステップS1103で、ステップS1102における比較結果に基づいて関連するアプリケーションを示す変数applicationを決定する。
次に、ステップS1104で、アプリケーションリンク情報112(図10)を参照し、属性がライト(W)であるか、リード(R)であるかを判定する。そして、ステップS1105で、ステップS1104における属性判定結果に基づいて、トランザクションに関連するアプリケーションの工程を示す変数kouteiを決定する。
図12は、第2の実施形態におけるバス解析処理部114の解析結果情報115の一例を示す図である。図12に示すように、バスモニタ113で収集したデータにアプリケーション情報を示す変数application及び工程を示す変数kouteiが付加されて表示される。1201は付加したアプリケーションとその工程情報である。
更に、図12に示すデータ中のシミュレーション時間、工程情報からアプリケーションの工程毎にバスの占有情報を作ることが可能となる。
図13は、第2の実施形態におけるアプリケーションの工程毎にバスの占有情報を示す図である。図13において、横軸がシミュレーション時間を示し、1カラムはクロックの1サイクルに相当する。各アプリケーションの工程がどのサイクルでバスを使用しているかを示している。
第2の実施形態によれば、バストランザクションとアプリケーションを関連付ける情報を備えることで、より詳細なアプリケーションの工程毎にバスの占有率の情報を取得することが可能となる。
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態について詳細に説明する。第1又は第2の実施形態では、アプリケーションリンク情報としてアプリケーションとメモリアドレス領域を予め関連付けた情報(図6又は図10)を使用する例を挙げた。しかし、プロセッサのMMU機能を使用したシステムでは、動的にメモリ領域を割り当てるので、アプリケーションとメモリアドレス領域を予め関連付けた情報を準備できない。そこで、第3の実施形態では、以下のような手法を実施するものである。
次に、図面を参照しながら本発明に係る第3の実施形態について詳細に説明する。第1又は第2の実施形態では、アプリケーションリンク情報としてアプリケーションとメモリアドレス領域を予め関連付けた情報(図6又は図10)を使用する例を挙げた。しかし、プロセッサのMMU機能を使用したシステムでは、動的にメモリ領域を割り当てるので、アプリケーションとメモリアドレス領域を予め関連付けた情報を準備できない。そこで、第3の実施形態では、以下のような手法を実施するものである。
データフローの起点となる外部入力インターフェースのデータへのアクセスに対して、外部入力インターフェース固有のアプリケーションを定義し、そのデータがハードウェア処理され、格納されていくアドレスを追跡する。そして、そのアドレスにも同一アプリケーションを定義することによりアドレスとアプリケーションを動的に関連付けていく。
図14は、第3の実施形態におけるシステムLSI検証装置の構成の一例を示す図である。図14において、1401は検証対象のシステムである。このシステムは図1に示すシステム101と同一で、システム1401のデータフローは図3と同一で、トランザクションの発行の順序は図4と同一である。但し、動的にメモリ領域を割り当てるシステムであるため、メモリマップ内の用途203〜206は分かっていない。
また、1402はアプリケーションリンク情報である。このリンク情報1402には、各マスタが現在実行しているアプリケーションの情報を持つ、マスタ別アプリケーションテーブル1403が含まれる。更に、現在そのアドレスを使用しているアプリケーションの情報を持つ、アドレス別アプリケーションテーブル1404が含まれる。
1405はアプリケーションリンク情報生成部であり、バスモニタ1406で収集したトランザクション情報、DMACと外部インターフェース間の信号1408及びテーブル1403、1404の情報を入力する。そして、トランザクションが発生する毎にアプリケーションリンク情報1402のテーブル1403、1404を書き換える。1407はバス解析処理部であり、1409はバス解析処理部1407による解析結果である。
図15は、第3の実施形態におけるマスタ別アプリケーションテーブル1403の構成の一例を示す図である。図15において、1501はマスタ(Master)を示す。1502は現在そのマスタが処理しているアプリケーションを示すカレントアプリケーションID(current application ID)である。尚、このカレントアプリケーションID1502がアプリケーションリンク情報生成部1405によって書き換えられる。
図16は、第3の実施形態におけるアドレス別アプリケーションテーブルの構成の一例を示す図である。図16において、1601はアドレス(address)である。1602は現在そのアドレスを使用しているアプリケーションを示すカレントアプリケーションID(current application ID)である。尚、このカレントアプリケーションID1602がアプリケーションリンク情報生成部1405によって書き換えられる。
ここで、アプリケーションリンク情報生成部1405がバスモニタ1406で収集したトランザクション情報とテーブル1403、1404の情報を入力し、アプリケーションリンク情報1402を書き換える処理について説明する。
図17は、第3の実施形態におけるアプリケーションリンク情報生成部1405の処理を示すフローチャートである。尚、図17において、「Addr」、「Attr」、「Master」は変数として定義されているものとする。
まず、ステップS1701で、バスモニタ1406が取得したトランザクションのアドレスを変数Addrに、属性を変数Attrに、バスマスタのマスタIDを変数Masterにそれぞれ格納する。次に、ステップS1702で、属性がリード(R)であるか否かを判定する。ここで、リードであればステップS1703へ進み、マスタ別アプリケーションテーブル1403のマスタ1501を変数Masterで検索する。そして、検索されたマスタ1501に対応するカレントアプリケーションID1502を、アドレス別アプリケーションテーブル1404のカレントアプリケーションID1602で書き換える。具体的には、変数Addrでアドレス別アプリケーションテーブル1404を検索し、検索されたアドレス1601に対応するカレントアプリケーションID1602で書き換える。
また、ステップS1702で、属性がリードでなければステップS1704へ進み、ライトか判定する。ここで、ライトであればステップS1705へ進み、アドレス別アプリケーションテーブルのアドレス1601を変数Addrで検索する。そして、検索されたアドレス1601に対応するカレントアプリケーションID1602を、マスタ別アプリケーションテーブル1403のカレントアプリケーションID1502で書き換える。具体的には、変数Masterでマスタ別アプリケーションテーブル1403を検索し、検索されたマスタ1501に対応するカレントアプリケーションID1502で書き換える。
次に、データフローの起点となる外部入力インターフェースのデータアクセスに対する定義について説明する。
システム1401において、外部入力インターフェースであるCCDインターフェース及びカードインターフェースからメインメモリへのデータ転送が行われる。データ転送は、DMACがCCDインターフェース、カードインターフェースとの間の信号1408(リクエスト信号とアクノリッジ信号のハンドシェーク方式)で行われる。その後、メインメモリのアドレスに対してデータをライトするバストランザクションを発行する。ここで、外部入力インターフェースは個別にリクエスト信号とアクノリッジ信号を持つ。
一方、アプリケーションリンク情報生成部1405が各々の外部入力インターフェースのアクノリッジ信号をモニタし、アクノリッジ信号の発行を検知すると、マスタ別アプリケーションテーブル1402を書き換える。つまり、マスタ別アプリケーションテーブル1402におけるマスタ1501のDMACのカレントアプリケーションID1502を該当する外部入力インターフェース固有のアプリケーションに書き換える。これにより、起点となるデータアクセスに対するアプリケーションを定義する。
ここで、図18を用いて本システムが図4に示すトランザクションを発行して動作する時のマスタ別アプリケーションテーブル1403とアドレス別アプリケーションテーブル1404の状態遷移について説明する。
尚、カードインターフェース固有のアプリケーションを「MP3再生」、CCDインターフェース固有のアプリケーションを「写真撮影」とする。またトランザクション406の前に、カードインターフェースのアクノリッジが発行され、トランザクション407の前に、CCDインターフェースのアクノリッジが発行されるものとする。
図18は、第3の実施形態におけるテーブル1403、1404が図17に示すフローに従って状態遷移する様子を示す図である。1801は初期状態である。初期状態では、マスタ別アプリケーションテーブル1403、アドレス別アプリケーションテーブル1404のカレントアプリケーションIDは共に定義されていない。
カードインターフェースにDMACからアクセスがあり、アクノリッジが発行されると、カードインターフェースのデータアクセス開始状態1802に遷移する。このとき、アプリケーションリンク情報生成部1405がマスタ別アプリケーションテーブル1403におけるマスタ1501のDMACのカレントアプリケーションID1502を「MP3再生」と定義する。
続いて、トランザクション406が発行されると状態1803に遷移する。このとき、バスマスタはDMAC、属性はライト(W)なので、図17に示すステップS1705へ進み、アドレス別アプリケーションテーブル1404の書き換えを行う。即ち、マスタ別アプリケーションテーブル1403におけるDMACのカレントアプリケーションIDがアドレス別アプリケーションテーブル1404のカレントアプリケーションIDにコピーされ、「MP3再生」となる。ここで書き換えは、アドレス別アプリケーションテーブル1404における、現在のアドレスである変数Addrのアドレスに対して行われる。
次に、CCDインターフェースにDMACからアクセスがあり、アクノリッジが発行されると、CCDインターフェースへのデータアクセス開始状態1804に遷移する。このとき、アプリケーションリンク情報生成部1405がマスタ別アプリケーションテーブル1403におけるマスタ1501のDMACのカレントアプリケーションID1502を「写真撮影」と定義する。
続いて、トランザクション407が発行されると状態1805に遷移する。このとき、バスマスタはDMAC、属性はライト(W)なので、図17に示すステップS1705へ進み、アドレス別アプリケーションテーブル1404の書き換えを行う。即ち、マスタ別アプリケーションテーブル1403におけるDMACのカレントアプリケーションIDがアドレス別アプリケーションテーブル1404のカレントアプリケーションIDにコピーされ、「写真撮影」となる。ここで書き換えは、アドレス別アプリケーションテーブル1404における、現在のアドレスである変数Addrのアドレスに対して行われる。
続いて、トランザクション408が発行されると状態1806に遷移する。このとき、バスマスタはサブプロセッサ2(Sub-pro2)、属性はリード(R)なので、図17に示すステップS1703へ進み、マスタ別アプリケーションテーブル1403の書き換えを行う。即ち、アドレス別アプリケーションテーブル1404における現在のアドレスのカレントアプリケーションIDがマスタ別アプリケーションテーブル1403のカレントアプリケーションIDにコピーされる。従って、マスタ別アプリケーションテーブル1403におけるサブプロセッサ2に対応するカレントアプリケーションIDは「MP3再生」となる。
以上のように、アドレスとアプリケーションを動的に関連付けていく。
次に、バス解析処理部1407の処理は、第1の実施形態と同様である。即ち、バスにトランザクションが発生すると、アプリケーションリンク情報を参照し、バスに発生したトランザクションのアドレスと比較する。そして、一致したアドレスのアプリケーションIDを、そのトランザクションに関連するアプリケーションとする。
第3の実施形態では、アプリケーションリンク情報として、トランザクション毎に更新されたアドレス別アプリケーションテーブル1404を用いることで、第1の実施形態と同様に、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
即ち、動的なメモリ領域が割り当てられるシステムにおいても、バスに発生したトランザクションを起因するアプリケーション別に区分し、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
[第4の実施形態]
次に、図面を参照しながら本発明に係る第4の実施形態について詳細に説明する。第4の実施形態では、動的にメモリ領域を割り当てるシステムであり、かつ外部入力インターフェースのデータにアドレスが割り当てられているシステムを例に挙げて説明する。
次に、図面を参照しながら本発明に係る第4の実施形態について詳細に説明する。第4の実施形態では、動的にメモリ領域を割り当てるシステムであり、かつ外部入力インターフェースのデータにアドレスが割り当てられているシステムを例に挙げて説明する。
図19は、第4の実施形態におけるシステムLSI検証装置の構成の一例を示す図である。第4の実施形態におけるシステムは、外部入力インターフェースのデータにアドレスが割り当てられているシステムである。尚、図14に示す第3の実施形態とは、システムのCCDインターフェース1902、カードインターフェース1903、シリアルインターフェース1904がシステムバス1905に接続され、アドレスが割り当てられている点が異なる。従って、第4の実施形態では、個々の外部入力インターフェースにアドレスが割り当てられているため、CPU1901が該当アドレスにリードアクセスすることでデータを取得する。
図19において、1908はアプリケーションリンク情報であり、図14に示す第3の実施形態と同様に、マスタ別アプリケーションテーブル1909、アドレス別アプリケーションテーブル1910が含まれる。1907はアプリケーションリンク情報生成部であり、バスモニタ1906で収集したトランザクション情報、テーブル1909、1910の情報を入力し、トランザクションが発生する毎にアプリケーションリンク情報1908を書き換える。1911はバス解析処理部であり、1912はバス解析処理部1911による解析結果である。
図20は、図19に示すシステムにおけるメモリマップを示す図である。この例では、CCDインターフェース1902のデータのアドレスを0xA000_0000とし、カードインターフェース1903のデータのアドレスを0xB000_0000とする。更に、シリアルインターフェース1904のデータのアドレスを0xC000_0000とする。
次に、図21を用いて図19に示すシステムにおいて、写真撮影とMP3再生の2つのアプリケーションが実行されたときのデータフローについて説明する。
図21は、第4の実施形態における写真撮影とMP3再生のアプリケーションを実行時のデータフローを示す図である。図21において、2101〜2104は写真撮影実行時に発生するデータフローである。CCDインターフェース1902からのデータをCPU1901がメインメモリへ転送する場合、CPU1901がバスマスタとなる。そして、CCDインターフェース1902からデータをリードするフロー2101とリードデータをメインメモリへライトするフロー2102となる。2103はメインメモリからサブプロセッサ1、2104はサブプロセッサ1からワークメモリへのデータフローである。
また、2105〜2110はMP3再生実行時に発生するデータフローである。カードインターフェース1903からのデータをCPU1901がメインメモリへ転送する場合、CPU1901がバスマスタとなる。そして、カードインターフェース1903からデータをリードするフロー2105とリードデータをメインメモリへライトするフロー2106となる。2107はメインメモリからサブプロセッサ2、2108はサブプロセッサ2からワークメモリ、2109はワークメモリからDMAC、2110はDMACからシリアルインターフェースへのデータフローである。
図22は、2つのアプリケーションを実行したときにシステムバス1905に発生するトランザクションをバスモニタ1906で収集し表示した結果を示す図である。図22において、2201はシミュレーション時間、2202はアドレスバスの値、2203はデータバスの値である。2204はトランザクションの属性情報であり、「R]がリード属性、「W」がライト属性を示している。そして、2205はバスを使用しているバスマスタを示す情報である。
2206のRで示されるトランザクションはCPU1901がカードインターフェースへリードアクセスするトランザクションで、データフロー2105に対応する。2206のWで示されるトランザクションはCPU1901がメインメモリへライトアクセスするトランザクションで、データフロー2106に対応する。2207のRで示されるトランザクションはCPU1901がCCDインターフェースへリードアクセスするトランザクションで、データフロー2101に対応する。2207のWで示されるトランザクションはCPU1901がメインメモリへライトアクセスするトランザクションで、データフロー2102に対応する。
2208はサブプロセッサ2がメインメモリへリードアクセスするトランザクションで、データフロー2107に対応する。2209は2207と同様である。2210はサブプロセッサ1がメインメモリへリードアクセスするトランザクションで、データフロー2103に対応する。2211はサブプロセッサ2がワークメモリへライトアクセスするトランザクションで、データフロー2108に対応する。
2212はサブプロセッサ1がワークメモリへライトアクセスするトランザクションで、データフロー2104に対応する。2213のRで示されるトランザクションはDMACがワークメモリへリードアクセスするトランザクションでデータフロー2109に対応する。2213のWで示されるトランザクションはDMACがシリアルインターフェースへライトアクセスするトランザクションでデータフロー2110に対応する。2214は2213と同様である。
尚、第4の実施形態において、アプリケーションリンク情報生成部1907がアプリケーションリンク情報1908を生成する処理は図17に示す第3の実施形態と同様であり、その説明は省略する。
データフローの起点となる外部入力インターフェースのデータアクセスに対する定義は、アドレス別アプリケーションテーブル(1910)の外部入力インターフェースのデータのアドレスに対して固有のアプリケーションを定義しておけばよい。
ここで、図23を用いて本システムが図22に示すトランザクションを発行して動作する時のマスタ別アプリケーションテーブル1909とアドレス別アプリケーションテーブル1910の状態遷移について説明する。
尚、カードインターフェース固有のアプリケーションを「MP3再生」、CCDインターフェース固有のアプリケーションを「写真撮影」とする。
図23は、第4の実施形態におけるテーブル1909、1910が図17に示すフローに従って状態遷移する様子を示す図である。2301は初期状態である。初期状態では、アドレス別アプリケーションテーブル1909の外部入力インターフェースのデータアドレスに対して固有のアプリケーションを定義しておく。
カードインターフェースにCPU1901からリードアクセスがあり、トランザクション2206の第一番目が発行されると状態2302に遷移する。このとき、バスマスタはCPU、属性はRなので、図17に示すステップS1703へ進み、マスタ別アプリケーションテーブル1909の書き換えを行う。即ち、アドレス別アプリケーションテーブル1910における現在のアドレスのカレントアプリケーションIDがマスタ別アプリケーションテーブル1909のカレントアプリケーションIDにコピーされる。現在のアドレスは、カードインターフェースのデータアドレスであるので、CPUのカレントアプリケーションIDは「MP3再生」となる。
続いて、トランザクション2206の第二番目が発行されると状態2303に遷移する。このとき、バスマスタはCPU、属性はWなので、図17に示すステップS1705へ進み、アドレス別アプリケーションテーブル1910の書き換えを行う。即ち、マスタ別アプリケーションテーブル1909におけるCPUのカレントアプリケーションIDがアドレス別アプリケーションテーブル1910のカレントアプリケーションIDにコピーされ、「MP3再生」となる。
CCDインターフェースにDMACからリードアクセスがあり、トランザクション2207の第一番目が発行されると状態2304に遷移する。このとき、バスマスタはCPU、属性はRなので、図17に示すステップS1703へ進み、マスタ別アプリケーションテーブル1909の書き換えを行う。即ち、アドレス別アプリケーションテーブル1910の現在のアドレスのカレントアプリケーションIDがマスタ別アプリケーションテーブル1909のカレントアプリケーションIDにコピーされる。現在のアドレスは、CCDインターフェースのデータアドレスであるので、CPUのカレントアプリケーションIDは「写真撮影」となる。
続いて、トランザクション2207の第二番目が発行されると状態2305に遷移する。このとき、バスマスタはCPU、属性はWなので、図17に示すステップS1705へ進み、アドレス別アプリケーションテーブル1910の書き換えを行う。即ち、マスタ別アプリケーションテーブル1909におけるCPUのカレントアプリケーションIDがアドレス別アプリケーションテーブル1910のカレントアプリケーションIDにコピーされ、「写真撮影」となる。
続いて、トランザクション2208が発行されると状態2106に遷移する。このとき、バスマスタはサブプロセッサ2、属性はRなので、図17に示すステップS1703へ進み、マスタ別アプリケーションテーブル1909の書き換えを行う。即ち、アドレス別アプリケーションテーブル1910の現在のアドレスのカレントアプリケーションIDがマスタ別アプリケーションテーブル1909のカレントアプリケーションIDにコピーされる。
以上のように、アドレスとアプリケーションを動的に関連付けていく。
次に、バス解析処理部1911の処理は、第1の実施形態と同様である。即ち、バスにトランザクションが発生すると、アプリケーションリンク情報を参照し、バスに発生したトランザクションのアドレスと比較する。そして、一致したアドレスのアプリケーションIDを、そのトランザクションに関連するアプリケーションとする。
第4の実施形態によれば、外部入力インターフェースのデータにアドレスが割り当てられるシステムでも、バスに発生したトランザクションを、起因するアプリケーション別に区分し、アプリケーション毎にバスの占有率の情報を取得することが可能となる。
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
101 検証対象のシステム
102 CPU
103 メインメモリ
104 ワークメモリ
105 サブプロセッサ(Sub-pro1)
106 サブプロセッサ(Sub-pro2)
107 システムバス
108 DMAコントローラ(DMAC)
109 CCDインターフェース
110 カードインターフェース
111 シリアルインターフェース
112 アプリケーションリンク情報
113 バスモニタ
114 バス解析処理部
115 解析結果情報
102 CPU
103 メインメモリ
104 ワークメモリ
105 サブプロセッサ(Sub-pro1)
106 サブプロセッサ(Sub-pro2)
107 システムバス
108 DMAコントローラ(DMAC)
109 CCDインターフェース
110 カードインターフェース
111 シリアルインターフェース
112 アプリケーションリンク情報
113 バスモニタ
114 バス解析処理部
115 解析結果情報
Claims (8)
- システムバスの解析を支援する機能を有するシステム検証装置であって、
システムバスに発行されるトランザクションをモニタするバスモニタ手段と、
前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有手段と、
前記バスモニタ手段でモニタされたトランザクションを前記情報保有手段で保有された情報に基づいてアプリケーション別に区分する区分手段と、
を有することを特徴とするシステム検証装置。 - 前記情報保有手段は、前記アプリケーションと、アプリケーションの実行に使用されるメモリ領域とを関連付ける情報を保有することを特徴とする請求項1記載のシステム検証装置。
- 前記情報保有手段は、前記アプリケーションと、アプリケーションの実行に使用されるメモリ領域とを関連付ける情報を動的に生成する生成手段を更に有することを特徴とする請求項1記載のシステム検証装置。
- 前記生成手段は、外部入力インターフェースのデータへのアクセスに対してアプリケーションを定義し、そのアドレスのデータがハードウェア処理され、格納されるアドレスに対して同一アプリケーションを定義していくことにより、アプリケーションの実行に使用されるメモリ領域を生成することを特徴とする請求項3記載のシステム検証装置。
- 前記区分手段は、前記トランザクションのアドレスと、前記アプリケーションの実行に使用されるメモリ領域のアドレスとを比較し、比較結果に基づいてアプリケーション別に区分することを特徴とする請求項2又は3記載のシステム検証装置。
- システムバスの解析を支援する機能を有するシステム検証装置の検証方法であって、
システムバスに発行されるトランザクションをモニタするバスモニタ工程と、
前記トランザクションとアプリケーションとを関連付ける情報を保有する情報保有工程と、
前記バスモニタ工程でモニタされたトランザクションを前記情報保有工程で保有された情報に基づいてアプリケーション別に区分する区分工程と、
を有することを特徴とするシステム検証装置の検証方法。 - 請求項6に記載のシステム検証装置の検証方法をコンピュータに実行させるためのプログラム。
- 請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006027708A JP2007207120A (ja) | 2006-02-03 | 2006-02-03 | システム検証装置及びその検証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006027708A JP2007207120A (ja) | 2006-02-03 | 2006-02-03 | システム検証装置及びその検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007207120A true JP2007207120A (ja) | 2007-08-16 |
Family
ID=38486514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006027708A Withdrawn JP2007207120A (ja) | 2006-02-03 | 2006-02-03 | システム検証装置及びその検証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007207120A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134858A (ja) * | 2008-12-08 | 2010-06-17 | Renesas Electronics Corp | データ処理回路 |
CN102681525A (zh) * | 2011-03-15 | 2012-09-19 | 安凯(广州)微电子技术有限公司 | 一种转换控制器的验证方法及系统 |
JP2012181603A (ja) * | 2011-02-28 | 2012-09-20 | Verification Technology Inc | 検証機能を有する半導体デバイス |
US8356195B2 (en) | 2009-06-09 | 2013-01-15 | Kabushiki Kaisha Toshiba | Architecture verifying apparatus, method for verifying architecture, and computer readable medium comprising computer program code for verifying architecture |
JP2013097580A (ja) * | 2011-10-31 | 2013-05-20 | Mitsubishi Electric Corp | 動的解析装置、動的解析システム、動的解析方法、及びプログラム |
CN117539705A (zh) * | 2024-01-10 | 2024-02-09 | 深圳鲲云信息科技有限公司 | 片上系统的验证方法、装置、系统及电子设备 |
-
2006
- 2006-02-03 JP JP2006027708A patent/JP2007207120A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010134858A (ja) * | 2008-12-08 | 2010-06-17 | Renesas Electronics Corp | データ処理回路 |
US8356195B2 (en) | 2009-06-09 | 2013-01-15 | Kabushiki Kaisha Toshiba | Architecture verifying apparatus, method for verifying architecture, and computer readable medium comprising computer program code for verifying architecture |
JP2012181603A (ja) * | 2011-02-28 | 2012-09-20 | Verification Technology Inc | 検証機能を有する半導体デバイス |
CN102681525A (zh) * | 2011-03-15 | 2012-09-19 | 安凯(广州)微电子技术有限公司 | 一种转换控制器的验证方法及系统 |
JP2013097580A (ja) * | 2011-10-31 | 2013-05-20 | Mitsubishi Electric Corp | 動的解析装置、動的解析システム、動的解析方法、及びプログラム |
CN117539705A (zh) * | 2024-01-10 | 2024-02-09 | 深圳鲲云信息科技有限公司 | 片上系统的验证方法、装置、系统及电子设备 |
CN117539705B (zh) * | 2024-01-10 | 2024-06-11 | 深圳鲲云信息科技有限公司 | 片上系统的验证方法、装置、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4888272B2 (ja) | ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置 | |
TWI335512B (en) | Technique for using memory attributes | |
US8457943B2 (en) | System and method for simulating a multiprocessor system | |
CN110659256B (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
JP2007207120A (ja) | システム検証装置及びその検証方法 | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
JP2007286671A (ja) | ソフトウェア/ハードウェア分割プログラム、および分割方法。 | |
CN103020003A (zh) | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 | |
CN104360953B (zh) | 数据拷贝方法及装置 | |
US7673101B2 (en) | Re-assigning cache line ways | |
US7831963B2 (en) | Method for tracing a program executed on a system comprising a plurality of processing units, and a system comprising a plurality of processing units | |
JP3766339B2 (ja) | 入出力制御装置及びコンピュータシステム | |
US20060259695A1 (en) | Visualizing contents and states of hierarchical storage systems across multiple cores | |
JP2009020695A (ja) | 情報処理装置及びシステム | |
US9251023B2 (en) | Implementing automated memory address recording in constrained random test generation for verification of processor hardware designs | |
JP6123931B1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2005165825A (ja) | トレース情報記録装置 | |
JP4865213B2 (ja) | 割込みコントローラ | |
KR101225577B1 (ko) | 어셈블리 언어 코드의 분석 장치 및 방법 | |
JP2000099370A (ja) | 信号処理装置 | |
US20060259692A1 (en) | Writing to a specified cache | |
CN101251811B (zh) | 基于存储器调页行为关联非相关进程内线程的方法和装置 | |
US20230025288A1 (en) | System and method for generation of a report and debug of address transformations in electronic systems described with ip-xact standard | |
JP4858779B2 (ja) | 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム | |
JP4768658B2 (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: 20090407 |