JPH0756633B2 - タスク切換え方式 - Google Patents

タスク切換え方式

Info

Publication number
JPH0756633B2
JPH0756633B2 JP60294312A JP29431285A JPH0756633B2 JP H0756633 B2 JPH0756633 B2 JP H0756633B2 JP 60294312 A JP60294312 A JP 60294312A JP 29431285 A JP29431285 A JP 29431285A JP H0756633 B2 JPH0756633 B2 JP H0756633B2
Authority
JP
Japan
Prior art keywords
task
bank
priority
banks
storage
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
JP60294312A
Other languages
English (en)
Other versions
JPS62151942A (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 JP60294312A priority Critical patent/JPH0756633B2/ja
Publication of JPS62151942A publication Critical patent/JPS62151942A/ja
Publication of JPH0756633B2 publication Critical patent/JPH0756633B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 (a) 発明の技術分野 本発明は、プログラムを細かいタスクに分割し時分割に
該タスクを中央処理装置(以下CPU)に割り当て多重に
処理を行う方式(以下マルチタスキング)におけるタス
ク切換え(以下タスクスイッチ)に関するものである。
(b)従来技術の問題点 マルチタスキングの実現は、通常オペレーティングシス
テム(以下OS)の中心となる機能(以下核)により行な
われる。OSの核はCPUに対する内外の割込み信号やタス
クからOSの機能を利用する手段(以下システムコール)
により起動されその機能をはたす。第1図はOSの核の構
成を示したもので、処理手順として中断処理部,内部処
理部,ディスパッチ部の順に行なわれることを示してい
る。マルチタスキングでは、タスクスイッチングが起こ
るたびに切り換った時点の状態を退避し次にOSにより選
択され実行再開された時切換った時点の状態から再実行
することが必要である。前記中断処理部は切り換り時点
の状態を退避するための処理である。切り換り時点で退
避しなければならない状態としては、命令の実行手段を
示すカウンタ(以下PC),データレジスタ,プログラム
状態語(以下PSW)などがあり,これらの状態は各タス
ク毎に割り当てられた退避領域(以下TCB)内に格納さ
れる。内部処理部では各割込みまたは各システムコール
に対応したそれぞれの処理を行う、ディスパッチ部は、
OSの核の処理として最後に位置し、次に実行されるべき
タスクを選択し該タスクに制御を渡す。各タスクは実行
の順序を規定するための優先順位(以下プライオリテ
ィ)を持ち、ディスパッチ部はプライオリティの最も高
いタスクを選択し、該タスクのTCBからPC,データレジス
タ,PSWなどの状態を復帰し該タスクに制御を渡す。この
様にCPUを時分割でマルチタスキングを実現するシステ
ムでは、OSの核の中断処理部における状態の退避とディ
スパッチ部における状態の復帰は必要不可欠の処理でタ
スクスイッチ時には必らず実行される。システム全体か
ら見た場合、状態の退避及び復帰に要する時間は無駄で
あり従来の方式によるマルチタスキングでは、タスクス
イッチ時に要する時間には必らず状態の退避及び復帰に
要する無駄時間が付加されるという欠点を有していた。
(c) 発明の目的 本発明の目的は、前記PC,データレジスタ,PSWなどのタ
スクスイッチ時に退避しなければならない状態をCPU実
行中絶えず保持しておく手段(以下レジスタバンク)を
複数個備え且つレジスタバンクを切り換える手段を有し
プライオリティの高いタスクがレジスタバンクを湯先的
に利用することにより、タスクスイッチング時の状態の
退避と復帰を極力省略し、該状態の退避と復帰に要する
時間の無駄を削減し、システム全体の性能を向上させる
ことにある。
(d) 発明の構成 本発明はマルチタスキングでのタスクスイッチの処理に
おいて、レジスタバンクを複数個備え、該レジスタバン
クを切換えることにより前記タスクに制御を渡す手段を
有している処理装置において、前記タスクが前記保持手
段を利用しているか否かを識別する手段を備え、前記タ
スクの優先順位に基づき優先順位の高いタスクが優先的
に前記保持手段を利用し、且つ該保持手段を利用してい
るタスクのうち最低優先順位をもつタスクと該タスクが
利用している前記保持手段を検知する手段を備えている
ことを特徴としている。
(e) 発明の実施例 第2図は本発明によるシステム構成図で、CPU1とプログ
ラムメモリ2とデータメモリ3からなる。TCB4はタスク
の個数だけ存在しデータメモリ中に割り当てられる。プ
ログラムメモリ2はOSの核とタスクのコードを含む。レ
ジスタバンク(以下単にバンク)5はCPU1に含まれ複数
個存在し、該複数個存在するバンクの内、いずれか1つ
のバンクがCPUの実行状態を保持している。第3図は前
記TCBの構成を示した図で、対応するタスクがバンクを
利用しているか否かを示すフラグUF,バンクを利用して
いた場合の該バンク番号BNK No.,対応するタスク番号TA
SK No.、該タスクに与えられたプライオリティPRIORIT
Y、その他OSの核がマルチタスキングを実現する上で必
要となる情報MI及びタスクスイッチ時に退避しなければ
ならない状態の退避エリアとしてアキュムレータAC,デ
ータレジスタD0〜Du,PSW,PCを含んでいる。第4図はバ
ンクの構成例であり、アキュムレータAC,データレジス
タD0〜Du,PSW,PCを含み、前記第3図TCBの退避エリアと
対応しており、タスクスイッチ時退避しなければならな
い状態を総て含んでいる。
第5図はバンクが4個ある場合のバンク切換え方式の例
で状態保持エリア1は第4図で示したバンクを4個含ん
でいる。書込み用バス2は状態保持エリア1の任意のバ
ンク内の任意のレジスタの書込みデータ用バスで読出し
用バス3は、状態保持エリア1の任意のバンク内の任意
のレジスタからの読出しデータ用バスである。書き込み
許可信号4は、任意のレジスタへ書き込みを許可するた
めの信号で、読み出し許可信号5は、任意のレジスタか
らの読み出しを許可するための信号である。バンク切換
え制御レジスタ6は、バンク切換え命令によって操作さ
れるレジスタで本例の場合4個のバンクの内それか1つ
を選択するためのレジスタである。レジスタ選択許可信
号9は、バンク内レジスタ選択器8を有効にするか無効
にするかの信号で、パンク内レジスタ選択器8は1つの
バンク内でどのレジスタを選択するかの選択信号7に基
づき、前記レジスタ選択許可信号9が発生されている時
だけバンク内の各レジスタを選択するための信号を発生
する。バンク切換え時の動作では前記バンク切換え命令
により、前記バンク切換え制御レジスタ6が書きかわ
り、書きかわることにより選択バンクも変更され、変更
後の該選択バンクのPCに制御が移り、該PCより実行が再
開される。バンクを複数個持たない処理装置で、マルチ
タスキングを実現する場合、第1図に示したように、タ
スクスイッチ時状態の退避と状態の復帰を必らず行う必
要があったが、本実施例のようにバンクを複数個持って
いる処理装置においてはタスク走行時の状態を保持する
手段が複数個あることと等価であり、状態の退避と復帰
動作を実行せずしてタスクスイッチを実現することが可
能である。バンクがタスク数分だけ存在すればタスクス
イッチ時の状態の退避と復帰を行う必要はないが、実際
にタスク数分だけバンクを持つことは現実的でなく、通
常タスク数に対してバンクの数は少なく限定される。マ
ルチタスキングでタスクスイッチを行う場合通常タスク
の持つプライオリティを基準として行なわれ、プライオ
リティの高いタスクが優先的に選択され実行権を得る。
従って、プライオリティの高いタスクの状態がバンクを
優先的に占めることでタスクスイッチ時の状態の退避と
復帰の回数をおさえ、退避と復帰に要していた時間を削
減することができシステム全体の処理能力の向上を図る
ことが可能となる。本発明はプライオリティの高いタス
クに優先的にバンク利用権を与え、状態の退避と復帰の
回数を最も少なくするためのアルゴリズムを提供するも
のである。第6図はバンクとバンクを利用しているタス
クの対応を示すデータ構造(以下BT)と該BTの中で最低
プライオリティのタスクを持つバンクに関する情報を有
するデータ構造(以下LPT)からなる。該BT及び該LPTも
前記第2図のデータメモリ3に割り付けられている。前
記BTはバンクの数がn個存在した場合n個の要素からな
る構造で、各要素は対応するバンクを利用しているタス
クのタスク信号とタスクのプライオリティを保持してい
る。タスク番号はタスク毎に一意に与えられている番号
で前記第3図TCB中のATSK No.で示されるエリアに格納
されてる。また前記LPTは、前記BTの中で最もプライオ
リティの低いタスクの情報が保持されているバンクのバ
ンク番号が若しくはどのタスクも利用されていないバン
クのバンク番号と、前記最低プライオリティを有したタ
スクのプライオリティとバンクが総てタスクに専有され
ているか否かの情報FFLGを保持している。FFLGはONの時
バンクを総てタスクが利用しており、OFFの時まだ空き
バンクが存在していることを示している。第7図は本発
明における各タスクに制御を渡す場合の処理アルゴリズ
ムで前記ディスパッチ部でその時点で最も高いプライオ
リティのタスクを選択した後、該タスク(以下選択タス
ク)に制御を渡す処理を示している。本処理の最初では
選択タスクのTCBを参照し、TCB中のUFがONならば、TCB
中のBANK No.で示されるバンクにバンク切換え命令を実
行することで制御を渡す。UFがOFFの時は、前記LPT中の
FFLGを参照し、FFLGがOFFの時はまだバンクが総て専有
されていないため、選択タスクのTCB中の退避エリアの
状態を前記LPTのバンク番号で示されるバンクに復帰す
る。バンクが総て専有されていない時LPTのバンク番号
は空きバンクのバンク番号であるためTCBの退避エリア
の状態を即復帰させることが出来る。次に前記処理によ
り専有されたバンクのバンク番号がnでない時、前記処
理によりバンクが専有されても全バンクはまだ使用され
ていないため、該バンク番号を1つ増加した値を新バン
ク番号としてLPTのバンク番号とし選択タスクのUFをON
としバンク切換え命令を実行し選択タスクに制御を渡
す。LPTのバンク番号がnの時、前記処理によりバンク
が総て専有されたため、BTをサーチし最低プライオリテ
ィのタスクが占めているバンクの番号を得てLPTに該バ
ンク番号と該最低プライオリティを格納しFFLGをONにす
る。その後選択タスクのUFをONとしバンク切換命令を実
行し選択タスクに制御を渡す。次にLPTのFFLGがONであ
った場合、この時は総てのバンクがタスクにより専有さ
れており、この場合のLPT中のバンク番号は最もプライ
オリティが低いタスクが占めているバンクのバンク番号
であり、該バンク番号で示されるバンクの情報をBT内で
該バンク番号が対応する要素内のタスク番号で示される
タスクのTCB中の退避エリアに退避した後、UFをOFFとす
る。UFをOFFとすることで該タスクはバンクを利用して
いないことになる。その後、選択タスクのTCB中と退避
エリアの情報を前記バンクに復帰する。次に選択タスク
のプライオリティとLPT内のプライオリティを比較す
る。
は選択タスクのプライオリティがLPT内のプライオリテ
ィ以上であることを示している。
は選択タスクのプライオリティがLPT内のプライオリテ
ィより低いことを示している。この時点のLPTのプライ
オリティはバンクを占めている全タスクのプライオリテ
ィで最も低いものを保持しているため、 の場合、選択タスクのプライオリティと該タスクが利用
しているバンクの番号をLPTに格納した後選択タスクのU
FをONにし、バンク切換え命令を実行することで選択タ
スクに制御を渡す。
の時は、選択タスクのプライオリティがその時点でバン
クを占めているタスクで最も低いプライオリティに等し
いか又は高いため、BTを見て最低プライオリティを得
て、該最低プライオリティと対応するバンク番号をLPT
のプライオリティとバンク番号に格納した後、選択タス
クのUFをONにしバンク切換え命令を実行することで選択
タスクに制御を渡す。
本処理アルゴリズムを前記ディスパッチ部に適用するこ
とにより第8図に示すようなOSの構成が内部処理部とデ
ィスパッチ部のみとなり、第1図に示すような中断処理
部による中断処理を行う必要がなくなり、内部処理実行
後ディスパッチ部で選択タスクの状況を判断した後、必
要な場合だけ状態の退避と復帰を実行すればよい。
(f) 発明の効果 本実施例のように、CPU実行状態を絶えず保持するバン
クを複数個持ち、且つバンク切換え命令によりバンクを
切換えると同時に切換えた先のバンク状態から即実行を
再開することができる処理装置で、各タスクがバンクを
利用しているか否かを知る手段を持ち、各タスクのプラ
イオリティを識別し、高いプライオリティのタスクに優
先的にバンク利用権を与える処理アルゴリズムを用いる
ことで、タスクスイッチ時の状態の保持をするための退
避または復帰動作を、バンクを利用していないタスクが
選択された時だけ行なえばよく、従来必らず行なってい
た状態の退避と復帰に要していた無駄時間を大幅に削減
出来るようになる。またプライオリティの高いタスクに
バンク利用権を与えるアルゴリズムを本実施例のように
実現することで、プライオリティの低いタスクが選択さ
れ、バンク利用状態の変更が必要となった場合でも、状
態を退避すべきタスクと該タスクが利用しているバンク
を即知ることができ、しかもその時点で最も低いプラオ
リティのタスクを退避すべきタスクの対象とするため、
システム全体の動きから見た場合、状態の退避及び復帰
の回数を削減することができる。このようにマルチタス
ク実行環境において本発明によるアルゴリズムを適用す
ることでタスクスイッチ時の状態の退避及び復帰に要す
る時間の無駄を大幅に削減することができ、システム全
体の性能向上に非常に貢献することができる。
【図面の簡単な説明】
第1図はOSの核の構成図。 第2図は本発明によるシステム構成図。 1……CPU、2……プログラムメモリ、3……データメ
モリ、4……TCB、5……レジスタバンク 第3図はTCB構成図。 第4図はレジスタバンク構成図。 第5図はレジスタバンクとレジスタバンク切換えのハー
ドウェア構成例で、 1……状態保持エリア、2……書込み用バス、3……読
出し用バス、4……書込み許可信号、5……読出し許可
信号、6……バンク切換え制御レジスタ、7……選択信
号、8……バンク内レジスタ選択器、9……レジスタ選
択許可信号 第6図は、レジスタバンクとレジスタバンクを利用して
いるタスクの反応を示すデータ構造と最低プライオリテ
ィのタスクが利用しているバンクに関する情報を有する
データ構造である。 第7図は本発明における各タスクに制御を渡す場合の処
理アルゴリズム。 第8図は本発明によるOSの核の構成図。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】第1の個数のタスクの実行に必要な情報を
    保持する第1の個数の記憶バンクを有し前記記憶バンク
    に保持されている一のタスクについて処理を行う中央処
    理装置と、前記第1の個数の記憶バンクのタスク保持状
    態を記憶する記憶部とを有する情報処理装置におけるタ
    スク切替え方式であって、 前記情報処理装置において処理の行われるタスクのそれ
    ぞれに所定の優先度を設定し、前記記憶部には前記記憶
    バンクに保持されているタスクそれぞれの優先度を記憶
    させ、前記記憶バンクに保持されていない他のタスクに
    ついて処理を行うに当たり、前記記憶部を参照して前記
    第1の個数の記憶バンクの内にタスクを保持していない
    記憶バンクがあるときは、前記他のタスクを前記タスク
    を保持していない記憶バンクに転送し、前記第1の個数
    の記憶バンクのいずれもがタスクを保持しているとき
    は、前記記憶バンクの保持しているタスクの内最も前記
    優先度の低いタスクを外部記憶手段に転送するととも
    に、前記最も前記優先度の低いタスクが保持されていた
    前記記憶バンクに前記他のタスクを転送することを特徴
    とするタスク切替え方式。
JP60294312A 1985-12-25 1985-12-25 タスク切換え方式 Expired - Fee Related JPH0756633B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60294312A JPH0756633B2 (ja) 1985-12-25 1985-12-25 タスク切換え方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60294312A JPH0756633B2 (ja) 1985-12-25 1985-12-25 タスク切換え方式

Publications (2)

Publication Number Publication Date
JPS62151942A JPS62151942A (ja) 1987-07-06
JPH0756633B2 true JPH0756633B2 (ja) 1995-06-14

Family

ID=17806065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60294312A Expired - Fee Related JPH0756633B2 (ja) 1985-12-25 1985-12-25 タスク切換え方式

Country Status (1)

Country Link
JP (1) JPH0756633B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01320541A (ja) * 1988-06-22 1989-12-26 Nec Corp レジスタ退避復帰方式
JPH03233729A (ja) * 1990-02-09 1991-10-17 Yamatake Honeywell Co Ltd メモリのバンク切換装置
JP4870974B2 (ja) * 2005-11-08 2012-02-08 株式会社九電工 廃石膏の加熱装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60126736A (ja) * 1983-12-13 1985-07-06 Mitsubishi Electric Corp デ−タ処理装置

Also Published As

Publication number Publication date
JPS62151942A (ja) 1987-07-06

Similar Documents

Publication Publication Date Title
US5596759A (en) Method for initializing a multiple processor computer system using a common ROM
US5557766A (en) High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
US3781810A (en) Scheme for saving and restoring register contents in a data processor
US5148544A (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
EP0285310A2 (en) Device for saving and restoring register information
JP2002533807A (ja) 割込み/ソフトウエア制御スレッド処理
EP0533805A4 (en) Method for efficient non-virtual main memory management
JPS58151655A (ja) 情報処理装置
KR20030072550A (ko) 데이터 처리장치와 복귀상태의 저장방법
US3292152A (en) Memory
EP0239078A2 (en) Register saving/restoring system
JP3970609B2 (ja) プロセッサシステム
JP2006092042A (ja) 情報処理装置及びコンテキスト切り替え方法
JPH0756633B2 (ja) タスク切換え方式
JPH0916409A (ja) マイクロコンピュータ
WO1988002513A1 (en) Method and device to execute two instruction sequences in an order determined in advance
CA1302582C (en) Apparatus and method for control of asynchronous program interrupt events in a data processing system
JP2579008B2 (ja) 時分割マルチタスク実行装置
JPS603229B2 (ja) 情報処理方式
US5579495A (en) Information processing in which a simulation of parallelism is achieved
JP3022398B2 (ja) 仮想計算機方式
JPH0447350A (ja) 主記憶読み出し応答制御方式
CN111581124A (zh) 可缩短内文交换时间的方法及其半导体装置
JP4116752B2 (ja) 計算機とその制御方法
JPH01233628A (ja) メモリアドレス変換制御回路

Legal Events

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