JP2016184376A - 性能評価モジュール及びこれを組み込んだ半導体集積回路 - Google Patents

性能評価モジュール及びこれを組み込んだ半導体集積回路 Download PDF

Info

Publication number
JP2016184376A
JP2016184376A JP2015065539A JP2015065539A JP2016184376A JP 2016184376 A JP2016184376 A JP 2016184376A JP 2015065539 A JP2015065539 A JP 2015065539A JP 2015065539 A JP2015065539 A JP 2015065539A JP 2016184376 A JP2016184376 A JP 2016184376A
Authority
JP
Japan
Prior art keywords
instruction
value
program counter
performance evaluation
unit
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.)
Granted
Application number
JP2015065539A
Other languages
English (en)
Other versions
JP6473023B2 (ja
Inventor
怜 鷹見
Satoshi Takami
怜 鷹見
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.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2015065539A priority Critical patent/JP6473023B2/ja
Publication of JP2016184376A publication Critical patent/JP2016184376A/ja
Application granted granted Critical
Publication of JP6473023B2 publication Critical patent/JP6473023B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】実行されるプログラムについて、イベントベースよりも粒度の小さい命令のクロックサイクルベースでその実行経過を解析できるようにする。
【解決手段】所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサの処理性能を評価する性能評価モジュール40は、命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するPCテーブル24と、プロセッサによる命令の処理に伴いプロセッサから送られるプログラムカウンタの値215とPCテーブルに記憶された実行アドレスの値とを比較し一致するか否かを判断する比較部22と、比較部により一致すると判断される場合に、比較判断されたプログラムカウンタの値に対応する命令の実行数をカウントし出力するカウント制御部23とを備える。
【選択図】図5

Description

本発明は、性能評価モジュール及び半導体集積回路に関し、特に、プロセッサの処理時間を評価するための性能評価モジュール及びこれを組み込んだ半導体集積回路に関する。
プロセッサとメモリ等の周辺回路とを含む半導体集積回路において、プロセッサは、メモリからプログラムコード(命令)を順次に読み出して、該命令に従う処理を実行する。一般に、プロセッサの処理速度の性能を高めるために、個々の命令を複数のステージに分割し、該分割したステージを並列に実行していくパイプライン方式が採用される。
プロセッサの更なる高性能化のためには、ハードウェアに合わせてプログラムを最適化する必要がある。プログラムの最適化は、例えば、プログラムの実行をシミュレートして、個々の命令が実行にどの程度時間がかかるかを解析することによって行われる。
例えば、下記特許文献1は、並列計算機におけるプログラム実行のボトルネックとなっている箇所を知り得るようにするプログラム解析支援装置を開示する。このプログラム解析支援装置は、並列計算機上で実行されるプログラムの各イベントに識別子を付与しながら、これをイベント・トレース・データとして収集、管理し、イベント間の関係を視覚的に見易く編集してディスプレイに表示する。
特開平6−083608号公報
しかしながら、上記のような特許文献1に開示されるプログラム解析支援装置は、プログラムの実行に伴うある一定区間を単位とするイベントベースで、プログラムの解析を行うものであって、実行されるプログラム中の命令をクロックサイクルベースで解析を行うことができなかった。プログラムの構成や命令の種類によっては、ある命令の実行サイクルが、他の命令の実行サイクルに影響を与え、結果として、プログラム全体の処理速度の低下を招くこともあり、上記のようなイベントベースの解析では、性能向上のための十分な解析精度が得られないという課題があった。
そこで、本発明は、プロセッサにより実行されるプログラムについて、イベントベースよりも粒度の小さい命令のクロックサイクルベースでその実行経過を解析することができるようにすることを目的とする。
より具体的には、本発明は、プロセッサによりパイプライン方式で実行されるプログラムについて、個々の命令の実行数をカウントすることができる性能評価モジュールを提供することを目的とする。
また、本発明は、このようなプログラムについて、分岐命令の実行に起因して制御ハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができる性能評価モジュールを提供することを目的とする。
さらに、本発明は、このようなプログラムについて、メモリアクセス命令に起因するデータハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができる性能評価モジュールを提供することを目的とする。
さらにまた、本発明は、プロセッサを含む半導体集積回路に容易に組み込むことを可能にする構成を有する上記のような性能評価モジュールを提供することを目的とする。
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
すなわち、ある観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価する性能評価モジュールであって、前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力するカウント制御部と、を備える性能評価モジュールである。
これにより、性能評価モジュールは、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。
ここで、前記カウント制御部は、段接続された複数の順序回路を含み、前記複数の順序回路によって、順次に、前記プログラムカウンタの値を前記所定の動作クロックの所定クロックサイクル分ラッチした後に、前記命令の実行数をカウントしても良い。
これにより、性能評価モジュールは、段接続された複数の順序回路によって、プログラムカウンタの値を所定クロックサイクル分ラッチすることができるようになる。
さらに、前記所定のクロックサイクルは、前記プロセッサモジュールが一の命令をフェッチした後、前記一の命令を演算実行するために要するクロックサイクル数であっても良い。
これにより、性能評価モジュールは、プロセッサモジュールが一の命令をフェッチした後、一の命令を演算実行するまで、一の命令に対するプログラムカウンタの値をラッチすることができるようになる。
また、前記カウント制御部は、前記プロセッサモジュールにより演算実行される一の命令が分岐命令であって、かつ、該分岐命令の分岐条件が成立する場合に、前記所定のクロックサイクル分ラッチされた前記プログラムカウンタの値を保持する一の順序回路の出力を前記複数の順序回路のそれぞれに入力しても良い。
これにより、性能評価モジュールは、一の命令が分岐命令であって、かつ該分岐命令の分岐条件が成立する場合に、順序回路がラッチしている内容を前記一の順序回路の出力に更新することによって、分岐命令によって発生するハザードに対しても正しく個々の命令の実行数をカウントすることができるようになる。
さらに、前記カウント制御部は、前記所定の分岐命令の分岐条件が成立しない場合に、前記比較判断されたプログラムプログラムカウンタの値を最前段の前記順序回路に入力しても良い。
また、前記カウント制御部は、前記プロセッサモジュールにより演算実行される一の命令が所定のメモリモジュールに対する読み出し命令であって、かつ、前記演算実行後に前記所定のメモリモジュールから読み出された値を格納するための領域を示すアドレスの値と、他の命令の演算実行前に該他の命令に従う値を格納する領域を示すアドレスの値とが一致する場合に、前記一の命令の演算実行時までラッチされた前記プログラムカウンタの値を前記プログラムカウンタ比較部に送る選択部をさらに備えても良い。
これにより、性能評価モジュールは、一の命令がメモリモジュールに対する読み出し命令であって、ハザードが発生する条件を満たす場合に、一の命令に対するプログラムカウンタの値をプログラムカウンタ比較部に送るため、メモリモジュールに対する読み出し命令によって発生するハザードに対しても正しく個々の命令の実行数をカウントすることができるようになる。
また、前記性能評価モジュールは、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントしても良い。
これにより、性能評価モジュールは、識別子に対応する命令ごとに命令の実行数をカウントすることができるようになる。
さらに、別の観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールと、前記プロセッサモジュールに接続された少なくとも1つの性能評価モジュールと、前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、を備え、前記少なくとも1つの性能評価モジュールは、前記プロセッサモジュールによる命令の処理に伴うプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、前記プログラムカウンタの値に対応する命令の実行数をカウントするカウンタ制御部と、を備え、前記プログラムカウンタ比較部は、前記プロセッサモジュールによって命令がフェッチされることにより前記プロセッサモジュールから送られる前記プログラムカウンタの値に基づいて、一致するか否かの判断を行い、前記カウント制御部は、前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力する、半導体集積回路である。
これにより、半導体集積回路は、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。
ここで、前記半導体集積回路は、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントするための前記性能評価モジュールを複数備えても良い。
これにより、半導体集積回路は、識別子に対応する命令ごとに命令の実行数をカウントすることができるようになる。
さらに、別の観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価するための性能評価方法であって、前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値を受け取ることと、プログラムカウンタテーブルに記憶された前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を受け取ることと、前記プログラムカウンタの値と前記実行アドレスの値とを比較し、一致するか否かを判断することと、前記プログラムカウンタの値と前記実行アドレスの値とが一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントすることとを含む、性能評価方法である。
これにより、性能評価モジュールは、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。
本発明によれば、性能評価モジュールは、プロセッサ上で実行されるプログラムについて、イベントベースよりも粒度の小さい命令のクロックサイクルベースでその実行を解析することができるようになる。
すなわち、本発明によれば、性能評価モジュールは、プロセッサ上で実行されるプログラムについて、個々の命令の実行数をカウントすることができるようになる。
また、本発明によれば、性能評価モジュールは、プロセッサによりパイプライン方式で実行されるプログラムについて、分岐命令の実行に起因して制御ハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができるようになる。
また、本発明によれば、性能評価モジュールは、プロセッサによりパイプライン方式で実行されるプログラムについて、メモリアクセス命令に起因するデータハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができるようになる。
また、本発明によれば、性能評価モジュールは、上記の効果を実現しつつ、プロセッサを含む半導体集積回路に容易に組み込まれることを可能にする構成を有することができるようになる。
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールの構成の一例を示す図である。 本発明の一実施形態に係るプロセッサモジュールにおける各コンポーネントの構成の一例を示す図である。 本発明の一実施形態に係るプロセッサモジュールにおける各コンポーネントの構成の一例を示す図である。 本発明の一実施形態に係る性能評価モジュールの構成の一例を示す図である。 本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。 本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。 本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。
次に、本発明の実施の形態について、図面を参照しつつ説明する。
図1は、本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体集積回路1は、例えば、プロセッサモジュール10と、メモリモジュール20と、チップセット30と、性能評価モジュール40とを含んで構成される。半導体集積回路1は、典型的には、図示しない所定のI/Oインターフェースを介して、ストレージデバイス50や入出力装置60等を接続し、コンピュータシステムを構成する。なお、半導体集積回路1は、性能評価モジュール40のみによって構成され、プロセッサモジュール等によって構成される他の半導体集積回路と一体的に動作するようにものであっても良い。
プロセッサモジュール10は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び/又はこれらの組合せを含む。本実施形態のプロセッサモジュール10は、パイプライン方式で命令を実行可能に構成される。したがって、プロセッサモジュール10は、メモリモジュール20に記憶されるプログラムを構成する命令群をパイプライン処理することによって、コンピュータシステムに所定の機能を実現させる。本実施形態では、プロセッサモジュール10は、プログラムの実行中、プログラムカウンタの値を性能評価モジュール40に出力する。
メモリモジュール20は、典型的には、揮発性メモリ(例えばRAM)、不揮発性メモリ(例えばROMやフラッシュメモリ等)及び/又はこれらの組合せからなる1次記憶装置である。本例では、メモリモジュール20は、性能評価に供されるプログラム及びその実行に必要な各種のプログラム等を記憶する。
また、メモリモジュール20は、性能評価モジュール40から出力されるカウント値を記憶する。
チップセット30は、プロセッサモジュール10、メモリモジュール20、性能評価モジュール40、ストレージデバイス50及び入出力装置60等を接続するバスとのブリッジや、コンピューティングデバイスを構成するために必要な他のコンポーネントを集積した回路からなる。
性能評価モジュール40は、プロセッサモジュール10が実行するプログラム中の所定の命令が何サイクル分実行されたか(すなわち、命令の実行数)をカウントする。具体的には、性能評価モジュール40は、プログラムの実行に伴ってプロセッサモジュール10から逐次出力されるプログラムカウンタ(PC)の値が、PCテーブル(図2を参照)に記憶された所定の値と一致するか否かを判断し、一致する度にカウントを行う。カウント結果は、チップセット30を介して、例えばメモリモジュール20やストレージデバイス50に記憶され、プログラムの解析に供される。
なお、ストレージデバイス50は、典型的には、ハードディスクドライブ(HDD)や光学式ディスクドライブ、ソリッドステートデバイス(SSD)等からなる。ストレージデバイス50は、プロセッサモジュール10の2次記憶装置として機能する。また、入出力装置60は、各種のペリフェラルインターフェースであり、例えば、キーボードや、マウス、ディスプレイ、印刷装置、通信装置などである。
以上のように構成される半導体集積回路1は、プロセッサモジュール10によって、メモリモジュール20に記憶されるプログラム中の命令を実行し、また、該実行の間、性能評価モジュール40によって所定の命令が何サイクル分実行されたかをカウントし、該カウント値をメモリモジュール20等に記憶する。これにより、半導体集積回路1は、イベントベースよりも粒度の小さい命令のクロックサイクルベースで命令の実行数をカウントすることができ、したがって、プログラム開発者は、その実行経過を解析することができるようになる。
図2は、本発明の一実施形態に係る半導体集積回路のプロセッサモジュールの構成の一例を示す図である。同図に示すように、本実施形態に係るプロセッサモジュール10は、例えば、命令フェッチ部11と、レジスタリード部12と、実行部13と、メモリアクセス部14と、ライトバック部15とを含んで構成される。本実施形態では、プロセッサモジュール10は、これら5つのコンポーネントにより5ステージのパイプライン処理で命令を処理するものとして構成されるが、これに限られるものではない。
命令フェッチ部11は、プログラムカウンタ(図3を参照)に記憶された実行アドレスに従って命令キャッシュ(図3を参照)から命令をフェッチし、出力する。これに伴い、プログラムカウンタの値は、後述する実行部13から出力される制御信号CNTに従って更新される。命令フェッチ部11は、レジスタリード部12に対する読み出しレジスタアドレスを示すリードレジスタ信号RREG1及びRREG2並びに書き込みレジスタアドレスを示すライトレジスタ信号WREGと、命令に従う制御内容を示す制御信号CNTとを生成し、これらをプログラムカウンタの値を示すプログラムカウンタ信号PCとともにレジスタリード部12に出力する。また、命令フェッチ部11は、プログラムカウンタ信号PCを性能評価モジュール40に出力する。
レジスタリード部12は、プログラムの実行に供される各種の値を記憶するレジスタファイル(図3を参照)を有し、命令フェッチ部11でフェッチされた命令に従って、該レジスタファイルに対する読み出しを実行するとともに、後述するライトバック部15から出力される信号に従いレジスタファイルに対する書き込みを実行する。具体的には、レジスタリード部12は、命令フェッチ部11から出力されるプログラムカウンタ信号PCと、制御信号CNTと、リードレジスタ信号RREG1及びRREG2と、ライトレジスタ信号WREGとをラッチし、リードレジスタ信号RREG1及びRREG2を性能評価モジュール40に出力する。また、レジスタリード部12は、プログラムカウンタ信号PCと、制御信号CNTと、ライトレジスタ信号WREGとを実行部13に出力する。また、レジスタリード部12は、該ラッチしたリードレジスタ信号RREG1及びRREG2に従うレジスタファイルのアドレスから値を読み出し、該読み出した値をリードデータ信号RDATA1及びRDATA2として実行部13に出力する。さらに、レジスタリード部12は、後述するライトバック部15から出力されるライトバックレジスタ信号WBREGに従うレジスタファイルのアドレスに、ライトバック部15から出力されるライトデータ信号WDATAが示す値を書き込む。
実行部13は、レジスタリード部12によって読み出された各種の値を用いて、命令フェッチ部11によってフェッチされた命令を解釈し、該解釈に従って演算を実行する。具体的には、実行部13は、レジスタリード部12から出力されるプログラムカウンタ信号PCと、ライトレジスタ信号WREGと、リードデータ信号RDATA1及びRDATA2と、制御信号CNTとをラッチし、ラッチしたプログラムカウンタ信号PCをプログラムカウンタ信号PC2として性能評価モジュール40に出力する。また、実行部13は、ラッチした制御信号CNTを性能評価モジュール40と命令フェッチ部11とメモリアクセス部14とに出力する。また、実行部13は、ラッチしたライトレジスタ信号WREGをメモリアクセス部14と性能評価モジュール40とに出力するとともに、ラッチしたリードデータ信号RDATA2をライト信号WRITEとしてメモリアクセス部14に出力する。さらに、実行部13は、レジスタリード部12から出力されるリードデータ信号RDATA1及びRDATA2の値を使用して、ラッチした制御信号CNTに従う演算を実行する。さらにまた、実行部13は、該演算の結果を結果信号RESULTとしてメモリアクセス部14と性能評価モジュール40とに出力する。
メモリアクセス部14は、メモリモジュール20に対する1次キャッシュの役割を有するデータキャッシュ(図4を参照)を有し、命令フェッチ部11でフェッチされた命令に従って、レジスタリード部12によって読み出された各種の値を用いて、データキャッシュに対する書き込み及び/又は読み出しを実行する。具体的には、メモリアクセス部14は、実行部13から出力される制御信号CNTと、結果信号RESLUTと、ライトレジスタWREGとをラッチし、該ラッチした3つの信号をライトバック部15に出力する。メモリアクセス部14は、ラッチした制御信号CNTに従って、ラッチした結果信号RESULTが示すデータキャッシュのアドレスに、ラッチしたライト信号WRITEが示す値を書き込むか、又は、結果信号RESULTが示すデータキャッシュのアドレスから値を読み出して、該読み出した値をリード信号READとしてライトバック部15に出力する。また、メモリアクセス部14は、データキャッシュの内容をメモリモジュール20に送信し、メモリモジュール20を更新する。
ライトバック部15は、命令フェッチ部11によってフェッチされた命令の実行結果(すなわち、実行部13による演算実行の結果、及びメモリアクセス部14によって読み出された値)をレジスタリード部12のレジスタファイルに書き込む。具体的には、ライトバック部15は、メモリアクセス部14から出力されるライトレジスタ信号WREGをラッチし、ライトバックレジスタ信号WBREGとして、レジスタリード部12に出力する。また、ライトバック部15はメモリアクセス部14から出力される制御信号CNTに従って、結果信号RESULT又はリード信号READのいずれかを選択し、該選択の結果をライトデータ信号WDATAとしてレジスタリード部12に出力する。
以上のように構成されるプロセッサモジュール10において、命令フェッチ部11は、メモリモジュール20から出力されるプログラムの実行アドレスに従う命令をフェッチし、次に、レジスタリード部12は、レジスタファイルから命令の実行に必要な値を読み出してこれを実行部13に渡し、実行部13は、命令に従う演算を実行する。また、命令フェッチ部11によりフェッチされた命令に従って、メモリアクセス部14は、データキャッシュに対する書き込み又は読み出しを実行する。また、ライトバック部15は、実行部13による演算結果又はメモリアクセス部14によるデータキャッシュの読み出し結果をレジスタリード部12のレジスタファイルに書き込む。このようにして、プロセッサモジュール10は、メモリモジュール20から出力されるプログラムを実行することができる。
図3は、図2に示したIII−III線で囲まれたプロセッサモジュールにおける各コンポーネントの構成の一例を示す図であって、具体的には、プロセッサモジュール10における命令フェッチ部11、レジスタリード部12及び実行部13の構成の詳細を示している。同図に示すように、命令フェッチ部11は、プログラムカウンタ111と、命令キャッシュ112とを含んで構成される。
プログラムカウンタ111は、命令の実行アドレスの値を保持し、所定のクロックに基づいて、保持した実行アドレスの値を出力する。プログラムカウンタ111の実行アドレスの値は、実行部13から出力される制御信号CNTが実行アドレスの値を示す場合、該制御信号CNTに従って更新され制御信号CNTが実行アドレスの値を示さない場合、単にカウントアップされる。また、プログラムカウンタ111は、実行アドレスの値をプログラムカウンタ信号PCとして、命令キャッシュ112と、レジスタリード部12とに出力する。
命令キャッシュ112は、メモリモジュール20に対する1次キャッシュの役割を有し、メモリモジュール20から出力されるプロセッサモジュール10で実行されるプログラムの命令と、該命令に対応する実行アドレスとを記憶する。また、命令キャッシュ112は、プログラムカウンタ111から出力されるプログラムカウンタ信号PCに基づいて、該信号に従う命令を読み出し、読み出した該命令に従うライトレジスタ信号WREGと、リードレジスタ信号RREG1及びRREG2と、制御信号CNTとを生成し、該生成した信号をレジスタリード部12に出力する。ライトレジスタ信号WREGは、命令の実行結果を記憶するレジスタファイルのアドレスを示し、リードレジスタ信号RREG1及びRREG2は、命令の実行にあたって値を読み出すレジスタファイルの値を示し、制御信号CNTは命令の内容を示す。
レジスタリード部12は、複数のレジスタ121(本例では、レジスタ121(1)乃至121(5))と、レジスタファイル122とを含んで構成される。レジスタ121(1)乃至121(5)のそれぞれは、命令フェッチ部11から出力されるライトレジスタ信号WREGと、リードレジスタ信号RREG1及びRREG2と、制御信号CNTと、プログラムカウンタ信号PCとをラッチする。また、レジスタ121(2)及び121(3)は、ラッチしたリードレジスタ信号RREG1及びRREG2をレジスタファイル122と性能評価モジュール40とにそれぞれ出力する。
レジスタファイル122は、上述したように、実行部13の実行に供される各種の値を記憶する。レジスタファイル122は、レジスタ121(2)及び121(3)から出力されるリードレジスタ信号RREG1及びRREG2が示すアドレスから値を読み出し、該読み出した値をそれぞれリードデータ信号RDATA1及びRDATA2として実行部13に出力する。また、レジスタファイル122は、ライトバック部15から出力されるライトバックレジスタ信号WBREGに従うアドレスに、ライトバック部15から出力されるライトデータ信号WDATAが示す値を書き込む。
実行部13は、レジスタ131(1)乃至131(5)と、演算部132とを含んで構成される。レジスタ131(1)乃至131(5)のそれぞれは、レジスタリード部12から出力されるライトレジスタ信号WREGと、リードデータ信号RDATA1及びRDATA2と、制御信号CNTと、プログラムカウンタPCとをラッチする。レジスタ131(2)乃至131(4)は、ラッチしたリードデータ信号RDATA1及びRDATA2と制御信号CNTとを演算部132に出力する。また、レジスタ131(3)は、ラッチしたリードデータ信号RDATA2をライト信号WRITEとして、メモリアクセス部14に出力する。また、レジスタ131(4)は、ラッチした制御信号CNTを命令フェッチ部11と、性能評価モジュール40と、メモリアクセス部14とに出力する。
演算部132は、例えばALU(Arithmetic Logic Unit)であり、命令を解釈、該解釈に従った演算処理を行う。演算部132はレジスタ131(2)及び131(3)から出力されるリードデータ信号RDATA1及びRDATA2が示す値を用いて、レジスタ131(4)から出力される制御信号CNTが示す命令に従う演算を実行する。演算部132は演算の結果を結果信号RESULTとして、該信号を性能評価モジュール40とメモリアクセス部14とに出力する。
図4は、図2に示したIV−IV線で囲まれたプロセッサモジュールの各コンポーネントの構成の一例を示す図であって、具体的には、プロセッサモジュール10におけるメモリアクセス部14及びライトバック部15の構成の詳細を示している。同図に示すように、本実施形態に係るメモリアクセス部14は、例えば、レジスタ141(1)乃至141(4)と、データキャッシュ142とを含んで構成される。
レジスタ141(1)乃至141(4)のそれぞれは、実行部13から出力されるライトレジスタ信号WREGと、結果信号RESULTと、ライト信号WRITEと、制御信号CNTとをラッチする。レジスタ141(2)及び141(3)は、ラッチした結果信号RESULT及びライト信号WRITEをデータキャッシュ142に出力する。また、レジスタ141(1)、141(2)及び141(4)は、ラッチしたライトレジスタ信号WREG、結果信号RESULT及び制御信号CNTをそれぞれライトバック部15に出力する。
データキャッシュ142は、上述したように、メモリモジュール20の1次キャッシュとしての役割を有し、メモリモジュール20に対するデータの書き込み又は読み出しの命令が発行された場合に、メモリモジュール20に代わってデータの書き込み又は読み出しに供される。データキャッシュ142は、レジスタ141(4)から出力される制御信号CNTがメモリモジュール20に対する読み出しの処理を示す場合、レジスタ141(2)から出力される結果信号RESULTに従うアドレスから値を読み出し、該読み出したデータをリード信号READとしてライトバック部15に出力する。また、データキャッシュ142は、レジスタ141(4)から出力される制御信号CNTがメモリモジュール20に対する書き込みの処理を示す場合、レジスタ141(2)から出力される結果信号RESULTが示すアドレスに、レジスタ141(3)から出力されるライト信号WRITEが示す値を書き込む。また、データキャッシュ142は、所定のアルゴリズムに従って、メモリモジュール20に記憶内容をメモリ信号MEMとして送信する。
ライトバック部15は、例えば、レジスタ151(1)乃至151(4)と、選択回路152とを含んで構成される。レジスタ151(1)乃至151(4)のそれぞれは、メモリアクセス部14から出力されるライトレジスタ信号WREGと、結果信号RESULTと、リード信号READと、制御信号CNTとをラッチする。また、レジスタ151(1)は、ラッチしたライトレジスタ信号WREGをライトバックレジスタ信号WBREGとして、該信号をレジスタリード部12に出力する。また、レジスタ151(2)及び151(3)は、ラッチした結果信号RESULT及びリード信号READを選択回路152に出力する。
選択回路152は、例えばマルチプレクサであるがこれに限られず、データセレクタや信号切替器などであっても良い。選択回路152は、レジスタ151(4)から出力される制御信号CNTに従って、レジスタ151(2)から出力される結果信号RESULT、又はレジスタ151(3)から出力されるリード信号READのいずれかを選択し、該選択の結果をライトデータ信号WDATAとして出力する。具体的には、制御信号CNTがメモリモジュール20に対するデータの書き込み及び読み出しの処理を示す場合、リード信号READを選択する一方で、制御信号CNTがメモリモジュール20に対するデータの書き込み及び読み出し以外の処理を示す場合、結果信号RESULTを選択し、該選択の結果をライトデータ信号WDATAとして、レジスタリード部12に出力する。
図5は、本発明の一実施形態に係る性能評価モジュールの構成の一例を示す図である。本実施形態に係る性能評価モジュール40は、例えば、プログラムカウンタ選択部(以下「PC選択部」という。)21と、プログラムカウンタ比較部(以下「PC比較部」という。)22と、カウント制御部23と、プログラムカウンタテーブル(以下「PCテーブル」という。)24とを含んで構成される。
PC選択部21は、プロセッサモジュール10から出力される各種の信号に従って、プロセッサモジュール10の命令フェッチ部11から出力されるプログラムカウンタ信号PC、又はプロセッサモジュール10の実行部13から出力されるプログラムカウンタ信号PC2のいずれかを選択し、該選択の結果をPC比較部22に出力する。PC選択部21は、例えば、比較器211(1)及び211(2)と、論理和回路212と、信号判断部213と、論理積回路214と、選択回路215とを含んで構成される。
比較器211は、入力される2つの信号を比較し、該比較の結果を論理和回路212に出力する。具体的には、比較器211(1)は、プロセッサモジュール10のレジスタリード部12から出力されるリードレジスタ信号RREG1とプロセッサモジュール10の実行部13から出力されるライトレジスタ信号WREGとを比較し、該2つの信号が示す値が一致している場合、例えば“1”を出力し、該2つの信号が示す値が一致していない場合、例えば“0”を出力する。また、比較器211(2)は、プロセッサモジュール10のレジスタリード部12から出力されるリードレジスタ信号RREG2と、プロセッサモジュール10の実行部13から出力されるライトレジスタ信号WREGとを比較し、該比較の結果を論理和回路212に出力する。
論理和回路212は、比較器211(1)及び211(2)の比較結果に対して論理和を行い、該論理和の結果を論理積回路214に出力する。
信号判断部213は、プロセッサモジュール10の実行部13から出力される制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しであるか否かを判断する。信号判断部213は、制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しであると判断する場合、“1”の状態を示す信号を論理積回路214に出力する一方で、制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しでないと判断する場合、“0”の状態を示す信号を論理積回路214に出力する。
論理積回路214は、信号判断部213から出力される判断の結果と論理和回路212から出力される論理和の結果とに対して論理積を行い、該論理積の結果を選択回路215の選択端子SLに出力する。
選択回路215は、例えばマルチプレクサであるがこれに限られず、データセレクタや信号切替器であっても良い。選択回路215は、論理積回路214から出力される論理積の結果に従って、プロセッサモジュール10の命令フェッチ部11から出力されるプログラムカウンタ信号PC又はプロセッサモジュール10の実行部13から出力されるプログラムカウンタ信号PC2のいずれかを選択し、該選択の結果をPC比較部22に出力する。選択回路215は、論理積回路214の論理積の結果が“1”である場合、プログラムカウンタ信号PC2を選択する一方で、論理積回路214の論理積の結果が“0”である場合、プログラムカウンタ信号PCを選択する。
以上のように構成されるPC選択部21は、実行部13から出力される制御信号CNTがメモリモジュール20に対する読み出しを示し、かつ、プロセッサモジュール10のレジスタリード部12から出力されるリードレジスタ信号RREG1又はRREG2とプロセッサモジュール10の実行部13から出力されるライトレジスタ信号WREGとが一致する場合に、実行部13から出力されるプログラムカウンタ信号PC2を選択し、出力する。一方、PC選択部21は、制御信号CNTがメモリモジュール20に対する読み出しを示さないか、又は、リードレジスタ信号RREG1又はRREG2とライトレジスタ信号WREGとが一致しない場合、命令フェッチ部11から出力されるプログラムカウンタ信号PCを選択し、出力する。
これにより、PC選択部21は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発行された場合には、命令フェッチ部11のプログラムカウンタ111に保持されている値ではなく、実行部13のレジスタ131(5)に保持されている値を選択する。よって、PC選択部21は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発行された場合に発生し得るデータハザードに対しても、正しく個々の命令の実行数をカウントすることができるようにプログラムカウンタ信号を選択することができる。
PCテーブル24は、プログラム中の特定の実行アドレスを記憶する。特定の実行アドレスは、例えば、開発者等が命令の種類や特性に基づいて判断することにより決定される。PCテーブル24に記憶された所定の実行アドレスは、PC比較部22に出力される。なお、PCテーブル24は、典型的には、所定の実行アドレスの値を複数記憶し、PC比較部22の比較器221(1)乃至221(n)にそれぞれ異なる実行アドレスの値を示す信号を出力する。なお、本例では、PCテーブル24は、性能評価モジュ−ル40の一部として設けられているがこれに限られるものでなく、PCテーブル24は、メモリモジュール20に記憶されるものであっても良い。
PC比較部22は、PC選択部21によって選択されたプログラムカウンタ信号が示す値と、PCテーブル24に記憶された特定の実行アドレスの値とを比較し、該比較の結果を一致信号ACCORDとしてカウント制御部23に出力する。PC比較部22は、例えば、比較器221(1)乃至221(n)と、論理和回路222とを含んで構成される。
比較器221(1)乃至221(n)は、PC選択部21から出力されるプログラムカウンタ信号の値とPCテーブル24から出力される実行アドレスの値とを比較し、該比較の結果を論理和回路222に出力する。比較器221(1)乃至221(n)は、プログラムカウンタ信号の値と実行アドレスの値とが一致すると判断する場合、“1”の状態を示す信号を出力する一方で、プログラムカウンタ信号の値と実行アドレスの値とが一致しないと判断する場合、“0”の状態を示す信号を出力する。
論理和回路222は、比較器221(1)乃至221(n)から出力される比較の結果に対して論理和を行い、該論理和の結果を一致信号ACCORDとしてカウント制御部23に出力する。
カウント制御部23は、PC比較部22から出力される一致信号ACCORDをラッチして、カウンタ235に出力する。また、カウント制御部23は、プロセッサモジュール10の実行部13から出力される結果信号RESULTの状態に従って、カウンタ235に出力する信号の状態を制御する。カウント制御部23は、例えば、信号判断部231と、選択回路232(1)及び232(2)と、順序回路233(1)及び233(2)と論理積回路234とを含んで構成される。
信号判断部231は、プロセッサモジュール10の実行部13から出力される結果信号RESULTが示す内容が“分岐条件成立”であるか否かを判断する。信号判断部231は、結果信号RESULTが示す内容が“分岐条件成立”である場合、例えば“1”の状態を示す信号を選択回路232(1)及び232(2)の選択端子SLと論理積回路234とに出力する。これに対して、結果信号RESULTが示す内容が“分岐条件不成立”である場合、信号判断部231は、例えば“0”の状態を示す信号を選択回路232(1)及び232(2)の選択端子SLと論理積回路234とに出力する。
選択回路232は、例えばマルチプレクサであるがこれに限られず、データセレクタや信号切替器であっても良い。選択回路232は、選択端子SLに入力される信号に従って、入力端子A0又はA1に入力される信号のいずれかを選択し出力端子Yから出力する。具体的には、選択回路232(1)は、信号判断部231から出力される信号が例えば“0”を示す場合、PC比較部22から出力される一致信号ACCORDを選択する。また、信号判断部231から出力される信号が例えば“1”を示す場合、選択回路232(1)は、論理積回路234から出力される信号を選択し、該選択の結果を順序回路233(1)のデータ入力端子Dに出力する。また、選択回路232(2)は、信号判断部231から出力される信号が例えば“0”を示す場合、順序回路233(1)から出力される信号を選択する。また、信号判断部231から出力される信号が例えば“1”を示す場合、選択回路232(2)は、論理積回路234から出力される信号を選択し、該選択の結果を順序回路233(2)のデータ入力端子Dに出力する。
順序回路233は、例えば、D型フリップフロップであるがこれに限られない。順序回路233は、クロック端子CKに入力されるクロックに基づいて、データ入力端子Dに入力される信号をデータ出力端子Qから出力する。具体的には、順序回路233(1)は、所定のクロックCLKに基づいて、選択回路232(1)から出力される信号を選択回路232(2)の入力端子A1に出力する。また、順序回路233(2)は、所定のクロックCLKに基づいて、選択回路232(2)から出力される信号を論理積回路234とカウンタ235とに出力する。
論理積回路234は、信号判断部231から出力される信号と順序回路233(2)から出力される信号とに対して論理積を行い、該論理積の結果を選択回路232(1)の入力端子A0及び選択回路232(2)の入力端子A0に出力する。
カウンタ235は、順序回路233(2)から出力される信号を受信する。カウンタ235は、順序回路233(2)から出力される信号が例えば“1”を示す場合、カウントを行ってカウント値を更新する。カウンタ235は、該カウントの結果をカウント信号COUNTとしてチップセット30を介してメモリモジュール20に出力する。
以上のように構成されるカウント制御部23は、実行部13から出力される結果信号RESULTが“分岐条件不成立”を示す場合、PC比較部22から出力される一致信号ACCORDを順序回路233(1)及び233(2)によってラッチし、該ラッチした結果をカウンタ235に出力する。これに対して、カウント制御部23は、結果信号RESULTが“分岐条件成立”を示す場合、順序回路233(1)及び233(2)の状態を順序回路233(2)の出力の状態に設定し、該順序回路の状態に基づいてカウンタ235によってカウントを行う。
これにより、カウント制御部23は、結果信号RESULTが“分岐命令成立”を示す場合、順序回路233(1)及び233(2)の入力を順序回路233(2)の出力に設定するので、分岐命令が発行されてから2回分の命令のカウント値を、分岐条件が成立しなかった場合のそれぞれの命令のカウント値ではなく、該分岐命令のカウント値とする。よって、カウント制御部23は、分岐条件が成立した場合に発生する制御ハザードに対しても、正しく個々の命令の実行数をカウントすることができるように、カウント値を制御することができる。
以上のように構成される性能評価モジュール40は、PC選択部21によって選択されたプログラムカウンタ信号に対して、PC比較部22によって所定の実行アドレスと一致するか否かを判断し、該判断の結果をカウント制御部23によってラッチし、該ラッチした信号に対して分岐条件が成立する場合の制御を行った後に、カウンタ235によってカウントを行う。これにより、性能評価モジュール40は、プロセッサモジュール10で行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができる。
なお、本例では、性能評価モジュール40は、1つのPCテーブル24を含むが、これに限られるものではない。性能評価モジュール40は、複数のPCテーブル24を含み、性能評価モジュール40が実行される度に、該複数のPCテーブル24のうちから1つのPCテーブル24を選択し、該選択したPCテーブル24に記憶された所定のアドレスとPC選択部21によって選択されたプログラムカウンタが示す値とを比較しても良い。
また、本例では、性能評価モジュール40は、PC選択部21、PC比較部22及びカウント制御部23をそれぞれ1つずつ含むが、これに限られるものではない。性能評価モジュール40は、PC選択部21、PC比較部22及びカウント制御部23をそれぞれ複数含んでも良い。かかる性能評価モジュール40は、各PC比較部22のPCテーブル24でそれぞれ異なる命令の実行アドレスを記憶することによって、一度の処理で、それぞれ異なる命令の実行数を個別にカウントすることができる。
図6は、本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。同図において、性能評価モジュール40は、まず、プロセッサモジュール10から各種の信号を受信する。具体的には、性能評価モジュール40は、プロセッサモジュール10の命令フェッチ部11からプログラムカウンタ信号PCと、レジスタリード部12からリードレジスタ信号RREG1及びRREG2と、実行部13からプログラムカウンタ信号PC2、ライトレジスタ信号WREG、及び制御信号CNTとを受信する(S601)。性能評価モジュール40は、受信したリードレジスタ信号RREG1及びRREG2とライトレジスタ信号WREGとを比較する(S602)。
次に、性能評価モジュール40は、制御信号CNTがメモリモジュール20に対する読み出し命令を示し、かつ、リードレジスタ信号RREG1又はRREG2とライトレジスタ信号WREGとが一致するか否かを判断する(S603)。性能評価モジュール40は、制御信号CNTがメモリモジュール20に対する読み出し命令を示し、かつ、リードレジスタ信号RREG1又はRREG2とライトレジスタ信号WREGとが一致すると判断する場合(S603のYes)、実行部13から出力されるプログラムカウンタ信号PC2を選択する(S604)。これに対して、性能評価モジュール40は、制御信号CNTがメモリモジュール20に対する読み出し命令を示さないか、又は、リードレジスタ信号RREG1又はRREG2とライトレジスタ信号WREGとが一致しないと判断する場合(S603のNo)、命令フェッチ部11から出力されるプログラムカウンタ信号PCを選択する(S605)。
性能評価モジュール40は、続いて、選択したプログラムカウンタ信号に従って、命令の実行数をカウントする(S606)。なお、ステップS606の処理の詳細に関しては、図7を参照して説明される。
図7は、本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートであり、図6のステップS606の処理の詳細を示している。同図に示すように、まず、性能評価モジュール40は、図6のステップS604又はS605の処理で選択したプログラムカウンタ信号の値と、PCテーブル24に記憶された値とを比較する(S701)。
次に、性能評価モジュール40は、プロセッサモジュール10の実行部13から出力される結果信号RESULTが“分岐条件命令成立”を示すか否かを判断する(S702)。性能評価モジュール40は、結果信号RESULTが“分岐条件成立”を示す場合(S702のYes)、順序回路233(1)及び233(2)の入力を順序回路233(2)の出力に設定する(S703)。一方、性能評価モジュール40は、結果信号RESULTが“分岐条件成立”を示さない場合(S702のNo)、順序回路233(1)の入力をステップS701の処理における比較結果に、順序回路233(2)の入力を順序回路233(1)の出力にそれぞれ設定する(S704)。
性能評価モジュール40は、次に、順序回路233(2)の出力が“1”であるか否かを判断する(S705)。性能評価モジュール40は、順序回路233(2)の出力が“1”である場合(S705のYes)、カウンタ235をカウントアップさせ(S706)、ステップS707の処理に進む。これに対して、性能評価モジュール40は、順序回路233(2)の出力が“1”でない場合(S705のNo)、ステップS707の処理に進む。
性能評価モジュール40は、順序回路233(1)及び233(2)の出力を自身の入力にそれぞれ更新し(S707)、処理を終了する。
上述したように、性能評価モジュール40は、命令フェッチ部11から出力されるプログラムカウンタの値をPCテーブル24に記憶された値と比較して、該比較の結果に従ってカウントを行うため、PCテーブル24に記憶された実行アドレスに対応する命令の実行数をカウントすることができる。また、性能評価モジュール40は、分岐条件が成立すると判断される場合、順序回路233(1)及び233(2)の入力を順序回路233(2)の出力(すなわち、分岐命令のプログラムカウンタの値)に設定するため、分岐命令によって制御ハザードが発生する場合でも、正しく命令の実行数をカウントすることができる。また、性能評価モジュール40は、メモリモジュール20に対する読み出し命令の直後に、該読み出し命令の結果を参照する命令が発行された場合、実行部13から出力されるプログラムカウンタの値を用いるため、該読み出し命令の結果を直後に参照することによって発生するデータハザードに対しても、正しく命令の実行数をカウントすることができる。
次に、性能評価モジュール40が異なる命令ごとに実行数をカウントする例を図8乃至図10を参照しつつ説明する。ここでは、性能評価モジュール40は、特定の1以上の命令ごとに割り当てられた識別子(ID)に従って識別される命令グループごとに実行数をカウントする。したがって、異なるIDごとにその命令の実行アドレスの値を記憶するPCテーブル24が用意され、性能評価モジュール40は、複数のPCテーブル24のそれぞれに対応した、PC選択部21、PC比較部22、及びカウント制御部23からなる構成を複数含む。
図8は、本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。同図において、プロセッサモジュール10が所定の動作クロックに従い動作するタイミングをt801乃至t809として示している。すなわち、同図は、ある一連の命令(命令1乃至命令5)のそれぞれが、ある時刻tにおいて、プロセッサモジュール10のどのコンポーネントによって処理されているかを示している。ここで、“IF”、“RR”、“EX”、“MA”及び“WB”は、それぞれ、命令フェッチ部11、レジスタリード部12、実行部13、メモリアクセス部14、及びライトバック部15を指す。また、命令1、命令3及び命令5にはID#0が割り当てられ、命令2及び命令4にはID#1が割り当てられている。本例では、第1のPCテーブル24aには、ID#0が割り当てられた命令の実行アドレスが記憶され、第2のPCテーブル24bには、ID#1が割り当てられた命令の実行アドレスが記憶され、第3のPCテーブル24cにはID#0及びID#1が割り当てられた命令の実行アドレスが記憶されているものとする。
時刻t801で、プロセッサモジュール10の命令フェッチ部11は、メモリモジュール20から命令1をフェッチし、命令1に対するプログラムカウンタの値を性能評価モジュール40に出力する。性能評価モジュール40は、上述したように、2クロック分にわたってラッチしたプログラムカウンタの値と、PCテーブル24に記憶された所定の実行アドレスの値とを比較し、これらが一致していると判断する場合に、対応する命令の実行数をカウントアップするが、命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令の実行数は、0のままである。
時刻t802では、命令フェッチ部11は、命令2をフェッチし、命令2に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって命令1を処理する。命令1及び命令2に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、ID#0及びID#1に対応する命令の実行数をカウントアップせず、したがって、その実行数及び全体の命令の実行数は0のままである。
時刻t803で、命令フェッチ部11は、命令3をフェッチし、命令3に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令2を処理する一方、実行部13は、命令1を処理する。時刻t803で命令1に対するプログラムカウンタの値が2クロック分ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数を1つカウントアップし、1とする。一方、命令2に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、ID#1に対応する命令の実行数は、0のままである。時刻t803で、全体の命令の実行数は、ID#0及びID#1に対応する命令の実行数の合計であるため、1となる。
時刻t804で、命令フェッチ部11は、命令4をフェッチし、命令4に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令3を処理し、実行部13は、命令2を処理し、メモリアクセス部14は、命令1を処理する。時刻t804で、命令2に対するプログラムカウンタの値が2クロック分ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数を1つカウントアップし、1とする。時刻t804で、全体の命令の実行数は、2となる。
時刻t805で、命令フェッチ部11は、命令5をフェッチし、命令5を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12、実行部13、メモリアクセス部14、及びライトバック部15は、それぞれ、命令4、命令3、命令2、及び命令1を処理する。時刻t804で、命令3に対するプログラムカウンタの値が2クロック分ラッチされているため、性能評価モジュール40は、ID#0に対応する命令の実行数を1つカウントアップし、2とする。時刻t805で、全体の命令の実行数は、3となる。
時刻t806以降においても、プロセッサモジュール10の各コンポーネントは、上述したように、一連の命令をパイプライン処理する。性能評価モジュール40は、プロセッサモジュール10から受信するプログラムカウンタの値を2クロック分ラッチしたプログラムカウンタの値について、該プログラムカウンタの値がPCテーブル24に記憶された所定の実行アドレスの値と一致する場合、該プログラムカウンタに1つカウントアップする。
上述したように、プロセッサモジュール10の各コンポーネントは、一連の命令を順次にパイプライン処理する一方で、性能評価モジュール40が、命令フェッチ部11から送られるプログラムカウンタの値を2クロック分ラッチしながら、プログラムカウンタの値がPCテーブル24に記憶された所定の実行アドレスの値と一致している場合に、カウントを行う。これにより、性能評価モジュール40は、クロックサイクルベースで、特定の命令の実行数をカウントすることができる。
次に、一連の命令に分岐命令が含まれている場合の、性能評価モジュール40による実行数のカウントについて説明する。図9は、本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。同図において、プロセッサモジュール10が所定の動作クロックに従い動作するタイミングをt901乃至t909として示している。本例では、命令1及び命令4にはID#0が割り当てられ、命令2、命令3及び命令5にはID#1が割り当てられている。また、第1のPCテーブル24aには、ID#0が割り当てられた命令の実行アドレスが記憶され、第2のPCテーブル24bには、ID#1が割り当てられた命令の実行アドレスが記憶され、第3のPCテーブル24cには、ID#0及びID#1に割り当てられた命令の実行アドレスが記憶されているものとする。また、命令1は、分岐条件が成立する場合に、命令4に分岐する一方で、分岐条件が成立しない場合に命令2に続く命令であるものとする。
時刻t901で、命令フェッチ部11は、同様に、命令1をフェッチし、命令1に対するプログラムカウンタの値を性能評価モジュール40に出力する。命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令と全体の命令の実行数は、0のままである。なお、命令1は、実行部13によって処理が行われるまで分岐条件が成立するか否かは不明である。プロセッサモジュール10の各コンポーネントは、命令1の分岐条件が成立するか否かが判明するまで、上述したような、命令に対する所与の処理を遂行する。
時刻t902で、命令フェッチ部11は、命令2をフェッチし、命令2に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令1を処理する。時刻t902で、命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、ID#0及びID#1に対応する命令の実行数と全体の命令の実行数は、0のままである。
時刻t903で、命令フェッチ部11は、命令3をフェッチし、命令3に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、実行部13は、命令1を処理する。本例では、実行部13は、処理の結果、分岐条件が成立すると判断し、“分岐条件成立”を示す制御信号CNTを性能評価モジュール40に出力する。性能評価モジュール40は、制御信号CNTに従って、ラッチしている2クロック分の(すなわち、命令1及び命令2に対する)プログラムカウンタの値の全てを命令1に対するプログラムカウンタの値に変更する。性能評価モジュール40は、命令1に対するプログラムカウンタの値をカウントするため、ID#0に対応する命令の実行数を、1とする。一方、命令2に対するプログラムカウンタの値は、命令1に対するプログラムカウンタの値に変更されたためカウントされず、ID#1に対応する命令の実行数は、0のままである。時刻t903で、全体の命令の実行数は1となる。
時刻t904で、命令フェッチ部11は、命令4をフェッチし、命令4に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、メモリアクセス部14は、命令1を処理するが、実行部13において分岐条件が成立したため、レジスタリード部12による命令3に対する処理及び実行部13による命令2に対する処理は中止される。時刻t904で、命令1に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、2とする。時刻t904で、全体の命令の実行数は2となる。
時刻t905で、命令フェッチ部11は、命令5をフェッチし、命令5に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令4を処理するとともに、ライトバック部15は、命令1を処理する。命令1に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、3とする。一方、時刻t905で、命令5に対するプログラムカウンタの値は2回ラッチされていないため、ID#1に対応する命令の実行数は、0のままである。時刻t905で、全体の命令の実行数は3となる。
時刻t906で、レジスタリード部12は、命令5を処理し、また、実行部13によって命令4を処理する。命令4に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、4とする。一方、時刻t906で、命令5に対するプログラムカウンタの値は2回ラッチされていないため、ID#1に対応する命令の実行数は、0のままである。時刻t905で、全体の命令の実行数は4となる。
時刻t907で、実行部13は、命令5を処理し、また、メモリアクセス部14は、命令4を処理する。時刻t907で、命令5に対するプログラムカウンタの値は2回ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数をカウントアップし、1とする。時刻t907で、全体の命令の実行数は5となる。
上述したように、プロセッサモジュール10の各コンポーネントは、一連の命令に分岐命令が含まれる場合に、分岐条件が成立するか否かが判明するまで、命令に対する所与の処理を進めるが、分岐条件が成立すると判断されるとこれまでの処理を中止して、分岐条件が成立したことを示す制御信号CNTを性能評価モジュール40に出力する。性能評価モジュール40は、制御信号CNTに従って、2クロック分ラッチしているプログラムカウンタの値を分岐命令に対応するプログラムカウンタの値に変更する。これにより、性能評価モジュール40は、分岐命令の実行により発生する制御ハザードによる遅延を分岐命令による遅延としてカウントするため、個々の命令の実行数をクロックサイクルベースで正しくカウントすることができる。
図10は、本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。同図において、プロセッサモジュール10の各構成要素が各命令を処理する時刻を時刻t1001乃至t1008とする。また、同図において、命令1乃至命令3にはID#0が割り振られ、命令4にはID#1が割り振られる。第1のPCテーブル24aには、ID#0が割り当てられた命令の実行アドレスが記憶され、第2のPCテーブル24bには、ID#1が割り当てられた命令の実行アドレスが記憶され、第3のPCテーブル24cには、ID#0及びID#1が割り当てられた命令の実行アドレスが記憶されているものとする。
時刻t1001で、プロセッサモジュール10は、メモリモジュール20から命令1を受信し、命令フェッチ部11によって命令1を処理する。また命令フェッチ部11は、命令1を示すプログラムカウンタの値を性能評価モジュール40に出力する。命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令と全体の命令の実行数は、0のままである。
時刻t1002で、プロセッサモジュール10は、メモリモジュール20からメモリモジュール20に対する読み出しを示す命令2を受信し、命令フェッチ部11によって命令2を処理する。また、命令フェッチ部11は、命令2を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって、命令1を処理する。時刻t1002で、命令1に対するプログラムカウンタの値は2回分ラッチされていないため、ID#0に対応する命令の実行数はまだ0である。時刻t1002で、全体の命令の実行数は、0のままである。
時刻t1003で、プロセッサモジュール10は、メモリモジュール20から命令2の結果を参照する命令3を受信し、命令フェッチ部11によって命令3を処理する。また、命令フェッチ部11は、命令3を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって命令2を処理するとともに、実行部13によって命令1を処理する。時刻t1003で、命令1のプログラムカウンタの値が2回分ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、1とする。時刻t1003で、全体の命令の実行数は1となる。
時刻t1004で、プロセッサモジュール10は、メモリモジュール20から命令4を受信し、命令フェッチ部11によって命令4を処理する。プロセッサモジュール10は、実行部13によって命令2を処理するとともに、メモリアクセス部14によって命令1を処理する。また、プロセッサモジュール10は、命令3が命令2の結果を参照する命令であること、命令2がメモリモジュール20に対する読み出し命令であること、及び命令2がメモリアクセス14による処理ステージに至っていないこととから、レジスタリード部12による命令3の処理を行わずに待機させる。
時刻t1004で、性能評価モジュール40は、レジスタリード部12のリードレジスタ信号RREG1又はRREG2と、実行部13のライトレジスタ信号WREGが一致して、かつ、実行部13の制御信号CNTがメモリモジュール20に対する読み出し命令であると判断する。性能評価モジュール40は、該判断の結果に従って、実行部13の命令2のプログラムカウンタの値をラッチする。時刻t1004で、命令2のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、2とする。時刻t1004で、全体の命令の実行数は2となる。
時刻t1005で、プロセッサモジュール10は、レジスタリード部12による命令3の処理が終わっていないことから、再び命令フェッチ部11によって命令4を処理する。また、命令フェッチ部11は、命令4を示すプログラムカウンタの値を性能評価モジュール40に出力する。プロセッサモジュール10は、レジスタリード部12によって命令3を処理するとともに、メモリアクセス部14によって命令2を処理し、ライトバック部15によって命令1を処理する。時刻t1005で、命令3のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、3とする。時刻t1005で、全体の命令の実行数は3となる。
時刻t1006で、プロセッサモジュール10は、レジスタリード部12によって命令4を処理するとともに、実行部13によって命令3を処理し、ライトバック部15によって命令2を処理する。時刻t1006で、命令3のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし4とする。時刻t1006で、全体の命令の実行数は4となる。
時刻t1007で、プロセッサモジュール10は、実行部13によって命令4を処理するとともに、メモリアクセス部14によって命令3を処理する。時刻t1007で命令4のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数をカウントアップし、1とする。時刻t1007で、全体の命令の実行数は5となる。
上述したように、プロセッサモジュール10は、メモリモジュール20に対する読み出し命令を行った直後に、該命令の結果を参照する命令を受信した場合、命令の結果を参照する命令をレジスタリード部12のステージで1ステージ分待機させる。また、性能評価モジュール40は、メモリモジュール20に対する読み出し命令を行った直後に、該命令の結果を参照する命令が発せられた場合、実行部13のプログラムカウンタの値をラッチするため、待機による遅延時間をメモリモジュール20に対する読み出し命令のプログラムカウンタの値としてカウントする。
これにより、性能評価モジュール40は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発せられた場合に発生するデータハザードに対しても、正しく個々の命令の実行数をカウントすることができる。なお、本実施形態では、読み出し命令を例にして説明したが、例えば、書き込み命令についても同様に適用することができる。
図11は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、本実施形態に係る半導体集積回路1’は、複数の性能評価モジュール40(1)乃至40(m)を含んで構成される。
性能評価モジュール40(1)乃至40(m)の回路構成自体は同じであるが、それぞれのPCテーブル24に記憶される内容(すなわち、実行アドレスの値)が異なっている。つまり、各PCテーブル24には、それぞれ異なるIDが割り当てられた命令の実行アドレスの値が記憶される。性能評価モジュール40(1)乃至40(m)は、それぞれのカウントの結果をカウント信号COUNT(1)乃至COUNT(m)としてチップセット30を介してメモリモジュール20に出力する。これにより、半導体集積回路1’は、一度のプログラムの実行で、性能評価モジュール40の数に応じた異なる命令の実行数をカウントすることができる。
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
本発明は、プロセッサを備える半導体集積回路の分野に広く利用することができる。
1…半導体集積回路
10…プロセッサモジュール
11…命令フェッチ部
111…プログラムカウンタ
112…命令キャッシュ
12…レジスタリード部
121…レジスタ
122…レジスタファイル
13…実行部
131…レジスタ
132…演算部
14…メモリアクセス部
141…レジスタ
142…データキャッシュ
15…ライトバック部
151…レジスタ
152…選択回路
20…メモリモジュール
30…チップセット
40…性能評価モジュール
21…PC選択部
211…比較器
212…論理和回路
213…信号判断部
214…論理積回路
215…選択回路
22…PC比較部
221…比較器
222…論理和回路
23…カウント値制御部
231…信号判断部
232…選択回路
233…順序回路
234…論理積回路
235…カウンタ
24…PCテーブル
50…ストレージデバイス
60…入出力装置

Claims (10)

  1. 所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価する性能評価モジュールであって、
    前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、
    前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、
    前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力するカウント制御部と、
    を備える性能評価モジュール。
  2. 前記カウント制御部は、段接続された複数の順序回路を含み、前記複数の順序回路によって、順次に、前記プログラムカウンタの値を前記所定の動作クロックの所定クロックサイクル分ラッチした後に、前記命令の実行数をカウントする、請求項1記載の性能評価モジュール。
  3. 前記所定のクロックサイクルは、前記プロセッサモジュールが一の命令をフェッチした後、前記一の命令を演算実行するために要するクロックサイクル数である、請求項2記載の性能評価モジュール。
  4. 前記カウント制御部は、
    前記プロセッサモジュールにより演算実行される一の命令が分岐命令であって、かつ、該分岐命令の分岐条件が成立する場合に、前記所定のクロックサイクル分ラッチされた前記プログラムカウンタの値を保持する一の順序回路の出力を前記複数の順序回路のそれぞれに入力する、請求項2記載の性能評価モジュール。
  5. 前記カウント制御部は、
    前記所定の分岐命令の分岐条件が成立しない場合に、前記比較判断されたプログラムプログラムカウンタの値を最前段の前記順序回路に入力する、請求項4記載の性能評価モジュール。
  6. 前記カウント制御部は、
    前記プロセッサモジュールにより演算実行される一の命令が所定のメモリモジュールに対する読み出し命令であって、かつ、前記演算実行後に前記所定のメモリモジュールから読み出された値を格納するための領域を示すアドレスの値と、他の命令の演算実行前に該他の命令に従う値を格納する領域を示すアドレスの値とが一致する場合に、前記一の命令の演算実行時までラッチされた前記プログラムカウンタの値を前記プログラムカウンタ比較部に送る選択部をさらに備える、請求項1記載の性能評価モジュール。
  7. 前記性能評価モジュールは、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントする、請求項1乃至6のいずれかに記載の性能評価モジュール。
  8. 所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールと、
    前記プロセッサモジュールに接続された少なくとも1つの性能評価モジュールと、
    前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、
    を備え、
    前記少なくとも1つの性能評価モジュールは、
    前記プロセッサモジュールによる命令の処理に伴うプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、
    前記プログラムカウンタの値に対応する命令の実行数をカウントするカウンタ制御部と、を備え、
    前記プログラムカウンタ比較部は、前記プロセッサモジュールによって命令がフェッチされることにより前記プロセッサモジュールから送られる前記プログラムカウンタの値に基づいて、一致するか否かの判断を行い、
    前記カウント制御部は、
    前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力する、
    半導体集積回路。
  9. 前記半導体集積回路は、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントするための前記性能評価モジュールを複数備える、
    請求項8記載の半導体集積回路。
  10. 所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価するための性能評価方法であって、
    前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値を受け取ることと、
    プログラムカウンタテーブルに記憶された前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を受け取ることと、
    前記プログラムカウンタの値と前記実行アドレスの値とを比較し、一致するか否かを判断することと、
    前記プログラムカウンタの値と前記実行アドレスの値とが一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントすることと、
    を含む、性能評価方法。

JP2015065539A 2015-03-27 2015-03-27 性能評価モジュール及びこれを組み込んだ半導体集積回路 Active JP6473023B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015065539A JP6473023B2 (ja) 2015-03-27 2015-03-27 性能評価モジュール及びこれを組み込んだ半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015065539A JP6473023B2 (ja) 2015-03-27 2015-03-27 性能評価モジュール及びこれを組み込んだ半導体集積回路

Publications (2)

Publication Number Publication Date
JP2016184376A true JP2016184376A (ja) 2016-10-20
JP6473023B2 JP6473023B2 (ja) 2019-02-20

Family

ID=57243064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015065539A Active JP6473023B2 (ja) 2015-03-27 2015-03-27 性能評価モジュール及びこれを組み込んだ半導体集積回路

Country Status (1)

Country Link
JP (1) JP6473023B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231248A (ja) * 1988-07-21 1990-02-01 Nec Corp データ処理装置
JPH07334395A (ja) * 1994-04-12 1995-12-22 Mitsubishi Electric Corp データ処理速度の評価方法
JPH0962540A (ja) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk 情報処理装置のデバッグ回路
JP2013016010A (ja) * 2011-07-04 2013-01-24 Renesas Electronics Corp プログラムデバッグ装置、方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231248A (ja) * 1988-07-21 1990-02-01 Nec Corp データ処理装置
JPH07334395A (ja) * 1994-04-12 1995-12-22 Mitsubishi Electric Corp データ処理速度の評価方法
JPH0962540A (ja) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk 情報処理装置のデバッグ回路
JP2013016010A (ja) * 2011-07-04 2013-01-24 Renesas Electronics Corp プログラムデバッグ装置、方法、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置

Also Published As

Publication number Publication date
JP6473023B2 (ja) 2019-02-20

Similar Documents

Publication Publication Date Title
US8473880B1 (en) Synchronization of parallel memory accesses in a dataflow circuit
US9665674B2 (en) Automating a microarchitecture design exploration environment
JP5065113B2 (ja) 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
US11204859B2 (en) Partial-results post-silicon hardware exerciser
CN104020982B (zh) 具有高效返回预测能力的分支目标缓冲器
JP2008176453A (ja) シミュレーション装置
US9395992B2 (en) Instruction swap for patching problematic instructions in a microprocessor
US10990073B2 (en) Program editing device, program editing method, and computer readable medium
US9218273B2 (en) Automatic generation of a resource reconfiguring test
US10528691B1 (en) Method and system for automated selection of a subset of plurality of validation tests
CN113868986A (zh) 端口时延的约束方法、装置、电子设备、存储介质
Meenderinck et al. Nexus: Hardware support for task-based programming
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
US8909994B2 (en) Dynamic hardware trace supporting multiphase operations
US10409624B1 (en) Data array compaction in an emulation system
US9959122B2 (en) Single cycle instruction pipeline scheduling
CN107769987B (zh) 一种报文转发性能评估方法和装置
US20140013312A1 (en) Source level debugging apparatus and method for a reconfigurable processor
US11106846B1 (en) Systems and methods for emulation data array compaction
JP5387521B2 (ja) 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
CN117313595B (zh) 用于功能验证的随机指令生成方法、设备及系统
US11048843B1 (en) Dynamic netlist modification of compacted data arrays in an emulation system

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180216

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180719

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190124

R150 Certificate of patent or registration of utility model

Ref document number: 6473023

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250