JP2012099035A - プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム - Google Patents

プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム Download PDF

Info

Publication number
JP2012099035A
JP2012099035A JP2010248120A JP2010248120A JP2012099035A JP 2012099035 A JP2012099035 A JP 2012099035A JP 2010248120 A JP2010248120 A JP 2010248120A JP 2010248120 A JP2010248120 A JP 2010248120A JP 2012099035 A JP2012099035 A JP 2012099035A
Authority
JP
Japan
Prior art keywords
processor
instruction
unit
operand
simulation
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
JP2010248120A
Other languages
English (en)
Inventor
Hiroshi Takao
博 高尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010248120A priority Critical patent/JP2012099035A/ja
Priority to US13/225,839 priority patent/US8707102B2/en
Publication of JP2012099035A publication Critical patent/JP2012099035A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】プロセッサの動作検証を効率的に行い、検証精度を向上させる。
【解決手段】プロセッサ12bの動作を検証するプロセッサの動作検証方法であって、プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータ34aで実行し、実行された試験命令列の結果から期待値を取得する工程と、試験命令列をプロセッサで実行させて結果値を取得する工程と、取得された期待値及び結果値を比較し、期待値及び結果値の一致又は不一致を判定する工程と、を含み、試験命令列は、プロセッサで複数のオペランドを含む命令を実行する際、複数のオペランドに対するアクセス順序を設定する命令列を含む。
【選択図】図2

Description

本発明は、プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラムに関する。
従来、プロセッサの動作検証方法として、乱数を基に試験命令列及び試験データをランダムに生成してプロセッサの試験を行うランダム試験方法が知られている。又、ランダム試験をプロセッサで実行させて取得した結果値と、プロセッサの動作をシミュレートするシミュレータを実行させて取得した期待値とを比較してプロセッサの動作試験を行う方法が行われている。シミュレータは、例えばソフトウェアにより実現されるシミュレーションプログラムである。シミュレータは、プロセッサの論理仕様の模擬試験を行うものである。
従来技術として、下記の文献がある。
特開平04−247534号公報 特開平08−166892号公報 特開平11−338727号公報
プロセッサの論理仕様により定義された動作がプロセッサに実装されている。従って、型番及び版数が異なる様々な機種のプロセッサであっても、論理仕様が同じであれば、同じシミュレータを使用してシミュレーションが実行できるはずであると考えられてきた。しかし、実際にシミュレーションを実行してみると、論理障害及びプロセッサの装置故障を原因とする場合の他に、論理仕様における機種依存の動作が原因となって結果値と期待値の不一致が生じる場合があることがわかってきた。つまり、所定の試験命令列を実行した場合、試験者には想定できない機種依存の動作が発生し、同じ論理仕様であっても機種の違うプロセッサ同士では、異なる試験命令列の実行動作が行われている可能性があることが明らかとなってきた。
しかし、試験者は試験対象のプロセッサに論理仕様で機種に依存する動作が存在するか否かわからない為、実際にシミュレーションを実行して、結果値と期待値との不一致が生じた場合、機種依存の動作が原因か否か解析を行う必要があった。そして、その解析結果に基づいて、シミュレータの改版又は試験条件を変更し、再度シミュレーションを実行することで対応していた。
このような結果値と期待値の不一致要因の解析や、シミュレータの改版等は複雑な工程を有し、試験時間及び試験工数の増大を招く。従って、プロセッサの動作検証を効率的に行うことができない問題があった。更に、シミュレータの改版等による再シミュレーションを行ったとしても、プロセッサ本来の障害及び不良が検出できない場合がある。従って、動作検証の精度が低下する問題があった。
開示の技術は、プロセッサの動作検証を効率的に行うことができ、検証精度を向上させることができるプロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラムを提供することを目的とする。
本発明の課題を解決するため、開示の技術の第1の側面によれば、
プロセッサの動作を検証するプロセッサの動作検証方法であって、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
を含むことを特徴とするプロセッサの動作検証方法が提供される。
開示の技術の第2の側面によれば、
プロセッサの動作を検証するプロセッサの動作検証装置であって、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する第1取得部と、
前記試験命令列を前記プロセッサで実行させて結果値を取得する第2取得部と、
前記第1取得部で取得された前記期待値及び前記第2取得部で取得された前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する判定部と、
を有することを特徴とするプロセッサの動作検証装置が提供される。
開示の技術の第3の側面によれば、
プログラムを実行するプロセッサの動作を検証するプロセッサの動作検証プログラムであって、
コンピュータに、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
を実行させることを特徴とするプロセッサの動作検証プログラムが提供される。
開示の技術によれば、予め機種依存動作を考慮した期待値を使用してプロセッサの動作検証を行っているので、プロセッサの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサの動作検証の精度を向上させることができる。
図1は、実施例1に係るプロセッサ試験装置のハードウェア構成を示す図である。 図2は、実施例1に係るプロセッサ試験装置の機能構成を示す図である。 図3は、実施例1に係るプロセッサ試験装置が行う試験命令列の実行処理のフローチャートである。 図4は、実施例1に係るプロセッサ試験装置の動作を示すフローチャートである。 図5は、実施例1に係るプロセッサ試験装置の処理説明図である。 図6は、実施例1に係るプロセッサ試験装置の処理説明図である。 図7は、実施例1に係るプロセッサ試験装置の事前確認動作を示すフローチャートである。 図8は、実施例1に係るプロセッサ試験装置の命令シミュレーション動作を示すフローチャートである。 図9は、実施例2に係るプロセッサ試験装置の処理説明図である。 図10は、実施例2に係るプロセッサ試験装置の動作を示すフローチャートである。 図11は、実施例2に係るプロセッサ試験装置の動作を示すフローチャートである。 図12は、実施例2に係るプロセッサ試験装置の動作を示すフローチャートである。 図13は、実施例2に係るプロセッサ試験装置の動作を示すフローチャートである。 図14は、実施例2に係るプロセッサ試験装置の動作を示すフローチャートである。 図15は、実施例3に係るプロセッサ試験装置の処理説明図である。 図16は、実施例3に係るプロセッサ試験装置の動作を示すフローチャートである。 図17は、実施例3に係るプロセッサ試験装置の動作を示すフローチャートである。 図18は、実施例4に係るプロセッサ試験装置の処理説明図である。 図19は、実施例4に係るプロセッサ試験装置の動作を示すフローチャートである。 図20は、実施例4に係るプロセッサ試験装置の動作を示すフローチャートである。
(実施例1)
図1から図8を用いて、実施例1を説明する。
図1は、実施例1に係るプロセッサ試験装置20aのハードウェア構成図を示す図である。プロセッサ試験装置20aは、主記憶装置11a、プロセッサ12a、プロセッサ12b、バスインタフェースユニット(BIU)13a、及びディスクインタフェース(DI)15aを有する。
図1に示す例では、プロセッサ12bは、試験対象となる装置である。そのため、プロセッサ試験装置20aが、プロセッサ12bを試験するプロセッサ試験装置20aとして機能する。なお、補助記憶装置14aは、プロセッサ試験装置20aとディスクインタフェース(DI)15aを介して接続される。
主記憶装置11aは、メインメモリ、キャッシュメモリ及びフラッシュメモリを含み、命令やデータを記憶する。メインメモリとしては、SIMM(Single Inline Memory Module)及びDIMM(Dual Inline Memory Module)がある。フラッシュメモリとしては、EPROM(Erasable Programmable Read Only Memory)がある。
プロセッサ12aは、四則演算や論理演算などの演算処理を実行する装置である。プロセッサ12aは、コンパイルプログラムを実行することで、プログラミング言語で書かれたプログラムを、プロセッサ12aが直接実行可能な機械語でコード化された命令に変換する機能を有する。プロセッサ12aは、機械語でコード化された命令を主記憶装置11aから読み出す。プロセッサ12aは、プログラム実行時に機械語でコード化された命令にしてプロセッサ12a内部のレジスタ12a−2に格納する。プロセッサ12aは、レジスタ12a−2に格納された命令を実行することにより、上記演算処理を実行して各種の計算や制御を行うことができる。
プロセッサ12aは、キャッシュメモリ12a−1及びレジスタ12a−2を有する。キャッシュメモリ12a−1は、主記憶装置11aに格納されるデータの一部を保持することにより、プロセッサ12aの演算速度と主記憶装置11aからのデータ読出し速度の速度差を埋めるために用いる高速小容量メモリである。なお、キャッシュメモリ12a−1は、プロセッサ12aの外部に配置した別装置としても良い。レジスタ12a−2は、プロセッサ12aの計算結果を一時的に保持し、主記憶装置11aを読み書きするときのアドレスを保持するときに使用する記憶装置である。又、レジスタ12a−2は、プロセッサ12a、入力装置22a又は出力装置23aの動作状態を保持するときに使用する記憶装置である。レジスタ12a−2は、記憶素子で実装可能であるため、動作が極めて高速であるが、キャッシュメモリ12a−1と比較して容量は小さい。
プロセッサ試験装置20aは、プロセッサ12aを試験するために、補助記憶装置14aに格納されたプログラム30aをプロセッサ12aに実行させる。プロセッサ12aは、プログラム30aを実行することにより、後述する試験命令列を作成する。次に、プロセッサ12aは、作成した試験命令列を実行することにより、プロセッサ12aの先行制御方式に係る試験を行う。
バスインタフェースユニット(BIU)13aは、主記憶装置11a、プロセッサ12a、プロセッサ12b、及びディスクインタフェース(DI)15aと接続されるチップセットである。バスインタフェースユニット13aは、AGP(Accelerated Graphics Port)又はPCI(Peripheral Component Interconnect) Expressなどの規格に従って機能する制御回路を含む。バスインタフェースユニット13aは、さらに、PCIバス、IDE(Integrated Drive Electronics)、キーボードポート、マウスポート、USB(Universal Serial Bus)などの回路を含む。バスインタフェースユニット13aは、バス16aを介してプロセッサ試験装置20aの外部に配置される入力装置22a及び出力装置23aに接続される。なお、バスインタフェースユニット13aは、バス16aに接続される対象機器の通信速度に対応して高速通信用及び低速通信用に分けた2つ以上のチップセットとしても良い。
入力装置22aは、プロセッサ試験装置20aに対して情報を出力するキーボード又はマウスである。出力装置23aは、プロセッサ試験装置20aから処理状況や処理結果を出力する対象となるディスプレイ又はプリンタである。
補助記憶装置14aは、磁気ディスクドライブ、フラッシュメモリのような不揮発性メモリを用いたSSD(Solid State Drive)、又は、光学ディスクドライブである。補助記憶装置14aは、磁気ディスク又は光ディスクの記憶媒体として、データを読出し又は記録する。この場合、プロセッサ12aは、後述するプログラム30aを記録する補助記憶装置14aからプログラム30aを読み出し、プログラム30aを上記磁気ディスクドライブやSSD等に格納する。なお、プログラム30aは、図2を参照して説明する。
ディスクインタフェース(DI)15aは、プロセッサ12aと補助記憶装置14aとを接続する接続用回路である。ディスクインタフェース15aは、例えば、Serial ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、及びFC(Fibre Channel)等の規格に従って設計される。
図2は、実施例1に係るプロセッサ試験装置20aの機能構成図を示す図である。なお、図1に示すプロセッサ試験装置20aにおいて、図1で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
プロセッサ12aは、プログラム30aにより第1処理部31a、第2処理部32a、第3処理部33a、シミュレーション部34a、追加部35a、事前確認部36a、第4処理部37a、第5処理部38a、第6処理部39a、及び第7処理部40aとして動作する。
また、主記憶装置11aは、第1格納部41a、第2格納部42a、テーブル43a、固定領域44a、第3格納部45a、及び第4格納部46aとして動作する。
第1格納部41aは、第3処理部33aにより生成された試験命令列を格納する。第2格納部42aは、追加部35aにより生成された期待値を格納する。テーブル43aは、図5を参照して後述するように、プロセッサ12aの論理仕様から機種依存となる項目を抽出した機種依存動作を含む機種依存項目が予め格納されている。
機種依存動作は、プロセッサ12aの論理仕様において、プロセッサ12aの動作が不確定である試験項目に対応する動作のことをいう。実際に、シミュレーション部34aによってプロセッサ12aのシミュレーションを実行してみると、試験対象となるプロセッサ12bの論理障害及び装置故障を原因とする場合の他に、論理仕様における機種依存の動作が原因となって結果値と期待値の不一致が生じる場合がある。つまり、所定の試験命令列を実行した場合、試験者には想定できない機種依存の動作が発生し、同じ論理仕様であっても機種の違うプロセッサ同士では、異なる試験命令列の実行動作が行われる可能性がある。このような所定の試験命令列に対応するプロセッサ12aの動作を、機種依存動作という。
固定領域44aは、第4処理部37aにより生成された割込みハンドラを格納する。割り込みハンドラの説明は後述する。第3格納部45aは、プロセッサ12bにより生成された結果値を格納する。第4格納部46aは、プロセッサ12bにより生成されたエラーログを格納する。
プロセッサ12bは、第5処理部38aによる実行指示に従って、主記憶装置11aに格納された試験命令列を実行する。プロセッサ12bは、試験命令列を実行して取得した結果値を第3格納部45aに格納する。プロセッサ12bは、試験命令列が正しく実行されないとき、第4格納部46aにエラーログを出力する。
プログラム30aは、第1処理部31a、第2処理部32a、第3処理部33a、シミュレーション部34a、追加部35a、事前確認部36a、第4処理部37a、第5処理部38a、第6処理部39a、及び第7処理部40aの各処理をプログラミング言語で記述したものである。プロセッサ12aは、プログラム30aを実行することにより、第1処理部31a、第2処理部32a、第3処理部33a、シミュレーション部34a、追加部35a、事前確認部36a、第4処理部37a、第5処理部38a、第6処理部39a、及び第7処理部40aの各処理を実行することができる。
第1処理部31aは、第2処理部32a、第3処理部33a、シミュレーション部34a、追加部35a、事前確認部36a、第4処理部37a、第5処理部38a、第6処理部39a、及び第7処理部40aの各処理を制御する。また、第1処理部31aは、第2処理部32a、第3処理部33a、シミュレーション部34a、追加部35a、事前確認部36a、第4処理部37a、第5処理部38a、第6処理部39a、及び第7処理部40aに対してイベントを共有させるための制御を行う。
第2処理部32aは、擬似乱数を生成するアルゴリズムにより乱数を生成する。第1処理部31aは、第2処理部32aによって、生成された乱数を第3処理部33aに出力させる。
第3処理部33aは、第2処理部32aで発生した乱数に基づいて、ランダム生成された試験命令列を生成する。第1処理部31aは、第2処理部32aが乱数を出力したことを確認する。次いで、第1処理部31aは、第3処理部33aに試験命令列を生成させるために、第3処理部33aに生成された乱数を引き渡す。
第3処理部33aは、第2処理部32aで発生した乱数に基づいて、第1格納部41aに格納されたプロセッサ試験用の試験命令列を選択する。又、第3処理部33aは、第2処理部32aから引き渡された乱数に基づいて、第1格納部41aに格納された不図示のオペランドテーブルからオペランドを選択する。
第3処理部33aは、選択された試験命令列を第1格納部41aに格納する。なお、第3処理部33aにより生成された試験命令列は、シミュレーション部34aにより、第5処理部38aが実行するための試験命令列に変更される。
シミュレーション部34aは、第3処理部33aより生成された試験命令列を実行して期待値を取得する。シミュレーション部34aは、取得した期待値を第2格納部42aに格納させる。
追加部35aは、テーブル43aから機種依存項目を取得して機種依存項目に関する試験項目を追加する。追加部35aによって試験項目を追加することにより、予め機種依存動作を考慮した期待値を取得することが可能になる。従って、予め機種依存動作を考慮した期待値を用いて、後述する第5処理部38aによりプロセッサ12bの動作検証を行うことができる。
事前確認部36aは、シミュレーション部34aにより機種依存となる試験命令列を実行し、機種依存となる動作を事前確認する。
第4処理部37aは、テーブル43aに格納された割込みハンドラを取得する。割込みハンドラとは、所定の条件が満たされた場合に発生する割り込みにより起動される処理である。実施例1における所定の条件とは、例えば、プロセッサ12aが、プロセッサ12aのキャッシュメモリ12a−1の無効ページを指定して命令を実行することである。無効ページとは、例えば、アクセス対象のデータが、図1に前述したキャッシュメモリ12a−1に存在しないことを示すものである。第4処理部37aが無効ページを指定して命令を実行すると、アクセス例外による割込みが発生するため、割込みハンドラが起動する。第1処理部31aは、第4処理部37aによって、起動された割込みハンドラを、第1格納部41aに格納された試験命令列の後続命令として追加させる。
第5処理部38aは、試験対象となるプロセッサ12aの先行制御方式を用いて、試験命令列を実行する機能を有する。第3処理部33aにより所定の数だけ有する試験命令列が生成されたことを確認すると、第1処理部31aは第5処理部38aに試験命令列を実行させる。第5処理部38aは、プロセッサ12bを実行させて得られた結果値を、プロセッサ12bによって第3格納部45aに格納させる。プロセッサ12bによって試験命令列が正しく実行されない場合、第5処理部38aは、プロセッサ12bによって第4格納部46aにエラーログを出力させる。
第6処理部39aは、第2格納部42aに格納された期待値と、第3格納部45aに格納された結果値とを比較する機能を有する。第1処理部31aは、第6処理部39aによって、期待値及び結果値の比較結果を出力装置23aに出力させる。期待値及び結果値が一致する場合、第6処理部39aは、プロセッサ12bによってシミュレーション部34aが先行して実行した試験命令列を正しく実行したことを示す結果を、出力装置23aに出力する。期待値及び結果値が不一致である場合、第6処理部39aは、エラーログを第7処理部40aに出力する。
第7処理部40aは、第6処理部39aから期待値及び結果値が不一致である旨の通知を取得すると、第7処理部40aに格納された1つ又はそれ以上のエラーログを、出力装置23aに出力する処理を実行する。
図3は、実施例1に係るプロセッサ試験装置20aが行う試験命令列の実行処理のフローチャートである。なお、実施例1において、プロセッサ12aが、プログラム30aを実行することにより、第1処理部31a〜第7処理部40aとして処理を開始する。第1処理部31aは、事前動作確認フローチャートにおける第2処理部32a〜第7処理部40aの実行タイミングを管理するために、処理を担当する第2処理部32a〜第7処理部40aに実行指示を行う。以下の記載においては、冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
追加部35aは、試験命令列の実行処理を行う前に、テーブル43aから、プロセッサ12aの機種依存動作を含む機種依存項目を取得する(OP1)。
第3処理部33aは、追加部35aによって取得したプロセッサ12aの機種依存動作を含む機種依存項目を反映させて、プロセッサ12aを試験するための試験命令列を生成する(OP2)。第3処理部33aは、生成した試験命令列を、第1格納部41aに格納する。
シミュレーション部34aは、第1格納部41aに格納された機種依存項目が反映された試験命令列を実行して期待値を取得する(OP3)。シミュレーション部34aは、取得した期待値を、第2格納部42aに格納する。
第5処理部38aは、試験対象となるプロセッサ12bに、同じ機種依存項目が反映された試験命令列を実行させ、結果値を取得する(OP4)。第5処理部38aは、プロセッサ12bによって取得された結果値を、プロセッサ12bによって第3格納部45aに格納させる。
第6処理部39aは、第2格納部42aに格納された期待値、及び第3格納部45aに格納された結果値が一致するか否か比較する(OP5)。期待値及び結果値が一致する場合(OP5 YES)、第1処理部31aは、プロセッサ試験装置20aによるプロセッサ12bの試験を終了させるか判断する(OP7)。プロセッサ試験装置20aによるプロセッサ12bの試験を終了させると判断した場合(OP7 YES)、第1処理部31aは、プロセッサ試験装置20aが行う試験命令列の実行処理を終了させる。第1処理部31aは、プロセッサ試験装置20aによるプロセッサ12bの試験を終了しないと判断した場合(OP7 NO)、OP2に進む。
なお、OP5において、期待値及び結果値が一致しない場合(OP5 NO)、第6処理部39aは、第7処理部40aに、期待値と結果値とが不一致であるとの通知、即ちエラーログを出力する(OP6)。エラーログを出力した後、第1処理部31aは、OP7に進む。このように、実施例1に係るプロセッサ試験装置20aは、予め機種依存動作を考慮した期待値を使用してプロセッサ12bの動作検証を行うため、プロセッサ12bの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサ12bの動作検証の精度を向上させることができる。
図4は、実施例1に係るプロセッサ試験装置20aの動作を示すフローチャートである。図4は、図3に示す第6処理部39a及び第4格納部46aから第7処理部40aにエラーログが出力された時の処理を示すフローチャートである。なお、図4において、図1〜図3で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
第6処理部39a、又は第4格納部46aから第7処理部40aにエラーログが出力された時、第7処理部40aは、エラーの原因は試験対象であるプロセッサ12bの障害であるか判断する(OP11)。エラーの原因はプロセッサ12bの障害であると判断した時(OP11 YES)、第7処理部40aは、プロセッサ12bの障害の修正が必要である旨のエラーログを出力装置23aに出力する(OP12)。一方、エラーの原因はプロセッサ12bの障害では無いと判断した時(OP11 NO)、第7処理部40aは、シミュレーション部34aのバグの修正が必要である旨のエラーログを出力装置23aに出力する(OP13)。
図5は、実施例1に係るプロセッサ試験装置20aの処理説明図である。なお、図5に示すプロセッサ試験装置20aの処理説明図において、図1〜図4で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
テーブル43aは、プロセッサ12aの論理仕様から機種依存動作に依存する項目を抽出したものを格納する。テーブル43aに格納された機種依存項目は、例えば、move命令オペランドアクセス順序、divide命令例外順序、compare−and−swap書き戻し、及びcompare命令アクセス例外認識等が挙げられる。これら論理依存動作に依存する項目は、プロセッサ12aの論理仕様の中で使用される代表的なものである。
また、各機種依存項目には、2つ以上の有限な選択肢が予め設定される。例えば、機種依存項目がmove命令オペランドアクセス順序の場合、オペランドアクセス順序はオペランドop1又はオペランドop2のうち、どちらのオペランドopのアクセス例外が優先するか二種類の動作種別が設定される。データ例外、除算例外、又は書込み保護例外を含む複数の例外条件を有する命令は、オペランドアクセス順序の優先順位である。なお、プロセッサの論理仕様により定義された動作がプロセッサに実装されている。従って、型番及び版数が異なる様々な機種のプロセッサであっても、論理仕様が同じであれば、同じシミュレータを使用してシミュレーションが実行できるはずであると考えられてきた。しかし、実際にシミュレーションを実行してみると、論理障害及びプロセッサの装置故障を原因とする場合の他に、論理仕様における機種依存の動作が原因となって結果値と期待値の不一致が生じる場合があることがわかってきた。そのため、これらの各機種依存動作をプロセッサ12aで実行した場合、同じ論理仕様であっても機種の違うプロセッサの同士では、異なる試験命令列の実行動作が行われる可能性がある。
事前確認部36aは、プロセッサ12aの論理仕様から機種に依存する動作を推測し、可能性が高いいくつかの機種依存項目をテーブル43aから選択し、シミュレーション部34aに実行させる。事前確認部36aは、プロセッサ12aにより実行された確認項目の結果を、テーブル43aに反映させる。
テーブル43aに格納されている事前確認部36aにより抽出された各機種依存項目には、前述したように2つ以上の有限な選択肢が予め設定される。即ち、各機種依存項目には、予測可能な複数の選択肢が設定される。予測可能な複数の選択肢を設定することにより、プロセッサ12aの機種依存項目に伴う期待値を用いて、後述する第5処理部38aによりプロセッサ12bの動作検証を行うことができる。なお、事前確認部36aの確認項目は、機種依存項目に係る命令が静的に記述されたものである。事前確認部36aは、静的に記述された命令をプロセッサ12aに実行させることで、プロセッサ12aの機種依存項目の動作を調べる。そして、事前確認部36aによる確認結果に基づいて、各機種依存項目に対してテーブル43aに動作種別が設定される。又、事前確認部36aにより抽出された全ての機種依存項目の確認結果が予め設定された動作種別以外であれば、フラグが設定されず、選択肢以外の動作結果はプロセッサ12aの障害であると判定される。
シミュレーション部34aは、試験対象であるプロセッサ12bに係る機種依存項目の動作シミュレーションに際して、テーブル43aを参照してシミュレーション部34aの動作内容を決定する。シミュレーション部34aは、テーブル43aを参照することにより、試験対象であるプロセッサ12bに適応したシミュレーションを行うことができる。
図6は、実施例1に係るプロセッサ試験装置20aの処理説明図である。なお、図6に示すプロセッサ試験装置20aの処理説明図において、図1〜図5で説明した構成と同様の構成には同一の符号を付し、説明を省略する。なお、実施例1におけるプロセッサ12aの機種依存動作は、以下に説明するmove命令オペランドアクセス順序である。
図6において、事前確認部36a−1は、例えば、2つのオペランドを持つ命令のオペランドアクセス順序を確認する。事前確認部36a−1は、メモリとして機能する主記憶装置11aの複数アドレス間におけるデータ移動命令(以下、move命令という)において、オペランドop1のアドレス及びオペランドop2のアドレスに、それぞれ異なる無効ページを指定してmove命令を実行する。無効ページは、アクセス対象のデータが、第1格納部41a−1に格納されていないことを示す。無効ページは、無効データを保持する。
第4処理部37a−1は、第1格納部41a−1に存在する無効ページにアクセスすることにより、アクセス例外による割込みハンドラを起動させる。割込みハンドラは、第1格納部41a−1上の無効ページにアクセスした後、オペランドop1又はオペランドop2のうち、どちらのオペランドが先にアクセス対象となるか調べる。第1処理部31aは、第4処理部37a−1によって、起動された割込みハンドラを、第1格納部41a−1に格納された試験命令列の後続命令として追加させる。
テーブル43a−1は、割込みハンドラの起動と同時に固定領域44a−1に割込みステータスとして割込み原因コードと割込み原因アドレスを格納する。第4処理部37a−1によって起動された割込みハンドラは、割込み原因コードと割込み原因アドレスを基にどちらのオペランドに起因するアクセス例外であるか判断する。割込みハンドラは、テーブル43a−1の該当エントリに例外要因となったオペランドopを優先順位1位として設定し、例外要因とならなかったオペランドopを優先順位2位として設定する。
第4処理部37a−1によりアクセス例外による割込みハンドラが起動された後、テーブル43a−1には抽出した機種依存項目の動作種別が設定される。実施例1に係るテーブル43a−1の動作の欄に、move命令オペランドアクセス順序が設定される。テーブル43a−1の項目に設定される動作種別は、オペランドop1又はオペランドop2からなる2つの有限な選択肢を含む。
シミュレーション部34a−1は、試験対象であるプロセッサ12bに係る機種依存項目の動作シミュレーションに際して、テーブル43a−1を参照してシミュレーション部34a−1の動作内容を決定する。シミュレーション部34a−1は、テーブル43a−1を参照して、試験対象であるプロセッサ12bに適応したシミュレーションを行う。実施例1におけるプロセッサ12aの機種依存動作は、move命令オペランドアクセス順序である。
実施例1において、シミュレーション部34a−1は、オペランドop1又はオペランドop2のうち、どちらのオペランドopのアクセス例外が優先するかを判断する。次いで、シミュレーション部34a−1は、第1格納部41a−1に格納されたmove命令において、オペランドop1のアドレス及びオペランドop2のアドレスにそれぞれ異なる無効ページを指定し、どちらのオペランドopのアクセス例外が優先するかを判断する命令シミュレーションを実行する。実施例1に係るアクセス例外条件とは、オペランドopがメモリとして機能する主記憶装置11aのアドレスの範囲外に存在する場合、外部記憶にオペランドopがスワップされて主記憶装置11aに格納されていない場合、又は主記憶装置11aに対するアクセス禁止の保護が設定されているために、主記憶装置11aに対して読み書きできない場合である。
シミュレーション部34a−1は、move命令の対象となる2つのオペランドop1、オペランドop2のうち、オペランドop1にアクセス例外が存在するか調べる。シミュレーション部34a−1は、アクセス例外条件が存在する場合、対応するテーブル43a−1を参照して、オペランドop1にアクセス例外条件が存在することを示すフラグがオンであるか否か判断する。次いで、シミュレーション部34a−1は、move命令のオペランドop2のアクセス例外の有無を調べる。アクセス例外条件が存在する場合、シミュレーション部34a−1は、テーブル43a−1を参照して、オペランドop2にアクセス例外条件が存在することを示すフラグがオンであるか否か判断する。このようにして、シミュレーション部34a−1は、フラグの状態に応じてオペランドop1のアクセス例外のシミュレーションを行う。または、シミュレーション部34a−1は、オペランドop2のアクセス例外のシミュレーションを行う。または、シミュレーション部34a−1は、move命令のメモリ間移動のシミュレーションを行う。そして、機種依存項目を考慮してシミュレートした期待値を求めることができる。
図7は、実施例1に係るプロセッサ試験装置20aの事前動作確認を示すフローチャートである。なお、図7において、図1〜図6で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図7に示すフローチャートには、OP33、OP34、OP37の3つの条件分岐処理がある。これらの条件分岐処理により、図7に示すフローチャートには、以下のような処理の組合せがある。
事前動作確認フローチャート1:OP33がYES、OP34がYES
事前動作確認フローチャート2:OP33がNO
事前動作確認フローチャート3:OP33がYES、OP34がNO、OP37がYES
事前動作確認フローチャート4:OP33がYES、OP34がNO、OP37がNO
以下、上記4つのフローチャートについて、図7を用いて説明する。なお、図7において、図1〜図6で説明した構成と同様の構成については同一の符号を付し、説明を省略する。
<事前動作確認フローチャート1:OP33がYES、OP34がYES>
第3処理部33aは、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP31)。事前確認部36a−1は、アドレス1にオペランドop1を設定し、アドレス2にオペランドop2を設定して、move命令を実行する(OP32)。事前確認部36a−1は、無効ページによる割込みが発生したか判断する(OP33)。
事前動作確認フローチャート1の場合、無効ページによる割込みが発生するため(OP33 YES)、事前確認部36a−1は、割込み原因アドレスがアドレス1であるか判断する(OP34)。事前動作確認フローチャート1の場合、割込み原因アドレスがアドレス1であるため(OP34 YES)、第4処理部37a−1は、テーブル43a−1のmove命令オペランドアクセス順序の1位にオペランドop1を設定する(OP35)。次いで、第4処理部37a−1は、テーブル43a−1のmove命令オペランドアクセス順序の2位にオペランドop2を設定する(OP35)。
<事前動作確認フローチャート2:OP33がNO>
事前確認部36a−1は、アドレス1にオペランドop1を設定し、アドレス2にオペランドop2を設定して、move命令を実行する(OP32)。事前確認部36a−1は、無効ページによる割込みが発生したか判断する(OP33)。事前動作確認フローチャート2の場合、無効ページによる割込みが発生しないため(OP33 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP36)。
<事前動作確認フローチャート3:OP33がYES、OP34がNO、OP37がYES>
事前確認部36a−1は、アドレス1にオペランドop1を設定し、アドレス2にオペランドop2を設定して、move命令を実行する(OP32)。事前確認部36a−1は、無効ページによる割込みが発生したか判断する(OP33)。
事前動作確認フローチャート3の場合、無効ページによる割込みが発生するため(OP33 YES)、事前確認部36a−1は、割込み原因アドレスがアドレス1であるか判断する(OP34)。事前動作確認フローチャート3の場合、割込み原因アドレスがアドレス1ではないため(OP34 NO)、事前確認部36a−1は、割込み原因アドレスがアドレス2であるか判断する(OP37)。事前動作確認フローチャート3の場合、割込み原因アドレスがアドレス2であるため(OP37 YES)、第4処理部37a−1は、テーブル43a−1のmove命令オペランドアクセス順序の1位にオペランドop2を設定する(OP38)。次いで、第4処理部37a−1は、テーブル43a−1のmove命令オペランドアクセス順序の2位にオペランドop1を設定する(OP38)。
<事前動作確認フローチャート4:OP33がYES、OP34がNO、OP37がNO>
事前確認部36a−1は、アドレス1にオペランドop1を設定し、アドレス2にオペランドop2を設定して、move命令を実行する(OP32)。事前確認部36a−1は、無効ページによる割込みが発生したか判断する(OP33)。
事前動作確認フローチャート4の場合、無効ページによる割込みが発生するため(OP33 YES)、事前確認部36a−1は、割込み原因アドレスがアドレス1であるか判断する(OP34)。事前動作確認フローチャート4の場合、割込み原因アドレスがアドレス1ではないため(OP34 NO)、事前確認部36a−1は、割込み原因アドレスがアドレス2であるか判断する(OP37)。事前動作確認フローチャート4の場合、割込み原因アドレスがアドレス2ではないため(OP37 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP36)。
図8は、実施例1に係るプロセッサ試験装置20aの命令シミュレーション動作を示すフローチャートである。なお、図8において、図1〜図7で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図8に示すフローチャートには、OP42、OP43、OP44、OP46、OP49、OP52の6つの条件分岐処理がある。これらの条件分岐処理により、図8に示すフローチャートには、以下のような処理の組合せがある。
命令シミュレーション動作フローチャート1:OP42がYES、OP46がYES、OP43がNO、OP44がYES
命令シミュレーション動作フローチャート2:OP42がYES、OP46がNO、OP43がNO、OP44がNO、OP52がYES
命令シミュレーション動作フローチャート3:OP42がNO、OP43がYES、OP49がYES、OP44がYES
命令シミュレーション動作フローチャート4:OP42がNO、OP43がYES、OP49がNO、OP44がNO、OP52がYES
命令シミュレーション動作フローチャート5:OP42がNO、OP43がNO、OP44がNO、OP52がNO
以下、上記5つのフローチャートについて、図8を用いて説明する。以下の記載においては、図7と同様に冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<命令シミュレーション動作フローチャート1:OP42がYES、OP46がYES、OP43がNO、OP44がYES>
シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP41)。シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop1に例外条件があるか判断する(OP42)。
命令シミュレーション動作フローチャート1の場合、第1格納部41a−1に格納されたオペランドop1に例外条件があるため(OP42 YES)、シミュレーション部34a−1は、テーブル43a−1のmove命令オペランドアクセス順序が、オペランドop1が1番目であるか判断する(OP46)。命令シミュレーション動作フローチャート1の場合、move命令オペランドアクセス順序は、オペランドop1が1番目であるため(OP46 YES)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop1が1番目であることを示す動作フラグ1をオンにする(OP47)。
シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop2に例外条件があるか判断する(OP43)。命令シミュレーション動作フローチャート1の場合、オペランドop2に例外条件が存在しないため(OP43 NO)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop1が1番目であることを示す動作フラグ1がオンであるか判断する(OP44)。命令シミュレーション動作フローチャート1の場合、動作フラグ1がオンであるであるため(OP44 YES)、シミュレーション部34a−1は、テーブル43a−1のMOVE命令オペランドアクセス順序の1番目のオペランドop1のアクセス例外をシミュレートする(OP45)。
<命令シミュレーション動作フローチャート2:OP42がYES、OP46がNO、OP43がNO、OP44がYES>
シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP41)。シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop1に例外条件があるか判断する(OP42)。
命令シミュレーション動作フローチャート2の場合、第1格納部41a−1に格納されたオペランドop1に例外条件があるため(OP42 YES)、シミュレーション部34a−1は、テーブル43a−1のmove命令オペランドアクセス順序が、オペランドop1が1番目であるか判断する(OP46)。命令シミュレーション動作フローチャート2の場合、move命令オペランドアクセス順序は、オペランドop1が1番目ではないため(OP46 NO)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop1が2番目であることを示す動作フラグ2をオンにする(OP48)。
シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop2に例外条件があるか判断する(OP43)。命令シミュレーション動作フローチャート2の場合、オペランドop2に例外条件が存在しないため(OP43 NO)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop1が1番目であることを示す動作フラグ1がオンであるか判断する(OP44)。命令シミュレーション動作フローチャート2の場合、動作フラグ1がオンではないため(OP44 NO)、シミュレーション部34a−1は、オペランドop1が2番目であることを示す動作フラグ2がオンであるか判断する(OP52)。命令シミュレーション動作フローチャート2の場合、動作フラグ2がオンであるため(OP52 YES)、シミュレーション部34a−1は、テーブル43a−1のMOVE命令オペランドアクセス順序の2番目のオペランドop2のアクセス例外をシミュレートする(OP53)。
<命令シミュレーション動作フローチャート3:OP42がNO、OP43がYES、OP49がYES、OP44がYES>
シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP41)。シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop1に例外条件があるか判断する(OP42)。命令シミュレーション動作フローチャート3の場合、オペランドop1に例外条件が存在しないため(OP42 NO)、シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop2に例外条件があるか判断する(OP43)。
命令シミュレーション動作フローチャート3の場合、第1格納部41a−1に格納されたオペランドop2に例外条件があるため(OP43 YES)、シミュレーション部34a−1は、テーブル43a−1のmove命令オペランドアクセス順序が、オペランドop2が1番目であるか判断する(OP49)。命令シミュレーション動作フローチャート3の場合、move命令オペランドアクセス順序は、オペランドop2が1番目であるため(OP49 YES)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop2が1番目であることを示す動作フラグ1をオンにする(OP50)。
シミュレーション部34a−1は、テーブル43a−1を参照にして、動作フラグ1がオンであるか判断する(OP44)。命令シミュレーション動作フローチャート3の場合、オペランドop2が1番目であることを示す動作フラグ1がオンであるであるため(OP44 YES)、シミュレーション部34a−1は、テーブル43a−1のMOVE命令オペランドアクセス順序の1番目のオペランドop1のアクセス例外をシミュレートする(OP45)。
<命令シミュレーション動作フローチャート4:OP42がNO、OP43がYES、OP49がNO、OP44がNO、OP52がYES>
シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP41)。シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop1に例外条件があるか判断する(OP42)。命令シミュレーション動作フローチャート4の場合、オペランドop1に例外条件が存在しないため(OP42 NO)、シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop2に例外条件があるか判断する(OP43)。
命令シミュレーション動作フローチャート4の場合、第1格納部41a−1に格納されたオペランドop2に例外条件があるため(OP43 YES)、シミュレーション部34a−1は、テーブル43a−1のmove命令オペランドアクセス順序が、オペランドop2が1番目であるか判断する(OP49)。命令シミュレーション動作フローチャート4の場合、move命令オペランドアクセス順序は、オペランドop2が1番目ではないため(OP49 NO)、シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop2が2番目であることを示す動作フラグ2をオンにする(OP51)。
シミュレーション部34a−1は、テーブル43a−1を参照にして、オペランドop2が1番目であることを示す動作フラグ1がオンであるか判断する(OP44)。命令シミュレーション動作フローチャート4の場合、動作フラグ1がオンではないため(OP44 NO)、シミュレーション部34a−1は、オペランドop2が2番目であることを示す動作フラグ2がオンであるか判断する(OP52)。命令シミュレーション動作フローチャート4の場合、動作フラグ2がオンであるため(OP52 YES)、テーブル43a−1のMOVE命令オペランドアクセス順序の2番目のオペランドop2のアクセス例外をシミュレートする(OP53)。
<命令シミュレーション動作フローチャート5:OP42がNO、OP43がNO、OP44がNO、OP52がNO>
シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2を無効ページに設定する(OP41)。シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop1に例外条件があるか判断する(OP42)。命令シミュレーション動作フローチャート5の場合、オペランドop1に例外条件が存在しないため(OP42 NO)、シミュレーション部34a−1は、第1格納部41a−1に格納されたオペランドop2に例外条件があるか判断する(OP43)。
命令シミュレーション動作フローチャート5の場合、オペランドop2に例外条件が存在しないため(OP43 NO)、シミュレーション部34a−1は、テーブル43a−1を参照にして、動作フラグ1がオンであるか判断する(OP44)。命令シミュレーション動作フローチャート5の場合、動作フラグ1がオンではないため(OP44 NO)、シミュレーション部34a−1は、動作フラグ2がオンであるか判断する(OP52)。命令シミュレーション動作フローチャート5の場合、動作フラグ2がオンでは無いため(OP52 NO)、シミュレーション部34a−1は、主記憶装置11aに設けられたアドレス1、アドレス2間におけるmove命令動作をシミュレートする(OP54)。
実施例1に開示の技術によれば、実施例1に係るプロセッサ試験装置20aは、予め機種依存動作としてmove命令オペランドアクセス順序を考慮してシミュレートした期待値を求めることができる。従って、この期待値を使用してプロセッサ12bの動作検証を行っているので、複雑な工程を必要とせず、プロセッサ12bの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサ12bの動作検証の精度を向上させることができる。
(実施例2)
図9から図14を用いて、実施例2を説明する。
図9は、実施例2に係るプロセッサ試験装置20aの処理説明図である。なお、図9に示すプロセッサ試験装置20aの処理説明図において、実施例1の図1〜図6で説明した構成と同様の構成には同一の符号を付し、説明を省略する。なお、実施例2におけるプロセッサ12aの機種依存動作は、以下に説明するdivide命令例外順序である。
事前確認部36a−2は、主記憶装置11aに格納された2つのオペランドop1、オペランドop2を格納する。事前確認部36a−2は、オペランドop1、オペランドop2の各データが定式化された除算命令(以下、divide命令)において、1つ目のオペランドのデータop1が不当な形式で、且つ主記憶装置11aへの書込み保護例外条件を設定し、2つ目のオペランドop2の値に0を指定してdivide命令を実行する。
第4処理部37a−2は、主記憶装置11aに格納された2つのオペランドop1、オペランドop2に対してdivide命令を実行すると、データ例外、除算例外、又は書込み保護例外の何れかによる割込みが発生することにより、割込みハンドラを起動させる。割込みハンドラは、第1格納部41a−2に格納された2つのオペランドop1、オペランドop2に対してdivide命令を実行した後、データ例外、除算例外、又は書込み保護例外のうち、どちらの例外条件が先に発生したか調べる。第1処理部31aは、第4処理部37a−2によって、起動された割込みハンドラを、第1格納部41a−2に格納された試験命令列の後続命令として追加させる。
テーブル43a−2は、割込みハンドラの起動と同時に固定領域44a−2に割込みステータスとして割込み原因コードを格納する。第4処理部37a−2によって起動された割込みハンドラは、割込みと同時に固定領域44a−2に割込みステータスとして割込み原因コードが格納される。割込みハンドラは、割込み原因コードを基にいずれの割込みかを判断する。割込みハンドラは、テーブル43a−2の該当エントリに例外要因を優先順位1位として設定する。次いで、割込みハンドラは、残りの2つの例外をdivide命令のオペランドop1、オペランドop2に設定する。次いで、割込みハンドラは、再度divide命令を実行させる。割込みハンドラは、その時の割込みの例外要因を優先順位2位に、残りの例外要因を3位としてテーブル43a−2に設定する。
シミュレーション部34a−2は、試験対象であるプロセッサ12bに係る機種依存項目の動作シミュレーションに際して、テーブル43a−2を参照してシミュレーション部34a−2の動作を決定する。シミュレーション部34a−2は、テーブル43a−2を参照することにより、試験対象であるプロセッサ12bに適応したシミュレーションを行う。実施例2におけるプロセッサ12aの機種依存動作は、divide命令例外順序である。
実施例2において、シミュレーション部34a−2は、試験命令列を実行する際、divide命令に複数の例外要因がある場合、テーブル43a−2を参照して、いずれの例外が優先するかを判断し、divide命令のシミュレーションを行う。最初に、シミュレーション部34a−2は、divide命令のオペランドop1、オペランドop2のデータが不当な形式でないかを調べる。次いで、シミュレーション部34a−2は、不当な形式であればテーブル43a−2を参照して対応するフラグを第2格納部42aに設定する。次いで、シミュレーション部34a−2は、divide命令のオペランドop2の値が0でないか調べる。次いで、シミュレーション部34a−2は、オペランドop2の値が0であればテーブル43a−2を参照して対応するフラグを第2格納部42aに設定する。次いで、シミュレーション部34a−2は、divide命令のオペランドop1の格納が可能であるか調べる。次いで、シミュレーション部34a−2は、格納不可であればテーブル43a−2を参照して対応するフラグを第2格納部42aに設定する。次いで、シミュレーション部34a−2は、設定されたフラグの状態に応じ、対応する例外処理の演算シミュレーションを行う。又は、シミュレーション部34a−2は、divide命令の演算シミュレーションを行う。
図10〜図12は、実施例2に係るプロセッサ試験装置20aの事前動作確認を示すフローチャートである。図10のAに示す処理は図11のAに続いている。図10のBに示す処理は図12のBに続いている。なお、図10〜図12において、実施例1の図1〜図6及び実施例2の図9で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図10〜図12に示すフローチャートには、OP62、OP65、OP69、OP67、OP83、OP85、OP68、OP93、OP95の9つの条件分岐処理がある。これらの条件分岐処理により、図10〜図12に示すフローチャートには、以下のような処理の組合せがある。
事前動作確認フローチャート1:OP62がYES、OP65がYES
事前動作確認フローチャート2:OP62がYES、OP65がNO、OP69がYES
事前動作確認フローチャート3:OP62がYES、OP65がNO、OP69がNO
事前動作確認フローチャート4:OP62がNO、OP67がYES、OP83がYES
事前動作確認フローチャート5:OP62がNO、OP67がYES、OP83がNO、OP85がYES
事前動作確認フローチャート6:OP62がNO、OP67がYES、OP83がNO、OP85がNO
事前動作確認フローチャート7:OP62がNO、OP67がNO、OP68がYES、OP93がYES
事前動作確認フローチャート8:OP62がNO、OP67がNO、OP68がYES、OP93がNO、OP95がYES
事前動作確認フローチャート9:OP62がNO、OP67がNO、OP68がYES、OP93がNO、OP95がNO
事前動作確認フローチャート10:OP62がNO、OP67がNO、OP68がNO
以下、上記10個のフローチャートについて、図10〜図12を用いて説明する。なお、実施例2において、実施例1と同様に、プロセッサ12aが、プログラム30aを実行することにより、第1処理部31a〜第7処理部40aが動作可能になる。以下の記載においては、実施例1と同様に冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<事前動作確認フローチャート1:OP62がYES、OP65がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート1の場合、データ例外による割込みが発生するため(OP62 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、データ例外を設定する(OP63)。事前確認部36a−2は、オペランドop1にメモリ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP64)。事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP65)。事前動作確認フローチャート1の場合、除算例外による割込みが発生するため(OP65 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位に除算例外を、3位に書込み保護例外を設定する(OP66)。
<事前動作確認フローチャート2:OP62がYES、OP65がNO、OP69がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート2の場合、データ例外による割込みが発生するため(OP62 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、データ例外を設定する(OP63)。事前確認部36a−2は、オペランドop1にメモリ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP64)。事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP65)。事前動作確認フローチャート2の場合、除算例外による割込みが発生しないため(OP65 NO)、事前確認部36a−2は、書込み保護例外による割込みが発生したか判断する(OP69)。事前動作確認フローチャート2の場合、書込み保護例外による割込みが発生するため(OP69 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位に書込み保護例外を、3位に除算例外を設定する(OP70)。
<事前動作確認フローチャート3:OP62がYES、OP65がNO、OP69がNO>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート3の場合、データ例外による割込みが発生するため(OP62 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、データ例外を設定する(OP63)。事前確認部36a−2は、オペランドop1にメモリ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP64)。事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP65)。事前動作確認フローチャート3の場合、除算例外による割込みが発生しないため(OP65 NO)、事前確認部36a−2は、書込み保護例外による割込みが発生したか判断する(OP69)。事前動作確認フローチャート3の場合、書込み保護例外による割込みが発生しないため(OP69 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP71)。
<事前動作確認フローチャート4:OP62がNO、OP67がYES、OP83がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート4の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート4の場合、除算例外による割込みが発生するため(OP67 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、除算例外を設定する(OP81)。事前確認部36a−2は、オペランドop1に不当なデータ形式且つメモリ書込み保護を、オペランドop2に正当な値を設定してdivide命令を実行する(OP82)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP83)。事前動作確認フローチャート4の場合、データ例外による割込みが発生するため(OP83 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位にデータ例外を、3位に書込み保護例外を設定する(OP84)。
<事前動作確認フローチャート5:OP62がNO、OP67がYES、OP83がNO、OP85がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート5の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート5の場合、除算例外による割込みが発生するため(OP67 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、除算例外を設定する(OP81)。事前確認部36a−2は、オペランドop1に不当なデータ形式且つメモリ書込み保護を、オペランドop2に正当な値を設定してdivide命令を実行する(OP82)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP83)。事前動作確認フローチャート5の場合、データ例外による割込みが発生しないため(OP83 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP85)。事前動作確認フローチャート5の場合、書込保護例外による割込みが発生するため(OP85 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位に書込み保護例外を、3位にデータ例外を設定する(OP86)。
<事前動作確認フローチャート6:OP62がNO、OP67がYES、OP83がNO、OP85がNO>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート6の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート6の場合、除算例外による割込みが発生するため(OP67 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、除算例外を設定する(OP81)。事前確認部36a−2は、オペランドop1に不当なデータ形式且つメモリ書込み保護を、オペランドop2に正当な値を設定してdivide命令を実行する(OP82)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP83)。事前動作確認フローチャート6の場合、データ例外による割込みが発生しないため(OP83 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP85)。事前動作確認フローチャート6の場合、書込保護例外による割込みが発生しないため(OP85 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP87)。
<事前動作確認フローチャート7:OP62がNO、OP67がNO、OP68がYES、OP93がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート7の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート7の場合、除算例外による割込みが発生しないため(OP67 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP68)。事前動作確認フローチャート7の場合、書込み保護による例外が発生するため(OP68 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、書込み保護例外を設定する(OP91)。事前確認部36a−2は、オペランドop1に不当なデータ形式を、オペランドop2に0を設定してdivide命令を実行する(OP92)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP93)。事前動作確認フローチャート7の場合、データ例外による割込みが発生するため(OP93 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位にデータ例外を、3位に除算例外を設定する(OP94)。
<事前動作確認フローチャート8:OP62がNO、OP67がNO、OP68がYES、OP93がNO、OP95がYES>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート8の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート8の場合、除算例外による割込みが発生しないため(OP67 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP68)。事前動作確認フローチャート8の場合、書込保護による例外が発生するため(OP68 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、書込保護例外を設定する(OP91)。事前確認部36a−2は、オペランドop1に不当なデータ形式を、オペランドop2に0を設定してdivide命令を実行する(OP92)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP93)。事前動作確認フローチャート8の場合、データ例外による割込みが発生しないため(OP93 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP95)。事前動作確認フローチャート8の場合、除算例外による割込みが発生するため(OP95 YES)、第4処理部37a−2は、テーブル43a−2のdivide命令除外順序の2位に除算例外を、3位にデータ例外を設定する(OP96)。
<事前動作確認フローチャート9:OP62がNO、OP67がNO、OP68がYES、OP93がNO、OP95がNO>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート9の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート9の場合、除算例外による割込みが発生しないため(OP67 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP68)。事前動作確認フローチャート9の場合、書込保護による例外が発生するため(OP68 YES)、事前確認部36a−2は、テーブル43a−2のdivide命令例外順序の1位に、書込保護例外を設定する(OP91)。事前確認部36a−2は、オペランドop1に不当なデータ形式を、オペランドop2に0を設定してdivide命令を実行する(OP92)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP93)。事前動作確認フローチャート9の場合、データ例外による割込みが発生しないため(OP93 YES)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP95)。事前動作確認フローチャート9の場合、除算例外による割込みが発生しないため(OP95 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP97)。
<事前動作確認フローチャート10:OP62がNO、OP67がNO、OP68がNO>
事前確認部36a−2は、オペランドop1に不当なデータ形式、且つ書込み保護を、オペランドop2に0を設定してdivide命令を実行する(OP61)。事前確認部36a−2は、データ例外による割込みが発生したか判断する(OP62)。
事前動作確認フローチャート10の場合、データ例外による割込みが発生しないため(OP62 NO)、事前確認部36a−2は、除算例外による割込みが発生したか判断する(OP67)。事前動作確認フローチャート10の場合、除算例外による割込みが発生しないため(OP67 NO)、事前確認部36a−2は、書込保護例外による割込みが発生したか判断する(OP68)。事前動作確認フローチャート10の場合、書込保護例外による割込みが発生しないため(OP68 NO)、第7処理部40aは、例えば、エラーログを出力装置23aに出力するエラー処理を行う(OP71)。
図13〜図14は、実施例2に係るプロセッサ試験装置20aの命令シミュレーション動作を示すフローチャートである。図13のAに示す処理は図14のAに続いている。なお、図13〜図14において、実施例1の図8、及び実施例2の図9〜図12で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図13〜図14に示すフローチャートには、OP102、OP105、OP107、OP103、OP110、OP112、OP104、OP115、OP117、OP121、OP123、OP125の12個の条件分岐処理がある。これらの条件分岐処理により、図13〜図14に示すフローチャートには、以下のような処理の組合せがある。
命令シミュレーション動作フローチャート1:OP102がYES、OP105がYES、OP103がNO、OP104がYES、OP121がYES
命令シミュレーション動作フローチャート2:OP102がYES、OP105がNO、OP107がYES、OP103がNO、OP104がYES、OP121がNO、OP123がYES
命令シミュレーション動作フローチャート3:OP102がYES、OP105がNO、OP107がNO、OP103がNO、OP104がYES、OP121がNO、OP123がNO、OP125がYES
命令シミュレーション動作フローチャート4:OP102がNO、OP103がYES、OP110がYES、OP104がYES、OP121がYES
命令シミュレーション動作フローチャート5:OP102がNO、OP103がYES、OP110がNO、OP112がYES、OP104がYES、OP121がNO、OP123がYES
命令シミュレーション動作フローチャート6:OP102がNO、OP103がYES、OP110がNO、OP112がNO、OP104がYES、OP121がNO、OP123がNO、OP125がYES
命令シミュレーション動作フローチャート7:OP102がNO、OP103がNO、OP104がNO、OP115がYES、OP121がYES
命令シミュレーション動作フローチャート8:OP102がNO、OP103がNO、OP104がNO、OP115がNO、OP117がYES、OP121がNO、OP123がYES
命令シミュレーション動作フローチャート9:OP102がNO、OP103がNO、OP104がNO、OP115がNO、OP117がNO、OP121がNO、OP123がNO、OP125がYES
命令シミュレーション動作フローチャート10:OP102がNO、OP103がNO、OP104がYES、OP121がNO、OP123がNO、OP125がNO
以下、上記10個のフローチャートについて、図13〜図14を用いて説明する。なお、図13〜図14において、以下の記載においては、図11〜図12と同様に冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<命令シミュレーション動作フローチャート1:OP102がYES、OP105がYES、OP103がNO、OP104がYES、OP121がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート1の場合、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式であるため(OP102 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であるか判断する(OP105)。命令シミュレーション動作フローチャート1の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であるため(OP105 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であることを示す動作フラグ1をオンにする(OP106)。
シミュレーション部34a−2は、第1格納部41a−2に格納したオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート1の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート1の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート1の場合、動作フラグ1がオンであるであるため(OP121 YES)、シミュレーション部34a−2は、優先順位1番目であるデータ例外処理をシミュレートする(OP122)。
<命令シミュレーション動作フローチャート2:OP102がYES、OP105がNO、OP107がYES、OP103がNO、OP104がYES、OP121がNO、OP123がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート2の場合、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式であるため(OP102 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であるか判断する(OP105)。命令シミュレーション動作フローチャート2の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目ではないため(OP105 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であるか判断する(OP107)。命令シミュレーション動作フローチャート2の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であるため(OP107 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であることを示す動作フラグ2をオンにする(OP108)。
シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート2の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート2の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート2の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート2の場合、動作フラグ2がオンであるであるため(OP123 YES)、シミュレーション部34a−2は、優先順位2番目であるデータ例外処理をシミュレートする(OP124)。
<命令シミュレーション動作フローチャート3:OP102がYES、OP105がNO、OP107がNO、OP103がNO、OP104がYES、OP121がNO、OP123がNO、OP125がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート3の場合、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式であるため(OP102 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であるか判断する(OP105)。命令シミュレーション動作フローチャート3の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目ではないため(OP105 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であるか判断する(OP107)。命令シミュレーション動作フローチャート3の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目ではないため(OP107 NO)、シミュレーション部34a−2は、テーブル43a−2を参照にして、オペランドop1又はオペランドop2のデータ例外の優先順位が3番目であることを示す動作フラグ3をオンにする(OP109)。
シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート3の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート3の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート3の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位が2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート3の場合、動作フラグ2がオンではないため(OP123 NO)、シミュレーション部34a−2は、動作フラグ3がオンであるか判断する(OP125)。命令シミュレーション動作フローチャート3の場合、オペランドop1又はオペランドop2のデータ例外の優先順位が3番目であることを示す動作フラグ3がオンであるであるため(OP125 YES)、シミュレーション部34a−2は、優先順位3番目であるデータ例外処理をシミュレートする(OP126)。
<命令シミュレーション動作フローチャート4:OP102がNO、OP103がYES、OP110がYES、OP104がYES、OP121がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート4の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート4の場合、オペランドop2が0であるため(OP103 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であるか判断する(OP110)。命令シミュレーション動作フローチャート4の場合、除算例外が優先順位1番目であるため(OP110 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、除算例外が優先順位1番目であることを示す動作フラグ1をオンにする(OP111)。
シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート4の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート4の場合、動作フラグ1がオンであるであるため(OP121 YES)、シミュレーション部34a−2は、優先順位1番目である除算例外処理をシミュレートする(OP122)。
<命令シミュレーション動作フローチャート5:OP102がNO、OP103がYES、OP110がNO、OP112がYES、OP104がYES、OP121がNO、OP123がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート5の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート5の場合、オペランドop2が0であるため(OP103 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であるか判断する(OP110)。命令シミュレーション動作フローチャート5の場合、除算例外は優先順位1番目ではないため(OP110 NO)、シミュレーション部34a−2は、除算例外が優先順位2番目であるか判断する(OP112)。命令シミュレーション動作フローチャート5の場合、除算例外は優先順位2番目であるため(OP112 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、除算例外は優先順位2番目であることを示す動作フラグ2をオンにする(OP113)。
シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート5の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート5の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、除算例外は優先順位2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート5の場合、動作フラグ2がオンであるため(OP123 YES)、シミュレーション部34a−2は、優先順位2番目である除算例外処理をシミュレートする(OP124)。
<命令シミュレーション動作フローチャート6:OP102がNO、OP103がYES、OP110がNO、OP112がNO、OP104がYES、OP121がNO、OP123がNO、OP125がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート6の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート6の場合、オペランドop2が0であるため(OP103 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であるか判断する(OP110)。命令シミュレーション動作フローチャート6の場合、除算例外は優先順位1番目ではないため(OP110 NO)、シミュレーション部34a−2は、除算例外が優先順位2番目であるか判断する(OP112)。命令シミュレーション動作フローチャート6の場合、除算例外は優先順位2番目ではないため(OP112 NO)、シミュレーション部34a−2は、テーブル43a−2を参照にして、除算例外が優先順位3番目であることを示す動作フラグ3をオンにする(OP114)。
シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート6の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、除算例外が優先順位1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート6の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、除算例外が優先順位2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート6の場合、動作フラグ2がオンではないため(OP123 NO)、シミュレーション部34a−2は、除算例外が優先順位3番目であることを示す動作フラグ3がオンであるか判断する(OP125)。命令シミュレーション動作フローチャート6の場合、動作フラグ3がオンであるため(OP125 YES)、シミュレーション部34a−2は、優先順位3番目である除算例外処理をシミュレートする(OP126)。
<命令シミュレーション動作フローチャート7:OP102がNO、OP103がNO、OP104がNO、OP115がYES、OP121がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート7の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート7の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。
命令シミュレーション動作フローチャート7の場合、オペランドop1は書込みアクセス可能ではないため(OP104 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であるか判断する(OP115)。命令シミュレーション動作フローチャート7の場合、書込みアクセス例外の優先順位が1番目であるため(OP115 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、書込みアクセス例外の優先順位が1番目であることを示す動作フラグ1をオンにする(OP116)。
シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート7の場合、動作フラグ1がオンであるであるため(OP121 YES)、シミュレーション部34a−2は、優先順位1番目である書込みアクセス例外処理をシミュレートする(OP122)。
<命令シミュレーション動作フローチャート8:OP102がNO、OP103がNO、OP104がNO、OP115がNO、OP117がYES、OP121がNO、OP123がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート8の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート8の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。
命令シミュレーション動作フローチャート8の場合、オペランドop1は書込みアクセス可能ではないため(OP104 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であるか判断する(OP115)。命令シミュレーション動作フローチャート8の場合、書込みアクセス例外の優先順位が1番目ではないため(OP115 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が2番目であるか判断する(OP117)。命令シミュレーション動作フローチャート8の場合、書込みアクセス例外の優先順位が2番目であるため(OP117 YES)、シミュレーション部34a−2は、テーブル43a−2を参照にして、書込みアクセス例外の優先順位が2番目であることを示す動作フラグ2をオンにする(OP118)。
シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート8の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート8の場合、動作フラグ2がオンであるため(OP123 YES)、シミュレーション部34a−2は、優先順位2番目である書込みアクセス例外処理をシミュレートする(OP124)。
<命令シミュレーション動作フローチャート9:OP102がNO、OP103がNO、OP104がNO、OP115がNO、OP117がNO、OP121がNO、OP123がNO、OP125がYES>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート9の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート9の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。
命令シミュレーション動作フローチャート9の場合、オペランドop1は書込みアクセス可能ではないため(OP104 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であるか判断する(OP115)。命令シミュレーション動作フローチャート9の場合、書込みアクセス例外の優先順位が1番目ではないため(OP115 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が2番目であるか判断する(OP117)。命令シミュレーション動作フローチャート9の場合、書込みアクセス例外の優先順位が2番目ではないため(OP117 NO)、シミュレーション部34a−2は、テーブル43a−2を参照にして、書込みアクセス例外の優先順位が3番目であることを示す動作フラグ3をオンにする(OP119)。
シミュレーション部34a−2は、書込みアクセス例外の優先順位が1番目であることを示す動作フラグ1がオンであるか判断する(OP121)。命令シミュレーション動作フローチャート9の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が2番目であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート9の場合、動作フラグ2がオンではないため(OP123 NO)、シミュレーション部34a−2は、書込みアクセス例外の優先順位が3番目であることを示す動作フラグ3がオンであるか判断する(OP125)。命令シミュレーション動作フローチャート9の場合、動作フラグ3がオンであるため(OP125 YES)、シミュレーション部34a−2は、優先順位3番目である書込みアクセス例外処理をシミュレートする(OP126)。
<命令シミュレーション動作フローチャート10:OP102がNO、OP103がNO、OP104がYES、OP121がNO、OP123がNO、OP125がNO>
シミュレーション部34a−2は、主記憶装置11aに設けられたフラグ1、フラグ2及びフラグ3をオフに設定する(OP101)。シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop1又はオペランドop2が不当なデータ形式か判断する(OP102)。
命令シミュレーション動作フローチャート10の場合、オペランドop1又はオペランドop2が不当なデータ形式ではないため(OP102 NO)、シミュレーション部34a−2は、第1格納部41a−2に格納されたオペランドop2が0であるか判断する(OP103)。命令シミュレーション動作フローチャート10の場合、オペランドop2が0ではないため(OP103 NO)、シミュレーション部34a−2は、オペランドop1は書込みアクセス可能であるか判断する(OP104)。命令シミュレーション動作フローチャート10の場合、オペランドop1は書込みアクセス可能であるため(OP104 YES)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位、除算例外、又は除算例外のうち何れかの優先順位が1番であることを示す動作フラグ1がオンであるか判断する(OP121)。
命令シミュレーション動作フローチャート10の場合、動作フラグ1がオンではないため(OP121 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位、除算例外、又は除算例外のうち何れかの優先順位が2番であることを示す動作フラグ2がオンであるか判断する(OP123)。命令シミュレーション動作フローチャート10の場合、動作フラグ2がオンではないため(OP123 NO)、シミュレーション部34a−2は、オペランドop1又はオペランドop2のデータ例外の優先順位、除算例外、又は除算例外のうち何れかの優先順位が3番であることを示す動作フラグ3がオンであるか判断する(OP125)。命令シミュレーション動作フローチャート10の場合、動作フラグ3がオンではないため(OP125 NO)、シミュレーション部34a−2は、オペランドop1及びオペランドop2に対するdivide命令をシミュレートする(OP127)。
実施例2に開示の技術によれば、実施例2に係るプロセッサ試験装置20aは、予め機種依存動作としてdivide命令例外順序を考慮してシミュレートした期待値を求めることができる。従って、この期待値を使用してプロセッサ12bの動作検証を行うので、複雑な工程を必要とせず、プロセッサ12bの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサ12bの動作検証の精度を向上させることができる。
(実施例3)
図15から図17を用いて、実施例3を説明する。
図15は、実施例3に係るプロセッサ試験装置20aの処理説明図である。なお、図15に示すプロセッサ試験装置20aの処理説明図において、実施例1の図1〜図6、及び実施例2の図9で説明した構成と同様の構成には同一の符号を付し、説明を省略する。なお、実施例3におけるプロセッサ12aの機種依存動作は、以下に説明するcompare−and−swap書き戻しである。
図15において、事前確認部36a−3は、複数のプロセッサ間の排他制御方式のためのcompare−and−swap命令において、メモリとして機能する主記憶装置11aが格納するデータと置換データが等しい時に、主記憶装置11aへの書き戻しが行われるか否かについて確認する。実施例3に係るcompare−and−swap命令とは、複数のプロセッサの共有メモリとして使用される主記憶装置11aの特定のアドレスに格納されたデータと、プロセッサ12aのレジスタ12a−2に格納された置換対象となるデータとを比較する。比較結果において各データが同一である場合、特定のアドレスに格納されているデータをプロセッサ12aのレジスタ12a−2に格納されている置換データで書き換えて主記憶装置11aにアクセスする排他制御方式である。
事前確認部36a−3は、例えば、複数のプロセッサ間の排他制御命令であるcompare−and−swapにおいて、主記憶装置11aに格納されているデータと置換データが等しい時にメモリへの書き戻しが行われるか否かについて確認する。事前確認部36a−3は、compare−and−swapがアクセスする主記憶装置11aのアドレスに対して書込み保護条件を設定し、格納されているデータと置換データを同じ値として命令を実行する。
第4処理部37a−3は、compare−and−swap命令がアクセスする主記憶装置11aのアドレスに対して書込み保護条件を設定し、格納されているデータと置換データを同じ値として命令を実行すると、割込みハンドラを起動させる。割込みハンドラは、第1格納部41a−3に格納されているデータに対してcompare−and−swap命令を実行した後、書込み保護条件による割込みが発生したか調べる。第1処理部31aは、第4処理部37a−3によって、起動された割込みハンドラを、第1格納部41a−3に格納された試験命令列の後続命令として追加させる。
テーブル43a−3は、割込みハンドラの起動と同時に固定領域44a−3に割込みステータスとして割込み原因コードを格納する。第4処理部37a−3によって起動された割込みハンドラは、割込みと同時に固定領域44a−3に割込みステータスとして、割込み原因コード及び割込み原因アドレスが格納される。割込みハンドラは割込み原因コード及び割込み原因アドレスを基に割込みが発生したかを判断する。
テーブル43a−3は、第4処理部37a−3によりcompare−and−swap命令による割込みハンドラが起動された後、プロセッサ12aの論理仕様から機種依存となる項目を抽出した機種依存項目を格納する。実施例3に係るテーブル43a−3は、compare−and−swap書き戻しを格納する。実施例3において、テーブル43a−3の項目に格納される動作は、フラグがオンの場合は1、フラグがオフの場合は0となる2つの有限な選択肢を含む。
シミュレーション部34a−3は、試験対象であるプロセッサ12bに係る機種依存項目の動作シミュレーションに際して、テーブル43a−3を参照してシミュレーション部34a−3の動作を決定する。シミュレーション部34a−3は、テーブル43a−3を参照することにより、試験対象であるプロセッサ12bに適応したシミュレーションを行う。実施例3におけるプロセッサ12aの機種依存動作は、compare−and−swap書き戻しである。
シミュレーション部34a−3は、compare−and−swap命令を実行後、書込み保護条件による割込みが発生した場合は、第2格納部42aに格納されるテーブル43a−3の該当エントリに書き戻しが行われることを示すフラグをオンする。シミュレーション部34a−3は、compare−and−swap命令を実行後、書込み保護条件による割込みが発生しなかった場合、第2格納部42aに格納されるテーブル43a−3の該当エントリに書き戻しが行われることを示すフラグをオフにする。シミュレーション部34a−3は、compare−and−swap命令をシミュレートする際、第1格納部41a−3に格納されているデータと置換データが等しい場合に、テーブル43a−3を参照にして主記憶装置11aへの書き戻しを行うか否かを判断し命令シミュレートを行う。
図16は、実施例3に係るプロセッサ試験装置20aの事前動作確認を示すフローチャートである。なお、図16において、実施例1に係る図1〜図6、実施例2の図10〜図11、及び図15で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図16に示すフローチャートには、OP133における1個の条件分岐処理がある。この条件分岐処理により、図16に示すフローチャートには、以下のような処理の組合せがある。
事前動作確認フローチャート1:OP133がNO
事前動作確認フローチャート2:OP133がYES
以下、上記2つのフローチャートについて、図16を用いて説明する。なお、実施例3において、実施例1及び実施例2と同様に、プロセッサ12aが、プログラム30aを実行することにより、第1処理部31a〜第7処理部40aが動作可能になる。以下の記載においては、実施例1及び実施例2と同様に、冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<事前動作確認フローチャート1:OP133がNO>
図16において、事前確認部36a−3は、compare−and−swap命令がアクセスする主記憶装置11aのアドレス位置に対して書込み保護条件を設定する(OP131)。
事前確認部36a−3は、主記憶装置11aのアドレス位置に格納されるデータと、compare−and−swap命令において置換対象となるデータの値を同じに設定して、compare−and−swap命令を実行する(OP132)。事前確認部36a−3は、書込み保護による割込みが発生したか判断する(OP133)。
事前動作確認フローチャート1の場合、書込み保護による割込みが発生しないため(OP133 NO)、第4処理部37a−3は、第2格納部42aに格納されるcompare−and−swap命令の書き戻しフラグをオフにする(OP134)。即ち、第4処理部37a−3は、第2格納部42aに格納されるcompare−and−swap命令の書き戻しフラグを0に設定する。
<事前動作確認フローチャート2:OP133がYES>
事前確認部36a−3は、主記憶装置11aのアドレス位置に格納されるデータと、compare−and−swap命令において置換対象となるデータの値を同じに設定して、compare−and−swap命令を実行する(OP132)。事前確認部36a−3は、書込み保護による割込みが発生したか判断する(OP133)。
事前動作確認フローチャート2の場合、書込み保護による割込みが発生するため(OP133 YES)、第4処理部37a−3は、第2格納部42aに格納されるテーブル43a−3のcompare−and−swap命令の書き戻しフラグをオンにする(OP135)。即ち、第4処理部37a−3は、第2格納部42aに格納されるテーブル43a−3のcompare−and−swap命令の書き戻しフラグを1に設定する。
図17は、実施例3に係るプロセッサ試験装置20aの命令シミュレーション動作を示すフローチャートである。なお、図17において、実施例1に係る図1〜図6、実施例2の図10〜図11、及び図15〜図16で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図17に示すフローチャートには、OP142、OP143の2つの条件分岐処理がある。これらの条件分岐処理により、図17に示すフローチャートには、以下のような処理の組合せがある。
命令シミュレーション動作フローチャート1:OP142がYES、OP143がYES
命令シミュレーション動作フローチャート2:OP142がNO
命令シミュレーション動作フローチャート3:OP142がYES、OP143がNO
以下、上記3つのフローチャートについて、図17を用いて説明する。図17において、以下の記載においては、図16と同様に冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<命令シミュレーション動作フローチャート1:OP142がYES、OP143がYES>
シミュレーション部34a−3は、compare−and−swap命令動作のシミュレートを実行する(OP141)。シミュレーション部34a−3は、主記憶装置11aに格納されている格納データと置換データが等しいか判断する(OP142)。
命令シミュレーション動作フローチャート1の場合、主記憶装置11aに格納されている格納データと置換データが等しいため(OP142 YES)、シミュレーション部34a−3は、テーブル43a−3のcompare−and−swap命令の書き戻しフラグがオンか判断する(OP143)。命令シミュレーション動作フローチャート1の場合、compare−and−swap命令の書き戻しフラグがオンであるため(OP143 YES)、シミュレーション部34a−3は、格納データの書き戻し処理を実行する(OP144)。
<命令シミュレーション動作フローチャート2:OP142がNO>
シミュレーション部34a−3は、compare−and−swap命令動作のシミュレートを実行する(OP141)。シミュレーション部34a−3は、主記憶装置11aに格納されている格納データと置換データが等しいか判断する(OP142)。命令シミュレーション動作フローチャート2の場合、主記憶装置11aに格納されている格納データと置換データが等しくないため(OP142 NO)、シミュレーション部34a−3は、compare−and−swap命令動作のシミュレートを終了する。
<命令シミュレーション動作フローチャート3:OP142がYES、OP143がNO>
シミュレーション部34a−3は、compare−and−swap命令動作のシミュレートを実行する(OP141)。シミュレーション部34a−3は、主記憶装置11aに格納されている格納データと置換データが等しいか判断する(OP142)。
命令シミュレーション動作フローチャート3の場合、主記憶装置11aに格納されている格納データと置換データが等しいため(OP142 YES)、シミュレーション部34a−3は、テーブル43a−3のcompare−and−swap命令の書き戻しフラグがオンか判断する(OP143)。命令シミュレーション動作フローチャート3の場合、compare−and−swap命令の書き戻しフラグがオンでは無いため(OP143 NO)、シミュレーション部34a−3は、compare−and−swap命令動作のシミュレートを終了する。
実施例3に開示の技術によれば、実施例3に係るプロセッサ試験装置20aは、予め機種依存動作としてcompare−and−swap書き戻しを考慮してシミュレートした期待値を求めることができる。従って、この期待値を使用してプロセッサ12bの動作検証を行っているので、複雑な工程を必要とせず、プロセッサ12bの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサ12bの動作検証の精度を向上させることができる。
(実施例4)
図18から図20を用いて、実施例4を説明する。
図18は、実施例4に係るプロセッサ試験装置20aの処理説明図である。なお、図18に示すプロセッサ試験装置20aの処理説明図において、実施例1の図1〜図6、実施例2の図9、及び実施例3の図15に説明した構成と同様の構成には同一の符号を付し、説明を省略する。なお、実施例4におけるプロセッサ12aの機種依存動作は、以下に説明するcompare命令アクセス例外認識である。
図18において、事前確認部36a−4は、レジスタ12a−2に格納されているオペランドop1と、メモリとして機能する主記憶装置11aに格納されているオペランドop2とを比較するcompare命令を実行する。事前確認部36a−4は、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスに無効ページを設定する。無効ページは、アクセス対象のデータが、第1格納部41a−4上に存在しないことを示す。無効ページは、無効データを保持する。不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスに無効ページを設定した後、事前確認部36a−4は、レジスタ12a−2に格納されているオペランドop1と、主記憶装置11aに格納されているオペランドop2とを比較するcompare命令を実行する。
テーブル43a−4は、割込みハンドラの起動と同時に固定領域44a−4に割込みステータスとして割込み原因コードを格納する。第4処理部37a−4によって起動された割込みハンドラは、割込みと同時に固定領域44a−4に割込みステータスとして割込み原因コード及び割込み原因アドレスが格納される。割込みハンドラは割込み原因コード及び割込み原因アドレスをもとに割込みが発生したかを判断する。
第4処理部37a−4は、レジスタ12a−2に格納されているオペランドop1と、主記憶装置11aに格納されているオペランドop2とを比較するcompare命令を実行すると、割込みハンドラを起動させる。割込みハンドラは、第1格納部41a−4に格納されているデータに対してcompare命令を実行した後、アクセス例外認識による割込みが発生したか調べる。第1処理部31aは、第4処理部37a−4によって、起動された割込みハンドラを、第1格納部41a−4に格納された試験命令列の後続命令として追加させる。
テーブル43a−4は、第4処理部37a−4によりcompare命令による割込みハンドラが起動された後、プロセッサ12aの論理仕様から機種依存となる項目を抽出した機種依存項目を格納する。実施例4に係るテーブル43a−4は、compare命令アクセス例外認識を格納する。実施例4において、テーブル43a−4の項目に格納される動作は、フラグがオンの場合は1、フラグがオフの場合は0となる2つの有限な選択肢を含む。
シミュレーション部34a−4は、試験対象であるプロセッサ12bに係る機種依存項目の動作シミュレーションに際して、テーブル43a−4を参照してシミュレーション部34a−4の動作を決定する。シミュレーション部34a−4は、テーブル43a−4を参照することにより、試験対象であるプロセッサ12bに適応したシミュレーションを行う。実施例4におけるプロセッサ12aの機種依存動作は、compare命令アクセス例外認識である。
シミュレーション部34a−4は、compare命令を実行後、アクセス例外認識による割込みが発生した場合、テーブル43a−4のcompare命令のアクセス例外が認識されることを示すフラグをオンする。シミュレーション部34a−4は、compare命令を実行後、アクセス例外認識による割込みが発生しなかった場合、テーブル43a−4のcompare命令のアクセス例外が認識されることを示すフラグをオフにする。次いで、シミュレーション部34a−4は、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスにアクセス例外が認識されるか判断し、命令シミュレートを行う。
図19は、実施例4に係るプロセッサ試験装置20aの事前動作確認を示すフローチャートである。なお、図16において、実施例1に係る図1〜図6、実施例2の図10〜図11、実施例3の図15〜図17、及び図18で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図19に示すフローチャートには、OP153における1個の条件分岐処理がある。この条件分岐処理により、図19に示すフローチャートには、以下のような処理の組合せがある。
事前動作確認フローチャート1:OP153がNO
事前動作確認フローチャート2:OP153がYES
以下、上記2つのフローチャートについて、図19を用いて説明する。なお、実施例4において、実施例1、実施例2及び実施例3と同様に、プロセッサ12aが、プログラム30aを実行することにより、第1処理部31a〜第7処理部40aが動作可能になる。以下の記載においては、実施例1、実施例2及び実施例3と同様に、冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<事前動作確認フローチャート1:OP153がNO>
図19において、事前確認部36a−4は、compare命令が実行されるレジスタ12a−2に格納されているオペランドop1と、メモリとして機能する主記憶装置11aに格納されているオペランドop2にそれぞれアクセスする。次いで、事前確認部36a−4は、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスに無効ページを設定する(OP151)。
事前確認部36a−4は、レジスタ12a−2に格納されているオペランドop1と、主記憶装置11aに格納されているオペランドop2とを比較するcompare命令を実行する(OP152)。事前確認部36a−4は、compare命令を実行した後、無効ページ保護による割込みが発生したか判断する(OP153)。
事前動作確認フローチャート1の場合、無効ページ保護による割込みが発生しないため(OP153 NO)、第4処理部37a−4は、テーブル43a−4のcompare命令アクセス例外認識を示すフラグをオフにする(OP154)。即ち、第4処理部37a−4は、compare命令アクセス例外認識を示すフラグを0に設定する。
<事前動作確認フローチャート2:OP153がNO>
事前確認部36a−4は、レジスタ12a−2に格納されているオペランドop1と、主記憶装置11aに格納されているオペランドop2とを比較するcompare命令を実行する(OP152)。事前確認部36a−4は、compare命令を実行した後、無効ページ保護による割込みが発生したか判断する(OP153)。
事前動作確認フローチャート2の場合、無効ページ保護による割込みが発生するため(OP153 YES)、第4処理部37a−4は、テーブル43a−4のcompare命令アクセス例外認識を示すフラグをオンにする(OP155)。即ち、第4処理部37a−4は、compare命令アクセス例外認識を示すフラグを1に設定する。
図20は、実施例4に係るプロセッサ試験装置20aの命令シミュレーション動作を示すフローチャートである。なお、図20において、実施例1に係る図1〜図6、実施例2の図10〜図11、実施例3の図15〜図17、及び実施例4の図18〜図19で説明した構成と同様の構成には同一の符号を付し、説明を省略する。
図20に示すフローチャートには、OP162、OP163の2つの条件分岐処理がある。これらの条件分岐処理により、図20に示すフローチャートには、以下のような処理の組合せがある。
命令シミュレーション動作フローチャート1:OP162がYES、OP163がYES
命令シミュレーション動作フローチャート2:OP162がNO
命令シミュレーション動作フローチャート3:OP162がYES、OP163がNO
以下、上記3つのフローチャートについて、図20を用いて説明する。以下の記載においては、図19と同様に冗長記載を回避するために、第1処理部31aが第2処理部32a〜第7処理部40aに処理の指示を出す記載を省略する。
<命令シミュレーション動作フローチャート1:OP162がYES、OP163がYES>
シミュレーション部34a−4は、compare命令動作のシミュレートを実行する(OP161)。シミュレーション部34a−4は、テーブル43a−4のcompare命令のアクセス例外認識を示すフラグがオンか判断する(OP162)。
命令シミュレーション動作フローチャート1の場合、compare命令のアクセス例外認識を示すフラグがオンであるため(OP162 YES)、シミュレーション部34a−4は、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスにアクセス例外が認識されるか判断する(OP163)。命令シミュレーション動作フローチャート1の場合、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスにアクセス例外が認識されるため(OP163 YES)、シミュレーション部34a−4は、アクセス例外のシミュレートを行う(OP164)。
<命令シミュレーション動作フローチャート2:命令シミュレーション動作フローチャート2:OP162がNO>
シミュレーション部34a−4は、compare命令動作のシミュレートを実行する(OP161)。シミュレーション部34a−4は、テーブル43a−4のcompare命令のアクセス例外認識を示すフラグがオンか判断する(OP162)。命令シミュレーション動作フローチャート2の場合、テーブル43a−4のcompare命令のアクセス例外認識を示すフラグがオンでは無いため(OP162 NO)、シミュレーション部34a−4は、compare命令動作のシミュレートを終了する。
<命令シミュレーション動作フローチャート3:OP162がYES、OP163がNO>
シミュレーション部34a−4は、compare命令動作のシミュレートを実行する(OP161)。シミュレーション部34a−4は、テーブル43a−4のcompare命令のアクセス例外認識を示すフラグがオンか判断する(OP162)。命令シミュレーション動作フローチャート3の場合、テーブル43a−4のcompare命令のアクセス例外認識を示すフラグがオンであるため(OP162 YES)、シミュレーション部34a−4は、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスにアクセス例外が認識されるか判断する(OP163)。命令シミュレーション動作フローチャート3の場合、オペランドop1及びオペランドop2が最初に不一致となるバイト以降のデータが格納されている主記憶装置11aのアドレスにアクセス例外が認識されないため(OP163 NO)、シミュレーション部34a−4は、compare命令動作のシミュレートを終了する。
実施例4に開示の技術によれば、実施例4に係るプロセッサ試験装置20aは、予め機種依存動作としてcompare命令アクセス例外認識を考慮してシミュレートした期待値を求めることができる。従って、この期待値を使用してプロセッサ12bの動作検証を行っているので、複雑な工程を必要とせず、プロセッサ12bの動作検証を効率的に実行することができる。又、機種依存動作に依存せずに動作検証を実行することができるので、プロセッサ12bの動作検証の精度を向上させることができる。
(付記1)
プロセッサの動作を検証するプロセッサの動作検証方法であって、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
を含むことを特徴とするプロセッサの動作検証方法。
(付記2)
前記試験命令列は、
複数のオペランドを含む命令を前記プロセッサで実行する際、前記複数のオペランドに対するアクセス順序を設定する命令列を含むことを特徴とする付記1記載のプロセッサの動作検証方法。
(付記3)
前記試験命令列は、
前記プロセッサが、複数のオペランドのデータ形式が指定された除算命令を実行する際、複数の例外が発生する際の設定順序を設定する命令列を含むことを特徴とする付記1記載のプロセッサの動作検証方法。
(付記4)
前記複数の例外は、
除数となるオペランドのデータ形式が指定された前記データ形式と異なる場合に発生するデータ例外、除数が0であるときに発生する除算例外、及び除数となるオペランドが格納されているメモリに対する格納アクセスが不許可であるときに発生するアクセス例外を含むことを特徴とする付記3記載のプロセッサの動作検証方法。
(付記5)
前記試験命令列は、
複数のプロセッサのうち少なくとも1つの前記プロセッサが、前記プロセッサと異なる他のプロセッサとの間で排他制御を実行する際、前記プロセッサによってメモリに格納されたデータを、前記他のプロセッサによって書き戻しを行うか否かを設定する命令列を含むことを特徴とする付記1記載のプロセッサの動作検証方法。
(付記6)
前記試験命令列は、
前記プロセッサが、前記プロセッサに接続されるキャッシュメモリに格納され、前記プロセッサによって実行される第1データに含まれる第1の複数のバイトと、前記プロセッサに接続されるメモリに格納される第2データに含まれる第2の複数のバイトとを、それぞれのバイト毎に比較する比較命令を実行する際、
前記第1の複数のバイト及び前記第2の複数のバイトのうち、異なるバイトが存在する場合、
前記比較命令が実行されていない残りの前記第1の複数のバイトと残りの前記第2の複数のバイトとに対して、メモリに対する格納アクセスが不許可であるときに発生するアクセス例外が設定されているか否か認識する命令列を含むことを特徴とする付記1記載のプロセッサの動作検証方法。
(付記7)
プロセッサの動作を検証するプロセッサの動作検証装置であって、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する第1取得部と、
前記プロセッサで前記試験命令列を実行させて結果値を取得する第2取得部と、
前記第1取得部で取得された前記期待値及び前記第2取得部で取得された前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する判定部と、
を有することを特徴とするプロセッサの動作検証装置。
(付記8)
前記試験命令列は、
複数のオペランドを含む命令を前記プロセッサで実行する際、前記複数のオペランドに対するアクセス順序を設定する命令列を含むことを特徴とする付記7記載のプロセッサの動作検証装置。
(付記9)
前記試験命令列は、
前記プロセッサが、複数のオペランドのデータ形式が指定された除算命令を実行する際、複数の例外が発生する際の設定順序を設定する命令列を含むことを特徴とする付記7記載のプロセッサの動作検証装置。
(付記10)
前記複数の例外は、
除数となるオペランドのデータ形式が指定された前記データ形式と異なる場合に発生するデータ例外、除数が0であるときに発生する除算例外、及び除数となるオペランドが格納されているメモリに対する格納アクセスが不許可であるときに発生するアクセス例外を含むことを特徴とする付記9記載のプロセッサの動作検証装置。
(付記11)
前記試験命令列は、
複数のプロセッサのうち少なくとも1つの前記プロセッサが、前記プロセッサと異なる他のプロセッサとの間で排他制御を実行する際、前記プロセッサによってメモリに格納されたデータを、前記他のプロセッサによって書き戻しを行うか否かを設定する命令列を含むことを特徴とする付記7記載のプロセッサの動作検証装置。
(付記12)
前記試験命令列は、
前記プロセッサが、前記プロセッサに接続されるキャッシュメモリに格納され、前記プロセッサによって実行される第1データに含まれる第1の複数のバイトと、前記プロセッサに接続されるメモリに格納される第2データに含まれる第2の複数のバイトとを、それぞれのバイト毎に比較する比較命令を実行する際、
前記第1の複数のバイト及び前記第2の複数のバイトのうち、異なるバイトが存在する場合、
前記比較命令が実行されていない残りの前記第1の複数のバイトと残りの前記第2の複数のバイトとに対して、メモリに対する格納アクセスが不許可であるときに発生するアクセス例外が設定されているか否か認識する命令列を含むことを特徴とする付記7のプロセッサの動作検証装置。
(付記13)
プログラムを実行するプロセッサの動作を検証するプロセッサの動作検証プログラムであって、
コンピュータに、
前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
を実行させることを特徴とするプロセッサの動作検証プログラム。
(付記14)
前記試験命令列は、
複数のオペランドを含む命令を前記プロセッサで実行する際、前記複数のオペランドに対するアクセス順序を設定する命令列を含むことを特徴とする付記13記載のプロセッサの動作検証プログラム。
(付記15)
前記試験命令列は、
前記プロセッサが、複数のオペランドのデータ形式が指定された除算命令を実行する際、複数の例外が発生する際の設定順序を設定する命令列を含むことを特徴とする付記13記載のプロセッサの動作検証プログラム。
(付記16)
前記複数の例外は、
除数となるオペランドのデータ形式が指定された前記データ形式と異なる場合に発生するデータ例外、除数が0であるときに発生する除算例外、及び除数となるオペランドが格納されているメモリに対する格納アクセスが不許可であるときに発生するアクセス例外を含むことを特徴とする付記15記載のプロセッサの動作検証プログラム。
(付記17)
前記試験命令列は、
複数のプロセッサのうち少なくとも1つの前記プロセッサが、前記プロセッサと異なる他のプロセッサとの間で排他制御を実行する際、前記プロセッサによってメモリに格納されたデータを、前記他のプロセッサによって書き戻しを行うか否かを設定する命令列を含むことを特徴とする付記13記載のプロセッサの動作検証プログラム。
(付記18)
前記試験命令列は、
前記プロセッサが、前記プロセッサに接続されるキャッシュメモリに格納され、前記プロセッサによって実行される第1データに含まれる第1の複数のバイトと、前記プロセッサに接続されるメモリに格納される第2データに含まれる第2の複数のバイトとを、それぞれのバイト毎に比較する比較命令を実行する際、
前記第1の複数のバイト及び前記第2の複数のバイトのうち、異なるバイトが存在する場合、
前記比較命令が実行されていない残りの前記第1の複数のバイトと残りの前記第2の複数のバイトとに対して、メモリに対する格納アクセスが不許可であるときに発生するアクセス例外が設定されているか否か認識する命令列を含むことを特徴とする付記13記載のプロセッサの動作検証プログラム。
11a 主記憶装置
12a プロセッサ
12a−1 キャッシュメモリ
12a−2 レジスタ
12b プロセッサ
13a バスインタフェースユニット
14a 補助記憶装置
15a ディスクインタフェース
16a バス
20a プロセッサ試験装置
22a 入力装置
23a 出力装置
30a プログラム
31a 第1処理部
32a 第2処理部
33a 第3処理部
34a、34a−1、34a−2、34a−3、34a−4 シミュレーション部
35a 追加部
36a、36a−1、36a−2、36a−3、36a−4 事前確認部
37a、37a−1、37a−2、37a−3、37a−4 第4処理部
38a 第5処理部
39a 第6処理部
40a 第7処理部
41a、41a−1、41a−2、41a−3、41a−4 第1格納部
42a 第2格納部
43a、43a−1、43a−2、43a−3、43a−4 テーブル
44a、44a−1、44a−2、44a−3、44a−4 固定領域
45a 第3格納部
46a 第4格納部

Claims (10)

  1. プロセッサの動作を検証するプロセッサの動作検証方法であって、
    前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
    前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
    取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
    を含むことを特徴とするプロセッサの動作検証方法。
  2. 前記試験命令列は、
    複数のオペランドを含む命令を前記プロセッサで実行する際、前記複数のオペランドに対するアクセス順序を設定する命令列を含むことを特徴とする請求項1記載のプロセッサの動作検証方法。
  3. 前記試験命令列は、
    前記プロセッサが、複数のオペランドのデータ形式が指定された除算命令を実行する際、複数の例外が発生する際の設定順序を設定する命令列を含むことを特徴とする請求項1記載のプロセッサの動作検証方法。
  4. 前記試験命令列は、
    複数のプロセッサのうち少なくとも1つの前記プロセッサが、前記プロセッサと異なる他のプロセッサとの間で排他制御を実行する際、前記プロセッサによってメモリに格納されたデータを、前記他のプロセッサによって書き戻しを行うか否かを設定する命令列を含むことを特徴とする請求項1記載のプロセッサの動作検証方法。
  5. 前記試験命令列は、
    前記プロセッサが、前記プロセッサに接続されるキャッシュメモリに格納され、前記プロセッサによって実行される第1データに含まれる第1の複数のバイトと、前記プロセッサに接続されるメモリに格納される第2データに含まれる第2の複数のバイトとを、それぞれのバイト毎に比較する比較命令を実行する際、
    前記第1の複数のバイト及び前記第2の複数のバイトのうち、異なるバイトが存在する場合、
    前記比較命令が実行されていない残りの前記第1の複数のバイトと残りの前記第2の複数のバイトとに対して、メモリに対する格納アクセスが不許可であるときに発生するアクセス例外が設定されているか否か認識する命令列を含むことを特徴とする請求項1のプロセッサの動作検証方法。
  6. プロセッサの動作を検証するプロセッサの動作検証装置であって、
    前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する第1取得部と、
    前記プロセッサで前記試験命令列を実行させて結果値を取得する第2取得部と、
    前記第1取得部で取得された前記期待値及び前記第2取得部で取得された前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する判定部と、
    を有することを特徴とするプロセッサの動作検証装置。
  7. 前記試験命令列は、
    複数のオペランドを含む命令を前記プロセッサで実行する際、前記複数のオペランドに対するアクセス順序を設定する命令列を含むことを特徴とする請求項6記載のプロセッサの動作検証装置。
  8. 前記試験命令列は、
    前記プロセッサが、複数のオペランドのデータ形式が指定された除算命令を実行する際、複数の例外が発生する際の設定順序を設定する命令列を含むことを特徴とする請求項6記載のプロセッサの動作検証装置。
  9. 前記試験命令列は、
    複数のプロセッサのうち少なくとも1つの前記プロセッサが、前記プロセッサと異なる他のプロセッサとの間で排他制御を実行する際、前記プロセッサによってメモリに格納されたデータを、前記他のプロセッサによって書き戻しを行うか否かを設定する命令列を含むことを特徴とする請求項6記載のプロセッサの動作検証装置。
  10. プログラムを実行するプロセッサの動作を検証するプロセッサの動作検証プログラムであって、
    コンピュータに、
    前記プロセッサの機種依存動作を検証するための試験仕様から生成される試験命令列をソフトウェアシミュレータで実行し、実行された前記試験命令列の結果から期待値を取得する工程と、
    前記試験命令列を前記プロセッサで実行させて結果値を取得する工程と、
    取得された前記期待値及び前記結果値を比較し、前記期待値及び前記結果値の一致又は不一致を判定する工程と、
    を実行させることを特徴とするプロセッサの動作検証プログラム。
JP2010248120A 2010-11-05 2010-11-05 プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム Pending JP2012099035A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010248120A JP2012099035A (ja) 2010-11-05 2010-11-05 プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム
US13/225,839 US8707102B2 (en) 2010-11-05 2011-09-06 Method and program for verifying operation of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010248120A JP2012099035A (ja) 2010-11-05 2010-11-05 プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム

Publications (1)

Publication Number Publication Date
JP2012099035A true JP2012099035A (ja) 2012-05-24

Family

ID=46020796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010248120A Pending JP2012099035A (ja) 2010-11-05 2010-11-05 プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム

Country Status (2)

Country Link
US (1) US8707102B2 (ja)
JP (1) JP2012099035A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502774A (ja) * 2018-09-28 2022-01-11 ジーメンス インダストリー ソフトウェア エヌ・フェーSiemens Industry Software NV ソフトウェアシステムを検証するための方法および装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5983362B2 (ja) * 2012-11-29 2016-08-31 富士通株式会社 試験方法、試験プログラム、および、試験制御装置
GB2508447B (en) * 2013-03-28 2014-10-22 Randomize Ltd Method and apparatus for testing electronic systems
JP2015076693A (ja) * 2013-10-08 2015-04-20 株式会社リコー 表示装置、表示システム、及びプログラム
JP2015108986A (ja) * 2013-12-05 2015-06-11 富士通株式会社 情報処理装置、情報処理装置の試験命令列及び試験方法
US9430599B2 (en) * 2014-02-18 2016-08-30 Optima Design Automation Ltd Determining soft error infliction probability
CN110688304B (zh) * 2019-08-30 2021-04-27 中国科学院信息工程研究所 处理器指令集的完备性检测方法、装置与电子设备
CN113961405B (zh) * 2021-09-30 2022-10-28 北京百度网讯科技有限公司 状态切换指令验证方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02244337A (ja) * 1989-03-17 1990-09-28 Hitachi Ltd データ処理装置の試験方式
JPH08166892A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd データ処理装置の試験方法
JPH1011311A (ja) * 1996-06-24 1998-01-16 Toshiba Corp プロセッサのテストプログラム生成装置
JP2000011022A (ja) * 1998-06-22 2000-01-14 Matsushita Electric Ind Co Ltd ハードウェア/ソフトウェア協調検証方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04247534A (ja) 1991-02-04 1992-09-03 Hokuriku Nippon Denki Software Kk 情報処理装置の試験方式
EP0721166A1 (en) * 1995-01-03 1996-07-10 International Business Machines Corporation Method and system for the design verification of logic units and use in different environments
JPH11338727A (ja) 1998-05-26 1999-12-10 Hitachi Ltd 情報処理装置の試験方法
US6567934B1 (en) * 1999-10-21 2003-05-20 Motorola, Inc. Method and apparatus for verifying multiprocessing design in a unit simulation environment
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
JP2002323992A (ja) 2001-04-25 2002-11-08 Mitsubishi Electric Corp テストケース生成条件生成装置及びテストケース生成条件生成方法
US6963997B2 (en) * 2004-02-03 2005-11-08 Hewlett-Packard Development Company, L.P. Transaction logging and intelligent error reporting in an expectation-based memory agent checker
US7533294B2 (en) * 2004-09-09 2009-05-12 The Regents Of The University Of California Functional coverage driven test generation for validation of pipelined processors
US7320114B1 (en) * 2005-02-02 2008-01-15 Sun Microsystems, Inc. Method and system for verification of soft error handling with application to CMT processors
US7386775B2 (en) * 2005-08-18 2008-06-10 International Business Machines Corporation Scan verification for a scan-chain device under test

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02244337A (ja) * 1989-03-17 1990-09-28 Hitachi Ltd データ処理装置の試験方式
JPH08166892A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd データ処理装置の試験方法
JPH1011311A (ja) * 1996-06-24 1998-01-16 Toshiba Corp プロセッサのテストプログラム生成装置
JP2000011022A (ja) * 1998-06-22 2000-01-14 Matsushita Electric Ind Co Ltd ハードウェア/ソフトウェア協調検証方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022502774A (ja) * 2018-09-28 2022-01-11 ジーメンス インダストリー ソフトウェア エヌ・フェーSiemens Industry Software NV ソフトウェアシステムを検証するための方法および装置
JP7230186B2 (ja) 2018-09-28 2023-02-28 シーメンス インダストリー ソフトウェア インコーポレイテッド ソフトウェアシステムを検証するための方法および装置

Also Published As

Publication number Publication date
US20120117426A1 (en) 2012-05-10
US8707102B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
JP2012099035A (ja) プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム
US8261130B2 (en) Program code trace signature
US9134966B2 (en) Management of mixed programming languages for a simulation environment
US7506217B2 (en) Apparatus and method for software-based control flow checking for soft error detection to improve microprocessor reliability
CN102623069B (zh) 随机激励闪存模型验证方法
US20020170034A1 (en) Method for debugging a dynamic program compiler, interpreter, or optimizer
EP2706459B1 (en) Apparatus and method for validating a compiler for a reconfigurable processor
US11194705B2 (en) Automatically introducing register dependencies to tests
US9129137B2 (en) Method, computer program and device for providing security for intermediate programming code for its execution by a virtual machine
CN109445691B (zh) 一种提高ftl算法开发和验证效率的方法及装置
US9658849B2 (en) Processor simulation environment
EP3683679A1 (en) Checksum generation
US9069900B2 (en) Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
JP5304239B2 (ja) プロセッサ試験装置、プロセッサ試験方法、プロセッサ試験プログラム
US8417508B2 (en) Multiprocessor development environment
CN116225893A (zh) 用于将源代码自动映射到机器代码的系统和方法
US10748637B2 (en) System and method for testing processor errors
US7130784B2 (en) Logic simulation
CN111061591B (zh) 基于存储器完整性检查控制器实现数据完整性检查的系统和方法
JP5387521B2 (ja) 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム
KR102201669B1 (ko) 멱등(idempotent) 커널 생성 방법 및 장치
US20240037028A1 (en) Software sharing across multiple cores
CN117472560A (zh) 跨多个内核的软件共享
KR20200140210A (ko) 멱등(idempotent) 커널 생성 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140924