JPH09198257A - プログラム実行方法およびこの方法を用いたプログラム実行装置 - Google Patents

プログラム実行方法およびこの方法を用いたプログラム実行装置

Info

Publication number
JPH09198257A
JPH09198257A JP8006971A JP697196A JPH09198257A JP H09198257 A JPH09198257 A JP H09198257A JP 8006971 A JP8006971 A JP 8006971A JP 697196 A JP697196 A JP 697196A JP H09198257 A JPH09198257 A JP H09198257A
Authority
JP
Japan
Prior art keywords
address
instruction
processing
specific event
request
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
JP8006971A
Other languages
English (en)
Inventor
Hiroki Miura
宏喜 三浦
Yasuto Komura
康人 甲村
Kenji Matsumoto
松本  健志
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP8006971A priority Critical patent/JPH09198257A/ja
Priority to US08/784,753 priority patent/US20020002668A1/en
Publication of JPH09198257A publication Critical patent/JPH09198257A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 戻りアドレス保持レジスタが1つしかない場
合、多重割込を受け付けるとき、戻りアドレスの退避等
に必要なステップ数が多い。 【解決手段】 割込処理ルーチンに入ると、最初のMO
VS命令で戻りアドレス保持レジスタERPの値をレジ
スタR2に退避する。次のSETPR命令(割込受付優
先レベル更新命令)でEA(割込許可)フラグを自動的
に1とし、多重割込を許可する。復帰時は、R2に退避
していた値をERPに転送するデータ転送命令MOVS
の実行により、EAフラグを自動的に0とし、割込要求
の受付を禁止する。最後のRETI命令の実行でこれを
再び許可する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明はプログラム実行方
法およびその方法を用いたプログラム実行装置に関す
る。この発明は特に、通常処理の他に、プログラム実行
装置内外からの処理要求に応じて特定事象の処理を行う
プログラム実行方法および装置に関する。この発明に係
るプログラム実行装置は、例えばマイクロプロセッサに
適用可能である。
【0002】
【従来の技術】従来、マイクロプロセッサなどの一般的
なプログラム実行装置として、メモリに格納された命令
を順次フェッチ、デコードして実行する制御駆動方式の
装置が数多く存在する。近年のマイクロプロセッサは、
プロセッサ外部からの割込信号に応じた割込処理や、ブ
ロセッサの内部エラーなどの例外発生に応じた例外処理
を高速に行うよう改良が施されている。
【0003】[1]リターンポインタレジスタ その改良の1つとして、ハードウエアでリターンポイン
タレジスタを備える方法がある。このレジスタは割込処
理や例外処理(以下「割込処理等」ともいう)から復帰
する際の戻りアドレスを格納する。すなわち、割込や例
外(以下「割込等」ともいう)が発生したとき、まず戻
りアドレスがここに格納され、割込処理等のルーチン
(以下単に「処理ルーチン」ともいう)に分岐する。処
理が終われば、リターンポインタレジスタの値がプログ
ラムカウンタに戻され、処理ルーチンから復帰する。リ
ターンポインタレジスタを用いればスタックメモリへア
クセスする必要がないため、処理の高速化が可能とな
る。しかし、リターンポインタレジスタは一般にスタッ
ク方式のメモリに比べてハードウェア規模が大きいこと
が短所であり、スタックの場合と異なり、通常は1系統
(1個)しか設けることができない。
【0004】[2]リターンポインタレジスタと多重割
込 リターンポインタレジスタが1個の場合、1つの割込処
理中に他の割込を受け付ける多重割込処理の実現には配
慮が必要である。この場合一般に、処理ルーチンの先頭
でリターンポインタレジスタの内容をスタックメモリや
汎用レジスタに退避(プッシュ)し、処理ルーチンの末
尾で退避した値を読み出してリターンポインタレジスタ
に格納(ポップ)し、この後、復帰する。しかしこのと
き、以下の期間ではリターンポインタレジスタの値がど
こにも退避されていない状態が生じる(以下、これらの
期間を「危険期間」と呼ぶ)。
【0005】(1)割込が発生して戻りアドレスがリタ
ーンポインタレジスタに格納された瞬間〜その値の退避
完了 (2)退避されていた値が再びリターンポインタに格納
された瞬間〜復帰命令の実行完了 仮に、危険期間に新たな割込を受け付ければ、リターン
ポインタレジスタの内容は新たな戻りアドレスによって
更新され、ひとつ前の割込の戻りアドレスが消滅する。
この結果復帰が不可能となり、装置が誤動作する。従っ
て、少なくとも当該期間だけは多重割込の受付を停止す
る必要がある。
【0006】[3]従来のプロセッサにおける多重割込
の実現 日本電気株式会社のマイクロプロセッサV810の「ユ
ーザーズマニュアル:V810 32ビット・マイクロ
プロセッサμPD70732」(1993年9月)の6
7〜69、151、162および164ページによれ
ば、以下の方法によって多重割込を実現している。
【0007】[構成] (1)EIPCレジスタ リターンポインタレジスタである。割込が発生したと
き、復帰すべき現在のPC(プログラムカウンタ)の内
容が退避される。
【0008】(2)EPフラグ 上記の危険期間をそれ以外の安全期間と区別する。シス
テムのステータスレジスタの1つであるプログラム・ス
テータス・ワード(PSW)内に設けられる。例外事象
(割込も含む)の発生で自動的にセットされ、割込がマ
スクされる。EPフラグが1の間は割込信号が無視され
る。
【0009】(3)EIPSWレジスタ 割込が発生したとき、現在のPSWの内容の退避先とな
る。
【0010】[動作]割込を受け付けたとき、PCをE
IPCに、PSWをEIPSWにそれぞれ格納し、EP
フラグを1にする。割込処理が終われば、復帰命令(R
ETI命令)の実行に伴ってEIPCの値がPCに、E
IPSWの内容がPSWに戻され、PCアドレスにリタ
ーンする。EPの状態はRETI命令の実行によって割
込発生前の状態に戻る。
【0011】以上が基本動作であるが、このメカニズム
のみでは割込処理ルーチンの実行中常にEP=1とな
り、多重割込が許可されない。このため同プロセッサで
は、システムレジスタへのロード命令LDSRを備え
る。この命令は種々のシステムレジスタへのデータ書込
のために汎用的に用いられる2レジスタオペランドの命
令であり、第2オペランドとしてPSWレジスタが指定
されたとき、第1オペランドで指定されたレジスタの値
をPSWレジスタに転送する。同プロセッサは多重割込
を許可するために、処理ルーチンに分岐した後、まずE
IPCレジスタの内容を退避する。その後、EPフラグ
を0にするよう、LDSR命令の実行によって所期のデ
ータをPSWレジスタに書き込む。これで再び割込等が
許可状態になる。
【0012】一方、復帰の際には、退避していた値をE
IPCレジスタに格納する前に、LDSR命令によって
EPフラグを1に戻す。この結果、プロセッサは割込禁
止状態になる。
【0013】このプロセッサ用の割込処理ルーチンの記
述例は以下の通りである。
【0014】 STSR EIPSW,r1 (r1←EIPSW) STSR EIPC ,r2 (r2←EIPC) MOVHI 5,r0,r3 (r3←50000H) LDSR r3,PSW (PSW←r3) : 割込処理本体 : ORI 4000H,r0,r3 (r3←4000H) LDSR r3,PSW (PSW←r3) LDSR r1,EIPSW (EIPSW←r1) LDSR r2,EIPC (EIPC←r2) RETI (PC←EIPC,PSW←EIPSW) このプログラムにおいて、最初の2つの命令でEIPS
W、EIPCレジスタの値が汎用レジスタに退避される
(メモリをスタック的に使用して退避する方法もある
が、ここでは説明の便宜上レジスタにしている)。つぎ
に、3番目のMOVHI命令でPSWレジスタに書き込
むべき値が汎用レジスタr3に生成される。MOVHI
命令の記述はこのプロセッサ特有のもので、r0はプロ
セッサ側で常に0と扱い、これを32ビット中の下位1
6ビットにおき、上位16ビットに即値「5」が入る。
従って「50000H」がレジスタr3に格納される。
つづいて、LDSR命令により、この値がPSWに格納
される。同プロセッサでは、PSWレジスタのビット1
4はEPフラグビット、ビット19〜16は割込許可レ
ベルであるため、この命令の実行により、EPフラグが
0(割込許可)、その割込許可レベルが5に設定され
る。
【0015】一方、割込処理本体の実行後復帰前に、O
RI命令によってPSWレジスタに書き込むべき値がレ
ジスタr3に生成される。ORI命令では、即値「40
00H」とr0(これも0と決められている)のオアが
レジスタr3に格納される。つぎにLDSR命令でPS
WのEPフラグが1にセットされ、再び割込禁止状態と
なる。つづく2つの命令で、EIPSW、EIPCレジ
スタの値が退避先レジスタから転送され、RETI命令
が実行される。
【0016】以上、このプロセッサではLDSR命令の
採用によって、多重割込許否の設定を行っている。
【0017】
【発明が解決しようとする課題】上述の従来のプロセッ
サには以下の点で改善の余地が認められる。
【0018】1.EPフラグの変更だけのためにLDS
R命令を用いねばならない。処理ルーチンのプログラム
ステップ数および命令数が増加し、処理時間が長くな
る。プログラムサイズも大きくなる。
【0019】2.LDSR命令はEPフラグのみを書き
換える専用命令ではないため、転送すべきデータをMO
VHI、ORI命令等によって生成しなければならな
い。このため、さらにステップ数と命令数が増加する。
【0020】3.PSWレジスタには、割込処理と関連
のない演算フラグなども格納されている。これらのフラ
グのうち、書換を要する部分のみを書き換えるために、
マスク演算等プログラム例で示さなかった命令ステップ
の追加が必要となる。
【0021】4.同様の理由で、演算フラグ等を保存す
る必要がある場合、そのビット位置等を考慮してプログ
ラミングを行なわねばならない。プログラミングが煩わ
しく、ミスも生じ易くなる。
【0022】5.安全期間に入った後も、LDSR命令
の実行完了まで割込等の許可が待たされる。このため、
急を要する外部割込信号が無用に待たされる恐れがあ
る。
【0023】[目的]本発明は上記課題に鑑みでなされ
たものであり、その目的は、処理ルーチンのプログラム
サイズの縮小、処理時間の短縮、および割込処理等の応
答時間短縮を実現するプログラム実行方法および装置の
提供にある。
【0024】
【課題を解決するための手段】
(1)本発明のプログラム実行方法は、通常処理中に特
定事象処理の要求を受け付け、特定事象処理の要求が発
生したとき一旦それ以上の特定事象処理の要求の受付を
禁止するとともに、通常処理に戻る際の戻りアドレスを
アドレス保持手段に格納して特定事象処理ルーチンに移
行し、該ルーチンにおいて前記アドレス保持手段に格納
された戻りアドレスをアドレス退避手段に退避し、前記
要求の受付を再度許可するための環境を準備する命令を
実行したとき前記要求の受付を自動的に許可する。
【0025】ここで「通常処理」とは、例えばプログラ
ムのメインルーチンによる処理をいう。「特定事象処
理」とは、通常処理から分岐して実行されるもので、例
えばサブルーチンや割り込みハンドラや例外ハンドラに
よる処理をいう。「特定事象」とは、例えばプロセッサ
における割込や例外をいうが、戻りアドレスを格納した
上で通常処理を中断して処理される事象すべてを含む概
念である。「アドレス保持手段」の例に、前述のリター
ンポインタレジスタがある。「アドレス退避手段」は、
例えば多重割込を許可するために、リターンポインタレ
ジスタの内容を退避するもので、スタックメモリ、汎用
レジスタ等がある。「環境を準備する命令」は、明示的
な要求受付許可命令、例えばイネーブル・インタラプト
命令を含まず、文字どおり準備を目的とする命令を指
す。
【0026】(2)(1)の方法のある態様では、前記
環境を準備する命令は割込受付優先レベル設定命令であ
る。割込受付優先レベルを変更する場合は、新たな割込
の発生を認める状態にあるとみなし、割込の受付を再開
する。
【0027】(3)本発明の別の態様では、特定事象処
理ルーチンに入った後、そのルーチンにおいて前記アド
レス保持手段に格納された戻りアドレスをアドレス退避
手段に退避し、前記要求の受付を再度許可するとともに
所期の特定事象処理を行い、特定事象処理が終了して通
常処理へ復帰する際、復帰のための環境を準備する命令
を実行したとき前記要求の受付を自動的に禁止する。
「環境を準備する命令」は、明示的な要求受付禁止命
令、例えばディセーブル・インタラプト命令を含まず、
文字どおり準備を目的とする命令を指す。復帰の準備が
開始されると、アドレス退避手段からアドレス保持手段
に戻りアドレスが戻される。ここで再度の要求受付があ
れば、アドレス保持手段の内容が破壊されるため、これ
を予防するのである。
【0028】(4)この発明のある態様では、前記環境
を準備する命令は、戻りアドレスをアドレス退避手段か
ら読み出してアドレス保持手段に格納する命令自体であ
る。この命令の実行後は戻りアドレスの書換を回避する
ためである。
【0029】(5)一方、本発明のプログラム実行装置
のある態様は、特定事象処理要求の受付許否を設定する
設定手段を有し、割込受付優先レベル設定命令が実行さ
れたとき、それ以前の設定状況に関係なく自動的に前記
受付を許可する。(2)同様の理由による。
【0030】(6)別の態様では、前記設定手段、アド
レス保持手段、アドレス退避手段を有し、戻りアドレス
がアドレス退避手段から読み出されてアドレス保持手段
に格納されたとき、それ以前の設定状況に関係なく自動
的に前記受付を禁止する。(4)同様の理由による。
【0031】(7)さらに別の態様では、設定手段、ア
ドレス保持手段、アドレス退避手段を持ち、(1)同様
の処理を行う。
【0032】(8)このとき、環境を準備する命令は、
割込受付優先レベル設定命令である。 (9)さらに別の態様では、設定手段、アドレス保持手
段、アドレス退避手段を持ち、(3)同様の処理を行
う。
【0033】(10)このとき、環境を準備する命令
は、戻りアドレスをアドレス退避手段から読み出してア
ドレス保持手段に格納する命令である。
【0034】(11)本発明の装置のある態様では、
(5)〜(10)の設定手段が特定事象処理要求の受付
許否をソウトウエア的に設定することの可能なフラグビ
ットである。
【0035】(12)本発明の装置の別の態様では、ア
ドレス保持手段、アドレス退避手段、およびアドレス保
持手段の保持内容の更新が容認される更新許可状態およ
び容認されない更新禁止状態を分別する状態分別手段を
含む。このとき、更新禁止状態にある該装置が割込受付
優先レベル設定命令を実行したとき、該装置は更新許可
状態に移行する。
【0036】(13)このとき別の態様として、該装置
が更新許可状態にあるとき前記アドレス保持手段に対す
る戻りアドレスの格納が発生すれば、該装置は更新禁止
状態に移行する。この時点で再度の要求受付があれば、
戻りアドレスが更新されてしまうためである。
【0037】(14)本発明のある態様では、前記状態
分別手段は、ソウトウエア的に設定可能なフラグビット
であり、このビットの明示的または自動的な書換によ
り、該装置は前記更新許可状態と更新禁止状態の間で状
態遷移を起こす。「明示的な書換」とは、プログラム上
でフラグビット自体を書き換える命令を記述して行われ
る。「自動的な書換」は、明示的な命令を伴わない書換
を指す。例えば特定事象処理ルーチンに入るとき、ハー
ドウエアが自主的に書き換える場合がこれに当たる。
(15)このときさらに、このフラグビットをデータ転
送命令によってアクセスすることが可能な状態レジスタ
内に設け、該レジスタへのデータ転送命令が実行された
ときであっても該フラグビットの書換を禁止する構成と
してもよい。
【0038】
【発明の実施の形態】本発明のプログラム実行装置の実
施形態を説明する。この説明により、本発明のプログラ
ム実行方法も明らかになる。図1は本実施形態に係るプ
ログラム実行装置の全体構成図である。本実施形態で
は、装置はマイクロプロセッサの形態をとる。
【0039】[1]全体の構成と動作 図1において、プログラムメモリ1には命令が格納さ
れ、命令フェッチ部2はプログラムメモリ1からデータ
転送命令(ロード命令、ストア命令)や演算命令などの
命令を順次フェッチし、得られた命令を命令デコード/
命令実行制御部3に渡す。同時に命令フェッチアドレス
がPC(プログラムカウンタ)4に格納される。PCは
1命令をフェッチする毎にインクリメントされていく。
【0040】RP(リターンポインタ)5にはサブルー
チンからの復帰アドレスが、ERP(割込/例外リター
ンポインタ)6には割込処理や例外処理からの復帰アド
レスが、それぞれPC4から転送され格納される。分岐
アドレスは、PC、RP、ERP、および命令デコード
によって生成される分岐アドレスの中から選択され、こ
の分岐アドレスが次の命令アドレスおよびPCの値とな
る。
【0041】命令デコード/命令実行制御部3では、命
令コードを命令の種類にしたがってフィールドに分割
し、処理すべき演算の種類を示すオペレーション、命令
コード内に埋め込まれたオペランドである即値オペラン
ド、ソースレジスタ番号、ディスティネーションレジス
タ番号などを抽出する。次に汎用レジスタ7からソース
レジスタで指定されたレジスタの内容が読み出される。
【0042】オペレーションが加減算などの演算命令を
示していれば、得られたソースオペランドとオペレーシ
ョンに従い、32ビットALU8で演算が行なわれる。
演算結果はレジスタ書込部9を介して、汎用レジスタ7
のうちディスティネーションレジスタ番号で示されるレ
ジスタに書き戻される。オペレーションがシフト演算命
令を示していれば、得られたソースオペランドとオペレ
ーションに従い、32ビットバレルシフタ10でシフト
演算が行なわれる。オペレーションがメモリへのストア
命令を示している場合は、ALU8によって生成される
データアドレスを用い、メモリアクセス部11を介し
て、データメモリ12に汎用レジスタ7から読み出され
たデータが書き込まれる。逆に、オペレーションがメモ
リからのロード命令を示している場合は、ALU8によ
って生成されるデータアドレスを用いてデータメモリ1
2の内容を読み出し、汎用レジスタ7のうち、命令によ
って指定されたレジスタに書き込む。
【0043】割込/例外制御部13は、外部からの割込
信号(INT)、および割込優先レベル(LEVEL)
を入力し、状態レジスタ(STAT)14の内容と、命
令デコード/命令実行制御部3の状態に応じて所定の割
込/例外制御を行なう。
【0044】図2は状態レジスタ14の構成例を示す図
である。同図中、IEは割込許可レベルであり、0〜1
5の値をとる。本装置は外部から入力されたLEVEL
とこのIEの値を比較し、割込を受け付けるかどうかを
決める。図5は割込受付可否を決定する方法を示す図で
ある。割込/例外制御部13において同図に示す判定を
行う。NMIはノンマスカブル割込を指す。
【0045】図2のEA(Exception Acceptable)は例
外処理状態フラグである。このフラグは、割込処理等の
要求を受け付けるとき「1」、受け付けないとき「0」
となる。「1」「0」はそれぞれ、安全期間、危険期間
に対応する。なお、状態レジスタ14には、5ビットの
演算フラグも記憶される。
【0046】図6は割込/例外制御部13で検出する割
込等の種類、およびそれらに対応する分岐アドレス(ハ
ンドラアドレス)の関係を示す図である。種類は大まか
に以下の通りである。
【0047】1.リセット 外部からのリセット信号に応じ、すべての内部状態を初
期化する。「000000H」から処理が開始される。
【0048】2.外部割込(16レベル) NMIを含めて最大16レベルの外部割込信号に応答
し、特定アドレスに分岐する。各特定アドレスからさら
に各処理ルーチンに分岐していく。
【0049】3.データアドレスエラー例外 ハーフワード(16ビット)データをハーフワード境界
以外(奇数アドレス)からアクセスしたり、ワード(3
2ビット)データをワード境界以外からアクセスした場
合など、データアクセスの矛盾を検出し、特定アドレス
に分岐する。
【0050】4.データバスエラー例外 データアクセスの際に、周辺モジュールからコアに向け
てバスエラー信号が発せられると例外を検出し、特定ア
ドレスに分岐する。
【0051】5.命令バスエラー例外 命令フェッチの際に、周辺モジュールからコアに向けて
バスエラー信号が発せられると例外を検出し、特定のア
ドレスに分岐する。
【0052】6.2重例外 割込処理等の危険期間において、アドレスエラー、バス
エラーなどが発生したとき、2重例外とみなし、通常の
エラーの場合とは別の特定アドレスに分岐する。
【0053】[2]割込処理 図3、4は本装置による割込等の処理手順を示すフロー
チャート図である。図3はリセット、例外、割込のいず
れかが発生したときの処理の流れを示し、図4は命令デ
コード/命令実行制御部3において特定の命令が検出さ
れた場合の処理の流れを示す。
【0054】図3に示すように、まずリセットが発生し
た場合(S1)、EAフラグは自動的に0にクリアさ
れ、PCの値は0となり、0番地に移行する(S2)。
【0055】例外が発生した場合(S3)、EA=1で
あれば(S4のY)、例外処理からの戻りアドレスを示
すPCの値をERPに格納するとともにEAフラグを自
動的にクリアし(S5)、所定の例外ハンドラアドレス
に分岐する(S6)。例外が発生したとき、もしEA=
0であれば(S4のN)2重例外と判定し、他の例外処
理とは別のアドレスに分岐する(S7、8)。
【0056】一方、割込が発生した場合、EA=1(S
9のY)かつLEVEL≦IE(S10のY)であれば
割込を受け付け、そうでなければ割込を無視する。割込
が受け付けられると、割込処理からの戻りアドレスを示
すPCの値をERPに格納するとともにEAフラグをク
リアする(S11)。これで割込の受付を一旦禁止す
る。ERPへの格納が完了した瞬間に危険期間に入るた
めである。この後、所定の割込ハンドラアドレスに分岐
する(S12)。
【0057】装置がハンドラアドレスを介して割込処理
ルーチンに移行した後の命令検出動作を適宜図4を用い
て説明する。まずこのルーチンの先頭付近で、多重割込
の要求受付を再度許可すべく、ERPに格納された戻り
アドレスがスタックメモリや汎用レジスタなどに退避さ
れる(図示せず)。退避が完了した瞬間に安全期間に入
る。
【0058】この後、IEを更新する命令を検出したと
き(S20のY)、その命令を実行するとともにEAフ
ラグを自動的に1に変化させ(S21)、割込の受付を
許可する。通常このIE更新命令は割込処理ルーチンの
先頭付近で実行される。これは、そのルーチンに入った
後、現在サービス中の割込優先レベルよりも高い優先レ
ベルを持つ割込のみを多重割込処理の対象とするための
措置である。
【0059】多重割込を許可する条件下、装置は実際に
割込処理を行う。処理が終了すると装置は通常処理に復
帰するが、この前に復帰のための環境を準備する命令を
実行する。すなわち、多重割込のためにスタックメモリ
等に退避されていた戻りアドレスが読み出され、これが
再度ERPへ格納される。ここで再び危険期間に入る。
本実施形態では、ERPへのデータ転送命令を検出した
とき(S22のY)、その命令を実行するとともにEA
フラグを自動的に0に設定する(S23)。この結果、
装置は再び割込受付禁止状態に移行する。
【0060】一方、危険期間は復帰完了の瞬間に終了す
るため、本実施形態では割込処理からの復帰命令RET
Iを検出したとき(S24)、EAフラグを自動的に1
に設定する(S25)。ここで割込の受付を許可し、こ
のルーチンから復帰する。
【0061】[3]プログラム例 図7は本装置が実行する割込処理ルーチンのプログラム
例を示す図である。同図中、実線が危険期間、破線が安
全期間をそれぞれ表す。
【0062】1.割込処理への移行 割込要求が受け付けられた瞬間から危険期間が始まって
いる。処理ルーチンに入ると、まず最初のMOVS命令
でERPの値を汎用レジスタR2に退避する。この命令
の完了とともに、安全期間に入る。次のSETPR(se
t priority)命令(IEの更新命令)でEAフラグは自
動的に1となり、多重割込が許可される。本装置のハー
ドウエアは、SETPR命令の実行時にEAフラグをセ
ットするよう、既存の手法を用いて設計される。
【0063】2.割込処理からの復帰 R2に退避していた値をERPに転送するデータ転送命
令MOVSの実行により、EAフラグは自動的に0とな
る。MOVS命令のディスティネーションレジスタにE
RPが指定されたとき、この命令の実行時にEAフラグ
のリセットを実行するようハードウエアを設計してお
く。EAフラグがリセットされた瞬間から危険期間に入
り、割込要求の受付が禁止される。最後のRETI命令
の実行により、ERPの値がPCにセットされると同時
にEAフラグは1に戻る。ここで安全期間に戻り、割込
の受付が再び許可される。
【0064】以上が本実施形態の概要である。なお、本
実施形態については以下の改良または変形が可能であ
る。
【0065】(1)図7ではSETPR命令によってE
Aフラグを1に戻した。しかし実際には、同図の最初の
MOVS命令の完了時点で危険期間は終了しているた
め、この命令の完了とともに自動的にフラグを操作して
もよい。ただしこの場合、退避先の種類(スタックメモ
リ、汎用レジスタ、プロセッサ外の汎用メモリ等)によ
って退避完了時間が異なるため、EAフラグの操作をあ
る程度遅らせるなどの考慮をなすべきである。
【0066】(2)同様に、本実施形態では多重割込許
可の準備にSETPR命令を明示的に用いたが、これを
暗黙的に行ってもよい。すなわち、現在のIEが例えば
10のとき、この処理ルーチンに入って一定時間が経過
したとき、IEを自動的に9に変更するようハードウエ
アを設計してもよい。この場合、IEの自動変更が完了
したときにEAのセットを行うものとする。
【0067】(3)図7では、ERPへのデータ転送命
令MOVSによってEAフラグをリセットしたが、これ
は当然ながらMOVSに限る必要はない。結果的にER
Pへのデータ転送を実現する命令であれば、例えばOR
命令等を用いても何等差し支えはない。
【0068】(4)本実施形態ではEAフラグを状態レ
ジスタ(STAT)内に設けた。このフラグはリード、
ライトともに可能に設計してもよいが、リードのみ可能
なビットとして設計してもよい。状態レジスタ(STA
T)内には割込等に関係のない演算フラグ等も存在する
ため、演算フラグの操作時にEAフラグを誤って書き換
えないための措置である。
【0069】
【発明の効果】本発明のプログラム実行方法および装置
によれば、EAフラグの操作が自動的に実行されるた
め、従来のように別途LDSR命令等を用いる必要がな
い。このためプログラムステップ数、命令数が減り、処
理時間も短くなる。プログラムサイズも小さくなる。危
険期間で戻りアドレスが破壊されるおそれもなく、効果
的に多重割込を実現することができる。
【0070】また、フラグの操作にLDSR命令等を使
用する必要がないため、フラグ位置を考慮してERPに
転送すべきデータを生成する必要がない。このためマス
ク演算等も不要となり、プログラミングミスも減る。
【0071】さらに、EAフラグの操作を最適のタイミ
ングでハードウエアによって実行するため、急を要する
外部割込信号が無用に待たされる恐れもなくなる。
【図面の簡単な説明】
【図1】 実施形態に係るプログラム実行装置の全体構
成図である。
【図2】 状態レジスタ(STAT)14の構成例を示
す図である。
【図3】 本装置による割込等の処理手順を示すフロー
チャート図である。
【図4】 本装置による割込等の処理手順を示すフロー
チャート図である。
【図5】 割込受付可否を決定する方法を示す図であ
る。
【図6】 割込/例外制御部13で検出する割込等の種
類、およびそれらに対応する分岐アドレス(ハンドラア
ドレス)の関係を示す図である。
【図7】 本装置が実行する割込処理ルーチンのプログ
ラム例を示す図である。
【符号の説明】
1 プログラムメモリ、2 命令フェッチ部、3 命令
デコード/命令実行制御部、4 PC(プログラムカウ
ンタ)、5 RP(リターンポインタ)、6ERP(割
込/例外リターンポインタ)、7 汎用レジスタ、8
32ビットALU、9 レジスタ書込部、10 32ビ
ットバレルシフタ、11 メモリアクセス部、12 デ
ータメモリ、13 割込/例外制御部、14 状態レジ
スタ(STAT)。

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 通常処理の他に、プログラム実行装置内
    外からの処理要求に応じて特定事象の処理を行うプログ
    ラム実行方法であり、 通常処理中に特定事象処理の要求を受け付け、 特定事象処理の要求が発生したとき、一旦それ以上の特
    定事象処理の要求の受付を禁止するとともに、通常処理
    に戻る際の戻りアドレスをアドレス保持手段に格納して
    特定事象処理ルーチンに移行し、 該ルーチンにおいて前記アドレス保持手段に格納された
    戻りアドレスをアドレス退避手段に退避し、 前記要求の受付を再度許可するための環境を準備する命
    令を実行したとき前記要求の受付を自動的に許可するこ
    とを特徴とするプログラム実行方法。
  2. 【請求項2】 前記環境を準備する命令は、割込受付優
    先レベル設定命令である請求項1に記載のプログラム実
    行方法。
  3. 【請求項3】 通常処理の他に、プログラム実行装置内
    外からの処理要求に応じて特定事象の処理を行うプログ
    ラム実行方法であり、 通常処理中に特定事象処理の要求を受け付け、 特定事象処理の要求が発生したとき、一旦それ以上の特
    定事象処理の要求の受付を禁止するとともに、通常処理
    に戻る際の戻りアドレスをアドレス保持手段に格納して
    特定事象処理ルーチンに移行し、 該ルーチンにおいて前記アドレス保持手段に格納された
    戻りアドレスをアドレス退避手段に退避し、 前記要求の受付を再度許可するとともに所期の特定事象
    処理を行い、 その特定事象処理が終了して通常処理へ復帰する際、復
    帰のための環境を準備する命令を実行したとき前記要求
    の受付を自動的に禁止することを特徴とするプログラム
    実行方法。
  4. 【請求項4】 前記環境を準備する命令は、戻りアドレ
    スをアドレス退避手段から読み出してアドレス保持手段
    に格納する命令である請求項3に記載のプログラム実行
    方法。
  5. 【請求項5】 特定事象処理要求の受付許否を設定する
    設定手段を有し、割込受付優先レベル設定命令が実行さ
    れたとき、それ以前の設定状況に関係なく自動的に前記
    受付を許可することを特徴とするプログラム実行装置。
  6. 【請求項6】 特定事象処理要求の受付許否を設定する
    設定手段と、 特定事象処理に移行するとき、戻りアドレスを格納する
    アドレス保持手段と、 アドレス保持手段に格納された戻りアドレスを退避する
    アドレス退避手段と、 を有し、戻りアドレスがアドレス退避手段から読み出さ
    れてアドレス保持手段に格納されたとき、それ以前の設
    定状況に関係なく自動的に前記受付を禁止することを特
    徴とするプログラム実行装置。
  7. 【請求項7】 通常処理の他に、装置内外からの処理要
    求に応じて特定事象の処理を行うプログラム実行装置に
    おいて、 特定事象処理要求の受付許否を設定する設定手段と、 特定事象処理に移行するとき、戻りアドレスを格納する
    アドレス保持手段と、 アドレス保持手段に格納された戻りアドレスを退避する
    アドレス退避手段と、 を含み、該装置は、 通常処理中に特定事象処理の要求を受け付けたとき前記
    設定手段によって一旦それ以上の要求の受付を禁止し、
    戻りアドレスをアドレス保持手段に格納して特定事象処
    理ルーチンに移行し、該ルーチンにおいて前記アドレス
    保持手段に格納された戻りアドレスをアドレス退避手段
    に退避し、前記要求の受付を再度許可するための環境を
    準備する命令を実行したとき前記要求の受付を自動的に
    許可することを特徴とするプログラム実行装置。
  8. 【請求項8】 前記環境を準備する命令は、割込受付優
    先レベル設定命令である請求項7に記載のプログラム実
    行装置。
  9. 【請求項9】 通常処理の他に、装置内外からの処理要
    求に応じて特定事象の処理を行うプログラム実行装置に
    おいて、 特定事象処理要求の受付許否を設定する設定手段と、 特定事象処理に移行するとき、戻りアドレスを格納する
    アドレス保持手段と、 アドレス保持手段に格納された戻りアドレスを退避する
    アドレス退避手段と、 を含み、該装置は、 通常処理中に特定事象処理の要求を受け付けたとき前記
    設定手段によって一旦それ以上の要求の受付を禁止し、
    戻りアドレスをアドレス保持手段に格納して特定事象処
    理ルーチンに移行し、該ルーチンにおいて前記アドレス
    保持手段に格納された戻りアドレスをアドレス退避手段
    に退避し、前記設定手段によって要求の受付を再度許可
    するとともに所期の特定事象処理を行い、その特定事象
    処理が終了して通常処理へ復帰する際、復帰のための環
    境を準備する命令を実行したとき前記要求の受付を自動
    的に禁止することを特徴とするプログラム実行装置。
  10. 【請求項10】 前記環境を準備する命令は、戻りアド
    レスをアドレス退避手段から読み出してアドレス保持手
    段に格納する命令である請求項9に記載のプログラム実
    行装置。
  11. 【請求項11】 前記設定手段は、前記特定事象処理要
    求の受付許否をソウトウエア的に設定することの可能な
    フラグビットである請求項5〜10のいずれかに記載の
    プログラム実行装置。
  12. 【請求項12】 通常処理の他に、装置内外からの処理
    要求に応じて特定事象の処理を行うプログラム実行装置
    において、 特定事象処理に移行するとき、戻りアドレスを格納する
    アドレス保持手段と、 アドレス保持手段に格納された戻りアドレスを退避する
    アドレス退避手段と、 前記アドレス保持手段の保持内容の更新が容認される更
    新許可状態および容認されない更新禁止状態を分別する
    状態分別手段と、 を含み、更新禁止状態にある該装置が割込受付優先レベ
    ル設定命令を実行したとき、該装置は更新許可状態に移
    行することを特徴とするプログラム実行装置。
  13. 【請求項13】 通常処理の他に、装置内外からの処理
    要求に応じて特定事象の処理を行うプログラム実行装置
    において、 特定事象処理に移行するとき、戻りアドレスを格納する
    アドレス保持手段と、 アドレス保持手段に格納された戻りアドレスを退避する
    アドレス退避手段と、 前記アドレス保持手段の保持内容の更新が容認される更
    新許可状態および容認されない更新禁止状態を分別する
    状態分別手段と、 を含み、該装置が更新許可状態にあるとき前記アドレス
    保持手段に対する戻りアドレスの格納が発生すれば、該
    装置は更新禁止状態に移行することを特徴とするプログ
    ラム実行装置。
  14. 【請求項14】 前記状態分別手段は、ソウトウエア的
    に設定可能なフラグビットであり、このビットの明示的
    または自動的な書換により、該装置は前記更新許可状態
    と更新禁止状態の間で状態遷移を起こす請求項12、1
    3のいずれかに記載のプログラム実行装置。
  15. 【請求項15】 前記フラグビットをデータ転送命令に
    よってアクセスが可能な状態レジスタ内に設け、該レジ
    スタへのデータ転送命令が実行されたときであっても該
    フラグビットの書換を禁止した請求項14に記載のプロ
    グラム実行装置。
JP8006971A 1996-01-19 1996-01-19 プログラム実行方法およびこの方法を用いたプログラム実行装置 Pending JPH09198257A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8006971A JPH09198257A (ja) 1996-01-19 1996-01-19 プログラム実行方法およびこの方法を用いたプログラム実行装置
US08/784,753 US20020002668A1 (en) 1996-01-19 1997-01-16 Program execution method for specific case processing and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8006971A JPH09198257A (ja) 1996-01-19 1996-01-19 プログラム実行方法およびこの方法を用いたプログラム実行装置

Publications (1)

Publication Number Publication Date
JPH09198257A true JPH09198257A (ja) 1997-07-31

Family

ID=11653097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8006971A Pending JPH09198257A (ja) 1996-01-19 1996-01-19 プログラム実行方法およびこの方法を用いたプログラム実行装置

Country Status (2)

Country Link
US (1) US20020002668A1 (ja)
JP (1) JPH09198257A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090542A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd エラー処理方法及び情報処理装置
JP2009545079A (ja) * 2006-07-25 2009-12-17 クゥアルコム・インコーポレイテッド 効率的な割込み復帰アドレス保存メカニズム
JP2020089511A (ja) * 2018-12-04 2020-06-11 株式会社大一商会 遊技機
JP2020168065A (ja) * 2019-04-01 2020-10-15 株式会社大一商会 遊技機
JP2020168066A (ja) * 2019-04-01 2020-10-15 株式会社大一商会 遊技機

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543077B1 (en) * 2000-09-19 2009-06-02 Stragent, Llc Ternary content addressable memory embedded in a central processing unit
JP2002358060A (ja) * 2001-06-01 2002-12-13 Seiko Epson Corp 表示制御システム、表示サービス提供システム及び表示制御プログラム、並びに表示制御方法
JP6008745B2 (ja) * 2013-01-15 2016-10-19 ルネサスエレクトロニクス株式会社 データ処理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009545079A (ja) * 2006-07-25 2009-12-17 クゥアルコム・インコーポレイテッド 効率的な割込み復帰アドレス保存メカニズム
JP2008090542A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd エラー処理方法及び情報処理装置
JP2020089511A (ja) * 2018-12-04 2020-06-11 株式会社大一商会 遊技機
JP2020168065A (ja) * 2019-04-01 2020-10-15 株式会社大一商会 遊技機
JP2020168066A (ja) * 2019-04-01 2020-10-15 株式会社大一商会 遊技機

Also Published As

Publication number Publication date
US20020002668A1 (en) 2002-01-03

Similar Documents

Publication Publication Date Title
EP0464615B1 (en) Microcomputer equipped with DMA controller
US5701493A (en) Exception handling method and apparatus in data processing systems
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
EP0612012B1 (en) A pipeline computer with scoreboard
US9104425B2 (en) Apparatus and method for handling exception events
US5228131A (en) Data processor with selectively enabled and disabled branch prediction operation
US5349667A (en) Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests
US5471595A (en) Asynchronous interrupt inhibit method and apparatus for avoiding interrupt of an inseparable operation
US5148529A (en) Pipelined multi-stage data processor including an operand bypass mechanism
JPH0778734B2 (ja) プログラム・ステータス・ワードを変更するサブシステム及び方法
WO2012020237A1 (en) Alignment control
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US4847748A (en) Virtual memory arrangement data processing system with decoding and execution of prefetched instructions in parallel
CA2123448C (en) Blackout logic for dual execution unit processor
JPH09198257A (ja) プログラム実行方法およびこの方法を用いたプログラム実行装置
JPH1196002A (ja) データ処理装置
JP5215655B2 (ja) データ処理装置及びデータ処理装置におけるバスアクセス制御方法
JPH0384632A (ja) データ処理装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
US6751708B2 (en) Method for ensuring that a line is present in an instruction cache
JPH044630B2 (ja)
JP3127737B2 (ja) ディジタル信号処理装置
JPS6149695B2 (ja)
JPH06131250A (ja) データ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040413

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041005