JP3003968B2 - 割込み処理プログラム選択装置及び処理方法 - Google Patents

割込み処理プログラム選択装置及び処理方法

Info

Publication number
JP3003968B2
JP3003968B2 JP4095606A JP9560692A JP3003968B2 JP 3003968 B2 JP3003968 B2 JP 3003968B2 JP 4095606 A JP4095606 A JP 4095606A JP 9560692 A JP9560692 A JP 9560692A JP 3003968 B2 JP3003968 B2 JP 3003968B2
Authority
JP
Japan
Prior art keywords
interrupt
input
output device
processing program
identification data
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 - Lifetime
Application number
JP4095606A
Other languages
English (en)
Other versions
JPH05173804A (ja
Inventor
リチャード・ベアルコフスキ
ジェームズ・ダレル・リード
Original Assignee
インターナショナル・ビジネス・マシーンズ・コーポレイション
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 インターナショナル・ビジネス・マシーンズ・コーポレイション filed Critical インターナショナル・ビジネス・マシーンズ・コーポレイション
Publication of JPH05173804A publication Critical patent/JPH05173804A/ja
Application granted granted Critical
Publication of JP3003968B2 publication Critical patent/JP3003968B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナル・コンピュ
ータ・システムに関し、具体的には、コンピュータ・シ
ステムが共用割込みレベルでのハードウェア割込みに直
接かつ効率的に応答できるようにするための方法及び装
置に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】一般に
パーソナル・コンピュータ・システム、具体的にはIB
Mパーソナル・コンピュータ・システムは、現代社会の
多くの分野にコンピュータ・パワーを提供するために広
範に使用されるようになった。パーソナル・コンピュー
タ・システムは、通常、システム・プロセッサ、表示装
置、キーボード、1つまたは複数のディスケット・ドラ
イブ、固定ディスク記憶装置、及び任意選択のプリンタ
を有するシステム・ユニットからなる、デスク・トップ
型、床置き型、または携帯型のマイクロコンピュータと
して定義することができる。これらのシステムは、主と
して1人または小グループのユーザに独立の計算能力を
提供するように設計され、個人または企業が購入できる
ように安価な価格になっている。このようなパーソナル
・コンピュータ・システムの例は、IBMのパーソナル
・コンピュータ、パーソナル・コンピュータXT、パー
ソナル・コンピュータAT、及びIBMパーソナル・シ
ステム/2(以下では、それぞれIBM PC、XT、
AT、PS/2と称する)モデル25、30、50、6
0、70、80、90、95である。
【0003】これらのシステムは、大別して2つのファ
ミリーに分類することができる。第1のファミリーは、
通常、ファミリー1モデルと呼ばれ、IBMパーソナル
・コンピュータAT、及び「IBM互換」機によって例
示されるバス・アーキテクチャを使用する。第2のファ
ミリーは、ファミリー2モデルと呼ばれ、IBMパーソ
ナル・システム/2 モデル50ないし95によって例
示されるIBMのマイクロ・チャネル・バス・アーキテ
クチャを使用する。ファミリー1及びファミリー2で使
用されているバス・アーキテクチャは、当技術分野で周
知である。
【0004】IBM PCなどのファミリー1モデルの
最初期のパーソナル・コンピュータ・システムから始ま
り、ファミリー2モデルを通じて、中央演算処理装置
は、インテル「86ファミリー」のプロセッサから選択
された。インテル86ファミリーのプロセッサには、イ
ンテル・コーポレーションから市販されている808
8、8086、80286、80386、80486プ
ロセッサが含まれる。インテル86ファミリーのプロセ
ッサのアーキテクチャは、当業者には周知であって、文
書に十分に記載されており、「86ファミリー」の以前
のプロセッサに対するソフトウェア投資を保護する、上
位互換の命令セットを提供する。ソフトウェア適用業務
ベースを保存するプロセッサのこの上位互換性は、IB
MPC及び以後の各種モデルの大成功に寄与した主要な
因子の1つである。
【0005】IBM PC及びXTは、IBMパーソナ
ル・コンピュータ・ラインの最初のモデルであり、イン
テル8088プロセッサを使用していた。IBMパーソ
ナル・コンピュータ・システムの次の重要な変更は、イ
ンテル80286プロセッサを使用するIBM ATで
あった。PS/2ラインの各モデルは、いくつかのイン
テル・プロセッサを使用していた。PC及びXTと類似
のシステムは、インテル8086を使用したPS/2モ
デル30の1バージョンである。PS/2モデル50及
び60はともにインテル80286プロセッサを使用し
ていた。IBMPS/2モデル80、及びIBM PS
/2モデル70のいくつかのバージョンでは、インテル
80386プロセッサを使用し、IBM PS/2モデ
ル70の他のバージョンならびにPS/2モデル90
XP 486及びモデル95 XP 486ではインテ
ル80486を使用している。これらすべてのシステム
の共通点の1つは、インテル86ファミリー・プロセッ
サの使用である。DOSやOS/2など、市販されてい
る周知の様々なソフトウェア・オペレーティング・シス
テムが、インテル・プロセッサ・ファミリの様々なプロ
セッサ上で動作することができる。
【0006】インテル86ファミリーのプロセッサは各
種の「モード」をサポートする。インテル86ファミリ
ーの基本モードは「実モード」である。実モードは80
88及び8086の唯一の動作モードである。実モード
は1メガバイトのアドレス空間をサポートする。808
8及び8086プロセッサには保護機構はない。802
86プロセッサは、実モードと「保護モード」の両方の
動作モードをサポートする。保護モードは、「保護」と
いう言葉が意味するように、ある適用業務プログラムが
他の適用業務プログラムまたはオペレーティング・シス
テムの動作に干渉するのを防止する、保護された動作モ
ードを提供する。80286は、8088及び8086
より優れた拡張されたアドレス指定能力を提供し、最大
16メガバイトまでの直接アドレス指定が可能である。
下方互換性を維持するために、80286は、実モード
で動作して8088または8086の実モードをエミュ
レートすることができる。80386及び80486
は、インテル86ファミリー・アーキテクチャをさらに
拡張し、最大4ギガバイトの物理メモリをアドレス指定
できる能力を提供する。また、80386及び8048
6は、「仮想86」動作モードをサポートする。仮想8
6モードは、保護モード環境の全範囲で実モードの動作
特性をサポートする。この仮想86モードは、DOSオ
ペレーティング・システムの下で走る適用業務とのきわ
めて高水準の互換性を提供するのに有用である。
【0007】IBMのPS/2モデル50ないし95な
どのパーソナル・コンピュータ・システムは、割込み制
御装置を利用して、割込み要求と呼ばれる非同期のハー
ドウェア事象を管理する。割込み要求とは、割込み制御
装置にシステムからのアテンションを必要としていると
告げる、ある装置からの信号である。割込み要求の理由
の1つとして、システムに使用可能なデータまたは状況
を通知することがある。システム内には、それぞれ1つ
の割込みレベルに対応する割込み信号が複数ある。複数
の装置が単一のレベルで動作しているとき、そのレベル
は共用されているという。割込み制御装置は、システム
の中央演算処理装置に電気的に接続されている。この電
気的接続によって、割込み制御装置はプロセッサに割込
み要求を通知することができる。割込み制御装置は、割
込みの優先順位付けを管理する。
【0008】プロセッサは、割込みのレベルに基づい
て、割込み処理ルーチンを選択する。複数のハードウェ
ア装置が、ある共用割込みレベルで割込みを示すことが
できる。これらのレベルが共用されるのは、ハードウェ
ア割込みレベルが有限の資源であり、速やかに使い尽く
される可能性があるため必要だからである。したがっ
て、独自の割込みレベルを割り当てることが可能であっ
たとしても、その拡張能力の点でシステムに制限が課さ
れるので、それは好ましい方策ではない。各割込み装置
は、割込みを処理するためのソフトウェア割込み処理ル
ーチンを持っていなければならない。共用レベルで割込
みを処理する現在の諸方法は、正しいソフトウェア割込
み処理ルーチンを識別するために反復処理を必要とす
る。この非直接的な正しい割込み処理ルーチンの識別方
法は、ある共用レベルにある装置の数が増すにつれて、
効率が落ちる可能性がある。各ハードウェア割込みは、
ある特定の記憶アドレスへ制御を移させる。このアドレ
スから始まるソフトウェアが、「第1レベル」割込み処
理ルーチンの始めである。次にこの第1レベル割込み処
理ルーチンは、第2レベル割込み処理ルーチンに制御を
移し、後者がその割込みを処理する。
【0009】割込みを処理する現在の方法は様々である
が、連鎖とポーリングの2つの基本タイプのうちの1つ
として記述することができる。連鎖法は、ポインタで連
鎖された複数のソフトウェア・ルーチンからなる。各ル
ーチンは、特定の入出力装置用に設計されている。この
方法は、特定の入出力要求を処理するのに必要なルーチ
ンがチェーンの最後にあって、所望のルーチンを探し出
すのに何度もルーチン間で制御を移転することが必要と
なる可能性があるので、システム性能に負担を与える。
その上、この方法は、ロード可能な割込み処理ルーチン
が割込みベクトルを変更できるようになり、しかも割込
みチェーンを維持するためにロード可能な割込み処理ル
ーチンに頼っているので、システムの保全性に問題が生
じる。
【0010】共用レベルのシステムで割込みを処理する
第2の方法は、ポーリング法である。この方法では、第
1レベル割込み処理ルーチンが、問題の装置用の割込み
処理ルーチンを見つけるまで、各第2レベル割込み処理
ルーチンをポーリングする。これには、何回も制御を移
転しては戻す動作を実行することが必要である。この方
法は、過度のオーバーヘッドをもたらし、割込み応答時
間がクリティカルな分野では時間遅延を引き起こす。
【0011】連鎖法もポーリング法も、割込みを処理す
るために何回かの制御移転シーケンスを必要とする。こ
うした制御の移転は、割込みに対する応答に要する時間
に悪影響を与え、システム性能を低下させる。共用割込
みレベルのシステムで割込みを処理する現在の方法は、
第2レベル割込み処理装置が割込みチェーンを変更でき
るためにシステムの保全性が低下し、また正しい割込み
処理ルーチンを識別するための過度の制御移転シーケン
スによってシステムの性能が低下する。どちらの方法も
共用レベルのシステム内で割込み処理ルーチンに直接ア
クセスできない。
【0012】
【課題を解決するための手段】時間のかかる制御移転シ
ーケンスの反復の代りに、所定のテーブル中のデータを
入出力装置から検索したデータと比較することにより、
単一の正しい割込み処理ルーチンを独立に決定すること
のできる機構を使用した、コンピュータ・システムの割
込みサブシステムの性能を改善するための装置及び方法
を開示する。正しい装置を示す一致が見つかったとき、
テーブルにそのアドレスが記憶されている割込み処理ル
ーチンに制御が移転する。
【0013】
【実施例】本発明の理解を深めるため、本発明の開示の
基礎として、図1ないし6に示す従来技術のシステムの
動作についてより詳しく説明する。
【0014】図面、具体的には図1を参照すると、ハー
ドウェア装置が割込み要求110を生成し、それが割込
み制御装置112によって検出される。割込み制御装置
112は、所定の方式に従ってそれらの入力信号を管理
する。割込み制御装置112は、ある割込みを処理すべ
きであると判断したとき、中央演算処理装置(CPU)
のプロセッサ114に合図する。割込み制御装置112
は、どのタイプの割込みを処理すべきかプロセッサ11
4に知らせる。この割込みタイプは、プロセッサが検索
できる256個の可能な割込みアドレス・ポインタ(割
込みベクトル)118〜122のうちの1つに直接対応
するものである。次にプロセッサ114はこのアドレス
・ポインタを、割込み処理ルーチン124〜128の開
始アドレスを見つける手段として使用する。アドレス・
ポインタ118〜122及び割込み処理ルーチン124
〜128は、システムの記憶空間、通常はRAM116
にある。ROMや再プログラマブルROMなど、RAM
以外のメモリも使用できることに留意されたい。次にプ
ロセッサ114は検索したアドレス・ポインタに対応す
るアドレスで見つかった割込み処理ルーチンの実行を開
始する。
【0015】割込み処理ルーチン用のアドレス・ポイン
タの記憶は、プロセッサの現動作モードに応じて変わ
る。図2を参照すると、RAM116の全システム・ア
ドレス空間内に実モード割込みベクトル空間230〜2
34が示されている。実モードでは、各割込みベクトル
が4バイトの実モード・ポインタとして記憶され、合計
256個の割込みベクトルが使用できる。実モード・ベ
クトルは、システム・アドレス空間116内の1組の固
定アドレス、具体的には16進値でアドレス0から3F
Fまでにある。割込み制御装置112は、ある割込み要
求をこの256項目のベクトル・テーブル230〜23
4にインデックスするある値を含んでいる。
【0016】次に図3を参照すると、保護モードで動作
するとき、プロセッサ114は、割込み記述子テーブル
(IDT)基底値242とIDT限界値244を含んで
いる。これらの値を用いると、割込みベクトル248〜
254(保護モードでは「ゲート」と呼ばれる)を、実
モードの固定位置ではなく、RAM116のシステム・
アドレス空間のどこかに置くことができる。保護モード
割込み処理ルーチン・アドレス・ポインタ248〜25
4は通常RAM116に記憶される。
【0017】複数のハードウェア装置が、ある共用割込
みレベルで割込みを示すことができる。これらのレベル
が共用されるのは、ハードウェア割込みレベルが有限の
資源であり、速やかに使い尽くされる可能性があるため
必要だからである。各割込み装置は、割込みを処理する
ためのソフトウェア割込み処理ルーチンを持っていなけ
ればならない。共用レベルで割込みを処理する現在の諸
方法は、正しいソフトウェア割込み処理ルーチンを識別
するために反復処理を必要とする。この非直接的な正し
い割込み処理ルーチンの識別方法は、ある共用レベルに
ある装置の数が増すにつれて、効率が落ちる可能性があ
る。各ハードウェア割込みは、ある特定の記憶アドレス
へ制御を移させる。このアドレスから始まるソフトウェ
アが、「第1レベル」割込み処理ルーチンの始めであ
る。
【0018】割込みを処理する現在の方法は様々である
が、連鎖とポーリングの2つの基本タイプのうちの1つ
として記述することができる。次に図4を参照すると、
割込み連鎖とは、RAM116中の割込み処理ルーチン
・ポインタ300が、割込み処理ルーチン304、30
8、312の始めを指すというものである。割込みが検
出されると、そのチェーンの先頭にある割込み処理ルー
チンC304に制御が移る。割込み処理ルーチンが、割
込みを起こしたのはその装置ではなかったと判定した場
合、次の割込みベクトル(記憶アドレス・ポインタ30
6)が指す割込み処理ルーチンB308に制御が移る。
同様にして、割込み処理ルーチンB308は、割込みベ
クトル310を介して割込み処理ルーチンA312をア
ドレスすることになる。当該の処理ルーチンがチェーン
の末尾にある割込み処理ルーチン312であった場合
は、その割込みを処理するためにそのチェーン中のあら
ゆる処理ルーチンが実行されることになる。ここでは例
示のため3つの割込み処理ルーチンしか示さなかった
が、このプロセスは任意の深さにネストされることが可
能であり、この方法は、ロード可能な割込み処理ルーチ
ンが割込みベクトルを変更できるようになり、しかも割
込みチェーンを維持するためにロード可能な割込み処理
ルーチンに頼っているので、システムの保全性に問題が
生じる。
【0019】次に図5を参照すると、RAM116内の
割込み処理ルーチン・ポインタ332が指す第1レベル
割込み処理ルーチン324は、対応する処理ルーチンが
識別されるまで、やはりRAM116内にあるいくつか
の第2レベル割込み処理ルーチン336〜340をポー
リングすることができる。これには、何回も制御を移転
しては戻す動作を実行することが必要である。この方法
は、過度のオーバーヘッドをもたらし、割込み応答時間
がクリティカルな分野では時間遅延を引き起こす。
【0020】以上のことからわかるように、連鎖法もポ
ーリング法も、割込みを処理するために何回かの制御移
転シーケンスを必要とする。
【0021】次に図面、具体的には図6を参照すると、
本発明を適用できるパーソナル・コンピュータ・システ
ム410が示されている。図示されているように、パー
ソナル・コンピュータ・システム410は、相互接続さ
れたいくつかの構成要素を含む。より具体的には、シス
テム装置412が、任意選択の表示装置414(通常の
ビデオ・ディスプレイなど)に結合され、それを駆動す
ることができる。また、システム装置412は、任意選
択としてキーボード416やマウス418などの入力装
置に結合することができる。また、プリンタ420など
任意選択の出力装置もシステム装置412に接続するこ
とができる。最後に、システム装置412は、ディスケ
ット・ドライブ422など1つまたは複数の大容量記憶
装置を含むことができる。
【0022】以下に説明するように、システム装置41
2は、キーボード416、マウス418、ローカル・エ
リア・ネットワーク・インターフェースなどの入力装置
に応答する。さらに、ディスケット・ドライブ422、
表示装置414、プリンタ420、ローカル・エリア・
ネットワーク通信システムなどの入出力装置が、周知の
方式でシステム装置412に接続されている。もちろ
ん、当業者なら知っているように、その他の通常の構成
要素もシステム装置412に接続してそれと対話するこ
とができる。本発明によれば、コンピュータ・システム
410は、ランダム・アクセス・メモリ(RAM)11
6、560〜564、読取り専用メモリ(ROM)58
6、及び複数の入出力装置414、416、418、4
20、422に相互接続されたプロセッサ114を含
む。
【0023】通常の使用では、パーソナル・コンピュー
タ・システム410は、サーバとしての小グループのユ
ーザにまたは単一のユーザに独立の計算能力を与えるよ
うに設計され、個人または小企業が購入できるように安
価な価格になっている。動作に当っては、プロセッサ1
14は、IBMのOS/2オペレーティング・システム
やDOSなどのオペレーティング・システムの下で動作
する。このタイプのオペレーティング・システムは、入
出力装置とオペレーティング・システムの間にBIOS
インターフェースを含む。BIOSは、引用によって本
明細書に合体される "IBM Personal System/2 and Pers
onal Computer BIOS Interface Technical Reference",
1988 に明確に記載されている。BIOSは、マザーボ
ードまたはプレーナ・ボード上のROMに最初に記憶す
ることができ、POSTと呼ばれる電源投入時自己試験
セクションに診断ルーチンを含んでいる。
【0024】図7を参照すると、本発明によるプレーナ
・ボード508の様々な構成要素を示す、システム装置
412中のプレーナ・ボード508の構成図が示されて
いる。さらに図5は、パーソナル・コンピュータ・シス
テム410の入出力スロット446及びその他のハード
ウェアへのプレーナ・ボード508の接続を示す。プレ
ーナ・ボード508には、プロセッサ114が接続され
ている。プロセッサ114は、高速CPUローカル・バ
ス524によってバス制御式タイミング装置538の制
御下でメモリ制御ユニット550に接続されている。メ
モリ制御ユニット550はさらに揮発性ランダム・アク
セス・メモリ(RAM)116に接続されている。任意
の適当なプロセッサ114が使用できるが、1つの好適
なプロセッサはインテル80386である。
【0025】(データ、アドレス及び制御構成要素を含
む)CPUローカル・バス524は、プロセッサ11
4、任意選択の演算用コプロセッサ527、キャッシュ
制御装置528及びキャッシュ・メモリ530の接続を
行う。またCPUローカル・バス524上にはシステム
・バッファ532も結合されている。システム・バッフ
ァ532はそれ自体(CPUローカル・バスに比べて)
低速のシステム・バス534に接続されている。このシ
ステム・バスもアドレス、データ及び制御構成要素を含
む。システム・バス534は、システム・バッファ53
2と入出力バッファ536の間に延びる。システム・バ
ス534はさらにバス制御/タイミング装置538及び
DMAユニット540に接続されている。DMAユニッ
ト540は、中央調停装置548とDMA制御装置54
1からなる。入出力バッファ536は、システム・バス
534と、マイクロ・チャネル・バス544などの任意
選択の機能バスの間のインターフェースを提供する。マ
イクロ・チャネル・バス544には、マイクロ・チャネ
ル・アダプタ・カード(図示せず)を受けるための複数
の入出力スロット546が接続されている。入出力スロ
ット546はさらに入出力装置またはメモリに接続する
こともできる。調停制御バス542は、DMA制御装置
541及び中央調停装置548を入出力スロット546
及びディスケット・アダプタ582に結合する。システ
ム・バス534には、メモリ制御ユニット550も接続
されている。メモリ制御ユニッ550は、メモリ制御装
置552、アドレス・マルチプレクサ554、及びデー
タ・バッファ556からなる。メモリ制御ユニット55
0は、さらにRAMモジュール116で表されているラ
ンダム・アクセス・メモリに接続されている。メモリ制
御装置552は、アドレスをプロセッサ114に、また
プロセッサ114からRAM116の特定の領域にマッ
プする論理機構を含む。パーソナル・コンピュータ・シ
ステム410は1メガバイトの基本RAMモジュールで
示されているが、図7で任意選択のメモリ・モジュール
560〜564によって表されるように、追加のメモリ
を相互接続できることを理解されたい。
【0026】システム・バス534とプレーナ入出力バ
ス568の間にラッチ・バッファ566が結合されてい
る。プレーナ入出力バス568は、アドレス、データ、
及び制御構成要素を含む。プレーナ入出力バス568に
沿って、ディスプレイ・アダプタ570(これは任意選
択の表示装置414を駆動するために使用される)、ク
ロック572、不揮発性RAM574、割込み制御装置
112(以下ではプログラマブル割込み制御装置または
PICと称することもある)、RS232アダプタ57
6、並列アダプタ578、複数のタイマ580、ディス
ケット・アダプタ582、PCキーボード/マウス制御
装置584、読取り専用メモリ(ROM)586など各
種の入出力アダプタ及びその他の周辺構成要素が結合さ
れている。ROM586はBIOSを格納している。こ
のBIOSはさらに、パーソナル・コンピュータ・シス
テム410の主要構成要素を試験するために使用される
POSTを含んでいる。
【0027】クロック572は時刻計算に使用される。
不揮発性RAM574は、システム構成データを記憶す
るために使用される。すなわち、不揮発性RAM574
は、システムの現在の構成を記述する値を格納する。た
とえば、不揮発性RAM574は、固定ディスクまたは
ディスケットの容量、表示装置のタイプ、メモリの量な
どを記述する情報を含む。さらに、これらのデータは、
特別の構成プログラムが実行されたときに不揮発性RA
M574に記憶される。この構成プログラムの目的は、
このシステムの構成を特徴づける値を不揮発性RAM5
74に記憶することである。これらの値は、システムの
電源が切れるときセーブされる。
【0028】キーボード/マウス制御装置584には、
ポートA及びBが接続されている。これらのポートは、
PCキーボード及びマウスをPCシステムに接続するた
めに使用される。RS232アダプタ装置576には、
RS232コネクタが結合されている。モデムなど任意
選択の装置を、このコネクタを介してシステムに結合す
ることができる。
【0029】以下で図8、図9、図10、及び図11を
具体的に参照して本発明を説明するが、以下の説明の最
初に、本発明による方法は、様々なプログラム構造で使
用できることが企図されていることを理解されたい。
【0030】ここに述べる方法は、装置レベルの割込み
処理ルーチンを選択する責任を、ルータとして働く第1
レベル割込み処理ルーチンに委ねるものである。割込み
処理ルーチンが、割込みの後、呼び込まれる前に何らか
の迂回なしに(すなわち、正しい割込み処理ルーチンを
見つけるために他の1つまたは複数の割込み処理ルーチ
ンを実行する必要なしに)直接呼び込まれる場合、これ
を第1レベル割込み処理ルーチンという。このルータ
は、テーブルに記憶されている情報によって判定する1
組の簡単なテストを行い、どこに制御を移すべきかを決
定する。ルータは、割込み源を決定し、正しい(第2レ
ベル)装置割込み処理ルーチンに制御を直接移す。割込
み処理ルーチンが、第1レベル割込み処理ルーチンの直
後に呼び込まれる場合、これを第2レベル割込み処理ル
ーチンという。すなわち、その前に1つの迂回レベルが
ある割込み処理ルーチンである。
【0031】次に図8を参照すると、装置が割込み60
0を発行する。割込みは割込み制御装置112で処理さ
れ、割込み制御装置112はこの情報をプロセッサ11
4に中継する。プロセッサ114は次にその割込み処理
ルーチンを指すアドレス・ポインタ602を検索し、ア
ドレス・ポインタ602が示す命令604に実行を移
す。第1レベル割込み処理ルーチンは次に「割込み装置
経路指定テーブル」606(IDRT)を参照し、割込
み装置がそのテーブルに登録されているかどうか判定す
る。このIDRT606については、後で図10と図1
1を参照して詳しく論じる。装置がテーブルに登録され
ていない場合は、既存の方法608に制御が戻る。した
がって、サポートされる装置は直接適切な割込み処理ル
ーチンを選択することができ、サポートされない装置は
連鎖またはポーリングを使って互換性を維持することが
できる。装置が登録されている場合、対応する装置処理
ルーチン610に制御が移転する。
【0032】次に図9を参照すると、割込みプロセスの
詳細な図が示されている。特定の割込みレベルで動作す
るハードウェア装置720〜724はシステムに割込み
要求を提示することができる。割込み制御装置112は
割込み要求を調整し、その事象を優先順位方式に従って
プロセッサ114に提示する。次いで、プロセッサ11
4は、システム・メモリ116に記憶されているベクト
ル・テーブルからこの割込み要求に対する対応する割込
みベクトル728を得る。割込みベクトル728が指す
第1レベル割込み処理ルーチン734に制御が移転す
る。この第1レベル割込み処理ルーチン734は、ID
RT735に格納されている情報によって割込みの発生
源を決定し、正しい装置処理ルーチンである736〜7
40のうちの1つに制御を移す。次いで装置処理ルーチ
ンがそのハードウェア装置にサービスする。第1レベル
割込み処理ルーチン(ルータ)734から対応する装置
処理ルーチンへの制御の移転は直接行われ、潜在的処理
ルーチンの連鎖やポーリングは実行されない。
【0033】次に図10を参照すると、IDRT735
のフォーマットが示されている。サポートされる各装置
はこのテーブルにエントリをもつことになる。このテー
ブルはシステム起動時に初期設定することができ、また
システム動作時に動的にエントリを作成することもでき
る。IDRT735を初期設定する方法の1つは、オペ
レーティング・システムが装置ドライバをロードしてい
る段階で行うことである。装置ドライバの初期設定中に
割込み処理ルーチンがメモリにロードされる。装置ドラ
イバの初期設定部分が、オペレーティング・システム・
サービス・コールに割込み処理ルーチンの存在を登録さ
せる。この割込み処理ルーチンの登録には、装置ドライ
バ初期設定ルーチンによってオペレーティング・システ
ム処理ルーチンに渡されたパラメータに基づいてテーブ
ル・エントリを作成することが含まれる。その結果、I
DRT735は初期設定終了時には、システムに接続さ
れた入出力装置に関係する所定のテーブル・データを含
んでいることになる。割込みが発生したとき、対応する
第1レベル割込み処理ルーチンが図10のテーブルを参
照して、装置入出力アドレスを得る。このアドレスを照
会することにより、入出力装置の割込み状況を得ること
ができる。この入出力アドレスの値が、入出力マスク情
報と論理的に結合される。その結果得られる値がテスト
値と比較され、一致した場合は、処理ルーチン・アドレ
スに制御が渡される。装置アドレスは入出力マップまた
はメモリ・マップすることができ、また処理ルーチン・
アドレスは物理アドレスでもオフセットでもポインタで
もよいことに留意されたい。アドレス指定の機構は実施
態様によって変わる。制御フィールドを使って、それだ
けに限定されるものではないが、例えばデータ値及び入
出力マスク上で実行される論理操作のタイプや処理ルー
チン・アドレス・フィールドにあるアドレスのタイプな
ど、様々なオプションを指定することができる。
【0034】ある実施態様は、各ハードウェア割込みレ
ベルごとに1つの第1レベル割込み処理ルーチンをもつ
可能性が高くなるはずである。1つの第1レベル割込み
処理ルーチンだけを使えばオーバーヘッドは増大する
が、それでも実施はできる。各ハードウェア割込みレベ
ルごとに別々の第1レベル割込み処理ルーチンを設ける
と、各レベルごとに別々のテーブルを維持できることに
なる。ある実施態様で1つのテーブルを使う場合、各第
1レベル割込み処理ルーチンがそのエントリを求めてテ
ーブルを検索することができ、あるいは対応するエント
リに直接アクセスするためテーブルを指すポインタを維
持することができることになる。
【0035】一例として、図11はハードウェア割込み
レベル4に2台の装置を示している。第1レベル割込み
処理ルーチンは、入出力アドレス1000H(Hは16
進数を示す)にある入出力データを得、その値を000
00001b(bは2進数を示す)の入出力マスクでマ
スクする。この値が次に1のテスト値と比較される。一
致した場合は、処理ルーチン・アドレス、この場合は
「ポインタa」に制御が移る。入出力装置アドレス10
00Hから得られたデータが一致しなかった場合は、入
出力装置アドレス2000Hからのデータを使ってこの
プロセスが繰り返される。
【0036】テーブル中のエントリの順序によって、そ
のレベル内の相対的優先順位が決まることに留意された
い。ハードウェア割込み制御装置はなお、個々のレベル
用のそれ自体の優先順位機構を維持している。
【0037】第1レベル割込み処理ルーチンがテーブル
・エントリを使い果してしまったが、その割込みがまだ
処理されていない場合は、その割込みの処理を試みて既
存の方式を働かせることができる。図11の最後のエン
トリを参照のこと。この方式は、最後のエントリをデフ
ォルト割込み処理ルーチンとする割込みチェーンでもよ
い。デフォルト割込み処理ルーチンは、サービスを受け
られない場合、その割込みレベルをマスクオフする。そ
のレベルをマスクオフすると、その後の割込みによって
システムが故障することが防止される。
【図面の簡単な説明】
【図1】非共用割込みベクトルの割込み処理を示す図で
ある。
【図2】実モードの割込みベクトル・テーブルを示す図
である。
【図3】保護モードの割込みベクトル・テーブルを示す
図である。
【図4】割込み処理ルーチンの連鎖を示す図である。
【図5】割込み処理ルーチンのポーリングを示す図であ
る。
【図6】典型的なコンピュータ・システムを示す図であ
る。
【図7】図6に示したコンピュータ・システム内のプレ
ーナ・ボードの構成図である。
【図8】本発明で使用する方法を示す流れ図である。
【図9】本発明で使用するハードウェアとソフトウェア
の関係を示す構成図である。
【図10】本発明で使用する装置経路指定テーブル中の
データのフォーマットを示す図である。
【図11】本発明で使用する装置経路指定テーブル中の
サンプル・データを示す図である。
【符号の説明】
112 割込み制御装置 114 プロセッサ 116 システム・メモリ 600 割込み 602 アドレス・ポインタ 604 命令 606 割込み装置経路指定テーブル(IDRT) 608 方法
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・ダレル・リード アメリカ合衆国33435、フロリダ州ボイ ントン・ビーチ、ミッション・ヒル・ロ ード 600番地 (56)参考文献 特開 昭61−196336(JP,A) 特開 昭51−27745(JP,A) 特開 昭63−296140(JP,A)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】共用割込みレベル式システム内で割込み処
    理プログラムを直接選択するための装置であって、 (a)入出力装置と、 (b)上記入出力装置に接続され、上記の各入出力装置
    からの割込み信号を受信する手段、レベルに応じて割込
    み信号に優先順位をつける手段、及び上記の優先順位を
    つけた割込み信号を出力する手段とを備える割込み制御
    装置と、 (c)上記割込み制御装置から出力された上記優先順位
    をつけた割込み信号を受け取る手段を備えるプロセッサ
    と、 (d)各入出力装置の割込み状況を決定する手段と、 (e)各入出力装置に関連する装置識別データ及び割込
    み処理プログラムのアドレスを含む複数の要素を有する
    テーブルを保持するための記憶手段と、 (f)各要素に関連する入出力装置の割込み状況と上記
    テーブル内の上記装置識別データとを比較し、該割込み
    状況と上記装置識別データが一致したと比較手段が指示
    するときに、上記入出力装置に関連する上記要素中でア
    ドレス指定された割込み処理プログラムを直接選択する
    ための比較及び選択手段と、 (g)上記テーブルの末尾にあり、連鎖割込み処理プロ
    グラムのアドレスを有し、どの入出力装置割込み状況と
    も一致しない装置識別データを含む最終要素と、 (h)上記テーブルのエントリをもたない入出力装置が
    割込みを提示したときに、上記連鎖割込み処理プログラ
    ムを選択する手段とを備え、 サポートされる入出力装置用の割込み処理プログラムに
    は直接アクセスすることができ、サポートされない入出
    力装置用の割込み処理プログラムには割込み連鎖を介し
    てアクセスすることができる、入出力装置割込みが直接
    選択された割込み処理プログラムによって処理されるよ
    うにした装置。
  2. 【請求項2】共用割込みレベル式システム内で割込み処
    理プログラムを直接選択するための装置であって、 (a)入出力装置と、 (b)上記入出力装置に接続され、上記の各入出力装置
    からの割込み信号を受信する手段、レベルに応じて割込
    み信号に優先順位をつける手段、及び上記の優先順位を
    つけた割込み信号を出力する手段とを備える割込み制御
    装置と、 (c)上記割込み制御装置から出力された上記優先順位
    をつけた割込み信号を受け取る手段を備えるプロセッサ
    と、 (d)各入出力装置の割込み状況を決定する手段と、 (e)各入出力装置に関連する装置識別データ及び割込
    み処理プログラムのアドレスを含む複数の要素を有する
    テーブルを保持するための記憶手段と、 (f)各要素に関連する入出力装置の割込み状況と上記
    テーブル内の上記装置識別データとを比較し、該割込み
    状況と上記装置識別データが一致したと比較手段が指示
    するときに、上記入出力装置に関連する上記要素中でア
    ドレス指定された割込み処理プログラムを直接選択する
    ための比較及び選択手段と、 (g)上記テーブルの末尾にあり、ポーリング割込み処
    理プログラムのアドレスを有し、どの入出力装置割込み
    状況とも一致しない装置識別データを含む最終要素と、 (h)上記テーブルのエントリをもたない入出力装置が
    割込みを提示したときに、上記ポーリング割込み処理プ
    ログラムを選択する手段とを備え、 サポートされる入出力装置用の割込み処理プログラムに
    は直接アクセスすることができ、サポートされない入出
    力装置用の割込み処理プログラムには割込みポーリング
    を介してアクセスすることができる、入出力装置割込み
    が直接選択された割込み処理プログラムによって処理さ
    れるようにした装置。
  3. 【請求項3】共用割込みレベル式システム内で割込み処
    理プログラムを直接選択するための方法であって、 (a)少なくとも1個の入出力装置から割込み信号と割
    込み状況を受け取るステップと、 (b)割込みレベルに応じて割込み信号に優先順位をつ
    けるステップと、 (c)各入出力装置に関連する装置識別データ及び割込
    み処理プログラムのアドレスを含む複数の要素を有する
    テーブルを記憶するステップと、 (d)各要素に関連する入出力装置の割込み状況と上記
    テーブル内の上記装置識別データとを比較し、該割込み
    状況と上記装置識別データが一致したと比較手段が指示
    するとき、上記入出力装置に関連する上記要素中でアド
    レス指定された割込み処理プログラムを直接選択するた
    めの比較及び選択するステップと (e)上記テーブルの末尾にあり、連鎖割込み処理プロ
    グラムのアドレスを有し、どの入出力装置割込み状況と
    も一致しない装置識別データを上記テーブルに含める最
    終要素を含めるステップと、 (f)上記テーブルのエントリをもたない入出力装置が
    割込みを提示したときに、上記連鎖割込み処理プログラ
    ムを選択するステップとを含み、 サポートされる入出力装置用の割込み処理プログラムに
    は直接アクセスすることができ、サポートされない入出
    力装置用の割込み処理プログラムには割込み連鎖を介し
    てアクセスすることができる、入出力装置割込みが直接
    選択された割込み処理プログラムによって処理される方
    法。
  4. 【請求項4】共用割込みレベル式システム内で割込み処
    理プログラムを直接選択するための方法であって、 (a)少なくとも1個の入出力装置から割込み信号と割
    込み状況を受け取るステップと、 (b)割込みレベルに応じて割込み信号に優先順位をつ
    けるステップと、 (c)各入出力装置に関連する装置識別データ及び割込
    み処理プログラムのアドレスを含む複数の要素を有する
    テーブルを記憶するステップと、 (d)各要素に関連する入出力装置の割込み状況と上記
    テーブル内の上記装置識別データとを比較し、該割込み
    状況と上記装置識別データが一致したと比較手段が指示
    するとき、上記入出力装置に関連する上記要素中でアド
    レス指定された割込み処理プログラムを直接選択するた
    めの比較及び選択するステップと (e)上記テーブルの末尾にあり、ポーリング割込み処
    理プログラムのアドレスを有し、どの入出力装置割込み
    状況とも一致しない装置識別データを含む最終要素を上
    記テーブルに含めるステップと、 (f)上記テーブルのエントリをもたない入出力装置が
    割込みを提示したときに、上記ポーリング割込み処理プ
    ログラムを選択するステップとを含み、 サポートされる入出力装置用の割込み処理プログラムに
    は直接アクセスすることができ、サポートされない入出
    力装置用の割込み処理プログラムには割込みポーリング
    を介してアクセスすることができる、入出力装置割込み
    が直接選択された割込み処理プログラムによって処理さ
    れる方法。
JP4095606A 1991-05-01 1992-04-15 割込み処理プログラム選択装置及び処理方法 Expired - Lifetime JP3003968B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69416191A 1991-05-01 1991-05-01
US694161 1991-05-01

Publications (2)

Publication Number Publication Date
JPH05173804A JPH05173804A (ja) 1993-07-13
JP3003968B2 true JP3003968B2 (ja) 2000-01-31

Family

ID=24787654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4095606A Expired - Lifetime JP3003968B2 (ja) 1991-05-01 1992-04-15 割込み処理プログラム選択装置及び処理方法

Country Status (2)

Country Link
EP (1) EP0511769A1 (ja)
JP (1) JP3003968B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3242508B2 (ja) * 1993-11-05 2001-12-25 松下電器産業株式会社 マイクロコンピュータ
US5815701A (en) * 1995-06-29 1998-09-29 Philips Electronics North America Corporation Computer method and apparatus which maintains context switching speed with a large number of registers and which improves interrupt processing time
US5838987A (en) * 1995-10-06 1998-11-17 National Semiconductor Corporation Processor for eliminating external isochronous subsystems
US5764996A (en) * 1995-11-27 1998-06-09 Digital Equipment Corporation Method and apparatus for optimizing PCI interrupt binding and associated latency in extended/bridged PCI busses
US6292866B1 (en) * 1998-04-24 2001-09-18 Matsushita Electric Industrial Co., Ltd. Processor
US6754839B1 (en) 2000-03-17 2004-06-22 Exar Corporation UART clock wake-up sequence
US6601122B1 (en) 2000-04-17 2003-07-29 International Business Machines Corporation Exceptions and interrupts with dynamic priority and vector routing
GB0212262D0 (en) * 2002-05-28 2002-07-10 Sendo Int Ltd Accessory detection and identification
JP4451884B2 (ja) * 2004-02-05 2010-04-14 キングス インフォメーション アンド ネットワーク コンピュータ保安装置、コンピュータ保安方法、及び記録媒体
GB2450516A (en) * 2007-06-27 2008-12-31 Symbian Software Ltd Servicing interrupts in a device having multiple interrupt controllers
JP5233817B2 (ja) * 2009-04-23 2013-07-10 富士通株式会社 ドライバ・プログラム、デバイス管理方法及びコンピュータ装置
US9330035B2 (en) * 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling
JP2015104093A (ja) * 2013-11-28 2015-06-04 株式会社日立製作所 通信パケット処理装置および通信パケット処理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5428260B2 (ja) * 1974-09-02 1979-09-14
JPS61196336A (ja) * 1985-02-27 1986-08-30 Toshiba Corp 割込対象認識方式
US4768149A (en) * 1985-08-29 1988-08-30 International Business Machines Corporation System for managing a plurality of shared interrupt handlers in a linked-list data structure

Also Published As

Publication number Publication date
EP0511769A1 (en) 1992-11-04
JPH05173804A (ja) 1993-07-13

Similar Documents

Publication Publication Date Title
US5887164A (en) System and method for enabling a target computer to use storage resources of a host computer
US7712104B2 (en) Multi OS configuration method and computer system
US7987438B2 (en) Structure for initializing expansion adapters installed in a computer system having similar expansion adapters
JP3364495B2 (ja) 追加ボード
US5953516A (en) Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5854905A (en) Extensible bios for boot support of devices on multiple hierarchical buses
US5987604A (en) Method and apparatus for providing execution of system management mode services in virtual mode
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US5530858A (en) Method and apparatus for background processing for PCMCIA card services
US5095526A (en) Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status
US6003112A (en) Memory controller and method for clearing or copying memory utilizing register files to store address information
US7120778B2 (en) Option ROM virtualization
US6272618B1 (en) System and method for handling interrupts in a multi-processor computer
JP3003968B2 (ja) 割込み処理プログラム選択装置及び処理方法
JPH0640317B2 (ja) デジタルデータ処理システム
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US5187791A (en) Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag
US6775734B2 (en) Memory access using system management interrupt and associated computer system
JP3468247B2 (ja) ファームウェアを管理するためのコンピュータ・システムおよび装置
US6105080A (en) Host adapter DMA controller with automated host reply capability
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
US5367676A (en) Data processor for multiple macro-service processings based on a single macro-service request
US7568061B2 (en) Initializing expansion adapters installed in a computer system having similar expansion adapters
JP2535086B2 (ja) リング削減ロジック装置
EP0515046A1 (en) Method and apparatus for extending physical system addressable memory