JPH02173828A - 割込み処理方式 - Google Patents

割込み処理方式

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
English (en)
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/ja
Publication of JPH02173828A publication Critical patent/JPH02173828A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明はプロセッサの割込み処理方式に関し、特に割込
み発生時にプログラムの走行状態を表すコンテクストを
セーブ/リストアするオーバ・ヘッドを少なくするため
の方式に関する。
[従来の技術] 従来の割込み処理方式では、割込みが発生しプログラム
走行レベルが変わるときに、まずその時のプロセッサの
レジスタの状B(コンテクスト)をその時のプログラム
走行レベルに対応したメモリ領域にセーブして、次に新
しい走行レベルに対応したコンテクストをメモリからリ
ストアしてくる。プロセッサのレジスタの数が増すにし
たがって、このスイッチ時にプロセッサ、メモリ間で転
送される情報量が多くなり、割込み処理のオーバ・ヘッ
ドが大きくなる。
又、割込み処理の性能を上げるために、割込みレベルの
全てに対してコンテクストを格納できるレジスタ・セッ
トを設けたプロセッサがあるが、プロセッサの定義する
割込みレベルが例えば64だと通常のプロセッサの64
倍のハードウェア量をレジスタに割かなければならない
ので、ハードウェア・コストが大きくなってしまう。一
般にプロセッサでは、レジスタ部のハードウェア量は制
御部のそれよりもずっと多く、膨大な数のレジスタを持
ったプロセッサでは、チップの数が多くなってコンパク
トな実装が困難となる。
[発明が解決しようとする課題] 上述した従来の割込み処理方式では、前者の方式では割
込み時のオーバーヘッドが大きくなり、通信制御など高
いリアルタイム応答性が要求される分野では性能が問題
になってくる。この様なアプリケーションではその基本
的な制御に割込みのレベル制御を陽に利用するので、そ
の時のコンテクストのセーブ/リストアにかかる時間に
対して厳しい性能が要求される。一方、後者の方式では
、そのハードウェア量が大きくなり、価格やサイズの点
で競争力が劣ってしまう。
[課題を解決するための手段] 上述した問題点を解決するために、本発明の目的は、特
定の限られた割込みレベルに対してはプロセッサ内でそ
のコンテクストを保持することによって、プログラム走
行レベルのスイッチを高速に処理することが出来る割込
み処理方式を提供することにある。
即ち、本発明の割込み処理方式は、汎用レジスタ、プロ
グラム・カウンタ、ステータス・レジスタ等のプログラ
ムの走行状態を記録するコンテクストを複数個保持でき
るレジスタ・ファイルと命令実行ユニットとを含み、上
記命令実行ユニットのデコード指示を契機に、保留中の
最も優先順位の高い割込みレベルが、現在走行中のプロ
グラムの走行レベルより優先順位が高い時に、割込み許
可信号と新しいプログラム走行レベルとを出力する割込
み調停回路を有するプロセッサに於て、特殊なソフトウ
ェア命令で値が設定可能で、各エントリがハードウェア
の定義している割込みレベルに対応していて、その割込
みレベルで走行するプログラムのコンテクストが上S己
しジスタ・ファイルに常駐するか否かを示している常駐
フラグと、該常駐フラグで常駐すると記されたレベルに
対してはそのコンテクストを上記レジスタ・ファイルの
どのフレームに格納するかを表すフレーム番号が、常駐
フラグで非常駐と記されたレベルに対してはそのコンテ
クストを格納しているメモリ領域を指すアドレスが登録
されているコンテクスト・テーブルと、 現在走行中のプログラムの走行レベルを保持し、その出
力を上記割込み調停回路及び前記命令実行ユニットに提
供し、上記割込み調停回路の出力する割込み許可信号の
指示でその割込み調停回路の出力するプログラム走行レ
ベルを格納するカレント走行レベル・レジスタと、 上記割込み調停回路の出力するプログラム走行レベルと
上記コンテクスト・テーブルの出力を入力として、上記
コンテクスト・テーブルから走行レベルに対応したエン
トリを取り出し、エントリの常駐フラグとフレーム番号
/アドレス部を出力し、さらに常駐フラグが常駐の時は
そのエントリのフレーム番号を、非常駐の時はディフォ
ルトとして“O“をフレーム番号として出力する常駐チ
ェック回路と、 上記常駐チェック回路の出力するフレーム番号を保持し
、現在走行中のプログラムが参照しているフレーム番号
としてその出力を上記レジスタ・ファイルに提供するフ
レーム番号レジスタと、上記常駐チェック回路の出力す
る常駐フラグを保持する常駐フラグ・レジスタと、 上記常駐チェック回路の出力するフレーム番号/アドレ
ス部を保持し、コンテクストの格納メモリアドレスとし
てその内容を前記命令実行ユニットに出力するコンテク
スト・アドレス・レジスタと、 上記常駐チェック回路の常駐フラグをこれから移ろうと
する新しいプログラム走行レベルの常駐7/非常駐情報
として入力し、上記常駐フラグ・レジスタをいままで走
っていたプログラム走行レベルの常駐・非常駐情報とし
て入力して、プログラム走行レベルの変更に際してコン
テクストのセーブ/リストアを前記命令実行ユニットに
対して指示するセーブ/リストア指示回路とから構成さ
れている。
[実施例コ 次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例による割込み処理方式の構成
を示すブロック図である。
命令実行ユニット1は、複数のコンテクスト・レジスタ
・ファイル2と内部バス3で接続されている。レジスタ
番号指示伝達信号線4は、命令実行ユニット1からコン
テクスト・レジスタ・ファイル2に対してレジスタ番号
を示す。割込み調停回路5は、カレント走行レベル・レ
ジスタ8の出力を入力として、プロセッサ内、外の割込
み要求を基にレベル・スイッチを行うべきタイミングを
検出して、変更する新しいプログラム走行レベル及び割
込み指示を新プログラム走行レベル伝達信号線6と割込
み許可信号線7で出力する。カレント走行レベル信号1
9は、現在のプログラム走行レベルを命令実行ユニット
1と割込み調停回路5に伝える。
コンテクスト・テーブル1oは、全ての割込みレベルに
対して常駐/非常駐の区別と、対応するレジスタ・ファ
イルのフレーム番号またはコンテクスト格納領域のメモ
リアドレスを格納している。
例えば、レジスタ・ファイル2が、第2図に示される様
に、4個のフレーム成り、割込みレベルが0〜63の6
4レベルにあるとすると、コンテクスト・テーブル10
は、第3図に示される様になる。第3図において、31
は常駐フラグを表し、32はコンテクスト格納アドレス
またはフレーム番号を表す。
第1図に戻って、11はテーブル出力信号線で、12は
常駐チェック回路を表す。常駐チェック回路12は、新
プログラム走行レベル伝達信号線6のレベル番号をイン
デックスとしてテーブル出力信号線11のテーブルをひ
き、該当するエントリのフレーム番号/コンテクスト格
納アドレスと常駐フラグを、それぞれコンテクスト格納
アドレス出力信号線20と常駐フラグ指示伝達信号線1
4で出力する。さらに、常駐チェック回路12、テーブ
ルから取り出されたエントリの常駐フラグの値に従い、
フラグが常駐の時はエントリのフレーム番号を、非常駐
の時はディフォルトとして“0゜を、フレーム番号出力
信号線13でフレーム番号レジスタ15に出力する。フ
レーム番号指示伝達信号線16のフレーム番号とレジス
タ番号指示伝達信号線4のレジスタ番号の組でレジスタ
・ファイル2のフレームとその中のレジスタがリード、
ライトの対象として指定される。常駐フラグ・レジスタ
17は、常駐フラグ指示伝達信号線14の内容を格納す
る。セーブ/リストア指示回路18は、プログラム走行
レベルが変更されるときに、常駐フラグ指示伝達信号線
14と常駐フラグ・レジスタ17を基にコンテクストの
セーブ、リストアの指示を命令実行ユニット1に対して
セーブ/リストア指示伝達信号線19を介して伝える。
コンテクスト格納アドレスレジスタ21は、格納アドレ
ス伝達信号線22で自レジスタの内容を命令実行ユニッ
ト1に伝達する。
今、仮にレジスタ・ファイル2が、第2図に示される様
に、4個のフレームから成っているとする。この4個の
フレームそれぞれをフレーム0゜1.2.3と呼ぶ。そ
してコンテクストテーブル10は、第3図に示される様
に、常駐フラグ31とフレーム番号/格納アドレス部3
2から構成されている。そして、レベル61,62.6
3は常駐として定義され、常駐フラグ31にはそれぞれ
フレーム1,2.3が割り当てられていて、それ以外の
レベルは非常駐で、対応するコンテクストが格納されて
いるアドレスが、エントリのフレーム番号/格納アドレ
ス部32に登録されている。
このテーブルの内容は、特殊なソフトウェア命令で更新
できる。
さて、レベル63でユーザプログラムが実行中と仮定す
ると、レジスタ8は“63′でレジスタ15は“3″を
指定している。又、制御フリップフロップ17は常駐の
意味の“1“を示している。
こノ時、命令実行ユニット1はフレーム3のレジスタの
みを参照できる。
この状態で、仮にレベル62の割込みがあったとする。
現在の走行レベルも新しい割込みレベルも常駐なので、
この時のレベル中スイッチではコンテクストのセーブ、
リストアは友に必要ない。
従って、指示回路18はセーブ、リストアを指示せず、
レジスタ8の走行レベルは“622となり、レジスタ1
5のフレーム番号は“2mとなる。この時、割込み処理
ルーチンはセーブ、リストアすることなく、それ以降自
動的に命令実行ユニット1はフレーム2のレジスタを参
照する。この様に、常駐レベル間のレベル・スイッチで
はオーバ・ヘッドがゼロとなる。
次に、レベル10の割り込みがあったとする。
レベル10は、第3図に示す通りに非常駐である。
この時は、カレント走行レベル信号線9の走行レベルは
“10“となり、レジスタ15のフレーム番号は“0″
となる。そして指示回路18はレベル10のコンテクス
トをメモリ領域からリストアしてくることを命令実行ユ
ニット1に指示する。
アドレスレジスタ21のコンテクスト領域アドレスに従
い、メモリから取り出されたコンテクストは、フレーム
0にロードされる。レベル62は常駐なので、レベル・
スイッチ前のプロセッサの状態はメモリにセーブする必
要はない。この場合でも、通常のプロセッサに比べれば
半分のオーバ・ヘッドでレベルの切り替えが行われる。
セーブ/リストア指示回路18の動作は、以上説明した
様に、レベル・スイッチ前後のプログラム走行レベルで
、第4図に示される様な動作指示を命令実行ユニット1
に対して行う。
[発明の効果] 以上説明したように、本発明はプロセッサで定義してい
る割込みレベルの一部に対してはそのコンテクストをプ
ロセッサ内部に保持することによって、ハードウェアの
増加を抑えながら割込み処理時のコンテクストのセーブ
/リストアのす−バ・ヘッドを小さくする効果がある。
又、本発明ではプロセッサに常駐させる割込みレベルを
特殊なソウトウエア命令で指定できるので、アプリケジ
ョンに応して頻繁に使うレベルを常駐に割り当てていく
ことで、レジスタ・ファイルのフレームの有効活用を計
ることが出来る。一般に、与えられた全ての割込みレベ
ルを使うアブリケーンヨン・プログラムは希で、本発明
のように、ある限られたレベルに対してのみ常駐をサポ
ートすることは合理的と思われる。特に常駐のレベル間
でのコンテクスト・スイッチではセーブ/リストアは不
飲なので、きわめて高速にその割込み処理を行うことが
出来る。
【図面の簡単な説明】
第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図

Claims (1)

  1. 【特許請求の範囲】 1、汎用レジスタ、プログラム・カウンタ、ステータス
    ・レジスタ等のプログラムの走行状態を記録するコンテ
    クストを複数個保持できるレジスタ・ファイルと命令実
    行ユニットとを含み、上記命令実行ユニットのデコード
    指示を契機に、保留中の最も優先順位の高い割込みレベ
    ルが、現在走行中のプログラムの走行レベルより優先順
    位が高い時に、割込み許可信号と新しいプログラム走行
    レベルとを出力する割込み調停回路を有するプロセッサ
    に於て、 特殊なソフトウェア命令で値が設定可能で、各エントリ
    がハードウェアの定義している割込みレベルに対応して
    いて、その割込みレベルで走行するプログラムのコンテ
    クストが上記レジスタ・ファイルに常駐するか否かを示
    している常駐フラグと、該常駐フラグで常駐すると記さ
    れたレベルに対してはそのコンテクストを上記レジスタ
    ・ファイルのどのフレームに格納するかを表すフレーム
    番号が、常駐フラグで非常駐と記されたレベルに対して
    はそのコンテクストを格納しているメモリ領域を指すア
    ドレスが登録されているコンテクスト・テーブルと、 現在走行中のプログラムの走行レベルを保持し、その出
    力を上記割込み調停回路及び前記命令実行ユニットに提
    供し、上記割込み調停回路の出力する割込み許可信号の
    指示でその割込み調停回路の出力するプログラム走行レ
    ベルを格納するカレント走行レベル・レジスタと、 上記割込み調停回路の出力するプログラム走行レベルと
    上記コンテクスト・テーブルの出力を入力として、上記
    コンテクスト・テーブルから走行レベルに対応したエン
    トリを取り出し、エントリの常駐フラグとフレーム番号
    /アドレス部を出力し、さらに常駐フラグが常駐の時は
    そのエントリのフレーム番号を、非常駐の時はディフォ
    ルトとして“0”をフレーム番号として出力する常駐チ
    ェック回路と、 上記常駐チェック回路の出力するフレーム番号を保持し
    、現在走行中のプログラムが参照しているフレーム番号
    としてその出力を上記レジスタ・ファイルに提供するフ
    レーム番号レジスタと、上記常駐チェック回路の出力す
    る常駐フラグを保持する常駐フラグ・レジスタと、 上記常駐チェック回路の出力するフレーム番号/アドレ
    ス部を保持し、コンテクストの格納メモリアドレスとし
    てその内容を前記命令実行ユニットに出力するコンテク
    スト・アドレス・レジスタと、 上記常駐チェック回路の常駐フラグをこれから移ろうと
    する新しいプログラム走行レベルの常駐/非常駐情報と
    して入力し、上記常駐フラグ・レジスタをいままで走っ
    ていたプログラム走行レベルの常駐・非常駐情報として
    入力して、プログラム走行レベルの変更に際してコンテ
    クストのセーブ/リストアを前記命令実行ユニットに対
    して指示するセーブ/リストア指示回路とを具備するこ
    とを特徴とする割込み処理方式。
JP32803488A 1988-12-27 1988-12-27 割込み処理方式 Pending JPH02173828A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32803488A JPH02173828A (ja) 1988-12-27 1988-12-27 割込み処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32803488A JPH02173828A (ja) 1988-12-27 1988-12-27 割込み処理方式

Publications (1)

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

Family

ID=18205776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32803488A Pending JPH02173828A (ja) 1988-12-27 1988-12-27 割込み処理方式

Country Status (1)

Country Link
JP (1) JPH02173828A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134496A (ja) * 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法
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 (ja) * 2008-12-02 2010-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機システムにおけるハイパバイザ、及び仮想計算機システムにおけるスケジューリング方法

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
US5812868A (en) Method and apparatus for selecting a register file in a data processing system
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 (ja) プロセッサシステム
JPH02173828A (ja) 割込み処理方式
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 (ja)
JP2643931B2 (ja) 情報処理装置
JPH039431A (ja) 割込み処理方式
JPS59218569A (ja) マイクロ・コンピユ−タ
JPH0298744A (ja) 割込み処理方式
JPH02163834A (ja) マルチ・タスク処理方式
WO1999046679A1 (en) Apparatus, method and article of manufacture for use with a priority based real-time operating system
JPH04195540A (ja) 割り込み処理方式
JPH03182945A (ja) 主記憶内データ転送方式
JP2742245B2 (ja) 並列計算機
JPH0477930A (ja) マイクロコンピュータ
JPS63142416A (ja) 入出力制御方式