JP2005190207A - 割り込み制御装置、制御方法 - Google Patents

割り込み制御装置、制御方法 Download PDF

Info

Publication number
JP2005190207A
JP2005190207A JP2003431252A JP2003431252A JP2005190207A JP 2005190207 A JP2005190207 A JP 2005190207A JP 2003431252 A JP2003431252 A JP 2003431252A JP 2003431252 A JP2003431252 A JP 2003431252A JP 2005190207 A JP2005190207 A JP 2005190207A
Authority
JP
Japan
Prior art keywords
interrupt
type
resource
interruption
address information
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.)
Withdrawn
Application number
JP2003431252A
Other languages
English (en)
Other versions
JP2005190207A5 (ja
Inventor
Hiroshi Kitamura
啓 喜多村
Noboru Asai
登 浅井
Koichi Yasutake
剛一 安武
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003431252A priority Critical patent/JP2005190207A/ja
Priority to EP04027460A priority patent/EP1577768A3/en
Priority to US10/995,175 priority patent/US7209993B2/en
Priority to KR1020040104272A priority patent/KR20050065308A/ko
Priority to CNB2004101046992A priority patent/CN100419688C/zh
Publication of JP2005190207A publication Critical patent/JP2005190207A/ja
Publication of JP2005190207A5 publication Critical patent/JP2005190207A5/ja
Withdrawn legal-status Critical Current

Links

Images

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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】汎用OSにおいて特定の割り込み資源からの割り込みに対してリアルタイム性を保証する割り込み制御装置を提供する。
【解決手段】本発明の割り込み制御装置は、割り込み資源のうちOSが管理する第1タイプの割り込み資源およびOSが管理しない第2タイプの割り込み資源のそれぞれに対応するアドレス情報を保持する割り込みベクタレジスタ103aを備え、OSが管理する第1タイプの割り込み資源が発生した割り込みに対しては、割り込みベクタレジスタ103aのアドレス情報に基づいて第1タイプの割り込み資源に共通するスケジュール処理の対象となる共通割り込みエントリ関数105を起動し、ユーザが管理する第2タイプの割り込み資源が発生した割り込みに対しては、割り込みベクタレジスタ103aのアドレス情報に基づいて前記スケジュール処理の対象とならない拡張割り込みエントリ関数を起動する。
【選択図】図2

Description

コンピュータシステムを制御するOSの一部として、割り込みを発生する割り込み資源からの割り込みを制御する割り込み制御装置に関する。
一般に、コンピュータシステムにおける割り込み制御は、OSにおいて各割り込み資源からの割り込みを一元的に管理することで処理される。
図10は、従来におけるコンピュータシステムにおける割り込み発生時に、OSのカーネル空間からユーザープロセス空間への遷移関係を示す図である。同図のように、割り込みは、カーネル空間602内において、割り込みを受け付ける割り込み処理部からスケジューラによる割り込みのスケジュール処理の後、プロセス空間601内のユーザープロセスへ遷移する。
図11は、従来のコンピュータシステムにおける割り込み制御装置の構成を示す図である。同図では、割り込みを発生する割り込み資源としての周辺デバイス、割り込みコントローラ、CPU、OS、アプリケーションプロセスを含む階層別に示している。図12は、図11における処理の流れを各構成要素のレジスタ構成に着目して示す動作説明図である。図11における動作を図12を用いて、より具体的に説明する。
割り込みコントローラ(INTC)502が、各種周辺デバイス(I/O装置)501a、501b等からの割り込み発生を検出し、該当割り込み要因に対応する要因番号レジスタ502aのフラグをセットする。当該割り込み要因がソフトウェア設定によりマスクされていなければ、割り込みコントローラ502はCPU503に割り込み発生を通知する。
CPU503は、割り込みレベルに応じた割り込みベクタレジスタ503aを有し、割り込みコントローラ503からの割り込み通知を受理した後、該当割り込み要因がアサインされている割り込みベクタレジスタから、割り込みベクタを読み出し、OSが管理している割り込みエントリ関数505を実行する。この割り込みエントリ関数505を実行することにより、割り込み要因の判別や、ユーザの割り込みハンドラへ遷移する。その際、スケジューラ506は、他の割り込みや他のプロセスとの間でスケジュール調整を行い、調整後に割り込み要因に対応する割り込みハンドラ507aまたは507b等を起動し、割り込み要求に対応する処理を行う(または対応する処理を呼び出す)。
以上の動作により、従来の割り込み制御装置は一連の割り込み制御を行うことが一般的である。
ところで、一般的なOSは特定の割り込み資源だけをOSの管理外とする場合を想定しておらず、そうするには特別な機構が必要である。そのための特別な機構として特許文献1では、複数のOSと、OSから独立した割り込み管理プログラムによる実現方法が開示されている。
特許文献1によれば、OSから独立した割り込み管理プログラムが、一方のOSが管理する割り込み資源を横取りして他方のOSに振り分ける方法と、OSの実行状態により割り込みハンドラを起動するタイミングを決定してそれぞれの割り込みハンドラを起動するタイミングを決定する方法による、割り込み制御方法が開示されている。この割り込み制御方法によれば、発生した外部割り込みを割り込み管理プログラムで一旦処理し、複数のOSに割り込み処理を振り分け、振り分けた先のOSで割り込み処理を実行することが可能である。また割り込み処理が複数のOS間で多重化された場合も、割り込み管理プログラムで割り込み状態を管理することで、排他制御を可能としている。
特開2001−216172号公報
しかしながら、従来の割り込み制御装置によれば、特定の割り込み資源だけをOSの管理外とする場合に、割り込みが発生してから割り込みに対応するアプリケーションが実行されるまでの応答性、つまりリアルタイム性を保証することができないという問題がある。
具体的には、オペレーティングシステム(OS)上の特定の割り込み資源を、他のプログラムにより分離、独立して管理する場合には、以下のような問題がある。
(1)特許文献1では、割り込み管理プログラムが、割り込み処理のOS間での多重化を調停するため、前記割り込み管理プログラムで割り込み状態を管理することが必須となる。例えば、図12に示したスケジューラ506が特許文献1では、さらに複雑なスケジュール調整を行う割り込み管理プログラムに相当する。この割り込み管理プログラムを新規に実装して処理を実行することにより、従来OSで実装されている割り込みエントリ関数に加えて割り込み状態の管理処理が増える分、リアルタイム性が悪くなる。
(2)特許文献1に関わらず、特定の割り込み要因に対応するユーザの割り込みハンドラ関数を、OSのアドレス空間(カーネル空間)ではなくユーザープロセス空間に配置し、配置された割り込みハンドラ関数へ割り込み応答性を阻害することなく遷移する仕組みが従来存在しない。図10に示したカーネル空間602からプロセス空間601へ遷移する過程において、スケジューラの応答性はOS性能に依存する。汎用OSでは、割り込み発生後にアプリケーションへ遷移するまでの時間保証がない、すなわちリアルタイム保証がないことが課題になる。
(3)特許文献1では、CPUの割り込み資源を複数のOSで分割管理するために、少なくとも2つ以上のOSが必要である構成であり、1つのOSとそのOS上で動作するアプリケーションプログラム間で割り込み資源分割を行うケースが想定されていない。
上記の課題に鑑み本発明は、汎用OSにおいて特定の割り込み資源からの割り込みに対してリアルタイム性を保証する割り込み制御装置、その制御方法およびプログラムを提供することを目的とする。特に、本発明は、組み込み機器に広く必要とされるリアルタイム性を汎用OS上で保証、実現する割り込み制御装置、その制御方法およびプログラムを提供することを目的とする。
上記課題を解決するために、本発明の割り込み制御装置は、コンピュータシステムを制御するOSとして、割り込みを発生する割り込み資源からの割り込みを制御する割り込み制御装置であって、割り込み資源のうちOSが管理する第1タイプの割り込み資源およびOSが管理しない第2タイプの割り込み資源のそれぞれに対応するアドレス情報を保持するテーブル手段と、第1タイプの割り込み資源が発生した割り込みに対しては、テーブル手段のアドレス情報に基づいて第1タイプの割り込み資源に共通する管理処理を含む第1の制御処理を起動し、第2タイプの割り込み資源が発生した割り込みに対しては、テーブル手段のアドレス情報に基づいて前記管理処理を含まない第2の制御処理を起動する起動手段とを備える。
この構成によれば、第1タイプの割り込み資源に対してはリアルタイム性には劣るものの汎用性の高い割り込み処理を起動し、第2タイプの割り込み資源に対しては割り込みにすばやく応答しリアルタイム性に優れた割り込み処理を起動することができる。
ここで、前記割り込み制御装置は、さらに、アプリケーションから特定の割り込み資源とアドレス情報とを示す通知を受け付ける受付手段を有し、前記テーブル手段は、受付手段によって受け付けられた通知に従って第2タイプの割り込み資源に対応するアドレス情報を保持する構成としてもよい。
この構成によれば、アプリケーションはリアルタイム性を必要とする任意の割り込み資源を第1タイプから第2タイプに自由に設定変更することができる。
ここで、前記起動手段は、前記第2の制御処理において、コンテキストの退避と、割り込みを発生した第2タイプの割り込み資源に対応する割り込み処理と、退避していたコンテキストの復帰とを順に実行する構成としてもよい。
ここで、前記起動手段は、前記第2の制御処理において前記コンテキスト退避の開始前に他の割り込み入力を禁止し、前記第2の制御処理が完了するまでに前記割り込み入力の禁止を解除する構成としてもよい。
この構成によれば、第2タイプの割り込み資源に対応する割り込み処理においてリアルタイム性を要する処理が完了するまでは他の割り込み入力を禁止するので、リアルタイム性をより確実に確保することができる。
ここで、前記割り込み制御手段は、さらに、仮想記憶用のページテーブルのうち実行中プロセスに対応するページデータをキャッシュする変換バッファと、前記起動手段は、前記第2の制御処理において前記割り込み処理実行前に当該割り込み処理に対応するページデータを保持するよう前記変換バッファを更新する更新手段とを備える構成としてもよい。
ここで、前記受付手段は、さらにアプリケーションから、第2タイプの割り込み資源に対応する割り込み処理のプロセスIDを示す通知を受け付け、前記更新手段は、受付手段によって受け付けられた通知に示されるプロセスIDに従って前記ページテーブルから前記ページデータを読み出して前記変換バッファに格納する構成としてもよい。
この構成によれば、仮想記憶用のいわゆるTLB(Translation Look aside Buffer)と呼ばれる変換バッファを更新するので、割り込み処理をプロセス空間に容易に配置することができる。
ここで、前記テーブル手段は、さらに割り込み資源毎に割り込みレベルと前記第1タイプか第2タイプかを示す区分とを保持し、前記起動手段は、発生した割り込みの割り込みレベルとテーブル手段に保持された区分とに基づいて第1タイプと第2タイプのいずれであるかを判別する構成としてもよい。
ここで、前記起動手段は、発生した割り込みの割り込みレベルと所定レベルの優先順位を比較して、前記第1タイプと第2タイプのいずれであるかを判別する構成としてもよい。
この構成によれば、任意の割り込みレベルを第1から第2タイプに変更し、あるいは、所定レベルよりも低い(または高い)割り込みレベルの割り込み資源を第2タイプに設定することができる。
以上説明したように、本発明の割り込み制御装置によれば、リアルタイム性には劣るものの汎用性の高い割り込み処理と、割り込みにすばやく応答しリアルタイム性に優れた割り込み処理とを混在させることができる。また、アプリケーションが指定する任意の割り込みレベルにおいて、第2タイプOSの管理処理を介さないでユーザー独自の割り込み処理を起動するので、制御方法の実現が可能である。
また、アプリケーションが管理する第2タイプの割り込み資源とOSで管理する第1タイプの割り込み資源との間の割り込み処理の排他制御については、調停機構を別途設ける必要がなく、調停機構自体による処理遅延も発生しないため、応答性を阻害することなく排他制御が可能である。
さらに、アプリケーションが管理する割り込み処理関数をカーネル空間とは別空間となるアプリケーションのユーザープロセス空間に実装することを可能としている。第2タイプの割り込み資源に対応する割り込み処理、つまり割り込み処理関数(ユーザープロセス空間)への遷移は、リアルタイム性を保証することができる。
また、本発明の割り込み制御方法およびプログラムについても上記と同様の手段、作用および効果を有する。
(実施の形態1)
以下、本発明の割り込み制御方式の実施形態について、図面を参照しながら説明する。
<割り込み制御装置の構成>
図1は、本発明の実施の形態1における割り込み制御装置のシステム構成を示すブロック図である。同図では、アプリケーションと、OSと、CPUと、割り込みコントローラと、外部デバイスと階層的に示している。図11に示した従来のシステム構成と異なる点は、アプリケーションが自プロセスからOSに対してユーザーで管理したい割り込みレベル、すなわちOSの管理外とする割り込みレベルを通知する機構としてユーザ管理割り込み番号通知部112を備える点と、アプリケーションが準備する拡張割り込みエントリ関数108と呼ぶ関数アドレスを通知する機構として拡張割り込みエントリ関数通知部113を備える点と、OS内に前記アプリケーションが準備する拡張割り込み関数のアドレスの通知を受け取る割り込みベクタ更新部110を備える点とである。拡張割り込みエントリ関数108およびユーザハンドラ109はOSの一部としてではなくアプリケーションとして準備される。
図1に示した割り込み制御装置について、処理の流れを各構成要素のレジスタ構成に着目して示す図2を用いて、より具体的に説明する。
割り込みコントローラ102が、各種周辺デバイス(I/O装置)101a、101b等からの割り込み発生を検出し、該当割り込み要因に対応する要因番号レジスタ102aのフラグをセットする。当該割り込み要因がソフトウェア設定によりマスクされていなければ、割り込みコントローラ102はCPU103に割り込み発生を通知する。
CPU503は、割り込みレベルに応じた割り込みベクタレジスタ103aを有している。割り込みベクタレジスタ103aは優先度の高い順にレベル0からレベルnまでの割り込みレベルに対応するアドレスを保持する割り込みレベルレジスタを備える。
図2の例では、割り込みベクタレジスタ103aにおいてレベル0からレベルmまでの割り込みレベルレジスタは第1タイプの割り込み用であり、それぞれ共通割り込みエントリ関数105の先頭アドレスを保持しているものとする。また、レベルm+1からレベルnまでの割り込みベクタレジスタは第2タイプの割り込み用であり、それぞれ拡張割り込みエントリ関数108の先頭アドレスを保持しているものする。ここで、第1タイプの割り込みとは、従来技術と同様にOSによって共通の管理処理(主としてスケジューラ106のスケジュール処理)を経由して割り込み処理(ユーザの割り込みハンドラ107a、107bなど)が起動される汎用性に優れた割り込みをいう。第2タイプの割り込みとは、アプリケーションが管理する割り込みであって上記の管理処理を経由しないで割り込み処理(ユーザの割り込みハンドラ109a、109bなど)が起動されるリアルタイム性を保証される割り込みをいう。
割り込みコントローラ102からの割り込み通知を受理した後、該当割り込み要因がアサインされている割り込みベクタレジスタのアドレスに従って共通割り込みエントリ関数105、拡張割り込みエントリ関数108の何れかが呼び出される。同図の例では、第1タイプの割り込みである場合は、共通割り込みエントリ関数105が呼び出され、第2タイプの割り込みである場合は、拡張割り込みエントリ関数108が呼び出されることになる。
共通割り込みエントリ関数105の実行によって、割り込み要因の判別や、ユーザの割り込みハンドラ107aや107bへの遷移がなされる。その際、スケジューラ106は、他の割り込みとの多重化調停や他のプロセスとのスケジュール調整を行い、調整後に割り込み要因に対応する割り込みハンドラ107aまたは107b等を起動する。割り込みハンドラ107aや107bが呼び出されることにより割り込み要求に対応する割り込み処理が実行される(または呼び出される)。
一方、拡張共通割り込みエントリ関数108の実行によって、割り込み要因の判別や、ユーザの割り込みハンドラ107aや107bへの遷移がなされる。その際、スケジューラ106の調整を経由しないので、割り込み要因に対応する割り込みハンドラ109aや109bが遅延することなく起動される。割り込みハンドラ109aや109bが呼び出されることにより割り込み要求に対応する割り込み処理が実行される(または呼び出される)。
<アプリケーションからの登録処理>
図3は、ユーザーアプリケーションで準備する割り込み処理ルーチン(つまり拡張割り込みエントリ関数108)のアドレスをCPU内の割り込みベクタレジスタへ登録する処理を示すフローチャートである。同図の手順は、リアルタイム性を必要とする任意の割り込み要因を第2タイプの割り込みに設定する場合に、例えばアプリケーションの起動時の最初に実行される。
まず、実行中のアプリケーション(以下単にアプリケーションと呼ぶ)は、OSが管理する割り込み資源の中から任意のリアルタイム性を必要とする任意の割り込み資源の資源番号を選択する(S301)。図2の例では、割り込み資源として、割り込み要因(周辺デバイス名称又は番号)および割り込みレベルを選択する。この場合、割り込み要因と割り込みレベルが1対1または多対1で対応していれば、選択すべき資源番号は割り込みレベルだけでよい。アプリケーションは、さらに選択した割り込み資源の番号をOSに通知する(S302)。次に、前記選択した割り込みレベルに対応する割り込みベクタテーブルにアドレスを格納するための、拡張割り込みエントリ関数の名称(又は先頭アドレス)をOSに通知する(S303)。
この通知を受けてOS中の割り込みベクタ更新部110は、通知された資源番号に対応するベクタレジスタがベクタテーブル中にあれば(S304)、さらにアプリケーションは、拡張割り込みエントリ関数の先頭アドレス(自プロセス内の任意のアドレスでもよい)をOSに通知する(S305)。OSは通知されたアドレスをベクタテーブル内のベクタレジスタに格納し(S306)、本処理を終了する。もし、上記ステップS304において、アプリケーションから通知された資源番号に対応するベクタレジスタがベクタテーブル中になければエラー処理を行って(S307)本処理を終了する。
これによりアプリケーションが任意に選択した割り込み資源について、拡張割り込みエントリ関数のアドレスがベクタテーブルに格納されることになる。
<割り込み制御処理>
図4は、図3での登録処理後、実際に割り込みが発生した場合の割り込み制御処理を示すフローチャートである。
周辺I/Oなどの割り込み資源から割り込みが発生した場合、その割り込みを管理する割り込みコントローラ102が、該当割り込み要因の割り込み発生をCPUへ通知する(S401)。CPUが該当割り込み要因がアサインされている割り込みベクタレジスタへ遷移する(S402)。通知された割り込み要因に応じた、CPU内の割り込みベクタレジスタが選択される(S403)。
遷移先の割り込みベクタレジスタが、前記図3で登録された拡張割り込みエントリ関数108のアドレスである場合には、その拡張割り込みエントリ関数108が実行される(S405)。それ以外の割り込みベクタレジスタであれば、既存のOSの共通割り込みエントリ関数105が実行される(S404)。
この結果、図2に示したように、割り込みベクタレジスタ内に格納される割り込みエントリ関数のアドレスは、既存のOSで管理する共通割り込みエントリ関数105のアドレスだけでなく、アプリケーションで準備される拡張割り込みエントリ関数108のアドレスも存在しているので、アプリケーション独自にリアルタイム性のよい割り込み処理が能となる。図2の例では、割り込みレベルがレベルmよりも大きい場合には、第2タイプの割り込みとして拡張割り込みエントリ関数108が起動される。
以上のようにして、割り込み制御装置は、第2タイプの割り込みに対して、任意の割り込みレベルにおいてOS内部の管理処理を介さずに、ユーザー関数独自の割り込み処理を優れた応答性で起動することができる。
なお、図4に示した割り込み制御の代わりに図5に示す割り込み制御処理を実行してもよい。図5は、図4と比べて、ステップS405の代わりにステップS504〜S508を実行する点が異なっている。図4と同じステップ番号は同じなので説明を省略し、異なる点を中心に説明する。
S504〜S508の処理は、第2タイプの割り込みにより呼び出される拡張割り込みエントリ関数による割り込み処理、または拡張割り込みエントリ関数により呼び出される割り込み処理を示している。
まず、拡張割り込みエントリ関数の起動により、まず他の割り込み処理の入力を禁止する(S504)。この禁止は、割り込みコントローラ102のマスクレジスタの設定を変更することにより、マスカブルな割り込みの全部または一部でよい。次に、現在実行中のプロセスのコンテキスト(CPUの各種制御レジスタのデータなど)を退避し(S505)、割り込みを発生した資源に対応するユーザの割り込みハンドラ109a等を選択して実行し(S506)、ユーザの割り込みハンドラの終了後に退避したコンテキストを復帰し(S507)、割り込み入力の禁止を解除する(S508)。
この割り込み制御処理によれば、他の割り込み入力を禁止するので、より確実に割り込み処理を実行することが可能になる。その結果、リアルタイム性をより確実に保証することができる。なお、割り込み禁止およびその解除は、割り込み処理において必要とされるリアルタイム性に行うようにしてもよい。例えば、S504にて禁止した後、リアルタイム処理が完了した時点で解除してもよい。
このように、アプリケーションが管理する第2タイプの割り込みとOSで管理する第1タイプの割り込みの排他制御が可能である。図2の例では、第1タイプの割り込みと第2タイプの割り込みとの間の多重化の調停自体は、第1タイプと第2タイプとが割り込みレベルにより分割されているのでOSを介さずにCPUが実現している。このため第1タイプの割り込みと第2タイプ割り込みを調停する機構を別途設ける必要がなく、第2タイプの割り込み処理に移行するのに処理遅延も発生しない。
また、図2では、発生した割り込みがレベルmより上であるかそれ以下であるかによって、第1タイプか第2タイプかを区別する例を示したが、割り込みレベル個別に第1タイプか第2タイプかを設定する構成としてもよい。この場合に、割り込みレベル毎に第1タイプと第2タイプの何れかに任意に対応付ける管理テーブルの一例を図6に示す。
また、図6および図2において、図3に示した登録手順なしに、予めそれぞれの割り込みエントリ関数を登録するようにしてもよい。
(実施の形態2)
図7は、本発明の実施の形態2における割り込み制御装置のシステム構成を示すブロック図である。同図は、図1のシステム構成と比較して、アプリケーションが自プロセスのIDをOSに対して通知するプロセスID通知部114と、OS内に前記アプリケーションから通知されたプロセスIDに基づいてCPUのTLBを更新するTLB更新部117を備える点が主として異なっている。また、同図では、CPU内に仮想記憶用の仮想アドレスと実アドレスとの対応表であるページテーブル115と、ページテーブル115から実行中のプロセスに対応するページデータを一時的にキャッシュするTLB116を備える点を明記している。
図7の割り込み制御装置において、アプリケーションが割り込みエントリ関数を登録する処理を、図8に示すフローチャートを用いて説明する。図8のフローチャートでは、図3に示したユーザーで準備する割り込み処理ルーチン(拡張割り込みエントリ関数)をCPU内の割り込みベクタレジスタへ登録する手順と、プロセスIDの通知手順とを示している。図3と同じ番号のステップは同じ処理内容なので説明を省略し、異なるステップを中心に説明する。
アプリケーションは、通知した資源番号に対応するベクタレジスタがベクタテーブル中にある場合(S304)、自プロセスのプロセスIDをAPI(Application Program Interface)を通じてOSから取得し(S801)、取得したプロセスIDをOSに通知する(S802)。この通知を受けたOSはTLB更新部117内に通知されたプロセスIDと割り込みレベルとを記憶する。
これにより、アプリケーションからOSへのプロセスIDの通知と、OS内のTLB更新部117でのプロセスIDの記憶とが完了する。
次に図9は、図8での登録処理後に実際に割り込みが発生した場合の割り込み制御処理を示すフローチャートである。図9は、図5に示した割り込み制御処理と比較して、ステップS505とS506の間にステップS901が追加されている点が異なっている。図5と同じ番号のステップは同じ処理内容なので説明を省略し、異なる点を中心に説明する。
拡張割り込みエントリ関数の実行において、コンテキストを退避(S505)した後、TLB更新部117にTLBの更新を指示し、この指示を受けたTLB更新部117は通知されたプロセスIDのページデータをページテーブルから読み出して、TLB116に格納する(S901)。このようにTLB116をプロセスIDに基づいて更新することにより、ユーザープロセス空間アドレスが参照可能となる。
以上により、アプリケーションが管理する第2タイプの割り込みに対応する割り込み処理関数をカーネル空間とは別空間となるアプリケーションのユーザープロセス空間に実装することが可能となる。
また、割り込み発生後、拡張割り込みエントリ処理(カーネル空間)からアプリケーションが管理する割り込み処理関数(ユーザープロセス空間)へ遷移するが、カーネル内のスケジューラ106を通らないため、割り込み応答性を阻害することがない。
なお本発明は、上述した各実施例に限定されるものではなく、その要旨を逸脱しない範囲で、種々変形して実施することができる。
本発明は、コンピュータシステムを制御するOSの一部として、割り込みを発生する割り込み資源からの割り込みを制御する割り込み制御装置に適し、特に、コンピュータシステム上の割り込み資源を、OSとアプリケーションとが別々にそれぞれの割り込みを管理する割り込み制御装置、割り込み制御方法、およびプログラムに適している。
実施の形態1における割り込み制御装置の構成を示すブロック図である。 レジスタ構成に着目して処理の流れを示す動作説明図である。 拡張割り込みエントリ関数を登録する処理を示すフローチャートである。 割り込み制御処理を示すフローチャートである。 他の割り込み制御処理を示すフローチャートである。 割り込みレベル毎に第1タイプと第2タイプの何れかを対応付ける管理テーブル例を示す図である。 実施の形態2における割り込み制御装置の構成を示すブロック図である。 拡張割り込みエントリ関数を登録する処理を示すフローチャートである。 割り込み制御処理を示すフローチャートである。 従来のOSのカーネル空間からユーザープロセス空間への割り込み制御の遷移関係を示す図である。 従来のコンピュータシステムにおける割り込み制御装置の構成を示す図である。 図11における処理の流れを各構成要素のレジスタ構成に着目して示す動作説明図である。
符号の説明
102 割り込みコントローラ
102a 割り込み要因番号レジスタ
103 CPU
103a 割り込みベクタレジスタ
105 共通割り込みエントリ関数
106 スケジューラ
107 割り込みハンドラ
108 拡張割り込みエントリ関数
109 ユーザ割り込みハンドラ
110 割り込みベクタ更新部
112 ユーザ管理割り込み番号通知部
113 拡張割り込みエントリ関数通知部
114 プロセスID通知部
115 ページテーブル
116 TLB
117 TLB更新部

Claims (10)

  1. コンピュータシステムを制御するOSの一部として、割り込みを発生する割り込み資源からの割り込みを制御する割り込み制御装置であって、
    割り込み資源のうちOSが管理する第1タイプの割り込み資源およびOSが管理しない第2タイプの割り込み資源のそれぞれに対応するアドレス情報を保持するテーブル手段と、
    第1タイプの割り込み資源が発生した割り込みに対しては、テーブル手段のアドレス情報に基づいて第1タイプの割り込み資源に共通する管理処理を含む第1の制御処理を起動し、第2タイプの割り込み資源が発生した割り込みに対しては、テーブル手段のアドレス情報に基づいて前記管理処理を含まない第2の制御処理を起動する起動手段と
    を備えることを特徴とする割り込み制御装置。
  2. 前記割り込み制御装置は、さらに、アプリケーションから特定の割り込み資源とアドレス情報とを示す通知を受け付ける受付手段を有し、
    前記テーブル手段は、受付手段によって受け付けられた通知に従って第2タイプの割り込み資源に対応するアドレス情報を保持する
    ことを特徴とする請求項1記載の割り込み制御装置。
  3. 前記起動手段は、前記第2の制御処理において、コンテキストの退避と、割り込みを発生した第2タイプの割り込み資源に対応する割り込み処理と、退避していたコンテキストの復帰とを順に実行する
    ことを特徴とする請求項1又は2記載の割り込み制御装置。
  4. 前記起動手段は、前記第2の制御処理において前記コンテキスト退避の開始前に他の割り込み入力を禁止し、前記第2の制御処理が完了するまでに前記割り込み入力の禁止を解除する
    ことを特徴とする請求項3記載の割り込み制御装置。
  5. 前記割り込み制御手段は、さらに、仮想記憶用のページテーブルのうち実行中プロセスに対応するページデータをキャッシュする変換バッファと、
    前記起動手段は、前記第2の制御処理において前記割り込み処理実行前に当該割り込み処理に対応するページデータを保持するよう前記変換バッファを更新する更新手段と
    を備えることを特徴とする請求項3記載の割り込み制御装置。
  6. 前記受付手段は、さらにアプリケーションから、第2タイプの割り込み資源に対応する割り込み処理のプロセスIDを示す通知を受け付け、
    前記更新手段は、受付手段によって受け付けられた通知に示されるプロセスIDに従って前記ページテーブルから前記ページデータを読み出して前記変換バッファに格納する
    ことを特徴とする請求項5記載の割り込み制御装置。
  7. 前記テーブル手段は、さらに割り込み資源毎に割り込みレベルと前記第1タイプか第2タイプかを示す区分とを保持し、
    前記起動手段は、発生した割り込みの割り込みレベルとテーブル手段に保持された区分とに基づいて第1タイプと第2タイプのいずれであるかを判別する
    ことを特徴とする請求項1から6の何れかに記載の割り込み制御装置。
  8. 前記起動手段は、発生した割り込みの割り込みレベルと所定レベルの優先順位を比較して、前記第1タイプと第2タイプのいずれであるかを判別する
    ことを特徴とする請求項1から6の何れかに記載の割り込み制御装置。
  9. コンピュータシステムを制御するOSの一部として、割り込みを発生する割り込み資源からの割り込みを制御する割り込み制御方法であって、
    アプリケーションから特定の割り込み資源とアドレス情報とを示す通知を受け付ける受付ステップと、
    割り込み資源のうちOSが管理する第1タイプの割り込み資源に対応するアドレス情報を保持する管理テーブルに、受付手段によって受け付けられた通知に従ってOSが管理しない第2タイプの割り込み資源に対応するアドレス情報を追加する追加ステップと、
    第1タイプの割り込み資源が発生した割り込みに対しては、管理テーブルのアドレス情報に従って第1タイプの割り込み資源に共通する管理処理を含む第1の制御処理を起動し、第2タイプの割り込み資源が発生した割り込みに対しては、管理テーブルのアドレス情報に基づいて前記管理処理を含まない第2の制御処理を起動する起動ステップと
    を有することを特徴とする割り込み制御方法。
  10. 請求項9記載の割り込み制御方法をコンピュータに実行させる
    ことを特徴とするプログラム。
JP2003431252A 2003-12-25 2003-12-25 割り込み制御装置、制御方法 Withdrawn JP2005190207A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2003431252A JP2005190207A (ja) 2003-12-25 2003-12-25 割り込み制御装置、制御方法
EP04027460A EP1577768A3 (en) 2003-12-25 2004-11-18 Apparatus and method for interrupt control
US10/995,175 US7209993B2 (en) 2003-12-25 2004-11-24 Apparatus and method for interrupt control
KR1020040104272A KR20050065308A (ko) 2003-12-25 2004-12-10 인터럽트 제어 장치, 제어 방법
CNB2004101046992A CN100419688C (zh) 2003-12-25 2004-12-27 中断控制装置及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003431252A JP2005190207A (ja) 2003-12-25 2003-12-25 割り込み制御装置、制御方法

Publications (2)

Publication Number Publication Date
JP2005190207A true JP2005190207A (ja) 2005-07-14
JP2005190207A5 JP2005190207A5 (ja) 2006-12-28

Family

ID=34697652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003431252A Withdrawn JP2005190207A (ja) 2003-12-25 2003-12-25 割り込み制御装置、制御方法

Country Status (5)

Country Link
US (1) US7209993B2 (ja)
EP (1) EP1577768A3 (ja)
JP (1) JP2005190207A (ja)
KR (1) KR20050065308A (ja)
CN (1) CN100419688C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502004A (ja) * 2009-08-14 2013-01-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチコア・アーキテクチャのためのユーザレベル割り込み機構
JP2017091544A (ja) * 2015-11-16 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想プロセッサ・スレッド・グループを使用する処理ユニット内の割込みを処理するための方法、処理ユニット、および設計構造
JP2020512604A (ja) * 2018-02-13 2020-04-23 北京小米移動軟件有限公司Beijing Xiaomi Mobile Software Co.,Ltd. 指紋ロック解除方法、装置、プログラム及び記録媒体

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480755B2 (en) * 2004-12-08 2009-01-20 Hewlett-Packard Development Company, L.P. Trap mode register
CN100458708C (zh) * 2005-07-05 2009-02-04 英业达股份有限公司 中断控制系统及方法
JP2007079789A (ja) * 2005-09-13 2007-03-29 Nec Corp 計算機システム及びイベント処理方法
KR100731983B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
US7415557B2 (en) * 2006-06-06 2008-08-19 Honeywell International Inc. Methods and system for providing low latency and scalable interrupt collection
KR100843134B1 (ko) * 2006-09-15 2008-07-02 삼성전자주식회사 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법
JP5119994B2 (ja) * 2008-03-14 2013-01-16 富士通株式会社 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置
US7921195B2 (en) * 2008-06-09 2011-04-05 International Business Machines Corporation Optimizing service processing based on business information, operational intelligence, and self-learning
CN102591719A (zh) * 2011-01-17 2012-07-18 上海华虹集成电路有限责任公司 一种基于8051cpu系统的中断扩展方法
US9921891B1 (en) * 2015-03-31 2018-03-20 Integrated Device Technology, Inc. Low latency interconnect integrated event handling
JP6316522B1 (ja) * 2017-01-25 2018-04-25 三菱電機株式会社 計算機装置、タスク起動方法およびタスク起動プログラム
CN111078387B (zh) * 2017-12-25 2024-01-23 贵阳忆芯科技有限公司 中断聚合装置及其方法
CN117056062B (zh) * 2023-10-13 2024-04-02 武汉天喻信息产业股份有限公司 一种强制退出中断服务程序的方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
US6421754B1 (en) * 1994-12-22 2002-07-16 Texas Instruments Incorporated System management mode circuits, systems and methods
US5768599A (en) * 1995-02-28 1998-06-16 Nec Corporation Interrupt managing system for real-time operating system
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
JP2001216172A (ja) * 1997-09-12 2001-08-10 Hitachi Ltd マルチos構成方法
US6192442B1 (en) * 1998-04-29 2001-02-20 Intel Corporation Interrupt controller
JP3404322B2 (ja) * 1999-05-25 2003-05-06 株式会社エルミックシステム 割込処理方法、os支援システム、情報処理装置、記録媒体
US6425038B1 (en) * 1999-09-28 2002-07-23 Rockwell Automation Technologies, Inc. Conversion of desk-top operating system for real-time control using installable interrupt service routines
US6968412B1 (en) * 1999-12-30 2005-11-22 Intel Corporation Method and apparatus for interrupt controller data re-direction
DE10063936A1 (de) * 2000-12-20 2002-06-27 Thomson Brandt Gmbh Interrupt Controller für einen Mikroprozessor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502004A (ja) * 2009-08-14 2013-01-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチコア・アーキテクチャのためのユーザレベル割り込み機構
JP2017091544A (ja) * 2015-11-16 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想プロセッサ・スレッド・グループを使用する処理ユニット内の割込みを処理するための方法、処理ユニット、および設計構造
JP2020512604A (ja) * 2018-02-13 2020-04-23 北京小米移動軟件有限公司Beijing Xiaomi Mobile Software Co.,Ltd. 指紋ロック解除方法、装置、プログラム及び記録媒体

Also Published As

Publication number Publication date
CN100419688C (zh) 2008-09-17
US7209993B2 (en) 2007-04-24
EP1577768A2 (en) 2005-09-21
CN1637712A (zh) 2005-07-13
EP1577768A3 (en) 2007-08-22
US20050144347A1 (en) 2005-06-30
KR20050065308A (ko) 2005-06-29

Similar Documents

Publication Publication Date Title
US7487503B2 (en) Scheduling threads in a multiprocessor computer
US7979861B2 (en) Multi-processor system and program for causing computer to execute controlling method of multi-processor system
JP2005190207A (ja) 割り込み制御装置、制御方法
JP4345630B2 (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
US20090241119A1 (en) Interrupt and Exception Handling for Multi-Streaming Digital Processors
US7590990B2 (en) Computer system
US6748453B2 (en) Distributed applications in a portable thread environment
US20020065953A1 (en) Priority in a portable thread environment
JP2006243865A (ja) プロセッサおよび情報処理方法
WO2008062647A1 (en) Multiprocessor system, system configuration method in multiprocessor system, and program thereof
US10248456B2 (en) Method and system for providing stack memory management in real-time operating systems
US10489188B2 (en) Method for reducing interrupt latency in embedded systems
JP2008123157A (ja) プロセッサ及び割込み制御方法
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
US6961934B2 (en) Portable thread environment
WO2001086448A2 (en) A diagnostic tool for a portable thread environment
KR20070117605A (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
JP2005149312A (ja) タスク管理システム
US7702836B2 (en) Parallel processing device and exclusive control method
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2005173643A (ja) コンピュータシステム及びそのオペレーティング方法
US11403138B2 (en) Method and electronic device for handling relative priority based scheduling procedure
JP2001229038A (ja) マルチオペレーテング計算機システム
JP2006228074A (ja) マルチタスクシステムおよびマルチタスク制御方法
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080806

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080909

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20081009