JPH0754500B2 - 共用割込みシステム - Google Patents

共用割込みシステム

Info

Publication number
JPH0754500B2
JPH0754500B2 JP61200251A JP20025186A JPH0754500B2 JP H0754500 B2 JPH0754500 B2 JP H0754500B2 JP 61200251 A JP61200251 A JP 61200251A JP 20025186 A JP20025186 A JP 20025186A JP H0754500 B2 JPH0754500 B2 JP H0754500B2
Authority
JP
Japan
Prior art keywords
interrupt
interrupt handler
line
handler
routine
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
JP61200251A
Other languages
English (en)
Other versions
JPS6252655A (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 JPS6252655A publication Critical patent/JPS6252655A/ja
Publication of JPH0754500B2 publication Critical patent/JPH0754500B2/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

【発明の詳細な説明】 A.産業上の利用分野 本発明はディジタル・コンピュータのアーキテクチャに
関するものであり、より具体的には、マイクロコンピュ
ータ・システムの複数の入出力装置間でハードウェア割
込みを共用するための改良されたシステムに関するもの
である。
B.従来技術 最近のマイクロコンピュータ・システムは、一般にアド
レス・バスとデータ・バスによって、逐次通信装置、ロ
ーカル・エリア・ネットワーク・インターフェース、並
行印刷機構、ディスケット制御装置、実時間クロック、
特殊付加プロセッサ、固定ディスク制御装置などの複数
の入出力装置に接続された中央演算処理装置を含んでい
る。一般にかかる入出力装置はCPUとは非同期的に作動
し、不規則な間隔でCPUのアテンションを必要とするだ
けである。
CPUによるかかる入出力装置のサービスを調整するため
に、先行技術では主として2つの方法が用いられてき
た。第1の方法は、状況ポーリング法であり、第2の方
法は割込み法である。
第2図は、複数の入出力装置にサービスするために状況
ポーリング法を用いる汎用マイクロコンピュータ・シス
テムの構成を示したものである。第2図において、CPU2
0′は、データ・バス26によって複数の入出力(I/O)装
置23および25ならびにランダム・アクセス記憶装置(RA
M)32および読取り専用記憶装置(ROM)30に接続されて
いる。複数の状況ポーリング線21がCPU20′から出て、
それぞれI/O装置23および25に向っている。マルチプレ
クサ19を使って、CPU20′に接続されるポーリング線21
の数を減らすことができる。状況ポーリング法では、CP
U20′は各I/O装置を逐次的にテストして、サービスが必
要かどうか決定しなければならない。CPU20′中の主プ
ログラムはその時間の大部分をI/O装置23および25への
周期的ポーリングに充てているので、この方法は、マイ
クロコンピュータ・システムのシステム・スループット
を減らす効果がある。
第3図は、割込み法を用いた別の先行技術の方法を示し
たものである。第3図において、CPU20は、データ・バ
ス26によってI/O装置27および29ならびにRAM32およびRO
M30に接続されている。第3図のシステムに含まれてい
るもう一つのハードウェア・エレメントは、プログラム
可能割込み制御装置(PIC)22であり、やはりデータ・
バス26に接続されている。各I/O装置27および29は、PIC
22に向う別々の専用割込み線28を備えている。このPIC2
2は、I/O装置27または29の一方から、そのI/O装置専用
の割込み線28を経て割込み信号(IRQ)を受け取り、CPU
20に割込み要求信号(IREQ)を出力する。CPU20は、PIC
22から割込み要求信号(IREQ)を受け取るまで、その主
プログラムを実行することができる。割込み要求信号
(IREQ)を受け取ると、対応する割込み信号に出したI/
O装置に対するサービスを行うため、主プログラムの実
行を中止する。PIC22からCPU20に送られる割込み要求信
号(IREQ)は、CPU20に、現在実行中の命令を完了し
て、割込みハンドラと呼ばれる新しいルーチンを取り出
すべきことを通知する。割込みハンドラは、割込みを要
求しているI/O装置に対してサービスを行なう。このサ
ービスが完了すると、CPU20はその主プログラムを中止
した所から再開する。第3図の割込み法を使うと、第2
図の状況ポーリング法に比べてシステム・スループット
が著しく増大する。
割込み駆動式マイクロコンピュータ・システムで全体的
管理を行うPIC22は既に知られている。このPIC22は、I/
O装置から割込み信号(IRQ)を受け取って、どのIRQ信
号が最高の優先順位をもつか決定し、そのIRQ信号が現
在サービス中のレベルよりも高い優先順位をもつかどう
か決定し、この決定にもとづいてCPU20に割込み要求信
号(IREQ)を出す。かかるPIC22の一例は、インテル社
発行のiAPX86、88ユーザーズ・マニュアル、1981年8
月、B−67〜B−83頁に記載されているインテル8259A
である。
第3図に示すやり方でPIC22を用いたマイクロコンピュ
ータ・システムは例えばIBMパーソナル・コンピュータ
である。
第3図の各I/O装置27、29は、一般にその特定操作要件
に関連する専用プログラム、一般にサービス・ルーチン
ないし割込みハンドラと呼ばれているプログラムを備え
ている。IBMパーソナル・コンピュータでは、割込みベ
クトルによって割込みハンドラがアクセスされる。「割
込みベクトル」の語は、割込みハンドラ・プログラムが
ある記憶位置のアドレスを保持するのに使われる、記憶
装置中の位置という意味である。最初システム電源がオ
ンになるとき、初期設定操作の一つは、RAM32の低アド
レス位置に少くとも8個の割込みベクトルを構築するこ
とである。各割込みベクトルは、8本の割込み線28のう
ちの対応する1本上で割込みを要求する8個のI/O装置
のうちの一つからの割込み信号を処理するための、割込
みハンドラ・ルーチンの出発点の記憶アドレスを表す。
IBMパーソナル・コンピュータの操作方式では、I/O装置
27または29が対応する1本の割込み線を比較的高い電位
にするとき、PIC22が割込み信号(IRQ0〜IRQ7)を検出
する。PIC22がその要求を引き受ける場合、CPU20に通じ
るIREQ出力線が高レベルになって、CPU20に有効な割込
み要求が行なわれたことを指示する。CPU20のIREQ線に
割込み要求が存在するとき、CPU20はその割込み肯定応
答マシン・サイクルに入る。割込み肯定応答マシン・サ
イクルは、現命令の処理を完了して、現ステータス・フ
ラグ、ある種の演算レジスタの内容、および現命令ポイ
ンタを、RAM32中に設けられた後入れ先出しスタックに
記憶する。CPU20は、2種の割込み肯定応答(IACK)パ
ルスの一つを出す。これらの割込み肯定応答(IACK)パ
ルスは、PIC22に、CPU20がその割込み要求を引き受けた
ことを合図する。PIC22は、このときRAM32中の割込みベ
クトルの一つによって割込みハンドラ・ルーチンの実行
をすぐに開始することができる。これは、CPU20が出す
2つの割込み肯定応答(IACK)パルスのシーケンス中に
行われる。第2の割込み肯定応答パルスが出ると、PIC2
2は、割込みハンドラ・ルーチンに対応する所望の割込
みベクトルに関係する単一の割込みベクトル・バイトを
データ・バス26に載せる。CPU20は、PIC22から割込みベ
クトル・バイトを受け取ると、RAM32中での割込みベク
トル位置の実アドレスを計算する。次にRAM32中のアド
レスされた割込みベクトルの内容をCPU20がアクセスす
る。この内容は、アテンションを要求しているI/O装置
の割込みにサービスする割込みハンドラ・ルーチンの始
めのアドレスである。次に割込みハンドラ・ルーチンの
プログラム実行をCPU20が実施する。
サービス要求を実施するための先行技術による操作方法
の一例は、通信媒体からデータ・バイトを受け取ったば
かりの非同期通信制御装置がI/O装置27である場合であ
る。I/O装置27は、受け取ったデータ・バイトをRAM32中
で以前に留保しておいた適当なバッファに転送するた
め、CPU20からサービスを要求する。RAM32中の対応する
割込みハンドラ・ルーチンは、対応する割込みベクトル
によってアクセスされ、CPU20がデータ・バイトをI/O装
置27からRAM32に転送させることができるようにするの
に必要な命令シーケンスをもたらす。
割込みハンドラ・ルーチンが実行を完了すると、割込み
ハンドラ・ルーチンの終りに割込みリターン命令(IRE
T)を使って、以前にCPU20が実行中であった主プログラ
ムを再開することができる。割込みリターン命令(IRE
T)は、RAM32中の記憶スタックから、命令ポインタ、コ
ード・セグメント、およびフラグを読み取って、それら
をCPU20の適当な位置に入れる。こうして、主プログラ
ムは、割込みハンドラ・ルーチンの実行中にどんな変化
が起ころうと、CPU中で中断された所から再開する。
説明の便宜上、以下では8本の割込み線28を各線上の割
込み信号の名前(IRQ0〜IRQ7)で呼ぶことにする。IBM
パーソナル・コンピュータでは、PIC22に入る8本の割
込み線のうちの2本が、システム・タイマとキーボード
用に充てられている。優先順位が最高の割込み線IRQ0
が、システム・タイマに接続され、優先順位が2番目の
割込み線IRQ1がキーボード制御装置に接続されている。
残り6本の割込み線IRQ2〜IRQ7は、I/O装置が共用す
る。優先順位が3番目の割込み要求線IRQ2は、垂直帰線
間隔がいつ発生するかを示すため、ディスプレイ・アダ
プタに接続されている。優先順位が下から2番目の割込
み要求線IRQ6は、ディスケット制御装置に接続され、そ
の制御装置がある操作を完了したときアクティブにな
る。かくて、容易にわかるように、PIC22に通じる予備
割込み線28の使用可能性は、逐次通信アダプタ、並行印
刷機構アダプタ、固定ディスク制御装置、ローカル・エ
リア・ネットワーク・アダプタなどのオプションのI/O
装置の付加によってさらに減少する。
割込み線の本数が少ないという問題を解決するための一
方法が、特開昭61−28154号公報に記載されている論理
回路構成によってもたらされる。先行技術では、割込み
線に接続されたI/O装置は、割込み線を低レベルに保
ち、次にその線を高レベルにドライブして割込み信号を
生成する。
これに対して、上記公開公報の発明では、単一の割込み
線を共用する各I/O装置に共用割込み論理装置が設けら
れる。この共用割込み論理装置は、共用割込み線が高電
位に浮遊できるようにする。割込み線を共用する各I/O
装置は、それぞれの共用割込み論理装置を使って共用割
込み線を低電位レベルにすることにより、割込み信号
(パルス)を生成することができる。パルスの前縁がPI
Cを活動化し、パルスの後縁はPICにCPUに対する割込み
要求を出すように合図する。各I/O装置の共用割込み論
理装置は、共用割込み線についてその線に接続されてい
るI/O装置の一つから割込み信号が発生したかどうか監
視しなければならない。その割込み線に接続されている
何れかのI/O装置がその線を低電位にドライブすると、
その線に接続されている各I/O装置の共用割込み論理装
置は、すべての共用割込み論理装置が再使用可能信号に
よって再活動化されるまで、次の割込み信号の発生を防
止する。共用割込み線に接続された各I/O装置の共用割
込み論理装置は、割込みステータス・ビットと割込み可
能ビットを含んでいる。これらのビットは対応する割込
みハンドラ・ルーチンによって制御し監視することがで
きる。共用割込み論理装置が再活動化されたときI/O装
置の割込みステータス・ビットが第1の2進状態にある
場合、共用割込み論理装置は割込み信号を再発生する。
こうして、2つのI/O装置が同時に割込み信号を出し、
一方のI/O装置にサービスした後、割込みハンドラ・ル
ーチンが再使用可能信号を出す場合に、割込みの喪失が
防止される。
C.発明が解決しようとする問題点 複数の異なる割込みハンドラによってサービスされる複
数のI/O装置間で単一の割込み線をどう共用するかの問
題は、マルチプログラミング・システムやマルチタスキ
ング・システムでは複雑になる。マルチタスキング・シ
ステムでは、プログラムをいつでもどんな順序でも開始
し終了することができる。順次にロードされた割込みハ
ンドラに対する割込みベクトルの内容を順次に保管する
手順を採用したとすると、かかる手順は、同じ割込みを
共用する一連のプログラムのどれもがどんな順序でも終
了できるマルチタスキング・システムでは、うまく働か
ない。
マルチタスキング・オペレーティング・システムは、シ
ステムRAMに常駐する複数の適用業務プログラムを切り
換える能力をもつ。典型的な場合、マルチタスキング・
オペレーティング・システムは、システムRAMを、それ
ぞれが一つずつ適用業務プロログラムを含む複数の保護
領域に区分する。各区画は、それ自身のコマンド・プロ
ンプトをもつことができ、したがって、ユーザは、他の
プログラムの実行中に背景区画に切り換えて、コンパイ
ラを開始し、リストを印刷し、またはキーボード操作を
余り必要としない他のプログラムを開始し、その後再び
主(前景)区画に切り換えて、作業を続けることができ
る。たとえば、IBMパーソナル・コンピュータでは、マ
ルチタスキング・オペレーティング・システムは、DOS
と適用業務プログラムの間にそれを設置することによっ
て動作することができる。ある適用業務プログラムがDO
SまたはBIOSを呼び出すとき、その適用業務プログラム
は、まずマルチタスキング・オペレーティング・システ
ムを介在させなければならない。このときマルチタスキ
ング・オペレーティング・システムは、同時にアクティ
ブな他の適用業務プログラムの一つを実行するときかど
うか判断することができ、DOSの呼出しを行なった元の
適用業務プログラムを続行せずに新しい適用業務プログ
ラムにシステムの制御権を渡すことができる。DOSの呼
出しを頻繁に行わない適用業務プログラムでは、マルチ
タスキング環境にあるプログラムが充分に定期的な間隔
で時間を公平に共用できるようにするために、タイム・
スライシング技術を用いることができる。タイム・スラ
イシングでは、マルチタスキング・オペレーティング・
システムは、現在実行中のタスクがどれだけの時間実行
され続けているかを監視する。ある時間の間、あるタス
クがDOSの呼出しを行なわなかった場合、マルチタスキ
ング・オペレーティング・システムは、現在実行中のタ
スクを中止して、他の適用業務プログラムを同じ長さの
時間実行させる。かかるマルチタスキング・オペレーテ
ィング・システムでは、優先順位の高い適用業務プログ
ラムが実行時間の大きな部分を獲得できるようにするた
め、優先順位スケジューリング機能をも含めることがで
きる。
一本の割込み線を複数のI/O装置の間でどのように共用
するかの問題が差し迫った問題になるのは、かかるマル
チタスキング・オペレーティング・システムにおいてで
ある。この問題の解決方法として、I/O装置用の割込み
ハンドラを任意の順序で終了させることにすると、割込
みベクトル・アドレスの連続アクセスのために簡単な連
結手順を適用することができなくなる。
したがって、改良された割込み共用技術を提供すること
が、本発明の一目的である。
D.問題点を解決するための手段 連係リスト(チェーン)・データ構造の複数の割込みハ
ンドラを管理し、マイクロコンピュータの共通割込み線
を共用する複数のI/O装置にサービスするための共用割
込みシステムを開示する。このシステムは、記憶装置に
おいて、新たな割込みハンドラ・ルーチンを以前にロー
ドされた割込みハンドラ・ルーチンにリンクして連係リ
スト・データ構造にするための秩序立った手段を提供す
る。またこのシステムは、割込みハンドラによってサー
ビスされる複数のI/O装置の間で共通割込み線を共用す
るための秩序立った手段を提供する。さらにこのシステ
ムは、I/O装置を非活動化すべきときに割込みハンドラ
・ルーチンのチェーンから対応する割込みハンドラ・ル
ーチンをアンリンクするための秩序立った手段を提供す
る。このシステムは、I/O装置を始めに活動化された順
序とは異なる順序で非活動化できるマルチタスキング・
オペレーティング・システム環境で特に有用である。
本発明によれば、新しくロードされた割込みハンドラ・
ルーチンを以前にロードされた割込みハンドラ・ルーチ
ンにリンクする際に、チェーンにおける最初の割込みハ
ンドラ・ルーチンを指し示す割込みベクトルの内容を、
新しくロードされた割込みハンドラ・ルーチンを指すポ
インタに置き換える。前の割込みベクトルは、順方向ポ
インタ・アドレスとして使われ、新しくロードされた割
込みハンドラ・ルーチンから一定のオフセットのところ
に記憶される。
本発明によれば、共用割込み線に割込み信号が印加され
た結果、新しくロードされた割込みハンドラ・ルーチン
が制御権を得るとき、このルーチンが対応するI/O装置
の割込みステータス・レジスタの内容を読み取って、対
応するI/O装置が共用割込み線上に割込み信号を発生さ
せたかどうか決定する。対応するI/O装置がその割込み
信号を発生させた場合、新しくロードされた割込みハン
ドラ・ルーチンがその割込みにサービスし、プロセッサ
制御命令(CLI)を出して割込みを不能にし、割込みハ
ンドラ・ルーチンが完了したときPIC(プログラム可能
割込み制御装置)に無指定割込み終了コマンドを出し、
次に大域再活動化信号を出してその割込み線を共用する
すべてのI/O装置上の共用割込み論理装置を再活動化す
る。これは、例えば割込み線を共用するすべてのI/O装
置上の共用割込み論理装置によって監視されるバスへ特
定のI/Oアドレスを出すことによって実施する。各I/O装
置はこのアドレスをデコードし、それが各I/O装置に印
加される大域再活動化信号となる。次に割込みハンドラ
・ルーチンは、CPUで中断されたプログラムの割込み点
に制御権を戻す割込みリターン(IRET)命令を出す。対
応するI/O装置が、共用割込み線上に割込み信号を発生
させなかった場合、新しくロードされた割込みハンドラ
・ルーチンは、その実行可能コードの開始位置から一定
のオフセット値だけ離れたところに記憶されている順方
向ポインタ・アドレスを使って、チェーン中の次の割込
みハンドラ・ルーチンに制御権を渡す。
割込みハンドラ・ルーチンのチェーンから特定の割込み
ハンドラ・ルーチンをアンリンクする場合は、まずチェ
ーン内でアンリンクすべき割込みハンドラ・ルーチンの
位置を指定しなければならない。これは、割込みベクト
ルから出発し、連続する各割込みハンドラ・ルーチン用
の順方向ポインタを使って、次の割込みハンドラ・ルー
チンの入口点を見つけることによって実施される。チェ
ーン中の各割込みハンドラ・ルーチンに出合うと、その
識別子が削除すべき目的割込みハンドラの識別子と比較
される。チェーン中で目的割込みハンドラ・ルーチンに
出合うと、チェーン中の直前の割込みハンドラ・ルーチ
ンの順方向ポインタの位置に目的割込みハンドラ・ルー
チン中の順方向ポインタの内容を書込み、削除された割
込みハンドラ・ルーチンの前後でチェーンをスキップさ
せることによって目的割込みハンドラ・ルーチンが削除
される。
本発明の共用割込みシステムは、複数のI/O装置が単一
の割込み線を共用できるようにし、さらにマルチタスキ
ング・オペレーティング・システム環境で割込みハンド
ラ・ルーチンを任意の順序で終了させることのできる改
良された割込み共用技術を提供する。
E.実施例 第1図、第4図、第5図は、同じ割込み線IRQ7を共用す
る複数のI/O装置31、33、35およびRAM32中のそれに対応
する割込みハンドラH(A)、H(B)、H(C)の関
係を示したものである。
割込み共用の原理を例示するために割込み線IRQ7を選ん
だが、別の割込み線を選択することも可能である。それ
ぞれ割込み線IRQ2とIRQ6に接続されている、先行技術に
よるI/O装置27と29は、割込み線(IRQ2またはIRQ6)を
低レベルに保つことによって作動し、次にその割込み線
を高レベルにドライブして割込み信号を発生させる。こ
れに対し、本明細書で開示するシステムでは、単一の割
込み線IRQ7を共用する複数のI/O装置31、33、35のそれ
ぞれに共用割込み論理装置46がある。この共用割込み論
理装置46は、共用割込み線を高電位に浮遊させる。これ
は、たとえば各論理装置中のプルアップ抵抗器によって
実施できる。割込み線IRQ7を共用する各I/O装置31、3
3、35は、各共用割込み論理装置46を使って、共用割込
み線IRQ7上の割込み信号パルスを低電位レベルにするこ
とができる。このパルスの前縁がPIC22を活動化し、パ
ルスの後縁はPIC22にCPU20に対する割込み要求を発生さ
せるように合図する。各I/O装置31、33、35の共用割込
み論理装置46は、共用割込み線IRQ7について、その割込
み線に接続されているI/O装置31、33、35のうちの一つ
から割込み信号が発生しているかどうか監視しなければ
ならない。割込み線IRQ7に接続されている何れかのI/O
装置31、33、35がその割込み線を低電位にドライブする
と、すべてのI/O装置31、33、35のすべての共用割込み
論理装置46が線52上の大域再活動化信号によって再活動
化されるまで、割込み線IRQ7に接続されたI/O装置31、3
3、35の共用割込み論理装置46が、次の割込み信号の発
生を防止する。
共用割込み線IRQ7に接続されている各I/O装置31、33、3
5の各共用割込み論理装置46は、割込みステータス・ビ
ットINTを割込みステータス・ラッチ48中に記憶し、割
込み可能ビットENAを割込み可能ラッチ50に記憶してい
る。これらのビットは、それぞれ対応する割込みハンド
ラ・ルーチンH(A)、H(B)またはH(C)によっ
て制御し監視することができる。共用割込み論理装置46
が線52によって再活動化されるとき、I/O装置31、33、3
5に対する割込みステータス・ビットINTが第1の2進状
態“1"である場合、共用割込み論理装置46は再びIRQ7上
に割込み信号を出す。こうして、複数のI/O装置31、3
3、または35が同じ時間間隔中に割込み信号を出し、割
込みハンドラ・ルーチンが一つのI/O装置にサービスし
た後、大域再活動化信号を出す場合に、割込みの喪失が
防止される。
適用業務プログラムAP(N)が共用割込み線IRQ7の使用
を要求するとき、第11図に示すように割込み共用プログ
ラムS(N)を伴わなければならない(Nは適用業務
A、B、Cなどの識別子である)。本発明によれば、割
込み共用プログラムS(N)は、第II表に示すリンク論
理ルーチンL(N)、第I表に示す割込みハンドラ・ル
ーチンH(N)、および第III表に示すアンリンク論理
ルーチンU(N)の3つの部分からなる。割込み共用プ
ログラムS(N)は、適用業務プログラムAP(N)をロ
ードするときロードすることができ、RAM32の連続部分
を占めるか、または別々の既知の位置を占めることがで
きる。割込み線IRQ7の使用を要求する各適用業務プログ
ラムAP(N)と関連するリンク論理ルーチンL(N)
が、新しくロードされた割込みハンドラ・ルーチンH
(N)を以前にロードされた割込みハンドラ・ルーチン
のチェーンにリンクするための秩序立った方法をどのよ
うにしてもたらすかを、第II表および第6図ないし第9
図に示す。所与の適用業務プログラムAP(N)がアクテ
ィブな間に割込み線IRQ7を共用するための秩序立った方
法を割込みハンドラH(N)がどのようにしてもたらす
かを第5図および第I表に示す。特定の割込みハンドラ
・ルーチンH(N)に対応する適用業務プログラムAP
(N)がマルチタスキング・オペレーティング・システ
ム環境で非活動化されるとき、複数の割込みハンドラ・
ルーチンから特定の割込みハンドラ・ルーチンH(N)
をアンリンクするための秩序立った手段をアンリンク論
理ルーチンU(N)がどのようにしてもたらすかを、第
III表および第10図に示す。
本発明によれば、第8図に示した、新しくロードされた
割込みハンドラ・ルーチンH(B)を、H(A)を含む
以前にロードされた割込みハンドラ・ルーチンのチェー
ンにリンクするための方法では、新しくロードされた割
込みハンドラ・ルーチンH(B)に対応する新しく活動
化されたリンク論理ルーチンL(B)が低アドレスの割
込みベクトルV(7)の現内容(“アドレスA")をその
新しくロードされた割込みハンドラ・ルーチンH(B)
に対するポインタ“アドレスB"で置き換える。割込みベ
クトルの現内容(“アドレスA")は、順方向ポインタ・
アドレスとして使用され、新しくロードされた割込みハ
ンドラ・ルーチンH(B)から一定のオフセット値だけ
離れたところにある制御ブロックC(B)のポインタ位
置P(B)に記憶される。第8図には、各割込みハンド
ラH(A)、H(B)などから一定のオフセット値だけ
離れたところにある制御ブロックC(A)、C(B)な
どが示してある。各制御ブロックC(N)は順方向ポイ
ンタ・アドレスP(N)、フラグF(N)及び後述する
署名ワードを記憶するフィールドフィールドを含む。
本発明によれば、操作中に割込みレベルを共用する方法
において、共用割込み線IRQ7上の割込み信号の結果とし
て、新しくロードされた適用業務プログラムAP(B)に
対する割込みハンドラ・ルーチンH(B)が制御権を得
るとき、新しくロードされた割込みハンドラH(B)
は、対応するI/O装置33用の割込みステータス・ラッチ4
8の内容を読み取って、対応するI/O装置33が共用割込み
線IRQ7上に割込み信号を発生させたかどうか決定する。
当該I/O装置33が割込み信号を発生させた場合、新しく
ロードされた割込みハンドラ・ルーチンH(B)はその
割込みにサービスし、プロセッサ制御命令(CLI)を出
して割込み不能にし、割込みハンドラ・ルーチンH
(B)が完了したときPIC22に無指定割込み終了(EOI)
コマンドを出し、次に割込み線IRQ7を共用するすべての
I/O装置31、33、35の共用割込み論理装置46を再活動化
する。これは、割込み線IRQ7を共用するすべてのI/O装
置31、33、35の共用割込み論理装置46によって監視され
るアドレス・バス24に特定のI/Oアドレスを置き、その
結果として線52の大域再活動化信号を出すことによって
行なわれる。各I/O装置31、33、35はそのアドレス・デ
コーダ38でアドレスをデコードし、それによって大域再
活動化信号が各I/O装置31、33、35の共用割込み論理装
置46に通じる線52に印加される。次に、割込みハンドラ
・ルーチンH(B)が割込みリターン命令(IRET)を出
して、制御を主プログラムの中断点に戻す。
新しくロードされた適用業務プログラムAP(B)に対応
するI/O装置33が共用割込み線IRQ7上に割込み信号を発
生させなかった場合、新しくロードされた割込みハンド
ラ・ルーチンH(B)は、そこから一定のオフセット値
だけ離れたところのポインタ位置P(B)に記憶されて
いる順方向ポインタ・アドレス(“アドレスA")を使っ
て、第5図に示す割込みハンドラ・ルーチンのチェーン
中の2番目に新しくロードされた割込みハンドラ・ルー
チンH(A)に制御権を渡す。“CLI"、“EOI"および
“IRET"命令を含む、インテル8088CPU20およびインテル
8259PIC22用の命令セットについての説明は、上記に引
用したiAPX86、88ユーザーズ・マニュアルである。
本発明によれば、割込みハンドラ・ルーチンH(A)、
H(B)、H(C)のチェーンから特定の割込みハンド
ラ・ルーチンH(B)をアンリンクするための方法にお
いて、アンリンク論理ルーチンU(B)は、まずチェー
ン内の割込みハンドラ・ルーチンH(B)の位置を探さ
なければならない。これは、低アドレスの割込みベクト
ルV(7)から始めて、連続する各割込みハンドラ・ル
ーチンH(N)用の順方向ポインタP(N)を使って次
の割込みハンドラ・ルーチンの入口点を見つけることに
よって実施される。チェーン中の各割込みハンドラ・ル
ーチンに(それぞれH(C)、H(B)、H(A)の順
序で)ぶつかると、その識別子が削除すべき目的割込み
ハンドラH(B)の識別子と比較される。この過程は、
チェーン横断と呼ばれる。チエーン中で目的割込みハン
ドラ・ルーチンH(B)にぶつかると、チェーン中の以
前の割込みハンドラ・ルーチンH(C)の順方向ポイン
タ位置P(C)に目的割込みハンドラ・ルーチンH
(B)のポインタ位置P(B)からの順方向ポインタ
(“アドレスA")をロードし、それによってチェーンが
割込みハンドラ・ルーチンH(B)を飛ばしてつながる
ようになる。
本発明のもう一つの特徴は、署名ワード8記憶するフィ
ールド(署名フィールド)を提供することを含んでい
る。この署名ワードはその複製コピーが各割込みハンド
ラ・ルーチンH(N)から一定のオフセット値だけ離れ
たところにある各制御ブロックC(N)に記憶され、割
込みハンドラ・チェーンが本願発明にかかる共用割込み
技術に適合するかどうか決定するためにそれに照会す
る。アンリンク論理ルーチンU(N)の実行中、割込み
チェーンが適合しないことがわかった場合、アンリンク
・エラー回復手順を呼び出すことができる。エラー回復
手順の一例は、低アドレス中の元の割込みベクトルを復
元し、割込みハンドラ・チェーンの適合しない部分を迂
回するものである。
第1図に示すマイクロコンピュータ・システムでは、CP
U20は、アドレス・バス24、データ・バス26、I/Oメモリ
線34、および読み取り書込み(R/W)線36によって、RAM
32およびI/O装置27、29、31、33、35と通信する。CPU20
からアドレス・バス24を経て出されるアドレスは、線34
が第1の2進状態にある場合はI/O用であり、線34が第
2の2進状態にある場合はRAM32用である。アドレス・
バス24上のアドレスがRAM32用である場合、RAM32からの
データ読取り操作はR/W線36上の第1の2進状態によっ
て決定され、RAM32へのデータ書込み操作は、線36上の
第2の2進状態によって確定される。第1図に示す各I/
O装置は、上述のようにPIC22に割込み信号を出すことに
よって、CPU20によるサービスを必要とすることを知ら
せる。I/O装置27は、IRQ2線を独占的に使用し、I/O装置
29はIRQ6線を独占的に使用する。I/O装置31、33、35
は、PIC22に通じるIRQ7線を共用しなければならない。I
/O装置31は、RAM32中にI/O装置31が出す割込みを処理す
る割込みハンドラ・ルーチンH(A)を備えている。I/
O装置33は、RAM32中にI/O装置33から出る割込みを処理
する割込みハンドラ・ルーチンH(B)を備えている。
I/O装置35は、RAM32中にI/O装置35から出る割込みを使
用する割込みハンドラ・ルーチンH(C)を備えてい
る。
本明細書で示す例では、I/O装置31の割込みハンドラH
(A)がまずロードされ、続いてI/O装置33の割込みハ
ンドラH(B)が、そして最後にI/O装置35の割込みハ
ンドラH(C)がロードされた。RAM32中の割込みベク
トルV(7)は、その内容が最後にロードされた割込み
ハンドラH(C)を指す。割込みハンドラH(C)中の
ポインタP(C)は、最後から2番目にロードされた割
込みハンドラH(B)を指す。割込みハンドラH(B)
のポインタP(B)は、最初にロードされた割込みハン
ドラH(A)を指す。割込みハンドラH(A)のポイン
タ(A)は、デフォルト割込み状態を指す。このデフォ
ルト割込み状態になると、割込まれた主プログラムに制
御権が戻る。3つのI/O装置31、33、35の何れかが割込
み線IRQ7上に割込み信号を出すと、PIC22がCPU20に割込
み要求(IREQ)を出して、現在CPU20で実行中の主プロ
グラムを中断させる。次にCPU20は割込みベクトルV
(7)の内容を読み取り、割込みハンドラH(C)に制
御権を渡す。割込みハンドラH(C)は、アドレス・バ
ス24とデータ・バス26によってI/O装置31に照会し、I/O
装置31が割込み信号を出したかどうか決定する。I/O装
置31が割込み信号を出さなかったと決定された場合、割
込みハンドラH(C)は、チェーン中の次の割込みハン
ドラH(B)を指すそのポインタP(C)の内容を読み
取る。CPU20はH(B)の割込みハンドラ・ルーチンを
実行し、アドレス・バス24とデータ・バス26を介してI/
O装置33に照会して、I/O装置33が割込み信号を出したか
どうか決定する。I/O装置33が割込み線IRQ7上に割込み
信号を出したと決定された場合、割込みハンドラ・ルー
チンH(B)は、割込みハンドラH(B)中でコード化
されたタスクを実施することによってその割込みにサー
ビスする。これは、たとえばI/O装置33が接続されてい
る通信回線から受け取った情報のバイトをRAM32中で取
っておいたバッファに転送することが含まれる。割込み
ハンドラH(B)のサービス・ルーチン部分の完了後、
割込み状態は終了し、CPU20の制御権がIRQ7線上で出さ
れた割込み信号によって中断された主プログラムに渡さ
れる。
第4A〜4C図は、I/O装置33を詳しく図示したものであ
る。第4B図に示すI/O装置論理40は、非同期通信タスク
を実行するのに必要な各種機能を実施するためにアダプ
タ・カードに常駐するハードウェアおよびソフトウェア
論理を表す。I/O装置論理40は、データ・バス26に接続
されている。アドレス・デコーダ38はアドレス・バス2
4、I/Oメモリ線34、およびR/W線36から入力を受け取
る。アドレス・デコードダ38は、バス24からアドレス情
報を受け取り、その情報をデコードし、制御信号をI/O
装置論理40およびI/O装置33の他の部分に転送する。本
発明によれば、割込み線IRQ7は、第4B図に示すようにI/
O装置33上の共用割込み論理装置46の出力に接続されて
いる。共用割込み論理装置46は、アドレス・デコーダ38
から出る大域再活動化線52の出力を入力とする。共用割
込み論理装置46は、もう一つの入力(INT)をもつ。そ
れはI/O装置論理40から出力される割込み信号である。
共用割込み論理装置46は、割込み可能ラッチ50から出力
されるもう一つの入力(ENA)をもつ。この割込み可能
ラッチ50は、その一入力がアドレス・デコーダ38に接続
され、第2の入力がデータ・バス26に接続されたデータ
書込みレジスタ42からくる。I/O装置33は、また割込み
ステータス・ラッチ48(第4C図)を備えている。この割
込みステータス・ラッチ48は、I/O装置論理40から入力I
NTを受け取り、またアドレス・デコーダ38から制御入力
を受け取る。割込みステータス・ラッチ48は、その一出
力がデータ読取りレジスタ44に接続されている。このデ
ータ読取りレジスタ44は、データ・バス26に一出力を与
える。共用割込み論理装置46は、第1のフリップ・フロ
ップ62を備えており、そのD入力がANDゲート60の出力
に接続されている。ANDゲート60は、IRQ7線、ENA線、お
よびINT線からの入力をもつ3入力論理ANDゲートであ
る。フリップ・フロップ62のクロック入力CKは、CPU20
から出るシステム・クロック線に接続されている。フリ
ップ・フロップ62のQ出力は、第2のフリップ・フロッ
プ64のD入力に接続されている。フリップ・フロップ64
のCK入力も、システム・クロック線に接続されている。
フリップ・フロップ64の補数出力Qはドライバ66に接
続されており、ドライバ66の出力がIRQ7線をドライブす
る。共用割込み論理装置46は第3のフリップ・フロップ
68を含んでいる。フリップ・フロップ68は、そのD入力
が正の直流電位に接続され、CK入力がIRQ7線に接続され
ている。第3のフリップ・フロップ68の補数出力Q
は、ANDゲート70を介して第一のフリップ・フロップ6
2および第2のフリップ・フロップ64のクリア入力CLに
接続されている。フリップ・フロップ68のCL入力は、ア
ドレス・デコーダ38からの大域再活動化線52に接続され
ている。大域再活動化線52は、ANDゲート70へのもう一
つの入力である。フリップ・フロップ62、64、68は、次
のように動作する。D入力が高レベルのとき、クロック
入力CKが高レベルになると、Q出力は高レベルとなり、
出力は低レベルとなる。この状態でクリア入力CLが
低レベルになると、フリップ・フロップはQ出力が低レ
ベルでQ出力が高レベルの逆の状態にリセットされ
る。逆にD入力が低レベルのときクロック入力CKが高レ
ベルになると、Q出力は低レベルとなりQ出力は高レ
ベルになる。この状態でクリア入力CLが低レベルになっ
てもフリップ・フロップに何の変化も起こらず、Q出力
は低レベル、Q出力は高レベルのままである。
ドライバ66は、次のようにして動作するトライステート
・ドライバである。ドライバ66に入力されるフリップ・
フロップ64のQ出力が高レベルのとき、ドライバ66の
出力は高インピーダンス状態である。これはIRQ7線上の
信号から見た状態である。一方、ドライバ66の入力に印
加されるフリップ・フロップ64のQ出力が低レベルの
とき、ドライバ66の出力も低レベルになる。すなわちフ
リップ・フロップ64のQ出力が低電位状態である限
り、IRQ7線は低電位状態のままとなる。
共用割込み論理装置46の3つのフリップ・フロップ62、
64、68は、その特性が同じであり、それぞれ端子に低電
位が印加されるとセットされるクリア入力CLを備えてい
る。アドレス・デコーダ38から出る大域再活動化線52
は、フリップ・フロップ68のクリア入力CLおよび2入力
ANDゲート70の一つの入力に接続される。ANDゲート70の
もう一方の入力は、フリップ・フロップ68の補数出力Q
に接続されている。ANDゲート70の出力は、フリップ
・フロップ62および64のクリア入力CLに接続されてい
る。アドレス・デコーダ38から出力される大域再活動化
信号は、相対的に低電位であり、フリップ・フロップ68
のクリア入力CLに印加されてフリップ・フロップ68をク
リア状態にし、その結果フリップ・フロップ68の補数出
力Q上に相対的に高電位の出力が生成され、それがAN
Dゲート70の一つの入力に印加される。しかし、線52上
の大域再活動化信号がアクティブで相対的に低電位であ
る限り、ANDゲート70に対するAND論理関数は満足され
ず、したがってANDゲート70の出力は相対的に低電位の
ままで、フリップ・フロップ62および64に対するクリア
入力CLを相対的に低電位に保つ。すなわち、線52上の大
域再活動化信号がアクティブで相対的に低電位である限
り、フリップ・フロップ64の補数出力Qは高電位状態
のままとなり、トライステート・ドライバ66を割込み線
IRQ7に対して高インピーダンス状態に留らせる。線52上
の大域再活動化信号が終了し、線52が相対的に高電位状
態になるときだけ、ANDゲート70は条件付けられ、それ
によってフリップ・フロップ62および64のクリア入力CL
に相対的に正の電位を印加し、これらのフリップ・フロ
ップをアンロックする。フリップ・フロップ62および64
は、アンロックされた後、ANDゲート60からフリップ・
フロップ62および64に転送される保留中の割込み状態に
応答することができる。こうして、持続時間が異常に長
い大域再活動化信号が線52上でアクティブな間に、フリ
ップ・フロップ62および64が早期にアンロックされるこ
とはない。
第8図に示すように、適用業務プログラムAP(B)がRA
M32にロードされたとき、それが実行する初期設定タス
クの一つは、割込み可能ラッチ50にENAビットをセット
して、I/D装置33の共用割込み論理装置46を使用可能に
することであった。これは、AP(B)のロード時に、AP
(B)プログラムがCPU20にOUTコマンドを出して、I/O
アドレスをI/O装置33に通じるアドレス・バス24上に出
力させ、使用可能データをI/O装置33に通じるデータ・
バス26上に出力させることによって実行された。アドレ
ス・バス24上のアドレス出力は、割込み可能ラッチ50に
制御信号を出力するアドレス・デコーダ38によってデコ
ードされる。データ・バス26上のデータ出力はデータ書
込みレジスタ42にロードされ、デーあ書込みレジスタ42
から割込み可能ラッチ50に信号が出力される。この条件
によって、割込み可能ラッチ50がセットされ、共用割込
み論理装置46のANDゲート60への3つの入力の一つであ
るENA線がオンになる。それによってI/O装置33上の共用
割込み論理装置46が使用可能になり、IRQ7線をシステム
中の他のI/O装置と共用するのに参加できるようにな
る。
この例では、I/O装置33が非同期通信アダプタとみなさ
れるが、I/O装置論理40は通信媒体から1バイトの情報
を受け取ると割込み信号INTを出力し、それがANDゲート
60の一つの入力に印加される。INT信号は、I/O装置33上
の割込みステータス・ラッチ48にも印加される。前述の
ようにIRQ7線に適用される信号規約は、共用されている
割込み線の電位が休止状態の間は相対的に高電位に浮遊
でき、線の電位が負に向って遷移することによって割込
み条件の存在が通知されることである。従ってIRQ7線が
休止状態の場合、ANDゲート60への第3の入力が正にな
る。使用可能ビットENAは正であり割込み信号INTは丁度
正になった所なので、ANDゲート60はフリップ・フロッ
プ62のD入力に正の電位を印加する。システム・クロッ
ク線からの次の正のクロック・パルスのとき、フリップ
・フロップ62のCK入力は正になり、従ってフリップ・フ
ロップ62のQ出力は正になってフリップ・フロップ64の
D入力に印加される。システム・クロック線上の次のク
ロック信号の立上りで、第2のフリップ・フロップ64へ
のCK入力が正になり、フリップ・フロップ64をセットす
る。それによって、フリップ・フロップ64の補数出力Q
が低レベルになる。トライステート・ドライバ66は、
その入力が低レベルにある間、IRQ7線に低電位を印加し
続ける。
第4A図に示すPIC22中の割込み要素レジスタは、その入
力に接続されたIRQ7線において何時割込み信号の存在を
示す負方向遷移が生じたかを検出する。前述のように、
PIC22はCPU20に割込み要求IREQを出す。
IRQ7線は、共用割込み論理装置46中のANDゲート60に、
三つの入力のうちの一つとして接続されている。IRQ7線
はこのときドライバ66によって低レベルにドライブされ
ているので、ANDゲート60についてもはやAND条件が充た
されていず、したがってフリップ・フロップ62のD入力
に相対的に低い電位が印加される。システム・クロック
の次の立上りで、フリップ・フロップ62のCK入力は正に
なり、フリップ・フロップ62のD入力の相対的に低い電
位をQ出力に転送する。システム・クロックの次の立上
りでは、フリップ・フロップ64のD入力がこのとき低電
位なので、フリップ・フロップ64へのCK入力が正になる
と補数出力Qが正になり、それによってドライバ66に
よってIRQ7線に印加された低電位が除去され、高インピ
ーダンス状態となる。すなわち、全体としてIRQ7線はI/
O装置論理40から割込み信号INTが出るのに応答して2ク
ロック・サイクルの間低電位にドライブされ、続いて相
対的に高い電位の休止状態に戻る。
共用割込み論理装置46中のフリップ・フロップ68によっ
て、ロックアウト機能がもたらされる。2つのフリップ
・フロップ62と64のクリア状態は、CL入力に低電位を印
加することによって実現される。その結果、補数出力Q
が正になり、Q出力が低電位になる。これはフリップ
・フロップ68でも同じである。どのフリップ・フロップ
でも一旦クリア状態になると、そのフリップ・フロップ
はQ出力が正である状態にロックされ、そのフリップ
・フロップのCK入力に印加されるクロック・パルスによ
っては変更されない。
共用割込み論理装置46のロックアウト機構は、次のよう
に働く。IRQ7線上の割込み信号ための時間間隔の終り
に、IRQ7線の電位は低電位から高電位へと上昇する。こ
のIRQ7線上の立上り信号が、フリップ・フロップ68のCK
入力に印加される。フリップ・フロップ68のD入力は正
の直流電位に接続されているので、フリップ・フロップ
68の補数出力Qは低レベルになり、従ってANDゲート7
0の出力も低レベルになる。これにより、フリップ・フ
ロップ62と64はクリア状態にロックされ、フリップ・フ
ロップ64のQ出力が相対的に正の電位を保つ。この相
対的に正の電位が、IRQ7線からみて、トライステート・
ドライバ66を高インピーダンス状態に保つ。IRQ7線を共
用する各I/O装置31、33、35上の各共用割込み論理装置4
6について、この状態が得られる。すなわち、各I/O装置
上のトライステート・ドライバ66が高インピーダンス状
態にロックされるため、IRQ7線は正の状態で休止したま
まとなる。
すべての共用割込み論理装置46のロックアウト状態は、
所与の割込みがサービスを受けている間、保たれる。PI
C22は、IRQ7線上の割込み信号を検出した後、割込みの
サービスを要求する割込み要求信号IREQをCPU20に出力
する。CPU20は、実行中の主プログラムを終了し、現命
令ポインタ、フラグ、およびワーキング・レジスタの内
容を保管し、次に割込み処理を開始したことをIACK線に
よってPIC22に知らせる。次に、PIC22は、IRQ7線に対応
する割込みベクトルV(7)のアドレスを出す。CPU20
はRAM32の割込みベクトル・アドレスにアクセスして、
割込みベクトルの内容、すなわちRAM32に新しくロード
された割込みハンドラのアドレス読み取る。この例で
は、割込み線IRQ7を共用するI/O装置31、33、35にサー
ビスする3つの割込みハンドラが、RAM32にロードされ
ている。割込みベクトルV(7)の内容は、最後にロー
ドされた割込みハンドラH(C)、すなわちI/O装置35
用の割込みハンドラのアドレスである。割込みベクトル
V(7)の内容が指示する位置は、割込みハンドラH
(C)の実行可能コードの始めである。CPU20中の命令
ポインタは、割込みハンドラH(C)のコード中の最初
の命令にセットされ、CPU20はそのコードの実行を開始
する。割込みハンドラ・ルーチンの一例を第I表に示
す。割込みハンドラ・コードの最初の部分は、CPU20
に、I/O装置35用の割込みステータス・ラッチ48を読み
取って、それがIRQ7線上に割込み信号を出したかどうか
を決定するように命令する。I/O装置35用の割込みステ
ータス・ラッチ48は、I/O装置35が割込み信号を出さな
かったことを示しているので、割込みハンドラH(C)
は、I/O装置33にサービスする2番目にロードされた割
込みハンドラH(B)に、制御権を渡さなければならな
い。この割込みハンドラH(C)からの制御権の移転は
割込みハンドラH(C)用の実行可能コードの開始点か
ら一定のオフセット値だけ離れたところにあるポインタ
P(C)の内容を読み取ることによって実施される。ポ
インタP(C)の内容は、2番目にロードされた割込み
ハンドラH(B)用の実行可能コードの開始点のアドレ
スである。このアトレスが、CPU20の命令ポインタにロ
ードされ、CPU20が割込みハンドラH(B)の実行を開
始する。
割込みハンドラH(B)は、I/O装置33の割込みステー
タス・ラッチ48を読み取って、それが割込み信号を出し
た装置かどうか決定する。I/O装置33上のI/O装置論理40
は、割込み信号を出したとき、INTビットをオンにした
ので、割込みステータス・ラッチ48は、割込み信号を出
したのがI/O装置33であったとの情報をCPU20に戻す。次
に割込みハンドラH(B)は、I/O装置33によって要求
されたタスクを実施するコードを実行して、その割込み
に対するサービスを開始する。この例では、I/O装置33
を非同期通信アダプタとして扱っているので、割込みハ
ンドラH(B)は、受け取ったデータ・バイトをI/O装
置33のI/O装置論理40の通信ポートから、RAM32中の予約
されているバッファ・スペースに転送し始める。割込み
ハンドラH(B)によるこのサービス・ルーチンが完了
すると、割込みハンドラH(B)は割込み状態を完了す
る一連のコマンドを出し始める。これらのコマンドは、
プロセッサ制御命令(CLI)を出して割込み不能にし、P
IC22に無指定割込み終了コマンド(EOI)を出し、次に
大域再活動化信号を出して、すべてのI/O装置31、33、3
5の共用割込み論理装置46を再活動化する。大域再活動
化信号を発生するため、CPU20は特定のI/Oアドレスをア
ドレス・バス24に出力する。各アドレス・デコーダ38は
この特定アドレスをデコードし、その結果大域再活動化
信号が、各I/O装置31、33、35の共用割込み論理装置46
のフリップ・フロップ68のクリア入力CLに対する負の信
号として、線52に印加される。次に割込みハンドラ・ル
ーチンH(B)は割込みリターン命令(IRET)を出し、
制御権が主プログラムの中断点に戻される。
大域再活動化信号は、フリップ・フロップ68のクリア入
力CLに印加される負の信号である。これによってフリッ
プ・フロップ68の補数出力Qが正になり、この正の信
号がANDゲート70を経てフリップ・フロップ62および64
のクリア入力CLに印加される。前述のように、フリップ
・フロップ62および64のクリア入力CLは、負の信号によ
って既にクリア状態にセットされている。フリップ・フ
ロップ62と64のクリア入力CLに正の信号が印加される
と、フリップ・フロップ6と64はアンロックされて、I/
O装置論理40が出す別の割込み信号INTをいつでも処理で
きる状態になる。
こうして、割込みベクトルV(7)によってアドレスさ
れる連係リスト中で連続的に連鎖されている3つの割込
みハンドラH(A)、H(B)、H(C)によってそれ
ぞれサービスされる3つのI/O装置が、一本の割込み線I
RQ7をどのようにして共用できるかがわかる。
I/O装置33がサービスを受けている間に、他の装置、た
とえばI/O装置31がそのI/O装置論理40にINTビットを出
させた場合、I/O装置33のサービス完了後にフリップ・
フロップ62と64をアンロックする大域再活動化信号が出
た直後に、I/O装置31の共用割込み論理装置46中のANDゲ
ート60は、その論理条件を満たし、I/O装置31上の共用
割込み論理装置46は、I/O装置31によって要求された第
2の割込みに対するサービスを開始するため、IRQ7線上
に割込み信号を出し始める。こうして、今度はI/O装置3
3に対する割込みのサービスによって遅延された割込み
が、サービスを受けることができる。
I/O装置31、33、35とそれらの割込みハンドラH
(A)、H(B)、H(C)の関係は、第5A〜5D図を参
照するとわかる。第5A〜5D図には、RAM32に常駐するそ
れぞれの割込みハンドラH(A)、H(B)、H(C)
に対応して配列された3つのI/O装置31、33、35が示さ
れている。これらの図は、IRQ7線上に割込信号を出した
I/O装置にサービスする特定の割込みハンドラを見つけ
るための、割込みハンドラのチェーン探索操作を理解す
るのに役立つように配列してある。前述の例のように、
I/O装置33上のI/O制御論理40BがINT“B"ビットをオンに
セットしたと仮定する。共用割込み論理装置46Bが、IRQ
7線の状態を監視しており、この線の現休止状態中に共
用割込み論理装置46BはIRQ7線上でPIC22に割込み信号を
出す。PIC22は、CPU20に割込み要求信号IREQを出し、そ
れによってCPU20は現在実行中の主プログラムを中断
し、現ステータス値を保存し、PIC22に割込み肯定応答
信号IACKを出す。次にPIC22は、割込みベクトルV
(7)の記憶アドレスを出力して、CPU20が割込みベク
トルV(7)の内容、すなわち最後にロードされた割込
みハンドラH(C)の実行可能コードの始めを指すアド
レスにアクセスできるようにする。わかり易くするた
め、第5A図および第5B図において、割込みハンドラH
(C)の配置をI/O装置35と対応させている。割込みハ
ンドラH(C)は、“I/OアドレスC"を出して実行を開
始し、CPU20が割込みステータス・ラッチ48Cの割込みス
テータスを読み取って、割込みビットINC“C"がI/O装置
35上のI/O装置論理40Cによってセットされているかどう
かを決定できるようにする。第5B図の割込みハンドラH
(C)の所に示す流れ図からわかるように、割込みビッ
トINT“C"を評価してそれがオンかオフか決定する判断
点に達する。INT“C"がオンであれば、割込みハンドラ
H(C)はI/O装置35(7C)の割込みにサービスするこ
とになる。しかしこの例では、割込み信号を出したのは
I/O装置35ではなかった。したがって、第5B図の割込み
ハンドラH(C)内の判断点で、INT“C"はオフである
と決定され、したがって割込みハンドラH(C)用の実
行可能コードの始めから一定のオフセット値だけ離れた
ところにあるポインタP(C)の内容がCPU20によって
アクセスされ、命令ポインタにロードされて、次に割込
みハンドラH(B)が実行される。
第5A図および第5C図においてI/O装置33は、相互関係を
示すためRAM32中の割込みハンドラH(B)の位置のす
ぐ近くに配置してある。割込みハンドラH(B)のコー
ドは、I/O装置33上のI/O装置論理40Bによってセットさ
れたINT“B"ビットの状態を記憶している割込みステー
タス・ラッチ48Bを読み取るための“I/OアドレスB"を出
してCPU20中で実行を開始する。この例では、現割込み
を開始したのはI/O装置33上のI/O装置論理40Bである。
したがって、CPU20に戻されるINT“B"の値はオンであ
る。割込みハンドラH(B)は、第5D図に示すその判断
点で、INT“B"がオンであると決定する。INT“B"はオン
状態なので、この割込みハンドラH(B)は、I/O装置3
3上のI/O装置論理40Bが要求するタスクを実行するた
め、コードのサービス・ルーチン部分の実行を始める。
CPU20が割込みハンドラH(B)のサービス・ルーチン
部分の実行を完了した後、この割込みハンドラH(B)
はCPU20に“I/OアドレスA、B、C"を出力させて、大域
再活動化信号を出す。この“I/OアドレスA、B、C"は
アドレス・バス24を介してすべてのI/O装置31、33、35
に送られ、それぞれI/O装置31、33、35上のアドレス・
デコーダ38A、38B、38Cが受け取る。アドレス・デコー
ダ38A、38B、38Cは“I/OアドレスA、B、C"を解読し
て、それぞれI/O装置31、33、35上の共用割込み論理46
A、46B、46Cに再活動化信号52A、52B、52Cを出力する。
各I/O装置に対する再活動化信号52A、52B、52Cの作用
は、前述のように共用割込み論理装置46A、46B、46Cを
アンロックすることである。これによって各共用割込み
論理装置46A、46B、46Cは、それぞれI/O装置31、33、35
上の次の割込みビットINT“A"、INT“B"およびINT“C"
を検出できるようになる。第5B図および第5D図の割込み
ハンドラH(B)の流れ図では、このときCPU20は主プ
ログラムの実行が中断された点に戻る。I/O装置33によ
って中断されたときのCPUの制御ステータスを復元した
後、主プログラムの実行が再開される。
このように、それぞれI/O装置31、33、35に対応し、割
込み線IRQ7を共用する。RAM32中の各割込みハンドラH
(A)、H(B)、H(C)間に直接の関係があること
がわかる。
第I表は、割込みハンドラH(N)の例、第II表はリン
ク・ルーチンL(N)の例、第III表はアンリンク・ル
ーチンU(N)の例である。第I表、第II表、第III表
は、IBMパーソナル・コンピュータ用のアセンブラ言語
で書かれている。アセンブラ言語とは、各命令コードが
憶え易い簡略記号で書かれている記号言語である。第I
表のアセンブラ言語は、形と内容が機械語に似ており、
命令およびコメントを表すステートメントから構成され
ている。命令ステートメントとは、言語の作用部分であ
り、機械命令、アセンブラ命令、マクロ命令および擬似
オペレーションに分かれている。機械命令とは、アセン
ブラの命令セット中のハードウェア命令の記号表現であ
る。アセンブラ命令とは、アセンブラ・プログラムに対
して、ソース・モジュールのアセンブリ中にある種のオ
ペレーションの実行を要求するものである。マクロ命令
とは、アセンブラ・プログラムに対して、定義済みコー
ド・シーケンスの処理を要求するものである。アセンブ
ラは、このシーケンスからソース命令を生成し、それら
を恰もソース・モジュール中の元の入力の一部であった
かのように処理する。擬似オペレーションは、データ、
条件つきブランチ、マクロ、およびリステイングをづ扱
うかをアセンブラに教えるものであるが、通常は機械語
コードを生成しない。第I表に示した命令の完全な説明
は、1981年に本出願人が刊行した“マイクロソフトによ
るマクロアセンブラ(Macro Assembler by Microsof
t)"IBMパーソナル・コンピューターコンピュータ言語
シリーズ(IBM Personal Computer−Computer Language
Series)に出ている。
第I表の割込みハンドラH(N)は、割込みベクトルV
(7)またはチェーン中の先行割込みハンドラが入る。
第I表中の“ENTRY"がこのハンドラの入口点であり、そ
の後に制御ブロックC(N)(FPTR,SIGNATURE,FLAGS)
が続いている。入口点(ENTRY)の短い飛越し命令(JM
P)は、長さ2バイトであり、したがって制御ブロック
C(N)中の順方向ポインタ(FPTR)の固定オフセット
は、割込みハンドラの入口点(ENTRY)から2バイト先
である。入口点(ENTRY)と割込みハンドラ・コードの
実際の開始位置の間に制御ブロックC(N)が挟まれて
いる理由は、制御ブロックがRAM32に記憶されたとき、
割込みハンドラと位置が連続したままになるようにする
ためである。制御ブロックC(N)は長さ16バイトなの
で、順方向ポインタ(FPTR)は、割込みハンドラ・コー
ドの実際の開始位置よりも、RAM中で16バイト下にあ
る。アンリンク・ルーチンU(N)が順方向ポインタ
(FPTR)を容易にアクセスできるようにするため、割込
みチェーン中のすべての割込みハンドラにおいて、入力
点(ENTRY)上に2バイトの固定オフセットが維持され
る。
I/O装置が出した特定の割込みにサービスするために正
しい割込みハンドラを探索するため、入口点(ENTRY)
からの短い飛越しによって、割込みハンドラ・コードの
実際の開始位置に移る。続いてCPU20中の既存のレジス
タが保管され、対応するI/O装置の割込みステータス・
ラッチ48が読み取られる。次に、当該I/O装置が実際に
その割込み信号を発生したかどうかがテストされる。当
該I/O装置が割込みを発生した場合、ブランチ命令(JN
Z)によって、その割込みにサービスするための命令を
含んでいるサービス・ステップ(SERVICE)にブランチ
する。サービス・ステップ(SERVICE)でその割込みに
対するサービスが完了すると、チェーンから出るための
出口ステップ(EXIT)に移る。出口ステップ(EXIT)で
は、まず割込みが禁止され、無指定割込み終了(EOI)
コマンドがPIC22(インテル8259)に送られ、次に大域
再活動化メッセージがバス24を経て割込み線IRQ7を共用
するすべてのI/O装置に送られ、各I/O装置上の共用割込
み論理装置をアンロック状態に戻して、次の割込みにサ
ービスできるようにする。次に、CPU20のレジスタを以
前の状態に復元した後、リターン命令(IRET)によって
主プログラムに戻る。
ステップ(PAST)でのテストで、割込みハンドラH
(N)に対応するI/O装置が割込み信号を出さなかった
と決定した場合、第2のテストが行われ、この特定の割
込みハンドラが最初にロードされた割込みハンドラ、言
い換えればチェーン中の最後の割込みハンドラであるか
どうかを調べる。それがチェーン中の最後の割込みハン
ドラである場合、チェーン中の各割込みハンドラが照会
したどのI/O装置も割込み信号を出さなかったことにな
る。各共用割込み論理装置46をアンロックするためにす
べてのI/O装置に大域再活動化メッセージを送らなけれ
ばならないので、これは問題である。しかしこれは出口
ステップ(EXIT)への飛越し(JNZ)によって解決でき
る。
次に第II表のリンク・ルーチンL(N)について説明す
る。オペレーティング・システムまたは適用業務プログ
ラムAP(N)が、割込みハンドラH(N)を割込みハン
ドラ・チェーンにリンクすることを要求すると、そのオ
ペレーティング・システムまたは適用業務プログラムAP
(N)からリンク・ルーチンL(N)に入る。まず最初
に割込みを禁止するステップが実行される。次に、割込
みハンドラH(N)のための順方向ポインタP(N)を
割込みベクトルV(7)の内容と等しくなるようにセッ
トするプロセスが実行される(CMPの前まで)。次に、
割込みベクトルV(7)の現内容によって指示された割
込みハンドラが、実際に割込みリターン命令(IRET)で
あったかどうかを決定するためのテストが行われる。実
際にそれが割込みリターン命令であった場合、その割込
みハンドラは、DOSによって始めにセットアップされた
デフォルト割込みハンドラであったことになる。この場
合、今チェーンにリンクされている新しい割込みハンド
ラH(N)が、チェーン中のデフォルトでない最初の割
込みハンドラであり、したがってこの状態を示すように
そのフラグ・バイトをセットしなければならない。順方
向ポインタのセットに続く比較命令(CMP)の条件が満
たされ、したがって次の飛越し命令(JNZ;ゼロでなけれ
ば飛越し)によって移動命令(MOVE)に移り、そこで今
チェーンにリンクされている割込みハンドラH(N)が
チェーン中の最初の割込みハンドラ(先頭ハンドラ)で
あることを示すフラグ・バイトF(N)がセットされ
る。次に割込みベクトルをセットするステップ(SETVEC
TR)に移る。前の比較命令(CMP)で、割込みハンドラ
H(N)がチェーン中の最初の割込みハンドラでないと
決定した場合このステップ(SETVECTR)への飛越しが行
われる。ステップ(SETVECTR)で、リンクすべき割込み
ハンドラH(N)の入口点のアドレスが割込みベクトル
V(7)の位置にロードされる。すなわち、割込み線IR
Q7上に割込み信号が発生するとき、CPU20が割込みベク
トルV(7)にアクセスすると、チェーン中の実行すべ
き最初の割込みハンドラは、最後にリンクされた割込み
ハンドラH(N)である。次にレベル7の割込みをアン
マスクする、すなわち割込み可能にするためのステップ
に移り、それが終ると、制御権がオペレーティング・シ
ステムまたは適用業務プログラムAP(N)に戻される。
第III表は、アンリンク・ルーチンU(N)を示したも
のである。割込みハンドラH(N)をチェーンから削除
すべきであるとオペレーティング・システムまたは適用
業務プログラムAP(N)が決定した場合、オペレーティ
ング・システムまたは適用業務プログラムは、第III表
のアンリンク・ルーチンU(N)に制御権を渡す。アン
リンク・ルーチンU(N)に入ると、まず割込みが禁止
され、割込みベクトルV(7)が取出され、その内容が
CPU20の作業レジスタにロードされる。次に、割込みハ
ンドラH(N)がチェーン中の最初の割込みハンドラで
あるかどうか、すなわちそれが割込みベクトルV(7)
によって指示される割込みハンドラであるかどうかを決
定するステップに移る。比較操作で、割込みハンドラH
(N)が割込みベクトルV(7)の指す最初の割込みハ
ンドラであると決定された場合には、ブランチなしに次
のステップに移り、現在割込みハンドラH(N)中にあ
るポインタP(N)を割込みベクトルV(7)の位置に
ロードして、割込みハンドラH(N)をチェーンから削
除することができる。この削除操作が終了すると、最後
のステップ(UNCHAIN X)に制御権が移り、そこで割
込みが可能になり、アンリンク・ルーチンU(N)から
オペレーティング・システムまたは適用業務プログラム
AP(N)に戻る。
削除すべき割込みハンドラH(N)がチェーン中の最初
の割込みハンドラでなかった場合は、ステップ(UNCHAI
N A)に制御権が移り、そこで当該割込みいンドラが
その制御ブロックC(N)に検証用署名(SIGNATURE)
を含んでいるかどうかが調べられる。検証用署名がない
場合は、誤り例外ハンドラが呼び出される。割込みハン
ドラH(N)の制御ブロックC(N)に正しい検証用著
名があれば次に進んで、現割込みハンドラが削除すべき
目的割込みハンドラH(N)であるかどうかが調べられ
る。これは、2つの比較ステップで行われ、最初の比較
ステップでは先行割込みハンドラに対するポインタの内
容のオフセット部分が目的割込みハンドラに対するオフ
セット値と比較される。このテストが合格の場合、次の
比較ステップで先行ポインタの内容のセグメント部分
が、目的割込みハンドラを指す順方向ポインタのセグメ
ント部分と比較される。両方のテストに合格した場合、
現割込みハンドラが目的割込みハンドラH(N)であ
り、それをチェーンから削除するためのステップに制御
権が移る。このステップでは、現(目的)割込みハンド
ラH(N)のポインタP(N)の内容が、チェーン中の
前割込みハンドラ(すなわち、H(N)に隣接し割込み
ベクトルV(7)により近い所にある割込みハンドラ)
に対するポインタ位置に転送される。この操作によっ
て、割込み信号を出したI/O装置に対する割込みハンド
ラを探索する以降の操作中、目的割込みハンドラH
(N)の前後での飛越しが可能になる。削除ステップが
完了すると、最後のステップ(UNCHAIN X)に制御権
が移り、そこで割込みが再び可能になる。現割込みハン
ドラが目的割込みハンドラでないと決定された場合、ス
テップ(UNCHAIN B)にブランチし、そこで現ポイン
タの内容がチェーン中の次の割込みハンドラの相対アド
レスとして使われる。次に制御権が前のステップ(UNCH
AIN A)に戻り、次の割込みハンドラと目的割込みハ
ンドラの比較が行われる。目的割込みハンドラに出会う
か、またはチェーンの終りに達するまで、このプロセス
が繰り返され、最後にオペレーティング・システムまた
は適用業務プログラムAP(N)に制御権が戻る。
次に、第6図ないし第9図のシーケンスを参照する。こ
こには、新しくロードされた割込みハンドラをRAM32中
の割込みハンドラのチェーンにリンクする操作が示され
ている。IBMパーソナル・コンピュータ用のオペレーテ
ィング・システムは、公知の基本入出力システム(BIO
S)である。IBMパーソナル・コンピュータをオンにする
と、ROM30に常駐するBIOSが初期ハードウェア・テスト
機能およびその他の初期設定手順を実行し、次にアドレ
ス・バス24とデータ・バス26に接続されたディスク・ド
ライブからDOSを読み取る。DOSは、第6図の割込みベク
トル位置V(0)〜V(7)に“デフォルト・アドレ
ス”をロードすることを含めて、追加的初期設定手順を
実行する。具体的には、第6図は、“デフォルト・アド
レス”すなわちRAM32におけるデフォルト割込みハンド
ラH(DF)の記憶位置のアドレスが割込みベクトル
(7)にロードされている状態のRAM32を示したもので
ある。このデフォルト割込みハンドラH(DF)は、IRQ7
線上の割込み信号によってCPU20で実行が中断された主
プログラムに制御権を戻す働きをする。
マルチタスキング・オペレーティング・システム環境で
は、第6図に示すように、次にマルチタスキング・オペ
レーティング・システムがRAM32にロードされる。典型
的な場合、マルチタスキング・システムはRAM32をそれ
ぞれ別々の適用業務プログラムAP(N)を含む複数の保
護領域に区分する。マルチタスキング・オペレーティン
グ・システムは、DOSと適用業務プログラムの間に設置
される。適用業務プログラムAP(N)は、ある機能を実
行するためにDOSまたはBIOSを呼び出すとき、マルチタ
スキング・オペレーティング・システムを介在させなけ
ればならない。次に、マルチタスキング・オペレーティ
ング・システムは、同時にアクティブな別の適用業務プ
ログラムの一つAP(N′)を実行すべき時かどうか判断
することができ、DOSの呼び出しを行った元の適用業務
プログラムを続行する代りに新しい適用業務プログラム
にシステムの制御権を渡すことができる。RAM32中での
マルチタスキング・オペレーティング・システムの位置
を、第6図に示す。
次に、I/O装置31と割込み線IRQ7の使用が必要な最初の
適用業務Aをシステムで実行させるものとする。適用業
務Aを実行する適用業務プログラムAP(A)には、第11
図に概略的に示したN番目の適用業務に類似する割込み
共用プログラムS(A)が付随する。割込みプログラム
S(A)は、第II表に一般的に示したリンク論理ルーチ
ンL(A)、第I表に一般的に示した割込みハンドラ・
ルーチンH(A)、および第III表に一般的に示したア
ンリンク論理ルーチンU(A)の3部分からなる。第7
図に示すように適用業務プログラムAP(A)をRAM32に
ロードするとき、割込み共用プログラムS(A)をロー
ドできる。まず、適用業務プログラムAP(A)、そのリ
ンク・ルーチンL(A)およびアンリンク・ルーチンU
(A)がRAM32にロードされる。次にリンク・ルーチン
L(A)が、割込みベクトルV(7の内容、“デフォル
ト・アドレス”を、ポインタ・アドレス“アドレスA"す
なわち割込みハンドラH(A)の実行可能コード部分の
始めをロードすべきRAMアドレスで置き換える。第7図
からわかるように、次に割込みハンドラH(A)が“ア
ドレスA"からロードされる。割込みハンドラH(A)と
関連する制御ブロックC(A)は、割込みハンドラH
(A)の実行可能コード部分の始めから一定のオフセッ
トのところにロードされる。良好な実施例では、第I表
に示すように、制御ブロックC(A)(長さ16バイト)
が最初の命令(長さ2バイトの“JMP"命令)の直後にく
るので、ポインタP(A)の始めは、割込みハンドラH
(A)の実行可能コード部分の始めから2バイト分外れ
る。制御ブロックC(N)と割込みハンドラH(N)の
記憶位置の関係を表わす一定のオフセットは、本発明に
よれば、割込みベクトルV(7)に連鎖されるすべての
割込みハンドラについて同じである。チェーンを完成す
るため、リンク・ルーチンL(A)は、“デフォルト・
アドレス”を制御ブロックC(A)のポインタP(A)
にロードして、割込みハンドラH(A)が次の連続する
デフォルト割込みハンドラ・ルーチンH(DF)を探すこ
とができるようにする。良好な実施例では、固定オフセ
ットは各ハンドラの入口点から正方向に2バイトとして
開示されているが、各ハンドラの入口点アドレスから正
または負に相対的に変位した他のどんな一定値にするこ
ともできる。
制御ブロック(A)は、第11図に示すように、ポインタ
P(A)、フラグF(A)、署名フィールドおよび予約
フィールドを含んでいる。ポインタP(A)は、チェー
ン中の他の割込みハンドラをアドレスするためのリンク
機構を提供する。ポインタP(A)の内容は、チェーン
中の次の割込みハンドラの実行可能コードの始めをマー
クする、RAM32の実アドレスを表す。後で説明するよう
に、割込みハンドラのアンリンク・プロセスでは、ポイ
ンタP(N)を使ってチェーンを横断し、割込みチェー
ンから除去したい割込みハンドラを探し出す。制御ブロ
ックC(A)中の署名ワードは、固定16進表現であり、
割込みハンドラが本明細書で説明する共用割込み技術に
合致していることを検証するために使われる。署名ワー
ドは、特にある割込み制御ブロックC(N)を有効割込
み制御ブロックであるものとして識別するのに使われ
る。マルチタスキンウ・オペレーティング・システム中
のもとで走行する適用業務プログラムは自身を割込みチ
ェーンにロードできるが、本明細書で記載する共用割込
み法に合致しないことがあり得る。その割込みハンドラ
を割込みハンドラ・チェーンからアンリンクしようとす
るとき、合致しない割込みハンドラは必ずしも割込みハ
ンドラ制御ブロックを維持せず、そのためチェーン横断
を妨げるので、これは問題を生じる恐れがある。対応す
る割込みハンドラH(N)が割込みハンドラ・チェーン
を正しく共用できるとの確認を与えることが、各制御ブ
ロックC(N)中の署名ワードの役割である。特定の割
込みハンドラをアンリンクするためチェーン横断操作中
に、チェーン中で署名ワードがその制御ブロックにない
割込みハンドラに出会った場合、訂正アクションを試み
るため、例外処理ルーチンが呼び出される。
フラグ・バイトF(A)の主な機能は、チェーン中の割
込みハンドラH(A)が、チェーン中で出会う最後の割
込みハンドラであるかどうかを示すことである。IRQ7線
を共用するすべてのI/O装置上の共用割込み論理装置46
をリセットしアンロックするために、割込みハンドラに
照会する過程で大域再活動化信号を出さなければならな
いため、これを決定することは重要である。たとえば、
割込みチェーンに連続する3つの割込みハンドラH
(A)、H(B)、H(C)がこの順序で加えられた第
9図の構成では、最初にロードされた割込みハンドラH
(A)は、割込みハンドラH(A)がデフォルト割込み
ハンドラに出会う前のチェーン中で最後の割込みハンド
ラであるとの情報を、そのフラグF(A)に記憶しなけ
ればならない。第I表を参照するとわかるように、フラ
グF(N)について割込みハンドラH(N)をテスト
し、その割込みハンドラがチェーン中で最後の(最初に
ロードされた)割込みハンドラであるかどうか決定する
ためのテスト命令が含まれている。割込みハンドラH
(N)がチェーン中の最後の割込みハンドラであること
をフラグ・バイトF(N)が示す場合、その割込みハン
ドラが、対応するI/O装置が割込み信号を出さなかった
と決定しても、割込み線IRQ7を共用するすべてのI/O装
置上の共用割込み論理装置46をアンロックするために、
割込みハンドラH(N)は、大域再活動化信号を出さね
ばならない。第II表を参照すると、チェーンに付加すべ
き割込みハンドラH(N)が、チェーン中で最初に付加
される割込みハンドラであるかどうかを、リンク・コー
ドがどのようにチェックするかが示されている。それが
実際にチェーンに付加される最初の割込みハンドラであ
る場合、その状態を示すフラグF(N)がセットされ、
その結果、割込みハンドラは、制御権がそれに渡る毎に
大域再活動化信号を出す。第III表のアンリンク・コー
ドの例を参照すると、チェーンからアンリンクすべき割
込みハンドラH(N)のフラグ・バイトF(N)の内容
が、直前の割込みハンドラの内容に移されることが示さ
れている。たとえば、第9図に示す割込みハンドラH
(B)をアンリンクする際、第10図に示すように、その
制御ブロックC(B)に含まれていたフラグAが割込み
ハンドラH(C)のフラグ・フィールドF(C)に移さ
れる。アンリンクされている割込みハンドラが実際にチ
ェーンで最初にロードされた割込みハンドラ、たとえば
第9図の割込みハンドラH(A)であった場合、そのア
ンリンク中に直前の割込みハンドラに移されるフラグ・
フィールドが、直前の割込みハンドラに、割込みハンド
ラのチェーン中でそれに出会う毎に大域活動化信号を発
生させる。このようにして、割込みハンドラがどんな順
序でチェーンからアンリンクされても、必ずチェーン中
で出会う最後の割込みハンドラが大域再活動化信号を出
して、IRQ7線を共用するすべてのI/O装置上の共用割込
み論理装置46をアンロックする。
オプション機能として、制御ブロックC(A)中のフラ
グ・バイトF(A)を使って、連続する各割込みハンド
ラH(N)が処理されるとき、PIC22に対するマスク・
ビットの設定を保存することもできる。上記に引用した
iAPX86、88ユーザーズ・マニュアルに記載されているイ
ンテル8259Aは、割込みマスク・レジスタを含んでいる
(第4A図参照)。この割込みマスク・レジスタを使う
と、8本の割込み線IRQ0〜IRQ7がすべて同時に使用不能
または使用可能になるのではなくて、個々の割込み線を
マスクすることができる。PIC22の割込みマスク・レジ
スタは8ビット・レジスタであり、ビット0〜7が割込
み線IRQ0〜IRQ7に直接対応している。割込みマスク・レ
ジスタに適当なビットを書込みセットすると、この8本
の割込み線のどれでもその入力をマスクすることができ
る。同様に割込みマスク・レジスタ・ビットをクリアす
ると、8本の割込み線のどれでもPIC22に通じるその入
力を使用可能にすることができる。この機能が役立つの
は、たとえば特定の割込みハンドラ・ルーチンH(N)
の実行を特定の低優先割込みによってのみ中断し、その
サービス・ルーチンの間は高優先割込みを禁止すべきで
ある。制御ブロックC(A)のフラグ・バイトF(A)
は、8つのマスク・ビットを含んでおり、それがPIC22
の割込みマスク・レジスタにロードされる。制御ブロッ
クC(A)のフラグ・バイトF(A)は、この点に関し
て2つの目的に役立つ。第1に、リンク・ルーチンL
(A)が割込みハンドラH(A)を導入したとき、PIC2
2におけるマスク・ビット設定のログとして働く。第2
に、フラグ・バイトF(A)は、通常の割込み処理操作
中に特定の目的に役立つ。チェーン中で割込み信号を出
した装置に対応する割込みハンドラを探索する場合につ
いて以前に説明したプロセスでは、割込みハンドラは、
それに対応するI/O装置が現割込み信号を発生しなかっ
たと決定すると、チェーン中の次の割込みハンドラに制
御権を渡す。しかし、この次の割込みハンドラに制御権
を渡すことの例外は、IRQ7線に割込み信号が発生したと
き、チェーン中の次の割込みハンドラが制御権を通常通
り受け取っていないことをフラグ・バイトが示す場合で
ある。このような場合、PIC22からCPU20に割込み要求IR
EQを出すことがPIC22中のマスク・ビットによってマス
クされているため、通常、次の割込みハンドラは割込み
ベクトルV(7)によってアクセスされてもいない。し
たがってこのような場合、制御権をもっている現割込み
ハンドラH(N)は、その制御権をチェーン中の次の割
込みハンドラH(N−1)に渡す代りに、現割込みによ
って中断された主プログラムに制御権を戻すか、または
次の割込みハンドラH(N−1)のポインタP(N−
1)の内容を読み取り、次の割込みハンドラH(N−
1)を飛び越して次の次の割込みハンドラH(N−2)
に制御権を渡すことができる。
フラグ・バイトF(A)は、連鎖解除(アンリンク)プ
ロセスでも若干の意味をもつ。前述のように、また後で
説明するように、割込みハンドラH(N)がチェーンか
ら取り出されると、そのポインタP(N)の内容が、前
の割込みハンドラH(N+1)の制御ブロックC(N+
1)のポインタP(N+1)にロードされる。アンリン
ク論理ルーチンU(N)は、フラグ・バイトF(N)の
内容も前の割込みハンドラH(N+1)の制御ブロック
C(N+1)のフラグ・バイト・フィールドF(N+
1)にロードする。それによって、PIC22に対するマス
ク・バイトの保存が可能になる。
リンク・ルーチンの操作の説明に戻ると、第8図に、第
2の適用業務プログラムAP(B)を、リンク・ルーチン
L(B)、アンリンク・ルーチンU(B)、および割込
みハンドラH(B)からなる割込み共用プログラムS
(B)と一緒にロードする操作が示されている。割込み
ハンドラH(A)のリンクについて上述したのと同じや
り方で、リンク・ルーチンL(B)は、割込みベクトル
V(7)の現内容“アドレスA"を割込みハンドラH
(B)の制御ブロックC(B)のポインタ・フィールド
P(B)にロードして、割込みハンドラH(B)をロー
ドしリンクする手順を遂行する。次に、値“アドレスB"
が割込みベクトルV(7)にロードされるが、これは割
込みハンドラH(B)に対する実行可能コードの開始位
置のアドレスである。H(B)の割込みハンドラ・コー
ドが、その位置からロードされ、制御ブロックC(B)
がRAM32中で“アドレスB"位置から2バイト高位の固定
オフセット位置にロードされる。
第9図には、第3の適用業務プログラムAP(C)をRAM3
2にロードし、その割込みハンドラH(C)をリンクす
る操作が示されている。このリンク操作は、割込みハン
ドラH(B)およびH(A)について説明したのと同じ
やり方で行われ、リンク・ルーチンL(C)によって実
行される。その結果、第9図からわかるように、割込み
ベクトルV(7)は、割込みハンドラH(C)の実行可
能コードの開始位置を指す値“アドレスC"をその内容と
して含む。制御ブロックC(C)は、“アドレスC"の位
置からRAM32中で2バイト高位の固定オフセット位置に
ある。ポインタP(C)の内容は、割込みハンドラH
(B)をアクセスするための“アドレスB"を含んでい
る。リンク・ルーチンL(N)を使ってリンク操作を実
行する際のステップおよび命令のシーケンスについての
一般的説明については、第II表のアセンブラ・コードを
参照されたい。
第10図は、第9図に示した割込みハンドラのチェーンH
(C)、H(B)、H(A)から割込みハンドラH
(B)をアンリンクする操作を示したものである。アン
リンク・ルーチンU(N)の実行のための一般的アセン
ブラ・コードの命令シーケンスについては、第III表を
参照されたい。アンリンク・ルーチンU(B)は、まず
チェーン内の割込みハンドラH(B)の位置を探し出さ
なければならない。これは、割込みベクトル(7)から
出発し、連続する各割込みハンドラ・ルーチンH(N)
に対する順方向ポインタP(N)を使って、次の割込み
ハンドラ・ルーチンH(N−1)の入口点を見つけるこ
とによって実施される。チェーン中の各割込みハンドラ
・ルーチンにH(C)、H(B)、H(A)の順で、チ
ェーン横断中にその識別子が削除すべき目的割込みハン
ドラH(B)の識別子と比較される。アンリンク・ルー
チンU(B)がチェーン中で目的割込みハンドラ・ルー
チンH(B)に出会うと、削除すべき割込みハンドラに
関連するポインタP(B)の内容を直前の割込みハンド
ラH(C)に関連するポインタP(C)の位置にロード
することによって、割込みハンドラH(B)がアンリン
クされる。上記で考察したように、フラグ、フィールド
F(B)の内容も、割込みハンドラH(C)のフラグ・
フィールドF(C)にロードされる。このステップの
後、ポインタP(C)の内容は、割込みハンドラH
(A)の実行可能コード部分の始めを指す“アドレスA"
である。これによって、チェーンがアンリンクされた割
込みハンドラH(B)を飛び越すことができる。マルチ
タスキング・オペレーティング・システム環境では、プ
ログラムをいつでもどんな順序でも開始または終了でき
るので、このことは特に重要である。すなわち、これ
は、制御ブロックC(N)がその割込みハンドラH
(N)の開始位置から一定のオフセットのところに位置
し、そのため割込みハンドラが互いの位置を参照でき、
チェーン中のどの割込みハンドラも任意の順序でアンリ
ンクできるためである。
本明細書で本発明の原理を例示するために選んだマイク
ロコンピュータ・システムは、i8088CPUを使ったIBMパ
ーソナル・コンピュータPC−1型である。しかし、本明
細書で開示した本発明の原理は、i80286CPUを使ったIBM
パーソナル・コンピュータATにも応用できる。IBMパー
ソナル・コンピュータATの構成では2つのi8259Aがあり
15本のI/O装置割込み線を備えている。これらのどの割
込み線も、上記の8088CPU構成における割込み線の共用
と同様のやり方で共用できる。割込みベクトルが指す割
込みハンドラのチェーンは、8088構成の割込みハンドラ
および、それに対応するI/O装置の操作について上記に
説明したのと同じやり方で作動する。
【図面の簡単な説明】
第1図は第1A図および第1B図のつながりを示す図。 第1A図および第1B図は、本発明したがうマイクロコンピ
ュータ・システムの概略を示すブロック図。 第2図は、ポーリング法を用いた先行技術によるマイク
ロコンピュータ・システムのブロック図。 第3図は、割込み法を用いた先行技術によるマイクロコ
ンピュータ・システムのブロック図。 第4図は第4A図ないし第4C図のつながりを示す図。 第4A図ないし第4C図は、本発明にしたがうマイクロコン
ピュータ・システムの詳細を示すブロック図。 第5図は第5A図ないし第5D図のつながりを示す図。 第5A図ないし第5D図は、同じ割込み線IRQ7を共用する複
数のI/O装置とそれらに対応する割込みハンドラH
(A)、H(B)、H(C)との関係を示すブロック
図。 第6図は、初期デフォルト割込みを示す記憶マップ図。 第7図は、最初の割込みハンドラH(A)のリンキング
を示す記憶マップ図。 第8図は、2番目の割込みハンドラH(B)のリンキン
グを示す記憶マップ図。 第9図は、3番目の割込みハンドラH(C)のリンキン
グを示す記憶マップ図。 第10図は、割込みハンドラH(B)のアンリンキングを
示す記憶マップ図。 第11図は、適用業務“N"に関連するソフトウェア・モジ
ュールの概略図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アレン・アール・タナーンバーム アメリカ合衆国メリーランド州ワシントン グローブ、アコンレーン407番地 (72)発明者 ミツチエル・アール・ターナー アメリカ合衆国フロリダ州ボカラトン、フ イスアヴエニユー、エヌ・ダブリユー7225 番地

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】中央処理装置とメモリと相互にバスによっ
    て接続された複数の入出力装置を備え、前記複数の入出
    力装置はその各々が共用の割り込み線に接続された入力
    線と出力線とを具備し、前記入力線は割り込み信号の発
    生した事実をモニタするとともに引き続き発生した割り
    込み信号の伝達を防止する機能を有し、前記出力線は割
    り込み信号を伝達する機能を有するマイクロコンピュー
    タシステムにおいて、前記複数の入出力装置が前記共用
    の割り込み線を共用する共用割り込みシステムであっ
    て、 前記メモリは割り込みベクトルと互いに連鎖化されて記
    憶されている複数の割り込みハンドラルーチンとを少な
    くとも具備し、前記割り込みハンドラルーチンは前記複
    数の入出力装置のうちの一の入出力装置の割り込み要求
    の内容と夫々連鎖された次の割り込みハンドラルーチン
    の開始アドレスを格納する順方向ポインタアドレスとを
    格納しており、 前記中央処理装置が a)前記一の入出力装置が前記割り込み線に割り込み信
    号を発生した事実があるかどうかを特定し、 b)前記事実がある時は、前記割り込み信号に応答して
    メインプログラムの実行を中断するとともに前記バスを
    介して前記メモリ内の前記割り込みベクトルをアクセス
    してそれに格納されている前記一の入出力装置に対応す
    る前記割り込みハンドラルーチンの開始アドレスを特定
    し、前記割り込みハンドラルーチンに格納されている前
    記一の入出力装置の割り込み要求の内容を実現した後
    に、メインプログラムに制御を戻す前に発生した他の割
    り込み信号の伝達を可能ならしめ、 c)前記事実がない時は、前記ポインタアドレスを利用
    して前記次の割り込みハンドラルーチンに制御の対象を
    移し、前記aおよびbの処理を繰り返す、 共用割り込みシステム。
JP61200251A 1985-08-29 1986-08-28 共用割込みシステム Expired - Lifetime JPH0754500B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US770541 1985-08-29
US06/770,541 US4768149A (en) 1985-08-29 1985-08-29 System for managing a plurality of shared interrupt handlers in a linked-list data structure

Publications (2)

Publication Number Publication Date
JPS6252655A JPS6252655A (ja) 1987-03-07
JPH0754500B2 true JPH0754500B2 (ja) 1995-06-07

Family

ID=25088903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61200251A Expired - Lifetime JPH0754500B2 (ja) 1985-08-29 1986-08-28 共用割込みシステム

Country Status (5)

Country Link
US (1) US4768149A (ja)
EP (1) EP0212393B1 (ja)
JP (1) JPH0754500B2 (ja)
CA (1) CA1251869A (ja)
DE (1) DE3687866T2 (ja)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967342A (en) * 1984-08-17 1990-10-30 Lent Robert S Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing
US5182811A (en) * 1987-10-02 1993-01-26 Mitsubishi Denki Kabushiki Kaisha Exception, interrupt, and trap handling apparatus which fetches addressing and context data using a single instruction following an interrupt
US4924233A (en) * 1988-09-02 1990-05-08 Sperry Marine Inc. Sensor input/output system with continuous compass interface
WO1990004827A1 (en) * 1988-10-21 1990-05-03 A.C. Nielsen Company Space management system incorporating software operating environment
EP0408794A1 (de) * 1989-07-20 1991-01-23 Siemens Aktiengesellschaft Peripheriebaugruppe, insbesondere in einem Automatisierungsgerät mit dezentraler Programmsteuerung
US5394544A (en) * 1989-08-07 1995-02-28 Ricoh Co., Ltd. Software system debugger with distinct interrupt vector maps for debugging and application programs
US5265255A (en) * 1990-09-24 1993-11-23 International Business Machines Corp. Personal computer system with interrupt controller
JPH0776951B2 (ja) * 1990-10-30 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
DE69129543D1 (de) * 1990-11-09 1998-07-09 Ast Research Inc Gesicherte''hot''-tastenfunktion für mikroprozessorbetriebenes rechnersystem
US5414860A (en) * 1991-01-29 1995-05-09 International Business Machines Incorporated Power management initialization for a computer operable under a plurality of operating systems
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
JP3003968B2 (ja) * 1991-05-01 2000-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 割込み処理プログラム選択装置及び処理方法
US5319785A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Polling of I/O device status comparison performed in the polled I/O device
US5805841A (en) * 1991-07-24 1998-09-08 Micron Electronics, Inc. Symmetric parallel multi-processing bus architeture
JPH0831041B2 (ja) * 1991-09-06 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム条件処理方法およびコンピュータ・システム
EP0533361A1 (en) * 1991-09-17 1993-03-24 NCR International, Inc. Interrupt handling in a computer system
WO1993006549A1 (en) * 1991-09-19 1993-04-01 Chips And Technologies, Inc. A system for performing input and output operations to and from a processor
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5454078A (en) * 1992-08-07 1995-09-26 International Business Machines Corporation System for sharing name among network adapters by, dynamically linking adapters having same logical name and maintaining linked state of remaining adapters
US5438677A (en) * 1992-08-17 1995-08-01 Intel Corporation Mutual exclusion for computer system
US5903757A (en) * 1992-09-10 1999-05-11 International Business Machines Corporation Monitoring and handling of exception conditions in computer system
US5590376A (en) * 1992-11-13 1996-12-31 Toshiba America Information Systems, Inc. Apparatus and method for detecting and updating status of removable storage system using shared interrupt and software flag
US5530874A (en) * 1993-02-02 1996-06-25 3Com Corporation Network adapter with an indication signal mask and an interrupt signal mask
AU6023894A (en) * 1993-03-25 1994-10-11 Taligent, Inc. Multi-level interrupt system
US5652879A (en) * 1993-05-12 1997-07-29 Apple Computer, Inc. Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs
GB2279162B (en) * 1993-06-15 1997-11-19 Ibm Interrupt-driven processor system
WO1995001601A1 (en) * 1993-07-02 1995-01-12 Oakleigh Systems, Inc. High-speed cpu interconnect bus architecture
JP3370155B2 (ja) * 1993-12-01 2003-01-27 富士通株式会社 データ処理システム
US6330583B1 (en) * 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
US5553293A (en) * 1994-12-09 1996-09-03 International Business Machines Corporation Interprocessor interrupt processing system
US6148321A (en) * 1995-05-05 2000-11-14 Intel Corporation Processor event recognition
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5802306A (en) * 1995-10-31 1998-09-01 International Business Machines Corporation Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters
US6327653B1 (en) * 1995-11-07 2001-12-04 Samsung Electronics Co., Ltd. Technique for easily changing operating systems of a digital computer system using at least two pushbuttons
JP3208332B2 (ja) * 1995-12-20 2001-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 割込み装置
JP2809187B2 (ja) * 1996-04-15 1998-10-08 日本電気株式会社 割込み線共有回路および割込み線共有方法
US5758168A (en) * 1996-04-18 1998-05-26 International Business Machines Corporation Interrupt vectoring for optionally architected facilities in computer systems
US6112224A (en) * 1996-09-20 2000-08-29 Georgia Tech Research Corporation Patient monitoring station using a single interrupt resource to support multiple measurement devices
US6021456A (en) * 1996-11-12 2000-02-01 Herdeg; Glenn Arthur Method for communicating interrupt data structure in a multi-processor computer system
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US5968159A (en) * 1997-09-12 1999-10-19 Infineon Technologies Corporation Interrupt system with fast response time
US6243736B1 (en) * 1998-12-17 2001-06-05 Agere Systems Guardian Corp. Context controller having status-based background functional task resource allocation capability and processor employing the same
US6374320B1 (en) 1998-08-10 2002-04-16 Micron Technology, Inc Method for operating core logic unit with internal register for peripheral status
US6233627B1 (en) 1998-08-10 2001-05-15 Micron Technology, Inc. Processor with internal register for peripheral status
US6189049B1 (en) 1998-08-10 2001-02-13 Micron Technology Method for operating processor with internal register for peripheral status
ATE239255T1 (de) * 1998-08-10 2003-05-15 Micron Technology Inc Prozessor oder zentraleinheit mit internem register für peripheriezustand
US6219720B1 (en) 1998-08-10 2001-04-17 Micron Technology, Inc. Core logic unit with internal register for peripheral status
US6219743B1 (en) * 1998-09-30 2001-04-17 International Business Machines Corporation Apparatus for dynamic resource mapping for isolating interrupt sources and method therefor
US7516453B1 (en) * 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6279067B1 (en) * 1999-01-13 2001-08-21 Ati International Srl Method and apparatus for detecting interrupt requests in video graphics and other systems
US6725330B1 (en) * 1999-08-27 2004-04-20 Seagate Technology Llc Adaptable cache for disc drive
US6598140B1 (en) * 2000-04-30 2003-07-22 Hewlett-Packard Development Company, L.P. Memory controller having separate agents that process memory transactions in parallel
US6611906B1 (en) * 2000-04-30 2003-08-26 Hewlett-Packard Development Company, L.P. Self-organizing hardware processing entities that cooperate to execute requests
US6618779B1 (en) * 2000-05-30 2003-09-09 Intel Corporation Method and apparatus for chaining interrupt service routines
JP3578082B2 (ja) * 2000-12-20 2004-10-20 株式会社デンソー 処理実行装置及び記録媒体
TW499795B (en) * 2001-03-19 2002-08-21 Realtek Semiconductor Corp PCI extended function interface and the PCI device using the same
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6968411B2 (en) * 2002-03-19 2005-11-22 Intel Corporation Interrupt processing apparatus, system, and method
US7627585B2 (en) * 2002-12-02 2009-12-01 Sap Ag Data structure mapping and packaging
US20050021894A1 (en) * 2003-07-24 2005-01-27 Renesas Technology America, Inc. Method and system for interrupt mapping
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
US7302690B2 (en) * 2003-07-31 2007-11-27 International Business Machines Corporation Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US20050138256A1 (en) * 2003-12-23 2005-06-23 Bolay Frederick H. Method and apparatus for processing hot key input using operating system visible interrupt handling
DE10361364B4 (de) * 2003-12-29 2010-07-01 Advanced Micro Devices, Inc., Sunnyvale Vorrichtung zum Behandeln von Interruptereignissen, mit der pegel-sensitive bzw. level-sensitive Interruptanforderungen in flankengetriggerten Interruptnachrichten umgesetzt werden
CN1333344C (zh) * 2005-08-18 2007-08-22 上海交通大学 减轻片上系统软件负载的方法
JP4971676B2 (ja) * 2006-04-28 2012-07-11 ルネサスエレクトロニクス株式会社 割り込み制御回路及び割り込み制御方法
US8230198B2 (en) * 2006-08-02 2012-07-24 Sandisk Il Ltd. System for synchronous code retrieval from an asynchronous source
US8037468B2 (en) * 2006-08-02 2011-10-11 Sandisk Il Ltd. Methods for synchronous code retrieval from an asynchronous source
US8078657B2 (en) * 2007-01-03 2011-12-13 International Business Machines Corporation Multi-source dual-port linked list purger
JP2008176360A (ja) * 2007-01-16 2008-07-31 Renesas Technology Corp マルチプロセッサシステム
US20080209089A1 (en) * 2007-02-27 2008-08-28 Integrated Device Technology, Inc. Packet-Based Parallel Interface Protocol For A Serial Buffer Having A Parallel Processor Port
US7870313B2 (en) * 2007-02-27 2011-01-11 Integrated Device Technology, Inc. Method and structure to support system resource access of a serial device implementating a lite-weight protocol
US8516163B2 (en) * 2007-02-27 2013-08-20 Integrated Device Technology, Inc. Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
US7617346B2 (en) * 2007-02-27 2009-11-10 Integrated Device Technology, Inc. Rapid input/output doorbell coalescing to minimize CPU utilization and reduce system interrupt latency
US8094677B2 (en) * 2007-02-27 2012-01-10 Integrated Device Technology, Inc. Multi-bus structure for optimizing system performance of a serial buffer
JP5058082B2 (ja) * 2008-06-18 2012-10-24 株式会社オートネットワーク技術研究所 端子金具及び端子付き電線
US20100088446A1 (en) * 2008-10-06 2010-04-08 Texas Instruments Incorporated Prioritizing interrupt controller
US8255604B2 (en) * 2010-04-06 2012-08-28 International Business Machines Corporation Interrupt vector piggybacking
US9594704B1 (en) 2013-12-17 2017-03-14 Google Inc. User mode interrupts
US9495311B1 (en) * 2013-12-17 2016-11-15 Google Inc. Red zone avoidance for user mode interrupts
CN111506530A (zh) * 2019-01-30 2020-08-07 智原科技股份有限公司 中断管理系统及其管理方法
JP2022543864A (ja) * 2019-08-05 2022-10-14 ホップラ リミテッド メディア再生機器にコンテンツを提供するための方法およびシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2446245A1 (de) * 1974-09-27 1976-04-01 Siemens Ag Verfahren zur verknuepfung und bereitstellung von programmen eines programmsystems fuer datenverarbeitungseinrichtungen, z.b. zentralsteuerwerk einer fernsprechvermittlungsanlage
US4378589A (en) * 1976-12-27 1983-03-29 International Business Machines Corporation Undirectional looped bus microcomputer architecture
US4315314A (en) * 1977-12-30 1982-02-09 Rca Corporation Priority vectored interrupt having means to supply branch address directly
JPS55123736A (en) * 1979-03-16 1980-09-24 Hitachi Ltd Interrupt control system
EP0104545A3 (en) * 1982-09-27 1985-12-04 Kabushiki Kaisha Toshiba Input and output port control unit

Also Published As

Publication number Publication date
CA1251869A (en) 1989-03-28
EP0212393A2 (en) 1987-03-04
DE3687866T2 (de) 1993-09-23
EP0212393B1 (en) 1993-03-03
EP0212393A3 (en) 1989-07-19
DE3687866D1 (de) 1993-04-08
US4768149A (en) 1988-08-30
JPS6252655A (ja) 1987-03-07

Similar Documents

Publication Publication Date Title
JPH0754500B2 (ja) 共用割込みシステム
US5379381A (en) System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
US3688274A (en) Command retry control by peripheral devices
US5765198A (en) Transparent relocation of real memory addresses in the main memory of a data processor
US5867703A (en) Common reset ROM
US4805137A (en) Bus controller command block processing system
EP0402054B1 (en) Command delivery for a computing system
US5694617A (en) System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
US4020471A (en) Interrupt scan and processing system for a data processing system
US5038275A (en) Status transfer structure within a data processing system with status read indication
EP0730221A2 (en) Method and apparatus for accelerating control transfer returns
JPH0430053B2 (ja)
GB1588929A (en) Priority vectored interrupt using direct memory access
JPH0450621B2 (ja)
US5170471A (en) Command delivery for a computing system for transferring data between a host and subsystems with busy and reset indication
US4912626A (en) Hit predictive cache memory
US5317745A (en) Minimal interrupt latency scheme using multiple program counters
US5371857A (en) Input/output interruption control system for a virtual machine
US4851992A (en) Register/saving/restoring system for saving and restoring data in a register of a slave processor
US5247640A (en) Dual access control system including plural magnetic disk control units and contention control circuitry
JPH0916409A (ja) マイクロコンピュータ
IE61307B1 (en) Method to execute two instruction sequences in an order determined in advance
US4620277A (en) Multimaster CPU system with early memory addressing
FI103926B (fi) Järjestely päivitysprosessorin liittämiseksi mikroprosessoriin
JPH0520120A (ja) 並列処理コンピユータシステム