JP5387231B2 - マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 - Google Patents
マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 Download PDFInfo
- Publication number
- JP5387231B2 JP5387231B2 JP2009193537A JP2009193537A JP5387231B2 JP 5387231 B2 JP5387231 B2 JP 5387231B2 JP 2009193537 A JP2009193537 A JP 2009193537A JP 2009193537 A JP2009193537 A JP 2009193537A JP 5387231 B2 JP5387231 B2 JP 5387231B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- copy
- instructions
- data
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
デコーダー11は、プログラムカウンタ(図示せず)に従って、命令キャッシュ10が格納する命令を解析する。
命令検出制御部12は、検査対象として比較すべき命令列や、当該命令以前の命令との依存関係などを含む情報を内部バッファに格納し、当該格納された情報とデコーダー11から出力された命令とを比較する。また、命令検出制御部12の内部バッファに格納された情報には、デコーダー11から出力された命令の複製であるコピー命令を出力するか否かを示すコピー指示フラグが含まれる。当該コピー指示フラグが「有効」、すなわちコピー命令を出力することを示す場合において、当該コピー指示フラグを含む情報とデコーダー11から出力された命令とが一致するとき、命令検出制御部12は、デコーダー11から出力された命令のコピー命令を出力する。
スケジューラー13は、命令の発行間隔のスケジューリングを行う。
データチェック制御部22は、多数決処理により、データ・アドレスのチェックを行う。具体的には、データチェック制御部22は、演算器20が処理した命令検出制御部12が出力した命令及び当該命令のコピー命令の実行結果を比較し、それぞれの命令で異なる値が出力された場合に、出力結果が同値となるものが多いものを実行結果として採用する。
リクエスト制御部24は、外部との間で、リクエストの入出力を行う。
データチェック制御部31は、多数決処理により、データのチェックを行う。このことについては後に説明する。
命令比較部41は、実際の命令と、比較命令格納バッファ40に登録されている設定が一致しているかをチェックし、比較結果が一致している場合は、比較命令格納バッファ40へ次エントリーの命令を出力するように指示する。また、コピー指示が「有効」の場合には、コピー動作を行うように、命令制御部43へ出力する。
命令トレーサー42は、実行している命令の履歴を取得し、内部メモリーに保存する。また、内部メモリーに登録されたデータは論理動作不正の解析に用いられる。
命令制御部43は、スケジューラー13へ命令を出力する。
データ・アドレスバッファ51は、実行された命令のデータ・アドレスを格納する。
多数決チェック部52は、多数決処理を行い、奇数個の命令から1命令を選び、データキャッシュ(DA)23へ書き込む。また、多数結処理チェック部52は、リクエスト制御部24へストア命令(命令・データ・アドレス)を出力する。
データバッファ61は、実行された命令のデータを保存する。
多数決チェック部62は、多数決処理を行い、奇数個の命令から1命令を選び、レジスタ32へデータを出力する。
なお、命令検出制御部12は、コピー元となる命令のフレームにおいて、コピー元の命令であることを示すコピー元bitを「有効」を示す値に書き換える。また、命令検出制御部12は、コピー命令のフレームにおいて、コピー命令であることを示すコピーbitを「有効」を示す値に書き換える。
図7は、マイクロプロセッサで実行されるプログラムの一例であり、図8は、これに対するデバッグ時の比較命令格納バッファ40の登録内容の一例である。図7において、LDはロード命令であり、ADDは加算命令であり、STはストア命令である。
データチェック制御部22がデータチェックを行うのは、レジスタあるいはデータキャッシュなどの内部資源にライトして内部状態が変化するときのみでよい。ここで、データキャッシュへのライトが発生するのはストア命令のキャッシュヒット時とロード命令のキャッシュミス時(キャッシュフィルによるライト)の2通り存在する。
ストア命令実行時、データチェック制御部22は、データキャッシュ(AA)21にアクセスし、キャッシュヒット/ミスの情報を、信号線210を介して取得する。
以下に、メインメモリーへの書き込み方式がライトバック方式である場合とライトスルー方式である場合との動作をそれぞれ説明する。
データチェック制御部22は、まず多数決処理によるチェックを行う。その後、データチェック制御部22が取得したキャッシュヒット/ミスの情報がキャッシュヒットを示す場合、データチェック制御部22は、信号線220を介してデータキャッシュ(DA)23へライトする。他方、データチェック制御部22が取得したキャッシュヒット/ミスの情報がキャッシュミスを示す場合は、信号線221を介してリクエスト制御部24へ命令を出力する。リクエスト制御部24は信号線240を介して当該命令をマイクロプロセッサの外部へ出力する。
データチェック制御部22は、まず多数決処理によるチェックを行う。その後、データチェック制御部22が取得したキャッシュヒット/ミスの情報がキャッシュヒットを示す場合、信号線220を介してデータキャッシュ(DA)23へライトする。また、データチェック制御部22は、キャッシュヒット/ミスにかかわらず、信号線221を介してリクエスト制御部24へ命令を出力する。リクエスト制御部24は信号線240を介して当該命令をマイクロプロセッサ外部へ出力する。
図3において、コピー命令チェック部50に、演算器20から信号線500を介して命令・データ・アドレスが送られる。また、コピー命令チェック部50に、データキャッシュ(AA)21から信号線501を介してキャッシュヒット/ミス情報が送られる。
b.ロード命令
図1において、ロード命令実行時、データチェック制御部22は、データキャッシュ(AA)21にアクセスし、キャッシュヒット/ミスの情報を、信号線210を介して取得する。同時に、データチェック制御部22は、データキャッシュ(DA)23にアクセスする。
図3において、コピー命令チェック部50には、演算器20から信号線500を介して命令・アドレスが送られる。また、コピー命令チェック部50には、データキャッシュ(AA)から信号線501を介してキャッシュヒット/ミス情報が送られる。
ここで、コピー命令チェック部50は、キャッシュヒットの場合、多数決処理チェックはレジスタライトの直前の図1のデータチェック制御部31で行うので、何も行わない。キャッシュミスの場合、演算器20から送られてきた命令がコピー元の命令またはコピー命令(コピー元bitが有効あるいはコピーbitが有効の命令)であるかをチェックする。
データチェックを行うのは、レジスタあるいはデータキャッシュなどの内部資源にライトして内部状態が変化する時のみでよい。本発明の実施例においてレジスタへのライトが発生するのは演算命令とロード命令の2通り存在する。
図1において、演算命令の動作は、データチェック制御部31が多数決処理チェックの処理を行い、信号線310を介してレジスタ32へライトを行う。また信号線310を介してフォワーディングデータを演算器20、演算器30へ転送する。
d.ロード命令のレジスタライト動作
図1において、ロード命令の動作は、キャッシュヒット/ミスで異なる。キャッシュヒット時は、データチェック制御部31は多数決処理チェックの処理を行い、信号線310を介してレジスタ32へライトを行う。また信号線310を介してフォワーディングデータを演算器20、演算器30へ転送する。キャッシュミス時は、データチェック制御部31は多数決処理チェックを行わずに信号線310を介してレジスタ32へライトを行う。
(1)単独のマイクロプロセッサにおいて論理動作不正の発生する命令を特殊な解析なしで特定することが可能になり調査を容易化できる。
(2)多数決処理チェックの結果を観測することで正しく論理動作不正が回避できているか確認できる。
(3)ハードウェアのみで論理動作不正を回避できる。
(4)スケジューラーの発行条件を設定して論理動作不正の発生しない最小のタイミングに設定することで性能低下の影響を最小にでき、割込みとソフトウェアによる解析と比較して性能が向上する。
11:デコーダー
12:命令検出制御部
13:スケジューラー
20:演算器
21:データキャッシュ(AA)
22:データチェック制御部
23:データキャッシュ(DA)
24:リクエスト制御部
30:演算器
31:データチェック制御部
32:レジスタ
40:比較命令格納バッファ
41:命令比較部
42:命令トレーサー
43:命令制御部
50:コピー命令チェック部
51:データ・アドレスバッファ
52:多数決チェック部
60:コピー命令チェック部
61:データバッファ
62:多数決チェック部
Claims (5)
- 検査対象として比較すべき命令列、当該命令以前の命令との依存関係、当該命令を複製するか否かを示すコピー指示、及び当該命令の発行間隔の設定値を含む情報を格納する比較命令格納手段と、
前記比較命令格納手段が格納する情報が示す命令と実行中の命令とが一致するか否かを判定する命令比較手段と、
前記命令比較手段によって、命令が一致し且つコピー指示が当該命令を複製することを示すと判定された場合、当該命令の複製であるコピー命令を複数生成する命令制御手段と、
前記設定値に設定された発行間隔に従って命令を発行するスケジュール設定手段と、
前記スケジュール設定手段が発行する前記コピーの元となった命令及び前記複数のコピー命令を実行し、この実行結果を多数決処理によりチェックする多数決処理チェック手段と
を備えることを特徴とするマイクロプロセッサ。 - 前記コピー命令として、偶数個の命令を生成することを特徴とする請求項1に記載のマイクロプロセッサ。
- 前記多数決処理チェック手段は、前記コピーの元となった命令と、前記偶数個のコピー命令とから、多数決処理により1命令を選ぶことを特徴とする請求項2に記載のマイクロプロセッサ。
- 検査対象として比較すべき命令列、当該命令以前の命令との依存関係、当該命令を複製するか否かを示すコピー指示、及び当該命令の発行間隔の設定値を含む情報を登録する工程と、
前記登録した命令と実行中の命令とが一致するか否かを判定する工程と、
命令が一致し且つコピー指示が当該命令を複製することを示すと判定された場合、当該命令の複製であるコピー命令を複数生成する工程と、
前記設定値に設定された発行間隔に従って命令を発行する工程と、
前記コピーの元となった命令及び前記複数のコピー命令を実行し、この実行結果を多数決処理によりチェックする工程とを含む
ことを特徴とするマイクロプロセッサのデバッグ方法。 - 前記コピー命令は、前方に存在する命令が完了するまで実行しない発行間隔に設定し、
命令列中の最後の命令から1命令ずつコピー指示を前の命令に移動させながらプログラムを実行し、多数決処理チェックの結果を確認することで、論理動作不正の発生する命令を特定する
ことを特徴とする請求項4に記載のマイクロプロセッサのデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193537A JP5387231B2 (ja) | 2009-08-24 | 2009-08-24 | マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193537A JP5387231B2 (ja) | 2009-08-24 | 2009-08-24 | マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011044114A JP2011044114A (ja) | 2011-03-03 |
JP5387231B2 true JP5387231B2 (ja) | 2014-01-15 |
Family
ID=43831483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009193537A Expired - Fee Related JP5387231B2 (ja) | 2009-08-24 | 2009-08-24 | マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5387231B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5129450B2 (ja) * | 2006-01-16 | 2013-01-30 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
-
2009
- 2009-08-24 JP JP2009193537A patent/JP5387231B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011044114A (ja) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289469B2 (en) | Reliability enhancement utilizing speculative execution systems and methods | |
US6754856B2 (en) | Memory access debug facility | |
US6349382B1 (en) | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order | |
US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
US8533394B2 (en) | Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses | |
JPH05303492A (ja) | データ処理装置 | |
US6301654B1 (en) | System and method for permitting out-of-order execution of load and store instructions | |
US20120029900A1 (en) | Simulation method and system for simulating a multi-core hardware platform | |
US20090271583A1 (en) | Monitoring transactions in a data processing apparatus | |
CN109328341B (zh) | 识别引起远程事务执行中止的存储的处理器、方法和系统 | |
US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
US20220413870A1 (en) | Technology For Optimizing Memory-To-Register Operations | |
JP4243271B2 (ja) | データ処理装置およびデータ処理方法 | |
JP2951580B2 (ja) | 非プログラム順序の命令実行をサポートする方法及びデータ処理システム | |
US6704861B1 (en) | Mechanism for executing computer instructions in parallel | |
US7305586B2 (en) | Accessing and manipulating microprocessor state | |
US6711670B1 (en) | System and method for detecting data hazards within an instruction group of a compiled computer program | |
US10346165B2 (en) | Resource locking for load store scheduling in a VLIW processor | |
JP5387231B2 (ja) | マイクロプロセッサ及びマイクロプロセッサのデバッグ方法 | |
JP7403541B2 (ja) | メモリ順序付け違反チェックバッファの排出遅延を許容するための投機的命令ウェイクアップ | |
US9710389B2 (en) | Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform | |
US6769057B2 (en) | System and method for determining operand access to data | |
US11119149B2 (en) | Debug command execution using existing datapath circuitry | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
WO2009096161A1 (ja) | プロセッサ性能解析装置、方法及びシミュレータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120711 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130828 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130910 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130923 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5387231 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |