JPS61184642A - 割込み処理方式 - Google Patents

割込み処理方式

Info

Publication number
JPS61184642A
JPS61184642A JP2462585A JP2462585A JPS61184642A JP S61184642 A JPS61184642 A JP S61184642A JP 2462585 A JP2462585 A JP 2462585A JP 2462585 A JP2462585 A JP 2462585A JP S61184642 A JPS61184642 A JP S61184642A
Authority
JP
Japan
Prior art keywords
interrupt
processing
processing part
interruption
interrupts
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2462585A
Other languages
English (en)
Inventor
Takao Maeda
多可雄 前田
Shigechika Tsutsui
筒井 茂義
Yumiko Sugita
杉田 由美子
Kazushi Yamaki
八巻 一志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2462585A priority Critical patent/JPS61184642A/ja
Publication of JPS61184642A publication Critical patent/JPS61184642A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、割込処理方式に関し、特に計算機システムに
おいて、高速応答性が要求されるリアルタイム処理方式
に関するものである。
〔発明の背景〕
計算機システムでは、演算データやプログラムが誤りの
とき、f!!、源異常のとき、優先度の高いプログラム
の処理命令が来たとき等に1割込みが行われる1割込み
処理ルーチンは、中断される実行中のプログラムの内容
を一時決められた場所に移し、割込み原因を探して対応
処置をとる。
ところで、従来の割込み方式では1割込み発生時に、そ
の割込み番;関する全ての処理を行っている。そのため
1例えばタスクの情報を記憶するTCB (Task 
ControQB Rock)や、事象の情報を記憶す
るECB(Even七Contro Q  B Q o
ck)等のO3(○peraシing S ystem
)の内部の情報を変更する場合、変更中は、割込みを禁
止しなければならない。そこで、この方式において、O
8をできるだけ割込み可能状態で実行させようとすると
、O3内の多数の場所に割込み禁止/解除の操作を埋込
む必要があり、きわめて繁雑であった。上記のように、
O8内に割込み禁止/解除の操作を行っている例として
は、”68000用リアルタイム・モニタの設計”イン
タフェース1983−6゜No、73.P、206〜P
、235に記載されている。
〔発明の目的〕
本発明の目的は、このような従来の問題を解決し、O8
を実行する際に、殆んどの時間を割込み可能状態で行っ
て、割込み禁止時間を短縮し、かつCPUの割込み禁止
/解除の制御を簡単にすることができる割込処理方式を
提供することにある。
〔発明の概要〕
上記目的を達成するため1本発明の割込処理方式は、割
込み処理手段を有する計算機システムにおいて、上記割
込み処理手段にFIFOレジスタを設け、該割込み処理
手段に入力する割込みを、外部割込みに直接関係し、か
つ割込み禁止状態で実行する必要がある前処理部分と、
それ以外の後処理部分とに分割し、上記割込み処理手段
は割込み発生時に上記前処理部分のみ実行し、上記後処
理部分に必要な情報を上記FIFOレジスタに記述した
後1割込み禁止状態が解除されたとき、上記FIFOレ
ジスタの内容にしたがって後処理部分を実行することに
特徴がある。
〔発明の実施例〕
以下1本発明の実施例を1図面により説明する。
説明は、マイクロプロセッサMC68000を例にとり
述べる。
第1図は、本発明の一実施例を示す。Sの制御の流れ図
である。
第1図において、11は割込処理部、12はタイマ処理
部、13はシステムSvC処理部、14はユーザSvC
処理部、15は例外割込処理部。
16はOSディスパッチャ、17はタスク・ディスパッ
チャ、18は実行部、19はFIFO(First −
I n −First −Ou七)レジスタ、111〜
113はデバイスの割込処理である。
ディスパッチャ16は、O8内にあって、実行中の各プ
ログラムからの実行時間、あるいは入出力データの要求
等を受けて処理をするルーチンであって、ここでは割込
みの後処理をFIT’○レジスタ19に従って実行する
。割込み処理部11は、割込みに直接関係する処理(前
処理)以外の処理(後処理)を行い、その処理の情報を
FIFOレジスタ19に記述する。
ところで、O8が管理する対象には、タスク、資源、入
力出装置等がある。これら3つのうち、入出力装置制御
のコントロール・レジスタを書き換える場合には1割込
み禁止状態でなければ行うことができない。しかし、そ
れ以外の入出力装置。
および前二者は、割込みの前後で関係するメモリおよび
レジスタが保存されていれば1割込みを禁止する必要は
ない。そこで、本発明では、対応するハードウェアから
の割込みを禁止しなければならない前処理部分と、割込
みを禁止する必要がないそれ以外の後処理部分とに分割
して処理を行うものとする。上記前処理部分は、ハード
ウェアにアクセスする部分、およびハードウェアの状態
を記憶部にアクセスする部分を含む。この前処理部分の
割込み発生時には、割込みレベルのまま実行する。上記
後処理部分は、タスク、事象の変更等の割込みを含む。
この後処理部分の割込み発生時には、処理結果および必
要な処理の種類をFIFOレジスタ19に記述し、ディ
スパッチ時には、多重割込み解消後に1割込みレベルを
タスクのレベルに下げることにより1割込み禁止を解除
して。
FIFOレジスタ19から情報を読取り、それに従った
処理をFIFOレジスタ19が空になるまで繰り返して
、タスクのスケジューリングを行うようにする。
本実施例においては、割込みの禁止/解除の操作が、F
IFOレジスタ19へのアクセス、およびタスクのスケ
ジューリング部のうちの実行環境を整える部分だけであ
るため、割込み禁止時間の短縮および操作の簡単化が可
能となる。
第1図において、レベルiの割込みが入力すると1割込
処理部11が割込み分析を行い、各デバイス111〜1
13ごとの割込処理を行う。ここでの処理は2例えば入
出力デバイスの場合、ポインタの更新とデバイスの状態
更新である。従って、そのデバイスからの割込みは禁止
しなければならないが、この禁止はMC68000のハ
ードウェアが自動的に行う。各デバイスの割込処理11
1〜113では、その割込みにより、入出力デバイスや
タスクの状態に変更が必要となった場合、その旨を割込
処理部11にリターン・コードとして返す。割込処理部
11では、各側込み処理からのリターン・コードを分析
し、例えば、入出力の終了処理1時刻更新等の他の処理
が必要な場合、その旨をFIFOレジスタ19に書込む
6第2図は、第1図におけるFIFOレジスタのtil
造を示す図である。
割込処理部11によって書込まれる際のFIFOレジス
タ19のフォーマットは、第2図に示すように、関数ア
ドレス21、およびデータ22よりなる。関数アドレス
21は、必要な処理ルーチン・アドレスであり、データ
22は各デバイスごとの割込処理から得られる情報であ
る。例えば、入出力終了割込みの場合、タスクの状態を
「入出力持ち」の状態から「レディ」の状態に遷移する
処理と、それに付随する処理を1つのルーチンし−まと
め、その先頭アドレスを関数アドレス21として書込む
。また、データ22として、終了した入出力装置IDと
、終了状態とを書込む。これら一連の情報を書込む際に
は、割込みを禁止しなければならない、これらの処理終
了後、制御をOSディスパッチャ16に移す。
第3図は、第1図のOSディスパッチャの処理フローチ
ャートである。
多重割込み(O8実行中の割込み)か否かをシステム・
スタックの高さによって判定しくステップ31)、多重
割込みの場合には1割込み禁止を行うため(ステップ3
9)、レジスタを回復して割込み発生位置ヘリターンす
る(ステップ40.41)。
多重割込みでない場合には、割込みレベルをタスクレベ
ルにした後、割込みを禁止しくステップ32.33)、
F r FOレジスタ19内の情報の有無を見て、空で
ない場合にはFIFOレジスタ19の情報を取出しくス
テップ34.35)、その後、割込み禁止を一旦解除し
て(ステップ36)、FIFOレジスタ1つ内に情報を
記述するルーチンに移る(ステップ37)。そして、再
び割込みを禁止した後、FIFOレジスタ19の空き塞
りを検知し、空でないときには書込まれていたルーチン
をコールする(ステップ38,34.35)。これをF
TFOレジスタ19が空になるまで繰返し行い。
空になるとタスク・ディスパッチャ17に制御を移す。
なお、第3図に示すように1、ステップ35の前後、つ
まり情報の取出し時には、割込みを禁止しなければなら
ない。
タスク・ディスパッチャ17では、実行可能なタスクを
探し、実行部18に制御を移して、タスクの実行環境を
整え、タスクに制御を移す。実行部(exec)18は
、割込みを禁止しなければならない唯一の例外である。
これまで、外部割込みについて制御の流れを説明したが
、ユーザ・タスクからのスーパバイザコール(svc、
優先度の低いプログラムから高いプログラムへの切換え
)、および例外割込み(MC68000の場合+bus
 error、 address error蔦111
c4al 1nst、ruction zero−di
vide chk等)は、割込み発生時、すべてO8外
で発生するので、FIFOレジスタ19を介することな
く、直接実行する。すなわち、ユーザsvc処理部13
、および例外割込処理部15がこれを実行する。一方、
システム・モードからのスーパバイザコール(SVC)
は、直接実行せず、外部割込みと同じように、FIFO
レジスタ19を介してOSディスパッチャ16において
実行する。
本実施例において、○Sの実行を割込み禁止状態で行う
必要があるのは、FIFOレジスタ19へのアクセス部
、およびタスクの実行環境を整える実行部(exec)
1Bのみであり、それ以外は割込み可能状態で実行でき
る。また、タスクの管理や資源管理等の割込みに関係し
ない部分は、内部のキュー操作や共有メモリのアクセス
等のように1本来1割込み禁止状態で実行しなければな
らない部分を含めて、割込み可能状態で実行できるため
、割込み禁止/解除操作が簡単になる。
なお、本実施例では、FIFOレジスタ19をtill
としたが、これを複数個にすることにより、割込処理に
優先度を設けることができる。
第4図は、複数個のFIFOレジスタとOSディスパッ
チャの関係を示す図、第5図は複数種類のキューを制御
するOSディスパッチャの処理フローチャートである。
n種類のFIFoレジスタの場合を、第1図。
第4図、第5図により説明する。この場合の処理の構造
は、第1図と基本的には同じである。ただし、第4図に
示すように、第2図の構造のFIFOレジスタ19をn
個配列する。割込処理部11は、各デバイスの割込処理
111〜113を終了した後、必要な処理をFIFOレ
ジスタ19に書込む際に、必要な処理が何番目の処理で
あるかを分析しく終了処理分析20)、対応するFIF
Oレジスタ19に1個の場合と同じように書込み、OS
ディスパッチャ16に制御を移す。
n種類のキューを制御する場合には、第5図に示すよう
に、多重割込みでないことを判断したとき、割込み禁止
を解除した後、FIFOレジスタを読込むときだけ割込
みを禁止しくステップ51〜53)、第i種(1≦i≦
n)のFIFOレジスタ内の情報の有無を判定して(ス
テップ54,64、・・・・・74)、情報が無い場合
には第(i+1)種のFIFOレジスタに関する判定に
移る。ただし、i=nの場合には、もう情報の有無を判
断するFIFOレジスタがないので、タスク・ディスパ
ッチャ17に制御を移す。第i種のFIFOレジスタに
情報がある場合には、そこから情報を読込み、割込み禁
止を解除して、記述ルーチンに移り、再び割込みを禁止
した後(ステップ65〜68)、第1種のFIFOレジ
スタの処理に戻る。
この実施例では、i>jならば第5種のFIFOレジス
タの処理は、第i種のFIFOレジスタの処理に優先し
て実行できる。
第6図は、本発明の他の実施例を示すパケット構造の図
、第7図は同じくパケットキューの構造を示す図である
前述したFIFOレジスタのかわりに、第6図に示すよ
うなパケットのキューイングを用いて、ソフトウェア的
に構成することもできる。パケット構造は、キーポイン
タ61と関数アドレス62とデータ63からなる。キー
ポインタ61は、第7図に示すように、キューヘッダか
ら最初のパケットの先頭アドレスが指定され、そのパケ
ットで次に結合されるパケットの先頭アドレスを指定す
る際のアドレス指定情報が格納されている。関数アドレ
ス62、データ63は、それぞれ第2図の関数アドレス
21.データ22に対応するものである。
第8図は、パケット方式におけるOSディスパッチャの
処理フローチャートである。
第8図では、キューが1本の場合で、FIFOレジスタ
が1個の場合に相当するが、第5図のように複数の流れ
を形成す九ば、n本のキューによる優先順位付きの制御
も簡単に実現できる。
第8図においても、FIFOレジスタの場合と同じであ
って、先ず多重割込みであるか否かを判断して(ステッ
プ81)、多重割込みでなければ割込み禁止を一旦解除
した後、パケットの読込み唱;移る前に割込み禁止にす
る(ステップ82.83)。
パケットキューにパケットが結合されているか否か調べ
、結合されていれば、先に割込み禁止を解除した後、パ
ケット記述ルーチンに移り、ルーチン終了後に再び割込
み禁止にして、パケットを解放する(ステップ84〜8
8)、このように、パケットの場合には、読込み処理が
パケットを解放するだけでよいため、流れの順序が変わ
る。このようにして、順次パケットを解放していき、パ
ケット・キューに結合されたパケットがなくなったなら
ば、タスク・ディスパッチャ17に制御を移す。
こ、のように1本発明では、割込み禁止状態で実行する
必要があるのは、割込みの種類を記述したFIFOレジ
スタへアクセスする部分のみであるため、CPUに対す
る割込み禁止/解除の操作を行う部分は局所化される。
また、O8の他の部分の実行は、すべて割込みを禁止せ
ずに実行できるため、割込み禁止/解除操作の単純化、
および割込み禁止時間の短縮が可能となる。ただし、外
部デバイスへのアクセス時、およびその割込み発生時の
処理(デバイスに固有の処理)では、そのデバイスから
の割込みを禁止する必要があるが、より高い割込みレベ
ルの割込みを考えれば、割込みは禁止されないので、割
込み禁止時間には影響しない。
〔発明の効果〕
以上説明したように1本発明によれば、O8を設計する
際に、CPUの割込み禁止/解除の制御を単純化し、か
つO8の実行を殆んどの時間で割込み可能状態にして行
うので、割込み禁止時間を短縮することができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すO8の制御の流れ図、
第2図は第1図のFIFOレジスタの構造図、第3図は
第1図のOSディスパッチャの処理ブローチヤード、第
4図は複数個のFIFOレジスタとOSディスパッチャ
の関連図、第5図は複数種類のキューを制御する○Sデ
ィスパッチャの処理ブローチヤード、第6図、第7図は
本発明の他の実施例を示すパケット構造図とパケットキ
ューの構造図、第8図はパケット方式でのOSディスパ
ッチャの処理フローチャートである。 ll:割込処理部、12:タイマ処理部、13ニジステ
ムsvc処理部、14:ユーザsvc処理部、15:例
外割込処理部、16:OSディスパッチャ、17:タス
ク・ディスパッチャ、18:実行部(EXEC)、19
 : F I FOレジスタ、111〜113:各デバ
イスの割込処理。 第    1    図 ] タスク 第2図 第3図 第6図 第   7   図

Claims (3)

    【特許請求の範囲】
  1. (1)割込み処理手段を有する計算機システムにおいて
    、上記割込み処理手段にFIFOレジスタを設け、該割
    込み処理手段に入力する割込みを、外部割込みに直接関
    係し、かつ割込み禁止状態で実行する必要がある前処理
    部分と、それ以外の後処理部分とに分割し、上記割込み
    処理手段は割込み発生時に上記前処理部分のみ実行し、
    上記後処理部分に必要な情報を上記FIFOレジスタに
    記述した後、割込み禁止状態が解除されたとき、上記F
    IFOレジスタの内容にしたがつて後処理部分を実行す
    ることを特徴とする割込み処理方式。
  2. (2)上記FIFOレジスタを複数個設けることにより
    、割込み処理に優先順位を付与することを特徴とする特
    許請求の範囲第1項記載の割込み処理方式。
  3. (3)上記FIFOレジスタのかわりに、パケツトのキ
    ユーイングを用いてソフトウエアで後処理に必要な情報
    を記憶することを特徴とする特許請求の範囲第1項記載
    の割込み処理方式。
JP2462585A 1985-02-12 1985-02-12 割込み処理方式 Pending JPS61184642A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2462585A JPS61184642A (ja) 1985-02-12 1985-02-12 割込み処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2462585A JPS61184642A (ja) 1985-02-12 1985-02-12 割込み処理方式

Publications (1)

Publication Number Publication Date
JPS61184642A true JPS61184642A (ja) 1986-08-18

Family

ID=12143323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2462585A Pending JPS61184642A (ja) 1985-02-12 1985-02-12 割込み処理方式

Country Status (1)

Country Link
JP (1) JPS61184642A (ja)

Similar Documents

Publication Publication Date Title
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
KR100934533B1 (ko) 연산 처리 시스템, 컴퓨터 시스템 상에서의 태스크 제어 방법, 및 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5701493A (en) Exception handling method and apparatus in data processing systems
US4912628A (en) Suspending and resuming processing of tasks running in a virtual machine data processing system
US5448732A (en) Multiprocessor system and process synchronization method therefor
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
EP2312441B1 (en) Scheduling of instructions groups for cell processors
EP0783734B1 (en) System and method for providing cooperative interrupts in a preemptive task scheduling environment
US20100153957A1 (en) System and method for managing thread use in a thread pool
CN107729050B (zh) 基于let编程模型的实时系统及任务构建方法
US20050066149A1 (en) Method and system for multithreaded processing using errands
EP0715732B1 (en) Method and system for protecting shared code and data in a multitasking operating system
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
Borger et al. Real-Time Software Engineering in Ada: Observations and Guidelines
JPS61184642A (ja) 割込み処理方式
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
JP3349547B2 (ja) スケジューリングシステム
KR100506254B1 (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법
Furr What is real time and why do i need it?
Foughali et al. Scalable Computation of Inter-Core Bounds Through Exact Abstractions
JP2926873B2 (ja) 計算機システム
JPH01195542A (ja) マルチプログラミング処理装置