Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5267566B2 - Multiprocessor count value correction apparatus and multiprocessor having the same - Google Patents
[go: Go Back, main page]

JP5267566B2 - Multiprocessor count value correction apparatus and multiprocessor having the same - Google Patents

Multiprocessor count value correction apparatus and multiprocessor having the same Download PDF

Info

Publication number
JP5267566B2
JP5267566B2 JP2010531754A JP2010531754A JP5267566B2 JP 5267566 B2 JP5267566 B2 JP 5267566B2 JP 2010531754 A JP2010531754 A JP 2010531754A JP 2010531754 A JP2010531754 A JP 2010531754A JP 5267566 B2 JP5267566 B2 JP 5267566B2
Authority
JP
Japan
Prior art keywords
count value
processor
change
operating frequency
multiprocessor
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.)
Expired - Fee Related
Application number
JP2010531754A
Other languages
Japanese (ja)
Other versions
JPWO2010038459A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2010531754A priority Critical patent/JP5267566B2/en
Publication of JPWO2010038459A1 publication Critical patent/JPWO2010038459A1/en
Application granted granted Critical
Publication of JP5267566B2 publication Critical patent/JP5267566B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3608Analysis of software for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、マルチプロセッサのカウント値補正装置等に係り、詳しくは、独立又は協働して駆動する複数のプロセッサ毎のクロックサイクルカウント値を、例えば、マルチプロセッサの駆動状況を分析などする際に、容易に利用することができるように補正するマルチプロセッサのカウント値補正装置等に関する。   The present invention relates to a multiprocessor count value correction device and the like, and more specifically, when analyzing a clock cycle count value for each of a plurality of processors driven independently or in cooperation, for example, analyzing a driving state of a multiprocessor. The present invention relates to a multiprocessor count value correction device and the like for correction so that it can be easily used.

従来、コンピュータプログラムのデバックや性能分析や最適化などを行う際には、そのプログラムの実行状況を追跡することが行われており、典型的には、そのプログラム中に該当箇所の実行を検知する実行プログラムを、明示的に加入したり、あるいは、プロセッサのブレークポイント機構等を実装するなどして埋め込む。   Conventionally, when performing debugging, performance analysis, optimization, etc. of a computer program, the execution status of the program is tracked, and typically the execution of the corresponding part in the program is detected. An execution program is embedded by explicitly joining or implementing a breakpoint mechanism of a processor or the like.

その実行プログラムでは、例えば、実行中のプログラムのアドレスや変数の値に相当するレジスタやメモリの情報などのトレースデータを生成して所定の記録領域に保存することにより追跡可能にする処理が行われる。また、性能分析や処理時間計測を行う場合には、例えば、該当のプローブを通過した時点の時刻をトレースデータとして記録することにより分析可能にするのが典型的な処理である。   In the execution program, for example, trace data such as register and memory information corresponding to the address and variable value of the program being executed is generated and saved in a predetermined recording area so as to be traceable. . Further, when performing performance analysis or processing time measurement, for example, it is a typical process to enable analysis by recording the time at which the probe has passed through as trace data.

このときの時刻データとしては、タイマやリアルタイムクロックデバイスから取得した時刻情報や、プロセッサが備えるクロックサイクルカウンタのカウント値を用いるのが一般的である。そのなかでも、ルーチン毎の実行時刻をサンプリングによらずに直接計測するなどの精細な時刻情報を要する場合には、クロックサイクルカウンタが用いられることが多い。   As time data at this time, time information acquired from a timer or a real-time clock device or a count value of a clock cycle counter provided in a processor is generally used. In particular, a clock cycle counter is often used when precise time information is required such as directly measuring the execution time of each routine without sampling.

このような追跡処理や性能分析や処理時間計測などを、複数のプロセッサを備えているマルチプロセッサで行う場合には、バスを介して情報のやり取りをすると、そのバス経由で取得することによる時刻データの遅延が無視できない。また、通常のマルチプロセッサでは、マイクロ秒以下の精度をもつデバイスが搭載されている訳ではないので分解能も十分でない。   When such tracking processing, performance analysis, and processing time measurement are performed by a multiprocessor equipped with a plurality of processors, time data obtained by exchanging information via the bus is obtained. The delay is not negligible. In addition, a normal multiprocessor does not have a device with an accuracy of microseconds or less, so the resolution is not sufficient.

このことから、マルチプロセッサでは、プロセッサ間を主従の関係で固定することなく、プロセッサ毎の時刻データを同期させる方式が特許文献1で提案されている。この文献1には、選択した一部のプロセッサ毎に全てのプロセッサに向けて自分の時刻データを送ることにより、受信した他のプロセッサからの時刻データと自身の時刻データの差分の平均値を算出して時刻データの補正を行うことが記載されている。   For this reason, Patent Document 1 proposes a method for synchronizing time data for each processor without fixing the processors in a master-slave relationship. This reference 1 calculates the average value of the difference between the received time data from other processors and its own time data by sending its own time data to all of the selected processors. The correction of time data is described.

また、特許文献2には、通信ラインに接続されているターミナル間の時計を共通になるように補正する技術が記載されている。特許文献3には、通信ネットワークを介して接続されている情報処理装置の内部時計を同期させる技術が記載されている。   Patent Document 2 describes a technique for correcting a clock between terminals connected to a communication line to be common. Patent Document 3 describes a technique for synchronizing an internal clock of an information processing apparatus connected via a communication network.

特開平01−114964号公報Japanese Patent Laid-Open No. 01-114964 特開平07−160358号公報Japanese Patent Laid-Open No. 07-160358 特開2000−285038号公報JP 2000-285038 A

しかしながら、近年のマルチプロセッサにあっては、プロセッサのクロック周波数(動作周波数)を一定のまま駆動させるとは限られず、例えば、消費電力の低減等のために、プロセッサ毎に、所定の契機に適宜、クロック周波数を変更して駆動するものもある。   However, recent multiprocessors are not limited to being driven with the clock frequency (operating frequency) of the processor kept constant. For example, in order to reduce power consumption, for example, each processor is appropriately triggered by a predetermined trigger. Some of them are driven by changing the clock frequency.

このため、トレースデータとしては、このようにプロセッサ毎のクロック周波数が変更された時刻データであるクロックサイクルカウント値をそのまま記録したとしても、クロック周波数が異なればそのカウントレートが異なることから、例えば、追跡処理や性能分析や処理時間計測を行う際にそのまま利用することはできない。   For this reason, as trace data, even if the clock cycle count value, which is the time data when the clock frequency for each processor is changed in this way, is recorded as it is, the count rate is different if the clock frequency is different. It cannot be used as it is when performing tracking processing, performance analysis, or processing time measurement.

ところで、ルーチン1個の大きさは、ループの有無などにもよるが、小さい場合には100命令にも満たない場合もあり、このような場合には、数百MHz〜数GHzで動作するプロセッサでの実行時間は1マイクロ秒以下になり得る。   By the way, although the size of one routine depends on the presence or absence of a loop, it may be less than 100 instructions if it is small. In such a case, a processor that operates at several hundred MHz to several GHz. The execution time at can be less than 1 microsecond.

その一方で、クロックサイクルカウンタは、プロセッサのクロックが進む都度増加するように動作するため、上記のような高精細な用途でも満足する分解能を備えている。また、クロックサイクルカウンタは、プロセッサのレジスタ等からカウント値を直接読み出すことから、読み出しに掛かる遅延としてもバス経由で接続されたデバイスよりは相当に小さい。例えば、インテル社製のIA−32アーキテクチャのプロセッサでは、クロックサイクルカウンタがタイムスタンプカウンタレジスタを読み出す命令(RDTSC:Read Time Stamp Counter)を用いてその値を取得することができ、その読出時の遅延は数十サイクル程度である。   On the other hand, since the clock cycle counter operates so as to increase as the processor clock advances, the clock cycle counter has a resolution that satisfies even the above-described high-definition applications. Further, since the clock cycle counter directly reads the count value from the processor register or the like, the delay required for the reading is considerably smaller than that of the device connected via the bus. For example, in an Intel IA-32 architecture processor, the clock cycle counter can obtain the value using an instruction (RDTSC: Read Time Stamp Counter) for reading a time stamp counter register, and a delay at the time of reading Is about several tens of cycles.

そして、マルチプロセッサの場合には、通常、プロセッサ毎にクロックサイクルカウンタが用意されていることから、プロセッサの時刻カウンタとして、これを利用することが時刻データを共通化させるのには好ましい。   In the case of a multiprocessor, since a clock cycle counter is usually prepared for each processor, it is preferable to use this as a time counter of the processor in order to share time data.

しかるに、マルチプロセッサは、プロセッサが異なればそのカウンタの値も最初からずれている可能性もある。特に、マルチプロセッサが電源管理機能を搭載して消費電力や処理量の傾向に応じてプロセッサ毎の動作速度をクロック周波数の変更により変化させる場合には、同一マシン内であっても各々のクロック周波数で駆動しているときもある。   However, in the multiprocessor, if the processors are different, the value of the counter may be deviated from the beginning. Especially when the multiprocessor is equipped with a power management function and the operating speed of each processor is changed by changing the clock frequency according to the power consumption and processing volume trends, Sometimes it is driven by.

このことから、マルチプロセッサでは、例えば、性能を拡大するために複数プロセッサを利用する等の目的でマルチスレッド化したアプリケーションプログラムを実行処理する場合には、その複数のプロセッサに跨って並行処理する。この場合には、その実行処理を行うプロセッサによって参照時計の時刻の進み方が異なることになるため、正確な計測が行えないことになる。また、OS(Operating System)のカーネルなどように並行処理を実行するプログラムの場合には、特定機能だけ処理が遅延するようなボトルネックがあるとシステム全体の性能が落ちる。   For this reason, in a multiprocessor, for example, when executing an application program that has been multithreaded for the purpose of using a plurality of processors in order to increase performance, the multiprocessor performs parallel processing across the plurality of processors. In this case, since the way of the time of the reference clock differs depending on the processor that performs the execution process, accurate measurement cannot be performed. Further, in the case of a program that executes parallel processing, such as an OS (Operating System) kernel, if there is a bottleneck that delays processing by a specific function, the performance of the entire system deteriorates.

すなわち、このようなプログラムでは、デバックや性能分析や最適化を行う際に、マルチプロセッサにおけるプロセッサ毎に、クロックサイクルカウンタにより計測する経過時刻を共通化することが必要である。   That is, in such a program, it is necessary to share the elapsed time measured by the clock cycle counter for each processor in the multiprocessor when performing debugging, performance analysis, or optimization.

この発明は、上述の事情に鑑みてなされたもので、マルチプロセッサがプロセッサ毎に動作周波数を変更可能な機能を備える場合に、そのプロセッサ毎のクロックサイクルカウント値を共通の経過時刻に補正して、追跡処理や性能分析や最適化処理などを容易に行い得るようにすることのできるマルチプロセッサのカウント値補正装置等を提供することを目的とする。   The present invention has been made in view of the above circumstances. When a multiprocessor has a function capable of changing the operating frequency for each processor, the clock cycle count value for each processor is corrected to a common elapsed time. Another object of the present invention is to provide a multiprocessor count value correction device and the like that can easily perform tracking processing, performance analysis, optimization processing, and the like.

上記課題を解決するために、この発明の第1の構成は、マルチプロセッサのカウント値補正装置に係り、マルチプロセッサを構築するプロセッサ毎の動作周波数の変更を検知する変更検知手段と、前記動作周波数を変更した前記プロセッサの識別情報を取得する変更プロセッサ識別情報取得手段と、前記動作周波数の変更後の当該動作周波数を取得する動作周波数取得手段と、前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値を取得する変更時カンウント値取得手段と、取得した前記動作周波数及び前記変更時カウント値を該当プロセッサの識別情報に対応付けして履歴情報として保持する変更履歴保持手段と、前記識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出する時刻導出手段とを備えることを特徴としている。   In order to solve the above-described problem, a first configuration of the present invention relates to a multiprocessor count value correction apparatus, a change detecting means for detecting a change in operating frequency for each processor constituting the multiprocessor, and the operating frequency. For each processor that counts based on the operating frequency, a changed processor identification information acquiring unit that acquires the identification information of the processor that has changed the operating frequency, an operating frequency acquiring unit that acquires the operating frequency after the operating frequency is changed Change count value acquisition means for acquiring a change count value when the operation frequency of the clock cycle counter is changed, and history information by associating the acquired operation frequency and the change count value with identification information of the corresponding processor Change history holding means to hold as the identification information It is characterized in that it comprises a time derivation means for deriving the virtual time of each of the processors on the basis of the history information of the work frequency and the change at the time count value.

また、この発明の第2の構成は、マルチプロセッサのカウント値補正方法に係り、マルチプロセッサを構築するプロセッサ毎の動作周波数の変更の有無を監視して、該プロセッサの動作周波数の変更を検知したとき、前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値、及び、当該変更時における前記動作周波数を該プロセッサの識別情報と共に取得して該識別情報に対応付けして履歴情報として保持し、当該識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出することを特徴としている。   The second configuration of the present invention relates to a count value correction method for a multiprocessor, and monitors whether or not the operating frequency of each processor constituting the multiprocessor is changed, and detects a change in the operating frequency of the processor. When the operating frequency of the clock cycle counter for each processor that counts based on the operating frequency is changed, and the operating frequency at the time of the change are acquired together with the identification information of the processor. It is stored as history information in association with identification information, and a virtual time for each processor is derived based on the history information of the operating frequency and the change count value associated with the identification information. It is said.

また、この発明の第3の構成は、マルチプロセッサのカウント値補正プログラムに係り、マルチプロセッサを搭載するコンピュータに読み込ませることにより、必要な情報をメモリ内に保持させつつ何れかのプロセッサが実行するステップとして、プロセッサ毎の動作周波数の変更の有無を監視して該動作周波数の変更を検知する変更検知ステップと、前記動作周波数を変更した該当プロセッサの識別情報を取得する変更プロセッサ識別情報取得ステップと、前記動作周波数の変更後の当該動作周波数を取得する動作周波数取得ステップと、前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値を取得する変更時カンウント値取得ステップと、取得した前記動作周波数及び前記変更時カウント値を該当プロセッサの識別情報に対応付けして履歴情報として保持する変更履歴保持ステップと、前記識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出する時刻導出ステップとを有することを特徴としている。   The third configuration of the present invention relates to a multiprocessor count value correction program, which is executed by one of the processors while holding the necessary information in the memory by being read by a computer equipped with the multiprocessor. As a step, a change detection step for monitoring the presence or absence of a change in operating frequency for each processor and detecting a change in the operating frequency; a changed processor identification information acquiring step for acquiring identification information of the processor whose operating frequency has been changed; An operating frequency acquisition step for acquiring the operating frequency after the change of the operating frequency, and a count value at the time of changing the operating frequency of the clock cycle counter for each processor that counts based on the operating frequency The change count value acquisition step and the acquired A change history holding step for holding the operating frequency and the change count value in association with the identification information of the processor as history information, and the operating frequency and the change count value associated with the identification information. And a time deriving step for deriving a virtual time for each processor based on history information.

この発明の構成によれば、変更した動作周波数と共にその変更時のクロックサイクルカウント値を履歴情報としてプロセッサ毎に保持して、適宜、その履歴情報から仮想時刻を導出するので、分析等を行うプロセッサ毎のクロックサイクルカウント値を仮想時刻にして共通化することができる。したがって、マルチプロセッサにおけるプロセッサ毎のクロックサイクルカウント値を動作周波数の変更による影響のない仮想時刻にして、その仮想時刻を基準にして所望の分析等の処理を容易かつ効率よく行うことができる。   According to the configuration of the present invention, the changed operating frequency and the clock cycle count value at the time of the change are held as history information for each processor, and the virtual time is derived from the history information as appropriate. Each clock cycle count value can be shared as a virtual time. Therefore, the clock cycle count value for each processor in the multiprocessor is set to a virtual time that is not affected by the change of the operating frequency, and a desired analysis process or the like can be easily and efficiently performed based on the virtual time.

この発明の一実施形態に係るマルチプロセッサの電気的構成を概略示すブロック図である。1 is a block diagram schematically showing an electrical configuration of a multiprocessor according to an embodiment of the present invention. 同実施形態で使用されるクロックサイクルカウント値を説明するグラフである。It is a graph explaining the clock cycle count value used in the embodiment. 同実施形態のマルチプロセッサの動作処理手順を示すフローチャートである。It is a flowchart which shows the operation processing procedure of the multiprocessor of the embodiment. 同実施形態のマルチプロセッサの動作周波数とクロックサイクルカウント値の取得処理手順を示すフローチャートである。4 is a flowchart showing a processing procedure for acquiring an operating frequency and a clock cycle count value of the multiprocessor according to the embodiment. 同実施形態のマルチプロセッサの動作周波数とクロックサイクルカウント値の取得結果を示す概念図である。It is a conceptual diagram which shows the acquisition result of the operating frequency and clock cycle count value of the multiprocessor of the embodiment. 同実施形態のマルチプロセッサのクロックサイクルカウント値の補正処理手順を示すフローチャートである。4 is a flowchart showing a correction processing procedure of a clock cycle count value of the multiprocessor according to the embodiment. 同実施形態のマルチプロセッサのクロックサイクルカウント値の補正処理手順を示す図6に続くフローチャートである。7 is a flowchart subsequent to FIG. 6, illustrating a correction processing procedure for a clock cycle count value of the multiprocessor according to the first embodiment. 同実施形態に付加させることのできる装置に係るマルチプロセッサの電気的構成を概略示すブロック図である。It is a block diagram which shows schematically the electric structure of the multiprocessor which concerns on the apparatus which can be added to the same embodiment. 同装置で使用されるクロックサイクルカウント値とその処理結果を示す概念図である。It is a conceptual diagram which shows the clock cycle count value and its processing result which are used with the same apparatus. 同装置における基準プロセッサとしてのクロックサイクルカウント値の同期処理手順を示すフローチャートである。It is a flowchart which shows the synchronous processing procedure of the clock cycle count value as a reference | standard processor in the same apparatus. 同装置における応答プロセッサとしてのクロックサイクルカウント値の同期処理手順を示すフローチャートである。It is a flowchart which shows the synchronous processing procedure of the clock cycle count value as a response processor in the same apparatus. 同装置のマルチプロセッサの動作処理手順を示すフローチャートである。It is a flowchart which shows the operation processing procedure of the multiprocessor of the same apparatus.

動作周波数を変更可能なプロセッサを複数備えるマルチプロセッサが、プロセッサ毎の動作周波数の変更を検知する変更検知手段と、前記動作周波数を変更した前記プロセッサの識別情報を取得する変更プロセッサ識別情報取得手段と、前記動作周波数の変更後の当該動作周波数を取得する動作周波数取得手段と、前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値を取得する変更時カンウント値取得手段と、取得した前記動作周波数及び前記変更時カウント値を該当プロセッサの識別情報に対応付けして履歴情報として保持する変更履歴保持手段と、前記識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出する時刻導出手段とを備えており、前記時刻導出手段は、前記プロセッサ毎の前記変更時カウント値を対応する前記動作周波数により補正して、前記動作周波数の変更前後で共通の一定速度で増進する仮想時刻を導出するように構成されている。   A multi-processor including a plurality of processors capable of changing the operating frequency, a change detecting unit that detects a change in the operating frequency for each processor, a changed processor identification information acquiring unit that acquires the identification information of the processor that has changed the operating frequency, The operating frequency acquisition means for acquiring the operating frequency after the change of the operating frequency and the count value at the time of changing the operating frequency of the clock cycle counter for each processor that counts based on the operating frequency are acquired The change count value acquisition means, the change history holding means for holding the acquired operating frequency and the change count value in association with the identification information of the corresponding processor and holding it as history information, and the identification information Based on the history information of the operating frequency and the count value at the time of change Time deriving means for deriving a virtual time for each processor, and the time deriving means corrects the change count value for each processor with the corresponding operation frequency, and before and after the change of the operation frequency. Thus, it is configured to derive a virtual time to increase at a common constant speed.

以下、この発明の最良の実施形態を図面に基づいて説明する。   The best mode for carrying out the invention will be described below with reference to the drawings.

実施形態Embodiment

図1〜図7は、この発明に係るマルチプロセッサのカウント値補正プログラムをコンピュータに読み込ませて実行することによりマルチプロセッサのカウント値補正方法を実施する、マルチプロセッサのカウント値補正装置を搭載するマルチプロセッサの一実施形態を示す図である。図1はそのマルチプロセッサのカウント値補正装置の概略全体構成を示す概念構成図、図2はそのマルチプロセッサでプロセッサ毎に動作周波数を変更する場合のクロックサイクルカウント値を説明するグラフ、図3はそのマルチプロセッサが実行するプログラム中におけるプロセッサ毎のクロックサイクルカウント値の取得を説明するプローチャート、図4はそのマルチプロセッサのプロセッサが変更する動作周波数とその時のクロックサイクルカウント値の取得を説明するプローチャート、図5はその変更時の動作周波数とクロックサイクルカウント値の取得・保持を説明する概念図、図6及び図7はその異なる動作周波数でカウントされているクロックサイクルカウント値の補正処理を説明するフローチャートである。   FIGS. 1 to 7 show a multiprocessor equipped with a multiprocessor count value correction apparatus that implements a multiprocessor count value correction method by causing a computer to read and execute a multiprocessor count value correction program according to the present invention. FIG. 4 illustrates an embodiment of a processor. FIG. 1 is a conceptual configuration diagram showing a schematic overall configuration of the multiprocessor count value correction device, FIG. 2 is a graph for explaining clock cycle count values when the operating frequency is changed for each processor in the multiprocessor, and FIG. FIG. 4 is a flowchart for explaining the acquisition of the clock cycle count value for each processor in the program executed by the multiprocessor. FIG. 4 is a flowchart for explaining the operation frequency changed by the processor of the multiprocessor and the acquisition of the clock cycle count value at that time. FIG. 5 is a conceptual diagram illustrating the acquisition and retention of the operating frequency and the clock cycle count value at the time of the change, and FIGS. 6 and 7 illustrate the correction processing of the clock cycle count value counted at the different operating frequency. It is a flowchart to do.

図1において、マルチプロセッサ100は、第1〜第nプロセッサ101〜10n(nは2以上の自然数)が、処理プログラム等を予め格納するROM(Read Only Memory)111と、ワークエリアとして利用可能なRAM(Random Access Memory)112と共にバス113に共通接続されてコンピュータ内に搭載されている。この第1〜第nプロセッサ101〜10nは、それぞれがプロセッサID保持部11で保持するプロセッサID(identifier:識別情報)に基づいて互いに識別しつつ、個々の役割を単独で処理する、あるいは、それぞれに分担されている役割を並行処理して協働するマルチプロセッサとして機能するように構築されている。   In FIG. 1, a multiprocessor 100 can be used as a work area by a ROM (Read Only Memory) 111 in which first to n-th processors 101 to 10n (n is a natural number of 2 or more) that stores a processing program or the like in advance. A RAM (Random Access Memory) 112 and a bus 113 are commonly connected and mounted in the computer. The first to n-th processors 101 to 10n individually process each role while identifying each other based on the processor ID (identifier: identification information) held by the processor ID holding unit 11, or It is constructed so as to function as a multiprocessor that cooperates by processing the roles assigned to each other in parallel.

この第1〜第nプロセッサ101〜10nは、それぞれクロック周波数設定部12内に予め設定されているクロック周波数(動作周波数)に応じた速度で同期を取りつつ駆動するように構築されており、そのクロック周波数に応じた速度のクロックサイクルカウント値をクロックサイクルカウント値保持部13で計数・保持することにより同期を取る。すなわち、第1〜第nプロセッサ101〜10nは、クロックサイクルカウント値保持部13を内蔵することにより、バス113を介すことなく(遅延させることなく)直接そのクロックサイクルカウント値を取得することができる。このため、例えば、100命令にも満たないルーチンを実行するような1マイクロ秒以下の実行時間を計数する高精細な用途でも満足する分解能を備えることができる。   The first to n-th processors 101 to 10n are constructed so as to be driven while being synchronized at a speed corresponding to a clock frequency (operation frequency) set in advance in the clock frequency setting unit 12, respectively. The clock cycle count value at a speed corresponding to the clock frequency is counted and held by the clock cycle count value holding unit 13 to achieve synchronization. That is, the first to n-th processors 101 to 10n can directly acquire the clock cycle count value without using the bus 113 (without delay) by incorporating the clock cycle count value holding unit 13. it can. For this reason, for example, it is possible to provide a resolution that satisfies even a high-definition application that counts an execution time of 1 microsecond or less that executes a routine that is less than 100 instructions.

さらに、第1〜第nプロセッサ101〜10nは、消費電力の削減等を実現するために、ROM111内の処理プログラムに基づくコンピュータ本体(第1〜第nプロセッサ101〜10n自身)からの指示・命令に応じて、駆動速度となるクロック周波数をそれぞれのクロック周波数設定部12内に個別に変更・設定することができる。ここで、この実施形態では、ROM111内に格納するプログラム自体をプログラム111と称して簡単に説明する。   Furthermore, the first to n-th processors 101 to 10n are provided with instructions / commands from the computer main body (first to n-th processors 101 to 10n themselves) based on the processing program in the ROM 111 in order to reduce power consumption. Accordingly, the clock frequency as the driving speed can be individually changed and set in each clock frequency setting unit 12. Here, in this embodiment, the program itself stored in the ROM 111 is simply referred to as the program 111 and will be briefly described.

例えば、図2に示すように、第1プロセッサ101は、100MHz、50MHz、150MHzと順次にクロック周波数を変更・設定(更新)して駆動している。これに対して、第2プロセッサ102は、25MHz、100MHz、150MHzと順次にクロック周波数を変更・設定して駆動している。この場合には、同一のタイミングT1であるのにも拘わらずに、第1プロセッサ101のクロックサイクルカウント値が150Mサイクル(C1)であるのに対して第2プロセッサ102のクロックサイクルカウント値は50Mサイクル(C2)である。また、クロックサイクルカウント値として150Mサイクル(C1)を計数するのは、第1プロセッサ101がタイミングT1であるのに対して第2プロセッサ102がタイミングT2と異なるタイミングになる。   For example, as shown in FIG. 2, the first processor 101 is driven by changing / setting (updating) the clock frequency in order of 100 MHz, 50 MHz, and 150 MHz. On the other hand, the second processor 102 is driven by changing and setting the clock frequency in order of 25 MHz, 100 MHz, and 150 MHz. In this case, the clock cycle count value of the first processor 101 is 150 M cycles (C1), while the clock cycle count value of the second processor 102 is 50 M, despite the same timing T1. Cycle (C2). In addition, 150 M cycles (C1) is counted as the clock cycle count value at a timing different from the timing T2 for the second processor 102 while the first processor 101 is at the timing T1.

このことから、マルチプロセッサ100は、第1〜第nプロセッサ101〜10n毎のクロックサイクルカウント値を、例えば、クロック周波数の変更に影響されることのないリアルタイムと同一速度で増進する経過時刻に補正した仮想時刻を導出することにより共通化する機能を備えている。これにより、マルチプロセッサ100は、第1〜第nプロセッサ101〜10n毎に異なるクロック周波数でクロックサイクルカウント値がカウントされるために、ソフトウェアのデバックや性能分析や最適化などの処理を複雑化させることなく、その補正後の仮想時刻を単純利用する容易な処理を実現することができる。なお、この仮想時刻としては、一定速度に限るものではなく、例えば、第1プロセッサ101のクロックサイクルカウント値を基準にして共通に進行する経過時刻に補正してもよいが、現実の時間経過に補正するのが簡易であることから、後述するように本実施形態のように補正処理を行うのが好ましい。   From this, the multiprocessor 100 corrects the clock cycle count value for each of the first to n-th processors 101 to 10n to, for example, an elapsed time that is increased at the same speed as real time without being affected by the change of the clock frequency. A common function is derived by deriving the virtual time. Accordingly, the multiprocessor 100 complicates processing such as software debugging, performance analysis, and optimization because the clock cycle count value is counted at a different clock frequency for each of the first to n-th processors 101 to 10n. Therefore, it is possible to realize an easy process that simply uses the corrected virtual time. Note that the virtual time is not limited to a constant speed. For example, the virtual time may be corrected to an elapsed time that progresses in common on the basis of the clock cycle count value of the first processor 101. Since correction is simple, it is preferable to perform correction processing as in this embodiment as will be described later.

具体的には、マルチプロセッサ100は、第1〜第nプロセッサ101〜10nが電源管理イベント等で実行するクロック周波数の変更を検知して、その時点でのクロックサイクルカウント値と変更後のクロック周波数を記録保持しておく。そして、このマルチプロセッサ100は、その保持するクロックサイクルカウント値を第1〜第nプロセッサ101〜10n間で共通化する補正を行って積算することにより仮想時刻を算出(導出)することができる。例えば、図2に示す第1プロセッサ101では、0〜100Mサイクルの間では100MHz(サイクル/秒)で動作していたので、一般的な現実の経過時刻としては、100Mサイクル/100MHz=1.0秒となって1.0秒だけ経過していることになる。同様に、100〜150Mサイクルの間では、50MHzで動作していたので、(150−100)/50=1.0となって1.0秒経過していることになる。さらに、150〜300Mサイクルの間では、150MHzで動作していたので、(300−150)/150=1.0となって1.0秒経過していることになる。このため、この場合には、これらを積算して合計で3.0秒経過していることなる。すなわち、マルチプロセッサ100は、この補正処理を第1〜第nプロセッサ101〜10n毎のクロックサイクルカウント値にも同様に施して仮想時刻を算出することにより、クロックサイクルカウント値に対応する各種トレースデータの履歴を一般化・共通化して計測・分析などを容易化することができる。   Specifically, the multiprocessor 100 detects a change in the clock frequency executed by the first to nth processors 101 to 10n by a power management event or the like, and the clock cycle count value at that time and the changed clock frequency Keep the record. Then, the multiprocessor 100 can calculate (derived) the virtual time by performing a correction for making the held clock cycle count value common to the first to n-th processors 101 to 10n and integrating them. For example, since the first processor 101 shown in FIG. 2 operates at 100 MHz (cycles / second) between 0 and 100 M cycles, a typical actual elapsed time is 100 M cycles / 100 MHz = 1.0. This means that 1.0 second has passed. Similarly, since it was operating at 50 MHz between 100 and 150 M cycles, (150-100) /50=1.0, and 1.0 second has elapsed. Furthermore, since it was operating at 150 MHz between 150 and 300 M cycles, (300−150) /150=1.0, and 1.0 second has elapsed. For this reason, in this case, these are integrated and 3.0 seconds have elapsed. That is, the multiprocessor 100 performs the correction processing on the clock cycle count values of the first to n-th processors 101 to 10n in the same manner to calculate the virtual time, whereby various trace data corresponding to the clock cycle count values are obtained. Can be generalized and shared to facilitate measurement and analysis.

例えば、マルチプロセッサ100は、第1〜第nプロセッサ101〜10nがプログラム111内に格納する性能計測用のソフトウェアの実行プローブ111aを呼び出して実行する際に、そのクロックサイクルカウント値を共通化する補正処理を行って仮想時刻を導出する。すなわち、実行プローブ111aの実行では、第1〜第nプロセッサ101〜10nがクロックサイクルカウント値などのトレース用データを集めてRAM112内に確保されているトレースデータ蓄積部112a内に書き込んで蓄積保持することによって性能計測を行う。このときの実行プローブ111aの実行では、その性能計測のソフトウェアをターゲットプログラムとして、第1〜第nプロセッサ101〜10nが収集したトレース用データを仮想時刻に補正することにより、その性能計測を効率よく、また容易に行うことができる。   For example, when the multiprocessor 100 calls and executes the performance measurement software execution probe 111a stored in the program 111 by the first to nth processors 101 to 10n, the multiprocessor 100 makes the clock cycle count value common. A virtual time is derived by performing processing. That is, when the execution probe 111a is executed, the first to n-th processors 101 to 10n collect trace data such as clock cycle count values, write them in the trace data storage unit 112a secured in the RAM 112, and store and hold them. Performance measurement. In the execution of the execution probe 111a at this time, the performance measurement is efficiently performed by correcting the trace data collected by the first to n-th processors 101 to 10n to the virtual time using the performance measurement software as a target program. Can also be done easily.

詳細には、マルチプロセッサ100は、第1〜第nプロセッサ101〜10nがRAM112を利用しつつ実行プローブ111aを実行することにより、プロセッサID取得部21、クロックサイクルカウント値取得部22、クロック周波数変更部23、クロック周波数変更検知部24、及び、クロックサイクルカウント値補正部25として機能するように構成されている。また、このマルチプロセッサ100は、そのRAM112がクロック周波数変更履歴保持部26として機能するように構成されている。   Specifically, the multiprocessor 100 allows the processor ID acquisition unit 21, the clock cycle count value acquisition unit 22, and the clock frequency change when the first to n-th processors 101 to 10 n execute the execution probe 111 a while using the RAM 112. The unit 23, the clock frequency change detection unit 24, and the clock cycle count value correction unit 25 are configured to function. The multiprocessor 100 is configured such that the RAM 112 functions as the clock frequency change history holding unit 26.

プロセッサID取得部21は、所定の契機における指示・命令に基づいて、例えば、ターゲットプログラムの性能計測の実行時に、第1〜第nプロセッサ101〜10n毎のプロセッサID保持部11からプロセッサIDをそれぞれ取り出して取得する。すなわち、このプロセッサID取得部21がクロック周波数を変更したプロセッサのIDを取得する変更プロセッサ識別情報取得手段を構成する。   The processor ID acquisition unit 21 obtains the processor ID from the processor ID holding unit 11 for each of the first to n-th processors 101 to 10n, for example, when executing performance measurement of the target program based on an instruction / command at a predetermined opportunity. Take out and get. That is, the processor ID acquisition unit 21 constitutes a changed processor identification information acquisition unit that acquires the ID of the processor whose clock frequency has been changed.

クロックサイクルカウント値取得部22は、同様に、所定の契機における指示・命令に基づいて、例えば、第1〜第nプロセッサ101〜10nにおけるクロック周波数の変更が後述のクロック周波数変更検知部24により確認(検知)されたときに、その第1〜第nプロセッサ101〜10n毎のクロックサイクルカウント値保持部13が計数保持するクロックサイクルカウント値を取り出して取得する。すなわち、このクロックサイクルカウント値取得部22がクロック周波数(動作周波数)の変更を検知したときにクロックサイクルカウント値(変更時カウント値)を取得する変更時カンウント値取得手段を構成する。   Similarly, the clock cycle count value acquisition unit 22 confirms a clock frequency change in the first to n-th processors 101 to 10n by, for example, a clock frequency change detection unit 24 to be described later, based on an instruction / command at a predetermined timing. When (detected), the clock cycle count value held by the clock cycle count value holding unit 13 for each of the first to n-th processors 101 to 10n is extracted and acquired. In other words, a change count value acquisition unit that acquires a clock cycle count value (change count value) when the clock cycle count value acquisition unit 22 detects a change in clock frequency (operation frequency) is configured.

クロック周波数変更部23は、電源管理機構等からの指示などの所定の契機に応じて、第1〜第nプロセッサ101〜10n毎のクロック周波数設定部12内に設定されているクロック周波数を変更して更新させる。   The clock frequency changing unit 23 changes the clock frequency set in the clock frequency setting unit 12 for each of the first to n-th processors 101 to 10n according to a predetermined trigger such as an instruction from the power management mechanism or the like. To update.

クロック周波数変更検知部24は、第1〜第nプロセッサ101〜10n毎のクロック周波数設定部12内に設定されているクロック周波数を参照・取得してその設定更新(クロック周波数変更部23によるクロック周波数の書換)の有無を確認しクロック周波数の変更を検知する。すなわち、このクロック周波数変更検知部24が変更後のクロック周波数(動作周波数)を取得する動作周波数取得手段を構成するとともに、クロック周波数(動作周波数)の変更を検知する変更検知手段も構成する。   The clock frequency change detection unit 24 refers to and acquires the clock frequency set in the clock frequency setting unit 12 for each of the first to n-th processors 101 to 10n and updates the setting (clock frequency by the clock frequency changing unit 23). (Rewriting of) is detected and a change in the clock frequency is detected. That is, the clock frequency change detecting unit 24 constitutes an operating frequency obtaining unit that obtains the changed clock frequency (operating frequency), and also constitutes a change detecting unit that detects a change in the clock frequency (operating frequency).

クロック周波数変更履歴保持部26は、クロック周波数変更検知部24がクロック周波数の変更を検知したときに、取得するその変更後のクロック周波数と共に、クロックサイクルカウント値取得部22が取得するクロックサイクルカウント値を該当する第1〜第nプロセッサ101〜10nのプロセッサID毎に対応付けして変更履歴として記憶保持する。すなわち、このクロック周波数変更履歴保持部26がクロック周波数の変更を検知したときのクロック周波数とクロックサイクルカウント値(変更時カウント値)をその変更毎に履歴情報として保持する変更履歴保持手段を構成する。   The clock frequency change history holding unit 26 acquires the clock cycle count value acquired by the clock cycle count value acquisition unit 22 together with the changed clock frequency acquired when the clock frequency change detection unit 24 detects the change of the clock frequency. Is stored in association with each processor ID of the corresponding first to n-th processors 101 to 10n as a change history. In other words, a change history holding means for holding the clock frequency and the clock cycle count value (change time count value) when the clock frequency change history holding unit 26 detects a change in the clock frequency as history information for each change is configured. .

クロックサイクルカウント値補正部25は、クロック周波数変更履歴保持部26が蓄積保持する変更履歴情報(変更後のクロック周波数と変更時のクロックサイクルカウント値)から一定速度で増進する共通の仮想時刻を算出して、例えば、性能計測の実行処理に利用可能にRAM112内に一時的に記録保持する。すなわち、クロックサイクルカウント値補正部25がクロック周波数や変更時カウント値の履歴情報に基づいて仮想時刻を導出する時刻導出手段を構成する。   The clock cycle count value correction unit 25 calculates a common virtual time for advancing at a constant speed from the change history information (the changed clock frequency and the changed clock cycle count value) stored and held by the clock frequency change history holding unit 26. For example, the RAM 112 is temporarily recorded and held so that it can be used for performance measurement execution processing. That is, the clock cycle count value correcting unit 25 constitutes time deriving means for deriving the virtual time based on the history information of the clock frequency and the change count value.

これにより、マルチプロセッサ100は、例えば、性能計測を実行する第1〜第nプロセッサ101〜10n毎に、変更後のクロック周波数と変更時のクロックサイクルカウント値をそのプロセッサID毎に対応付けして変更履歴情報として蓄積保持することができる。そして、第1〜第nプロセッサ101〜10n毎のクロックサイクルカウント値は、その変更履歴情報に基づいて、例えば、現実の時間経過と同一の一定速度で増進する仮想時刻に補正して共通化した後に性能計測に利用することができる。   Thereby, for example, the multiprocessor 100 associates the changed clock frequency and the changed clock cycle count value for each processor ID for each of the first to n-th processors 101 to 10n that perform performance measurement. It can be stored and retained as change history information. Then, the clock cycle count value for each of the first to n-th processors 101 to 10n is corrected and made common to, for example, a virtual time that is increased at the same constant speed as the actual time lapse based on the change history information. It can be used later for performance measurement.

次に、ターゲットプログラムの実行時の性能計測を図3、図4、図6、図7に示すフローチャートと図5に示す変更履歴情報の概念図を用いて説明する。   Next, performance measurement during execution of the target program will be described with reference to the flowcharts shown in FIGS. 3, 4, 6, and 7 and the conceptual diagram of the change history information shown in FIG.

例えば、第1プロセッサ101が他の第2〜第nプロセッサ102〜10nを協働させて実行処理するターゲットプログラムの性能計測を行う場合には、図3のフローチャートに従う処理が実行される。まずは、そのターゲットプログラムの実行途中に繰り返し、実行プローブ111aにプログラム制御が移行する(ステップS11)。この実行プローブ111aによるプログラム制御では、クロック周波数の補正による仮想時刻の導出処理以外の性能計測に必要なトレースデータの収集・記録などを実行する(ステップS12)。次いで、第1〜第nプロセッサ101〜10n毎に、プロセッサID取得部21がプロセッサID保持部11からプロセッサIDを取得するとともに(ステップS13)、クロックサイクルカウント値取得部22がクロックサイクルカウント値保持部13からクロックサイクルカウント値を取得する(ステップS14)。この後に、実行プローブ111aは、その取得したクロックサイクルカウント値をプロセッサIDに対応付けしてトレースデータとしてトレースデータ蓄積部112a内に記憶保持させた後に(ステップS15)、性能計測対象のターゲットプログラムにプログラム制御を移行してこの実行プログラムを終了する(ステップS16)。ここで、以下では、実行プローブ111aのプログラム制御を単に実行プローブ111aと簡略化して説明する。   For example, when the first processor 101 measures the performance of a target program that is executed by the other second to n-th processors 102 to 10n in cooperation, processing according to the flowchart of FIG. 3 is executed. First, it repeats in the middle of the execution of the target program, and program control shifts to the execution probe 111a (step S11). In the program control by the execution probe 111a, collection and recording of trace data necessary for performance measurement other than the virtual time deriving process by correcting the clock frequency is executed (step S12). Next, for each of the first to n-th processors 101 to 10n, the processor ID acquisition unit 21 acquires the processor ID from the processor ID holding unit 11 (step S13), and the clock cycle count value acquisition unit 22 holds the clock cycle count value. A clock cycle count value is acquired from the unit 13 (step S14). Thereafter, the execution probe 111a associates the acquired clock cycle count value with the processor ID and stores it in the trace data storage unit 112a as trace data (step S15), and then stores it in the target program for performance measurement. The program control is shifted to end this execution program (step S16). Here, in the following, the program control of the execution probe 111a will be simply described as the execution probe 111a.

このとき、実行プローブ111aは、第1〜第nプロセッサ101〜10nが並行処理するその実行プログラム中には、図4のフローチャートに従う処理を実行する。まずは、第1〜第nプロセッサ101〜10n毎に、クロック周波数変更検知部24がクロック周波数設定部12に設定されているクロック周波数を参照することにより、先に取得したクロック周波数と比較してそのクロック周波数が変更されているか否かを、そのターゲットプログラムの実行途中に繰り返し確認する(ステップS21)。そのクロック周波数の変更を検知できない場合には、そのままこの処理を終了して、実行プログラムによる性能計測対象のターゲットプログラムに戻る。一方、そのクロック周波数の変更を検知すると、プロセッサID取得部21が該当プロセッサのプロセッサID保持部11からプロセッサIDを取り出して取得する(ステップS22)。次いで、クロックサイクルカウント値取得部22がその該当プロセッサのクロックサイクルカウント値保持部13に保持されているクロックサイクルカウント値を取り出して取得する(ステップS23)。同時に、クロック周波数変更検知部24がその該当プロセッサのクロック周波数設定部12に設定されている変更後のクロック周波数を改めて取得する(ステップS24)。この後に、クロック周波数変更履歴保持部26が取得したクロック周波数とクロックサイクルカウント値をプロセッサIDに対応付けして変更履歴として先の変更履歴情報の末尾に追記して記憶保持した後に(ステップS29)、この処理を終了して、実行プログラムによる性能計測対象のターゲットプログラムに戻る。   At this time, the execution probe 111a performs the process according to the flowchart of FIG. 4 in the execution program which the 1st-nth processors 101-10n process in parallel. First, for each of the first to n-th processors 101 to 10n, the clock frequency change detection unit 24 refers to the clock frequency set in the clock frequency setting unit 12 and compares it with the previously acquired clock frequency. Whether or not the clock frequency has been changed is repeatedly confirmed during the execution of the target program (step S21). If the change in the clock frequency cannot be detected, this process is terminated as it is, and the process returns to the target program for performance measurement by the execution program. On the other hand, when the change of the clock frequency is detected, the processor ID acquisition unit 21 extracts and acquires the processor ID from the processor ID holding unit 11 of the corresponding processor (step S22). Next, the clock cycle count value acquisition unit 22 extracts and acquires the clock cycle count value held in the clock cycle count value holding unit 13 of the corresponding processor (step S23). At the same time, the clock frequency change detection unit 24 acquires again the changed clock frequency set in the clock frequency setting unit 12 of the processor (step S24). After this, after the clock frequency and clock cycle count value acquired by the clock frequency change history holding unit 26 are associated with the processor ID and added to the end of the previous change history information as a change history and stored (step S29). This processing is terminated, and the process returns to the target program for performance measurement by the execution program.

例えば、図2に示す第1、第2プロセッサ101、102のクロック周波数の変更履歴としては、図5に示すように、そのプロセッサID毎にクロックサイクルカウント値(CC)とクロック周波数(frequency)とがそれぞれ対応付けされてクロック周波数変更履歴保持部26内に記憶保持される。   For example, the clock frequency change history of the first and second processors 101 and 102 shown in FIG. 2 includes a clock cycle count value (CC) and a clock frequency (frequency) for each processor ID as shown in FIG. Are stored in the clock frequency change history holding unit 26 in association with each other.

ここで、クロック周波数の変更を記録する処理としては、上述のように、実行プローブ111a内に構成する場合を一例として説明しているが、これに限らず、次のように構成することもできる。まず、実行プローブ及びターゲットプログラムとは別に、クロック周波数変更履歴を書き込むプログラムを、クロック周波数変更検知部24の一部として用意しておく。次に、電源管理イベント等に起因する割り込みを契機として、クロック周波数変更検知部24は、割り込まれたプロセッサのクロック周波数が変更されているか否か検査する。そのクロック周波数が変更されている場合には、上述の手順でクロック周波数変更履歴保持部26へ該当プロセッサの変更履歴を書き込む。その書き込みが終わった後に、割り込み処理ルーチンを終了させて、通常のプログラムの実行に処理を戻す。このような構成を採用することにより、ターゲットプログラム及び実行プローブとは独立に、クロック周波数変更履歴の蓄積処理を実装することができる。   Here, as a process for recording the change of the clock frequency, the case where it is configured in the execution probe 111a as described above has been described as an example. However, the present invention is not limited to this, and the following configuration is also possible. . First, apart from the execution probe and the target program, a program for writing a clock frequency change history is prepared as a part of the clock frequency change detection unit 24. Next, triggered by an interrupt caused by a power management event or the like, the clock frequency change detection unit 24 checks whether the clock frequency of the interrupted processor has been changed. If the clock frequency has been changed, the change history of the processor is written to the clock frequency change history holding unit 26 according to the procedure described above. After the writing is completed, the interrupt processing routine is ended, and the processing is returned to the normal program execution. By adopting such a configuration, the clock frequency change history accumulation process can be implemented independently of the target program and the execution probe.

そして、ターゲットプログラムを実行処理するときの性能計測の分析を行う場合には、第1〜第nプロセッサ101〜10nが単独又は協働して、その性能計測(分析)を効率よく、また、容易に行うために、実行プローブ111aがトレースデータ蓄積部112a内にトレースデータとして記憶保持するクロックサイクルカウント値を補正して第1〜第nプロセッサ101〜10n間で共通の経過時刻となる仮想時刻を算出する導出処理を開始する。   When analyzing the performance measurement when executing the target program, the first to n-th processors 101 to 10n are singly or cooperate to efficiently and easily perform the performance measurement (analysis). Therefore, the execution probe 111a corrects the clock cycle count value stored and held as the trace data in the trace data storage unit 112a to obtain a virtual time that is a common elapsed time among the first to n-th processors 101 to 10n. The derivation process to calculate is started.

例えば、実行プローブ111aは、図6及び図7のフローチャートに従う処理を実行する。まずは、RAM112内に準備する変数mをリセット(m=0)した後に(ステップS31)、その変数mをインクリメント(m=m+1)して(ステップS32)、トレースデータ蓄積部112a内にそのm番目のトレースデータが記憶保持されているか否かを確認する(ステップS33)。   For example, the execution probe 111a executes processing according to the flowcharts of FIGS. First, after resetting the variable m to be prepared in the RAM 112 (m = 0) (step S31), the variable m is incremented (m = m + 1) (step S32), and the mth is stored in the trace data storage unit 112a. It is confirmed whether or not the trace data is stored and held (step S33).

この当初のステップS33では、性能計測分析の開始時には、少なくとも1つ以上のトレースデータが存在する。このことから、続けて、そのトレースデータ蓄積部112a内の最初のトレースデータのクロックサイクルカウント値とこれに対応付けされているプロセッサIDとを読み出してRAM112内に記憶保持する(ステップS34)。   In the initial step S33, at least one or more pieces of trace data exist at the start of the performance measurement analysis. Therefore, the clock cycle count value of the first trace data in the trace data storage unit 112a and the processor ID associated therewith are read out and stored in the RAM 112 (step S34).

次いで、そのRAM112内に記憶保持されたトレースデータのプロセッサIDを確認・特定して(ステップS35)、クロック周波数変更履歴保持部26内に履歴情報としてそのプロセッサIDに対応付けされている未処理のうちで最も時刻の古いクロック周波数とクロックサイクルカウント値の最先変更履歴エントリを読み出してRAM112内に記憶保持する(ステップS36)。   Next, the processor ID of the trace data stored and held in the RAM 112 is confirmed and specified (step S35), and the unprocessed information associated with the processor ID as history information in the clock frequency change history holding unit 26 is confirmed. The earliest change history entry of the clock frequency and clock cycle count value with the oldest time is read out and stored in the RAM 112 (step S36).

この後には、そのRAM112内に変更履歴エントリが記憶保持されたか否かを確認して(ステップS37)、クロック周波数が変更されていないために変更履歴エントリを確認できない場合には、後述するように、そのままこの性能計測分析における終了処理を実行する。   Thereafter, it is confirmed whether or not the change history entry is stored and held in the RAM 112 (step S37). If the change history entry cannot be confirmed because the clock frequency has not been changed, as will be described later. The end process in this performance measurement analysis is executed as it is.

一方、このステップS37において、クロック周波数が少なくとも1回以上変更されていて変更履歴エントリを確認できた場合には、RAM112内に保持する最先の変更履歴エントリのクロックサイクルカウント値(以下では、変更履歴カウント値ともいう)と、トレースデータのクロックサイクルカウント値(以下では、トレースデータカウント値ともいう)とを比較する(ステップS41)。すなわち、ここでは、最も時刻の古い最初の変更履歴カウント値とトレースデータカウント値とを比較する(ステップS41)。   On the other hand, if the clock frequency has been changed at least once in this step S37 and the change history entry has been confirmed, the clock cycle count value of the earliest change history entry held in the RAM 112 (hereinafter referred to as change) The history count value is also compared with the clock cycle count value of the trace data (hereinafter also referred to as the trace data count value) (step S41). That is, here, the first change history count value with the oldest time is compared with the trace data count value (step S41).

このステップS41において、最先の変更履歴カウント値がトレースデータカウント値よりも大きい場合には、そのトレースデータカウント値の取得時にはクロック周波数が変更されていないことから、後述するように、そのまま性能計測分析におけるこのトレースデータカウント値についての終了処理を実行する。   In this step S41, when the earliest change history count value is larger than the trace data count value, the clock frequency is not changed when the trace data count value is obtained, so that the performance measurement is performed as described later. A termination process for the trace data count value in the analysis is executed.

一方、このステップS41において、最先の変更履歴カウント値がトレースデータカウント値よりも小さい場合には、そのトレースデータカウント値の取得前にクロック周波数が変更されていることから、続けて、その最先の変更履歴カウント値から変更前の変更履歴カウント値を減算する(ステップS42)。すなわち、ここでは、最先の変更履歴カウント値から存在しない変更前の変更履歴カウント値なしを減算して増加分を算出する(ステップS42)。この後には、その増加分の増加カウント値を変更前の、言い換えると、変更されていないクロック周波数、すなわち、予めクロック周波数設定部12に設定されているデフォルトのクロック周波数を取得して除算することにより第1経過時刻を算出することができる(ステップS43)。そして、その第1経過時刻をRAM112内の積算経過時刻に加算(積算)して記憶保持する(ステップS44)。   On the other hand, if the earliest change history count value is smaller than the trace data count value in this step S41, the clock frequency has been changed before the trace data count value is acquired, so The change history count value before change is subtracted from the previous change history count value (step S42). That is, here, the increment is calculated by subtracting the change history count value before change that does not exist from the earliest change history count value (step S42). After this, the increment count value of the increment is obtained by dividing the clock frequency before the change, that is, the clock frequency that has not been changed, that is, the default clock frequency set in the clock frequency setting unit 12 in advance. Thus, the first elapsed time can be calculated (step S43). Then, the first elapsed time is added (integrated) to the accumulated elapsed time in the RAM 112 and stored (step S44).

次いで、先のステップS36と同様に、クロック周波数変更履歴保持部26内に履歴情報として同一のプロセッサIDに対応付けされている次のクロック周波数とクロックサイクルカウント値(後続変更履歴エントリ)を読み出してRAM112内に記憶保持する(ステップS45)。   Next, as in the previous step S 36, the next clock frequency and clock cycle count value (subsequent change history entry) associated with the same processor ID is read as history information in the clock frequency change history holding unit 26. It is stored and held in the RAM 112 (step S45).

この後には、同様に、そのRAM112内に後続の変更履歴エントリが記憶保持されたか否かを確認して(ステップS46)、最終のクロック周波数の変更までの補正処理が完了していて後続の変更履歴エントリを確認できない場合には、後述するように、そのまま性能計測分析におけるこのトレースデータカウント値についての終了処理を実行する。   After this, similarly, it is confirmed whether or not the subsequent change history entry is stored and held in the RAM 112 (step S46), and the correction processing up to the final clock frequency change is completed and the subsequent change is completed. If the history entry cannot be confirmed, the end processing for the trace data count value in the performance measurement analysis is executed as it is, as will be described later.

一方、このステップS46において、クロック周波数が続けて変更されていて後続の変更履歴エントリを確認できた場合には、ステップS41に戻って、RAM112内に保持する後続の変更履歴カウント値とトレースデータカウント値とを比較する。   On the other hand, when the clock frequency is continuously changed and the subsequent change history entry can be confirmed in step S46, the process returns to step S41 and the subsequent change history count value and trace data count held in the RAM 112 are returned. Compare the value.

この2回目のステップS41においても、後続の変更履歴カウント値がトレースデータカウント値よりも大きい場合には、そのトレースデータカウント値の取得時にはそのクロック周波数の変更は行われていないことから、後述するように、そのままこの性能計測分析におけるこのトレースデータカウント値についての終了処理を実行する。   Also in this second step S41, if the subsequent change history count value is larger than the trace data count value, the clock frequency is not changed when the trace data count value is acquired, and will be described later. As described above, the end processing for the trace data count value in the performance measurement analysis is executed as it is.

一方、この2回目のステップS41においても、後続の変更履歴カウント値がトレースデータカウント値よりも小さい場合には、そのトレースデータカウント値の取得前にクロック周波数が再度変更されていることから、続けて同様の処理を実行する。すなわち、後続変更履歴カウント値から先の最先変更履歴カウント値を減算して増加分を算出し(ステップS42)、その増加カウント値を変更前のクロック周波数で除算することにより第2経過時刻を算出し(ステップS43)、その第2経過時刻をRAM112内の積算経過時刻(第1経過時刻)に加算(積算)して記憶保持する(ステップS44)。   On the other hand, also in this second step S41, if the subsequent change history count value is smaller than the trace data count value, the clock frequency has been changed again before the trace data count value is acquired, so The same process is executed. That is, an increment is calculated by subtracting the previous earliest change history count value from the subsequent change history count value (step S42), and the second elapsed time is calculated by dividing the increment count value by the clock frequency before the change. The second elapsed time is calculated (step S43), added (integrated) to the accumulated elapsed time (first elapsed time) in the RAM 112, and stored (step S44).

この後には、クロック周波数変更履歴保持部26内から読み出していない後続変更履歴エントリが存在して、その後続変更履歴カウント値がトレースデータカウント値よりも小さく、そのトレースデータカウント値の取得前にクロック周波数が再度変更されている限り、これらステップS41〜S46を繰り返す。これにより、クロック周波数の変更時までの、言い換えると、最終の後続変更履歴カウント値までの増加分をその変更前のクロック周波数で除算した第k−1経過時刻を加算して積算経過時刻を算出(導出)することができ、その積算経過時刻をRAM112内に記憶保持する。   After this, there is a subsequent change history entry that has not been read from the clock frequency change history holding unit 26, the subsequent change history count value is smaller than the trace data count value, and the clock is acquired before the trace data count value is acquired. As long as the frequency is changed again, steps S41 to S46 are repeated. Thus, the accumulated elapsed time is calculated by adding the k-1 elapsed time obtained by dividing the increment up to the last subsequent change history count value by the clock frequency before the change until the clock frequency is changed. The accumulated elapsed time is stored and held in the RAM 112.

一方、ステップS41において、後続の変更履歴カウント値がトレースデータカウント値よりも大きく、そのトレースデータカウント値の取得後にクロック周波数が変更されていることを確認した場合には、このトレースデータカウント値についての終了処理に移行する。   On the other hand, when it is confirmed in step S41 that the subsequent change history count value is larger than the trace data count value and the clock frequency is changed after the trace data count value is obtained, The process ends.

この終了処理では、そのトレースデータカウント値から最終の後続変更履歴カウント値を減算して増加分を算出し(ステップS51)、その増加カウント値を最終のクロック周波数で除算して最終の第k経過時刻を算出した後に(ステップS52)、この最終の第k経過時刻をRAM112内の積算経過時刻に加算(積算)して記憶保持する(ステップS53)。次いで、そのRAM112内に記憶保持する最初のトレースデータカウント値に応じた積算経過時刻を他の第2〜第nプロセッサ102〜10nと共通の仮想時刻として、そのトレースデータカウント値と共にプロセッサIDに対応付けしてターゲットプログラムの性能計測(分析)に受け渡す(ステップS43)。この後に、このトレースデータカウント値についての導出処理を終了して、ステップS32に戻る。   In this end processing, the final subsequent change history count value is subtracted from the trace data count value to calculate an increment (step S51), and the increment count value is divided by the final clock frequency to obtain the final k-th elapsed time. After calculating the time (step S52), the final k-th elapsed time is added (integrated) to the accumulated elapsed time in the RAM 112 and stored (step S53). Next, the accumulated elapsed time corresponding to the first trace data count value stored and held in the RAM 112 is used as a virtual time common to the other second to n-th processors 102 to 10n, and the processor ID is associated with the trace data count value. Then, it is transferred to the performance measurement (analysis) of the target program (step S43). Thereafter, the derivation process for the trace data count value is terminated, and the process returns to step S32.

この後には、変数mをインクリメント(m=m+1)することにより、トレースデータ蓄積部112a内に記憶保持するm個のトレースデータの全てについて、トレースデータカウント値に応じた積算経過時刻を算出して仮想時刻とする補正処理(ステップS32〜S54)を繰り返し行うことができ、その補正処理する対象のトレースデータのクロックサイクルカウント値がトレースデータ蓄積部112a内に存在せず、この補正処理の完了が確認できたときに(ステップS33)一連の補正処理を終了する。   Thereafter, by incrementing the variable m (m = m + 1), the total elapsed time corresponding to the trace data count value is calculated for all m pieces of trace data stored and held in the trace data storage unit 112a. The correction process (steps S32 to S54) for the virtual time can be repeated, and the clock cycle count value of the trace data to be corrected does not exist in the trace data storage unit 112a, and the correction process is completed. When it has been confirmed (step S33), a series of correction processing ends.

ところで、ステップS46において、RAM112内に後続変更履歴エントリを確認することができずに、クロック周波数の変更自体が終了していることを確認した場合には、この性能計測分析におけるそのトレースデータカウント値についての終了処理に移行する(ステップS51〜S54)。この終了処理では、同様に、そのトレースデータカウント値から最終の後続変更履歴カウント値までの増加分の増加カウント値を最終のクロック周波数で除算して算出した最終の第k経過時刻を、RAM112内の積算経過時刻に加算(積算)して仮想時刻とし、トレースデータカウント値と共にプロセッサIDに対応付けしてターゲットプログラムの性能計測(分析)に受け渡して、ステップS32に戻る。   By the way, when it is confirmed in step S46 that the subsequent change history entry cannot be confirmed in the RAM 112 and the clock frequency change itself has been completed, the trace data count value in the performance measurement analysis is confirmed. The process proceeds to the end process (steps S51 to S54). In this termination process, similarly, the final k-th elapsed time calculated by dividing the increment count value from the trace data count value to the final subsequent change history count value by the final clock frequency is stored in the RAM 112. Is added (integrated) to the accumulated elapsed time to obtain a virtual time, which is transferred to the performance measurement (analysis) of the target program in association with the processor ID together with the trace data count value, and returns to step S32.

また、ステップS37において、RAM112内に最先の変更履歴エントリを確認できずに、クロック周波数の変更自体が行われていないプロセッサの場合には、予めクロック周波数設定部12に設定されているクロック周波数を取得してRAM112内に記憶保持した後に(ステップS38)、この性能計測分析における終了処理に移行する(ステップS51〜S54)。この終了処理では、同様に、そのトレースデータカウント値までの増加分の増加カウント値(トレースデータカウント値自体)をデフォルトのクロック周波数で除算して算出した仮想時刻を、そのトレースデータカウント値と共にプロセッサIDに対応付けしてターゲットプログラムの性能計測(分析)に受け渡して、ステップS32に戻る。   In the case of a processor in which the first change history entry cannot be confirmed in the RAM 112 and the clock frequency itself has not been changed in step S37, the clock frequency set in the clock frequency setting unit 12 in advance. Is acquired and stored in the RAM 112 (step S38), and the process proceeds to the end process in the performance measurement analysis (steps S51 to S54). Similarly, in this termination processing, the virtual time calculated by dividing the increment count value (trace data count value itself) up to the trace data count value by the default clock frequency is calculated together with the trace data count value. The data is transferred to the performance measurement (analysis) of the target program in association with the ID, and the process returns to step S32.

このように、この実施形態によれば、変更後のクロック周波数と共にその変更時のクロックサイクルカウント値を履歴情報として取得・保持して、ターゲットプログラムの性能計測の分析等を行う際に使用するトレースデータカウント値(現実のタイミング)に応じた仮想時刻を算出・積算(導出)することができる。したがって、トレースデータカウント値は、第1〜第nプロセッサ101〜10nの動作するクロック周波数から離れて、現実の時間経過と同一の一定速度で増進する仮想時刻に補正して共通化することができる。この結果、例えば、ターゲットプログラムの性能計測などを第1〜第nプロセッサ101〜10nのクロック周波数の違いにより複雑化させることなく、簡易かつ容易に、また、効率よく処理することができる。   As described above, according to this embodiment, the clock frequency after the change and the clock cycle count value at the time of the change are acquired and retained as history information, and the trace used when performing the performance measurement analysis of the target program, etc. Virtual time according to the data count value (actual timing) can be calculated and integrated (derived). Therefore, the trace data count value can be corrected and shared with a virtual time that is separated from the clock frequency at which the first to n-th processors 101 to 10n operate and increases at a constant speed that is the same as the actual elapsed time. . As a result, for example, the performance measurement of the target program can be processed simply, easily and efficiently without complicating the clock frequency of the first to n-th processors 101 to 10n.

このトレースデータカウント値の補正処理は、ターゲットプログラム111の性能計測の実行処理中には、その第1〜第nプロセッサ101〜10nのプロセッサIDと共に変更時のクロック周波数とクロックサイクルカウント値のみを取得して記憶保持する処理に留めているので、仮想時刻の算出に必要な変更時のクロック周波数とクロックサイクルカウント値の走査や演算処理が負担になってしまうことはなく、実行プローブ111aを快適に実行させつつトレースデータなどをデータ収集することができる。   This correction processing of the trace data count value acquires only the clock frequency and clock cycle count value at the time of change together with the processor IDs of the first to n-th processors 101 to 10n during the performance measurement execution process of the target program 111. Therefore, the scan and calculation processing of the clock frequency and the clock cycle count value at the time of change necessary for calculating the virtual time are not burdened, and the execution probe 111a can be comfortably operated. Trace data etc. can be collected while being executed.

次に、図8〜図12は、上述実施形態に付加させることのできる、マルチプロセッサのカウント値補正プログラムをコンピュータに読み込ませて実行することによりマルチプロセッサのカウント値補正方法を実施するマルチプロセッサのカウント値補正装置の一例を示す図である。ここで、このマルチプロセッサの一例は、上述の実施形態と略同様に構成されていることから、図面を流用して、同様な構成には同一の符号を付して特徴部分を説明する。図8はプロセッサ毎のクロックサイクルカウント値のカウント開始時期を同期させるカウント値補正装置の概略全体構成を示す概念構成図、図9はそのプロセッサ間でのやり取りとその処理結果を説明する概念図、図10及び図11はそのプロセッサ毎のクロックサイクルカウント値のカウント開始時期の同期処理を説明するフローチャート、図12はそのプロセッサが実行するプログラム中におけるクロックサイクルカウント値の修正を説明するプローチャートである。   Next, FIGS. 8 to 12 show a multiprocessor that implements the multiprocessor count value correction method by causing a computer to read and execute a multiprocessor count value correction program that can be added to the above-described embodiment. It is a figure which shows an example of a count value correction apparatus. Here, since an example of this multiprocessor is configured in substantially the same manner as in the above-described embodiment, the same reference numerals are given to the same configurations and the characteristic portions will be described using the drawings. FIG. 8 is a conceptual configuration diagram showing a schematic overall configuration of a count value correction device that synchronizes the count start timing of the clock cycle count value for each processor, and FIG. 9 is a conceptual diagram illustrating the exchange between the processors and the processing results thereof. 10 and 11 are flowcharts for explaining the synchronization processing of the count start timing of the clock cycle count value for each processor. FIG. 12 is a flowchart for explaining the correction of the clock cycle count value in the program executed by the processor. .

図8において、マルチプロセッサ200は、上述実施形態でのマルチプロセッサ100と同様に、第1〜第nプロセッサ101〜10nが、ROM111やRAM112と共にバス113に共通接続されてコンピュータ内に搭載されている。この第1〜第nプロセッサ101〜10nは、それぞれのプロセッサID保持部11内のプロセッサIDに基づいてマルチプロセッサとして機能する。また、第1〜第nプロセッサ101〜10nは、クロック周波数設定部12内に予め設定されているクロック周波数に応じた速度のカウント値をクロックサイクルカウント値保持部13で計数・保持することにより同期を取る。すなわち、このマルチプロセッサ200では、第1〜第nプロセッサ101〜10nのそれぞれが上述実施形態のようにクロック周波数を変更することなく、固定のクロック周波数でクロックサイクルカウントを計数している。   In FIG. 8, a multiprocessor 200 includes first to n-th processors 101 to 10n that are commonly connected to a bus 113 together with a ROM 111 and a RAM 112 and are mounted in a computer, like the multiprocessor 100 in the above-described embodiment. . The first to n-th processors 101 to 10n function as multiprocessors based on the processor IDs in the respective processor ID holding units 11. The first to n-th processors 101 to 10n are synchronized by counting and holding a count value of a speed corresponding to a clock frequency preset in the clock frequency setting unit 12 by a clock cycle count value holding unit 13. I take the. That is, in the multiprocessor 200, each of the first to n-th processors 101 to 10n counts the clock cycle count at a fixed clock frequency without changing the clock frequency as in the above-described embodiment.

このマルチプロセッサ200は、上述実施形態と同様に、プロセッサID取得部21とクロックサイクルカウント値取得部22を備えており、性能計測を実行する際のトレースデータをRAM12内のトレースデータ蓄積部112a内に蓄積保持する。   The multiprocessor 200 includes a processor ID acquisition unit 21 and a clock cycle count value acquisition unit 22 as in the above-described embodiment, and trace data when performing performance measurement is stored in the trace data storage unit 112a in the RAM 12. Accumulate and hold on.

また、マルチプロセッサ200は、第1〜第nプロセッサ101〜10nがRAM112を利用しつつ実行プローブ111aを実行することにより機能する、クロック差分計測部31を備えるとともに、RAM112が順序カウント値保持部32とクロック差分保持部33を構成している。このマルチプロセッサ200は、これら各部を備えることにより、例えば、性能計測などを行う際に利用するクロックサイクルカウント値のカウント開始時期が同一タイミングになるようにリセットする同期処理を行って、第1〜第nプロセッサ101〜10n毎のトレース用データをより高精度に処理可能に補正する。   In addition, the multiprocessor 200 includes a clock difference measurement unit 31 that functions when the first to nth processors 101 to 10n execute the execution probe 111a using the RAM 112, and the RAM 112 includes the order count value holding unit 32. The clock difference holding unit 33 is configured. The multiprocessor 200 includes these units, and performs, for example, synchronization processing for resetting the clock cycle count value used when performing performance measurement or the like so that the count start timing of the clock cycle count value is the same timing. The trace data for each of the nth processors 101 to 10n is corrected so as to be processed with higher accuracy.

ここで、第1〜第nプロセッサ101〜10nは、高精細には、それぞれ順次に起動して駆動を開始することから内蔵するクロックサイクルカウント値保持部13のカウント開始もそれぞれ遅れることになる。例えば、図9に示すように、第1プロセッサ101が駆動を開始した後に第2プロセッサ102が駆動を開始する場合には、クロックサイクルカウント値保持部13内のクロックサイクルカウント値のカウント開始タイミングに遅延分dだけのずれが生じている。   Here, since the first to n-th processors 101 to 10n are sequentially activated and started to drive in high definition, the count start of the built-in clock cycle count value holding unit 13 is also delayed. For example, as shown in FIG. 9, when the second processor 102 starts driving after the first processor 101 starts driving, the clock cycle count value in the clock cycle count value holding unit 13 starts counting. There is a shift of the delay amount d.

このことから、第1〜第nプロセッサ101〜10nは、それぞれ他のプロセッサとクロックサイクルカウント値のカウント開始タイミングを一致させてそのクロックサイクルカウント値を信頼性高く、また容易に分析などに利用することができるようにする。   Therefore, the first to n-th processors 101 to 10n match the count start timing of the clock cycle count value with the other processors, respectively, and use the clock cycle count value with high reliability and easily for analysis. To be able to.

具体的には、第1〜第nプロセッサ101〜10nは、実行プローブ111aの制御の下、何れか一つを基準プロセッサにするとともに他の一つを協働相手の対応プロセッサとして、その間で所定の信号のやり取りすることにより、第1〜第nプロセッサ101〜10n間の起動タイミングによるクロックサイクルカウント値のずれをリセットする。例えば、実行プローブ111aは、図9に示すように、基準プロセッサ101と応答プロセッサ102の間で所定の信号のやり取りをして、それぞれでのクロックサイクルカウント値を取得することにより、その間の起動タイミングによるクロックサイクルカウント値のずれをリセットする同期処理を次の手順により実行する。まずは、基準プロセッサ101が実行する実行プローブ111aの制御の下、プロセッサID取得部21がプロセッサID保持部11内のプロセッサIDを取得して特定する。また、クロックサイクルカウント値取得部22が、順序カウント値として、基準プロセッサ101の第1クロックサイクルカウント値A、応答プロセッサ102の第2クロックサイクルカウント値B、基準プロセッサ101の第3クロックサイクルカウント値Cを順次に取得して、順序カウント値保持部32内に記憶保持する。この後には、反対に、その応答プロセッサ102が実行する実行プローブ111aの制御の下、同様の処理により、その応答プロセッサ102に基準プロセッサとして振舞って貰うのと並行して、基準プロセッサ101にも応答プロセッサとして応答させることによって、逆転順序カウント値として、順次に取得した第1〜第3クロックサイクルカウント値a、b、cを順序カウント値保持部32内に記憶保持する。すなわち、実行プローブ111aは、基準プロセッサ101と対応プロセッサ102との間でやり取りさせて順序カウント値を取得する順序カウント値取得手段を構成している。   Specifically, the first to n-th processors 101 to 10n are controlled by the execution probe 111a so that one of them is a reference processor and the other is a corresponding processor of a cooperating partner. By exchanging these signals, the shift of the clock cycle count value due to the start timing between the first to n-th processors 101 to 10n is reset. For example, as shown in FIG. 9, the execution probe 111a exchanges predetermined signals between the reference processor 101 and the response processor 102, and acquires the clock cycle count value at each, thereby starting timing between them. The synchronization process for resetting the deviation of the clock cycle count value due to is executed according to the following procedure. First, under the control of the execution probe 111a executed by the reference processor 101, the processor ID acquisition unit 21 acquires and specifies the processor ID in the processor ID holding unit 11. Also, the clock cycle count value acquisition unit 22 uses the first clock cycle count value A of the reference processor 101, the second clock cycle count value B of the response processor 102, and the third clock cycle count value of the reference processor 101 as the order count value. C is sequentially acquired and stored in the order count value holding unit 32. After this, on the contrary, under the control of the execution probe 111a executed by the response processor 102, the response processor 102 responds to the reference processor 101 in parallel with the response processor 102 acting as the reference processor. By responding as a processor, the first to third clock cycle count values a, b, and c that are sequentially acquired are stored and held in the order count value holding unit 32 as the reverse order count value. That is, the execution probe 111a constitutes an order count value acquisition unit that exchanges between the reference processor 101 and the corresponding processor 102 to acquire an order count value.

ところで、この基準プロセッサ101と応答プロセッサ102では、クロックサイクルカウント値保持部13のカウント開始タイミングにずれがないと仮定すると、基準プロセッサ101が基準プロセッサとして機能する場合の所定信号のやり取りにおける往路と復路の伝送遅延Sを次式により算出することができ、
S=(C+A)/2−B
逆に、基準プロセッサ101が応答プロセッサとして機能する場合の所定信号のやり取りにおける往路と復路の伝送遅延sは次式により算出することができる。
s=(c+a)/2−b
By the way, assuming that there is no deviation in the count start timing of the clock cycle count value holding unit 13 between the reference processor 101 and the response processor 102, the forward path and the return path in the exchange of predetermined signals when the reference processor 101 functions as the reference processor. Can be calculated by the following equation:
S = (C + A) / 2−B
On the contrary, the transmission delay s between the forward path and the return path in the exchange of a predetermined signal when the reference processor 101 functions as a response processor can be calculated by the following equation.
s = (c + a) / 2−b

この基準プロセッサ101と応答プロセッサ102間の伝送遅延S、sは、往路と復路毎での伝送速度が同様であることから相殺することができる。しかるに、実際には、クロックサイクルカウント値保持部13のカウント開始タイミングにずれがある。このことから、その相殺の後には、その基準プロセッサ101と応答プロセッサ102におけるクロックサイクルカウント値保持部13のカウント開始タイミングのずれに応じた遅延分のカウント値dを差分として算出することができ、そのカウント値dは次式で導出することができる。
d=S−s=(C−c)/4+(A−a)/4−(B−b)/2
The transmission delays S and s between the reference processor 101 and the response processor 102 can be offset because the transmission speeds in the forward path and the return path are the same. However, there is actually a difference in the count start timing of the clock cycle count value holding unit 13. From this, after the cancellation, the delay count value d corresponding to the difference in the count start timing of the clock cycle count value holding unit 13 in the reference processor 101 and the response processor 102 can be calculated as a difference, The count value d can be derived from the following equation.
d = S−s = (C−c) / 4 + (A−a) / 4− (B−b) / 2

そして、第1〜第nプロセッサ101〜10nは、基準プロセッサと対応プロセッサとして動作することにより取得した順序カウント値保持部32内のクロックサイクルカウント値A〜C、a〜cを用いて、クロック差分計測部31がクロックサイクルカウント値保持部13のカウント開始タイミングのずれ(差分)であるカウント値dを基準プロセッサに対応する応答プロセッサ毎に導出する。そして、クロック差分保持部33は、その応答プロセッサ毎のプロセッサIDとカウント値補正値d(同期補正値)を、基準プロセッサのプロセッサIDと共に対応付けして記憶保持する。すなわち、クロック差分計測部31が補正値導出手段を構成して、クロック差分保持部33が補正値保持手段を構成する。   Then, the first to n-th processors 101 to 10n use the clock cycle count values A to C and a to c in the order count value holding unit 32 acquired by operating as the reference processor and the corresponding processor, and use the clock difference. The measurement unit 31 derives a count value d, which is a difference (difference) in the count start timing of the clock cycle count value holding unit 13, for each response processor corresponding to the reference processor. Then, the clock difference holding unit 33 stores and holds the processor ID and the count value correction value d (synchronization correction value) for each response processor in association with the processor ID of the reference processor. That is, the clock difference measuring unit 31 constitutes a correction value deriving unit, and the clock difference holding unit 33 constitutes a correction value holding unit.

例えば、第1プロセッサ101は、図9に示すように、基準プロセッサとして応答プロセッサ102と協働するとき、第1クロックサイクルカウント値A=75、第2クロックサイクルカウント値B=125、第3クロックサイクルカウント値C=225を取得し、また、その第2プロセッサ102に基準プロセッサとして動作してもらうことにより、第1クロックサイクルカウント値a=275、第2クロックサイクルカウント値b=425、第3クロックサイクルカウント値c=425を取得して、順序カウント値保持部32内に保持したとする。すると、クロック差分計測部31は、これらカウント値A〜C、a〜cを上記式に代入することにより、その応答プロセッサ102のクロックサイクルカウント値保持部13のカウント開始タイミングのずれによるカウント値d=50を算出(導出)して、クロック差分保持部33がカウント値補正値dとして記憶保持する。これにより、基準プロセッサ101は、ターゲットプログラムの性能計測分析の実行時における自身のクロックサイクルカウント値t1=825はそのままトレースデータ蓄積部112a内に蓄積保持するのに対して、応答プロセッサ102のクロックサイクルカウント値t2=875にはクロック差分保持部33内に記憶保持するカウント値補正値=50を遅延カウント値として加算してそのクロックサイクルカウント値t2=925をトレースデータ蓄積部112a内に蓄積保持する。この結果、第1、第2プロセッサ101、102は、協働する性能計測分析などでも処理時間を正確に修正して分析等を実行することができる。   For example, as shown in FIG. 9, when the first processor 101 cooperates with the response processor 102 as a reference processor, the first clock cycle count value A = 75, the second clock cycle count value B = 125, the third clock By acquiring the cycle count value C = 225 and having the second processor 102 operate as the reference processor, the first clock cycle count value a = 275, the second clock cycle count value b = 425, It is assumed that the clock cycle count value c = 425 is acquired and held in the order count value holding unit 32. Then, the clock difference measuring unit 31 substitutes these count values A to C and a to c into the above formulas, so that the count value d due to the shift in the count start timing of the clock cycle count value holding unit 13 of the response processor 102 is obtained. = 50 is calculated (derived), and the clock difference holding unit 33 stores and holds the count value correction value d. As a result, the reference processor 101 stores and holds its own clock cycle count value t1 = 825 in the trace data storage unit 112a as it is when the performance measurement analysis of the target program is executed, whereas the clock cycle of the response processor 102 The count value correction value = 50 stored and held in the clock difference holding unit 33 is added to the count value t2 = 875 as the delay count value, and the clock cycle count value t2 = 925 is accumulated and held in the trace data accumulation unit 112a. . As a result, the first and second processors 101 and 102 can execute the analysis and the like by accurately correcting the processing time even in the performance measurement analysis and the like in cooperation.

次に、ターゲットプログラムの実行時の性能計測を図10〜図12に示すフローチャートを用いて説明する。   Next, performance measurement during execution of the target program will be described with reference to the flowcharts shown in FIGS.

まず、ターゲットプログラムを実行処理するときの性能計測を行うときに、例えば、そのターゲットプログラムを第1プロセッサ101が他の第2〜第nプロセッサ102〜10nを協働させて実行する場合には、その実行処理を開始する前に、言い換えると、プロセッサ101〜10nのそれぞれが実行プローブ111aの制御の下で駆動を開始する前に、その実行プローブ111aは、第1プロセッサ101を基準プロセッサとして、応答プロセッサの第2〜第nプロセッサ102〜10n毎に図10及び図11に示す同期処理を実行する。なお、基準プロセッサ101での同期処理は図10のフローチャートに示す一方、応答プロセッサ102での同期処理は図11のフローチャートに示している。   First, when performing performance measurement when executing a target program, for example, when the first processor 101 executes the target program in cooperation with the other second to n-th processors 102 to 10n, Before starting the execution process, in other words, before each of the processors 101 to 10n starts driving under the control of the execution probe 111a, the execution probe 111a responds with the first processor 101 as a reference processor. The synchronization processing shown in FIGS. 10 and 11 is executed for each of the second to n-th processors 102 to 10n of the processor. The synchronization processing in the reference processor 101 is shown in the flowchart of FIG. 10, while the synchronization processing in the response processor 102 is shown in the flowchart of FIG.

詳細には、基準プロセッサ101は、まずは、RAM112内に準備する変数pをリセット(p=0)する(ステップS110)。この後に、プロセッサID取得部21がプロセッサID保持部11内の自身のプロセッサIDを取得するとともに、クロックサイクルカウント値取得部22がクロックサイクルカウント値保持部13内で計数保持する第1クロックサイクルカウント値Aを取得して、そのプロセッサIDに対応付けして順序カウント値保持部32内に記憶保持する(ステップS111)。次いで、基準プロセッサ101は、応答プロセッサ102に第2クロックサイクルカウント値Bと共にプロセッサIDを取得して返送するように指示し(ステップS112)、そのクロックサイクルカウント値BとプロセッサIDが応答プロセッサ102から送られてくるまで待機する(ステップS113)。ここで、以下においても、各種情報は第1、第2プロセッサ101、102毎に内部処理して取得することから、同様に、プロセッサIDはプロセッサID取得部21が第1、第2プロセッサ101、102毎のプロセッサID保持部11から取得するとともに、クロックサイクルカウント値もクロックサイクルカウント値取得部22がそれぞれのクロックサイクルカウント値保持部13から取得することから、以下の説明においては、例えば、プロセッサIDを取得するなどと簡単に説明する。   Specifically, the reference processor 101 first resets the variable p prepared in the RAM 112 (p = 0) (step S110). Thereafter, the processor ID acquisition unit 21 acquires its own processor ID in the processor ID holding unit 11 and the clock cycle count value acquisition unit 22 counts and holds the clock cycle count value holding unit 13 in the first clock cycle count. The value A is acquired and stored in the order count value holding unit 32 in association with the processor ID (step S111). Next, the reference processor 101 instructs the response processor 102 to acquire and return the processor ID together with the second clock cycle count value B (step S112), and the clock processor count value B and the processor ID are received from the response processor 102. Wait until it is sent (step S113). Here, in the following, various information is acquired by performing internal processing for each of the first and second processors 101 and 102, and similarly, the processor ID is acquired by the processor ID acquisition unit 21 in the same way. Since the clock cycle count value is acquired from each clock cycle count value holding unit 13 as well as the clock cycle count value from each processor ID holding unit 11 for each 102, in the following description, for example, the processor It will be briefly described that an ID is acquired.

一方、応答プロセッサ102は、基準プロセッサ101の処理と並行して、その基準プロセッサ101から第2クロックサイクルカウント値BとプロセッサIDを取得して返送することの指示が送られてくるのを待って(ステップP211)、その指示を確認すると、基準プロセッサ101と同様に、その第2クロックサイクルカウント値BとプロセッサIDを取得して基準プロセッサ101に送信し(ステップP212)、次の指示が基準プロセッサ101から送られてくるまで待機する(ステップP213)。   On the other hand, the response processor 102 waits for an instruction to acquire and return the second clock cycle count value B and the processor ID from the reference processor 101 in parallel with the processing of the reference processor 101. (Step P211) When the instruction is confirmed, like the reference processor 101, the second clock cycle count value B and the processor ID are acquired and transmitted to the reference processor 101 (Step P212), and the next instruction is the reference processor. It waits until it is sent from 101 (step P213).

次いで、基準プロセッサ101は、応答プロセッサ102から送られてきた第2クロックサイクルカウント値BとプロセッサIDを受け取ると(ステップS113)、その第2クロックサイクルカウント値BとプロセッサIDを順序カウント値保持部32内に対応付けして記憶保持した後に(ステップS114)、ステップS111と同様に、第3クロックサイクルカウント値CとプロセッサIDを取得して順序カウント値保持部32内に対応付けして記憶保持する(ステップS115)。   Next, when the reference processor 101 receives the second clock cycle count value B and the processor ID sent from the response processor 102 (step S113), the reference processor 101 stores the second clock cycle count value B and the processor ID in the order count value holding unit. 32, the third clock cycle count value C and the processor ID are acquired and stored in association with the order count value holding unit 32 in the same manner as in step S111. (Step S115).

この後に、基準プロセッサ101は、基準プロセッサとして動作してステップS111〜S115と同様の処理を実行する駆動指示を応答プロセッサ102に送信して(ステップS116)、その応答プロセッサ102から応答プロセッサとして動作することの指示が送られてくるのを待機する(ステップS117)。   Thereafter, the reference processor 101 operates as the reference processor and transmits a drive instruction to execute the same processing as steps S111 to S115 to the response processor 102 (step S116), and the response processor 102 operates as the response processor. It waits for an instruction to be sent (step S117).

一方、応答プロセッサ102は、基準プロセッサ101から基準プロセッサとして動作することの駆動指示を受け取ると(ステップP213)、第1クロックサイクルカウント値aとプロセッサIDを取得して順序カウント値保持部32内に対応付けして記憶保持した後に(ステップP214)、基準プロセッサ101に第2クロックサイクルカウント値bとプロセッサIDを取得して返送するように指示して(ステップP215)、その第2クロックサイクルカウント値bとプロセッサIDが基準プロセッサ101から送られてくるまで待機する(ステップP216)。   On the other hand, when the response processor 102 receives the drive instruction to operate as the reference processor from the reference processor 101 (step P213), the response processor 102 acquires the first clock cycle count value a and the processor ID and stores them in the order count value holding unit 32. After associating and storing (step P214), the reference processor 101 is instructed to acquire and return the second clock cycle count value b and the processor ID (step P215), and the second clock cycle count value. Wait until b and the processor ID are sent from the reference processor 101 (step P216).

他方、基準プロセッサ101は、応答プロセッサ102から第2クロックサイクルカウント値bとプロセッサIDを取得して返送することの指示が送られてくるのを待って(ステップS117)、その指示を確認すると、その第2クロックサイクルカウント値bとプロセッサIDを取得して応答プロセッサ102に送信し(ステップS118)、その応答プロセッサ102から集めた第1〜第3クロックサイクルカウント値a〜cとプロセッサIDが送られてくるまで待機する(ステップS119)。   On the other hand, the reference processor 101 waits for an instruction to acquire and return the second clock cycle count value b and the processor ID from the response processor 102 (step S117), and confirms the instruction. The second clock cycle count value b and the processor ID are acquired and transmitted to the response processor 102 (step S118), and the first to third clock cycle count values a to c and the processor ID collected from the response processor 102 are transmitted. Wait until it is received (step S119).

一方、応答プロセッサ102は、基準プロセッサ101から送られてきた第2クロックサイクルカウント値bとプロセッサIDを受け取ると(ステップP216)、その第2クロックサイクルカウント値bとプロセッサIDを順序カウント値保持部32内に対応付けして記憶保持した後に(ステップP217)、第3クロックサイクルカウント値cとプロセッサIDを取得して順序カウント値保持部32内に対応付けして記憶保持した後に(ステップP218)、これらの一連の第1〜第3クロックサイクルカウント値a〜cとプロセッサIDをそれぞれ対応付けして基準プロセッサ101に送信して(ステップP219)、この応答プロセッサとしての1回分の処理を完了する。   On the other hand, when the response processor 102 receives the second clock cycle count value b and the processor ID sent from the reference processor 101 (step P216), the response processor 102 stores the second clock cycle count value b and the processor ID in the order count value holding unit. After the third clock cycle count value c and the processor ID are acquired and stored in association with each other in the order count value holding unit 32 (step P218). Then, the series of first to third clock cycle count values a to c and the processor ID are associated with each other and transmitted to the reference processor 101 (step P219), thereby completing one process as the response processor. .

そして、基準プロセッサ101は、応答プロセッサ102から送信されてきた第1〜第3クロックサイクルカウント値a〜cとそれぞれのプロセッサIDを受け取ると(ステップS119)、取得・保持したクロックサイクルカウント値A〜C、a〜cをプロセッサIDと記憶順により識別して、上記の式に代入することにより、協働する応答プロセッサ102に対するカウント値補正値dを算出してクロック差分保持部33内にそのプロセッサIDに対応付けしてその導出回数pと共に記憶保持する(ステップS120)。   When the reference processor 101 receives the first to third clock cycle count values a to c and the respective processor IDs transmitted from the response processor 102 (step S119), the acquired and held clock cycle count values A to C are received. C, a to c are identified by the processor ID and the storage order, and are substituted into the above formula to calculate the count value correction value d for the cooperating response processor 102, and the processor is stored in the clock difference holding unit 33. It is stored in association with the ID and its derivation count p (step S120).

この後には、基準プロセッサ101は、RAM112内の変数pをインクリメント(p=p+1)して、応答プロセッサ102に対するカウント値補正値dの導出回数pをカウントした後に(ステップS121)、その導出回数pが予め設定されている回数に達したか確認をして(ステップS122)、導出回数pが設定回数に達していない場合には、ステップS111に戻って同様の処理を繰り返す。   After this, the reference processor 101 increments the variable p in the RAM 112 (p = p + 1), counts the number of derivations p of the count value correction value d for the response processor 102 (step S121), and then derives the number of derivations p Is reached (step S122). If the derivation number p has not reached the set number, the process returns to step S111 and the same process is repeated.

一方、その導出回数pが設定回数に達したことを確認した場合には、設定回数分のカウント値補正値dの平均値を算出して応答プロセッサ102に対する平均カウント値補正値dとしてクロック差分保持部33内にそのプロセッサIDに対応付けして記憶保持して(ステップS123)、この基準プロセッサとしての一連の処理を完了する。   On the other hand, when it is confirmed that the derivation number p has reached the set number, the average value of the count value correction values d for the set number of times is calculated and the clock difference is held as the average count value correction value d for the response processor 102. The unit 33 stores the information in association with the processor ID (step S123), and completes a series of processes as the reference processor.

そして、ターゲットプログラムの性能計測を実行する際には、例えば、第1プロセッサ101では、図12に示すように、実行プローブ111aにプログラム制御が移行して(ステップS311)、上述した同期処理(ステップS110〜S123)を協働する第2〜第nプロセッサ102〜10n毎に実行した後に(ステップS312)、性能計測に必要なトレースデータの収集・記録などが実行される(ステップS313)。この後に、協働する第2〜第nプロセッサ102〜10nのプロセッサIDをプロセッサID取得部21がそれぞれのプロセッサID保持部11から取り出して取得するとともに(ステップS314)、そのプロセッサIDに対応付けされてクロック差分保持部33内に記憶保持されている平均カウント値補正値dを読み出して取得する(ステップS316)。これにより、性能計測に利用するために収集してトレースデータ蓄積部112a内にトレースデータとして記憶保持させたクロックサイクルカウント値は、そのプロセッサIDに対応する平均カウント値補正値dにより修正して、そのトレースデータ蓄積部112a内に記憶保持させることができ(ステップS317)、この後に、性能計測対象のターゲットプログラムにプログラム制御を移行してこの実行プログラムを終了する(ステップS318)。   When executing the performance measurement of the target program, for example, in the first processor 101, as shown in FIG. 12, the program control shifts to the execution probe 111a (step S311), and the above-described synchronization processing (step After executing S110 to S123) for each of the second to n-th processors 102 to 10n cooperating (step S312), collection and recording of trace data necessary for performance measurement is performed (step S313). Thereafter, the processor ID acquisition unit 21 acquires and acquires the processor IDs of the second to n-th processors 102 to 10n that cooperate with each other (step S314), and is associated with the processor ID. Then, the average count value correction value d stored and held in the clock difference holding unit 33 is read and acquired (step S316). As a result, the clock cycle count value collected for use in performance measurement and stored as trace data in the trace data storage unit 112a is corrected by the average count value correction value d corresponding to the processor ID, The trace data accumulating unit 112a can be stored and held (step S317), and thereafter, program control is transferred to the target program to be measured for performance and the execution program is terminated (step S318).

このように、この付加装置によれば、第1〜第nプロセッサ101〜10n毎にカウント開始タイミングの一致するトレースデータカウント値に補正して共通化することができる。したがって、第1〜第nプロセッサ101〜10nのクロックサイクルカウント値保持部13の計数するカウント開始タイミングの違いにより正確性が低下してしまうことなく、ターゲットプログラムの性能計測の分析等を高精度に実行することができる。   Thus, according to this additional device, it is possible to correct and share the trace data count value having the same count start timing for each of the first to n-th processors 101 to 10n. Therefore, the analysis of the performance measurement of the target program and the like can be performed with high accuracy without the accuracy being lowered due to the difference in the count start timing counted by the clock cycle count value holding unit 13 of the first to n-th processors 101 to 10n. Can be executed.

以上で説明した付加装置は、単独で利用することができることはいうまでもないが、上述の第1実施形態と共に搭載する場合には、第1〜第nプロセッサ101〜10n毎に変更可能なクロック周波数でカウントするトレースデータカウント値を補正して共通化する仮想時刻を、さらに、そのカウント開始時刻を一致させることができ、より信頼性高くターゲットプログラムの性能計測の分析等を実行することができる。   Needless to say, the additional device described above can be used alone, but when mounted together with the above-described first embodiment, the clock can be changed for each of the first to n-th processors 101 to 10n. The virtual time to be shared by correcting the trace data count value counted by frequency can be matched with the count start time, and the analysis of the performance measurement of the target program can be executed more reliably. .

このクロックサイクルカウント値のカウント開始タイミングの同期処理は、ターゲットプログラムの実行開始直後に限るものではなく、例えば、クロック周波数の変更が繰り返し行われると、本来なら無視できる程度の誤差が蓄積されて算出する仮想時刻に信頼性がなくなる可能性がある。このことから、予め設定されている間隔あるいは時刻毎に、又は、任意のタイミングの指示命令に応じて、第1〜第nプロセッサ101〜10nのクロック周波数を一定値に固定して、上述の同期処理を実行することにより、導出する仮想時刻の信頼性低下をリセットすることができる。   The synchronization processing of the clock cycle count value count start timing is not limited to immediately after the start of execution of the target program. For example, if the clock frequency is changed repeatedly, errors that can be ignored are accumulated and calculated. There is a possibility that the reliability will be lost at the virtual time. From this, the clock frequency of the first to n-th processors 101 to 10n is fixed to a constant value at every preset interval or time, or according to an instruction command at an arbitrary timing, and the above-mentioned synchronization By executing the process, it is possible to reset the reliability decrease of the derived virtual time.

以上、この発明の一実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。   As described above, the embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and there are design changes and the like without departing from the gist of the present invention. However, it is included in this invention.

例えば、上述の実施形態では、トレースデータカウント値毎に、クロック周波数の変更までのクロックサイクルカウント値の増加分から算出する経過時刻を積算する処理を繰り返すことにより仮想時刻を導出するようにしたが、これに限るものではない。例えば、先のトレースデータカウント値の補正処理における第n経過時刻までの積算値を保持しておき、その第n経過時刻までの積算値に、次に補正処理するトレースデータカウント値の増加分から算出する第n+1経過時刻を積算することにより、その仮想時刻となる積算経過時刻を導出するようにしてもよい。   For example, in the above-described embodiment, the virtual time is derived by repeating the process of accumulating the elapsed time calculated from the increment of the clock cycle count value until the clock frequency is changed for each trace data count value. This is not a limitation. For example, the integrated value up to the nth elapsed time in the correction processing of the previous trace data count value is held, and the integrated value up to the nth elapsed time is calculated from the increment of the trace data count value to be corrected next. The accumulated elapsed time that is the virtual time may be derived by integrating the (n + 1) th elapsed time.

また、上述の実施形態では、複数のプロセッサを搭載する場合に、クロック周波数の変更に影響されることのない仮想時刻を導出して経過時刻を共通化する場合について述べたが、これに限らない。例えば、一つのプロセッサを搭載する装置でも、そのクロック周波数の変更によりクロックサイクルカウント値の増加傾向が変化する場合にも適用することができ、そのクロックサイクルカウント値の経過時間を仮想時刻により一般化して、分析等を容易化することもできる。   Further, in the above-described embodiment, when a plurality of processors are mounted, a case has been described in which a virtual time that is not affected by a change in clock frequency is derived and the elapsed time is shared, but the present invention is not limited thereto. . For example, even a device equipped with a single processor can be applied when the increasing tendency of the clock cycle count value changes due to the change of the clock frequency, and the elapsed time of the clock cycle count value is generalized by virtual time. Thus, analysis and the like can be facilitated.

また、上述の実施形態では、性能測定するターゲットプログラムを一例にして説明したが、これに限らず、例えば、統計計算に拠らずに、個別に処理時間等の共通化や基準時のリセットも行うことができるので、一般的なプログラムにも適用することができ、例えば、計算資源を効率的に活用する高性能なプログラムの作成にも活用することができる。   In the above-described embodiment, the target program for performance measurement has been described as an example. However, the present invention is not limited to this. For example, the processing time and the like can be individually reset and reset at the reference time without using statistical calculation. Since it can be performed, it can be applied to general programs. For example, it can also be used to create high-performance programs that efficiently use computing resources.

この発明は、マルチプロセッサ上で動作する、計算資源を効率的に活用する高性能プログラムに広く適用することができる。   The present invention can be widely applied to high-performance programs that operate on a multiprocessor and efficiently use computational resources.

11 プロセッサID保持部
12 クロック周波数設定部
13 クロックサイクルカウント値保持部
21 プロセッサID取得部(変更プロセッサ識別情報取得手段、対応プロセッサ識別情報取得手段)
22 クロックサイクルカウント値取得部(変更時カンウント値取得手段)
23 クロック周波数変更部
24 クロック周波数変更検知部(変更検知手段、動作周波数取得手段)
25 クロックサイクルカウント補正部(時刻導出手段)
26 クロック周波数変更履歴保持部(変更履歴保持手段)
31 クロック差分計測部(補正値導出手段)
32 順序カウント値保持部
33 クロック差分保持部(補正値保持手段)
100、200 マルチプロセッサ
101〜10n 第1〜第nプロセッサ
101 基準プロセッサ
102 応答プロセッサ
111 ROM(ターゲットプログラム)
111a 実行プローブ(順序カウント値取得手段)
112 RAM
112a トレースデータ蓄積部
11 processor ID holding unit 12 clock frequency setting unit 13 clock cycle count value holding unit 21 processor ID acquisition unit (changed processor identification information acquisition unit, corresponding processor identification information acquisition unit)
22 Clock cycle count value acquisition unit (count value acquisition means at change)
23 Clock frequency change unit 24 Clock frequency change detection unit (change detection means, operating frequency acquisition means)
25 Clock cycle count correction unit (time deriving means)
26 Clock frequency change history holding unit (change history holding means)
31 Clock difference measuring unit (correction value deriving means)
32 Order count value holding unit 33 Clock difference holding unit (correction value holding means)
100, 200 Multiprocessors 101 to 10n First to nth processors 101 Reference processor 102 Response processor 111 ROM (target program)
111a execution probe (order count value acquisition means)
112 RAM
112a Trace data storage unit

Claims (16)

マルチプロセッサを構築するプロセッサ毎の動作周波数の変更を検知する変更検知手段と、
前記動作周波数を変更した前記プロセッサの識別情報を取得する変更プロセッサ識別情報取得手段と、
前記動作周波数の変更後の当該動作周波数を取得する動作周波数取得手段と、
前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値を取得する変更時カンウント値取得手段と、
取得した前記動作周波数及び前記変更時カウント値を該当プロセッサの識別情報に対応付けして履歴情報として保持する変更履歴保持手段と、
前記識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出する時刻導出手段と
を備えることを特徴とするマルチプロセッサのカウント値補正装置。
Change detection means for detecting a change in operating frequency for each processor that constructs a multiprocessor;
Changed processor identification information acquisition means for acquiring identification information of the processor that has changed the operating frequency;
Operating frequency acquisition means for acquiring the operating frequency after the change of the operating frequency;
A change count value acquisition means for acquiring a change count value when the operation frequency of the clock cycle counter for each processor that counts based on the operation frequency is changed;
Change history holding means for holding the acquired operating frequency and the count value at the time of change as history information in association with identification information of the corresponding processor;
A time deriving unit for deriving a virtual time for each processor based on the history information of the operating frequency and the change count value associated with the identification information. Correction device.
前記時刻導出手段は、前記プロセッサ毎の前記変更時カウント値を対応する前記動作周波数により補正して、前記動作周波数の変更前後で共通の一定速度で増進する仮想時刻を導出することを特徴とする請求項1記載のマルチプロセッサのカウント値補正装置。   The time deriving means corrects the change count value for each processor with the corresponding operating frequency, and derives a virtual time to increase at a common constant speed before and after the change of the operating frequency. The multiprocessor count value correction apparatus according to claim 1. 前記時刻導出手段は、前記履歴情報における前記動作周波数の変更前までの期間内に増加した前記変更時カウント値の増加分を対応する前記動作周波数により補正して積算した後に、前記動作周波数の最終の変更後から導出対象のカウント値までに増加した増加分を対応する前記動作周波数により補正して積算することにより、前記プロセッサ毎の導出対象のカウント値までの仮想時刻を導出することを特徴とする請求項1又は2記載のマルチプロセッサのカウント値補正装置。   The time deriving means corrects and adds the increment of the change count value during the period before the change of the operating frequency in the history information by the corresponding operating frequency, and then adds the final of the operating frequency. The virtual time to the derivation target count value for each processor is derived by correcting and accumulating the increment increased from the change in the derivation target count value by the corresponding operating frequency. The multiprocessor count value correction apparatus according to claim 1 or 2. 何れか一つを基準プロセッサとするとともに他の何れか一つを対応プロセッサとして、当該プロセッサ間で予め決められている順序でやり取りすることにより、前記基準プロセッサ及び前記対応プロセッサにおける所定の順序カウント値を取得する順序カウント値取得手段と、
少なくとも前記対応プロセッサの識別情報を取得する対応プロセッサ識別情報取得手段と、
前記基準プロセッサ用の前記クロックサイクルカウンタのカウント値に対する前記対応プロセッサ用の前記クロックサイクルカウンタのカウント値のずれをリセットするのに必要な同期補正値を前記順序カウント値に基づいて導出する補正値導出手段と、
前記基準プロセッサのカウント値に対する前記対応プロセッサのカウント値のずれをリセットする前記同期補正値を該対応プロセッサの識別情報に対応させて保持する補正値保持手段と
を備えることを特徴とする請求項1、2又は3記載のマルチプロセッサのカウント値補正装置。
A predetermined order count value in the reference processor and the corresponding processor by exchanging in a predetermined order between the processors, with any one as a reference processor and any other as a corresponding processor Order count value acquisition means for acquiring
Corresponding processor identification information acquisition means for acquiring identification information of at least the corresponding processor;
Correction value derivation for deriving a synchronization correction value necessary for resetting a deviation of the count value of the clock cycle counter for the corresponding processor from the count value of the clock cycle counter for the reference processor based on the order count value Means,
2. The correction value holding means for holding the synchronization correction value for resetting a deviation of the count value of the corresponding processor with respect to the count value of the reference processor in correspondence with identification information of the corresponding processor. The multiprocessor count value correction apparatus according to 2 or 3.
前記順序カウント値取得手段は、前記基準プロセッサの第1順序カウント値Aを取得した後に、前記対応プロセッサへの要求に応答して返送されてきた第2順序カウント値Bを取得するのに続けて再度前記基準プロセッサの第3順序カウント値Cを取得する順序処理を実行し、この後に、前記基準プロセッサと前記対応プロセッサを逆転した前記順序処理を実行して逆転第1〜第3順序カウント値a、b、cを取得し、
前記補正値導出手段は、次式を用いて前記同期補正値dを算出し、
d=(C−c)/4+(A−a)/4−(B−b)/2
前記補正値保持手段は、算出した前記同期補正値dを前記対応プロセッサの前記識別情報に対応させて保持することを特徴とする請求項4記載のマルチプロセッサのカウント値補正装置。
The sequence count value acquisition means acquires the second sequence count value B returned in response to the request to the corresponding processor after acquiring the first sequence count value A of the reference processor. The sequence processing for obtaining the third sequence count value C of the reference processor is executed again, and then the sequence processing is executed by reversing the reference processor and the corresponding processor to perform the reverse first to third sequence count values a. , B, c
The correction value deriving means calculates the synchronization correction value d using the following equation:
d = (C−c) / 4 + (A−a) / 4− (B−b) / 2
5. The multiprocessor count value correction apparatus according to claim 4, wherein the correction value holding means holds the calculated synchronization correction value d in association with the identification information of the corresponding processor.
上記請求項1乃至5の何れか一つに記載のマルチプロセッサのカウント値補正装置を備えることを特徴とするマルチプロセッサ。   A multiprocessor comprising the multiprocessor count value correction apparatus according to claim 1. マルチプロセッサを構築するプロセッサ毎の動作周波数の変更の有無を監視して、該プロセッサの動作周波数の変更を検知したとき、前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値、及び、当該変更時における前記動作周波数を該プロセッサの識別情報と共に取得して該識別情報に対応付けして履歴情報として保持し、当該識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出することを特徴とするマルチプロセッサのカウント値補正方法。   The operating frequency of the clock cycle counter for each processor that counts based on the operating frequency when a change in the operating frequency of the processor is detected by monitoring whether or not the operating frequency of each processor constituting the multiprocessor is changed. The change count value at the time of the change and the operating frequency at the time of the change are acquired together with the identification information of the processor, stored as history information in association with the identification information, and associated with the identification information. A multiprocessor count value correction method, comprising: deriving a virtual time for each processor based on the history information of the operating frequency and the change count value. 前記プロセッサ毎の前記変更時カウント値を対応する前記動作周波数により補正して、前記動作周波数の変更前後で共通の一定速度で増進する仮想時刻を導出することを特徴とする請求項7記載のマルチプロセッサのカウント値補正方法。   8. The multi-time according to claim 7, wherein the change count value for each processor is corrected by the corresponding operating frequency to derive a virtual time for increasing at a common constant speed before and after the change of the operating frequency. Processor count value correction method. 前記履歴情報における前記動作周波数の変更前までの期間内に増加した前記変更時カウント値の増加分を対応する前記動作周波数により補正して積算した後に、前記動作周波数の最終の変更後から導出対象のカウント値までに増加した増加分を対応する前記動作周波数により補正して積算することにより、前記プロセッサ毎の導出対象のカウント値までの仮想時刻を導出することを特徴とする請求項7又は8記載のマルチプロセッサのカウント値補正方法。   The derivation target after the last change of the operating frequency after correcting and accumulating the increment of the count value at the time of change increased in the history information before the change of the operating frequency by the corresponding operating frequency 9. The virtual time to the derivation target count value for each processor is derived by correcting and accumulating the increment increased up to the count value of the processor by the corresponding operating frequency. The multiprocessor count value correction method described. 何れか一つを基準プロセッサとするとともに他の何れか一つを対応プロセッサとして、当該プロセッサ間で予め決められている順序でやり取りすることにより、前記基準プロセッサ及び前記対応プロセッサにおける所定の順序カウント値を取得するとともに、少なくとも前記対応プロセッサの識別情報を取得した後に、
当該順序カウント値に基づいて前記基準プロセッサ用の前記クロックサイクルカウンタのカウント値に対する前記対応プロセッサ用の前記クロックサイクルカウンタのカウント値のずれをリセットするのに必要な同期補正値を導出して、該同期補正値を該当対応プロセッサの識別情報に対応させて保持することを特徴とする請求項7、8又は9記載のマルチプロセッサのカウント値補正方法。
A predetermined order count value in the reference processor and the corresponding processor by exchanging in a predetermined order between the processors, with any one as a reference processor and any other as a corresponding processor And after obtaining at least the identification information of the corresponding processor,
Deriving a synchronization correction value necessary for resetting a deviation of the count value of the clock cycle counter for the corresponding processor with respect to the count value of the clock cycle counter for the reference processor based on the order count value; 10. The multiprocessor count value correction method according to claim 7, wherein the synchronization correction value is held in correspondence with identification information of the corresponding processor.
前記順序カウント値として、前記基準プロセッサの第1順序カウント値Aを取得した後に、前記対応プロセッサへの要求に応答して返送されてきた第2順序カウント値Bを取得するのに続けて再度前記基準プロセッサの第3順序カウント値Cを取得する順序処理を実行し、この後に、前記基準プロセッサと前記対応プロセッサを逆転した前記順序処理を実行して逆転第1〜第3順序カウント値a、b、cを取得した後に、
次式を用いて前記同期補正値dを算出し、
d=(C−c)/4+(A−a)/4−(B−b)/2
該同期補正値dを前記対応プロセッサの前記識別情報に対応させて保持することを特徴とする請求項10記載のマルチプロセッサのカウント値補正方法。
After obtaining the first order count value A of the reference processor as the order count value, the second order count value B returned in response to the request to the corresponding processor is obtained again after obtaining the second order count value B. An order process for obtaining the third order count value C of the reference processor is executed, and thereafter, the order process in which the reference processor and the corresponding processor are inverted is executed, and the reverse first to third order count values a, b , After obtaining c
The synchronization correction value d is calculated using the following equation:
d = (C−c) / 4 + (A−a) / 4− (B−b) / 2
11. The multiprocessor count value correction method according to claim 10, wherein the synchronization correction value d is held in correspondence with the identification information of the corresponding processor.
マルチプロセッサを搭載するコンピュータに読み込ませることにより、必要な情報をメモリ内に保持させつつ何れかのプロセッサが実行するステップとして、
プロセッサ毎の動作周波数の変更の有無を監視して該動作周波数の変更を検知する変更検知ステップと、
前記動作周波数を変更した該当プロセッサの識別情報を取得する変更プロセッサ識別情報取得ステップと、
前記動作周波数の変更後の当該動作周波数を取得する動作周波数取得ステップと、
前記動作周波数に基づいてカウントする前記プロセッサ毎のクロックサイクルカウンタの該動作周波数の変更時における変更時カウント値を取得する変更時カンウント値取得ステップと、
取得した前記動作周波数及び前記変更時カウント値を該当プロセッサの識別情報に対応付けして履歴情報として保持する変更履歴保持ステップと、
前記識別情報に対応付けされている前記動作周波数及び前記変更時カウント値の前記履歴情報に基づいて前記プロセッサ毎の仮想時刻を導出する時刻導出ステップと
を有することを特徴とするマルチプロセッサのカウント値補正プログラム。
As a step executed by any of the processors while holding necessary information in the memory by being read by a computer equipped with a multiprocessor,
A change detection step for monitoring the presence or absence of a change in operating frequency for each processor and detecting the change in the operating frequency;
A changed processor identification information acquisition step for acquiring identification information of the processor whose operating frequency has been changed;
An operating frequency acquisition step of acquiring the operating frequency after the change of the operating frequency;
A change count value acquisition step of acquiring a change count value at the time of change of the operation frequency of the clock cycle counter for each processor that counts based on the operation frequency;
A change history holding step for holding the acquired operating frequency and the count value at the time of change as history information in association with identification information of the corresponding processor;
A time derivation step for deriving a virtual time for each processor based on the history information of the operating frequency and the change count value associated with the identification information. Correction program.
前記時刻導出ステップでは、前記プロセッサ毎の前記変更時カウント値を対応する前記動作周波数により補正して、前記動作周波数の変更前後で共通の一定速度で増進する仮想時刻を導出することを特徴とする請求項12記載のマルチプロセッサのカウント値補正プログラム。   In the time deriving step, the virtual time that is increased at a common constant speed before and after the change of the operating frequency is derived by correcting the change count value for each processor by the corresponding operating frequency. The multiprocessor count value correction program according to claim 12. 前記時刻導出ステップでは、前記履歴情報における前記動作周波数の変更前までの期間内に増加した前記変更時カウント値の増加分を対応する前記動作周波数により補正して積算した後に、前記動作周波数の最終の変更後から導出対象のカウント値までに増加した増加分を対応する前記動作周波数により補正して積算することにより、前記プロセッサ毎の導出対象のカウント値までの仮想時刻を導出することを特徴とする請求項12又は13記載のマルチプロセッサのカウント値補正プログラム。   In the time deriving step, the increment of the count value at the time of change increased within a period before the change of the operating frequency in the history information is corrected and integrated with the corresponding operating frequency, and then the final of the operating frequency The virtual time to the derivation target count value for each processor is derived by correcting and accumulating the increment increased from the change in the derivation target count value by the corresponding operating frequency. 14. The multiprocessor count value correction program according to claim 12 or 13. 何れか一つを基準プロセッサとするとともに他の何れか一つを対応プロセッサとして、当該プロセッサ間で予め決められている順序でやり取りすることにより、前記基準プロセッサ及び前記対応プロセッサにおける所定の順序カウント値を取得する順序カウント値取得ステップと、
少なくとも前記対応プロセッサの識別情報を取得する対応プロセッサ識別情報取得ステップと、
前記順序カウント値に基づいて前記基準プロセッサ用の前記クロックサイクルカウンタのカウント値に対する前記対応プロセッサ用の前記クロックサイクルカウンタのカウント値のずれをリセットするのに必要な同期補正値を導出する補正値導出ステップと、
前記基準プロセッサのカウント値に対する前記対応プロセッサのカウント値のずれをリセットする前記同期補正値を該対応プロセッサの識別情報に対応させて保持する補正値保持ステップと
を有することを特徴とする請求項12、13又は14記載のマルチプロセッサのカウント値補正プログラム。
A predetermined order count value in the reference processor and the corresponding processor by exchanging in a predetermined order between the processors, with any one as a reference processor and any other as a corresponding processor Order count value acquisition step to acquire,
A corresponding processor identification information obtaining step for obtaining at least identification information of the corresponding processor;
Correction value derivation for deriving a synchronization correction value necessary for resetting a deviation of the count value of the clock cycle counter for the corresponding processor from the count value of the clock cycle counter for the reference processor based on the order count value Steps,
13. A correction value holding step for holding the synchronization correction value for resetting a shift in the count value of the corresponding processor with respect to the count value of the reference processor in correspondence with identification information of the corresponding processor. 15. A multiprocessor count value correction program according to claim 13 or 14.
前記順序カウント値取得ステップでは、前記基準プロセッサの第1順序カウント値Aを取得した後に、前記対応プロセッサへの要求に応答して返送されてきた第2順序カウント値Bを取得するのに続けて再度前記基準プロセッサの第3順序カウント値Cを取得する順序処理を実行し、この後に、前記基準プロセッサと前記対応プロセッサを逆転した前記順序処理を実行して逆転第1〜第3順序カウント値a、b、cを取得し、
前記補正値導出ステップでは、次式を用いて前記同期補正値dを算出し、
d=(C−c)/4+(A−a)/4−(B−b)/2
前記補正値保持ステップでは、算出した前記同期補正値dを前記対応プロセッサの前記識別情報に対応させて保持することを特徴とする請求項15記載のマルチプロセッサのカウント値補正プログラム。
In the order count value obtaining step, after obtaining the first order count value A of the reference processor, the second order count value B returned in response to the request to the corresponding processor is obtained. The sequence processing for obtaining the third sequence count value C of the reference processor is executed again, and then the sequence processing is executed by reversing the reference processor and the corresponding processor to perform the reverse first to third sequence count values a. , B, c
In the correction value deriving step, the synchronization correction value d is calculated using the following equation:
d = (C−c) / 4 + (A−a) / 4− (B−b) / 2
16. The multiprocessor count value correction program according to claim 15, wherein in the correction value holding step, the calculated synchronization correction value d is held in correspondence with the identification information of the corresponding processor.
JP2010531754A 2008-10-03 2009-09-30 Multiprocessor count value correction apparatus and multiprocessor having the same Expired - Fee Related JP5267566B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010531754A JP5267566B2 (en) 2008-10-03 2009-09-30 Multiprocessor count value correction apparatus and multiprocessor having the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008259095 2008-10-03
JP2008259095 2008-10-03
PCT/JP2009/005063 WO2010038459A1 (en) 2008-10-03 2009-09-30 Multiprocessor count value correction device and multiprocessor having the same
JP2010531754A JP5267566B2 (en) 2008-10-03 2009-09-30 Multiprocessor count value correction apparatus and multiprocessor having the same

Publications (2)

Publication Number Publication Date
JPWO2010038459A1 JPWO2010038459A1 (en) 2012-03-01
JP5267566B2 true JP5267566B2 (en) 2013-08-21

Family

ID=42073238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531754A Expired - Fee Related JP5267566B2 (en) 2008-10-03 2009-09-30 Multiprocessor count value correction apparatus and multiprocessor having the same

Country Status (2)

Country Link
JP (1) JP5267566B2 (en)
WO (1) WO2010038459A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436265B2 (en) 2013-10-24 2016-09-06 Fujitsu Limited Information processing apparatus and load control method
JP6855861B2 (en) * 2017-03-22 2021-04-07 日本電気株式会社 Virtual time distribution system, virtual time distribution device, virtual time distribution method, and program
JP7418159B2 (en) * 2019-04-19 2024-01-19 キヤノン株式会社 information processing equipment
CN112162591B (en) * 2020-10-30 2023-04-11 上海兆芯集成电路有限公司 Electronic device with multiple processors and synchronization method thereof
WO2023084748A1 (en) * 2021-11-12 2023-05-19 日本電信電話株式会社 Computer system and control method therefor
CN117579213B (en) * 2023-12-27 2024-06-25 中国科学院微电子研究所 Multi-node time synchronization method and equipment for random synchronization triggering event

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3344121B2 (en) * 1994-11-15 2002-11-11 株式会社日立製作所 Performance data processing method in distributed processor system
JP4347082B2 (en) * 2004-02-23 2009-10-21 日本電気株式会社 Time correction device, time correction method, and time correction program for event trace data
JP4687258B2 (en) * 2005-06-09 2011-05-25 セイコーエプソン株式会社 Log information management apparatus, log information management method and program thereof
JP4479660B2 (en) * 2006-01-11 2010-06-09 日本電気株式会社 Clock skew correction system, clock skew correction method, and clock skew correction program

Also Published As

Publication number Publication date
JPWO2010038459A1 (en) 2012-03-01
WO2010038459A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP5267566B2 (en) Multiprocessor count value correction apparatus and multiprocessor having the same
US10908941B2 (en) Timestamping data received by monitoring system in NFV
CN105556404B (en) Programmable controller system, controller of the programmable controller system
US9811336B2 (en) Determining processor offsets to synchronize processor time values
US7594146B2 (en) Apparatus, method, and program for correcting time of event trace data
JP2008269084A (en) Log analysis method and apparatus
EP2222003B1 (en) Field control system
CN108923876A (en) Method for synchronizing time, apparatus and system
WO2017016074A1 (en) Cpu occupation rate detection method and apparatus
US20150082325A1 (en) Apparatuses and methods for generating and tracing event codes
US20180027515A1 (en) Server, method, recording medium, and system for maintaining accuracy of time
US7430493B2 (en) Method, system and program for correcting time of event trace data
CN112653533A (en) Intelligent time service management method for complex system
US9400734B2 (en) Apparatuses and methods for generating event codes including event source
US20090122938A1 (en) Method and System for Identifying Sources of Operating System Jitter
Cochran et al. Synchronizing the Linux system time to a PTP hardware clock
CN107003691B (en) Technique for synchronous sampling of counters based on a global clock
CN112395231B (en) Method and device for calculating data delay time among multiple processors
US20100332888A1 (en) Deriving accurate media position information
US20210227101A1 (en) Method, apparatus and terminal device for synchronous exposure
EP2609509B1 (en) Software instrumentation apparatus and method
US9195524B1 (en) Hardware support for performance analysis
TWI574151B (en) Clock diagnosis device and pulse diagnosis method
CN115408867B (en) Method, device and related equipment for improving calculation accuracy in real-time power simulation
US7881906B2 (en) Method, system and computer program product for event-based sampling to monitor computer system performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120802

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130422

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees