JPH0756637B2 - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JPH0756637B2
JPH0756637B2 JP60061933A JP6193385A JPH0756637B2 JP H0756637 B2 JPH0756637 B2 JP H0756637B2 JP 60061933 A JP60061933 A JP 60061933A JP 6193385 A JP6193385 A JP 6193385A JP H0756637 B2 JPH0756637 B2 JP H0756637B2
Authority
JP
Japan
Prior art keywords
register
instruction
contents
stack
value
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
Application number
JP60061933A
Other languages
English (en)
Other versions
JPS61221942A (ja
Inventor
昇 田村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP60061933A priority Critical patent/JPH0756637B2/ja
Publication of JPS61221942A publication Critical patent/JPS61221942A/ja
Publication of JPH0756637B2 publication Critical patent/JPH0756637B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はメモリスタツク機能を備えたノイマン型演算処
理装置に関するものである。
[開示の概要] 本明細書及び図面はノイマン型演算処理装置において、
実行中のレジスタの内容をスタツクポインタで指示する
スタツク領域に格納しスタツクポインタ値は格納前の状
態とすることにより、プログラムと実行中の任意の位置
での実行中のレジスタの直前の内容を知ることができ、
かつスタツクポインタの値を変更することによるプログ
ラム実行誤りの発生することのない技術を開示するもの
である。
[従来の技術] 従来の演算処理装置においては、メモリに格納されたプ
ログラム命令に従い情報の演算処理を行なつている。
この演算処理は一般にプログラム命令により任意に内容
を変更可能で、かつ各種演算処理に使用出来る様修飾機
能等を有し、アキユームレータ(算術論理演算器)との
間で演算データの自動的なやり取りの可能な汎用レジス
タを介して行なわれる。また、演算処理装置には上述の
汎用レジスタ以外にもプログラムカウンタ、スタツクポ
インタ(スタツクレジスタ)、コンデイシヨンコードレ
ジスタ、ステータスレジスタ、その他のテンポラリレジ
スタ等が備えられている。
これらのレジスタ群を用いて各種演算処理を実行するわ
けであるが、プログラム命令の完成前、またはプログラ
ムミスがある場合等においてはプログラム命令の実行状
態をデバグ処理により確認する必要がある。
今、このデバグ処理により下記に示すレジスタ操作及び
演算命令の実行時をデバグする場合について説明する。
L :LD RG1,100 L+2:LD RG2,101 L+4:MUL RG1,RG2 L+6:NOP ここでL〜L+6はメモリにおけるプログラム格納番地
を示し、RG1,RG2は容量8ビツトの汎用レジスタであ
る。
このプログラムはRG1の内容とRG2の内容の積をとり、倍
長の演算結果をRG1,RG2に格納する乗算命令であり、RG1
に100番地の内容、RG2に101番地の内容をLOADして、乗
算(MUL)を行なう。100番地に“128"、101番地に“25
6"が格納されているとすると、“128"ד256"=“3276
8"(16進数で8000)となり、演算結果としてRG1に「8
0」、RG2に「00」がセツトされる。
乗算処理(MUL)の前後で、RG1,RG2の内容が変化するこ
とに注目したい。このためプログラムの途中で、デバグ
を行ない乗算処理の結果を知りたい時は L+2番地の『LD RG2,101』実行時点でプログラム
処理を中断。
中断時点でのRG1,RG2の内容を確認。
“L+4"番地の『MUL RG1,RG2』を実行させる。
RG1,RG2の内容を確認。
の上記の手順が必要となる。
[発明が解決しようとする問題点] 上述従来技術のデバツク処理で述べた様に、レジスタの
操作命令を実行すると、実行以前の値は破壊されてしま
うため、操作命令実行前と実行後にそれぞれプログラム
を停止し、この時のレジスタの値を確認しなければなら
ず処理が繁雑になつてしまつていた。
[問題点を解決するための手段] 本発明は上述の問題点を以下の構成により解決してい
る。
すなわち、スタツクポインタによるスタツク機能を備え
た演算処理装置において、実行手順を含む処理情報を記
憶する記憶手段と、前記記憶手段に記憶された実行手順
に従い情報の演算処理を行う演算手段と、前記演算手段
の演算情報を保持する少なくとも一つのレジスタと、前
記レジスタの操作命令を検出する検出手段と、前記検出
手段により前記レジスタの操作命令が検出された場合、
該操作命令の実行に先立つて、前記記憶手段内の前記ス
タツクポインタによつて指示する領域に当該レジスタの
内容を格納する格納手段とを備え、前記格納手段は、前
記レジスタの内容の格納後、前記スタツクポインタの値
を当該レジスタの操作命令検出前へ復帰する構成にす
る。
[作用] 以上の構成によれば、スタツク機能を用いた簡単な構成
で、レジスタの内容を確認することができる演算処理装
置を提供でき、その際、スタツク領域に格納したレジス
タの内容を読出すことなく命令の処理を続けても、スタ
ツク領域のデータを増大させることはない。また、この
レジスタの内容は、通常のスタツク機能では使用しない
領域へ格納するので、他の目的でスタツク機能を利用す
る場合に影響を及ぼすことがない。
[実施例] 以下、図面を参照して本発明の一実施例を説明する。
第1図は本発明に係る一実施例であり、図中1はスタツ
クレジスタ、2は算術論理演算器、4は制御回路であ
る。制御回路4は各種タイミング制御を行つているが、
このタイミング制御はハードウエア(論理回路)で構成
しても、又マイクロプログラミング構成としてもよい。
マイクロプログラミング構成とすることにより、各種の
処理目的に容易に対応することが出来る。また、5は命
令の記憶位置を記憶するプログラムカウンタ、6は命令
レジスタ、7は命令レジスタ6の命令の解析を行なう命
令デコーダ、8はメモリアドレスレジスタ、9はメモリ
データレジスタ、10は内部バスである。また13はメモリ
制御回路、14はメモリであり、メモリ14中にはスタツク
領域14aが設けられている。また20は汎用レジスタ群で
あり、Aレジスタ21及びBレジスタ22により構成されて
いる。ここで汎用(演算)レジスタ群20はプログラム命
令により任意な値を設定できる。
以下、図に示す本実施例装置の動作を前述したプログラ
ム命令列を実行する場合を例として第2図のフローチヤ
ートを参照して説明する。
まずステツプS1でプログラムカウンタ(以下PCと称す)
5の値をメモリアドレスレジスタ(以下MARと称す)8
にセツトし、続くステツプS2でPC5の値を1つインクリ
メントする。
そしてステツプS3で制御回路4はメモリ制御回路13にプ
ログラムの読出しを指示する。
PC5の内容が“L+4"であつたとすると、メモリ14中の
“L+4"番地の内容を読み出す処理を実行する。“L+
4"番地の内容が読み出されメモリデータレジスタ(以下
MDRと称す)9にセツトされると、ステップS4でこの命
令を命令レジスタ6にセツトし、セツトした命令を命令
デコーダ7で解読する。ステツプS5でその解読の結果、
命令の実行のためには次のメモリ番地の命令を読出す必
要があるか(1つの命令を全て読み出したか)否かを判
別する。この場合には“L+4"番地と“L+5"番地には
レジスタAとレジスタBの内容を乗算し、その結果をレ
ジスタA及びレジスタBに格納する命令である『MUL R
G1,RG2』が格納されており、続いて“L+5"番地の命令
コードを読出す必要があるため再びステツプS1に戻り、
“L+5"番地の命令コードを読出す。
ステツプS5で命令の実行に必要な全ての命令コードの読
出しが終了すると、続くステツプS6でこの実行すべき命
令が汎用レジスタ群20の内容の変更を伴うレジスタ操作
命令か否かを調べ、レジスタ操作命令の場合にはステツ
プS7でスタツクレジスタ(以下SPと称す)1の内容をMA
R8に格納し、続くステツプS8でSP1の内容を1つデクリ
メントする。そしてステツプS9で実行すべきレジスタ操
作命令において操作レジスタの数が1つか否かを調べ、
1つの場合にはステツプS10に、1つでない場合にはス
テツプS20に進む。
ステツプS10では操作するレジスタの値をMDR9にセツト
し、メモリ14のSP1で指示されたスタツク領域14aに書込
む。そして続くステツプS12でSP1を1つインクリメント
し、レジスタ値を格納する以前の状態に戻し、ステツプ
S13で実行すべきレジスタ操作命令がメモリ14のアクセ
スを必要とする命令か否かを調べ、メモリアクセスを必
要とする場合にはステツプS14でメモリ14がアクセス状
態でなくなるのを待ちレジスタ操作命令を実行し(ステ
ツプS15)、その後ステツプS1に戻る。
一方ステツプS9で操作レジスタ数が複数の場合にはステ
ツプS20で最初に格納すべきレジスタ値をMDR9にセット
する。
本実施例ではAレジスタ21、Bレジスタ22の順で格納さ
れる。
そしてステツプS21でメモリ14がアクセス中であればア
クセスの終了を待ち、ステツプS22でメモリ14への書き
込みをスタートさせる。
ここではMAR8には先にSP1の値がセツトされており、SP1
の指示するスタツク領域14aに書込まれる。そしてステ
ツプS23で全ての操作レジスタの値の格納が終了したか
否かを調べ、終了していなければステツプS24でSP1の値
をMAR8にセツトし、ステツプS25でSP1の値を1つデクリ
メントする。そしてステツプS20に戻り、次のレジスタ
の値をスタツク領域14aに書込む。
ステツプS23で必要なレジスタの値の書込みが終了して
いればステツプS26でSP1の値をレジスタ値の格納前の値
に戻し、ステツプS13に進む。そしてレジスタ操作命令
を実行する。
またステツプS6でレジスタ操作命令でなかつた場合には
ステツプS27に進み、所定の命令処理を実行する。
具体例により以上の処理を説明すると、今、プログラム
の実行が進行してきて、“L"番地より格納されている
『LD RG1,100』を実行する場合であつてSP1の内容が
“200"であつたとする。
制御回路4は、まず、このレジスタ操作命令を実行する
前にSP1の示すメモリアドレス値“200"をMAR8にセツト
し、次にSP1の内容をデクリメントする。そして“RG1"
即ちAレジスタ21の内容をMDR9にセツトし、このMDR9の
内容をMAR8の指示するスタツク領域14aに書込む。そし
て次にSP1をインクリメントする。これによりSP1の内容
は元の“200"に戻る。
そしてレジスタ命令『LD RG1,100』を実行する。
同様にして“L+4"番地の『MUL RG1,RG2』の実行の場
合には、直前のSP1の値が“200"とすると、“200"番地
にRG1即ちAレジスタ21の値、“199"番地にRG2即ちBレ
ジスタ22の値が格納され、SP1の値は“200"に戻された
後にこの命令が実行され、[RG1]×[RG2]の答が両レ
ジスタにセツトされる。このためデバツク処理等でこの
“L+4"番地よりの命令実行時、即ち“L+6"番地の命
令実行前の状態でこの処理を中断した場合にあつてはRG
1,RG2には演算の結果がスタツク領域14aのSP1の示すア
ドレス及びその1つ前のアドレスには、RG1,RG2の内容
が格納されている。
従つて、プログラムが停止したときに例えば汎用レジス
タの内容とスタツクレジスタ1の示すメモリアドレスか
ら、低いアドレス方向の、メモリの内容を汎用レジスタ
の個数分表示するようなデバグプログラムを作り、ブレ
ークポイントを1ケ所設定するだけで、現在の汎用レジ
スタと、いまの命令を実行する直前の汎用レジスタの内
容が同時に表示できる。
またスタツクレジスタ1はこの動作によつて変化しない
ので前記動作が従来のスタツクメモリの使用方法に対し
て何等の変更ももたらさない。
以上の説明では汎用レジスタが2個の例を説明したが、
それ以上であつても全く同様である。
[発明の効果] 以上説明したように本発明によれば、従来繁雑であつた
レジスタ値の状態の確認が、スタツク機能を利用するだ
けで極めて容易に行え、処理の前後のレジスタの状態が
直ちに確認でき、プログラムのデバグ処理の負荷を極め
て少なくできる演算処理装置が提供できる。
また、レジスタの内容をスタツク領域に格納した後、該
レジスタの操作命令検出前にスタツクポインタの値を復
帰するので、スタツク領域に格納したレジスタの内容を
読出すことなく命令の処理を続けても、スタツク領域の
データを増大させることはなく、さらに、レジスタの内
容は、通常のスタツク機能では使用しない領域へ格納さ
れているので、他の目的でスタツク機能を利用する場合
に影響を及ぼすことがない。
【図面の簡単な説明】
第1図は本発明の一実施例演算処理装置の機能ブロツク
図、 第2図は本実施例の命令実行フローチヤートである。 図中、1……スタツクレジスタ、2……算術論理演算
器、4……制御回路、5……プログラムカウンタ、6…
…命令レジスタ、7……命令デコーダ、8……メモリア
ドレスレジスタ、9……メモリデータレジスタ、13……
メモリ制御回路、14……メモリ、14a……スタツク領
域、20……汎用レジスタ群、21……Aレジスタ、22……
Bレジスタである。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】スタックポインタによるスタック機能を備
    えた演算処理装置において、 実行手順を含む処理情報を記憶する記憶手段と、 前記記憶手段に記憶された実行手順に従い情報の演算処
    理を行う演算手段と、 前記演算手段の演算情報を保持する少なくとも一つのレ
    ジスタと、 前記レジスタの操作命令を検出する検出手段と、 前記検出手段により前記レジスタの操作命令が検出され
    た場合、該操作命令の実行に先立って、前記記憶手段内
    の前記スタックポインタによって指示する領域に当該レ
    ジスタの内容を格納する格納手段とを備え、 前記格納手段は、前記レジスタの内容の格納後、前記ス
    タックポインタの値を当該レジスタの操作命令検出前へ
    復帰することを特徴とする演算処理装置。
JP60061933A 1985-03-28 1985-03-28 演算処理装置 Expired - Fee Related JPH0756637B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60061933A JPH0756637B2 (ja) 1985-03-28 1985-03-28 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60061933A JPH0756637B2 (ja) 1985-03-28 1985-03-28 演算処理装置

Publications (2)

Publication Number Publication Date
JPS61221942A JPS61221942A (ja) 1986-10-02
JPH0756637B2 true JPH0756637B2 (ja) 1995-06-14

Family

ID=13185469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60061933A Expired - Fee Related JPH0756637B2 (ja) 1985-03-28 1985-03-28 演算処理装置

Country Status (1)

Country Link
JP (1) JPH0756637B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57212551A (en) * 1981-06-25 1982-12-27 Toshiba Corp Operation controller

Also Published As

Publication number Publication date
JPS61221942A (ja) 1986-10-02

Similar Documents

Publication Publication Date Title
US4176394A (en) Apparatus for maintaining a history of the most recently executed instructions in a digital computer
JPS623461B2 (ja)
JPS6212529B2 (ja)
US4124892A (en) Data processing systems
JPH0756637B2 (ja) 演算処理装置
JP2731047B2 (ja) プログラムのオペランドチェック方式
JPH0222413B2 (ja)
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2883488B2 (ja) 命令処理装置
JPS6385942A (ja) 並列プログラムのデバツグ支援装置
JPH04280334A (ja) ワンチップマイクロコンピュータ
JP2000029508A (ja) プログラマブルコントローラ
JPS5834856B2 (ja) キオクセイギヨソウチ
JPH04181331A (ja) 命令リトライ方式
JP2883489B2 (ja) 命令処理装置
JPS61221943A (ja) 演算処理装置
JPS60193046A (ja) 命令例外検出方式
JPS62237533A (ja) デ−タ処理装置
JPS626341A (ja) 情報処理装置
JPH0578052B2 (ja)
JPH09325935A (ja) バス切り換え回路
JPH07107669B2 (ja) 演算処理装置
JPH02183330A (ja) データ処理装置
JPS6239779B2 (ja)
JPH05342378A (ja) エバリエーションチップ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees