JP2594557B2 - マルチタスク処理装置 - Google Patents

マルチタスク処理装置

Info

Publication number
JP2594557B2
JP2594557B2 JP62093663A JP9366387A JP2594557B2 JP 2594557 B2 JP2594557 B2 JP 2594557B2 JP 62093663 A JP62093663 A JP 62093663A JP 9366387 A JP9366387 A JP 9366387A JP 2594557 B2 JP2594557 B2 JP 2594557B2
Authority
JP
Japan
Prior art keywords
task
processing
unit
system call
microprogram
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 - Fee Related
Application number
JP62093663A
Other languages
English (en)
Other versions
JPS63257833A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP62093663A priority Critical patent/JP2594557B2/ja
Priority to EP87112565A priority patent/EP0257655B1/en
Priority to DE3750171T priority patent/DE3750171T2/de
Publication of JPS63257833A publication Critical patent/JPS63257833A/ja
Priority to US07/517,402 priority patent/US5148542A/en
Application granted granted Critical
Publication of JP2594557B2 publication Critical patent/JP2594557B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラムを複数の処理単位(以下タス
ク)に分割し、複数のタスクを並列に動作させることに
より、プログラム全体の効率を向上させることを目的と
したマルチタスク処理装置に関するものである。
〔従来の技術〕
従来、複数のタスクを並列に実行させるために、リア
ルタイムOSは管理ソフトウェアとして必要不可欠なもの
となっており、その機能としては、タスクに起動をかけ
たり、処理を終了させたりするタスク管理機能、タスク
間の待ち合わせをしたりデータの送受信を行なったりす
るタスク間同期通信機能、割り込みに関係する機能、そ
の他メモリエリアの管理機能、時間の管理機能などの数
々の機能を備えているのが一般的となっている。
アプリケーションプログラムが、リアルタイムOSを利
用する際には、各機能毎の処理要求をリアルタイムOSに
対して出すが、この処理要求のことをシステムコールと
呼び、処理要求を出すことをシステムコールの発行と呼
ぶ。システムコール発行の例を以下に挙げる。
第2図は、2つのタスク間でのデータ送受信の例であ
る。タスク間のデータ送受信には、通常メールボックス
と呼ばれる共有バッファが利用される。タスクAは、送
信データを生成し、データへのポインタをパラメータと
してメールボックス1番(#MBO−1)にシステムコー
ルSEND−DATAで送信する。ここで、システムコールSEND
D−ATAのパラメータはレジスタROであるとする。
タスクBは、タスクAより送信されたデータを、シス
テムコールRECEIVE−DATAで、メールボックス1番経由
で受信し、受信データを基にその後の処理を行なう。受
信データは、データへのポインタがレジスタROに格納さ
れるものとする。システムコール発行時に、送信データ
が存在しない場合にタスクBはメールボックス1番に対
して持ち状態となり処理は一時保留となり、他のタスク
に制御を移す。
第3図に、各システムコールの処理を示す。従来のリ
アルタイムOSはシステムソフトウェアとして命令の組み
合わせで実現されており、そのため処理の先頭ではシス
テムコールを発行したタスクのレジスタやプログラムス
テータスワード(以下PSW)など、プログラム走行に必
要な環境(以下コンテキスト)を退避してから各システ
ムコールの処理を行なう必要がある。通常コンテキスト
の退避エリアとしてタスク制御ブロック(以下TCB)と
呼ばれるエリアがメモリ上に各タスク毎に確保され、シ
ステムコール発行時には、発行タスクに相当するTCBに
タスクのコンテキストが退避される。
システムコールの処理後は、実行可能なタスクの内、
もっとも優先順位の高いタスクを選択して制御を移すこ
と(以下ディスパッチング)を行なう。
具体的に、システムコールRECEIVE−DATAでは、先ず
最初に発行タスクのコンテキストをTCBに退避する。次
に、パラメータで示されたメールボックス番号よりメー
ルボックスの状態を判定し、データが既に送信されてい
れば、そのデータへのポインタを、システムコール発行
タスクのTCB中のレジスタROに相当するエリアに格納し
たのちディスパッチングを行なう。データが送信されて
いない場合には、発行タスクはメールボックス待ちとな
り、発行タスクのタスクステータスを待ち状態とする。
タスクステータスもタスクのコンテキストと同様に、各
タスクのTCB中に確保されるのが普通である。
次にパラメータで示されたメールボックスに対して、
発行タスクが待ちになったことを示すために、メールボ
ックスに対してタスクの識別子を付加する。またリアル
タイムOSは、実行可能タスクを一括して扱うための構造
体(以下レディキュー)を管理しており、これも通常メ
モリ上に確保される。待ち状態になったタスクは、実行
不可能状態であるのでレディキューの登録から削除され
る。削除した後は、同様にディスパッチング処理に移
る。
次に、システムコールSEND−DATAの処理では、他のシ
ステムコール同様、先ず発行タスクのコンテキストがTC
Bに退避される。パラメータで指定されたメールボック
スの状態を判定し、待ちタスクがなければレジスタROで
示されたデータエリアへのポインタをメールボックスに
格納し、ディスパッチング処理を行なう。
メールボックスに対して待ちタスクが存在する場合に
は、待ちタスクのタスクステータスを実行可能状態にセ
ットし、メールボックスからタスクの識別子を削除し、
レディキューに登録した後、そのタスクのレジスタRO
に、送信データのポインタを格納した後、ディスパッチ
ング処理を行なう。
以上の処理を行なうことで、第2図に示したタスク
A、タスクBの実行の流れがどのようになるかを示した
のが第4図である。
タスクには夫々優先順位が設定されており、タスクA
よりもタスクBの方が高いものとする。先ずタスクBが
実行状態で動作し、システムコールRECEIVE−DATAでメ
ールボックス#MBO−1からのデータの受信要求を発行
する。この時点ではメールボックスにデータが送信され
ておらず、発行タスクは待ち状態に遷移し、タスクAに
制御が移る。タスクAは、データを生成した後、メール
ボックス#MBO−1に対してシステムコールS−END−DA
TAでデータを送信する。メールボックス#MBO−1には
既にタスクBが待ちになっているため、送信データはタ
スクBに送られ、タスクBは待ち状態から解除され実行
可能状態となる。ディスパッチング処理では、タスクB
の方がタスクAよりも優先順位が高いため、タスクBが
選択され制御が移る。
〔発明が解決しようとする問題点〕
以上説明したように、従来のリアルタイムOSは、命令
の組み合わせで実現されており、マルチタスクの処理を
実現する中心的システムソフトウェアであるため、その
処理はかなり複雑なものになっている。OSの規模にもよ
るが、一般的にいって、各々システムコールの処理に数
十ステップから数百ステップにも及ぶ。
また、一つの中央処理装置上で、各タスクの処理とOS
の処理が、共通のレジスタやその他のハードウェア資源
を利用するため、タスク毎のコンテキストを壊さないよ
うに、OS処理の最初と最後でコンテキストの退避、復帰
処理が必ず必要になる。この退避、復帰処理やディスパ
ッチング処理にも、数十ステップから数百ステップ要す
るのが普通となっている。
リアルタイムOSはその名の示す通り、数々の事象に対
して実時間で応答する必要があるが、現実には処理が複
雑であるためアプリケーションプログラムの要求を十分
満足するだけの性能が得られていないのが現状である。
リアルタイムOSの性能を評価する際によく問題となるの
がシステムコールのオーバヘッドであるが、これはシス
テムコールを発行してから再度タスクに制御が戻って来
る迄の時間をいう。前記例でシステムコールを発行し、
コンテキストの退避,復帰処理をした後、各システムコ
ールの処理を行ない、ディスパッチング処理を実行し、
タスクへ制御を戻すまでのステップを、仮に200ステッ
プ、中央処理装置の平均命令実行クロック数を10クロッ
ク、動作周波数を5MHzとすると平均オーバヘッドは、40
0μSECとなる。
この時間は、特にリアルタイム性が要求されるアプリ
ケーション分野では無視できない時間で、オーバヘッド
を低く抑えることがリアルタイムOSを設計する上での課
題となっている。
また、リアルタイムOSを利用したアプリケーションシ
ステムでは、数々の割り込みを契機として処理の流れを
変化させることがよく起こるため、割り込みに対する応
答性も良くする必要がある。しかし、マルチタスク処理
を制御するOSは、各タスクの状態を管理したり、優先順
位毎に実行可能状態のタスクを管理したりする共通のデ
ータ構造を操作するため、アクセスの競合が起こらない
ように、外部から非同期に発生する割り込みに対して、
ガードしなければならない部分も多く存在する。
以下、具体的に割り込みに対するガードがなかった場
合の誤動作の例を示す。第3図のシステムコールRECEIV
E−DATAで、INTの位置に割り込みが発生したとする。割
り込みINTにより起動される割り込み処理ルーチンを、
第5図に示す。割り込み処理ルーチンは、通常割り込み
不可状態で動作するため、簡単な処理をした後、ディス
パッチングを要求するシステムコールを発行する。
今、システムコールRECEIVE−DATAの処理中、INTの位
置に割み込みが発生した場合、システムコール発行タス
クはメールボックス待ちになろうとする処理の過程で、
タスクステータスは待ち状態となり、メールボックスに
対し、タスクの識別子が登録されている。制御が移った
割り込み処理ルーチンでは、簡単な処理の後、ディスパ
ッチング処理要求を発行する。OSのディスパッチング処
理では、レディキューを判定し、最も優先順位の高いタ
スクを選択するが、この時、割り込まれたシステムコー
ルRECEIVE−DATAを発行したタスクは、レディキューよ
り登録は削除されていない。従って、発行タスクはディ
スパッチング処理により再び選択され実行状態へと戻る
ことになる。実行が再開したタスクは、システムコール
RECEIVE−DATAの発行で、データが受信できたものと判
断し処理を継続するが、実際には受信されたデータへの
ポインタは不確定値となり、その後の動作は保証されな
い。
従って、本例のようなシステムコールの場合には、処
理の大部分に割り込みに対するカードをかける必要があ
る。
このカード部分が多ければ多いほど、システム全体の
安定性は向上するが、一方、割り込み応答性は低下す
る。この点も、リアルタイムOSを設計する上での難題と
なっている。
〔問題を解決するための手段〕
本発明のマルチタスク処理装置は、一つの中央処理装
置を用いて複数のタスクを処理するマルチタスク処理装
置において、マルチタスク処理を実行中に必要となるリ
アルタイムOSに対する処理要求を前記処理要求を示すオ
ペレーションコードと前記処理要求によって処理される
処理が必要とするパラメータを示すオペランドとから成
る前記処理要求の専用命令を用いて行い、かつ前記中央
処理装置は、前記専用命令の前記オペレーションコード
を解読する命令デコーダ部と、前記専用命令のオペラン
ドを格納するオペランド格納部と、前記命令デコーダ部
からの解読情報により起動され前記要求を実行するため
のオペレーションコードに対応するマイクロプログラム
を格納しているマイクロプログラムメモリと、前記複数
のタスクにそれぞれ対応して設けられた複数のレジスタ
バンクおよびタスク制御ブロックと、前記オペランド格
納部に格納された前記オペランドの情報と前記マイクロ
プログラムメモリからの選択信号により前記タスク制御
ブロックの選択信号を発生する選択信号発生部と、前記
処理要求を発行したタスクに対応する前記レジスタバン
クを認識するレジスタバンク管理部とを有し、前記レジ
スタバンク管理部からの信号と前記マイクロプログラム
メモリからの選択信号に基づき前記複数のレジスタバン
クの中の一つのレジスタバンクを選択する。
〔実施例1〕 次に、本発明の実施例について説明する。
第1図は、マルチタスク処理を行なうために必要な、
ハードウエア資源及びマイクロプログラムメモリを備え
たコンピュータの構成例で、中央処理装置1とメモリ2
によって構成される。
アドレス生成部3は、メモリアクセス時、オペレーシ
ョンコードのフェッチ時にメモリに対してアドレスを発
生する。命令バッファ4は、フェッチした命令を一時的
に蓄え、命令デコード部6によりオペレーションコード
は解読され、マイクロプログラムメモリ11へのエントリ
アドレスを発生する。マイクロプログラムアドレス発生
部7は、命令デコード部6から発生されるエントリアド
レスまたはマイクロプログラムメモリ11から発生される
アドレス情報を基に、次に実行されるべきマイクロプロ
グラムメモリ11へのアドレスを発生する。オペランド格
納部5は、システムコールのパラメータが、専用命令の
オペランドとして存在する場合、そのオペランドを格納
する。
レジスタバンク12は、プログラムが走行する上で必要
な汎用レジスタのセット、その他アドレスレジスタ、PS
Wの退避エリアなどを含み、複数のバンクで構成され
る。この複数のバンクは、複数のタスク一つ一つに対応
し、マイクロプログラムのディスパッチング処理で選択
されるまで、システムコール専用命令を発行した時点の
コンテキストを保持する。従って、一つの中央処理装置
上で各タスクの処理とOSの処理が資源を共有して動作し
ている場合に必要だったTCBへのコンテキストの退避、
復帰処理は必要なく、タスクを切り換える場合には、た
だバンクを切り換えればよいハードウェア構成となって
いる。
レジスタバンク管理部8は、ある時点で中央処理装置
がどのレジスタバンクを対象として動作しているかを示
す部分で、ディスパッチング処理で操作する。レジスタ
選択部9は、マイクロプログラムメモリ11からの選択信
号と、レジスタバンク管理部8からのバンク識別信号か
らレジスタを一意的に選択するための信号を発生する。
ALU14は演算部で、一時的なレジスタセットであるテ
ンポラリレジスタセット13を利用しながら演算処理を行
なう。PSW15は、演算の結果を反映するフラグ類を保持
する。
TCB16、レディキュー17、メールボックス18はマルチ
タスク処理を行なう上で特に必要となるハードウェア資
源で、TCB16は必要なタスク数分だけTCBを備え、各TCB
にはタスクステータス、タスクの優先順位などが格納さ
れる。レディキュー17は、優先順位の数だけ存在し、実
行可能状態であるタスクの識別子を保持する。メールボ
ックス18は、メールボックスの個数分存在し、各メール
ボックスの構成は、メールボックス待ちとなったタスク
の識別子と受信待ちとなったデータエリアへのポインタ
を管理する。また選択信号発生部10は、オペランド格納
部5に格納された情報と、マイクロプログラムメモリ11
からの信号を基に、TCB16、レディキュー17、メールボ
ックス18への選択信号を発生する。
割り込み要求保持部19は、外部から割り込み要求信号
20が発生した場合、絶えず要求が発生したことを記憶し
ておくためのレジスタである。
以下システムコール専用命令RECEIVE−DATAの処理を
説明する。
RECEIVE−DATAは、入力パラメータとしてメールボッ
クス番号、出力パラメータとして受信データへのポイン
タを有する。第9図にシステムコール専用命令の構成を
示している。入力パラメータのメールボックス番号は専
用命令のオペランドとしてオペレーションコードに続く
1バイトに格納されている。本例でのメールボックス番
号はメールボックスMBO−1を示すものとする。出力パ
ラメータとして受信データへのポインタは、レジスタRO
に格納されているものとする。命令バッファ4に格納さ
れた専用命令のオペレーションコード部は、命令デコー
ド部6で解読され、マイクロプログラムメモリへのエン
トリアドレスを発生する。一方オペランドとしてのメー
ルボックス番号は、オペランド格納部5に格納される。
RECEIVE−DATAのマイクロプログラム処理の最初で
は、オペランド格納部5に格納されたメールボックス番
号からMBO−1への選択信号を発生させ、MBO−1の状態
を判定する。受信データへのポインタが格納されていた
場合には、既に他のタスクよりデータが送信されてお
り、発行タスクはこのポインタを受け取る。レジスタバ
ンク管理部8より、その時システムコール専用命令を発
行したタスクに対応するレジスタバンクを指定し、その
バンクのレジスタROにデータのポインタを格納する。格
納した後、デイスパッチング処理に移る。ディスパッチ
ング処理では、レディキュー17の優先順位の最も高いPR
Oから判定し、タスクの識別子が存在した場合にはその
タスクを選択し制御を移す。選択されたタスクに対応す
るレジスタバンクが、その時点のレジスタバンクと異な
る場合には、レジスタバンク管理部8の情報を更新し、
レジスタバンクを切り替え、タスクに制御を移す。
メールボックスMBO−1に受信データへのポインタが
格納されていない時、発行タスクはメールボックス待ち
となる。選択信号発生部10は、レジスタバンク管理部8
の情報から、TCB16中の発行タスクに対応するTCBへの選
択信号を発生し、タスクステータスをメールボックス待
ち状態に修飾する。次にMBO−1に対し、発行タスクの
識別子を格納し、レディキュー17の発行タスクの優先順
位に対応する管理エリアからタスクの識別子の登録を削
除し、ディスパッチング処理に移る。
ディスパッチング処理の最後のマイクロプログラムで
は、割り込み要求保持部19に割り込み要求があったか否
かの判定を行ない、もし割り込み要求があった場合には
タスクに制御を戻さず、割り込み処理のマイクロプログ
ラムを起動する。
ALU14、テンポラリレジスタセット13は、処理の過程
で必要な時に、データの加工や一時的な保持に利用す
る。
以上説明したような方法で、リアルタイムOSに対する
システムコールを専用命令として実現することが可能と
なる。
〔実施例2〕 第6図は、第1図とほぼ同等の構成で、中央処理装置
1とメモリ2により構成されているが、TCBやメールボ
ールボックスなどのデータ構造は、ハードウエア化せず
外部メモリ上に展開されている例である。但し、ここで
は説明上メールボックスについては省略する。
アドレス生成部3、命令バッファ4、オペランド格納
部5、命令デコード部6、マイクロプログラムアドレス
発生部7、レジスタバンク管理部8、レジスタ選択部
9、マイクロプログラムメモリ11、レジスタバンク12、
テンポラリレジスタセット13、ALU14、PSW15、レディキ
ュー17、割り込み要求保持部19、割り込み要求信号20
は、実施例1と同等の機能を持つ。TCBは、特別なハー
ドウェア構成とはせず、外部メモリ上のデータ構造とし
て管理される。
制御ブロックアドレス生成部16は、マイクロプログラ
ムメモリ11からの指定と、オペランド格納部5の情報か
ら、メモリ上に展開されたTCBなどのデータ構造へのア
ドレスを生成する。
以上のハードウェア構成を用い、システムコール専用
命令START−TASK,SUSPEND−TASK,RESUME−TASKの動作説
明及び、発行タスクの制御の流れを示す。
第9図にシステムコール専用命令の構成を示してい
る。START−TASKとRESUME−TASKは、オペレーションコ
ードに読く1バイトにタスクの識別子が格納され、SUSP
END−TASKはオペランドなしの構成である。
第7図は、優先順位の低いタスクCと高いタスクDの
2タスクからなるマルチタスク処理の例で、初期状態は
タスクCが実行状態、タスクDは実行不可能状態にあ
る。タスクCは処理の過程で、タスクDを起動するシス
テムコール専用命令START−TASK#Dを発行する。この
専用命令は中央処理装置1に取り込まれ、命令バッファ
4を経て、命令デコード部6で解読される。命令デコー
ドによって、マイクロプログラムメモリ11への先頭アド
レスが生成され、マイクロプログラムが動作を開始す
る。
マイクロプログラムの最初の処理では、オペランド格
納部5に格納されたタスクの識別子#Dから、メモリ上
に構成されたタスクDに対応するTCBへのアドレスを生
成するために、制御ブロックアドレス生成部16を制御す
る。生成されたTCBへのアドレスは、アドレス生成部3
を経ることで実際の物理メモリ上のアドレスに変換さ
れ、メモリ上の目的のTCBをアクセスする。タスクDのT
CB中のタスクステータス、この段階では実行不可能状態
となっているが、これを実行可能状態に修飾する。次の
ステップでは、タスクDの優先順位を読み出し、レディ
キュー17の相当する優先順位のエリアに識別子を格納す
る。
その後のディスパッチング処理では、最も優先順位の
高いタスクを選択するが、この場合タスクCよりタスク
Dの方が優先順位が高いため、タスクDが選択される。
タスクDに対応したレジスタバンクが選択され、レジス
タバンク管理部8も更新されタスクDに制御が移され
る。
以上の処理により、制御がタスクCからタスクDへ移
ったことを第7図は示している。
第8図は、タスクを一時的に中断するシステムコール
専用命令(SUSPEND−TASKとタスクの中断状態を解除す
るシステムコール専用命令RBS−UME−TASKの例を示して
いる。
優先順位はタスクEの方が、タスクFより高く、初期
状態はタスクEが実行状態でタスクFが実行可能状態で
ある。タスクEは、一時的に中断すべくシステムコール
専用命令SUSPEND−TASKを発行する。前述と同様の過程
を経て、SUSPEND−TASKのマイクロプログラムが起動す
る。
先ず、現在動作中のタスクの識別子をレジスタバンク
管理部8から判断し、外部メモリ中のタスクEに対応す
るTCB中のタスクステータスを、実行状態から中断状態
にセットし、タスクEに対応するレディキュー17の優先
順位エリアから、タスクの識別子の登録を削除する。
ディスパッチング処理では実行可能状態のタスクの
内、最も優先順位の高いタスクを選択するため、タスク
Fが選択されタスクFに制御が移される。
タスクFの動作中、割り込みINT1が発生したとする
と、INT1に対応する割り込み処理ルーチンに制御が移
る。割り込み処理ルーチンINT1中で、システムコール専
用命含RESUMU−TASK#Eを発行し、タスクEの中断状態
を解除したとすると、RESUME−TASKのマイクロプログラ
ム処理では、タスクEに対応するTCB中のタスクステー
タスを中断状態から実行可能状態へ設定し、タスクEの
優先順位に相当する、レディキューのエリアにタスクE
のタスク識別子を登録した後、ディスパッチング処理を
実行するため、タスクEが選択され再度タスクEが実行
権を得る。
以上説明したように、OSが管理するデータ構造を外部
メモリ上に展開することでも、システムコールを専用命
令としてマイクロプログラムで実現することは可能で、
実施例1のようにOSが必要とするデータ構造を総て中央
処理装置内にハードウェアとして実現した場合に比べ
て、システムコール専用命令の実行速度は、外部バスサ
イクルを起動する分遅くなるが、その分ハードウェア資
源は削減される。
ハードウェアによる実現をどこまで行なうかは、シス
テム毎の用途に応じて適宣選択し設計することが可能で
ある。
〔発明の効果〕
前述したように本発明は、リアルタイムOSに対するシ
ステムコールを命令の組み合わせで実現せず、専用命令
として扱い、その処理を総てマイクロプログラムで実現
し、且つ専用命令実現のためのハードウェア手段を利用
することにより、システムコールの処理を高速化し、ま
たレジスタバンクなどの特殊なハードウェアを利用する
ことでメモリ空間上にコンテキストを退避、復帰する必
要がなく、従来問題となっていたシステムコールのオー
バヘッドを削減することができる。前述したように命令
の組み合わせでシステムコールを実現した場合の平均オ
ーバヘッドが400μSECに対して、マイクロプログラムで
システムコールの処理を行なった場合にもステップ数が
200ステップと仮定した場合、マイクロプログラムでは
1ステップが1クロックに相当するため、同一周波数で
40μSEC程度になる。実際には、マイクロプログラムで
はハードウエア資源に対して、1クロックで同時に複数
の処理が可能であるため、より少ないステップ数で実現
できると考えられ、殆どのアプリケーションシステムで
問題とならない程のオーバヘッドとなる。また専用命令
として1命令で実現していることで、割り込みに対して
のガード部分の設定などの配慮がいらず、リアルタイム
OSを設計する際に難しかった割り込み応答性に対する考
慮が必要なくなり、OS設計の面でも有効となると同時に
割り込み応答性も格段に向上する。
【図面の簡単な説明】
第1図は実施例1のブロック図である。 1……中央処理装置、2……メモリ、3……アドレス生
成部、4……命令バッファ、5……オペランド格納部、
6……命令デコード部、7……マイクロプログラムアド
レス生成部、8……レジスタバンク管理部、9……レジ
スタ選択部、10……選択信号発生部、11……マイクロプ
ログラムメモリ、12……レジスタバンク、13……テンポ
ラリレジスタセット、14……ALU、15……PSW、16……TC
B、17……レディキュー、18……メールボックス、19…
…割り込み要求保持部、20……割り込み要求信号、 第2図はマルチタスク処理でのデータ送受信に関するシ
ステムコール発行を示す流れ図、第3図はデータ送受信
システムコールの命令の組み合わせによるフローチャー
ト、第4図はマルチタスク処理における、各タスクの処
理の流れ図、第5図は割り込み処理ルーチンの流れ図、
第6図は実施例2のブロック図である。 1……中央処理装置、2……メモリ、3……アドレス生
成部、4……命令バッファ、5……オペランド格納部、
6……命令デコード部、7……マイクロプログラムアド
レス生成部、8……レジスタバンク管理部、9……レジ
スタ選択部、11……マイクロプログラムメモリ、12……
レジスタバンク、13……テンポラリレジスタセット、14
……ALU、15……PSW、16……制御ブロックアドレス生成
部、17……レディキュー、19……割り込み要求保持部、
20……割り込み要求信号、 第7図,第8図は、マルチタスク処理における、各タス
クの処理の流れ図、第9図は、システムコール専用命令
のフォーマット図である。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】一つの中央処理装置を用いて複数のタスク
    を処理するマルチタスク処理装置において、マルチタス
    ク処理を実行中に必要となるリアルタイムOSに対する処
    理要求を前記処理要求を示すオペレーションコードと前
    記処理要求によって処理される処理が必要とするパラメ
    ータを示すオペランドとから成る前記処理要求の専用命
    令を用いて行い、かつ前記中央処理装置は、前記専用命
    令の前記オペレーションコードを解読する命令デコーダ
    部と、前記専用命令のオペランドを格納するオペランド
    格納部と、前記命令デコーダ部からの解読情報により起
    動され前記要求を実行するためのオペレーションコード
    に対応するマイクロプログラムを格納しているマイクロ
    プログラムメモリと、前記複数のタスクにそれぞれ対応
    して設けられた複数のレジスタバンクおよびタスク制御
    ブロックと、前記オペランド格納部に格納された前記オ
    ペランドの情報と前記マイクロプログラムメモリからの
    選択信号により前記タスク制御ブロックの選択信号を発
    生する選択信号発生部と、前記処理要求を発行したタス
    クに対応する前記レジスタバンクを認識するレジスタバ
    ンク管理部とを有し、前記レジスタバンク管理部からの
    信号と前記マイクロプログラムメモリからの選択信号に
    基づき前記複数のレジスタバンクの中の一つのレジスタ
    バンクを選択することを特徴とするマルチタスク処理装
    置。
JP62093663A 1986-08-28 1987-04-15 マルチタスク処理装置 Expired - Fee Related JP2594557B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP62093663A JP2594557B2 (ja) 1987-04-15 1987-04-15 マルチタスク処理装置
EP87112565A EP0257655B1 (en) 1986-08-28 1987-08-28 Multitask processing apparatus
DE3750171T DE3750171T2 (de) 1986-08-28 1987-08-28 Multiaufgabenverarbeitungsgerät.
US07/517,402 US5148542A (en) 1986-08-28 1990-05-01 Multitask processing apparatus utilizing a central processing unit equipped with a micro-program memory which contains no software instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62093663A JP2594557B2 (ja) 1987-04-15 1987-04-15 マルチタスク処理装置

Publications (2)

Publication Number Publication Date
JPS63257833A JPS63257833A (ja) 1988-10-25
JP2594557B2 true JP2594557B2 (ja) 1997-03-26

Family

ID=14088633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62093663A Expired - Fee Related JP2594557B2 (ja) 1986-08-28 1987-04-15 マルチタスク処理装置

Country Status (1)

Country Link
JP (1) JP2594557B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52144242A (en) * 1976-05-27 1977-12-01 Mitsubishi Electric Corp Multi-task control system
JPS57768A (en) * 1980-06-04 1982-01-05 Hitachi Ltd Message transmission and reception system between processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
日経エレクトロニクス、1987年3月23日号、No.417 P.173−201

Also Published As

Publication number Publication date
JPS63257833A (ja) 1988-10-25

Similar Documents

Publication Publication Date Title
US11550627B2 (en) Hardware accelerated dynamic work creation on a graphics processing unit
EP1131739B1 (en) Batch-wise handling of job signals in a multiprocessing system
US8161453B2 (en) Method and apparatus for implementing task management of computer operations
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US6430593B1 (en) Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system
US20050015768A1 (en) System and method for providing hardware-assisted task scheduling
JPH06208552A (ja) スモール・グレイン機構
CN107729050B (zh) 基于let编程模型的实时系统及任务构建方法
CN112491426B (zh) 面向多核dsp的服务组件通信架构及任务调度、数据交互方法
JPS63310051A (ja) プログラム入出力命令を含む入出力プロセスの実行方法および装置
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
WO2024007934A1 (zh) 中断处理方法、电子设备和存储介质
EP0290942A2 (en) Guest machine execution control system for virtual machine system
JP2001282558A (ja) マルチオペレーティング計算機システム
JP3644042B2 (ja) マルチタスク処理装置
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
JP2594557B2 (ja) マルチタスク処理装置
WO2004061663A2 (en) System and method for providing hardware-assisted task scheduling
JP7054688B2 (ja) 同期制御システムおよび同期制御方法
CN110851239B (zh) 一种type-i型硬实时高可靠性全虚拟化方法
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
CN113439260A (zh) 针对低时延存储设备的i/o完成轮询
US11593159B2 (en) External exception handling

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees