JPH02173828A - Interruption process system - Google Patents

Interruption process system

Info

Publication number
JPH02173828A
JPH02173828A JP32803488A JP32803488A JPH02173828A JP H02173828 A JPH02173828 A JP H02173828A JP 32803488 A JP32803488 A JP 32803488A JP 32803488 A JP32803488 A JP 32803488A JP H02173828 A JPH02173828 A JP H02173828A
Authority
JP
Japan
Prior art keywords
resident
level
context
register
interrupt
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
JP32803488A
Other languages
Japanese (ja)
Inventor
Tetsuya Fujita
哲也 藤田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP32803488A priority Critical patent/JPH02173828A/en
Publication of JPH02173828A publication Critical patent/JPH02173828A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To reduce the saving/restoring overhead of a context in an interruption process by holding the context in a processor against a part of the interruption level defined by the processor. CONSTITUTION:An instruction executing unit 1 is connected to plural context register files 2 via an internal bus 3. An interruption arbitrating circuit 5 detects the level switching timing based on the internal and external interruption requests with the output of a current running level register 8 used as an input. Then the circuit 5 outputs a new program running level to be changed and an interruption instruction via a new program running level transmission signal line 6 and an interruption grant signal line 7. Then a context is held in the processor to the limited specific interruption levels. Thus it is possible to reduce the overhead which saves and restores a context showing the running state of a program at occurrence of an interruption.

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明はプロセッサの割込み処理方式に関し、特に割込
み発生時にプログラムの走行状態を表すコンテクストを
セーブ/リストアするオーバ・ヘッドを少なくするため
の方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a processor interrupt processing method, and more particularly to a method for reducing the overhead of saving/restoring the context representing the running state of a program when an interrupt occurs. .

[従来の技術] 従来の割込み処理方式では、割込みが発生しプログラム
走行レベルが変わるときに、まずその時のプロセッサの
レジスタの状B(コンテクスト)をその時のプログラム
走行レベルに対応したメモリ領域にセーブして、次に新
しい走行レベルに対応したコンテクストをメモリからリ
ストアしてくる。プロセッサのレジスタの数が増すにし
たがって、このスイッチ時にプロセッサ、メモリ間で転
送される情報量が多くなり、割込み処理のオーバ・ヘッ
ドが大きくなる。
[Prior Art] In conventional interrupt processing methods, when an interrupt occurs and the program running level changes, the state B (context) of the register of the processor at that time is first saved in a memory area corresponding to the program running level at that time. Then, the context corresponding to the new driving level is restored from memory. As the number of registers in a processor increases, the amount of information transferred between the processor and memory during this switch increases, and the overhead of interrupt processing increases.

又、割込み処理の性能を上げるために、割込みレベルの
全てに対してコンテクストを格納できるレジスタ・セッ
トを設けたプロセッサがあるが、プロセッサの定義する
割込みレベルが例えば64だと通常のプロセッサの64
倍のハードウェア量をレジスタに割かなければならない
ので、ハードウェア・コストが大きくなってしまう。一
般にプロセッサでは、レジスタ部のハードウェア量は制
御部のそれよりもずっと多く、膨大な数のレジスタを持
ったプロセッサでは、チップの数が多くなってコンパク
トな実装が困難となる。
Also, in order to improve the performance of interrupt processing, some processors are equipped with a register set that can store contexts for all interrupt levels, but if the interrupt level defined by the processor is, for example, 64, the normal processor's 64
Since twice the amount of hardware must be allocated to registers, the hardware cost increases. Generally, in a processor, the amount of hardware in the register section is much larger than that in the control section, and in a processor with a huge number of registers, the number of chips increases, making it difficult to implement compactly.

[発明が解決しようとする課題] 上述した従来の割込み処理方式では、前者の方式では割
込み時のオーバーヘッドが大きくなり、通信制御など高
いリアルタイム応答性が要求される分野では性能が問題
になってくる。この様なアプリケーションではその基本
的な制御に割込みのレベル制御を陽に利用するので、そ
の時のコンテクストのセーブ/リストアにかかる時間に
対して厳しい性能が要求される。一方、後者の方式では
、そのハードウェア量が大きくなり、価格やサイズの点
で競争力が劣ってしまう。
[Problem to be solved by the invention] In the conventional interrupt processing method described above, the former method has a large overhead at the time of interrupt, which poses a performance problem in fields that require high real-time responsiveness such as communication control. . Since such applications explicitly utilize interrupt level control for their basic control, strict performance is required regarding the time required to save/restore the context at that time. On the other hand, the latter method requires a large amount of hardware, making it less competitive in terms of price and size.

[課題を解決するための手段] 上述した問題点を解決するために、本発明の目的は、特
定の限られた割込みレベルに対してはプロセッサ内でそ
のコンテクストを保持することによって、プログラム走
行レベルのスイッチを高速に処理することが出来る割込
み処理方式を提供することにある。
[Means for Solving the Problems] In order to solve the above-mentioned problems, an object of the present invention is to maintain the context within the processor for a specific limited interrupt level, thereby reducing the program execution level. An object of the present invention is to provide an interrupt processing method that can process switches at high speed.

即ち、本発明の割込み処理方式は、汎用レジスタ、プロ
グラム・カウンタ、ステータス・レジスタ等のプログラ
ムの走行状態を記録するコンテクストを複数個保持でき
るレジスタ・ファイルと命令実行ユニットとを含み、上
記命令実行ユニットのデコード指示を契機に、保留中の
最も優先順位の高い割込みレベルが、現在走行中のプロ
グラムの走行レベルより優先順位が高い時に、割込み許
可信号と新しいプログラム走行レベルとを出力する割込
み調停回路を有するプロセッサに於て、特殊なソフトウ
ェア命令で値が設定可能で、各エントリがハードウェア
の定義している割込みレベルに対応していて、その割込
みレベルで走行するプログラムのコンテクストが上S己
しジスタ・ファイルに常駐するか否かを示している常駐
フラグと、該常駐フラグで常駐すると記されたレベルに
対してはそのコンテクストを上記レジスタ・ファイルの
どのフレームに格納するかを表すフレーム番号が、常駐
フラグで非常駐と記されたレベルに対してはそのコンテ
クストを格納しているメモリ領域を指すアドレスが登録
されているコンテクスト・テーブルと、 現在走行中のプログラムの走行レベルを保持し、その出
力を上記割込み調停回路及び前記命令実行ユニットに提
供し、上記割込み調停回路の出力する割込み許可信号の
指示でその割込み調停回路の出力するプログラム走行レ
ベルを格納するカレント走行レベル・レジスタと、 上記割込み調停回路の出力するプログラム走行レベルと
上記コンテクスト・テーブルの出力を入力として、上記
コンテクスト・テーブルから走行レベルに対応したエン
トリを取り出し、エントリの常駐フラグとフレーム番号
/アドレス部を出力し、さらに常駐フラグが常駐の時は
そのエントリのフレーム番号を、非常駐の時はディフォ
ルトとして“O“をフレーム番号として出力する常駐チ
ェック回路と、 上記常駐チェック回路の出力するフレーム番号を保持し
、現在走行中のプログラムが参照しているフレーム番号
としてその出力を上記レジスタ・ファイルに提供するフ
レーム番号レジスタと、上記常駐チェック回路の出力す
る常駐フラグを保持する常駐フラグ・レジスタと、 上記常駐チェック回路の出力するフレーム番号/アドレ
ス部を保持し、コンテクストの格納メモリアドレスとし
てその内容を前記命令実行ユニットに出力するコンテク
スト・アドレス・レジスタと、 上記常駐チェック回路の常駐フラグをこれから移ろうと
する新しいプログラム走行レベルの常駐7/非常駐情報
として入力し、上記常駐フラグ・レジスタをいままで走
っていたプログラム走行レベルの常駐・非常駐情報とし
て入力して、プログラム走行レベルの変更に際してコン
テクストのセーブ/リストアを前記命令実行ユニットに
対して指示するセーブ/リストア指示回路とから構成さ
れている。
That is, the interrupt processing method of the present invention includes a register file capable of holding a plurality of contexts for recording the running state of a program such as a general-purpose register, a program counter, and a status register, and an instruction execution unit. An interrupt arbitration circuit is provided which outputs an interrupt permission signal and a new program run level when the highest pending interrupt level has a higher priority than the run level of the currently running program. In processors that have a value that can be set by a special software instruction, each entry corresponds to an interrupt level defined by the hardware, and the context of a program running at that interrupt level is - A resident flag indicating whether or not to reside in the file, and a frame number indicating in which frame of the register file the context is stored for the level marked as resident in the resident flag, For levels marked as non-resident in the resident flag, a context table containing the address pointing to the memory area storing the context and the running level of the currently running program are maintained, and the output is stored. a current running level register that is provided to the interrupt arbitration circuit and the instruction execution unit and stores a program execution level output by the interrupt arbitration circuit in accordance with an interrupt enable signal output from the interrupt arbitration circuit; Inputs the program running level outputted by the program running level and the output of the above context table, extracts the entry corresponding to the running level from the above context table, outputs the resident flag and frame number/address part of the entry, and then selects the resident flag as the resident flag. When the entry is non-resident, the resident check circuit outputs "O" as the frame number by default, and the frame number output by the resident check circuit is retained and referenced by the currently running program. a frame number register that provides the output as a frame number to the register file; a resident flag register that holds the resident flag output from the resident check circuit; and a frame number/address that the resident check circuit outputs. a context address register that holds the contents of the context and outputs its contents to the instruction execution unit as a context storage memory address; and resident 7/non-resident information of the new program running level to which the resident flag of the resident check circuit is to be transferred. and input the above resident flag register as the resident/nonresident information of the program running level that has been running until now, and instruct the instruction execution unit to save/restore the context when changing the program running level. /restore instruction circuit.

[実施例コ 次に、本発明について図面を参照して説明する。[Example code] Next, the present invention will be explained with reference to the drawings.

第1図は本発明の一実施例による割込み処理方式の構成
を示すブロック図である。
FIG. 1 is a block diagram showing the configuration of an interrupt processing method according to an embodiment of the present invention.

命令実行ユニット1は、複数のコンテクスト・レジスタ
・ファイル2と内部バス3で接続されている。レジスタ
番号指示伝達信号線4は、命令実行ユニット1からコン
テクスト・レジスタ・ファイル2に対してレジスタ番号
を示す。割込み調停回路5は、カレント走行レベル・レ
ジスタ8の出力を入力として、プロセッサ内、外の割込
み要求を基にレベル・スイッチを行うべきタイミングを
検出して、変更する新しいプログラム走行レベル及び割
込み指示を新プログラム走行レベル伝達信号線6と割込
み許可信号線7で出力する。カレント走行レベル信号1
9は、現在のプログラム走行レベルを命令実行ユニット
1と割込み調停回路5に伝える。
The instruction execution unit 1 is connected to a plurality of context register files 2 via an internal bus 3. A register number indication transmission signal line 4 indicates a register number from the instruction execution unit 1 to the context register file 2. The interrupt arbitration circuit 5 receives the output of the current running level register 8 as an input, detects the timing at which a level switch should be performed based on interrupt requests inside and outside the processor, and issues a new program running level to be changed and an interrupt instruction. It is output via the new program running level transmission signal line 6 and the interrupt permission signal line 7. Current running level signal 1
9 transmits the current program running level to the instruction execution unit 1 and the interrupt arbitration circuit 5.

コンテクスト・テーブル1oは、全ての割込みレベルに
対して常駐/非常駐の区別と、対応するレジスタ・ファ
イルのフレーム番号またはコンテクスト格納領域のメモ
リアドレスを格納している。
The context table 1o stores resident/nonresident distinctions for all interrupt levels, and the frame number of the corresponding register file or memory address of the context storage area.

例えば、レジスタ・ファイル2が、第2図に示される様
に、4個のフレーム成り、割込みレベルが0〜63の6
4レベルにあるとすると、コンテクスト・テーブル10
は、第3図に示される様になる。第3図において、31
は常駐フラグを表し、32はコンテクスト格納アドレス
またはフレーム番号を表す。
For example, as shown in FIG. 2, register file 2 consists of 4 frames and interrupt levels 0 to 63.
Assuming it is at level 4, context table 10
becomes as shown in FIG. In Figure 3, 31
represents a resident flag, and 32 represents a context storage address or frame number.

第1図に戻って、11はテーブル出力信号線で、12は
常駐チェック回路を表す。常駐チェック回路12は、新
プログラム走行レベル伝達信号線6のレベル番号をイン
デックスとしてテーブル出力信号線11のテーブルをひ
き、該当するエントリのフレーム番号/コンテクスト格
納アドレスと常駐フラグを、それぞれコンテクスト格納
アドレス出力信号線20と常駐フラグ指示伝達信号線1
4で出力する。さらに、常駐チェック回路12、テーブ
ルから取り出されたエントリの常駐フラグの値に従い、
フラグが常駐の時はエントリのフレーム番号を、非常駐
の時はディフォルトとして“0゜を、フレーム番号出力
信号線13でフレーム番号レジスタ15に出力する。フ
レーム番号指示伝達信号線16のフレーム番号とレジス
タ番号指示伝達信号線4のレジスタ番号の組でレジスタ
・ファイル2のフレームとその中のレジスタがリード、
ライトの対象として指定される。常駐フラグ・レジスタ
17は、常駐フラグ指示伝達信号線14の内容を格納す
る。セーブ/リストア指示回路18は、プログラム走行
レベルが変更されるときに、常駐フラグ指示伝達信号線
14と常駐フラグ・レジスタ17を基にコンテクストの
セーブ、リストアの指示を命令実行ユニット1に対して
セーブ/リストア指示伝達信号線19を介して伝える。
Returning to FIG. 1, 11 represents a table output signal line, and 12 represents a resident check circuit. The resident check circuit 12 uses the level number of the new program running level transmission signal line 6 as an index to draw a table on the table output signal line 11, and outputs the frame number/context storage address and resident flag of the corresponding entry as the context storage address, respectively. Signal line 20 and resident flag instruction transmission signal line 1
Output with 4. Furthermore, the resident check circuit 12, according to the value of the resident flag of the entry taken out from the table,
When the flag is resident, the frame number of the entry is output to the frame number register 15 via the frame number output signal line 13, and when the flag is non-resident, it is output to the frame number register 15 by default.The frame number and register are output from the frame number instruction transmission signal line 16. The frame of register file 2 and the registers in it are read by the set of register numbers on number instruction transmission signal line 4.
Specified as a light target. The resident flag register 17 stores the contents of the resident flag instruction transmission signal line 14. The save/restore instruction circuit 18 instructs the instruction execution unit 1 to save and restore the context based on the resident flag instruction transmission signal line 14 and the resident flag register 17 when the program running level is changed. /restore instruction transmission signal line 19.

コンテクスト格納アドレスレジスタ21は、格納アドレ
ス伝達信号線22で自レジスタの内容を命令実行ユニッ
ト1に伝達する。
The context storage address register 21 transmits the contents of its own register to the instruction execution unit 1 via the storage address transmission signal line 22.

今、仮にレジスタ・ファイル2が、第2図に示される様
に、4個のフレームから成っているとする。この4個の
フレームそれぞれをフレーム0゜1.2.3と呼ぶ。そ
してコンテクストテーブル10は、第3図に示される様
に、常駐フラグ31とフレーム番号/格納アドレス部3
2から構成されている。そして、レベル61,62.6
3は常駐として定義され、常駐フラグ31にはそれぞれ
フレーム1,2.3が割り当てられていて、それ以外の
レベルは非常駐で、対応するコンテクストが格納されて
いるアドレスが、エントリのフレーム番号/格納アドレ
ス部32に登録されている。
Assume now that register file 2 consists of four frames as shown in FIG. Each of these four frames is called frame 0°1.2.3. As shown in FIG. 3, the context table 10 includes a resident flag 31 and a frame number/storage address field 3.
It is composed of 2. And level 61, 62.6
3 is defined as resident, and frames 1, 2, and 3 are assigned to the resident flag 31, respectively, and the other levels are nonresident, and the address where the corresponding context is stored is the frame number/storage of the entry. It is registered in the address section 32.

このテーブルの内容は、特殊なソフトウェア命令で更新
できる。
The contents of this table can be updated with special software instructions.

さて、レベル63でユーザプログラムが実行中と仮定す
ると、レジスタ8は“63′でレジスタ15は“3″を
指定している。又、制御フリップフロップ17は常駐の
意味の“1“を示している。
Now, assuming that the user program is being executed at level 63, register 8 specifies "63'", register 15 specifies "3", and control flip-flop 17 indicates "1" meaning resident. There is.

こノ時、命令実行ユニット1はフレーム3のレジスタの
みを参照できる。
At this time, instruction execution unit 1 can refer only to the register of frame 3.

この状態で、仮にレベル62の割込みがあったとする。In this state, suppose that an interrupt of level 62 occurs.

現在の走行レベルも新しい割込みレベルも常駐なので、
この時のレベル中スイッチではコンテクストのセーブ、
リストアは友に必要ない。
Both the current running level and the new interrupt level are resident, so
At this time, switch during the level to save the context,
I don't need a friend to restore.

従って、指示回路18はセーブ、リストアを指示せず、
レジスタ8の走行レベルは“622となり、レジスタ1
5のフレーム番号は“2mとなる。この時、割込み処理
ルーチンはセーブ、リストアすることなく、それ以降自
動的に命令実行ユニット1はフレーム2のレジスタを参
照する。この様に、常駐レベル間のレベル・スイッチで
はオーバ・ヘッドがゼロとなる。
Therefore, the instruction circuit 18 does not instruct saving or restoring,
The running level of register 8 is “622”, and register 1
The frame number of frame 5 becomes "2m. At this time, the interrupt processing routine does not save or restore, and from then on, instruction execution unit 1 automatically refers to the register of frame 2. In this way, the instruction execution unit 1 automatically refers to the register of frame 2. Level switches have zero overhead.

次に、レベル10の割り込みがあったとする。Next, assume that there is an interrupt of level 10.

レベル10は、第3図に示す通りに非常駐である。Level 10 is non-resident as shown in FIG.

この時は、カレント走行レベル信号線9の走行レベルは
“10“となり、レジスタ15のフレーム番号は“0″
となる。そして指示回路18はレベル10のコンテクス
トをメモリ領域からリストアしてくることを命令実行ユ
ニット1に指示する。
At this time, the running level of the current running level signal line 9 is "10", and the frame number of the register 15 is "0".
becomes. The instruction circuit 18 then instructs the instruction execution unit 1 to restore the level 10 context from the memory area.

アドレスレジスタ21のコンテクスト領域アドレスに従
い、メモリから取り出されたコンテクストは、フレーム
0にロードされる。レベル62は常駐なので、レベル・
スイッチ前のプロセッサの状態はメモリにセーブする必
要はない。この場合でも、通常のプロセッサに比べれば
半分のオーバ・ヘッドでレベルの切り替えが行われる。
According to the context area address of address register 21, the context retrieved from memory is loaded into frame 0. Level 62 is resident, so level
The state of the processor before the switch does not need to be saved in memory. Even in this case, level switching is performed with half the overhead compared to a normal processor.

セーブ/リストア指示回路18の動作は、以上説明した
様に、レベル・スイッチ前後のプログラム走行レベルで
、第4図に示される様な動作指示を命令実行ユニット1
に対して行う。
As explained above, the operation of the save/restore instruction circuit 18 is such that the operation instructions as shown in FIG. 4 are sent to the instruction execution unit 1 at the program running level before and after the level switch.
Performed against.

[発明の効果] 以上説明したように、本発明はプロセッサで定義してい
る割込みレベルの一部に対してはそのコンテクストをプ
ロセッサ内部に保持することによって、ハードウェアの
増加を抑えながら割込み処理時のコンテクストのセーブ
/リストアのす−バ・ヘッドを小さくする効果がある。
[Effects of the Invention] As explained above, the present invention maintains the context within the processor for some of the interrupt levels defined in the processor, thereby reducing the amount of hardware required during interrupt processing. This has the effect of reducing the overall cost of saving/restoring contexts.

又、本発明ではプロセッサに常駐させる割込みレベルを
特殊なソウトウエア命令で指定できるので、アプリケジ
ョンに応して頻繁に使うレベルを常駐に割り当てていく
ことで、レジスタ・ファイルのフレームの有効活用を計
ることが出来る。一般に、与えられた全ての割込みレベ
ルを使うアブリケーンヨン・プログラムは希で、本発明
のように、ある限られたレベルに対してのみ常駐をサポ
ートすることは合理的と思われる。特に常駐のレベル間
でのコンテクスト・スイッチではセーブ/リストアは不
飲なので、きわめて高速にその割込み処理を行うことが
出来る。
Furthermore, in the present invention, the interrupt level to be made resident in the processor can be specified by a special software instruction, so by assigning frequently used levels to resident according to the application, effective use of register file frames can be achieved. I can do it. In general, it is rare for a program to use all given interrupt levels, and it seems reasonable to support residency only for a limited number of levels, as in the present invention. In particular, the context switch between resident levels does not require save/restore, so the interrupt processing can be performed extremely quickly.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例による割込み処理方式の構成
を示すブロック図、第2図は複数コンテクスト・レジス
タψファイルの一構成例を示す図、第3図はコンテクス
ト・テーブルの一例を示す図、第4図はセーブ/リスト
ア指示回路の動作を現在のプログラム走行レベルと新し
いプログラム走行レベルとの組合せで示した図である。 1・・・命令実行ユニット、2・・・複数コンテクスト
・レジスタ・ファイル、3・・・内部バス、4・・・レ
ジスタ番号指示伝達信号線、5・・・割込み調停回路、
6・・・新プログラム走行レベル伝達信号線、7・・・
割込み許可信号線、8・・・カレント走行レベル・レジ
スタ、9・・・カレント走行レベル信号線、10・・・
コンテクスト・テーブル、11・・・テーブル出力信号
線、12・・・常駐チェック回路、13・・・フレーム
番号出力信号線、14・・・常駐フラグ指示伝達信号線
、15・・・フレーム番号レジスタ、16・・・フレー
ム番号指示伝達信号線、17・・・常駐フラグ・レジス
タ、18・・・セーブ/リストア指示回路、19・・・
セーブ/リストア指示伝達信号線、20・・・コンテク
スト格納アドレス出力信号線、21・・・コンテクスト
格納アドレスレジスタ、22・・・格納アドレス伝達信
号線、31・・・常駐フラグ、32・・・フレーム番号
/格納アドレス部。 第1図 第2図 第3図
FIG. 1 is a block diagram showing the configuration of an interrupt processing method according to an embodiment of the present invention, FIG. 2 is a diagram showing an example of the configuration of a multiple context register ψ file, and FIG. 3 is an example of a context table. 4 are diagrams showing the operation of the save/restore instruction circuit in combination with the current program running level and the new program running level. DESCRIPTION OF SYMBOLS 1... Instruction execution unit, 2... Multiple context register file, 3... Internal bus, 4... Register number instruction transmission signal line, 5... Interrupt arbitration circuit,
6...New program running level transmission signal line, 7...
Interrupt permission signal line, 8... Current running level register, 9... Current running level signal line, 10...
Context table, 11... Table output signal line, 12... Resident check circuit, 13... Frame number output signal line, 14... Resident flag instruction transmission signal line, 15... Frame number register, 16... Frame number instruction transmission signal line, 17... Resident flag register, 18... Save/restore instruction circuit, 19...
Save/restore instruction transmission signal line, 20: Context storage address output signal line, 21: Context storage address register, 22: Storage address transmission signal line, 31: Resident flag, 32: Frame Number/storage address part. Figure 1 Figure 2 Figure 3

Claims (1)

【特許請求の範囲】 1、汎用レジスタ、プログラム・カウンタ、ステータス
・レジスタ等のプログラムの走行状態を記録するコンテ
クストを複数個保持できるレジスタ・ファイルと命令実
行ユニットとを含み、上記命令実行ユニットのデコード
指示を契機に、保留中の最も優先順位の高い割込みレベ
ルが、現在走行中のプログラムの走行レベルより優先順
位が高い時に、割込み許可信号と新しいプログラム走行
レベルとを出力する割込み調停回路を有するプロセッサ
に於て、 特殊なソフトウェア命令で値が設定可能で、各エントリ
がハードウェアの定義している割込みレベルに対応して
いて、その割込みレベルで走行するプログラムのコンテ
クストが上記レジスタ・ファイルに常駐するか否かを示
している常駐フラグと、該常駐フラグで常駐すると記さ
れたレベルに対してはそのコンテクストを上記レジスタ
・ファイルのどのフレームに格納するかを表すフレーム
番号が、常駐フラグで非常駐と記されたレベルに対して
はそのコンテクストを格納しているメモリ領域を指すア
ドレスが登録されているコンテクスト・テーブルと、 現在走行中のプログラムの走行レベルを保持し、その出
力を上記割込み調停回路及び前記命令実行ユニットに提
供し、上記割込み調停回路の出力する割込み許可信号の
指示でその割込み調停回路の出力するプログラム走行レ
ベルを格納するカレント走行レベル・レジスタと、 上記割込み調停回路の出力するプログラム走行レベルと
上記コンテクスト・テーブルの出力を入力として、上記
コンテクスト・テーブルから走行レベルに対応したエン
トリを取り出し、エントリの常駐フラグとフレーム番号
/アドレス部を出力し、さらに常駐フラグが常駐の時は
そのエントリのフレーム番号を、非常駐の時はディフォ
ルトとして“0”をフレーム番号として出力する常駐チ
ェック回路と、 上記常駐チェック回路の出力するフレーム番号を保持し
、現在走行中のプログラムが参照しているフレーム番号
としてその出力を上記レジスタ・ファイルに提供するフ
レーム番号レジスタと、上記常駐チェック回路の出力す
る常駐フラグを保持する常駐フラグ・レジスタと、 上記常駐チェック回路の出力するフレーム番号/アドレ
ス部を保持し、コンテクストの格納メモリアドレスとし
てその内容を前記命令実行ユニットに出力するコンテク
スト・アドレス・レジスタと、 上記常駐チェック回路の常駐フラグをこれから移ろうと
する新しいプログラム走行レベルの常駐/非常駐情報と
して入力し、上記常駐フラグ・レジスタをいままで走っ
ていたプログラム走行レベルの常駐・非常駐情報として
入力して、プログラム走行レベルの変更に際してコンテ
クストのセーブ/リストアを前記命令実行ユニットに対
して指示するセーブ/リストア指示回路とを具備するこ
とを特徴とする割込み処理方式。
[Scope of Claims] 1. A register file capable of holding a plurality of contexts for recording the running state of a program such as a general-purpose register, a program counter, a status register, etc., and an instruction execution unit; A processor having an interrupt arbitration circuit that outputs an interrupt permission signal and a new program running level when a pending interrupt level with the highest priority has a higher priority than the running level of a currently running program, triggered by an instruction. In this case, the values can be set by special software instructions, each entry corresponds to an interrupt level defined by the hardware, and the context of the program running at that interrupt level resides in the above register file. A resident flag indicates whether or not the level is resident, and a frame number indicating which frame in the above register file the context is stored for a level marked as resident in the resident flag, and a frame number indicating whether the level is non-resident in the resident flag For the indicated level, a context table in which the address pointing to the memory area storing the context is registered, and the running level of the currently running program are held, and the output is sent to the interrupt arbitration circuit and the above-mentioned interrupt arbitration circuit. a current running level register provided to the instruction execution unit and storing a program running level output by the interrupt arbitration circuit according to an instruction of an interrupt enable signal output by the interrupt arbitration circuit; Taking the level and the output of the above context table as input, extracts the entry corresponding to the running level from the above context table, outputs the entry's resident flag and frame number/address part, and furthermore, if the resident flag is resident, that entry A resident check circuit that outputs "0" as the frame number by default when non-resident, and a frame number output by the resident check circuit that holds the frame number that is currently being referenced by the currently running program. a frame number register that provides its output to the register file, a resident flag register that holds the resident flag output from the resident check circuit, and a frame number/address field that the resident check circuit outputs; A context address register outputs its contents as a context storage memory address to the instruction execution unit, and the resident flag of the resident check circuit is input as resident/non-resident information of the new program running level to which the program is to be moved. a save/restore instruction circuit that inputs a flag register as resident/nonresident information of the program running level that has been running and instructs the instruction execution unit to save/restore the context when the program running level is changed; An interrupt processing method characterized by comprising:
JP32803488A 1988-12-27 1988-12-27 Interruption process system Pending JPH02173828A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32803488A JPH02173828A (en) 1988-12-27 1988-12-27 Interruption process system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32803488A JPH02173828A (en) 1988-12-27 1988-12-27 Interruption process system

Publications (1)

Publication Number Publication Date
JPH02173828A true JPH02173828A (en) 1990-07-05

Family

ID=18205776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32803488A Pending JPH02173828A (en) 1988-12-27 1988-12-27 Interruption process system

Country Status (1)

Country Link
JP (1) JPH02173828A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134496A (en) * 2008-12-02 2010-06-17 Hitachi Ltd Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US20110302581A1 (en) * 2008-07-28 2011-12-08 Microsoft Corporation State Separation for Virtual Applications
US8458701B2 (en) * 2008-07-28 2013-06-04 Microsoft Corporation State separation for virtual applications
US8984512B2 (en) 2008-07-28 2015-03-17 Microsoft Technology Licensing, Llc State separation for applications
US9304791B2 (en) 2008-07-28 2016-04-05 Microsoft Technology Licensing, Llc State separation for virtual applications
JP2010134496A (en) * 2008-12-02 2010-06-17 Hitachi Ltd Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system

Similar Documents

Publication Publication Date Title
US5161226A (en) Microprocessor inverse processor state usage
US6360243B1 (en) Method, device and article of manufacture for implementing a real-time task scheduling accelerator
US6430593B1 (en) Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system
US6128672A (en) Data transfer using software interrupt service routine between host processor and external device with queue of host processor and hardware queue pointers on external device
US6553487B1 (en) Device and method for performing high-speed low overhead context switch
US7810096B2 (en) Computer executing multiple operating systems
EP0266800B1 (en) Data processor having different interrupt processing modes
US7412590B2 (en) Information processing apparatus and context switching method
JP3970609B2 (en) Processor system
JPH02173828A (en) Interruption process system
US4816992A (en) Method of operating a data processing system in response to an interrupt
GB2372348A (en) A multi-mode, multi-tasking processor with reduction in context preservation and restoration to save processing time
JPH0414376B2 (en)
JP2643931B2 (en) Information processing device
JPH039431A (en) Interruption processing system
JPS59218569A (en) Microcomputer
JPH0298744A (en) Interruption processing system
JPH04195540A (en) Interruption processing system
JPH03182945A (en) Transfer system for data in main storage
WO1999046679A1 (en) Apparatus, method and article of manufacture for use with a priority based real-time operating system
JPH02163834A (en) Multi-task processing system
JP2742245B2 (en) Parallel computer
JPH0477930A (en) Microcomputer
JPS63142416A (en) Input/output control system
JPH05334233A (en) Data transferring device