JP6473023B2 - Performance evaluation module and semiconductor integrated circuit incorporating the same - Google Patents

Performance evaluation module and semiconductor integrated circuit incorporating the same Download PDF

Info

Publication number
JP6473023B2
JP6473023B2 JP2015065539A JP2015065539A JP6473023B2 JP 6473023 B2 JP6473023 B2 JP 6473023B2 JP 2015065539 A JP2015065539 A JP 2015065539A JP 2015065539 A JP2015065539 A JP 2015065539A JP 6473023 B2 JP6473023 B2 JP 6473023B2
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.)
Active
Application number
JP2015065539A
Other languages
Japanese (ja)
Other versions
JP2016184376A (en
Inventor
怜 鷹見
怜 鷹見
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/en
Publication of JP2016184376A publication Critical patent/JP2016184376A/en
Application granted granted Critical
Publication of JP6473023B2 publication Critical patent/JP6473023B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、性能評価モジュール及び半導体集積回路に関し、特に、プロセッサの処理時間を評価するための性能評価モジュール及びこれを組み込んだ半導体集積回路に関する。   The present invention relates to a performance evaluation module and a semiconductor integrated circuit, and more particularly to a performance evaluation module for evaluating a processing time of a processor and a semiconductor integrated circuit incorporating the performance evaluation module.

プロセッサとメモリ等の周辺回路とを含む半導体集積回路において、プロセッサは、メモリからプログラムコード(命令)を順次に読み出して、該命令に従う処理を実行する。一般に、プロセッサの処理速度の性能を高めるために、個々の命令を複数のステージに分割し、該分割したステージを並列に実行していくパイプライン方式が採用される。   In a semiconductor integrated circuit including a processor and a peripheral circuit such as a memory, the processor sequentially reads program codes (instructions) from the memory and executes processing according to the instructions. In general, in order to improve the processing speed performance of a processor, a pipeline system is adopted in which individual instructions are divided into a plurality of stages and the divided stages are executed in parallel.

プロセッサの更なる高性能化のためには、ハードウェアに合わせてプログラムを最適化する必要がある。プログラムの最適化は、例えば、プログラムの実行をシミュレートして、個々の命令が実行にどの程度時間がかかるかを解析することによって行われる。   In order to further increase the performance of the processor, it is necessary to optimize the program according to the hardware. The program is optimized by, for example, simulating program execution and analyzing how long each instruction takes.

例えば、下記特許文献1は、並列計算機におけるプログラム実行のボトルネックとなっている箇所を知り得るようにするプログラム解析支援装置を開示する。このプログラム解析支援装置は、並列計算機上で実行されるプログラムの各イベントに識別子を付与しながら、これをイベント・トレース・データとして収集、管理し、イベント間の関係を視覚的に見易く編集してディスプレイに表示する。   For example, the following Patent Document 1 discloses a program analysis support apparatus that enables a user to know a part that is a bottleneck for program execution in a parallel computer. This program analysis support device collects and manages event trace data while assigning an identifier to each event of a program executed on a parallel computer, and edits the relationship between events in a visually easy-to-read manner. Show on the display.

特開平6−083608号公報JP-A-6-083608

しかしながら、上記のような特許文献1に開示されるプログラム解析支援装置は、プログラムの実行に伴うある一定区間を単位とするイベントベースで、プログラムの解析を行うものであって、実行されるプログラム中の命令をクロックサイクルベースで解析を行うことができなかった。プログラムの構成や命令の種類によっては、ある命令の実行サイクルが、他の命令の実行サイクルに影響を与え、結果として、プログラム全体の処理速度の低下を招くこともあり、上記のようなイベントベースの解析では、性能向上のための十分な解析精度が得られないという課題があった。   However, the program analysis support apparatus disclosed in Patent Document 1 as described above analyzes a program based on an event based on a certain interval that accompanies the execution of the program. The instruction could not be analyzed on a clock cycle basis. Depending on the program structure and instruction type, the execution cycle of one instruction may affect the execution cycle of other instructions, resulting in a decrease in the overall processing speed of the program. However, there is a problem that sufficient analysis accuracy for improving performance cannot be obtained.

そこで、本発明は、プロセッサにより実行されるプログラムについて、イベントベースよりも粒度の小さい命令のクロックサイクルベースでその実行経過を解析することができるようにすることを目的とする。   Therefore, an object of the present invention is to make it possible to analyze the execution progress of a program executed by a processor on the basis of a clock cycle of an instruction having a smaller granularity than an event base.

より具体的には、本発明は、プロセッサによりパイプライン方式で実行されるプログラムについて、個々の命令の実行数をカウントすることができる性能評価モジュールを提供することを目的とする。   More specifically, an object of the present invention is to provide a performance evaluation module capable of counting the number of executions of individual instructions for a program executed in a pipeline manner by a processor.

また、本発明は、このようなプログラムについて、分岐命令の実行に起因して制御ハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができる性能評価モジュールを提供することを目的とする。   Further, the present invention provides a performance evaluation module capable of correctly counting the number of executions of individual instructions even when a control hazard occurs due to execution of a branch instruction for such a program. For the purpose.

さらに、本発明は、このようなプログラムについて、メモリアクセス命令に起因するデータハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができる性能評価モジュールを提供することを目的とする。   Furthermore, the present invention provides a performance evaluation module capable of correctly counting the number of executions of individual instructions even when a data hazard caused by a memory access instruction occurs in such a program. Objective.

さらにまた、本発明は、プロセッサを含む半導体集積回路に容易に組み込むことを可能にする構成を有する上記のような性能評価モジュールを提供することを目的とする。   Still another object of the present invention is to provide a performance evaluation module as described above having a configuration that can be easily incorporated into a semiconductor integrated circuit including a processor.

上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。   The present invention for solving the above problems includes the following technical features or invention specific matters.

すなわち、ある観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価する性能評価モジュールであって、前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力するカウント制御部と、を備える性能評価モジュールである。   That is, the present invention according to a certain aspect is a performance evaluation module that evaluates the processing performance of a processor module that executes an instruction group of a program by pipeline processing according to a predetermined operation clock, and includes at least one instruction of the instruction group The program counter table for storing the execution address value for the processor, the value of the program counter sent from the processor module in accordance with the instruction processing by the processor module, and the value of the execution address stored in the program counter table And, when it is determined by the program counter comparison unit and the program counter comparison unit that determines whether or not they match, the number of instructions executed corresponding to the value of the program counter that has been compared and determined is counted, Count to output A control unit, a performance evaluation module comprising a.

これにより、性能評価モジュールは、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。   Thereby, the performance evaluation module determines whether or not the value of the program counter sent from the processor module matches the value of the execution address stored in the program counter table, and performs counting according to the result of the determination. The performance evaluation module can count the number of executions of individual instructions corresponding to a predetermined execution address among the instructions executed by the processor module.

ここで、前記カウント制御部は、段接続された複数の順序回路を含み、前記複数の順序回路によって、順次に、前記プログラムカウンタの値を前記所定の動作クロックの所定クロックサイクル分ラッチした後に、前記命令の実行数をカウントしても良い。   Here, the count control unit includes a plurality of sequential circuits connected in stages, and sequentially latches the value of the program counter for a predetermined clock cycle of the predetermined operation clock by the plurality of sequential circuits, The number of executions of the instruction may be counted.

これにより、性能評価モジュールは、段接続された複数の順序回路によって、プログラムカウンタの値を所定クロックサイクル分ラッチすることができるようになる。   As a result, the performance evaluation module can latch the value of the program counter for a predetermined clock cycle by a plurality of sequential circuits connected in stages.

さらに、前記所定のクロックサイクルは、前記プロセッサモジュールが一の命令をフェッチした後、前記一の命令を演算実行するために要するクロックサイクル数であっても良い。   Further, the predetermined clock cycle may be the number of clock cycles required to execute the one instruction after the processor module fetches the one instruction.

これにより、性能評価モジュールは、プロセッサモジュールが一の命令をフェッチした後、一の命令を演算実行するまで、一の命令に対するプログラムカウンタの値をラッチすることができるようになる。   As a result, the performance evaluation module can latch the value of the program counter for one instruction until the processor module fetches one instruction and then executes the one instruction.

また、前記カウント制御部は、前記プロセッサモジュールにより演算実行される一の命令が分岐命令であって、かつ、該分岐命令の分岐条件が成立する場合に、前記所定のクロックサイクル分ラッチされた前記プログラムカウンタの値を保持する一の順序回路の出力を前記複数の順序回路のそれぞれに入力しても良い。   The count control unit is configured to latch the predetermined clock cycle when the instruction executed by the processor module is a branch instruction and a branch condition of the branch instruction is satisfied. The output of one sequential circuit that holds the value of the program counter may be input to each of the plurality of sequential circuits.

これにより、性能評価モジュールは、一の命令が分岐命令であって、かつ該分岐命令の分岐条件が成立する場合に、順序回路がラッチしている内容を前記一の順序回路の出力に更新することによって、分岐命令によって発生するハザードに対しても正しく個々の命令の実行数をカウントすることができるようになる。   Thus, the performance evaluation module updates the content latched by the sequential circuit to the output of the one sequential circuit when the one instruction is a branch instruction and the branch condition of the branch instruction is satisfied. As a result, the number of executions of individual instructions can be correctly counted against a hazard caused by a branch instruction.

さらに、前記カウント制御部は、前記所定の分岐命令の分岐条件が成立しない場合に、前記比較判断されたプログラムプログラムカウンタの値を最前段の前記順序回路に入力しても良い。   Further, the count control unit may input the value of the program / counter that has been compared and determined to the sequential circuit in the forefront stage when the branch condition of the predetermined branch instruction is not satisfied.

また、前記カウント制御部は、前記プロセッサモジュールにより演算実行される一の命令が所定のメモリモジュールに対する読み出し命令であって、かつ、前記演算実行後に前記所定のメモリモジュールから読み出された値を格納するための領域を示すアドレスの値と、他の命令の演算実行前に該他の命令に従う値を格納する領域を示すアドレスの値とが一致する場合に、前記一の命令の演算実行時までラッチされた前記プログラムカウンタの値を前記プログラムカウンタ比較部に送る選択部をさらに備えても良い。   In addition, the count control unit stores a value read from the predetermined memory module after the execution of the calculation, in which one instruction calculated and executed by the processor module is a read command for the predetermined memory module. If the value of the address indicating the area to be executed matches the value of the address indicating the area storing the value according to the other instruction before the execution of the operation of the other instruction, until the execution of the operation of the one instruction A selection unit that sends the latched value of the program counter to the program counter comparison unit may be further included.

これにより、性能評価モジュールは、一の命令がメモリモジュールに対する読み出し命令であって、ハザードが発生する条件を満たす場合に、一の命令に対するプログラムカウンタの値をプログラムカウンタ比較部に送るため、メモリモジュールに対する読み出し命令によって発生するハザードに対しても正しく個々の命令の実行数をカウントすることができるようになる。   Thus, the performance evaluation module sends the value of the program counter for the one instruction to the program counter comparison unit when the one instruction is a read instruction for the memory module and the condition for generating the hazard is satisfied. The number of executions of individual instructions can be counted correctly even in the case of a hazard generated by a read instruction.

また、前記性能評価モジュールは、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントしても良い。   The performance evaluation module may count the number of executions for each identifier assigned to one or more of the instructions.

これにより、性能評価モジュールは、識別子に対応する命令ごとに命令の実行数をカウントすることができるようになる。   As a result, the performance evaluation module can count the number of executed instructions for each instruction corresponding to the identifier.

さらに、別の観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールと、前記プロセッサモジュールに接続された少なくとも1つの性能評価モジュールと、前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、を備え、前記少なくとも1つの性能評価モジュールは、前記プロセッサモジュールによる命令の処理に伴うプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、前記プログラムカウンタの値に対応する命令の実行数をカウントするカウンタ制御部と、を備え、前記プログラムカウンタ比較部は、前記プロセッサモジュールによって命令がフェッチされることにより前記プロセッサモジュールから送られる前記プログラムカウンタの値に基づいて、一致するか否かの判断を行い、前記カウント制御部は、前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力する、半導体集積回路である。   Further, according to another aspect of the present invention, there is provided a processor module that executes an instruction group of a program by pipeline processing according to a predetermined operation clock, at least one performance evaluation module connected to the processor module, and the instruction group. A program counter table for storing an execution address value for at least one instruction of the program, wherein the at least one performance evaluation module includes a value of the program counter associated with the processing of the instruction by the processor module and the program counter table. A program counter comparison unit that compares the execution address value stored in the program counter and determines whether or not they match, and a counter control unit that counts the number of executions of instructions corresponding to the value of the program counter. The program counter The comparison unit determines whether or not they match based on the value of the program counter sent from the processor module when an instruction is fetched by the processor module, and the count control unit compares the program counter comparison In the semiconductor integrated circuit, the number of instructions executed corresponding to the value of the program counter that has been compared and determined is counted and output when it is determined that they match.

これにより、半導体集積回路は、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。   Thereby, the semiconductor integrated circuit determines whether or not the value of the program counter sent from the processor module matches the value of the execution address stored in the program counter table, and performs counting according to the result of the determination. The performance evaluation module can count the number of executions of individual instructions corresponding to a predetermined execution address among the instructions executed by the processor module.

ここで、前記半導体集積回路は、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントするための前記性能評価モジュールを複数備えても良い。   Here, the semiconductor integrated circuit may include a plurality of the performance evaluation modules for counting the number of executions for each identifier assigned to one or more of the instructions.

これにより、半導体集積回路は、識別子に対応する命令ごとに命令の実行数をカウントすることができるようになる。   As a result, the semiconductor integrated circuit can count the number of executed instructions for each instruction corresponding to the identifier.

さらに、別の観点に従う本発明は、所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価するための性能評価方法であって、前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値を受け取ることと、プログラムカウンタテーブルに記憶された前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を受け取ることと、前記プログラムカウンタの値と前記実行アドレスの値とを比較し、一致するか否かを判断することと、前記プログラムカウンタの値と前記実行アドレスの値とが一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントすることとを含む、性能評価方法である。   Furthermore, the present invention according to another aspect is a performance evaluation method for evaluating the processing performance of a processor module that executes a group of instructions of a program by pipeline processing according to a predetermined operation clock, and the processing of instructions by the processor module Receiving a value of a program counter sent from the processor module, receiving an execution address value for at least one instruction of the instruction group stored in the program counter table, and a value of the program counter The execution address value is compared to determine whether they match, and when it is determined that the value of the program counter matches the value of the execution address, Count the number of executions of the instruction corresponding to the value. Including the door, it is the performance evaluation method.

これにより、性能評価モジュールは、プロセッサモジュールから送られるプログラムカウンタの値が、プログラムカウンタテーブルに記憶される実行アドレスの値と一致するか否かを判断し、該判断の結果に従ってカウントを行うため、性能評価モジュールは、プロセッサモジュールで行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができるようになる。   Thereby, the performance evaluation module determines whether or not the value of the program counter sent from the processor module matches the value of the execution address stored in the program counter table, and performs counting according to the result of the determination. The performance evaluation module can count the number of executions of individual instructions corresponding to a predetermined execution address among the instructions executed by the processor module.

本発明によれば、性能評価モジュールは、プロセッサ上で実行されるプログラムについて、イベントベースよりも粒度の小さい命令のクロックサイクルベースでその実行を解析することができるようになる。   According to the present invention, the performance evaluation module can analyze the execution of a program executed on the processor on the basis of the clock cycle of the instruction having a smaller granularity than the event base.

すなわち、本発明によれば、性能評価モジュールは、プロセッサ上で実行されるプログラムについて、個々の命令の実行数をカウントすることができるようになる。   That is, according to the present invention, the performance evaluation module can count the number of executions of individual instructions for a program executed on the processor.

また、本発明によれば、性能評価モジュールは、プロセッサによりパイプライン方式で実行されるプログラムについて、分岐命令の実行に起因して制御ハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができるようになる。   In addition, according to the present invention, the performance evaluation module can execute the number of individual instructions for a program executed by a processor in a pipeline manner even when a control hazard occurs due to execution of a branch instruction. Can be counted correctly.

また、本発明によれば、性能評価モジュールは、プロセッサによりパイプライン方式で実行されるプログラムについて、メモリアクセス命令に起因するデータハザードが生じた場合であっても、個々の命令の実行数を正しくカウントすることができるようになる。   Further, according to the present invention, the performance evaluation module correctly sets the execution number of each instruction even when a data hazard caused by a memory access instruction occurs in a program executed by a processor in a pipeline manner. Will be able to count.

また、本発明によれば、性能評価モジュールは、上記の効果を実現しつつ、プロセッサを含む半導体集積回路に容易に組み込まれることを可能にする構成を有することができるようになる。   In addition, according to the present invention, the performance evaluation module can have a configuration that can be easily incorporated into a semiconductor integrated circuit including a processor while realizing the above-described effects.

本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。   Other technical features, objects, effects, and advantages of the present invention will become apparent from the following embodiments described with reference to the accompanying drawings.

本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。It is a figure which shows an example of schematic structure of the semiconductor integrated circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールの構成の一例を示す図である。It is a figure which shows an example of a structure of the processor module of the semiconductor integrated circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係るプロセッサモジュールにおける各コンポーネントの構成の一例を示す図である。It is a figure which shows an example of a structure of each component in the processor module which concerns on one Embodiment of this invention. 本発明の一実施形態に係るプロセッサモジュールにおける各コンポーネントの構成の一例を示す図である。It is a figure which shows an example of a structure of each component in the processor module which concerns on one Embodiment of this invention. 本発明の一実施形態に係る性能評価モジュールの構成の一例を示す図である。It is a figure which shows an example of a structure of the performance evaluation module which concerns on one Embodiment of this invention. 本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the performance evaluation module which concerns on one Embodiment of this invention. 本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the performance evaluation module which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。It is a conceptual diagram for demonstrating the count operation | movement of the performance evaluation module in the pipeline process by the processor module of the semiconductor integrated circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。It is a conceptual diagram for demonstrating the count operation | movement of the performance evaluation module in the pipeline process by the processor module of the semiconductor integrated circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体集積回路のプロセッサモジュールによるパイプライン処理における性能評価モジュールのカウントの動作を説明するための概念図である。It is a conceptual diagram for demonstrating the count operation | movement of the performance evaluation module in the pipeline process by the processor module of the semiconductor integrated circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。It is a figure which shows the other example of schematic structure of the semiconductor integrated circuit which concerns on one Embodiment of this invention.

次に、本発明の実施の形態について、図面を参照しつつ説明する。   Next, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体集積回路1は、例えば、プロセッサモジュール10と、メモリモジュール20と、チップセット30と、性能評価モジュール40とを含んで構成される。半導体集積回路1は、典型的には、図示しない所定のI/Oインターフェースを介して、ストレージデバイス50や入出力装置60等を接続し、コンピュータシステムを構成する。なお、半導体集積回路1は、性能評価モジュール40のみによって構成され、プロセッサモジュール等によって構成される他の半導体集積回路と一体的に動作するようにものであっても良い。   FIG. 1 is a diagram showing an example of a schematic configuration of a semiconductor integrated circuit according to an embodiment of the present invention. As shown in the figure, the semiconductor integrated circuit 1 according to the present embodiment includes, for example, a processor module 10, a memory module 20, a chip set 30, and a performance evaluation module 40. The semiconductor integrated circuit 1 typically connects a storage device 50, an input / output device 60, and the like via a predetermined I / O interface (not shown) to constitute a computer system. The semiconductor integrated circuit 1 may be configured only by the performance evaluation module 40 and may operate integrally with another semiconductor integrated circuit configured by a processor module or the like.

プロセッサモジュール10は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び/又はこれらの組合せを含む。本実施形態のプロセッサモジュール10は、パイプライン方式で命令を実行可能に構成される。したがって、プロセッサモジュール10は、メモリモジュール20に記憶されるプログラムを構成する命令群をパイプライン処理することによって、コンピュータシステムに所定の機能を実現させる。本実施形態では、プロセッサモジュール10は、プログラムの実行中、プログラムカウンタの値を性能評価モジュール40に出力する。   The processor module 10 includes, for example, a processor core, a microcontroller, a digital signal processor, and / or combinations thereof. The processor module 10 of this embodiment is configured to be able to execute instructions in a pipeline manner. Accordingly, the processor module 10 causes the computer system to realize a predetermined function by performing pipeline processing on a group of instructions constituting the program stored in the memory module 20. In the present embodiment, the processor module 10 outputs the value of the program counter to the performance evaluation module 40 during execution of the program.

メモリモジュール20は、典型的には、揮発性メモリ(例えばRAM)、不揮発性メモリ(例えばROMやフラッシュメモリ等)及び/又はこれらの組合せからなる1次記憶装置である。本例では、メモリモジュール20は、性能評価に供されるプログラム及びその実行に必要な各種のプログラム等を記憶する。
また、メモリモジュール20は、性能評価モジュール40から出力されるカウント値を記憶する。
The memory module 20 is typically a primary storage device composed of volatile memory (for example, RAM), nonvolatile memory (for example, ROM, flash memory, etc.), and / or a combination thereof. In this example, the memory module 20 stores a program used for performance evaluation, various programs necessary for the execution, and the like.
Further, the memory module 20 stores the count value output from the performance evaluation module 40.

チップセット30は、プロセッサモジュール10、メモリモジュール20、性能評価モジュール40、ストレージデバイス50及び入出力装置60等を接続するバスとのブリッジや、コンピューティングデバイスを構成するために必要な他のコンポーネントを集積した回路からなる。   The chipset 30 includes a bridge with a bus connecting the processor module 10, the memory module 20, the performance evaluation module 40, the storage device 50 and the input / output device 60, and other components necessary for configuring a computing device. Consists of integrated circuits.

性能評価モジュール40は、プロセッサモジュール10が実行するプログラム中の所定の命令が何サイクル分実行されたか(すなわち、命令の実行数)をカウントする。具体的には、性能評価モジュール40は、プログラムの実行に伴ってプロセッサモジュール10から逐次出力されるプログラムカウンタ(PC)の値が、PCテーブル(図2を参照)に記憶された所定の値と一致するか否かを判断し、一致する度にカウントを行う。カウント結果は、チップセット30を介して、例えばメモリモジュール20やストレージデバイス50に記憶され、プログラムの解析に供される。   The performance evaluation module 40 counts how many cycles a predetermined instruction in the program executed by the processor module 10 has been executed (that is, the number of instructions executed). Specifically, the performance evaluation module 40 determines that the value of the program counter (PC) sequentially output from the processor module 10 in accordance with the execution of the program is a predetermined value stored in the PC table (see FIG. 2). It is determined whether or not they match, and counts each time they match. The count result is stored in, for example, the memory module 20 or the storage device 50 via the chipset 30 and is used for program analysis.

なお、ストレージデバイス50は、典型的には、ハードディスクドライブ(HDD)や光学式ディスクドライブ、ソリッドステートデバイス(SSD)等からなる。ストレージデバイス50は、プロセッサモジュール10の2次記憶装置として機能する。また、入出力装置60は、各種のペリフェラルインターフェースであり、例えば、キーボードや、マウス、ディスプレイ、印刷装置、通信装置などである。   The storage device 50 typically comprises a hard disk drive (HDD), an optical disk drive, a solid state device (SSD), or the like. The storage device 50 functions as a secondary storage device of the processor module 10. The input / output device 60 is various peripheral interfaces such as a keyboard, a mouse, a display, a printing device, and a communication device.

以上のように構成される半導体集積回路1は、プロセッサモジュール10によって、メモリモジュール20に記憶されるプログラム中の命令を実行し、また、該実行の間、性能評価モジュール40によって所定の命令が何サイクル分実行されたかをカウントし、該カウント値をメモリモジュール20等に記憶する。これにより、半導体集積回路1は、イベントベースよりも粒度の小さい命令のクロックサイクルベースで命令の実行数をカウントすることができ、したがって、プログラム開発者は、その実行経過を解析することができるようになる。   In the semiconductor integrated circuit 1 configured as described above, the processor module 10 executes instructions in the program stored in the memory module 20, and during the execution, the performance evaluation module 40 determines what predetermined instructions are. It counts whether it was executed for the number of cycles, and stores the count value in the memory module 20 or the like. As a result, the semiconductor integrated circuit 1 can count the number of instructions executed on the basis of the clock cycle of instructions having a smaller granularity than the event base, so that the program developer can analyze the execution progress. become.

図2は、本発明の一実施形態に係る半導体集積回路のプロセッサモジュールの構成の一例を示す図である。同図に示すように、本実施形態に係るプロセッサモジュール10は、例えば、命令フェッチ部11と、レジスタリード部12と、実行部13と、メモリアクセス部14と、ライトバック部15とを含んで構成される。本実施形態では、プロセッサモジュール10は、これら5つのコンポーネントにより5ステージのパイプライン処理で命令を処理するものとして構成されるが、これに限られるものではない。   FIG. 2 is a diagram illustrating an example of a configuration of a processor module of a semiconductor integrated circuit according to an embodiment of the present invention. As shown in the figure, the processor module 10 according to the present embodiment includes, for example, an instruction fetch unit 11, a register read unit 12, an execution unit 13, a memory access unit 14, and a write back unit 15. Composed. In the present embodiment, the processor module 10 is configured to process instructions by these five components in five stages of pipeline processing, but is not limited to this.

命令フェッチ部11は、プログラムカウンタ(図3を参照)に記憶された実行アドレスに従って命令キャッシュ(図3を参照)から命令をフェッチし、出力する。これに伴い、プログラムカウンタの値は、後述する実行部13から出力される制御信号CNTに従って更新される。命令フェッチ部11は、レジスタリード部12に対する読み出しレジスタアドレスを示すリードレジスタ信号RREG1及びRREG2並びに書き込みレジスタアドレスを示すライトレジスタ信号WREGと、命令に従う制御内容を示す制御信号CNTとを生成し、これらをプログラムカウンタの値を示すプログラムカウンタ信号PCとともにレジスタリード部12に出力する。また、命令フェッチ部11は、プログラムカウンタ信号PCを性能評価モジュール40に出力する。   The instruction fetch unit 11 fetches and outputs an instruction from the instruction cache (see FIG. 3) according to the execution address stored in the program counter (see FIG. 3). Accordingly, the value of the program counter is updated according to a control signal CNT output from the execution unit 13 described later. The instruction fetch unit 11 generates read register signals RREG1 and RREG2 indicating a read register address for the register read unit 12, a write register signal WREG indicating a write register address, and a control signal CNT indicating a control content according to the instruction. A program counter signal PC indicating the value of the program counter is output to the register read unit 12. Further, the instruction fetch unit 11 outputs a program counter signal PC to the performance evaluation module 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が示す値を書き込む。   The register read unit 12 has a register file (see FIG. 3) that stores various values to be used for program execution, and executes reading to the register file in accordance with the instruction fetched by the instruction fetch unit 11. At the same time, writing to the register file is executed in accordance with a signal output from a write back unit 15 described later. Specifically, the register read unit 12 latches the program counter signal PC output from the instruction fetch unit 11, the control signal CNT, the read register signals RREG1 and RREG2, and the write register signal WREG, and the read register signal RREG1 and RREG2 are output to the performance evaluation module 40. The register read unit 12 outputs the program counter signal PC, the control signal CNT, and the write register signal WREG to the execution unit 13. The register read unit 12 reads a value from the address of the register file according to the latched read register signals RREG1 and RREG2, and outputs the read values to the execution unit 13 as read data signals RDATA1 and RDATA2. Further, the register read unit 12 writes the value indicated by the write data signal WDATA output from the write back unit 15 to the address of the register file according to the write back register signal WBREG output from the write back unit 15 described later.

実行部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とに出力する。   The execution unit 13 interprets the instruction fetched by the instruction fetch unit 11 using various values read by the register read unit 12, and executes an operation according to the interpretation. Specifically, the execution unit 13 latches the program counter signal PC output from the register read unit 12, the write register signal WREG, the read data signals RDATA1 and RDATA2, and the control signal CNT, and latches the program counter. The signal PC is output to the performance evaluation module 40 as a program counter signal PC2. In addition, the execution unit 13 outputs the latched control signal CNT to the performance evaluation module 40, the instruction fetch unit 11, and the memory access unit 14. The execution unit 13 outputs the latched write register signal WREG to the memory access unit 14 and the performance evaluation module 40, and outputs the latched read data signal RDATA2 to the memory access unit 14 as the write signal WRITE. Furthermore, the execution unit 13 uses the values of the read data signals RDATA1 and RDATA2 output from the register read unit 12 to execute an operation according to the latched control signal CNT. Furthermore, the execution unit 13 outputs the result of the calculation to the memory access unit 14 and the performance evaluation module 40 as a result signal RESULT.

メモリアクセス部14は、メモリモジュール20に対する1次キャッシュの役割を有するデータキャッシュ(図4を参照)を有し、命令フェッチ部11でフェッチされた命令に従って、レジスタリード部12によって読み出された各種の値を用いて、データキャッシュに対する書き込み及び/又は読み出しを実行する。具体的には、メモリアクセス部14は、実行部13から出力される制御信号CNTと、結果信号RESLUTと、ライトレジスタWREGとをラッチし、該ラッチした3つの信号をライトバック部15に出力する。メモリアクセス部14は、ラッチした制御信号CNTに従って、ラッチした結果信号RESULTが示すデータキャッシュのアドレスに、ラッチしたライト信号WRITEが示す値を書き込むか、又は、結果信号RESULTが示すデータキャッシュのアドレスから値を読み出して、該読み出した値をリード信号READとしてライトバック部15に出力する。また、メモリアクセス部14は、データキャッシュの内容をメモリモジュール20に送信し、メモリモジュール20を更新する。   The memory access unit 14 has a data cache (see FIG. 4) that serves as a primary cache for the memory module 20, and is read by the register read unit 12 according to the instruction fetched by the instruction fetch unit 11. The value of is used to write to and / or read from the data cache. Specifically, the memory access unit 14 latches the control signal CNT, the result signal RESLUT, and the write register WREG output from the execution unit 13, and outputs the latched three signals to the write back unit 15. . In accordance with the latched control signal CNT, the memory access unit 14 writes the value indicated by the latched write signal WRITE to the address of the data cache indicated by the latched result signal RESULT or starts from the address of the data cache indicated by the result signal RESULT. The value is read, and the read value is output to the write back unit 15 as a read signal READ. In addition, the memory access unit 14 transmits the contents of the data cache to the memory module 20 and updates the memory module 20.

ライトバック部15は、命令フェッチ部11によってフェッチされた命令の実行結果(すなわち、実行部13による演算実行の結果、及びメモリアクセス部14によって読み出された値)をレジスタリード部12のレジスタファイルに書き込む。具体的には、ライトバック部15は、メモリアクセス部14から出力されるライトレジスタ信号WREGをラッチし、ライトバックレジスタ信号WBREGとして、レジスタリード部12に出力する。また、ライトバック部15はメモリアクセス部14から出力される制御信号CNTに従って、結果信号RESULT又はリード信号READのいずれかを選択し、該選択の結果をライトデータ信号WDATAとしてレジスタリード部12に出力する。   The write-back unit 15 stores the execution result of the instruction fetched by the instruction fetch unit 11 (that is, the result of operation execution by the execution unit 13 and the value read by the memory access unit 14) in the register file of the register read unit 12. Write to. Specifically, the write back unit 15 latches the write register signal WREG output from the memory access unit 14 and outputs the latched signal to the register read unit 12 as the write back register signal WBREG. The write back unit 15 selects either the result signal RESULT or the read signal READ according to the control signal CNT output from the memory access unit 14, and outputs the selection result to the register read unit 12 as the write data signal WDATA. To do.

以上のように構成されるプロセッサモジュール10において、命令フェッチ部11は、メモリモジュール20から出力されるプログラムの実行アドレスに従う命令をフェッチし、次に、レジスタリード部12は、レジスタファイルから命令の実行に必要な値を読み出してこれを実行部13に渡し、実行部13は、命令に従う演算を実行する。また、命令フェッチ部11によりフェッチされた命令に従って、メモリアクセス部14は、データキャッシュに対する書き込み又は読み出しを実行する。また、ライトバック部15は、実行部13による演算結果又はメモリアクセス部14によるデータキャッシュの読み出し結果をレジスタリード部12のレジスタファイルに書き込む。このようにして、プロセッサモジュール10は、メモリモジュール20から出力されるプログラムを実行することができる。   In the processor module 10 configured as described above, the instruction fetch unit 11 fetches an instruction according to the execution address of the program output from the memory module 20, and then the register read unit 12 executes the instruction from the register file. The necessary value is read out and passed to the execution unit 13, and the execution unit 13 executes an operation according to the instruction. Further, according to the instruction fetched by the instruction fetch unit 11, the memory access unit 14 executes writing or reading with respect to the data cache. Further, the write back unit 15 writes the calculation result by the execution unit 13 or the data cache read result by the memory access unit 14 in the register file of the register read unit 12. In this way, the processor module 10 can execute the program output from the memory module 20.

図3は、図2に示したIII−III線で囲まれたプロセッサモジュールにおける各コンポーネントの構成の一例を示す図であって、具体的には、プロセッサモジュール10における命令フェッチ部11、レジスタリード部12及び実行部13の構成の詳細を示している。同図に示すように、命令フェッチ部11は、プログラムカウンタ111と、命令キャッシュ112とを含んで構成される。   FIG. 3 is a diagram showing an example of the configuration of each component in the processor module surrounded by the line III-III shown in FIG. 2. Specifically, the instruction fetch unit 11 and the register read unit in the processor module 10 are shown. 12 shows the details of the configuration of the execution unit 13 and the execution unit 13. As shown in the figure, the instruction fetch unit 11 includes a program counter 111 and an instruction cache 112.

プログラムカウンタ111は、命令の実行アドレスの値を保持し、所定のクロックに基づいて、保持した実行アドレスの値を出力する。プログラムカウンタ111の実行アドレスの値は、実行部13から出力される制御信号CNTが実行アドレスの値を示す場合、該制御信号CNTに従って更新され制御信号CNTが実行アドレスの値を示さない場合、単にカウントアップされる。また、プログラムカウンタ111は、実行アドレスの値をプログラムカウンタ信号PCとして、命令キャッシュ112と、レジスタリード部12とに出力する。   The program counter 111 holds the value of the execution address of the instruction, and outputs the value of the held execution address based on a predetermined clock. The execution address value of the program counter 111 is simply updated according to the control signal CNT when the control signal CNT output from the execution unit 13 indicates the execution address value, and when the control signal CNT does not indicate the execution address value. Count up. The program counter 111 outputs the value of the execution address as the program counter signal PC to the instruction cache 112 and the register read unit 12.

命令キャッシュ112は、メモリモジュール20に対する1次キャッシュの役割を有し、メモリモジュール20から出力されるプロセッサモジュール10で実行されるプログラムの命令と、該命令に対応する実行アドレスとを記憶する。また、命令キャッシュ112は、プログラムカウンタ111から出力されるプログラムカウンタ信号PCに基づいて、該信号に従う命令を読み出し、読み出した該命令に従うライトレジスタ信号WREGと、リードレジスタ信号RREG1及びRREG2と、制御信号CNTとを生成し、該生成した信号をレジスタリード部12に出力する。ライトレジスタ信号WREGは、命令の実行結果を記憶するレジスタファイルのアドレスを示し、リードレジスタ信号RREG1及びRREG2は、命令の実行にあたって値を読み出すレジスタファイルの値を示し、制御信号CNTは命令の内容を示す。   The instruction cache 112 has a role of a primary cache for the memory module 20 and stores an instruction of a program executed by the processor module 10 output from the memory module 20 and an execution address corresponding to the instruction. The instruction cache 112 reads an instruction according to the signal based on the program counter signal PC output from the program counter 111, a write register signal WREG according to the read instruction, read register signals RREG1 and RREG2, and a control signal. CNT is generated, and the generated signal is output to the register read unit 12. The write register signal WREG indicates the address of the register file that stores the execution result of the instruction, the read register signals RREG1 and RREG2 indicate the value of the register file from which the value is read when the instruction is executed, and the control signal CNT indicates the content of the instruction Show.

レジスタリード部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とにそれぞれ出力する。   The register read unit 12 includes a plurality of registers 121 (in this example, registers 121 (1) to 121 (5)) and a register file 122. Each of the registers 121 (1) to 121 (5) latches the write register signal WREG output from the instruction fetch unit 11, the read register signals RREG1 and RREG2, the control signal CNT, and the program counter signal PC. The registers 121 (2) and 121 (3) output the latched read register signals RREG1 and RREG2 to the register file 122 and the performance evaluation module 40, respectively.

レジスタファイル122は、上述したように、実行部13の実行に供される各種の値を記憶する。レジスタファイル122は、レジスタ121(2)及び121(3)から出力されるリードレジスタ信号RREG1及びRREG2が示すアドレスから値を読み出し、該読み出した値をそれぞれリードデータ信号RDATA1及びRDATA2として実行部13に出力する。また、レジスタファイル122は、ライトバック部15から出力されるライトバックレジスタ信号WBREGに従うアドレスに、ライトバック部15から出力されるライトデータ信号WDATAが示す値を書き込む。   As described above, the register file 122 stores various values used for execution by the execution unit 13. The register file 122 reads values from the addresses indicated by the read register signals RREG1 and RREG2 output from the registers 121 (2) and 121 (3), and uses the read values as read data signals RDATA1 and RDATA2 to the execution unit 13, respectively. Output. In addition, the register file 122 writes a value indicated by the write data signal WDATA output from the write back unit 15 at an address according to the write back register signal WBREG output from the write back unit 15.

実行部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とに出力する。   The execution unit 13 includes registers 131 (1) to 131 (5) and a calculation unit 132. Each of the registers 131 (1) to 131 (5) latches the write register signal WREG output from the register read unit 12, the read data signals RDATA1 and RDATA2, the control signal CNT, and the program counter PC. The registers 131 (2) to 131 (4) output the latched read data signals RDATA1 and RDATA2 and the control signal CNT to the arithmetic unit 132. The register 131 (3) outputs the latched read data signal RDATA2 to the memory access unit 14 as the write signal WRITE. Further, the register 131 (4) outputs the latched control signal CNT to the instruction fetch unit 11, the performance evaluation module 40, and the memory access unit 14.

演算部132は、例えばALU(Arithmetic Logic Unit)であり、命令を解釈、該解釈に従った演算処理を行う。演算部132はレジスタ131(2)及び131(3)から出力されるリードデータ信号RDATA1及びRDATA2が示す値を用いて、レジスタ131(4)から出力される制御信号CNTが示す命令に従う演算を実行する。演算部132は演算の結果を結果信号RESULTとして、該信号を性能評価モジュール40とメモリアクセス部14とに出力する。   The arithmetic unit 132 is, for example, an ALU (Arithmetic Logic Unit), interprets an instruction, and performs arithmetic processing according to the interpretation. The arithmetic unit 132 uses the values indicated by the read data signals RDATA1 and RDATA2 output from the registers 131 (2) and 131 (3) to execute an operation according to the instruction indicated by the control signal CNT output from the register 131 (4). To do. The calculation unit 132 outputs the signal as a result signal RESULT to the performance evaluation module 40 and the memory access unit 14.

図4は、図2に示したIV−IV線で囲まれたプロセッサモジュールの各コンポーネントの構成の一例を示す図であって、具体的には、プロセッサモジュール10におけるメモリアクセス部14及びライトバック部15の構成の詳細を示している。同図に示すように、本実施形態に係るメモリアクセス部14は、例えば、レジスタ141(1)乃至141(4)と、データキャッシュ142とを含んで構成される。   FIG. 4 is a diagram illustrating an example of the configuration of each component of the processor module surrounded by the IV-IV line illustrated in FIG. 2. Specifically, the memory access unit 14 and the write back unit in the processor module 10 are illustrated. 15 shows details of the configuration. As shown in the figure, the memory access unit 14 according to the present embodiment includes, for example, registers 141 (1) to 141 (4) and a data cache 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に出力する。   Each of the registers 141 (1) to 141 (4) latches the write register signal WREG, the result signal RESULT, the write signal WRITE, and the control signal CNT output from the execution unit 13. The registers 141 (2) and 141 (3) output the latched result signal RESULT and the write signal WRITE to the data cache 142. The registers 141 (1), 141 (2), and 141 (4) output the latched write register signal WREG, result signal RESULT, and control signal CNT to the write back unit 15, respectively.

データキャッシュ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として送信する。   As described above, the data cache 142 serves as a primary cache for the memory module 20. When a data write or read command is issued to the memory module 20, the data cache 142 replaces the memory module 20 and stores data. It is used for writing or reading. When the control signal CNT output from the register 141 (4) indicates a read process with respect to the memory module 20, the data cache 142 reads a value from an address according to the result signal RESULT output from the register 141 (2), and performs the read The read data is output to the write back unit 15 as a read signal READ. In addition, when the control signal CNT output from the register 141 (4) indicates a process of writing to the memory module 20, the data cache 142 registers the register 141 at the address indicated by the result signal RESULT output from the register 141 (2). The value indicated by the write signal WRITE output from (3) is written. Further, the data cache 142 transmits the stored contents as the memory signal MEM to the memory module 20 according to a predetermined algorithm.

ライトバック部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に出力する。   The write back unit 15 includes, for example, registers 151 (1) to 151 (4) and a selection circuit 152. Each of the registers 151 (1) to 151 (4) latches the write register signal WREG output from the memory access unit 14, the result signal RESULT, the read signal READ, and the control signal CNT. In addition, the register 151 (1) outputs the latched write register signal WREG to the register read unit 12 as the write back register signal WBREG. Further, the registers 151 (2) and 151 (3) output the latched result signal RESULT and the read signal READ to the selection circuit 152.

選択回路152は、例えばマルチプレクサであるがこれに限られず、データセレクタや信号切替器などであっても良い。選択回路152は、レジスタ151(4)から出力される制御信号CNTに従って、レジスタ151(2)から出力される結果信号RESULT、又はレジスタ151(3)から出力されるリード信号READのいずれかを選択し、該選択の結果をライトデータ信号WDATAとして出力する。具体的には、制御信号CNTがメモリモジュール20に対するデータの書き込み及び読み出しの処理を示す場合、リード信号READを選択する一方で、制御信号CNTがメモリモジュール20に対するデータの書き込み及び読み出し以外の処理を示す場合、結果信号RESULTを選択し、該選択の結果をライトデータ信号WDATAとして、レジスタリード部12に出力する。   The selection circuit 152 is, for example, a multiplexer, but is not limited thereto, and may be a data selector, a signal switch, or the like. The selection circuit 152 selects either the result signal RESULT output from the register 151 (2) or the read signal READ output from the register 151 (3) in accordance with the control signal CNT output from the register 151 (4). Then, the selection result is output as a write data signal WDATA. Specifically, when the control signal CNT indicates a process of writing and reading data with respect to the memory module 20, the read signal READ is selected while the control signal CNT performs a process other than writing and reading of data with respect to the memory module 20. In the case shown, the result signal RESULT is selected, and the result of the selection is output to the register read unit 12 as the write data signal WDATA.

図5は、本発明の一実施形態に係る性能評価モジュールの構成の一例を示す図である。本実施形態に係る性能評価モジュール40は、例えば、プログラムカウンタ選択部(以下「PC選択部」という。)21と、プログラムカウンタ比較部(以下「PC比較部」という。)22と、カウント制御部23と、プログラムカウンタテーブル(以下「PCテーブル」という。)24とを含んで構成される。   FIG. 5 is a diagram showing an example of the configuration of a performance evaluation module according to an embodiment of the present invention. The performance evaluation module 40 according to the present embodiment includes, for example, a program counter selection unit (hereinafter referred to as “PC selection unit”) 21, a program counter comparison unit (hereinafter referred to as “PC comparison unit”) 22, and a count control unit. 23 and a program counter table (hereinafter referred to as “PC table”) 24.

PC選択部21は、プロセッサモジュール10から出力される各種の信号に従って、プロセッサモジュール10の命令フェッチ部11から出力されるプログラムカウンタ信号PC、又はプロセッサモジュール10の実行部13から出力されるプログラムカウンタ信号PC2のいずれかを選択し、該選択の結果をPC比較部22に出力する。PC選択部21は、例えば、比較器211(1)及び211(2)と、論理和回路212と、信号判断部213と、論理積回路214と、選択回路215とを含んで構成される。   The PC selection unit 21 is a program counter signal PC output from the instruction fetch unit 11 of the processor module 10 or a program counter signal output from the execution unit 13 of the processor module 10 in accordance with various signals output from the processor module 10. One of the PCs 2 is selected, and the selection result is output to the PC comparison unit 22. The PC selection unit 21 includes, for example, comparators 211 (1) and 211 (2), an OR circuit 212, a signal determination unit 213, an AND circuit 214, and a selection circuit 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に出力する。   The comparator 211 compares two input signals and outputs the comparison result to the OR circuit 212. Specifically, the comparator 211 (1) compares the read register signal RREG1 output from the register read unit 12 of the processor module 10 with the write register signal WREG output from the execution unit 13 of the processor module 10, When the values indicated by the two signals match, for example, “1” is output, and when the values indicated by the two signals do not match, for example, “0” is output. The comparator 211 (2) compares the read register signal RREG2 output from the register read unit 12 of the processor module 10 with the write register signal WREG output from the execution unit 13 of the processor module 10, and compares the comparison result. Is output to the OR circuit 212.

論理和回路212は、比較器211(1)及び211(2)の比較結果に対して論理和を行い、該論理和の結果を論理積回路214に出力する。   The logical sum circuit 212 performs a logical sum on the comparison results of the comparators 211 (1) and 211 (2), and outputs the logical sum result to the logical product circuit 214.

信号判断部213は、プロセッサモジュール10の実行部13から出力される制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しであるか否かを判断する。信号判断部213は、制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しであると判断する場合、“1”の状態を示す信号を論理積回路214に出力する一方で、制御信号CNTが示す命令の内容がメモリモジュール20に対する読み出しでないと判断する場合、“0”の状態を示す信号を論理積回路214に出力する。   The signal determination unit 213 determines whether or not the content of the command indicated by the control signal CNT output from the execution unit 13 of the processor module 10 is read from the memory module 20. When the signal determination unit 213 determines that the content of the command indicated by the control signal CNT is read from the memory module 20, the signal determination unit 213 outputs a signal indicating the state of “1” to the AND circuit 214, while the control signal CNT is When it is determined that the content of the command to be indicated is not read from the memory module 20, a signal indicating a state of “0” is output to the AND circuit 214.

論理積回路214は、信号判断部213から出力される判断の結果と論理和回路212から出力される論理和の結果とに対して論理積を行い、該論理積の結果を選択回路215の選択端子SLに出力する。   The logical product circuit 214 performs a logical product on the result of the determination output from the signal determination unit 213 and the result of the logical sum output from the logical sum circuit 212, and selects the result of the logical product by the selection circuit 215. Output to terminal SL.

選択回路215は、例えばマルチプレクサであるがこれに限られず、データセレクタや信号切替器であっても良い。選択回路215は、論理積回路214から出力される論理積の結果に従って、プロセッサモジュール10の命令フェッチ部11から出力されるプログラムカウンタ信号PC又はプロセッサモジュール10の実行部13から出力されるプログラムカウンタ信号PC2のいずれかを選択し、該選択の結果をPC比較部22に出力する。選択回路215は、論理積回路214の論理積の結果が“1”である場合、プログラムカウンタ信号PC2を選択する一方で、論理積回路214の論理積の結果が“0”である場合、プログラムカウンタ信号PCを選択する。   The selection circuit 215 is a multiplexer, for example, but is not limited thereto, and may be a data selector or a signal switch. The selection circuit 215 receives the program counter signal PC output from the instruction fetch unit 11 of the processor module 10 or the program counter signal output from the execution unit 13 of the processor module 10 according to the result of the logical product output from the logical product circuit 214. One of the PCs 2 is selected, and the selection result is output to the PC comparison unit 22. The selection circuit 215 selects the program counter signal PC2 when the logical product result of the logical product circuit 214 is “1”, while selecting the program counter signal PC2 when the logical product result of the logical product circuit 214 is “0”. The counter signal PC is selected.

以上のように構成されるPC選択部21は、実行部13から出力される制御信号CNTがメモリモジュール20に対する読み出しを示し、かつ、プロセッサモジュール10のレジスタリード部12から出力されるリードレジスタ信号RREG1又はRREG2とプロセッサモジュール10の実行部13から出力されるライトレジスタ信号WREGとが一致する場合に、実行部13から出力されるプログラムカウンタ信号PC2を選択し、出力する。一方、PC選択部21は、制御信号CNTがメモリモジュール20に対する読み出しを示さないか、又は、リードレジスタ信号RREG1又はRREG2とライトレジスタ信号WREGとが一致しない場合、命令フェッチ部11から出力されるプログラムカウンタ信号PCを選択し、出力する。   The PC selection unit 21 configured as described above indicates that the control signal CNT output from the execution unit 13 indicates reading from the memory module 20 and the read register signal RREG1 output from the register read unit 12 of the processor module 10. Alternatively, when RREG2 and the write register signal WREG output from the execution unit 13 of the processor module 10 match, the program counter signal PC2 output from the execution unit 13 is selected and output. On the other hand, when the control signal CNT does not indicate reading from the memory module 20 or the read register signal RREG1 or RREG2 does not match the write register signal WREG, the PC selection unit 21 outputs a program output from the instruction fetch unit 11 The counter signal PC is selected and output.

これにより、PC選択部21は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発行された場合には、命令フェッチ部11のプログラムカウンタ111に保持されている値ではなく、実行部13のレジスタ131(5)に保持されている値を選択する。よって、PC選択部21は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発行された場合に発生し得るデータハザードに対しても、正しく個々の命令の実行数をカウントすることができるようにプログラムカウンタ信号を選択することができる。   Thus, the PC selection unit 21 is held in the program counter 111 of the instruction fetch unit 11 when an instruction that refers to the result of the read is issued immediately after the read instruction to the memory module 20 is issued. Instead of the value, the value held in the register 131 (5) of the execution unit 13 is selected. Therefore, the PC selection unit 21 executes each instruction correctly even for a data hazard that may occur immediately after issuing a read instruction to the memory module 20 when an instruction that refers to the result of the read is issued. The program counter signal can be selected so that the number can be counted.

PCテーブル24は、プログラム中の特定の実行アドレスを記憶する。特定の実行アドレスは、例えば、開発者等が命令の種類や特性に基づいて判断することにより決定される。PCテーブル24に記憶された所定の実行アドレスは、PC比較部22に出力される。なお、PCテーブル24は、典型的には、所定の実行アドレスの値を複数記憶し、PC比較部22の比較器221(1)乃至221(n)にそれぞれ異なる実行アドレスの値を示す信号を出力する。なお、本例では、PCテーブル24は、性能評価モジュ−ル40の一部として設けられているがこれに限られるものでなく、PCテーブル24は、メモリモジュール20に記憶されるものであっても良い。   The PC table 24 stores a specific execution address in the program. The specific execution address is determined, for example, by a developer or the like based on the type and characteristics of the instruction. The predetermined execution address stored in the PC table 24 is output to the PC comparison unit 22. The PC table 24 typically stores a plurality of predetermined execution address values, and the comparators 221 (1) to 221 (n) of the PC comparison unit 22 each have a signal indicating a different execution address value. Output. In this example, the PC table 24 is provided as a part of the performance evaluation module 40. However, the present invention is not limited to this, and the PC table 24 is stored in the memory module 20. Also good.

PC比較部22は、PC選択部21によって選択されたプログラムカウンタ信号が示す値と、PCテーブル24に記憶された特定の実行アドレスの値とを比較し、該比較の結果を一致信号ACCORDとしてカウント制御部23に出力する。PC比較部22は、例えば、比較器221(1)乃至221(n)と、論理和回路222とを含んで構成される。   The PC comparison unit 22 compares the value indicated by the program counter signal selected by the PC selection unit 21 with the value of the specific execution address stored in the PC table 24, and counts the result of the comparison as the coincidence signal ACCODE. Output to the control unit 23. The PC comparison unit 22 includes, for example, comparators 221 (1) to 221 (n) and an OR circuit 222.

比較器221(1)乃至221(n)は、PC選択部21から出力されるプログラムカウンタ信号の値とPCテーブル24から出力される実行アドレスの値とを比較し、該比較の結果を論理和回路222に出力する。比較器221(1)乃至221(n)は、プログラムカウンタ信号の値と実行アドレスの値とが一致すると判断する場合、“1”の状態を示す信号を出力する一方で、プログラムカウンタ信号の値と実行アドレスの値とが一致しないと判断する場合、“0”の状態を示す信号を出力する。   The comparators 221 (1) to 221 (n) compare the value of the program counter signal output from the PC selection unit 21 with the value of the execution address output from the PC table 24, and OR the results of the comparison. Output to the circuit 222. When the comparators 221 (1) to 221 (n) determine that the value of the program counter signal matches the value of the execution address, the comparator 221 (1) to 221 (n) outputs a signal indicating the state of “1”, while the value of the program counter signal When it is determined that the value of the execution address does not match, a signal indicating the state of “0” is output.

論理和回路222は、比較器221(1)乃至221(n)から出力される比較の結果に対して論理和を行い、該論理和の結果を一致信号ACCORDとしてカウント制御部23に出力する。   The logical sum circuit 222 performs a logical sum on the comparison results output from the comparators 221 (1) to 221 (n), and outputs the logical sum result to the count control unit 23 as the coincidence signal ACCODE.

カウント制御部23は、PC比較部22から出力される一致信号ACCORDをラッチして、カウンタ235に出力する。また、カウント制御部23は、プロセッサモジュール10の実行部13から出力される結果信号RESULTの状態に従って、カウンタ235に出力する信号の状態を制御する。カウント制御部23は、例えば、信号判断部231と、選択回路232(1)及び232(2)と、順序回路233(1)及び233(2)と論理積回路234とを含んで構成される。   The count control unit 23 latches the coincidence signal ACCODED output from the PC comparison unit 22 and outputs it to the counter 235. Further, the count control unit 23 controls the state of the signal output to the counter 235 according to the state of the result signal RESULT output from the execution unit 13 of the processor module 10. The count control unit 23 includes, for example, a signal determination unit 231, selection circuits 232 (1) and 232 (2), sequential circuits 233 (1) and 233 (2), and an AND circuit 234. .

信号判断部231は、プロセッサモジュール10の実行部13から出力される結果信号RESULTが示す内容が“分岐条件成立”であるか否かを判断する。信号判断部231は、結果信号RESULTが示す内容が“分岐条件成立”である場合、例えば“1”の状態を示す信号を選択回路232(1)及び232(2)の選択端子SLと論理積回路234とに出力する。これに対して、結果信号RESULTが示す内容が“分岐条件不成立”である場合、信号判断部231は、例えば“0”の状態を示す信号を選択回路232(1)及び232(2)の選択端子SLと論理積回路234とに出力する。   The signal determination unit 231 determines whether or not the content indicated by the result signal RESULT output from the execution unit 13 of the processor module 10 is “branch condition satisfied”. When the content indicated by the result signal RESULT is “branch condition satisfied”, the signal determination unit 231 performs, for example, a signal indicating the state of “1” with the selection terminals SL of the selection circuits 232 (1) and 232 (2). Output to the circuit 234. On the other hand, when the content indicated by the result signal RESULT is “branch condition not satisfied”, the signal determination unit 231 selects, for example, a signal indicating a state of “0” by the selection circuits 232 (1) and 232 (2). The data is output to the terminal SL and the logical product circuit 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に出力する。   The selection circuit 232 is a multiplexer, for example, but is not limited thereto, and may be a data selector or a signal switch. The selection circuit 232 selects either of the signals input to the input terminal A0 or A1 according to the signal input to the selection terminal SL and outputs the selected signal from the output terminal Y. Specifically, the selection circuit 232 (1) selects the coincidence signal ACCODED output from the PC comparison unit 22 when the signal output from the signal determination unit 231 indicates “0”, for example. When the signal output from the signal determination unit 231 indicates “1”, for example, the selection circuit 232 (1) selects the signal output from the AND circuit 234, and the result of the selection is displayed as the sequential circuit 233 ( 1) to the data input terminal D. The selection circuit 232 (2) selects the signal output from the sequential circuit 233 (1) when the signal output from the signal determination unit 231 indicates, for example, “0”. When the signal output from the signal determination unit 231 indicates, for example, “1”, the selection circuit 232 (2) selects the signal output from the AND circuit 234, and the result of the selection is displayed as the sequential circuit 233 ( 2) to the data input terminal D.

順序回路233は、例えば、D型フリップフロップであるがこれに限られない。順序回路233は、クロック端子CKに入力されるクロックに基づいて、データ入力端子Dに入力される信号をデータ出力端子Qから出力する。具体的には、順序回路233(1)は、所定のクロックCLKに基づいて、選択回路232(1)から出力される信号を選択回路232(2)の入力端子A1に出力する。また、順序回路233(2)は、所定のクロックCLKに基づいて、選択回路232(2)から出力される信号を論理積回路234とカウンタ235とに出力する。   The sequential circuit 233 is, for example, a D-type flip-flop, but is not limited thereto. The sequential circuit 233 outputs a signal input to the data input terminal D from the data output terminal Q based on the clock input to the clock terminal CK. Specifically, the sequential circuit 233 (1) outputs a signal output from the selection circuit 232 (1) to the input terminal A1 of the selection circuit 232 (2) based on a predetermined clock CLK. The sequential circuit 233 (2) outputs a signal output from the selection circuit 232 (2) to the logical product circuit 234 and the counter 235 based on a predetermined clock CLK.

論理積回路234は、信号判断部231から出力される信号と順序回路233(2)から出力される信号とに対して論理積を行い、該論理積の結果を選択回路232(1)の入力端子A0及び選択回路232(2)の入力端子A0に出力する。   The logical product circuit 234 performs a logical product on the signal output from the signal determination unit 231 and the signal output from the sequential circuit 233 (2), and the result of the logical product is input to the selection circuit 232 (1). The data is output to the terminal A0 and the input terminal A0 of the selection circuit 232 (2).

カウンタ235は、順序回路233(2)から出力される信号を受信する。カウンタ235は、順序回路233(2)から出力される信号が例えば“1”を示す場合、カウントを行ってカウント値を更新する。カウンタ235は、該カウントの結果をカウント信号COUNTとしてチップセット30を介してメモリモジュール20に出力する。   The counter 235 receives a signal output from the sequential circuit 233 (2). When the signal output from the sequential circuit 233 (2) indicates, for example, “1”, the counter 235 performs counting and updates the count value. The counter 235 outputs the count result to the memory module 20 via the chipset 30 as the count signal COUNT.

以上のように構成されるカウント制御部23は、実行部13から出力される結果信号RESULTが“分岐条件不成立”を示す場合、PC比較部22から出力される一致信号ACCORDを順序回路233(1)及び233(2)によってラッチし、該ラッチした結果をカウンタ235に出力する。これに対して、カウント制御部23は、結果信号RESULTが“分岐条件成立”を示す場合、順序回路233(1)及び233(2)の状態を順序回路233(2)の出力の状態に設定し、該順序回路の状態に基づいてカウンタ235によってカウントを行う。   When the result signal RESULT output from the execution unit 13 indicates “branch condition not satisfied”, the count control unit 23 configured as described above uses the sequential circuit 233 (1 ) And 233 (2), and the latched result is output to the counter 235. On the other hand, the count control unit 23 sets the states of the sequential circuits 233 (1) and 233 (2) to the output state of the sequential circuit 233 (2) when the result signal RESULT indicates “branch condition satisfied”. The counter 235 counts based on the state of the sequential circuit.

これにより、カウント制御部23は、結果信号RESULTが“分岐命令成立”を示す場合、順序回路233(1)及び233(2)の入力を順序回路233(2)の出力に設定するので、分岐命令が発行されてから2回分の命令のカウント値を、分岐条件が成立しなかった場合のそれぞれの命令のカウント値ではなく、該分岐命令のカウント値とする。よって、カウント制御部23は、分岐条件が成立した場合に発生する制御ハザードに対しても、正しく個々の命令の実行数をカウントすることができるように、カウント値を制御することができる。   Accordingly, the count control unit 23 sets the inputs of the sequential circuits 233 (1) and 233 (2) to the output of the sequential circuit 233 (2) when the result signal RESULT indicates “branch instruction is established”. The count value of the instruction for two times after the instruction is issued is not the count value of each instruction when the branch condition is not satisfied, but the count value of the branch instruction. Therefore, the count control unit 23 can control the count value so that the number of executions of individual instructions can be correctly counted even for a control hazard that occurs when a branch condition is satisfied.

以上のように構成される性能評価モジュール40は、PC選択部21によって選択されたプログラムカウンタ信号に対して、PC比較部22によって所定の実行アドレスと一致するか否かを判断し、該判断の結果をカウント制御部23によってラッチし、該ラッチした信号に対して分岐条件が成立する場合の制御を行った後に、カウンタ235によってカウントを行う。これにより、性能評価モジュール40は、プロセッサモジュール10で行われる命令のうち所定の実行アドレスに対応する個々の命令の実行数をカウントすることができる。   The performance evaluation module 40 configured as described above determines whether or not the program counter signal selected by the PC selection unit 21 matches a predetermined execution address by the PC comparison unit 22, and the determination is made. The result is latched by the count control unit 23, and the control is performed when the branch condition is satisfied for the latched signal, and then the counter 235 performs counting. Thereby, the performance evaluation module 40 can count the number of executions of individual instructions corresponding to a predetermined execution address among the instructions executed in the processor module 10.

なお、本例では、性能評価モジュール40は、1つのPCテーブル24を含むが、これに限られるものではない。性能評価モジュール40は、複数のPCテーブル24を含み、性能評価モジュール40が実行される度に、該複数のPCテーブル24のうちから1つのPCテーブル24を選択し、該選択したPCテーブル24に記憶された所定のアドレスとPC選択部21によって選択されたプログラムカウンタが示す値とを比較しても良い。   In this example, the performance evaluation module 40 includes one PC table 24, but is not limited thereto. The performance evaluation module 40 includes a plurality of PC tables 24, and each time the performance evaluation module 40 is executed, one PC table 24 is selected from the plurality of PC tables 24, and the selected PC table 24 is selected. The stored predetermined address may be compared with the value indicated by the program counter selected by the PC selection unit 21.

また、本例では、性能評価モジュール40は、PC選択部21、PC比較部22及びカウント制御部23をそれぞれ1つずつ含むが、これに限られるものではない。性能評価モジュール40は、PC選択部21、PC比較部22及びカウント制御部23をそれぞれ複数含んでも良い。かかる性能評価モジュール40は、各PC比較部22のPCテーブル24でそれぞれ異なる命令の実行アドレスを記憶することによって、一度の処理で、それぞれ異なる命令の実行数を個別にカウントすることができる。   In this example, the performance evaluation module 40 includes one PC selection unit 21, one PC comparison unit 22, and one count control unit 23. However, the present invention is not limited to this. The performance evaluation module 40 may include a plurality of PC selection units 21, PC comparison units 22, and count control units 23, respectively. The performance evaluation module 40 can individually count the number of executions of different instructions in a single process by storing the execution addresses of different instructions in the PC table 24 of each PC comparison unit 22.

図6は、本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートである。同図において、性能評価モジュール40は、まず、プロセッサモジュール10から各種の信号を受信する。具体的には、性能評価モジュール40は、プロセッサモジュール10の命令フェッチ部11からプログラムカウンタ信号PCと、レジスタリード部12からリードレジスタ信号RREG1及びRREG2と、実行部13からプログラムカウンタ信号PC2、ライトレジスタ信号WREG、及び制御信号CNTとを受信する(S601)。性能評価モジュール40は、受信したリードレジスタ信号RREG1及びRREG2とライトレジスタ信号WREGとを比較する(S602)。   FIG. 6 is a flowchart showing an example of the operation of the performance evaluation module according to the embodiment of the present invention. In the figure, the performance evaluation module 40 first receives various signals from the processor module 10. Specifically, the performance evaluation module 40 includes the program counter signal PC from the instruction fetch unit 11 of the processor module 10, the read register signals RREG1 and RREG2 from the register read unit 12, and the program counter signal PC2 and the write register from the execution unit 13. The signal WREG and the control signal CNT are received (S601). The performance evaluation module 40 compares the received read register signals RREG1 and RREG2 with the write register signal 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)。   Next, the performance evaluation module 40 determines whether or not the control signal CNT indicates a read command for the memory module 20 and the read register signal RREG1 or RREG2 matches the write register signal WREG (S603). When the control signal CNT indicates a read command for the memory module 20 and the performance evaluation module 40 determines that the read register signal RREG1 or RREG2 and the write register signal WREG match (Yes in S603), the performance evaluation module 40 outputs from the execution unit 13 The program counter signal PC2 to be executed is selected (S604). On the other hand, the performance evaluation module 40 determines that the control signal CNT does not indicate a read command for the memory module 20 or that the read register signal RREG1 or RREG2 and the write register signal WREG do not match (S603). No), the program counter signal PC output from the instruction fetch unit 11 is selected (S605).

性能評価モジュール40は、続いて、選択したプログラムカウンタ信号に従って、命令の実行数をカウントする(S606)。なお、ステップS606の処理の詳細に関しては、図7を参照して説明される。   Subsequently, the performance evaluation module 40 counts the number of instructions executed according to the selected program counter signal (S606). Details of the process in step S606 will be described with reference to FIG.

図7は、本発明の一実施形態に係る性能評価モジュールの動作の一例を示すフローチャートであり、図6のステップS606の処理の詳細を示している。同図に示すように、まず、性能評価モジュール40は、図6のステップS604又はS605の処理で選択したプログラムカウンタ信号の値と、PCテーブル24に記憶された値とを比較する(S701)。   FIG. 7 is a flowchart showing an example of the operation of the performance evaluation module according to the embodiment of the present invention, and shows details of the processing in step S606 in FIG. As shown in the figure, first, the performance evaluation module 40 compares the value of the program counter signal selected in the process of step S604 or S605 of FIG. 6 with the value stored in the PC table 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)。   Next, the performance evaluation module 40 determines whether or not the result signal RESULT output from the execution unit 13 of the processor module 10 indicates “branch condition instruction established” (S702). When the result signal RESULT indicates “branch condition satisfied” (Yes in S702), the performance evaluation module 40 sets the inputs of the sequential circuits 233 (1) and 233 (2) to the output of the sequential circuit 233 (2) ( S703). On the other hand, when the result signal RESULT does not indicate “satisfaction of branch condition” (No in S702), the performance evaluation module 40 converts the input of the sequential circuit 233 (1) into the comparison result in the process of Step S701, and the sequential circuit 233 (2 ) Is set to the output of the sequential circuit 233 (1) (S704).

性能評価モジュール40は、次に、順序回路233(2)の出力が“1”であるか否かを判断する(S705)。性能評価モジュール40は、順序回路233(2)の出力が“1”である場合(S705のYes)、カウンタ235をカウントアップさせ(S706)、ステップS707の処理に進む。これに対して、性能評価モジュール40は、順序回路233(2)の出力が“1”でない場合(S705のNo)、ステップS707の処理に進む。   Next, the performance evaluation module 40 determines whether or not the output of the sequential circuit 233 (2) is “1” (S705). When the output of the sequential circuit 233 (2) is “1” (Yes in S705), the performance evaluation module 40 increments the counter 235 (S706), and proceeds to the process of step S707. On the other hand, when the output of the sequential circuit 233 (2) is not “1” (No in S705), the performance evaluation module 40 proceeds to the process of step S707.

性能評価モジュール40は、順序回路233(1)及び233(2)の出力を自身の入力にそれぞれ更新し(S707)、処理を終了する。   The performance evaluation module 40 updates the outputs of the sequential circuits 233 (1) and 233 (2) to their own inputs (S707), and ends the process.

上述したように、性能評価モジュール40は、命令フェッチ部11から出力されるプログラムカウンタの値をPCテーブル24に記憶された値と比較して、該比較の結果に従ってカウントを行うため、PCテーブル24に記憶された実行アドレスに対応する命令の実行数をカウントすることができる。また、性能評価モジュール40は、分岐条件が成立すると判断される場合、順序回路233(1)及び233(2)の入力を順序回路233(2)の出力(すなわち、分岐命令のプログラムカウンタの値)に設定するため、分岐命令によって制御ハザードが発生する場合でも、正しく命令の実行数をカウントすることができる。また、性能評価モジュール40は、メモリモジュール20に対する読み出し命令の直後に、該読み出し命令の結果を参照する命令が発行された場合、実行部13から出力されるプログラムカウンタの値を用いるため、該読み出し命令の結果を直後に参照することによって発生するデータハザードに対しても、正しく命令の実行数をカウントすることができる。   As described above, the performance evaluation module 40 compares the value of the program counter output from the instruction fetch unit 11 with the value stored in the PC table 24 and counts according to the result of the comparison. It is possible to count the number of executions of instructions corresponding to the execution addresses stored in. Further, when it is determined that the branch condition is satisfied, the performance evaluation module 40 inputs the inputs of the sequential circuits 233 (1) and 233 (2) to the output of the sequential circuit 233 (2) (that is, the value of the program counter of the branch instruction) Therefore, even when a control hazard occurs due to a branch instruction, the number of instructions executed can be counted correctly. The performance evaluation module 40 uses the value of the program counter output from the execution unit 13 when an instruction that refers to the result of the read instruction is issued immediately after the read instruction to the memory module 20. Even for a data hazard that occurs by referring to the result of an instruction immediately, the number of instructions executed can be counted correctly.

次に、性能評価モジュール40が異なる命令ごとに実行数をカウントする例を図8乃至図10を参照しつつ説明する。ここでは、性能評価モジュール40は、特定の1以上の命令ごとに割り当てられた識別子(ID)に従って識別される命令グループごとに実行数をカウントする。したがって、異なるIDごとにその命令の実行アドレスの値を記憶するPCテーブル24が用意され、性能評価モジュール40は、複数のPCテーブル24のそれぞれに対応した、PC選択部21、PC比較部22、及びカウント制御部23からなる構成を複数含む。   Next, an example in which the performance evaluation module 40 counts the number of executions for each different instruction will be described with reference to FIGS. Here, the performance evaluation module 40 counts the number of executions for each instruction group identified according to an identifier (ID) assigned to each specific one or more instructions. Therefore, a PC table 24 for storing the value of the execution address of the instruction is prepared for each different ID, and the performance evaluation module 40 includes a PC selection unit 21, a PC comparison unit 22 corresponding to each of the plurality of PC tables 24, A plurality of configurations including the count control unit 23 are included.

図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が割り当てられた命令の実行アドレスが記憶されているものとする。   FIG. 8 is a conceptual diagram for explaining the counting operation of the performance evaluation module in the pipeline processing by the processor module of the semiconductor integrated circuit according to one embodiment of the present invention. In the figure, timings at which the processor module 10 operates in accordance with a predetermined operation clock are indicated as t801 to t809. That is, the figure shows which component of the processor module 10 each of a certain series of instructions (instruction 1 to instruction 5) is processed at a certain time t. Here, “IF”, “RR”, “EX”, “MA”, and “WB” are an instruction fetch unit 11, a register read unit 12, an execution unit 13, a memory access unit 14, and a write back unit 15, respectively. Point to. In addition, ID # 0 is assigned to Instruction 1, Instruction 3 and Instruction 5, and ID # 1 is assigned to Instruction 2 and Instruction 4. In this example, the execution address of the instruction assigned ID # 0 is stored in the first PC table 24a, and the execution address of the instruction assigned ID # 1 is stored in the second PC table 24b. It is assumed that the third PC table 24c stores the execution address of the instruction assigned ID # 0 and ID # 1.

時刻t801で、プロセッサモジュール10の命令フェッチ部11は、メモリモジュール20から命令1をフェッチし、命令1に対するプログラムカウンタの値を性能評価モジュール40に出力する。性能評価モジュール40は、上述したように、2クロック分にわたってラッチしたプログラムカウンタの値と、PCテーブル24に記憶された所定の実行アドレスの値とを比較し、これらが一致していると判断する場合に、対応する命令の実行数をカウントアップするが、命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令の実行数は、0のままである。   At time t801, the instruction fetch unit 11 of the processor module 10 fetches the instruction 1 from the memory module 20 and outputs the value of the program counter for the instruction 1 to the performance evaluation module 40. As described above, the performance evaluation module 40 compares the value of the program counter latched for two clocks with the value of the predetermined execution address stored in the PC table 24, and determines that they match. In this case, the number of executions of the corresponding instruction is counted up. However, since the value of the program counter for instruction 1 is not yet latched for two clocks, the performance evaluation module 40 does not count up. Therefore, the number of executions of instructions corresponding to ID # 0 and ID # 1 remains 0.

時刻t802では、命令フェッチ部11は、命令2をフェッチし、命令2に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって命令1を処理する。命令1及び命令2に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、ID#0及びID#1に対応する命令の実行数をカウントアップせず、したがって、その実行数及び全体の命令の実行数は0のままである。   At time t <b> 802, the instruction fetch unit 11 fetches the instruction 2 and outputs the value of the program counter for the instruction 2 to the performance evaluation module 40. Further, the processor module 10 processes the instruction 1 by the register read unit 12. Since the value of the program counter for instruction 1 and instruction 2 has not yet been latched for two clocks, the performance evaluation module 40 does not count up the number of executions of instructions corresponding to ID # 0 and ID # 1. The execution number and the total instruction execution number remain zero.

時刻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となる。   At time t803, the instruction fetch unit 11 fetches the instruction 3 and outputs the value of the program counter for the instruction 3 to the performance evaluation module 40. Further, the register read unit 12 processes the instruction 2 while the execution unit 13 processes the instruction 1. Since the value of the program counter for instruction 1 is latched for two clocks at time t803, the performance evaluation module 40 increments the execution number of the instruction corresponding to ID # 0 by one and sets it to 1. On the other hand, since the value of the program counter for instruction 2 is not yet latched for two clocks, the number of executions of the instruction corresponding to ID # 1 remains zero. At time t803, the total number of executed instructions is 1 because it is the total number of executed instructions corresponding to ID # 0 and ID # 1.

時刻t804で、命令フェッチ部11は、命令4をフェッチし、命令4に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令3を処理し、実行部13は、命令2を処理し、メモリアクセス部14は、命令1を処理する。時刻t804で、命令2に対するプログラムカウンタの値が2クロック分ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数を1つカウントアップし、1とする。時刻t804で、全体の命令の実行数は、2となる。   At time t804, the instruction fetch unit 11 fetches the instruction 4 and outputs the value of the program counter for the instruction 4 to the performance evaluation module 40. The register read unit 12 processes the instruction 3, the execution unit 13 processes the instruction 2, and the memory access unit 14 processes the instruction 1. At time t804, since the value of the program counter for instruction 2 is latched for two clocks, the performance evaluation module 40 increments the execution number of the instruction corresponding to ID # 1 by one and sets it to 1. At time t804, the total number of instructions executed becomes 2.

時刻t805で、命令フェッチ部11は、命令5をフェッチし、命令5を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12、実行部13、メモリアクセス部14、及びライトバック部15は、それぞれ、命令4、命令3、命令2、及び命令1を処理する。時刻t804で、命令3に対するプログラムカウンタの値が2クロック分ラッチされているため、性能評価モジュール40は、ID#0に対応する命令の実行数を1つカウントアップし、2とする。時刻t805で、全体の命令の実行数は、3となる。   At time t805, the instruction fetch unit 11 fetches the instruction 5, and outputs the value of the program counter indicating the instruction 5 to the performance evaluation module 40. The register read unit 12, the execution unit 13, the memory access unit 14, and the write back unit 15 process the instruction 4, the instruction 3, the instruction 2, and the instruction 1, respectively. Since the value of the program counter for the instruction 3 is latched for two clocks at time t804, the performance evaluation module 40 increments the number of executions of the instruction corresponding to ID # 0 by one and sets it to 2. At time t805, the total number of instructions executed is 3.

時刻t806以降においても、プロセッサモジュール10の各コンポーネントは、上述したように、一連の命令をパイプライン処理する。性能評価モジュール40は、プロセッサモジュール10から受信するプログラムカウンタの値を2クロック分ラッチしたプログラムカウンタの値について、該プログラムカウンタの値がPCテーブル24に記憶された所定の実行アドレスの値と一致する場合、該プログラムカウンタに1つカウントアップする。   Even after time t806, each component of the processor module 10 pipelines a series of instructions as described above. For the value of the program counter obtained by latching the value of the program counter received from the processor module 10 by two clocks, the performance evaluation module 40 matches the value of the predetermined execution address stored in the PC table 24. In this case, the program counter is incremented by one.

上述したように、プロセッサモジュール10の各コンポーネントは、一連の命令を順次にパイプライン処理する一方で、性能評価モジュール40が、命令フェッチ部11から送られるプログラムカウンタの値を2クロック分ラッチしながら、プログラムカウンタの値がPCテーブル24に記憶された所定の実行アドレスの値と一致している場合に、カウントを行う。これにより、性能評価モジュール40は、クロックサイクルベースで、特定の命令の実行数をカウントすることができる。   As described above, each component of the processor module 10 sequentially pipelines a series of instructions, while the performance evaluation module 40 latches the value of the program counter sent from the instruction fetch unit 11 for two clocks. When the value of the program counter matches the value of the predetermined execution address stored in the PC table 24, the count is performed. Thereby, the performance evaluation module 40 can count the number of executions of a specific instruction on a clock cycle basis.

次に、一連の命令に分岐命令が含まれている場合の、性能評価モジュール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に続く命令であるものとする。   Next, the execution count by the performance evaluation module 40 when a branch instruction is included in a series of instructions will be described. FIG. 9 is a conceptual diagram for explaining the count operation of the performance evaluation module in the pipeline processing by the processor module of the semiconductor integrated circuit according to one embodiment of the present invention. In the figure, timings at which the processor module 10 operates according to a predetermined operation clock are indicated as t901 to t909. In this example, instruction # 1 and instruction # 4 are assigned ID # 0, and instruction # 2, instruction # 3 and instruction # 5 are assigned ID # 1. The first PC table 24a stores the execution address of the instruction assigned ID # 0, and the second PC table 24b stores the execution address of the instruction assigned ID # 1. It is assumed that the third PC table 24c stores execution addresses of instructions assigned to ID # 0 and ID # 1. In addition, it is assumed that the instruction 1 is an instruction that branches to the instruction 4 when the branch condition is satisfied, and that follows the instruction 2 when the branch condition is not satisfied.

時刻t901で、命令フェッチ部11は、同様に、命令1をフェッチし、命令1に対するプログラムカウンタの値を性能評価モジュール40に出力する。命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令と全体の命令の実行数は、0のままである。なお、命令1は、実行部13によって処理が行われるまで分岐条件が成立するか否かは不明である。プロセッサモジュール10の各コンポーネントは、命令1の分岐条件が成立するか否かが判明するまで、上述したような、命令に対する所与の処理を遂行する。   At time t901, the instruction fetch unit 11 similarly fetches the instruction 1 and outputs the value of the program counter for the instruction 1 to the performance evaluation module 40. Since the value of the program counter for instruction 1 is not yet latched for two clocks, the performance evaluation module 40 does not count up. Therefore, the number of executions of the instructions corresponding to ID # 0 and ID # 1 and the total number of instructions remains 0. Note that it is unknown whether the branch condition is satisfied until the instruction 1 is processed by the execution unit 13. Each component of the processor module 10 performs a given process on the instruction as described above until it is determined whether the branch condition of the instruction 1 is satisfied.

時刻t902で、命令フェッチ部11は、命令2をフェッチし、命令2に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令1を処理する。時刻t902で、命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、ID#0及びID#1に対応する命令の実行数と全体の命令の実行数は、0のままである。   At time t <b> 902, the instruction fetch unit 11 fetches the instruction 2 and outputs the value of the program counter for the instruction 2 to the performance evaluation module 40. Further, the register read unit 12 processes the instruction 1. At time t902, the value of the program counter for instruction 1 is not yet latched for two clocks, so the number of executions of instructions corresponding to ID # 0 and ID # 1 and the execution number of all instructions remain 0. is there.

時刻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となる。   At time t903, the instruction fetch unit 11 fetches the instruction 3, and outputs the value of the program counter for the instruction 3 to the performance evaluation module 40. Further, the execution unit 13 processes the instruction 1. In this example, the execution unit 13 determines that the branch condition is satisfied as a result of the processing, and outputs a control signal CNT indicating “branch condition satisfied” to the performance evaluation module 40. The performance evaluation module 40 changes all of the latched program counter values for two clocks (that is, for the instruction 1 and the instruction 2) to the program counter value for the instruction 1 in accordance with the control signal CNT. Since the performance evaluation module 40 counts the value of the program counter for the instruction 1, the execution number of the instruction corresponding to the ID # 0 is set to 1. On the other hand, the value of the program counter for instruction 2 is not counted because it has been changed to the value of the program counter for instruction 1, and the number of executions of the instruction corresponding to ID # 1 remains zero. At time t903, the total number of executed instructions is 1.

時刻t904で、命令フェッチ部11は、命令4をフェッチし、命令4に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、メモリアクセス部14は、命令1を処理するが、実行部13において分岐条件が成立したため、レジスタリード部12による命令3に対する処理及び実行部13による命令2に対する処理は中止される。時刻t904で、命令1に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、2とする。時刻t904で、全体の命令の実行数は2となる。   At time t904, the instruction fetch unit 11 fetches the instruction 4 and outputs the value of the program counter for the instruction 4 to the performance evaluation module 40. Further, the memory access unit 14 processes the instruction 1, but since the branch condition is satisfied in the execution unit 13, the processing for the instruction 3 by the register read unit 12 and the processing for the instruction 2 by the execution unit 13 are stopped. Since the value of the program counter for instruction 1 is latched twice at time t904, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 and sets it to 2. At time t904, the total number of executed instructions is 2.

時刻t905で、命令フェッチ部11は、命令5をフェッチし、命令5に対するプログラムカウンタの値を性能評価モジュール40に出力する。また、レジスタリード部12は、命令4を処理するとともに、ライトバック部15は、命令1を処理する。命令1に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、3とする。一方、時刻t905で、命令5に対するプログラムカウンタの値は2回ラッチされていないため、ID#1に対応する命令の実行数は、0のままである。時刻t905で、全体の命令の実行数は3となる。   At time t905, the instruction fetch unit 11 fetches the instruction 5, and outputs the value of the program counter for the instruction 5 to the performance evaluation module 40. The register read unit 12 processes the instruction 4, and the write back unit 15 processes the instruction 1. Since the value of the program counter for instruction 1 is latched twice, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 to 3. On the other hand, since the value of the program counter for instruction 5 is not latched twice at time t905, the number of executions of the instruction corresponding to ID # 1 remains zero. At time t905, the total number of instructions executed is 3.

時刻t906で、レジスタリード部12は、命令5を処理し、また、実行部13によって命令4を処理する。命令4に対するプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、4とする。一方、時刻t906で、命令5に対するプログラムカウンタの値は2回ラッチされていないため、ID#1に対応する命令の実行数は、0のままである。時刻t905で、全体の命令の実行数は4となる。   At time t906, the register read unit 12 processes the instruction 5, and the execution unit 13 processes the instruction 4. Since the value of the program counter for the instruction 4 is latched twice, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 to 4. On the other hand, since the value of the program counter for instruction 5 is not latched twice at time t906, the number of executions of the instruction corresponding to ID # 1 remains zero. At time t905, the total number of instructions executed is 4.

時刻t907で、実行部13は、命令5を処理し、また、メモリアクセス部14は、命令4を処理する。時刻t907で、命令5に対するプログラムカウンタの値は2回ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数をカウントアップし、1とする。時刻t907で、全体の命令の実行数は5となる。   At time t907, the execution unit 13 processes the instruction 5, and the memory access unit 14 processes the instruction 4. Since the value of the program counter for instruction 5 is latched twice at time t907, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 1 and sets it to 1. At time t907, the total number of executed instructions is 5.

上述したように、プロセッサモジュール10の各コンポーネントは、一連の命令に分岐命令が含まれる場合に、分岐条件が成立するか否かが判明するまで、命令に対する所与の処理を進めるが、分岐条件が成立すると判断されるとこれまでの処理を中止して、分岐条件が成立したことを示す制御信号CNTを性能評価モジュール40に出力する。性能評価モジュール40は、制御信号CNTに従って、2クロック分ラッチしているプログラムカウンタの値を分岐命令に対応するプログラムカウンタの値に変更する。これにより、性能評価モジュール40は、分岐命令の実行により発生する制御ハザードによる遅延を分岐命令による遅延としてカウントするため、個々の命令の実行数をクロックサイクルベースで正しくカウントすることができる。   As described above, when each component of the processor module 10 includes a branch instruction in a series of instructions, it proceeds with a given process for the instruction until it is determined whether the branch condition is satisfied. If it is determined that is satisfied, the processing so far is stopped, and a control signal CNT indicating that the branch condition is satisfied is output to the performance evaluation module 40. The performance evaluation module 40 changes the value of the program counter latched for two clocks to the value of the program counter corresponding to the branch instruction in accordance with the control signal CNT. As a result, the performance evaluation module 40 counts the delay due to the control hazard caused by the execution of the branch instruction as the delay due to the branch instruction, so that the execution number of each instruction can be correctly counted on a clock cycle basis.

図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が割り当てられた命令の実行アドレスが記憶されているものとする。   FIG. 10 is a conceptual diagram for explaining the count operation of the performance evaluation module in the pipeline processing by the processor module of the semiconductor integrated circuit according to one embodiment of the present invention. In the figure, the time when each component of the processor module 10 processes each instruction is defined as time t1001 to t1008. Also, in the figure, ID # 0 is assigned to instruction 1 to instruction 3, and ID # 1 is assigned to instruction 4. The first PC table 24a stores an execution address of an instruction assigned ID # 0, and the second PC table 24b stores an execution address of an instruction assigned ID # 1. The PC table 24c stores the execution addresses of instructions assigned ID # 0 and ID # 1.

時刻t1001で、プロセッサモジュール10は、メモリモジュール20から命令1を受信し、命令フェッチ部11によって命令1を処理する。また命令フェッチ部11は、命令1を示すプログラムカウンタの値を性能評価モジュール40に出力する。命令1に対するプログラムカウンタの値は、まだ2クロック分ラッチされていないため、性能評価モジュール40は、カウントアップを行わない。したがって、ID#0及びID#1に対応する命令と全体の命令の実行数は、0のままである。   At time t1001, the processor module 10 receives the instruction 1 from the memory module 20, and the instruction fetch unit 11 processes the instruction 1. The instruction fetch unit 11 outputs the value of the program counter indicating the instruction 1 to the performance evaluation module 40. Since the value of the program counter for instruction 1 is not yet latched for two clocks, the performance evaluation module 40 does not count up. Therefore, the number of executions of the instructions corresponding to ID # 0 and ID # 1 and the total number of instructions remains 0.

時刻t1002で、プロセッサモジュール10は、メモリモジュール20からメモリモジュール20に対する読み出しを示す命令2を受信し、命令フェッチ部11によって命令2を処理する。また、命令フェッチ部11は、命令2を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって、命令1を処理する。時刻t1002で、命令1に対するプログラムカウンタの値は2回分ラッチされていないため、ID#0に対応する命令の実行数はまだ0である。時刻t1002で、全体の命令の実行数は、0のままである。   At time t1002, the processor module 10 receives the instruction 2 indicating reading from the memory module 20 to the memory module 20, and the instruction fetch unit 11 processes the instruction 2. Further, the instruction fetch unit 11 outputs the value of the program counter indicating the instruction 2 to the performance evaluation module 40. Further, the processor module 10 processes the instruction 1 by the register read unit 12. Since the value of the program counter for instruction 1 is not latched twice at time t1002, the number of executions of the instruction corresponding to ID # 0 is still 0. At time t1002, the total number of instructions executed remains zero.

時刻t1003で、プロセッサモジュール10は、メモリモジュール20から命令2の結果を参照する命令3を受信し、命令フェッチ部11によって命令3を処理する。また、命令フェッチ部11は、命令3を示すプログラムカウンタの値を性能評価モジュール40に出力する。また、プロセッサモジュール10は、レジスタリード部12によって命令2を処理するとともに、実行部13によって命令1を処理する。時刻t1003で、命令1のプログラムカウンタの値が2回分ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、1とする。時刻t1003で、全体の命令の実行数は1となる。   At time t1003, the processor module 10 receives the instruction 3 referring to the result of the instruction 2 from the memory module 20, and processes the instruction 3 by the instruction fetch unit 11. Further, the instruction fetch unit 11 outputs the value of the program counter indicating the instruction 3 to the performance evaluation module 40. The processor module 10 processes the instruction 2 by the register read unit 12 and processes the instruction 1 by the execution unit 13. Since the value of the program counter of instruction 1 is latched twice at time t1003, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 and sets it to 1. At time t1003, the total number of executed instructions is 1.

時刻t1004で、プロセッサモジュール10は、メモリモジュール20から命令4を受信し、命令フェッチ部11によって命令4を処理する。プロセッサモジュール10は、実行部13によって命令2を処理するとともに、メモリアクセス部14によって命令1を処理する。また、プロセッサモジュール10は、命令3が命令2の結果を参照する命令であること、命令2がメモリモジュール20に対する読み出し命令であること、及び命令2がメモリアクセス14による処理ステージに至っていないこととから、レジスタリード部12による命令3の処理を行わずに待機させる。   At time t1004, the processor module 10 receives the instruction 4 from the memory module 20, and the instruction fetch unit 11 processes the instruction 4. The processor module 10 processes the instruction 2 by the execution unit 13 and processes the instruction 1 by the memory access unit 14. Further, the processor module 10 indicates that the instruction 3 is an instruction for referring to the result of the instruction 2, the instruction 2 is a read instruction for the memory module 20, and the instruction 2 has not reached the processing stage by the memory access 14. Then, the register read unit 12 waits without processing the instruction 3.

時刻t1004で、性能評価モジュール40は、レジスタリード部12のリードレジスタ信号RREG1又はRREG2と、実行部13のライトレジスタ信号WREGが一致して、かつ、実行部13の制御信号CNTがメモリモジュール20に対する読み出し命令であると判断する。性能評価モジュール40は、該判断の結果に従って、実行部13の命令2のプログラムカウンタの値をラッチする。時刻t1004で、命令2のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし、2とする。時刻t1004で、全体の命令の実行数は2となる。   At time t1004, the performance evaluation module 40 matches the read register signal RREG1 or RREG2 of the register read unit 12 with the write register signal WREG of the execution unit 13, and the control signal CNT of the execution unit 13 is sent to the memory module 20. Judged as a read command. The performance evaluation module 40 latches the value of the program counter of the instruction 2 of the execution unit 13 according to the determination result. Since the value of the program counter of instruction 2 is latched twice at time t1004, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 and sets it to 2. At time t1004, the total number of executed instructions is 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となる。   At time t1005, the processor module 10 processes the instruction 4 by the instruction fetch unit 11 again because the processing of the instruction 3 by the register read unit 12 is not completed. Further, the instruction fetch unit 11 outputs the value of the program counter indicating the instruction 4 to the performance evaluation module 40. The processor module 10 processes the instruction 3 by the register read unit 12, processes the instruction 2 by the memory access unit 14, and processes the instruction 1 by the write-back unit 15. Since the value of the program counter of instruction 3 is latched twice at time t1005, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 0 and sets it to 3. At time t1005, the total number of executed instructions is 3.

時刻t1006で、プロセッサモジュール10は、レジスタリード部12によって命令4を処理するとともに、実行部13によって命令3を処理し、ライトバック部15によって命令2を処理する。時刻t1006で、命令3のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#0に対応する命令の実行数をカウントアップし4とする。時刻t1006で、全体の命令の実行数は4となる。   At time t <b> 1006, the processor module 10 processes the instruction 4 by the register read unit 12, processes the instruction 3 by the execution unit 13, and processes the instruction 2 by the write-back unit 15. Since the value of the program counter of instruction 3 is latched twice at time t1006, the performance evaluation module 40 counts up the execution number of the instruction corresponding to ID # 0 to 4. At time t1006, the total number of instructions executed is 4.

時刻t1007で、プロセッサモジュール10は、実行部13によって命令4を処理するとともに、メモリアクセス部14によって命令3を処理する。時刻t1007で命令4のプログラムカウンタの値が2回ラッチされるため、性能評価モジュール40は、ID#1に対応する命令の実行数をカウントアップし、1とする。時刻t1007で、全体の命令の実行数は5となる。   At time t1007, the processor module 10 processes the instruction 4 by the execution unit 13 and processes the instruction 3 by the memory access unit 14. Since the value of the program counter of the instruction 4 is latched twice at time t1007, the performance evaluation module 40 counts up the number of executions of the instruction corresponding to ID # 1 to 1. At time t1007, the total number of executed instructions becomes 5.

上述したように、プロセッサモジュール10は、メモリモジュール20に対する読み出し命令を行った直後に、該命令の結果を参照する命令を受信した場合、命令の結果を参照する命令をレジスタリード部12のステージで1ステージ分待機させる。また、性能評価モジュール40は、メモリモジュール20に対する読み出し命令を行った直後に、該命令の結果を参照する命令が発せられた場合、実行部13のプログラムカウンタの値をラッチするため、待機による遅延時間をメモリモジュール20に対する読み出し命令のプログラムカウンタの値としてカウントする。   As described above, when the processor module 10 receives an instruction that refers to the result of the instruction immediately after issuing a read instruction to the memory module 20, the processor module 10 transmits the instruction that refers to the result of the instruction at the stage of the register read unit 12. Wait for one stage. Further, the performance evaluation module 40 latches the value of the program counter of the execution unit 13 when an instruction that refers to the result of the instruction is issued immediately after issuing a read instruction to the memory module 20, and therefore a delay due to standby The time is counted as the value of the program counter of the read command for the memory module 20.

これにより、性能評価モジュール40は、メモリモジュール20に対する読み出し命令を行った直後に、該読み出しの結果を参照する命令が発せられた場合に発生するデータハザードに対しても、正しく個々の命令の実行数をカウントすることができる。なお、本実施形態では、読み出し命令を例にして説明したが、例えば、書き込み命令についても同様に適用することができる。   As a result, the performance evaluation module 40 correctly executes each instruction even for a data hazard that occurs when an instruction that refers to the result of the read is issued immediately after issuing the read instruction to the memory module 20. The number can be counted. In the present embodiment, the read command has been described as an example. However, for example, the same can be applied to a write command.

図11は、本発明の一実施形態に係る半導体集積回路の概略構成の他の例を示す図である。同図に示すように、本実施形態に係る半導体集積回路1’は、複数の性能評価モジュール40(1)乃至40(m)を含んで構成される。   FIG. 11 is a diagram showing another example of a schematic configuration of a semiconductor integrated circuit according to an embodiment of the present invention. As shown in the figure, the semiconductor integrated circuit 1 ′ according to this embodiment includes a plurality of performance evaluation modules 40 (1) to 40 (m).

性能評価モジュール40(1)乃至40(m)の回路構成自体は同じであるが、それぞれのPCテーブル24に記憶される内容(すなわち、実行アドレスの値)が異なっている。つまり、各PCテーブル24には、それぞれ異なるIDが割り当てられた命令の実行アドレスの値が記憶される。性能評価モジュール40(1)乃至40(m)は、それぞれのカウントの結果をカウント信号COUNT(1)乃至COUNT(m)としてチップセット30を介してメモリモジュール20に出力する。これにより、半導体集積回路1’は、一度のプログラムの実行で、性能評価モジュール40の数に応じた異なる命令の実行数をカウントすることができる。   The circuit configuration itself of the performance evaluation modules 40 (1) to 40 (m) is the same, but the contents (that is, the values of the execution addresses) stored in the respective PC tables 24 are different. That is, each PC table 24 stores the value of the execution address of an instruction assigned with a different ID. The performance evaluation modules 40 (1) to 40 (m) output the respective count results as count signals COUNT (1) to COUNT (m) to the memory module 20 via the chipset 30. Thereby, the semiconductor integrated circuit 1 ′ can count the number of executions of different instructions according to the number of the performance evaluation modules 40 by executing the program once.

上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。   Each of the above embodiments is an example for explaining the present invention, and is not intended to limit the present invention only to these embodiments. The present invention can be implemented in various forms without departing from the gist thereof.

例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。   For example, in the method disclosed herein, steps, operations, or functions may be performed in parallel or in a different order, as long as the results do not conflict. The steps, operations, and functions described are provided as examples only, and some of the steps, operations, and functions may be omitted and combined with each other without departing from the spirit of the invention. There may be one, and other steps, operations or functions may be added.

また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。   Further, although various embodiments are disclosed in this specification, a specific feature (technical matter) in one embodiment is appropriately improved and added to another embodiment or the other implementation. Specific features in the form can be substituted, and such form is also included in the gist of the present invention.

本発明は、プロセッサを備える半導体集積回路の分野に広く利用することができる。   The present invention can be widely used in the field of semiconductor integrated circuits including a processor.

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…入出力装置
DESCRIPTION OF SYMBOLS 1 ... Semiconductor integrated circuit 10 ... Processor module 11 ... Instruction fetch part 111 ... Program counter 112 ... Instruction cache 12 ... Register read part 121 ... Register 122 ... Register file 13 ... Execution part 131 ... Register 132 ... Operation part 14 ... Memory access part 141 ... Register 142 ... Data cache 15 ... Write-back unit 151 ... Register 152 ... Selection circuit 20 ... Memory module 30 ... Chipset 40 ... Performance evaluation module 21 ... PC selection unit 211 ... Comparator 212 ... OR circuit 213 ... Signal judgment Unit 214 ... logical product circuit 215 ... selection circuit 22 ... PC comparison unit 221 ... comparator 222 ... logical sum circuit 23 ... count value control unit 231 ... signal judgment unit 232 ... selection circuit 233 ... sequential circuit 234 ... logical product circuit 235 ... Cow 24 ... PC table 50 ... Storage device 60 ... I / O device

Claims (10)

所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価する性能評価モジュールであって、
前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、
前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、
前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力するカウント制御部と、
を備える性能評価モジュール。
A performance evaluation module that evaluates the processing performance of a processor module that executes an instruction group of a program by pipeline processing according to a predetermined operation clock,
A program counter table for storing an execution address value for at least one instruction of the instruction group;
A program counter comparison unit that compares a value of a program counter sent from the processor module with processing of an instruction by the processor module and a value of an execution address stored in the program counter table, and determines whether or not they match ,
A count control unit that counts and outputs the execution number of an instruction corresponding to the value of the program counter that has been compared and determined when the program counter comparison unit determines that the values match;
A performance evaluation module comprising:
前記カウント制御部は、段接続された複数の順序回路を含み、前記複数の順序回路によって、順次に、前記プログラムカウンタの値を前記所定の動作クロックの所定クロックサイクル分ラッチした後に、前記命令の実行数をカウントする、請求項1記載の性能評価モジュール。   The count control unit includes a plurality of sequential circuits connected in stages, and sequentially latches the value of the program counter for a predetermined clock cycle of the predetermined operation clock by the plurality of sequential circuits. The performance evaluation module according to claim 1, wherein the execution number is counted. 前記所定のクロックサイクルは、前記プロセッサモジュールが一の命令をフェッチした後、前記一の命令を演算実行するために要するクロックサイクル数である、請求項2記載の性能評価モジュール。   The performance evaluation module according to claim 2, wherein the predetermined clock cycle is the number of clock cycles required for the processor module to execute the one instruction after fetching the one instruction. 前記カウント制御部は、
前記プロセッサモジュールにより演算実行される一の命令が分岐命令であって、かつ、該分岐命令の分岐条件が成立する場合に、前記所定のクロックサイクル分ラッチされた前記プログラムカウンタの値を保持する一の順序回路の出力を前記複数の順序回路のそれぞれに入力する、請求項2記載の性能評価モジュール。
The count control unit
When one instruction to be executed by the processor module is a branch instruction and the branch condition of the branch instruction is satisfied, the value of the program counter latched for the predetermined clock cycle is held. The performance evaluation module according to claim 2, wherein an output of the sequential circuit is input to each of the plurality of sequential circuits.
前記カウント制御部は、
前記所定の分岐命令の分岐条件が成立しない場合に、前記比較判断されたプログラムプログラムカウンタの値を最前段の前記順序回路に入力する、請求項4記載の性能評価モジュール。
The count control unit
5. The performance evaluation module according to claim 4, wherein when the branch condition of the predetermined branch instruction is not satisfied, the value of the program / program counter determined by comparison is input to the sequential circuit in the forefront stage.
前記カウント制御部は、
前記プロセッサモジュールにより演算実行される一の命令が所定のメモリモジュールに対する読み出し命令であって、かつ、前記演算実行後に前記所定のメモリモジュールから読み出された値を格納するための領域を示すアドレスの値と、他の命令の演算実行前に該他の命令に従う値を格納する領域を示すアドレスの値とが一致する場合に、前記一の命令の演算実行時までラッチされた前記プログラムカウンタの値を前記プログラムカウンタ比較部に送る選択部をさらに備える、請求項1記載の性能評価モジュール。
The count control unit
One instruction to be executed by the processor module is a read instruction for a predetermined memory module, and an address indicating an area for storing a value read from the predetermined memory module after the execution of the operation The value of the program counter latched until the execution of the operation of the one instruction when the value matches the value of the address indicating the area for storing the value according to the other instruction before the execution of the operation of the other instruction The performance evaluation module according to claim 1, further comprising: a selection unit that sends a message to the program counter comparison unit.
前記性能評価モジュールは、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントする、請求項1乃至6のいずれかに記載の性能評価モジュール。   The performance evaluation module according to claim 1, wherein the performance evaluation module counts the number of executions for each identifier assigned to one or more of the instructions. 所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールと、
前記プロセッサモジュールに接続された少なくとも1つの性能評価モジュールと、
前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を記憶するためのプログラムカウンタテーブルと、
を備え、
前記少なくとも1つの性能評価モジュールは、
前記プロセッサモジュールによる命令の処理に伴うプログラムカウンタの値と前記プログラムカウンタテーブルに記憶された実行アドレスの値とを比較し、一致するか否かを判断するプログラムカウンタ比較部と、
前記プログラムカウンタの値に対応する命令の実行数をカウントするカウンタ制御部と、を備え、
前記プログラムカウンタ比較部は、前記プロセッサモジュールによって命令がフェッチされることにより前記プロセッサモジュールから送られる前記プログラムカウンタの値に基づいて、一致するか否かの判断を行い、
前記カウント制御部は、
前記プログラムカウンタ比較部により一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントし、出力する、
半導体集積回路。
A processor module that executes a group of program instructions by pipeline processing according to a predetermined operation clock;
At least one performance evaluation module connected to the processor module;
A program counter table for storing an execution address value for at least one instruction of the instruction group;
With
The at least one performance evaluation module includes:
A program counter comparison unit that compares a value of a program counter associated with processing of an instruction by the processor module and a value of an execution address stored in the program counter table, and determines whether or not they match.
A counter control unit that counts the number of instructions executed corresponding to the value of the program counter,
The program counter comparison unit determines whether or not they match based on the value of the program counter sent from the processor module by fetching an instruction by the processor module;
The count control unit
When it is determined by the program counter comparison unit that they match, the execution count of the instruction corresponding to the value of the program counter determined to be compared is counted and output.
Semiconductor integrated circuit.
前記半導体集積回路は、1又は2以上の前記命令に対して割り当てられた識別子ごとに前記実行数をカウントするための前記性能評価モジュールを複数備える、
請求項8記載の半導体集積回路。
The semiconductor integrated circuit includes a plurality of the performance evaluation modules for counting the number of executions for each identifier assigned to one or more of the instructions.
The semiconductor integrated circuit according to claim 8.
所定の動作クロックに従ってパイプライン処理によりプログラムの命令群を実行するプロセッサモジュールの処理性能を評価するための性能評価方法であって、
前記プロセッサモジュールによる命令の処理に伴い前記プロセッサモジュールから送られるプログラムカウンタの値を受け取ることと、
プログラムカウンタテーブルに記憶された前記命令群のうちの少なくとも1つの命令に対する実行アドレスの値を受け取ることと、
前記プログラムカウンタの値と前記実行アドレスの値とを比較し、一致するか否かを判断することと、
前記プログラムカウンタの値と前記実行アドレスの値とが一致すると判断される場合に、比較判断された前記プログラムカウンタの値に対応する命令の実行数をカウントすることと、
を含む、性能評価方法。

A performance evaluation method for evaluating the processing performance of a processor module that executes an instruction group of a program by pipeline processing according to a predetermined operation clock,
Receiving a value of a program counter sent from the processor module in accordance with processing of an instruction by the processor module;
Receiving an execution address value for at least one instruction of the group of instructions stored in a program counter table;
Comparing the value of the program counter with the value of the execution address to determine whether they match,
When it is determined that the value of the program counter matches the value of the execution address, counting the number of executions of the instruction corresponding to the value of the program counter determined to be compared;
A method for evaluating performance.

JP2015065539A 2015-03-27 2015-03-27 Performance evaluation module and semiconductor integrated circuit incorporating the same Active JP6473023B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015065539A JP6473023B2 (en) 2015-03-27 2015-03-27 Performance evaluation module and semiconductor integrated circuit incorporating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015065539A JP6473023B2 (en) 2015-03-27 2015-03-27 Performance evaluation module and semiconductor integrated circuit incorporating the same

Publications (2)

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

Family

ID=57243064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015065539A Active JP6473023B2 (en) 2015-03-27 2015-03-27 Performance evaluation module and semiconductor integrated circuit incorporating the same

Country Status (1)

Country Link
JP (1) JP6473023B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825058A (en) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 Processor performance evaluation method and device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231248A (en) * 1988-07-21 1990-02-01 Nec Corp Data processor
JP3366475B2 (en) * 1994-04-12 2003-01-14 三菱電機株式会社 How to evaluate data processing speed
JP2859172B2 (en) * 1995-08-29 1999-02-17 甲府日本電気株式会社 Information processing equipment debug circuit
JP2013016010A (en) * 2011-07-04 2013-01-24 Renesas Electronics Corp Program debugging device, method, and program

Also Published As

Publication number Publication date
JP2016184376A (en) 2016-10-20

Similar Documents

Publication Publication Date Title
US8473880B1 (en) Synchronization of parallel memory accesses in a dataflow circuit
JP5065113B2 (en) Equivalence verification method, equivalence verification program, and equivalence verification program generation method
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
US9507891B1 (en) Automating a microarchitecture design exploration environment
US11204859B2 (en) Partial-results post-silicon hardware exerciser
US9395992B2 (en) Instruction swap for patching problematic instructions in a microprocessor
US9218273B2 (en) Automatic generation of a resource reconfiguring test
US20200012250A1 (en) Program editing device, program editing method, and computer readable medium
CN113868986A (en) Port delay constraint method and device, electronic equipment and storage medium
CN104020982B (en) With the efficient branch target buffer for returning to predictive ability
JP3274036B2 (en) Method and apparatus for automatically generating an operation model of a processor and a test instruction sequence for logic verification
Meenderinck et al. Nexus: Hardware support for task-based programming
US8990741B2 (en) Circuit design support device, circuit design support method and program
JP6473023B2 (en) Performance evaluation module and semiconductor integrated circuit incorporating the same
US10528691B1 (en) Method and system for automated selection of a subset of plurality of validation tests
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 (en) Message forwarding performance evaluation method and device
US20140013312A1 (en) Source level debugging apparatus and method for a reconfigurable processor
US11106846B1 (en) Systems and methods for emulation data array compaction
JP5387521B2 (en) Logic verification scenario generation device and logic verification scenario generation program
JP2014194746A (en) Simulation device, simulation method and program
KR20190071575A (en) Method for data center storage evaluation framework simulation
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