JPH0115094B2 - - Google Patents

Info

Publication number
JPH0115094B2
JPH0115094B2 JP56046928A JP4692881A JPH0115094B2 JP H0115094 B2 JPH0115094 B2 JP H0115094B2 JP 56046928 A JP56046928 A JP 56046928A JP 4692881 A JP4692881 A JP 4692881A JP H0115094 B2 JPH0115094 B2 JP H0115094B2
Authority
JP
Japan
Prior art keywords
interrupt
level
microprogram
interrupts
mpc
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
Application number
JP56046928A
Other languages
English (en)
Other versions
JPS57161934A (en
Inventor
Seiichi Inamasu
Toshihiro Sakai
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4692881A priority Critical patent/JPS57161934A/ja
Publication of JPS57161934A publication Critical patent/JPS57161934A/ja
Publication of JPH0115094B2 publication Critical patent/JPH0115094B2/ja
Granted 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
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

【発明の詳細な説明】 本発明は、マイクロプログラム制御方式特に割
込み制御に関する。
割込みには種々の種類があるが、高いレベルで
割込んだものが処理に長時間を要すると、この間
低いレベルの割込みは待たされ、オーバランが発
生することがある。そこで余り長時間になる場合
は当該高レベルの割込みを低レベルに格下げして
待機中の中、低レベルの割込みを先に処理し、然
るのち格下げした高レベルの割込みを処理するこ
とが行なわれる。かゝる制御をマイクロプログラ
ムで実行しようとすると、走行中の処理に関する
ワークレジスタの内容をCS(コントロールスタツ
ク)などへ一旦セーブしなければならず、また待
機中の低レベル割込みがあり格下げした高レベル
割込みが該待機中低レベル割込みと同じレベルに
なる場合は後者もセーブしなければならず(しな
いと両者混合して破壊されてしまう)、プログラ
ム負荷が増大する。
本発明はかゝる点を改善しようとするものであ
り、マイクロプログラムへ外部より割込む手段、
各割込み要因毎の割込み先頭番地を修飾する割込
ベクトル、該割込ベクトルを要因別にマスクする
割込ベクトルマスク、マイクロプログラムが指示
してマイクロプログラム自身へ割込みを発生する
割込み要因フラグ、および前記の全ての割込みを
マスクする手段を有し、通常はマイクロプログラ
ムへ外部より割込む手段により、対応する割込み
ベクトルマスクで割込みベクトルを修飾して割込
み処理を行ない、割込みのレベルが高くかつ長時
間処理が必要な場合は該高レベルの割込みの処理
を中断し、その割込み情報を、処理待ちの下位割
込みレベルのレジスタ情報が退避しているレジス
タとは別のコントロールスタツクへセーブしかつ
前記割込み要因フラグをセツトし、然るのち他の
割込みの処理を行ない、終了後、前記割込み要因
フラグとセーブ情報によりマイクロプログラム自
身が割込みを発生し、中断した前記高レベルの割
込みの処理を続行し、最後に全ての割込みをマス
クして該中断、続行した割込についての割込み要
因フラグ及びセーブ情報をクリヤするようにし
て、プログラム負荷を増大することなく、マイク
ロプログラム自身で割込みレベルの優先順位を任
意に変えられるようにしたことを特徴としてい
る。次に図面を参照しながらこれを詳細に説明す
る。
第1図は既知の割込み制御態様を説明する図
で、レベル4は割込みが発生しなくて処理装置が
所謂アイドリングの状態にあるレベルを示す。時
点t1,t2,t3で順次高い優先レベルの外部割込み
A,B,Cが発生したとすると、図示のように優
先レベルの高いものが低いものの処理を中断して
優先処理され、割込みCの処理が終つて割込みB
の残部B′が処理され、それが終つて割込みAの
残部A′が処理される。処理所要時間が余り長く
ない場合は上記でよいが、例えば優先レベルの最
も高い割込みCの処理所要時間が長期間に亘るも
のであると、割込みB,Aの残部B′,A′の処理
が中々実行できず、オーバランが発生したりす
る。このような場合は適当な時点t4で割込みCの
優先レベルをレベル3へ落とす(走行レベルと割
込みレベルが同じならば割込みは発生しない)。
このようにすればオーバランを生じることなく割
込みB,Aの残部を実行することができる。チヤ
ネルの起動,終結などは、レベル自体は高いがオ
ーバランを生じる恐れは少ないので、レベルを下
げて他のものを先に処理しても問題は少ない。こ
の第1図では割込みCはt4でレベルを下げ、割込
みB,Aの残部を先に実行する。またこの図の例
では割込みAの残部A′の処理が終了しない時点t5
でレベル2の割込みDが発生しその処理に切換つ
たが割込みDの処理所要時間も長いのでこれはレ
ベル3へ落し、割込みAの残部A′の残部A″の処
理を済ませている。この処理終了時点t6ではレベ
ル4に復帰する。その後、レベルを落した割込み
の残部C′,D′の処理が行なわれる。
割込みレベルをレベル1からレベル2または3
へ下げると、以前割込んだレベル2,3の割込み
のレジスタ情報等は上記のレベルを下げた割込み
により破壊されてしまうのでこれを避けるべく、
該レジスタ情報なども同時にセーブし、処理再開
時にはそれをリストアする必要があり、マイクロ
プログラムの負担が大きい。
なお割込み中断に際して行なつた低優先レベル
への受け渡し、CSへの情報セーブ、割込みフラ
グセツトなどは残部の処理が終つた段階で解除さ
れなければならない。これは第1図では時点t7
t8で行なう。この解除処理は、該処理中に割込み
が発生してそれに処理が移行してはならないの
で、最高の優先レベルで行なうか(これをEで示
す)又は全割込みをマスクして(これをFで示
す)行なう。
本発明の割込み制御のハードウエアを第2図に
示す。10は割込み優先順位決定回路で、該回路
へはオアゲート群OGを通してマイクロプログラ
ムへの割込み(外部割込)MPIおよび割込み要
因フラグIFFのレジスタ12からの各種内部割込
み(これはマイクロプログラム自身が発生する)
が入力し、優先レベル及び現在の走行レベル等に
従つて実行すべき割込みを決定する。レジスタ1
2は割込み要因毎に複数個のフラグを持ち、任意
にマイクロプログラムが意味付けを行なうことが
出来る。書込まれると同時にその要因の割込みを
発生する。14は割込みベクトルIVのレジスタ
で、ベクトル情報が書き込まれる。MPCは現在
実行中のプログラムのアドレスを出力するマイク
ロプログラムカウンタ、MPC′は割込毎に実行さ
れるべきプログラムのアドレスを収容するレジス
タ群である。マイクロプログラムのアドレスの上
位ビツト群はIA(インストラクシヨンアドレス)
で構成され、下位ビツト群が切換えられることに
より被実行割込み(内部又は外部割込み)の切換
えが行なわれる。MPXがこの切換えを行なうマ
ルチプレクサで、MPC′の下位ビツト群又はレジ
スタ14からのベクトル情報をMPCの下位ビツ
ト群として取込む。MPC′の下位ビツト部は常に
ベクトルテーブルの先頭を指しここにはマイクロ
プログラム自身が発生する内部割込みの行頭アド
レスが書き込まれている。これらの上,下位ビツ
ト群は例えばそれぞれ8ビツトからなる。16は
割込みベクトルマスクIVMを記憶するレジスタ
で、割込みベクトルIVの使用、不使用を決定す
る。即ち、レジスタ14には割込みベクトル(ベ
クトル情報)が蓄えられているが、それがMPC
下位ビツト部へ送られる。送られないは、アンド
ゲート群AGの出力があるか、ないかにより決定
され、該AGの出力は外部割込みMPIおよびレジ
スタ16の内容と回路10により受付けられた割
込み(iNT1,iNT2,iNT3)のいずれかにより
定まる。従つて上記3つの条件が成立すると、レ
ジスタ14の内容がMPCの下位に送られ、ベク
トルテーブルを参照し、外部割込みが受付けられ
たことを意味する。iNT1,iNT2,iNT3は、
割込み優先順位により決定されたレベル情報で、
これによりレジスタ14、MPC′及びMPC″の選
択を行なう。
割込み優先順位決定回路10はMPIはIFFかを
問わず単に優先レベルの高低により被実行割込み
を決定するから、同じ優先レベルのIFFおよび
MPIがあるとどちらを先に実行すべきか分らな
くなる。IVMはこの切り分けを行なうもので、
割込みベクトルマスクがなければ(これはレジス
タ16の当該ビツトを“1”にすることにより指
示される)外部割込みMPIが優先処理され、マ
スクがあれば(前記ビツトが“0”であれば)内
部割込みが処理されることになる。
割込みが行なわれるときMPCの下位ビツト部
へは当該割込みのベクトル情報が入力するが、そ
れに先立ち現在実行中のプログラムのアドレスす
なわちMPCの内容をMPC″に退避し、処理中断
後の処理再開が可能なようにする。以上の操作の
為MPC′及びMPC″は割込みレベル毎に設ける必
要がある。
第3図はMPC′,MPX、およびレジスタ14
を構成する割込みベクトルテーブルを示す。この
テーブルのアドレス(IA+0)はMPC′に相当
し、マイクロプログラム自身が発生する割込み
(内部割込み)の先頭番地が書込まれる。内部割
込みが発生すると(IA+0)がアクセスされ、
そこに書込まれている命令(ジヤンプ命令など)
が読出され、それにより内部割込みの処理ルーチ
ングがアクセスされ、実行される。
割込みベクトルテーブルの他の領域は外部割込
みの先頭命令が書込まれる。
また第2図で、18は全割込みマスクレジスタ
(フリツプフロツプ)IMであつて、該IMに“0”
を書込むと、アンドゲートGは閉じて割込みフラ
グIFを発生しなくなる。これは全割込みをマス
クしたことになる。
第4図に示した割込み制御を例にして第2図の
動作を説明すると、外部割込みAが発生し、その
ベクトル情報がレジスタ14に書込まれ、かつレ
ジスタ16,18のIVM,IMはマスクすること
を指示していないとすると、割込み優先順位決定
回路10は当該割込みを受けてアンドゲートGよ
り割込みフラグIFを上げる。またMPXはレジス
タ14の出力をMPCの下位ビツト部に書込む。
これにより上記外部割込みの実行が開始され、そ
のプログラムステツプが1つ終わる毎にMPCは
+1されてゆく。かゝる状態で外部割込みBが入
るとMPCの内容をMPC″へ退避(のちに割込み
Bが終了すると、MPC″の内容をMPCに戻すこ
とで割込みAが再開する)し、MPC′の上位+ベ
クトル情報をMPCへ移す。これにより割込みB
の実行が開始される。
かゝる状態で割込みCが発生すると同様にして
MPCの内容退避、先頭アドレスの書込み、割込
みCの実行が行なわれる。この処理時間が長くな
るときマイクロプログラムは割込みCのレベルを
下げ、代つて割込みA,Bを実行するが、これは
レジスタ12のレベル3の割込要因へフラグを立
て、割込み再開情報をCS等へ退避し、割込みC
の再開準備終了と同時に割込Cで退避した割込B
の処理情報がMPC″よりMPCへ移され、該割込
みBの残部B′の実行が開始される。残部B′が処
理済みとなると割込みBは消去され、同時に割込
Bで退避した割込Aの処理情報をMPC″をMPC
へ移し割込みAが有効になつてその残部A′の処
理が行なわれる。こうして本方式では割込みCの
処理中断に当つてはそのレジスタ情報をCSへセ
ーブし、処理待ちの下位割込みレベルのレジスタ
情報が退避しているレジスタMPC″へはセーブし
ないので、従来方式のように該下位レベルの割込
みのレジスタ情報をCSへセーブする必要はなく、
プログラムの負担が軽くなる。
割込みB,Aが処理済みとなると外部割込みは
なくなつたことになり、今度は割込みCの残部
C′が内部割込みとして受付けられる。即ち
MPC′の内容がMPCへ移され、退避した割込み再
開情報をリストアし、格下げされて処理中断とな
つた割込みCの残部処理が行なわれる。この処理
末期において、マスタ18により全割込みを禁
止、割込みCでの要因フラグ及びCS上の再開情
報をマイクロプログラムがクリアすることにより
レベル3での割込Cが完了する。更に説明を加え
ると、マイクロプログラムへ割込む要因として
は、プロセツサの外部から割込まれる要因(第2
図のMPI)とプログラム自身が命令によりセツ
トする割込み要因フラグ12の2種類が存在す
る。又、そのどちらからの割込みを優先するかを
指定するために、割込みベクトルマスク16が存
在する。
例を2つ上げる。1つの例は、あるレベルの外
部からの割込み要因が発生して、その時そのレベ
ルのベクトルマスクが“1”(外部要因が優先す
る)の時、である。このとき外部要因MPIはオ
アゲートOGに入り無条件に割込み優先順位回路
10に入力される。この時プロセツサ自身の走行
レベルと割込み要因の高低により割込みが可能で
あると、割込みレベル信号iNToが出力される。
その時該当する割込みベクトルマスクが“1”で
あると、そのレベルのアンドゲートAGが有効に
なり、割込みベクトルがレジスタ14にセツトさ
れ、MPXも該レジスタ14側を選択する。その
結果、セツトされた割込みベクトルとMPC′の上
位ビツトが新たにMPCにセツトされ、所定の処
理ルーチンへブランチする。
2つ目の例は、あるレベルの割込み要因フラグ
と外部割込みMPIが同時に発生して、その時に
そのレベルのベクトルマスクが“0”(割込み要
因フラグ優先)の時である。MPI又はIFFの出力
はオアゲートOGに入り、そのまま割込み優先順
位回路10に入り、前例のロジツクでiNTo信号
が出力される。ただしこの時、このレベルのベク
トルマスクが“0”のため、IVにセツトされず、
MPXもMPC′の方を選択する。その結果新たに
MPCのセツトされる情報はMPC′の情報そのもの
で、従つて下位ビツトは全て“0”のため、内部
割込み要因(マイクロプログラム自身からの割込
み要因)処理ルーチンへブランチすることにな
る。
以上の説明から明らかなように本発明によれ
ば、多数の種々のレベルの外部割込みを受けて優
先順にそれを処理し、処理未了があれば高レベル
のものの処理が終つたときそれを処理し、高レベ
ルでも処理所要時間の長いものは処理を中断して
低レベルのものの処理を先に行ない、その後に該
高レベルの割込みの処理を行なうことができ、し
かも該操作を極めて簡単に、つまりマイクロプロ
グラムによるレジスタ情報等のセーブ、リストア
量が可及的に少なくて済みプログラムへの負担を
少なくして実行できる利点が得られる。
【図面の簡単な説明】
第1図は従来方式の説明図、第2図は本発明の
実施例を示すブロツク図、第3図は第2図の一部
の詳細を示すブロツク図、第4図は割込み制御の
説明図である。 図面でMPIはマイクロプログラムへの割込み、
14は割込みベクトルを収容するレジスタ、16
は割込みベクトルマスクを収容するレジスタ、1
2は割込み要因フラグを収容するレジスタ、18
は全割込みのマスク、MPCはマイクロプログラ
ムカウンタである。

Claims (1)

  1. 【特許請求の範囲】 1 マイクロプログラムへ外部より割込む手段、
    各割込み要因毎の割込み先頭番地を修飾する割込
    ベクトル、該割込ベクトルを要因別にマスクする
    割込ベクトルマスク、マイクロプログラムが指示
    してマイクロプログラム自身へ割込みを発生する
    割込み要因フラグ、および前記の全ての割込みを
    マスクする手段を有し、 通常はマイクロプログラムへ外部より割込む手
    段により、対応する割込みベクトルマスクで割込
    みベクトルを修飾して割込み処理を行ない、 割込みのレベルが高くかつ長時間処理が必要な
    場合は該高レベルの割込みの処理を中断し、その
    割込み情報を、処理待ちの下位割込みレベルのレ
    ジスタ情報が退避しているレジスタとは別のコン
    トロールスタツクへセーブしかつ前記割込み要因
    フラグをセツトし、然るのち他の割込みの処理を
    行ない、終了後、前記割込み要因フラグとセーブ
    情報によりマイクロプログラム自身が割込みを発
    生し、中断した前記高レベルの割込みの処理を続
    行し、最後に全ての割込みをマスクして該中断、
    続行した割込についての割込み要因フラグ及びセ
    ーブ情報をクリヤすることを特徴としたマイクロ
    プログラム制御方式。
JP4692881A 1981-03-30 1981-03-30 Microprogram controlling system Granted JPS57161934A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4692881A JPS57161934A (en) 1981-03-30 1981-03-30 Microprogram controlling system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4692881A JPS57161934A (en) 1981-03-30 1981-03-30 Microprogram controlling system

Publications (2)

Publication Number Publication Date
JPS57161934A JPS57161934A (en) 1982-10-05
JPH0115094B2 true JPH0115094B2 (ja) 1989-03-15

Family

ID=12760988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4692881A Granted JPS57161934A (en) 1981-03-30 1981-03-30 Microprogram controlling system

Country Status (1)

Country Link
JP (1) JPS57161934A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59103150A (ja) * 1982-12-06 1984-06-14 Hitachi Ltd マイクロプログラム制御方式
JPS61166631A (ja) * 1985-01-18 1986-07-28 Oki Electric Ind Co Ltd マイクロプログラム制御処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5063856A (ja) * 1973-10-08 1975-05-30
JPS5189362A (ja) * 1975-02-03 1976-08-05
JPS5559555A (en) * 1978-10-27 1980-05-06 Nec Corp High-speed level switching device
JPS5576448A (en) * 1978-12-05 1980-06-09 Nippon Telegr & Teleph Corp <Ntt> Multi-group register control system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5063856A (ja) * 1973-10-08 1975-05-30
JPS5189362A (ja) * 1975-02-03 1976-08-05
JPS5559555A (en) * 1978-10-27 1980-05-06 Nec Corp High-speed level switching device
JPS5576448A (en) * 1978-12-05 1980-06-09 Nippon Telegr & Teleph Corp <Ntt> Multi-group register control system

Also Published As

Publication number Publication date
JPS57161934A (en) 1982-10-05

Similar Documents

Publication Publication Date Title
US5161226A (en) Microprocessor inverse processor state usage
JP3771273B2 (ja) 述語レジスタ・セットをレストアする方法および装置
JPS6239780B2 (ja)
JPH0430053B2 (ja)
JPH077379B2 (ja) 多重処理システムの割込み選択方式
JPH05250305A (ja) データ転送制御方式
JPH0115094B2 (ja)
US6535943B1 (en) Information processing device enabling floating interrupt to be pending and a method executing an interrupt condition change instruction
JP2643931B2 (ja) 情報処理装置
JP3055139B2 (ja) マイクロプログラム制御方式
JPS59144955A (ja) 情報処理装置
JPS6159539A (ja) サブプロセツサのレジスタ退避/復帰方式
JP2001075778A (ja) 演算装置および方法
JPH0198023A (ja) 条件付きサブルーチン呼出し方式
JPS617940A (ja) マイクロプログラム制御装置
JPS61166631A (ja) マイクロプログラム制御処理方法
JPS62217326A (ja) 複数os格納切替可能コンピユ−タ
JPS59200356A (ja) プログラムトレ−ス方式
JPS61133440A (ja) デ−タ処理装置
JPS6149695B2 (ja)
JPH09106344A (ja) パイプライン処理装置
JPS61143850A (ja) 処理装置
JPS59103150A (ja) マイクロプログラム制御方式
JPH08212083A (ja) 割り込み処理装置
JPH0417530B2 (ja)