JP2010102372A - Data processor, verification system, data processor verification method - Google Patents

Data processor, verification system, data processor verification method Download PDF

Info

Publication number
JP2010102372A
JP2010102372A JP2008270566A JP2008270566A JP2010102372A JP 2010102372 A JP2010102372 A JP 2010102372A JP 2008270566 A JP2008270566 A JP 2008270566A JP 2008270566 A JP2008270566 A JP 2008270566A JP 2010102372 A JP2010102372 A JP 2010102372A
Authority
JP
Japan
Prior art keywords
information
event
verification
data processing
range
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.)
Pending
Application number
JP2008270566A
Other languages
Japanese (ja)
Inventor
Yoshinori Sakamoto
喜則 坂本
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.)
Denso Ten Ltd
Toyota Motor Corp
Original Assignee
Denso Ten Ltd
Toyota Motor 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 Denso Ten Ltd, Toyota Motor Corp filed Critical Denso Ten Ltd
Priority to JP2008270566A priority Critical patent/JP2010102372A/en
Publication of JP2010102372A publication Critical patent/JP2010102372A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processor and the like dynamically switching between a real machine and a simulator, or synchronizing events between cores to simulate a multi-core data processor. <P>SOLUTION: The data processor includes: an operation log recording means 23 recording event information such as input/output information, operation time information, or operation content information, which are associated with operation of a command, along with time information based on a predetermined time; a range registration means 25 registering a range for acquiring verification information in an operation log; a range detection means 29 referring to the operation log stored in the operation log storage means to detect that a running program has reached an event within the range; and an operation-verification switching means 27 starting acquisition of verification information when that the event within the range has been reached is detected. When the acquisition of the verification information in the range is completed, the operation-verification switching means terminates the acquisition of the verification information, and the program is executed again from the event at the time of completion. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、ソフトウェア又はハードウェアの状態を検証するための検証情報を出力するデータ処理装置、検証システム及びデータ処理装置検証方法に関する。   The present invention relates to a data processing apparatus, a verification system, and a data processing apparatus verification method that output verification information for verifying the state of software or hardware.

プログラムを実行したりデバイス等を含むシステムを制御するデータ処理装置に関し、プログラムやシステムの性能を解析し論理不良を検証するため、同じ環境をシミュレータにより再現する手法が用いられることがある。このシミュレータは例えばデータ処理装置(以下、実機という)の環境を再現し、また例えば処理しうる全ての分岐やロジックを処理するように設計されているが、実行環境の再現に資源が利用されたり、開発中の実機に比べ低速な場合が多く、実機とは比較にならないほどの時間を要する。   With respect to a data processing apparatus that executes a program or controls a system including a device or the like, a method of reproducing the same environment by a simulator may be used to analyze the performance of the program or the system and verify a logic failure. This simulator is designed to reproduce the environment of a data processing device (hereinafter referred to as an actual machine), for example, and to process all branches and logic that can be processed, for example, but resources are used to reproduce the execution environment. In many cases, it is slower than the actual machine under development, and it takes time that cannot be compared with the actual machine.

この点について、マシンサイクル単位で実機の命令をシミュレーションするシミュレータにおいて、命令のスケジューリングに費やす時間を短縮する技術が提案されている(例えば、特許文献1参照。)。特許文献1には、一連の命令からループを検出し、ループが検出された状態における対象命令列を登録しておき、ループ周回毎に今回の実行命令と登録された命令を比較し一致した場合にはその命令をスキップする命令スケジュールのシミュレーション方法が記載されている。したがって、ループ周回時の状態が同じであれば命令をスケジュールしないのでシミュレーションに要する時間を短縮することができる。   With respect to this point, a technique for shortening the time spent for scheduling an instruction in a simulator that simulates an actual machine instruction in machine cycle units has been proposed (for example, see Patent Document 1). In Patent Document 1, when a loop is detected from a series of instructions, a target instruction sequence in a state in which the loop is detected is registered, and the execution instruction of this time and the registered instruction are compared and matched each time the loop circulates Describes an instruction schedule simulation method for skipping the instruction. Therefore, since the instruction is not scheduled if the state during the loop lap is the same, the time required for the simulation can be shortened.

ところで、実機では、入出力、コア間通信、システムコール、割込み等の種々の事象が生じるが、一般に実機は、実行速度や各種デバイスの監視機能の制約からこの事象の発生タイミングを調整したり制御することはできない。これに対し、シミュレータでは所定のタイミングで事象を発生させることができるので、シミュレータは実機と同じタイミングで事象が生じるようタイミングを調整することができる。しかし、シミュレータは、実機と環境や実行速度が大きく異なるので、事象の発生タイミングを変更することができない。   By the way, various events such as I / O, communication between cores, system calls, and interrupts occur in the actual machine. Generally, the actual machine adjusts or controls the occurrence timing of this event due to restrictions on the execution speed and monitoring functions of various devices. I can't do it. On the other hand, since the simulator can generate an event at a predetermined timing, the simulator can adjust the timing so that the event occurs at the same timing as the actual machine. However, since the simulator differs greatly in environment and execution speed from the actual machine, the event occurrence timing cannot be changed.

この点について、指定された動作点における実機の再現情報を採取して、シミュレータに提供する技術が提案されている(例えば、特許文献2参照。)。特許文献2には、実機により論理不良が検出された場合、その直前で実機を停止させた時の再現情報をシミュレータに供給する実機の論理試験方法が記載されている。したがって、事象の発生タイミングについては実機により取得し、論理不良の原因についてはシミュレータで時間をかけて解析することができる。
特開2004-78599号公報 特開昭62−211739号公報
With regard to this point, a technique has been proposed in which reproduction information of an actual machine at a specified operating point is collected and provided to a simulator (see, for example, Patent Document 2). Patent Document 2 describes a logic test method for an actual machine that supplies a simulator with reproduction information when the actual machine is stopped immediately before a logic failure is detected by the actual machine. Therefore, the occurrence timing of the event can be acquired by an actual machine, and the cause of the logic failure can be analyzed over time by the simulator.
JP 2004-78599 A JP 62-2111739 A

しかしながら、シミュレータによる解析の後は、実機で発生した事象の内容及び時刻が大きくずれているため、一度、シミュレータに移行すると実機に戻ってのプログラムの再開が困難であるという問題がある。すなわち、特許文献2に記載された論理試験方法では、実機とシミュレータを動的に切り替えることができず、論理不良を解消した後、再度、プログラムを最初から実行しなければならないという問題がある。   However, after the analysis by the simulator, the contents and time of the event that occurred in the actual machine are greatly deviated, and therefore there is a problem that it is difficult to resume the program after returning to the actual machine once the process is shifted to the simulator. That is, in the logic test method described in Patent Document 2, there is a problem that the actual machine and the simulator cannot be dynamically switched, and the program must be executed again from the beginning after eliminating the logic failure.

ところで、一つのICに複数のCPUコアが搭載されるマルチコア化されたデータ処理装置では、各コアが異なるOSを実行したり、各コア毎に異なる事象が発生しうるので、実機がマルチコアであると、その事象をシミュレータで再現することがコア数の増加に伴い累乗的に難しくなる。従来、このマルチコアの実機に対し、コア間の事象まで同期させてシミュレーションする技術は提案されていない。   By the way, in a multi-core data processing apparatus in which a plurality of CPU cores are mounted on one IC, each core can execute a different OS, or a different event can occur for each core, so the actual machine is multi-core. And it becomes difficult to reproduce the phenomenon with a simulator as the number of cores increases. Conventionally, there has not been proposed a technique for simulating the multi-core real machine in synchronization with events between cores.

本発明は、上記課題に鑑み、実機とシミュレータとを動的に切り替えることができるデータ処理装置、検証システム及びデータ処理装置検証方法を提供することを目的とする。また、コア間の事象を同期させてマルチコアのデータ処理装置をシミュレートできるデータ処理装置、検証システム及びデータ処理装置検証方法を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a data processing device, a verification system, and a data processing device verification method capable of dynamically switching between a real machine and a simulator. It is another object of the present invention to provide a data processing device, a verification system, and a data processing device verification method capable of simulating a multi-core data processing device by synchronizing events between cores.

上記課題に鑑み、本発明は、命令及びデータを規定するプログラムAPをメモリから読み出してオペレーティングシステム上で実行し、ソフトウェア又はハードウェアの状態を検証するための検証情報を出力するデータ処理装置であって、命令の実行に伴う、入出力情報、実行時間情報又は実行内容情報等の事象情報を、所定の時刻を基準にした時刻情報とともに記録する実行ログ記録手段と、検証情報を取得する範囲を実行ログに登録する範囲登録手段(例えば、再現区間登録部25)と、実行ログ記憶手段に記憶された実行ログを参照して、実行中のプログラムが、範囲の事象に到達したことを検出する範囲検出手段(例えば、再現区間検出部29)と、範囲の事象に到達したことが検出された場合、検証情報の取得を開始させる実行・検証切り替え手段(例えば、モード切替部27)と、を有し、範囲の検証情報の取得が完了すると、実行・検証切り替え手段が、検証情報の取得を終了させ、完了時の事象から再度、プログラムを実行する、ことを特徴とする。   In view of the above problems, the present invention is a data processing apparatus that reads a program AP defining instructions and data from a memory, executes the program AP on an operating system, and outputs verification information for verifying the state of software or hardware. An execution log recording means for recording event information such as input / output information, execution time information, or execution content information associated with execution of an instruction together with time information based on a predetermined time, and a range for acquiring verification information. Referring to the range registration means (for example, the reproduction section registration unit 25) to be registered in the execution log and the execution log stored in the execution log storage means, it detects that the program being executed has reached an event in the range. Range detection means (for example, the reproduction section detection unit 29), and execution of starting verification information acquisition when it is detected that a range event has been reached. And when the acquisition of the verification information of the range is completed, the execution / verification switching unit terminates the acquisition of the verification information and restarts the program from the event at the completion. It is characterized by performing.

本発明によれば、再現区間までは実機モードで実行し、再現区間はシミュレーションモードで実行するので、実機とシミュレータを動的に切り替えることができる。   According to the present invention, the real machine mode is executed until the reproduction section and the reproduction section is executed in the simulation mode, so that the real machine and the simulator can be dynamically switched.

また、本発明の一形態において、複数のCPUにより複数のOSを稼動するか、又は、複数のCPUにより1つのOSが稼動し、実行ログ記録手段は、CPU毎に事象情報を記録し、範囲検出手段は、それぞれのCPUが同じ時刻の事象情報の事象に到達したことを待って、範囲又はその手前に到達したことを検出する、ことを特徴とする。   In one embodiment of the present invention, a plurality of OSs are operated by a plurality of CPUs, or a single OS is operated by a plurality of CPUs, and the execution log recording unit records event information for each CPU. The detection means waits for each CPU to reach the event of the event information at the same time, and detects that the CPU has reached the range or the front thereof.

本発明によれば、各CPUが同じ時刻の事象情報の事象に到達するまで待機するので、コア間の事象の同期をとって、シミュレーションモードに切り替えることができる。   According to the present invention, since each CPU waits until the event of the event information at the same time arrives, it is possible to switch to the simulation mode by synchronizing the events between the cores.

実機とシミュレータとを動的に切り替えることができるデータ処理装置、検証システム及びデータ処理装置検証方法を提供することができる。コア間の事象を同期させてマルチコアのデータ処理装置をシミュレートできるデータ処理装置、検証システム及びデータ処理装置検証方法を提供することができる。   It is possible to provide a data processing device, a verification system, and a data processing device verification method that can dynamically switch between a real machine and a simulator. It is possible to provide a data processing apparatus, a verification system, and a data processing apparatus verification method capable of simulating a multi-core data processing apparatus by synchronizing events between cores.

以下、本発明を実施するための最良の形態について、図面を参照しながら実施例を挙げて説明する。   Hereinafter, the best mode for carrying out the present invention will be described with reference to the accompanying drawings.

図1は、本実施形態のデータ処理装置100の検証手順を概念的に説明する図である。データ処理装置100は、一台でコア1〜コアn(n≧2)を有するいわゆるマルチコアシステム又はマルチCPU(以下、単にマルチコアシステム)と称される、CPUコア又はCPUを複数備えた例えばノイマン型のコンピュータである。各コアはOS_A〜OS_Xを実行し(各コアが実行するOSは固定でない)、OS上では種々のアプリケーション(以下、APという)1〜nが実行される。ここで、データ処理装置100には、I/Oデバイス(デバイスドライバ)、特定のハードウェア(画像認識用のIC)等を含まれるので、本実施形態ではハードウェアを含めコア、OS、AP等をシステムと称する場合がある。   FIG. 1 is a diagram conceptually illustrating a verification procedure of the data processing apparatus 100 according to the present embodiment. The data processing apparatus 100 includes a plurality of CPU cores or CPUs, for example, a so-called multi-core system or multi-CPU (hereinafter simply referred to as multi-core system) having a core 1 to a core n (n ≧ 2). Computer. Each core executes OS_A to OS_X (the OS executed by each core is not fixed), and various applications (hereinafter referred to as AP) 1 to n are executed on the OS. Here, since the data processing apparatus 100 includes an I / O device (device driver), specific hardware (IC for image recognition), and the like, in this embodiment, the core, OS, AP, etc. including the hardware are included. May be referred to as a system.

<第1フェーズ>
(1)データ処理装置100は、各コア及び各OS毎に処理される事象を時刻に対応づけて時系列に記録する(以下、記録される情報を実行ログという)。実行ログは後述するように編集が可能である。
<First phase>
(1) The data processing apparatus 100 records events processed for each core and each OS in time series in association with time (hereinafter, the recorded information is referred to as an execution log). The execution log can be edited as will be described later.

ここで、事象とは、実行するAP及びOS、さらにAPであればイベント、操作情報の入出力、データの入出力、実行する関数、エラー情報、システムコール等が事象となり、OSであれば、実行するプロセス、コア間通信、データの入出力、利用したデバイスドライバ、APに割り当てたメモリ等が事象となる。そして、さらに例えばAPの「実行する関数」という事象は、実行する命令、データ等が事象となり、例えばOSの「コア間通信」という事象は、通信発行時刻、通信終了時刻及び通信結果等が事象となる。したがって、事象は階層的に管理することができ、実行ログにどの階層の事象までを含むかは設定できるようになっている。例えば、ユーザが階層をレベルで設定すると、そのレベルに対応づけられた階層の事象までを実行ログに記録したり、又は、所定の事象だけは必ず記録するように設定することができる。   Here, an event is an AP and OS to be executed, and if it is an AP, an event, operation information input / output, data input / output, a function to be executed, error information, a system call, etc. are events. Processes to be executed, inter-core communication, data input / output, used device driver, memory allocated to AP, and the like are events. Further, for example, the event “execution function” of the AP is an instruction, data, etc. to be executed, and for example, the event “inter-core communication” of the OS is an event of communication issue time, communication end time, communication result, etc. It becomes. Therefore, the events can be managed hierarchically, and it is possible to set up to what level of events are included in the execution log. For example, when a user sets a hierarchy by level, it can be set to record up to an event of a hierarchy associated with that level in the execution log or to record only a predetermined event.

また、本実施形態では、データ処理装置100が実機モードとシミュレーションモードを切り替える態様と、データ処理装置100とは別にシミュレータ(別のコンピュータ)が用意されている態様とがある。シミュレーションモードのデータ処理装置100又はシミュレータはソフトウェア又はハードウェアの状態を検証するための検証情報を出力する。   In the present embodiment, there are a mode in which the data processing apparatus 100 switches between the actual machine mode and the simulation mode, and a mode in which a simulator (another computer) is prepared separately from the data processing apparatus 100. The data processing apparatus 100 or simulator in the simulation mode outputs verification information for verifying the state of software or hardware.

データ処理装置100は起動時から時間の経過に応じて、OSやAPを実行していくものであるため、起動時刻を基準に時系列に事象を記録していく。したがって、実機モードとシミュレーションモードとで実行速度の違いがあっても、また、データ処理装置とシミュレータとで実行速度に違いがあっても、時間が経過すればいずれは同様な事象が発生する。   Since the data processing apparatus 100 executes the OS and AP as time elapses from the time of activation, events are recorded in chronological order based on the activation time. Therefore, even if there is a difference in execution speed between the real machine mode and the simulation mode, and even if there is a difference in execution speed between the data processing device and the simulator, a similar event will occur over time.

(2)そこで、検証したい事象をユーザが実行ログに登録できるようになっている。検証したい1つの事象のみを登録してもよいが、時系列の事象の範囲(以下、再現区間という)を、例えば開始時刻と終了時刻を指定することで、検証時に再現したい事象を含むように検証対象の事象を登録することができる。再現したい事象を指定して、その前後の所定時間を自動的に登録するようにしてもよい。   (2) Therefore, the user can register an event to be verified in the execution log. You may register only one event that you want to verify, but you can specify the time series of event ranges (hereinafter referred to as the reproduction interval), for example, by specifying the start time and end time so that the event you want to reproduce at the time of verification is included. Events to be verified can be registered. An event to be reproduced may be designated and a predetermined time before and after that may be automatically registered.

(3)ところで、検証時にこの再現区間を再現する場合、原理的には再現区間の開始時刻までデータ処理装置100を作動させなければならないが、実行ログの全てをシミュレーションモード又はシミュレータで実行する場合、再現区間の事象に到達するまで長時間の経過が必要となることがあるので、定期的又は不定期にチェックポイント設け、スナップショット情報を記憶しておくことが好適となる。スナップショット情報は、実機の状態を再現するための情報をいい、例えばメモリの内容、PSW(processor status word)、PC(Program Counter)等である。このスナップショット情報を記憶しておけば、再現区間の直前のチェックポイントから事象を辿ってAPを実行すればよいことになる。   (3) By the way, when reproducing this reproduction section at the time of verification, in principle, the data processing apparatus 100 must be operated until the start time of the reproduction section. However, when all the execution logs are executed in the simulation mode or the simulator. Since it may be necessary to elapse for a long time until the event in the reproduction section is reached, it is preferable to checkpoint regularly and irregularly and store snapshot information. The snapshot information is information for reproducing the state of the actual machine, and is, for example, memory contents, PSW (processor status word), PC (Program Counter), and the like. If this snapshot information is stored, the AP can be executed by tracing the event from the check point immediately before the reproduction section.

<第2フェーズ>
データ処理装置100が起動すると時間の経過により再現区間まで到達する。
<Second phase>
When the data processing apparatus 100 is activated, the reproduction section is reached over time.

(4)この再現区間の検出時、後述するようにマルチコアシステムに特有の現象として、実機と同じタイミングで各コアが同じ事象に到達するとは限らないという現象が起こる。このため、検証時は、指定した再現区間に最も早く到達したコアが、他のコアが指定した再現区間に到達するまで待ち、全ての各コアが指定された再現区間に到達したら、以降は各コアが同期をとりながらAPを実行することが好適となる。   (4) When this reproduction section is detected, as will be described later, a phenomenon that each core does not always reach the same event at the same timing as the actual machine occurs as a phenomenon peculiar to the multi-core system. Therefore, at the time of verification, it waits until the core that has reached the specified reproduction interval earliest reaches the reproduction interval specified by other cores, and when all cores reach the specified reproduction interval, It is preferable to execute the AP while the core is synchronized.

(5)また、スナップショット情報が記憶されている場合は、再現区間の手前のチェックポイントまでは、スナップショット情報により到達することができる。   (5) If snapshot information is stored, the check point before the reproduction section can be reached by the snapshot information.

(6)データ処理装置100が実機モードとシミュレーションモードを切り替える場合、再現区間が検出されると、データ処理装置100はシミュレーションモードに切り替えられる。シミュレーションモードでは、周知の、システムの機能検証、性能測定、評価、障害調査(以下、単に検証という)を行い、検証情報を出力する。別のコンピュータ(シミュレータ)で検証される場合、シミュレータの疑似環境で検証される。   (6) When the data processing apparatus 100 switches between the real machine mode and the simulation mode, when the reproduction section is detected, the data processing apparatus 100 is switched to the simulation mode. In the simulation mode, well-known system function verification, performance measurement, evaluation, and failure investigation (hereinafter simply referred to as verification) are performed, and verification information is output. When verified by another computer (simulator), it is verified in the simulated environment of the simulator.

(7)再現区間が終了すると、データ処理装置100は実機モードに戻る。再現区間では各コアの同期が取れているので、全コアが同期して実機モードに戻る。シミュレータが検証した場合、データ処理装置100に処理が移行する。以降は、データ処理装置100は実機として、再現区間以降の処理を実行し、また、再現区間があれば、同様にシミュレーションモードに切り替わったりシミュレータに処理が移行し、検証を実行する。   (7) When the reproduction section ends, the data processing apparatus 100 returns to the real machine mode. Since each core is synchronized in the reproduction section, all the cores are synchronized and return to the real machine mode. When the simulator verifies, the process shifts to the data processing apparatus 100. Thereafter, the data processing apparatus 100 executes the processing after the reproduction section as an actual machine. If there is a reproduction section, the data processing apparatus 100 similarly switches to the simulation mode or shifts to the simulator and executes verification.

したがって、本実施形態のデータ処理装置100は実機モードとシミュレーションモード、又は、データ処理装置100とシミュレータを動的に切り替えながら効率的に検証することができる。また、マルチコアシステムに対し各コア間の事象を同期させるので、マルチコアシステムのデータ処理装置100であっても正確にデータ処理装置100の事象を再現することができる。   Therefore, the data processing apparatus 100 of the present embodiment can efficiently verify the actual machine mode and the simulation mode, or dynamically switching between the data processing apparatus 100 and the simulator. In addition, since the events between the cores are synchronized with the multi-core system, even the data processing apparatus 100 of the multi-core system can accurately reproduce the events of the data processing apparatus 100.

本実施例では、シミュレーションモードと実機モードに切り替わり、シミュレーションモードにおいてシステムを検証するデータ処理装置100について説明する。   In this embodiment, a data processing apparatus 100 that switches between a simulation mode and an actual machine mode and verifies the system in the simulation mode will be described.

図2は、データ処理装置100の機能ブロック図の一例を示す。各ブロックは例えばCPUが検証プログラム40を実行するかASIC(Application Specific Integrated Circuit)等のハードウェアにより実現される。   FIG. 2 shows an example of a functional block diagram of the data processing apparatus 100. Each block is realized, for example, by the CPU executing the verification program 40 or hardware such as an ASIC (Application Specific Integrated Circuit).

検証プログラム40で実現する場合、各機能はAP又はOSの一態様として提供され、検証プログラム40は所定のコアが実行する所定のOS上で実行される。すなわち、検証プログラム40を実行するコア及びOSを限定する必要はない。また、検証プログラム40を実行するコア及びOSが、異なるOSを実行するコアの事象を取得するため、検証プログラム40はコア間通信及びOS間通信が可能となっている。検証プログラム40は、データ処理装置100の出荷時にハードディスクドライブやフラッシュメモリ(ハードディスク等という)に記憶されているか、又は、所定のサーバからダウンロードされる。   When implemented by the verification program 40, each function is provided as an aspect of an AP or OS, and the verification program 40 is executed on a predetermined OS executed by a predetermined core. That is, it is not necessary to limit the core and OS that execute the verification program 40. Moreover, since the core and OS which execute the verification program 40 acquire the event of the core which executes different OS, the verification program 40 can perform communication between cores and communication between OSs. The verification program 40 is stored in a hard disk drive or a flash memory (referred to as a hard disk or the like) at the time of shipment of the data processing apparatus 100, or downloaded from a predetermined server.

データ処理装置100は実行ログを記憶するため事象記録部23を有し、事象記録部23は実行ログ記憶部20に事象を記録していく。また、どの程度詳細な事象を記録するかを設定するため、階層指定部21を有する。階層指定部21は、例えば、ユーザインターフェイスとなる表示装置に選択可能な階層を表示し、ユーザが選択した階層に応じて記録する事象を事象記録部23に指示する。また、このような階層による指定の他に、ユーザは個別に記録する事象を設定できる。   The data processing apparatus 100 has an event recording unit 23 for storing an execution log, and the event recording unit 23 records events in the execution log storage unit 20. In addition, a hierarchy designation unit 21 is provided to set how much detailed events are recorded. For example, the hierarchy designating unit 21 displays selectable hierarchies on a display device serving as a user interface, and instructs the event recording unit 23 to record events according to the hierarchy selected by the user. In addition to the designation by such a hierarchy, the user can set events to be recorded individually.

図3は実行ログ記憶部20に記録される実行ログの一例を示す。実行ログは、各コアに対応づけて、OS及びAP毎に記録される。また、システムの起動時(例えば、スイッチオン、通電、起動開始操作等)から計測した時刻に対応づけて、時系列に記録される。定期的、又は、エラーのような所定の事象が発生するとその時刻の各コアの事象が記録される。   FIG. 3 shows an example of an execution log recorded in the execution log storage unit 20. The execution log is recorded for each OS and AP in association with each core. Further, it is recorded in time series in association with the time measured from the time of system activation (for example, switch-on, energization, activation start operation, etc.). Periodically or when a predetermined event such as an error occurs, the event of each core at that time is recorded.

実行ログを記録する時刻は各コアに共通であるので、同じ時刻に各コアの事象が記録される。記録までの遅延等を考慮すると厳密に同じ時刻(例えば、100分の1〜100分の10秒程度の精度)に記録されるとは限らないが、コア間に生じうる時刻の違いは既知であるので、誤差として扱うことができる。   Since the time for recording the execution log is common to each core, the event of each core is recorded at the same time. Considering the delay until recording, etc., it is not always recorded at the exact same time (for example, accuracy of about 1 / 100th to 100th of a second), but the time difference that can occur between the cores is known. Because there is, it can be treated as an error.

また、再現情報記録部24は、スナップショップ情報をスナップショット情報記憶部30に記録する。スナップショット情報により、いわゆるレジューム、サスペンド、ハイバネーションといった機能と同様に、システムの状況を再現することができる。   Further, the reproduction information recording unit 24 records the snap shop information in the snapshot information storage unit 30. With the snapshot information, the system status can be reproduced as well as functions such as so-called resume, suspend, and hibernation.

期間指定部22は、表示装置に期間(例えば、○○秒、○○分等)を入力する欄を表示するので、ユーザは所望の間隔を入力することができる。再現情報記録部24は入力された期間毎に定期的に、かつ、所定の事象をトリガーにスナップショット情報を記録する。スナップショット情報は、実行ログと同様に時刻と共に記録される。スナップショット情報の時刻は実行ログの時刻と同様、システムの起動時を基準に計測された時刻である。   The period designating unit 22 displays a field for inputting a period (for example, XX seconds, XX minutes) on the display device, so that the user can input a desired interval. The reproduction information recording unit 24 records snapshot information periodically for each input period and triggered by a predetermined event. The snapshot information is recorded along with the time as in the execution log. The time of the snapshot information is the time measured on the basis of the start-up time of the system, similar to the time of the execution log.

再現区間登録部25は、表示装置に時刻又は事象を入力する欄を表示し、ユーザにより入力された時刻又は事象に基づき実行ログに再現区間を登録する。図3では、「再現区間 始点」から「再現区間 終点」がユーザの指定した再現区間である。なお、再現区間は1つのログに複数あってもよい。データ処理装置100は再現区間の開始時刻から再現区間の終了時刻までシミュレーションモードとなり、それ以外では実機モードとなる。   The reproduction section registration unit 25 displays a field for inputting time or event on the display device, and registers the reproduction section in the execution log based on the time or event input by the user. In FIG. 3, the “reproduction section start point” to the “reproduction section end point” are the reproduction sections designated by the user. There may be a plurality of reproduction sections in one log. The data processing apparatus 100 enters the simulation mode from the start time of the reproduction section to the end time of the reproduction section, and enters the real machine mode otherwise.

そして、実行ログ編集部26は、ユーザによる実行ログの編集を可能とする。編集には2つの方法があり、その1つは実行ログ記録部が記録した実行ログを変更する方法である。例えば、複数のコアに同時刻に割込みなどの事象を発生させたい場合があるが、実機モードではかかる状況を生じさせることが困難な場合に、当該事象の時刻を各コアで同期させるため、時刻情報を変更することができる。もう1つの方法は、新たに事象を加える方法である。図3に示すように実行ログは時系列に記録されるので、前後の時刻の間に新たに事象を加えることができる。   The execution log editing unit 26 allows the user to edit the execution log. There are two methods of editing, one of which is a method of changing the execution log recorded by the execution log recording unit. For example, if you want to generate an event such as an interrupt in multiple cores at the same time, but it is difficult to cause such a situation in the actual machine mode, the time of the event is synchronized with each core. Information can be changed. Another method is to add a new event. Since the execution log is recorded in time series as shown in FIG. 3, a new event can be added between the previous and subsequent times.

実行ログ編集部26は例えば実行ログを表示装置に表示し、ユーザによる係る編集の入力を受け付け実行ログ記憶部20に記録する。そして、再現区間登録部25がこの事象を再現区間に含むように指定すれば、実機モードでは実現困難な事象を検証することができる。   The execution log editing unit 26 displays, for example, an execution log on the display device, receives an input of such editing by the user, and records it in the execution log storage unit 20. If the reproduction section registration unit 25 designates this event to be included in the reproduction section, it is possible to verify an event that is difficult to realize in the actual machine mode.

モード切替部27は、シミュレーションモードと実機モードを切り替える。切り替え方には、再現区間の開始時刻と終了時刻とに応じて自動に切り替える方法とユーザの操作による方法とがある。本実施例では主に再現区間に応じて自動に切り替わる態様とすることで、実機モードとシミュレーションモードとを動的に切り替えることが可能となる。   The mode switching unit 27 switches between the simulation mode and the actual machine mode. There are two ways of switching: a method of switching automatically according to the start time and end time of the reproduction section, and a method of user operation. In the present embodiment, it is possible to dynamically switch between the actual machine mode and the simulation mode by adopting a mode in which switching is automatically performed mainly according to the reproduction section.

スナップショット情報が記憶されている場合と記憶されていない場合があるが、どちらの場合でも再現区間の検出は同様である。再現区間検出部29は、APを実行しながら各事象を1つずつ実行ログ記憶部20の事象と照らし合わせ、システムが再現区間に設定された事象に到達すると、モード切替部27に通知する。これにより、モード切替部27はシステムをシミュレーションモードに切り替える。   Although the snapshot information may or may not be stored, the reproduction section detection is the same in either case. The reproduction section detection unit 29 compares each event one by one with the event in the execution log storage unit 20 while executing the AP, and notifies the mode switching unit 27 when the system reaches the event set in the reproduction section. Thereby, the mode switching unit 27 switches the system to the simulation mode.

ここで、あるコアでは再現区間に設定された事象に到達しても、他のコアでは同じ時刻に同じ事象に到達しない場合がある。これは、例えばハードディスクでは磁気ヘッドでデータにアクセスするが実機ヘッドの位置までは再現することが困難なので、ハードディスクへのアクセスの度に時刻がずれるからである。また、例えば、CSMA(Carrier Sense Multiple Access)のように一方が通信していると場合、他方からの通信を受け付けない場合、通信の衝突が生じればその後の処理の時刻がずれることになる。このような処理は各コアが独立に実行するので、コア間における事象の時間的なずれは避けられない。   Here, even if an event set in the reproduction section is reached in a certain core, the same event may not be reached at the same time in another core. This is because, for example, data is accessed with a magnetic head in a hard disk, but it is difficult to reproduce data up to the position of the actual machine head, so the time is shifted every time the hard disk is accessed. Further, for example, when one side is communicating as in CSMA (Carrier Sense Multiple Access), when communication from the other side is not accepted, the time of subsequent processing is shifted if a communication collision occurs. Since such a process is executed independently by each core, a time lag of events between the cores cannot be avoided.

そこで、本実施例では再現区間検出部29は、再現区間に設定された事象に最も早く到達したコアを検出して、他のコアの全てが再現区間に設定された事象に到達するまで、各コアを待機させる。そして、各コアが再現区間に設定された事象に到達するとシミュレーションモードに切り替わる。   Therefore, in the present embodiment, the reproduction section detection unit 29 detects the core that has reached the earliest event set in the reproduction section, and until each of the other cores reaches the event set in the reproduction section, Make the core wait. When each core reaches the event set in the reproduction section, the simulation mode is switched.

また、スナップショット情報を利用して再現区間に到達する場合、2つの方法がある。1つは、再現区間検出部29が再現区間を検出すると、システム再現部32は再現区間の開始時刻よりも時間的に前でかつ最も近いスナップショット情報を読み出しシステムに設定する方法である。また2つめは、予め、再現区間検出部29が再現区間の開始時刻よりも時間的に前でかつ最も近いチェックポイントを検出しておき、事象がチェックポイントまで到達したら、システム再現部32がスナップショット情報を読み出しシステムに設定する方法である。このように、スナップショット情報を利用することで、例えば、コア間の事象と時刻のずれを低減でき、再現区間の事象の再現が容易になる。   There are two methods for reaching the reproduction section using the snapshot information. One is a method in which, when the reproduction section detection unit 29 detects a reproduction section, the system reproduction unit 32 reads the snapshot information that is temporally earlier than the start time of the reproduction section and sets it in the system. The second is that the reproduction section detection unit 29 detects a checkpoint that is earlier in time and closest to the start time of the reproduction section, and when the event reaches the checkpoint, the system reproduction unit 32 snaps. This is a method for setting shot information in a reading system. In this way, by using the snapshot information, for example, the time lag between the events between the cores can be reduced, and the reproduction of the events in the reproduction section becomes easy.

また、動的に切り替えるのでなく、データ処理装置100は再現区間のみ(シミュレーションモードのみ)でAPを実行することができる。この場合、再現区間検出部29は実行ログ記憶部20から再現区間の開示時刻を読み出す。そして、システム再現部32はスナップショット情報記憶部30から読み出した開始時刻よりも時間的に前でかつ最も近いスナップショット情報を読み出しシステムに設定する。これにより、早期に再現区間に到達するので、検証時間を短縮することができる。   Further, instead of dynamically switching, the data processing apparatus 100 can execute the AP only in the reproduction section (simulation mode only). In this case, the reproduction section detection unit 29 reads the disclosure time of the reproduction section from the execution log storage unit 20. Then, the system reproduction unit 32 reads the snapshot information that is temporally earlier than the start time read from the snapshot information storage unit 30 and sets it in the reading system. Thereby, since the reproduction section is reached early, the verification time can be shortened.

また、逆に、システムの起動時からAPの全てをシミュレーションモードで実行してもよい。この場合、実行ログに再現区間が設定されていても、再現区間及び再現区間以外とが区別されずに検証され、再現区間が実行ログに設定されていなくてもシステムが検証される。すなわち、モード切替部27はシステムをシミュレーションモードに固定する。   Conversely, all of the APs may be executed in the simulation mode from the time of system startup. In this case, even if a reproduction section is set in the execution log, verification is performed without distinguishing between the reproduction section and other than the reproduction section, and the system is verified even if the reproduction section is not set in the execution log. That is, the mode switching unit 27 fixes the system to the simulation mode.

同期部31は再現区間検出部29と同様に、シミュレーションモードにおいて全コアの同期をとる。すなわち、各事象毎に全てのコアが到達するまで、すでにその事象に到達したコアを待機させ、全てのコアが同じ事象に到達したらシステム検証部28に処理の再開を許可する。したがって、本実施例のデータ処理装置100は、マルチコアシステムの各コアの事象を正確に再現したシステムの検証が可能となる。   Similar to the reproduction section detection unit 29, the synchronization unit 31 synchronizes all the cores in the simulation mode. That is, the core that has already reached the event is waited until all the cores arrive for each event, and when all the cores have reached the same event, the system verification unit 28 is allowed to resume the process. Therefore, the data processing apparatus 100 of the present embodiment can verify a system that accurately reproduces the events of each core of the multi-core system.

シミュレーションモードではシステム検証部28は、実機モードと同じOSやAPを実行しながら、各コア毎に、システム(ソフトウェア又はハードウェア)の状態を検証するための検証情報、例えば、実行命令、エラーコード、CPU負荷率、命令の実行速度、等を記録する。   In the simulation mode, the system verification unit 28 executes verification information for verifying the state of the system (software or hardware) for each core while executing the same OS and AP as in the actual machine mode, for example, an execution instruction, an error code. , CPU load factor, instruction execution speed, etc. are recorded.

スナップショット情報が記憶されているか否かに関わらず、再現区間の終了時刻までシステムの事象が到達すると、再現区間検出部29はモード切替部27に通知するので、モード切替部27は実機モードに切り替える。そして、再現区間の検証が終了すると、検査結果出力部は検証情報を表示装置に表示したり、ハードディスク等に記憶する。   Regardless of whether or not snapshot information is stored, when the system event reaches the end time of the reproduction section, the reproduction section detection unit 29 notifies the mode switching unit 27, so that the mode switching unit 27 enters the real machine mode. Switch. When the verification of the reproduction section is completed, the inspection result output unit displays the verification information on a display device or stores it in a hard disk or the like.

図4は、データ処理装置100が実行ログとスナップショット情報を記憶する手順を示すフローチャート図である。図4のフローチャート図は、例えばシステムの起動によりスタートする。なお、予め期間指定部22からスナップショット情報を記憶する期間が指定されており、階層指定部21から記憶する事象の階層が指定されている。また、事象は定期的及び所定の事象を検出して不定期に記憶するよう設定されている。   FIG. 4 is a flowchart showing a procedure in which the data processing apparatus 100 stores an execution log and snapshot information. The flowchart shown in FIG. 4 starts when the system is started, for example. A period for storing snapshot information is specified in advance from the period specifying unit 22, and a hierarchy of events to be stored is specified from the hierarchy specifying unit 21. In addition, the event is set so as to be periodically and predeterminedly detected and stored irregularly.

システムが起動すると(S10)、起動時刻を基準に各コアはOSやAPを実行していく。そして、再現情報記録部24はスナップショット情報を記憶する期間を、例えば期間指定部22が期間情報を記憶したハードディスク等から読み出し、事象記録部23は事象を記録するタイミング及び事象の階層をハードディスク等から読み出す。   When the system is activated (S10), each core executes the OS and AP based on the activation time. The reproduction information recording unit 24 reads the period for storing the snapshot information, for example, from the hard disk or the like in which the period specifying unit 22 stores the period information, and the event recording unit 23 sets the timing for recording the event and the hierarchy of the event to the hard disk or the like. Read from.

そして、事象記録部23は事象を記録するか否かを時刻又は発生した事象に基づき判定する(S30)。事象を記録する場合(S30のYes)、事象記録部23は指定された階層に応じて記憶するべき事象を取得し、各コア毎に、時刻情報と共に実行ログ記憶部20に記録する(S40)。   Then, the event recording unit 23 determines whether to record the event based on the time or the event that has occurred (S30). When recording an event (Yes in S30), the event recording unit 23 acquires an event to be stored according to the designated hierarchy, and records it in the execution log storage unit 20 together with time information for each core (S40). .

事象を記録しない場合(S30のNo)、再現情報記録部24は、期間情報に基づきスナップショット情報を記録する時刻となったか否かを判定する(S50)。スナップショット情報を記録する時刻となった場合(S50のYes)、再現情報記録部24はスナップショット情報をスナップショット情報記憶部30に記録する(S60)。なお、スナップショット情報を記録する事象が発生した場合は、不定期にスナップショット情報が記憶される。   When the event is not recorded (No in S30), the reproduction information recording unit 24 determines whether or not it is time to record the snapshot information based on the period information (S50). When it is time to record the snapshot information (Yes in S50), the reproduction information recording unit 24 records the snapshot information in the snapshot information storage unit 30 (S60). When an event for recording snapshot information occurs, snapshot information is stored irregularly.

データ処理装置100は以上の処理を所定時間、ユーザが停止するまで、又は、予め定められた時間が経過するまで繰り返す。   The data processing apparatus 100 repeats the above processing for a predetermined time until the user stops or until a predetermined time elapses.

図4の処理が終了し、実行ログ記憶部20に実行ログが記録され、スナップショット情報がスナップショット情報記憶部30に記録されると、例えば、ユーザの操作により再現区間登録部25が再現区間を指定する。また、所定のエラーのような事象を検出して、再現区間登録部25が自動的に再現区間を指定してもよい。この場合、再現区間の終了時刻は開始時刻から所定時間経過後又は特定の事象に決定される。   When the processing of FIG. 4 is completed, the execution log is recorded in the execution log storage unit 20, and the snapshot information is recorded in the snapshot information storage unit 30, for example, the reproduction section registration unit 25 is operated by the user operation. Is specified. Alternatively, an event such as a predetermined error may be detected, and the reproduction interval registration unit 25 may automatically specify the reproduction interval. In this case, the end time of the reproduction section is determined after a predetermined time has elapsed from the start time or as a specific event.

また、ユーザの操作により実行ログ編集部26が実行ログを編集してもよい。これにより、実機では生じにくい事象(コア間に同時に割込みを発生させる、臨界値の設定、生じにくい分岐の発生等)を検証することが可能となる。   Further, the execution log editing unit 26 may edit the execution log by a user operation. This makes it possible to verify events that are unlikely to occur in a real machine (such as setting critical values that cause interrupts to occur simultaneously between cores, occurrence of branches that are unlikely to occur).

図5は、データ処理装置100が動的に実機モードとシミュレーションモードとを切り替えシステムを検証する手順を示すフローチャート図である。図5のフローチャート図は、例えばユーザがシステムの検証操作を入力するとスタートする。なお、図5では再現区間が設定されており、再現区間のみを検証する手順を示す。再現区間以外では実機モードとして作動するので、フローチャート図のスタート時、データ処理装置100は実機モードで作動する。   FIG. 5 is a flowchart showing a procedure in which the data processing apparatus 100 dynamically switches between the real machine mode and the simulation mode and verifies the system. The flowchart in FIG. 5 starts when the user inputs a system verification operation, for example. In FIG. 5, a reproduction section is set, and a procedure for verifying only the reproduction section is shown. Since it operates as a real machine mode outside the reproduction section, the data processing apparatus 100 operates in the real machine mode at the start of the flowchart.

まず、システムが起動する(S10)。そして、再現区間検出部29は、実行ログ記憶部20を参照して再現区間の開始時刻を読み出す(S110)。また、再現区間に早期に到達するため、システム再現部32はスナップショット情報が記憶されているか否かを判定する(S120)。スナップショット情報が記憶されている場合(S120のYes)、システム再現部32は再現区間の開始時刻よりも前で最も近い時刻のスナップショット情報を読み出す(S130)。そして、スナップショット情報によりメモリ及び各コアの状態を再現し、システムの処理を再開する(S140)。   First, the system is activated (S10). Then, the reproduction section detection unit 29 reads the start time of the reproduction section with reference to the execution log storage unit 20 (S110). Moreover, in order to reach the reproduction section early, the system reproduction unit 32 determines whether snapshot information is stored (S120). When the snapshot information is stored (Yes in S120), the system reproduction unit 32 reads the snapshot information at the closest time before the start time of the reproduction section (S130). Then, the state of the memory and each core is reproduced based on the snapshot information, and the system processing is resumed (S140).

スナップショット情報が記憶されていない場合、システムの起動時から再現区間の開始時刻まで実機モードで実行することになるが、実機モードで実行できるので非現実的な時間がかかることはない。   When the snapshot information is not stored, it is executed in the real machine mode from the start of the system to the start time of the reproduction section. However, since it can be executed in the real machine mode, it does not take an unrealistic time.

ついで、再現区間検出部29はいずれかのコアが再現区間の事象に到達したか否かを判定する(S150)。すなわち、複数のコアのうち最も早く再現区間の事象に到達したコアを検出する。いずれかのコアが再現区間の事象に到達すると(S150のYes)、再現区間検出部29は他の全てのコアが同じ事象に到達するまで、先に事象に到達したコアを待機させる(S160)。再現区間の各コアの事象は同じ時刻に記憶されているので、この「同じ事象」とは「同じ時刻」のことを示す。   Next, the reproduction section detection unit 29 determines whether any core has reached the event of the reproduction section (S150). That is, the core that reaches the event in the reproduction section earliest among the plurality of cores is detected. When any of the cores reaches the event in the reproduction section (Yes in S150), the reproduction section detection unit 29 waits for the core that has reached the event first until all other cores reach the same event (S160). . Since the event of each core in the reproduction section is stored at the same time, this “same event” indicates “the same time”.

他の全てのコアが同じ事象に到達すると(S170のYes)、モード切替部27は実機モードからシミュレーションモードに切り替える(S180)。これにより、システム検証部28はシステムの検証を開始する(S190)。同期部31は全コアの同期をとりながら(実行ログを参照して、全てのコアが同じ時刻の事象に到達したら、次の事象に向けてシステムの再開を許可する)、実機モードと同じOSやAPを実行して、機能検証、性能検証、障害調査等を実行する。このように、コア間で同期をとることで、例えばコア間通信のような事象に対し実機モードと同じ事象を精度よく再現することができる。   When all other cores reach the same event (Yes in S170), the mode switching unit 27 switches from the real machine mode to the simulation mode (S180). As a result, the system verification unit 28 starts system verification (S190). The synchronization unit 31 synchronizes all the cores (refers to the execution log, and when all the cores reach the event at the same time, permits the system to resume for the next event), the same OS as the actual machine mode Executes function verification, performance verification, failure investigation, etc. Thus, by synchronizing between cores, the same event as in the actual machine mode can be accurately reproduced for an event such as inter-core communication.

シミュレーションモードの間、再現区間検出部29は再現区間の終了時刻に到達したか否かを判定し(S200)、各コアが再現区間の終了時刻に到達すると(S200のYes)、検証結果出力部33は検証情報を出力する(S210)。また、モード切替部27は再現区間の終了を通知され、シミュレーションモードから実機モードに切り替える(S220)。   During the simulation mode, the reproduction section detection unit 29 determines whether or not the end time of the reproduction section has been reached (S200). When each core reaches the end time of the reproduction section (Yes in S200), a verification result output unit. 33 outputs verification information (S210). Further, the mode switching unit 27 is notified of the end of the reproduction section, and switches from the simulation mode to the real machine mode (S220).

以降は、ステップ130から処理を繰り返し、データ処理装置100は再現区間ではシミュレーションモードに切り替わり、再現区間が終了すると実機モードに切り替わる。したがって、モードが動的に切り替わりながらシステムを検証することができる。   Thereafter, the processing is repeated from step 130, and the data processing apparatus 100 switches to the simulation mode in the reproduction section, and switches to the real machine mode when the reproduction section ends. Therefore, the system can be verified while the mode is dynamically switched.

以上説明したように、本実施例のデータ処理装置100は、シミュレーションモードと実機モードを動的に切り替えることで、実機モードによる事象の発生タイミングに従い、以降はシミュレーションモードで検証することができるので、実機モードとシミュレーションモードの利点を併せ持った検証が可能となる。また、コア間の事象を同期させることで、マルチコアシステムでもシステムの正確な検証が可能となる。   As described above, the data processing apparatus 100 according to the present embodiment dynamically verifies the simulation mode and the real machine mode, thereby enabling the verification in the simulation mode thereafter according to the occurrence timing of the event in the real machine mode. Verification that combines the advantages of real machine mode and simulation mode is possible. In addition, by synchronizing events between cores, it is possible to accurately verify the system even in a multi-core system.

本実施例では、データ処理装置100と別体に設けられたシミュレータ200を用いた検証について説明する。図6は、データ処理装置100とシミュレータ200とを有する検証システム300を模式的に示す図である。   In this embodiment, verification using a simulator 200 provided separately from the data processing apparatus 100 will be described. FIG. 6 is a diagram schematically illustrating a verification system 300 including the data processing apparatus 100 and the simulator 200.

シミュレータ200はコンピュータである。シミュレータ200はデータ処理装置100と同一のハードウェアを備えることが好ましいが、現実には困難な場合が多くいわゆるエミュレータにより、データ処理装置100のコア及びOSを再現し、疑似環境を実現している。したがって、シミュレータ200によるAPの実行は速度が低下することが多いが、データ処理装置100で動作するAPを、データ処理装置100と同じ疑似環境上で実行することができる。データ処理装置100とシミュレータ200は例えばネットワークで接続されており、通信可能となっている。   The simulator 200 is a computer. The simulator 200 is preferably provided with the same hardware as the data processing apparatus 100, but in many cases, it is difficult in practice, and the so-called emulator reproduces the core and OS of the data processing apparatus 100 to realize a pseudo environment. . Therefore, although the speed of AP execution by the simulator 200 often decreases, the AP operating on the data processing apparatus 100 can be executed on the same pseudo environment as the data processing apparatus 100. The data processing apparatus 100 and the simulator 200 are connected via a network, for example, and can communicate with each other.

機能ブロック図は図2と同様であるが、このうち、階層指定部21、期間指定部22、事象記録部23及び再現情報記録部24、再現区間検出部29はデータ処理装置100が有し、システム検証部28、再現区間検出部29、システム再現部32、同期部31及び検証結果出力部33、はシミュレータ200が有する。再現区間登録部25及び実行ログ編集部26は、データ処理装置100及びシミュレータ200のいずれ有していてもよい。   The functional block diagram is the same as that in FIG. 2, but the data processing apparatus 100 includes the hierarchy designation unit 21, the period designation unit 22, the event recording unit 23, the reproduction information recording unit 24, and the reproduction section detection unit 29. The simulator 200 includes the system verification unit 28, the reproduction section detection unit 29, the system reproduction unit 32, the synchronization unit 31, and the verification result output unit 33. The reproduction section registration unit 25 and the execution log editing unit 26 may have either the data processing device 100 or the simulator 200.

データ処理装置100とシミュレータ200の両方が再現区間検出部29を有するのは、データ処理装置100は実施例1と同様に再現区間を検出する必要があり、シミュレータ200はチェックポイントから再現区間を検出する場合があるためである。また、実行ログ記憶部20とスナップショット情報記憶部30には、データ処理装置100とシミュレータ200の両者がアクセスできるようになっている。   Both the data processing apparatus 100 and the simulator 200 have the reproduction section detection unit 29. The data processing apparatus 100 needs to detect the reproduction section as in the first embodiment, and the simulator 200 detects the reproduction section from the checkpoint. It is because there is a case to do. Further, both the data processing device 100 and the simulator 200 can access the execution log storage unit 20 and the snapshot information storage unit 30.

データ処理装置100からシミュレータ200への切り替えには2つの方法がある。1つは、データ処理装置100が実機として処理を実行し再現区間に到達すると、実機の状態を再現するための実機情報をシミュレータ200に送信する方法である。この実機情報はスナップショット情報と同等の情報であるので、シミュレータ200はシステムの状態を再現できる。   There are two methods for switching from the data processing apparatus 100 to the simulator 200. One is a method in which, when the data processing apparatus 100 executes processing as an actual machine and reaches the reproduction section, actual machine information for reproducing the state of the actual machine is transmitted to the simulator 200. Since the actual machine information is equivalent to the snapshot information, the simulator 200 can reproduce the system state.

もう1つは、スナップショット情報を用いる方法である。データ処理装置100又はシミュレータ200が再現区間を取得すれば、シミュレータ200は再現区間よりも時間的に前でかつ最も近いスナップショット情報を読み出しシステムに設定することができる。   The other is a method using snapshot information. If the data processing apparatus 100 or the simulator 200 acquires the reproduction section, the simulator 200 can read the snapshot information that is temporally earlier than the reproduction section and set it in the system.

再現区間までデータ処理装置100がAPを実行することを考慮すると、チェックポイントから再現区間の開始時刻までは、データ処理装置100とシミュレータ200で同じ処理を重複して実行することになる。これを回避するため、データ処理装置100が再現区間の手前のチェックポイントまで実行したらシミュレータ200に通知し、シミュレータ200がスナップショット情報を読み出しシステムに設定してもよい。   Considering that the data processing apparatus 100 executes the AP until the reproduction section, the same processing is repeated in the data processing apparatus 100 and the simulator 200 from the check point to the start time of the reproduction section. In order to avoid this, the data processing apparatus 100 may notify the simulator 200 when it has executed up to the check point before the reproduction section, and the simulator 200 may read the snapshot information and set it in the system.

なお、シミュレータ200が再現区間の終了時刻まで実行したら、シミュレータ200はスナップショット情報と同等のシミュレータ情報をデータ処理装置100に送信する。これにより、再現区間以降の処理をデータ処理装置100が実行できる。   If the simulator 200 is executed until the end time of the reproduction section, the simulator 200 transmits simulator information equivalent to the snapshot information to the data processing device 100. Thereby, the data processing apparatus 100 can execute the processing after the reproduction section.

図7は、データ処理装置100とシミュレータ200が動的に切り替わって再現区間を検証する手順を示すシーケンス図である。図7のシーケンス図は、スナップショット情報が記憶されていない場合の手順を示す。   FIG. 7 is a sequence diagram illustrating a procedure in which the data processing apparatus 100 and the simulator 200 are dynamically switched to verify the reproduction section. The sequence diagram of FIG. 7 shows a procedure when snapshot information is not stored.

まず、データ処理装置100が起動する(S10)。そして、再現区間検出部29は、実行ログ記憶部20を参照して再現区間の開始時刻を読み出す(S110)。ついで、システムの起動時から再現区間の開始時刻までデータ処理装置100はAPの各処理を実行していく。   First, the data processing apparatus 100 is activated (S10). Then, the reproduction section detection unit 29 reads the start time of the reproduction section with reference to the execution log storage unit 20 (S110). Next, the data processing apparatus 100 executes each process of the AP from the start of the system to the start time of the reproduction section.

そして、再現区間検出部29はいずれかのコアが再現区間の事象に到達したか否かを判定する(S150)。すなわち、複数のコアのうち最も早く再現区間の事象に到達したコアを検出する。いずれかのコアが再現区間の事象に到達すると(S150のYes)、再現区間検出部29は他の全てのコアが同じ事象に到達するまで、先に事象に到達したコアを待機させる(S160)。   Then, the reproduction section detection unit 29 determines whether any core has reached the event of the reproduction section (S150). That is, the core that reaches the event in the reproduction section earliest among the plurality of cores is detected. When any of the cores reaches the event in the reproduction section (Yes in S150), the reproduction section detection unit 29 waits for the core that has reached the event first until all other cores reach the same event (S160). .

他の全てのコアが同じ事象に到達すると、データ処理装置100は実機情報をシミュレータ200に送信する(S210)。この実機情報はスナップショット情報と同等なので再現情報記録部24が実機情報をシステムから取得する。   When all other cores reach the same event, the data processing apparatus 100 transmits actual machine information to the simulator 200 (S210). Since the actual machine information is equivalent to the snapshot information, the reproduction information recording unit 24 acquires the actual machine information from the system.

シミュレータ200は実機情報を受信し(S310)、実機情報に基づき疑似環境上でメモリ及び各コアの状態を再現し、システムの処理を再開する(S320)。   The simulator 200 receives the real machine information (S310), reproduces the state of the memory and each core on the simulated environment based on the real machine information, and restarts the system processing (S320).

ついで、システム検証部28はシステムの検証を開始する(S330)。すなわち、同期部31は全コアの同期をとりながら、疑似環境上で同じOSやAPを実行して、機能検証、性能検証、障害調査等を実行する。   Next, the system verification unit 28 starts system verification (S330). That is, the synchronization unit 31 executes the same OS and AP on the pseudo environment while synchronizing all the cores, and performs function verification, performance verification, failure investigation, and the like.

システムの検証中、再現区間検出部29は再現区間の終了時刻に到達したか否かを判定し(S340)、各コアが再現区間の終了時刻に到達すると(S340のYes)、検証結果出力部33は検証情報を出力する(S350)。また、シミュレータ200はシミュレータ情報をデータ処理装置100に送信する(S360)。   During verification of the system, the reproduction section detection unit 29 determines whether or not the end time of the reproduction section has been reached (S340), and when each core reaches the end time of the reproduction section (Yes in S340), a verification result output unit 33 outputs verification information (S350). Further, the simulator 200 transmits simulator information to the data processing apparatus 100 (S360).

データ処理装置100がシミュレータ情報を受信すると、データ処理装置100の処理に移行し、データ処理装置100はステップS110からの処理を繰り返す。すなわち、データ処理装置100は次の再現区間までAPを実行し、再現区間になるとシミュレータ200による検証を実行する。このように、データ処理装置100とシミュレータ200が別体であっても、処理を動的に切り替えながらシステムを検証することができる。   When the data processing device 100 receives the simulator information, the process proceeds to the processing of the data processing device 100, and the data processing device 100 repeats the processing from step S110. That is, the data processing apparatus 100 executes the AP until the next reproduction section, and executes the verification by the simulator 200 when the reproduction section is reached. Thus, even if the data processing apparatus 100 and the simulator 200 are separate, the system can be verified while dynamically switching the processing.

本実施例の検証システム300は、実施例1の効果に加え、専用のシミュレータ200を用いるので、精度の高い検証情報を取得することができる。   Since the verification system 300 of this embodiment uses the dedicated simulator 200 in addition to the effects of the first embodiment, highly accurate verification information can be acquired.

データ処理装置の検証手順を概念的に説明する図である。It is a figure which illustrates notionally the verification procedure of a data processor. データ処理装置の機能ブロック図の一例である。It is an example of a functional block diagram of a data processor. 実行ログ記憶部に記録される実行ログの一例を示す図である。It is a figure which shows an example of the execution log recorded on an execution log memory | storage part. データ処理装置が実行ログとスナップショット情報を記憶する手順を示すフローチャート図である。It is a flowchart figure which shows the procedure in which a data processor memorize | stores an execution log and snapshot information. データ処理装置が動的に実機モードとシミュレーションモードとを切り替えシステムを検証する手順を示すフローチャート図である。It is a flowchart figure which shows the procedure in which a data processor switches a real machine mode and a simulation mode dynamically, and verifies a system. データ処理装置とシミュレータとを有する検証システムを模式的に示す図である。It is a figure which shows typically the verification system which has a data processor and a simulator. データ処理装置とシミュレータが動的に切り替わって再現区間を検証する手順を示すシーケンス図である。It is a sequence diagram which shows the procedure in which a data processor and a simulator change dynamically, and verify a reproduction area.

符号の説明Explanation of symbols

20 実行ログ記憶部
23 事象記録部
24 再現情報記録部
30 スナップショット情報記憶部
100 データ処理装置
200 シミュレータ
300 検証システム
DESCRIPTION OF SYMBOLS 20 Execution log memory | storage part 23 Event recording part 24 Reproduction information recording part 30 Snapshot information storage part 100 Data processing apparatus 200 Simulator 300 Verification system

Claims (7)

命令及びデータを規定するプログラムをメモリから読み出してオペレーティングシステム上で実行し、ソフトウェア又はハードウェアの状態を検証するための検証情報を出力するデータ処理装置であって、
前記命令の実行に伴う、入出力情報、実行時間情報又は実行内容情報等の事象情報を、所定の時刻を基準にした時刻情報とともに記録する実行ログ記録手段と、
前記検証情報を取得する時間的な範囲を前記実行ログに登録する範囲登録手段と、
前記実行ログ記憶手段に記憶された前記実行ログを参照して、実行中の前記プログラムが、前記範囲の事象に到達したことを検出する範囲検出手段と、
前記範囲の事象に到達したことが検出された場合、前記検証情報の取得を開始させる実行・検証切り替え手段と、を有し、
前記範囲の前記検証情報の取得が完了すると、前記実行・検証切り替え手段は、前記検証情報の取得を終了させ、完了時の事象から再度、前記プログラムを実行させる、
ことを特徴とするデータ処理装置。
A data processing device that reads a program defining instructions and data from a memory, executes the program on an operating system, and outputs verification information for verifying the state of software or hardware,
Execution log recording means for recording event information such as input / output information, execution time information or execution content information along with execution of the instruction together with time information based on a predetermined time;
Range registration means for registering the time range for acquiring the verification information in the execution log;
Range detection means for referring to the execution log stored in the execution log storage means and detecting that the program being executed has reached the event in the range;
Execution / verification switching means for starting acquisition of the verification information when it is detected that an event in the range has been reached,
When the acquisition of the verification information in the range is completed, the execution / verification switching unit ends the acquisition of the verification information, and causes the program to be executed again from the event at the completion.
A data processing apparatus.
複数のCPUにより複数のオペレーティングシステムを稼動させるか、又は、複数のCPUにより1つのオペレーティングシステムを稼動させ、
前記実行ログ記録手段は、前記CPU毎に前記事象情報を記録し、
前記範囲検出手段は、それぞれの前記CPUが同じ時刻の前記事象情報の事象に到達したことを待って、前記範囲の事象に到達したことを検出する、
ことを特徴とする請求項1記載のデータ処理装置。
Run multiple operating systems with multiple CPUs, or run one operating system with multiple CPUs,
The execution log recording means records the event information for each CPU,
The range detecting means waits for each of the CPUs to reach the event of the event information at the same time, and detects that the event of the range has been reached.
The data processing apparatus according to claim 1.
前記実行・検証切り替え手段が、前記検証情報の取得を開始させた場合、
全ての前記CPUが同じ時刻情報の事象に到達するまで、すでに該事象に到達した前記CPUを待機させ、全ての前記CPUが同じ事象に到達したら、次の事象へ向けた処理を許可する同期手段、を有する、
ことを特徴とする請求項2記載のデータ処理装置。
When the execution / verification switching unit starts acquiring the verification information,
Synchronizing means for allowing the CPUs that have already reached the event to wait until all the CPUs have reached the same time information event, and permitting processing for the next event when all the CPUs have reached the same event Having
The data processing apparatus according to claim 2.
定期的又は前記事象情報に基づき、前記ソフトウェア及び前記ハードウェアの状態を再現する再現情報を前記時刻情報とともに記録する再現情報記録手段と、
前記範囲よりも時間的に手前かつ最寄りの前記再現情報を読み出し、前記ソフトウェア及び前記ハードウェアの状態を再現する再現手段と、を有し、
前記再現手段が再現した状態から、前記範囲検出手段は前記範囲の事象に到達したことを検出する、
ことを特徴とする請求項1〜3いずれか1項記載のデータ処理装置。
Reproduction information recording means for recording reproduction information that reproduces the state of the software and the hardware together with the time information periodically or based on the event information;
Reproduction means for reading out the reproduction information nearest and temporally before the range, and reproducing the state of the software and the hardware,
From the state reproduced by the reproduction means, the range detection means detects that the event of the range has been reached,
The data processing device according to claim 1, wherein the data processing device is a data processing device.
前記事象情報を変更し、又は、前記実行ログに新たな前記事象情報を追加する実行ログ編集手段を有する、
ことを特徴とする請求項1〜3いずれか1項記載のデータ処理装置。
Having an execution log editing means for changing the event information or adding new event information to the execution log;
The data processing device according to claim 1, wherein the data processing device is a data processing device.
メモリに記憶された命令及びデータを規定するプログラムを実行するデータ処理装置と、前記データ処理装置のハードウェア及びソフトウェアの疑似環境を生成し、前記プログラムを実行して、前記ソフトウェア又は前記ハードウェアの状態を検証するための検証情報を出力するシミュレータと、を有する検証システムであって、
前記データ処理装置は、
前記命令の実行に伴う、入出力情報、時間情報又は実行内容情報等の事象情報を、所定の時刻を基準にした時刻情報とともに記録する実行ログ記録手段と、
前記実行ログを前記シミュレータに送信する第1の送信手段と、
前記検証情報を取得する範囲を前記実行ログに登録する範囲登録手段と、
前記実行ログ記憶手段に記憶された前記実行ログを参照して、実行中の前記プログラムが、前記範囲の事象に到達したことを検出する範囲検出手段と、
前記範囲検出手段が前記範囲の事象に到達したことを検出した場合、前記ソフトウェア及び前記ハードウェアの状態を再現するためのデータ処理装置情報を前記シミュレータに送信する第2の送信手段と、を有し、
前記シミュレータは、
前記データ処理装置情報に基づき、前記ソフトウェア及び前記ハードウェアの状態を再現する再現手段、を有し、
前記再現手段が再現した状態から、前記検証情報の取得を開始し、前記範囲の前記検証情報の取得が完了すると、前記ソフトウェア及び前記ハードウェアの状態を再現するためのシミュレータ情報を前記データ処理装置に送信する、
ことを特徴とする検証システム。
A data processing device that executes a program that defines instructions and data stored in a memory, and a hardware and software pseudo-environment of the data processing device are generated, the program is executed, and the software or the hardware A verification system having a simulator for outputting verification information for verifying a state,
The data processing device includes:
Execution log recording means for recording event information such as input / output information, time information, or execution content information associated with execution of the instruction together with time information based on a predetermined time;
First transmission means for transmitting the execution log to the simulator;
Range registration means for registering the range for acquiring the verification information in the execution log;
Range detection means for referring to the execution log stored in the execution log storage means and detecting that the program being executed has reached the event in the range;
And second transmission means for transmitting data processing device information for reproducing the software and the hardware state to the simulator when the range detection means detects that the event of the range has been reached. And
The simulator
Reproducing means for reproducing the software and the hardware state based on the data processing apparatus information,
The acquisition of the verification information is started from the state reproduced by the reproduction means, and when the acquisition of the verification information in the range is completed, simulator information for reproducing the state of the software and the hardware is obtained from the data processing device. Send to
A verification system characterized by that.
命令及びデータを規定するプログラムをメモリから読み出して実行するデータ処理装置の、ソフトウェア又はハードウェアの状態の検証情報を出力するデータ処理装置検証方法であって、
実行ログ記録手段が、前記命令の実行に伴う、入出力情報、実行時間情報又は実行内容情報等の事象情報を、所定の時刻を基準にした時刻情報と共に、時系列に記録した実行ログを、記憶手段に記録するステップと、
範囲登録手段が、前記検証情報を取得する範囲を前記実行ログに登録するステップと、
範囲検出手段が、前記実行ログ記憶手段に記憶された前記実行ログを参照して、実行中の前記プログラムが、前記範囲の事象に到達したことを検出するステップと、
前記範囲の事象に到達したことが検出された場合、実行・検証切り替え手段が、前記検証情報の取得を開始させるステップと、
前記範囲の前記検証情報の取得が完了すると、前記実行・検証切り替え手段が、前記検証情報の取得を終了させ、完了時の事象から再度、前記プログラムを実行させるステップ、
有することを特徴とするデータ処理装置検証方法。
A data processing device verification method for outputting verification information of software or hardware status of a data processing device that reads and executes a program defining instructions and data from a memory,
Execution log recording means, event information such as input / output information, execution time information or execution content information accompanying the execution of the instruction, together with time information based on a predetermined time, an execution log recorded in time series, Recording in storage means;
A range registering unit for registering a range in which the verification information is acquired in the execution log;
A range detecting means referring to the execution log stored in the execution log storage means to detect that the program being executed has reached an event in the range;
When it is detected that an event in the range has been reached, the execution / verification switching unit starts acquiring the verification information; and
When the acquisition of the verification information in the range is completed, the execution / verification switching unit ends the acquisition of the verification information, and executes the program again from the event at the completion;
A data processing device verification method comprising:
JP2008270566A 2008-10-21 2008-10-21 Data processor, verification system, data processor verification method Pending JP2010102372A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008270566A JP2010102372A (en) 2008-10-21 2008-10-21 Data processor, verification system, data processor verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008270566A JP2010102372A (en) 2008-10-21 2008-10-21 Data processor, verification system, data processor verification method

Publications (1)

Publication Number Publication Date
JP2010102372A true JP2010102372A (en) 2010-05-06

Family

ID=42292997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008270566A Pending JP2010102372A (en) 2008-10-21 2008-10-21 Data processor, verification system, data processor verification method

Country Status (1)

Country Link
JP (1) JP2010102372A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935511B2 (en) 2010-10-11 2015-01-13 International Business Machines Corporation Determining processor offsets to synchronize processor time values
JP2020021173A (en) * 2018-07-30 2020-02-06 東芝情報システム株式会社 Digital verification support apparatus and digital verification support program
US11520954B2 (en) 2019-03-27 2022-12-06 Hitachi, Ltd. Simulation management method, simulation system, and program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62211739A (en) * 1986-03-13 1987-09-17 Hitachi Ltd Device and method for logic test of data processor
JPH10161902A (en) * 1996-12-04 1998-06-19 Hitachi Ltd Computer control system and operation reproducing device therefor
JP2000020349A (en) * 1998-07-06 2000-01-21 Toshiba Corp Device and method for supporting program development and medium recording program for program development support
JP2000268005A (en) * 1999-03-15 2000-09-29 Mitsubishi Electric Corp System and method for parallel distributed simulation
JP2004078599A (en) * 2002-08-19 2004-03-11 Handotai Rikougaku Kenkyu Center:Kk Simulation method and system for instruction scheduling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62211739A (en) * 1986-03-13 1987-09-17 Hitachi Ltd Device and method for logic test of data processor
JPH10161902A (en) * 1996-12-04 1998-06-19 Hitachi Ltd Computer control system and operation reproducing device therefor
JP2000020349A (en) * 1998-07-06 2000-01-21 Toshiba Corp Device and method for supporting program development and medium recording program for program development support
JP2000268005A (en) * 1999-03-15 2000-09-29 Mitsubishi Electric Corp System and method for parallel distributed simulation
JP2004078599A (en) * 2002-08-19 2004-03-11 Handotai Rikougaku Kenkyu Center:Kk Simulation method and system for instruction scheduling

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935511B2 (en) 2010-10-11 2015-01-13 International Business Machines Corporation Determining processor offsets to synchronize processor time values
US9811336B2 (en) 2010-10-11 2017-11-07 International Business Machines Corporation Determining processor offsets to synchronize processor time values
JP2020021173A (en) * 2018-07-30 2020-02-06 東芝情報システム株式会社 Digital verification support apparatus and digital verification support program
JP7180043B2 (en) 2018-07-30 2022-11-30 東芝情報システム株式会社 Digital verification support device and digital verification support program
US11520954B2 (en) 2019-03-27 2022-12-06 Hitachi, Ltd. Simulation management method, simulation system, and program

Similar Documents

Publication Publication Date Title
US10318409B2 (en) Application development environment for portable electronic devices
US8813035B2 (en) Paradigm for concurrency testcase generation
US8484006B2 (en) Method for dynamically adjusting speed versus accuracy of computer platform simulation
US10095611B1 (en) Methodology for unit test and regression framework
US7926040B2 (en) Method and system for timing code execution in a korn shell script
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US9262305B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US20130139129A1 (en) Test method for handheld electronic device application
US20060036910A1 (en) Automated testing framework for event-driven systems
US20110314335A1 (en) Failure reproducing apparatus and failure reproducing method
KR20160029754A (en) Software failure locating method, apparatus and equipment
JP2009244999A (en) Virtual machine management program and management server device
JP2017084082A (en) Simulation device, test scenario file creation method, and test method using test scenario file
Fournier et al. Analyzing blocking to debug performance problems on multi-core systems
JP2010102372A (en) Data processor, verification system, data processor verification method
Carnevali et al. Putting preemptive Time Petri Nets to work in a V-Model SW life cycle
US8250545B2 (en) Associated apparatus and method for supporting development of semiconductor device
JP2001209411A (en) Plc simulator
CN103713977A (en) Microprocessor IP (internet protocol) kernel comparison and verification implementation method
US9218273B2 (en) Automatic generation of a resource reconfiguring test
JP5314959B2 (en) Information processing apparatus, control method therefor, computer program, and storage medium
JP2009104490A (en) Apparatus for testing program
JP2006277280A (en) Computer system, its date time change method and date change method
US10339229B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
JP2010170325A (en) Information processor, log storage method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130528