JPH05158754A - Cpu実行命令履歴の記録方式 - Google Patents

Cpu実行命令履歴の記録方式

Info

Publication number
JPH05158754A
JPH05158754A JP3324163A JP32416391A JPH05158754A JP H05158754 A JPH05158754 A JP H05158754A JP 3324163 A JP3324163 A JP 3324163A JP 32416391 A JP32416391 A JP 32416391A JP H05158754 A JPH05158754 A JP H05158754A
Authority
JP
Japan
Prior art keywords
instruction
stage
data
queue
address
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
JP3324163A
Other languages
English (en)
Inventor
Yasumasa Nakada
恭正 中田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3324163A priority Critical patent/JPH05158754A/ja
Publication of JPH05158754A publication Critical patent/JPH05158754A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】CPUが実行した命令およびそのアドレスや書
込みデータを正しく保存することで、トラップ等が発生
した場合でも解析が容易に行えるようにする。 【構成】PC21のアドレス指定でフェッチされた命令
がデコーダ22に送られると、そのアドレスと命令が、
命令キュー制御装置25により命令キュー24の先頭段
のフィールドAとIに書込まれる。命令キュー24の各
段の内容は、インタロック期間でなければ、クロックC
LKに同期して1段ずつ進められる。命令キュー制御装
置25は、命令実行装置23で命令が実行され、レジス
タ書込みが行われると、その書込みステージがデコード
ステージのn段後であるならば、命令キュー24の(n
+1)段目のフィールドDにレジスタ書込みデータを書
込む。命令キュー24の最終段の内容は命令履歴バッフ
ァ制御装置40によりクロックCLKに同期して取出さ
れ、命令履歴バッファ50に格納される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、パイプライン制御方
式のCPUを備えた情報処理装置に係り、特にCPUが
実行した命令の履歴を記録するためのCPU実行命令履
歴の記録方式に関する。
【0002】
【従来の技術】従来から、複数のパイプラインステージ
により命令処理が行われるパイプライン制御方式のCP
Uを備えた情報処理装置が知られている。この種の情報
処理装置では、CPUにフェッチされて実行された命令
や、必要がなくなったデータについては、CPUから捨
てられるのが一般的である。即ち、実行済みの命令は後
続の命令に置換えられ、必要がなくなったデータは他の
新たなデータに書換えられる。
【0003】このため従来は、CPUにおいて処理続行
が不可能なトラップ等が起こって、CPUの実行した命
令を解析する必要が生じた場合に、その解析は困難であ
った。したがって、それらのトラップの原因を明らかに
するのも困難であった。
【0004】
【発明が解決しようとする課題】上記したように従来
は、CPUが実行した命令や、必要がなくなったデータ
については、それを保存していなかったため、処理続行
が不可能なトラップ等が発生しても、CPUの実行した
命令を解析することは困難であった。
【0005】この発明は上記事情に鑑みてなされたもの
でその目的は、CPUが実行した命令およびそのアドレ
スや書込みデータを正しく保存することにより、CPU
において処理続行が不可能なトラップ等が発生した場合
でも、その解析が容易に行えるCPU実行命令履歴の記
録方式を提供することにある。
【0006】
【課題を解決するための手段】この発明は、パイプライ
ン制御方式のCPUを備えた情報処理装置において、命
令フィールド、アドレスフィールドおよびデータフィー
ルドを各段に持つ命令キューであって、パイプライン動
作期間中はCPUクロックに同期して各段の内容が順次
進められる命令キューと、命令デコードに際し、そのデ
コード対象となる命令およびそのアドレスを命令キュー
の先頭段の命令フィールドおよびアドレスフィールドに
書込むと共に、データ書込みステージでデータ書込みが
実行された場合に、その書込みデータをデータ書き込み
ステージに対応する命令キューの該当段のデータフィー
ルドに書込む命令キュー制御手段と、命令キューの内容
を保持するための命令履歴バッファと、命令キューから
1段ずつその内容を取込んで命令履歴バッファに格納す
る命令履歴バッファ制御手段とを備え、CPUが実行し
た命令の履歴を命令履歴バッファに記録するようにした
ことを特徴とするものである。
【0007】
【作用】上記の構成において、命令キュー制御手段は、
CPUのパイプラインの流れに応じ、命令デコードステ
ージに際して、そのデコード対象となる命令およびその
アドレスを命令キューの先頭段の命令フィールドおよび
アドレスフィールドに書込む。
【0008】このようにして命令キューに書込まれた命
令およびアドレスの対は、パイプライン動作期間中は、
CPUクロックに同期して命令キュー内を1段ずつ進め
られ、パイプラインインタロックが起きている間は、そ
の際の段に止められる。
【0009】命令キュー制御手段は、データ書込みステ
ージでデータ書込み(レジスタ書込み)が実行された場
合に、その書込みデータを、データ書き込みステージに
対応する命令キューの該当段のデータフィールド、即ち
データ書き込みステージが命令デコードステージのn段
後であるならば、命令キューの(n+1)段目のデータ
フィールドに書込む。この書込みデータが書込まれた命
令キューの(n+1)段目(の命令フィールドとアドレ
スフィールドに)には、同データの書込みを実行した命
令とその命令アドレスが、その命令のデコードステージ
の際に既に書込まれている。したがって、上記の書込み
データの書込み後の命令キューの(n+1)段目の内容
は、命令、同命令のアドレス、および同命令の実行によ
り実際に書込まれたデータの組となる。
【0010】命令キューに書込まれた命令、命令アドレ
スおよび書込みデータの組は、命令キューの例えば最終
段に進められると、命令履歴バッファ制御手段により取
出され、その取出し順に命令履歴バッファに格納され
る。
【0011】このように、命令履歴バッファには、命令
および同命令のアドレスと、同命令の実行により実際に
書込まれたデータとの組が、命令実行順に格納される。
したがって、CPUにおいて処理続行が不可能なトラッ
プ等が発生した場合でも、命令履歴バッファの内容か
ら、その解析が容易に行える。
【0012】
【実施例】図1はこの発明を適用するパイプライン制御
方式のCPUを備えた情報処理装置の一実施例を示すブ
ロック構成図である。
【0013】図1において、10は命令、データが格納
される主メモリ、20は主メモリ10からフェッチされ
た命令を実行するCPU、30は主メモリ10およびC
PU20が接続されたシステムバスである。
【0014】CPU20は、主メモリ10からフェッチ
する命令のアドレスを保持するプログラムカウンタ(P
C)21、フェッチされた命令を解読し、その実行に必
要な各種信号を次に述べる命令実行装置23に送るデコ
ーダ22、およびデコーダ22から送られた信号に従っ
て命令を実行する命令実行装置23などの周知の構成を
有している。
【0015】CPU20はまた、同CPU20で処理中
の全ての命令、即ちCPU20内の各パイプラインステ
ージに存在する命令に関する命令実行情報を保持するた
めの命令キュー24、および命令キュー24の書込み等
を制御する命令キュー制御装置25を有している。
【0016】命令キュー24は、CPU20内に保持さ
れている最大命令数分の段数を持つ。命令キュー24の
各段は、CPU20が処理中の命令を保持するための命
令フィールドI、同命令のアドレスを保持するためのア
ドレスフィールドA、および同命令でデータ書込みが実
行された場合の書込みデータを保持するためのデータフ
ィールドDを持つ。命令キュー24の各段は更に、その
段の内容が有効であることを示すためのバリッドビット
(有効指示ビット)V(のフィールド)を持つ。
【0017】命令キュー制御装置25は、プログラムカ
ウンタ21の指定するアドレスと、その指定に応じて主
メモリ10からフェッチされた命令を、命令キュー24
の先頭段(最上段)のそれぞれアドレスフィールドAと
命令フィールドIに書込むと共に、命令実行装置23に
よりデータ書込みステージでデータ書込みが実行された
場合に、その書込みデータをデータ書き込みステージに
対応する命令キュー24の該当段のデータフィールドD
に書込むようになっている。命令キュー制御装置25は
また、パイプラインインタロック信号ILによりパイプ
ラインインタロック中であることが示されていない期間
は、CPUクロックCLKに同期して、命令キュー24
の各段の内容を1段ずつ進めるようになっている。
【0018】命令キュー制御装置25には、命令履歴バ
ッファ制御装置40が接続されている。命令履歴バッフ
ァ制御装置40は、パイプラインインタロック信号IL
によりパイプラインインタロック中であることが示され
ていない期間は、CPUクロックCLKに同期して、命
令キュー24から1段ずつその内容を取込んで、次に述
べる命令履歴バッファ50に送る。この命令履歴バッフ
ァ制御装置40は、命令履歴バッファ50の格納先アド
レスを指定するためのバッファアドレスカウンタ(BA
C)41を持つ。
【0019】命令履歴バッファ制御装置40には、同制
御装置40によって取込まれたデータを順に格納するた
めの命令履歴バッファ50が接続されている。この命令
履歴バッファ50は、電源断等の場合でもその記憶内容
が消失されないように、例えばEEPROM(電気的消
去可能なプログラマブルROM)を用いて構成されてい
る。
【0020】なお、図1の構成では、CPU20を1チ
ップ化し易くするために、命令履歴バッファ制御装置4
0および命令履歴バッファ50をCPU20の外に設け
てあるが、CPU20内に設けても何ら差支えない。ま
た、図1の構成では、説明の簡略化のためにキャッシュ
メモリ(命令キャッシュ)を省略しているが、主メモリ
10とデコーダ22との間にキャッシュメモリが設けら
れていても構わない。
【0021】次に、図1の構成の動作を説明する。ま
ず、CPU20内のプログラムカウンタ(PC)21セ
ットされたアドレス(命令アドレス)は、主メモリ10
に送られて(キャッシュメモリが設けられているなら
ば、同キャッシュメモリに送られて)、そのアドレスに
対応する命令のフェッチ要求が出される。このとき命令
キュー制御装置25は、命令キュー24の先頭段のバリ
ッドビットVがオフしているならば、プログラムカウン
タ21からのアドレスをその先頭段のアドレスフィール
ドAに書込む。
【0022】プログラムカウンタ21からのアドレス指
定に応じて、主メモリ10(またはキャッシュメモリ)
からフェッチされた命令はデコーダ22に送られ、デコ
ードステージでのデコード処理に供される。このとき命
令キュー制御装置25は、命令キュー24の先頭段のバ
リッドビットVがオフしているならば、フェッチされた
命令をその先頭段の命令フィールドIに書込み、同ビッ
トVをオンする。したがって、命令キュー24の先頭段
(最上段)の命令フィールドIに書込まれている命令
は、その段階では、デコードの段階(デコードステー
ジ)ということになる。
【0023】命令キュー制御装置25には、CPUクロ
ックCLKおよび(図示せぬパイプライン管理装置から
出力される)パイプラインインタロック信号ILが入力
される。命令キュー制御装置25は、パイプラインイン
タロック信号ILが真値をとらない期間、即ちパイプラ
インのインタロックが起きていない期間は、命令キュー
24の先頭段のバリッドビットVがオンしている限り、
命令キュー24の各段の内容をCPUクロックCLKに
同期して1段ずつ進める。そして、1段進めると、命令
キュー24の先頭段のバリッドビットVをオフする。ま
た、パイプラインのインタロックが起きている期間は、
命令キュー制御装置25は命令キュー24の各段の内容
を進める動作を停止する。
【0024】さて、デコーダ22でのデコード処理に供
された命令は命令実行装置23に送られ、デコーダ22
からのデコード信号に従う命令実行が行われる。この命
令実行装置23で実行されている命令が、何らかのレジ
スタへの書込みを行う命令である場合、データ書込みス
テージ(レジスタ書込みステージ)でそのレジスタへ書
込むのと同一のデータが命令キュー制御装置25に送ら
れる。
【0025】命令キュー制御装置25は、命令実行装置
23から送られるレジスタ書込みデータを命令キュー2
4内の或る段のデータフィールドDに書込む。この命令
キュー24内のデータ書込み先となる段は、即ち命令キ
ュー24のどの段にレジスタ書込みデータを書込むか
は、レジスタへの書込みがパイプラインのどのステージ
で行われるかで一意的に決定される。具体的には、この
レジスタ書込みステージがデコードステージのn段後で
あるものとすると、命令キュー24の先頭段(最上段)
から数えて(n+1)段目が書込み先として決定され
る。そこで命令キュー制御装置25は、命令キュー24
の先頭段から数えて(n+1)段目のデータフィールド
Dに、命令実行装置23から送られたデータを書込む。
【0026】本実施例において、命令キュー24の各段
の内容は、パイプラインインタロックの期間は前記した
ように次の段に進められない。したがって、レジスタ書
込みデータが書込まれる命令キュー24の先頭段(最上
段)から数えて(n+1)段目にはそのレジスタ書込み
を実行している命令が保持されているはずである。即ち
本実施例によれば、命令キュー24の先頭段から数えて
(n+1)段目のデータフィールドDを命令実行装置2
3からのレジスタ書込みデータの書込み先とすることに
より、同データを、そのレジスタ書込みを実行している
命令が保持されている命令キュー24内の命令フィール
ドIと対をなすデータフィールドDに正しく書込むこと
ができる。
【0027】以上の結果、命令キュー24の先頭段から
数えて(n+1)段目以降の各段には、命令アドレス、
そのアドレスの指定する命令、およびその命令が実際に
書込んだデータの組が保持される。
【0028】命令履歴バッファ制御装置40は、パイプ
ラインインタロック信号ILが真値をとらない期間、即
ちパイプラインのインタロックが起きていない期間は、
CPUクロックCLKに同期して命令キュー24の最終
段(最下段)の内容を取込んで、バッファアドレスカウ
ンタ(BAC)41の指定する命令履歴バッファ50か
ら始まる領域に格納する。
【0029】命令履歴バッファ制御装置40は、上記の
命令履歴バッファ50への格納動作を実行する毎に、命
令キュー24の各段のサイズ(バリッドビットV、アド
レスフィールドA、命令フィールドI、およびデータフ
ィールドDそれぞれのサイズの合計)のバイト数以上
で、最小の2のべき乗バイト数分だけバッファアドレス
カウンタ41をインクリメントする。即ちバッファアド
レスカウンタ41は、命令キュー24の各段のサイズが
aバイトで、2k-1 <a≦2k (kは自然数)であるも
のとすると、2k インクリメントされる。これにより、
命令キュー24の最下段のaバイトの内容を、命令履歴
バッファ50に無駄なく且つ確実に格納することが可能
となる。
【0030】さて本実施例では、バッファアドレスカウ
ンタ41のビット数をmとすると、命令履歴バッファ5
0をメモリ容量が2m バイトのメモリ(ここではEEP
ROM)により構成するようにしている。また、バッフ
ァアドレスカウンタ41の桁あふれは無視している。し
たがって、バッファアドレスカウンタ41の値は、命令
履歴バッファ50が一杯になると“0”となり、命令履
歴バッファ50の0番地から始まる2k バイトの領域へ
の書込みに戻る。即ち命令履歴バッファ50は、リング
バッファとして用いられ、CPU20が実行した最新の
命令の履歴(アドレス、命令、その命令が実際に書込ん
だデータの組)が格納される。
【0031】命令履歴バッファ50(を構成するメモ
リ)には、物理アドレスが割当てられており、OS(オ
ペレーティングシステム)を主メモリ10にローディン
グするためのROM(図示せず)内のソフトウェアを用
いて参照することができる。この命令履歴バッファ50
には、上記したようにCPU20が実行した最新の命令
の履歴(アドレス、命令、その命令が実際に書込んだデ
ータの組)が格納されており、CPU20の処理続行が
不可能なトラップ等が発生した場合には、この命令履歴
バッファ50を参照することにより、CPU20が実行
した命令の解析を容易に行うことができる。
【0032】
【発明の効果】以上詳述したようにこの発明によれば、
各段の内容がパイプライン動作期間中はCPUクロック
に同期して順次進められる命令キューを設け、命令デコ
ードに際しては、そのデコード対象となる命令およびそ
のアドレスを命令キューの先頭段の命令フィールドおよ
びアドレスフィールドに書込み、データ書込みステージ
でデータ書込みが実行された場合には、その書込みデー
タをデータ書き込みステージに対応する命令キューの該
当段のデータフィールドに書込み、命令キューから1段
ずつその内容を取込んで命令履歴バッファに格納する構
成としたので、CPUで実行された命令毎に、その命令
および命令アドレスと、その命令が実際に書込んだデー
タとの組を、正しく且つ命令実行順に命令履歴バッファ
に格納することができる。したがって、CPUの設計者
が予想もしなかったトラップ等が発生しても、この命令
履歴バッファを参照することにより、CPUが実行した
命令の解析が容易に行え、トラップ等の発生の原因を明
らかにすることが可能となる。
【図面の簡単な説明】
【図1】この発明を適用するパイプライン制御方式のC
PUを備えた情報処理装置の一実施例を示すブロック構
成図。
【符号の説明】
10…主メモリ、20…CPU、21…プログラムカウ
ンタ(PC)、22…デコーダ、23…命令実行装置、
24…命令キュー、25…命令キュー制御装置、40…
命令履歴バッファ制御装置、41…バッファアドレスカ
ウンタ(BAC)、50…命令履歴バッファ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 パイプライン制御方式のCPUを備えた
    情報処理装置において、 前記CPUが処理中の命令を保持するための命令フィー
    ルド、同命令のアドレスを保持するためのアドレスフィ
    ールド、および同命令でデータ書込みが実行された場合
    の書込みデータを保持するためのデータフィールドを各
    段に持つ命令キューであって、パイプライン動作期間中
    はCPUクロックに同期して各段の内容が順次進められ
    る命令キューと、 命令デコードに際し、そのデコード対象となる命令およ
    びそのアドレスを前記命令キューの先頭段の命令フィー
    ルドおよびアドレスフィールドに書込むと共に、データ
    書込みステージでデータ書込みが実行された場合に、そ
    の書込みデータをデータ書込みステージに対応する前記
    命令キューの該当段のデータフィールドに書込む命令キ
    ュー制御手段と、 前記命令キューの内容を保持するための命令履歴バッフ
    ァと、 前記命令キューから1段ずつその内容を取込んで前記命
    令履歴バッファに格納する命令履歴バッファ制御手段と
    を具備し、 前記CPUが実行した命令の履歴を前記命令履歴バッフ
    ァに記録するようにしたことを特徴とするCPU実行命
    令履歴の記録方式。
JP3324163A 1991-12-09 1991-12-09 Cpu実行命令履歴の記録方式 Pending JPH05158754A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3324163A JPH05158754A (ja) 1991-12-09 1991-12-09 Cpu実行命令履歴の記録方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3324163A JPH05158754A (ja) 1991-12-09 1991-12-09 Cpu実行命令履歴の記録方式

Publications (1)

Publication Number Publication Date
JPH05158754A true JPH05158754A (ja) 1993-06-25

Family

ID=18162814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3324163A Pending JPH05158754A (ja) 1991-12-09 1991-12-09 Cpu実行命令履歴の記録方式

Country Status (1)

Country Link
JP (1) JPH05158754A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013031569A1 (ja) * 2011-09-02 2013-03-07 横河電機株式会社 フィールド機器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013031569A1 (ja) * 2011-09-02 2013-03-07 横河電機株式会社 フィールド機器
JP2013054497A (ja) * 2011-09-02 2013-03-21 Yokogawa Electric Corp フィールド機器
US9389996B2 (en) 2011-09-02 2016-07-12 Yokogawa Electric Corporation Field apparatus

Similar Documents

Publication Publication Date Title
US20050198476A1 (en) Parallel multithread processor (PMT) with split contexts
JPH0644071A (ja) 一サイクルレジスタマッピング
JPS6235949A (ja) メモリ−装置
WO1995022103A1 (en) Microprocessor access control unit with fetch address queue
US5386519A (en) Information processing apparatus incorporating buffer storing a plurality of branch target instructions for branch instructions and interrupt requests
JPH05158754A (ja) Cpu実行命令履歴の記録方式
JPS601655B2 (ja) デ−タプリフェツチ方式
JPS6236258B2 (ja)
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
EP0177712A2 (en) Masked data fetch and modifying device
JP2758624B2 (ja) マイクロプログラムの調速方式
JPH0646382B2 (ja) プリフェッチキュー制御方式
JPH0540698A (ja) 主記憶ページ管理方式
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH0248733A (ja) 情報処理装置
JP2819753B2 (ja) パイプライン・マイクロプロセッサ
JPS63237143A (ja) プログラマブルコントロ−ラ
JP2559416B2 (ja) 情報処理装置
JPS6362065A (ja) デ−タ転送制御方式
JPH01274240A (ja) 並列処理プロセッサ
JPH05334074A (ja) マイクロプロセッサ
JPS63237133A (ja) 中央処理装置
JPS6242237A (ja) 命令バツフアへのロ−ド方式
JPH0752402B2 (ja) データ処理装置