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

共用割込みシステム

Info

Publication number
JPS6252655A
JPS6252655A JP61200251A JP20025186A JPS6252655A JP S6252655 A JPS6252655 A JP S6252655A JP 61200251 A JP61200251 A JP 61200251A JP 20025186 A JP20025186 A JP 20025186A JP S6252655 A JPS6252655 A JP S6252655A
Authority
JP
Japan
Prior art keywords
interrupt
interrupt handler
handler
line
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.)
Granted
Application number
JP61200251A
Other languages
English (en)
Other versions
JPH0754500B2 (ja
Inventor
デイヴイド・ジエイ・ブラデリイ
ブラツデリイ・ジエイ・コノピツク
マーテイン・エー・リード
アレン・アール・タナーンバーム
ミツチエル・アール・ターナー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
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)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はディジタル・コンピュータのアーキテクチャに
関するものであり、より具体的には、マイクロコンピュ
ータ・システムの複数の入出力装置間でハードウェア割
込みを共用するための改良されたシステムに関するもの
である。
B、従来技術 最近のマイクロコンピュータ・システムは、一般にアド
レス・バスとデータ・バスによって、逐次通信装置、ロ
ーカル・エリア・ネットワーク・インターフェース、並
行印刷機構、ディスケット制御装置、実時間クロック、
特殊付加プロセッサ。
固定ディスク制御装置などの複数の入出力装置に接続さ
れた中央演算処理装置を含んでいる。一般にかかる入出
力装置はCPUとは非同期的に作動し、不規則な間隔で
CPUのアテンションを必要とするだけである。
CPUによるかかる入出力装置のサービスを調整するた
めに、先行技術では主として2つの方法が用いられてき
た。第1の方法は、状況ポーリング法であり、第2の方
法は割込み法である。
第2図は、複数の入出力装置にサービスするために状況
ポーリング法を用いる汎用マイクロコンピュータ・シス
テムの構成を示したものである。
第2図において、CPU20’は、データ・バス26に
よって複数の入出力(Ilo>装置23および25なら
びにランダム・アクセス記憶装置(RAM)32および
読取り専用記憶装置(ROM)30に接続されている。
複数の状況ポーリング線21がCPU20’ から出て
、それぞれ工10装置23および25に向っている。マ
ルチプレクサ19を使って、CPU20’に接続される
ポーリング線21の数を減らすことができる。状況ボー
リーング法では、CPU20’は各I10装置を逐次的
にテストして、サービスが必要がどうが決定しなければ
ならない。CPU20’中の主プログラムはその時間の
大部分をI10装置23および25への周期的ポーリン
グに充てているので、この方法は、マイクロコンピュー
タ・システムのシステム・スループットを減らす効果が
ある6第3図は、割込み法を用いた別の先行技術の方法
を示したものである。第3図において、CPU20は、
データ・バス26によってI10装置27および29な
らびにRAM32およびROM30に接続されている。
第3図のシステムに含まれているもう一つのハードウェ
ア・エレメントは、プログラム可能割込み制御装置(P
IC)22であり、やはりデータ・バス26に接続され
ている。
各I10装置27および29は、P I C22&:向
う別々の専用割込み線28を備えている。このPrC2
2は、I10装置27または29の一方がら、その工/
○装置専用の割込み線28を経て割込み信号(IRQ)
を受は取り、CPU20に割込み要求信号(IREQ)
を出力する。CPU20は、PrC22から割込み要求
信号(IREQ)を受は取るまで、その主プログラムを
実行することができる。割込み要求信号(IREQ)を
受は取ると、対応する割込み信号を出した工/○装置に
対するサービスを行うため、主プログラムの実行を中止
する。PrC22からCPU20に送られる割込み要求
信号(IREQ)は、CPU20に、現在実行中の命令
を完了して、割込みハンドラと呼ばれる新しいルーチン
を取り出すべきことを通知する。割込みハンドラは、割
込みを要求しているI10装置に対してサービスを行な
う。このサービスが完了すると、CPU20はその主プ
ログラムを中止した所から再開する。第3図の割込み法
を使うと、第2図の状況ポーリング法に比べてシステム
・スループットが著しく増大する。
割込み駆動式マイクロコンピュータ・システムで全体的
管理を行うP工C22は既に知られている。このPrC
22は、I10装置から割込み信号(IRQ)を受は取
って、どのIRQ信号が最高の優先順位をもつか決定し
、そのIRQ信号が現在サービス中のレベルよりも高い
優先順位をもつかどうか決定し、この決定にもとづいて
CPU20に割込み要求信号(IREQ)を出す。かか
るPrC22の一例は、インテル社発行の1APX86
.88ユーザーズ・マニュアル、1981年8月、B−
67〜B−83頁に記載されているインテル8259A
である。
第3図に示すやり方でPrC22を用いたマイクロコン
ピュータ・システムは例えばIBMパーソナル・コンピ
ュータである。
第3図の各工/○装置27.29は、一般にその特定操
作要件に関連する専用プログラム、一般にサービス・ル
ーチンないし割込みハンドラと呼ばれているプログラム
を備えている。IBMパーソナル・コンピュータでは、
割込みベクトルによって割込みハンドラがアクセスされ
る。「割込みベトクル」の語は、割込みハンドラ・プロ
グラムがある記憶位置のアドレスを保持するのに使われ
る、記憶装置中の位置という意味である。最初システム
電源がオンになるとき、初期設定操作の一つは、RAM
32の低アドレス位置に少くとも8個の割込みベクトル
を構築することである。各側込みベクトルは、8本の割
込み線28のうちの対応する1本上で割込みを要求する
8個のI10装置のうちの一つからの割込み信号を処理
するための1割込みハンドラ・ルーチンの出発点の記憶
アドレスを表す。IBMパーソナル・コンピュータの操
作方式では、I10装置27または29が対応する1本
の割込み線を比較的高い電位にするとき、PIC22が
割込み信号(IRQO〜IRQ7)を検出する。PIC
22がその要求を引き受ける場合、CPU20に通じる
IREQ出力線が高レベルになって、CPU20に有効
な割込み要求が行なわれたことを指示する。CPU20
のIREQ線に割込み要求が存在するとき、CPU20
はその割込み肯定応答マシン・サイクルに入る。
割込み肯定応答マシン・サイクルは、現命令の処理を完
了して、現ステータス・フラグ、ある種の演算レジ、ス
タの内容、および現命令ポインタを、RAM32中に設
けられた後入れ先出しスタックに記憶する。CPU20
は、2種の割込み肯定応答CIACK)パルスの一つを
出す。これらの割込み肯定応答(IACK)パルスは、
PIC22に、CPU20がその割込み要求を引き受け
たことを合図する。PIC22は、このときRAM32
中の割込みベクトルの一つによって割込みハンドラ・ル
ーチンの実行をすぐに開始することができる。これは、
CPU20が出す2つの割込み背定応答(IACK)パ
ルスのシーケンス中に行われる。第2の割込み肯定応答
パルスが出ると、PIC22は、割込みハンドラ・ルー
チンに対応する所望の割込みベクトルに関係する単一の
割込みベクトル・バイトをデータ・バス26に載せる。
CPU20は、PIC22から割込みベクトル・バイト
を受は取ると、RAM32中での割込みベクトル位置の
実アドレスを計算する。次にRAM32中のアドレスさ
れた割込みベクトルの内容をCPU20がアクセスする
。この内容は、アテンションを要求しているI10装置
の割込みにサービスする割込みハンドラ・ルーチンの始
めのアドレスである。次に割込みハンドラ・ルーチンの
プログラム実行をCPU20が実施する。
サービス要求を実施するための先行技術による操作方法
の一例は、通信媒体からデータ・バイトを受は取ったば
かりの非同期通信制御装置がI10装置27である場合
である。I10装置27は、受は取ったデータ・バイト
をRAM32中で以前に留保しておいた適当なバッファ
に転送するため、CPU20からサービスを要求する。
RAM32中の対応する割込みハンドラ・ルーチンは、
対応する割込みベクトルによってアクセスされ、CPU
20がデータ・バイトをI10装置27からRAM32
に転送させることができるようにするのに必要な命令シ
ーケンスをもたらす。
割込みハンドラ・ルーチンが実行を完了すると、割込み
ハンドラ・ルーチンの終りに割込みリターン命令(IR
ET)を使ッテ、以前にCPU20が実行中であった主
プログラムを再開することができる。割込みリターン命
令(IRET)は、RAM32中の記憶スタックから、
命令ポインタ、コード・セグメント、およびフラグを読
み取って、それらをCPU20の適当な位置に入れる。
こうして、主プログラムは、割込みハンドラ・ルーチン
の実行中にどんな変化が起ころうと、CPU中で中断さ
れた所から再開する。
説明の便宜上、以下では8本の割込みI!28を各線上
の割込み信号の名前(IRQO〜IRQ7)で呼ぶこと
にする。IBMパーソナル・コンピュータでは、PIC
22に入る8本の割込み線のうちの2本が、システム・
タイマとキーボード用に充てられている。優先順位が最
高の割込み線IRQOが、システム・タイマに接続され
、優先順位が2番目の割込み線IRQ1がキーボード制
御装置に接続されている。残り6本の割込み線IRQ2
〜IRQ7は、I10装置が共用する。優先順位が3番
目の割込み要求線IRQ2は、垂直帰線間隔がいつ発生
するかを示すため、ディスプレイ・アダプタに接続され
ている。優先順位が下から2番目の割込み要求線IRQ
6は、ディスケット制御装置に接続され、その制御装置
がある操作を完了したときアクティブになる。かくて、
容易にわかるように、PIC22に通じる予備割込み線
28の使用可能性は、逐次通信アダプタ、並行印刷機構
アダプタ、固定ディスク制御装置、ローカル・エリア・
ネットワーク・アダプタなどのオプションの工/○装置
の付加によってさらに減少する。
割込み線の本数が少ないという問題を解決するための一
方法が、特開昭61−28154号公報に記載されてい
る論理回路構成によってもたらされる。先行技術では、
割込み線に接続されたI10装置は1割込み線を低レベ
ルに保ち、次にその線を高レベルにドライブして割込み
信号を生成する。
これに対して、上記公開公報の発明では、単一の割込み
線を共用する各I10装置に共用割込み論理装置が設け
られる。この共用割込み論理装置は、共用割込み線が高
電位に浮遊できるようにする。割込み線を共用する各I
10装置は、それぞれの共用割込み論理装置を使って共
用割込み線を低電位レベルにすることにより、割込み信
号(パルス)を生成することができる。パルスの前縁が
PICを活動化し、パルスの後縁はPICにCPUに対
する割込み要求を出すように合図する。各■/○装置の
共用割込み論理装置は、共用割込み線についてその線に
接続されているI10装置の一つから割込み信号が発生
したかどうか監視しなければならない。その割込み線に
接続されている何れかのI10装置がその線を低電位に
ドライブすると、その線に接続されている各110装置
の共用割込み論理装置は、すべての共用割込み論理装置
が再使用可能信号によって再活動化されるまで、次の割
込み信号の発生を防止する。共用割込み線に接続された
各工/○装置の共用割込み論理装置は、割込みステータ
ス・ビットと割込み可能ビットを含んでいる。これらの
ビットは対応する割込みハンドラ・ルーチンによって制
御し監視することかできる。共用割込み論理装置が再活
動化されたとき工/○装置の割込みステータス・ビット
が第1の2進状態にある場合、共用割込み論理装置は割
込み信号を再発生する。こうして、2つのI10装置が
同時に割込み信号を出し、一方のI10装置にサービス
した後1割込みハンドラ・ルーチンが再使用可能信号を
出す場合に、割込みの喪失が防止される。
C0発明が解決しようとする問題点 複数の異なる割込みハンドラによってサービスされる複
数のI10装置間で単一の割込み線をどう共用するかの
問題は、マルチプログラミング・システムやマルチタス
キング・システムでは複雑になる。マルチタスキング・
システムでは、プログラムをいつでもどんな順序でも開
始し終了することができる。順次にロードされた割込み
ハンドラに対する割込みベクトルの内容を順次に保管す
る手順を採用したとすると、かかる手順は、同じ割込み
を共用する一連のプログラムのどれもがどんな順序でも
終了できるマルチタスキング・システムでは、うまく働
かない。
マルチタスキング・オペレーティング・システムは、シ
ステムRAMに常駐する複数の適用業務プログラムを切
り換える能力をもつ。典型的な場合、マルチタスキング
・オペレーティング・システムは、システムRAMを、
それぞれが一つずつ適用業務プログラムを含む複数の保
護領域に区分する。各区画は、それ自身のコマンド・プ
ロンプトをもつことができ、したがって、ユーザは、他
のプログラムの実行中に背景区画に切り換えて、コンパ
イラを開始し、リストを印刷し、またはキーボード操作
を余り必要としない他のプログラムを開始し、その後再
び主(前景)区画に切り換えて、作業を続けることがで
きる。たとえば、IBMパーソナル・コンピュータでは
、マルチタスキング°オペレーティング・システムは、
DO8と適用業務プログラムの間にそれを設置すること
によって動作することができる。ある適用業務プログラ
ムがDO3またはBIO8を呼び出すとき、その適用業
務プログラムは、まずマルチタスキング・オペレーティ
ング・システムを介在させなければならない。このとき
マルチタスキング・オペレーティング・システムは、同
時にアクティブな他の適用業務プログラムの一つを実行
するときかどうか判断することができ、DO8の呼出し
を行なった元の適用業務プログラムを続行せずに新しい
適用業務プログラムにシステムの制御権を渡すことがで
きる。DO8の呼出しを頻繁に行わない適用業務プログ
ラムでは、マルチタスキング環境にあるプログラムが充
分に定期的な間隔で時間を公平に共用できるようにする
ために、タイム・スライシング技術を用いることができ
る。タイム・スライシングでは、マルチタスキング・オ
ペレーティング・システムは、現在実行中のタスクがど
れだけの時間実行され続けているかを監視する。
ある時間の間、あるタスクがDO8の呼出しを行なわな
かった場合、マルチタスキング・オペレーティング・シ
ステムは、現在実行中のタスクを中止して、他の適用業
務プログラムを同じ長さの時間実行させる。かかるマル
チタスキング・オペレーティング・システムでは、優先
順位の高い適用業務プログラムが実行時間の大きな部分
を獲得できるようにするため、優先順位スケジューリン
グ機能を−も含めることができる。
一本の割込み線を複数のI10装置の間でどのように共
用するかの問題が差し迫った問題になるのは、かかるマ
ルチタスキング・オペレーティング・システムにおいて
である。この問題の解決方法として、I10装置用の割
込みハンドラを任意の順序で終了させることにすると、
割込みベクトル・アドレスの連続アクセスのために簡単
な連結手順を適用することができなくなる。
したがって、改良された割込み共用技術を提供すること
が、本発明の一目的である。
D0問題点を解決するための手段 連係リスト(チェーン)・データ構造の複数の割込みハ
ンドラを管理し、マイクロコンピュータの共通割込み線
を共用する複数のI10装置にサービスするための共用
割込みシステムを開示する。
このシステムは、記憶装置において、新たな割込みハン
ドラ・ルーチンを以前にロードされた割込みハンドラ・
ルーチンにリンクして連係リスト・データ構造にするた
めの秩序立った手段を提供する。またこのシステムは、
割込みハンドラによってサービスされる複数のI10装
置の間で共通割込み線を共用するための秩序立った手段
を提供する。さらにこのシステムは、I10装置を非活
動化すべきときに割込みハンドラ・ルーチンのチェーン
から対応する割込みハンドラ・ルーチンをアンリンクす
るための秩序立った手段を提供する。
このシステムは、I10装置を始めに活動化された順序
とは異なる順序で非活動化できるマルチタスキング・オ
ペレーティング・システム環境で特に有用である。
本発明によれば、新しくロードされた割込みハンドラ・
ルーチンを以前にロードされた割込みハンドラ・ルーチ
ンにリンクする際に、チェーンにおける最初の割込みハ
ンドラ・ルーチンを指し示す割込みベクトルの内容を、
新しくロードされた割込みハンドラ・ルーチンを指すポ
インタに置き換える。前の割込みベクトルは、順方向ポ
インタ・アドレスとじ上値われ、新しくロードされた割
込みハンドラ・ルーチンから一定のオフセットのところ
に記憶される。
本発明によれば、共用割込み線に割込み信号が印加され
た結果、新しくロードされた割込みハンドラ・ルーチン
が制御権を得るとき、このルーチンが対応するI10装
置の割込みステータス・レジスタの内容を読み取って、
対応するI10装置が共用割込み線上に割込み信号を発
生させたかどうか決定する。対応するI10装置がその
割込み信号を発生させた場合、新しくロードされた割込
みハンドラ・ルーチンがその割込みにサービスし、プロ
セッサ制御命令(CLI)を出して割込みを不能にし、
割込みハンドラ・ルーチンが完了したときPIC(プロ
グラム可能割込み制御装置)に無指定割込み終了コマン
ドを出し、次に大城再活動化信号を出してその割込み線
を共用するすべてのI10装置上の共用割込み論理装置
を再活動化する。これは、例えば割込み線を共用するす
べてのI10装置上の共用割込み論理装置によって監視
されるバスへ特定のI10アドレスを出すことによって
実施する。各工/○装置はこのアドレスをデコードし、
それが各I10装置に印加される大城再活動化信号とな
る。次に割込みハンドラ・ルーチンは、cpuで中断さ
れたプログラムの割込み点に制御権を戻す割込みリター
ン(IRET)命令を出す。対応するI10装置が、共
用割込み線上に割込み信号を発生させなかった場合、新
しくロードされた割込みハンドラ・ルーチンは、その実
行可能コードの開始位置から一定のオフセット値だけ離
れたところに記憶されている順方向ポインタ・アドレス
を使って、チェーン中の次の割込みハンドラ・ルーチン
に制御権を渡す。
割込みハンドラ・ルーチンのチェーンから特定の割込み
ハンドラ・ルーチンをアンリンクする場合は、まずチェ
ーン内でアンリンクすべき割込みハンドラ・ルーチンの
位置を指定しなければならない。これは、割込みベクト
ルから出発し、連続する各割込みハンドラ・ルーチン用
の順方向ポインタを使って、次の割込みハンドラ・ルー
チンの入口点を見つけることによって実施される。チェ
ーン中の各割込みハンドラ・ルーチンに出合うと、その
識別子が削除すべき目的割込みハンドラの識別子と比較
される。チェーン中で目的割込みハンドラ・ルーチンに
出合うと、チェーン中の直前の割込みハンドラ・ルーチ
ンの順方向ポインタの位置に目的割込みハンドラ・ルー
チン中の順方向ポインタの内容を書込み、削除された割
込みハンドラ・ルーチンの前後でチェーンをスキップさ
せることによって目的割込みハンドラ・ルーチンが削除
される。
本発明の共用割込みシステムは、複数のI/’0装置が
単一の割込み線を共用できるようにし、さらにマルチタ
スキング・オペレーティング・システム環境で割込みハ
ンドラ・ルーチンを任意の順序で終了させることのでき
る改良された割込み共用技術を提供する。
E、実施例 第1図、第4図、第5図は、同じ割込み線IRQ7を共
用する複数の工10装置31.33.35およびRAM
32中のそれに対応する割込みハンドラH(A) 、 
H(B) 、 H(C) (7)関係を示したものであ
る。
割込み共用のM理を例示するために割込み1IRQ7を
選んだが、別の割込み線を選択することも可能である。
それぞれ割込み線IRQ2とIRQ6に接続されている
。先行技術によるI10装置27と29は1割込みJi
lX(IRQ2またはIRQ6)を低レベルに保つこと
によって作動し、次にその割込み線を高レベルにドライ
ブして割込み信号を発生させる。これに対し9本明細書
で開示するシステムでは、単一の割込み線IRQ7を共
用する複数のI10装置31.33.35のそれぞれに
共用割込み論理袋[46がある。この共用割込み論理装
置46は、共用割込み線を高電位に浮遊させる。これは
、たとえば各論理装置中のプルアップ抵抗器によって実
施できる。割込みAIIIRQ7を共用する各I10装
置31.33.35は、各共用割込み論理装置46を使
って、共用割込み線IRQ7上の割込み信号パルスを低
電位レベルにすることができる。このパルスの前縁がP
IC22を活動化し、パルスの後縁はPIC22にCP
−U 20に対する割込み要求を発生させるように合図
する。各I10装@31.33.35の共用割込み論理
装置46は、共用割込み線IRQ7について、その割込
み線に接続されている工/○装置31.33.35のう
ちの−っから割込み信号が発生しているかどうか監視し
なければならない。割込み線IRQ7に接続されている
何れかのI10装置31.33.35がその割込み線を
低電位にドライブすると、すべてのI10装置31.3
3.35のすべての共用割込み論理装置46が線52上
の大城再活動化信号によって再活動化されるまで、割込
み線IRQ7に接続されたI10装置31.33.35
の共用割込み論理装置46が、次の割込み信号の発生を
防止する。
共用割込み線IRQ7に接続されている各I10装置3
1.33.35の各共用割込み論理装置46は、割込み
ステータス・ビットINTを割込みステータス・ラッチ
48中に記憶し1割込み可能ビットENAを割込み可能
ラッチ50に記憶している。これらのビットは、それぞ
れ対応する割込みハンドラ・ルーチンH(A) 、 H
(B)またはH(C)によって制御し監視することがで
きる。
共用割込み論理装置46が線52によって再活動化され
るとき、工/○装置31.33.35に対する割込みス
テータス・ビットINTが第1の2進状態″1”である
場合、共用割込み論理装置46は再びIRQ7上に割込
み信号を出す。こうして、複数のI10装置31.33
、または35が同じ時間間隔中に割込み信号を出し1割
込みハンドラ・ルーチンが一つのI10装置にサービス
した後、大城再活動化信号を出す場合に1割込みの喪失
が防止される。
適用業務プログラムAP (N)が共用割込み線IRQ
7の使用を要求するとき、第11図に示すように割込み
共用プログラムS (N)を伴わなければならない(N
は適用業務A、B、Cなどの識別子である)、本発明に
よれば1割込み共用プログラムS (N)は、第■表に
示すリンク論理ルーチンL (N) 、第1表に示す割
込みハンドラ・ルーチンH(N)、および第1表に示す
アンリンク論理ル−チンU (N)の3つの部分からな
る。割込み共用プログラムS (N)は、適用業務プロ
グラムAP (N)をロードするときロードすることが
でき、RAM32の連続部分を占めるか、または別々の
既知の位置を占めることができる0割込み線IRQ7の
使用を要求する各適用業務プログラムAP (N)と関
連するリンク論理ルーチンL(N)が、新しくロードさ
れた割込みハンドラ・ルーチンH(N)を以前にロード
された割込みハンドラ・ルーチンのチェーンにリンクす
るための秩序立った方法をどのようにしてもたらすかを
第■表および第6図ないし第9図に示す。所与の適用業
務プログラムAP (N)がアクティブな間に割込み線
IRQ7を共用するための秩序立った方法を割込みハン
ドラH(N)がどのようにしてもたらすかを第5図およ
び第1表に示す。特定の割込みハンドラ・ルーチンH(
N)に対応する適用業務プログラムAP (N)がマル
チタスキング・オペレーティング・システム環境で非活
動化されるとき、複数の割込みハンドラ・ルーチンから
特定の割込みハンドラ・ルーチンH(N)をアンリンク
するための秩序立った手段をアンリンク論理ルーチンU
 (N)がどのようにしてもたらすかを、第1表および
第10図に示す。
本発明によれば、第8図に示した、新しくロードされた
割込みハンドラ・ルーチンH’(B)を、H(A)を含
む以前にロードされた割込みハンドラ・ルーチンのチェ
ーンにリンクするための方法では、新しくロードされた
割込みハンドラ・ルーチンH(B)に対応する新しく活
動化されたリンク論理ルーチンL (B)が低アドレス
の割込みベクトル■(7)の現内容(″アドレスA″)
をその新しくロードされた割込みハンドラ・ルーチンH
(B)に対するポインタパアドレスB ptで置き換え
る。割込みベクトルの現内容(″アドレスAtp)は、
順方向ポインタ・アドレスとして使用され、新しくロー
ドされた割込みハンドラ・ルーチンHCB)から一定の
オフセット値だけ離れたところにある制御ブロック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)は、対応するI10装置33用の割込みステータ
ス・ラッチ48の内容を読み取って、対応するI10装
置33が共用割込み線IRQV上に割込み信号を発生さ
せたかどうか決定する。当該I10装置33が割込み信
号を発生させた場合、新しくロードされた割込みハンド
ラ・ルーチンH(B)はその割込みにサービスし、プロ
ヤッサ制御命令(CLI)を出して割込み不能にし、割
込みハンドラ・ルーチンH(B)が完了したときPIC
22に無指定割込み終了(E○工)コマンドを出し、次
に割込み線IRQ7を共用するすべてのI10装置31
.33.35の共用割込み論理装置46を再活動化する
。これは、割込み線IRQ7を共用するすべてのI10
装置31.33.35の共用割込み論理装置46によっ
て監視されるアドレス・バス24に特定のI10アドレ
スを置き、その結果として線52に大城再活動化信号を
出すことによって行なわれる。各I10装置31.33
.35はそのアドレス・デコーダ38でアドレスをデコ
ードし、それによって大城再活動化信号が各I10装置
31−33.35の共用割込み論理装置46に通じる線
52に印加される。次に、割込みハンドラ・ルーチンH
(B)が割込みリターン命令(工RET)を出して、制
御を主プログラムの中断点に戻す。
新しくロードされた適用業務プログラムAP(B)に対
応するI10装置33が共用割込み線IRQ7上に割込
み信号を発生させなかった場合、新しくロードされた割
込みハンドラ・ルーチンH(B)は、そこから一定のオ
フセット値だけ離れたところのポインタ位置P (B)
に記憶されている順方向ポインタ・アドレス(“アドレ
スA”)を使って、第5図に示す割込みハンドラ・ルー
チンのチェーン中の2番目に新しくロードされた割込み
ハンドラ・ルーチンH’(A)に制御権を渡す。
“CLI”、” E OI ”および“IRET”命令
を含む、インテル8088CPU20およびインテル8
259PIC22用の命令セットについての説明は、上
記に引用したi A P X 86.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)のポインタ位flP (B)からの順方向ポ
インタ(“アドレスA″)をロードし、それによってチ
ェーンが割込みハンドラ・ルーチンH(B)を飛ばして
つながるようになる。
本発明のもう一つの特徴は、特徴的署名を提供すること
を含んでいる。この署名はその複製コピーが各割込みハ
ンドラ・ルーチンH(N)から一定のオフセット値だけ
離れたところにある各制御ブロックC(N)に記憶され
、割込みハンドラ・チェーンが改悪されているかどうか
決定するためにそれに照会する。アンリンク論理ルーチ
ンU(N)の実行中、割込みチェーンが改悪されたこと
がわかった場合、アンリンク・エラー回復手順を呼び出
すことができる。エラー回復手順の一例は、低アドレス
中の元の割込みベクトルを復元し、割込みハンドラ・チ
ェーンの改悪された部分を迂回するものである。
第1図に示すマイクロコンピュータ・システムでは、C
PU20は4アドレス・バス24、データ・バス26、
工/○メモリ線34、および読み取り書込み(R/W)
線36によって、RAM32およびI10装置27.2
9.31.33.35と通信する。CPU20からアド
レス・バス24を経て出されるアドレスは、線34が第
1の2進状態にある場合は工/○用であり、線34が第
2の2進状態にある場合はRAM32用である。
アドレス・バス24上のアドレスがRAM32用である
場合、RAM32からのデータ読取り操作はR/W線3
線上6上1の2進状態によって決定され、RAM32へ
のデータ書込み操作は、線36上の第2の2進状態によ
って確定される。第1図に示す各工/○装置は、上述の
ようにPIC22に割込み信号を出すことによって、C
PU20によるサービスを必要とすることを知らせる。
工/○装置27は、IRQ2線を独占的に使用し。
I10装置29はIRQ6線を独占的に使用する。
工/○装置31.33.35は、PIC22に通じるI
RQ7線を共用しなければならない。I10装置31は
、RAM32中にI10装置31が出す割込みを処理す
る割込みハンドラ・ルーチンH(A)を備えている。工
/○装置33は、RAM32中にI10装置33から出
る割込みを処理する割込みハンドラ・ルーチンH(B)
を備えている。I10装置35は、RAM32中ニI1
0装置35から出る割込みを処、理する割込みハンドラ
・ルーチンH(C)を備えている。
本明細書で示す例では、I10装置31の割込みハンド
ラH(A)がまずロードされ、続いて工10装置33の
割込みハンドラH(B)が、そして最後にI10装置3
5の割込みハンドラH(C)がロー下された。RAM3
2中の割込みベクトルv(7)は、その内容が最後にロ
ードされた割込みハンドラH(C)を指す。割込みハン
ドラH(C)中のポインタp (c)は、最後から2番
目にロードされた割込みハンドラH<B)を指す。
割込みハンドラH(B)のポインタP (B)は、最初
にロードされた割込みハンドラH(A)を指す。割込み
ハンドラH(A)のポインタP (A)は、デフォルト
割込み状態を指す、このデフォルト割込み状態になると
1割込まれた主プログラムに制御権が戻る。3つのI/
lo装置31.33.35の何れかが割込み線IRQ7
上に割込み信号を出すと、PIC22がCPU20に割
込み要求(IREQ)を出して、現在CPU20で実行
中の主プログラムを中断させる。次にCPU20は割込
みベクトルv(7)の内容を読み取り、割込みハンドラ
H(C)に制御権を渡す。割込みハンドラH(C)は、
アドレス・バス24とデータ・バス26によってI10
装置31に照会し、I10装置31が割込み信号を出し
たかどうか決定する。I10装置31が割込み信号を出
さなかったと決定された場合、割込みハンドラH(C)
は、チェーン中の次の割込みハンドラH(B)を指すそ
のポインタp (c)の内容を読み取る。CPU20は
H(B)の割込みハンドラ・ルーチンを実行し、アドレ
ス・バス24とデータ・バス26を介してI10装置3
3に照会して、I10装置33が割込み信号を出したか
どうか決定する。I10装置33が割込み線IRQ7上
に割込み信号を出したと決定された場合、割込みハンド
ラ・ルーチンH(B)は、割込みハンドラH(B)中で
コード化されたタスクを実施することによってその割込
みにサービスする。これは、たとえば工/○装置33が
接続されている通信回線から受は取った情報のバイトを
RAM32中で取っておいたバッファに転送することが
含まれる。割込みハンドラH(B)のサービス・ルーチ
ン部分の完了後、割込み状態は終了し、CPU20の制
御権がIRQ7線上で出された割込み信号によって中断
された主プログラムに渡される。
第4A〜40図は、I10装置33を詳しく図示したも
のである。第4B図に示すI10装置論理40は、非同
期通信タスクを実行するのに必要な各種機能を実施する
ためにアダプタ・カードに常駐するハードウェアおよび
ソフトウェア論理を表す。I10装置論理40は、デー
タ・バス26に接続されている。アドレス・デコーダ3
8はアドレス・バス24、I10メモリ線34、および
R/W線36から入力を受は取る。アドレス・デコーダ
38は、バス24からアドレス情報を受は取り、その情
報をデコードし、制御信号をI10装置論理40および
I10装置33の他の部分に転送する。本発明によれば
、割込み線工RQ7は、第4B図に示すようにI10装
置33上の共用割込み論理装置46の出力に接続されて
いる。共用割込み論理装置46は、アドレス・デコーダ
38から出る大城再活動化線52の出力を入力とする。
共用割込み論理装置46は、もう一つの入力(工NT)
をもつ。それは工/○装置論理40から出力される割込
み信号である。共用割込み論理装置46は、割込み可能
ラッチ50から出力されるもう一つの入力(ENA)を
もつ。この割込み可能ラッチ50は、その−人力がアド
レス・デコーダ38に接続され、第2の入力がデータ・
バス26に接続されたデータ書込みレジスタ42からく
る。
I10装置33は、また割込みステータス・ラッチ48
(第4C図)を備えている。この割込みステータス・ラ
ッチ48は、工/○装置論理40から入力INTを受は
取り、またアドレス・デコーダ38から制御入力を受は
取る。割込みステータス・ラッチ48は、その−出力が
データ読取りレジスタ44に接続されている。このデー
タ読取りレジスタ44は、データ・バス26に一出力を
与える。 共用割込み論理装置46は、第1のフリップ
・フロップ62を備えており、そのD入力がANDゲー
ト60の出力に接続されている。ANDゲート60は、
IRQ7線、ENA線、およびINT線からの入力をも
つ3人力論理ANDゲートである。フリップ・フロップ
62のクロック入力GKは、CPU20から出るシステ
ム・クロック線に接続されている。フリップ・フロップ
62のQ出力は、第2のフリップ・フロップ64のD入
力に接続されている。フリップ・フロップ64のGK大
入力、システム・クロック線に接続されている。フリッ
プ・フロップ64の補数出力ばはドライバ66に接続さ
れており、ドライバ66の出力がIRQ7線をドライブ
する。共用割込み論理装置46は第3のフリップ・フロ
ップ68を含んでいる。フリップ・フロップ68は、そ
のD入力が正の直流電位に接続され、CK大入力IRQ
7線に接続されている。第3のフリップ・フロップ68
の補数出力ばは、ANDゲート70を介して第一のフリ
ップ・フロップ62および第2のフリップ・フロップ6
4のクリア入力CLに接続されている。フリップ・フロ
ップ68のCL大入力、アドレス・デコーダ38からの
大城再活動化線52に接続されている。大城再活動化線
52は、ANDゲート70へのもう一つの入力である。
フリップ・フロップ62.64.68は、次のように動
作する。D入力が高レベルのとき、クロック入力CKが
高レベルになると、Q出力は高レベルとなり、ご出力は
低レベルとなる。この状態でクリア人力CLが低レベル
になると、フリップ・フロップはQ出力が低レベルでは
出力が高レベルの逆の状態にリセットされる。逆にD入
力が低レベルのときクロック入力CKが高レベルになる
と、Q出力は低レベルとなりは出力は高レベルになる。
この状態でクリア入力CLが低レベルになってもフリッ
プ・フロップに何の変化も起こらず、Q出力は低レベル
、ご出力は高レベルのままである。
ドライバ66は、次のようにして動作するトライステー
ト・ドライバである。ドライバ66に入力されるフリッ
プ・フロップ64のご出力が高レベルのとき、ドライバ
66の出力は高インピーダンス状態である。これはIR
Q7M上の信号から見た状態である。一方、ドライバ6
6の入力に印加されるフリップ・フロップ64のご出力
が低レベルのとき、ドライバ66の出力も低レベルにな
る。すなわちフリップ・プロップ64のQ出力が低電位
状態である限り、IRQ7線は低電位状態のままとなる
共用割込み論理装置46の3つのフリップ・フロップ6
2.64.68は、その特性が同じであり、それぞれ端
子に低電位が印加されるとセットされるクリア入力CL
を備えている。アドレス・デコーダ38から出る大城再
活動化線52は、フリップ・フロップ68のクリア人力
CLおよび2人力ANDゲート70の一つの入力に接続
される。
ANDゲート70のもう一方の入力は、フリップ・フロ
ップ68の補数出力ばに接続されている。ANDゲート
70の出力は、フリップ・フロップ62および64のク
リア入力CLに接続されている。
アドレス・デコーダ38から出力される大城再活動化信
号は、相対的に低電位であり、フリップ・フロップ68
のクリア入力CLに印加されてフリップ・フロップ68
をクリア状態にし、その結果フリップ・フロップ68の
補数出力Q1に相対的に高電位の出力が生成され、それ
がANDゲート70の一つの入力に印加される。しかし
、線52上の大城再活動化信号がアクティブで相対的に
低電位である限り、ANDゲート70に対するAND論
理関数は満足されず、したがってANDゲート70の出
力は相対的に低電位のままで、フリップ・フロップ62
および64に対するクリア入力CLを相対的に低電位に
保つ。すなわち、線52上の大城再活動化信号がアクテ
ィブで相対的に低電位である限り、フリップ・フロップ
64の補数出力ばは高電位状態のままとなり、トライス
テート・ドライバ66を割込み線IRQ7に対して高イ
ンピーダンス状態に留らせる。線52上の大城再活動化
信号が終了し、線52が相対的に高電位状態になるとき
だけ、ANDゲート70は条件付けられ、それによって
フリップ・フロップ62および64のクリア入力CLに
相対的に正の電位を印加し、これらのフリップ・フロッ
プをアンロックする。スリップ・フロップ62および6
4は、アンロックされた後、ANDゲート6oからフリ
ップ・フロップ62および64に転送される保留中の割
込み状態に応答することができる。こうして、持続時間
が異常に長い大城再活動化信号が線52上でアクティブ
な間に、スリップ・フロップ62および64が早期にア
ンロックされることはない。
第8図に示すように、適用業務プログラムAP(B)が
RAM32にロードされたとき、それが実行する初期設
定タスクの一つは、割込み可能ラッチ50にENAビッ
トをセットして、I/D装置33の共用割込み論理装置
46を使用可能にすることであった。これは、AP (
B)のロード時に、AP (B)プログラムがCPU2
0にOUTコマンドを出して、I10アドレスをI10
装置33に通じるアドレス・バス24上に出力させ、使
用可能データをI10装置33に通じるデータ・バス2
6上に出力させることによって実行された。
アドレス・バス24上のアドレス出力は1割込み可能ラ
ッチ50に制御信号を出力するアドレス・デコーダ38
によってデコードされる。データ・バス26上のデータ
出力はデータ書込みレジスタ42にロードされ、データ
書込みレジスタ42から割込み可能ラッチ50に信号が
出力される。この条件によって、割込み可能ラッチ5o
がセットされ、共用割込み論理装置46のANDゲート
60への3つの入力の一つであるENA線がオンになる
。それによってI10装置33上の共用割込み論理装置
46が使用可能になり、IRQ7線をシステム中の他の
I10装置と共用するのに参加できるようになる。
この例では、I10装置33が非同期通信アダプタとみ
なされるが、I10装置論理40は通信媒体から1バイ
トの情報を受は取ると割込み信号INTを出力し、それ
がANDゲート60の一つの入力に印加される。INT
信号は、1/○装置33上の割込みステータス・ラッチ
48にも印加される。前述のようにIRQ7線に適用さ
れる信号規約は、共用されている割込み線の電位が休止
状態の間は相対的に高電位に浮遊でき、線の電位が負に
−向って遷移することによって割込み条件の存在が通知
されることである。従ってIRQ7線が休止状態の場合
、ANDゲート60への第3の入力が正になる。使用可
能ビットENAは正であり割込み信号INTは丁度正に
なった所なので、ANDゲート60はフリップ・フロッ
プ62のD入力に正の電位を印加する。システム・クロ
ック線からの次の正のクロック・パルスのとき、フリッ
プ・フロップ62のCK入力は正になり、従ってフリッ
プ・フロップ62のQ出力は正になってフリップ・フロ
ップ64のD入力に印加される。
システム・クロック線上の次のクロック信号の立上りで
、第2のフリップ・フロップ64へのCK入力が正にな
り、フリップ・フロップ64をセットする。それによっ
て、フリップ・フロップ64の補数出力ばが低レベルに
なる。トライステート・ドライバ66は、その入力が低
レベルにある間。
IRQ7線に低電位を印加し続ける。
第4A図に示すPIC22中の割込み要求レジスタは、
その入力に接続されたIRQ7線において何時割込み信
号の存在を示す負方向遷移が生じたかを検出する。前述
のように、PIC22はCPU20に割込み要求IRE
Qを出す。
IRQ7線は、共用割込み論理装置46中のANDゲー
ト6oに、三つの入力のうちの一つとして接続されてい
る。IRQ7線はこのときドライバ66によって低レベ
ルにドライブされているので、ANDゲート60につい
てもはやAND条件が充たされていす、したがってフリ
ップ・フロップ62のD入力に相対的に低い電位が印加
される。
システム・クロックの次の立上りで、フリップ・フロッ
プ62のCK大入力正になり、フリップ・フロップ62
のD入力の相対的に低い電位をQ出力に転送する。シス
テム・クロックの次の立上りでは、フリップ・プロップ
64のD入力がこのとき低電位なので、フリップ・フロ
ップ64へのOK大入力正になると補数出力ばが正にな
り、それによってドライバ66によってIRQ7線に印
加された低電位が除去され、高インピーダンス状態とな
る。すなわち、全体としてIRQ7線はI10装置論理
40から割込み信号INTが出るのに応答して2クロツ
ク・サイクルの間低電位にドライブされ、続いて相対的
に高い電位の休止状態に戻る。
共用割込み論理装置46中のフリップ・フロップ68に
よって、ロックアウト機能がもたらされる。2つのフリ
ップ・フロップ62と64のクリア状態は、CL入力に
低電位を印加することによって実現される。その結果、
補数出力ばか正になり、Q出力が低電位になる。これは
フリップ・フロップ68でも同じである。どのフリップ
・フロップでも一旦クリア状態になると、そのフリップ
・フロップはσ出力が正である状態にロックされ、その
フリップ・フロップのCK大入力印加されるクロック・
パルスによっては変更されない。
共用割込み論理装置46のロックアウト機構は、次のよ
うに働く。IRQ7線上の割込み信号のための時間間隔
の終りに、IRQ7線の電位は低電位から高電位へと上
昇する。このIRQ7線上の立上り信号が、フリップ・
フロップ68のGK大入力印加される。スリップ・フロ
ップ68のD入力は正の直流電位に接続されているので
、フリップ・フロップ68の補数出力ばは低レベルにな
り、従ってANDゲート70の出力も低レベルになる。
これにより、フリップ・フロップ62と64はクリア状
態にロックされ、フリップ・フロップ64のご出力が相
対的に正の電位を保つ。この相対的に正の電位が、IR
Q7線からみて、トライステート・ドライバ66を高イ
ンピーダンス状態に保つ。IRQ7線を共用する各I1
0装置31.33.35上の各共用側込み論理装W46
について、この状態が得られる。すなわち、各工/○装
置上のトライステート・ドライバ66が高インピーダン
ス状態にロックされるため、IRQ7線は正の状態で休
止したままとなる。
すべての共用割込み論理装置46のロックアウト状態は
、所与の割込みがサービスを受けている間、保たれる。
PIC22は、IRQ7線上の割込み信号を検出した後
、割込みのサービスを要求する割込み要求信号IREQ
をCPU20に出力する。CPU20は、実行中の主プ
ログラムを終了し、現命令ポインタ、フラグ、およびワ
ーキング・レジスタの内容を保管し1次に割込み処理を
開始したことをIACK線によってPIC22に知らさ
せる。次に、PIC22は、IRQ7線に対応する割込
みベクトルv(7)のアドレスを出す。CPU20はR
AM32の割込みベクトル・アドレスにアクセスして、
割込みベクトルの内容、すなわちRAM32に新しくロ
ードされた割込みハンドラのアドレスを読み取る。この
例では、割込み線IRQ7を共用するI10装置31.
33.35にサービスする3つの割込みハンドラが、R
AM32にロードされている。割込みベクトルV(7)
の内容は、最後にロードされた割込みハンドラH(C)
 、すなわちI10装置35用の割込みハンドラのアド
レスである。割込みベクトルV(7)の内容が指示する
位置は1割込みハンドラH(C)の実行可能コードの始
めである。CPU20中の命令ポインタは、割込みハン
ドラH(C)のコード中の最初の命令にセットされ、C
PU20はそのコードの実行を開始する。割込みハンド
ラ・ルーチンの一例を第1表に示す。割込みハンドラ・
コードの最初の部分は、CPU20に、I10装置35
用の割込みステータス・ラッチ48を読み取って、それ
がIRQ7線上に割込み信号を出したかどうかを決定す
るように命令する。I10装置35用の割込みステータ
ス・ラッチ48は、工/○装置35が割込み信号を出さ
なかったことを示しているので、割込みハンドラH(C
)は、I10装置33にサービスする2番目にロードさ
れた割込みハンドラH(B)に、制御権を渡さなければ
ならない。この割込みハンドラH(C)からの制御権の
移転は割込みハンドラH(C)用の実行可能コードの開
始点から一定のオフセット値だけ離れたところにあるポ
インタp (c)の内容を読み取ることによって実施さ
れる。ポインタP (C)の内容は、2番目にロードさ
れた割込みハンドラ)I (B)用の実行可能コードの
開始点のアドレスである。このアドレスが、CPU20
の命令ポインタにロードされ、CPU20が割込みハン
ドラH(B)の実行を開始する。
割込みハンドラH(B)は、I10装置33の割込みス
テータス・ラッチ48を読み取って、それが割込み信号
を出した装置がどうが決定する。
I10装置33上の工/○装置論理4oは、割込み信号
を出したとき、INTビットをオンにしたので、割込み
ステータス・ラッチ48は、割込み信号を出したのがI
10装置33であったとの情報をCPU20中ス状態次
に割込みハンドラH(B)は、I10装置33によって
要求されたタスクを実施するコードを実行して、その割
込みに対するサービスを開始する。この例では、I10
装置33を非同期通信アダプタとして扱っているので、
割込みハンドラH(B)は、受は取ったデータ・バイト
をI10装置33の工/○装置論理40の通信ボートか
ら、RAM32中の予約されているバッファ・スペース
に転送し始める。割込みハンドラH(B)によるこのサ
ービス・ルーチンが完了すると、割込みハンドラH(B
)は割込み状態を完了する一連のコマンドを出し始める
これらのコマンドは、プロセッサ制御命令(CL工)を
出して割込み不能にし、PIC22に無指定割込み終了
コマンド(EOI)を出し1次に大城再活動化信号を出
して、すべてのI10装置31.33.35の共用割込
み論理装置46を再活動化する6大域再活動化信号を発
生するため、CPU20は特定のI10アドレスをアド
レス・バス24に出力する。各アドレス・デコーダ38
はこの特定アドレスをデコードし、その結果大域再活動
化信号が、各工/○装置31.33.35の共用割込み
論理装置46のフリップ・フロップ68のクリア入力C
Lに対する負の信号として、線52に印加される。次に
割込みハンドラ・ルーチンH(B)は割込みリターン命
令(IRET)を出し、制御権が主プログラムの中断点
に戻される。
大城再活動化信号は、フリップ・フロップ68のクリア
入力CLに印加される負の信号である。
これによってフリップ・フロップ68の補数出力Q ”
h<正になり、この正の信号がANDゲート7゜を経て
フリップ・フロップ62および64のクリア入力CLに
印加される。前述のように、フリップ・フロップ62お
よび64のクリア入力CLは、負の信号によって既にク
リア状態にセットされている。フリップ・フロップ62
と64のクリア入力CLに正の信号が印加されると、フ
リップ・フロップ62と64はアンロックされて、I1
0装置論理40が出す別の割込み信号INTをいつでも
処理できる状態になる。
こうして、割込みベクトルv(7)によってアドレスさ
れる連係リスト中で連続的に連鎖されている3つの割込
みハンドラH(A) 、 H(B)、H(C)によって
それぞれサービスされる3つの110装置が、一本の割
込み線IRQ7をどのようにして共用できるかがわかる
I10装置33がサービスを受けている間に、他の装置
、たとえばI10装置31がそのI10装置論理4oに
INTビットを出させた場合、工/Q装置33のサービ
ス完了後にフリップ・フロップ62と64をアンロック
する大城再活動化信号が出た直後に、I10装置31の
共用割込み論理装置46中のANDゲート6oは、その
論理条件を満たし、I10装置31上の共用割込み論理
装置46は、I10装置31によって要求された第2の
割込みに対するサービスを開始するため、IRQ7線上
に割込み信号を出し始める。こうして、今度は工/○装
置33に対する割込みのサービスによって遅延された割
込みが、サービスを受けることができる。
I10装置31.33.35とそれらの割込みハンドラ
H(A) 、 H(B) 、 H(C) (7)関係は
、第5A〜5D図を参照するとわかる。第5A〜5D図
には、RAM32に常駐するそれぞれの割込みハンドラ
H(A)、H(B)、H(C)に対応して配列された3
つのI10装置31.33.35が示されている。これ
らの図は、IRQ7線上に割込信号を出したI10装置
にサービスする特定の割込みハンドラを見つけるための
、割込みハンドラのチェーン探索操作を理解するのに役
立つように配列しである。前述の例のように、I10装
置33上のI10装置論理40BがINT”B”ビット
をオンにセットしたと仮定する。共用割込み論理装置4
6Bが、IRQ7線の状態を監視しており、この線の現
休止状態中に共用割込み論理装f146BはIRQ7線
上でPIC22に割込み信号を出す、PIC22は、C
PU20に割込み要求信号IREQを出し、それによっ
てCPU20は現在実行中の主プログラムを中断し、現
ステータス値を保存し、PIC22に割込み肯定応答信
号IACKを出す。次にPIC22は、割込みベクトル
v(7)の記憶アドレスを出力して、CPU20が割込
みベクトルv(7)の内容、すなわち最後にロードされ
た割込みハンドラH(C)の実行可能コードの始めを指
すアドレスにアクセスできるようにする。わかり易くす
るため、第5A図および第5B図において、割込みハン
ドラH(C)の配置をI10装置35と対応させている
割込みハンドラH(C)は、′I10アドレスC”を出
して実行を開始し、CPU20が割込みステータス・ラ
ッチ48Cの割込みステータスを読み取って、割込みビ
ットINC”C”が工/○装置35上の工/○装置論理
40Cによってセットされているかどうかを決定できる
ようにする。第5B図の割込みハンドラH(C)の所に
示す流れ図かられかるように、割込みビットINT”C
”を評価してそれがオンかオフか決定する判断点に達す
る。INT”C”がオンであれば5割込みハンドラH(
C)はI10装置35 (7G) の割込みにサービス
することになる。しかしこの例では、割込み信号を出し
たのはI10装置35ではなかった。したがって、第5
B図の割込みハンドラH(C)内の判断点で、INT”
C”はオフであると決定され、したがって割込みハンド
ラH(C)用の実行可能コードの始めから一定のオフセ
ット値だけ離れたところにあるポインタP (C)の内
容がCPU20によってアクセスされ、命令ポインタに
ロードされて、次に割込みハンドラH(B)が実行され
る。
第5A図および第5C図においてI10装置33は、−
相互関係を示すためRAM32中の割込みハンドラH(
B)の位置のすぐ近くに配置しである。割込みハンドラ
H(B)のコードは、I10装置33上の工/○装置論
理40BによってセットされたINT”B”ビットの状
態を記憶している割込みステータス・ラッチ48Bを読
み取るための” I / OアドレスB I+を出して
CPU20中で実行を開始する。この例では、規制込み
を開始したのはI10装置33上のI10装置論理40
Bである。したがって、CPU20に戻されるINT”
B”の値はオンである。割込みハンドラH(B)は、第
5D図に示すその判断点で、INT“B”がオンである
と決定する。INT“B”はオン状態なので、この割込
みハンドラH(B)は、I10装置33上のI10装置
論理40Bが要求するタスクを実行するため、コードの
サービス・ルーチン部分の実行を始める。CPU20が
割込みハンドラH(B)のサービス・ルーチン部分の実
行を完了した後、この割込みハンドラH(B)はCPU
20に“工/○アドレスA、B、C”を出力させて、大
城再活動化信号を出す。この1(I10アドレスA、B
、C”はアドレス・バス24を介してすべての工/○装
置31.33.35に送られ、それぞれI10装置31
.33.35上のアドレス・デコーダ38A、38B、
38Cが受は取る。アドレス・デコーダ38A、38B
、38Gは“l107ドL/スA、B、C”を解読して
、それぞれI10装置31.33.35上の共用割込み
論理46A、46B、46Gに再活動化信号52A、5
2B、52Cを出力する。各I10装置に対する再活動
化信号52A、52B、52Cの作用は、前述のように
共用割込み論理装置46A、46B、46Gをアンロッ
クすることである。これによって各共用側込み論理装置
46A、46B、46Cは、それぞれI10装置31,
33.35上の次の割込みビットINT”A”、工NT
”B”およびINT”C”を検出できるようになる。第
5B図および第5D図の割込みハンドラH(B)の流れ
図では、このときCPU20は主プログラムの実行が中
断された点に戻る。工10装置33によって中断された
ときのCPUの制御ステータスを復元した後、主プログ
ラムの実行が再開される。
このように、それぞれI10装置31.33.35に対
応し、割込み線IRQ7を共用する、RAM32中の各
側込みハンドラH(A) 、 H(B)、H(C)間に
直接の関係があることがわかる。
第1表は、割込みハンドラH(N)の例、第■表はリン
ク・ルーチンL (N)の例、第■表はアンリンク・ル
ーチンU (N)の例である。第1表、第■表、第■表
は、IBMパーソナル・コンピュータ用のアセンブラ言
語で書かれている。アセンブラ言語とは、各命令コード
が憶え易い簡略記号で書かれている記号言語である。第
1表のアセンブラ言語は、形と内容が機械語に似ており
、命令およびコメントを表すステートメントから構成さ
れている。命令ステートメントとは、言語の作用部分で
あり、機械命令、アセンブラ命令、マクロ命令および擬
似オペレーションに分かれている。
機械命令とは、アセンブラの命令セット中のハードウェ
ア命令の記号表現である。アセンブラ命令とは、アセン
ブラ・プログラムに対して、ソース・モジュールのアセ
ンブリ中にある種のオペレーションの実行を要求するも
のである。マクロ命令とは、アセンブラ・プログラムに
対して、定義済みコード・シーケンスの処理を要求する
ものである。
アセンブラは、このシーケンスからソース命令を生成し
、それらを恰もソース・モジュール中の元の入力の一部
であったかのように処理する。擬似オペレーションは、
データ、条件つきブランチ、マクロ、およびリスティン
グをどう扱うかをアセンブラに教えるものであるが、通
常は機械語コードを生成しない。第1表に示した命令の
完全な説明は、1981年に本出願人が刊行した“マイ
クロソフトによるマクロアセンブラ(Macr。
Assembler by Microsoft)”I
BMパーソナル・コンピューターコンピュータ言語シリ
ーズ(I BMPersonal  Computer
−Computer  Language  5eri
es)に出ている。
第1表の割込みハンドラH(N)は、割込みベクトルv
(7)またはチェーン中の先行割込みハンドラから入る
。第1表中の” E N T RY ”がこのハンドラ
の入口点であり、その後に制御ブロックC(N)(FP
TR,5IGNATURE、FLAGS)が続いている
。入口点(ENTRY)の短い飛越し命令(JMP)は
、長さ2バイトであり、したがって制御ブロックC(N
)中の順方向ポインタ(FPTR)の固定オフセットは
、割込みハンドラの入口点(ENTRY)から2バイト
先である。入口点(ENTRY)と割込みハンドラ・コ
ードの実際の開始位置の間に制御ブロックC(N)が挟
まれている理由は、制御ブロックがRAM32に記憶さ
れたとき、割込みハンドラと位置が連続したままになる
ようにするためである。制御ブロックC(N)は長さ1
6バイトなので、順方向ポインタ(FPTR)は、割込
みハンドラ・コードの実際の開始位置よりも、RAM中
で16バイト下にある。アンリンク・ルーチンU(N)
が順方向ポインタ(FPTR)を容易にアクセスできる
ようにするため、割込みチェーン中のすべての割込みハ
ンドラにおいて、入力点(ENTRY)上に2バイトの
固定オフセットが維持される。
■/○装置が出した特定の割込みにサービスするために
正しい割込みハンドラを探索するため。
入口点(ENTRY)からの短い飛越しによって、割込
みハンドラ・コードの実際の開始位置に移る。
続いてCPU20中の既存のレジスタが保管され、対応
する■/○装置の割込みステータス・ラッチ48が読み
取られる。次に、当該I10装置が実際にその割込み信
号を発生したかどうかがテストされる。当該I10装置
が割込みを発生した場合、ブランチ命令(J N Z’
)によって、その割込みにサービスするための命令を含
んでいるサービス・ステップ(SERVICE)にブラ
ンチする。サービス・ステップ(SERVICE)でそ
の割込みに対するサービスが完了すると、チェーンから
出るための出口ステップ(E X I T)に移る。出
口ステップ(E X I T)では、まず割込みが禁止
され、無指定割込み終了(EOI)コマンドがPIC2
−2(インテル8259)に送られ、次に大城再活動化
メツセージがバス24を経て割込み線IRQ7を共用す
るすべての170装置に送られ、各■/○装置上の共用
割込み論理装置をアンロック状態に戻して、次の割込み
にサニビスできるようにする。次に、CPU20のレジ
スタを以前の状態に復元した後、リターン命令(IRE
T)によって主プログラムに戻る。
ステップ(PAST)でのテストで、割込みハンドラH
(N)に対応するI10装置が割込み信号を出さなかっ
たと決定した場合、第2のテストが行われ、この特定の
割込みハンドラが最初にロードされた割込みハンドラ、
言い換えればチェーン中の最後の割込みハンドラである
かどうかを調べる。それがチェーン中の最後の割込みハ
ンドラである場合、チェーン中の各別込みハンドラが照
会したどのI10装置も割込み信号を出さなかったこと
になる。各共用側込み論理装!46をアンロックするた
めにすべてのI10装置に大城再活動化メツセージを送
らなければならないので、これは問題である。しかしこ
れは出口ステップ(EXIT)への飛越しくJ N Z
)によって解決できる。
次に第■表のリンク・ルーチンL (N)について説明
する。オペレーティング・システムまたは適用業務プロ
グラムAP (N)が、割込みハンドラH(N)を割込
みハンドラ・チェーンにリンクすることを要求すると、
そのオペレーティング・システムまたは適用業務プログ
ラムAP (N)からリンク・ルーチンL (N)に入
る。まず最初に割込みを禁止するステップが実行される
。次に、割込みハンドラH(N)のための順方向ポイン
タP (N)を割込みベクトル■(7)の内容と等しく
なるようにセットするプロセスが実行される(CMPの
前まで)。次に、割込みベクトル■(7)の現内容によ
って指示された割込みハンドラが、実際に割込みリター
ン命令(IRET)であったかどうかを決定するための
テストが行われる。実際にそれが割込みリターン命令で
あった場合、その割込みハンドラは、DO8によって始
めにセットアツプされたデフォルト割込みハンドラであ
ったことになる。この場合、今チェーンにリンクされて
いる新しい割込みハンドラH(N)が、チェーン中のデ
フォルトでない最初の割込みハンドラであり、したがっ
てこの状態を示すようにそのフラグ・バイトを゛セット
しなければならない。
順方向ポインタのセットに続く比較命令(CMP)の条
件が満たされ、したがって次の飛越し命令(JNZ;ゼ
ロでなければ飛越し)によって移動命令(M OV E
 )に移り、そこで今チェーンにリンクされている割込
みハンドラH(N)がチェーン中の最初の割込みハンド
ラ(先頭ハンドラ)であることを示すフラグ・バイトF
 (N)がセットされる。次に割込みベクトルをセット
するステップ(SETVECTR)に移る。前の比較命
令(CMP)で、割込みハンドラH(N)がチェーン中
の最初の割込みハンドラでないと決定した場合はこのス
テップ(SETVECTR)への飛越しが行われる。ス
テップ(SETVECTR)で。
リンクすべき割込みハンドラH(N)の入口点のアドレ
スが割込みベクトルv(7)の位置にロードされる。す
なわち、割込み線IRQT上に割込み信号が発生すると
き、CPU20が割込みベクトルv(7)にアクセスす
ると、チェーン中の実行すべき最初の割込みハンドラは
、最後にリンクされた割込みハンドラH(N)である。
次にレベル7の割込みをアンマスクする、すなわち割込
み可能にするためのステップに移り、それが終ると、制
御権がオペレーティング・システムまたは適用業務プロ
グラムAP (N)に戻される。
第■表は、アンリンク・ルーチンU (N)を示したも
のである。割込みハンドラH(N)をチェーンから削除
すべきであるとオペレーティング・システムまたは適用
業務プログラムAP (N)が決定した場合、オペレー
ティング・システムまたは適用業務プログラムは、第■
表のアンリンク・ルーチンU (N)に制御権を渡す。
アンリンク・ルーチンU (N)に入ると、まず割込み
が禁止され、割込みベクトルv(7)が取出され、その
内容がCPU20の作業レジスタにロードされる。
次に、割込みハンドラH(N)がチェーン中の最初の割
込みハンドラであるかどうか、すなわちそれが割込みベ
クトルv(7)によって指示される割込みハンドラであ
るかどうかを決定するステップに移る。比較操作で、割
込みハンドラH(N)が割込みベクトルv(7)の指す
最初の割込みハンドラであると決定された場合には、ブ
ランチなしに次のステップに移り、現在割込みハンドラ
H(N)中にあるポインタP (N)を割込みベクトル
v(7)の位置にロードして、割込みハンドラH(N)
をチェーンから削除することができる。
この削除操作が終了すると、最後のステップ(UNCH
AIN  X)に制御権が移り、そこで割込みが可能に
なり、アンリンク・ルーチンU (N)からオペレーテ
ィング・システムまたは適用業務プログラムAP (N
)に戻る。
削除すべき割込みハンドラH(N)がチェーン中の最初
の割込みハンドラでなかった場合は、ステップ(UNC
HA、IN  A)に制御権が移り、そこで当該割込み
ハンドラがその制御ブロックC(N)に検証用署名(S
 IGNATURE)を含んでいるかどうかが調べられ
る。検証用署名がない場合は、誤り例外ハンドラが呼び
出される。割込みハンドラH(N)の制御ブロックC(
N)に正しい検証用署名があれば次に進んで、現割込み
ハンドラが削除すべき目的割込みハンドラH(N)であ
るかどうかが調べられる。これは、2つの比較ステップ
で行われ、最初の比較ステップでは先行割込みハンドラ
に対するポインタの内容のオフセット部分が目的割込み
ハンドラに対するオフセット値と比較される。このテス
トが合格の場合、次の比較ステップで先行ポインタの内
容のセグメント部分が、目的割込みハンドラ・を指す順
方向ポインタのセグメン部分と比較される。両方のテス
トに合格した場合、現割込みハンドラが目的割込みハン
ドラH(N)であり、それをチェーンから削除するため
・のステップに制御権が移る。このステップでは、現(
目的)割込みハンドラH(N)のポインタP (N)の
内容が、チェーン中の前側込みハンドラ(すなわち、H
(N)に隣接し割込みベクトルv(7)により近い所に
ある割込みハンドラ)に対するポインタ位置に転送され
る。この操作によって、割込み信号を出したI10装置
に対する割込みハンドラを探索する以降の操作中、目的
割込みハンドラH(N)の前後での飛越しが可能になる
。削除ステップが完了すると、最後のステップ(UNC
HAIN  X)に制御権が移り、そこで割込みが再び
可能になる。現割込みハンドラが目的割込みハンドラで
ないと決定された場合、ステップ(UNCHAIN  
B)にブランチし、そこで現ポインタの内容がチェーン
中の次の割込みハンドラの相対アドレスとして使われる
。次に制御権が前のステップ(UNCHAIN  A)
に戻り、次の割込みハンドラと目的割込みハンドラの比
較が行われる。目的割込みハンドラに出会うか、または
チェーンの終りに達するまで、このプロセスが繰り返さ
れ、最後にオペレーティング・システムまたは適用業務
プログラムAP (N)に制御権が戻る。
次に、第6図ないし第9図のシーケンスを参照する。こ
こには、新しくロードされた割込みハンドラをRAM3
2中の割込みハンドラのチェーンにリンクする操作が示
されている。IBMパーソナル・コンピュータ用のオペ
レーティング・システムは、公知の基本人出カシステム
(BrO3)である。IBMパーソナル・コンピュータ
をオンにすると、ROM30に常駐するBrO5が初期
ハードウェア・テスト機能およびその他の初期設定手順
を実行し、次にアドレス・バス24とデータ・バス26
に接続されたディスク・ドライブからDO3を読み取る
。DO8は、第6図の割込みベクトル位置V (0)〜
v(7)に1′デフオル1−・アドレス″をロードする
ことを含めて、追加的初期設定手順を実行する。具体的
には、第6図は、“デフォルト・アドレス″すなわちR
AM32におけるデフォルト割込みハンドラH(DF)
の記憶位置のアドレスが割込みベクトル(7)にロード
されている状態のRAM32を示したものである。この
デフォルト割込みハンドラH(DF)は、IRQ7線上
の割込み信号によってCPU20で実行が中断された主
プログラムに制御権を戻す働きをする。
マルチタスキング・オペレーティング・システム環境で
は、第6図に示すように、次にマルチタスキング°オペ
レーティング・システムがRAM32にロードされる。
典型的な場合、マルチタスキング・システムはRAM3
2をそれぞれ別々の適用業務プログラムAP (N)を
含む複数の保護領域に区分する。マルチタスキング・オ
ペレーティング・システムは、DO3と適用業務プログ
ラムの間に設置される。適用業務プログラムAP(N)
は、ある機能を実行するためにDO3またはBrO3を
呼び出すとき、マルチタスキング・オペレーティング・
システムを介在させなければならない0次に、マルチタ
スキング・オペレーティング・システムは、同時にアク
ティブな別の適用業務プログラムの一つAP (N’ 
)を実行すべき時かどうか判断することができ、DO3
の呼び出しを行った元の適用業務プログラムを続行する
代りに新しい適用業務プログラムにシステムの制御権を
渡すことができる。RAM32中でのマルチタスキング
・オペレーティング・システムの位置を、第6図に示す
次に、■/○装置3]、と割込み線IRQ7の使用が必
要な最初の適用業務Aをシステムで実行させるものとす
る。適用業務Aを実行する適用業務プログラムAP (
A)には、第11図に概略的に示したN番目の適用業務
に類似する割込み共用プログラムS (A)が付随する
。割込み共用プログラムS (A)は、第■表に一般的
に示したリンク論理ルーチンL (A) 、第1表に一
般的に示した割込みハンドラ・ルーチンH(A) 、お
よび第■表に一般的に示したアンリンク論理ルーチンU
(A)の3部分からなる。第7図に示すように適用業務
プログラムAP (A)をRAM32にロードするとき
、割込み共用プログラムS (A)をロードできる。ま
ず、適用業務プログラムAP (A)、そのリンク・ル
ーチンL (A)およびアンリンク・ルーチンU (A
)がRAM32にロードされる。次にリンク・ルーチン
L (A)が、割込みベクトル■(7)の内容、″デフ
ォルト・アドレス″を、ポインタ・アドレスパアドレス
A IIすなわち割込みハンドラH(A)の実行可能コ
ード部分の始めをロードすべきRAMアドレスで置き換
える。
第7図かられかるように、次に割込みハンドラH(A)
が1′アドレスA IIからロードされる。割込みハン
ドラH(A)と関連する制御ブロックC(A)は、割込
みハンドラH(A)の実行可能コード部分の始めから一
定のオフセットのところにロードされる。良好な実施例
では、第1表に示すように、制御ブロックC(A)(長
さ16バイト)が最初の命令(長さ2バイトの” J 
M P ”命令)の直後にくるので、ポインタP (A
)の始めは、割込みハンドラH(A)の実行可能コード
部分の始めから2バイト分外れる。制御ブロックC(N
)と割込みハンドラH(N)の記憶位置の関係を表わす
一定のオフセットは、本発明によれば、割込みベクトル
v(7)に連鎖されるすべての割込みハンドラについて
同じである。チェーンを完成するため、リンク・ルーチ
ンL (A)は、″デフォルト・アドレス″を制御ブロ
ックC(A)のポインタP (A)にロードして2割込
みハンドラH(A)が次の連続するデフォルト割込みハ
ンドラ・ルーチンH(DF)を探すことができるように
する。良好な実施例では、固定オフセットは各ハンドラ
の入口点から正方向に2バイトとして開示されているが
、各ハンドラの入口点アドレスから正または負に相対的
に変位した他のどんな一定値にすることもできる。
制御ブロック(A)は、第11図に示すように、ポイン
タP (A) 、フラグF (A) 、署名フィールド
および予約フィールドを含んでいる。ポインタP (A
)は、チェーン中の他の割込みハンドラをアドレスする
ためのリンク機構を提供する。ポインタP (A)の内
容は、チェーン中の次の割込みハンドラの実行可能コー
ドの始めをマークする。
RAM32の実アドレスを表す。後で説明するように、
割込みハンドラのアンリンク・プロセスでは、ポインタ
P (N)を使ってチェーンを横断し、割込みチェーン
から除去したい割込みハンドラを探し出す。制御ブロッ
クC(A)中の署名ワードは、固定16進表現であり1
割込みハンドラが本明細書で説明す、る共用割込み技術
に合致していることを検証するために使われる。署名ワ
ードは、特にある割込み制御ブロックC(N)を有効割
込み制御ブロックであるものとして識別するのに使われ
る。マルチタスキング・オペレーティング・システム中
のもとで走行する適用業務プログラムは自身を割込みチ
ェーンにロードできるが、本明細書で記載する共用割込
み法に合致しないことがあり得る。その割込みハンドラ
を割込みハンドラ・チェーンからアンリンクしようとす
るとき、合致しない割込みハンドラは必ずしも割込みハ
ンドラ制御ブロックを維持せず、そのためチェーン横断
を妨げるので、これは問題を生じる恐れがある。
対応する割込みハンドラH(N)が割込みハンドラ・チ
ェーンを正しく共用できるとの確認を与えることか、各
制御ブロックC(N)中の署名ワードの役割である。特
定の割込みハンドラをアンリンクするためのチェーン横
断操作中に、チェーン中で署名ワードがその制御ブロッ
クにない割込みハンドラに出会った場合、訂正アクショ
ンを試みるため、例外処理ルーチンが呼び出される。
フラグ・バイトF (A)の主な機能は、チェーン中の
割込みハンドラH(A)が、チェーン中で出会う最後の
割込みハンドラであるかどうかを示すことである。IR
Q7線を共用するすべての工10装置上の共用割込み論
理装置46をリセットしアンロックするために、割込み
ハンドラに照会する過程で大城再活動化信号を出さなけ
ればならないため、それを決定することは重要である。
たとえば、割込みチェーンに連続する3つの割込みハン
ドラH(A) 、 H(B) 、 H(C)がこの順序
で加えられた第9図の構成では、最初にロードされた割
込みハンドラH(A)は1割込みハンドラH(A)がデ
フォルト割込みハンドラに出会う前のチェーン中で最後
の割込みハンドラであるとの情報を、そのフラグF (
A)に記憶しなければならない。第1表を参照するとわ
かるように、フラグF (N)について割込みハンドラ
H(N)をテストし、その割込みハンドラがチェーン中
で最後の(最初にロードされた)割込みハンドラである
かどうか決定するためのテスト命令が含まれている。割
込みハンドラH(N)がチェーン中の最後の割込みハン
ドラであることをフラグ・バイトF (N)が示す場合
、その割込みハンドラが、対応するI10装置が割込み
信号を出さなかったと決定しても、割込み線IRQ7を
共用するすべてのI10装置上の共用割込み論理装置4
6をアンロックするために、割込みハンドラH(N)は
、大城再活動化信号を出さねばならない。第■表を参照
すると、チェーンに付加すべき割込みハンドラH(N)
が、チェーン中で最初に付加される割込みハンドラであ
るかどうかを、リンク・コードがどのようにチェックす
るかが示されている。それが実際にチェーンに付加され
る最初の割込みハンドラである場合、その状態を示すフ
ラグF (N)がセットされ、その結果、割込みハンド
ラは、制御権がそわ2に渡る毎に大城再活動化信号を出
す。
第■表のアンリンク・コードの例を参照すると。
チェーンからアンリンクすべき割込みハンドラH(N)
のフラグ・バイトF (N)の内容が、直前の割込みハ
ンドラの内容に移されることが示されている。たとえば
、第9図に示す割込みハンドラH(B)をアンリンクす
る際、第10図に示すように、その制御ブロックC(B
)に含まれていたフラグAが割込みハンドラH(C)の
フラグ・フィールドF (C)に移される。アンリンク
されている割込みハンドラが実際にチェーンで最初にロ
ードされた割込みハンドラ、たとえば第9図の割込みハ
ンドラH(A)であった場合、そのアンリンク中に直前
の割込みハンドラに移されるフラグ・フィールドが、直
前の割込みハンドラに、割込みハンドラのチェーン中で
それに出会う毎に入城活動化信号を発生させる。このよ
うにして1割込みハンドラがどんな順序でチェーンから
アンリンクされても、必ずチェーン中で出会う最後の割
込みハンドラが大城再活動化信号を出して、IRQ7線
を共用するすべてのI10装置上の共用割込み論理装置
46をアンロックする。
オプション機能として、制御ブロックC(A)中のフラ
グ・バイトF (A)を使って、連続する′各別込みハ
ンドラH(N)が処理されるとき、PIC22に対する
マスク・ビットの設定を保存することもできる。上記に
引用したi’ A P X 86.88ユーザーズ・マ
ニュアルに記載されているインテル8259Aは1割込
みマスク・レジスタを含んでいる(第4A図参照)。こ
の割込みマスク・レジスタを使うと、8本の割込み線工
RQO〜工RQ7がすべて同時に使用不能または使用可
能になるのではなくて、個々の割込み線をマスクするこ
とができる。PIC22の割込みマスク・レジスタは8
ビツト・レジスタであり、ビットO〜7が割込み線IR
QO〜IRQ7に直接対応している。割込みマスク・レ
ジスタに適当なビットを書込みセットすると、この8本
の割込み線のどれでもその入力をマスクすることができ
る。同様に割込みマスク・レジスタ・ビットをクリアす
ると、8本の割込み線のどれでもPIC22に通じるそ
の入力を使用可能にすることができる。この機能が役立
つのは、たとえば特定の割込みハンドラ・ルーチンH(
N)の実行を特定の低優先割込みによってのみ中断し、
そのサービス・ルーチンの間は高優先割込みを禁止すべ
きである。制御ブロックC(A)のフラグ・バイトF 
(A)は、8つのマスク・ビットを含んでおり、それが
PIC22の割込みマスク・レジスタにロードされる。
制御ブロックC(A)のフラグ・バイトF (A)は、
この点に関して2つの目的に役立つ。第1に、リンク・
ルーチンL (A)が割込みハンドラH(A)を導入し
たとき、PIC22におけるマスク・ビット設定のログ
として働く。第2に、フラグ・バイI−F(A)は、通
常の割込み処理操作中に特定の目的に役立つ。チェーン
中で割込み信号を出した装置に対応する割込みハンドラ
を探索する場合について以前に説明したプロセスでは、
割込みノ1ンドラは、それに対応するI10装置が規制
込み信号を発生しなかったと決定すると、チェーン中の
次の割込みハンドラに制御権を渡す。しかし、この次の
割込みハンドラに制御権を渡すことの例外は、IRQ7
線に割込み信号が発生したとき、チェーン中の次の割込
みハンドラが制御権を通常通り受は取っていないことを
フラグ・バイトが示す場合である。このような場合、P
IC22からCPU20に割込み要求IREQを出すこ
とがPIC22中のマスク・ビットによってマスクされ
ているため1通常1次の割込みハンドラは割込みベクト
ル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)にロードされる6ア
ンリンク論理ルーチンU (N)は、フラグ・バイトF
 (N)の内容も前の割込みハンドラH(N+1)の制
御ブロックC(N+1)のフラグ・バイト・フィールド
F (N+1)にロードする。それによって、PIC2
2に対するマスク・バイトの保存が可能になる。
リンク・ルーチンの操作の説明に戻ると、第8図に、第
2の適用業務プログラムAP (B)を、リンク・ルー
チンL (B) 、アンリンク・ルーチンU (B) 
、および割込みハンドラH(B)からなる割込み共用プ
ログラムS (B)と−緒にロードする操作が示されて
いる。割込みハンドラH(A)のリンクについて上述し
たのと同じやり方で、リンク・ルーチンL (B)は、
割込みベクトル■(7)の現内容″アドレスA ”を割
込みハンドラH(B)の制御ブロックC(B)のポイン
タ・フィールドP (B)にロードして、割込みハンド
ラH(B)をロードしリンクする手順を遂行する。
次に、値″アドレスB I+が割込みベクトルV(7)
にロードされるが、これは割込みハンドラH(B)に対
する実行可能コードの開始位置のアドレスである。H(
B)の割込みハンドラ・コードが、その位置からロード
され、制御ブロックC(B)がRAM32中で“アドレ
スB″位置から2バイト高位の固定オフセット位置にロ
ードされる。
第9図には、第3の適用業務プログラムAP(C)をR
AM32にロードし、その割込みハンドラH(C)をリ
ンクする操作が示されている。
このリンク操作は1割込みハンドラH(B)およびH(
A)について説明したのと同じやり方で行われ、リンク
・ルーチンL (C)によって実行される。その結果、
第9図かられかるように、割込みベクトルv(7)は1
割込みハンドラH(C)の実行可能コードの開始位置を
指す値゛アドレスC″′をその内容として含む。制御ブ
ロックC(C)は、“アドレスC”の位置からRAM3
2中で2バイト高位の固定オフセット位置にある。ポイ
ンタp (c)の内容は、割込みハンドラH(B)をア
クセスするための“アドレスB”を含んでいる。
リンク・ルーチンL (N)を使ってリンク操作を実行
する際のステップおよび命令のシーケンスについての一
般的説明については、第■表の7センブラ・コードを参
照されたい。
第10図は、第9図に示した割込みハンドラのチェーン
H(C) 、H(B) 、 H(A)から割込みハンド
ラH(B)をアンリンクする操作を示したものである。
アンリンク・ルーチンU (N)の実行のための一般的
アセンブラ・コードの命令シーケンスについては、第■
表を参照されたい。アンリンク・ルーチンU (B)は
、まずチェーン内の割込みハンドラH(B)の位置を探
し出さなければならない。これは、割込みベクトルv(
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 CC:)にロ
ードされる。このステップの後、ポインタp (c)の
内容は1割込みハンドラH(A)の実行可能コード部分
の始めを指す″アドレスA”である。これによって、チ
ェーンがアンリンクされた割込みハンドラH(B)を飛
び越すごとができる。マルチタスキング・オペレーティ
ング・システム環境では、プログラムをいつでもどんな
順序でも開始または終了できるので、このことは特に重
要である。すなわち、これは、制御ブロックC(N)が
その割込みハンドラH(N)の開始位置から一定のオフ
セットのところに位置し、そのため割込みハンドラが互
いの位置を参照でき、チェーン中のどの割込みハンドラ
も任意の順序でアンリンクできるためである。
本明細書で本発明の原理を例示するために選んだマイク
ロコンピュータ・システムは、18088CPUを使っ
たIBMパーソナル・コンピュータPC−1型である。
しかし、本明細書で開示した本発明の原理は、1802
86cPUを使ったIBMパーソナル・コンピュータA
Tにも応用できる。IBMパーソナル・コンピュータA
Tの構成では2つの18259Aがあり15本のI10
装置割込み線を備えている。これらのどの割込み線も、
上記の8088CPU構成における割込み線の共用と同
様のやり方で共用できる。割込みベクトルが指す割込み
ハンドラのチェーンは、8088構成の割込みハンドラ
および、それに対応する工/○装置の操作について上記
に説明したのと同じゃ男方で作動する。
隨           ! 諒        且          △罷ミL国
QQ(−!IK       妻 漕禮禮O峰士さ Δ
  繍ン    口ヘソ←
【図面の簡単な説明】
第1図は第1A図および第1B図のつながりを示す図。 第1A図および第1B図は、本発明したがうマイクロコ
ンピュータ・システムの概略を示すブロック図。 第2図は、ポーリング法を用いた先行技術によるマイク
ロコンピュータ・システムのブロック図。 第3図は、割込み法を用いた先行技術によるマイクロコ
ンピュータ・システムのブロック図。 第4図は第4A図ないし第4C図のつながりを示す図。 第4A図ないし第4c図は、本発明にしたがうマイクロ
コンピュータ・システムの詳細を示すブロック図。 第5図は第5八図ないし第5D図のつながりを示す図。 第5八図ないし第5D図は、同じ割込み線IRQ7を共
用する複数のI10装置とそれらに対応する割込みハン
ドラH(A) 、 H(B) 、 H(C)との関係を
示すブロック図。 第6図は、初期デフォルト割込みを示す記憶マツプ図。 第7図は、最初の割込みハンドラH(A)のリンキング
を示す記憶マツプ図。 第8図は、2番目の割込みハンドラH(B)のリンキン
グを示す記憶マツプ図。 第9図は、3番目の割込みハンド−ラH(C)のリンキ
ングを示す記憶マツプ図。 第10図は、割込みハンドラH(F3)のアンリンキン
グを示す記憶マツプ図。 第11図は、適用業務# N 11に関連するソフトウ
ェア・モジュールの概略図。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 第1B図 「−1ルグ法(従来技術) 第2図 第8図 第4B図 第4C図 第5B図 第5D図 ネ刀期テ°°フオJレト龜11誌、み 2番目の古1汲みへシーラH(8)のリン島ング第8図 34F目の番1込みへンドラH(〔)のlルキレク°′
第9図 l用11召V’N”を二β0滅LコLろソフl−1J)
ヱ了モジ:L−1シ 第11図

Claims (1)

  1. 【特許請求の範囲】 処理装置と、 共通の割込み線に接続され、該割込み線上に割込み信号
    があると新たな割込み信号の転送を阻止する複数の入出
    力装置と、 各入出力装置の割込み要求を処理する複数の割込みハン
    ドラ・ルーチンをチェーンの形で記憶すると共に該チェ
    ーンにおける最初の割込みハンドラ・ルーチンの開始ア
    ドレスを含む割込みベクトルを記憶する記憶装置とを備
    え、 前記割込みハンドラ・ルーチンのそれぞれは前記チェー
    ンにおける次の割込みハンドラ・ルーチンを指すポイン
    タ・アドレスを含み、 前記処理装置は、前記割込み線上の割込み信号に応答し
    てプログラムの実行を中断すると共に前記割込みベクト
    ルをアクセスし、前記最初の割込みハンドラ・ルーチン
    に対応する最初の入出力装置が前記割込み信号を出した
    かどうかを調べて出していた場合には割込みサービスを
    実行し、中断されたプログラムに戻る前に前記新たな割
    込み信号の転送を可能にするため各入出力装置を再活動
    化し、前記最初の入出力装置が前記割込み信号を出して
    いなかった場合には前記チェーンにおける次の割込みハ
    ンドラ・ルーチンをアクセスして同様な処理を続けるこ
    とを特徴とする共用割込みシステム。
JP61200251A 1985-08-29 1986-08-28 共用割込みシステム Expired - Lifetime JPH0754500B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
US770541 1985-08-29

Publications (2)

Publication Number Publication Date
JPS6252655A true JPS6252655A (ja) 1987-03-07
JPH0754500B2 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
AU4414889A (en) * 1988-10-21 1990-05-14 A.C. Nielsen Company 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 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
CA2094295C (en) * 1990-11-09 1998-05-19 Charles F. Raasch Protected hot key function for microprocessor-based computer system
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 富士通株式会社 データ処理システム
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
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
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
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
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
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
ATE239255T1 (de) * 1998-08-10 2003-05-15 Micron Technology Inc Prozessor oder zentraleinheit mit internem register für peripheriezustand
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
US6219720B1 (en) 1998-08-10 2001-04-17 Micron Technology, Inc. Core logic unit with internal register for peripheral status
US6374320B1 (en) 1998-08-10 2002-04-16 Micron Technology, Inc Method for operating 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
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
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
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
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 マルチプロセッサシステム
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
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
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
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
EP0212393A3 (en) 1989-07-19
US4768149A (en) 1988-08-30
EP0212393B1 (en) 1993-03-03
EP0212393A2 (en) 1987-03-04
DE3687866D1 (de) 1993-04-08
DE3687866T2 (de) 1993-09-23
JPH0754500B2 (ja) 1995-06-07

Similar Documents

Publication Publication Date Title
JPS6252655A (ja) 共用割込みシステム
US4077058A (en) Method and apparatus for executing an extended decor instruction
US4271466A (en) Direct memory access control system with byte/word control of data bus
US4432051A (en) Process execution time accounting system
US3573855A (en) Computer memory protection
US4090238A (en) Priority vectored interrupt using direct memory access
CA2012400C (en) Command delivery for a computing system
US5548735A (en) System and method for asynchronously processing store instructions to I/O space
JPH0430053B2 (ja)
JPH0450621B2 (ja)
US5371857A (en) Input/output interruption control system for a virtual machine
US5317745A (en) Minimal interrupt latency scheme using multiple program counters
EP0239078A2 (en) Register saving/restoring system
US3961312A (en) Cycle interleaving during burst mode operation
EP0290942B1 (en) Guest machine execution control system for virtual machine system
EP0206335B1 (en) Interruption method for a data processing system
JPS6319058A (ja) メモリ装置
EP0510429A2 (en) Millicode register management system
Smotherman A sequencing-based taxonomy of I/0 systems and review of historical machines
JP2847863B2 (ja) マイクロプロセッサ割込み制御方式
JPH0424733B2 (ja)
JPH0578859B2 (ja)
Cluley Program Interrupts
JPS62235645A (ja) マルチプロセスコンピユ−タ動作方法及びマルチプロセスコンピユ−タ
JPH06103065A (ja) 命令プリフェッチ装置