JP2011065353A - Parallel processing system control device, method and program - Google Patents
Parallel processing system control device, method and program Download PDFInfo
- Publication number
- JP2011065353A JP2011065353A JP2009214540A JP2009214540A JP2011065353A JP 2011065353 A JP2011065353 A JP 2011065353A JP 2009214540 A JP2009214540 A JP 2009214540A JP 2009214540 A JP2009214540 A JP 2009214540A JP 2011065353 A JP2011065353 A JP 2011065353A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- individual
- command
- management table
- 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.)
- Granted
Links
Images
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
Abstract
Description
本発明は、複数の異なるタイプのプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための制御装置、その方法及びそのプログラムに関する。 The present invention relates to a control apparatus for controlling a parallel processing system including a plurality of different types of processors and a plurality of shared memories, a method thereof, and a program thereof.
組込み等、消費電力の制約の厳しい装置は、低電力で高性能を達成するために、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、専用プロセッサ、再構成可能プロセッサ、専用アクセラレータ等の異なるプロセッサを含み、1つのアプリケーションにおける各処理を、電力性能が最適なプロセッサにそれぞれ割り当てている。 In order to achieve high performance with low power consumption, devices with strict restrictions on power consumption, such as embedded systems, differ in CPU (Central Processing Unit), DSP (Digital Signal Processor), dedicated processor, reconfigurable processor, dedicated accelerator, etc. Including a processor, each process in one application is assigned to a processor having the optimum power performance.
ここで、複数の異なるプロセッサを含む処理装置において1つのアプリケーションを実行制御する方式としては、次のものがある。 Here, as a method of executing and controlling one application in a processing apparatus including a plurality of different processors, there are the following methods.
第1の方式は、それぞれのプロセッサに固有な制御手順をアプリケーションプログラムに埋め込むというものである。アプリケーションを幾つかの部分処理に分割して、それぞれの部分処理をCPU、DSP、専用プロセッサ、再構成可能プロセッサ、専用アクセラレータ等のプロセッサに割り当てる。それぞれの部分処理間でデータ転送が必要な場合は、共有メモリやプロセッサ間の専用バッファ等を用いる。処理全体の制御は一般的にはCPUで行ない、それぞれのプロセッサの起動、停止、データの投入等の処理は、それぞれのプロセッサ固有の実行制御手順をアプリケーションプログラムから関数コール等の手段で呼び出すことで行なう。 The first method is to embed a control procedure unique to each processor in an application program. An application is divided into several partial processes, and each partial process is assigned to a processor such as a CPU, a DSP, a dedicated processor, a reconfigurable processor, or a dedicated accelerator. When data transfer is required between the partial processes, a shared memory or a dedicated buffer between processors is used. The entire process is generally controlled by the CPU, and each processor startup, stop, data input, and other processes are performed by calling an execution control procedure specific to each processor from the application program by means such as a function call. Do.
第2の方式は、異機種を含むサーバ等で用いられるインタープリター方式である。それぞれの異なるプロセッサは、共通言語(例えばJava(登録商標))のインタープリターとよばれる解釈プログラムを実行する。共通言語で記述されたプログラムはそのインタープリターが解釈することにより、それぞれの異なるプロセッサで実行される。この方式では、アプリケーション全体を共通言語で記述し、それぞれの部分処理を異なるプロセッサに割り当てて実行する。 The second method is an interpreter method used in servers and the like including different models. Each different processor executes an interpretation program called an interpreter of a common language (for example, Java (registered trademark)). A program written in a common language is executed by each different processor as the interpreter interprets it. In this method, the entire application is described in a common language, and each partial process is assigned to a different processor for execution.
第3の方式は、I/O等の周辺装置に適用するものであり、デバイスドライバで各周辺装置の固有の特性を隠蔽するものである。例えば、ファイルシステムとして機能する周辺装置であれば、アプリケーションプログラムからは、デバイスドライバの提供する統一的な手順で異なるI/O装置をアクセスすることが可能である。 The third method is applied to peripheral devices such as I / O, and conceals the unique characteristics of each peripheral device with a device driver. For example, in the case of a peripheral device that functions as a file system, different I / O devices can be accessed from an application program by a unified procedure provided by a device driver.
複数の異るプロセッサを含む処理装置において1つのアプリケーションを実行するためには、複数のプロセッサ間でのデータ転送が必要になる。複数のプロセッサ間でデータ転送を行う方式としては次のものがある。 In order to execute one application in a processing apparatus including a plurality of different processors, data transfer between the plurality of processors is required. There are the following methods for transferring data between a plurality of processors.
第1の方式は、共有メモリを介して行う方式で、複数のプロセッサからアクセス可能な共有メモリに転送すべきデータ領域を確保し、送り側のプロセッサが転送すべきデータをデータ領域に書き込み、受け側のプロセッサがデータをデータ領域から読み込むことによりデータ転送を行う。 The first method is performed via a shared memory, which secures a data area to be transferred to a shared memory accessible from a plurality of processors, and writes and receives data to be transferred by the sending processor in the data area. The data processor transfers data by reading data from the data area.
第2の方式は、各プロセッサのローカルメモリを共通にアクセス可能なメモリ管理プロセッサを用いる方式である。送り側のプロセッサはローカルプロセッサに転送すべきデータを書く。受け側プロセッサは、メモリ管理プロセッサに送り側プロセッサとそのローカルメモリ内のデータ領域のアドレスを通知する。メモリ管理プロセッサは指定されたプロセッサとローカルメモリのアドレスからデータを読みだし、受け側プロセッサのローカルメモリにそのデータを書き込み、データを書き込んだデータ領域のアドレスを受け側プロセッサに通知する。受け側プロセッサはメモリ管理プロセッサから通知されたアドレスからデータを読み出すことによりデータ転送が行われる。 The second method uses a memory management processor that can access the local memory of each processor in common. The sending processor writes the data to be transferred to the local processor. The receiving processor notifies the memory management processor of the address of the sending processor and the data area in its local memory. The memory management processor reads data from the address of the designated processor and local memory, writes the data to the local memory of the receiving processor, and notifies the receiving processor of the address of the data area into which the data has been written. The receiving processor performs data transfer by reading data from the address notified from the memory management processor.
これらの方式に準拠した技術は、下記の文献で開示されている。 Techniques conforming to these methods are disclosed in the following documents.
しかしながら、上述の手法には以下のように幾つかの問題点がある。 However, the above method has several problems as follows.
第1の問題点は、特許文献3、特許文献4、特許文献5、特許文献6及び特許文献10の手法に関するものである。CPU等が各プロセッサに応じて固有の実行制御手順をアプリケーションプログラムから関数コール等の手段で呼び出す手法では、アプリケーションに対する、要求仕様、性能の変化に応じて、装置の構成が変化した場合、アプリケーションプログラム等のソフトウェアもそれに応じて変更が必要になっていた。
The first problem relates to the methods of
第2の問題点は、特許文献1、特許文献7、特許文献8及び特許文献9の手法に関するものである。インタープリター方式では、異なるプロセッサ間の差違はインタープリターによって隠蔽できるが、インタープリター方式はアプリケーションコードを随時解釈しながらの実行のため、実行速度が非常に遅くなり、要求性能を達成するためには、電力、コストの関係で組込み用等の制限の強い装置には適用が困難であった。
The second problem relates to the methods of
第3の問題点は、特許文献2の手法に関するものである。デバイスドライバで装置固有の特性を隠蔽する手法では、プログラマブルなプロセッサには対応しにくいということである。DSPや専用プロセッサ、再構成可能プロセッサのようにプログラムに応じてその機能が大きく変化するプロセッサや、専用アクセラレータでも、パラメータの設定に応じて機能が変化するようなプロセッサでは、デバイスドライバのように統一的な制御手順を予め定義することが困難である。
The third problem relates to the technique of
第4の問題点は、非特許文献1の手法に関するものである。プロセッサ間のデータ転送として、共有メモリを用いる方式では、プロセッサ数が多い場合、各プロセッサが共有メモリ領域を一様にアクセスできるようにするためのハードウェアの規模が非常に大きくなり、チップサイズや、消費電力の制限が厳しい組み込み用途では適用が困難である。
The fourth problem relates to the technique of
第5の問題点は、特許文献11の手法に関するものである。プロセッサ間のデータ転送のために、各プロセッサのローカルメモリにアクセス可能なメモリ管理プロセッサを設ける方式では、プロセッサ間のデータ転送の度にメモリ管理プロセッサにより、送り側プロセッサのローカルメモリから受け側プロセッサのローカルメモリへのデータコピーが必要となり、プロセッサ間のデータ転送が多い場合、データコピーにより大幅に性能が低下するという問題がある。 The fifth problem relates to the technique of Patent Document 11. In the method of providing a memory management processor that can access the local memory of each processor for data transfer between the processors, the memory management processor performs the data transfer between the local memory of the sending processor and the receiving processor each time the data is transferred between the processors. When data copy to a local memory is required and there are many data transfers between processors, there is a problem that the performance is greatly reduced by data copy.
本発明は上記の問題点に鑑みてなされたもので、複数の異なるタイプのプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための装置、その方法及びそのプログラムであって、各プロセッサの差異を隠蔽し、異なるプロセッサの機能を抽象化して上位レベルのアプリケーションプログラムから統一的に各プロセッサを制御でき、かつ実行効率の高い装置、その方法及びそのプログラムを提供することを目的とする。 The present invention has been made in view of the above problems, and is an apparatus for controlling a parallel processing system including a plurality of different types of processors and a plurality of shared memories, a method thereof, and a program thereof. An object of the present invention is to provide an apparatus, a method thereof, and a program thereof that can conceal differences, abstract the functions of different processors, and can control each processor uniformly from a high-level application program, and have high execution efficiency.
本発明によれば、異なるタイプの複数のプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための並列処理システム制御装置であって、アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換・メモリ管理部と、前記複数のプロセッサの各々に各々が対応し、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行う複数の個別実行制御部と、前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するメモリ管理情報保持部と、前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理する個別実行制御登録部と、を備えることを特徴とする並列処理システム制御装置が提供される。 According to the present invention, there is provided a parallel processing system control device for controlling a parallel processing system including a plurality of processors of different types and a plurality of shared memories. A plurality of common commands respectively corresponding to each of the plurality of partial processes included in the application program, and independent of the type of each processor included in the parallel processing system, and the input / output data handled by each processor A processor that executes each partial process is determined by receiving a request for execution of a plurality of common commands independent of the common memory included in the parallel processing system and analyzing each common command. The input / output data buffers handled by each processor are A common command conversion / memory management unit that determines a shared memory and converts each common command into a processor individual command that is an individual command corresponding to the determined processor, and each of the plurality of processors A plurality of individual execution control units for performing control for causing the corresponding processor to execute the partial processing specified by the processor individual command, a function for controlling access to each of the plurality of shared memories, and the plurality of shared A memory management information holding unit for holding memory management information including an address conversion table for each of the plurality of processors accessing the processor on an address map unique to the processor; and the common command conversion / memory management unit Used to determine the processor to perform the partial processing performed Information, information used for conversion of the common command to the processor individual command performed by the common command conversion / memory management unit, commands, functions, and functions used by the processor control performed by the individual execution control unit A process management table group in which information including an identifier is generated is generated, the process management table group is registered in the common command conversion / memory management unit and the individual execution control unit, and the process management table group is managed. There is provided a parallel processing system control device comprising an individual execution control registration unit that generates and manages the memory management information.
また、本発明によれば、異なるタイプの複数のプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための並列処理システム制御装置により行われる並列処理システム制御方法であって、共通コマンド変換・メモリ管理部が、アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換するステップと、前記複数のプロセッサの各々に各々が対応する複数の個別実行制御部の各々が、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行うステップと、メモリ管理情報保持部が、前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するステップと、個別実行制御登録部が、前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理するステップと、を有することを特徴とする並列処理システム制御方法が提供される。 In addition, according to the present invention, there is provided a parallel processing system control method performed by a parallel processing system control device for controlling a parallel processing system including a plurality of processors of different types and a plurality of shared memories. When the memory management unit receives an execution request for an application program, the execution request is a plurality of common commands each corresponding to each of a plurality of partial processes included in the application program, and is sent to the parallel processing system. Received as multiple common command execution requests that do not depend on the type of each processor included, and do not depend on which common memory the input / output data buffer handled by each processor is located in the parallel processing system. Execute each partial process by analyzing each common command Determining a shared memory in which a buffer of input / output data handled by each processor is arranged, and converting each common command into a processor individual command that is an individual command corresponding to the determined processor; Each of a plurality of individual execution control units corresponding to each of the plurality of processors performs control for causing the corresponding processor to execute the partial processing specified by the processor individual command; and memory management A function for controlling access to each of the plurality of shared memories, and an address conversion table for each of the plurality of processors to access the plurality of shared memories on an address map unique to the processor; A step of holding memory management information including: and an individual execution control registration unit Information used for determining the processor that executes the partial processing performed by the common command conversion / memory management unit, conversion of the common command performed by the common command conversion / memory management unit into the processor individual command Generating a process management table group in which information including information used for processing, information used in the control of the processor performed by the individual execution control unit, information including a function, and an identifier is described, and the process management table group is used as the common A parallel processing system control comprising: registering in a command conversion / memory management unit and the individual execution control unit, managing the processing management table group, and generating and managing the memory management information A method is provided.
更に、本発明によれば、異なるタイプの複数のプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための並列処理システム制御装置としてコンピュータを機能させるためのプログラムであって、コンピュータを、アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換・メモリ管理部と、前記複数のプロセッサの各々に各々が対応し、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行う複数の個別実行制御部と、前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するメモリ管理情報保持部と、前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理する個別実行制御登録部と、として機能させるための並列処理システム制御プログラムが提供される。 Furthermore, according to the present invention, there is provided a program for causing a computer to function as a parallel processing system control device for controlling a parallel processing system including a plurality of different types of processors and a plurality of shared memories. When a program execution request is received, the execution request is a plurality of common commands each corresponding to each of a plurality of partial processes included in the application program, and each processor type included in the parallel processing system It is received as multiple common command execution requests that do not depend on which common memory included in the parallel processing system the input / output data buffer handled by each processor is analyzed, and each common command is analyzed Process to execute each partial process. Common command conversion for determining a shared memory in which a buffer for input / output data handled by each processor is arranged and converting each common command into a processor individual command corresponding to the determined processor. A memory management unit, a plurality of individual execution control units that respectively correspond to the plurality of processors, and perform control for causing the corresponding processor to execute the partial processing specified by the processor individual command; Memory management information including a function for controlling access to each of the plurality of shared memories, and an address conversion table for allowing each of the plurality of processors to access the plurality of shared memories on an address map unique to the processor The memory management information holding unit for holding the common command conversion and memory management unit. Information used for determining the processor to execute the partial processing to be performed, information used for conversion of the common command to the processor individual command performed by the common command conversion / memory management unit, the individual A process management table group in which information including commands, functions, and identifiers used in the control of the processor performed by the execution control unit is generated, and the process management table group is generated as the common command conversion / memory management unit and the individual There is provided a parallel processing system control program for registering with an execution control unit, managing the process management table group, and generating and managing the memory management information and functioning as an individual execution control registration unit.
本発明によれば、複数の異なるタイプのプロセッサ及び複数の共有メモリを含む並列処理システムにおいて、個別実行制御登録部が、コマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群と、複数の共有メモリのアクセス制御のための関数、各共有メモリの各プロセッサのアドレスマップ上のアドレス情報を含むメモリ管理情報を生成し、この処理管理表群、メモリ管理情報に基づいて、共通コマンド変換・メモリ管理部が、固有のプロセッサに依存しない共通コマンドを各プロセッサへの個別のコマンドであるプロセッサ個別コマンドに変換し、個別実行制御部がプロセッサ個別コマンドで指定された処理を前記プロセッサに実行させることによって、各プロセッサ及び、各プロセッサのアドレスマップの差異を隠蔽し、異なるプロセッサの機能を抽象化して上位レベルのアプリケーションプログラムからプロセッサを統一的に制御できる。 According to the present invention, in a parallel processing system including a plurality of different types of processors and a plurality of shared memories, a process management table group in which the individual execution control registration unit describes information including a command, a function, and an identifier (ID). And a function for controlling the access of a plurality of shared memories, and memory management information including address information on the address map of each processor of each shared memory, and based on this process management table group and memory management information, A command conversion / memory management unit converts a common command independent of a specific processor into a processor individual command that is an individual command to each processor, and an individual execution control unit performs processing specified by the processor individual command to the processor. By executing, it hides the difference between each processor and each processor's address map. The processor from the functions of the different processor abstraction higher level application program provides unified control.
以下、図面を参照して本発明を実施するための形態について詳細に説明する。 DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
図1は、本発明の実施の形態が対象としているアプリケーションの処理の構成と、複数の異なるプロセッサ及び複数の共有メモリを含む並列処理システム30への部分処理のマッピングの例を示したものである。 FIG. 1 shows an example of the configuration of application processing targeted by the embodiment of the present invention and mapping of partial processing to a parallel processing system 30 including a plurality of different processors and a plurality of shared memories. .
図1において、アプリケーション10は、複数の部分処理11、複数の通信用チャネル12を含んでいる。これらの部分処理11間のデータ転送は、通信チャネル12を介して行なわれる。 In FIG. 1, an application 10 includes a plurality of partial processes 11 and a plurality of communication channels 12. Data transfer between these partial processes 11 is performed via the communication channel 12.
また、図1において、並列処理システム30は、複数の異なるプロセッサ31と、複数の共有メモリ33と、複数の通信路32と、を含む。共有メモリ33は、複数のプロセッサ31で共有される。各通信路32は、各プロセッサ31と、複数の共有メモリ33との間でのデータの転送や、割込み等のイベントの通知に使われる。 In FIG. 1, the parallel processing system 30 includes a plurality of different processors 31, a plurality of shared memories 33, and a plurality of communication paths 32. The shared memory 33 is shared by a plurality of processors 31. Each communication path 32 is used for data transfer between each processor 31 and a plurality of shared memories 33 and notification of events such as interrupts.
図1のアプリケーション10は、一例として、4つの部分処理11(P1、P2、P3及びP4)と、部分処理間の7つの通信用チャネル12(CH1、CH2、…、CH7)を含む。又、N個のプロセッサ31(Proc1、Proc2、…、Proc N)、M個の共有メモリ33(Mem1、Mem 2、…、MemM)、L個の通信路32(Com1、Com2、…、ComL)が存在するものとする。
The application 10 in FIG. 1 includes, as an example, four partial processes 11 (P1, P2, P3, and P4) and seven communication channels 12 (CH1, CH2,..., CH7) between the partial processes. N processors 31 (Proc1, Proc2,..., Proc N), M shared memories 33 (Mem1,
図1の例では、マッピング部20は、部分処理P1及びP2をプロセッサProc1にマッピングし、部分処理P3をプロセッサProc2にマッピングし、部分処理P4をプロセッサProcNにマッピングする。また、マッピング部20は、通信用チャネルCH1、CH2、CH3は共有メモリMem1へ、通信チャネルCH4は共有メモリMem2へ、通信チャネルCH5、CH6は共有メモリMem3へ、通信チャネルCH7は共有メモリMemLへマッピングする。
In the example of FIG. 1, the
マッピング部20により、それぞれの部分処理11を、その処理に適したプロセッサ31が実行するようにすることにより、アプリケーション10全体で、消費電力あたりの性能を最適化することが可能となる。共有メモリ33は全プロセッサ31で共有する必要はなく、データ転送が必要なプロセッサ31間で共有する。共有メモリ33は、複数設けられる。通信チャネル12は、その通信チャネル12を介してデータ転送を行う部分処理11がマッピングされているプロセッサ31がアクセス可能な共有メモリ33にマッピングされる。こうすることにより、少ないハードウェア量でシステム全体としてのデータ転送速度を向上させることが可能となる。また、そうすることにより、並列処理システム30をSoC(System On Chip)として1つのチップで構成する場合には、チップ面積あたりの性能を最適化することが可能となる。
The
図2は、プロセッサ固有空間アドレスマップの例である。これは、各プロセッサ31の固有空間に各共有メモリ32がどのように配置されているかを示している。例えば、プロセッサProc1の固有空間アドレスマップ67−1には共有メモリMem1、Mem3、Mem2が、ベースアドレスbase1,1、base3,1、base2,1にマップされていることを示している。一般にアドレスマップ67はプロセッサ31毎に異なり、1つの共有メモリ33は異なるプロセッサからはそれぞれ異なるベースアドレス68にマップされる。
FIG. 2 is an example of a processor-specific space address map. This shows how each shared memory 32 is arranged in the private space of each processor 31. For example, the unique space address map 67-1 of the processor Proc1 indicates that the shared memories Mem1, Mem3, and Mem2 are mapped to the base addresses base1, 1, base3, 1, and base2,1. In general, the
図3は、アプリケーションプログラム40、並列処理システム制御装置50及び並列処理システム30の関係を示すブロック図である。
FIG. 3 is a block diagram showing the relationship between the
アプリケーションプログラム40は、アプリケーション実行制御用コード41と、実行制御登録用コード42とを含む。
The
アプリケーション実行制御用コード41は、図1のアプリケーション10の各部分処理11を具体的にどういう方式で並列処理をするかを定義している。一方で、実行制御登録用コード42は、アプリケーション実行制御用コード41に基づく処理を並列処理システム30の複数のプロセッサ31に実行させるために必要なプログラムや複数のプロセッサ31で実行されるプログラム間の通信路32に対応する共有メモリ33を並列処理システム制御装置50に登録するためのコードである。従って、実行制御登録用コード42は、個別実行制御登録コマンド113の基となるコードである。 The application execution control code 41 defines in what manner each partial process 11 of the application 10 in FIG. On the other hand, the execution control registration code 42 is a program necessary for causing the plurality of processors 31 of the parallel processing system 30 to execute processing based on the application execution control code 41 or between programs executed by the plurality of processors 31. This is a code for registering the shared memory 33 corresponding to the communication path 32 in the parallel processing system control device 50. Therefore, the execution control registration code 42 is a code that is the basis of the individual execution control registration command 113.
また、各部分処理11は、個々のプロセッサ31に依存しない統一した構造を持つ共通コマンド110を用いて記述されている。 Each partial process 11 is described using a common command 110 having a unified structure that does not depend on each processor 31.
並列処理システム制御装置50は、共通コマンド変換・メモリ管理部51、個別実行制御登録部52、メモリ管理情報80、及び複数の個別実行制御部53を含む。メモリ管理情報80は、メモリ管理情報保持部80Aにより保持される。共通コマンド変換・メモリ管理部51には、アプリケーション実行制御用コード41から、部分処理11の実行指示が、共通コマンド110として渡される。また、共通コマンド変換・メモリ管理部51には、アプリケーション実行制御用コード41から、共有メモリ33でのバッファ領域の確保指示及び解放指示が渡される。 The parallel processing system control device 50 includes a common command conversion / memory management unit 51, an individual execution control registration unit 52, memory management information 80, and a plurality of individual execution control units 53. The memory management information 80 is held by the memory management information holding unit 80A. The common command conversion / memory management unit 51 receives an execution instruction of the partial process 11 from the application execution control code 41 as a common command 110. In addition, the common command conversion / memory management unit 51 receives an instruction to secure and release a buffer area in the shared memory 33 from the application execution control code 41.
共通コマンド110は、アプリケーションプログラムの個々の部分処理11を識別するための処理ID114と、個々の部分処理11の入出力データ等を指定するための処理パラメータ115を含む。入出力データは共有メモリ33に確保されたバッファに格納されるが、部分処理11がどのプロセッサ31で処理されるかにより、バッファのアドレスの指定を変更する必要がある。共通コマンド110の処理パラメータ115は、入出力データの格納されるバッファのアドレスの指定を含む。アドレスの指定は、どのプロセッサで入出力データが処理されるかに依存しない共通な形式で行われる。バッファのアドレス指定の共通形式を共通メモリ情報60(図5参照)と呼ぶ。 The common command 110 includes a process ID 114 for identifying each partial process 11 of the application program, and a process parameter 115 for designating input / output data and the like of each partial process 11. The input / output data is stored in a buffer secured in the shared memory 33, but it is necessary to change the buffer address designation depending on which processor 31 the partial processing 11 is processed in. The processing parameter 115 of the common command 110 includes designation of an address of a buffer in which input / output data is stored. The address is specified in a common format independent of which processor processes input / output data. A common format for buffer addressing is called common memory information 60 (see FIG. 5).
共通コマンド変換・メモリ管理部51は、共通コマンド110により指定された部分処理11を実行するべきプロセッサ31を特定し、そのプロセッサ31が行なう部分処理を識別するためのプロセッサ個別処理ID116を特定する。 The common command conversion / memory management unit 51 specifies the processor 31 to execute the partial process 11 specified by the common command 110, and specifies the processor individual process ID 116 for identifying the partial process performed by the processor 31.
メモリ管理情報80には、各共有メモリ33の管理情報が含まれている。共通コマンド変換・メモリ管理部51は、共通コマンド110の処理パラメータ115に含まれる共通メモリ情報60を、メモリ管理情報80を参照して、部分処理11を実行するべきプロセッサ31の固有空間アドレスマップ67のアドレスに変換する。変換後のアドレスは、個別処理パラメータ118に含まれることとなる。
The memory management information 80 includes management information for each shared memory 33. The common command conversion / memory management unit 51 refers to the memory management information 80 for the
共通コマンド変換・メモリ管理部51は、以上説明した通り、共通コマンド110を、プロセッサ個別処理ID116と個別処理パラメータ118とを含むプロセッサ個別コマンド111に変換する。このプロセッサ個別コマンド111を基に、プロセッサ31を制御するための個別実行制御部53は、プロセッサ31に部分処理11を実行させる。 As described above, the common command conversion / memory management unit 51 converts the common command 110 into the processor individual command 111 including the processor individual process ID 116 and the individual process parameter 118. Based on the processor individual command 111, the individual execution control unit 53 for controlling the processor 31 causes the processor 31 to execute the partial process 11.
個別実行制御部53には、それに対応するプロセッサ31に固有の実行制御に必要な関数が登録されている。個別実行制御部53に対応するプロセッサ31に割り当てられた部分処理11をプロセッサ31が実行するためには、その部分処理11をそのプロセッサ31で実行するためのプログラムとそのプログラムを識別するためのプロセッサ個別処理ID116を対応付けて登録する必要がある。 In the individual execution control unit 53, functions necessary for execution control specific to the corresponding processor 31 are registered. In order for the processor 31 to execute the partial process 11 assigned to the processor 31 corresponding to the individual execution control unit 53, a program for executing the partial process 11 by the processor 31 and a processor for identifying the program It is necessary to register the individual process ID 116 in association with each other.
プログラムの登録方法は一般的には各プロセッサ31毎に固有の手順が必要となる。例えば、プロセッサ31がCPUやDSPであれば、個別実行制御登録部52は、部分処理11用の関数へのポインタを個別実行制御コマンド113のパラメータとして受け取り、ポインタとプロセッサ個別処理ID116との対応付けを管理すればよい。また、例えば、プロセッサ31が回路を繰り返し変更することのできる再構成可能プロセッサであれば、個別実行制御登録部52は、部分処理11用の再構成データを個別実行制御コマンド113のパラメータとして受け取り、再構成データとプロセッサ個別処理ID116との対応付けを管理する。 The program registration method generally requires a procedure specific to each processor 31. For example, if the processor 31 is a CPU or DSP, the individual execution control registration unit 52 receives a pointer to a function for the partial process 11 as a parameter of the individual execution control command 113, and associates the pointer with the processor individual process ID 116. Can be managed. Further, for example, if the processor 31 is a reconfigurable processor that can repeatedly change the circuit, the individual execution control registration unit 52 receives the reconfiguration data for the partial process 11 as a parameter of the individual execution control command 113, and The association between the reconfiguration data and the processor individual process ID 116 is managed.
このため、個別実行制御部53では、プロセッサ31の種類に応じて、プロセッサ個別処理ID登録関数102(図7参照)を予め登録しておき、プロセッサ個別処理ID116の登録はこのプロセッサ個別処理ID登録関数102を用いて行なう。
Therefore, in the individual execution control unit 53, the processor individual process ID registration function 102 (see FIG. 7) is registered in advance according to the type of the processor 31, and the processor individual process ID 116 is registered as the processor individual process ID registration.
プロセッサ個別処理ID登録関数102を用いて登録した、部分処理11を実行するためのプロセッサ31用のプログラムは、プロセッサ個別処理ID116で指定することができる。
The program for the processor 31 for executing the partial process 11 registered using the processor individual process
上述したように、プロセッサ個別コマンド111はプロセッサ個別処理ID116と、個別処理パラメータ118とを含む。プロセッサ個別処理ID116は、例えば、プロセッサがCPUであれば登録されている実行関数を特定し、プロセッサが再構成プロセッサであれば再構成データを特定する。プロセッサ個別処理ID116は、個別処理パラメータ118とともにプロセッサ31に与えられる。 As described above, the processor individual command 111 includes the processor individual process ID 116 and the individual process parameter 118. The processor individual processing ID 116 specifies, for example, a registered execution function if the processor is a CPU, and specifies reconfiguration data if the processor is a reconfigurable processor. The processor individual process ID 116 is given to the processor 31 together with the individual process parameter 118.
個別実行制御部53には、それに対応するプロセッサ31に応じて、プロセッサ個別コマンド実行関数103(図7参照)が予め登録されている。プロセッサ個別コマンド実行関数103をプロセッサ個別処理ID116と個別処理パラメータ118とを引数として呼び出すことにより実行されるプロセッサ個別実行制御コマンド112によって、個別実行制御部53に対応するプロセッサ31が制御される。
In the individual execution control unit 53, a processor individual command execution function 103 (see FIG. 7) is registered in advance in accordance with the processor 31 corresponding thereto. The processor 31 corresponding to the individual execution control unit 53 is controlled by the processor individual execution control command 112 executed by calling the processor individual
プロセッサ31の実行状況の確認の手順等も、各プロセッサ31毎に異なるため、各プロセッサ31毎に予め登録しておいたプロセッサ状態チェック関数104(図7参照)を用いて、その確認等を行なう。 Since the procedure for confirming the execution status of the processor 31 is also different for each processor 31, the confirmation is performed using the processor state check function 104 (see FIG. 7) registered in advance for each processor 31. .
個別実行制御登録部52は、個別実行制御登録コマンド113に基づき、各プロセッサ31毎の個別実行制御部53の登録、プロセッサ個別処理ID登録関数102、プロセッサ個別コマンド実行関数103、プロセッサ状態チェック関数104等のプロセッサの制御に必要な関数の個別実行制御部53への登録及びプロセッサ個別処理ID登録関数102を用いたプロセッサ個別処理ID116の共通コマンド変換・メモリ管理部51及び個別実行制御部53への登録を行なう。この際、具体的には、プロセッサ管理表71のプロセッサ31用のエントリにプロセッサ制御用メソッド管理表72を登録することになる。ここに登録された各種メソッド群が個別実行制御部の実体となる。
Based on the individual execution control registration command 113, the individual execution control registration unit 52 registers the individual execution control unit 53 for each processor 31, the processor individual process
図4は、共通コマンド110の構成例を示す。共通コマンド110は、アプリケーションプログラムの部分処理11を指定する処理ID114と、部分処理11に処理の対象となる入出力データ等を指定する処理パラメータ115とを含む。 FIG. 4 shows a configuration example of the common command 110. The common command 110 includes a process ID 114 that designates the partial process 11 of the application program, and a process parameter 115 that designates input / output data to be processed in the partial process 11.
図4は、部分処理11に入力データが2セット、出力データが1セットある場合の例を示している。 FIG. 4 shows an example in which the partial processing 11 has two sets of input data and one set of output data.
処理パラメータ115は、例えば、処理パラメータ本体16へのポインタである。処理パラメータ本体16に入力データバッファ13、出力データバッファ14をアクセスするために必要な共通メモリ情報60へのポインタを格納することにより、処理の対象となる入力データや処理の結果である出力データのある場所を指定できる。
The processing parameter 115 is, for example, a pointer to the processing parameter body 16. By storing a pointer to the
処理パラメータ本体16に入力データセット数及び出力データセット数を格納することにより、各部分処理11毎に入力データのセット数、出力データのセット数が異なる場合に対応することができる。他方、一般的には部分処理11はその処理内容が決まれば、入出力セット数も決まるため、部分処理11を実行するプログラムに固有の入出力セット数は処理パラメータ本体16には設定しないことも可能である。 By storing the number of input data sets and the number of output data sets in the processing parameter body 16, it is possible to cope with the case where the number of input data sets and the number of output data sets differ for each partial process 11. On the other hand, in general, if the processing contents of the partial process 11 are determined, the number of input / output sets is also determined. Therefore, the number of input / output sets unique to the program executing the partial process 11 may not be set in the processing parameter body 16. Is possible.
図5は部分処理11の入出力データ用バッファをアクセスるすために必要な共通メモリ情報60の構成例である。メモリID61(memID)によりバッファ15が置かれる共有メモリ33を指定する。各共有メモリ33は共有メモリ33に固有のアドレスマップを持つ。これをメモリ固有空間アドレスマップ66と呼ぶ。バッファ15はメモリID61とメモリID61で指定される共有メモリ33のメモリ固有空間アドレスマップ66上のアドレスを指定することによりアクセス可能である。メモリ固有空間アドレスマップ66上のアドレスをメモリ固有空間アドレス62と呼ぶ。共通メモリ情報60はバッファ15を指定するためにメモリ固有空間アドレス62を含む。バッファ15はメモリID61とメモリ固有空間アドレス62により一意に指定できる。共有メモリ情報60はバッファ15のサイズを指定するバッファサイズ63(bufSize)を持つことも可能である。バッファサイズ63により、バッファ15の領域外へのアクセスを制限することも可能となる。
FIG. 5 is a configuration example of the
プロセッサ31はプロセッサ固有空間アドレスマップ67を持つ。バッファ15をプロセッサ31からアクセスするためには、このプロセッサ固有空間アドレスマップ67上でのバッファ15のアドレスが必要である。プロセッサ31からバッファ15をアクセスするためのアドレスは、プロセッサ固有空間アドレス64(procAddr)に格納される。
The processor 31 has a processor-specific
プロセッサ固有空間アドレス64は、バッファ15が置かれる共有メモリ33が、プロセッサ31のプロセッサ固有空間アドレスマップ67上のどのアドレスにマップされているかの情報(ベースアドレス68)と、バッファ15の共有メモリ33のメモリ固有空間アドレスマップ66上のアドレス(メモリ固有空間アドレス62)を加算することで得ることができる。
The processor specific space address 64 includes information (base address 68) indicating which address on the processor specific
共通メモリ情報60はメモリID61で指定される共有メモリ33に固有のメモリ固有管理情報65(memSpecInfo)を持つことが可能である。この情報は共有メモリ33上にバッファ領域を確保、解放するため必要となる固有の管理情報を含むことができる。
The
図6は複数の共有メモリ33をアプリケーション実行制御用コード41から統一的にアクセスするために必要なメモリ管理情報80を構成する管理表、変換表である。アドレス変換表83は、共有メモリ33が、プロセッサ31のプロセッサ固有空間アドレスマップ67上のベースアドレス68を格納している。例えばプロセッサID117がiのプロセッサ31がメモリIDがjの共有メモリ33をアクセスするためのベースアドレス68はbase j,iである。
FIG. 6 shows a management table and a conversion table constituting memory management information 80 necessary for uniformly accessing a plurality of shared memories 33 from the application execution control code 41. In the address conversion table 83, the shared memory 33 stores the
一般には、プロセッサ31は全ての共有メモリ33にアクセス可能とは限らない。システムの低コスト化のため、必要最小限の共有メモリ33のみアクセスできるように構成することが望ましい。したがって、プロセッサ31からアクセス困難な共有メモリ33を識別する必要がある。この識別は、ベースアドレス68の値として通常のベースアドレスと識別可能な特別な値(例えば0)を設定したり、または、アドレス変換表83の、各ベースアドレス68のエントリに識別用のフラグを設けることで可能である。
In general, the processor 31 is not always accessible to all the shared memories 33. In order to reduce the cost of the system, it is desirable to configure so that only the minimum necessary shared memory 33 can be accessed. Therefore, it is necessary to identify the shared memory 33 that is difficult to access from the processor 31. For this identification, a special value (for example, 0) that can be distinguished from a normal base address is set as the value of the
アプリケーション実行制御コード41から共有メモリ33上のバッファ15をアクセスするためには、共有メモリ33上にバッファ領域を確保する必要がある。また後のメモリ領域の再利用のために使用後のバッファ領域の解放という操作も必要となる。共有メモリ33に対する、領域確保、解放等の管理操作はその共有メモリ33をアクセスすることのできるプロセッサ31で行う。共有メモリ33は複数のプロセッサ31からアクセス可能な場合があるがその場合は、複数のプロセッサ31のなかで、領域確保、解放等の管理操作に適したプロセッサ31がその管理操作を行う。共有メモリ33毎に管理操作を行うプロセッサ31が異なるため、管理操作用のプログラムを共有メモリ31毎に設ける必要がある。これは、メモリ管理表81、メモリアクセス用メソッド管理表82によって実現する。 In order to access the buffer 15 on the shared memory 33 from the application execution control code 41, it is necessary to secure a buffer area on the shared memory 33. In addition, an operation of releasing the buffer area after use is necessary for the reuse of the memory area later. Management operations such as area allocation and release for the shared memory 33 are performed by the processor 31 that can access the shared memory 33. In some cases, the shared memory 33 can be accessed from a plurality of processors 31. In this case, the processor 31 suitable for management operations such as area allocation and release among the plurality of processors 31 performs the management operation. Since the processor 31 that performs the management operation differs for each shared memory 33, it is necessary to provide a management operation program for each shared memory 31. This is realized by the memory management table 81 and the memory access method management table 82.
メモリ管理表81は共有メモリ33を指定するメモリID61とその共有メモリ33の管理操作に必要なメモリアクセス用メソッドを管理するための表である。 The memory management table 81 is a table for managing a memory ID 61 for specifying the shared memory 33 and a memory access method necessary for the management operation of the shared memory 33.
メモリアクセス用メソッド管理表82は、共有メモリ33の管理操作に必要なメソッド群を関数として管理している。共有メモリ33の管理操作に必要なメソッドしては幾つか考えられるが、ここでは、共有メモリ33にバッファ15の領域を確保するための領域確保関数87、共有メモリ33上にあるバッファ15の領域を解放するための領域解放関数88が示される。メモリアクセス用メソッド関数は管理操作を行うプロセッサ31に対する管理操作コマンドとして実現できる。メモリアクセス用メソッド関数は、プロセッサ31の指定も含み、指定されたプロセッサ31のプロセッサ個別実行制御部53の一部として動作する。 The memory access method management table 82 manages a method group necessary for the management operation of the shared memory 33 as a function. There are several methods required for the management operation of the shared memory 33. Here, an area securing function 87 for securing the area of the buffer 15 in the shared memory 33, and the area of the buffer 15 on the shared memory 33. An area release function 88 for releasing is shown. The memory access method function can be realized as a management operation command for the processor 31 that performs the management operation. The memory access method function includes the designation of the processor 31 and operates as a part of the processor individual execution control unit 53 of the designated processor 31.
図7は共通コマンド110から実際にプロセッサ31を制御するために必要となるコマンド、関数及び識別子(ID)を含む情報が記載された管理表である。この管理表には、処理ID管理表70、プロセッサ管理表71及びプロセッサ制御用メソッド管理表72が含まれる。 FIG. 7 is a management table in which information including commands, functions, and identifiers (IDs) necessary for actually controlling the processor 31 from the common command 110 is described. This management table includes a process ID management table 70, a processor management table 71, and a processor control method management table 72.
処理ID管理表70は、アプリケーションに含まれる部分処理11に対応する処理ID114を管理している。共通コマンド110に含まれる処理ID114を用いてこの処理ID管理表70を検索することで、処理ID114に対応する部分処理11を担当するプロセッサID117と、そのプロセッサID117で指定されるプロセッサ31に固有のプロセッサ個別処理ID116を検索できる。部分処理11を追加する場合は、処理ID管理表70にエントリを追加する。
The process ID management table 70 manages the process ID 114 corresponding to the partial process 11 included in the application. By searching the process ID management table 70 using the process ID 114 included in the common command 110, the
プロセッサ管理表71は、並列処理システムの各プロセッサ31の実行制御に必要なプロセッサ制御用メソッドを管理するための表である。 The processor management table 71 is a table for managing a processor control method necessary for execution control of each processor 31 of the parallel processing system.
プロセッサID117からそのプロセッサID117と対応付けられているプロセッサ31のプロセッサ制御用メソッド管理表72を検索できる。プロセッサ31を登録する場合には、このプロセッサ管理表71にエントリを追加する。
The processor control method management table 72 of the processor 31 associated with the
プロセッサ制御用メソッド管理表72は、プロセッサ31の実行制御に必要なメソッド群を関数として管理している。プロセッサ31の実行制御に必要な操作は幾つか考えられるが、ここでは、プロセッサ31に部分処理11に対応したプログラムを登録し、プロセッサ個別処理ID116と対応付けるためのプロセッサ個別処理ID登録関数102、プロセッサ個別コマンド111が与えられたときにプロセッサ個別コマンド111で指定される処理をプロセッサ31で行なうためのプロセッサ個別コマンド実行関数103及び必要に応じてプロセッサ31の状態を確認するためのプロセッサ状態チェック関数104が示されている。プロセッサ31への操作は、その操作に対応するプロセッサ制御用メソッドID100を指定して、プロセッサ制御用メソッド管理表72を検索することで、必要なプロセッサ制御用メソッド関数へのポインタ101を得ることができる。
The processor control method management table 72 manages a method group necessary for execution control of the processor 31 as a function. Several operations necessary for execution control of the processor 31 can be considered. Here, a program corresponding to the partial process 11 is registered in the processor 31, and the processor individual process
次に、図8、図9、図10及び図11のフローチャートを用いて、本実施の形態に係る並列処理システム制御装置50の動作について説明する。ここで、図8はアプリケーション制御用コード41が共通コマンド110を発行してから実際に所定のプロセッサ31での処理が起動されるまでの手順を示している。図9はアプリケーション実行制御用コード41から処理に必要なバッファ15の領域を共有メモリ33上に確保、及び、解放する手順を示している。図10及び図11はアプリケーションの実行制御登録用コード42が個別実行制御登録コマンド113を発行してから各種登録を行なうまでの手順を示している。 Next, the operation of the parallel processing system control apparatus 50 according to the present embodiment will be described with reference to the flowcharts of FIGS. 8, 9, 10 and 11. Here, FIG. 8 shows a procedure from when the application control code 41 issues the common command 110 to when the processing in the predetermined processor 31 is actually started. FIG. 9 shows a procedure for securing and releasing the area of the buffer 15 necessary for processing from the application execution control code 41 on the shared memory 33. 10 and 11 show the procedure from when the application execution control registration code 42 issues the individual execution control registration command 113 to when various registrations are performed.
図8の処理は共通コマンド変換・メモリ管理部51で実行される。 The process of FIG. 8 is executed by the common command conversion / memory management unit 51.
まず、ステップS100では、共通コマンド変換・メモリ管理部51は、受け取った共通コマンド110から処理ID114を抽出し、その処理ID114をキーにして処理ID管理表70からプロセッサID117及びプロセッサ個別処理ID116を得る。
First, in step S100, the common command conversion / memory management unit 51 extracts the process ID 114 from the received common command 110, and obtains the
続いて、ステップS110では、共通コマンド変換・メモリ管理部51は、プロセッサID117をキーにしてプロセッサ管理表71からプロセッサ制御用メソッド管理表へのポインタ73を得る。
Subsequently, in step S110, the common command conversion / memory management unit 51 obtains a pointer 73 from the processor management table 71 to the processor control method management table using the
ステップS120では、共通コマンド変換・メモリ管理部51は、プロセッサ制御用メソッド管理表へのポインタ73により指定されるプロセッサ制御用メソッド管理表72をプロセッサ個別コマンド111の実行を示すプロセッサ制御用メソッドID100をキーとして検索し、プロセッサ個別コマンド実行関数103を得る。
In step S120, the common command conversion / memory management unit 51 sets the processor control method management table 72 designated by the pointer 73 to the processor control method management table to the processor
ステップS130〜S170では、共通コマンド110の処理パラメータ115を個別処理パラメータ118に変換する。処理パラメータ115は、処理のデータバッファ(入力データバッファ又は出力データバッファ)の領域を指定している共通メモリ情報60を1以上含む。処理パラメータ115から個別処理パラメータ118への変換は、処理パラメータ115の全ての共通メモリ情報60のプロセッサ固有空間アドレス64を、プロセッサID117で指定されるプロセッサ31のプロセッサ固有空間アドレス64に設定することで行う。各共通メモリ情報60に対してステップS140〜S170を繰り返す。
In steps S130 to S170, the processing parameter 115 of the common command 110 is converted into the individual processing parameter 118. The processing parameter 115 includes one or more pieces of
ステップS140では、処理パラメータ115を構成する全共通メモリ情報60に関する変換が完了したかどうか条件判断する。
In step S140, it is determined whether or not the conversion for all
ステップS150では、共通メモリ情報60からバッファ15のメモリID61とメモリ固有空間アドレス62を得る。
In step S150, the memory ID 61 and the memory
ステップS160では、メモリID61とプロセッサID117をキーとしてアドレス変換表83からベースアドレス68を得る。
In step S160, the
ステップS170では、メモリ固有空間アドレス62とベースアドレス68を加算することにより、プロセッサ固有空間アドレス64を得る。このプロセッサ固有空間アドレス64を共通メモリ情報60に設定することにより共通メモリ情報60の変換が完了する。
In step S170, the processor private space address 64 is obtained by adding the memory
処理パラメータ115を構成する全ての共通メモリ情報60を変換することで個別処理パラメータ118を得る。
The individual processing parameter 118 is obtained by converting all the
ステップS180では、共通コマンド変換・メモリ管理部51は、プロセッサ個別処理ID116と個別処理パラメータ118を引数として、プロセッサ個別コマンド実行関数103を呼び出す。
In step S180, the common command conversion / memory management unit 51 calls the processor individual
呼び出されたプロセッサ個別コマンド実行関数103は個別実行制御部53の一部として動作する。
The called processor individual
図9はアプリケーション実行制御用コード41から処理に必要なバッファ15の領域を共有メモリ33上に確保、及び、解放する手順を示している。この手順は共通コマンド変換・メモリ管理部51で実行される。ステップS800〜S830はバッファ15の領域確保の手順、S900〜S930はバッファ15の領域解放の手順を示す。 FIG. 9 shows a procedure for securing and releasing the area of the buffer 15 necessary for processing from the application execution control code 41 on the shared memory 33. This procedure is executed by the common command conversion / memory management unit 51. Steps S800 to S830 show a procedure for securing the area of the buffer 15, and S900 to S930 show a procedure for releasing the area of the buffer 15.
バッファ領域確保要求は、メモリID61とバッファサイズ63を引数として共通コマンド変換・メモリ管理部51に与えられる(ステップS800)。メモリID61をキーにしてメモリ管理表81からメモリアクセス用メソッド管理表82へのポインタを得る(ステップS810)。メモリアクセス用メソッド管理表82へのポインタ84が指すメモリアクセス用メソッド管理表82から領域確保関数87を得る(ステップS820)。次に、バッファサイズ63を引数として領域確保関数87を呼び出す。領域確保関数87は所定のプロセッサ31の個別実行制御部53の一部として動作し、メモリID61で指定される共有メモリ33上にバッファサイズ63で指定されたサイズの領域を確保し、戻り値として、そのバッファ15をアクセスするための共通メモリ情報60を返す(ステップS830)。
The buffer area securing request is given to the common command conversion / memory management unit 51 using the memory ID 61 and the buffer size 63 as arguments (step S800). A pointer from the memory management table 81 to the memory access method management table 82 is obtained using the memory ID 61 as a key (step S810). An area allocation function 87 is obtained from the memory access method management table 82 pointed to by the pointer 84 to the memory access method management table 82 (step S820). Next, the area securing function 87 is called with the buffer size 63 as an argument. The area allocation function 87 operates as a part of the individual execution control unit 53 of the predetermined processor 31, allocates an area of the size specified by the buffer size 63 on the shared memory 33 specified by the memory ID 61, and uses it as a return value. The
領域解放要求は、共通メモリ情報60を引数として共通コマンド変換・メモリ管理部51に与えられる(ステップS900)。共通メモリ情報60のメモリID61をキーにしてメモリ管理表81からメモリアクセス用メソッド管理表82へのポインタを得る(ステップS910)。メモリアクセス用メソッド管理表82へのポインタ84が指すメモリアクセス用メソッド管理表82から領域解放関数88を得る(ステップS920)。次に、領域解放関数88を共通メモリ情報60を引数として呼び出す。領域解放関数88は所定のプロセッサ31の個別実行制御部53の一部として動作し、共通メモリ情報60で指定される共有メモリ33上のバッファ15を解放する(ステップS930)。
The area release request is given to the common command conversion / memory management unit 51 using the
プロセッサ個別コマンド実行関数103は、一般には、各プロセッサ31毎に異なる処理をする。一般には、引数として与えられたプロセッサ個別処理ID116をキーとして必要なプログラムを検索し、プロセッサ31を起動し、そのプログラムを実行させる。
The processor individual
プロセッサ31がCPUであれば、引数として個別処理パラメータ118を与えてプログラムを呼び出す。 If the processor 31 is a CPU, the program is called by giving the individual processing parameter 118 as an argument.
一方で、プロセッサ31が実行に先だってプログラムのロードが必要となるものであれば、プロセッサ31にプログラムをロードさせた後に、プロセッサ31に固有の方法で個別処理パラメータ118をプロセッサ31に渡してプロセッサ31でのプログラムの実行を開始させる。 On the other hand, if it is necessary for the processor 31 to load a program prior to execution, the processor 31 loads the program and then passes the individual processing parameters 118 to the processor 31 by a method specific to the processor 31. Start program execution on.
プロセッサ31がプログラムのロードに時間がかかるものであれば、同じプログラムで処理可能な処理要求を幾つか溜めて、それらの処理要求に対応する処理をまとめてプロセッサ31に実行させることも可能である。これらのプロセッサ31に固有の制御手順や、共有メモリ33に固有の管理操作は、予め個別実行制御登録部52により個別実行制御部53やメモリ管理情報80に登録することができる。 If the processor 31 takes a long time to load a program, it is possible to accumulate several processing requests that can be processed by the same program and to cause the processor 31 to execute processing corresponding to these processing requests collectively. . Control procedures unique to these processors 31 and management operations unique to the shared memory 33 can be registered in the individual execution control unit 53 and the memory management information 80 by the individual execution control registration unit 52 in advance.
図10及び図11の処理は、個別実行制御登録部52で実行される。図10の処理は、プロセッサ31に固有の制御手順を登録する手順を示し、図11は共有メモリ33に固有の管理操作を登録する手順を示す。 The processes of FIGS. 10 and 11 are executed by the individual execution control registration unit 52. 10 shows a procedure for registering a control procedure unique to the processor 31, and FIG. 11 shows a procedure for registering a management operation unique to the shared memory 33.
まず、個別実行制御登録コマンド113の内容に応じてプロセッサの登録(ステップS200、S210、S220)、メソッドの登録(ステップS300、S310、S320、S330)、プロセッサ個別処理の登録(ステップS400、S410、S420、S430、S440、S450)、共有メモリの登録(ステップS500、S510、S520)、メモリアクセス用メソッドの登録(ステップS600、S610、S620、S630)、ベースアドレスの登録(ステップS700、S710、S720)が行なわれる。 First, in accordance with the contents of the individual execution control registration command 113, processor registration (steps S200, S210, S220), method registration (steps S300, S310, S320, S330), processor individual process registration (steps S400, S410, S420, S430, S440, S450), shared memory registration (steps S500, S510, S520), memory access method registration (steps S600, S610, S620, S630), base address registration (steps S700, S710, S720). ) Is performed.
ステップS200において、個別実行制御登録コマンド113が部分処理11に係るプロセッサ登録であれば(True)、ステップS210でプロセッサ制御用メソッド管理表72を生成し、ステップS220でプロセッサID117を生成し、生成したプロセッサID117とプロセッサ制御用メソッド管理表72へのポインタをプロセッサ管理表71に登録する。
In step S200, if the individual execution control registration command 113 is processor registration related to the partial process 11 (True), the processor control method management table 72 is generated in step S210, and the
ステップS300において、個別実行制御登録コマンド113が、プロセッサ31の実行制御に係るプロセッサ制御用メソッドの登録であれば(True)、引数として、プロセッサID117、プロセッサ制御用メソッドID100、プロセッサ制御用メソッド関数へのポインタ101が個別実行制御登録コマンド113により与えられている(ステップS310)。
In step S300, if the individual execution control registration command 113 is registration of a processor control method related to execution control of the processor 31 (True), the
続くステップS320では、引数として与えられたプロセッサID117をキーとしてプロセッサ管理表71からプロセッサ制御用メソッド管理表72を得る。
In subsequent step S320, the processor control method management table 72 is obtained from the processor management table 71 using the
ステップS330では、プロセッサ制御用メソッド管理表72にプロセッサ制御用メソッドID100及びプロセッサ制御用メソッド関数へのポインタ101を登録する。
In step S330, a processor
ステップS400において、個別実行制御登録コマンド113がプロセッサ個別処理の登録であれば(True)、引数として、プロセッサID117、指定したプロセッサ31で所定の処理を行なうためのプログラム定義体が個別実行制御登録コマンド113により与えられている(ステップS410)。
In step S400, if the individual execution control registration command 113 is a registration of processor individual processing (True), the
続くステップS420では、プロセッサID117をキーとしてプロセッサ管理表71からプロセッサ制御用メソッド管理表72へのポインタを得る。
In the subsequent step S420, a pointer from the processor management table 71 to the processor control method management table 72 is obtained using the
ステップS430では、プロセッサ制御用メソッド管理表72からプロセッサ個別処理ID登録関数102を得る。
In step S430, the processor individual process
ステップS440では、個別実行制御登録コマンド113の引数として与えられたプログラム定義体を引数としてプロセッサ個別処理ID登録関数102を呼び出す。この呼び出しの戻り値としてプロセッサ個別処理ID116を得る。
In step S440, the processor individual process
ステップS450では、処理ID114を生成し、処理ID管理表70に処理ID114、プロセッサID117及びプロセッサ個別処理ID116を登録する。
In step S450, the process ID 114 is generated, and the process ID 114, the
ステップS500において、個別実行制御登録コマンド113が共有メモリ登録であれば(True)、ステップS510でメモリアクセス用メソッド管理表82を生成し、ステップS520でメモリID61を生成し、生成したメモリID61とメモリアクセス用メソッド管理表82へのポインタをメモリ管理表81に登録する。 In step S500, if the individual execution control registration command 113 is shared memory registration (True), the memory access method management table 82 is generated in step S510, the memory ID 61 is generated in step S520, and the generated memory ID 61 and the memory A pointer to the access method management table 82 is registered in the memory management table 81.
ステップS600において、個別実行制御登録コマンド113が、メモリアクセス用メソッドの登録であれば、(True)、引数として、メモリID61、メモリアクセス用メソッドID85、メモリアクセス用メソッド関数へのポインタ86が、個別実行制御登録コマンド113により与えられている(ステップS610)。
In step S600, if the individual execution control registration command 113 is a memory access method registration (True), the memory ID 61, the memory access method ID 85, and the
続くステップS620では、引数として与えられたメモリID61をキーとしてメモリ管理表81からメモリアクセス用メソッド管理表82を得る。 In the subsequent step S620, the memory access method management table 82 is obtained from the memory management table 81 using the memory ID 61 given as an argument as a key.
ステップS630では、メモリアクセス用メソッド管理表82にメモリアクセス用メソッドID85、及びメモリアクセス用メソッド関数86へのポインタを登録する。
In step S630, a memory access method ID 85 and a pointer to the memory
ステップS700において、個別実行制御登録コマンド113が、ベースアドレス68の登録であれば、(True)、引数として、メモリID61、プロセッサID117、ベースアドレス68が、個別実行制御登録コマンド113により与えられている(ステップS710)。
In step S700, if the individual execution control registration command 113 is a registration of the base address 68 (True), the memory ID 61, the
続くステップ720では、アドレス変換表83のメモリID61とプロセッサID117をキーとして指示されるエントリに、ベースアドレス68を格納する。
In the following step 720, the
以上説明したように、本実施形態によれば、まず第1に、ハードウェアの構成に依存しない実行制御が可能となる。共通コマンド変換・メモリ管理部51により、アプリケーションに含まれる部分処理11の実行制御は、どのプロセッサで実行するかに依存しない、統一した構造を持つ共通コマンドで行なうことが可能となる。 As described above, according to the present embodiment, firstly, execution control independent of the hardware configuration becomes possible. The common command conversion / memory management unit 51 allows execution control of the partial processing 11 included in the application to be performed with a common command having a unified structure that does not depend on which processor is executed.
このため、アプリケーションを部分処理11に分割して複数のプロセッサで並列処理させる場合、実行制御方式として複数のものが考えられる。例えば、部分処理それぞれはパイプラインのステージとみなして、入力から出力に至る経路にデータを連続的に転送しながら処理をすることができる。 For this reason, when an application is divided into partial processes 11 and processed in parallel by a plurality of processors, a plurality of execution control methods can be considered. For example, each partial process can be regarded as a pipeline stage, and can be processed while continuously transferring data to a path from input to output.
また、1単位のデータを扱う入力から出力までの一連の処理を1つの独立したジョブとして構成し、1つの処理内ではジョブに含まれる部分処理は逐次的に実行するが、複数のジョブを並列に処理をするという方法も考えられる。これらの並列処理を制御するためにはそれぞれ異なる制御構造が必要であるが、各プロセッサの実行制御は共通コマンドで行なえるため、本質的な並列処理の制御構造を変更するだけで、異なる並列処理に対応することが可能となる。 In addition, a series of processing from input to output handling one unit of data is configured as one independent job, and partial processing included in the job is sequentially executed within one processing, but a plurality of jobs are parallelized. Another possible method is to perform processing. To control these parallel processes, different control structures are required. However, since execution control of each processor can be performed with a common command, different parallel processes can be performed simply by changing the control structure of essential parallel processes. It becomes possible to cope with.
第2に、本実施形態によれば、異なるプロセッサ毎に最適な制御が可能となる。本実施形態では、異なるプロセッサ毎に個別実行制御部53がある。この個別実行制御部53は、各プロセッサの特性に合わせて最適に構成することが可能である。 Secondly, according to the present embodiment, optimal control can be performed for each different processor. In the present embodiment, there is an individual execution control unit 53 for each different processor. The individual execution control unit 53 can be optimally configured according to the characteristics of each processor.
例えば、プロセッサが、CPU又はDSPであれば、個別実行制御部は部分処理を実行する関数の関数呼び出しでよい。また、プロセッサが、ローカルなメモリにプログラムを予めロードした後にそのプログラムを実行するような再構成プロセッサやDSPであれば、まず、部分処理を実行するプログラムをローカルなメモリにロードし、次にそのプログラムでプロセッサを動作させるといった制御が必要になる。本実施形態によれば、プロセッサの種類にかかわらずプロセッサ毎に最適な実行制御方式を選択して使用することが可能である。 For example, if the processor is a CPU or a DSP, the individual execution control unit may be a function call of a function that executes partial processing. Also, if the processor is a reconfigurable processor or DSP that executes a program after it has been pre-loaded into local memory, it first loads the program that executes partial processing into local memory, and then Control such as operating the processor with a program is required. According to this embodiment, it is possible to select and use the optimum execution control method for each processor regardless of the type of processor.
第3に、本実施形態によれば、プラットフォームが変更になった場合や、アプリケーションのそれぞれの処理からプロセッサへのマッピングが変更になった場合も、次の段落で述べるような理由により、アプリケーションプログラムの制御構造を変更することなく柔軟に対応することが可能となる。 Thirdly, according to the present embodiment, even when the platform is changed or when the mapping of each process of the application to the processor is changed, the application program is described for the reason described in the next paragraph. It is possible to respond flexibly without changing the control structure.
個別実行制御登録部52を用いることで、並列処理システムに含まれる異なるプロセッサ毎に個別実行制御手順を登録可能である。従って、あるプロセッサで実行していたアプリケーションの部分処理を別のプロセッサで実行することにした場合、別のプロセッサ用の部分処理プログラムを新たに登録する。 By using the individual execution control registration unit 52, it is possible to register an individual execution control procedure for each different processor included in the parallel processing system. Therefore, when a partial process of an application executed on a certain processor is to be executed on another processor, a partial processing program for another processor is newly registered.
第4に、本実施形態によれば、部分処理11間の通信用チャネル12を複数の共有メモリ上に分散して置くことができる。また、プロセッサ毎に固有のアドレスマップを持ち、各共有メモリがそれぞれプロセッサの固有のアドレスマップ上の異なるアドレスにマップされているような並列システムにおいても、1つの共有メモリを全プロセッサで共有する場合と同様に統一したメモリ管理が可能となる。 Fourthly, according to the present embodiment, the communication channels 12 between the partial processes 11 can be distributed and placed on a plurality of shared memories. Also, in a parallel system where each processor has a unique address map and each shared memory is mapped to a different address on the processor's unique address map, one shared memory is shared by all processors As well as unified memory management.
第5に、本実施形態によれば、共有メモリの管理操作を行うプロセッサは1つではなく、共有メモリをアクセス可能なプロセッサであれば、どのプロセッサで共有メモリの管理操作を行ってもよい。このため、全共有メモリにアクセス可能なプロセッサや、そのための通信路が不要である。全共有メモリにアクセス可能な通信路はハードウェアのコストが大きく、またアプリケーションプログラムの実行に際しては処理のボトルネックになる可能性があるが、本実施形態によれば、低コストで、メモリアクセスの通信路のボトルネックの無いシステム構成が可能となる。 Fifth, according to the present embodiment, the number of processors that perform shared memory management operations is not one, and any processor that can access the shared memory may perform the shared memory management operation. This eliminates the need for a processor that can access all shared memories and a communication path therefor. A communication path that can access all the shared memories has a high hardware cost, and may cause a bottleneck in processing when executing an application program. A system configuration without a communication channel bottleneck is possible.
なお、本実施形態の各部(並列処理システム制御装置の共通コマンド・メモリ管理部、個別実行制御登録部、個別実行制御部など)は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。本実施形態の装置を構成するためにソフトウェアを含ませる場合には、コンピュータのCPUが、コンピュータを本実施形態の装置の各部として機能させるためのプログラムをハードディスクドライブなどのコンピュータ読み取り可能な記録媒体から読み込んで、実行することにより、本実施形態の装置が構成される。CPUは、プログラムをコンピュータ読み取り可能な記録媒体から読み込んでから、実行するまでの間に、そのプログラムを主記憶装置などに一時的に記憶しておいても良い。 Note that each unit (common command / memory management unit, individual execution control registration unit, individual execution control unit, etc. of the parallel processing system control apparatus) of the present embodiment can be realized by hardware, software, or a combination thereof. When software is included to configure the apparatus of the present embodiment, a computer CPU causes a program for causing the computer to function as each unit of the apparatus of the present embodiment from a computer-readable recording medium such as a hard disk drive. The apparatus of this embodiment is configured by reading and executing. The CPU may temporarily store the program in a main storage device or the like after the program is read from the computer-readable recording medium until it is executed.
メモリ管理情報、共通コマンド、プロセッサ個別コマンドは、主記憶装置はハードディスクドライブなどのコンピュータ読み取り可能な記録媒体に格納される。 The memory management information, common command, and processor individual command are stored in a computer-readable recording medium such as a hard disk drive in the main storage device.
本発明は、複数の異なるタイプのプロセッサ及び複数の共有メモリを含む並列処理システムに利用できる。 The present invention can be used in a parallel processing system including a plurality of different types of processors and a plurality of shared memories.
10 アプリケーション
11 部分処理
12 通信用チャネル
13 入力データバッファ
14 出力データバッファ
15 バッファ(入力データバッファ、出力データバッファなど)
16 処理パラメータ本体
20 マッピング部
30 並列処理システム
31 プロセッサ
32 通信路
33 共有メモリ
40 アプリケーションプログラム
41 アプリケーションプログラム実行制御用コード
42 実行制御登録用コード
50 並列処理システム制御装置
51 共通コマンド変換・メモリ管理部
52 個別実行制御登録部
53 個別実行制御部
60 共通メモリ情報
61 メモリID
62 メモリ固有空間アドレス
63 バッファサイズ
64 プロセッサ固有空間アドレス
65 メモリ固有管理情報
66 メモリ固有空間アドレスマップ
67 プロセッサ固有空間アドレスマップ
67−1 プロセッサProc1のアドレスマップ
67−2 プロセッサProc2のアドレスマップ
67−N プロセッサProcNのアドレスマップ
68 ベースアドレス
70 処理ID管理表
71 プロセッサ管理表
72 プロセッサ制御用メソッド管理表
73 プロセッサ制御用メソッド管理表へのポインタ
80 メモリ管理情報
81 メモリ管理表
82 メモリアクセス用メソッド管理表
83 アドレス変換表
84 メモリアクセス用メソッド管理表へのポインタ
85 メモリアクセス用メソッドID
86 メモリアクセス用メソッド関数へのポインタ
87 メモリ領域確保用関数
88 メモリ領域解放用関数
100 プロセッサ制御用メソッドID
101 プロセッサ制御用メソッド関数へのポインタ
102 プロセッサ個別処理ID登録関数
103 プロセッサ個別コマンド実行関数
104 プロセッサ状態チェック関数
110 共通コマンド
111 プロセッサ個別コマンド
112 プロセッサ個別実行制御コマンド
113 個別実行制御登録コマンド
114 処理ID
115 処理パラメータ
116 プロセッサ個別処理ID
117 プロセッサID
118 個別処理パラメータ
10 Application 11 Partial processing 12 Communication channel 13 Input data buffer 14 Output data buffer 15 Buffer (input data buffer, output data buffer, etc.)
16
62 Memory space address 63 Buffer size 64 Processor space address 65 Memory space management information 66 Memory
86 Pointer to method function for memory access 87 Memory area securing function 88 Memory
101 Pointer to Method Function for
115 Processing parameter 116 Processor individual processing ID
117 Processor ID
118 Individual processing parameters
Claims (33)
アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換・メモリ管理部と、
前記複数のプロセッサの各々に各々が対応し、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行う複数の個別実行制御部と、
前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するメモリ管理情報保持部と、
前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理する個別実行制御登録部と、
を備えることを特徴とする並列処理システム制御装置。 A parallel processing system controller for controlling a parallel processing system including a plurality of processors of different types and a plurality of shared memories,
When an application program execution request is received, the execution request is a plurality of common commands each corresponding to each of a plurality of partial processes included in the application program, and each of the processors included in the parallel processing system. Regardless of the type, the input / output data buffer handled by each processor is received as an execution request for a plurality of common commands independent of the common memory included in the parallel processing system, and each common command is received. By analyzing, a processor for executing each partial process is determined, a shared memory in which a buffer for input / output data handled by each processor is arranged is determined, and each common command is associated with the determined processor. Common command conversion to convert to individual processor commands And a memory management unit,
A plurality of individual execution control units each corresponding to each of the plurality of processors, and performing control for causing the corresponding processor to execute the partial processing specified by the processor individual command;
Memory management comprising a function for controlling access to each of the plurality of shared memories and an address translation table for each of the plurality of processors to access the plurality of shared memories on an address map specific to the processor A memory management information holding unit for holding information;
Information used for determining the processor that executes the partial processing performed by the common command conversion / memory management unit, conversion of the common command performed by the common command conversion / memory management unit into the processor individual command Generating a process management table group in which information including information used for processing, information used in the control of the processor performed by the individual execution control unit, information including a function, and an identifier is described, and the process management table group is used as the common Registering in the command conversion / memory management unit and the individual execution control unit, managing the processing management table group, generating and managing the memory management information, an individual execution control registration unit,
A parallel processing system control device comprising:
個々の部分処理を識別するための処理IDと個々のプロセッサを識別するためのプロセッサIDとプロセッサが行なう部分処理を識別するためのプロセッサ個別処理IDとの対応を記載した処理ID管理表と、
プロセッサへの操作に対応する各プロセッサ制御用メソッドIDと、前記プロセッサ個別コマンドが与えられたときに該プロセッサ個別コマンドで指定される処理を対応するプロセッサで行なうためのプロセッサ個別コマンド実行関数へのポインタ、プロセッサに前記部分処理に対応したプログラムを登録し、前記プロセッサ個別処理IDと対応付けるためのプロセッサ個別処理ID登録関数へのポインタ及び必要に応じてプロセッサの状態を確認するためのプロセッサ状態チェック関数へのポインタとの対応を記載したプロセッサ制御用メソッド管理表と、
前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、を前記処理管理表群として生成し、また、
メモリアクセス用メソッドIDと、前記共有メモリのアクセス制御のためのメモリアクセス用メソッド関数へのポインタとの対応を記載したメモリアクセス用メソッド管理表と、
前記共有メモリを識別するためのメモリIDと前記メモリアクセス用メソッド管理表へのポインタとの対応を記載したメモリ管理表と、
前記複数の共有メモリを前記複数のプロセッサが該プロセッサに固有のアドレスマップ上でアクセスするためのベースアドレスと、前記共有メモリの前記メモリIDと前記プロセッサの前記プロセッサIDとの組合せとの対応を記載したアドレス変換表と
を前記メモリ管理情報として生成することを特徴とする請求項1に記載の並列処理システム制御装置。 The individual execution control registration unit
A process ID management table describing the correspondence between a process ID for identifying individual partial processes, a processor ID for identifying individual processors, and a processor individual process ID for identifying partial processes performed by the processor;
Each processor control method ID corresponding to an operation to the processor, and a pointer to a processor individual command execution function for performing processing specified by the processor individual command in the corresponding processor when the processor individual command is given A program corresponding to the partial process is registered in the processor, and a pointer to a processor individual process ID registration function for associating with the processor individual process ID and a processor state check function for checking the processor state as necessary Method control table for processor control that describes the correspondence with the pointer of
A processor management table describing the correspondence between the processor ID and a pointer to the processor control method management table is generated as the processing management table group, and
A memory access method management table describing correspondence between a memory access method ID and a pointer to a memory access method function for access control of the shared memory;
A memory management table that describes a correspondence between a memory ID for identifying the shared memory and a pointer to the memory access method management table;
A correspondence between a base address for the plurality of processors to access the plurality of shared memories on an address map unique to the processor and a combination of the memory ID of the shared memory and the processor ID of the processor is described. The parallel processing system control apparatus according to claim 1, wherein the address conversion table is generated as the memory management information.
前記共通コマンドを、前記部分処理を識別する処理IDと、前記部分処理に係る入出力データを含むデータを指定する処理パラメータと、を含む形式で受け取り、
前記処理パラメータは、前記共有メモリに配置された、複数の前記入出力データを前記プロセッサ、前記共有メモリに依存しない形式で指定する複数の共通メモリ情報を含み、
前記共通メモリ情報は、前記共有メモリを識別するため前記メモリIDと、前記入出力データを格納するバッファの前記共有メモリの固有のアドレスマップ上でのアドレスを示す、メモリ固有空間アドレスを含み、
前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索し、
前記処理パラメータを構成する前記複数の共通メモリ情報のそれぞれに関して、前記共通メモリの前記メモリIDと前記プロセッサIDをキーとして前記アドレス変換表から前記ベースアドレスを検索し、前記ベースアドレスと、前記メモリ固有空間アドレスとから、前記プロセッサIDで指定される前記プロセッサが前記バッファを前記プロセッサ固有のアドレスマップ上でアクセスするためのアドレスをプロセッサ固有空間アドレスとして計算し、前記共通メモリ情報に設定することで、前記処理パラメータを前記プロセッサの個別処理パラメータへ変換し、
前記プロセッサ個別処理IDと、前記個別処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得ることを特徴とする請求項2に記載の並列処理システム制御装置。 The common command conversion / memory management unit
Receiving the common command in a format including a process ID for identifying the partial process and a process parameter for designating data including input / output data related to the partial process;
The processing parameter includes a plurality of common memory information that is arranged in the shared memory and that specifies a plurality of the input / output data in a format independent of the processor and the shared memory,
The common memory information includes a memory private space address indicating the memory ID for identifying the shared memory, and an address on a unique address map of the shared memory of a buffer for storing the input / output data,
Using the process ID included in the common command as a key, search the process ID management table for a processor ID of the processor that executes the partial process and a processor individual process ID that specifies the partial process performed by the processor And
For each of the plurality of common memory information constituting the processing parameter, the base address is searched from the address conversion table using the memory ID and the processor ID of the common memory as keys, and the base address and the memory specific From the space address, the processor specified by the processor ID calculates an address for accessing the buffer on the processor-specific address map as a processor-specific space address, and sets it in the common memory information. Converting the processing parameters into individual processing parameters of the processor;
The parallel processing system control apparatus according to claim 2, wherein the processor individual command is obtained by combining the processor individual processing ID and the individual processing parameter.
前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項2又は3に記載の並列処理システム制御装置。 The individual execution control unit is executed by calling a processor individual command execution function whose pointer is registered in advance in the processor control method management table using the processor individual process ID and the process parameter as arguments. The processor executes the partial process by a processor individual execution control command,
4. The parallel processing system control apparatus according to claim 2, wherein the processor operating state is checked by a processor state checking function whose pointer is registered in advance in the processor control method management table.
共通コマンド変換・メモリ管理部が、アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換するステップと、
前記複数のプロセッサの各々に各々が対応する複数の個別実行制御部の各々が、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行うステップと、
メモリ管理情報保持部が、前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するステップと、
個別実行制御登録部が、前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理するステップと、
を有することを特徴とする並列処理システム制御方法。 A parallel processing system control method performed by a parallel processing system control device for controlling a parallel processing system including a plurality of processors of different types and a plurality of shared memories,
When the common command conversion / memory management unit receives an execution request for an application program, the execution request is a plurality of common commands each corresponding to each of a plurality of partial processes included in the application program, Multiple common commands that do not depend on the type of each processor included in the parallel processing system and do not depend on which common memory included in the parallel processing system the input / output data buffer handled by each processor is located. By receiving each request as an execution request and analyzing each common command, a processor that executes each partial process is determined, a shared memory in which a buffer for input / output data handled by each processor is arranged, and each common command is Individual processor, which is an individual command corresponding to the determined processor And the step of converting the command,
Each of a plurality of individual execution control units respectively corresponding to each of the plurality of processors performs control for causing the corresponding processor to execute the partial processing specified by the processor individual command;
A memory management information holding unit controls a function for controlling access to each of the plurality of shared memories, and an address for each of the plurality of processors to access the plurality of shared memories on an address map unique to the processor Holding memory management information including a conversion table;
An individual execution control registration unit is used for determining the processor for executing the partial processing performed by the common command conversion / memory management unit, and for the common command performed by the common command conversion / memory management unit. Generating a processing management table group in which information used for conversion to the processor individual command, a command used in the control of the processor performed by the individual execution control unit, information including a function and an identifier is described, Registering a process management table group in the common command conversion / memory management unit and the individual execution control unit, managing the process management table group, generating and managing the memory management information;
A parallel processing system control method comprising:
個々の部分処理を識別するための処理IDと個々のプロセッサを識別するためのプロセッサIDとプロセッサが行なう部分処理を識別するためのプロセッサ個別処理IDとの対応を記載した処理ID管理表と、
プロセッサへの操作に対応する各プロセッサ制御用メソッドIDと、前記プロセッサ個別コマンドが与えられたときに該プロセッサ個別コマンドで指定される処理を対応するプロセッサで行なうためのプロセッサ個別コマンド実行関数へのポインタ、プロセッサに前記部分処理に対応したプログラムを登録し、前記プロセッサ個別処理IDと対応付けるためのプロセッサ個別処理ID登録関数へのポインタ及び必要に応じてプロセッサの状態を確認するためのプロセッサ状態チェック関数へのポインタとの対応を記載したプロセッサ制御用メソッド管理表と、
前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、を前記処理管理表群として生成するステップと、
前記個別実行制御登録部が、
メモリアクセス用メソッドIDと、前記共有メモリのアクセス制御のためのメモリアクセス用メソッド関数へのポインタとの対応を記載したメモリアクセス用メソッド管理表と、
前記共有メモリを識別するためのメモリIDと前記メモリアクセス用メソッド管理表へのポインタとの対応を記載したメモリ管理表と、
前記複数の共有メモリを前記複数のプロセッサが該プロセッサに固有のアドレスマップ上でアクセスするためのベースアドレスと、前記共有メモリの前記メモリIDと前記プロセッサの前記プロセッサIDとの組合せとの対応を記載したアドレス変換表と
を前記メモリ管理情報として生成するステップと、
を有することを特徴とする請求項12に記載の並列処理システム制御方法。 The individual execution control registration unit
A process ID management table describing the correspondence between a process ID for identifying individual partial processes, a processor ID for identifying individual processors, and a processor individual process ID for identifying partial processes performed by the processor;
Each processor control method ID corresponding to an operation to the processor, and a pointer to a processor individual command execution function for performing processing specified by the processor individual command in the corresponding processor when the processor individual command is given A program corresponding to the partial process is registered in the processor, and a pointer to a processor individual process ID registration function for associating with the processor individual process ID and a processor state check function for checking the processor state as necessary Method control table for processor control that describes the correspondence with the pointer of
Generating a processor management table describing a correspondence between the processor ID and a pointer to the processor control method management table as the process management table group;
The individual execution control registration unit
A memory access method management table describing correspondence between a memory access method ID and a pointer to a memory access method function for access control of the shared memory;
A memory management table that describes a correspondence between a memory ID for identifying the shared memory and a pointer to the memory access method management table;
A correspondence between a base address for the plurality of processors to access the plurality of shared memories on an address map unique to the processor and a combination of the memory ID of the shared memory and the processor ID of the processor is described. Generating the address conversion table as the memory management information;
The parallel processing system control method according to claim 12, comprising:
前記処理パラメータは、前記共有メモリに配置された、複数の前記入出力データを前記プロセッサ、前記共有メモリに依存しない形式で指定する複数の共通メモリ情報を含み、
前記共通メモリ情報は、前記共有メモリを識別するため前記メモリIDと、前記入出力データを格納するバッファの前記共有メモリの固有のアドレスマップ上でのアドレスを示す、メモリ固有空間アドレスを含み、
前記共通コマンド変換・メモリ管理部が、前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索するステップを更に有し、
前記共通コマンド変換・メモリ管理部が、前記処理パラメータを構成する前記複数の共通メモリ情報のそれぞれに関して、前記共通メモリの前記メモリIDと前記プロセッサIDをキーとして前記アドレス変換表から前記ベースアドレスを検索し、前記ベースアドレスと、前記メモリ固有空間アドレスとから、前記プロセッサIDで指定される前記プロセッサが前記バッファを前記プロセッサ固有のアドレスマップ上でアクセスするためのアドレスをプロセッサ固有空間アドレスとして計算し、前記共通メモリ情報に設定することで、前記処理パラメータを前記プロセッサの個別処理パラメータへ変換するステップを更に有し、
前記共通コマンド変換・メモリ管理部が、前記プロセッサ個別処理IDと、前記個別処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得るステップを更に有することを特徴とする請求項13に記載の並列処理システム制御方法。 The common command conversion / memory management unit receives the common command in a format including a process ID for identifying the partial process and a process parameter for designating data including input / output data related to the partial process. In addition,
The processing parameter includes a plurality of common memory information that is arranged in the shared memory and that specifies a plurality of the input / output data in a format independent of the processor and the shared memory,
The common memory information includes a memory private space address indicating the memory ID for identifying the shared memory, and an address on a unique address map of the shared memory of a buffer for storing the input / output data,
The common command conversion / memory management unit uses the process ID included in the common command as a key to determine from the process ID management table the processor ID of the processor that executes the partial process and the partial process performed by the processor. A step of searching for a processor individual process ID to be specified;
The common command conversion / memory management unit searches the base address from the address conversion table using the memory ID and the processor ID of the common memory as keys for each of the plurality of common memory information constituting the processing parameter. Then, from the base address and the memory specific space address, an address for the processor specified by the processor ID to access the buffer on the processor specific address map is calculated as a processor specific space address, Further comprising the step of converting the processing parameters into individual processing parameters of the processor by setting in the common memory information;
The parallel processing system according to claim 13, further comprising the step of the common command conversion / memory management unit obtaining the processor individual command by combining the processor individual processing ID and the individual processing parameter. Control method.
前記個別実行制御部が、前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックするステップと、
を更に有することを特徴とする請求項13又は14に記載の並列処理システム制御方法。 The individual execution control unit is executed by calling a processor individual command execution function whose pointer is registered in advance in the processor control method management table using the processor individual process ID and the process parameter as arguments. Causing the processor to execute the partial processing by a processor individual execution control command;
The individual execution control unit checks the operation state of the processor by a processor state check function whose pointer is registered in advance in the processor control method management table;
The parallel processing system control method according to claim 13 or 14, further comprising:
コンピュータを、
アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換・メモリ管理部と、
前記複数のプロセッサの各々に各々が対応し、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行う複数の個別実行制御部と、
前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するメモリ管理情報保持部と、
前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理する個別実行制御登録部と、
として機能させるための並列処理システム制御プログラム。 A program for causing a computer to function as a parallel processing system control device for controlling a parallel processing system including a plurality of processors of different types and a plurality of shared memories,
Computer
When an application program execution request is received, the execution request is a plurality of common commands each corresponding to each of a plurality of partial processes included in the application program, and each of the processors included in the parallel processing system. Regardless of the type, the input / output data buffer handled by each processor is received as an execution request for a plurality of common commands independent of the common memory included in the parallel processing system, and each common command is received. By analyzing, a processor for executing each partial process is determined, a shared memory in which a buffer for input / output data handled by each processor is arranged is determined, and each common command is associated with the determined processor. Common command conversion to convert to individual processor commands And a memory management unit,
A plurality of individual execution control units each corresponding to each of the plurality of processors, and performing control for causing the corresponding processor to execute the partial processing specified by the processor individual command;
Memory management comprising a function for controlling access to each of the plurality of shared memories and an address translation table for each of the plurality of processors to access the plurality of shared memories on an address map specific to the processor A memory management information holding unit for holding information;
Information used for determining the processor that executes the partial processing performed by the common command conversion / memory management unit, conversion of the common command performed by the common command conversion / memory management unit into the processor individual command Generating a process management table group in which information including information used for control, a command used in control of the processor performed by the individual execution control unit, information including a function and an identifier is described, and the process management table group is used as the common Registering in the command conversion / memory management unit and the individual execution control unit, managing the processing management table group, generating and managing the memory management information, an individual execution control registration unit,
Parallel processing system control program to function as
個々の部分処理を識別するための処理IDと個々のプロセッサを識別するためのプロセッサIDとプロセッサが行なう部分処理を識別するためのプロセッサ個別処理IDとの対応を記載した処理ID管理表と、
プロセッサへの操作に対応する各プロセッサ制御用メソッドIDと、前記プロセッサ個別コマンドが与えられたときに該プロセッサ個別コマンドで指定される処理を対応するプロセッサで行なうためのプロセッサ個別コマンド実行関数へのポインタ、プロセッサに前記部分処理に対応したプログラムを登録し、前記プロセッサ個別処理IDと対応付けるためのプロセッサ個別処理ID登録関数へのポインタ及び必要に応じてプロセッサの状態を確認するためのプロセッサ状態チェック関数へのポインタとの対応を記載したプロセッサ制御用メソッド管理表と、
前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、を前記処理管理表群として生成し、また、
メモリアクセス用メソッドIDと、前記共有メモリのアクセス制御のためのメモリアクセス用メソッド関数へのポインタとの対応を記載したメモリアクセス用メソッド管理表と、
前記共有メモリを識別するためのメモリIDと前記メモリアクセス用メソッド管理表へのポインタとの対応を記載したメモリ管理表と、
前記複数の共有メモリを前記複数のプロセッサが該プロセッサに固有のアドレスマップ上でアクセスするためのベースアドレスと、前記共有メモリの前記メモリIDと前記プロセッサの前記プロセッサIDとの組合せとの対応を記載したアドレス変換表と
を前記メモリ管理情報として生成することを特徴とする請求項23に記載の並列処理システム制御プログラム。 The individual execution control registration unit
A process ID management table describing the correspondence between a process ID for identifying individual partial processes, a processor ID for identifying individual processors, and a processor individual process ID for identifying partial processes performed by the processor;
Each processor control method ID corresponding to an operation to the processor, and a pointer to a processor individual command execution function for performing processing specified by the processor individual command in the corresponding processor when the processor individual command is given A program corresponding to the partial process is registered in the processor, and a pointer to a processor individual process ID registration function for associating with the processor individual process ID and a processor state check function for checking the processor state as necessary Method control table for processor control that describes the correspondence with the pointer of
A processor management table describing the correspondence between the processor ID and a pointer to the processor control method management table is generated as the processing management table group, and
A memory access method management table describing correspondence between a memory access method ID and a pointer to a memory access method function for access control of the shared memory;
A memory management table that describes a correspondence between a memory ID for identifying the shared memory and a pointer to the memory access method management table;
A correspondence between a base address for the plurality of processors to access the plurality of shared memories on an address map unique to the processor and a combination of the memory ID of the shared memory and the processor ID of the processor is described. 24. The parallel processing system control program according to claim 23, wherein the address conversion table is generated as the memory management information.
前記共通コマンドを、前記部分処理を識別する処理IDと、前記部分処理に係る入出力データを含むデータを指定する処理パラメータと、を含む形式で受け取り、
前記処理パラメータは、前記共有メモリに配置された、複数の前記入出力データを前記プロセッサ、前記共有メモリに依存しない形式で指定する複数の共通メモリ情報を含み、
前記共通メモリ情報は、前記共有メモリを識別するため前記メモリIDと、前記入出力データを格納するバッファの前記共有メモリの固有のアドレスマップ上でのアドレスを示す、メモリ固有空間アドレスを含み、
前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索し、
前記処理パラメータを構成する前記複数の共通メモリ情報のそれぞれに関して、前記共通メモリの前記メモリIDと前記プロセッサIDをキーとして前記アドレス変換表から前記ベースアドレスを検索し、前記ベースアドレスと、前記メモリ固有空間アドレスとから、前記プロセッサIDで指定される前記プロセッサが前記バッファを前記プロセッサ固有のアドレスマップ上でアクセスするためのアドレスをプロセッサ固有空間アドレスとして計算し、前記共通メモリ情報に設定することで、前記処理パラメータを前記プロセッサの個別処理パラメータへ変換し、
前記プロセッサ個別処理IDと、前記個別処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得ることを特徴とする請求項24に記載の並列処理システム制御プログラム。 The common command conversion / memory management unit
Receiving the common command in a format including a process ID for identifying the partial process and a process parameter for designating data including input / output data related to the partial process;
The processing parameter includes a plurality of common memory information that is arranged in the shared memory and that specifies a plurality of the input / output data in a format independent of the processor and the shared memory,
The common memory information includes a memory private space address indicating the memory ID for identifying the shared memory, and an address on a unique address map of the shared memory of a buffer for storing the input / output data,
Using the process ID included in the common command as a key, search the process ID management table for a processor ID of the processor that executes the partial process and a processor individual process ID that specifies the partial process performed by the processor And
For each of the plurality of common memory information constituting the processing parameter, the base address is searched from the address conversion table using the memory ID and the processor ID of the common memory as keys, and the base address and the memory specific From the space address, the processor specified by the processor ID calculates an address for accessing the buffer on the processor-specific address map as a processor-specific space address, and sets it in the common memory information. Converting the processing parameters into individual processing parameters of the processor;
The parallel processing system control program according to claim 24, wherein the processor individual command is obtained by combining the processor individual processing ID and the individual processing parameter.
前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項24又は25に記載の並列処理システム制御プログラム。 The individual execution control unit is executed by calling a processor individual command execution function whose pointer is registered in advance in the processor control method management table using the processor individual process ID and the process parameter as arguments. The processor executes the partial process by a processor individual execution control command,
26. The parallel processing system control program according to claim 24 or 25, wherein an operation state of the processor is checked by a processor state check function whose pointer is registered in advance in the processor control method management table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009214540A JP5541437B2 (en) | 2009-09-16 | 2009-09-16 | Parallel processing system control apparatus, method and program thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009214540A JP5541437B2 (en) | 2009-09-16 | 2009-09-16 | Parallel processing system control apparatus, method and program thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011065353A true JP2011065353A (en) | 2011-03-31 |
JP5541437B2 JP5541437B2 (en) | 2014-07-09 |
Family
ID=43951542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009214540A Active JP5541437B2 (en) | 2009-09-16 | 2009-09-16 | Parallel processing system control apparatus, method and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5541437B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257912A (en) * | 1992-03-12 | 1993-10-08 | Nec Software Ltd | Job operation control system for plural computers of different kinds |
JPH08235112A (en) * | 1995-03-01 | 1996-09-13 | Mitsubishi Electric Corp | Decentralized job management system of computer system |
JPH08339354A (en) * | 1995-06-09 | 1996-12-24 | Nippon Telegr & Teleph Corp <Ntt> | Network distributed processing system |
WO2005001689A1 (en) * | 2003-06-25 | 2005-01-06 | Nec Corporation | Electronic computer, semiconductor integrated circuit, control method, program generation method, and program |
JP2006099579A (en) * | 2004-09-30 | 2006-04-13 | Toshiba Corp | Information processor and information processing method |
WO2009131167A1 (en) * | 2008-04-23 | 2009-10-29 | 日本電気株式会社 | Multiprocessor control apparatus, method therefor, and program therefor |
-
2009
- 2009-09-16 JP JP2009214540A patent/JP5541437B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257912A (en) * | 1992-03-12 | 1993-10-08 | Nec Software Ltd | Job operation control system for plural computers of different kinds |
JPH08235112A (en) * | 1995-03-01 | 1996-09-13 | Mitsubishi Electric Corp | Decentralized job management system of computer system |
JPH08339354A (en) * | 1995-06-09 | 1996-12-24 | Nippon Telegr & Teleph Corp <Ntt> | Network distributed processing system |
WO2005001689A1 (en) * | 2003-06-25 | 2005-01-06 | Nec Corporation | Electronic computer, semiconductor integrated circuit, control method, program generation method, and program |
JP2006099579A (en) * | 2004-09-30 | 2006-04-13 | Toshiba Corp | Information processor and information processing method |
WO2009131167A1 (en) * | 2008-04-23 | 2009-10-29 | 日本電気株式会社 | Multiprocessor control apparatus, method therefor, and program therefor |
Non-Patent Citations (1)
Title |
---|
JPN6013052574; Mark D HILL et al.: '"Tempest: A Substrate for Portable Parallel Programs"' Technical Report #1262 to appear: COMPCON Spring 95 , 199501, pages:1-6, University of Wisconsin-Madison * |
Also Published As
Publication number | Publication date |
---|---|
JP5541437B2 (en) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI594117B (en) | Profiling application code to identify code portions for fpga inplementation | |
US8776088B2 (en) | Operating system distributed over heterogeneous platforms | |
KR101793306B1 (en) | Virtual application extension points | |
US8214849B2 (en) | System for loading device-specific code and method thereof | |
JP6240745B2 (en) | System and method for running multiple hypervisors | |
US20110022817A1 (en) | Mapping Processing Logic Having Data-Parallel Threads Across Processors | |
US8813099B2 (en) | Unified driving method and unified driver apparatus | |
US20110154378A1 (en) | Api namespace virtualization | |
KR20070106773A (en) | Multi-processor system abd program for causing computer to execute multi-processor system control method | |
US9304742B2 (en) | Modifying a middleware | |
KR20090095619A (en) | Methods, systems, and apparatus for object invocation across protection domain boundaries | |
JP2007102781A (en) | Apparatus, system, and method for persistent user-level thread | |
JP2020087470A (en) | Data access method, data access device, apparatus, and storage medium | |
KR102130813B1 (en) | Re-configurable processor and method for operating re-configurable processor | |
JP5226093B2 (en) | Method and system for creating object of in-process component | |
JP5382624B2 (en) | Multiprocessor control device, method and program thereof | |
JP5541437B2 (en) | Parallel processing system control apparatus, method and program thereof | |
EP2472396A1 (en) | Computer device | |
CN113626071B (en) | Function registration method, system, electronic device and storage medium | |
US7861250B2 (en) | Runtime polymorphism | |
EP3791274B1 (en) | Method and node for managing a request for hardware acceleration by means of an accelerator device | |
CN111314493A (en) | Data processing method of heterogeneous cloud storage system and readable medium and system thereof | |
US20090282070A1 (en) | Application contention management system method thereof, and information processing terminal using the same | |
JP6151946B2 (en) | Information processing system, information processing apparatus, and control method thereof | |
JP5791558B2 (en) | Framework, computer system, and system construction method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120806 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131015 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131218 |
|
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: 20140409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140422 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5541437 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |