JP2011238137A - Performance estimation device - Google Patents

Performance estimation device Download PDF

Info

Publication number
JP2011238137A
JP2011238137A JP2010110542A JP2010110542A JP2011238137A JP 2011238137 A JP2011238137 A JP 2011238137A JP 2010110542 A JP2010110542 A JP 2010110542A JP 2010110542 A JP2010110542 A JP 2010110542A JP 2011238137 A JP2011238137 A JP 2011238137A
Authority
JP
Japan
Prior art keywords
frame
function
execution cycles
instruction set
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010110542A
Other languages
Japanese (ja)
Other versions
JP5454349B2 (en
Inventor
Naoki Hikage
直樹 日景
Kazuyoshi Koyama
和義 小山
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2010110542A priority Critical patent/JP5454349B2/en
Publication of JP2011238137A publication Critical patent/JP2011238137A/en
Application granted granted Critical
Publication of JP5454349B2 publication Critical patent/JP5454349B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a performance estimation device capable of estimating the performance of a board to be evaluated at a high speed and high accuracy even before accomplishment of the board.SOLUTION: An instruction set simulator that simulates central processing unit only comprises an instruction set simulator (402) that calculates by simulating the number of execution cycles of the central processing unit in an entire measurement period of a program; a logic emulator (403) that emulates the central processing unit and peripheral circuits for calculating the number of execution cycles of the central processing unit during a part of measurement period of the program by emulation; and a performance estimation section (800) that calculates an estimation function based on the number of execution cycles calculated by the instruction set simulator and the number of execution cycles calculated by the logic emulator to estimate the number of execution cycles in an unmeasured period of the program in the logic emulator.

Description

本発明は、性能推定装置に関する。   The present invention relates to a performance estimation device.

SoCは、システムオンアチップ(System-on-a-chip)であり、1つの半導体チップ上にシステムを集積する集積回路である。具体的には、SoCは、中央処理装置(CPU)及び周辺回路を含み、CPUがプログラムを実行することによりシステムを実現する。SoCの開発は、CPU及び周辺回路を含むハードウェアの開発と上記のプログラムのソフトウェアの開発を含む。   The SoC is a system-on-a-chip, and is an integrated circuit that integrates the system on one semiconductor chip. Specifically, the SoC includes a central processing unit (CPU) and peripheral circuits, and the CPU implements a system by executing a program. The development of SoC includes development of hardware including a CPU and peripheral circuits, and development of software of the above program.

図1は、SoCにおけるソフトウェアの性能評価工程を示す図である。ハードウェアの開発は、評価ボードを作成し、評価ボードの検証を行う。時刻t3において、評価ボードの作成が完了する場合を示す。時刻t3の後、評価ボードを用いたソフトウェアの性能評価102が行われる。時刻t3の前では、評価ボードが存在しないため、CPUをシミュレーションする命令セットシミュレータ(ISS)を用いてソフトウェアの性能評価101を行う。評価ボードによる性能評価102は、評価精度は高いが、時刻t3の後でないと行えない問題点がある。ISSによる性能評価101は、評価ボード完成時刻t3の前でも行うことができるが、評価精度が低い問題点がある。また、時刻t3の評価ボード完成後でしか正確な評価はできないので、問題点も長期間わからないことになる。   FIG. 1 is a diagram showing a software performance evaluation process in SoC. In hardware development, an evaluation board is created and the evaluation board is verified. The case where the creation of the evaluation board is completed at time t3 is shown. After time t3, software performance evaluation 102 using the evaluation board is performed. Since there is no evaluation board before time t3, software performance evaluation 101 is performed using an instruction set simulator (ISS) that simulates the CPU. The performance evaluation 102 using the evaluation board has a high evaluation accuracy, but has a problem that it cannot be performed until after time t3. Although the performance evaluation 101 by ISS can be performed even before the evaluation board completion time t3, there is a problem that the evaluation accuracy is low. Further, since accurate evaluation can be performed only after the evaluation board at time t3 is completed, the problem cannot be known for a long time.

また、割り込みが発生した場合、その割り込みに関する処理を実行した後にエミュレーションを中断し、後続処理のエミュレーションを実行する以前に先行して処理を予測するために、エミュレーションを中断した時点のレジスタの値、PCの値およびメモリデータをシミュレータに転送してシミュレーションを行うマイクロプロセッサのエミュレーション方法が知られている(例えば、特許文献1参照)。   In addition, when an interrupt occurs, the emulation is interrupted after executing the processing related to the interrupt, and the value of the register at the time of the emulation is interrupted in order to predict the processing before executing the emulation of the subsequent processing, A microprocessor emulation method is known in which a PC value and memory data are transferred to a simulator for simulation (see, for example, Patent Document 1).

また、仮想周辺デバイスおよび仮想ICE等で構成されマイクロコンピュータの実機プログラムを実行するシステムシミュレータを用いて、評価シナリオに記述された操作手順を自動的に実行させて実機プログラムの動作検証を行い、動作検証の出力データを記録するマイクロコンピュータソフトウェアの自動検証システムが知られている(例えば、特許文献2参照)。   In addition, using a system simulator composed of virtual peripheral devices and virtual ICE to execute the actual program of the microcomputer, the operation procedure described in the evaluation scenario is automatically executed to verify the operation of the actual program. An automatic verification system of microcomputer software that records verification output data is known (see, for example, Patent Document 2).

特開平10−340205号公報Japanese Patent Laid-Open No. 10-340205 特開2005−250937号公報JP-A-2005-250937

本発明の目的は、SoCのソフトウェア開発において評価ボード完成前でも高速かつ高精度で性能を推定することができる性能推定装置を提供することである。   An object of the present invention is to provide a performance estimation device capable of estimating performance with high speed and high accuracy even before the evaluation board is completed in SoC software development.

性能推定装置は、中央処理装置及び周辺回路を含み前記中央処理装置がプログラムを実行するシステムオンアチップの開発におけるプログラムの性能推定装置であって、前記中央処理装置のみのシミュレーションを行う命令セットシミュレータであって、前記プログラムの測定区間全体の前記中央処理装置の実行サイクル数をシミュレーションにより演算する命令セットシミュレータと、前記中央処理装置及び前記周辺回路のエミュレーションを行う論理エミュレータであって、前記プログラムの測定区間の一部の前記中央処理装置の実行サイクル数をエミュレーションにより演算する論理エミュレータと、前記命令セットシミュレータにより演算された実行サイクル数及び前記論理エミュレータにより演算された実行サイクル数を基に、推定関数を算出し、前記論理エミュレータにおける前記プログラムの未測定区間の実行サイクル数を推定する性能推定部とを有する。   The performance estimation device is a program performance estimation device in the development of a system-on-a-chip that includes a central processing unit and peripheral circuits, and the central processing unit executes a program, and is an instruction set simulator that performs simulation of only the central processing unit. An instruction set simulator for calculating the number of execution cycles of the central processing unit in the entire measurement section of the program by simulation, and a logic emulator for emulating the central processing unit and the peripheral circuit, Based on a logic emulator that calculates the number of execution cycles of the central processing unit in a section by emulation, the number of execution cycles calculated by the instruction set simulator, and the number of execution cycles calculated by the logic emulator Calculating a function, and a performance estimator to estimate the number of execution cycles of the unmeasured sections of the program in the logic emulator.

命令セットシミュレータ及び論理エミュレータを用いることにより、評価ボード完成前でも高速かつ高精度で性能を推定することができる。   By using an instruction set simulator and a logic emulator, performance can be estimated with high speed and high accuracy even before the evaluation board is completed.

SoCにおけるソフトウェアの性能評価工程を示す図である。It is a figure which shows the performance evaluation process of the software in SoC. 第1の実施形態による設計及び開発対象のSoCの構成例を示す図である。It is a figure which shows the structural example of SoC of the design and development object by 1st Embodiment. SoCの開発工程を示す図である。It is a figure which shows the development process of SoC. 第1の実施形態による性能推定装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the performance estimation apparatus by 1st Embodiment. パーソナルコンピュータの構成例を示す図である。It is a figure which shows the structural example of a personal computer. 論理エミュレータの構成例を示す図である。It is a figure which shows the structural example of a logic emulator. 命令セットシミュレータ又は論理エミュレータによるSoCのプログラムの性能測定結果の例を示す図である。It is a figure which shows the example of the performance measurement result of the SoC program by an instruction set simulator or a logic emulator. 第1の実施形態の性能推定装置の概念図である。It is a conceptual diagram of the performance estimation apparatus of 1st Embodiment. 第1の実施形態の性能推定装置の性能推定方法を説明するための図である。It is a figure for demonstrating the performance estimation method of the performance estimation apparatus of 1st Embodiment. SoCにおけるソフトウェアの性能評価工程を示す図である。It is a figure which shows the performance evaluation process of the software in SoC. 命令セットシミュレータ及び論理エミュレータの構成例を示す図である。It is a figure which shows the structural example of an instruction set simulator and a logic emulator. 性能推定装置の性能推定方法を示すフローチャートである。It is a flowchart which shows the performance estimation method of a performance estimation apparatus. 図13(A)及び(B)は命令セットシミュレータの処理例を示す図である。FIGS. 13A and 13B are diagrams illustrating a processing example of the instruction set simulator. 論理エミュレータの処理例を示す図である。It is a figure which shows the process example of a logic emulator. 性能推定装置の処理を説明するための図である。It is a figure for demonstrating the process of a performance estimation apparatus. 第2の実施形態による性能推定装置の性能推定方法を示すフローチャートである。It is a flowchart which shows the performance estimation method of the performance estimation apparatus by 2nd Embodiment. 命令セットシミュレータの処理例を示す図である。It is a figure which shows the example of a process of an instruction set simulator. 性能推定装置の処理を説明するための図である。It is a figure for demonstrating the process of a performance estimation apparatus. 第3の実施形態による性能推定装置の性能推定方法を示すフローチャートである。It is a flowchart which shows the performance estimation method of the performance estimation apparatus by 3rd Embodiment. プロファイル解析部の処理例を示す図である。It is a figure which shows the process example of a profile analysis part. 性能推定装置の処理を説明するための図である。It is a figure for demonstrating the process of a performance estimation apparatus.

(第1の実施形態)
図2は、第1の実施形態による設計及び開発対象のSoCの構成例を示す図である。SoCは、システムオンアチップ(System-on-a-chip)であり、1つの半導体チップ上にシステムを集積する集積回路である。例えば、SoC200は、中央処理装置(CPU)201、メモリ202及び周辺回路を含み、CPU201がメモリ202内のプログラムを実行することによりシステムを実現する。なお、CPU201及びメモリ202は、複数あっても良く、SoC200の半導体チップの外部に設けても良い。
(First embodiment)
FIG. 2 is a diagram illustrating a configuration example of the SoC to be designed and developed according to the first embodiment. The SoC is a system-on-a-chip, and is an integrated circuit that integrates the system on one semiconductor chip. For example, the SoC 200 includes a central processing unit (CPU) 201, a memory 202, and peripheral circuits, and the CPU 201 executes a program in the memory 202 to realize a system. Note that there may be a plurality of CPUs 201 and memories 202, or they may be provided outside the semiconductor chip of the SoC 200.

図3は、SoCの開発工程を示す図である。SoCの開発は、CPU201、メモリ202及び周辺回路203を含むハードウェアの設計及び開発と、上記のプログラムのソフトウェアの開発を含む。ハードウェアの設計及び開発は、時刻t1で回路設計を行い、時刻t2で論理シミュレーション及び論理エミュレーションの検証を行い、時刻t3で評価ボードの検証を行う。これに対し、ソフトウェアの開発は、時刻t11でソフトウェア開発を行い、時刻t12〜t13でソフトウェア検証を行う。このソフトウェア検証は、時刻t3の評価ボード作成後では評価ボードを用いて行われるが、期間301では評価ボードを用いないで行われるため評価精度が低くなる。時刻t3の評価ボード完成後のソフトウェア検証において、SoCの問題点(例えば、性能上の問題点)が発覚した場合には、ハードウェアの変更は困難であるため、ソフトウェアの変更により問題点を解決しなくてはならない。場合によっては、ソフトウェアの変更のみでは問題点を解決できず、ハードウェアを設計変更せざるを得ない場合もある。そのため、時刻t3の評価ボード完成前のソフトウェア検証によりSoCの問題点を発見することができれば、ハードウェアの設計変更も容易であり、SoC全体の開発の効率を向上させることができる。   FIG. 3 is a diagram showing a SoC development process. The development of the SoC includes the design and development of hardware including the CPU 201, the memory 202, and the peripheral circuit 203, and the development of software of the above program. In hardware design and development, circuit design is performed at time t1, logic simulation and logic emulation are verified at time t2, and the evaluation board is verified at time t3. On the other hand, in software development, software development is performed at time t11, and software verification is performed at times t12 to t13. This software verification is performed using the evaluation board after the creation of the evaluation board at time t3. However, since the evaluation is performed without using the evaluation board in the period 301, the evaluation accuracy is lowered. In software verification after completion of the evaluation board at time t3, if a SoC problem (for example, a performance problem) is detected, it is difficult to change the hardware, so the problem is solved by changing the software. I have to do it. In some cases, the problem cannot be solved only by changing the software, and the design of the hardware has to be changed. Therefore, if the SoC problem can be found by software verification before completion of the evaluation board at time t3, the hardware design can be easily changed, and the development efficiency of the entire SoC can be improved.

図4は、本実施形態による性能推定装置のハードウェア構成例を示す図である。性能推定装置は、相互に接続されたパーソナルコンピュータ(PC)401、論理エミュレータ403を制御するホストワークステーション(HostWS)404、及び論理エミュレータ403を有する。パーソナルコンピュータ401は、プログラムを実行することにより命令セットシミュレータ(ISS)402の機能を実現することができる。一般的に命令セットシミュレータ402は、SoC200内のCPU201のみのシミュレーションを行うことで、高速かつ低精度のソフトウェア性能を評価することができる。これに対し、論理エミュレータ403は、CPU201及び周辺回路203のエミュレーションを行うことができるので、低速かつ高精度のソフトウェア性能を評価することができる。命令セットシミュレータ402は、論理エミュレータ403に対して約100〜1000倍高速で動作する。性能推定装置は、命令セットシミュレータ402及び論理エミュレータ403を用いることにより、SoCの開発におけるプログラム(ソフトウェア)性能を高速かつ高精度で推定し、評価することができる。   FIG. 4 is a diagram illustrating a hardware configuration example of the performance estimation apparatus according to the present embodiment. The performance estimation apparatus includes a personal computer (PC) 401, a host workstation (HostWS) 404 that controls the logic emulator 403, and a logic emulator 403, which are connected to each other. The personal computer 401 can realize the function of the instruction set simulator (ISS) 402 by executing a program. In general, the instruction set simulator 402 can evaluate high-speed and low-accuracy software performance by simulating only the CPU 201 in the SoC 200. On the other hand, since the logic emulator 403 can emulate the CPU 201 and the peripheral circuit 203, it can evaluate the software performance with low speed and high accuracy. The instruction set simulator 402 operates about 100 to 1000 times faster than the logic emulator 403. By using the instruction set simulator 402 and the logic emulator 403, the performance estimation apparatus can estimate and evaluate the program (software) performance in SoC development with high speed and high accuracy.

図5は、パーソナルコンピュータ401の構成例を示す図である。バス501には、CPU502、ROM503、RAM504、ネットワークインタフェース505、入力装置506、出力装置507及び外部記憶装置508が接続されている。CPU502は、データの処理及び演算を行うと共に、バス501を介して接続された上記の構成ユニットを制御するものである。ROM503には、予めブートプログラムが記憶されており、このブートプログラムをCPU502が実行することにより、コンピュータが起動する。外部記憶装置508にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM504にコピーされ、CPU502により実行される。このコンピュータは、コンピュータプログラムを実行することにより、命令セットシミュレータ402の処理等を行うことができる。図4のホストワークステーション404も、パーソナルコンピュータ401と同様の構成を有し、コンピュータプログラムを実行することにより、図6のホストワークステーション404の機能を実現する。   FIG. 5 is a diagram illustrating a configuration example of the personal computer 401. A CPU 502, ROM 503, RAM 504, network interface 505, input device 506, output device 507, and external storage device 508 are connected to the bus 501. The CPU 502 performs data processing and calculation, and controls the above-described constituent units connected via the bus 501. The ROM 503 stores a boot program in advance, and the computer is activated when the CPU 502 executes the boot program. A computer program is stored in the external storage device 508, and the computer program is copied to the RAM 504 and executed by the CPU 502. This computer can execute processing of the instruction set simulator 402 and the like by executing a computer program. The host workstation 404 in FIG. 4 has the same configuration as that of the personal computer 401, and implements the function of the host workstation 404 in FIG. 6 by executing a computer program.

外部記憶装置508は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置508は、コンピュータプログラム及び設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。ネットワークインタフェース505は、ネットワークに対してコンピュータプログラム及び設計データ等を入出力することができる。入力装置506は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置507は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。   The external storage device 508 is, for example, a hard disk storage device or the like, and the stored content does not disappear even when the power is turned off. The external storage device 508 can record a computer program, design data, and the like on a recording medium, and can read out the computer program and the like from the recording medium. The network interface 505 can input and output computer programs and design data to and from the network. The input device 506 is, for example, a keyboard and a pointing device (mouse), and can perform various designations or inputs. The output device 507 is a display, a printer, or the like, and can display or print.

図6は、論理エミュレータ403とホストワークステーション404の構成例を示す図である。論理エミュレータ403は、FPGA(Field Programmable Gate Array)601及びメモリ602を有する。ホストワークステーション404は、論理合成部605及びローダ606を有する。論理合成部605は、図2のSoC200内のCPU201及び周辺回路203を含むハードウェアのRTL(レジスタ転送レベル)設計データ603を論理合成し、ゲートレベル設計データ604を生成する。ローダ606は、ホストワークステーション404上で動作するソフトウェアであり、ゲートレベル設計データ604をFPGA601にマッピングする。メモリ602は、図2のSoC200内のメモリ202をエミュレーションするためのメモリである。これにより、FPGA601及びメモリ602は、SoC200内のCPU201及び周辺回路203を含むハードウェアをエミュレーションすることができる。なお、論理エミュレータ403は、FPGA601を用いる場合に限定されず、複数のCPUを用いるタイプの論理エミュレータ等でもよい。   FIG. 6 is a diagram illustrating a configuration example of the logic emulator 403 and the host workstation 404. The logic emulator 403 includes an FPGA (Field Programmable Gate Array) 601 and a memory 602. The host workstation 404 includes a logic synthesis unit 605 and a loader 606. The logic synthesis unit 605 performs logic synthesis on hardware RTL (register transfer level) design data 603 including the CPU 201 and the peripheral circuit 203 in the SoC 200 in FIG. 2 to generate gate level design data 604. The loader 606 is software that operates on the host workstation 404 and maps the gate level design data 604 to the FPGA 601. The memory 602 is a memory for emulating the memory 202 in the SoC 200 of FIG. Thereby, the FPGA 601 and the memory 602 can emulate hardware including the CPU 201 and the peripheral circuit 203 in the SoC 200. The logic emulator 403 is not limited to the case where the FPGA 601 is used, but may be a logic emulator of a type using a plurality of CPUs.

図7は、命令セットシミュレータ402又は論理エミュレータ403によるSoC200のプログラムの性能測定結果の例を示す図である。横軸はフレーム番号を示し、縦軸はCPU201の動作周波数を示す。フレームは、プログラムの特定区間を示す。例えば、SoC200のプログラムがオーディオエンコーダのプログラムである場合に、SoC200はオーディオエンコーダとして機能する。オーディオエンコーダは、オーディオデータを例えば1024サンプル単位で処理を行う。フレーム番号1は1フレーム目の1024サンプル単位のオーディオデータをエンコードするプログラムの処理であり、フレーム番号2は2フレーム目の1024サンプル単位のオーディオデータをエンコードするプログラムの処理である。エンコードは、オーディオデータに応じて圧縮率等が異なるため、CPU201の動作周波数はフレーム番号毎に異なる。CPU201の動作周波数は、高いほど処理の負荷が大きいことを意味する。オーディオデータをバッファに入力することにより、フレーム番号毎のCPU201の動作周波数の違いを緩和することができる。例えば、動作周波数のフレーム平均値は228MHzになる。ここで、論理エミュレータ403は、命令セットシミュレータ402に比べて、測定精度は高いが、動作速度が遅いため、すべてのフレーム番号について性能を測定することは困難である。本実施形態では、論理エミュレータ403で一部のフレーム番号についてのみ性能を測定し、命令シミュレータ402を用いて、他の部分のフレーム番号の性能を推定する。   FIG. 7 is a diagram illustrating an example of a performance measurement result of the SoC 200 program by the instruction set simulator 402 or the logic emulator 403. The horizontal axis indicates the frame number, and the vertical axis indicates the operating frequency of the CPU 201. The frame indicates a specific section of the program. For example, when the SoC 200 program is an audio encoder program, the SoC 200 functions as an audio encoder. The audio encoder processes audio data, for example, in units of 1024 samples. Frame number 1 is a program process for encoding audio data in units of 1024 samples in the first frame, and frame number 2 is a process in a program for encoding audio data in units of 1024 samples in the second frame. Since the encoding differs in compression rate and the like depending on the audio data, the operating frequency of the CPU 201 is different for each frame number. The higher the operating frequency of the CPU 201, the greater the processing load. By inputting audio data to the buffer, the difference in operating frequency of the CPU 201 for each frame number can be reduced. For example, the frame average value of the operating frequency is 228 MHz. Here, the logic emulator 403 has higher measurement accuracy than the instruction set simulator 402, but its operation speed is slow, so it is difficult to measure performance for all frame numbers. In the present embodiment, the performance is measured only for some frame numbers by the logic emulator 403, and the performance of the frame numbers of other portions is estimated using the instruction simulator 402.

図8は本実施形態の性能推定装置の概念図であり、図9は本実施形態の性能推定装置の性能推定方法を説明するための図である。図8の破線はデータの流れを示し、実線は処理の流れを示す。図9の縦軸はCPU201の実行サイクル数であり、図7の縦軸と同様に、実行サイクル数が大きいほど処理負荷が大きいことを意味する。性能推定部800は、図4のパーソナルコンピュータ401の処理により実現される。命令セットシミュレータ402は、ステップ801でプログラムの全体性能を測定し、図9の全体性能測定結果902を記憶部802に記録する。全体性能測定結果902は、例えばフレーム番号1〜51の全フレームの性能測定結果であり、低精度の測定結果である。論理エミュレータ403は、ステップ803でプログラムの一部の性能を測定し、図9の一部性能測定結果901を記憶部804に記録する。一部性能測定結果901は、例えばフレーム番号1〜12の一部のフレームの性能測定結果であり、評価ボードと同等の高精度の測定結果である。性能推定部800は、ステップ805において、記憶部802内の全体性能測定結果902及び記憶部804内の一部性能測定結果901を基に、図9の他の部分のフレームの性能推定値903を推測し、性能901及び903を含む全体性能推定結果を記憶部806に記録する。他の部分のフレームの性能推定値903は、例えばフレーム番号13〜50の性能推定値であり、高精度の推定値である。   FIG. 8 is a conceptual diagram of the performance estimation apparatus of the present embodiment, and FIG. 9 is a diagram for explaining a performance estimation method of the performance estimation apparatus of the present embodiment. The broken line in FIG. 8 shows the flow of data, and the solid line shows the flow of processing. The vertical axis in FIG. 9 represents the number of execution cycles of the CPU 201, and the larger the number of execution cycles, the larger the processing load, as in the vertical axis in FIG. The performance estimation unit 800 is realized by the processing of the personal computer 401 in FIG. The instruction set simulator 402 measures the overall performance of the program at step 801 and records the overall performance measurement result 902 of FIG. 9 in the storage unit 802. The overall performance measurement result 902 is, for example, a performance measurement result for all frames of frame numbers 1 to 51, and is a low-accuracy measurement result. In step 803, the logic emulator 403 measures the performance of a part of the program, and records the partial performance measurement result 901 in FIG. The partial performance measurement result 901 is, for example, a performance measurement result of a part of frames with frame numbers 1 to 12, and is a highly accurate measurement result equivalent to that of the evaluation board. In step 805, the performance estimation unit 800 obtains the performance estimation value 903 of the frame in the other part of FIG. The overall performance estimation result including the performances 901 and 903 is recorded in the storage unit 806. The performance estimation value 903 of the frame of the other part is a performance estimation value of frame numbers 13 to 50, for example, and is a highly accurate estimation value.

論理エミュレータ403の性能測定結果901は高精度であるため、記憶部806内の全体性能推定結果として使用することができる。しかし、論理エミュレータ403は動作速度が低速であるため、一部のフレームの性能測定結果901のみを測定する。命令セットシミュレータ402は、性能測定結果902が低精度であるが、高速動作可能であるため、全フレームの性能測定結果902を測定する。他の部分の性能推定値903は、全体性能測定結果902及び一部性能測定結果901を基に推定されるため、高精度かつ高速に演算することができる。上記の方法により、一部性能測定結果901及び他の部分の性能推定値903を含む高精度の全体性能推定結果を得ることができる。   Since the performance measurement result 901 of the logic emulator 403 is highly accurate, it can be used as the overall performance estimation result in the storage unit 806. However, since the operation speed of the logic emulator 403 is low, only the performance measurement result 901 of some frames is measured. The instruction set simulator 402 measures the performance measurement results 902 of all frames because the performance measurement results 902 have low accuracy but can operate at high speed. Since the performance estimation value 903 of the other part is estimated based on the overall performance measurement result 902 and the partial performance measurement result 901, it can be calculated with high accuracy and high speed. By the above method, it is possible to obtain a high-accuracy overall performance estimation result including the partial performance measurement result 901 and the performance estimation value 903 of other portions.

図10は、SoCにおけるソフトウェアの性能評価工程を示す図である。時刻t3において、評価ボードの作成が完了する場合を示す。時刻t3の後、評価ボードを用いたソフトウェアの性能評価102が行われる。時刻t3の前では、評価ボードが存在しないため、CPU201をシミュレーションする命令セットシミュレータ(ISS)402を用いてソフトウェアの性能評価101を行う。本実施形態では、図8の性能推定方法による性能評価103を行う。性能評価103は、時刻t3の評価ボード完成前において、命令セットシミュレータ402による性能評価101に比べて高精度かつ短期間でプログラムの性能を評価することができる。また、性能評価103により、評価ボード作成前のハードウェアの設計変更を容易にする。   FIG. 10 is a diagram showing a software performance evaluation process in SoC. The case where the creation of the evaluation board is completed at time t3 is shown. After time t3, software performance evaluation 102 using the evaluation board is performed. Since there is no evaluation board before time t3, software performance evaluation 101 is performed using an instruction set simulator (ISS) 402 that simulates the CPU 201. In the present embodiment, performance evaluation 103 is performed by the performance estimation method of FIG. The performance evaluation 103 can evaluate the performance of the program with higher accuracy and in a shorter period of time than the performance evaluation 101 by the instruction set simulator 402 before the evaluation board at time t3 is completed. Further, the performance evaluation 103 facilitates hardware design change before creating the evaluation board.

図11は、命令セットシミュレータ402、論理エミュレータ403及びホストワークステーション404の構成例を示す図である。ホストワークステーション404は、測定用付加回路のRTL設計データ1103を有する。測定用付加回路のRTL設計データ1103は、レジスタ部1104、制御部1105及びRAM1106のRTL設計データを有する。ホストワークステーション404において、論理合成部605は、対象となるSoC200のRTL設計データ603及び測定用付加回路のRTL設計データ1103を論理合成し、ゲートレベル設計データ604を生成する。ローダ606は、ゲートレベル設計データ604をFPGA601にマッピングする。ターゲットプログラム1101は、SoC200で動作するプログラムであり、例えばオーディオエンコーダのプログラムである。命令セットシミュレータ402は、ターゲットプログラム1101を基にシミュレーションを行う。論理エミュレータ403は、ターゲットプログラム1101を基にエミュレーションを行う。測定用付加回路のRTL設計データ1103は、SoC200には影響を与えない。レジスタ部1104には、測定コントロール関数1206(図12)により、測定開始命令、測定終了命令、測定間隔値及び測定範囲を検出するためのデリミタ値が書き込まれる。制御部1105は、レジスタ部1104を監視し、処理を制御する。また、制御部1105は、レジスタ部1104に書き込まれた値に応じてターゲットプログラム1101のプログラムカウンタ(PC)値及び実行サイクル数をRAM1106に書き込む。   FIG. 11 is a diagram illustrating a configuration example of the instruction set simulator 402, the logic emulator 403, and the host workstation 404. The host workstation 404 has RTL design data 1103 for the measurement additional circuit. The RTL design data 1103 of the measurement additional circuit includes RTL design data of the register unit 1104, the control unit 1105, and the RAM 1106. In the host workstation 404, the logic synthesis unit 605 logically synthesizes the RTL design data 603 of the target SoC 200 and the RTL design data 1103 of the measurement additional circuit to generate gate level design data 604. The loader 606 maps the gate level design data 604 to the FPGA 601. The target program 1101 is a program that operates on the SoC 200, for example, an audio encoder program. The instruction set simulator 402 performs a simulation based on the target program 1101. The logic emulator 403 performs emulation based on the target program 1101. The RTL design data 1103 of the additional circuit for measurement does not affect the SoC 200. A delimiter value for detecting a measurement start command, a measurement end command, a measurement interval value, and a measurement range is written in the register unit 1104 by the measurement control function 1206 (FIG. 12). The control unit 1105 monitors the register unit 1104 and controls processing. Further, the control unit 1105 writes the program counter (PC) value of the target program 1101 and the number of execution cycles in the RAM 1106 according to the value written in the register unit 1104.

図12は、性能推定装置の性能推定方法を示すフローチャートである。命令セットシミュレータ402は、ターゲットプログラム1101及び入力データ1201を入力し、ターゲットプログラム1101を基にシミュレーションを行い、図13(A)に示すように、ターゲットプログラム1101の全フレーム(測定区間全体)のフレーム毎のCPU201の実行サイクル数(全体性能測定結果)をシミュレーションにより演算し、記憶部1202に記録する。例えば、ターゲットプログラム1101はオーディオエンコーダのプログラムであり、入力データ1201はオーディオデータである。図13(A)の実行サイクル数は、図9の全体性能測定結果902に対応する。性能解析部1203は、図4のパーソナルコンピュータ401の処理により実現され、記憶部1202内の全体性能測定結果を基に、例えば図13(B)に示すように、実行サイクル数が最小のフレーム番号(例えばフレーム番号1)、実行サイクル数が最大のフレーム番号(例えばフレーム番号9)、及び実行サイクル数が平均値のフレーム番号(例えばフレーム番号11)を性能解析結果として記憶部1204に記録する。   FIG. 12 is a flowchart illustrating a performance estimation method of the performance estimation apparatus. The instruction set simulator 402 receives the target program 1101 and the input data 1201, performs a simulation based on the target program 1101, and, as shown in FIG. 13A, the frames of the entire target program 1101 (the entire measurement section). The number of execution cycles (total performance measurement result) of each CPU 201 is calculated by simulation and recorded in the storage unit 1202. For example, the target program 1101 is an audio encoder program, and the input data 1201 is audio data. The number of execution cycles in FIG. 13A corresponds to the overall performance measurement result 902 in FIG. The performance analysis unit 1203 is realized by the processing of the personal computer 401 in FIG. 4, and based on the overall performance measurement result in the storage unit 1202, for example, as shown in FIG. (For example, frame number 1), the frame number with the largest number of execution cycles (for example, frame number 9), and the frame number with the average number of execution cycles (for example, frame number 11) are recorded in the storage unit 1204 as performance analysis results.

入力選択部1205は、図4のパーソナルコンピュータ401の処理により実現され、記憶部1204内の性能解析結果を基に、入力データ1201内の一部のフレームに対応する入力データを選択し、論理エミュレータ403に出力する。例えば、入力選択部1205は、図13(A)の最小フレーム番号1、最大フレーム番号9及び平均フレーム番号11を含むフレーム番号1〜12に対応する入力データ1201を選択する。   The input selection unit 1205 is realized by the processing of the personal computer 401 in FIG. 4 and selects input data corresponding to a part of the frames in the input data 1201 based on the performance analysis result in the storage unit 1204. Output to 403. For example, the input selection unit 1205 selects the input data 1201 corresponding to the frame numbers 1 to 12 including the minimum frame number 1, the maximum frame number 9, and the average frame number 11 in FIG.

測定コントロール関数1206は、ターゲットプログラム1101より呼び出され、論理エミュレータ403により実行されるソフトウェアである。制御部1105は、測定コントロール関数1206が測定用付加回路のレジスタ部1104に書き込んだ値を見て、測定の開始及び測定の終了を行い、ターゲットプログラム1101のプログラムカウンタ(PC)値、実行サイクル数及びデリミタ値の出力をRAM1106に書き込む。後に、実行サイクル数とデリミタ値の出力結果よりフレーム単位での実行サイクル数を算出することになる。   The measurement control function 1206 is software that is called from the target program 1101 and executed by the logic emulator 403. The control unit 1105 looks at the value written by the measurement control function 1206 to the register unit 1104 of the additional circuit for measurement, starts measurement and ends measurement, the program counter (PC) value of the target program 1101, and the number of execution cycles And the output of the delimiter value is written in the RAM 1106. Later, the number of execution cycles per frame is calculated from the output result of the number of execution cycles and the delimiter value.

論理エミュレータ403は、ターゲットプログラム1101の処理をエミュレーションする。具体的には、論理エミュレータ403では、対象SoCのゲートレベル設計データ604に基づくハードウェアがターゲットプログラム1101を実行する。   The logic emulator 403 emulates the processing of the target program 1101. Specifically, in the logic emulator 403, hardware based on the gate level design data 604 of the target SoC executes the target program 1101.

論理エミュレータ403は、図14に示すように、レジスタ部1104で設定した測定間隔値に基づいて、CPU201の実行サイクル数及びプログラムカウンタ(PC)値をエミュレーションにより演算し、RAM1106に書き込む。ホストワークステーション404が任意のタイミングでRAM1106に記録されたデータを記憶部1207に記録する。記憶部1207は、例えば図5の外部記憶装置508である。プログラムカウンタ値は、現在、CPU201により実行されているターゲットプログラム1101内のアドレスである。図14のサイクル番号は、実行サイクル数が例えば100間隔で付与される番号である。実行サイクル数及びプログラムカウンタ値は、レジスタ部1104で設定した測定間隔に基づいて出力される。図14の場合、例えば100サイクル毎に出力される。ここで、ターゲットプログラム1101は、実行中に測定コントロール関数1206により任意のタイミングで測定用付加回路のレジスタ部1104にデリミタ値を書き込むことができる。制御部1105は、書き込まれたデリミタ値をRAM1106に記録する。この値は、図14に示すように、実行サイクル数及びプログラムカウンタ値としてそれぞれ例えば「aaaaaaaa」、「bbbbbbbb」が書き込まれる。ターゲットプログラム1101にて、測定したい区間の前後でデリミタ値を書き込むことにより、測定区間の実行サイクル数やフレーム単位での実行サイクル数を算出することができる。図14の場合、測定したい区間の直前に「aaaaaaaa」のデリミタ値を出力し、測定したい区間の直後に「bbbbbbbb」を出力することで、後の処理において、測定終了を示すデリミタ値「bbbbbbbb」の前の実行サイクル数(例えば「00073a95」)から測定開始を示すデリミタ値「aaaaaaaa」の後の実行サイクル数(例えば「000739cd」)を減算することにより、測定したい区間(例えば1フレーム)の実行サイクル数を算出することができる。   As shown in FIG. 14, the logic emulator 403 calculates the number of execution cycles of the CPU 201 and the program counter (PC) value by emulation based on the measurement interval value set by the register unit 1104, and writes it in the RAM 1106. The host workstation 404 records the data recorded in the RAM 1106 at an arbitrary timing in the storage unit 1207. The storage unit 1207 is, for example, the external storage device 508 in FIG. The program counter value is an address in the target program 1101 currently being executed by the CPU 201. The cycle number in FIG. 14 is a number to which the number of execution cycles is given at 100 intervals, for example. The number of execution cycles and the program counter value are output based on the measurement interval set by the register unit 1104. In the case of FIG. 14, for example, it is output every 100 cycles. Here, the target program 1101 can write a delimiter value to the register unit 1104 of the measurement additional circuit at any timing by the measurement control function 1206 during execution. The control unit 1105 records the written delimiter value in the RAM 1106. As shown in FIG. 14, for example, “aaaaaaaaa” and “bbbbbbbb” are written as the number of execution cycles and the program counter value, respectively. By writing the delimiter value before and after the section to be measured in the target program 1101, the number of execution cycles in the measurement section and the number of execution cycles in frame units can be calculated. In the case of FIG. 14, the delimiter value “aaabaaa” is output immediately before the section to be measured and “bbbbbbbb” is output immediately after the section to be measured. By subtracting the number of execution cycles (for example, “000739cd”) after the delimiter value “aaaaaaaaa” indicating the start of measurement from the number of execution cycles before (for example, “00073a95”), the execution of the section to be measured (for example, one frame) The number of cycles can be calculated.

測定用付加回路のRTL設計データ1103を設けることにより、論理エミュレータ403でのSoCの動作を止めることなく、実行サイクル数及びプログラムカウンタ値を高速に測定することが可能になる。   By providing the measurement additional circuit RTL design data 1103, the number of execution cycles and the program counter value can be measured at high speed without stopping the operation of the SoC in the logic emulator 403.

性能推定部1208は、図8の性能推定部800に対応し、上記のように、記憶部1207内のフレーム毎の実行サイクル数を基に、測定終了を示すデリミタ値「bbbbbbbb」の前の実行サイクル数(例えば「00073a95」)から測定開始を示すデリミタ値「aaaaaaaa」の後の実行サイクル数(例えば「000739cd」)を減算することにより、1フレームの実行サイクル数を算出し、例えばフレーム番号1〜12の論理エミュレータ403での一部性能測定結果を記憶部1207に書き戻す。測定用付加回路は、上記の測定開始情報のデリミタ値(デリミタ情報)と測定終了情報のデリミタ値と測定間隔値(測定間隔情報)をプログラマブルに設定することが可能である。   The performance estimation unit 1208 corresponds to the performance estimation unit 800 of FIG. 8 and, as described above, based on the number of execution cycles for each frame in the storage unit 1207, the execution before the delimiter value “bbbbbbbb” indicating the end of measurement. By subtracting the number of execution cycles (for example, “000739cd”) after the delimiter value “aaaaaaaaa” indicating the start of measurement from the number of cycles (for example, “00073a95”), the number of execution cycles for one frame is calculated. The partial performance measurement results in the logic emulator 403 of ˜12 are written back to the storage unit 1207. The measurement additional circuit can programmably set the delimiter value (delimiter information) of the measurement start information, the delimiter value of the measurement end information, and the measurement interval value (measurement interval information).

図15は、性能推定装置の処理を説明するための図である。上記のように、記憶部1202には、全フレーム番号1〜20についての命令セットシミュレータ(ISS)402の実行サイクル数N1が記録されている。記憶部1207には、一部のフレーム番号1〜12についての論理エミュレータ403の実行サイクル数N2が記録されている。   FIG. 15 is a diagram for explaining processing of the performance estimation device. As described above, the storage unit 1202 records the number N1 of execution cycles of the instruction set simulator (ISS) 402 for all frame numbers 1 to 20. In the storage unit 1207, the number N2 of execution cycles of the logic emulator 403 for some frame numbers 1 to 12 is recorded.

性能推定部1208は、命令セットシミュレータ402により演算されたフレーム番号1〜12のフレーム毎の実行サイクル数N1の平均値(例えば「941829」)を演算する。次に、性能推定部1208は、論理エミュレータ403により演算されたフレーム番号1〜12のフレーム毎の実行サイクル数N2の平均値(例えば「1211376」)を演算する。命令セットシミュレータ402は、CPU201のみをシミュレーションするために実行サイクル数が少なくなる。論理エミュレータ403は、CPU201及び周辺回路203をエミュレーションするために実行サイクル数が多くなる。   The performance estimation unit 1208 calculates the average value (for example, “941829”) of the number of execution cycles N1 for each frame of frame numbers 1 to 12 calculated by the instruction set simulator 402. Next, the performance estimation unit 1208 calculates the average value (for example, “1211376”) of the number of execution cycles N2 for each frame of the frame numbers 1 to 12 calculated by the logic emulator 403. Since the instruction set simulator 402 simulates only the CPU 201, the number of execution cycles is reduced. Since the logic emulator 403 emulates the CPU 201 and the peripheral circuit 203, the number of execution cycles increases.

次に、性能推定部1208は、命令セットシミュレータ402により演算されたフレーム毎の実行サイクル数N1の平均値(例えば「941829」)に対する論理エミュレータ403により演算されたフレーム毎の実行サイクル数N2の平均値(例えば「1211376」)の割合係数を演算する。例えば、割合係数は、1211376÷941829≒1.286である。   Next, the performance estimation unit 1208 calculates the average of the number of execution cycles N2 for each frame calculated by the logic emulator 403 with respect to the average value of the number of execution cycles N1 for each frame calculated by the instruction set simulator 402 (for example, “941829”). The ratio coefficient of the value (for example, “1211376”) is calculated. For example, the ratio coefficient is 1211376 / 941829≈1.286.

次に、性能推定部1208は、命令セットシミュレータ402により演算された他の部分のフレーム番号13〜20のフレーム毎の実行サイクル数N1及び割合係数を乗算することにより、論理エミュレータ403におけるプログラムの他の部分(未測定区間)のフレーム番号13〜20についてのフレーム毎の実行サイクル数推定値N3を推定する。例えば、フレーム番号13の実行サイクル数推定値N3は、1137575×1.286≒1463144になる。   Next, the performance estimator 1208 multiplies the number of execution cycles N1 for each frame of the frame numbers 13 to 20 of other parts calculated by the instruction set simulator 402 and the ratio coefficient, thereby performing other programs in the logic emulator 403. The estimated number of execution cycles N3 for each frame for the frame numbers 13 to 20 of the portion (unmeasured section) is estimated. For example, the estimated number N3 of execution cycles for frame number 13 is 1137575 × 1.286≈1463144.

ここで、参考のため、フレーム番号1〜12について、命令セットシミュレータ402の実行サイクル数N1及び割合係数を乗算した結果を実行サイクル数推定値N3の欄にかっこ書きで示す。そして、その実行サイクル数推定値N3と論理エミュレータ403の実行サイクル数N2との誤差を図15に示す。その誤差は、約2%であり、良好な推定が可能であることが分かる。   Here, for reference, the result of multiplying the number of execution cycles N1 of the instruction set simulator 402 and the ratio coefficient for frame numbers 1 to 12 is shown in parentheses in the column of estimated number of execution cycles N3. FIG. 15 shows an error between the estimated number N3 of execution cycles and the number N2 of execution cycles of the logic emulator 403. The error is about 2%, and it can be seen that good estimation is possible.

前記性能推定部1208はさらに命令セットシミュレータ402により演算されたフレーム番号1〜12のフレーム毎の実行サイクル数N1と論理エミュレータ403により演算されたフレーム番号1〜12のフレーム毎の実行サイクル数N2を入力とし最小二乗法を用いた多項式近似式により次式(1)の推定関数を演算する。   The performance estimation unit 1208 further calculates the number of execution cycles N1 for each frame of frame numbers 1 to 12 calculated by the instruction set simulator 402 and the number of execution cycles N2 for each frame of frame numbers 1 to 12 calculated by the logic emulator 403. The estimation function of the following formula (1) is calculated by a polynomial approximation formula using the least square method as an input.

Figure 2011238137
Figure 2011238137

例えば、図15の実行サイクル値から演算した推定関数を2次式とした場合、推定係数は、a0=2.75999082147362×105、a1=7.96978741632175×10-1、a2=1.95340650785908×10-7となる。この推定係数を用いた推定関数より、論理エミュレータ403の実行サイクル推定値N4は、次式(2)で表わされる。ここで、N1は、命令セットシミュレータ402の実行サイクル数である。 For example, when the estimation function calculated from the execution cycle value of FIG. 15 is a quadratic expression, the estimation coefficients are a 0 = 2.75999082147362 × 10 5 , a 1 = 7.996978741632175 × 10 −1 , a 2 = 1.95340650785908 × 10 −7 It becomes. From the estimation function using the estimation coefficient, the execution cycle estimated value N4 of the logic emulator 403 is expressed by the following equation (2). Here, N1 is the number of execution cycles of the instruction set simulator 402.

N4=1.95340650785908×10-7×N1×N1+7.96978741632175×10-1×N1+2.75999082147362×105 ・・・(2) N4 = 1.95340650785908 × 10 −7 × N1 × N1 + 7.96978741632175 × 10 −1 × N1 + 2.75999082147362 × 10 5 (2)

この多項式近似を利用した実行サイクル推定値N4を図15に示す。論理エミュレータ403の実行サイクル数N2と実行サイクル推定値N4との誤差は、約0.57%であり、上記の平均値を利用した実行サイクル推定値N3よりさらに良好な推定が可能である。   An execution cycle estimated value N4 using this polynomial approximation is shown in FIG. The error between the number of execution cycles N2 of the logic emulator 403 and the execution cycle estimated value N4 is about 0.57%, and a better estimation than the execution cycle estimated value N3 using the above average value is possible.

次に、性能推定部1208は、フレーム番号1〜12についての論理エミュレータ403のフレーム毎の実行サイクル数N2及びフレーム番号13〜20についてのフレーム毎の実行サイクル数推定値を全体性能推定結果として記憶部1209に記録する。この全体性能推定結果は、評価ボードと同等の精度の結果である。   Next, the performance estimation unit 1208 stores the execution cycle number N2 for each frame of the logic emulator 403 for the frame numbers 1 to 12 and the execution cycle number estimate value for each frame for the frame numbers 13 to 20 as the overall performance estimation result. Recorded in section 1209. This overall performance estimation result is a result with the same accuracy as the evaluation board.

上記のように、論理エミュレータ403の測定対象のフレーム番号1〜12内に、図13(B)の特徴的なフレームである最小フレーム番号1、最大フレーム番号9及び平均フレーム番号11を含ませることにより、実行サイクル数推定値の精度を向上させることができる。なお、上記では、先頭のフレーム番号1〜12を選択する場合を例に説明したが、先頭フレーム部分に限定されない。   As described above, the minimum frame number 1, the maximum frame number 9, and the average frame number 11, which are characteristic frames in FIG. 13B, are included in the measurement target frame numbers 1 to 12 of the logic emulator 403. As a result, the accuracy of the estimated number of execution cycles can be improved. In the above description, the case where the first frame numbers 1 to 12 are selected has been described as an example, but the present invention is not limited to the first frame portion.

(第2の実施形態)
図16は、第2の実施形態による性能推定装置の性能推定方法を示すフローチャートである。図16は、図12に対して、記憶部1601が追加されたものである。以下、本実施形態が第1の実施形態と異なる点を説明する。命令セットシミュレータ402は、第1の実施形態の実行サイクル数の他に、図17に示すように、ターゲットプログラム1101のフレーム毎の各関数の関数割合(関数プロファイル)をシミュレーションにより演算し、記憶部1601に記録する。ターゲットプログラム1101は、例えばC言語のプログラムをコンパイルしたマシン語のプログラムである。関数A〜Eは、C言語のプログラム内の全関数である。関数割合は、各関数の実行サイクル数の割合である。
(Second Embodiment)
FIG. 16 is a flowchart illustrating a performance estimation method of the performance estimation apparatus according to the second embodiment. FIG. 16 is obtained by adding a storage unit 1601 to FIG. Hereinafter, the points of the present embodiment different from the first embodiment will be described. In addition to the number of execution cycles of the first embodiment, the instruction set simulator 402 calculates a function ratio (function profile) of each function for each frame of the target program 1101 by simulation as shown in FIG. 1601 is recorded. The target program 1101 is a machine language program obtained by compiling a C language program, for example. The functions A to E are all functions in the C language program. The function ratio is the ratio of the number of execution cycles of each function.

論理エミュレータ403は、測定コントロール関数1206を基にレジスタ部1104に対して測定対象の関数を書き込むことにより指定する。そして、論理エミュレータ403は、ターゲットプログラム1101の測定区間の一部のフレーム番号1〜10(図18)のフレームについてのフレーム毎の各関数の実行サイクル数及びプログラムカウンタ値をエミュレーションにより演算し、RAM1106に書き込むと共に、記憶部1207に記録する。   The logic emulator 403 designates the function to be measured by writing it into the register unit 1104 based on the measurement control function 1206. Then, the logic emulator 403 calculates the number of execution cycles and the program counter value of each function for each frame for the frames of frame numbers 1 to 10 (FIG. 18) that are part of the measurement section of the target program 1101 by emulation, and the RAM 1106 Is recorded in the storage unit 1207.

性能推定部1208は、上記のように、記憶部1207内のフレーム毎の各関数の実行サイクル数を基に、測定終了を示すデリミタ値「bbbbbbbb」の前の実行サイクル数から測定開始を示すデリミタ値「aaaaaaaa」の後の実行サイクル数を減算することにより、1フレームの各関数の実行サイクル数を算出し、フレーム番号1〜10(図18)の論理エミュレータ403での一部性能測定結果を記憶部1207に書き戻す。   As described above, the performance estimation unit 1208, based on the number of execution cycles of each function in the storage unit 1207 for each frame, the delimiter indicating the start of measurement from the number of execution cycles before the delimiter value “bbbbbbbb” indicating the end of measurement. By subtracting the number of execution cycles after the value “aaaaaaaaa”, the number of execution cycles of each function of one frame is calculated, and a partial performance measurement result in the logic emulator 403 of frame numbers 1 to 10 (FIG. 18) is obtained. Write back to the storage unit 1207.

図18は、性能推定装置の処理を説明するための図である。性能推定部1208は、記憶部1202内の命令セットシミュレータ402により演算されたフレーム毎の実行サイクル数及び記憶部1601内のフレーム毎の各関数の関数割合を基に命令セットシミュレータ402のフレーム毎の各関数の実行サイクル数を演算する。例えば、フレーム番号11では、命令セットシミュレータ402の実行サイクル数は1500000であり、関数A〜Cの関数割合はそれぞれ0.4、0.2、0.4である。関数Aの実行サイクル数は、1500000×0.4=600000である。   FIG. 18 is a diagram for explaining processing of the performance estimation device. The performance estimation unit 1208 is based on the number of execution cycles for each frame calculated by the instruction set simulator 402 in the storage unit 1202 and the function ratio of each function for each frame in the storage unit 1601. Calculate the number of execution cycles for each function. For example, in frame number 11, the number of execution cycles of the instruction set simulator 402 is 1500,000, and the function ratios of the functions A to C are 0.4, 0.2, and 0.4, respectively. The number of execution cycles of the function A is 1500000 × 0.4 = 600,000.

次に、性能推定部1208は、命令セットシミュレータ402のフレーム番号1〜10のフレーム毎の各関数の実行サイクル数のフレーム平均値(例えば「1000000」)を演算し、フレーム毎の各関数の関数割合のフレーム平均値を演算する。例えば、関数Aの関数割合のフレーム平均値は0.3である。   Next, the performance estimation unit 1208 calculates the frame average value (for example, “1000000”) of the number of execution cycles of each function for each frame of the frame numbers 1 to 10 of the instruction set simulator 402, and the function of each function for each frame. Calculate the frame average value of the ratio. For example, the frame average value of the function ratio of the function A is 0.3.

次に、性能推定部1208は、命令セットシミュレータ402のフレーム毎の各関数の実行サイクル数のフレーム平均値及びフレーム毎の各関数の関数割合のフレーム平均値を基に命令セットシミュレータ402の各関数の実行サイクル数のフレーム平均値を演算する。例えば、関数Aの実行サイクル数のフレーム平均値は、1000000×0.3=300000である。   Next, the performance estimation unit 1208 determines each function of the instruction set simulator 402 based on the frame average value of the number of execution cycles of each function of the instruction set simulator 402 and the frame average value of the function ratio of each function for each frame. The frame average value of the number of execution cycles is calculated. For example, the frame average value of the number of execution cycles of the function A is 1000000 × 0.3 = 300000.

次に、性能推定部1208は、記憶部1207内の論理エミュレータ403により演算された各関数の実行サイクル数を基に、フレーム番号1〜10についての論理エミュレータ403の各関数の実行サイクル数のフレーム平均値を演算する。例えば、関数Aの実行サイクル数のフレーム平均値は400000である。   Next, based on the number of execution cycles of each function calculated by the logic emulator 403 in the storage unit 1207, the performance estimation unit 1208 has a frame of the number of execution cycles of each function of the logic emulator 403 for frame numbers 1 to 10. Calculate the average value. For example, the frame average value of the number of execution cycles of the function A is 400,000.

次に、性能推定部1208は、命令セットシミュレータ402の各関数の実行サイクル数のフレーム平均値に対する論理エミュレータ403の各関数の実行サイクル数のフレーム平均値の関数毎の割合係数を演算する。例えば、関数Aの割合係数は、400000÷300000≒1.3である。   Next, the performance estimation unit 1208 calculates a ratio coefficient for each function of the frame average value of the number of execution cycles of each function of the logic emulator 403 with respect to the frame average value of the number of execution cycles of each function of the instruction set simulator 402. For example, the ratio coefficient of the function A is 400,000 / 300,000≈1.3.

次に、性能推定部1208は、フレーム番号11以降のフレームについての命令セットシミュレータ402のフレーム毎の各関数の実行サイクル数及び関数毎の割合係数を基に、論理エミュレータ403におけるターゲットプログラム1101の他の部分のフレーム番号11以降のフレームについてのフレーム毎の実行サイクル数推定値を推定する。例えば、フレーム番号11のフレームにおいて、実行サイクル数推定値は、600000×1.3+300000×2+600000×1=1785000である。ここで、「600000」は命令セットシミュレータ402のフレーム番号11の関数Aの実行サイクル数であり、「1.3」は関数Aの割合係数であり、「300000」は命令セットシミュレータ402のフレーム番号11の関数Bの実行サイクル数であり、「2」は関数Bの割合係数であり、「600000」は命令セットシミュレータ402のフレーム番号11の関数Cの実行サイクル数であり、「1」は関数Cの割合係数である。   Next, based on the number of execution cycles of each function of the instruction set simulator 402 and the ratio coefficient for each function of the instruction set simulator 402 for the frames after the frame number 11, the performance estimation unit 1208 includes the target program 1101 in the logic emulator 403. The estimated number of execution cycles for each frame is estimated for the frames of frame number 11 and the subsequent portions. For example, in the frame of frame number 11, the estimated number of execution cycles is 600000 × 1.3 + 300000 × 2 + 60000000 × 1 = 1785000. Here, “600000” is the number of execution cycles of the function A of the frame number 11 of the instruction set simulator 402, “1.3” is the ratio coefficient of the function A, and “300000” is the frame number of the instruction set simulator 402. 11 is the number of execution cycles of the function B, “2” is the ratio coefficient of the function B, “600000” is the number of execution cycles of the function C of the frame number 11 of the instruction set simulator 402, and “1” is the function C ratio coefficient.

本実施形態によれば、関数毎の割合係数を用いて実行サイクル数推定値を推定するので、高精度の推定が可能になる。   According to this embodiment, since the estimated number of execution cycles is estimated using the ratio coefficient for each function, high-precision estimation is possible.

(第3の実施形態)
図19は、第3の実施形態による性能推定装置の性能推定方法を示すフローチャートである。図19は、図16に対して、プロファイル解析部1901及び記憶部1902が追加されたものである。以下、本実施形態が第2の実施形態と異なる点を説明する。命令セットシミュレータ402は第2の実施形態と同じ処理を行い、論理エミュレータ403は第1の実施形態と同じ処理を行う。すなわち、命令セットシミュレータ402は、第1の実施形態の実行サイクル数の他に、ターゲットプログラム1101のフレーム毎の各関数の関数割合をシミュレーションにより演算し、記憶部1601に記録する。論理エミュレータ403は、ターゲットプログラム1101のコンパイル時に生成されるデバック情報及びMAPファイルを記憶部1207に記録する。デバック情報及びMAPファイルは、コンパイル前のC言語のプログラムの行番号及び関数名とコンパイル後のマシン語のプログラムのアドレスとの対応関係を示すファイルである。
(Third embodiment)
FIG. 19 is a flowchart illustrating a performance estimation method of the performance estimation apparatus according to the third embodiment. FIG. 19 is obtained by adding a profile analysis unit 1901 and a storage unit 1902 to FIG. Hereinafter, the points of the present embodiment different from the second embodiment will be described. The instruction set simulator 402 performs the same processing as in the second embodiment, and the logic emulator 403 performs the same processing as in the first embodiment. That is, the instruction set simulator 402 calculates the function ratio of each function for each frame of the target program 1101 by simulation in addition to the number of execution cycles of the first embodiment, and records it in the storage unit 1601. The logic emulator 403 records debug information and a MAP file generated when compiling the target program 1101 in the storage unit 1207. The debug information and the MAP file are files indicating the correspondence between the line number and function name of the C language program before compilation and the address of the machine language program after compilation.

プロファイル解析部1901は、図4のパーソナルコンピュータ401の処理により実現され、記憶部1207内の論理エミュレータ403のエミュレーションの結果を基に、図20に示すように、ターゲットプログラム1101のフレーム毎の各関数の実行サイクル数及び関数割合を演算する。例えば、関数Aの実行サイクル数は「4354」であり、関数Aの関数割合は「28.18%」である。   The profile analysis unit 1901 is realized by the processing of the personal computer 401 in FIG. 4, and based on the emulation result of the logic emulator 403 in the storage unit 1207, as shown in FIG. 20, each function for each frame of the target program 1101. The number of execution cycles and the function ratio are calculated. For example, the number of execution cycles of the function A is “4354”, and the function ratio of the function A is “28.18%”.

図21は、性能推定装置の処理を説明するための図である。図21の命令セットシミュレータ(ISS)402の欄についての処理は、第2の実施形態(図18)と同じである。   FIG. 21 is a diagram for explaining processing of the performance estimation device. The processing for the column of the instruction set simulator (ISS) 402 in FIG. 21 is the same as that in the second embodiment (FIG. 18).

次に、図21の論理エミュレータ403の欄の処理を説明する。性能推定部1208は、論理エミュレータ403により演算された例えばフレーム番号1〜10についてのフレーム毎の実行サイクル数のフレーム平均値を演算する。例えば、フレーム番号1〜10についての実行サイクル数のフレーム平均値は、「1300000」である。   Next, processing in the column of the logic emulator 403 in FIG. 21 will be described. The performance estimation unit 1208 calculates the frame average value of the number of execution cycles for each frame for frame numbers 1 to 10 calculated by the logic emulator 403, for example. For example, the frame average value of the number of execution cycles for frame numbers 1 to 10 is “1300000”.

次に、性能推定部1208は、図20の論理エミュレータ403のフレーム毎の各関数の関数割合を基に、例えばフレーム番号1〜10のフレーム毎の各関数の関数割合のフレーム平均値を演算する。例えば、フレーム番号1〜10についての論理エミュレータ403の関数A〜Cの関数割合のフレーム平均値は、それぞれ「0.308、0.308、0.385」である。   Next, based on the function ratio of each function for each frame of the logic emulator 403 in FIG. 20, the performance estimation unit 1208 calculates the frame average value of the function ratio of each function for each frame of frame numbers 1 to 10, for example. . For example, the frame average values of the function ratios of the functions A to C of the logic emulator 403 for the frame numbers 1 to 10 are “0.308, 0.308, and 0.385”, respectively.

次に、性能推定部1208は、例えばフレーム番号1〜10について、論理エミュレータ403により演算されたフレーム毎の実行サイクル数のフレーム平均値及び論理エミュレータ403のフレーム毎の各関数の関数割合のフレーム平均値を基に、論理エミュレータ403の各関数の実行サイクル数のフレーム平均値を演算する。例えば、関数Aの実行サイクル数のフレーム平均値は、1300000×0.308=400400である。   Next, the performance estimation unit 1208, for example, for frame numbers 1 to 10, the frame average value of the number of execution cycles for each frame calculated by the logic emulator 403 and the frame average of the function ratio of each function for each frame of the logic emulator 403 Based on the value, the frame average value of the number of execution cycles of each function of the logic emulator 403 is calculated. For example, the frame average value of the number of execution cycles of the function A is 1300000 × 0.308 = 400400.

次に、性能推定部1208は、例えばフレーム番号1〜10について、命令セットシミュレータ402の各関数の実行サイクル数のフレーム平均値に対する論理エミュレータ403の各関数の実行サイクル数のフレーム平均値の関数毎の割合係数を演算する。例えば、関数Aの割合係数は、400400÷300000≒1.3である。   Next, the performance estimation unit 1208, for example, for frame numbers 1 to 10, for each function of the frame average value of the number of execution cycles of each function of the logic emulator 403 with respect to the frame average value of the number of execution cycles of each function of the instruction set simulator 402 Calculate the ratio coefficient. For example, the ratio coefficient of the function A is 400400 ÷ 300000≈1.3.

次に、性能推定部1208は、例えばフレーム番号11以降について、命令セットシミュレータ402のフレーム毎の各関数の実行サイクル数及び関数毎の割合係数を基に、論理エミュレータ403におけるターゲットプログラムの他の部分の例えばフレーム番号11以降のフレームについてのフレーム毎の実行サイクル数推定値を推定する。例えば、フレーム番号11の実行サイクル数推定値は、600000×1.3+300000×2+600000×1=1785000である。ここで、「600000」はフレーム番号11の命令セットシミュレータ402の関数Aの実行サイクル数、「1.3」は関数Aの割合係数、「300000」はフレーム番号11の命令セットシミュレータ402の関数Bの実行サイクル数、「2」は関数Bの割合係数、「600000」はフレーム番号11の命令セットシミュレータ402の関数Cの実行サイクル数、「1」は関数Cの割合係数である。   Next, the performance estimation unit 1208, for example, for frame number 11 and later, based on the number of execution cycles of each function for each frame of the instruction set simulator 402 and the ratio coefficient for each function, other parts of the target program in the logic emulator 403 For example, the estimated number of execution cycles for each frame for frames after frame number 11 is estimated. For example, the estimated number of execution cycles for frame number 11 is 600000 × 1.3 + 300000 × 2 + 600000 × 1 = 1785000. Here, “600000” is the number of execution cycles of the function A of the instruction set simulator 402 of the frame number 11, “1.3” is the ratio coefficient of the function A, and “300000” is the function B of the instruction set simulator 402 of the frame number 11. "2" is the ratio coefficient of the function B, "600000" is the number of execution cycles of the function C of the instruction set simulator 402 of frame number 11, and "1" is the ratio coefficient of the function C.

本実施形態によれば、関数毎の割合係数を用いて実行サイクル数推定値を推定するので、高精度の推定が可能になる。なお、プロファイル解析部1901は、性能推定部1208内に設けても良い。   According to this embodiment, since the estimated number of execution cycles is estimated using the ratio coefficient for each function, high-precision estimation is possible. Note that the profile analysis unit 1901 may be provided in the performance estimation unit 1208.

以上のように、第1〜第3の実施形態の性能推定装置は、CPU201及び周辺回路203を含みCPU201がプログラムを実行するSoCの開発におけるプログラムの性能推定装置である。命令セットシミュレータ402は、CPU201のみのシミュレーションを行う。具体的には、命令セットシミュレータ402は、ターゲットプログラム1101の特定区間であるフレーム毎のCPU201の実行サイクル数をシミュレーションにより演算する。論理エミュレータ403は、CPU201及び周辺回路203のエミュレーションを行う。具体的には、論理エミュレータ403は、ターゲットプログラム1101の一部のフレームについてのフレーム毎のCPU201の実行サイクル数をエミュレーションにより演算する。   As described above, the performance estimation apparatus according to the first to third embodiments is a program performance estimation apparatus in the development of an SoC that includes the CPU 201 and the peripheral circuit 203 and that executes the program. The instruction set simulator 402 performs simulation only for the CPU 201. Specifically, the instruction set simulator 402 calculates the number of execution cycles of the CPU 201 for each frame that is a specific section of the target program 1101 by simulation. The logic emulator 403 performs emulation of the CPU 201 and the peripheral circuit 203. Specifically, the logic emulator 403 calculates the number of execution cycles of the CPU 201 for each frame for some frames of the target program 1101 by emulation.

性能推定部1208は、命令セットシミュレータ402により演算されたフレーム毎の実行サイクル数及び論理エミュレータ403により演算されたフレーム毎の実行サイクル数を基に、命令セットシミュレータ402により演算された実行サイクル数に対する論理エミュレータ403により演算された実行サイクル数の割合係数を演算する。そして、性能推定部1208は、命令セットシミュレータ402により演算されたフレーム毎の実行サイクル数及び割合係数を基に、論理エミュレータ403におけるターゲットプログラム1101の他の部分のフレームについてのフレーム毎の実行サイクル数を推定する。   Based on the number of execution cycles for each frame calculated by the instruction set simulator 402 and the number of execution cycles for each frame calculated by the logic emulator 403, the performance estimation unit 1208 calculates the number of execution cycles calculated by the instruction set simulator 402. The ratio coefficient of the number of execution cycles calculated by the logic emulator 403 is calculated. The performance estimation unit 1208 then executes the number of execution cycles per frame for other frames of the target program 1101 in the logic emulator 403 based on the number of execution cycles per frame calculated by the instruction set simulator 402 and the ratio coefficient. Is estimated.

第1〜第3の実施形態によれば、システム(ハードウェア及びソフトウェアを含む)設計者及びハードウェア設計者に対して、性能推定装置の全体性能推定結果をフィードバックすることにより、実機又は評価ボード作成前にソフトウェア(プログラム)を踏まえたSoCアーキテクチャの全体最適化を実現することができる。   According to the first to third embodiments, an actual machine or an evaluation board is provided by feeding back the overall performance estimation result of the performance estimation device to a system designer (including hardware and software) and a hardware designer. It is possible to realize overall optimization of the SoC architecture based on software (programs) before creation.

なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。   The above-described embodiments are merely examples of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.

200 SoC
201 CPU
202 メモリ
203 周辺回路
402 命令セットシミュレータ
403 論理エミュレータ
800,1208 性能推定部
200 SoC
201 CPU
202 Memory 203 Peripheral Circuit 402 Instruction Set Simulator 403 Logic Emulator 800, 1208 Performance Estimator

Claims (9)

中央処理装置及び周辺回路を含み前記中央処理装置がプログラムを実行するシステムオンアチップの開発におけるプログラムの性能推定装置であって、
前記中央処理装置のみのシミュレーションを行う命令セットシミュレータであって、前記プログラムの測定区間全体の前記中央処理装置の実行サイクル数をシミュレーションにより演算する命令セットシミュレータと、
前記中央処理装置及び前記周辺回路のエミュレーションを行う論理エミュレータであって、前記プログラムの測定区間の一部の前記中央処理装置の実行サイクル数をエミュレーションにより演算する論理エミュレータと、
前記命令セットシミュレータにより演算された実行サイクル数及び前記論理エミュレータにより演算された実行サイクル数を基に、推定関数を算出し、前記論理エミュレータにおける前記プログラムの未測定区間の実行サイクル数を推定する性能推定部と
を有することを特徴とする性能推定装置。
A performance estimation device for a program in the development of a system-on-a-chip that includes a central processing unit and peripheral circuits and that executes the program.
An instruction set simulator for performing simulation of only the central processing unit, wherein the instruction set simulator calculates the number of execution cycles of the central processing unit for the entire measurement interval of the program by simulation;
A logic emulator for emulating the central processing unit and the peripheral circuit, wherein the logic emulator calculates the number of execution cycles of the central processing unit in a part of the measurement interval of the program by emulation;
The ability to calculate an estimation function based on the number of execution cycles calculated by the instruction set simulator and the number of execution cycles calculated by the logic emulator, and to estimate the number of execution cycles in the unmeasured section of the program in the logic emulator A performance estimation device comprising: an estimation unit.
前記性能推定部は、前記命令セットシミュレータにより演算されたフレーム毎の実行サイクル数の平均値に対する前記論理エミュレータにより演算されたフレーム毎の実行サイクル数の平均値の割合係数を演算し、前記命令セットシミュレータにより演算されたフレーム毎の実行サイクル数及び前記割合係数を乗算することにより、前記論理エミュレータにおける前記プログラムの未測定区間の実行サイクル数を推定することを特徴とする請求項1記載の性能推定装置。   The performance estimation unit calculates a ratio coefficient of an average value of execution cycles per frame calculated by the logic emulator with respect to an average value of execution cycles per frame calculated by the instruction set simulator, and the instruction set 2. The performance estimation according to claim 1, wherein the number of execution cycles in an unmeasured section of the program in the logic emulator is estimated by multiplying the number of execution cycles per frame calculated by a simulator and the ratio coefficient. apparatus. 前記性能推定部は、前記命令セットシミュレータにより演算されたフレーム毎の実行サイクル数と前記論理エミュレータにより演算されたフレーム毎の実行サイクル数を入力とし最小二乗法を用いた多項式近似により推定関数を演算することにより、前記論理エミュレータにおける前記プログラムの未測定区間の実行サイクル数を推定することを特徴とする請求項1記載の性能推定装置。   The performance estimation unit calculates an estimation function by polynomial approximation using a least square method with the number of execution cycles for each frame calculated by the instruction set simulator and the number of execution cycles for each frame calculated by the logic emulator as inputs. The performance estimation apparatus according to claim 1, wherein the number of execution cycles in an unmeasured section of the program in the logic emulator is estimated. 前記命令セットシミュレータは、前記実行サイクル数の他に、前記プログラムのフレーム毎の各関数の関数割合をシミュレーションにより演算し、
前記論理エミュレータは、前記プログラムの前記一部のフレームについてのフレーム毎の各関数の実行サイクル数をエミュレーションにより演算し、
前記性能推定部は、前記命令セットシミュレータにより演算されたフレーム毎の実行サイクル数及び前記フレーム毎の各関数の関数割合を基に前記命令セットシミュレータのフレーム毎の各関数の実行サイクル数を演算し、前記命令セットシミュレータのフレーム毎の各関数の実行サイクル数のフレーム平均値及び前記フレーム毎の各関数の関数割合のフレーム平均値を基に前記命令セットシミュレータの各関数の実行サイクル数のフレーム平均値を演算し、前記論理エミュレータにより演算された各関数の実行サイクル数を基に前記論理エミュレータの各関数の実行サイクル数のフレーム平均値を演算し、前記命令セットシミュレータの各関数の実行サイクル数のフレーム平均値に対する前記論理エミュレータの各関数の実行サイクル数のフレーム平均値の関数毎の割合係数を演算し、前記命令セットシミュレータのフレーム毎の各関数の実行サイクル数及び前記関数毎の割合係数を基に、前記論理エミュレータにおける前記プログラムの他の部分のフレームについてのフレーム毎の実行サイクル数を推定することを特徴とする請求項1記載の性能推定装置。
In addition to the number of execution cycles, the instruction set simulator calculates a function ratio of each function for each frame of the program by simulation,
The logic emulator calculates the number of execution cycles of each function for each frame for the partial frame of the program by emulation,
The performance estimating unit calculates the number of execution cycles of each function for each frame of the instruction set simulator based on the number of execution cycles for each frame calculated by the instruction set simulator and the function ratio of each function for each frame. The frame average of the number of execution cycles of each function of the instruction set simulator based on the frame average value of the number of execution cycles of each function of the instruction set simulator and the frame average value of the function ratio of each function of each frame Calculate the frame average value of the number of execution cycles of each function of the logic emulator based on the number of execution cycles of each function calculated by the logic emulator, and calculate the number of execution cycles of each function of the instruction set simulator The number of execution cycles of each function of the logic emulator with respect to the frame average value of A ratio coefficient for each function of the ram average value is calculated, and the frame of another part of the program in the logic emulator based on the number of execution cycles of each function for each frame of the instruction set simulator and the ratio coefficient for each function The performance estimation apparatus according to claim 1, wherein the number of execution cycles for each frame is estimated.
前記命令セットシミュレータは、前記実行サイクル数の他に、前記プログラムのフレーム毎の各関数の関数割合をシミュレーションにより演算し、
前記性能推定部は、前記論理エミュレータのエミュレーションの結果を基に前記プログラムのフレーム毎の各関数の関数割合のフレーム平均値を演算し、前記命令セットシミュレータにより演算されたフレーム毎の実行サイクル数のフレーム平均値及び前記命令セットシミュレータのフレーム毎の各関数の関数割合のフレーム平均値を基に前記命令セットシミュレータの各関数の実行サイクル数のフレーム平均値を演算し、前記論理エミュレータにより演算されたフレーム毎の実行サイクル数のフレーム平均値及び前記論理エミュレータのフレーム毎の各関数の関数割合のフレーム平均値を基に前記論理エミュレータの各関数の実行サイクル数のフレーム平均値を演算し、前記命令セットシミュレータの各関数の実行サイクル数のフレーム平均値に対する前記論理エミュレータの各関数の実行サイクル数のフレーム平均値の関数毎の割合係数を演算し、前記命令セットシミュレータのフレーム毎の各関数の実行サイクル数及び前記関数毎の割合係数を基に、前記論理エミュレータにおける前記プログラムの他の部分のフレームについてのフレーム毎の実行サイクル数を推定することを特徴とする請求項1記載の性能推定装置。
In addition to the number of execution cycles, the instruction set simulator calculates a function ratio of each function for each frame of the program by simulation,
The performance estimation unit calculates a frame average value of a function ratio of each function for each frame of the program based on a result of emulation of the logic emulator, and calculates the number of execution cycles for each frame calculated by the instruction set simulator. The frame average value of the number of execution cycles of each function of the instruction set simulator is calculated based on the frame average value and the frame average value of the function ratio of each function for each frame of the instruction set simulator, and is calculated by the logic emulator. Calculate the frame average value of the number of execution cycles of each function of the logic emulator based on the frame average value of the number of execution cycles per frame and the frame average value of the function ratio of each function of each function of the logic emulator. Frame plane of the number of execution cycles of each function of the set simulator The ratio coefficient for each function of the frame average value of the number of execution cycles of each function of the logic emulator with respect to the value is calculated, and based on the number of execution cycles of each function for each frame of the instruction set simulator and the ratio coefficient for each function The performance estimation apparatus according to claim 1, wherein the number of execution cycles per frame for a frame of another part of the program in the logic emulator is estimated.
前記論理エミュレータにおいてレジスタ部と制御部とRAMとを有する測定用付加回路が設計データとともに合成され、エミュレータにマッピングされ、実行されることを特徴とする請求項1〜5のいずれか1項に記載の性能推定装置。   6. The measurement additional circuit including a register unit, a control unit, and a RAM in the logic emulator is synthesized with design data, mapped to the emulator, and executed. Performance estimation device. 前記測定用付加回路は、測定開始情報と測定終了情報をプログラマブルに設定することが可能なことを特徴とする請求項6記載の性能推定装置。   The performance estimation apparatus according to claim 6, wherein the measurement additional circuit can set the measurement start information and the measurement end information in a programmable manner. 前記測定用付加回路は、さらに測定間隔情報をプログラマブルに設定することが可能なことを特徴とする請求項7記載の性能推定装置。   8. The performance estimation apparatus according to claim 7, wherein the measurement additional circuit can further set the measurement interval information in a programmable manner. 前記測定用付加回路は、さらにデリミタ情報をプログラマブルに設定することが可能なことを特徴とする請求項7記載の性能推定装置。   The performance estimation apparatus according to claim 7, wherein the measurement additional circuit can further set delimiter information in a programmable manner.
JP2010110542A 2010-05-12 2010-05-12 Performance estimation device Expired - Fee Related JP5454349B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010110542A JP5454349B2 (en) 2010-05-12 2010-05-12 Performance estimation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010110542A JP5454349B2 (en) 2010-05-12 2010-05-12 Performance estimation device

Publications (2)

Publication Number Publication Date
JP2011238137A true JP2011238137A (en) 2011-11-24
JP5454349B2 JP5454349B2 (en) 2014-03-26

Family

ID=45326025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010110542A Expired - Fee Related JP5454349B2 (en) 2010-05-12 2010-05-12 Performance estimation device

Country Status (1)

Country Link
JP (1) JP5454349B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018504680A (en) * 2014-12-19 2018-02-15 ドルビー ラボラトリーズ ライセンシング コーポレイション Audio benchmarking with simulated real-time processing of audio
CN109063340A (en) * 2018-08-03 2018-12-21 上海兆芯集成电路有限公司 The test method and device of GPU performance based on emulation
US11106478B2 (en) 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018504680A (en) * 2014-12-19 2018-02-15 ドルビー ラボラトリーズ ライセンシング コーポレイション Audio benchmarking with simulated real-time processing of audio
US10346124B2 (en) 2014-12-19 2019-07-09 Dolby Laboratories Licensing Corporation Audio benchmarking with simulated real time processing of audio
US11106478B2 (en) 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium
CN109063340A (en) * 2018-08-03 2018-12-21 上海兆芯集成电路有限公司 The test method and device of GPU performance based on emulation
CN109063340B (en) * 2018-08-03 2023-08-25 格兰菲智能科技有限公司 Simulation-based GPU performance testing method and device

Also Published As

Publication number Publication date
JP5454349B2 (en) 2014-03-26

Similar Documents

Publication Publication Date Title
JP4994393B2 (en) System and method for generating multiple models at different levels of abstraction from a single master model
US8146061B2 (en) Systems and methods for graphics hardware design debugging and verification
US10180850B1 (en) Emulating applications that use hardware acceleration
WO2013030674A2 (en) System and methods for generating and managing a virtual device
US9081925B1 (en) Estimating system performance using an integrated circuit
US8271252B2 (en) Automatic verification of device models
US9529946B1 (en) Performance estimation using configurable hardware emulation
JP2005293163A (en) Power consumption calculation method and apparatus
JP6600011B2 (en) Efficient waveform generation for emulation
US20230252212A1 (en) Testbench for sub-design verification
US10437949B1 (en) Scheduling events in hardware design language simulation
Schürmans et al. ESL power estimation using virtual platforms with black box processor models
US8700380B2 (en) Method for generating performance evaluation model
JP5785725B2 (en) Power estimation apparatus, power estimation method and program
JP5454349B2 (en) Performance estimation device
US10540466B1 (en) Systems and methods for streaming waveform data during emulation run
US7992112B2 (en) Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium
JP5040625B2 (en) LSI power estimation method and apparatus
Lorenz et al. From RTL IP to functional system-level models with extra-functional properties
JP6249827B2 (en) Simulation apparatus and simulation program
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
US10223077B2 (en) Determination of signals for readback from FPGA
JP5146087B2 (en) Power consumption estimation method, circuit design support apparatus and program
CN114115887A (en) Adaptive scheduling with dynamic partition load balancing for fast partition compilation
JP2007018313A (en) Circuit design program, circuit design device and circuit design method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131202

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: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131223

R150 Certificate of patent or registration of utility model

Ref document number: 5454349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees