JP2003323309A - マルチタスクプロセッサおよびデータ処理システム - Google Patents

マルチタスクプロセッサおよびデータ処理システム

Info

Publication number
JP2003323309A
JP2003323309A JP2002131893A JP2002131893A JP2003323309A JP 2003323309 A JP2003323309 A JP 2003323309A JP 2002131893 A JP2002131893 A JP 2002131893A JP 2002131893 A JP2002131893 A JP 2002131893A JP 2003323309 A JP2003323309 A JP 2003323309A
Authority
JP
Japan
Prior art keywords
task
execution
tasks
instruction processing
instruction
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
JP2002131893A
Other languages
English (en)
Inventor
Hiroshi Imanishi
浩 今西
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 JP2002131893A priority Critical patent/JP2003323309A/ja
Publication of JP2003323309A publication Critical patent/JP2003323309A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 回路規模の増大を抑制しつつ、複数のタスク
を同時に並行して実行できるマルチタスクプロセッサを
提供する。 【解決手段】 本発明のマルチタスクプロセッサ1A
は、プログラムを格納する命令メモリ8Aと、命令メモ
リ8Aに格納されたプログラムに記述された命令を読み
出してデコードし、タスクとして実行する命令処理部4
Aおよび5Aと、複数のタスクの優先度にもとづいて命
令処理部4Aおよび5Aのためにタスクを選択し、選択
されたタスクを命令処理部4Aおよび5Aに割り当てる
スケジューラ9Aとを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスク機能
をもつプロセッサと、そのマルチタスクプロセッサを用
いて複数のハードウェアエンジンを制御するデータ処理
システムに関するものである。
【0002】
【従来の技術】プロセッサは、命令メモリ、命令処理
部、データメモリ、汎用レジスタなどからなる。命令メ
モリは、処理手順が記述されたプログラムを格納する。
命令処理部は、命令実行に必要な演算器などを含んでお
り、命令メモリから読み出した命令をデコードして実行
する。データメモリや汎用レジスタは、処理に必要なデ
ータや演算の中間データ、命令の実行結果などを格納す
る。
【0003】データ処理システムの処理能力を高めるた
めには、プロセッサにおいてプログラムに応じて実行さ
れる処理のうち、独立して実行できる処理を切り出し、
その処理を行う専用のハードウェアエンジンを設ける。
ハードウェアを用いて処理を行うことによって、処理の
高速化はある程度実現できる。この場合、切り出された
処理が他の処理と因果関係がなく互いに独立であるなら
ば、それらの処理は同時に並行して実行することができ
る。したがって、このように分割された処理をそれぞれ
別々のハードウェアエンジンを用いて並列に実行させ、
一つのプロセッサはそれら複数個のハードウェアエンジ
ンを制御するような構成を採る。
【0004】このような構成を採るため、プロセッサに
おける制御手順を一つのプログラムで記述しようとする
と非常に複雑なものとなる。そこで、マルチタスク機能
をもつプロセッサを用いれば、あるひとつのハードウェ
アエンジンを制御するためのプログラムを一つのタスク
として記述することができ、プログラミングの見通しが
容易になる。また、タスクに優先度を設定すれば、スケ
ジューラによって優先度の高いタスクが自動的に選択さ
れ、選択されたタスクのプログラムがプロセッサで実行
される。
【0005】さらに、データ処理システムの処理能力を
より高めるためには、プロセッサを複数備えることによ
って、複数のタスクを同時に並行して実行することが考
えられる。
【0006】
【発明が解決しようとする課題】しかしながら、以上の
ような従来のデータ処理システムは、複数のタスクを同
時に並行して実行するためには、プロセッサを複数備え
る必要があり、回路規模の増大を招く。
【0007】そこで、上記に鑑み、本発明の目的は、回
路規模の増大を抑制しつつ、複数のタスクを並行して実
行可能なマルチタスクプロセッサおよびデータ処理シス
テムを提供することである。
【0008】
【課題を解決するための手段】上記課題を解決するため
に、請求項1に記載の発明が講じた手段は、複数のタス
クを同時に並行して実行するマルチタスクプロセッサで
あって、プログラムを格納する命令メモリと、各々が、
前記命令メモリに格納されたプログラムに記述された命
令を読み出してデコードし、タスクとして実行する複数
の命令処理部と、前記複数のタスクの各々に与えられる
実行順序を示す優先度にもとづいて、前記複数の命令処
理部の各々のためにタスクを選択し、選択されたタスク
を前記複数の命令処理部の各々に割り当てるスケジュー
ラとを備えるものである。
【0009】請求項1の発明によると、マルチタスクプ
ロセッサの核となる命令処理部のみを複数備え、命令メ
モリなどは共用化する構成を採るため、全体として回路
規模の増大を抑えつつ、複数のタスクを並列して実行す
ることができる。
【0010】また、請求項2の発明は、請求項1に記載
のマルチタスクプロセッサと、前記複数の命令処理部の
各々によって、当該命令処理部が実行するタスクにもと
づいた起動がなされ、当該タスクのための処理を行うハ
ードウェアエンジンとを備えるものである。
【0011】請求項2の発明によると、全体として回路
規模の増大を抑えつつ、複数のタスクを並行して実行可
能なマルチタスクプロセッサを備えたデータ処理システ
ムを実現できる。
【0012】また、請求項3の発明は、請求項1に記載
のマルチタスクプロセッサにおいて、タスクの切り替え
が生じるときに、前記複数の命令処理部の各々は、実行
状態にあるタスクの処理を中断し、処理を中断したタス
クを実行待ち状態のタスクとし、前記スケジューラは、
実行待ち状態にあるタスクの各々の前記優先度にもとづ
いて、前記実行待ち状態にあるタスクの中から、前記優
先度が高い順に、前記複数の命令処理部の数と同数のタ
スクを選択し、当該複数の命令処理部の各々に割り当て
るものとする。
【0013】請求項3の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0014】また、請求項4の発明は、請求項2に記載
のデータ処理システムにおいて、前記マルチタスクプロ
セッサにおいて、タスクの切り替えが生じるときに、前
記複数の命令処理部の各々は、実行状態にあるタスクの
処理を中断し、処理を中断したタスクを実行待ち状態の
タスクとし、前記スケジューラは、実行待ち状態にある
タスクの各々の前記優先度にもとづいて、前記実行待ち
状態にあるタスクの中から、前記優先度が高い順に、前
記複数の命令処理部の数と同数のタスクを選択し、当該
複数の命令処理部の各々に割り当てるものとする。
【0015】請求項4の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0016】また、請求項5の発明は、請求項1に記載
のマルチタスクプロセッサにおいて、タスクの切り替え
が生じるときに、前記スケジューラは、タスクが割り当
てられていない命令処理部がある場合、実行待ち状態に
あるタスクの各々の前記優先度にもとづいて、前記実行
待ち状態にあるタスクの中から、前記優先度が高い順
に、前記タスクが割り当てられていない命令処理部の数
と同数のタスクを選択し、前記タスクが割り当てられて
いない命令処理部に割り当てるものとする。
【0017】請求項5の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0018】また、請求項6の発明は、請求項2に記載
のデータ処理システムにおいて、前記マルチタスクプロ
セッサにおいて、タスクの切り替えが生じるときに、前
記スケジューラは、タスクが割り当てられていない命令
処理部がある場合、実行待ち状態にあるタスクの各々の
前記優先度にもとづいて、前記実行待ち状態にあるタス
クの中から、前記優先度が高い順に、前記タスクが割り
当てられていない命令処理部の数と同数のタスクを選択
し、前記タスクが割り当てられていない命令処理部に割
り当てるものとする。
【0019】請求項6の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0020】また、請求項7の発明は、請求項1に記載
のマルチタスクプロセッサにおいて、タスクの切り替え
が生じるときに、前記スケジューラは、実行状態にある
タスクの各々の前記優先度と実行待ち状態にあるタスク
の各々の前記優先度にもとづいて、前記実行状態にある
タスクと前記実行待ち状態にあるタスクとの中から、前
記優先度が高い順に、前記複数の命令処理部の数と同数
のタスクを選択し、前記実行状態にあるタスクが選択さ
れた場合には、選択された前記実行状態にあるタスクの
処理を行っている命令処理部にその処理を続行させ、前
記実行待ち状態にあるタスクが選択された場合には、選
択された前記実行待ち状態にあるタスクを、前記実行状
態にあるタスクの処理を続行させる命令処理部以外の命
令処理部に割り当てるものとする。
【0021】請求項7の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0022】また、請求項8の発明は、請求項2に記載
のデータ処理システムにおいて、前記マルチタスクプロ
セッサにおいて、タスクの切り替えが生じるときに、前
記スケジューラは、実行状態にあるタスクの各々の前記
優先度と実行待ち状態にあるタスクの各々の前記優先度
にもとづいて、前記実行状態にあるタスクと前記実行待
ち状態にあるタスクとの中から、前記優先度が高い順
に、前記複数の命令処理部の数と同数のタスクを選択
し、前記実行状態にあるタスクが選択された場合には、
選択された前記実行状態にあるタスクの処理を行ってい
る命令処理部にその処理を続行させ、前記実行待ち状態
にあるタスクが選択された場合には、選択された前記実
行待ち状態にあるタスクを、前記実行状態にあるタスク
の処理を続行させる命令処理部以外の命令処理部に割り
当てるものとする。
【0023】請求項8の発明によると、上記一連の処理
によって、複数のタスクを並行して実行できる。
【0024】また、請求項9の発明は、複数のタスクを
同時に並行して実行するマルチタスクプロセッサであっ
て、プログラムを格納する命令メモリと、各々が、前記
命令メモリに格納されたプログラムに記述された命令を
読み出してデコードし、タスクとして実行する命令処理
部と、前記複数のタスクの各々に与えられる実行順序を
示す優先度にもとづいて、前記命令処理部のためにタス
クを選択し、選択したタスクを前記命令処理部に割り当
てるスケジューラとを備え、タスクの切り替えが生じる
ときに、前記スケジューラは、実行状態にあるタスクの
各々の前記優先度と実行待ち状態にあるタスクの各々の
前記優先度とにもとづいて、前記実行状態にあるタスク
と前記実行待ち状態にあるタスクとの中から、前記優先
度が最も高いタスクを選択し、前記実行状態にあるタス
クが選択された場合には、選択された前記実行状態にあ
るタスクの処理を行っている命令処理部にその処理を続
行させ、前記実行待ち状態にあるタスクが選択された場
合には、選択された前記実行待ち状態にあるタスクを前
記命令処理部に割り当てるものである。
【0025】請求項9の発明によると、命令処理部を複
数備えることなく、複数のタスクを並行して実行でき
る。
【0026】
【発明の実施の形態】以下、本発明の各実施形態につい
て、図面を参照しながら説明する。
【0027】(第1の実施形態)図1は、本発明の第1
の実施形態に係るデータ処理システムの構成例を示す図
である。図1に示すデータ処理システムは、2つのハー
ドウェアエンジン2Aおよび3Aと、プロセッサ1A
(マルチタスクプロセッサに対応する)とを有してい
る。
【0028】ハードウェアエンジン2Aおよび3Aはプ
ロセッサ1Aにより制御される。
【0029】プロセッサ1Aは、2つの命令処理部4A
および5Aと、汎用レジスタ6Aと、データメモリ7A
と、命令メモリ8Aと、スケジューラ9Aとを有してい
る。
【0030】命令メモリ8Aは、処理手順がタスクとし
て記述されたプログラムを格納する。
【0031】命令処理部4A、5Aは、プログラムから
1命令ずつ読み出してデコードする。そして、命令処理
部4A、5Aは、デコードされた命令の内容に応じて、
ハードウェアエンジン2A、3Aに対する入力設定およ
び実行起動、ハードウェアエンジン2A、3Aからの出
力結果の読み出し、および演算などを行う。
【0032】汎用レジスタ6Aやデータメモリ7Aは、
ハードウェアエンジン2A、3Aの設定に必要な初期値
データや、演算の中間データ、実行結果などを格納す
る。
【0033】スケジューラ9Aは、タスクの実行順序を
示す優先度にもとづいて、命令処理部4A、5Aに実行
させるタスクを選択し、そのタスクを命令処理部4A、
5Aに割り当てる。
【0034】以上のように構成されたデータ処理システ
ムの動作について説明する。
【0035】図2はデータ処理システムの動作を説明す
るための図である。
【0036】以下では、3つのタスクTA0〜TA2が
実行される場合について考える。ここで、タスクTA0
〜TA2の優先度はそれぞれ実行順序の高い順に高、
中、低とする。また、タスクの切り替えは、タスクの実
行停止またはハードウェアエンジンの実行終了によって
発生するものとする。
【0037】図2では、右方向を正としてサイクルt0
〜t8までの時間の流れがあるとする。また、各タスク
TA0〜TA2に対して、実線の矢印、荒い破線、細か
い破線は、それぞれ、そのタスクが実行状態、実行待ち
状態、ハードウェアエンジン実行終了待ち状態であるこ
とを示している。なお、実行待ち状態のタスクは実行可
能であるが、ハードウェアエンジン実行終了待ち状態の
タスクは、ハードウェアエンジンの実行が終了するまで
実行は不可能である。また、各タスクに対する実線の矢
印上にある{p−4A}または{p−5A}は、そのタ
スクが実行されている命令処理部を示している。つま
り、命令処理部4Aによって実行されているタスクは
{p−4A}、命令処理部5Aによって実行されている
タスクは{p−5A}が付されている。また、各ハード
ウェアエンジン2Aおよび3Aに対して示された実線の
矢印は、そのハードウェアエンジンが実行状態であるこ
とを示している。
【0038】<サイクルt0>タスクTA2、TA1は
実行状態にあり、それぞれ命令処理部4A、5Aによっ
て実行されており、タスクTA0は実行待ち状態にあ
る。また、ハードウェアエンジン2Aおよび3Aはいず
れも停止している。
【0039】<サイクルt1>タスクTA2が一旦停止
し、実行状態から実行待ち状態に移行したとする。この
とき、タスクの切り替えが発生し、スケジューラ9Aは
優先度にしたがってタスクTA1およびTA0を次に実
行すべきタスクとして選択する。そのため、タスクTA
0は命令処理部4Aで実行され、タスクTA1はそのま
ま命令処理部5Aで実行が続行される。
【0040】<サイクルt2>タスクTA1によりハー
ドウェアエンジン2Aが起動される場合、タスクTA1
は一旦停止し、タスクの切り替えが発生する。タスクT
A1はハードウェアエンジン2Aの実行が終了するまで
処理を再開できないため、スケジューラ9Aによってタ
スクTA0およびTA2が選ばれる。そのため、タスク
TA0は命令処理部4Aで実行が続行され、タスクTA
2は命令処理部5Aで実行される。
【0041】<サイクルt3>タスクTA0によりハー
ドウェアエンジン3Aが起動される場合、タスクTA0
は一旦停止し、タスクの切り替えが発生する。タスクT
A0はハードウェアエンジン3Aの実行が終了するまで
処理を再開できないため、スケジューラ9Aによってタ
スクTA2のみが選ばれる。そのため、タスクTA2は
命令処理部5Aで実行が続行される。
【0042】<サイクルt4>ハードウェアエンジン3
Aの実行が終了し、タスクの切り替えが発生する。タス
クTA0は、ハードウェアエンジン3Aの実行が終了し
たので、その処理を再開することができる。そのため、
スケジューラ9AによってタスクTA0およびTA2が
選ばれるので、タスクTA0は命令処理部4Aで実行さ
れ、タスクTA2は命令処理部5Aで実行が続行され
る。
【0043】<サイクルt5>ハードウェアエンジン2
Aの実行が終了し、タスクの切り替えが発生する。タス
クTA1は、ハードウェアエンジン2Aの実行が終了し
たので、その処理を再開することができる。スケジュー
ラ9Aは優先度にしたがってタスクTA0およびTA2
を選択する。そのため、タスクTA1は命令処理部5A
で実行され、タスクTA0は命令処理部4Aで実行が続
行される。なお、タスクTA2の実行は一旦中断され
る。
【0044】<サイクルt6>タスクTA2の実行が終
了し、タスクの切り替えが発生する。そのため、スケジ
ューラによってタスクTA1およびTA0が選ばれるの
で、タスクTA1は命令処理部5Aで実行が続行され、
タスクTA0は命令処理部4Aで実行される。
【0045】<サイクルt7>タスクTA1の実行が終
了し、タスクの切り替えが発生する。そのため、スケジ
ューラ9AによってタスクTA2が選ばれるので、タス
クTA2は命令処理部4Aで実行が続行される。
【0046】<サイクルt8>タスクTA2の実行が終
了し、これで全てのタスクの実行が終了する。
【0047】以上のように、本実施形態によると、プロ
セッサを複数備えることなく、命令処理部のみを複数備
え、命令メモリなどを共有化することで、複数のタスク
を同時に並行して実行することができる。
【0048】(第2の実施形態)以下では、上記第1の
実施形態に係るマルチタスクプロセッサおよびデータ処
理システムにおける複数のタスクの処理の変形例につい
て図3〜図5を参照しながら説明する。
【0049】以下では、4つのタスクTA0〜TA3が
実行される場合について考える。
【0050】タスクTA0〜TA3の優先度は、タスク
TA0が最も高い優先度を有するものとし、続いてタス
クTA1、タスクTA2、タスクTA3の順に優先度が
小さくなるものとする。また、タスクの切り替えは、タ
スクが実行状態からそれ以外の状態へ移行した場合また
はタスクが実行不可状態から実行待ち状態に移行した場
合に発生するものとする。
【0051】また、上記各図面では、右方向を正として
ステージST0〜ST4までの時間の経過があるとす
る。命令処理部4A、命令処理部5Aに対応する欄に
は、その命令処理部で実行状態にあるタスクを示してい
る。実行待ち状態、実行不可状態に対応する欄には、そ
れぞれの状態にあるタスクを示している。
【0052】図3は、本実施形態に係るマルチタスクプ
ロセッサおよびデータ処理システムにおける複数のタス
クの第1の処理例を示す図である。
【0053】ステージSG0において、タスクTA2、
TA3は、それぞれ命令処理部4A、命令処理部5Aで
実行され、タスクTA0、TA1は、それぞれ実行待ち
状態、実行不可状態にあるとする。
【0054】ステージSG1において、実行状態のタス
クTA3が実行待ち状態に移るとタスクの切り替えが発
生する。実行状態のタスクTA2は実行が一旦中断さ
れ、実行待ち状態に移される。このとき、実行待ち状態
にはタスクTA0、TA2、TA3があり、スケジュー
ラ9Aは優先度にしたがって2つのタスクTA0、TA
2を選択し、それぞれ命令処理部4A、5Aに割り当て
る。
【0055】ステージSG2において、スケジューラ9
Aによって選択されたタスクTA0、TA2は、それぞ
れ命令処理部4A、命令処理部5Aで実行される。
【0056】ステージSG3において、実行不可状態に
あるタスクTA1が実行待ち状態へ移されると、タスク
の切り替えが発生する。このとき、実行状態のタスクT
A0、TA2は実行が一旦中断され、実行待ち状態に移
される。ここで、実行待ち状態にはタスクTA0、TA
1、TA2、TA3があり、スケジューラ9Aは優先度
にしたがって2つのタスクTA0およびTA1を選択
し、命令処理部4A、5Aにそれぞれ割り当てる。
【0057】ステージSG4において、タスクTA0、
TA1がそれぞれ命令処理部4A、5Aで実行される。
【0058】また、図4は、本実施形態に係るマルチタ
スクプロセッサおよびデータ処理システムにおける複数
のタスクの第2の処理例を示す図である。
【0059】ステージSG0において、タスクTA2、
TA3は、それぞれ命令処理部4A、5Aで実行され、
タスクTA0、TA1は、それぞれ実行待ち状態、実行
不可状態にあるする。
【0060】ステージSG1において、実行状態のタス
クTA3が実行待ち状態に移るとタスクの切り替えが発
生する。この場合、実行状態のタスクTA2の処理は実
行が続行され、使用されていない命令処理部は命令処理
部5Aである。このとき、実行待ち状態にあるタスクT
A0、TA3の中から、スケジューラ9Aは、優先度に
したがって1つのタスクTA0を選択し、使用されてい
ない命令処理部5Aに割り当てる。
【0061】ステージSG2において、タスクTA0が
命令処理部5Aに割り当てられ、タスクTA0、TA2
は、それぞれ命令処理部5A、命令処理部4Aで実行さ
れる。
【0062】ステージSG3において、実行不可状態に
あるタスクTA1が実行待ち状態へ移され、タスクの切
り替えが発生する。このとき、実行待ち状態にはタスク
TA1、TA3があるが、使用されていない命令処理部
はないため、スケジューラ9Aによってタスクの選択は
行われない。
【0063】したがって、ステージSG4において、タ
スクの再割り当ては発生しないため、命令処理部4A、
5Aにおいて、それぞれタスクTA2、TA0の処理は
実行が続行される。
【0064】図5は、本実施形態に係るマルチタスクプ
ロセッサおよびデータ処理システムにおける複数のタス
クの第3の処理例を示す図である。
【0065】ステージSG0において、タスクTA2、
TA3は、それぞれ命令処理部4A、5Aで実行され、
タスクTA0、TA1は、それぞれ実行待ち状態、実行
不可状態にあるとする。
【0066】ステージSG1において、実行状態のタス
クTA3が実行待ち状態に移るとタスクの切り替えが発
生する。このとき、実行状態にはタスクTA2が、実行
待ち状態にはタスクTA0、TA3がある。スケジュー
ラ9Aは、これらのタスクの中から優先度にしたがって
2つのタスクTA0、TA2を選択し、それぞれ命令処
理部5A、4Aに割り当てる。
【0067】ステージSG2において、タスクTA0は
命令処理部5Aで実行される。タスクTA2は命令処理
部4Aでそのまま実行が続行される。
【0068】ステージSG3において、実行不可状態に
あるタスクTA1が実行待ち状態へ移されるとタスクの
切り替えが発生する。このとき、実行状態にはタスクT
A0、TA2が、実行待ち状態にはタスクTA1、TA
3がある。スケジューラ9Aは、これらのタスクの中か
ら優先度にしたがって2つのタスクTA0、TA1を選
択し、それぞれ命令処理部5A、4Aに割り当てる。
【0069】ステージSG4において、タスクTA2は
実行が一旦中断され、実行待ち状態に移される。タスク
TA1は命令処理部4Aで実行され、タスクTA0は命
令処理部5Aでそのまま実行が続行される。
【0070】以上のように、本実施形態によると、回路
規模の増大の抑制を可能としたデータ処理システムにお
いて、上記図3〜図5でそれぞれ説明した一連の処理に
よって、複数のタスクを同時に並行して実行できる。
【0071】(第3の実施形態)図6は、本実施形態に
係るデータ処理システムの他の構成例を示す図である。
【0072】図6に示すデータ処理システムは、2つの
ハードウェアエンジン2Bおよび3Bと、プロセッサ1
B(マルチタスクプロセッサに対応する)とを有してい
る。
【0073】ハードウェアエンジン2Bおよび3Bは、
プロセッサ1Bによって制御される。
【0074】プロセッサ1Bは、命令処理部4Bと、汎
用レジスタ6Bと、データメモリ7Bと、命令メモリ8
Bと、スケジューラ9Bとを有している。
【0075】図6に示すデータ処理システムが図1に示
したデータ処理システムと異なる点は、命令処理部4B
を1つだけ有している点であり、その他の点は同様であ
る。
【0076】図7は、本実施形態に係るマルチタスクプ
ロセッサおよびデータ処理システムにおける複数のタス
クの処理例を示す図である。
【0077】ここでは、第2の実施形態と同様に、4つ
のタスクTA0〜TA3を実行する場合について考え
る。
【0078】図7では、右方向を正としてステージST
0〜ST6までの時間の経過があるとする。命令処理部
4Bに対応する欄には、その命令処理部4Bで実行状態
にあるタスクを示している。実行待ち状態、実行不可状
態に対応する欄には、それぞれの状態にあるタスクを示
している。なお、タスクTA0〜TA3の優先度やタス
クの切り替えについては、上記第2の実施形態と同様と
する。
【0079】ステージSG0において、タスクTA2が
命令処理部4Bで実行され、タスクTA1は実行待ち状
態にあり、タスクTA0およびTA3は実行不可状態に
あるとする。
【0080】ステージSG1において、実行状態のタス
クTA2が実行待ち状態に移るとタスクの切り替えが発
生する。このとき、実行状態のタスクはなく、実行待ち
状態にはタスクTA1、TA2がある。そして、これら
のタスクの中から、スケジューラ9Bは、優先度にした
がって1つのタスクTA1を選択し、命令処理部4Bに
割り当てる。
【0081】ステージSG2において、タスクTA1は
命令処理部4Bで実行される。
【0082】ステージSG3において、実行不可状態に
あるタスクTA0が実行待ち状態へ移されるとタスクの
切り替えが発生する。このとき、実行状態にあるのはタ
スクTA1であり、実行待ち状態にあるのはタスクTA
0、TA2である。そして、これらのタスクの中から、
スケジューラ9Bは、優先度にしたがって1つのタスク
TA0を選択し、命令処理部4Bに割り当てる。
【0083】ステージSG4において、それまで実行状
態であったタスクTA1は選択されなかったので、タス
クTA1の実行が一旦中断され実行待ち状態に移され
る。そして、タスクTA0は命令処理部4Bで実行され
る。
【0084】ステージSG5において、実行不可状態に
あるタスクTA3が実行待ち状態へ移されるとタスクの
切り替えが発生する。このとき、実行状態にあるのはタ
スクTA0であり、実行待ち状態にあるのはタスクTA
1、TA2、TA3である。そして、これらのタスクの
中から、スケジューラ9Bは、優先度にしたがって1つ
のタスクTA0を選択する。
【0085】ステージSG6において、タスクTA0は
実行が続行される。
【0086】以上のように、本実施形態によると、複数
の命令処理部を備えることなく、複数のタスクの処理が
可能になる。
【0087】
【発明の効果】上述の通り、本発明のマルチタスクプロ
セッサは、プロセッサの核となる命令処理部のみを複数
備えたため、全体として回路規模の増大を抑制しつつ、
複数のタスクを同時に実行することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係るデータ処理シ
ステムの構成例を示す図である。
【図2】 第1の実施形態に係るデータ処理システムの
実行例を示す図である。
【図3】 本発明の第2の実施形態に係るデータ処理シ
ステムにおける複数のタスクの第1の処理例を示す図で
ある。
【図4】 本発明の第2の実施形態に係るデータ処理シ
ステムにおける複数のタスクの第2の処理例を示す図で
ある。
【図5】 本発明の第2の実施形態に係るデータ処理シ
ステムにおける複数のタスクの第3の処理例を示す図で
ある。
【図6】 本発明の第3の実施形態に係るデータ処理シ
ステムの構成例を示す図である。
【図7】 第3の実施形態に係るデータ処理システムに
おける複数のタスクの処理例を示す図である。
【符号の説明】
1A、1B プロセッサ 4A、5A、4B 命令処理部 6A、6B 汎用レジスタ 7A、7B データメモリ 8A、8B 命令メモリ 9A、9B スケジューラ 2A、2B、3A、3B ハードウェアエンジン

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 複数のタスクを同時に並行して実行する
    マルチタスクプロセッサであって、 プログラムを格納する命令メモリと、 各々が、前記命令メモリに格納されたプログラムに記述
    された命令を読み出してデコードし、タスクとして実行
    する複数の命令処理部と、 前記複数のタスクの各々に与えられる実行順序を示す優
    先度にもとづいて、前記複数の命令処理部の各々のため
    にタスクを選択し、選択されたタスクを前記複数の命令
    処理部の各々に割り当てるスケジューラとを備えること
    を特徴とするマルチタスクプロセッサ。
  2. 【請求項2】 請求項1に記載のマルチタスクプロセッ
    サと、 前記複数の命令処理部の各々によって、当該命令処理部
    が実行するタスクにもとづいた起動がなされ、当該タス
    クのための処理を行うハードウェアエンジンとを備える
    ことを特徴とするデータ処理システム。
  3. 【請求項3】 請求項1に記載のマルチタスクプロセッ
    サにおいて、 タスクの切り替えが生じるときに、 前記複数の命令処理部の各々は、実行状態にあるタスク
    の処理を中断し、処理を中断したタスクを実行待ち状態
    のタスクとし、 前記スケジューラは、実行待ち状態にあるタスクの各々
    の前記優先度にもとづいて、前記実行待ち状態にあるタ
    スクの中から、前記優先度が高い順に、前記複数の命令
    処理部の数と同数のタスクを選択し、当該複数の命令処
    理部の各々に割り当てることを特徴とするマルチタスク
    プロセッサ。
  4. 【請求項4】 請求項2に記載のデータ処理システムに
    おいて、 前記マルチタスクプロセッサにおいて、タスクの切り替
    えが生じるときに、 前記複数の命令処理部の各々は、実行状態にあるタスク
    の処理を中断し、処理を中断したタスクを実行待ち状態
    のタスクとし、 前記スケジューラは、実行待ち状態にあるタスクの各々
    の前記優先度にもとづいて、前記実行待ち状態にあるタ
    スクの中から、前記優先度が高い順に、前記複数の命令
    処理部の数と同数のタスクを選択し、当該複数の命令処
    理部の各々に割り当てることを特徴とするデータ処理シ
    ステム。
  5. 【請求項5】 請求項1に記載のマルチタスクプロセッ
    サにおいて、 タスクの切り替えが生じるときに、 前記スケジューラは、タスクが割り当てられていない命
    令処理部がある場合、実行待ち状態にあるタスクの各々
    の前記優先度にもとづいて、前記実行待ち状態にあるタ
    スクの中から、前記優先度が高い順に、前記タスクが割
    り当てられていない命令処理部の数と同数のタスクを選
    択し、前記タスクが割り当てられていない命令処理部に
    割り当てることを特徴とするマルチタスクプロセッサ。
  6. 【請求項6】 請求項2に記載のデータ処理システムに
    おいて、 前記マルチタスクプロセッサにおいて、タスクの切り替
    えが生じるときに、 前記スケジューラは、タスクが割り当てられていない命
    令処理部がある場合、実行待ち状態にあるタスクの各々
    の前記優先度にもとづいて、前記実行待ち状態にあるタ
    スクの中から、前記優先度が高い順に、前記タスクが割
    り当てられていない命令処理部の数と同数のタスクを選
    択し、前記タスクが割り当てられていない命令処理部に
    割り当てることを特徴とするデータ処理システム。
  7. 【請求項7】 請求項1に記載のマルチタスクプロセッ
    サにおいて、 タスクの切り替えが生じるときに、 前記スケジューラは、実行状態にあるタスクの各々の前
    記優先度と実行待ち状態にあるタスクの各々の前記優先
    度にもとづいて、前記実行状態にあるタスクと前記実行
    待ち状態にあるタスクとの中から、前記優先度が高い順
    に、前記複数の命令処理部の数と同数のタスクを選択
    し、 前記実行状態にあるタスクが選択された場合には、 選択された前記実行状態にあるタスクの処理を行ってい
    る命令処理部にその処理を続行させ、 前記実行待ち状態にあるタスクが選択された場合には、 選択された前記実行待ち状態にあるタスクを、前記実行
    状態にあるタスクの処理を続行させる命令処理部以外の
    命令処理部に割り当てることを特徴とするマルチタスク
    プロセッサ。
  8. 【請求項8】 請求項2に記載のデータ処理システムに
    おいて、 前記マルチタスクプロセッサにおいて、タスクの切り替
    えが生じるときに、 前記スケジューラは、実行状態にあるタスクの各々の前
    記優先度と実行待ち状態にあるタスクの各々の前記優先
    度にもとづいて、前記実行状態にあるタスクと前記実行
    待ち状態にあるタスクとの中から、前記優先度が高い順
    に、前記複数の命令処理部の数と同数のタスクを選択
    し、 前記実行状態にあるタスクが選択された場合には、 選択された前記実行状態にあるタスクの処理を行ってい
    る命令処理部にその処理を続行させ、 前記実行待ち状態にあるタスクが選択された場合には、 選択された前記実行待ち状態にあるタスクを、前記実行
    状態にあるタスクの処理を続行させる命令処理部以外の
    命令処理部に割り当てることを特徴とするデータ処理シ
    ステム。
  9. 【請求項9】 複数のタスクを同時に並行して実行する
    マルチタスクプロセッサであって、 プログラムを格納する命令メモリと、 各々が、前記命令メモリに格納されたプログラムに記述
    された命令を読み出してデコードし、タスクとして実行
    する命令処理部と、 前記複数のタスクの各々に与えられる実行順序を示す優
    先度にもとづいて、前記命令処理部のためにタスクを選
    択し、選択したタスクを前記命令処理部に割り当てるス
    ケジューラとを備え、 タスクの切り替えが生じるときに、 前記スケジューラは、 実行状態にあるタスクの各々の前記優先度と実行待ち状
    態にあるタスクの各々の前記優先度とにもとづいて、前
    記実行状態にあるタスクと前記実行待ち状態にあるタス
    クとの中から、前記優先度が最も高いタスクを選択し、 前記実行状態にあるタスクが選択された場合には、 選択された前記実行状態にあるタスクの処理を行ってい
    る命令処理部にその処理を続行させ、 前記実行待ち状態にあるタスクが選択された場合には、 選択された前記実行待ち状態にあるタスクを前記命令処
    理部に割り当てることを特徴とするマルチタスクプロセ
    ッサ。
JP2002131893A 2002-05-07 2002-05-07 マルチタスクプロセッサおよびデータ処理システム Pending JP2003323309A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002131893A JP2003323309A (ja) 2002-05-07 2002-05-07 マルチタスクプロセッサおよびデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002131893A JP2003323309A (ja) 2002-05-07 2002-05-07 マルチタスクプロセッサおよびデータ処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007234073A Division JP2007328822A (ja) 2007-09-10 2007-09-10 マルチタスクプロセッサ

Publications (1)

Publication Number Publication Date
JP2003323309A true JP2003323309A (ja) 2003-11-14

Family

ID=29544321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002131893A Pending JP2003323309A (ja) 2002-05-07 2002-05-07 マルチタスクプロセッサおよびデータ処理システム

Country Status (1)

Country Link
JP (1) JP2003323309A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015638A (ja) * 2006-07-04 2008-01-24 Renesas Technology Corp データ処理装置
US8325609B2 (en) 2009-07-30 2012-12-04 Renesas Electronics Corporation Data processing device
KR101502421B1 (ko) * 2013-07-31 2015-03-16 한국항공우주연구원 시험 및 운영 절차 동시 수행 방법 및 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015638A (ja) * 2006-07-04 2008-01-24 Renesas Technology Corp データ処理装置
US8325609B2 (en) 2009-07-30 2012-12-04 Renesas Electronics Corporation Data processing device
KR101502421B1 (ko) * 2013-07-31 2015-03-16 한국항공우주연구원 시험 및 운영 절차 동시 수행 방법 및 시스템

Similar Documents

Publication Publication Date Title
TWI426452B (zh) Work processing device
TWI416413B (zh) Work processing device
JP2561801B2 (ja) プロセス・スケジューリングの管理方法およびシステム
TWI426451B (zh) Work processing device
JP2008525921A (ja) オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構
EP2282265A1 (en) A hardware task scheduler
JP2008052750A (ja) プロセッサ
JP4102425B2 (ja) プロセッサ
JP5195408B2 (ja) マルチコアシステム
JP2003323309A (ja) マルチタスクプロセッサおよびデータ処理システム
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
JP2003058381A (ja) プログラムによる例外処理設定を可能にしたプロセッサ
CN109710390B (zh) 单线程处理器的多任务处理方法及处理系统
JP2007328822A (ja) マルチタスクプロセッサ
JP4451010B2 (ja) プログラマブルコントローラ
JP5204740B2 (ja) タスク処理装置
JP7456437B2 (ja) プロセッサおよびプログラム
JP2008269597A (ja) タスク処理装置
JPH07244588A (ja) データ処理装置
JP2012168725A (ja) マルチスレッド・プロセッサ
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
KR100686156B1 (ko) 타겟 시스템에서 멀티 프로세싱 방법
JP4151497B2 (ja) パイプライン処理装置
JP2006146641A (ja) マルチスレッドプロセッサ及びマルチスレッドプロセッサの割込み方法
JPS63197273A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20050106

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070125

A131 Notification of reasons for refusal

Effective date: 20070130

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20070329

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070710