JP4051703B2 - シングルプロセッサ向けosによる並列処理システム、並列処理プログラム - Google Patents
シングルプロセッサ向けosによる並列処理システム、並列処理プログラム Download PDFInfo
- Publication number
- JP4051703B2 JP4051703B2 JP2003094768A JP2003094768A JP4051703B2 JP 4051703 B2 JP4051703 B2 JP 4051703B2 JP 2003094768 A JP2003094768 A JP 2003094768A JP 2003094768 A JP2003094768 A JP 2003094768A JP 4051703 B2 JP4051703 B2 JP 4051703B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- parallel processing
- communication
- processing
- interrupt
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 546
- 238000000034 method Methods 0.000 claims description 406
- 230000006854 communication Effects 0.000 claims description 299
- 238000004891 communication Methods 0.000 claims description 298
- 230000008569 process Effects 0.000 claims description 271
- 230000001360 synchronised effect Effects 0.000 claims description 27
- 230000007958 sleep Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 18
- 230000007246 mechanism Effects 0.000 claims description 15
- 230000010365 information processing Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 33
- 230000007717 exclusion Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 11
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8023—Two dimensional arrays, e.g. mesh, torus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、マルチプロセッサによる並列処理システムに関し、特に、マルチプロセッサ上でシングルプロセッサ向けOS及び既存のアプリケーションを動作させ、アプリケーションに対してマルチプロセッサによる並列処理を実現するシングルプロセッサ向けOSによる並列処理システム及び並列処理プログラムに関する。
【0002】
【従来の技術】
携帯電話及び携帯PCを含む携帯端末等のデータ処理装置においては、基本的にシングルプロセッサ上でシングルプロセッサ向けオペレーティングシステム(以下、シングルプロセッサ向けOS)及びシングルプロセッサ向けのアプリケーション(以下、単にアプリケーションと称する)を実行させているのが現状である。
【0003】
このような状況において、マルチプロセッサベースで上記アプリケーションそのままを使用したい場合には、上記シングルプロセッサ向けOSの代わりにマルチプロセッサ向けOS上でアプリケーションを実行させる必要がある。
【0004】
上記のようなマルチプロセッサシステム上でマルチプロセッサ向けOSとアプリケーションの実行を制御するシステムとしては、例えば、特開平3−257652号公報、特開平3−113563号公報に開示される従来技術がある。
【0005】
特開平3−257652号公報(特許文献1)では、複数のプロセッサエレメントからなるマルチプロセッサシステムにおける各プロセッサエレメント間の割り込み制御方法を開示する。
【0006】
特開平3−113563号公報(特許文献2)では、マルチプロセッサシステムにおける複数のプロセッサに割り当てるプロセスのスケジューリング方法を開示する。
【0007】
また、特開2003−058515号公報(特許文献3)では、複数のプロセッサエレメントで個別のプロセスを実行するための方法を開示している。
【0008】
【特許文献1】
特開平3−257652号公報
【特許文献2】
特開平3−113563号公報
【特許文献3】
特開2003−058515号公報
【0009】
【発明が解決しようとする課題】
しかし、従来のように、マルチプロセッサ向けOS上で既存のアプリケーションを動作させる場合、アプリケーションは複数のプロセッサのうちの一つしか使用しないにもかかわらず、マルチプロセッサ向けOSがマルチプロセッサ向けのサービスを行ったり、他のアプリケーションが動作していないのに他のプロセッサとの排他処理を続行するために、その余分な処理がオーバヘッドになってしまうという問題があった。
【0010】
また、上記アプリケーションをマルチプロセッサ用に改造すれば上記問題点が解消するが、改造には非常に手間とコストがかかるという別の問題点が発生する。
【0011】
また、アプリケーションがそのまま既存のシングルプロセッサ向けOS上で利用されている場合には、既存のアプリケーションをそのままマルチプロセッサ上で動作させたいという要求が高い。
【0012】
更に、並列プロセッサにおけるプロセス間の通信には、通信用データを共有する機能と、プロセスのスリープとウェイクアップを行なう機構とが必要であるが、従来では上記機能をOSのカーネルレベルで実装することで実現していた。すなわち、並列プロセッサでのプロセス間の通信には並列プロセッサ向けのOSを必要としていた。ここで、プロセス間の通信とは、プロセス間相互の処理の同期とデータ受け渡しを意味する。
【0013】
従って、上記のようにマルチプロセッサの各プロセッサ上でシングルプロセッサ向けOSを動作させるシングルプロセッサ向けOSの単なる並列化では、同じプロセッサ内のプロセス同士の通信はシングルプロセッサ向けOSの機能により可能となるが、異なるプロセッサ相互のプロセス間での通信はできないという問題がある。
【0014】
例えば、特許文献3においては、異なるプロセッサ相互のプロセス間通信を行なう方法については何ら開示されていない。
【0015】
なお、シングルプロセッサ向けOS本来の機能としてではなく、例えばネットワークを利用することにより、異なるプロセッサ相互のプロセス間での通信が可能であるが、ネットワーク通信の処理の遅さがオーバヘッドとなって、マルチプロセッサによる並列処理を行う意義が失われてしまう。
【0016】
本発明の目的は、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションをそれらに改造を加えることなく動作させ、その既存のアプリケーションに対してマルチプロセッサによる並列処理を実現できるようにしたシングルプロセッサ向けOSによる並列処理システム及び並列処理プログラムを提供することにある。
【0017】
本発明の他の目的は、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションをそれらに改造を加えることなく動作させると共に、各プロセッサ間でアプリケーションの処理単位を、同期的又は非同期的に制御することを可能とするシングルプロセッサ向けOSによる並列処理システム及び並列処理プログラムを提供することにある。
【0018】
本発明のさらに他の目的は、ユーザレベルでプロセス間の通信機能を実装することにより、マルチプロセッサ向けOSを必要とすることなく、シングルプロセッサ向けOS上でも、並列プロセッサでのプロセス間の通信を可能とするシングルプロセッサ向けOSによる並列処理システム及び並列処理プログラムを提供することにある。
【0019】
【課題を解決するための手段】
上記目的を達成するため本発明のシングルプロセッサ向けOSによる並列処理システムは、マルチプロセッサ上で、シングルプロセッサ向けOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実行する並列処理システムにおいて、一のプロセッサ上で動作する前記アプリケーション内で並列化が可能な処理単位を、他のプロセッサ上で新たな処理単位として制御する並列処理手段と、前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現するプロセス間通信手段と、を有し、前記プロセス間通信手段は、前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信し、記憶手段に確保されているセマフォ情報又はキュー情報から前記要求にによって制御の必要なプロセスの有無を判断し、前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、前記OSのシステムコールを用いて発行することを特徴とする。
【0020】
請求項2のシングルプロセッサ向けOSによる並列処理システムは、前記マルチプロセッサを論理的に、第1のプロセッサ群と第2のプロセッサ群の少なくとも二つに分け、前記第1のプロセッサ群のプロセッサに属する並列処理手段が、前記第2のプロセッサ群の少なくとも一のプロセッサに対して、前記第1のプロセッサ群の処理単位に関する要求を発し、前記第2のプロセッサ群のプロセッサが前記要求に基づいて前記処理単位を新たな処理単位として制御することを特徴とする。
【0021】
請求項3のシングルプロセッサ向けOSによる並列処理システムは、前記プロセス間通信手段は、前記第1のプロセッサ群及び前記第2のプロセッサ群のプロセッサに設けられていることを特徴とする。
【0022】
請求項4のシングルプロセッサ向けOSによる並列処理システムは、マルチプロセッサ上で、シングルプロセッサ向けOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理システムであって、前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現するプロセス間通信手段を有し、前記プロセス間通信手段は、前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信し、記憶手段に確保されているセマフォ情報又はキュー情報から前記要求によって制御の必要なプロセスの有無を判断し、前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、前記OSのシステムコールを用いて発行することを特徴とする。
【0023】
請求項5のシングルプロセッサ向けOSによる並列処理システムは、前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上に予め生成することを特徴とする。
【0024】
請求項6のシングルプロセッサ向けOSによる並列処理システムは、前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上で新たな処理単位として生成し起動することを特徴とする。
【0025】
請求項7のシングルプロセッサ向けOSによる並列処理システムは、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群の各プロセッサに、仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載することを特徴とする。
【0026】
請求項8のシングルプロセッサ向けOSによる並列処理システムは、前記第2プロセッサ群のプロセッサ上の新たな処理単位を、前記第1プロセッサ群のプロセッサ上の処理単位と同期的又は非同期的に制御することを特徴とする。
【0027】
請求項9のシングルプロセッサ向けOSによる並列処理システムは、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする。
【0028】
請求項10のシングルプロセッサ向けOSによる並列処理システムは、前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通信手段を、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサに備えることを特徴とする。
【0029】
請求項11のシングルプロセッサ向けOSによる並列処理システムは、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、前記通信領域は、通信元のプロセッサからの通信理由を保持する通信理由保持領域、通信するための通信データを保持する通信データ保持領域、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする。
【0030】
請求項12のシングルプロセッサ向けOSによる並列処理システムは、前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理手段を組み込み、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、前記通信領域は、通信元のプロセッサからの通信理由を保持する通信理由保持領域、通信するための通信データを保持する通信データ保持領域、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする。
【0031】
請求項13のシングルプロセッサ向けOSによる並列処理システムは、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、前記通信領域は、通信元のプロセッサからの通信理由と通信するための通信データを保持する通信キュー、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする。
【0032】
請求項14のシングルプロセッサ向けOSによる並列処理システムは、前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理手段を組み込み、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、前記通信領域は、通信元のプロセッサからの通信理由と通信するための通信データを保持する通信キュー、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする。
【0033】
請求項15のシングルプロセッサ向けOSによる並列処理システムは、前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理手段を設けたことを特徴とする。
【0034】
請求項16のシングルプロセッサ向けOSによる並列処理システムは、前記並列処理手段、制御処理中継手段、代理手段をモジュール化して組み込むことを特徴とする。
【0035】
請求項17のシングルプロセッサ向けOSによる並列処理システムは、前記第2プロセッサ群の前記並列処理手段に、第2プロセッサ群の他のプロセッサに対して並列処理させる処理単位を生成する機能を設けたことを特徴とする。
【0036】
請求項18のシングルプロセッサ向けOSによる並列処理システムは、前記各プロセッサに、仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載し、前記一のプロセッサ及び前記他のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする。
【0037】
請求項19のシングルプロセッサ向けOSによる並列処理システムは、前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通信手段を、前記各プロセッサに備えることを特徴とする。
【0038】
請求項20のシングルプロセッサ向けOSによる並列処理システムは、前記各プロセッサ間相互の前記処理単位間における同期的な処理及びデータ受け渡しに際し、制御信号やデータのやり取りを行うための制御処理中継手段を設けたことを特徴とする。
【0039】
請求項21のシングルプロセッサ向けOSによる並列処理システムは、前記複数のプロセッサが1つの情報処理装置に搭載されていることを特徴とする。
【0040】
請求項22のシングルプロセッサ向けOSによる並列処理プログラムは、 マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシステム上で、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理プログラムであって、前記マルチプロセッサのうちの一のプロセッサ上で動作する前記アプリケーション内で並列化が可能な処理単位を抽出する機能と、前記抽出された処理単位を前記一のプロセッサとは異なる他のプロセッサ上で新たな処理単位として制御する機能と、を有し、さらに、前記並列処理プログラムは、前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現する機能を有し、前記プロセス間通信を実現する機能は、前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信する機能と、記憶手段に確保されているセマフォ情報又はキュー情報から前記要求によって制御の必要なプロセスの有無を判断し、前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、システムコールを用いて発行する機能と、を有することを特徴とする。
【0041】
請求項23のシングルプロセッサ向けOSによる並列処理プログラムは、前記マルチプロセッサを論理的に第1のプロセッサ群と第2のプロセッサ群の少なくとも二つに分けたシステム上で動作させ、前記第1のプロセッサ群のプロセッサの少なくとも一のプロセッサ上で動作させることを特徴とする。
【0042】
請求項24のシングルプロセッサ向けOSによる並列処理プログラムは、前記プロセス間の通信を実現する機能が、前記第1のプロセッサ群及び前記第2のプロセッサ群のプロセッサに設けられていることを特徴とする。
【0043】
請求項25のシングルプロセッサ向けOSによる並列処理プログラムは、前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上に予め生成する機能を有することを特徴とする。
【0044】
請求項26のシングルプロセッサ向けOSによる並列処理プログラムは、前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上で新たな処理単位として生成し起動する機能を有することを特徴とする。
【0045】
請求項27のシングルプロセッサ向けOSによる並列処理プログラムは、仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載した前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群の各プロセッサ上で実行されることを特徴とする。
【0046】
請求項28のシングルプロセッサ向けOSによる並列処理プログラムは、前記第2プロセッサ群のプロセッサ上の新たな処理単位を、前記第1プロセッサ群のプロセッサ上の処理単位と同期的又は非同期的に制御する機能を有することを特徴とする。
【0047】
請求項29のシングルプロセッサ向けOSによる並列処理プログラムは、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とする機能を有することを特徴とする。
【0048】
請求項30のシングルプロセッサ向けOSによる並列処理プログラムは、前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通機能を、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサで実行することを特徴とする。
【0049】
請求項31のシングルプロセッサ向けOSによる並列処理プログラムは、前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理機能と、前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能とを有することを特徴とする。
【0050】
請求項32のシングルプロセッサ向けOSによる並列処理プログラムは、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継機能と、前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能を有することを特徴とする。
【0051】
請求項33のシングルプロセッサ向けOSによる並列処理プログラムは、前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理機能と、前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継機能と、前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能を有することを特徴とする。
【0052】
請求項34のシングルプロセッサ向けOSによる並列処理プログラムは、前記第2プロセッサ群の前記並列処理機能が、第2プロセッサ群の他のプロセッサに対して並列処理させる処理単位を生成することを特徴とする。
【0053】
請求項35のシングルプロセッサ向けOSによる並列処理プログラムは、仮想記憶機構を備える前記OSを搭載した前記各プロセッサ上で、前記一のプロセッサ及び前記他のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする。
【0054】
【発明の実施の形態】
本発明の並列処理システムでは、従来のシングルプロセッサ向けOSに対して一切の改造を加えることなく、複数のプロセッサへの処理を依頼する機構や複数のプロセッサへのOSサービスの提供におけるクリティカルセクションの保護機構を付加することにより、マルチプロセッサ上での並列処理を実行する。
【0055】
以下本発明の好適な実施の形態について図面を参照して詳細に説明する。
【0056】
図1は本発明の好適な実施の形態による並列処理システムの構成を示すブロック図である。
【0057】
図1に示すように、本実施の形態による並列処理システムは、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側10と第2プロセッサ側20の二組に分け、第1プロセッサ側10のプロセッサP0上で動作するシングルプロセッサ向けOS30を実装し、かつ第1プロセッサ側10のプロセッサP0及び第2プロセッサ側20のプロセッサP1〜Pnのそれぞれに、並列処理を行うための並列処理手段40P0〜40Pn及びOSサービスを処理するためのOSサービス手段50P0〜50Pnを実装して構成される。また、システムバス91には、各プロセッサP0〜Pnが共有する共有メモリとしての主記憶装置92及びディスク装置等の外部記憶装置93が接続される。
【0058】
なお、上記マルチプロセッサには、同一種類のプロセッサを複数備える構成だけでなく、DSPやセキュリティエンジン等の異種の処理装置を複数備える構成も含む。
【0059】
また、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための制御処理中継手段60が独自に設けられ、かつ第1プロセッサ側10には、シングルプロセッサ向けOS30が第2プロセッサ側20で実行されるタスクと通信するための代理手段70が設けられている。
【0060】
上記第1プロセッサ側10のプロセッサは、必ずしも単一である必要はなく複数のプロセッサからなっていてもよい。例えば、第1プロセッサ側10を2つのプロセッサとし、それぞれに異なるシングルプロセッサ向けOSを実装するような構成とすることも可能である。
【0061】
また、第1プロセッサ側10のプロセッサで起動されるシングルプロセッサ向けOS30としては、既存のOSが利用される。例えば、リアルタイムOSやUNIX(R) OSがそのまま利用される。
【0062】
本明細書で使用するタスクとは、UNIX(R) OSにおけるプロセスやスレッド、リアルタイムOSにおけるタスク等の並列処理を行うための処理単位を意味している。
【0063】
本実施の形態による並列処理システムにおいては、第1プロセッサ側10のシングルプロセッサ向けOS上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、並列化を行えないタスク(逐次タスク)を第1プロセッサ側10のプロセッサP0で処理し、アプリケーション内で並列化を行えるタスクを第2プロセッサ側20において新たなタスクとして生成して並列処理をさせる。
【0064】
並列処理手段40P0及び並列処理手段40P1〜40Pnは、タスクの生成、起動、停止、終了、削除、及びその他のタスクに関する制御を行う機能を有する。ここでは、第1プロセッサ側10の並列処理手段40P0から第2プロセッサ側20の各プロセッサP1〜Pnの並列処理手段40P1〜40Pnに対して、制御処理中継手段60を介してタスクの生成、起動、停止、終了、削除等の処理を行う。また、シグナル通知については、並列処理手段40P0と並列処理手段40P1〜40Pnの双方向から処理される。
【0065】
OSサービス手段50P0及びOSサービス手段50P1〜50Pnは、外部機器への各種のアクセスと制御を行うためのインタフェース、タスクどうしが共有するリソースへの各種アクセスと制御を行うためのインタフェースとして機能を有する。
【0066】
制御処理中継手段60は、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための手段であり、複数のプロセッサで並列処理される複数のタスク間の制御に使用される。
【0067】
代理手段70は、第2プロセッサ側20で実行されるタスク(一部あるいは全部)に対応付けられ、第2プロセッサ側20のタスクとシングルプロセッサ向けOS30間におけるシグナル通知(タスクを制御するための各種制御信号の通知)のために実装されている。
【0068】
以下、上記のように構成される本実施の形態による並列処理システムの動作について、図面を参照して詳しく説明する。
【0069】
ここでは、第1プロセッサ側10のシングルプロセッサ向けOS上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、第1プロセッサ側10のプロセッサP0で処理する処理単位を逐次タスクSTとし、アプリケーション内で並列化を行えるタスクであって、第2プロセッサ側20に対してタスクPT−1〜PT−nとして並列処理をさせる処理単位を並列化タスクPTとする。
【0070】
まず、並列処理手段40P0、40P1〜40Pnによる並列処理起動の動作について、図2と図3を用いて説明する。
【0071】
(1)第1プロセッサ側10の並列化タスクPTを、第2プロセッサ側20のタスクPT−1〜PT−nの何れかとして起動させる場合、並列処理手段40P0に対して、第2プロセッサ側20で起動させる処理単位としてのタスクPT−1〜PT−nの何れかの生成を要求する。
【0072】
並列処理手段40P0、並列処理手段40P1〜40Pnからの要求(command)としては、例えば、以下のようなものがある。create(タスクの生成)、delete(タスクの削除)、activate(タスクの起動)、terminate(タスクの終了)、signal(シグナル要求)等がある。このうち、create(タスクの生成)、delete(タスクの削除)、activate(タスクの起動)、terminate(タスクの終了)については、第1プロセッサ側10から第2プロセッサ側20へ送られる要求であり、signal(シグナル要求)は、第1プロセッサ側10と第2プロセッサ側20間で双方向から送られる。
【0073】
この要求は、図3に示すようなメッセージによって行われる。すなわち、要求する内容(この場合は、タスク生成)を示す要求内容201、タスクを処理させる第2プロセッサ側20のプロセッサP1〜Pnを指定するプロセッサ番号202、新たに生成するタスクPT−1〜PT−nを示すタスク番号、タスク生成を要求する並列化タスクPTを示す元タスク番号からなるメッセージを並列処理手段40P0に対して送信することで、タスク生成の要求を行う。なお、タスク生成以外の要求についても、図3に示すメッセージに従った要求が送られる。
【0074】
(2)これに対して、並列処理手段40P0は、生成するタスクPT−1〜PT−nに対応する代理手段70を起動する。この代理手段70は、第1プロセッサ側10と第2プロセッサ側20でタスクの管理内容を共有しないようにするため、かつ排他処理を第1プロセッサ側10で完結させるために起動される。この時、代理手段70にはタスクPT−1〜PT−nのタスク番号が保持される。
【0075】
(3)さらに、並列処理手段40P0は、上述したタスク番号及び要求内容(第2プロセッサ側20のプロセッサP1〜Pnへのタスク生成)といったタスク生成に必要なデータと、「並列処理」を指定する通信理由情報とを制御処理中継手段60に設定する。
【0076】
これにより、制御処理中継手段60に対して、後述する主記憶装置92(共有メモリ)への通信内容の設定とプロセッサ間割り込みのための処理が行われる。
【0077】
ここで、通信理由情報とは、制御処理中継手段60に渡したデータの受け取り先(取得先)を示すものであり、上記の場合、指定されたプロセッサP1〜Pnの並列処理手段40P1〜40Pnによって、制御処理中継手段60に設定されたデータが取得されることになる。
【0078】
(4)第2プロセッサ側20の指定されたプロセッサP1〜Pn上の並列処理手段40P1〜40Pnは、制御処理中継手段60から通信理由情報が「並列処理」の要求内容(タスク制御に必要なデータ)を取得する。
【0079】
(5)そして、並列処理手段40P1〜40Pnは、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを生成・起動する。
【0080】
以上により、第1プロセッサ側10のシングルプロセッサ向けOS上で動作するアプリケーションの処理単位である並列化タスクPTの処理単位をを、第2プロセッサ側20上にタスクPT−1〜PT−nとして並列処理をさせることが可能となる。
【0081】
なお、上記の動作においては、並列処理手段40P1〜40Pnは、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを生成して起動する場合について述べたが、第1プロセッサ側10の並列化タスクPTを、予め第2プロセッサ側20のタスクPT−1〜PT−nの何れかとして生成しておき、並列処理手段40P1〜40Pnが、取得した要求内容に基づいてプロセッサP1〜Pn上でタスクPT−1〜PT−nを起動するようにすることもできる。
【0082】
次に、OSサービス手段50P0、50P1〜50PnによるOSサービス処理動作について説明する。
【0083】
OSサービス手段50P0、50P1〜50Pnは、第2プロセッサ側20のプロセッサP1〜Pn上に生成したタスクPT−1〜PT−nからの要求に基づいて、シングルプロセッサ向けOS30によるサービスである、外部機器への各種アクセスと制御、他のタスクと共用するリソースへの各種アクセスと制御に関するサービスを提供するための機能を有する。シングルプロセッサ向けOS30によるサービスには、通常のOSが提供するシステムコールやAPIに相当するものが主な対象となる。
【0084】
第2プロセッサ側20のプロセッサP1〜Pn上のタスクPT−1〜PT−nからのファイルアクセス(例えば、外部記憶装置93上のファイルに対する各種の処理)要求に対するOSサービス手段50P0、50P1〜50Pnの動作を図4を参照して説明する。
【0085】
ここで、ファイルアクセスには、open(ファイルのオープン)、close(ファイルのクローズ)、read(ファイルの読み出し)、write(ファイルの書き込み)、seek(ファイル書き込み位置の移動)、remove(ファイルの削除)、rename(ファイルの名称変更)等の処理が含まれる。
【0086】
(1)第2プロセッサ側20のタスクPT−1〜PT−nにおいてファイルアクセス処理の必要が発生すると、タスクPT−1〜PT−nが、第2プロセッサ側20のOSサービス手段50P1〜50Pnに対してファイルアクセスのためのサービスを要求する。このファイルアクセスのサービス要求においては、例えば、OSサービス手段50P1〜50Pnのファイルへの書き込み処理として定義されたwrite関数やファイルの読み出し処理として定義されたread関数等が呼び出される。
【0087】
ここで、OSサービス手段50P1〜50Pnは、第1プロセッサ側10の処理(シングルプロセッサ向けOS30によるファイルアクセス処理)に必要なデータを設定する。ここで、必要なデータには、要求内容(例えば、write request)、アクセスするファイルの記述子(file descriptor)、文字列へのポインタ、文字列の長さ、タスク番号等の情報が含まれる。
【0088】
(2)OSサービス手段50P1〜50Pnは、通信理由情報を「OSサービス」として、要求内容を含む必要なデータを制御処理中継手段60に対して設定することで、第1プロセッサ側10に対してファイルアクセス要求を発行する。
【0089】
その後、ファイルアクセスのサービス要求を行ったタスクPT−1〜PT−nは、待ち状態となり、対応するプロセッサP1〜Pnにおいては並列処理手段40P1〜40Pnにより他のタスクへ処理が切り替わる(タスクのswitch:スイッチ)。
【0090】
(3)第1プロセッサ側10のOSサービス手段50P0は、制御処理中継手段60から「OSサービス」という通信理由情報の上記ファイルアクセス要求を取得する。
【0091】
(4)第1プロセッサ側10のOSサービス手段50P0は、取得した要求内容に従ってシングルプロセッサ向けOS30に対してファイルアクセスを要求する。
【0092】
(5)これにより、シングルプロセッサ向けOS30は、要求に基づいて外部記憶装置93等に対するファイルアクセス(writeやread等)を行う。このファイルアクセス処理は、シングルプロセッサ向けOS30が本来備えているファイルアクセスサービスをそのまま利用して実行される。
【0093】
(6)要求されたファイルアクセス処理が終了すると、シングルプロセッサ向けOS30は、第1プロセッサ側10のOSサービス手段50P0にファイルアクセス要求に対する戻り値を返し、処理を戻す。
【0094】
(7)さらに、OSサービス手段50P0は、その戻り値とファイルアクセス要求を行ったタスクPT−1〜PT−nのタスク番号を含むデータである通信内容を、「OSサービス」を通信理由情報として制御処理中継手段60に設定することにより、第2プロセッサ側20のプロセッサP1〜Pnに対してファイルアクセスの完了を通知する。
【0095】
(8)対応するプロセッサP1〜PnのOSサービス手段50P1〜50Pnは、制御処理中継手段60から上記設定された戻り値と完了通知を受け取る。
【0096】
(9)そして、第2プロセッサ側20のOSサービス手段50P1〜50Pnは、並列処理手段40P1〜40Pnに対してファイルアクセス要求を行ったタスクPT−1〜PT−nを起動するように依頼する。
【0097】
これにより、待ち状態となっていたタスクPT−1〜PT−nに処理が切り替わる。
【0098】
(10)並列処理手段40P1〜40Pnから起動されたタスクPT−1〜PT−nは、OSサービス手段50P1〜50Pnからファイルアクセスの戻り値を受け取り、処理を継続する。
【0099】
以上により、第2プロセッサ側20に個別にファイルアクセスのための処理手段を設けることなく、第2プロセッサ側20におけるタスクPT−1〜PT−nはシングルプロセッサ向けOS30のサービスをそのまま利用してファイルアクセスが可能となる。また、これにより、ファイルアクセスのための排他処理については、第1プロセッサ側10で完結するため、マルチプロセッサ向けOS上でアプリケーションを動作させる場合のような排他処理によるオーバヘッドが発生することなく並列処理を実現できる。
【0100】
なお、第2プロセッサ側20のプロセッサP1〜Pn上のタスクPT−1〜PT−nが、例えば外部記憶装置93上のリードオンリー(read only)のデータをファイルアクセスする場合には、上記のようにOSサービス手段50P1〜50Pnによる処理を経ることなく、各プロセッサP1〜Pnから外部記憶装置93に直接アクセスするようにしてもよい。
【0101】
ここで、第1プロセッサ側10のプロセッサP0上の逐次タスクSTからのファイルアクセス要求については、OSサービス手段によることなく直接シングルプロセッサ向けOS30によって処理がなされる。以下、図5を参照して説明する。
【0102】
(1)プロセッサP0上の逐次タスクSTは、シングルプロセッサ向けOS30に対してファイルアクセスを要求する。
【0103】
(2)これにより、シングルプロセッサ向けOS30は、要求に基づいて外部記憶装置93等に対するファイルアクセス(writeやread等)を行う。このファイルアクセス処理は、シングルプロセッサ向けOS30が本来備えているファイルアクセスサービスをそのまま利用して実行される。
【0104】
(3)ファイルアクセス処理が終了すると、シングルプロセッサ向けOS30は、逐次タスクSTに対してファイルアクセス要求に対する戻り値を返し、処理を戻す。
【0105】
逐次タスクSTからのOSサービス要求に対しては排他制御等の必要がないので、余計なオーバヘッドが発生しない。
【0106】
制御処理中継手段60による処理動作について、図6及び図7を参照して説明する。
【0107】
まず、制御処理中継手段60の構成を図6に示す。図示のように、制御処理中継手段60は、各プロセッサP0〜Pnに対応した割り込み制御装置61P0〜61Pnと、各プロセッサP0〜Pnに対応した通信領域62P0〜62Pnとを備えて構成される。ここで、通信領域62P0〜62Pnは、主記憶装置92内に確保される。
【0108】
さらに、割り込み装置61P0〜61Pnは、他のプロセッサに対して割り込みを指示する割込指示部61a、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部61b、割り込みをクリアする割込取消部61cにより構成される。
【0109】
また、通信領域62P0〜62Pnは、通信元のプロセッサからの通信理由情報を保持する通信理由保持領域62a、通信するための通信データを保持する通信データ保持領域62b、通信を確保するために通信領域に対してロックをかけるための排他制御領域62cにより構成される。
【0110】
ここで、通信データ持領域62bには、通信する通信データ(要求内容を含む必要データ)が格納される主記憶装置92へのポインタが格納されることになる。
【0111】
第1プロセッサ側10の並列処理手段40P0から第2プロセッサ側20のプロセッサP1への通信処理を例にとり、図7を参照してその動作を説明する。
【0112】
(1)並列処理手段40P0は、プロセッサP1用の通信領域62P1の排他制御領域62cにロックをかける。具体的には、排他制御領域62cに格納されるlock変数をロック状態とすることにより、当該プロセッサP1用の通信領域62P1が他のプロセッサで使用されるのを排する。
【0113】
他のプロセッサによって既にロックされている場合には、ロックが解除されるのを待つ。
【0114】
(2)通信領域62P1のロックが取得できた場合、並列処理手段40P0は、通信理由情報と通信データ(要求内容を含む必要データ)を、通信領域62P1の通信理由保持領域62aと通信データ保持領域62bのそれぞれに格納する。
【0115】
格納される通信理由情報としては、上述したようにタスク生成のための通信処理であれば、「並列処理」を示す情報(例えば、並列処理に対応して予め定められている数値等のデータ)が格納される。
【0116】
(3)並列処理手段40P0は、自身の割込制御装置61P0の割込指示部61aに対して、プロセッサP1への割り込みを指示する。
【0117】
(4)割込制御装置61P0の割込指示部61aは、プロセッサP1に対応する割込制御装置61P1の割込状態保持部61bに、割り込みを示す情報をセットする。これにより、プロセッサP1が割り込み状態となる。
【0118】
(5)プロセッサP1の並列処理手段40P1は、制御処理中継手段60の割込制御装置61P1の割込状態保持部61bの状態より、割り込みがセットされたことを判別する。
【0119】
(6)プロセッサP1の並列処理手段40P1は、制御処理中継手段60の自身の割込状態保持部61bの割り込み情報をクリアすることにより、自身の割り込み状態を解除する。
【0120】
(7)プロセッサP1の並列処理手段40P1は、さらに、制御処理中継手段60の自身の通信領域62P1の通信理由保持領域62aと通信データ保持領域62bから、通信理由情報と通信データ(要求内容を含む必要データ)をそれぞれ取得する。
【0121】
(8)プロセッサP1の並列処理手段40P1は、次の通信を受理できるようになった後、自身の通信領域62P1の排他制御領域62cのロックを解除する。具体的には、排他制御領域62cに格納されるlock変数をアンロック状態とすることにより、当該プロセッサP1用の通信領域62P1が他のプロセッサから使用できるように解放する。
【0122】
以上のように、制御処理中継手段60を用いることにより、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りが実現される。
【0123】
また、代理手段70によるシグナル通知処理動作について、図8を参照して説明する。
【0124】
代理手段70は、シングルプロセッサ向けOS30が第2プロセッサ側20に生成したタスクPT−1〜PT−nとシグナル(制御信号)による通信を行うための機能を有する。この代理手段70には、対応するタスクPT−1〜PT−nのタスク番号が保持されている。
【0125】
なお、複数のタスクPT−1〜PT−nに一対一に代理手段70を関連付けてもよいし、一つの代理手段70に複数のタスクPT−1〜PT−nを関連付けてもよい。
【0126】
(1)第1プロセッサ側10の逐次タスクSTが、シングルプロセッサ向けOS30に対してシグナル通知のサービスを要求する。このシグナル通知によって通信されるシグナルは、シングルプロセッサ向けOS30が本来有するサービス機能により、第2プロセッサ側20の各プロセッサP1〜Pn上で起動されているタスクPT−1〜PT−nを制御するための制御信号である。
【0127】
(2)シングルプロセッサ向けOS30は、シグナルを対応する代理手段70に通知する。
【0128】
(3)代理手段70は、通知されたシグナルを制御処理中継手段60を通じて、自身に対応する第2プロセッサ側20のタスクPT−1の存在するプロセッサP1〜Pnへ通知する。ここで、通信理由情報としては、「並列処理」が設定される。
【0129】
(4)制御処理中継手段60への通信理由情報が「並列処理」であることから、第2プロセッサ側20の対応するプロセッサの並列処理手段40P1〜40Pnは、制御処理中継手段60からシグナル通知要求を取得する。
【0130】
(5)シグナル通知要求を取得した並列処理手段40P1〜40Pnは、対応するタスクPT−1〜PTnに対してシグナル(制御信号)を通知する。
【0131】
以上により、代理手段70が第2プロセッサ側20のプロセッサP0〜Pn上のタスクPT−1〜PT−nとタスク番号によって関連付けられているので、第1プロセッサ側10ではタスクPT−1〜PT−nに対してシングルプロセッサ向けOS30によるシグナル通知のサービスを実行することが可能となる。
【0132】
最後に、第2プロセッサ側20におけるタスク相互の連携動作について、図9と図10を参照して説明する。
【0133】
タスク間の連携を取るための並列処理手段40P1〜40Pnの構成を図9に示す。図示のように、並列処理手段40P1〜40Pnは、相互排他手段41P1〜41Pnを備えている。
【0134】
また、タスクの連携を取るため、主記憶装置92内には、排他制御領域43とタスク管理内容保持領域44を有する。
【0135】
(1)プロセッサP1上のタスクPT−1は、自身の並列処理手段40P1に対して所望の並列処理を要求する。
【0136】
(2)プロセッサP1の並列処理手段40P1は、相互排他手段41P1に並列処理に用いる資源の確保のためにロック取得を要求する。
【0137】
(3)相互排他手段41P1は、主記憶装置92の排他制御領域43を用いてロックを取得する。
【0138】
(4)相互排他手段41P1は、並列処理手段40P1に対してロック取得ができた旨を通知する。
【0139】
(5)並列処理手段40P1は、タスク管理内容保持領域44にプロセッサP1上の並列処理を要求したタスクPT−1の管理内容(要求内容、タスク番号その他の必要なデータ)を保持する。
【0140】
(6)並列処理手段40P1は、優先度の低いタスクを実行している他のプロセッサP2〜Pnへ割り込みをかける。ここでは、プロセッサPnへの割り込みがかけられたものとする。
【0141】
(7)並列処理手段40P1は、相互排他手段41P1に対して上記確保したロックの解除を要求する。
【0142】
(8)相互排他手段41P1は、主記憶装置92の排他制御領域43のロックを解除する。
【0143】
(9)相互排他手段41P1は、並列処理手段40P1に対してロックの解除完了を通知する。
【0144】
(10)並列処理手段40P1は、タスクPT−1に処理を戻す。
【0145】
(11)プロセッサPnの並列処理手段40Pnは、相互排他手段41Pnに対して並列処理に用いる資源の確保のためのロック取得を要求する。
【0146】
(12)相互排他手段41Pnは、主記憶装置92の排他制御領域43を用いてロックを取得する。
【0147】
(13)相互排他手段41Pnは、並列処理手段40Pnに対してロックの取得完了を通知する。
【0148】
(14)並列処理手段40Pnは、タスク管理内容保持領域44内に格納されているタスク管理内容を取得する。
【0149】
(15)並列処理手段40Pnは、タスク管理内容に基づいて新たなタスクを生成起動する。
【0150】
(16)並列処理手段40Pnは、相互排他手段41Pnに対して上記確保したロックの解除を要求する。
【0151】
(17)相互排他手段41Pnは、主記憶装置92の排他制御領域43のロックを解除する。
【0152】
(18)相互排他手段41Pnは、並列処理手段40Pnに対してロックの解除完了を通知する。
【0153】
以上のタスク連携動作により、あるプロセッサP1〜Pnで起動しているタスクPT−1〜PT−nが、自身の処理単位を他のプロセッサに対して並列処理させることが可能となる。
【0154】
上記のように構成される並列処理システムにおける適用例としては、例えばマルチプロセッサの携帯端末において、アプリケーションを動作させる場合を説明する。
【0155】
ここで、アプリケーションが携帯端末上で映像(動画)と音声を同時に再生する機能を有し、そのうち音声出力処理を逐次タスクAとして、映像出力処理を並列化タスクBとして第1プロセッサ側10のプロセッサP0上で動作させる場合を想定して、図11を参照して説明する。
【0156】
並列化タスクBは、上述した並列処理手段によって、第2プロセッサ側20のプロセッサP1〜Pnの何れかにタスクCとして生成され起動される。
【0157】
生成されたタスクCは、OSサービス手段のファイルアクセス処理によって映像の画面出力を実行する。
【0158】
また、逐次タスクAによる音声出力は、シングルタスクOS30のサービスによって音声の出力が実行される。
【0159】
音声と映像の同期を定期的に取る場合には、上述した代理手段70によるシグナル通知動作によって逐次タスクAとタスクC間のシグナル通知を行うことで同期をとる。
【0160】
また、タスクCにおいて、映像に編集を加える処理を実行する場合には、その編集処理をタスク連携処理によって他のプロセッサ上にタスクDとして生成起動する。
【0161】
タスクCによる映像出力処理が終了した場合には、タスクCからファイルアクセス動作によってシングルプロセッサ向けOSに終了通知を行う。
【0162】
本実施の形態においては、並列処理手段40P0〜40Pn、OSサービス手段50P0〜50Pn、制御処理中継手段60及び代理手段70については、モジュールとして実装することにより、シングルプロセッサ向けOS30及びプロセッサP0上で実行されるアプリケーションに改造を加えることなく、マルチプロセッサのシステム構成上で、シングルプロセッサ向けOS30及びアプリケーションをオーバヘッドなく動作させることができると共に、マルチプロセッサによる並列処理の恩恵を受けることが可能となる。
【0163】
次に、本発明の第2の実施の形態による並列処理システムについて、図12以下を参照して説明する。図12は、この第2の実施の形態による並列処理システムの構成を示すブロック図であり、図1と共通の構成要素については同じ符号を用いている。図12に示す第2の実施の形態では、第1の実施の形態における並列処理手段40P0〜40Pnを、それぞれ並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnとで構成した場合を示している。
【0164】
図12に示すように、本実施の形態による並列処理システムにおいて、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側100と第2プロセッサ側200の二組に分けて構成している点については、第1の実施の形態と同様である。
【0165】
この第2の実施の形態においては、第1プロセッサ側100のプロセッサP0及び第2プロセッサ200のプロセッサ(CPU)P0〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P0〜300Pnを実装している。
【0166】
また、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pnのそれぞれに、並列処理を行うための並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnを実装して構成される。また、システムバス91には、各プロセッサP0〜Pnが共有する共有メモリとしての主記憶装置92及びディスク装置等の外部記憶装置93が接続されている。
【0167】
また、第1プロセッサ側100と第2プロセッサ側200間で、制御信号やデータのやり取りを行うための制御処理中継手段600が独自に設けられている。
【0168】
なお、この実施の形態では、第1の実施の形態で示した第1プロセッサ側100のシングルプロセッサ向けOS300P0が第2プロセッサ側200で実行されるプロセスと通信するための代理手段70については、第1の実施の形態と全く同じ機能を実行するため、便宜上省略している。
【0169】
また、第1の実施の形態では、第2プロセッサ側20のプロセッサP1〜Pn上のタスクからのファイルアクセス要求に対してタスクのswitch(スイッチ)がなされることを説明したが、本実施の形態においても、第2プロセッサ側200からのファイルアクセスが可能であり、ファイルアクセス要求を行なった第2プロセッサ側200のプロセスPP−1〜PPnは、第2プロセッサ側200のシングルプロセッサ向けOS300P1〜300Pnによってプロセスのswitch(スイッチ)が行なわれる。
【0170】
上記各プロセッサP0〜Pnに実装されるシングルプロセッサ向けOS300P0〜300Pnについては、リアルタイムOSのようなメモリ保護機能を実現する仮想記憶機構を持たないOSだけではなく、既存のOSであるLinuxやWindows(R)等といった仮想記憶機構を備えるOSも用いることが可能であり、各プロセッサP0〜Pnの全て、もしくは一部においてメモリ保護機構の実現が可能である点で第1の実施の形態と相違する。
【0171】
なお、シングルプロセッサ向けOS300P0〜300Pnは、全部が同じ種類のOSである必要はなく、互いに異なる種類のOSであってもよい。
【0172】
この実施の形態では、並列処理を行うための処理単位であるタスクが互いのプロセッサ間でメモリ保護されており、その意味で第1の実施の形態のタスクと区別するためにプロセスと称することとする。
【0173】
本実施の形態による並列処理システムにおいては、第1プロセッサ側100のシングルプロセッサ向けOS300P0上で動作するアアプリケーションの処理単位のうち、並列化を行えないプロセス(逐次プロセスSP)を第1プロセッサ側100のプロセッサP0で処理し、アプリケーション内で並列化を行えるタスクを第2プロセッサ側200において新たなプロセスPP−1〜PP−nとして生成し並列処理をさせる。
【0174】
並列処理通信手段400P0及び並列処理通信手段400P1〜400Pnは、プロセスとシングルプロセッサ向けOSOS300P0〜300Pnとの間で、プロセスの生成、起動、停止、終了、削除、及びその他のプロセスに関する制御情報の受け渡しを行う機能を有する。
【0175】
ここで、第1プロセッサ側100と第2プロセッサ側200間においては、制御処理中継手段600を介してタスクの生成、起動、停止、終了、削除等に関する制御情報やデータをやり取りする。
【0176】
また、制御代理手段500P0及び制御代理手段500P1〜500Pnは、シングルプロセッサ向けOSOS300P0〜300Pnからプロセスへの処理要求を入手してプロセスを起動する機能を有する。
【0177】
制御処理中継手段600は、第1プロセッサ側10と第2プロセッサ側20間で、制御信号やデータのやり取りを行うための手段であり、複数のプロセッサで並列処理される複数のプロセス間の制御に使用される。
【0178】
以下、上記のように構成される第2の実施の形態による並列処理システムの動作について、図面を参照して詳しく説明する。
【0179】
ここでは、第1プロセッサ側100のシングルプロセッサ向けOS300P0上でアプリケーションが動作し、そのアプリケーションの処理単位のうち、第1プロセッサ側100のプロセッサP0で処理する処理単位を逐次プロセスSPとし、アプリケーション内で並列化を行えるプロセスであって、第2プロセッサ側200に対してタスクPP−1〜PP−nとして並列処理をさせる処理単位を並列化プロセスPPとする。
【0180】
この第2の実施の形態においては、あるプロセス(タスク)を起動した後に、呼び出し側のプロセス(タスク)である並列化プロセスPPが、起動したプロセスPP−1〜PP−nの終了を待ち合わせる並列処理の同期起動と、呼び出し側のプロセス(タスク)である並列化プロセスPPが、起動したプロセスPP−1〜PP−nの終了を待ち合わせなくとよい並列処理の非同期起動とが可能である。
【0181】
まず、プロセスの並列処理の同期起動の動作について、図13を参照して説明する。
【0182】
ここでは、第1プロセッサ側100の並列化プロセスPPが、第2プロセッサ側200のプロセッサPk(1≦k≦n)において、第2プロセッサ側200で起動させる処理単位であるプロセスPP−kとして予め生成されているものとする。
【0183】
(1)第2プロセッサ側200のプロセッサPk(1≦k≦n)上のプロセスPP−kが、並列処理通信手段400Pkに対して、自プロセスに属する処理の情報を登録する。これにより、プロセスPP−kは待機状態となっている。
【0184】
(2)並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で主記憶装置92(共有メモリ)上に必要なデータをアクセスする要求を行う。
【0185】
(3)これにより、プロセスPP−kに属する処理の情報が主記憶装置92(共有メモリ)に格納される。
【0186】
(4)プロセッサP0上のプロセスPPは、並列処理通信手段400P0に対して同期的な処理を依頼する。その後、プロセスPPは待機状態となる。
【0187】
(5)依頼を受けた並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)上のデータに対するアクセス要求を行う。
【0188】
(6)シングルプロセッサ向けOS300P0により主記憶装置92(共有メモリ)がアクセスされる。
【0189】
(7)並列処理通信手段400P0は、主記憶装置92(共有メモリ)からプロセスPP−kに属する処理の情報を取得する。これにより、プロセスPP−kを実行するプロセッサ番号とプロセス番号が取得される。
【0190】
(8)並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)から取得した情報に基づいて通信依頼を要求する。
【0191】
(9)シングルプロセッサ向けOS300P0により、通信に必要な情報が制御処理中継手段600に設定される。
【0192】
(10)これにより、制御処理中継手段600からプロセッサPkのシングルプロセッサ向けOS300Pkに対して処理要求が送信される。
【0193】
(11)プロセッサPkの制御代理手段500Pkは、シングルプロセッサ向けOS300Pk経由で送信された処理要求を入手する。
【0194】
(12)そして、制御代理手段500Pkは、入手した処理要求によりプロセスPP−kを起動する。
【0195】
(13)これにより、待機状態にあったプロセスPP−kは処理を実行する。
【0196】
(14)処理が終了後、プロセスPP−kは、その旨の情報を並列処理通信手段400Pkに通知する。
【0197】
(15)通知を受けた並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で通知された情報に基づいて通信依頼を要求する。
【0198】
(16)シングルプロセッサ向けOS300Pkにより、通信に必要な情報が制御処理中継手段600に設定される。
【0199】
(17)これにより、制御処理中継手段600からプロセッサP0のシングルプロセッサ向けOS300P0に対して処理要求が送信される。
【0200】
(18)プロセッサP0の制御代理手段500P0は、シングルプロセッサ向けOS300P0経由で送信された処理要求を入手する。
【0201】
(19)そして、制御代理手段500P0は、入手した処理要求によりプロセスPPを起動する。
【0202】
以上により、第1プロセッサ側100のプロセッサP0上のプロセスPPと第2プロセッサ側200のプロセッサPP−kとの間での同期的な処理が実現される。
【0203】
次に、プロセスの並列処理の非同期起動の動作について、図14を参照して説明する。
【0204】
ここでも、第1プロセッサ側100の並列化プロセスPPが、第2プロセッサ側200のプロセッサPk(1≦k≦n)において、第2プロセッサ側200で起動させる処理単位であるプロセスPP−kとして予め生成されているものとする。
【0205】
(1)処理を行っていた第2プロセッサ側200のプロセッサPk(1≦k≦n)上のプロセスPP−kが、並列処理通信手段400Pkに対して、自プロセスに属する処理の情報を登録する。これにより、プロセスPP−kは待機状態となる。
【0206】
(2)並列処理通信手段400Pkは、シングルプロセッサ向けOS300Pk経由で主記憶装置92(共有メモリ)上に必要なデータをアクセスする要求を行う。
【0207】
(3)これにより、プロセスPP−kに属する処理の情報が主記憶装置92(共有メモリ)に格納される。
【0208】
(4)プロセッサP0上のプロセスPPは、並列処理通信手段400P0に対して非同期的な処理を依頼する。この場合、プロセスPPは待機状態となることなくその後も処理を継続する。
【0209】
(5)依頼を受けた並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)上のデータに対するアクセス要求を行う。
【0210】
(6)シングルプロセッサ向けOS300P0により主記憶装置92(共有メモリ)がアクセスされる。
【0211】
(7)並列処理通信手段400P0は、主記憶装置92(共有メモリ)からプロセスPP−kに属する処理の情報を取得する。これにより、プロセスPP−kを実行するプロセッサ番号とプロセス番号が取得される。
【0212】
(8)並列処理通信手段400P0は、シングルプロセッサ向けOS300P0経由で主記憶装置92(共有メモリ)から取得した情報に基づいて通信依頼を要求する。
【0213】
(9)シングルプロセッサ向けOS300P0により、通信に必要な情報が制御処理中継手段600に設定される。
【0214】
(10)これにより、制御処理中継手段600からプロセッサPkのシングルプロセッサ向けOS300Pkに対して処理要求が送信される。
【0215】
(11)プロセッサPkの制御代理手段500Pkは、シングルプロセッサ向けOS300Pk経由で送信された処理要求を入手する。
【0216】
(12)そして、制御代理手段500Pkは、入手した処理要求によりプロセスPP−kを起動する。
【0217】
(13)これにより、待機状態にあったプロセスPP−kは処理を実行する。
【0218】
以上により、第1プロセッサ側100のプロセッサP0上のプロセスPPと第2プロセッサ側200のプロセッサPP−kとの間での非同期的な処理が実現される。
【0219】
さらに、第2の実施の形態による並列処理システムにおける制御処理中継手段600による処理動作について、図15及び図16を参照して説明する。
【0220】
まず、制御処理中継手段600の構成を図15に示す。図示のように、制御処理中継手段600は、各プロセッサP0〜Pnに対応した割り込み制御装置601P0〜601Pnと、各プロセッサP0〜Pnに対応した通信領域602P0〜602Pnとを備えて構成される。ここで、通信領域602P0〜602Pnは、主記憶装置92内に確保される。
【0221】
上記割り込み制御装置601P0〜601Pnについては、図6に示した第1の実施の形態の制御処理中継手段60の構成と同様であり、割込指示部601a、割込状態保持部601b、割込取消部601cにより構成される。
【0222】
また、通信領域602P0〜602Pnについても、図6に示した第1の実施の形態と基本的に同じ構成であり、図6の通信理由保持領域62aと通信データ保持領域62bとを組み合わせた通信キュー602aと、排他制御領域602cにより構成される。
【0223】
第1プロセッサ側100の並列処理通信手段400P0から第2プロセッサ側20のプロセッサPnへの通信処理を例にとり、図16を参照してその動作を説明する。
【0224】
(1)並列処理通信手段400P0は、プロセッサP1用の通信領域602Pnの排他制御領域602bにロックをかける。具体的には、排他制御領域602bに格納されるlock変数をロック状態とすることにより、当該プロセッサPn用の通信領域602Pnが他のプロセッサで使用されるのを排する。
【0225】
(2)並列処理通信手段400P0は、通信理由情報と通信データ(要求内容を含む必要データ)を、通信領域602Pnの通信キュー602aに格納する。
【0226】
格納される通信理由情報としては、上述したようにプロセスの生成起動のための通信処理であれば、「プロセス起動」を示す情報(例えば、並列処理に対応して予め定められている数値等のデータ)が格納される。
【0227】
(3)(1)の時点で通信領域602Pnの通信キュー602aが空であった場合、並列処理通信手段400P0は、自身の割込制御装置601P0の割込指示部601aに対して、プロセッサPnへの割り込みを指示する。
【0228】
(4)プロセッサP0の並列処理通信手段400P0は、プロセッサPn用の通信領域602Pnの排他制御領域602bをアンロック状態とする。(1)の時点で通信領域602Pnの通信キュー602aが空でない場合には、割り込みの必要がないので、ここで処理を終了する。
【0229】
(5)割込制御装置601P0の割込指示部601aは、プロセッサPnに対応する割込制御装置601Pnの割込状態保持部601bに、割り込みを示す情報をセットする。これにより、プロセッサPnが割り込み状態となる。
【0230】
(6)プロセッサPnのシングルプロセッサ向けOS300pnは、プロセッサPn用の割込制御装置601Pnの割込状態保持部601bの状態より、割り込みを受理する。
【0231】
(7)プロセッサPnのシングルプロセッサ向けOS300pnは、割込制御装置601Pnの割込取消部601cによって自身の割込状態保持部601bの割り込み情報をクリアすることにより、自身の割り込み状態を解除する。
【0232】
(8)プロセッサPnのシングルプロセッサ向けOS300pnは、自身の制御代理手段500Pnを起動する。
【0233】
(9)プロセッサPnの制御代理手段500Pnは、自身の通信領域602Pnの排他制御領域602bにロックをセットする。
【0234】
(10)プロセッサPnの制御代理手段500Pnは、さらに、自身の通信領域602Pnの通信キュー602aから、通信理由情報と通信データをそれぞれ削除する。
【0235】
(11)プロセッサPnの制御代理手段500Pnが、プロセッサPn用の通信領域602Pnの排他制御領域602bをアンロックとする。これにより、当該プロセッサPn用の通信領域602Pnが他のプロセッサから使用できるようになる。
【0236】
以上のように、制御処理中継手段600を用いることにより、第1プロセッサ側100と第2プロセッサ側200間で、制御信号やデータのやり取りが実現される。
【0237】
次に、本発明の第3の実施の形態による並列処理システムについて、図17以下を参照して説明する。図17は、この第3の実施の形態による並列処理システムの構成を示すブロック図であり、図13と共通の構成要素については同じ符号を用いている。
【0238】
上記説明した第2の実施の形態における同期的な処理では、プロセス相互において、一方のプロセスが他方のプロセスによって主記憶装置92上のデータが更新されたかどうかのチェックを繰り返す必要があり、その繰り返しの分だけ余計な処理が発生していたが、本実施の形態では、そのような余計な処理を必要としない高性能なプロセス間の同期とデータ受け渡しを可能にするものである。
【0239】
図17に示すように、第3の実施の形態による並列処理システムにおいては、第2の実施の形態と同様に、システムバス91で接続される複数のプロセッサ(CPU)P0〜Pn(nは1以上の整数)からなるマルチプロセッサを、論理的に第1プロセッサ側100と第2プロセッサ側200の二組に分けて構成し、第1プロセッサ側100のプロセッサP0及び第2プロセッサ200のプロセッサ(CPU)P0〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P0〜300Pnを実装している。
【0240】
この第3の実施の形態では、第2の実施の形態において、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pnの並列処理を行うための並列処理通信手段400P0〜400Pnと制御代理手段500P0〜500Pnに加えて、第1プロセッサ側100のプロセッサP0及び第2プロセッサ側200のプロセッサP1〜Pn上で実行される各プロセス間での通信を実現するためのプロセス間通信手段1000P0〜1000Pnを新たに備えた点を特徴としている。
【0241】
すなわち、本実施の形態では、これまでマルチプロセッサ向けOSに実装されていたプロセス間通信の機能を、マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシングルプロセッサ向けOSによる並列処理システム上で実現するものであり、ユーザレベルによるプロセス間通信機能の実装を可能にしている。
【0242】
なお、この実施の形態でも、第1の実施の形態で示した第1プロセッサ側100のシングルプロセッサ向けOS300P0が第2プロセッサ側200で実行されるプロセスと通信するための代理手段70については、第1の実施の形態と全く同じ機能を実行するため、便宜上省略している。
【0243】
上記プロセス間通信手段1000P0〜1000Pn以外の構成要素に関する構成及び動作については、上述した第2の実施の形態と全く同じであるので、以下では、プロセス間通信手段1000P0〜1000Pnについてのみ説明することとする。
【0244】
上記プロセス間通信手段1000P0〜1000Pnは、セマフォ(semaphore)やメッセージキュー等の方式を用いることにより、プロセッサP1〜Pn上で実行される各プロセス間での通信を実現するものである。
【0245】
ここでは、プロセス間通信手段1000P0〜1000Pnがセマフォ方式を用いてプロセス間通信を行なう場合について説明する。
【0246】
図18に示すように、第2プロセッサ側200のプロセッサPmとプロセッサPn上でそれぞれプロセスPP−mとプロセスPP−nが実行されている場合において、プロセスPP−mとプロセスPP−nがプロセス間通信手段1000Pmと1000Pnによるセマフォ方式を用いて通信を行う場合について説明する。
【0247】
セマフォ方式とは、複数のプロセスが同時実行されるマルチタスクOSにおいて、複数プロセス間で通信して同期をとるための方式であり、セマフォは一種の共有フラグ(カウンタ)で、同期をとるプロセス同士がこのカウンタに注目し、カウンタの変化に応じて処理を行なうようにすることで通信(同期)を実現する。
【0248】
まず、図18において、プロセッサPm上のプロセスPP−mが主記憶装置92のセマフォ情報領域(共有フラグ)をup又はdownする場合の動作を説明する。ここで、セマフォupは、セマフォ情報領域のカウンタ値をインクリメントし、セマフォdownは、セマフォ情報領域のカウンタ値をデクリメントする。セマフォdownできない場合、当該プロセスはスリープして待ち状態となり、セマフォupによってウェイクアップされる。
【0249】
(1)プロセッサPm上のプロセスPP−mがセマフォ(セマフォカウンタ)をup又はdownする場合、プロセス間通信手段1000Pmにその旨を要求する。
【0250】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ番号で区別される共有フラグとしてのセマフォ情報領域#N(このセマフォ情報領域は、システムによって予め決定される数だけ確保される)にアクセスすることにより、セマフォをup又はdownできることが判明する。
【0251】
次に、図19において、プロセッサPm上のプロセスPP−mがセマフォ(セマフォフラグ)をdownする場合の動作を説明する。
【0252】
(1)プロセッサPm上のプロセスPP−mがセマフォ(セマフォフラグ)をdownしようとプロセス間通信手段1000Pmに要求する。
【0253】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスする。ここでは、セマフォ情報領域#Nには、セマフォのカウンタ値として初期値「0」が設定されており、downしようとしてもdownできないように予め定められている。よって、セマフォをdownできないことが判明する。
【0254】
(3)プロセス間通信手段1000Pmは、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて上記プロセスPP−mをスリープさせるように要求する。
【0255】
(4)シングルプロセッサ向けOS300Pmはシステムコールを用いてプロセスPP−mをスリープさせ、ランキューから外す。
【0256】
すなわち、上記の場合、プロセスPP−mはセマフォをdownできないのでスリープする。
【0257】
さらに、図20において、上記のようにプロセスPP−mがスリープした状態で、同じプロセッサPm上のプロセスPP−m1がセマフォをupする場合の動作を説明する。
【0258】
(1)プロセスPP−m1がセマフォのupをプロセス間通信手段1000Pmに要求する。
【0259】
(2)プロセス間通信手段1000Pmは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスすることにより、セマフォ待ちのプロセスPP−mが存在することが判明する。
【0260】
(3)さらに、プロセス間通信手段1000Pmは、制御処理中継手段600に対してメッセージ(制御メッセージ)を送信することで、プロセスPP−mのウェイクアップを要求する。
【0261】
(4)制御代理手段500Pmが、制御処理中継手段600からメッセージを受信する。この制御処理中継手段600によるメッセージの中継は、図15、図16で説明した動作に基づいて行われる。
【0262】
(5)制御代理手段500Pmは、メッセージからセマフォ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0263】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。この場合、ウェイクアップされたプロセスPP−mは再度セマフォをdownしようと試みる。
【0264】
なお、上記処理(3)、(4)における制御処理中継手段600による制御メッセージの中継を利用することなく、シングルプロセッサ向けOS300Pmの通信機能を用いて、プロセス間通信手段1000Pmから制御代理手段500Pmに対して直接プロセスPP−mのウェイクアップを要求するようにすれば、処理(3)、(4)が簡略されて高速化が可能である。
【0265】
図21において、上記のようにプロセッサPm上のプロセスPP−mがスリープした状態で、他のプロセッサPn上のプロセスPP−nがセマフォをupする場合の動作を説明する。
【0266】
(1)プロセッサPn上のプロセスPP−nがセマフォのupを自プロセッサPnのプロセス間通信手段1000Pnに要求する。
【0267】
(2)プロセス間通信手段1000Pnは、主記憶装置92に確保されているセマフォ情報領域#Nにアクセスすることにより、セマフォ待ちのプロセスPP−mが存在することが判明する。
【0268】
(3)さらに、プロセス間通信手段1000Pnは、制御処理中継手段600に対してメッセージ(制御メッセージ)を送信することで、プロセスPP−mのウェイクアップを要求する。
【0269】
(4)次いで、プロセッサPmの制御代理手段500Pmが、制御処理中継手段600からメッセージを受信する。この制御処理中継手段600によるメッセージの中継は、図15、図16で説明した動作に基づいて行われる。
【0270】
(5)制御代理手段500Pmは、メッセージからセマフォ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0271】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。この場合、ウェイクアップされたプロセスPP−mは再度セマフォをdownしようと試みる。
【0272】
次に、図22に示すように、第2プロセッサ側200のプロセッサPmとプロセッサPn上でそれぞれプロセスPP−mとプロセスPP−nが実行されている場合において、プロセスPP−mとプロセスPP−nがプロセス間通信手段1000Pmと1000Pnによるメッセージキュー方式を用いて通信を行う場合について説明する。
【0273】
メッセージキュー方式とは、複数のプロセス間で通信を行なう方法であって、名前の通り「キュー」を作成して、そこに情報としてのメッセージ(プロセス相互でやり取りされる処理データ)を格納していく方式である。メッセージキュー方式では、受け取り側のプロセスはそのメッセージを任意の順番で受け取ることができる。また、メッセージを何れかのプロセスが受け取るとそのメッセージはキューから消える。
【0274】
図22において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを受信する場合の動作を説明する。ここでは、取得すべきメッセージが主記憶装置92に確保されているキュー番号で区別されるキュー情報領域#N(このキュー情報領域は、システムによって予め決定される数だけ確保される)に存在する場合である。
【0275】
(1)プロセッサPm上のプロセスPP−mがメッセージの受信をするためにプロセス間通信手段1000Pmにその旨を要求する。
【0276】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nをアクセスし、メッセージを受信する。
【0277】
(3)そして、プロセス間通信手段1000Pmは、受信したメッセージを要求元のプロセスPP−mにコピーする。この時点で当該メッセージは主記憶装置92に確保されているキュー情報領域#Nから消去される。
【0278】
次に、図23において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを受信する場合の第2の動作を説明する。ここでは、取得すべきメッセージが主記憶装置92に確保されているキュー情報領域#Nに存在しない場合である。
【0279】
(1)プロセッサPm上のプロセスPP−mがメッセージの受信をするためにプロセス間通信手段1000Pmにその旨を要求する。
【0280】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスする。この場合、取得すべきメッセージがに確保されているキュー情報領域#Nに存在せず、メッセージを受信できないことが判明する。
【0281】
(3)プロセス間通信手段1000Pmは、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて上記プロセスPP−mをスリープさせるように要求する。
【0282】
(4)シングルプロセッサ向けOS300Pmはシステムコールを用いてプロセスPP−mをスリープさせ、ランキューから外す。
【0283】
すなわち、上記の場合、プロセスPP−mはメッセージを受信できないのでスリープする。
【0284】
図24において、プロセッサPm上のプロセスPP−mがメッセージキュー方式によってメッセージを送信する場合の動作を説明する。ここでは、送信しようとするメッセージ待ちのプロセスが存在せず、主記憶装置92に確保されているキュー情報領域#Nへのメッセージの送信のみを行なう場合である。
【0285】
(1)プロセッサPm上のプロセスPP−mがメッセージの送信するためにプロセス間通信手段1000Pmにその旨を要求する。
【0286】
(2)要求を受けたプロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−mからのメッセージを格納する。
【0287】
さらに、図25において、プロセッサPm上のプロセスがメッセージキュー方式によってメッセージを送信する場合の動作を説明する。ここでは、送信しようとするメッセージ待ちのプロセスが存在する場合である。すなわち、図23の例のように、プロセスPP−mがメッセージを受信できずにスリープしている状態でプロセスPP−m1からメッセージが送信される場合である。
【0288】
(1)プロセスPP−m1がメッセージの送信をプロセス間通信手段1000Pmに要求する。
【0289】
(2)プロセス間通信手段1000Pmは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−m1からのメッセージを格納する。ここで、メッセージ待ちのプロセスPP−mが存在することが判明する。
【0290】
(3)さらに、プロセス間通信手段1000Pmは、制御処理中継手段600に対して制御メッセージを送信することで、プロセスPP−mのウェイクアップを要求する。
【0291】
(4)制御代理手段500Pmが、制御処理中継手段600から制御メッセージを受信する。
【0292】
(5)制御代理手段500Pmは、制御メッセージからメッセージ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0293】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。
【0294】
この場合、ウェイクアップされたプロセスPP−mは再度メッセージの受信を試みる。これにより、プロセスPP−m1からのメッセージがプロセスPP−mで受信される。
【0295】
なお、上記処理(3)、(4)における制御処理中継手段600による制御メッセージの中継を利用することなく、シングルプロセッサ向けOS300Pmの通信機能を用いて、プロセス間通信手段1000Pmから制御代理手段500Pmに対して直接プロセスPP−mのウェイクアップを要求するようにすれば、処理(3)、(4)が簡略されて高速化が可能である。
【0296】
図26において、図23に示すようにプロセッサPm上のプロセスPP−mがスリープしてメッセージ待ちの状態で、他のプロセッサPn上のプロセスPP−nがメッセージを送信する場合の動作を説明する。
【0297】
(1)プロセッサPn上のプロセスPP−nがメッセージの送信を自プロセッサPnのプロセス間通信手段1000Pnに要求する。
【0298】
(2)プロセス間通信手段1000Pnは、主記憶装置92に確保されているキュー情報領域#Nにアクセスし、プロセスPP−nからのメッセージを格納する。ここで、メッセージ待ちのプロセスPP−mが存在することが判明する。
【0299】
(3)さらに、プロセス間通信手段1000Pnは、制御処理中継手段600に対して制御メッセージを送信することで、プロセスPP−mのウェイクアップを要求する。
【0300】
(4)次いで、プロセッサPmの制御代理手段500Pmが、制御処理中継手段600から制御メッセージを受信する。
【0301】
(5)制御代理手段500Pmは、制御メッセージからメッセージ待ちのプロセスのウェイクアップ要求であると判断し、シングルプロセッサ向けOS300Pmに対しシステムコールを用いて待ち状態の上記プロセスPP−mをウェイクアップさせるよう要求する。
【0302】
(6)シングルプロセッサ向けOS300Pmは、システムコールを用いて要求されたプロセスPP−mをウェイクアップし、ランキューへつなぐ。
【0303】
この場合、ウェイクアップされたプロセスPP−mは再度メッセージの受信を試みる。これにより、プロセスPP−nからのメッセージがプロセスPP−mで受信され、異なるプロセッサ相互でプロセス間の通信が実行される。
【0304】
本実施の形態によれば、上記のようにプロセス間通信手段1000P0〜Pnによって、セマフォ方式又はメッセージキュー方式を用いた同一プロセッサ内又は異なるプロセッサ間のプロセス通信(同期又はメッセージの送受)を行うことにより、プロセス切り替えなどのプロセス制御やデータのやり取りを行うことが可能となる。
【0305】
シングルプロセッサ向けOSによるプロセス間通信は、同一プロセッサ内のプロセス間に限られ、異なるプロセッサ間でのプロセス通信は処理の重いネットワーク等を利用して行う必要があったが、ネットワーク通信に比べて処理の高速な制御処理中継手段600とプロセス間通信手段1000P0〜Pnによるセマフォ方式又はメッセージキュー方式を用いることで、シングルプロセッサ向けOSを実装するマルチプロセッサシステムにおいても、処理の早いプロセス間通信が実現できる。
【0306】
同一プロセッサ内のプロセス間通信に関しては、シングルプロセッサ向けOSによるプロセスのスリープからウェイクアップに要する処理性能とほぼ同等の性能が得られる。
【0307】
また、マルチプロセッサ向けOSと異なり、プロセッサ毎に異なるシングルプロセッサ向けOSを実装していてもプロセッサ相互でのプロセス間通信が可能となる利点がある。
【0308】
次に、上記プロセス間通信手段1000P0〜1000Pnによるセマフォ方式及びメッセージキュー方式を用いたプロセス間通信の具体例について、図27を参照して説明する。
【0309】
図27において、プロセッサP0上でプロセスPP−0が、プロセッサPj上でプロセスPP−jが、プロセッサPk上でプロセスPP−kがそれぞれ実行されている。ここでは、プロセスPP−0がブラウザ、プロセスPP−jがjavaアプレット、プロセスPP−kがMPEG4アプリケーションとして動作し、図28に示すように、プロセスPP−0によるブラウザ1100に埋め込まれたウィンドウ内で、プロセスPP−jによるjavaアプレットのコンテンツ1200と、プロセスPP−kによるMPEG4映像コンテンツ1300とが同期して表示される。
【0310】
この例では、第1プロセッサ側100のシングルプロセッサ向けOS300P0上で動作するアアプリケーションの処理単位のうち、プロセスPP−0をプロセッサP0上で動作させ、アプリケーション内で並列化を行えるプロセスであるプロセスPP−jとプロセスPP−kを第2プロセッサ側200のプロセッサPjとプロセッサPkにおいて並列処理する場合である。
【0311】
図27において、javaアプレット(プロセスPP−j)とMPEG4アプリケーション(プロセスPP−k)は起動されると、共にブラウザ(プロセスPP−0)からのjavaアプリデータ及びMPEG4映像データの受信を待つ(ステップS101、S201)。
【0312】
ここで、プロセッサP0のプロセスPP−0からプロセス間通信手段1000P0によるメッセージ送信を利用して、javaアプリデータ及びMPEG4映像データがメッセージとして送信され、javaアプレット(プロセスPP−j)及びMPEG4アプリケーション(プロセスPP−k)で受信される。
【0313】
これにより、javaアプレット(プロセスPP−j)による動作が開始され(ステップS102)、MPEG4アプリケーション(プロセスPP−k)によるデコード処理が開始される(ステップS202)。
【0314】
この例では、javaアプレット(プロセスPP−j)による動作の方がMPEG4アプリケーション(プロセスPP−k)によるデコード処理より早く終了することが予め分かっており、javaアプレット(プロセスPP−j)は動作終了後に、MPEG4アプリケーション(プロセスPP−k)の処理完了を待つように、セマフォのカウンタの初期値を「0」に設定し、早く終了したjavaアプレット(プロセスPP−j)がセマフォdownできないようになっている。また、MPEG4アプリケーション(プロセスPP−k)は処理終了後にセマフォupするように定義されている。
【0315】
javaアプレット(プロセスPP−j)は、セマフォdownしようとするが(ステップS103)、カウンタの初期値が「0」であるためにdownできずにスリープされ、セマフォ待ちの状態となる。
【0316】
MPEG4アプリケーション(プロセスPP−k)が処理が終了すると(ステップS203)、セマフォupを要求する(ステップS204)。これにより、セマフォ待ちのjavaアプレット(プロセスPP−j)がウェイクアップされ、セマフォdownが可能となる。
【0317】
以上の動作を、フレーム毎に繰り返すことにより、プロセスPP−0によるブラウザ1100に埋め込まれたウィンドウ内で、プロセスPP−jによるjavaアプレットのコンテンツ1200と、プロセスPP−kによるMPEG4映像コンテンツ1300とが同期して表示される。
【0318】
次に、本発明の第4の実施の形態による並列処理システムについて、図29以下を参照して説明する。図29は、この第4の実施の形態による並列処理システムの構成を示すブロック図であり、図13と共通の構成要素については同じ符号を用いている。
【0319】
図29に示すように、第4の実施の形態による並列処理システムにおいては、システムバス91で接続される複数のプロセッサ(CPU)P1〜Pn(nは2以上の整数)からなるマルチプロセッサを構成しており、プロセッサP1〜Pnの各プロセッサ上で動作するシングルプロセッサ向けOS300P1〜300Pnを実装している。
【0320】
すなわち、マルチプロセッサを、論理的に第1プロセッサ側と第2プロセッサ側の二組に分ける構成をとっていない点が、第1の実施の形態から第3の実施の形態と相違する。
【0321】
この第4の実施の形態では、上記第3の実施の形態と同様に、プロセッサP1〜Pnの並列処理を行うための並列処理通信手段400P1〜400Pnと制御代理手段500P1〜500Pnに加えて、プロセッサP1〜Pn上で実行される各プロセス間での通信を実現するためのプロセス間通信手段1000P1〜1000Pnを備えている。
【0322】
一方、第1の実施の形態のようなOSサービス手段50P1〜50Pnや、第1の実施の形態〜第3の実施の形態のような並列処理通信手段400P1〜400Pnを備えることなく、各プロセッサP1〜Pn上のプロセス制御が可能である。また、各プロセッサP1〜Pn上のシングルプロセッサ向けOS300P1〜300Pnについては、同じOSである必要はなく互いに異なっていてもよい。
【0323】
すなわち、本実施の形態でも、これまでマルチプロセッサ向けOSに実装されていたプロセス間通信の機能を、マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシングルプロセッサ向けOSによる並列処理システム上で実現するものであり、ユーザレベルによるプロセス間通信機能の実装を可能にしている。
【0324】
この各プロセッサP1〜プロセッサPn内における各プロセスの実行については、他のプロセッサとの排他制御を必要とすることなく行われる。
【0325】
個々のプロセッサP1〜プロセッサPn内におけるプロセス間通信及びプロセッサ相互におけるプロセス間通信については、第3の実施の形態で説明したように、プロセス間通信手段1000P1〜1000Pnによるセマフォ方式及びメッセージキュー方式を用いて行われ、プロセス相互の同期処理及びデータの受け渡しが実行される。
【0326】
なお、上記各実施の形態の並列処理システムは、並列処理手段、OSサービス手段、制御処理中継手段、代理手段、プロセス間通信手段の各機能を有する並列処理プログラムによって実現することができる。この並列処理プログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【0327】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0328】
【発明の効果】
以上説明したように本発明によれば、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションをそれらに改造を加えることなく動作させ、アプリケーションに対してマルチプロセッサによる並列処理を実現できる。
【0329】
また、本発明によれば、並列処理手段、OSサービス手段、制御処理中継手段及び代理手段を、モジュールとして実装することにより、シングルプロセッサ向けOS上で実行されるアプリケーションに改造を加ることなく、マルチプロセッサのシステム構成上で、シングルプロセッサ向けOS及び既存のアプリケーションをオーバヘッドなく動作させることができると共に、マルチプロセッサによる並列処理の恩恵を受けることが可能となる。
【0330】
さらに、第2プロセッサ側に個別にファイルアクセスのための処理手段を設けることなく、第2プロセッサ側におけるタスクはシングルプロセッサ向けOSのサービスをそのまま利用してファイルアクセスが可能となる。また、これにより、ファイルアクセスのための排他処理については、第1プロセッサ側で完結するため、マルチプロセッサ向けOS上でアプリケーションを動作させる場合のような排他処理によるオーバヘッドが発生することなく並列処理を実現できる。
【0331】
また、第1プロセッサ側のプロセッサ及び第2プロセッサ側の各プロセッサに、仮想記憶機構を備えるシングルプロセッサ向けOSを搭載することにより、各プロセス間のメモリ保護を行いながら上述した並列処理を実現することができる。
【0332】
また、第1プロセッサ側の処理単位(タスク/プロセス)あるいは第2プロセッサ側の処理単位の一方ないし双方が、並列処理手段に対して処理を要求する際、並列処理手段もしくは第2プロセッサ側のシングルプロセッサ向けOSが、要求元処理単位を待機状態とすることにより、同期的な処理が実現できる。
【0333】
さらに、第1プロセッサ側の処理単位(タスク/プロセス)あるいは第2プロセッサ側の処理単位の一方ないし双方が、並列処理手段に対して処理を要求する際、並列処理手段もしくは第2プロセッサ側のシングルプロセッサ向けOSが、要求元処理単位の実行を継続させることにより、非同期的な処理を実現することができる。
【0334】
さらに、ユーザレベルでプロセス間の通信機能を実装することにより、マルチプロセッサ向けOSを必要とすることなく、シングルプロセッサ向けOS上でも、並列プロセッサでのプロセス間の通信が可能となる。
【0335】
また、マルチプロセッサ向けOSと異なり、プロセッサ毎に異なるシングルプロセッサ向けOSを実装していてもプロセッサ相互でのプロセス間通信が可能となる利点が得られる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態による並列処理システムの構成を示すブロック図である。
【図2】 第1の実施の形態による並列処理システムの並列処理手段による並列処理起動の動作を説明するための図である。
【図3】 並列処理システムの並列処理手段による並列処理起動における要求を行うためのメッセージの構成を示す図である。
【図4】 第1の実施の形態による並列処理システムにおける第2プロセッサ側のタスクからのファイルアクセス要求に対するOSサービス手段の動作を説明する図である。
【図5】 第1プロセッサ側の逐次タスクからのファイルアクセス要求に対する動作を説明する図である。
【図6】 第1の実施の形態による並列処理システムにおける制御処理中継手段の内部構成を示すブロック図である。
【図7】 第1の実施の形態による並列処理システムにおける制御処理中継手段の処理動作を説明する図である。
【図8】 第1の実施の形態による並列処理システムにおける代理手段によるシグナル通知処理動作を説明する図である。
【図9】 第1の実施の形態による並列処理システムにおける第2プロセッサ側におけるタスク相互の連携動作を実現するための構成を示すブロック図である。
【図10】 第1の実施の形態による並列処理システムにおける第2プロセッサ側におけるタスク相互の連携動作を説明する図である。
【図11】 並列処理システムにおける適用例としてのマルチプロセッサの携帯端末においてアプリケーションを動作させる場合の例を説明する図である。
【図12】 本発明の第2の実施の形態による並列処理システムの構成を示すブロック図である。
【図13】 第2の実施の形態による並列処理システムにおけるプロセスの同期的な並列処理起動の動作を説明するための図である。
【図14】 第2の実施の形態による並列処理システムにおけるプロセスの非同期的な並列処理起動の動作を説明するための図である。
【図15】 第2の実施の形態による並列処理システムにおける制御処理中継手段の内部構成を示すブロック図である。
【図16】 第2の実施の形態による並列処理システムにおける制御処理中継手段の処理動作を説明する図である。
【図17】 本発明の第3の実施の形態による並列処理システムの構成を示すブロック図である。
【図18】 第3の実施の形態による並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるセマフォ方式を用いてセマフォup又はdownを行う場合の動作を説明するための図である。
【図19】 第3の実施の形態による並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるセマフォ方式を用いてセマフォdownを行う場合の動作を説明するための図である。
【図20】 第3の実施の形態による並列処理システムにおいて、同一プロセッサ内のプロセス間でプロセス間通信手段によるセマフォ方式を用いてセマフォupを行う場合の動作を説明するための図である。
【図21】 第3の実施の形態による並列処理システムにおいて、異なるプロセッサ相互のプロセス間でプロセス間通信手段によるセマフォ方式を用いてセマフォupを行う場合の動作を説明するための図である。
【図22】 第3の実施の形態による並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの受信を行う場合の動作を説明するための図である。
【図23】 第3の実施の形態による並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの受信を行う場合の動作を説明するための図である。
【図24】 第3の実施の形態による並列処理システムにおいて、プロセッサ内のプロセスがプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送信を行う場合の動作を説明するための図である。
【図25】 第3の実施の形態による並列処理システムにおいて、同一プロセッサ内のプロセス間でプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送受信を行う場合の動作を説明するための図である。
【図26】 第3の実施の形態による並列処理システムにおいて、異なるプロセッサ相互のプロセス間でプロセス間通信手段によるメッセージキュー方式を用いてメッセージの送受信を行う場合の動作を説明するための図である。
【図27】 第3の実施の形態による並列処理システムにおいて、セマフォ方式及びメッセージキュー方式を用いたプロセス間通信の具体例を説明するための図である。
【図28】 図27の具体例におけるブラウザ画面の表示内容を説明する図である。
【図29】 本発明の第4の実施の形態による並列処理システムの構成を示すブロック図である。
【符号の説明】
10、100:第1プロセッサ側
20、200:第2プロセッサ側
30、300P0、300P1〜300Pn:シングルプロセッサ向けOS
40P0〜40Pn:並列処理手段
400P0〜400Pn:並列処理通信手段
50P0〜50Pn:OSサービス手段
500P0〜500Pn:制御代理手段
60、600:制御処理中継手段
61P0〜61Pn、601P0〜601Pn:割込制御装置
61a、601a:割込指示部
61b、601b:割込状態保持部
61c、601c:割込取消部
62P0〜62Pn、602P0〜602Pn:通信領域
62a:通信理由保持領域
62b:通信データ保持領域
62c、602b:排他制御領域
602a:通信キュー
70:代理手段
91:システムバス
92:主記憶装置
93:外部記憶装置
1000P0〜1000Pn:プロセス間通信手段
ST:逐次タスク
PT:並列化タスク
PT−1〜PT−n:タスク
41P1〜41Pn:相互排他手段
43 排他制御領域
44:タスク管理内容保持領域
SP:逐次プロセス
PP:並列化プロセス
PP−1〜PP−n:プロセス
Claims (37)
- マルチプロセッサ上で、シングルプロセッサ向けOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実行する並列処理システムにおいて、
一のプロセッサ上で動作する前記アプリケーション内で並列化が可能な処理単位を、他のプロセッサ上で新たな処理単位として制御する並列処理手段と、
前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現するプロセス間通信手段と、を有し、
前記プロセス間通信手段は、
前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信し、
記憶手段に確保されているセマフォ情報又はキュー情報から前記要求にによって制御の必要なプロセスの有無を判断し、
前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、前記OSのシステムコールを用いて発行することを特徴とする並列処理システム。 - 前記マルチプロセッサを論理的に、第1のプロセッサ群と第2のプロセッサ群の少なくとも二つに分け、
前記第1のプロセッサ群のプロセッサに属する並列処理手段が、前記第2のプロセッサ群の少なくとも一のプロセッサに対して、前記第1のプロセッサ群の処理単位に関する要求を発し、前記第2のプロセッサ群のプロセッサが前記要求に基づいて前記処理単位を新たな処理単位として制御することを特徴とする請求項1に記載の並列処理システム。 - 前記プロセス間通信手段は、前記第1のプロセッサ群及び前記第2のプロセッサ群のプロセッサに設けられていることを特徴とする請求項2に記載の並列処理システム。
- マルチプロセッサ上で、シングルプロセッサ向けOS及びアプリケーションを動作させ、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理システムであって、
前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現するプロセス間通信手段を有し、
前記プロセス間通信手段は、
前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信し、
記憶手段に確保されているセマフォ情報又はキュー情報から前記要求によって制御の必要なプロセスの有無を判断し、
前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、前記OSのシステムコールを用いて発行することを特徴とする並列処理システム。 - 前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上に予め生成することを特徴とする請求項2又は請求項3に記載の並列処理システム。
- 前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上で新たな処理単位として生成し起動することを特徴とする請求項2又は請求項3に記載の並列処理システム。
- 前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群の各プロセッサに、仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載することを特徴とする請求項2から請求項3、請求項5から請求項6の何れか1項に記載の並列処理システム。
- 前記第2プロセッサ群のプロセッサ上の新たな処理単位を、前記第1プロセッサ群のプロセッサ上の処理単位と同期的又は非同期的に制御することを特徴とする請求項7に記載の並列処理システム。
- 前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする請求項7に記載の並列処理システム。
- 前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通信手段を、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサに備えることを特徴とする請求項9に記載の並列処理システム。
- 前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、
前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、
前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、
前記通信領域は、通信元のプロセッサからの通信理由を保持する通信理由保持領域、通信するための通信データを保持する通信データ保持領域、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする請求項2から請求項3、請求項5から請求項10の何れか1項に記載の並列処理システム。 - 前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理手段を組み込み、
前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、
前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、
前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、
前記通信領域は、通信元のプロセッサからの通信理由を保持する通信理由保持領域、通信するための通信データを保持する通信データ保持領域、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする請求項2から請求項3、請求項5から請求項6の何れか1項に記載の並列処理システム。 - 前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、
前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、
前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、
前記通信領域は、通信元のプロセッサからの通信理由と通信するための通信データを保持する通信キュー、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする請求項2から請求項3、請求項5から請求項10の何れか1項に記載の並列処理システム。 - 前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理手段を組み込み、
前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継手段を設け、
前記制御処理中継手段は、各プロセッサに対応した割り込み制御装置と、各プロセッサに対応した通信領域とを備え、
前記割り込み装置は、他のプロセッサに対して割り込みを指示する割込指示部、割り込みの指示により割り込みがあった旨の情報を保持する割込状態保持部、割り込みをクリアする割込取消部とで構成され、
前記通信領域は、通信元のプロセッサからの通信理由と通信するための通信データを保持する通信キュー、通信を確保するために通信領域に対してロックをかけるための排他制御領域とで構成されることを特徴とする請求項2から請求項3、請求項5から請求項6の何れか1項に記載の並列処理システム。 - 前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理手段を設けたことを特徴とする請求項11又は請求項12に記載の並列処理システム。
- 前記並列処理手段、制御処理中継手段、代理手段をモジュール化して組み込むことを特徴とする請求項11から請求項15の何れか1項に記載の並列処理システム。
- 前記第2プロセッサ群の前記並列処理手段に、第2プロセッサ群の他のプロセッサに対して並列処理させる処理単位を生成する機能を設けたことを特徴とする請求項11から請求項16の何れか1項に記載の並列処理システム。
- 前記各プロセッサに、仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載し、前記一のプロセッサ及び前記他のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする請求項1に記載の並列処理システム。
- 前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通信手段を、前記各プロセッサに備えることを特徴とする請求項18に記載の並列処理システム。
- 前記各プロセッサ間相互の前記処理単位間における同期的な処理及びデータ受け渡しに際し、制御信号やデータのやり取りを行うための制御処理中継手段を設けたことを特徴とする請求項18又は請求項19に記載の並列処理システム。
- 前記複数のプロセッサが1つの情報処理装置に搭載されていることを特徴とする請求項1から請求項20の何れか1項に記載の並列処理システム。
- マルチプロセッサ上でシングルプロセッサ向けOS及びアプリケーションを動作させるシステム上で、前記アプリケーションに対して前記マルチプロセッサによる並列処理を実現する並列処理プログラムであって、
前記マルチプロセッサのうちの一のプロセッサ上で動作する前記アプリケーション内で並列化が可能な処理単位を抽出する機能と、
前記抽出された処理単位を前記一のプロセッサとは異なる他のプロセッサ上で新たな処理単位として制御する機能と、を有し、
さらに、前記並列処理プログラムは、前記マルチプロセッサ上で実行されるプロセスについて、前記シングルプロセッサ向けOSとは機能的に独立したユーザレベルによるプロセス間通信を実現する機能を有し、
前記プロセス間通信を実現する機能は、
前記一のプロセッサ又は前記他のプロセッサ上のプロセスから発行された、プロセス間通信に関する、前記シングルプロセッサ向けOSへのシステムコール要求を受信する機能と、
記憶手段に確保されているセマフォ情報又はキュー情報から前記要求によって制御の必要なプロセスの有無を判断し、
前記判断結果に基づき、前記一のプロセッサ又は前記他のプロセッサの前記シングルプロセッサ向けOSに対して、前記プロセスに対するウェイクアップ又はスリープ要求を、システムコールを用いて発行する機能と、を有することを特徴とする並列処理プログラム。 - 前記マルチプロセッサを論理的に第1のプロセッサ群と第2のプロセッサ群の少なくとも二つに分けたシステム上で動作させ、
前記第1のプロセッサ群のプロセッサの少なくとも一のプロセッサ上で動作させることを特徴とする請求項22に記載の並列処理プログラム。 - 前記プロセス間の通信を実現する機能が、前記第1のプロセッサ群及び前記第2のプロセッサ群のプロセッサに設けられていることを特徴とする請求項23に記載の並列処理プログラム。
- 前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上に予め生成する機能を有することを特徴とする請求項23又は請求項24に記載の並列処理プログラム。
- 前記アプリケーション内で並列化が可能な処理単位を、前記第2のプロセッサ群のプロセッサ上で新たな処理単位として生成し起動する機能を有することを特徴とする請求項23又は請求項24に記載の並列処理プログラム。
- 仮想記憶機構を備える前記シングルプロセッサ向けOSを搭載した前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群の各プロセッサ上で実行されることを特徴とする請求項23から請求項26の何れか1項に記載の並列処理プログラム。
- 前記第2プロセッサ群のプロセッサ上の新たな処理単位を、前記第1プロセッサ群のプロセッサ上の処理単位と同期的又は非同期的に制御する機能を有することを特徴とする請求項27に記載の並列処理プログラム。
- 前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とする機能を有することを特徴とする請求項27に記載の並列処理プログラム。
- 前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通機能を、前記第1プロセッサ群のプロセッサ及び前記第2プロセッサ群のプロセッサで実行することを特徴とする請求項29に記載の並列処理プログラム。
- 前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理機能と、
前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能とを有することを特徴とする請求項23から請求項26に記載の並列処理プログラム。 - 前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継機能と、
前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能を有することを特徴とする請求項23から請求項30に記載の並列処理プログラム。 - 前記第1のプロセッサ群と第2のプロセッサ群のそれぞれに、前記処理単位の生成を含む処理単位に関する制御を行う並列処理機能と、
前記第1プロセッサ群と第2プロセッサ群間で、制御信号やデータのやり取りを行うための制御処理中継機能と、
前記第1プロセッサ群に、前記第2プロセッサ群の処理単位と前記シングルプロセッサ向けOS間における各種制御信号の通知を行うため、前記第2プロセッサ群の処理単位と処理単位の番号によって関連付けられ代理機能を有することを特徴とする請求項23から請求項26に記載の並列処理プログラム。 - 前記第2プロセッサ群の前記並列処理機能が、第2プロセッサ群の他のプロセッサに対して並列処理させる処理単位を生成することを特徴とする請求項31から請求項33の何れか1項に記載の並列処理プログラム。
- 仮想記憶機構を備える前記OSを搭載した前記各プロセッサ上で、前記一のプロセッサ及び前記他のプロセッサ上の処理単位間における、同期的な処理及びデータ受け渡しを可能とすることを特徴とする請求項22に記載の並列処理プログラム。
- 前記処理単位間における同期的な処理及びデータ受け渡しをセマフォ方式及びメッセージキュー方式により実行するプロセス間通信機能を、前記各プロセッサ上で実行することを特徴とする請求項35に記載の並列処理プログラム。
- 前記各プロセッサ間相互の前記処理単位間における同期的な処理及びデータ受け渡しに際し、制御信号やデータのやり取りを行うための制御処理中継機能を実行することを特徴とする請求項35又は請求項36に記載の並列処理プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003094768A JP4051703B2 (ja) | 2003-03-31 | 2003-03-31 | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム |
US10/807,168 US7526673B2 (en) | 2003-03-31 | 2004-03-24 | Parallel processing system by OS for single processors and parallel processing program |
CNB2004100319333A CN1323364C (zh) | 2003-03-31 | 2004-03-31 | 利用单处理器操作系统的并行处理系统及并行处理方法 |
GB0407373A GB2400213B (en) | 2003-03-31 | 2004-03-31 | Parallel processing system and method for a single processor operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003094768A JP4051703B2 (ja) | 2003-03-31 | 2003-03-31 | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004302837A JP2004302837A (ja) | 2004-10-28 |
JP4051703B2 true JP4051703B2 (ja) | 2008-02-27 |
Family
ID=32290556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003094768A Expired - Fee Related JP4051703B2 (ja) | 2003-03-31 | 2003-03-31 | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7526673B2 (ja) |
JP (1) | JP4051703B2 (ja) |
CN (1) | CN1323364C (ja) |
GB (1) | GB2400213B (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4062441B2 (ja) * | 2003-07-18 | 2008-03-19 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4315057B2 (ja) * | 2004-06-02 | 2009-08-19 | ソニー株式会社 | 情報処理装置および情報処理方法、並びに、プログラム |
JP2006260377A (ja) * | 2005-03-18 | 2006-09-28 | Seiko Epson Corp | 並列処理装置および情報処理方法 |
US7743378B1 (en) | 2005-05-13 | 2010-06-22 | Oracle America, Inc. | Method and apparatus for multi-dimensional priority determination for job scheduling |
US7984447B1 (en) | 2005-05-13 | 2011-07-19 | Oracle America, Inc. | Method and apparatus for balancing project shares within job assignment and scheduling |
US7752622B1 (en) | 2005-05-13 | 2010-07-06 | Oracle America, Inc. | Method and apparatus for flexible job pre-emption |
US7844968B1 (en) * | 2005-05-13 | 2010-11-30 | Oracle America, Inc. | System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling |
US8214836B1 (en) | 2005-05-13 | 2012-07-03 | Oracle America, Inc. | Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption |
JP5006526B2 (ja) | 2005-05-31 | 2012-08-22 | ルネサスエレクトロニクス株式会社 | 割り込み分配装置 |
JP4831599B2 (ja) | 2005-06-28 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | 処理装置 |
GB0516454D0 (en) * | 2005-08-10 | 2005-09-14 | Symbian Software Ltd | Coprocessor support in a computing device |
US8001549B2 (en) * | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP4386926B2 (ja) * | 2007-02-16 | 2009-12-16 | 富士通株式会社 | 暗号通信プログラム、暗号通信方法および暗号通信装置 |
US7987385B2 (en) * | 2007-07-24 | 2011-07-26 | Ge Aviation Systems Llc | Method for high integrity and high availability computer processing |
JP4984153B2 (ja) * | 2007-09-12 | 2012-07-25 | 独立行政法人産業技術総合研究所 | 実時間タスクにおけるブロック回避方法 |
US8881163B2 (en) * | 2007-12-07 | 2014-11-04 | Microsoft Corporation | Kernel processor grouping |
US8966492B2 (en) * | 2008-01-31 | 2015-02-24 | Nec Corporation | Service provision quality control device |
US8191073B2 (en) * | 2008-03-04 | 2012-05-29 | Fortinet, Inc. | Method and system for polling network controllers |
KR20110097447A (ko) * | 2010-02-25 | 2011-08-31 | 삼성전자주식회사 | 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법 |
CN102200929A (zh) * | 2010-03-26 | 2011-09-28 | 迈普通信技术股份有限公司 | 任务间异步通信的处理方法及多任务异步通信处理系统 |
JP5778478B2 (ja) * | 2011-05-23 | 2015-09-16 | ルネサスエレクトロニクス株式会社 | データ処理システム |
US9098270B1 (en) * | 2011-11-01 | 2015-08-04 | Cypress Semiconductor Corporation | Device and method of establishing sleep mode architecture for NVSRAMs |
JP5752009B2 (ja) * | 2011-11-02 | 2015-07-22 | 三菱電機株式会社 | サービス連携装置及びサービス連携方法及びプログラム |
KR101249279B1 (ko) * | 2012-07-03 | 2013-04-02 | 알서포트 주식회사 | 동영상 생성 방법 및 장치 |
CN103176941B (zh) * | 2013-04-09 | 2016-08-03 | 华为技术有限公司 | 核间通信方法和代理装置 |
US20150046676A1 (en) * | 2013-08-12 | 2015-02-12 | Qualcomm Incorporated | Method and Devices for Data Path and Compute Hardware Optimization |
US11449367B2 (en) * | 2019-02-27 | 2022-09-20 | International Business Machines Corporation | Functional completion when retrying a non-interruptible instruction in a bi-modal execution environment |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2253421A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
JPS5764859A (en) | 1980-10-08 | 1982-04-20 | Hitachi Ltd | Multi-processor system |
JPS58225469A (ja) | 1982-06-25 | 1983-12-27 | Nec Corp | マルチプロセツサ制御方式 |
US4694396A (en) * | 1985-05-06 | 1987-09-15 | Computer X, Inc. | Method of inter-process communication in a distributed data processing system |
WO1988008162A1 (en) * | 1987-04-10 | 1988-10-20 | Eip Microwave, Inc. | Data transfer system for a multiprocessor computing system |
JP3107308B2 (ja) | 1988-02-25 | 2000-11-06 | 株式会社日立製作所 | 異種言語混在形プログラム処理コントローラ |
JP2769367B2 (ja) | 1989-09-28 | 1998-06-25 | 株式会社日立製作所 | マルチプロセッサスケジューリング方法 |
JP2831083B2 (ja) | 1990-03-08 | 1998-12-02 | 株式会社日立製作所 | マルチプロセッサシステムおよび割り込み制御装置 |
US5257372A (en) * | 1990-12-19 | 1993-10-26 | Cray Research, Inc. | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system |
JPH05324574A (ja) | 1991-10-22 | 1993-12-07 | Fujitsu Ltd | プロセッサ間通信方式 |
JPH08272755A (ja) | 1995-03-29 | 1996-10-18 | Fujitsu Ltd | プロセッサ切替え装置 |
JP3122606B2 (ja) * | 1995-12-15 | 2001-01-09 | 株式会社日立製作所 | メッセージ受信制御方式 |
JP3292976B2 (ja) | 1996-07-22 | 2002-06-17 | 株式会社日立製作所 | マルチプロセッサ描画処理装置 |
US6496823B2 (en) * | 1997-11-07 | 2002-12-17 | International Business Machines Corporation | Apportioning a work unit to execute in parallel in a heterogeneous environment |
JPH11306038A (ja) | 1998-04-16 | 1999-11-05 | Sony Corp | 並列演算処理装置およびその方法 |
US6647423B2 (en) * | 1998-06-16 | 2003-11-11 | Intel Corporation | Direct message transfer between distributed processes |
US6163801A (en) * | 1998-10-30 | 2000-12-19 | Advanced Micro Devices, Inc. | Dynamic communication between computer processes |
JP2002055966A (ja) * | 2000-08-04 | 2002-02-20 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法 |
JP2003058515A (ja) | 2001-08-21 | 2003-02-28 | Nippon Telegr & Teleph Corp <Ntt> | プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法 |
EP1461719A4 (en) * | 2001-12-04 | 2007-11-07 | Powerllel Corp | SYSTEM, METHOD AND ARCHITECTURE FOR PARALLEL PROCESSING |
US7418703B2 (en) | 2002-03-20 | 2008-08-26 | Nec Corporation | Parallel processing system by OS for single processor |
JP4196333B2 (ja) * | 2003-05-27 | 2008-12-17 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4062441B2 (ja) * | 2003-07-18 | 2008-03-19 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
JP4171910B2 (ja) * | 2004-03-17 | 2008-10-29 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
US20070011687A1 (en) * | 2005-07-08 | 2007-01-11 | Microsoft Corporation | Inter-process message passing |
-
2003
- 2003-03-31 JP JP2003094768A patent/JP4051703B2/ja not_active Expired - Fee Related
-
2004
- 2004-03-24 US US10/807,168 patent/US7526673B2/en active Active
- 2004-03-31 CN CNB2004100319333A patent/CN1323364C/zh not_active Expired - Fee Related
- 2004-03-31 GB GB0407373A patent/GB2400213B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2400213A (en) | 2004-10-06 |
JP2004302837A (ja) | 2004-10-28 |
US20080172667A1 (en) | 2008-07-17 |
GB0407373D0 (en) | 2004-05-05 |
CN1534504A (zh) | 2004-10-06 |
GB2400213B (en) | 2006-11-29 |
US7526673B2 (en) | 2009-04-28 |
CN1323364C (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4051703B2 (ja) | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム | |
JP4062441B2 (ja) | 並列処理システム及び並列処理プログラム | |
US8443377B2 (en) | Parallel processing system running an OS for single processors and method thereof | |
JP4196333B2 (ja) | 並列処理システム及び並列処理プログラム | |
US7650602B2 (en) | Parallel processing computer | |
US11966599B2 (en) | Method and system for low latency data management | |
WO2013049399A1 (en) | System and method for providing and managing message queues for multinode applications in a middleware machine environment | |
CN112491426B (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
CA3022640A1 (en) | Method and system for low latency data management | |
CN114697194B (zh) | 阻塞式事件通知方法及装置 | |
US20080134187A1 (en) | Hardware scheduled smp architectures | |
JP3969308B2 (ja) | シングルプロセッサ向けosによる並列処理システム | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
CN113791898A (zh) | 一种基于TrustZone的可信微内核操作系统 | |
US12026100B2 (en) | Method and system for low latency data management | |
GB2434008A (en) | Inter-processor communication in a parallel processing system running an OS for single processors | |
JP2018049406A (ja) | 複数プロセッサ間のタスク連携装置 | |
JPH0654488B2 (ja) | プロセツサ | |
JP2000235553A (ja) | マルチプロセッサシステム | |
JPH08272631A (ja) | ファイル追加書き込みアクセス監視装置、プロセス間情報通信方法およびプロセス間情報通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060202 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060922 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070420 |
|
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: 20071112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071125 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4051703 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111214 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111214 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131214 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |