JPH04332045A - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JPH04332045A
JPH04332045A JP10146791A JP10146791A JPH04332045A JP H04332045 A JPH04332045 A JP H04332045A JP 10146791 A JP10146791 A JP 10146791A JP 10146791 A JP10146791 A JP 10146791A JP H04332045 A JPH04332045 A JP H04332045A
Authority
JP
Japan
Prior art keywords
program
instruction
interrupt
address
cpu
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
JP10146791A
Other languages
English (en)
Inventor
Yutaka Saito
豊 斉藤
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP10146791A priority Critical patent/JPH04332045A/ja
Publication of JPH04332045A publication Critical patent/JPH04332045A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムをプログラ
ム命令単位で演算実行する演算処理装置に関する。
【0002】
【従来の技術】中央演算処理装置(CPU)は内蔵また
は外付のシステムプログラムメモリに格納された演算プ
ログラムをプログラム命令単位で読出して、演算実行す
る。
【0003】通常、CPUはシステムプログラムメモリ
の開始アドレスをアドレスカウンタに設定して、先頭の
プログラム命令を読出した後、プログラム命令の実行毎
に、アドレスカウンタを“1”ずつ更新し、実行対象の
プログラム命令を順次に読出す。
【0004】また、CPUの割込み端子に割込み信号を
入力したときは、CPUは現在実行しているプログラム
を一時中断し、割込信号に対応した別の割込み用プログ
ラムを実行する。このプログラムを実行した後、CPU
は中断していた元のプログラムの実行を再開することが
できるようになっている。割込み処理を実行する場合、
CPU内の具体的なシステム処理は次のように行われる
【0005】割込み信号を入力すると、CPUは、現在
、アドレスカウンタに設定されているプログラム命令の
読出しアドレスを割込みプログラム終了後の復帰先アド
レスとして、スタックレジスタと呼ばれるCPU内の専
用レジスタに格納する。
【0006】この後、CPUはアドレスカウンタに割込
用プログラムの開始アドレスを設定し、アドレスカウン
タの指示するシステムプログラム内のアドレスから割込
み用プログラムを順次に読出し、実行する。割込み用プ
ログラムの最後尾に記載された復帰命令(リターン命令
)をCPUが読出すと、CPUはスタックレジスタに格
納されたアドレス値をアドレスカウンタに初期設定し、
このアドレスカウンタの示すアドレスからプログラム命
令の読出し演算実行を再開する。
【0007】このような割込処理を起動する割込み信号
はCPUに対して複数点入力可能であり、複数の割込用
プログラムを実行することが可能となっている。
【0008】
【発明が解決しようとする課題】しかしながら、従来こ
の種、演算処理装置では割込み信号と割込用プログラム
が1対1に対応しているので、多数の割込み処理を実行
しなければならない場合は複数点の割込み信号を必要と
する。
【0009】そこで、本発明の目的は、上述の点に鑑み
て、割込み信号の点数に関係なく任意の本数の割込み用
処理プログラムを実行させるのみならず、従来にはない
新規の割込み処理を達成することの可能な演算処理装置
を提供することにある。
【0010】
【課題を解決するための手段】このような目的を達成す
るために、本発明は、第1のプログラムをプログラム命
令単位で実行中に割込信号を入力した場合は、当該第1
のプログラムにおいて実行しようとしていたプログラム
命令の位置情報を記憶手段に記憶し、次に、割込用に定
めた第2のプログラムを実行した後、前記記憶手段の位
置情報の示すプログラム命令から実行を再開する演算処
理装置において、前記記憶手段に記憶の前記位置情報を
変更する旨を示す命令コードと、変更すべき新たなプロ
グラム命令の位置情報とを含む変更命令を予め定め、実
行対象のプログラム命令が前記変更命令であることを検
出する命令識別手段と、該命令識別手段により前記変更
命令が検出されたときには、当該変更命令に含まれる位
置情報を前記記憶手段に更新的に書き込むことにより、
前記第2プログラムの終了後に実行すべきプログラム命
令を変更する変更手段とを具えたことを特徴とする。
【0011】
【作用】本発明は、スタックレジスタと呼ばれる記憶手
段に格納されたプログラム命令の開始位置に基づいて、
割込み用第2プログラム終了後、再開すべきプログラム
命令の位置が決定されることに着目し、割込み用第2プ
ログラムの中に記載した変更命令を検出し、記憶手段の
位置情報を変更することにより、たとえば他の割込みプ
ログラムの先頭位置に直接の実行手順を移行させる。
【0012】
【実施例】以下、図面を参照して本発明実施例を詳細に
説明する。
【0013】図1は本発明第1実施例の回路構成例を示
す。
【0014】図1において、10は中央演算処理装置(
CPU)を示す。
【0015】本実施例ではCPU10中の従来から周知
の回路についての説明を省略し、本発明に関わる回路構
成のみ説明することにする。
【0016】不図示のアドレスカウンタのアドレス指定
によりプログラムメモリ20から読出されたプログラム
命令はデータバスに送出され、ラッチ回路12に保持(
ラッチ)される。ラッチ回路12に対するラッチ指示信
号はタイミング信号発生回路13においてマシンクロッ
クに基づき作成される。
【0017】ラッチ回路12に保持されたコード信号形
態のプログラム命令は命令デコーダ(命令コード解読器
)11に入力され、命令デコーダにおいて命令内容の解
読が行われる。
【0018】命令デコーダ(本発明の命令識別手段)1
1は従来の命令についての解読を行う他、読出しの命令
コードが、本発明のスタックレジスタ16に対する格納
値変更命令(以下、アドレス変更命令と称す)を示す特
定コードであることをコード比較により検出した場合、
アドレス変更命令検知信号を発生する。
【0019】タイミング信号発生回路13はマシンクロ
ックCLKを入力し、ラッチ回路12に対してラッチ指
示信号を出力すると共に、割込信号を入力したときは割
込み検知信号を保持出力する。また、タイミング信号発
生回路13は、後述の書き込み指示信号を入力したとき
は割込み検知信号の保持出力状態を解除する。
【0020】書き込み回路15は、割込みプログラム中
のアドレス変更命令が検出されたときに、このアドレス
変更命令中に含まれるアドレス値をスタックレジスタ(
本発明の記憶手段)16に書き込む。本実施例ではタイ
ミング信号発生回路13に保持された割込検知信号と命
令デコーダ11のアドレス変更命令検知信号が同時に発
生したことをアンドゲート14により検出し、スタック
レジスタ16に対する書き込み指示信号を発生する。
【0021】このような回路構成において実行する割込
み処理手順を図2のフローチャートを参照して説明する
。図2のフローチャートは図1のプログラムメモリ20
に格納された制御手順を示す。この制御手順はメインプ
ログラムと割込みプログラムから構成されている。メイ
ンプログラムはたとえば、一定周期で起動され、21個
のプログラム命令で構成されている。このメインプログ
ラムはプログラムメモリ20のアドレス“0”〜アドレ
ス“20”(10進数)に格納されているものとする。
【0022】割込みプログラムは割込信号により起動さ
れ、4個のプログラム命令で構成されている。割込みプ
ログラムはプログラムメモリ20のアドレス“100”
〜“103”(10進数)に格納されているものとする
【0023】また、割込みプログラムの第2番目のプロ
グラム命令(アドレス101)が本発明のアドレス変更
命令となっている。このアドレス変更命令は命令の種類
を示す命令コードと、変更すべきアドレス値から構成さ
れる。本実施例では説明のためにメインプログラムの終
了命令(図2参照)の格納されたアドレス値“20”が
アドレス変更命令の中に含まれているものとする。
【0024】図1に戻り、回路動作を説明する。
【0025】電源起動に応じて、CPU10内のアドレ
スカウンタにはプログラムメモリ20の先頭アドレスと
同じ値“0”が初期設定される。次にタイミング信号発
生回路13の発生する同期信号に従ってアドレスカウン
タの計数値が不図示のアドレスバスを介してプログラム
メモリ20に転送され、プログラムメモリ20のアドレ
ス“0”からプログラム命令A1(図2参照)が読出さ
れる。読出されたプログラム命令はデータバスを介して
ラッチ回路12に保持される。
【0026】命令デコーダ11はラッチ回路12に保持
されたプログラム命令A1の中の命令コード内容を解読
し、その命令に対応する検知信号をオンする。この検知
信号に応じてその命令を実行する論理回路、たとえばC
PU内のレジスタの書き込み回路,読出し回路,演算回
路等がその命令の示す情報処理を実行する。
【0027】論理回路の処理終了信号に応じてアドレス
カウンタが“1”に更新され、プログラムメモリ20の
アドレス“1”から、次ステップのプログラム命令A2
が読出され、ラッチ回路12に保持された後、上述と同
様の処理手順でプログラム命令A2の示す情報処理が実
行される。また、タイミング信号発生回路13はオンの
割込み検知信号をアンドゲート14に保持出力する。
【0028】このようにして、アドレス“10”のプロ
グラム命令A3を実行しようとするときに割込み信号が
CPU10に入力されると、従来周知の処理手順により
、アドレスカウンタの計数値“10”がスタックレジス
タ16に格納され、次にCPU10内のレジスタに格納
された、割込プログラムの先頭アドレス値“100”が
アドレスカウンタに設定される。
【0029】この結果、CPU10の実行命令として図
2に示すように、プログラムメモリ20のアドレス“1
00”からプログラム命令B1が読出される。
【0030】このプログラム命令の実行終了の後、アド
レスカウンタが“101”に更新されると、アドレス変
更命令がプログラムメモリ20から読出される。
【0031】ラッチ回路12に保持されたこのアドレス
変更命令が命令デコーダ11により解読されると、アド
レス変更命令検知信号がオンとなる。この結果、アンド
ゲート14の2入力が共にオンとなるのでゲートが開き
、書き込み指示信号がオンレベルとなる。
【0032】スタックレジスタ16はオンの書き込み指
示信号により、ラッチ回路12のプログラム命令中の変
更アドレス値を上書き記憶することによりアドレス変更
を行う。
【0033】以下、CPU10はアドレスカウンタを実
行して順次に割込プログラムのプログラム命令を実行す
る。
【0034】割込プログラムの最後尾に位置する復帰命
令をCPU10が読出し、命令デコーダ11によりその
命令内を解読すると、従来処理同様、アドレスカウンタ
の設定値がスタックレジスタ16の格納値“20”に更
新され、プログラムメモリ20のアドレス“20”から
終了命令(図2参照)が読出される。この結果、CPU
10はメインプログラムを終了し、命令待機状態となる
【0035】以上、説明した例は、割込み信号によりメ
インプログラムを中断し、割込みプログラムを実行した
後、メインプログラムを終了してしまう例であるが、ア
ドレス変更命令の変更値を変えるのみで種々のプログラ
ムを実行することができる。この実行形態を図3,図4
に示す。
【0036】図3は、第1プログラムの実行中に割込信
号を受けた場合、割込プログラムの終了後、第2プログ
ラムを先頭プログラム命令から実行する例および割込プ
ログラムの終了後、第3プログラムの途中のプログラム
命令から実行する例を示す。
【0037】図4はループ形態で構成された第4プログ
ラムから割込み信号により脱却し、割込プログラムを終
了後別の第5プログラムにCPU10の実行手順を移行
させる例を示す。
【0038】このような形態でプログラムを実行させる
ことは復帰命令で実行手順を元に戻してしまう従来例で
はできなかったことである。
【0039】以上、説明した第1実施例はプログラムメ
オリにリードオンリメモリ(ROM)を用い、プログラ
ム命令がマシン語と呼ばれるCPUを作動させるプログ
ラム言語で記載された演算処理装置に好適な例である。 次に、実行対象のプログラムがベーシック,フォートラ
ン,その他高級言語や中間言語と呼ばれる言語で登録記
憶される演算処理装置に好適な第2実施例を図5を用い
て説明する。
【0040】図5において、CPU100,システムプ
ログラムメモリ120,アプリケーションプログラムメ
モリ130,ワークメモリ140がバスに共通接続され
ている。
【0041】CPU100はマシン語形態のプログラム
命令を実行するCPUチップであればよく、従来から知
られているものを使用することができる。
【0042】システムプログラムメモリ120には装置
制御たとえば、バス接続されたメモリに対して情報を読
み/書きする処理を実行するためのシステムプログラム
と、中間言語のプログラム命令をマシン語のプログラム
命令に翻訳するためのインタプリタと呼ばれるプログラ
ムとが格納されている。
【0043】アプリケーションプログラムメモリ130
はユーザの作成した中間言語形態の演算対象の(アプリ
ケーション)プログラムを格納する。アプリケーション
プログラムは不図示のフロッピーディスク等からこのメ
モリにCPU100により転送される。
【0044】ワークメモリ140はCPU100の演算
やシステム処理に用いるデータを格納する。本実施例で
は割込みプログラム終了後のCPU100の実行処理の
戻り先を示すアドレス情報(スタックポインタと称す)
はワークメモリ140内の専用領域に格納する。なおC
PU100内のスタックレジスタは、システムプログラ
ムを読出す際にアプリケーションプログラムの読出しア
ドレスを退避記憶させるために用いる。
【0045】このような構成において、CPU100は
アプリケーションプログラムの先頭アドレスから中間言
語のプログラム命令を読出すと、ワークメモリ140に
一時記憶し、次に、インタプリタ121に従って、マシ
ン語形態の命令に変換した後、変換後の命令を実行する
。このとき、接続のメモリ140等に対して情報の読み
/書きを行う場合は、システムプログラム120を用い
て命令に規定された内容を実行する。このような処理は
インタプリタ方式の演算処理と呼ばれ、周知であるので
詳細な説明は要しないであろう。
【0046】本実施例では、インタプリタ121の中に
、スタックポインタの変更命令検出処理(図6のステッ
プS100)およびスタックポインタの変更処理(図6
のステップS110)を実行させるプログラム手順を記
載しておく。
【0047】変更命令検出処理はより具体的にはアプリ
ケーションプログラムメモリ130から読出した実行対
象のプログラム命令(中間語)がスタックポインタの変
更命令であるか否かをコード比較により判定する処理で
ある。
【0048】スタックポインタ変更処理は、アプリケー
ションプログラムメモリ130から読出した上記スタッ
クポインタの変更命令の中から変更値を抽出し、次に、
ワークメモリ130のスタックポインタに変更値を書き
込む処理をマシン語に翻訳する処理である。
【0049】このようなインタプリタを用いることによ
って、アプリケーションプログラム中の割込みプログラ
ムに記載したスタックポインタの変更命令が検出される
と、スタックポインタの変更処理内容がマシン語に翻訳
され、CPU100により実行される。
【0050】この結果、アプリケーションプログラム中
の割込プログラムを終了した後のCPU100の実行手
順の戻り先はスタックポインタの変更値により決定され
る。
【0051】第1実施例はハードウエアにより本発明を
実現する例であり、第2実施例はソフトウエアにより本
発明を実現する例であるが、演算処理装置を用いる電子
機器の仕様に応じて所望の形態を採用するとよい。
【0052】本実施例の他に、次の例が挙げられる。
【0053】1)本発明実施例ではスタックポインタの
変更命令を単に検出するようにインタプリタを構成して
いるが、検出の変更命令が割込みプログラム中にあるこ
とを確認してスタックポインタの変更を行うこともでき
る。この場合、割込プログラムを実行する際にCPU内
の特定レジスタに割込プログラムを実行する旨のフラグ
情報を設定し、上記変更命令を検出した際にこのフラグ
情報を参照する。
【0054】2)第1実施例のスタックレジスタまたは
第2実施例のスタックポインタに格納するアドレス値は
1つにしているが、割込み処理をネスト的(1つの割込
み処理を実行中に新たな別の割込み処理を実行すること
)に実行する演算処理装置ではスタックメモリに累積的
に、戻り先情報を格納する。このような演算処理装置で
は、最後に書き込まれた戻り先情報を変更命令により変
更するとよい。
【0055】また、プログラムの実行手順によっては、
変更情報のみを残し、他の戻り先情報を消去することも
考えられる。
【0056】3)本発明実施例ではスタックメモリの情
報を書き換えるために変更命令を新たに設けているが、
スタックメモリのアドレスが固定化されていて誤指示の
発生を容認する場合は通常の書き込み命令で書き込み処
理を実行することもできる。
【0057】
【発明の効果】以上、説明したように、本発明では、割
込プログラムの終了後の移行手順を任意所望のプログラ
ム命令位置に設定できるので、たとえば2つの割込プロ
グラムを連続的に実行したり、ループ処理手順を割込み
処理により脱却させるという従来にはない新たな演算処
理を実行することができる。
【図面の簡単な説明】
【図1】本発明第1実施例の回路構成を示すブロック図
である。
【図2】本発明第1実施例のCPU10のプログラム命
令処理手順を示すフローチャートである。
【図3】本発明第1実施例の他のプログラム命令実行手
順を示すフローチャートである。
【図4】本発明第1実施例の他のプログラム命令実行手
順を示すフローチャートである。
【図5】本発明第2実施例の回路構成を示すブロック図
である。
【図6】図5のインタプリタ121の処理内容を示すフ
ローチャートである。
【符号の説明】
10  CPU 11  命令デコーダ 12  ラッチ回路 13  タイミング信号発生回路 14  アンドゲート 15  書き込み回路 16  スタックレジスタ 20  プログラムメモリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  第1のプログラムをプログラム命令単
    位で実行中に割込信号を入力した場合は、当該第1のプ
    ログラムにおいて実行しようとしていたプログラム命令
    の位置情報を記憶手段に記憶し、次に、割込用に定めた
    第2のプログラムを実行した後、前記記憶手段の位置情
    報の示すプログラム命令から実行を再開する演算処理装
    置において、前記記憶手段に記憶の前記位置情報を変更
    する旨を示す命令コードと、変更すべき新たなプログラ
    ム命令の位置情報とを含む変更命令を予め定め、実行対
    象のプログラム命令が前記変更命令であることを検出す
    る命令識別手段と、該命令識別手段により前記変更命令
    が検出されたときには、当該変更命令に含まれる位置情
    報を前記記憶手段に更新的に書き込むことにより、前記
    第2プログラムの終了後に実行すべきプログラム命令を
    変更する変更手段とを具えたことを特徴とする演算処理
    装置。
JP10146791A 1991-05-07 1991-05-07 演算処理装置 Pending JPH04332045A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10146791A JPH04332045A (ja) 1991-05-07 1991-05-07 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10146791A JPH04332045A (ja) 1991-05-07 1991-05-07 演算処理装置

Publications (1)

Publication Number Publication Date
JPH04332045A true JPH04332045A (ja) 1992-11-19

Family

ID=14301524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10146791A Pending JPH04332045A (ja) 1991-05-07 1991-05-07 演算処理装置

Country Status (1)

Country Link
JP (1) JPH04332045A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US8086829B2 (en) 2002-11-18 2011-12-27 Arm Limited Method and apparatus for processing data related to handling interrupts in data processing
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing

Similar Documents

Publication Publication Date Title
EP0313097B1 (en) Microcomputer system including master processor and slave processor
JPH03204737A (ja) 信号処理プロセッサのデバッグ回路
JPH1078889A (ja) マイクロコンピュータ
JP4703718B2 (ja) 選択的サブルーチンリターン構造
JP2001051874A (ja) マイクロコンピュータ
US20030084232A1 (en) Device and method capable of changing codes of micro-controller
JPH04332045A (ja) 演算処理装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JPS5826043B2 (ja) プロセツサのリセツト方式
JPS6242301B2 (ja)
JPH04370832A (ja) プロセッサ回路
JP2675506B2 (ja) マイクロプロセッサ装置
JPH03103924A (ja) データ処理装置
JPH0454531A (ja) プログラム読出し回路
JP3414579B2 (ja) プログラマブルコントローラ
JP4116752B2 (ja) 計算機とその制御方法
JPH0475147A (ja) 情報処理システムにおける時間監視装置
JP2819753B2 (ja) パイプライン・マイクロプロセッサ
JPH0916399A (ja) 計算機
JPS62151936A (ja) マイクロプロセツサに内蔵されるキヤツシユ回路
JPH05334074A (ja) マイクロプロセッサ
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
JPS60193046A (ja) 命令例外検出方式
JPH0836499A (ja) マイクロコンピュータ
JPH04112233A (ja) マイクロコンピュータ