JPH09244912A - 情報処理装置プログラムの試験方式 - Google Patents

情報処理装置プログラムの試験方式

Info

Publication number
JPH09244912A
JPH09244912A JP8054410A JP5441096A JPH09244912A JP H09244912 A JPH09244912 A JP H09244912A JP 8054410 A JP8054410 A JP 8054410A JP 5441096 A JP5441096 A JP 5441096A JP H09244912 A JPH09244912 A JP H09244912A
Authority
JP
Japan
Prior art keywords
instruction
program
execution
information
information processing
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
JP8054410A
Other languages
English (en)
Inventor
Haruhito Ota
晴仁 太田
Satoru Someya
哲 染谷
Masaki Ryumon
正樹 龍門
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.)
Hitachi Ltd
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology Co 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 Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP8054410A priority Critical patent/JPH09244912A/ja
Publication of JPH09244912A publication Critical patent/JPH09244912A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】情報処理装置の検証用プログラムおよび高速処
理を要求されるプログラムの試験において、該プログラ
ムが適用対象の情報処理装置で実行された場合に、期待
するような情報処理装置の状態変化・設定が行えている
かの確認を容易にする。 【解決手段】情報処理装置あるいは当該情報処理装置と
等価な擬似実行環境であるシミュレータにおいて、プロ
グラムを実行したときに、パイプライン制御機構に関す
るオペランド・ストア/レジスタ・コンフリクト発生
と、命令の正常実行比率と、実行命令サイクル数と、キ
ャッシュHit率およびストアデータ監視等を試験実施の
操作員の指示により監視・解析・記録し、さらに記録情
報の外部入出力装置への表示を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置に適
用されるプログラムの試験方式に関わり、詳しくは特に
情報処理装置を対象とした検証プログラム、性能測定プ
ログラムおよび高速処理が要求されるプログラムの開発
において、検証精度、測定精度およびオーバヘッド検出
を容易に試験可能にする情報処理装置プログラムの試験
方式に関する。
【0002】
【従来の技術】従来の情報処理装置プログラムの試験方
式としては、任意の命令アドレスや特開平05-238770に
記載のように、プログラム内の関数名および引数値の所
望の条件を満たしたときに命令実行状態をブレークし、
プログラムの実行を一時停止することのできるデバッグ
装置を使用した方式で、命令の実行順序、メモリ・レジ
スタ等が期待の値となっているかを、任意のブレークポ
イントで逐次確認することによって試験を実施してい
る。
【0003】
【発明が解決しようとする課題】従来方式では、命令の
実行順序、メモリ・レジスタ等の任意ポイントまでの直
列な動作結果が正常であるかを試験可能ではあるが、プ
ログラムが情報処理装置に対しどの様な影響を与え、そ
の結果期待するあるいは全く期待しない情報処理装置の
動作が発生しているかを把握する方法については考慮さ
れておらず、以下に示す問題を解決できない。
【0004】情報処理装置開発における論理検証段階で
使用されている検証プログラムにおいて、乱数的に検証
用命令列を生成し、該命令列を情報処理装置のプロセッ
サに実行させた結果と、検証プログラム内でシミュレー
トした結果とを比較することによって該情報処理装置の
試験を行う、乱数検証プログラムでは、検証の目的の一
つとして、情報処理装置が有する命令処理高速化のため
のパイプライン制御機構に関わる検証があるが、該機構
の検証では、パイプラインの加速を崩さずに、長く継続
可能な検証用命令列を、単位時間当たりにできる限り多
く生成し、情報処理装置の試験に提供する事が重要であ
る。また、一方でパイプライン制御機構に対する外乱要
因である先行命令と後続命令との間に発生する同一のレ
ジスタおよびメモリへの書き込みと参照が連続するコン
フリクトを多発させることによる、パイプライン制御機
構の誤動作を検証する命令列についても、前述の検証内
容とは相反するが、検証の目的の一つとなっている。し
かし、該命令列を構成する命令数が長く、また生成され
る膨大な量の命令列全てについて、前述の検証目的を達
成できるような命令列が生成されていることを確認する
事は、従来技術により逐次確認する方式では現実的に見
て不可能である。
【0005】また、情報処理装置の多くはパイプライン
制御機構と並び、処理速度の向上を目的としたものとし
て、主記憶装置の一部コピーを、主記憶装置と比較し
て、より高速アクセスが可能なキャッシュメモリに置く
機構を採用しているが、情報処理装置で実行されるプロ
グラム形式を、該機構が有効に働くように作成しなけれ
ば目的を達成できない。特に高速処理が要求されるプロ
グラムでは、該高速化のための機構を妨げることなく確
実に活用していることを試験段階で確認する必要があ
る。また、プログラムを実行したときの実際の命令実行
サイクルを把握し、最小値となる様に調整する必要があ
る。しかし、従来のプログラム試験方式では、該高速化
のための機構を妨げる様なプログラムとなっているか否
かを把握し、実際の実行に要したサイクル数を知ること
ができるような情報は得られないため、これらの確認は
机上で実施する必要があるため効率が悪く、かつ見逃し
が多く発生している。
【0006】また、情報処理装置に適用されるプログラ
ムのデバッグでは、プログラムの不良によって期待しな
い主記憶装置領域への書き込みが発生し、それが他の処
理またはプログラムに対し悪影響を与えることが多々あ
るが、該書き込みを発生させている命令を検出するに
は、通常、当該領域への書き込みを監視し、期待しない
内容が書き込まれたことを調査して確認する。しかし、
その主記憶領域が正常な命令によって正常な値が頻繁に
書き込まれ、ある一瞬だけ異常となるような場合、従来
の試験方式では効率が非常に悪く現実的に利用できな
い。
【0007】本発明の目的は、これら従来の問題点を解
決し、検証プログラムが情報処理装置の検証に必要な状
態に設定できているのかを確認する方法を実現するこ
と、また、高速処理が要求されるプログラム処理におけ
る情報処理装置の各種制御機構に関するオーバヘッド部
を摘出可能な方法を実現すること、さらに、主記憶装置
に対する不当な書き込みを容易に検出可能な方法を実現
することで、検証精度と、処理速度およびデバッグ効率
の向上を実現する情報処理装置プログラムの試験方式を
提供することにある。
【0008】
【課題を解決するための手段】以上説明した課題を解決
するための、本発明による情報処理装置のプログラム試
験方式は、前述の情報処理装置あるいは情報処理装置と
等価な擬似実行環境であるシミュレータにおいて、被試
験プログラムによって発行された命令の種類を該情報処
理装置あるいは該シミュレータの命令解析処理部が判定
し、”命令情報記録テーブル”の該発行命令に該当する
エントリの命令発行回数リストをインクリメント更新す
る。その後、該発行命令が正常に終了した場合、”命令
情報記録テーブル”の該発行命令に該当するエントリの
命令正常実行回数リストをインクリメント更新する。
【0009】このようにして、プログラム実行中の全て
の発行された命令を監視・記録する手段と、操作員の指
示あるいはプログラム実行終了時に自動的に該”命令情
報記録テーブル”を編集・表示させる手段により、全命
令中の命令発行分布および発行命令の正常実行比率が把
握できる。
【0010】また、前述の情報処理装置がパイプライン
制御機構を有している場合、そのシミュレータにおいて
も各命令処理を情報処理装置とほぼ同等なステージ分け
されたパイプライン制御に従って行うものとし、命令解
析ステージで発行命令が主記憶装置への書き込み動作を
行うストア系であると判断した場合、次ステージである
アドレス計算ステージにおいて該実行命令による書き込
み先アドレス、書き込みレングスおよび該実行命令の命
令アドレスを”ストア情報記録テーブル”の空きエント
リのそれぞれのリストへ登録する。さらに、命令解析の
ステージで発行命令がレジスタへの書き込み動作を行う
ロード系であると判断した場合、同様にアドレス計算ス
テージにおいてレジスタ番号および該実行命令アドレス
を”ロード情報記録テーブル”の空きエントリのそれぞ
れのリストへ登録する。
【0011】なお、上記”ストア情報記録テーブル”
と”ロード情報記録テーブル”に登録された各エントリ
の消去時期は該登録されている命令の実行ステージが終
了したときである。
【0012】次に、命令解析ステージで発行命令が主記
憶装置からの読み出し動作を行うフェッチ系であると判
断した場合、”ストア情報記録テーブル”の全登録済エ
ントリから該実行命令で読み出す主記憶領域と一致する
領域がないか検索し、一致した場合、”ストア情報記録
テーブル”の該エントリ中に記録されている書き込み先
アドレス、書き込みレングスおよびストア系命令のアド
レスを”オペランド・ストア・コンフリクト・トレース
テーブル”に新規エントリとしてそれぞれのリストを追
加登録し、さらに、該フェッチ系命令のアドレスも該エ
ントリにリストとして登録する。
【0013】さらに、命令解析のステージで発行命令が
レジスタからの読み出し動作を行うものであると判断し
た場合、同様に”ロード情報記録テーブル”の全登録済
エントリから該実行命令で読み出すレジスタ番号と一致
するエントリがないか検索し、一致した場合、”ロード
情報記録テーブル”の該エントリ中に記録されているレ
ジスタ番号およびロード系命令のアドレスを”レジスタ
・コンフリクト・トレーステーブル”に新規エントリと
してそれぞれのリストを追加登録し、さらに、該レジス
タからの読み出し動作を行う命令のアドレスも該エント
リにリストとして登録する。
【0014】このようにして、プログラム実行中の全て
の発行された命令を監視・記録する手段と、操作員の指
示あるいはシミュレータ終了時に自動的に該”オペラン
ド・ストア・コンフリクト・トレーステーブル”およ
び”レジスタ・コンフリクト・トレーステーブル”を編
集・表示させる手段により、パイプライン制御機構に対
する外乱要因である先行命令と後続命令との間に発生す
る同一のレジスタおよびメモリへの書き込みと参照が連
続するコンフリクトの発生が把握できる。また、該情報
処理装置あるいは該シミュレータによって主記憶装置か
らデータを読み出すフェッチ系の全ての命令を監視し、
フェッチデータがキャッシュに存在しない状態すなわち
キャッシュnot Hitであった場合をまた別に監視し
て、”データフェッチ情報記録テーブル”の空きエント
リのフェッチアドレスおよびキャッシュHit/not Hit識
別子をそれぞれのリストへ登録する手段と、操作員の指
示あるいはシミュレータ終了時に自動的に、データフェ
ッチ回数と、キャッシュnot Hit回数およびキャッシュn
ot Hit時のフェッチアドレスを編集・表示させる手段に
より、情報処理装置の有する命令処理高速化のためのキ
ャッシュ機能を有効に利用しているか否かを容易に確認
可能とする。
【0015】また、該情報処理装置あるいは該シミュレ
ータによって実行した全ての命令処理は、外部情報によ
る命令毎の実行サイクルと、不当データ等による例外発
生に対するリカバリーに必要なサイクル数と、先行命令
と後続命令間で発生するオペランド・ストアおよびレジ
スタ・コンフリクトのリカバリーに必要なサイクル数
と、命令・オペランド読み出し時のキャッシュnot Hit
時のinキャッシュ化処理に必要なサイクル数を基に、実
際に発生した各事象の値をそれぞれ算出・記録する手段
と、操作員の指示あるいはシミュレータ終了時に自動的
に、各事象毎のサイクル数および合計実行サイクル数を
編集・表示させる手段により、プログラムを実行したと
きの実際の命令実行サイクルを把握し、最小値となる様
に調整することを容易とする。
【0016】また、該情報処理装置あるいは該シミュレ
ータによって主記憶装置へデータを書き込むストア系の
全ての命令を監視し、ストアアドレスおよびストアデー
タ内容が外部定義情報で指示されたアドレスおよびデー
タ内容と一致した場合、命令実行状態をブレークし、プ
ログラムの実行を一時停止させる手段によって、プログ
ラム不良による期待しない主記憶装置領域への書き込み
を行った命令を容易に摘出可能とする。
【0017】なお、以上説明した手段は、外部からの事
象監視・解析・記録指示情報により、該情報処理装置あ
るいは該シミュレータによって監視・解析・記録を行う
よう指示される。
【0018】
【発明の実施の形態】以下、本発明の一実施例を図面を
用いて、具体的に説明する。
【0019】図1は、本発明の一実施例のシステムの概
要図である。本図を用い全体の構成を説明する。
【0020】図1において、情報処理装置あるいは情報
処理装置と等価な擬似実行環境であるシミュレータ1
(以降は、単に情報処理装置1と記す)は、命令読み出
し処理部21と、命令解析処理部22と、オペランドア
ドレス計算処理部23と、オペランドデータ読み出し処
理部24と、命令実行処理部25および命令プロセッサ
停止処理部26を内部処理として有し、命令バッファ2
7と、データバッファ28と、外部にキャッシュメモリ
3を接続する命令プロセッサ2と、主記憶装置4を接続
し、記憶制御装置51を有するシステム制御装置5と、
外部入出力・表示装置fおよび事象監視・解析・記録外
部定義情報編集処理部jを接続する各種情報編集・表示
・入出力処理部bにより構成される。
【0021】次に、図1〜図15を用いて、情報処理装
置1における被試験プログラムを実行させた場合につい
て詳細に説明する。
【0022】先ず命令プロセッサ1の命令読み出し処理
部21がシステム制御装置5および記憶制御装置51を
介して主記憶装置4から命令バッファ27に命令を読み
出す。
【0023】続いて命令解析処理部22が該実行命令の
種類を解析する。このとき命令解析処理部22は、図2
に示す該実行命令に該当する命令情報記録テーブルの命
令発行回数リスト61をインクリメント更新し、さら
に、図10に示す命令種別識別子テーブルgの新規エン
トリに、該実行命令の命令アドレスg3を登録し、該実
行命令が主記憶装置4への書き込み動作を行うストア系
であると判断した場合、識別子1g1にストア系命令を
表す値”S”を設定する。また、該実行命令が主記憶装
置4から読み出しを行うフェッチ系であると判断した場
合、識別子1g1にフェッチ系命令を表す値”F”を設
定する。さらに、該実行命令がレジスタへの書き込み動
作を行うものと判断した場合、該エントリの識別子2g
2に書き込み動作を表す値”W”を設定する。また、レ
ジスタから読み出しを行うものであると判断した場合、
識別子2g2に読み出しを表す値”R”を設定する。
【0024】続いてオペランドアドレス計算処理部23
は該実行命令のオペランドアドレスを計算すると共に、
命令種別識別子テーブルgの該実行命令に該当するエン
トリの識別子1g1を解析し、ストア系命令を表す値”
S”と判断した場合、図3に示すストア情報記録テーブ
ル7の書き込み先アドレス71、書き込みレングス72
および命令アドレス73にそれぞれ登録する。
【0025】また、オペランドアドレス計算処理部23
は、命令種別識別子テーブルgの該実行命令に該当する
エントリの識別子2g2を解析し、レジスタへの書き込
み動作を示す”W”と判断した場合、図4に示すロード
情報記録テーブル8の読み出しレジスタ番号81および
該実行命令アドレス82にそれぞれ登録する。
【0026】続いて、オペランドデータ読み出し処理部
24は、命令種別識別子テーブルgの該実行命令に該当
するエントリの識別子1g1を解析し、フェッチ系命令
を表す”F”と判断した場合、主記憶装置4のオペラン
ドアドレス計算処理部23によって求めたオペランドア
ドレスからデータをデータバッファ28に読み出す処理
を行うにあたり、図3に示すストア情報記録テーブル7
の全登録エントリから該実行命令で読み出す主記憶領域
範囲と一致する書き込み先アドレス71から書き込みレ
ングス72のアクセス範囲がないか検索し、発見されな
かった場合はデータを読み出すが、発見した場合は、読
み出し処理の抑止と、オペランドデータ読み出しステー
ジm3をロックすることによる次ステージへの進行抑止
を行い、さらにストア情報記録テーブル7に登録されて
いる該一致したエントリの内容である書き込み先アドレ
ス71、書き込みレングス72および該実行命令アドレ
スを命令アドレス73および該フェッチ系命令の命令ア
ドレスを、オペランド・ストアコンフリクト・トレース
テーブルhの新規エントリに登録するのと同時に、図5
に示すデータフェッチ情報記録テーブル9のフェッチア
ドレス91に該実行命令のオペランドアドレスを登録す
る。
【0027】また、該命令種別識別子テーブルgエント
リの識別子2g2を解析し、レジスタからの読み出し動
作を表す値”R”と判断した場合、レジスタのデータを
データバッファ28に読み出す処理を行うにあたり、ロ
ード情報記録テーブル8の全登録エントリから該実行命
令で読み出すレジスタ番号と一致する読み出しレジスタ
番号81がないか検索し、発見されなかった場合はデー
タを読み出すが、発見した場合は、ロード情報記録テー
ブル8に登録されている該一致したエントリの内容であ
る読み出しレジスタ番号81と、該実行命令アドレス8
2および該レジスタからの読み出しを行う命令の命令ア
ドレスを、レジスタ・コンフリクト・トレーステーブル
iの新規エントリに登録する。
【0028】さらに、オペランドデータ読み出し処理部
24は、図1に示すオペランド・ストア・コンフリクト
・トレーステーブルhおよびレジスタ・コンフリクト・
トレーステーブルiへの新規エントリ登録時に、図7に
示す実行サイクル外部定義情報cのリカバリ別実行サイ
クル数表c2を参照し、該コンフリクトに関する実行サ
イクル数を図6に示す実行サイクル結果値保持テーブル
aのリカバリ別実行サイクル結果a2のそれぞれに該当
するリストをインクリメント更新する。
【0029】続いて、命令実行処理部25は該実行命令
がフェッチ系命令である場合、データの読み出しを、先
ずキャッシュメモリ3から行うが、この際、該データの
一部あるいは全部がキャッシュメモリ3に含まれていな
い場合キャッシュnot Hitとなり、inキャッシュ化のた
めにシステム制御装置5および記憶制御装置51を介し
て主記憶装置4から該データを読み出し、キャッシュ3
に登録する。命令実行処理部25はこの処理動作を行う
と同時に、図5に示すデータフェッチ情報記録テーブル
9の新規エントリとしてフェッチアドレスリスト91お
よびキャッシュHit/not Hit識別子リスト92を設定
し、さらに、inキャッシュ化処理が行われた場合は、図
7の実行サイクル外部定義情報cのリカバリ別実行サイ
クル数表c2を参照し、該inキャッシュ化に関する実行
サイクル数を図6に示す実行サイクル結果値保持テーブ
ルaのリカバリ別実行サイクル結果a2の該当するリス
トをインクリメント更新する。
【0030】また、命令実行処理部25は該実行命令が
何らかの例外を含む命令であった場合、命令プロセッサ
2は割り込みを起こすための処理を行うが、命令実行処
理部25はこの処理動作を行うと同時に、図7に示す実
行サイクル外部定義情報cのリカバリ別実行サイクル数
表c2を参照し、該異常発生リカバリに関する実行サイ
クル数を、図6に示す実行サイクル結果値保持テーブル
aのリカバリ別実行サイクル結果a2の該当するリスト
をインクリメント更新する。
【0031】さらに、命令実行処理部25は該実行命令
が正常に終了した場合、図7に示す実行サイクル外部定
義情報cの命令別実行サイクル数表c1の該実行命令に
該当する命令別実行サイクル数リストを参照し、図6に
示す実行サイクル結果値保持テーブルaの命令別実行サ
イクル数結果a1の該当するリストをインクリメント更
新する。
【0032】また、命令実行処理部25は該実行命令が
ストア系命令である場合、システム制御装置5および記
憶制御装置51を介して主記憶装置4へのデータ書き込
み処理を行うが、命令実行処理部25はこの処理動作を
行うと同時に、ストアするデータのアドレスと、レング
スおよびデータ内容を、図8に示すような操作員が定義
するストアデータ監視外部定義情報dのストアアドレス
d1と、ストアレングスd2およびストアデータd3と
比較し、一致した場合図1に示す命令プロセッサ2の命
令プロセッサ停止処理25に停止要求を出し、プロセッ
サを一時停止させる。
【0033】また、命令実行処理部25は該実行命令の
処理を終了する際、図3に示すストア情報記録テーブル
7と、図4に示すロード情報記録テーブル8に登録した
該実行命令に関するエントリを無効化する。
【0034】なお、ストアデータの比較時に、図8に示
すストアデータ監視外部定義情報dのストアデータマス
クd4を利用することにより、ストアデータの不定な値
を比較不要とするためにマスク可能とする。
【0035】上記で説明した、各事象に対する監視・解
析・記録の実施は、全てプログラム試験を行う操作員に
よる図9に示す事象監視・解析・記録外部定義情報eの
設定内容に従い行われる。具体的には、命令情報記録テ
ーブル6は実行命令監視・記録指示により制御され、ま
た、ストア情報記録テーブル7およびオペランド・スト
ア・コンフリクト・トレーステーブルhはオペランド・
コンフリクト監視・解析・記録指示により制御され、ま
たロード情報記録テーブル8およびレジスタ・コンフリ
クト・トレーステーブルiはオペランド・コンフリクト
監視・解析・記録指示により制御され、また、データフ
ェッチ情報記録テーブル9はキャッシュHit/not Hit監
視・記録指示によって制御され、また、実行サイクル結
果値保持テーブルaは命令実行サイクル監視・記録指示
により制御される。
【0036】また、事象監視・解析・記録外部定義情報
eの設定内容は、操作員による外部入出力・表示装置f
と各種情報編集・表示入出力処理部bを介した変更指示
要求を事象監視・解析・記録外部定義情報編集処理部j
による編集および事象監視・解析・記録外部定義情報e
のそれぞれ該当する指示リストe1〜e6へ設定する機
能によって変更可能である。
【0037】次に、オペランド・ストア・コンフリクト
を代表として、その発生を監視・解析・記録し、操作員
がこの事象発生を確認するまでの一連の流れの具体例を
詳細に説明する。
【0038】尚、該オペランド・ストア・コンフリクト
の説明に用いるプログラムは、図13に示すように主記
憶装置4に格納されており、その内部構成は、第1オペ
ランドで指定したレジスタ内データを第2オペランドで
指定した主記憶装置に書き込むStore命令k1と、
第2オペランドで指定した主記憶装置内データを第1オ
ペランドで指定したレジスタに読み出すLoad命令k
2から成り、先行命令としてStore命令k1を、後
続命令としてLoad命令k2の順に実行されるように
命令コードが配置され、Store命令k1とLoad
命令k2の各命令は、同一の主記憶領域に対しそれぞ
れ、レジスタ内データのストアおよびレジスタ内へのデ
ータロードを行うものである。
【0039】また、これをレジスタと主記憶装置のデー
タ移動(コピー含む)を主に説明すると、図14に示す
ように、先ず、Store命令k1によってレジスタA
l1のデータを主記憶装置4のx番地へストアl4す
る。続いて、Load命令k2によって主記憶装置4の
x番地のデータ41をフェッチし、レジスタBl2にロ
ードする動作となる命令の組み合わせとなっている。さ
らに、この命令列を図15に示すような一般的なマシン
サイクル毎に実行する処理をステージ分けしたパイプラ
イン制御機構を有する情報処理装置あるいはシミュレー
タで実行させると、オペランド・ストア・コンフリクト
と呼ばれる、パイプライン制御処理に影響を与える事象
が発生することとなる。
【0040】以下、このパイプライン制御処理の流れを
マシンサイクル進行を時系列に示した図15を主として
詳細に説明する。
【0041】先ず、図15に示すように、命令解析ステ
ージm1において、時系列実行マシンサイクルnのマシ
ンサイクルn1では、命令読み出し処理部21によって
主記憶装置4から命令バッファ27に読み出された1番
目の命令を解析し、図13に示すStore命令k1で
あることを認識する。この時、命令解析処理部22は操
作員によって予め作成された事象監視・解析・記録外部
定義情報eのオペランド・ストア・コンフリクト監視・
解析・記録指示e2を参照し”1”の場合、命令種別識
別子テーブルgの新規エントリに該実行命令アドレスを
命令アドレスg3に登録し、識別子1g1にストア系命
令を示す”S”を設定する。またレジスタ・コンフリク
ト監視・解析・記録指示e3を参照し”1”の場合、命
令種別識別子テーブルgの該エントリの識別子2g2に
レジスタからの読み出しを示す”R”を設定する。さら
に、事象監視・解析・記録外部定義情報eの実行命令監
視・記録指示e1を参照し”1”の場合、図2に示す命
令情報記録テーブル6の命令発行回数リスト61をイン
クリメント更新する。
【0042】続いて、マシンサイクルn2では以下二つ
のステージを並列に行う。
【0043】一つは、命令解析ステージm1において、
命令解析処理部22が命令バッファ27に読み込まれた
2番目の命令を解析し、図13に示すLoad命令k2
であることを認識する。この時、命令解析処理部22は
オペランド・ストア・コンフリクト監視・解析・記録指
示e2を参照し”1”の場合、命令種別識別子テーブル
gの識別子1g1にフェッチ系命令を示す”F”を設定
する。さらにレジスタ・コンフリクト監視・解析・記録
指示e3を参照し”1”の場合、命令種別識別子テーブ
ルgの識別子2g2にレジスタへの書き込みを示す”
W”を設定する。
【0044】また、他の一つはオペランドアドレス計算
ステージm2において、オペランドアドレス計算処理部
23がStore命令k1の第2オペランドアドレスを
計算すると共に、オペランド・ストア・コンフリクト監
視・解析・記録指示e2を参照し”1”の場合、命令種
別識別子テーブルgの該実行命令に該当する命令アドレ
スg3リストを有するエントリの識別子1g1を解析
し、ストア系命令を表す値”S”であることから、図3
に示すストア情報記録テーブル7の書き込み先アドレス
71にオペランドアドレスを、書き込みレングス72に
書き込みサイズを、また命令アドレス73に該実行命令
アドレスをそれぞれ登録する。
【0045】続いて、マシンサイクルn3では以下二つ
のステージを並列に行う。
【0046】一つは、オペランドアドレス計算ステージ
m2において、オペランドアドレス計算処理部23がL
oad命令k2の第2オペランドアドレスを計算すると
共に、レジスタ・コンフリクト監視・解析・記録指示e
3を参照し”1”の場合、命令種別識別子テーブルgの
該実行命令に該当する命令アドレスg3リストを有する
エントリの識別子1g1を解析し、レジスタへの書き込
みを表す値”W”であることから、図4に示すロード情
報記録テーブル8の読み出しレジスタ番号81にオペラ
ンドレジスタ番号を、また命令アドレス82に該実行命
令アドレスをそれぞれ登録する。
【0047】また、他の一つはオペランドデータ読み出
しステージm3において、オペランドデータ読み出し処
理部24が図14に示すStore命令k1の第1オペ
ランドデータであるレジスタA11をデータバッファ2
8に読み出す処理を行うが、この読み出しに先立ちロー
ド情報記録テーブル8の全登録エントリから該実行命令
で読み出すレジスタ番号と一致する読み出しレジスタ番
号81がないことを確認しデータを読み出す。
【0048】続いて、マシンサイクルn4からn6では
以下二つのステージを並列に行う。
【0049】一つは、オペランドデータ読み出しステー
ジm3において、オペランドデータ読み出し処理部24
がオペランドアドレス計算ステージm2で求めた主記憶
装置のアドレスよりLoad命令k2のオペランドデー
タをデータバッファ28に読み出すが、読み出しに先立
ち図3に示すストア情報記録テーブル7の全登録エント
リ中から該実行命令で読み出す主記憶装置領域範囲と一
致する書き込み先アドレス71から書き込みレングス7
2のアクセス範囲がないか検索し、オペランドアドレス
計算ステージm2において、オペランドアドレス計算処
理部23がStore命令k1のオペランドアドレスを
等を登録したエントリを発見する。このため読み出し処
理の抑止と、オペランドデータ読み出しステージm3を
ロックすることによる次ステージへの進行抑止を行い、
さらにオペランド・ストア・コンフリクト監視・解析・
記録指示e2を参照し”1”の場合、ストア情報記録テ
ーブル7に登録されている該一致したエントリの内容で
ある書き込み先アドレス71、書き込みレングス72お
よび該実行命令アドレスを命令アドレス73および該フ
ェッチ系命令の命令アドレスを、オペランド・ストアコ
ンフリクト・トレーステーブルhの新規エントリに登録
する。さらにキャッシュHit/not Hit監視・解析・記録
指示e2を参照し”1”の場合、図5に示すデータフェ
ッチ情報記録テーブル9のフェッチアドレス91に該実
行命令のオペランドアドレスを登録する。
【0050】また、他の一つは命令実行ステージm4に
おいてオペランドデータ読み出しステージm3でデータ
バッファ28に読み出したStore命令k1の第1オ
ペランドデータであるレジスタA11のデータをオペラ
ンドアドレス計算ステージm2で導き出した第2オペラ
ンドである主記憶装置のアドレスx番地へ、該情報処理
装置では3マシンサイクルを要して書き込む。また、マ
シンサイクルn6ではデータ書き込み完了と同時に、オ
ペランド計算ステージm2においてストア情報記録テー
ブルに登録した該命令に関するエントリを削除する。ま
た、図9に示す事象監視・解析・記録外部定義情報eの
命令実行サイクル監視・解析・記録指示e5を参照し”
1”の場合、図7に示す実行サイクル外部定義情報cの
命令別実行サイクル数表c1のストア命令実行サイクル
c12に示す該Store命令の実行サイクル数(=
1)を図6に示す実行サイクル結果値保持テーブルaの
命令別実行サイクル数結果a1のストア命令実行サイク
ルa12に加算する。さらに、事象監視・解析・記録外
部定義情報eの実行命令監視・記録指示e1を参照し”
1”の場合、図2に示す命令情報記録テーブル6の命令
正常実行回数リスト62をインクリメント更新する。
【0051】続いて、マシンサイクルn7では以下ステ
ージを行う。
【0052】オペランドデータ読み出し処理は、前マシ
ンサイクルn6の命令実行ステージm4において、St
ore命令k1のオペランドデータ書き込み処理終了に
よるストア情報記録テーブルの該Store命令k1に
関するエントリに削除によって、読み出し処理の抑止
と、オペランドデータ読み出しステージm3をロックす
ることによる次ステージへの進行抑止状態をそれぞれ解
除し、オペランドデータ読み出し処理部24がオペラン
ドアドレス計算ステージm2で求めた主記憶装置のアド
レスよりLoad命令k2のオペランドデータをデータ
バッファ28に読み出す。この時、読み出すべきデータ
がキャッシュ3にある場合はキャッシュHitとなりキャ
ッシュ3より読み込まれ、もしキャッシュ3内に存在し
ない場合はキャッシュnot Hitとなり、システム制御装
置5および記憶制御装置51を介して主記憶装置4から
データバッファ28と、キャッシュ3に読み込まれin
キャッシュ化されることとなる。なお、このinキャッ
シュ化機構の詳細については本発明では特に定義しな
い。さらにこの時、オペランドデータ読み出し処理部2
4は、操作員によって予め作成された事象監視・解析・
記録外部定義情報eのキャッシュHit/not Hit監視・解
析・記録指示e4を参照し”1”の場合、実行サイクル
外部定義情報cのリカバリ種別実行サイクル数表c2の
inキャッシュ化サイクルc24リストに記載のサイク
ル数(=2)を、実行サイクル結果値保持テーブルaの
リカバリ種別実行サイクル数結果a2のinキャッシュ
化サイクルa24の値に加算する。
【0053】続いて、マシンサイクルn8では以下ステ
ージを行う。
【0054】命令実行ステージm4においてオペランド
データ読み出しステージm3でデータバッファ28に読
み出したLoad命令k2の第2オペランドデータであ
る主記憶装置のアドレスx番地のデータを第1オペラン
ドであるレジスタB12へ1マシンサイクルを要して書
き込む。また、マシンサイクルn8ではデータ書き込み
完了と同時に、オペランド計算ステージm2においてレ
ジスタ情報記録テーブルに登録した該命令に関するエン
トリを削除する。また、図9に示す事象監視・解析・記
録外部定義情報eの命令実行サイクル監視・解析・記録
指示e5を参照し”1”の場合、図7に示す実行サイク
ル外部定義情報cの命令別実行サイクル数表c1のロー
ド命令実行サイクルc11に示す該Load命令の実行
サイクル数(=1)を図6に示す実行サイクル結果値保
持テーブルaの命令別実行サイクル数結果a1のロード
命令実行サイクルa11に加算する。さらに、事象監視
・解析・記録外部定義情報eの実行命令監視・記録指示
e1を参照し”1”の場合、図2に示す命令情報記録テ
ーブル6の命令正常実行回数リスト62をインクリメン
ト更新する。
【0055】以上の説明のように、該オペランド・スト
ア・コンフリクトの説明に用いたプログラムは情報処理
装置1において実行されると同時に、各種事象の発生を
監視・解析・記録される。また、これら監視・解析・記
録された各種事象は操作員の外部入出力・表示装置fか
らの表示要求に従い、各種情報編集・表示入出力処理部
bによって外部入出力・表示装置fに表示される。した
がって、操作員はプログラムが情報処理装置1において
実行されることによる該情報処理装置の状態変化・内容
を容易に把握することが可能となる。
【0056】
【発明の効果】以上説明したように、本発明の情報処理
装置プログラムの試験方式によれば、次のような効果が
得られる。
【0057】(1)検証プログラムが目的とするパイプ
ライン制御機構、コンフリクト発生状況の情報処理装置
の検証状態が正しく設定されているかを容易に確認可能
な試験環境を提供できる。
【0058】(2)高速処理を必要とするプログラム
が、実際に情報処理装置で実行された場合に、情報処理
装置が有するパイプライン制御機構、キャッシュ方式に
よる主記憶装置アクセスの高速化等の機能を有効に利用
しているか否かを容易に確認可能な試験環境を提供でき
る。
【0059】(3)従来困難であった、被試験プログラ
ムによる期待しない主記憶領域への不当データ書き込み
を、容易に摘出可能な試験環境を提供できる。
【図面の簡単な説明】
【図1】本発明の一実施例を示すシステム概要図であ
る。
【図2】本発明の試験方式の命令実行状況を記録するテ
ーブルの一例を示す図である。
【図3】本発明の試験方式のオペランド・コンフリクト
発生を監視するためのデータ記録テーブルの一例を示す
図である。
【図4】本発明の試験方式のレジスタ・コンフリクト発
生を監視するためのデータ記録テーブルの一例を示す図
である。
【図5】本発明の試験方式のデータフェッチ時のキャッ
シュHit/not Hit状況を監視するためのデータ記録テー
ブルの一例を示す図である。
【図6】本発明の試験方式の命令実行サイクルを事象毎
に監視するためのデータ記録テーブルの一例を示す図で
ある。
【図7】本発明の試験方式の命令実行サイクルを個別に
算出するための外部定義情報の一例を示す図である。
【図8】本発明の試験方式のストアデータ監視を指示す
る外部定義情報の一例を示す図である。
【図9】本発明の試験方式の事象ごとの監視・解析・記
録を指示する外部定義情報の一例を示す図である。
【図10】本発明の試験方式の命令の種別を記録するテ
ーブルの一例を示す図である。
【図11】本発明の試験方式のオペランド・ストア・コ
ンフリクト発生を記録するテーブルの一例を示す図であ
る。
【図12】本発明の試験方式のレジスタ・コンフリクト
発生を記録するテーブルの一例を示す図である。
【図13】本発明の試験方式のオペランド・ストア・コ
ンフリクト発生を監視・解析・記録する過程を説明する
ために利用するプログラム構成の一例を示す図である。
【図14】本発明の試験方式のオペランド・ストア・コ
ンフリクト発生を監視・解析・記録する過程を説明する
ために利用するプログラム動作の一例を示す図である。
【図15】本発明の試験方式のオペランド・ストア・コ
ンフリクトに関するパイプライン制御機構のステージ分
割およびマシンサイクルによる実行ステージ遷移の一例
を示す図である。
【符号の説明】
1…情報処理装置、2…命令プロセッサ、 3…キャッ
シュメモリ、4…主記憶装置、 5…システム制御装
置、6…命令情報記録テーブル、7…ストア情報記録テ
ーブル、 8…ロード情報記録テーブル、9
…データフェッチ情報記録テーブル、a…実行サイクル
結果値保持テーブル、b…各種情報編集・表示入出力処
理部、 c…実行サイクル外部定義情報、d…ストア
データ監視外部定義情報、e…事象監視・解析・記録外
部定義情報、 f…外部入出力・表示装置、g…命令種
別識別子、h…オペランド・ストア・コンフリクト・ト
レーステーブル、i…レジスタ・コンフリクト・トレー
ステーブル、j…事象監視・解析・記録外部定義情報編
集処理部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 染谷 哲 神奈川県秦野市堀山下1番地株式会社日立 コンピュータエレクトロニクス内 (72)発明者 龍門 正樹 神奈川県秦野市堀山下1番地株式会社日立 コンピュータエレクトロニクス内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】少なくとも一つ以上の命令プロセッサと、
    該プロセッサに接続される主記憶装置、I/Oなどの周
    辺装置群とからなり、プログラムを該主記憶装置内にロ
    ードして、該プロセッサに順次実行させるような情報処
    理装置に適用されるプログラムの開発行程において、ア
    ーキテクチャを機能レベルで提供し、かつ命令処理を行
    う過程で発生する各種事象を、定義情報に従って監視・
    解析・記録する機能をもつ該情報処理装置あるいは該情
    報処理装置と等価な擬似実行環境であるシミュレータを
    用いることにより、被試験プログラムの品質・性能を容
    易に確認可能であることを特徴とした情報処理装置プロ
    グラムの試験方式。
  2. 【請求項2】前記監視・解析・記録対象の事象には、少
    なくとも命令発生の回数および正常実行の比率、パイプ
    ライン制御に関わるレジスタ・メモリのコンフリクト発
    生回数、命令・オペランド読み出し時のキャッシュHit
    /not Hit、実行サイクル数、メモリ書き込み内容判定
    があり、前記定義情報は該事象の監視・解析・記録を指
    示するものであることを特徴とする請求項1記載の情報
    処理装置プログラムの試験方式。
  3. 【請求項3】前記定義情報は、該情報処理装置あるいは
    該シミュレータ起動後の操作員によるコマンド投入によ
    り制御可能であることに加え、ファイルなどに記述され
    た外部定義情報を取り込ませることにより、被試験プロ
    グラム毎に最適な設定内容を常備できることを特徴とす
    る請求項2記載の情報処理装置プログラムの試験方式。
  4. 【請求項4】前記被試験プログラムは、請求項2に記載
    した該事象を監視・解析・記録した結果を用いることに
    より、情報処理装置を対象とした検証プログラム、性能
    測定プログラム、高速処理が要求されるプログラムの開
    発に適用可能であることを特徴とする請求項1記載の情
    報処理装置プログラムの試験方式。
JP8054410A 1996-03-12 1996-03-12 情報処理装置プログラムの試験方式 Pending JPH09244912A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8054410A JPH09244912A (ja) 1996-03-12 1996-03-12 情報処理装置プログラムの試験方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8054410A JPH09244912A (ja) 1996-03-12 1996-03-12 情報処理装置プログラムの試験方式

Publications (1)

Publication Number Publication Date
JPH09244912A true JPH09244912A (ja) 1997-09-19

Family

ID=12969939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8054410A Pending JPH09244912A (ja) 1996-03-12 1996-03-12 情報処理装置プログラムの試験方式

Country Status (1)

Country Link
JP (1) JPH09244912A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6550056B1 (en) 1999-07-19 2003-04-15 Mitsubishi Denki Kabushiki Kaisha Source level debugger for debugging source programs
JP2007133579A (ja) * 2005-11-09 2007-05-31 Hitachi High-Technologies Corp 産業用装置の仮想シミュレーションシステムおよび装置コントローラ
US8015553B2 (en) 2006-02-17 2011-09-06 Samsung Electronics Co., Ltd. Method and apparatus for testing execution flow of program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6550056B1 (en) 1999-07-19 2003-04-15 Mitsubishi Denki Kabushiki Kaisha Source level debugger for debugging source programs
JP2007133579A (ja) * 2005-11-09 2007-05-31 Hitachi High-Technologies Corp 産業用装置の仮想シミュレーションシステムおよび装置コントローラ
US8015553B2 (en) 2006-02-17 2011-09-06 Samsung Electronics Co., Ltd. Method and apparatus for testing execution flow of program

Similar Documents

Publication Publication Date Title
US6754856B2 (en) Memory access debug facility
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
US8838939B2 (en) Debugging multithreaded code by generating exception upon target address CAM search for variable and checking race condition
US20020147965A1 (en) Tracing out-of-order data
US6901581B1 (en) Method for software debugging via simulated re-execution of a computer program
Park et al. BLoG: Post-silicon bug localization in processors using bug localization graphs
US5845064A (en) Method for testing and verification of a CPU using a reference model
US20070250820A1 (en) Instruction level execution analysis for debugging software
TWI544410B (zh) 利用執行單步驟以進行編碼診斷
IL226755A (en) Processing device, tracking unit and diagnostic device
US7353500B2 (en) Suppressing execution of monitoring measurement program pointed to by inserted branch after threshold number of coverage to reduce instruction testing overhead
US4520440A (en) Test verification of processor architecture having a partial instruction set
CN106030532B (zh) 用于事务存储器程序的软件回放器
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
CN107003895A (zh) 事务内的指令采样
KR20200088760A (ko) 체크섬 생성
US20070226471A1 (en) Data processing apparatus
JPH09244912A (ja) 情報処理装置プログラムの試験方式
US7885806B2 (en) Simulation method and simulation system of instruction scheduling
Long et al. Checking linearizability with fine-grained traces
US6986110B1 (en) Automated method and system for backtracing of instruction parameters from specified instruction in test cases
US7353429B2 (en) System and method using hardware buffers for processing microcode trace data
Di Carlo et al. On the on-line functional test of the Reorder Buffer memory in superscalar processors
JPS61161557A (ja) プログラム・デバツグ方法および装置
JP2793396B2 (ja) 電子計算機の演算ステータス保持装置