JPH0348933A - リターンアドレスのスタック制御回路 - Google Patents

リターンアドレスのスタック制御回路

Info

Publication number
JPH0348933A
JPH0348933A JP18546089A JP18546089A JPH0348933A JP H0348933 A JPH0348933 A JP H0348933A JP 18546089 A JP18546089 A JP 18546089A JP 18546089 A JP18546089 A JP 18546089A JP H0348933 A JPH0348933 A JP H0348933A
Authority
JP
Japan
Prior art keywords
address
value
return address
stored
register
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
JP18546089A
Other languages
English (en)
Inventor
Naoki Okano
直樹 岡野
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP18546089A priority Critical patent/JPH0348933A/ja
Publication of JPH0348933A publication Critical patent/JPH0348933A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はリターンアドレスのスタック制御回路に関し、
特にリターンアドレスの保存と保存されたリターンアド
レスの取出しとを行うリターンアドレスのスタック制御
回路に関する。
〔従来の技術〕
ファームウェアでサブルーチンコールを行う際に動作す
る従来のリターンアドレスのスタック制御回路は、スタ
ックポインタの値を保持する手段と、サブルーチン階層
のプッシュダウンおよびポツプアップの動作に従ってそ
のスタックポインタの値を増減して変動させる手段と、
変動するスタックポインタの値に対応する位置にリター
ンアドレスをスタックしたり取出したりする手段とを有
して構成されている。
〔発明が解決しようとする課題〕
上述した従来のリターンアドレスのスタック制御回路は
、リターンアドレスをスタックしても、ポツプアップす
ると、スタックポインタが元に戻り、次のスタックを行
うと、前のリターンアドレスの値が上書きされて消され
てしまうので、複数階層に及びプッシュダウンとポツプ
アップとが変則的に繰り返されるような状態で障害が発
生した場合に、その経緯を判断することが困難であり、
解析に時間を要するとともに、多段階にプッシュダウン
したスタックポインタを一度に一定の位置にまでポツプ
アップする必要が生じた場合に、ポツプアップする前の
スタックポインタの位置が認識できないという欠点を有
している。
〔課題を解決するための手段〕 本発明のリターンアドレスのスタック制御回路は、多段
階にサブルーチンへの移行及び復帰をする際にプロセッ
サのリターンアドレスを処理するリターンアドレスのス
タック制御回路において、サブルーチン階層のプッシュ
ダウン及びポツプアップの動作に従ってそれぞれスタッ
クポインタの値をプラス1及びマイナス1して保持する
ポインタレジスタと、プッシュダウン時に保持すべきリ
ターンアドレスの値をその時のスタックポインタの値と
ともに順次に格納するトレースメモリと、リターンアド
レスの値が格納される前記トレースメモリのアドレスを
保持するアドレスレジスタと、リターンアドレスの値が
前記トレースメモリに格納される度に前記アドレスレジ
スタにある格納されたアドレスの値を受けてその時のス
タックポインタの値に対応する位置に格納する二次アド
レス格納手段と、ポツプアップ時に前記ポインタレジス
タよりスタックポインタの値を得て前記二次アドレス格
納手段からそのスタックポインタの値に対応する前記ト
レースメモリのアドレスを読出してそのアドレスにより
前記トレースメモリからリターンアドレスを読出すリタ
ーンアドレス取出し手段とを有して構成されている。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明のリターンアドレスのスタック制御回路
の一実施例を示すブロック図である。
第1図に示すように、10はポインタレジスタで、20
はアドレスレジスタで、30はトレースメモリで、40
は二次アドレス格納手段で、50は読出し手段である。
プッシュダウンの命令が実行されると、ポインタレジス
タ10に格納されていたスタックポインタの値は、リタ
ーンアドレスとともに、トレースメモリ30の、アドレ
スレジスタ20にあるアドレスで指示される位置に格納
される。
また、この時のスタックポインタの値に対応する二次ア
ドレス格納手段40の位置にこの時のトレースメモリ3
0のアドレスが格納された後に、スタックポインタの値
はプラス1されてからポインタレジスタ10へ、トレー
スメモリ30のアドレスはプラス1されてから、アドレ
スレジスタ20へそれぞれ送られて保持される。こうし
てプッシュダウンが実行される度に、その時のリターン
アドレスがトレースメモリ30に格納されていく。
逆に、ポツプアップ命令が実行されると、スタックポイ
ンタの値は、マイナス1されて、この時のスタックポイ
ンタの値に対応す不二次アドレス格納手段40に格納さ
れているトレースメモリ30のアドレスが読出し手段5
0に読出され、トレースメモリ30に送られて読出しア
ドレスとなって、リターンアドレスが得られることにな
る。
なお、ポツプアップでは、ポインタレジスタIOは更新
されるが、アドレスレジスタ20は更新されない。
第2図はファームウェアのサブルーチンコールにおける
本実施例の各構成部の格納値の一例を示す情報説明図で
ある。
第2図に示すように、第0層のメインルーチンでサブル
ーチンAがコールされると、サブルーチンAからのリタ
ーンアドレス[A)が、トレースメモリ30のアドレス
“00″にスタックポインタの値“0”とともに格納さ
れる。この時の二次アドレス格納手段40のスタックポ
インタの値“0”に対応するエリアには、アドレス″0
0”が格納され、ポインタレジスタ10のスタックポイ
ンタの値は“1″に更新される。
続いて、第1層のサブルーチンAの中でさらにサブルー
チンA1がコールさhると、サブルーチンA1からのリ
ターンアドレスがトレースメモリ30のアドレス“01
”にスタックポインタの値“1”とともに格納され、ス
タックポインタの値“1″の二次アドレス格納手段40
には、アドレス“01″が格納され、ポインタレジスタ
10のスタックポインタの値は“2”に更新される。
次に、サブルーチンA1からのリターン処理でポツプア
ップが実行され、ポインタレジスタ10のスタックポイ
ンタの値は“2″から“1″に下がり、1”で示さhる
二次アドレス格納手段40に格納されているアドレス“
01”により、トレースメモリ30上にあるサブルーチ
ンA1からのリターンアドレス〔A1〕を得てリターン
する。その後、順次サブルーチンA2のコール、サブル
ーチンA2aのコール、サブルーチンA2aからのリタ
ーン、サブルーチンA2からリターン、サブルーチンA
からのリターン、サブルーチンBのコール、サブルーチ
ンBからのリターンというように、プッシュダウンとポ
ツプアップとが繰り返され、ENDまで処理を終えた時
点では第2図に示す結果となっている。
第3図は第2図め例におけるスタックポインタの値の変
化を示すタイムチャートである。
第2図の例では、第3図に示すように、先ず、メインル
ーチンがスタックポインタの値“0”で動作し、次にサ
ブルーチンAがスタックポインタのf“l”で動作し、
次にサブルーチンA1がスタックポインタの値す“2″
で動作し、次に一度すブルーチンAに戻ってからサブル
ーチンA2がスタックポインタの値i“2”で動作し、
次にサブルーチンA2 aがスタックポイン多の値“3
″で動作し、次に一度すブルーチンA2.サブルーチン
A、メインルーチンに順次戻ってからサブルーチンBが
スタックポインタの値“1”で動作し、最後にメインル
ーチンがスタックポインタの値“0″で動作している。
〔発明の効果〕
以上説明したように、本発明のリターンアドレスのスタ
ック制御回路は、リターンアドレスをスタックポインタ
の値とともに順次にトレースメモリに格納しているので
、複数階層に及ぶサブルーチンコール等が変則的に実行
されている最中に障害等が発生しても、その経緯が直ち
に認識できるために解析が容易に行えるとともに、各ス
タックポインタ値の指し示す最新のリターンアドレスが
現在トレースメモリのどこのアドレスに位置するかを保
持してリターンアドレスを得ることにより、一つのトレ
ースメモリをリターンアドレスのトレースを行うための
スタックメモリの機能とポツプアップのリターンアドレ
スを得るためのスタックメモリの機能とに共用して有効
に利用することができるという効果を有している。
【図面の簡単な説明】
第1図は本発明のリターンアドレスのスタック制御回路
の一実施例を示すブロック図、第2図はファームウェア
のサブルーチンコールにおける本実施例の各構成部の格
納値の一例を示す情報説明図、第3図は第2図の例にお
けるスタックポインタの値の変化を示すタイムチャート
である。 10・・・・・・ポインタレジスタ、20・・・・・・
アドレスレジスタ、30・・・・・・トレースメモリ、
40・・団・二次アドレス格納手段、50・・・・・・
読出し手段。

Claims (1)

    【特許請求の範囲】
  1. 多段階にサブルーチンへの移行及び復帰をする際にプロ
    セッサのリターンアドレスを処理するリターンアドレス
    のスタック制御回路において、サブルーチン階層のプッ
    シュダウン及びポップアップの動作に従ってそれぞれス
    タックポインタの値をプラス1及びマイナス1して保持
    するポインタレジスタと、プッシュダウン時に保持すべ
    きリターンアドレスの値をその時のスタックポインタの
    値とともに順次に格納するトレースメモリと、リターン
    アドレスの値が格納される前記トレースメモリのアドレ
    スを保持するアドレスレジスタと、リターンアドレスの
    値が前記トレースメモリに格納される度にアドレスレジ
    スタにある格納されたアドレスの値を受けてその時のス
    タックポインタの値に対応する位置に格納する二次アド
    レス格納手段と、ポップアップ時に前記ポインタレジス
    タよりスタックポインタの値を得て前記二次アドレス格
    納手段からそのスタックポインタの値に対応する前記ト
    レースメモリのアドレスを読出してそのアドレスにより
    前記トレースメモリからリターンアドレスを読出すリタ
    ーンアドレス取出し手段とを有することを特徴とするリ
    ターンアドレスのスタック制御回路。
JP18546089A 1989-07-17 1989-07-17 リターンアドレスのスタック制御回路 Pending JPH0348933A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18546089A JPH0348933A (ja) 1989-07-17 1989-07-17 リターンアドレスのスタック制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18546089A JPH0348933A (ja) 1989-07-17 1989-07-17 リターンアドレスのスタック制御回路

Publications (1)

Publication Number Publication Date
JPH0348933A true JPH0348933A (ja) 1991-03-01

Family

ID=16171177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18546089A Pending JPH0348933A (ja) 1989-07-17 1989-07-17 リターンアドレスのスタック制御回路

Country Status (1)

Country Link
JP (1) JPH0348933A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175655A (ja) * 1993-12-17 1995-07-14 Nec Corp マイクロコンピュータ
JPH09146793A (ja) * 1995-11-17 1997-06-06 Nec Corp プログラム評価の方法および装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175655A (ja) * 1993-12-17 1995-07-14 Nec Corp マイクロコンピュータ
JPH09146793A (ja) * 1995-11-17 1997-06-06 Nec Corp プログラム評価の方法および装置

Similar Documents

Publication Publication Date Title
US5379407A (en) Error handling in a state-free system
JPH0348933A (ja) リターンアドレスのスタック制御回路
CN102521397B (zh) 一种数据传输方法
JP2682049B2 (ja) エラー履歴収集方法
JPH0667942A (ja) ログ採取方式
JPH04239338A (ja) マイクロプログラム網羅率測定方式
JPS6142301B2 (ja)
JPH08161194A (ja) トレース方法
JPS61177700A (ja) 複合連想メモリ
JPH01205331A (ja) 大規模プログラムリンク方式
JPH04352242A (ja) 情報処理装置のデータ履歴記録方式
JPH02162423A (ja) データスタック方式
JPH0258137A (ja) データ採取方式
JPS6250854B2 (ja)
JPS6148738B2 (ja)
JPH01142936A (ja) 情報連結方法
JPH0724030B2 (ja) デバック装置
JPH01204151A (ja) 連想レジスタファイル
JPS6341950A (ja) 分岐命令実行測定制御方式
JPH0264828A (ja) アドレストレース回路
JPH04326137A (ja) 動的領域管理方法
JPH01126729A (ja) スタック記憶装置
JPH01211122A (ja) 2読み出しポート連想レジスタファイル
JPH0610793B2 (ja) プログラム暴走検出方法
JPH04128936A (ja) プログラム実行環境切換え方式