JP3576437B2 - マルチプロセッサタスク制御方法及びタスク制御装置 - Google Patents

マルチプロセッサタスク制御方法及びタスク制御装置 Download PDF

Info

Publication number
JP3576437B2
JP3576437B2 JP34115199A JP34115199A JP3576437B2 JP 3576437 B2 JP3576437 B2 JP 3576437B2 JP 34115199 A JP34115199 A JP 34115199A JP 34115199 A JP34115199 A JP 34115199A JP 3576437 B2 JP3576437 B2 JP 3576437B2
Authority
JP
Japan
Prior art keywords
task
processor
information
dispatch
multiprocessor
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
JP34115199A
Other languages
English (en)
Other versions
JP2001155001A (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 Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP34115199A priority Critical patent/JP3576437B2/ja
Publication of JP2001155001A publication Critical patent/JP2001155001A/ja
Application granted granted Critical
Publication of JP3576437B2 publication Critical patent/JP3576437B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサを有するマルチプロセッサシステム上で、複数のタスクから成る1つのアプリケーションプログラム(以後アプリケーションと記述する)を実行させるマルチプロセッサタスク制御方法及びタスク制御装置に関する。
【0002】
【従来の技術】
従来、マルチプロセッサタスク制御方法は、例えば特開平8―36553号公報に記載されたものが知られている。これは複数のプロセッサと、各プロセッサから共通にアクセス可能な1つの共有メモリと、各プロセッサと共有メモリを接続するシステムバスとから構成されている。マルチタスク・オペレーティングシステムは共有メモリ上に実装される。共有メモリ上のスケジューラは割り込み駆動でマルチプロセッサタスク制御を行う。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来のマルチプロセッサタスク制御方法においては、各プロセッサがタスクを実行する際に必ず共有メモリにアクセスしなければならず、システムバスの能力がシステム全体の能力のボトルネックとなり、思ったほどスループットが上がらないという問題がある。
【0004】
本発明はかかる点に鑑みてなされたものであり、各プロセッサがカーネル及び実行タスクのタスク情報にアクセスする場合であっても、プロセッサ間でバス競合が生ずることのないマルチプロセッサタスク制御方法及びタスク制御装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
本発明のマルチプロセッサタスク制御方法は、マルチタスク・オペレーティングシステムのカーネルを、他のプロセッサがアクセスできないプライベートメモリに実装するステップと、マルチタスク・オペレーティングシステムのタスク情報を、各プロセッサの内部に設けられるとともに他のプロセッサがアクセス可能である共有メモリに実装するステップと、ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいてディスパッチ対象タスクを決定するステップと、前記ディスパッチ対象タスクをディスパッチする自プロセッサの共有メモリに、前記ディスパッチ対象タスクのタスク情報が実装されているか否かを判定するステップと、自プロセッサ以外の他のプロセッサの共有メモリに前記ディスパッチ対象タスクのタスク情報が実装されている場合には、自プロセッサにて前記ディスパッチ対象タスクを実行する前に、前記ディスパッチ対象タスクのタスク情報を前記他のプロセッサの共有メモリから自プロセッサの共有メモリにデータ転送するステップと、を具備するようにした。
【0006】
この方法によれば、各プロセッサがカーネルにアクセスする場合であっても、プロセッサ間でバスが競合することがないので、スループットを上げることができる。
また、既存のマルチタスク・オペレーティングシステムを、タスク情報等プロセッサ間で共有する必要のある情報だけを特定のメモリ(共有メモリ)に格納するように変更するだけで、容易にマルチプロセッサシステムを実現することができる。
また、各プロセッサが実行中のタスクのタスク情報にアクセスする場合であっても、プロセッサ間でバスが競合することがないので、スループットを上げることができる。
【0009】
また、本発明のマルチプロセッサタスク制御方法は、上記マルチプロセッサタスク制御方法において、前記タスク情報に含まれる保存プロセッサ識別子により、前記タスク情報が保存されているプロセッサを管理するようにした。
【0010】
この方法によれば、タスク情報が保存されているプロセッサをタスク情報の1要素として一元管理することができるので、管理が容易になる。
【0011】
また、本発明のマルチプロセッサタスク制御方法は、上記マルチプロセッサタスク制御方法において、プロセッサ間のデータ転送時間を記述したデータ転送時間テーブルを前記共有メモリ上にシステムで管理し、各プロセッサはディスパッチを行うプロセッサの情報及び前記タスク情報が実装されているプロセッサの情報を用いて、複数のプロセッサ間のデータ転送時間の情報を記憶したデータ転送時間テーブルを参照して、前記データ転送時間が最小になるプロセッサに実装されている前記タスク情報のタスクを前記ディスパッチ対象タスクとして決定するようにした。
【0012】
この方法によれば、ディスパッチ時に発生するタスク情報のデータ転送時間を小さく抑えることができるので、スループットを上げることができる。
【0013】
また、本発明のマルチプロセッサタスク制御方法は、上記マルチプロセッサタスク制御方法において、システム起動時に全てのプロセッサのプライベートメモリ上にアプリケーションプログラムをダウンロードし、マスタプロセッサはアプリケーションプログラムのエントリタスクを起動し、残りの全てのプロセッサはアイドルタスクを起動してタスクが割り込まれるのを待つようにした。
【0014】
この方法によれば、各プロセッサがタスクの実行コード(ソース)にアクセスする場合であっても、プロセッサ間でバスが競合することがないので、スループットを上げることができる。
また、アプリケーションプログラム開発者は、マルチプロセッサタスク制御を全く意識する必要はなく、通常のコンパイラを使用してマルチタスクプログラミングを行えば良いので、プログラミングが容易になる。
【0015】
また、本発明のマルチプロセッサタスク制御方法は、システムコール発行時にコンテクストの保存及びシステムコール処理を行うステップと、前記システムコール処理によりタスクの状態が遷移した場合に、ディスパッチを行うプロセッサとタスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいてディスパッチ対象タスクを実行可能タスクの中から選択するステップと、選択した前記ディスパッチ対象タスクのタスク情報が、自プロセッサの共有メモリに実装されているか否かを判定するステップと、前記ディスパッチ対象タスクのタスク情報が自プロセッサ以外の他のプロセッサの内部に設けられている共有メモリに保存されている場合には、前記他のプロセッサの共有メモリから自プロセッサの内部に設けられている共有メモリに、前記ディスパッチ対象タスクのタスク情報をデータ転送するステップと、前記タスク情報が転送された前記共有メモリを有するプロセッサにて、前記ディスパッチ対象タスクのディスパッチを行うステップと、前記ディスパッチ対象タスクをディスパッチした後にコンテクストの復帰とシステムコールからの復帰を行うステップと、を具備するようにした。
【0016】
この方法によれば、各プロセッサがカーネル及びタスク情報にアクセスする場合であっても、プロセッサ間でバスが競合することがなく、またプロセッサ間のタスク情報のデータ転送時間を小さく抑えることができるので、スループットを上げることができる。
【0017】
また、本発明のマルチプロセッサタスク制御方法は、上記マルチプロセッサタスク制御方法において、前記ディスパッチ対象タスクの選択方法は、実行可能状態のタスクのうち最高優先度のタスク全てに対して、ディスパッチを行うプロセッサの情報及び前記タスク情報が実装されているプロセッサの情報を用いて、複数のプロセッサ間のデータ転送時間の情報を記憶したデータ転送時間テーブルを参照して、前記データ転送時間が最小になるプロセッサに実装されている前記タスク情報のタスクを前記ディスパッチ対象タスクとして選択するようにした。
【0018】
この方法によれば、タスク優先度制御を行いつつ、同一優先度の場合はタスク情報のデータ転送時間を小さく抑えることができるので、スループットを上げることができる。これは、同一優先度のタスクが多数存在するアプリケーションの場合に特に効果が大きい。
【0023】
また、本発明のマルチプロセッサタスク制御方法は、上記マルチプロセッサタスク制御方法において、ディスパッチ方法は、前記ディスパッチ対象タスクが前記自プロセッサに保存されている場合は、実行可能キューより前記ディスパッチ対象タスクを取り出して実行キューに接続し、前記ディスパッチ対象タスクが前記他のプロセッサに保存されている場合は、実行可能キューより前記ディスパッチ対象タスクを取り出して前記自プロセッサにデータ転送して実行キューに接続する一方、前記タスク情報に含まれるタスク制御ブロックの前方リンク及び後方リンクに対して取り出し接続を行い、前記タスク制御ブロック上の保存プロセッサ識別子を変更するようにした。
【0024】
この方法によれば、タスク情報のプロセッサ間の移動を簡素な方法で実現することができるので、プロセッサの実行タスクのタスク情報へのアクセスを常にプロセッサ内に閉じて行うことができる。
【0025】
本発明のマルチプロセッサタスク制御装置は、オペレーティングシステムのタスク情報を実装する共有メモリに対して複数のプロセッサがアクセスすることにより、1つのアプリケーションプログラムを構成する複数のタスクを各プロセッサにて実行するマルチプロセッサタスク制御装置であって、オペレーティングシステムのカーネルが実装されるとともにプロセッサ毎に他のプロセッサがアクセスできないプライベートメモリを具備し、前記共有メモリは各プロセッサの内部に設けられ、ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいて決定された実行タスクの前記タスク情報が前記タスクを実行する自プロセッサ以外の他のプロセッサの共有メモリに実装されている場合には、前記他のプロセッサの共有メモリから前記自プロセッサの共有メモリに、実行されるタスクの前記タスク情報が転送される構成を採る。
【0026】
この構成によれば、各プロセッサがカーネルにアクセスする場合であっても、プロセッサ間でバスが競合することがないので、スループットを上げることができる。
【0027】
また、本発明のマルチプロセッサタスク制御装置は、上記マルチプロセッサタスク制御装置において、アプリケーションプログラムを前記プロセッサの外部から複数のプロセッサの夫々へダウンロードするための共通の入出力手段と、前記複数のプロセッサの夫々に存在するダウンローダと、前記複数のプロセッサのうちのマスタプロセッサではアプリケーションプログラムのエントリタスクを起動し、スレーブプロセッサではアイドルタスクを起動するイニシャルプログラムローダと、を具備する構成を採る。
【0028】
この構成によれば、マスタプロセッサはエントリタスクを起動し、スレーブプロセッサはアイドルタスクを起動するので、マルチタスクシステムの応用としてマルチプロセッサシステムを容易に構築することができる。
【0029】
また、本発明のマルチプロセッサタスク制御装置は、各プロセッサの内部に設けられるとともに、マルチタスク・オペレーティングシステムのタスク情報を実装するタスク情報記憶手段と、システムコール処理によって遷移されたタスク状態によって各種キュー制御を行い、自プロセッサがディスパッチ対象タスクを実行しない場合には、自プロセッサの前記タスク情報記憶手段に実装されている前記ディスパッチ対象タスクのタスク情報を、前記ディスパッチ対象タスクを実行する他のプロセッサの前記タスク情報記憶手段へデータ転送するためのタスク情報転送要求を発行するタスク・スケジューリング手段と、前記タスク・スケジューリング手段によりキュー制御された後の実行状態のタスクの情報及び実行可能状態のタスクの情報と、ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいて前記ディスパッチ対象タスクを決定するマッチング決定手段と、前記タスク情報転送要求により前記ディスパッチ対象タスクのタスク情報の転送を要求された場合には、前記他のプロセッサにて前記ディスパッチ対象タスクの実行を行う前に、前記自プロセッサの前記タスク情報記憶手段から前記他のプロセッサの前記タスク情報記憶手段に対して、前記ディスパッチ対象タスクのタスク情報を転送するタスク情報転送手段と、を具備する構成を採る。
【0030】
この構成によれば、各プロセッサがカーネル及びタスク情報にアクセスする場合であっても、プロセッサ間でバスが競合することがなく、またプロセッサ間のタスク情報のデータ転送時間を小さく抑えることができるので、スループットを上げることができる。
【0031】
【発明の実施の形態】
本発明の骨子は、複数のプロセッサ夫々のローカルメモリに同一のマルチタスク・オペレーティングシステムを実装してマルチプロセッサシステムを実現すると共に、マルチタスク・オペレーティングシステムをカーネル部分とタスク情報部分に分割して、そのカーネル部分を自プロセッサのみがアクセス可能なプライベートメモリに実装し、タスク情報部分を他のプロセッサからも共通にアクセス可能な共有メモリに実装するようにしたものである。
【0032】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の実施の形態に係るマルチプロセッサタスク制御装置100の構成を示すブロック図である。
本実施の形態では、マルチプロセッサタスク制御装置100は、図2のブロック図に示すようなハードウェア構成の3つのプロセッサ(プロセッサ1、プロセッサ2、プロセッサ3)から構成されるシステムを例に挙げている。なお、プロセッサ1〜3のCPU10−1〜CPU10−3から見たメモリマップは図4に示す通りであり、ソフトウェア構成は図3に示す通りである。
【0033】
図2において、プロセッサ1はマスタプロセッサであり、残りのプロセッサ2及びプロセッサ3はスレーブプロセッサである。プロセッサ1〜プロセッサ3の夫々は、CPU(プロセッサ1はCPU10−1、プロセッサ2はCPU10−2、プロセッサ3はCPU10−3)と、プライベートメモリ11と、共有メモリ12と、割り込みコントローラ13と、バスブリッジ14とを有して構成されており、これらCPU、プライベートメモリ11、共有メモリ12及び割り込みコントローラ13はローカルバス15を介して互いに接続されている。また、プロセッサ1〜3は、夫々のバスブリッジ14を介してグローバルバス16に接続されている。
グロバールバス16には、プロセッサ1〜3で共通使用される共通I/O4がバスブリッジ14を介して接続されている。
【0034】
図1において、マルチプロセッサタスク制御装置100は、アプリケーションロード手段110と、プリエンプト・ディスパッチ手段120と、タスク情報記憶手段140と、システムコール処理手段130と、タスクスケジューリング手段150と、実行可能タスク管理手段141と、実行タスク管理手段142と、データ転送時間記憶手段160と、マッチング決定手段170と、割り込み発生手段181と、割り込み受付け手段182と、タスク情報転送手段190とを有して構成されている。この場合、実行可能タスク管理手段141と、実行タスク管理手段142と、データ転送時間記憶手段160がマスタプロセッサであるプロセッサ1にのみ存在し、その他の手段は全てのプロセッサ1〜3に共通して存在する。
【0035】
アプリケーションロード手段110は、アプリケーションを共通I/O4よりダウンロードしてマルチタスク・オペレーティングシステムとリンクし、プロセッサがマスタの場合はアプリケーションのエントリタスクを起動し、スレーブの場合はアイドルタスクを起動する。ディスパッチ・プリエンプト手段120は、システムコール発行時、コンテクストの保存及び復帰を行う。ここで、図5に示すように、タスク状態を、待ち状態、実行可能状態、実行状態の3つ定義し、タスク状態を実行可能状態から実行状態へ遷移させる動作をディスパッチ、実行状態から実行可能状態に遷移させる動作をプリエンプトと定義する。
【0036】
タスク情報記憶手段140は、図6に示すようなコンテクスト保存領域を含むタスク制御ブロック(TCB)とタスク・スタックエリアをタスク情報として記憶する。システムコール処理手段130は、要求されているシステムコール処理を行う。なお、本実施の形態では詳細を割愛しているが、システム資源の制御(各プロセッサ1〜3に存在する)及び管理(システムで1つ存在する)もシステムコール処理手段130に含まれるものとする。タスク・スケジューリング手段150は、システムコール処理手段130によって遷移されたタスク状態によって各種キュー制御を行い、決定されたタスク・スイッチング情報に基づいて割込み制御要求、タスク情報転送要求及びディスパッチ・プリエンプト要求を発行する。
【0037】
実行可能タスク管理手段141は、タスク情報記憶手段140に記憶されているタスク情報より、実行可能状態のタスクを図7に示すようにキュー管理する。実行タスク管理手段142は、タスク情報記憶手段140に記憶されているタスク情報より、実行状態のタスクを図8に示すようにキュー管理する。データ転送時間記憶手段160は、図9に示すように各プロセッサとその他のプロセッサとの間のデータ転送時間を管理する。マッチング決定手段170は、実行可能タスク管理手段141と実行タスク管理手段142及びデータ転送時間記憶手段160により図10に示すようなマッチングテーブルを作成し、プリエンプト・ディスパッチ対象タスクを決定する。
【0038】
割り込み発生手段181は、タスク・スケジューリング手段150からの要求に応じて他のプロセッサにプリエンプト・ディスパッチ要求を送信する。割り込み受付け手段182は、逆に他プロセッサからのプリエンプト・ディスパッチ要求を受信し、プリエンプト・ディスパッチ手段120に報告する。タスク情報転送手段190は、タスク・スケジューリング手段150によって要求されてディスパッチ対象のタスクのタスク情報をディスパッチ対象のプロセッサに転送する。
【0039】
また、プロセッサ1〜3のCPU10−1〜CPU10−3から見たメモリマップは図4に示すように、ローカルバス空間にはプライベートメモリ11と共有メモリ12と割り込みコントローラ13が割り当てられており、グローバルバス空間には各プロセッサ1〜3に対して共有メモリ12と、割り込みコントローラ13と、共通I/O4が割り当てられている。
一方、ソフトウェア構成は図3に示すように、プロセッサ1では、プライベートメモリ11、共有メモリう12からなるハードウェア層と、カーネル、タスク情報、キューエントリ、データ転送時間テーブルからなるOS(オペレーティングシステム)層と、アプリケーション、ローダからなるアプリケーション層とから成り、プロセッサ2及びプロセッサ3では、プライベートメモリ11、共有メモリう12からなるハードウェア層と、カーネル、タスク情報からなるOS層と、アプリケーション、ローダからなるアプリケーション層とから成る。
【0040】
以上のように構成されたマルチプロセッサタスク制御装置100について、図11〜図19を用いてその動作を説明する。
マルチプロセッサタスク制御動作は、大きく分けて図11に示すシステム起動動作と、図12〜図19に示すシステムコール動作の2つから構成される。システムコール動作は、図12に示すメイン動作と、図13〜図15に示すプリエンプト及びディスパッチ対象タスク選択動作と、図16〜図18に示すプリエンプト及びディスパッチ動作と、図19に示すマッチング動作の4つから成る。
図2に示すような3つのプロセッサからなるマルチプロセッサタスク制御装置を例にとって説明する。
【0041】
〈システム起動動作〉
図11はシステム起動動作を示すフローチャートである。
まず、ステップ1001でアプリケーションを共通I/O20より各プロセッサ1〜3のプライベートメモリ11上にダウンロードし、次いでステップ1002で、ダウンロードしたアプリケーションをマルチタスクオペレーティングシステムとリンクする。次に、ステップ1003でプロセッサがマスタプロセッサであるか否かを判定し、マスタである場合はステップ1004に進み、アプリケーションのエントリタスクを起動する。これに対して、プロセッサがスレーブプロセッサである場合はステップ1005に進み、アイドルタスク(何もしないタスク)を起動して処理を終了する。
【0042】
〈システムコール動作〉
図12はシステムコール動作を示すフローチャートである。
まず、ステップ201でコンテクストを保存した後、ステップ202で、要求されているシステムコールの処理を行う。そして、ステップ221でシステムコール処理により自タスクの状態が遷移したか否かを判定し、システムコール処理によって自タスクの状態が遷移した(実行状態から待ち状態へ)場合は、ステップ222に進み、実行キューから自タスクを取り出す。これにより、プロセッサが空き状態になることから、ステップ231でディスパッチ対象タスクを選択して、ステップ241でディスパッチを行う。ディスパッチを行った後は、ステップ281でコンテクストの復帰を行い、システムコール処理を終了する。
【0043】
一方、上記ステップ221の判定において、システムコール処理によって自タスクの状態が遷移しなかった(実行状態のまま)場合は、ステップ251に進み、システムコール処理によって他タスクの状態が遷移したかどうかを判定する。他タスクの状態が遷移した(待ち状態から実行状態へ)場合は、ステップ252に進み、実行可能状態になった他のタスクを実行可能キューに接続する。そして、ステップ253で、実行キューの最低優先度のタスクより実行可能キューの最高優先度のタスクの方が優先度が高いか否かを判定する。実行キューの最低優先度のタスクより実行可能キューの最高優先度のタスクの方が優先度が高い場合は、ステップ261に進み、プリエンプト・ディスパッチ対象タスク選択を行い、さらにステップ271でプリエンプト・ディスパッチを行う。そして、ステップ281でコンテクストの復帰を行ってシステムコール処理を終了する。
【0044】
上記ステップ253において、実行キューの最低優先度のタスクより実行可能キューの最高優先度のタスクの方が優先度が低いと判断した場合は、即座にステップ281でコンテクストの復帰を行ってシステムコール処理を終了する。
一方、上記ステップ251において、他タスクの状態が遷移しなかった(待ち状態のまま)と判断した場合は、即座にステップ281でコンテクストの復帰を行ってシステムコール処理を終了する。
【0045】
〈ディスパッチ対象タスク選択動作〉
図13はディスパッチ対象タスク選択動作を示すフローチャートである。
まず、ステップ301で、実行可能キューの最高優先度のタスク(同一優先度のタスクが存在する場合それらすべて)をディスパッチ候補タスクとする。そして、ステップ302で、ディスパッチ候補タスクが保存されているプロセッサとディスパッチ対象プロセッサ間のデータ転送時間を全ての組み合わせについてデータ転送時間テーブルより計算する。この計算による結果が得られると、ステップ303で、データ転送時間が最も小さいタスクをディスパッチ対象タスクとして選択して処理を終了する。
【0046】
〈プリエンプト・ディスパッチ対象タスク選択動作〉
図14はプリエンプト・ディスパッチ対象タスク選択動作を示すフローチャートである。
まず、ステップ401でプリエンプト・ディスパッチ候補タスク選択を行う。次に、ステップ411で、ディスパッチ候補タスクが保存されているプロセッサとプリエンプト候補タスクが実行されているプロセッサ間のデータ転送時間を全ての組み合わせについてデータ転送時間テーブルより計算して図10に示すようなマッチングテーブルを作成する。マッチングテーブルを作成した後、ステップ421で、作成したマッチングテーブルよりプリエンプト対象タスクとディスパッチ対象タスクのマッチングを行う。そして、ステップ431でマッチングによって決定された組み合わせをディスパッチ対象タスクとプリエンプト対象タスクとして選択して処理を終了する。
【0047】
〈プリエンプト・ディスパッチ候補タスク選択動作〉
図15はプリエンプト・ディスパッチ候補タスク選択動作を示すフローチャートである。
まず、ステップ501で実行キューエントリを選択すると共に、実行可能キューエントリよりキューの先頭タスクを選択する。実行キューエントリとキューの先頭タスクを選択した後、ステップ502で実行キューのタスクと実行可能キューのタスクの優先度を比較する。そして、その比較結果からステップ503の判定において、実行可能キューのタスクの方が優先度が高い場合は、ステップ504に進み、実行キューのタスクをプリエンプト候補タスクに、実行可能キューのタスクをディスパッチ候補タスクとする。
【0048】
次に、ステップ505で実行キュー及び実行可能キューのタスクを1つ進める。次いで、ステップ506の判定において、実行キューエンド又は実行可能キューエンドに到達した場合は、ステップ507に進み、プリエンプト候補タスクの優先度と同じ優先度を持つ実行キュー上のタスクをプリエンプト候補タスクに追加し、ディスパッチ候補タスクの優先度と同じ優先度を持つ実行可能キュー上のタスクをディスパッチ候補タスクに追加して処理を終了する。
【0049】
一方、上記ス503の判定において、実行可能キューのタスクの方が優先度が低い場合は、直ちにステップ507に進み、プリエンプト候補タスクの優先度と同じ優先度を持つ実行キュー上のタスクをプリエンプト候補タスクに追加し、ディスパッチ候補タスクの優先度と同じ優先度を持つ実行可能キュー上のタスクをディスパッチ候補タスクに追加して処理を終了する。
【0050】
実行キュー及び実行可能キューのタスクを1つ進めた結果、ステップ506の判定において、実行キューエンド又は実行可能キューエンドに到達しなかった場合は、ステップ502に戻り、実行キューのタスクと実行可能キューのタスクの優先度を比較する処理を行う。
【0051】
〈プリエンプト・ディスパッチ動作〉
図16はプリエンプト・ディスパッチ動作を示すフローチャートである。
まず、ステップ601の判定において、プリエンプト対象タスクが自プロセッサで実行されている場合は、ステップ611に進み、プリエンプト処理を行う。そして、ステップ621でディスパッチ処理を行った後、ステップ631の判定において、選択したタスクを全てプリエンプト・ディスパッチした場合は処理を終了し、まだ選択したタスクを全てプリエンプト・ディスパッチしていない場合は、ステップ601に戻って、プリエンプト対象タスクが自プロセッサで実行されているかの判定処理を行う。
【0052】
一方、ステップ601の判定において、プリエンプト対象タスクが自プロセッサで実行されていない場合は、ステップ641に進み、ディスパッチ対象プロセッサに対してプリエンプト・ディスパッチ要求を示す割り込みを発生させて、ステップ631に進み、選択したタスクを全てプリエンプト・ディスパッチしているかの判定処理を行う。
【0053】
プリエンプト・ディスパッチ要求を示す割り込みを発生させられたプロセッサでは、ステップ651でコンテクストの保存を行い、さらにステップ661でプリエンプト処理を行う。その後、ステップ671でディスパッチ処理を行い、次いでステップ681でコンテクストの保存を行って処理を終了する。
【0054】
〈ディスパッチ動作〉
図17はディスパッチ動作を示すフローチャートである。
まず、ステップ701の判定において、ディスパッチ対象タスクが自プロセッサ上にある場合は、ステップ702に進み、実行可能キューより選択したタスクを取り出し、それを実行キューに接続して処理を終了する。ディスパッチ対象タスクが自プロセッサ上にない(他プロセッサ上にある)場合は、ステップ703に進み、実行可能キューより選択したタスクを取り出して、そのときのタスク情報をディスパッチ対象プロセッサの共有メモリに転送し、それを実行キューに接続する。また、その他のキューのリンク(タスク制御ブロックの前方及び後方リンク等)に対しても取り出し接続を行う。そして、最後にタスク制御ブロック(TBC、図6参照)内の保存プロセッサ識別子20を変更して処理を終了する。
【0055】
〈プリエンプト動作〉
図18はプリエンプト動作を示すフローチャートである。
ステップ801で、実行キューより選択したタスクを取り出し、それを実行可能キューに接続して処理を終了する。
【0056】
〈マッチング動作〉
図19はマッチング動作を示すフローチャートである。
まず、ステップ901でディスパッチ候補タスク数とプリエンプト候補タスク数の差分を最低優先度制限個数として算出する。次に、ステップ902の判定において、ディスパッチ候補タスク数の方がプリエンプト候補タスク数より多い場合は、ステップ911に進み、プリエンプト候補タスクをマッチングテーブルより選択する。プリエンプト候補タスクを選択した後、ステップ912で、選択したプリエンプト候補タスクに対して最小のデータ転送時間を持つディスパッチ候補タスクを選択する。
【0057】
そして、ステップ913で、ディスパッチ候補タスク数とプリエンプト候補タスク数が異なる場合は、ス914で、最低優先度のディスパッチ候補タスクが最低優先度制限個数分マッチングされたかどうかを判定し、最低優先度制限個数分マッチングされた場合は、ステップ915で、まだマッチングされていない最低優先度ディスパッチ候補タスクをマッチングテーブルから削除する。
【0058】
次に、ステップ916の判定において、全てのプリエンプト候補タスクがマッチングされていた場合は処理を終了し、全てのプリエンプト候補タスクがまだマッチングされていない場合は、ステップ911に戻ってプリエンプト候補タスクをマッチングテーブルより選択する。
ディスパッチ候補タスク数とプリエンプト候補タスク数が同じ場合(ステップ913)と、ディスパッチ候補タスク数とプリエンプト候補タスク数が異なる場合(ステップ913)且つ最低優先度のディスパッチ候補タスクが最低優先度制限個数分マッチングされていない場合(ステップ914)は、ステップ916に進み、全てのプリエンプト候補タスクがマッチングされているかの判定処理を行う。
【0059】
一方、上記ステップ902の判定において、ディスパッチ候補タスク数の方がプリエンプト候補タスク数より少ない場合は、ステップ921からステップ926のように、ディスパッチ候補タスクをプリエンプト候補タスクに置き換え、プリエンプト候補タスクをディスパッチ候補タスクに置き換えて、以上説明したステップ911からステップ916と同様の動作をする。
【0060】
次に、図20を用いて本発明の実施の形態によるタスクの実行の様子について説明する。以下に説明するように、本発明によりデータ転送時間を極力小さく抑えることができることが分かる。
プロセッサ1がマスタで、時刻t0でアプリケーションのエントリタスクであるtask_Aを起動する。プロセッサ2及びプロセッサ3はスレーブで、時刻t0でアイドルタスクidleを起動し、タスクが割り当てられる(割り込まれる)のを待っている。時刻t1でタスクtask_Aはタスクtask_Bを生成し、優先度制御に従ってプロセッサ2がディスパッチ対象プロセッサに選択され、プロセッサ1はプロセッサ2に対してプリエンプト・ディスパッチ要求を示す割り込みを発生させ、プロセッサ2はタスクtask_Bをプリエンプト・ディスパッチする。その際、タスクtask_Bのタスク情報をプロセッサ1からプロセッサ2にデータ転送を行う。
【0061】
その後、同様に時刻t2でタスクtask_Aはタスクtask_Cを生成し、優先度制御に従ってプロセッサ3がディスパッチ対象プロセッサに選択され、プロセッサ1はプロセッサ3に対してプリエンプト・ディスパッチ要求を示す割り込みを発生させ、プロセッサ3はタスクtask_Bをプリエンプト・ディスパッチする。その際、タスクtask_Cのタスク情報をプロセッサ1からプロセッサ3にデータ転送を行う。時刻t8でタスクtask_Aが待ち状態に遷移し、プロセッサ1はその時点で実行可能なタスクのうち最高優先度のタスクtask_Gをディスパッチする。
【0062】
その後、時刻t9でタスクtask_Aが待ち状態から実行可能状態に遷移し、本発明のマルチプロセッサタスク制御方法に従って、データ転送時間の小さいプロセッサ1がディスパッチ対象プロセッサに選択され、データ転送処理なしに(タスクtask_Aのタスク情報はプロセッサ1にもともとあったため)プロセッサ1がタスクtask_Aをプリエンプト・ディスパッチする。時刻t10でタスクtask_Eが待ち状態に遷移し、プロセッサ3は優先度制御に従ってタスクtask_Gをディスパッチ対象タスクに選択し、データ転送を伴ってディスパッチする。
【0063】
また、時刻t11ではタスクtask_Fが待ち状態に遷移し、プロセッサ2は優先度制御に従ってタスクtask_Dをディスパッチ対象タスクに選択し、データ転送をなしに(偶然データ転送が起こらなかった)ディスパッチする。時刻t12でタスクtask_Aが再び待ち状態に遷移し、プロセッサ1は優先度制御に従ってタスクtask_Bをディスパッチ対象タスクに選択し、データ転送を伴ってディスパッチする。
【0064】
そして、時刻t13でタスクtask_Aとタスクtask_Eが待ち状態から実行可能状態に遷移し、本発明のマルチプロセッサタスク制御方法に従って、データ転送時間が小さくなるようにマッチングが行われ、プロセッサ1がタスクtask_Aを、プロセッサ2がタスクtask_Eをディスパッチするようにマッチングされる。プロセッサ1のタスクtask_Aに対するプリエンプト・ディスパッチはデータ転送処理なしに(タスクtask_Aのタスク情報はプロセッサ1にもともとあったため)行われ、プロセッサ2のタスクtask_Eに対するプリエンプト・ディスパッチはデータ転送処理を伴って行われる。
【0065】
以上のように本発明の実施の形態によれば、システムのバス構成をローカルバス15と、バスブリッジ14を介したグローバルバス25の2段構成とし、各プロセッサ1〜3のローカルバス15上に、自プロセッサのみがアクセス可能なプライベートメモリ11と、その他のプロセッサからもグローバルバス25、バスブリッジ14を介して共通にアクセス可能な共有メモリ12の用途の異なる2種類のメモリを実装する。そして、マルチタスク・オペレーティングシステムをシステム全体で共有する必要のないカーネル部分と、共有する必要のあるシステム資源(例えばセマフォ、メッセージキュー等)の管理情報及びタスク情報部分に分割し、そのうちのカーネル部分はプライベートメモリ15に、タスク情報部分は共有メモリ12に実装する。
【0066】
また、各プロセッサ1〜3の共有メモリ12間のデータ転送時間を記憶し、プロセッサ間のタスク情報のデータ転送時間が小さくなるようにタスクスケジューリングを行う。
【0067】
したがって、各プロセッサ1〜3がカーネルアクセスする場合であっても、プロセッサ間でバスが競合することがなく、またタスク情報にアクセスする場合も各タスクを実行する前にタスク情報が他プロセッサ上に保存されていれば、タスク情報のデータ転送処理を行わなければならないが、その後のタスク情報のアクセスに対してもプロセッサ間でバスが競合することはないので、スループットを上げることができる。
【0068】
また、タスク情報のデータ転送処理も、データ転送時間記憶手段160と、マッチング決定手段170とを設けて、記憶しているデータ転送時間をもとにタスクスケジューリングを行うので、短時間で終えることができ、これを行うことによって更にスループットを上げることができる。
【0069】
なお、本発明は、一般的なマルチプロセッサタスク制御に関するものであるが、対象とするアプリケーションを例えば呼制御系アプリケーションと考えた場合、移動通信システム(特に基地局装置)にも適用可能であり、その場合、例えば各タスクは、夫々の呼を制御する呼制御タスクとなる。
【0070】
【発明の効果】
以上のように本発明は、システムのバス構成をローカルバスとグローバルバスの2段構成とし、各プロセッサのローカルバス上に自プロセッサのみがアクセス可能なプライベートメモリと、その他のプロセッサからも共通にアクセス可能な共有メモリの2種類のメモリを実装し、カーネル部分はプライベートメモリに、タスク情報部分は共有メモリに実装することにより、各プロセッサがカーネル及び実行タスクのタスク情報にアクセスする場合であっても、プロセッサ間でバスが競合することがないので、スループットを上げることができるという効果が得られる。
【0071】
また、データ転送時間テーブルを参照してタスクスケジューリングを行うことにより、プロセッサ間のタスク情報のデータ転送時間を小さく抑えることができ、これを行うことで更にスループットを上げることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るマルチプロセッサタスク制御装置の構成を示すブロック図
【図2】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムの構成を示すブロック図
【図3】本発明の実施の形態に係るマルチプロセッサタスク制御装置におけるソフトウェア構成を示す図
【図4】本発明の実施の形態に係るマルチプロセッサタスク制御装置の各CPUから見たメモリマップの例を示す図
【図5】本発明の実施の形態に係るマルチプロセッサタスク制御装置におけるマルチタスクオペレーティングシステム上のタスク状態遷移を説明するための図
【図6】本発明の実施の形態に係るマルチプロセッサタスク制御装置におけるタスク情報を示す図
【図7】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおける実行可能キューを説明するための図
【図8】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおける実行キューを説明するための図
【図9】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるデータ転送時間テーブルを示す図
【図10】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるマッチングテーブルを示す図
【図11】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるシステム起動動作を示すフロー図
【図12】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるシステムコール動作を示すフロー図
【図13】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるディスパッチ対象タスク選択動作を示すフロー図
【図14】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるプリエンプト・ディスパッチ動作を示すフロー図
【図15】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるプリエンプト・ディスパッチ候補タスク選択動作を示すフロー図
【図16】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるプリエンプト・ディスパッチ動作を示すフロー図
【図17】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるディスパッチ動作を示すフロー図
【図18】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるプリエンプト動作を示すフロー図
【図19】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおけるマッチング動作を示すフロー図
【図20】本発明の実施の形態に係るマルチプロセッサタスク制御装置を用いたマルチプロセッサシステムにおける実行タスクのスイッチング動作を説明するための図
【符号の説明】
1、2、3 プロセッサ
4 共通I/O
10−1、10−2、10−3 CPU
11 プライベートメモリ
12 共有メモリ
13 割り込みコントローラ
14 バスブリッジ
15 ローカルバス
16 グローバルバス
20 保存プロセッサ識別子
100 マルチプロセッサタスク制御装置
110 アプリケーションロード手段
120 プリエンプト・ディスパッチ手段
130 システムコール処理手段
140 タスク情報記憶手段
141、142 実行可能タスク管理手段
150 タスク・スケジューリング手段
160 データ転送時間記憶手段
170 マッチング決定手段
181 割り込み発生手段
182 割り込み受付け手段
190 タスク情報転送手段

Claims (10)

  1. マルチタスク・オペレーティングシステムのカーネルを、他のプロセッサがアクセスできないプライベートメモリに実装するステップと、
    マルチタスク・オペレーティングシステムのタスク情報を、各プロセッサの内部に設けられるとともに他のプロセッサがアクセス可能である共有メモリに実装するステップと、
    ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいてディスパッチ対象タスクを決定するステップと、
    前記ディスパッチ対象タスクをディスパッチする自プロセッサの共有メモリに、前記ディスパッチ対象タスクのタスク情報が実装されているか否かを判定するステップと、
    自プロセッサ以外の他のプロセッサの共有メモリに前記ディスパッチ対象タスクのタスク情報が実装されている場合には、自プロセッサにて前記ディスパッチ対象タスクを実行する前に、前記ディスパッチ対象タスクのタスク情報を前記他のプロセッサの共有メモリから自プロセッサの共有メモリにデータ転送するステップと、
    を具備することを特徴とするマルチプロセッサタスク制御方法。
  2. 前記タスク情報に含まれる保存プロセッサ識別子により、前記タスク情報が保存されているプロセッサを管理することを特徴とする請求項1記載のマルチプロセッサタスク制御方法。
  3. プロセッサ間のデータ転送時間を記述したデータ転送時間テーブルを前記共有メモリ上にシステムで管理し、各プロセッサはディスパッチを行うプロセッサの情報及び前記タスク情報が実装されているプロセッサの情報を用いて、複数のプロセッサ間のデータ転送時間の情報を記憶したデータ転送時間テーブルを参照して、前記データ転送時間が最小になるプロセッサに実装されている前記タスク情報のタスクを前記ディスパッチ対象タスクとして決定することを特徴とする請求項1または請求項2記載のマルチプロセッサタスク制御方法。
  4. システム起動時に全てのプロセッサのプライベートメモリ上にアプリケーションプログラムをダウンロードし、マスタプロセッサはアプリケーションプログラムのエントリタスクを起動し、残りの全てのプロセッサはアイドルタスクを起動してタスクが割り込まれるのを待つことを特徴とする請求項1から請求項3のいずれかに記載のマルチプロセッサタスク制御方法。
  5. システムコール発行時にコンテクストの保存及びシステムコール処理を行うステップと、
    前記システムコール処理によりタスクの状態が遷移した場合に、ディスパッチを行うプロセッサとタスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいてディスパッチ対象タスクを実行可能タスクの中から選択するステップと、
    選択した前記ディスパッチ対象タスクのタスク情報が、自プロセッサの共有メモリに実装されているか否かを判定するステップと、
    前記ディスパッチ対象タスクのタスク情報が自プロセッサ以外の他のプロセッサの内部に設けられている共有メモリに保存されている場合には、前記他のプロセッサの共有メモリから自プロセッサの内部に設けられている共有メモリに、前記ディスパッチ対象タスクのタスク情報をデータ転送するステップと、
    前記タスク情報が転送された前記共有メモリを有するプロセッサにて、前記ディスパッチ対象タスクのディスパッチを行うステップと、
    前記ディスパッチ対象タスクをディスパッチした後にコンテクストの復帰とシステムコールからの復帰を行うステップと、
    を具備することを特徴とするマルチプロセッサタスク制御方法。
  6. 前記ディスパッチ対象タスクの選択方法は、実行可能状態のタスクのうち最高優先度のタスク全てに対して、ディスパッチを行うプロセッサの情報及び前記タスク情報が実装されているプロセッサの情報を用いて、複数のプロセッサ間のデータ転送時間の情報を記憶したデータ転送時間テーブルを参照して、前記データ転送時間が最小になるプロセッサに実装されている前記タスク情報のタスクを前記ディスパッチ対象タスクとして選択することを特徴とする請求項5記載のマルチプロセッサタスク制御方法。
  7. ディスパッチ方法は、前記ディスパッチ対象タスクが前記自プロセッサに保存されている場合は、実行可能キューより前記ディスパッチ対象タスクを取り出して実行キューに接続し、前記ディスパッチ対象タスクが前記他のプロセッサに保存されている場合は、実行可能キューより前記ディスパッチ対象タスクを取り出して前記自プロセッサにデータ転送して実行キューに接続する一方、前記タスク情報に含まれるタスク制御ブロックの前方リンク及び後方リンクに対して取り出し接続を行い、前記タスク制御ブロック上の保存プロセッサ識別子を変更することを特徴とする請求項5記載のマルチプロセッサタスク制御方法。
  8. オペレーティングシステムのタスク情報を実装する共有メモリに対して複数のプロセッサがアクセスすることにより、1つのアプリケーションプログラムを構成する複数のタスクを各プロセッサにて実行するマルチプロセッサタスク制御装置であって、
    オペレーティングシステムのカーネルが実装されるとともにプロセッサ毎に他のプロセッサがアクセスできないプライベートメモリを具備し、前記共有メモリは各プロセッサの内部に設けられ、ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいて決定された実行タスクの前記タスク情報が前記タスクを実行する自プロセッサ以外の他のプロセッサの共有メモリに実装されている場合には、前記他のプロセッサの共有メモリから前記自プロセッサの共有メモリに、実行されるタスクの前記タスク情報が転送されることを特徴とするマルチプロセッサタスク制御装置。
  9. アプリケーションプログラムを前記プロセッサの外部から複数のプロセッサの夫々へダウンロードするための共通の入出力手段と、
    前記複数のプロセッサの夫々に存在するダウンローダと、
    前記複数のプロセッサのうちのマスタプロセッサではアプリケーションプログラムのエントリタスクを起動し、スレーブプロセッサではアイドルタスクを起動するイニシャルプログラムローダと、
    を具備することを特徴とする請求項8記載のマルチプロセッサタスク制御装置。
  10. 各プロセッサの内部に設けられるとともに、マルチタスク・オペレーティングシステムのタスク情報を実装するタスク情報記憶手段と、
    システムコール処理によって遷移されたタスク状態によって各種キュー制御を行い、自プロセッサがディスパッチ対象タスクを実行しない場合には、自プロセッサの前記タスク情報記憶手段に実装されている前記ディスパッチ対象タスクのタスク情報を、前記ディスパッチ対象タスクを実行する他のプロセッサの前記タスク情報記憶手段へデータ転送するためのタスク情報転送要求を発行するタスク・スケジューリング手段と、
    前記タスク・スケジューリング手段によりキュー制御された後の実行状態のタスクの情報及び実行可能状態のタスクの情報と、ディスパッチを行うプロセッサと前記タスク情報が実装されているプロセッサとの間のデータ転送時間の情報に基づいて前記ディスパッチ対象タスクを決定するマッチング決定手段と、
    前記タスク情報転送要求により前記ディスパッチ対象タスクのタスク情報の転送を要求された場合には、前記他のプロセッサにて前記ディスパッチ対象タスクの実行を行う前に、前記自プロセッサの前記タスク情報記憶手段から前記他のプロセッサの前記タスク情報記憶手段に対して、前記ディスパッチ対象タスクのタスク情報を転送するタスク情報転送手段と、
    を具備することを特徴とするマルチプロセッサタスク制御装置。
JP34115199A 1999-11-30 1999-11-30 マルチプロセッサタスク制御方法及びタスク制御装置 Expired - Fee Related JP3576437B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34115199A JP3576437B2 (ja) 1999-11-30 1999-11-30 マルチプロセッサタスク制御方法及びタスク制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34115199A JP3576437B2 (ja) 1999-11-30 1999-11-30 マルチプロセッサタスク制御方法及びタスク制御装置

Publications (2)

Publication Number Publication Date
JP2001155001A JP2001155001A (ja) 2001-06-08
JP3576437B2 true JP3576437B2 (ja) 2004-10-13

Family

ID=18343735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34115199A Expired - Fee Related JP3576437B2 (ja) 1999-11-30 1999-11-30 マルチプロセッサタスク制御方法及びタスク制御装置

Country Status (1)

Country Link
JP (1) JP3576437B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8245101B2 (en) * 2007-12-27 2012-08-14 Sandisk Enterprise Ip Llc Patrol function used in flash storage controller to detect data errors
US8843682B2 (en) * 2010-05-18 2014-09-23 Lsi Corporation Hybrid address mutex mechanism for memory accesses in a network processor
JP4621786B2 (ja) * 2009-04-28 2011-01-26 株式会社東芝 情報処理装置、並列処理最適化方法およびプログラム
JP6079065B2 (ja) * 2012-08-31 2017-02-15 富士通株式会社 情報処理装置,処理方法及びプログラム
KR102489335B1 (ko) * 2021-04-28 2023-01-17 계명대학교 산학협력단 블록 io 스케줄링 방법 및 장치

Also Published As

Publication number Publication date
JP2001155001A (ja) 2001-06-08

Similar Documents

Publication Publication Date Title
EP1844394B1 (en) Operating-system-friendly bootloader
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
US5875329A (en) Intelligent batching of distributed messages
US6715016B1 (en) Multiple operating system control method
JP5809366B2 (ja) ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム
JP2008541215A (ja) データ処理装置内でのデータ・エンジンの使用
US20050251806A1 (en) Enhancement of real-time operating system functionality using a hypervisor
JP2561801B2 (ja) プロセス・スケジューリングの管理方法およびシステム
US20050015768A1 (en) System and method for providing hardware-assisted task scheduling
JP2006338664A (ja) オペレーティングシステム初期化中においてコードを実行するためのシステム
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
CN115048206B (zh) 资源调度方法及服务器
US20050028159A1 (en) Memory managing system and task controller in multitask system
US7924858B2 (en) Use of a data engine within a data processing apparatus
JP3576437B2 (ja) マルチプロセッサタスク制御方法及びタスク制御装置
JPH06243112A (ja) マルチプロセッサ装置
JP2001256062A (ja) 割込処理方法およびその方法を用いた演算処理装置
WO2004061663A2 (en) System and method for providing hardware-assisted task scheduling
JP7054688B2 (ja) 同期制御システムおよび同期制御方法
JP5003673B2 (ja) マルチプロセッシング方法及びマルチプロセッサシステム
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
JPH07306837A (ja) 分散処理のための装置、方法、及びプログラム製品
JPH0512173A (ja) 情報処理装置
Samman et al. Architecture, on-chip network and programming interface concept for multiprocessor system-on-chip
CN114270318A (zh) 用于通过主从轮换执行任务的方法及处理单元

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040707

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070716

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080716

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090716

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100716

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110716

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110716

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120716

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120716

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees