JP2574349B2 - 時分割マルチタスク実行装置 - Google Patents

時分割マルチタスク実行装置

Info

Publication number
JP2574349B2
JP2574349B2 JP62328584A JP32858487A JP2574349B2 JP 2574349 B2 JP2574349 B2 JP 2574349B2 JP 62328584 A JP62328584 A JP 62328584A JP 32858487 A JP32858487 A JP 32858487A JP 2574349 B2 JP2574349 B2 JP 2574349B2
Authority
JP
Japan
Prior art keywords
queue
register
switching
time
execution
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
JP62328584A
Other languages
English (en)
Other versions
JPH01169540A (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 JP62328584A priority Critical patent/JP2574349B2/ja
Publication of JPH01169540A publication Critical patent/JPH01169540A/ja
Application granted granted Critical
Publication of JP2574349B2 publication Critical patent/JP2574349B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明はひとつの中央演算処理装置(以下CPUと呼
ぶ)を用いて、ふたつ以上のタスク(仕事)を時分割並
行処理する時分割マルチタスク実行装置に関するもので
ある。
従来の技術 マイクロプロセッサーを利用してタスクを実行する場
合、ひとつのCPUに対して、レジスタ群,スタックポイ
ンタ,ステータスレジスタ等からなる一組のレジスタフ
ァイルを準備し、CPUからの命令に応じてレジスタファ
イルに必要なデータを転送しながらタスクを実行する方
式のものが多い。ところが、この方式では常時ひとつの
タスクしか実行できないから、実行効率が悪くなる。そ
こで従来から、ひとつのCPUに対して設けられた一組の
レジスタファイルを時分割で使用し、複数のタスクを時
分割で実行する方法が考えられている。そのうち、最も
典型的なものは、CPUの一命令毎にタスクを切り替える
方式である。ところがこの方式は、ふたつ以上のタスク
を一命令毎に順次切り替えて実行するだけであるから、
複数のタスク間に実行時間の優先順位をもたせることが
できない。しかもタスクを切り替えるたびに、それまで
レジスタファイルに格納されていたデータを、一旦メモ
リー(スタック)領域に退避させ、次のタスクに必要な
データを別のメモリー空間等からレジスタファイルに呼
び込む操作が必要となる。このデータの切り替え時間中
はタスクを実行することができず、したがって時間的な
ロスが大きくなる。
一方、このような一命令毎のタスク切り替えだけでは
なく、ユーザープログラムによって、複数のタスクの時
間管理を行い、割込み処理等を用いてタスク切り替えを
行なう方式も知られている。この方式によれば、プログ
ラムの作成時に予め複数のタスクの実行時間に優先順位
を設けることも可能である。しかし、プログラムによっ
て優先順位を設定するにはプログラム内容に対する高度
な理解が必要であり、CPUを使用するユーザが、そのユ
ーザーの仕様に合ったプログラムを作成し、優先順位を
設定することは実際上極めて困難である。しかもこの場
合でもひとつのCPUに対して一組のレジスタファイルし
か存在しないから、タスクの切り替えのたびにデータの
退避と呼び込みを繰り返す必要があり、したがって時間
的なロスは依然として解消されない。
このような問題点を解決するために、ひとつのCPUに
対して複数のレジスタファイルを準備し、CPUの命令に
従ってマルチプレクサーを切り替え、複数のレジスタフ
ィルを順次切り替えながら複数のタスクを時分割で実行
する方式も考えられている。このようにすれば、ひとつ
のタスクに対してひとつのレジスタファイルが準備され
ているから、切り替え時にデータを退避させたり、呼び
込んだりする必要はなく、したがって時間的なロスは少
なくなる。しかしこの場合でも複数のタスクの切り替え
設定や各タスクの実行時間の優先順位はプログラムによ
って設定しなければならない。このためユーザーが、ユ
ーザーの仕様に合わせてプログラムを作成するには相当
大きな負担がかかることになる。
発明が解決しようとする問題点 このように、従来複数のタスクをひとつのCPUで実行
させる場合には、各タスクの切り替え設定や各タスクの
実行時間の優先順位をプログラムで設定しなければなら
ないため、ユーザーに大きな負担をかけるという問題が
あった。
本発明は、このような従来の問題を解決する時分割マ
ルチタスク実行装置を提供するものである。
問題点を解決するための手段 この目的を達成するために本発明の時分割マルチタス
ク実行装置は、複数のタスクをそれぞれ実行する複数の
タスク実行キューに対して共通の1組の制御レジスタ群
とキュー切り替え制御部を設け、これらの制御用レジス
タ群とキュー切り替え制御部の管理下で複数のタスク実
行キューにひとつのCPUを時分割で占有させ、複数のタ
スクを時分割並列処理するように構成したものである。
作用 このようにすれば、ユーザーがユーザーの仕様に合わ
せて制御用レジスタ群中のレジスタに必要な情報をセッ
トするだけでタスクの実行仕様を設定することができ
る。このためユーザーがプログラムに対する十分な知識
を持っていなくても、レジスタという、いわゆるハード
ウェアー上に1または0の情報をセットするだけで希望
する仕様を設定することができる。
実施例 以下本発明の一実施例について図面を参照しながら説
明する。
第1図は本発明の一実施例の基本的な構成を示すもの
である。この実施例の時分割マルチタスク実行装置はひ
とつのマイクロプロセッサで実現され、ひとつのCPU
(図示せず)に対して8つのタスク実行キュー(以下単
にキューと呼ぶ)0〜7が設けられている。各キュー0
〜7はそれぞれレジスタ群、データレジスタ,アドレス
ポインタ等からなるレジスタファイル8を設けており、
各レジスタファイル8内にストアされたデータやアドレ
スを参照しながらタスクを実行する。これらのキュー0
〜7の実行順序や実行時間等を制御するために、すべて
のキュー0〜7に対して共通の制御用レジスタ群9とキ
ュー切り替え制御部10が設けられている。どのキューを
使用して複数のタスクを実行するかを制御用レジスタに
セットする。キュー切り替え制御部はこの制御用レジス
タを順に調べ、各キューに対応するビットが「1」のと
きに、該当するキューを選択し、タスクを実行する。タ
スクに着手すると、選択したタスクが終了するタイミン
グがくる前に、キュー切り替え制御部は制御用レジスタ
の次のビット「1」を調べる。このようにして、タスク
終了前に次のキューを選択するため、オーバーヘットが
ないシステムとなっている。すなわち複数のキュー0〜
7は、制御用レジスタ群9とキュー切り替え制御部10の
管理下でひとつのCPUを時分割で占有し、最大8つのタ
スクを時分割並行処理する。
制御用レジスタ群9は、キュー切り替えモードレジス
タ11と、キュー切り替えスケジュールリングレジスタ12
と、実行中キューレジスタ13と、実行済キューレジスタ
14と、実行キュー履歴レジスタ15と、キュー実行予定時
間指定レジスタ16とで構成されている。プログラムカウ
ンタ17は、各キュー0〜7のレジスタファイル8内にあ
るレジスタからのアドレスを受けて、現在実行中の命令
あるいは次命令以降の命令のアドレスを示す。ROM18に
は、いわゆるオブジェクトコードがストアされており、
プログラムカウンタ17からのアドレスにしたがって順次
命令を実行する。データRAM19は、命令の実行に伴って
発生する様々なデータを逐次読み書きをする。各ブロッ
ク間に示された矢印線および中央の線20は、データまた
はアドレスのバスラインである。
キュー切り替えモードレジスタ11はキュー切り替えモ
ード制御用のレジスタであり、第2図Aに示すようにbp
(ビットポジション)0〜bp7の8つのビットポジショ
ンをもち、bp0,bp1,bp2,bp3にそれぞれ設定されるMO
(モード0)、M1(モード1)、P(プログラム)、U
(ユーザー)の4本のフラグから構成されている。M0フ
ラグ、M1フラグを0にするか1にするかによって、第2
図Bに示すようにキュー切り替えモードの設定をする。
すなわちこれらのフラグの設定により、 (0) 自動キュー切り替えモード解除 (1) 一命令を実行するごとに自動的にキューを切り
替えるモード(命令毎自動キュー切り替えモード) (2) プログラム中でキューを切り替える命令を実行
させるモード(プログラムキュー切り替えモード) (3) キューの実行予定時間を指定するキュー実行予
定時間指定レジスタ16で指定された時間CPUを占有し、
その時間が経過すればキューを切り替えるモード(タイ
ムスライス自動キュー切り替えモード) を設定することができる。Pフラグはプログラム中でキ
ューを切り替える命令を実行させるモード[上記プログ
ラムキュー切り替えモード(2)]において使用され、
Pを1にセットすれば自動的に次のキューに移る。キュ
ーが切替わった後、Pフラグは0にクリアされる。な
お、第2図A以降の図面中のr/wはリード(読出し)と
ライト(書込み)の両方が可能なことを、またrはリー
ド(読出し)のみが可能なことを示している。第2図A
に示すようにキュー切り替えモードレジスタ11において
は、スーパーバイザモードではpb0〜bp7のすべてのビッ
トポイントにおいてリード/ライト可能(r/w)であ
り、ユーザーモードでは、bp2のPフラグのみリード/
ライト可能(r/w)で、その他はリード(r)しかでき
ない。したがって、Pフラグはプログラム中でキューを
切り替えることができるように、スーパーバイザモー
ド,ユーザーモードを問わずリード/ライト可能(r/
w)となっている。Uフラグは、1にセットすればキュ
ー切り替えスケジューリングレジスタ12がユーザーモー
ドからリード/ライト可能(r/w)になり、ユーザープ
ログラムでタスク実行キューの切り替えができる。ま
た、Uフラグを1にセットした時点で自動キュー切り替
えモードは解除される。
キュー切り替えスケジューリングレジスタ12は、実行
させるキューのビットを1にセットすることでキューを
実行可能にさせることができるレジスタである。第2図
Cにその構成を示す。オペレーティングシステムの管理
下のような通常のキュー切り替えはこのキュー切り替え
スケジューリングレジスタ12を書き替えることで行な
い、自動キュー切り替えモード[上記(1),(2),
(3)]のときのみ複数のビット指定が可能である。自
動キュー切り替えモードではこのキュー切り替えスケジ
ューリングレジスタ12を参照してキューを時間ロスなし
で切り替える。自動キュー切り替えモード以外のモード
[上記(0)]では、キュー切替え後、このレジスタの
値はクリアされる。また前述の通り、キュー切り替えモ
ードレジスタ11のUフラグを1にセットすれば、キュー
切り替えスケジューリングレジスタ12がユーザーモード
からリード/ライト可能になり、ユーザープログラムで
タスク実行キューを切り替えることができる。(このこ
とを第2図Cではr/(w)で示している)。
実行中キューレジスタ13は実行中のキューを示すレジ
スタで、その構成を第2図Dに示す。第2図Dに示すよ
うに実行中のキュー0〜7にそれぞれ対応してbp0〜bp2
に000から111までの値がセットされる。
実行済キューレジスタ14は、ひとつ前に実行させたキ
ューナンバを示すレジスタでその構成を第2図Eに示
す。この実行済みキューレジスタ14も、第2図Dに示し
た実行中キューレジスタ13と同様に、実行済みのキュー
0〜7にそれぞれ対応してbp0〜bp2に000から111までの
値がセットされる。
実行キュー履歴レジスタ15は、使用したキューの履歴
を示すレジスタで、その構成を第2図Fに示す。各ビッ
トポジションbp0〜bp7に対し各キュー0〜7が対応して
おり、使用したキューのビットポジションに1がセット
され、使用したキューの履歴が示される。
以上の実行中キューレジスタ13,実行済キューレジス
タ14,実行キュー履歴レジスタ15は主としてオペレーテ
ィングシステムがタスクやキューを管理するときに使わ
れる。したがって本発明の基本的な機能には直接関与し
ない。
タスク実行予定時間指定レジスタ16はタイムスライス
自動キュー切り替えモード[上記(3)]において使用
され、キューの実行時間を設定するレジスタである。そ
の構成を第2図Gに示す。4つの時間指定レジスタa〜
dを備え、各レジスタa〜dのbp0〜bp2およびbp4〜bp6
に0または1をセットすることによりキュー0〜7がCP
Uを占有する時間に重みを付け、それによって各キュー
0〜7で実行されるタスクの優先順位を設定することが
できる。例えば時間指定レジスタaのbp0〜bp2に000を
設定し、時間指定レジスタdのbp4〜bp6に111を設定し
た場合には、キュー0が最低位の優先順位、キュー7が
最高位の優先順位となる。
次にキュー切り替えの基本的な動作とレジスタの設定
方法について述べる。自動キュー切り替えさせる場合の
基本的な動作としては (A) キュー1〜7を自動キュー切り替えさせる場合
(キュー0にオペレーティングシステムを実装する場
合) (B) キュー0〜7を自動キュー切り替えさせる場合 の2通りがある。以下、(A),(B)各々の場合の基
本的な動作と各レジスタの設定方法を説明する。
(A)キュー1〜7を自動キュー切り替えさせる場合
(キュー0にオペレーティングシステムを実装する場
合)キュー1〜7は1から7の順番で自動的にキューが
切り替わり、システムコールや割込み発生時にはキュー
0に対しての起動がかかる。なお、システムコールと
は、タスクの実行に同期して例外処理を行なうことをさ
し、割込みとは、タスクの実行と非同期に発生する事象
の処理を行なうことをさす。
システムコールの場合、システムコールを発生したキ
ューは停止し、システムコールの実行をキュー0で行な
い、キュー0〜7が0から7の順番で自動キュー切り替
えをする。システムコールが発生したキューはシステム
コールから復帰するまでストップする。システムコール
から復帰した後は再びキュー1〜7が順番に自動キュー
切り替えをする。
第3図A,第3図B,第3図Cはキュー0でオペレーティ
ングシステムを実行し、キュー2・キュー3・キュー7
でユーザープログラムを実行し、なおかつ自動キュー切
り替えを実行している例である。横軸は時間を示してお
り縦軸はその時間CPUをどのキューが占有しているのか
を示す。第3図A及び第3図Bはそれぞれキュー3とキ
ュー2でシステムコールが発生した場合の例であり、シ
ステムコールを発生したキューに替わってキュー0に対
して起動がかかる。
割込みの場合、割込み受理の処理が優先的に行なわ
れ、自動キュー切り替え動作は一時的にストップする
が、割込み復帰後は自動キュー切り替えモードを続けて
再開する。第3図Cは自動キュー切り替えモード実行時
に割込みが発生した例である。自動キュー切り替えする
キューは1から7まで任意に指定できる。
キュー1〜7を自動キュー切り替えさせる場合のキュ
ー切り替えモードレジスタ11とキュー切り替えスケジュ
ーリングレジスタ12の設定を第3図D,第3図Eに示す。
キュー切り替えモードレジスタ11内のM1フラグ,M0フ
ラグに第2図Bに示した01,10,11のいずれかをセットす
ることにより自動キュー切り替えモードを設定する。一
方、キュー切り替えスケジューリングレジスタ12には、
自動キュー切り替えをさせるタスク実行キューに対応す
るビットポジションに1をセットする。自動キュー切り
替えモードでは、切り替えを実行させるべき複数のキュ
ーを指定する必要上、複数のビット指定が可能となって
いる。
(B)キュー0〜7を自動キュー切り替えさせる場合 キュー0〜7は0から7の順番で自動キュー切り替え
をする。システムコール・割込み発生時はキュー0に対
し起動がかかり、キュー0のレジスタファイル8内にあ
るプログラムカウンタ(PC),プログラムステータスワ
ード(PSW)をスタック領域(メモリ領域)に退避し、
システムコールや割込み処理にはいる。システムコール
の場合、システムコールを発生したキューを除くキュー
0〜7が0から7の順番で自動キュー切り替えをする。
(システムコールを発生したキューはシステムコールか
ら復帰するまでストップする)。システムコール復帰後
は再びキュー0〜7が順番に自動キュー切り替えをす
る。第4図Aはキュー2にシステムコールが発生した場
合の例である。
割込みの場合、自動キュー切り替えモードは一時的に
ストップし、割込み受理の処理が優先的に行なわれる。
割込み復帰後は自動キュー切り替え動作を再開する。
自動キュー切り替えするキューは0から7まで指定で
きる。キュー0〜7を自動キュー切り替えさせる場合の
レジスタの設定を第4図B,第4図Cに示す。キュー切り
替えレジスタ11のフラグの設定とキュー切り替えスケジ
ューリングレジスタ12の値の設定方法は第3図D,同Eと
同様である。
ここで、自動キュー切り替え実行モードとしては、前
述の通り (1) 一命令を実行するごとに自動的にキューを切り
替えるモード(命令毎自動キュー切り替えモード) (2) プログラム中でキューを切り替える命令を実行
させるモード(プログラムキュー切り替えモード) (3) キューの実行予定時間を指定するキュー実行予
定時間指定レジスタ16で指定された時間CPUを占有し、
その時間が経過すればキューを切り替えるモード(タイ
ムスライス自動キュー切り替えモード) の3つのモードがあるが、以下自動キュー切り替え実行
モードの基本的な動作とレジスタの設定方法について説
明する。
例えば、キュー2,3,5を、上記モード(1)の命令毎
自動キュー切り替えモードで実行する場合には、第5図
A,BおよびCのように設定する。つまりキュー切り替え
モードレジスタのM0フラグを1,M1フラグを0にセットし
て、このモード(1)の命令毎自動キュー切り替えモー
ドに設定し、キュー切り替えスケジューリングレジスタ
12のキュー2,3,5の位置に1をセットして実行キューを
キュー2,3,5に設定する。この設定により1命令を実行
する毎にキューを切り替える。
次に、上記モード(2)のプログラムキュー切り替え
モードは第6図A,BおよびCに示すようにキュー切り替
えモードレジスタのM0フラグを0,M1フラグを1にセット
して、このプログラム自動キュー切り替えモードに設定
し、キュー切り替えスケジューリングレジスタ12で実行
キューをキュー2,3,5に設定する。この設定によりユー
ザーがプログラム中にキューを切り替える操作(Pフラ
グのセット)を入れればキューが切り替わる。
さらに、上記モード(3)のタイムスライス自動キュ
ー切り替えモードは第7図A,B,CおよびDに示すように
キュー切り替えモードレジスタ11のM0のフラグ,M1フラ
グを共に1にセットしてタイムスライス自動キュー切り
替えモード(3)に設定し、キュー切り替えスケジュー
リングレジスタ12で実行キューをキュー2,3,5に設定す
る。この設定によりタイムスライスにキューを切り替え
られる。この例の場合、キュー実行時間をキュー実行予
定時間指定レジスタ16(第2図G参照)で キュー実行予定時間指定レジスタb(キュー3,2用)=7
1H キュー実行予定時間指定レジスタc(キュー5,4用)=5
0H (但しHは16進数表現を意味する) のように設定しているため キュー2の実行予定時間は1H キュー3の実行予定時間は7H キュー4の実行予定時間は0H キュー5の実行予定時間は5H となりキュー2,3,5の実行優先度は (キュー3のタスク)>(キュー5のタスク) >(キュー2のタスク) となる。このように、タスクがCPUを占有する時間に重
み付けをすることでタスクの優先度を設定することが可
能である。
以上述べた自動キュー切り替え動作のレジスタセット
手順をまとめると以下のようになる。
1) 実行中キューを“キュー0"に移す。
2) キュー切り替えモードレジスタ11内のM1,M0フラ
グで自動キュー切り替えモードの設定をする。
3) キュー切り替えスケジューリングレジスタ12をセ
ットすると自動キュー切り替えを開始する。1フラグが
1キューに対応している。
4) プログラム自動キュー切り替えモードのときはキ
ュー切り替えモードレジスタ11内のPフラグを1にセッ
トする。Pフラグは次のキューに実行が移った後、0に
クリアされる。
次に、キューの切り替えの具体的なレジスタの設定例
および動作例について述べる。第8図A,BおよびCは命
令毎自動キュー切り替えモード(1)で、キュー0は自
動キューの切り替えをさせない場合(キュー0でオペレ
ーティングシステムを稼働させる場合)である。レジス
タ操作は下記の通りである。
a) 実行キューを“キュー0"に移す。
b) キュー切り替えモードレジスタ11内の各フラグを
第8図Aのように設定する。
c) キュー切り替えスケジューリングレジスタ12の値
を第8図Bのようにセットし、自動キュー切り替えさせ
るキューの指定をする。
実際の動作は第8図Cになる。
第9図A,BおよびCは命令毎自動キュー切り替えモー
ド(1)でキュー0も自動キュー切り替えさせる場合で
ある。レジスタ操作は下記の通りである。
a) 実行キューを“キュー0"に移る。
b) キュー切り替えモードレジスタ11内の各フラグを
第9図Aのように設定する。
c) キュー切り替えスケジューリングレジスタ12の値
を第9図Bのようにセットし、自動キュー切り替えさせ
るキューの指定をする。
実際の動作は第9図Cになる。
第10図A,B.CおよびDはプログラムキュー切り替えモ
ード(2)の場合である。レジスタ操作は下記の通りで
ある。
a) 実行キューを“キュー0"に移る。
b) キュー切り替えモードレジスタ11内の各フラグを
第10図Aのように設定する。
c) キュー切り替えスケジューリングレジスタ12の値
を第10図Bのようにセットし、切り替えさせるキューの
指定をする。
d) キュー切り替えを行なうときキュー切り替えモー
ドレジスタ11内のPフラグを第10図Cのように設定す
る。
実際の動作は第10図Dになる。
第11図A,第11図Bはオペレーティングシステム(キュ
ー0)管理によるキュー切り替えをさせる場合である。
レジスタ操作は下記の通りである。
a) 実行キューを“キュー0"に移す。
b) キュー切り替えモードレジスタ11内の各フラグを
第11図Aのように設定する。
c) オペレーティングシステムがキュー切り替えスケ
ジューリングレジスタ12の値をセットし、キューの切り
替えをする。
d) キュー0への復帰方法は ・タイマによるスケジューリング ・タスクWAIT等のシステムコール などがある。
実際の動作は第11図Bになる。なお、この場合、キュ
ー0〜7にいずれを実行するかはオペレーティングシス
テムによって決まるから、第11図Bでは実行キューをキ
ューa,b,cとして示している。
第12図A,第12図Bはキュー切り替えスケジューリング
レジスタ12の値の書き替え(オペレーティングシステム
を介さないプログラムキュー切り替え)によるキュー切
り替えをさせる場合である。レジスタ操作は下記の通り
である。
a) 実行キューを“キュー0"に移す。
b) キュー切り替えモードレジスタ11内の各フラグを
第12図Aのように設定する。
実際の動作は第12図Bになる。
次に自動キュー切り替え動作(1),(2),(3)
時の割込み処理について説明する。第13図は割込み処理
の基本動作について示したものである。割込みは最優先
でキュー0で受理される。割込み発生により、自動キュ
ー切り替えモードは一時的にストップし割込み受理の処
理が優先的に行なわれる。第13図の例では 1) キュー2・3・7の自動キュー切り替えでキュー
3を実行中に割込みが発生。
2) キュー0のシーケンスaでは自動キューの切り替
えモードは一時的にストップし割込みの処理が優先的に
行われる。割込み処理が終わり割込み復帰命令を実行す
ると再び自動キュー切り替えが再開される。
(キュー2・3・7を自動キュー切り替えする。) 第14図A,Bの動作は以下の通りである。
1) キュー2・3・7の自動キュー切り替え設定で、
キュー3を実行中に割込みが発生。
2) キュー0のシーケンスbでは自動キューの切り替
えモードは一時的にストップし割込みの処理が優先的に
行なわれる。割込み処理で生成したタスクをキュー6で
実行させ、かつキュー2・3・7でも引き続きタスクを
実行させるため、シーケンスbのc部分で再び自動キュ
ーの切り替えの設定する。(その後はキュー2・3・6
・7を自動キューの切り替えする。) 第15図の動作は以下の通りである。但し、割込み優先
度は(割込みx)<(割込みy)とする。
1) キュー2・3・7の自動キュー切り替えでキュー
3を実行中に割込みが発生。
2) キュー0のシーケンスdで自動キュー切り替えモ
ードは一時的にストップし、割込みxの処理が優先的に
行なわれる。
3) キュー0のシーケンスdを実行中に割込みyが発
生し、割込みyの方が割込みxより優先度が高いため割
込みyの処理がシーケンスeで行なわれる。
4) 割込みyの処理終了後(シーケンスeの割込み復
帰命令後)、割込みxの処理が引き続きキュー0で行な
われ、シーケンスfの割込み復帰命令でキュー2・3・
7の自動キュー切り替えが再開される。
第16図はシステムコール処理時に割込みが発生した場
合である。
1) キュー2・3・7が自動キュー切り替え中にキュ
ー3でシステムコールが発生し、キュー0で受理されキ
ュー0・2・7が自動キュー切り替えをする。
2) キュー0・2・7の自動キュー切り替えで、キュ
ー2を実行中に割り込みが発生。
3) キュー0のシーケンスgでは自動キュー切り替え
モードは一時的にストップし割込みの処理が優先的に行
なわれる。シーケンスgが終了し割込み処理から割込み
復帰命令で復帰するとシーケンスhからキュー0・2・
7の自動キュー切り替えが再開され、キュー0ではキュ
ー3からのシステムコール処理が引き続き実行される。
第17図はストリング処理命令実行中に割込みが発生し
た場合である。なお、ストリング処理命令とは文字列等
の一次元的並び、つまり任意の長さだけ連続して並べた
データタイプに対しての連続処理命令のことを意味す
る。
1) キュー2・3・6の自動キュー切り替えで、キュ
ー2のシーケンスiのストリング処理命令実行中に割込
みが発生。ストリング処理命令実行中に割込みが発生し
たときはオペコード,オペランド等の必要なデータを退
避し自動キュー切り替え動作を一時的にストップしキュ
ー0で割込みを受理する。
2) キュー0での割込み処理ののち割込み復帰命令を
実行し、自動キュー切り替えモードを再開。キュー2で
のストリング処理命令処理の続きをシーケンスjで実行
する。
発明の効果 本発明によれは、ユーザーがユーザーの仕様に合わせ
て制御用レジスタ群中のレジスタに必要な情報をセット
するだけでタスクの実行仕様を設定することができる。
従ってユーザーがプログラムに対する十分な知識を持っ
ていなくても、レジスタという、いわゆるハードウェア
上に1または0の情報をセットするだけで希望する仕様
を設定することができ、マルチタスク実行仕様を設定す
るにあたってのユーザーの負担を大きく軽減することが
できる。
【図面の簡単な説明】
第1図は本発明の一実施例の時分割マルチタスク実行装
置のブロック図、第2図Aはキュー切り替えモードレジ
スタ11の構成を示した図、第2図Bはキュー切り替えモ
ードレジスタ11のM1,M0フラグの設定方法を示した図、
第2図Cはキュー切り替えスケジューリングレジスタ12
の構成を示した図、第2図Dは実行中キューレジスタ13
の構成を示した図、第2図Eは実行済キューレジスタ14
の構成を示した図、第2図Fは実行キュー履歴レジスタ
15の構成を示した図、第2図Gはタスク実行予定時間指
定レジスタ16の構成を示した図、第3図A及び第3図B
はキュー1〜7を自動キュー切り替えモード時に、それ
ぞれキュー3とキュー2でシステムコールが発生した例
を示した図、第3図Cは自動キュー切り替えモード時に
割込みが発生した例を示した図、第3図D,Eはキュー1
〜7を自動キュー切り替えさせる場合のレジスタの設定
方法を示した各図、第4図Aはキュー0〜7を自動キュ
ー切り替え時に、キュー2にシステムコールが発生した
場合の例を示した図、第4図B,Cはキュー0〜7を自動
キュー切り替えさせる場合のレジスタの設定方法を示し
た各図、第5図A,BおよびCは、命令毎自動キュー切り
替えモード時の各レジスタの設定例および動作例を示し
た各図、第6図A,BおよびCはプログラムキュー切り替
えモード時の各レジスタの設定例および動作例を示した
各図、第7図A,B,CおよびDはタイムスライス自動キュ
ー切り替えモード時の各レジスタの設定例および動作例
を示した各図、第8図A,BおよびCは命令毎自動キュー
切り替えモードでキュー0は自動キューの切り替えをさ
せない場合(キュー0でオペレーティングシステムを稼
働させる場合)の各レジスタの設定例および動作例を示
した各図、第9図A,BおよびCは命令毎自動キュー切り
替えモードでキュー0も自動キュー切り替えさせる場合
の各レジスタの設定例および動作例を示した各図、第10
図A,B,CおよびDはプログラムキュー切り替えさせる場
合の各レジスタの設定例および動作例を示した各図、第
11図A,およびBはオペレーティングシステム(キュー
0)管理によるキュー切り替えをさせる場合のレジスタ
の設定例および動作例を示した各図、第12図A,Bはキュ
ー切り替えスケジューリングレジスタの値の書き替え
(オペレーティングシステムを介さないプログラムキュ
ー切り替え)によるキュー切り替えをさせる場合のレジ
スタの設定例および動作例を示した各図、第13図は、キ
ュー切り替え時の割込み処理の動作について示した図、
第14図AおよびBはキュー切り替え時のレジスタの設定
例および動作例を示した各図、第15図、第16図は、それ
ぞれ、システムコール処理時に割込みが発生した場合の
各動作について示した図、第17図はストリング処理命令
実行中に割込みが発生した場合の動作について示した図
である。 0〜7……タスク実行キュー、8……レジスタファイ
ル、9……制御用レジスタ群、10……キュー切り替え制
御部、11……キュー切り替えモードレジスタ、12……キ
ュー切り替えスケジューリングレジスタ、13……実行中
キューレジスタ、14……実行済キューレジスタ、15……
実行キュー履歴レジスタ、16……キュー実行予定時間指
定レジスタ、17……プログラムカウンタ、18……ROM、1
9……データRAM、20……バスライン。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のタスク実行キューにそれぞれ対応す
    るレジスタファイルと、 (0)自動キュー切り替えを解除するモード、 (1)一命令を実行するごとに自動的にキューを切り替
    えるモード、 (2)プログラム中でキューを切り替える命令を実行さ
    せるモード、 (3)キューの実行予定時間を指定するキュー実行予定
    時間指定レジスタで指定された時間、CPUを占有し、そ
    の時間が経過すればキューを切り替えるモード の4つのタスク実行モードから1つを選択し、実行順位
    を指定するための情報がセットされる制御用レジスタ群
    と、 前記制御用レジスタ群にセットされた情報に基づいて、
    キュー切り替えを制御するキュー切り替え制御部と、 命令のアドレスを示すプログラムカウンタと、 オブジェクトコードがストアされたROMと、 実行に伴って発生するデータを一時的に記憶するRAMと
    を備え、 前記レジスタファイルにストアされたデータ、アドレス
    を参照して、1つのCPUを時分割並列処理する時分割マ
    ルチタスク実行装置。
JP62328584A 1987-12-24 1987-12-24 時分割マルチタスク実行装置 Expired - Fee Related JP2574349B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62328584A JP2574349B2 (ja) 1987-12-24 1987-12-24 時分割マルチタスク実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62328584A JP2574349B2 (ja) 1987-12-24 1987-12-24 時分割マルチタスク実行装置

Publications (2)

Publication Number Publication Date
JPH01169540A JPH01169540A (ja) 1989-07-04
JP2574349B2 true JP2574349B2 (ja) 1997-01-22

Family

ID=18211910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62328584A Expired - Fee Related JP2574349B2 (ja) 1987-12-24 1987-12-24 時分割マルチタスク実行装置

Country Status (1)

Country Link
JP (1) JP2574349B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613085B1 (en) 1993-02-26 1999-06-09 Denso Corporation Multitask processing unit
JP2574983B2 (ja) * 1993-04-06 1997-01-22 本田技研工業株式会社 マルチタスク制御システム
EP0863462B8 (en) 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0642206B2 (ja) * 1985-12-20 1994-06-01 松下電器産業株式会社 コンカレント処理命令を有するマイクロプロセツサ

Also Published As

Publication number Publication date
JPH01169540A (ja) 1989-07-04

Similar Documents

Publication Publication Date Title
US5371887A (en) Time-shared multitask execution device
JP2664664B2 (ja) マイクロコンピュータおよびプロセス実行方法
JPH0750456B2 (ja) 入出力制御システム
JPH02144630A (ja) データ処理装置
US20040148606A1 (en) Multi-thread computer
GB2282473A (en) History buffer system.
US5179685A (en) Information processing apparatus
EP1811375A1 (en) Processor
JP2574349B2 (ja) 時分割マルチタスク実行装置
JP2553698B2 (ja) 時分割マルチタスク実行装置
JP2579008B2 (ja) 時分割マルチタスク実行装置
JP2666667B2 (ja) マルチタスク実行装置
JP2585905B2 (ja) マルチタスク実行装置
JPH01154237A (ja) 時分割タスク実行装置
JPS6091452A (ja) デ−タ処理装置のタスクスケジユ−リング方式
JPH0756633B2 (ja) タスク切換え方式
JP2000132409A (ja) 待ち状態のないタスクのスタック共有方式
JPH06274436A (ja) データ転送方式
JPH02254544A (ja) マルチタスク型シーケンスプロセッサおよびその起動方法
JPH04350728A (ja) 複数タスクの実時間処理装置
JP2985092B2 (ja) 時分割マルチタスク制御装置
JPH06149593A (ja) マルチタスク実行装置
JPH10143376A (ja) 情報処理装置
JPH06149594A (ja) マルチタスク実行装置
JPH0272461A (ja) 計算機システム

Legal Events

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