JPH09134292A - 割り込み制御方法 - Google Patents

割り込み制御方法

Info

Publication number
JPH09134292A
JPH09134292A JP29246295A JP29246295A JPH09134292A JP H09134292 A JPH09134292 A JP H09134292A JP 29246295 A JP29246295 A JP 29246295A JP 29246295 A JP29246295 A JP 29246295A JP H09134292 A JPH09134292 A JP H09134292A
Authority
JP
Japan
Prior art keywords
register
instruction sequence
program
processor
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
JP29246295A
Other languages
English (en)
Inventor
Masahiko Yamauchi
雅彦 山内
Hiroshi Yashiro
寛 屋代
Hideki Murayama
秀樹 村山
Kazuo Horikawa
和雄 堀川
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP29246295A priority Critical patent/JPH09134292A/ja
Publication of JPH09134292A publication Critical patent/JPH09134292A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】計算機システムに於いて、割り込み時間を短縮
することによって、ユーザプログラムのプロセッサ利用
率を高める。 【解決手段】プログラムが利用するレジスタ群を指定で
きるレジスタ利用識別子格納領域108,レジスタ利用
識別子とレジスタを操作する命令列を対応付けたプログ
ラム切替命令対応表109を備え、プロセッサ102が
割り込み処理を実行する際に行うレジスタの退避及び復
帰処理の命令列を、レジスタ利用識別子格納領域108
に保持されたレジスタ利用識別子に基づいてプログラム
切替命令対応表109から選択して実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は計算機システムに於
いて、周辺機器やプログラムから割り込みが発生した際
に有効な、割り込み制御方式及び計算機システムに関す
る。
【0002】
【従来の技術】従来の技術では、割り込み制御方式は、
文献「UNIXカーネルの設計,MauriceJ.Bach著/坂
本文他訳(共立出版)」6章に記述されているように、プ
ログラムの実行途中の状態を保存し、後でその状態を復
元できるように、プロセッサが備えるレジスタの退避及
び復帰を行っている。
【0003】
【発明が解決しようとする課題】従来の割り込み制御方
式では、一般にプログラムが使用しているレジスタ群は
不明であるため、割り込み処理の結果、レジスタの内容
が破壊されないようにプロセッサの備えるすべてのレジ
スタを保存する。
【0004】従って、周辺機器からの割り込みが多発し
たり、オペレーティング・システム(以下OSと略す)
が提供しているサービスを頻繁に利用するような状況で
は、プロセッサがレジスタの退避及び復帰処理に多くの
時間を割り当てる必要があるので、ユーザプログラムの
プロセッサ利用率が低下する。さらに、OSはユーザプ
ログラムが使用していないレジスタに対しても退避及び
復帰処理を実行する可能性があるので無駄がある。
【0005】本発明の目的は、割り込み処理の際に行う
レジスタの退避及び復帰処理の無駄を省き、割り込み処
理の高速化をはかり、単位時間におけるユーザプログラ
ムのプロセッサ利用率を高めることにある。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、本発明ではメモリ中にプログラムが利用する任意の
レジスタ群を指定可能なレジスタ利用識別子と、前記レ
ジスタ利用識別子とレジスタを操作する命令列を対応付
けたプログラム切替命令列対応表を設け、前記レジスタ
利用識別子に基づいて、レジスタの退避及び復帰を行う
命令列を前記プログラム切替命令列対応表から求める手
段を設ける。
【0007】本発明によれば、割り込み処理の際の、不
要なレジスタ退避及び復帰処理を省略することができ、
割り込み処理を高速化することができる。その結果、割
り込み処理時間が短くなるので、単位時間あたりのユー
ザプログラムのプロセッサ利用率を高めることができ
る。
【0008】
【発明の実施の形態】図1は、本発明の一実施例を示
す、計算機システム101のブロック図である。計算機
システム101は、命令列を実行するプロセッサ10
2,前記命令列やデータを格納するメモリ103,各構
成ブロック間の命令列やデータの伝送路であるシステム
・バス104,命令列やデータ等を格納する磁気ディス
ク等の2次記憶装置105,キーボードからの入力やデ
ィスプレイへの出力等を行うI/O装置106から構成さ
れる。
【0009】ソースプログラムをコンパイルして生成し
た実行可能ファイル114は、2次記録装置105に保
持し、ユーザプログラム実行時にシステムバス104を
通じて前記メモリ103のユーザプログラム格納領域1
11に読み込まれる。前記プロセッサ102は、メモリ
内に読み込んだ前記ユーザプログラム格納領域111を
プログラムカウンタ116によって指し、指し示した場
所にあるデータをシステムバス104を通してプロセッ
サ102の命令として転送して実行する。
【0010】プロセッサ102は、次に実行する命令を
指しているプログラムカウンタ116,プログラム実行
中に計算途中の値を一時的に保持しておくために使用す
るレジスタ107,割り込みが発生した時に前記プログ
ラムカウンタ116の値を保存する割り込み発生時プロ
グラムカウンタ格納領域117,割り込みを処理するた
めの命令列へのポインタを保持している割り込み処理命
令列エントリ118を備えている。
【0011】メモリ103は、本発明に於いて、ユーザ
プログラムが利用するレジスタ群を指定できるレジスタ
利用識別子を格納しているレジスタ利用識別子格納領域
108,レジスタ利用識別子とレジスタ群の退避/復帰
を行う命令列を対応付けているプログラム切替命令列対
応表109,I/O装置106で発生した割り込みを処
理する命令列を保持している割り込み処理命令列格納領
域110,I/O処理を行う命令列を保持しているI/
O処理命令列格納領域112,ユーザプログラム格納領
域111,プロセッサのレジスタ107を割り込み処理
の間、保存するためのレジスタ退避領域113から構成
される。
【0012】前記レジスタ利用識別子格納領域108に
レジスタ識別子を設定する作業は、システム管理者もし
くは一般ユーザが手動で行ってもよい。また、複数のユ
ーザプログラムを時分割で実行できる機能をサポートし
ているOSが、ユーザプログラムを切替える際に、ユー
ザプログラム毎にレジスタ利用識別子の値を設定しても
よい。
【0013】I/O装置106が割り込み要求をプロセ
ッサ102に通知して、割り込みが発生すると、現在実
行しているユーザプログラムの処理を一時的に中断し
て、プログラムカウンタ116の値を割り込み発生時プ
ログラムカウンタ格納領域117に保存する。続いて、プ
ロセッサ102は割り込み処理命令列エントリ118が
指し示す割り込み処理命令列格納領域110に格納され
ている命令列を実行する。詳細な処理フローは後で述べ
る。
【0014】図2は、本発明におけるプログラム切替命
令列対応表の一実施例である。プログラム切替命令列対
応表109は、項目としてレジスタ利用識別子201,
レジスタ退避命令列202,レジスタ復帰命令列203
を備える。レジスタ利用識別子201の値としては、例
えば整数値を利用する。システム管理者もしくは一般ユ
ーザは、各整数値に対してプログラムで利用するレジス
タ群の退避命令列,復帰命令列を対応付ける。
【0015】図中の実施例に於いては、レジスタ利用識
別子の値が1の場合、レジスタ番号1〜10を持つレジ
スタ群、レジスタ利用識別子の値が2の場合、レジスタ
番号1〜20を持つレジスタ群、レジスタ利用識別子の
値が3の場合、レジスタ番号1〜30を持つレジスタ群
にそれぞれ対応している。
【0016】レジスタ退避命令列202には、レジスタ
利用識別子に対応付けられたレジスタ群をレジスタ退避
領域113に退避するための命令列が存在する。前記レ
ジスタ復帰命令列203も、同様にレジスタ利用識別子
に対応付けられたレジスタ群をレジスタ退避領域113
から、プロセッサ102中のレジスタ107に復帰する
ための命令列が存在する。
【0017】図3は、本発明に於いてプログラム切替処
理の一実施例を示すフローチャートである。
【0018】I/O装置がプロセッサ102に割り込み
を通知して、割り込みが発生した時には、プロセッサ1
02は割り込みを発生した時のユーザプログラムのプロ
グラムカウンタ116の値を、割り込み発生時プログラ
ムカウンタ格納領域117に保持している。割り込みに
よって発生するプログラム切替処理としては、ユーザプ
ログラムを中断/再開できるように、利用しているレジ
スタ群、及びプログラムカウンタの退避/復帰処理,割
り込み原因を解消するための処理を実行する必要があ
る。以下、処理の流れをフローチャートに従って説明す
る。
【0019】ステップ301では、前記割り込み発生時
プログラムカウンタ格納領域の値をシステムバス104
を通して、メモリ中のレジスタ退避領域113に保存す
る。
【0020】ステップ302では、レジスタ利用識別子
格納領域108に設定してあるレジスタ利用識別子の値
に基づいて、プログラム切替命令列対応表109を検索
して、レジスタ退避に必要な命令列を選択して実行す
る。レジスタ退避命令列の実行によって、ユーザプログ
ラムが利用しているレジスタ107の内容は、メモリ中
のレジスタ退避領域113に保存される。
【0021】ステップ303では、割り込んだ原因のI
/O装置を処理するために、I/O処理命令列格納領域
112に存在する命令列を実行する。実行の結果、レジ
スタの内容が破壊されても、ステップ302に於いてユ
ーザプログラムを再開するために必要なレジスタを保存
してあるので、割り込み処理終了後、元の値に復帰する
ことができる。
【0022】ステップ304では、割り込みを引き起こ
したI/O処理を終了したので、割り込みで中断したユ
ーザプログラムを再開するために、ステップ302で退
避したレジスタ群を復帰する。ステップ302と同様に
レジスタ利用識別子格納領域108に設定してあるレジ
スタ利用識別子の値に基づいて、プログラム切替命令列
対応表109から、レジスタ復帰のために必要な命令列
を選択して実行する。
【0023】ステップ305では、ステップ301で保
存したユーザプログラムのプログラムカウンタの値を、
レジスタ退避領域113からシステムバス104を通し
てプロセッサ102に転送し、プログラムカウンタ11
6に設定し、ユーザプログラムの実行を再開する。
【0024】図4は、本発明に於けるユーザプログラム
を2次記録装置に保持しておくための実行可能ファイル
の構造の一実施例を示す図である。実行可能ファイル1
14は、前記実行可能ファイル114が利用するレジス
タ群に対応したレジスタ利用識別子401と、ソースプ
ログラムをコンパイルして生成したユーザプログラム命
令列402を備えている。
【0025】前記実行可能ファイル114中に備える前
記レジスタ利用識別子401をメモリ中のレジスタ利用
識別子格納領域108に設定する処理をユーザプログラ
ムを起動する際にシステムが自動的に行ってもよい。
【0026】
【発明の効果】本発明によれば、プログラムが利用する
レジスタ群を指定できるので、割り込み処理が頻繁に発
生する際、利用するレジスタ数を減らし、割り込み処理
を高速化できる。また、割り込み処理時間を短縮できる
ので、ユーザプログラムのプロセッサ利用率を高めるこ
とができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す計算機システムのブロ
ック図。
【図2】本発明の一実施例に於けるプログラム切替命令
列対応表を示す図。
【図3】本発明の一実施例に於けるプログラム切替処理
を示すフローチャート。
【図4】本発明の一実施例に於ける実行可能ファイルの
構造を示す図。
【符号の説明】
101…計算機、102…プロセッサ、103…メモ
リ、104…システムバス、105…2次記憶装置、1
06…入出力装置、107…レジスタ、108…レジス
タ利用識別子格納領域、109…プログラム切替命令列
対応表、114…実行可能ファイル、201−203…
プログラム切替命令列対応表管理項目、301ー305
…処理ステップ、401…レジスタ利用識別子、402
…ユーザプログラム命令列。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 堀川 和雄 神奈川県川崎市幸区鹿島田890番地 株式 会社日立製作所情報・通信開発本部内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】プロセッサと入出力装置とメモリを備え、
    前記プロセッサにはメモリより高速に参照及び更新が可
    能なレジスタを備え、前記入出力装置にはプロセッサに
    割り込みを通知する手段を備え、前記メモリにはプログ
    ラムが利用する任意のレジスタ群を指定可能なレジスタ
    利用識別子を格納するレジスタ利用識別子格納領域と、
    前記レジスタ利用識別子とレジスタを操作する命令列と
    を対応付けたプログラム切替命令列対応表とを設けた計
    算機システムに於いて、前記入出力装置が割り込み要求
    を、プログラムを実行中のプロセッサに通知し、前記プ
    ロセッサが割り込み処理を実行する前に、前記レジスタ
    利用識別子格納領域に設定されたレジスタ利用識別子の
    値に基づいてプログラム切替命令列対応表からレジスタ
    退避命令列を求める手段を用い、前記手段で得られたレ
    ジスタ退避命令列でレジスタの内容をメモリに転送し、
    割り込み処理終了後には、レジスタ利用識別子の値に基
    づいてプログラム切替命令列対応表からレジスタ復帰命
    令列を求める手段を用い、前記手段で得られたレジスタ
    復帰命令列でメモリに退避した内容をレジスタに転送す
    ることを特徴とする割り込み制御方法。
  2. 【請求項2】請求項1に記載の計算機システムに於い
    て、前記レジスタ利用識別子格納領域の値をプロセッサ
    が実行するプログラム毎に変化させ、プログラム毎に使
    用するレジスタ群を対応付けて、レジスタの退避及び復
    帰処理を実行することを特徴とする割り込み制御方法。
  3. 【請求項3】請求項2に記載の計算機システムに於い
    て、実行可能ファイルにレジスタ利用識別子とユーザプ
    ログラム命令列とを備え、前記ユーザプログラム命令列
    を起動する際に、前記レジスタ利用識別子をレジスタ利
    用識別子格納領域に設定し、前記ユーザプログラム命令
    列についてレジスタの退避及び復帰処理を実行すること
    を特徴とする割り込み制御方法。
JP29246295A 1995-11-10 1995-11-10 割り込み制御方法 Pending JPH09134292A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29246295A JPH09134292A (ja) 1995-11-10 1995-11-10 割り込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29246295A JPH09134292A (ja) 1995-11-10 1995-11-10 割り込み制御方法

Publications (1)

Publication Number Publication Date
JPH09134292A true JPH09134292A (ja) 1997-05-20

Family

ID=17782126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29246295A Pending JPH09134292A (ja) 1995-11-10 1995-11-10 割り込み制御方法

Country Status (1)

Country Link
JP (1) JPH09134292A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282705B1 (en) 1998-01-12 2001-08-28 Nec Corporation Compiler capable of reducing interrupt handling in optimization and its optimization method
JP2009217681A (ja) * 2008-03-12 2009-09-24 Omron Corp 割込機能を備えたplc
US8959317B2 (en) 2010-04-12 2015-02-17 Renesas Electronics Corporation Processor and method for saving designated registers in interrupt processing based on an interrupt factor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282705B1 (en) 1998-01-12 2001-08-28 Nec Corporation Compiler capable of reducing interrupt handling in optimization and its optimization method
JP2009217681A (ja) * 2008-03-12 2009-09-24 Omron Corp 割込機能を備えたplc
US8959317B2 (en) 2010-04-12 2015-02-17 Renesas Electronics Corporation Processor and method for saving designated registers in interrupt processing based on an interrupt factor
US9116870B2 (en) 2010-04-12 2015-08-25 Renesas Electronics Corporation Process and method for saving designated registers in interrupt processing based on an interrupt factor

Similar Documents

Publication Publication Date Title
US6795966B1 (en) Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US9323550B2 (en) Mechanism for providing virtual machines for use by multiple users
US6275893B1 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
US5125087A (en) Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register
US5161226A (en) Microprocessor inverse processor state usage
US5613114A (en) System and method for custom context switching
US6209085B1 (en) Method and apparatus for performing process switching in multiprocessor computer systems
US20080098154A1 (en) Method for forking or migrating a virtual machine
CN101470622B (zh) 模拟装置以及虚拟化方法
WO1996035167A1 (en) System and method for providing cooperative interrupts in a preemptive task scheduling environment
US5671422A (en) Method and apparatus for switching between the modes of a processor
JPH07311749A (ja) マルチプロセッサシステム及びカーネル置換方法
US6256751B1 (en) Restoring checkpointed processes without restoring attributes of external data referenced by the processes
EP0290942B1 (en) Guest machine execution control system for virtual machine system
US6332199B1 (en) Restoring checkpointed processes including adjusting environment variables of the processes
JPH09134292A (ja) 割り込み制御方法
US20120198453A1 (en) Virtualization of storage buffers used by asynchronous processes
JPS6097440A (ja) 仮想多重プロセツサ装置
JP2542573B2 (ja) システムフリ−ズリスタ−ト方式
JPS61184643A (ja) 仮想計算機の起動制御方式
US11593159B2 (en) External exception handling
US5778207A (en) Assisting operating-system interrupts using application-based processing
WO2023144939A1 (ja) コンピュータ、制御方法及び制御プログラム
JPH0363768B2 (ja)
JPH06295265A (ja) 仮想記憶制御における命令中断情報格納制御方法