JPS64731B2 - - Google Patents
Info
- Publication number
- JPS64731B2 JPS64731B2 JP55177280A JP17728080A JPS64731B2 JP S64731 B2 JPS64731 B2 JP S64731B2 JP 55177280 A JP55177280 A JP 55177280A JP 17728080 A JP17728080 A JP 17728080A JP S64731 B2 JPS64731 B2 JP S64731B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction
- address
- program
- trace
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】
この発明は命令アドレストレース方式に関する
ものである。
ものである。
メモリ内に格納された命令を読み出して実行す
る命令処理装置において、どのような順序で命令
が実行されたのか知る必要のあるときがある。従
来、この目的のため、実行された命令のアドレス
を順番にメモリに保存しておき、過去に実行され
た命令をトレース出来るようにしたものがある。
メモリに保存されるアドレスの数Nは限られるた
め、最新のN個の実行された命令のアドレスを記
憶し、それより過去のものは書きかえられる。し
かし、この方式ではトレースの最終部分と、観測
したい部分との間にループが形成されるような命
令が含まれていた場合、ループの部分で多くのア
ドレスを保存することになり、アドレスを保存す
るメモリが、前記ループ部のトレースのみに終つ
てしまい、観測したい部分がループ部のトレース
で書きかえられ保存されないという欠点があつ
た。
る命令処理装置において、どのような順序で命令
が実行されたのか知る必要のあるときがある。従
来、この目的のため、実行された命令のアドレス
を順番にメモリに保存しておき、過去に実行され
た命令をトレース出来るようにしたものがある。
メモリに保存されるアドレスの数Nは限られるた
め、最新のN個の実行された命令のアドレスを記
憶し、それより過去のものは書きかえられる。し
かし、この方式ではトレースの最終部分と、観測
したい部分との間にループが形成されるような命
令が含まれていた場合、ループの部分で多くのア
ドレスを保存することになり、アドレスを保存す
るメモリが、前記ループ部のトレースのみに終つ
てしまい、観測したい部分がループ部のトレース
で書きかえられ保存されないという欠点があつ
た。
この発明の目的とするところは、たとえどのよ
うなループが構成されていようとも、プログラム
全体の流れを把握し、かつトレース終了時点直前
の命令実行の順序が判読できる命令アドレストレ
ース方式を提供するところにある。
うなループが構成されていようとも、プログラム
全体の流れを把握し、かつトレース終了時点直前
の命令実行の順序が判読できる命令アドレストレ
ース方式を提供するところにある。
この発明の特徴とするところは、実行された命
令のアドレスを保存するために、命令を格納する
メモリと同じ容量のアドレスを持つメモリを用意
し、このメモリに、各々のアドレスの命令が何番
目に実行されたかを書き込むことにより、命令の
トレースを行なおうとするものである。
令のアドレスを保存するために、命令を格納する
メモリと同じ容量のアドレスを持つメモリを用意
し、このメモリに、各々のアドレスの命令が何番
目に実行されたかを書き込むことにより、命令の
トレースを行なおうとするものである。
次に本発明の実施例につき図面を用いて詳細に
説明する。第1図は本発明の一実施例であるアド
レス保存装置のブロツク図を示すものである。図
中2はプログラムを記憶しているコントロールメ
モリ、4は命令が1個実行される毎に1ずつカウ
ントアツプされるカウンタ、3はカウンタ4の値
を記憶できるエリアをコントロールメモリ1に記
憶される命令数をもつているトレースメモリであ
る。
説明する。第1図は本発明の一実施例であるアド
レス保存装置のブロツク図を示すものである。図
中2はプログラムを記憶しているコントロールメ
モリ、4は命令が1個実行される毎に1ずつカウ
ントアツプされるカウンタ、3はカウンタ4の値
を記憶できるエリアをコントロールメモリ1に記
憶される命令数をもつているトレースメモリであ
る。
命令処理装置1はコントロールメモリ2に対し
アドレス線5によつて読み出しアドレスを与え、
命令を読み出す。この時、前記アドレスはトレー
スメモリ3のアドレスにもなつている。カウンタ
4は、1命令毎に出る命令実行終了信号8による
カウントアツプ信号11により加算され、その値
7が命令処理装置1からの命令読み取り信号9に
よる書き込み許可信号10によりトレースメモリ
3に書き込まれる。カウンタ4の値は現命令は何
番目に実行されたものかを示している。また、任
意のトレース終了信号12により、トレースメモ
リ3に対する書き込み処理は終了する。
アドレス線5によつて読み出しアドレスを与え、
命令を読み出す。この時、前記アドレスはトレー
スメモリ3のアドレスにもなつている。カウンタ
4は、1命令毎に出る命令実行終了信号8による
カウントアツプ信号11により加算され、その値
7が命令処理装置1からの命令読み取り信号9に
よる書き込み許可信号10によりトレースメモリ
3に書き込まれる。カウンタ4の値は現命令は何
番目に実行されたものかを示している。また、任
意のトレース終了信号12により、トレースメモ
リ3に対する書き込み処理は終了する。
トレースメモリ3のワード数はコントロールメ
モリ2のワード数と同じだけのものが必要であ
る。またカウンタ4は常に1が加算されていく
為、出来るだけビツト数が多いことが望まれる。
トレースメモリ3の1ワードあたりのビツト数
は、カウント4と同じだけのものが必要である。
モリ2のワード数と同じだけのものが必要であ
る。またカウンタ4は常に1が加算されていく
為、出来るだけビツト数が多いことが望まれる。
トレースメモリ3の1ワードあたりのビツト数
は、カウント4と同じだけのものが必要である。
通常動作時、命令処理装置1がコントロールメ
モリ2から命令を読み出すと、トレースメモリ3
の同じアドレスに、今実行中の命令が何番目のも
のであるかを示す値7が格納される。よつてトレ
ースメモリ3の各々のアドレスには、コントロー
ルメモリの同じアドレス(同じ命令)を最後に読
み出し実行したときのカウンタの値7が格納され
ることになる。ただしカウンタ4は桁あふれによ
り零にもどるので、後でトレースメモリをダンプ
したとき混乱を記さないだけの充分な周期を持つ
て回転するビツト数が必要である。
モリ2から命令を読み出すと、トレースメモリ3
の同じアドレスに、今実行中の命令が何番目のも
のであるかを示す値7が格納される。よつてトレ
ースメモリ3の各々のアドレスには、コントロー
ルメモリの同じアドレス(同じ命令)を最後に読
み出し実行したときのカウンタの値7が格納され
ることになる。ただしカウンタ4は桁あふれによ
り零にもどるので、後でトレースメモリをダンプ
したとき混乱を記さないだけの充分な周期を持つ
て回転するビツト数が必要である。
命令処理装置の動きが停止する、あるいはトレ
ース終了信号12が来ると、その時点におけるカ
ウンタ4の値、及びトレスメモリ3の内容は保存
される。トレース終了時点と、観測したい部分と
の間にループを形成する部分があつた場合、ルー
プ部分には、そこを最後に通過したときのカウン
タの値7が入つている。よつて、ループ入口アド
レスに格納されているカウント値より小さく、か
つその値に最も近い値を持つアドレスを探せば、
そこがそのループに入る直前のアドレスである。
また、ループに入る直前の値と、ループ内のステ
ツプ数、ループ内アドレスに残されているカウン
ト値から、そのループを何回通過したかを計算す
ることもできる。また、トレースメモリ全体を概
観すれば、カウント値からプログラム全体の流れ
を読み取ることが出来、全く通過していない部分
を見つけ出すことも出来る。
ース終了信号12が来ると、その時点におけるカ
ウンタ4の値、及びトレスメモリ3の内容は保存
される。トレース終了時点と、観測したい部分と
の間にループを形成する部分があつた場合、ルー
プ部分には、そこを最後に通過したときのカウン
タの値7が入つている。よつて、ループ入口アド
レスに格納されているカウント値より小さく、か
つその値に最も近い値を持つアドレスを探せば、
そこがそのループに入る直前のアドレスである。
また、ループに入る直前の値と、ループ内のステ
ツプ数、ループ内アドレスに残されているカウン
ト値から、そのループを何回通過したかを計算す
ることもできる。また、トレースメモリ全体を概
観すれば、カウント値からプログラム全体の流れ
を読み取ることが出来、全く通過していない部分
を見つけ出すことも出来る。
第2a図、第2b図は、ループを形成する命令
とトレースメモリの関係を抽いたものである。ア
ドレスとは、コントロールメモリ2の命令のアド
レスを示す。第2a図に示すように、アドレス
1004と1008の間で複数回ループが行なわれた場
合、トレースメモリの内容を見ると、アドレス
1003と1004の間で値が離れており、1003番地から
ループに入つたことがわかる。カウンタの値は16
進表示で表わしてある。そして、他の手段により
1008番地がループ終了番地であることがわかれ
ば、1003番地と1004番地の値の差から、ループを
4回通過したことを計算できる。また第2b図の
ように命令が動いた場合、1006番地から始まるル
ープに対して、最後にループに入る直前に実行さ
れたのは1004番地であることはトレースメモリの
内容から明らかであり、ループ突入時の様子を読
み取ることができる。
とトレースメモリの関係を抽いたものである。ア
ドレスとは、コントロールメモリ2の命令のアド
レスを示す。第2a図に示すように、アドレス
1004と1008の間で複数回ループが行なわれた場
合、トレースメモリの内容を見ると、アドレス
1003と1004の間で値が離れており、1003番地から
ループに入つたことがわかる。カウンタの値は16
進表示で表わしてある。そして、他の手段により
1008番地がループ終了番地であることがわかれ
ば、1003番地と1004番地の値の差から、ループを
4回通過したことを計算できる。また第2b図の
ように命令が動いた場合、1006番地から始まるル
ープに対して、最後にループに入る直前に実行さ
れたのは1004番地であることはトレースメモリの
内容から明らかであり、ループ突入時の様子を読
み取ることができる。
以上の如き構成であるから、本発明にあつて
は、次の如き効果を得ることができる。
は、次の如き効果を得ることができる。
1 どのようなループが構成されていても、プロ
グラムをトレースすることが出来る。
グラムをトレースすることが出来る。
2 プログラム全体の流れや、未通過部分を読み
取ることが出来る。
取ることが出来る。
第1図は本発明の一実施例を示す命令アドレス
トレース方式のブロツク図である。第2a図はプ
ログラムトレースの一例を示す図、第2b図は他
のプログラムトレース例を示す図である。 符号の説明 1……命令処理装置、2……コン
トロールメモリ、3……トレースメモリ、4……
カウンタ、5……命令アドレス線。
トレース方式のブロツク図である。第2a図はプ
ログラムトレースの一例を示す図、第2b図は他
のプログラムトレース例を示す図である。 符号の説明 1……命令処理装置、2……コン
トロールメモリ、3……トレースメモリ、4……
カウンタ、5……命令アドレス線。
Claims (1)
- 【特許請求の範囲】 1 プログラムメモリに格納されたプログラムの
実行をトレースする方式であつて、 プログラムされた命令が実行される毎に命令の
種類とは無関係にカウントアツプされて命令の実
行順序を示すカウンタと、前記プログラムメモリ
の命令数分の記憶エリアを有するトレースメモリ
とを具え、命令が実行される毎に、該命令が格納
されている前記プログラムメモリのアドレスに対
応する前記トレースメモリの記憶エリアにそのと
きの前記カウンタの値を記憶せしめ、前記プログ
ラムメモリの同一アドレスの命令が複数回実行さ
れる場合でも、対応する前記トレースメモリの記
憶エリアに前記カウンタの値を上書きすることに
よつて、限られたトレースメモリでプログラム命
令の実行順序を解析ならしめることを特徴とする
プログラム実行トレース方式。 2 前記トレースメモリは、トレースの実行を禁
止する信号に基づいて、前記カウンタの値の書込
みが許可されるか否かが制御され、前記プログラ
ムメモリの任意の範囲の命令がトレースされるこ
とを特徴とする特許請求の範囲第1項記載のプロ
グラム実行トレース方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP55177280A JPS57101953A (en) | 1980-12-17 | 1980-12-17 | Program execution trace system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP55177280A JPS57101953A (en) | 1980-12-17 | 1980-12-17 | Program execution trace system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS57101953A JPS57101953A (en) | 1982-06-24 |
| JPS64731B2 true JPS64731B2 (ja) | 1989-01-09 |
Family
ID=16028276
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP55177280A Granted JPS57101953A (en) | 1980-12-17 | 1980-12-17 | Program execution trace system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS57101953A (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS633347A (ja) * | 1986-06-21 | 1988-01-08 | Nec Corp | ル−プを含むプログラムの実行パス抽出方式 |
| JPH0668722B2 (ja) * | 1986-10-09 | 1994-08-31 | 日本電気株式会社 | 命令処理順序制御装置 |
-
1980
- 1980-12-17 JP JP55177280A patent/JPS57101953A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS57101953A (en) | 1982-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4040030A (en) | Computer instruction control apparatus and method | |
| JPS64731B2 (ja) | ||
| KR880011658A (ko) | 정보 처리장치 | |
| JP2731047B2 (ja) | プログラムのオペランドチェック方式 | |
| JPH0281141A (ja) | トレース管理方式 | |
| JPH03184135A (ja) | データ処理装置 | |
| KR100294655B1 (ko) | 멀티타스크기능을수행하는마이컴프로그래머블콘트롤러의제어방법 | |
| JPS6142301B2 (ja) | ||
| US5321822A (en) | Information processing system with addressing exception | |
| JPH01321531A (ja) | 状態情報履歴回路 | |
| KR0164725B1 (ko) | 캐쉬 메모리의 영역 분할방법 및 회로 | |
| JPH0731608B2 (ja) | 情報処理装置 | |
| JPS6242237A (ja) | 命令バツフアへのロ−ド方式 | |
| JPS5872233A (ja) | チヤネル装置 | |
| JPS626341A (ja) | 情報処理装置 | |
| JPH02205937A (ja) | 情報処理システム | |
| JP2009199211A (ja) | メモリ制御方法及び装置、コンピュータプログラム | |
| JPS5968067A (ja) | 走行ステツプ数指定処理方式 | |
| JPS59165143A (ja) | デ−タ処理装置 | |
| JPS6346858B2 (ja) | ||
| JPH06175883A (ja) | プログラムデバッグ装置 | |
| JPS61110245A (ja) | 動作履歴装置 | |
| JPH04134786A (ja) | メモリ・アドレス回路 | |
| JPS63170752A (ja) | トレ−ス回路 | |
| JPH0454257B2 (ja) |