JP2585905B2 - マルチタスク実行装置 - Google Patents

マルチタスク実行装置

Info

Publication number
JP2585905B2
JP2585905B2 JP3270587A JP27058791A JP2585905B2 JP 2585905 B2 JP2585905 B2 JP 2585905B2 JP 3270587 A JP3270587 A JP 3270587A JP 27058791 A JP27058791 A JP 27058791A JP 2585905 B2 JP2585905 B2 JP 2585905B2
Authority
JP
Japan
Prior art keywords
register
register bank
bank
empty
system call
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
JP3270587A
Other languages
English (en)
Other versions
JPH05108374A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3270587A priority Critical patent/JP2585905B2/ja
Publication of JPH05108374A publication Critical patent/JPH05108374A/ja
Application granted granted Critical
Publication of JP2585905B2 publication Critical patent/JP2585905B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチタスク実行中に
割込み・例外処理あるいはシステムコールが発生した場
合、ハードウェアによりスケジューリングを行ない、か
つコンテキストスイッチを高速に行うメモリ保護機能を
備えたマルチタスク実行装置に関するものである。
【0002】
【従来の技術】従来より、マルチタスク処理においてタ
スク実行中に割込み・例外処理あるいはシステムコール
が発生した場合、処理プログラムを実行するため、レジ
スタバンクを割り当てる。このとき、割り当てられるレ
ジスタバンクは特定のものであり、実行されるプログラ
ムが前処理だけであっても、プログラムの実行は必要で
あり、必らずオペレーティングシステム(以下OS)を
起動するためにレジスタバンクを割り当てていた。割込
み・例外処理は実行中のプログラムと非同期に発生する
ものであり、現在実行中のタスク群に新たに割込み・例
外処理タスクが加わるため、実行の際は前処理のため、
1つのレジスタバンクを解放する必要がある。
【0003】これに対し、システムコール処理は実行中
のプログラムと同期して発生するものであり、現在実行
中のタスクに関連してスケジューリングや入出力の制御
が行われるので、システムコールの処理内容は一連の処
理の一部分と考えることができる。したがって、システ
ムコールの場合、システムコールを発行したレジスタバ
ンクで継続してシステムコール処理を実行することによ
り、新たにレジスタバンクを割り当てる必要がないにも
かかわらず、一律一定のレジスタバンクによりシステム
コールの受理を行っていた。
【0004】このため一連のタスク処理において2つの
レジスタバンクを使用しており、また、割込み・例外処
理あるいはシステムコールを受理する際に実行するレジ
スタバンクに過去タスクを割り当てていたか否かという
判断なしに常にプログラム情報をメモリ空間(以下スタ
ックエリア)に待避をしていた。このため、コンテキス
トスイッチに時間を要していた。
【0005】また、割込み・例外処理では、処理優先レ
ベルがプログラム上で設定できるシステムが多くみら
れ、このため複数の割込み・例外処理が発生しても、あ
るいは複数のタスクが発生していても優先度の高い割込
み・例外処理から集中的に実行できるので、1つの割込
み・例外処理がCPUを独占し、早期に処理を実行する
手段が考えられている。ところがシステムコールの処理
内容は、ほとんどが他のタスクと並行実行可能な処理内
容であるにもかかわらず、システムコールの処理優先レ
ベルはシステムコール発行時点では判断できず、最初に
発生したシステムコールを再優先に受理する手段がとら
れており、システムコールの多重受理が不可能な構成と
なっている。
【0006】図5は従来のシステムコール・割込み発生
の場合のレジスタバンク割り当ての実施例を示した図で
ある。レジスタバンク0(図中ではレジスタバンクをバ
ンクという)は特権バンクであり、システム制御を実行
する特権プログラムが実行されるレジスタバンクであ
る。レジスタバンク1,2,3はアプリケーションプロ
グラムや特権プログラム実行により発生したユーザープ
ログラムを実行するレジスタバンクである。横軸(X
軸)は時間である。
【0007】ユーザー用レジスタバンク1においてシス
テムコールが発行され特権プログラムが実行される。こ
のとき、特権プログラムはレジスタバンク0により実行
されるので、レジスタバンク0で実行していたプログラ
ムのインストラクションポインタなどのプログラム情報
をスタック空間に待避する必要がある。レジスタバンク
0においてレジスタバンク1のシステムコール発行を受
けてプログラム情報の待避処理が行われた後、システム
コール処理が実行される。
【0008】次にレジスタバンク2においてシステムコ
ールが発行された場合、レジスタバンク1の場合と同様
にレジスタバンク0においてレジスタバンク2のシステ
ムコール発行を受けてプログラム情報の待避処理が行わ
れた後、システムコール処理が実行される。次にレジス
タバンク3でタスク実行中に割込みが発生した場合、レ
ジスタバンク0のプログラム情報を待避した後、レジス
タバンク0で割込み処理が実行される。
【0009】このように、システムコール処理・割込み
処理を実行する場合、特権用レジスタバンクの内容が常
に待避されてから処理が実行されるため、オーバーヘッ
ドが発生していた。特にレジスタバンクの内容を待避す
る場合、一般にすべてのレジスタの内容を待避するので
はなく、必要なレジスタのみを待避するので、どのレジ
スタが必要であるかを判断するソフト処理に時間を要し
ていた。
【0010】また、システムコールの場合、発行したレ
ジスタバンクはタスク実行待ち状態となり、システムコ
ール処理が実行されるまでは解放(動作)されないた
め、システムコールの内容によっては1つのレジスタバ
ンクで処理できるにもかかわらず、複数のバンクを必要
とするので、ハードウェア資源が必要となる。また、1
つのレジスタバンクで処理しようとした場合、タスク実
行待ちに対するソフト処理や、システムの特権/ユーザ
ー状態の切り替えが必要であり、特権タスクとユーザー
タスクのマルチタスク実行をする場合、ハードウェアの
対応がとれていないので、ソフト処理が膨大なものにな
っていた。
【0011】一方、メモリ保護機能の一番簡素な形態と
してユーザータスクを実行中であるユーザー状態とOS
を実行中である特権状態を持つシステムが従来より考え
られており、フラグによりユーザー状態か特権状態かを
切り替えが可能である。ところが、このフラグは従来シ
ステムではシステムに1つのみ設けてあり、ユーザータ
スクと特権タスクを並行して実行するためには、このフ
ラグを切り替える必要があり、ユーザータスクと特権タ
スクをマルチ処理することが困難であった。この問題を
解決するため、レジスタバンクを特権バンク用あるいは
ユーザーバンク用に振り分けてタスクを実行する手段も
考えられているが、特権タスクとユーザータスクの数は
固定ではなくシステムの応用性に乏しかった。
【0012】また、データメモリ空間の下限と上限を示
し、その領域外をアクセスした場合、アクセスを禁止
(主に書き込み)し、レジスタバンク間の保護機能を動
作させる領域設定用のメモリポインタの実装形態として
ユーザータスク用と特権タスク用に1組ずつ備えている
ものが考えられている。シングルタスクでプロシジャー
コールする場合、1組のポインタがあればメモリ保護機
能を動作させることができるが、独立した複数のタスク
を実行させる場合、データ領域はタスクに対応して変更
していく必要があり、コンテキストの際にポインタをそ
の都度変更するのは非常に困難であった。この問題を解
決するために各レジスタバンク毎に1組のポインタを備
える手段が考えられている。しかしながら、ユーザータ
スクと特権タスクが混在している場合ではユーザー状態
用と特権状態用で使用するデータ領域は異なるので、同
様にポインタを変更していく必要があり、ソフト処理が
複雑になっていた。
【0013】
【発明が解決しようとする課題】このような従来のマル
チタスク実行装置の構成では、割込み・例外処理あるい
はシステムコール処理の際、常にレジスタバンクやプロ
グラム情報のスタックエリアへの待避処理が存在してい
たため、(待避時間)≧(待避すべきレジスタ群)÷
(バス幅)×(マシンサイクル時間)が必要となり、コ
ンテキストスイッチに時間を要していた。またユーザー
タスクと特権タスクが混在した場合、メモリ保護機能を
動作させる場合、コンテキストスイッチの際常に領域設
定用ポインタの変更が必要であった。
【0014】本発明は上記問題を解決するもので、シス
テムコール・割込み・例外発生の場合、空きレジスタバ
ンクを有効に使用することによって、レジスタ待避によ
るオーバーヘッドを押え、コンテキストスイッチを高速
に実行できるマルチタスク実行装置を提供することを目
的とするものである。
【0015】
【課題を解決するための手段】上記課題を解決するため
に、本発明マルチタスク実行装置は、(1)実行中のレ
ジスタバンクがユーザ状態であるか、あるいは特権状態
であるかを示すフラグ(以下特権フラグ)を各レジスタ
バンクに備え、(2)システムコール・割込み・例外を
発行した場合、空きレジスタバンクが存在するときはそ
の空きレジスタバンクの特権フラグを特権状態にセット
し、かつ、その空きレジスタバンクでシステムコール・
割込み・例外を受理し、(3)システムコール発行の
際、空きレジスタバンクが存在しないときはシステムコ
ールを発行したレジスタバンクの特権フラグを特権状態
にセットし、かつ、システムコールを発行したレジスタ
バンクでシステムコールを受理し、(4)割込み・例外
発生の際空きレジスタバンクが存在しないときは特定の
レジスタバンクの特権フラグを特権状態にセットし、か
つ、その特定のレジスタバンクで割込み・例外を受理
し、さらに、(5)特権フラグの切り替えと同時に各レ
ジスタバンクがユーザー状態/特権状態で使用できるデ
ータRAM空間を変更できるようにし、以上の機能をハ
ードウェアで実現したものである。
【0016】
【作用】この構成により、マルチタスク処理実行におい
て、システムコール・割込み・例外処理時に発生するオ
ーバーヘッドを最小限に押さえることができ、また、メ
モリ保護機能を動作させることができる。
【0017】
【実施例】以下本発明の一実施例について図面を参照し
ながら説明する。図1は本発明の一実施例のマルチタス
ク実行装置の構成を示したブロック図である。図1にお
いて、レジスタファイル1はレジスタバンク0〜7の8
枚から構成され、各レジスタバンクに対応するデータR
AM16上のスタック空間のポインタを示すスタックポイ
ンタ2が用意されている。また、各レジスタバンクに対
応して現在実行中のタスク(プログラム)が特権タスク
であるかユーザータスクであるかを示す特権フラグ3が
用意されている。レジスタファイル1、スタックポイン
タ2、特権フラグ3はバス4に接続されプログラムによ
りアクセス可能である。
【0018】ROM5の情報がマイクロROM6(以下
μROM)で解読実行されシステムコール命令であった
場合、他方を割込み・例外入力7とするOR回路8に入
力される。OR回路8は割込み・例外発生があった場
合、あるいはシステムコールがあった場合にアクティブ
となり、出力信号はビットサーチ回路9と特権フラグ3
に入力される。OR回路8の出力信号が特権フラグ3に
入力されると、現在実行中のタスクを示す実行中バンク
レジスタ11に対応する特権フラグ3が“1”にセットさ
れ、特権状態となる。
【0019】スケジュールバンクレジスタ10はレジスタ
ファイル1のどのレジスタバンクを使ってタスクを実行
するかを決定するレジスタであり、特権プログラムによ
り前もってどのレジスタバンクを使用してタスク群(図
示せず)を処理するかを登録しておく。スケジュールバ
ンクレジスタ10の各ビットはレジスタファイル1の各レ
ジスタバンクに対応しており、実行するレジスタバンク
に対応するビットに“1”がセットされている。ビット
サーチ回路9によりスケジュールバンクレジスタ10に
“0”にクリアされたビットが検索される。検索された
レジスタバンク番号は実行中バンクレジスタ11に書き込
まれる。
【0020】また、OSによりタスクスケジューリング
する場合、実行中バンクレジスタ11の内容を変更するこ
とにより、使用するレジスタバンクの選択ができる。ビ
ットサーチ回路9による検索動作は実行中バンクレジス
タ11で示される現在実行中のレジスタバンクから検索が
開始され(図示せず)、ビットサーチ回路9で検索され
た結果と実行中バンクレジスタ11の内容が一致した場
合、排他的NOR12により検出される。排他的NOR12
がアクティブになる場合は、空きレジスタバンクが存在
しないときである。
【0021】遅延回路13によりビットサーチ回路9の検
出動作後にタイミング調整された信号はμROM6とA
ND回路15に入力される。μROM6は遅延回路13の出
力を受け、すなわち、システムコール・割込み・例外が
発生した場合、空きレジスタバンクが存在しないとき
は、μROM6によりプログラム情報のスタック空間へ
の待避処理が実行される。待避処理が実行されるレジス
タバンクは実行中バンクレジスタ11で示される。
【0022】一方、割込み・例外入力7は遅延回路14に
入力され、遅延回路13の出力タイミングと同期がとら
れ、AND回路15に入力される。AND回路15では割込
み発生時に空きレジスタバンクが存在しなかったときに
アクティブになり、実行中バンクレジスタ11の内容のリ
セットとして使われる。
【0023】以上の構成によりシステムコール・割込み
・例外処理が発生し、かつ空きレジスタバンクが存在す
る場合、ビットサーチ回路9で検出したレジスタバンク
で待避処理なしに処理プログラムが実行され、空きレジ
スタバンクが存在しない場合、システムコールのときは
システムコールを発行したレジスタバンクで、割込み・
例外処理が発生した場合は特定のレジスタバンクで処理
プログラムが実行される。
【0024】このように、空きレジスタバンクが存在す
る場合、スタック空間への待避処理が存在せず、オーバ
ーヘッドを最小限に押さえることができる。また、空き
レジスタバンクが存在しない場合、システムコールのと
きは、システムコールをは発行したレジスタバンクでシ
ステムコールが受理されるため、他のタスクを停止して
処理する必要がなく、また、割込み・例外処理では特定
のレジスタバンクで処理が実行されるので、リセット始
動時に実行するレジスタバンクをこの特定レジスタバン
クにしておくことで、再スタート処理が必要な場合タス
ク管理が容易になる。また特権フラグを各レジスタファ
イルに設けることで複数の特権タスクあるいはユーザー
タスクあるいは両方のタスクが混在しても実行可能であ
り、システム設計に柔軟性が生まれる。
【0025】図2は本発明の一実施例のマチルタスク実
行装置のレジスタバンク割り当てを示した図である。ユ
ーザータスクとしてレジスタバンク0,1,2,3を使
用している場合である。ユーザータスクとしてレジスタ
バンク0〜3を使用している場合、空きレジスタバンク
としてレジスタバンク4,5,6,7がある。レジスタ
バンク1(図中ではバンク1)においてシステムコール
を発行した場合、レジスタバンク0,1,2,3をタス
ク割り当てしているのでレジスタバンク4をシステムコ
ール処理バンクとして選択する。このときレジスタバン
ク4は過去にタスクが実行されていなかったので待避す
るべきプログラム情報はなく、スタック空間への待避動
作なしでシステムコール処理を実行する。
【0026】レジスタバンク2でのシステムコール発行
も同様にレジスタバンク4がその処理バンクとして選択
され、スタック空間への待避動作なしでシステムコール
処理を実行する。レジスタバンク3においてタスク実行
中に割込みが発生した場合も空きバンクであるレジスタ
バンク4に割込み処理が割り当てられ、待避処理なしで
レジスタバンク4で割込み処理が実行される。
【0027】本実施例ではレジスタバンク4において、
システムコール処理あるいは割込み・例外処理実行でそ
の処理タスクが完結実行された場合を示しており、レジ
スタバンク4に処理タスクが継続実行される場合には、
多重で発生したシステムコール・割込み・例外処理は空
きバンクであるレジスタバンク5で実行される。システ
ムコールあるいは割込み・例外処理が発生した場合に特
権フラグが特権モードにセットされ、特権プログラムが
実行される環境にハードウェアにより設定される。
【0028】図3は本発明の他の実施例のマルチタスク
実行装置のレジスタバンク割り当てを示した図である。
ユーザータスクとしてレジスタバンク0〜7を使用して
いる場合、空きレジスタバンクは存在しない。レジスタ
バンク1(図中ではバンク1)においてシステムコール
を発行した場合、空きレジスタバンクは存在しないので
システムコールを発行したレジスタバンク1をシステム
コール処理バンクとして選択する。このときレジスタバ
ンク1のプログラム情報を、スタック空間への待避した
後、システムコール処理を実行する。レジスタバンク2
でのシステムコール発行も同様にレジスタバンク2がそ
の処理バンクとして選択され、スタック空間への待避後
システムコール処理を実行する。
【0029】このように、待避動作が存在するが、シス
テムコール発行と無関係なレジスタバンクのタスクを中
断しプログラム情報を待避するという動作はなくなり、
ソフトウェアによるスケジューリングも簡素化する。
【0030】レジスタバンク3においてタスク実行中に
割込みが発生した場合は空きバンクが存在しないのでレ
ジスタバンク0に割込み処理が割り当てられ、待避処理
後レジスタバンク0で割込み処理が実行される。
【0031】本実施例では割込み動作が存在し、プログ
ラム情報待避によるオーバーヘッドが存在するがどのタ
スクを中断して新たにシステムコール・割込み・例外処
理タスクを実行するかというタスク優先度判断などのソ
フトウェア処理が不要となるので、処理が簡素化されリ
アルタイム処理が可能となる。
【0032】図4は本発明の一実施例のマルチタスク実
行装置のメモリ保護機能を示したブロック図である。レ
ジスタバンク0(図示せず)に対応するレジスタバンク
0用メモリ領域上限レジスタ(以下バンク0領域上限レ
ジスタという)18、レジスタバンク0用メモリ領域下限
レジスタ(以下バンク0領域下限レジスタという)19は
ユーザータスクがレジスタバンク0を用いてプログラム
実行する場合に使用するデータRAM17の上限アドレス
と下限アドレスをそれぞれ示すアドレスポインタレジス
タであり、レジスタバンク0をユーザー状態で使用して
いるときにプログラムが上限アドレスと下限アドレスの
範囲を越えて書き込みメモリアクセスした場合にエラー
となる。バンク0領域上限レジスタ18、バンク0領域下
限レジスタ19はプログラムにより任意の値に設定可能で
ある。
【0033】現在プログラム実行中の状態として特権状
態かあるいはユーザー状態かを示す特権フラグ20が
“0”でユーザー状態のときに現在実行中のレジスタバ
ンク番号を示す実行中バンクレジスタ21が“000”で
レジスタバンク0を示す場合にAND回路22によりバン
ク0領域上限レジスタ18、バンク0領域下限レジスタ19
が選択されメモリ保護部23により書き込みメモリアクセ
スの際のチェック動作が実行される。
【0034】メモリ保護部23にはシステム上のデータR
AM領域の上限アドレス24、システム上のデータRAM
領域の下限アドレス25、各レジスタバンクの領域設定レ
ジスタのマルチプレクサ値26(バンク0領域上限レジス
タ18、バンク0領域下限レジスタ19などの実行レジスタ
バンクの値、後述)、特権フラグ20の値27、書き込みメ
モリアクセス信号(図示せず)が入力され、領域判定が
実行される。特権フラグ20が“1”で特権状態のときは
実行しているレジスタバンクに関係なくメモリ保護部23
は動作せずデータRAM17全領域が書き込みメモリアク
セス可能となる。
【0035】レジスタバンク1用のバンク1領域上限レ
ジスタ28とバンク1領域下限レジスタ29、レジスタバン
ク2用のバンク2領域上限レジスタ30とバンク2領域下
限レジスタ31、レジスタバンク3用のバンク3領域上限
レジスタ32とバンク3領域下限レジスタ33、レジスタバ
ンク4用のバンク4領域上限レジスタ34とバンク4領域
下限レジスタ35、レジスタバンク5用のバンク5領域上
限レジスタ36とバンク5領域下限レジスタ37、レジスタ
バンク6用のバンク6領域上限レジスタ38とバンク7領
域下限レジスタ39、レジスタバンク7用のバンク7領域
上限レジスタ40とバンク7領域下限レジスタ41が用意さ
れており、バンク0領域上限レジスタ18、バンク0領域
下限レジスタ19と動作仕様は同じである。特権フラグ20
に対応して使用可能な領域を特権用とユーザー用とにレ
ジスタバンク毎に切り替えることで各プログラムの使用
するデータRAMに対し保護をかけることができ、ユー
ザープログラムによるユーザーデータや特権データの破
壊を容易に回避することができる。
【0036】
【発明の効果】以上のように、本発明によれば、マルチ
タスク処理実行において空きレジスタバンクでシステム
コール・割込み・例外処理プログラム実行することがで
き、オーバーヘッドを最小限に押さえることができる。
また、空きレジスタバンクがない場合でも現在実行中の
プログラム実行のスループットを低下させずにプログラ
ラムを実行することができる。さらに、各プログラムが
実行するデータRAM領域を保護することができ、特に
フラグの切り替えにより特権タスクのメモリ領域とユー
ザータスク領域の変更ができることから高品質かつリア
ルタイム性に優れたシステムを実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施例のマルチタスク実行装置の構
成を示したブロック図である。
【図2】本発明の一実施例のマルチタスク実行装置にお
いて空きレジスタバンクが存在するときのレジスタバン
ク割り当てを示した図である。
【図3】本発明の一実施例のマルチタスク実行装置にお
いて空きレジスタバンクが存在しないときのレジスタバ
ンク割り当てを示した図である。
【図4】本発明の一実施例のマルチタスク実行装置にお
けるメモリ保護機能を示したブロック図である。
【図5】従来のシステムコール・割込み発生の場合のレ
ジスタバンク割り当て実施例を示した図である。
【符号の説明】
1 レジスタファイル 2 スタックポインタ 3,20 特権フラグ 5 ROM 6 マイクロROM 7 割込み・例外入力 9 ビットサーチ回路 10 スケジュールバンクレジスタ 11,21 実行中バンクレジスタ 13,14 遅延回路 16,17 データRAM 18 レジスタバンク0用メモリ領域上限レジスタ 19 レジスタバンク0用メモリ領域下限レジスタ 23 メモリ保護部 24 システム上のデータRAM領域の上限アドレ
ス 25 システム上のデータRAM領域の下限アドレ
ス 26 レジスタバンクの領域設定レジスタのマルチ
プレクサ値 27 特権フラグ20の値 28,30,32,34,36,38,40 各レジスタバンクの用メ
モリ領域上限レジスタ 29,31,33,35,37,39,41 各レジスタバンクの用メ
モリ領域下限レジスタ

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のレジスタバンクから構成され、か
    つ、ユーザー状態と特権状態の2レベルのメモリ保護機
    能を持ち、CPUは前記複数のレジスタバンクの1つを
    選択しプログラムを実行し、実行中の前記レジスタバン
    クがユーザー状態であるか、あるいは特権状態であるか
    を示すフラグを前記レジスタバンクのそれぞれに対応し
    て持ち、 システムコール発行時に、 (1)空きレジスタバンクが存在するときは前記空きレ
    ジスタバンクの前記フラグを特権状態にセットし、か
    つ、スタックエリアへの待避処理を実行せずに前記空き
    レジスタバンクでシステムコールを受理し、 (2)空きレジスタバンクが存在しないときはシステム
    コールを発行した前記レジスタバンクの前記フラグを特
    権状態にセットし、かつ、スタックエリアへの待避処理
    を実行した後、前記システムコールを発行したレジスタ
    バンクでシステムコールを受理する第1の手段と、 割込み・例外発生時に、 (3)空きレジスタバンクが存在するときは前記空きレ
    ジスタバンクの前記フラグを特権状態にセットし、か
    つ、スタックエリアへの待避処理を実行せずに前記空き
    レジスタバンクで割込み・例外処理を受理し、 (4)空きレジスタバンクが存在しないときは特定の前
    記レジスタバンクの前記フラグを特権状態にセットし、
    かつ、スタックエリアへの待避処理を実行した後、前記
    特定のレジスタバンクで割込み・例外処理を受理する第
    2の手段と、 を備えたことを特徴とするマルチタスク実行装置。
  2. 【請求項2】 複数のレジスタバンクから構成され、か
    つ、ユーザー状態と特権状態の2レベルのメモリ保護機
    能を持ち、CPUは前記複数のレジスタバンクの1つを
    選択しプログラムを実行し、実行中の前記レジスタバン
    クがユーザー状態であるか、あるいは特権状態であるか
    を示すフラグを前記レジスタバンクのそれぞれに対応し
    て持ち、 システムコール発行時に、 (1)空きレジスタバンクが存在するときは前記空きレ
    ジスタバンクの前記フラグを特権状態にセットし、か
    つ、スタックエリアへの待避処理を実行せずに前記空き
    レジスタバンクでシステムコールを受理し、 (2)空きレジスタバンクが存在しないときはシステム
    コールを発行した前記レジスタバンクの前記フラグを特
    権状態にセットし、かつ、スタックエリアへの待避処理
    を実行した後、前記システムコールを発行したレジスタ
    バンクでシステムコールを受理する第1の手段と、 割込み・例外発生時に、 (3)空きレジスタバンクが存在するときは前記空きレ
    ジスタバンクの前記フラグを特権状態にセットし、か
    つ、スタックエリアへの待避処理を実行せずに前記空き
    レジスタバンクで割込み・例外処理を受理し、 (4)空きレジスタバンクが存在しないときは特定の前
    記レジスタバンクの前記フラグを特権状態にセットし、
    かつ、スタックエリアへの待避処理を実行した後、前記
    特定のレジスタバンクで割込み・例外処理を受理する第
    2の手段と、 前記レジスタバンクのそれぞれにスタックポインタと、 スタックエリアに待避処理をする場合、割込み・例外処
    理、システムコールあるいはプロシジャーコールを実行
    するレジスタバンクに対応するスタックポインタを使用
    して前記待避処理を実行する第3の手段と、 を備えたことを特徴とするマルチタスク実行装置。
  3. 【請求項3】 複数のレジスタバンクから構成され、か
    つ、ユーザー状態と特権状態の2レベルのメモリ保護機
    能を持ち、CPUは前記複数のレジスタバンクの1つを
    選択しプログラムを実行し、実行中の前記レジスタバン
    クがユーザー状態であるか、あるいは特権状態であるか
    を示すフラグを前記レジスタバンクのそれぞれに対応し
    て持ち、それぞれのレジスタバンクを実行中に使用する
    データRAM空間の範囲を示す領域設定のポインタとし
    て前記データRAM空間の下限と上限を示す2本のポイ
    ンタを各レジスタバンク毎に備え、ユーザー状態の場
    合、実行中のレジスタバンクに対応する前記2本のポイ
    ンタを用いてメモリ保護を実行する第1の手段と、特権
    状態のときは実行しているレジスタバンクに関係なく前
    記データRAM空間全領域の範囲を使用可能な第2の手
    段を備え、前記レジスタファイル毎に設定した前記フラ
    グにより使用する前記データRAM空間を変更可能にし
    たことを特徴とする請求項1に記載のマルチタスク実行
    装置。
JP3270587A 1991-10-18 1991-10-18 マルチタスク実行装置 Expired - Fee Related JP2585905B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3270587A JP2585905B2 (ja) 1991-10-18 1991-10-18 マルチタスク実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3270587A JP2585905B2 (ja) 1991-10-18 1991-10-18 マルチタスク実行装置

Publications (2)

Publication Number Publication Date
JPH05108374A JPH05108374A (ja) 1993-04-30
JP2585905B2 true JP2585905B2 (ja) 1997-02-26

Family

ID=17488201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3270587A Expired - Fee Related JP2585905B2 (ja) 1991-10-18 1991-10-18 マルチタスク実行装置

Country Status (1)

Country Link
JP (1) JP2585905B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
JP2006039874A (ja) * 2004-07-26 2006-02-09 Fujitsu Ltd 情報処理装置
JP6081300B2 (ja) * 2013-06-18 2017-02-15 株式会社東芝 情報処理装置及びプログラム

Also Published As

Publication number Publication date
JPH05108374A (ja) 1993-04-30

Similar Documents

Publication Publication Date Title
JP3776449B2 (ja) マルチタスク低電力制御装置
US5506975A (en) Virtual machine I/O interrupt control method compares number of pending I/O interrupt conditions for non-running virtual machines with predetermined number
US5095427A (en) Dispatch control of virtual machine
US5148544A (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
JP3970609B2 (ja) プロセッサシステム
JP2585905B2 (ja) マルチタスク実行装置
AU626067B2 (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
JPS6097440A (ja) 仮想多重プロセツサ装置
KR100294314B1 (ko) 데이터처리시스템및방법과그런시스템과의통신시스템
JP2579008B2 (ja) 時分割マルチタスク実行装置
JPS603229B2 (ja) 情報処理方式
JPS6314241A (ja) メモリ拡張方式
JPH03188530A (ja) プログラム先取り装置
JP2001229038A (ja) マルチオペレーテング計算機システム
JPH0944438A (ja) 同期タイプ入出力命令の多重処理方法
RU1777147C (ru) Мультипрограммное вычислительное устройство
JPH0683640A (ja) 割込応答処理方式
JPH0535507A (ja) 中央処理装置
JP3591883B2 (ja) 計算機及びそのシステム及びその制御方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JP2001134449A (ja) データ処理装置とその制御方法
JPH03179532A (ja) コンピュータ装置
JPH06242975A (ja) 多重情報処理システムの仮想計算機ディスパッチ方式
JPH0444131A (ja) 複数os走行システムにおけるプロセッサ間通信の実行装置および方法
JPH0375832A (ja) 仮想計算機制御方式

Legal Events

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