JP2011065353A - Parallel processing system control device, method and program - Google Patents

Parallel processing system control device, method and program Download PDF

Info

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
Application number
JP2009214540A
Other languages
Japanese (ja)
Other versions
JP5541437B2 (en
Inventor
Nobuki Kajiwara
信樹 梶原
Takeshi Inuo
武 犬尾
Kengo Nishino
賢悟 西野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009214540A priority Critical patent/JP5541437B2/en
Publication of JP2011065353A publication Critical patent/JP2011065353A/en
Application granted granted Critical
Publication of JP5541437B2 publication Critical patent/JP5541437B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a parallel processing system control device for controlling a parallel processing system, which conceals a difference between respective processors and respective shared memories of the parallel processing system and which controls in an unified manner the parallel processing system from an application program. <P>SOLUTION: The parallel processing system control device includes: a common command conversion-memory management part, an individual execution control part, memory management information, and an individual execution control registration part, for analyzing a common command not depending on a specific processor, specifying each processor executing each partial processing of the application program 40, specifying a shared memory storing a buffer for input/output data of each partial processing, specifying an address for accessing the buffer for the input/output data from each processor, converting the common command into a processor individual command that is different for each processor, and performing execution control of the parallel processing system. <P>COPYRIGHT: (C)2011,JPO&INPIT

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.

特開2007−328415号公報JP 2007-328415 A 特開2007−148746号公報JP 2007-148746 A 特開平02−039262号公報Japanese Patent Laid-Open No. 02-039262 特開昭62−028860号公報JP-A-62-028860 特開2006−350622号公報JP 2006-350622 A 特許第3087477号公報Japanese Patent No. 3087477 特開平08−179953号公報Japanese Patent Application Laid-Open No. 08-179953 特開平09−106352号公報JP 09-106352 A 特開平11−282692号公報Japanese Patent Laid-Open No. 11-282692 特許第4021534号公報Japanese Patent No. 4021534 特開平05−282257号公報JP 05-282257 A

COMPUTER ARCHITECTURE: A Quantitative Approach, Fourth Edition, J. L. Hennessy, D. A. Patterson, pp205-237, Fig. 4.8, Fig. 4.19 発行2007年COMPUTER ARCHITECTURE: A Quantitative Approach, Fourth Edition, J. L. Hennessy, D. A. Patterson, pp205-237, Fig. 4.8, Fig. 4.19 Published 2007

しかしながら、上述の手法には以下のように幾つかの問題点がある。   However, the above method has several problems as follows.

第1の問題点は、特許文献3、特許文献4、特許文献5、特許文献6及び特許文献10の手法に関するものである。CPU等が各プロセッサに応じて固有の実行制御手順をアプリケーションプログラムから関数コール等の手段で呼び出す手法では、アプリケーションに対する、要求仕様、性能の変化に応じて、装置の構成が変化した場合、アプリケーションプログラム等のソフトウェアもそれに応じて変更が必要になっていた。   The first problem relates to the methods of Patent Literature 3, Patent Literature 4, Patent Literature 5, Patent Literature 6, and Patent Literature 10. In a method in which a CPU or the like calls a specific execution control procedure from an application program by means of a function call or the like according to each processor, the application program changes when the configuration of the device changes according to changes in the required specifications and performance of the application. Etc. software also needed to be changed accordingly.

第2の問題点は、特許文献1、特許文献7、特許文献8及び特許文献9の手法に関するものである。インタープリター方式では、異なるプロセッサ間の差違はインタープリターによって隠蔽できるが、インタープリター方式はアプリケーションコードを随時解釈しながらの実行のため、実行速度が非常に遅くなり、要求性能を達成するためには、電力、コストの関係で組込み用等の制限の強い装置には適用が困難であった。   The second problem relates to the methods of Patent Document 1, Patent Document 7, Patent Document 8, and Patent Document 9. In the interpreter method, the difference between different processors can be concealed by the interpreter, but the interpreter method is executed while interpreting the application code at any time, so the execution speed becomes very slow, and in order to achieve the required performance However, it was difficult to apply to devices with strong restrictions such as built-in due to power and cost.

第3の問題点は、特許文献2の手法に関するものである。デバイスドライバで装置固有の特性を隠蔽する手法では、プログラマブルなプロセッサには対応しにくいということである。DSPや専用プロセッサ、再構成可能プロセッサのようにプログラムに応じてその機能が大きく変化するプロセッサや、専用アクセラレータでも、パラメータの設定に応じて機能が変化するようなプロセッサでは、デバイスドライバのように統一的な制御手順を予め定義することが困難である。   The third problem relates to the technique of Patent Document 2. The method of concealing the device-specific characteristics with the device driver means that it is difficult to support a programmable processor. For devices such as DSPs, dedicated processors, and reconfigurable processors whose functions change greatly according to the program, and processors whose functions change according to parameter settings even for dedicated accelerators, they are unified as device drivers It is difficult to predefine a typical control procedure.

第4の問題点は、非特許文献1の手法に関するものである。プロセッサ間のデータ転送として、共有メモリを用いる方式では、プロセッサ数が多い場合、各プロセッサが共有メモリ領域を一様にアクセスできるようにするためのハードウェアの規模が非常に大きくなり、チップサイズや、消費電力の制限が厳しい組み込み用途では適用が困難である。   The fourth problem relates to the technique of Non-Patent Document 1. In the method using shared memory for data transfer between processors, when the number of processors is large, the scale of hardware for allowing each processor to uniformly access the shared memory area becomes very large. This is difficult to apply in embedded applications where power consumption is severely restricted.

第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.

本発明の実施の形態が対象としているアプリケーションと、そのアプリケーションに含まれる部分処理の並列処理システムへのマッピング例である。It is an example of mapping to the parallel processing system of the application which embodiment of this invention makes object and the partial process contained in the application. 本発明の実施の形態によるプロセッサ固有空間アドレスマップの例である。It is an example of the processor specific space address map by embodiment of this invention. 本発明の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of embodiment of this invention. 本発明の実施の形態の共通コマンドの構成例である。It is an example of a structure of the common command of embodiment of this invention. 本発明の実施の形態の共通メモリ情報の構成例である。It is an example of composition of common memory information of an embodiment of the invention. 本発明の実施の形態において、各プロセッサから各共有メモリをアクセスするために必要となる管理表群である。In the embodiment of the present invention, it is a management table group required for accessing each shared memory from each processor. 本発明の実施の形態において、共通コマンドから実際にプロセッサを制御するために必要となる管理表群である。In the embodiment of the present invention, it is a management table group required for actually controlling a processor from a common command. 本発明の実施の形態において、共通コマンドから実際に所定のプロセッサでの処理を起動するまでの手順を示すフローチャートである。In the embodiment of the present invention, it is a flowchart showing a procedure from a common command to actually starting processing in a predetermined processor. 本発明の実施の形態において、アプリケーションプログラムが共有メモリ上のバッファ領域を確保、または、解放するための手順を示すフローチャートである。5 is a flowchart illustrating a procedure for an application program to secure or release a buffer area on a shared memory in the embodiment of the present invention. 本発明の実施の形態において、個別実行制御登録部での処理手順を示すフローチャートの前半部である。In embodiment of this invention, it is the first half of the flowchart which shows the process sequence in an individual execution control registration part. 本発明の実施の形態において、個別実行制御登録部での処理手順を示すフローチャートの後半部である。In embodiment of this invention, it is a latter half part of the flowchart which shows the process sequence in an individual execution control registration part.

以下、図面を参照して本発明を実施するための形態について詳細に説明する。   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, Mem 2,..., MemM), and L communication paths 32 (Com1, Com2,..., ComL) Shall exist.

図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 mapping unit 20 maps the partial processes P1 and P2 to the processor Proc1, maps the partial process P3 to the processor Proc2, and maps the partial process P4 to the processor ProcN. The mapping unit 20 maps the communication channels CH1, CH2, and CH3 to the shared memory Mem1, the communication channel CH4 to the shared memory Mem2, the communication channels CH5 and CH6 to the shared memory Mem3, and the communication channel CH7 to the shared memory MemL. To do.

マッピング部20により、それぞれの部分処理11を、その処理に適したプロセッサ31が実行するようにすることにより、アプリケーション10全体で、消費電力あたりの性能を最適化することが可能となる。共有メモリ33は全プロセッサ31で共有する必要はなく、データ転送が必要なプロセッサ31間で共有する。共有メモリ33は、複数設けられる。通信チャネル12は、その通信チャネル12を介してデータ転送を行う部分処理11がマッピングされているプロセッサ31がアクセス可能な共有メモリ33にマッピングされる。こうすることにより、少ないハードウェア量でシステム全体としてのデータ転送速度を向上させることが可能となる。また、そうすることにより、並列処理システム30をSoC(System On Chip)として1つのチップで構成する場合には、チップ面積あたりの性能を最適化することが可能となる。   The mapping unit 20 causes each of the partial processes 11 to be executed by the processor 31 suitable for the process, so that the performance per power consumption can be optimized in the entire application 10. The shared memory 33 does not need to be shared by all the processors 31, but is shared between the processors 31 that require data transfer. A plurality of shared memories 33 are provided. The communication channel 12 is mapped to a shared memory 33 that can be accessed by the processor 31 to which the partial process 11 that performs data transfer via the communication channel 12 is mapped. By doing so, it is possible to improve the data transfer speed of the entire system with a small amount of hardware. In addition, by doing so, when the parallel processing system 30 is configured by one chip as SoC (System On Chip), the performance per chip area can be optimized.

図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 address map 67 is different for each processor 31, and one shared memory 33 is mapped to different base addresses 68 from different processors.

図3は、アプリケーションプログラム40、並列処理システム制御装置50及び並列処理システム30の関係を示すブロック図である。   FIG. 3 is a block diagram showing the relationship between the application program 40, the parallel processing system control device 50, and the parallel processing system 30.

アプリケーションプログラム40は、アプリケーション実行制御用コード41と、実行制御登録用コード42とを含む。   The application program 40 includes an application execution control code 41 and an execution control registration code 42.

アプリケーション実行制御用コード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 common memory information 60 included in the processing parameter 115 of the common command 110, and the eigenspace address map 67 of the processor 31 that should execute the partial processing 11. To the address. The converted address is included in the individual processing parameter 118.

共通コマンド変換・メモリ管理部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. Function 102 is used.

プロセッサ個別処理ID登録関数102を用いて登録した、部分処理11を実行するためのプロセッサ31用のプログラムは、プロセッサ個別処理ID116で指定することができる。   The program for the processor 31 for executing the partial process 11 registered using the processor individual process ID registration function 102 can be designated by the processor individual process ID 116.

上述したように、プロセッサ個別コマンド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 command execution function 103 with the processor individual processing ID 116 and the individual processing parameter 118 as arguments.

プロセッサ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 ID registration function 102, the processor individual command execution function 103, and the processor state check function 104. Registration of functions necessary for controlling the processor such as the individual execution control unit 53 and conversion of the processor individual processing ID 116 using the processor individual processing ID registration function 102 to the common command conversion / memory management unit 51 and the individual execution control unit 53 Register. In this case, specifically, the processor control method management table 72 is registered in the entry for the processor 31 in the processor management table 71. Various method groups registered here become the entity of the individual execution control unit.

図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 common memory information 60 necessary for accessing the input data buffer 13 and the output data buffer 14 in the processing parameter body 16, input data to be processed and output data as a result of the processing are stored. You can specify a place.

処理パラメータ本体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 common memory information 60 necessary for accessing the input / output data buffer of the partial processing 11. The shared memory 33 in which the buffer 15 is placed is designated by the memory ID 61 (memID). Each shared memory 33 has an address map unique to the shared memory 33. This is called a memory private space address map 66. The buffer 15 can be accessed by designating an address on the memory private space address map 66 of the shared memory 33 designated by the memory ID 61 and the memory ID 61. An address on the memory private space address map 66 is called a memory private space address 62. The common memory information 60 includes a memory private space address 62 for designating the buffer 15. The buffer 15 can be uniquely specified by the memory ID 61 and the memory unique space address 62. The shared memory information 60 can also have a buffer size 63 (bufSize) that specifies the size of the buffer 15. With the buffer size 63, it is possible to restrict access outside the buffer 15 area.

プロセッサ31はプロセッサ固有空間アドレスマップ67を持つ。バッファ15をプロセッサ31からアクセスするためには、このプロセッサ固有空間アドレスマップ67上でのバッファ15のアドレスが必要である。プロセッサ31からバッファ15をアクセスするためのアドレスは、プロセッサ固有空間アドレス64(procAddr)に格納される。   The processor 31 has a processor-specific space address map 67. In order to access the buffer 15 from the processor 31, the address of the buffer 15 on the processor private space address map 67 is required. An address for accessing the buffer 15 from the processor 31 is stored in the processor specific space address 64 (procAddr).

プロセッサ固有空間アドレス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 space address map 67 of the processor 31 the shared memory 33 in which the buffer 15 is placed, and the shared memory 33 of the buffer 15. Can be obtained by adding the addresses on the memory private space address map 66 (memory private space address 62).

共通メモリ情報60はメモリID61で指定される共有メモリ33に固有のメモリ固有管理情報65(memSpecInfo)を持つことが可能である。この情報は共有メモリ33上にバッファ領域を確保、解放するため必要となる固有の管理情報を含むことができる。   The common memory information 60 can have memory unique management information 65 (memSpecInfo) unique to the shared memory 33 specified by the memory ID 61. This information can include unique management information necessary for securing and releasing the buffer area on the shared memory 33.

図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 base address 68 on the processor-specific space address map 67 of the processor 31. For example, the base address 68 for the processor 31 whose processor ID 117 is i to access the shared memory 33 whose memory ID is j is base j, i.

一般には、プロセッサ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 base address 68, or an identification flag is set in each base address 68 entry of the address conversion table 83. This is possible.

アプリケーション実行制御コード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 processor ID 117 in charge of the partial process 11 corresponding to the process ID 114 and the processor 31 specified by the processor ID 117 are specific. The processor individual process ID 116 can be searched. When adding the partial process 11, an entry is added to the process ID management table 70.

プロセッサ管理表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 processor ID 117 can be searched from the processor ID 117. When registering the processor 31, an entry is added to the processor management table 71.

プロセッサ制御用メソッド管理表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 ID registration function 102 for associating with the processor individual process ID 116, the processor The processor individual command execution function 103 for performing the processing specified by the processor individual command 111 when the individual command 111 is given by the processor 31 and the processor state check function 104 for confirming the state of the processor 31 as necessary. It is shown. The operation to the processor 31 can obtain the pointer 101 to the required processor control method function by designating the processor control method ID 100 corresponding to the operation and searching the processor control method management table 72. it can.

次に、図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 processor ID 117 and the processor individual process ID 116 from the process ID management table 70 using the process ID 114 as a key. .

続いて、ステップ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 processor ID 117 as a key.

ステップ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 control method ID 100 indicating the execution of the processor individual command 111. By searching as a key, the processor individual command execution function 103 is obtained.

ステップ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 common memory information 60 designating an area of a processing data buffer (input data buffer or output data buffer). The conversion from the processing parameter 115 to the individual processing parameter 118 is performed by setting the processor specific space address 64 of all the common memory information 60 of the processing parameter 115 to the processor specific space address 64 of the processor 31 specified by the processor ID 117. Do. Steps S140 to S170 are repeated for each common memory information 60.

ステップS140では、処理パラメータ115を構成する全共通メモリ情報60に関する変換が完了したかどうか条件判断する。   In step S140, it is determined whether or not the conversion for all common memory information 60 constituting the processing parameter 115 is completed.

ステップS150では、共通メモリ情報60からバッファ15のメモリID61とメモリ固有空間アドレス62を得る。   In step S150, the memory ID 61 and the memory unique space address 62 of the buffer 15 are obtained from the common memory information 60.

ステップS160では、メモリID61とプロセッサID117をキーとしてアドレス変換表83からベースアドレス68を得る。   In step S160, the base address 68 is obtained from the address conversion table 83 using the memory ID 61 and the processor ID 117 as keys.

ステップS170では、メモリ固有空間アドレス62とベースアドレス68を加算することにより、プロセッサ固有空間アドレス64を得る。このプロセッサ固有空間アドレス64を共通メモリ情報60に設定することにより共通メモリ情報60の変換が完了する。   In step S170, the processor private space address 64 is obtained by adding the memory private space address 62 and the base address 68. By setting the processor specific space address 64 in the common memory information 60, the conversion of the common memory information 60 is completed.

処理パラメータ115を構成する全ての共通メモリ情報60を変換することで個別処理パラメータ118を得る。   The individual processing parameter 118 is obtained by converting all the common memory information 60 constituting the processing parameter 115.

ステップS180では、共通コマンド変換・メモリ管理部51は、プロセッサ個別処理ID116と個別処理パラメータ118を引数として、プロセッサ個別コマンド実行関数103を呼び出す。   In step S180, the common command conversion / memory management unit 51 calls the processor individual command execution function 103 using the processor individual process ID 116 and the individual process parameter 118 as arguments.

呼び出されたプロセッサ個別コマンド実行関数103は個別実行制御部53の一部として動作する。   The called processor individual command execution function 103 operates as a part of the individual execution control unit 53.

図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 common memory information 60 for accessing the buffer 15 is returned (step S830).

領域解放要求は、共通メモリ情報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 common memory information 60 as an argument (step S900). A pointer from the memory management table 81 to the memory access method management table 82 is obtained using the memory ID 61 of the common memory information 60 as a key (step S910). The area release function 88 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 S920). Next, the area release function 88 is called with the common memory information 60 as an argument. The area release function 88 operates as a part of the individual execution control unit 53 of the predetermined processor 31 and releases the buffer 15 on the shared memory 33 specified by the common memory information 60 (step S930).

プロセッサ個別コマンド実行関数103は、一般には、各プロセッサ31毎に異なる処理をする。一般には、引数として与えられたプロセッサ個別処理ID116をキーとして必要なプログラムを検索し、プロセッサ31を起動し、そのプログラムを実行させる。   The processor individual command execution function 103 generally performs different processing for each processor 31. In general, a necessary program is searched using the processor individual process ID 116 given as an argument as a key, the processor 31 is started, and the program is executed.

プロセッサ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 processor ID 117 is generated and generated in step S220. The processor ID 117 and a pointer to the processor control method management table 72 are registered in the processor management table 71.

ステップ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 processor ID 117, the processor control method ID 100, and the processor control method function are used as arguments. The pointer 101 is given by the individual execution control registration command 113 (step S310).

続くステップ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 processor ID 117 given as an argument as a key.

ステップS330では、プロセッサ制御用メソッド管理表72にプロセッサ制御用メソッドID100及びプロセッサ制御用メソッド関数へのポインタ101を登録する。   In step S330, a processor control method ID 100 and a pointer 101 to the processor control method function are registered in the processor control method management table 72.

ステップ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 processor definition 117 is used as an argument, and a program definition for performing a predetermined processing by the designated processor 31 is an individual execution control registration command. 113 (step S410).

続くステップ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 processor ID 117 as a key.

ステップS430では、プロセッサ制御用メソッド管理表72からプロセッサ個別処理ID登録関数102を得る。   In step S430, the processor individual process ID registration function 102 is obtained from the processor control method management table 72.

ステップS440では、個別実行制御登録コマンド113の引数として与えられたプログラム定義体を引数としてプロセッサ個別処理ID登録関数102を呼び出す。この呼び出しの戻り値としてプロセッサ個別処理ID116を得る。   In step S440, the processor individual process ID registration function 102 is called with the program definition given as an argument of the individual execution control registration command 113 as an argument. The processor individual process ID 116 is obtained as a return value of this call.

ステップS450では、処理ID114を生成し、処理ID管理表70に処理ID114、プロセッサID117及びプロセッサ個別処理ID116を登録する。   In step S450, the process ID 114 is generated, and the process ID 114, the processor ID 117, and the processor individual process ID 116 are registered in the process ID management table 70.

ステップ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 pointer 86 to the memory access method function are individually set as arguments. It is given by the execution control registration command 113 (step S610).

続くステップ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 access method function 86 are registered in the memory access method management table 82.

ステップ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 processor ID 117, and the base address 68 are given by the individual execution control registration command 113 as arguments. (Step S710).

続くステップ720では、アドレス変換表83のメモリID61とプロセッサID117をキーとして指示されるエントリに、ベースアドレス68を格納する。   In the following step 720, the base address 68 is stored in the entry instructed by using the memory ID 61 and the processor ID 117 as keys in the address conversion table 83.

以上説明したように、本実施形態によれば、まず第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 processing parameter body 20 mapping unit 30 parallel processing system 31 processor 32 communication path 33 shared memory 40 application program 41 application program execution control code 42 execution control registration code 50 parallel processing system controller 51 common command conversion / memory management unit 52 Individual execution control registration unit 53 Individual execution control unit 60 Common memory information 61 Memory ID
62 Memory space address 63 Buffer size 64 Processor space address 65 Memory space management information 66 Memory space space map 67 Processor space space map 67-1 Processor Proc1 address map 67-2 Processor Proc2 address map 67-N Processor ProcN address map 68 Base address 70 Process ID management table 71 Processor management table 72 Processor control method management table 73 Pointer to processor control method management table 80 Memory management information 81 Memory management table 82 Memory access method management table 83 Address Conversion table 84 Pointer to memory access method management table 85 Memory access method ID
86 Pointer to method function for memory access 87 Memory area securing function 88 Memory area release function 100 Processor control method ID
101 Pointer to Method Function for Processor Control 102 Processor Individual Process ID Registration Function 103 Processor Individual Command Execution Function 104 Processor Status Check Function 110 Common Command 111 Processor Individual Command 112 Processor Individual Execution Control Command 113 Individual Execution Control Registration Command 114 Process ID
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.
前記個別実行制御部は、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させ、
前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項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.
前記個別実行制御登録部は、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群、前記メモリ管理情報を生成することを特徴とする請求項1乃至4のいずれか1項に記載の並列処理システム制御装置。   5. The individual execution control registration unit generates the process management table group and the memory management information by an individual execution control registration command based on an execution control registration code included in the application program. The parallel processing system control device according to any one of the above. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサIDを生成し、生成した前記プロセッサIDと前記プロセッサ制御用メソッド管理表IDとを、前記プロセッサ管理表に登録することを特徴とする請求項5に記載の並列処理システム制御装置。   The individual execution control registration unit generates the processor control method management table and the processor ID based on the individual execution control registration command when the individual execution control registration command is registration of a processor related to the partial process. 6. The parallel processing system control device according to claim 5, wherein the generated processor ID and the processor control method management table ID are registered in the processor management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数へのポインタを引数として受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表を取得し、前記プロセッサ制御用メソッド管理表に前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数を登録することを特徴とする請求項5又は6に記載の並列処理システム制御装置。   The individual execution control registration unit is configured to register the processor ID and the processor control method included in the individual execution control registration command when the individual execution control registration command is registration of a processor control method related to execution control of the processor. ID and a pointer to the processor control method function are received as arguments, the processor control method management table is acquired from the processor management table using the processor ID as a key, and the processor control method management table is used for the processor control 7. The parallel processing system control apparatus according to claim 5, wherein a method ID and the processor control method function are registered. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表へのポインタを取得し、そのポインタにより特定されるプロセッサ制御用メソッド管理表から前記プロセッサ個別処理ID登録関数を取得し、前記プログラム定義体を引数として前記プロセッサ個別処理ID登録関数を呼び出したときの戻り値として前記プロセッサ個別処理IDを取得し、更に、前記処理IDを生成し、前記処理ID、前記プロセッサID及び前記プロセッサ個別処理IDを前記処理ID管理表に登録することを特徴とする請求項5乃至7の何れか1項に記載の並列処理システム制御装置。   The individual execution control registration unit, when the individual execution control registration command is registration of a processor individual process for designating the partial process performed by the processor, the processor ID, program definition body included in the individual execution control registration command And a pointer from the processor management table to the processor control method management table using the processor ID as a key, and the processor individual process ID registration function from the processor control method management table specified by the pointer , The processor individual process ID is acquired as a return value when the processor individual process ID registration function is called with the program definition as an argument, the process ID is generated, and the process ID, the processor ID and the processor individual processing ID Parallel processing system control apparatus according to any one of claims 5 to 7, characterized in that to register the serial processing ID management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記共有メモリの登録の場合、前記メモリアクセス用メソッド管理表及び前記メモリIDを生成し、生成した前記メモリIDと前記メモリアクセス用メソッド管理表へのポインタとを前記メモリ管理表に登録することを特徴とする請求項5乃至8の何れか1項に記載の並列処理システム制御装置。   The individual execution control registration unit generates the memory access method management table and the memory ID when the individual execution control registration command is registration of the shared memory, and generates the generated memory ID and the memory access method. The parallel processing system control apparatus according to any one of claims 5 to 8, wherein a pointer to a management table is registered in the memory management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記共有メモリの管理操作に係るメモリアクセス用メソッド登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数を引数として受け取り、前記メモリIDをキーとして前記メモリ管理表から前記メモリアクセス用メソッド管理表へのポインタを取得し、前記メモリアクセス用メソッド管理表に前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数へのポインタを登録することを特徴とする請求項5乃至9の何れか1項に記載の並列処理システム制御装置。   The individual execution control registration unit, when the individual execution control registration command is a memory access method registration related to a management operation of the shared memory, the memory ID and the memory access method included in the individual execution control registration command ID and the memory access method function are received as arguments, a pointer from the memory management table to the memory access method management table is obtained using the memory ID as a key, and the memory access method management table stores the memory access method function 10. The parallel processing system control apparatus according to claim 5, wherein a method ID and a pointer to the memory access method function are registered. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記ベースアドレスの登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記プロセッサID、前記ベースアドレスを引数として受け取り、前記アドレス変換表の前記メモリIDと前記プロセッサIDをキーとして指示されるエントリに前記ベースアドレスを格納することを特徴とする請求項5乃至10の何れか1項に記載の並列処理システム制御装置。   The individual execution control registration unit receives the memory ID, the processor ID, and the base address included in the individual execution control registration command as arguments when the individual execution control registration command is registration of the base address, and 11. The parallel processing system control apparatus according to claim 5, wherein the base address is stored in an entry designated by using the memory ID and the processor ID as keys in an address conversion 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で指定される前記プロセッサが前記バッファを前記プロセッサ固有のアドレスマップ上でアクセスするためのアドレスをプロセッサ固有空間アドレスとして計算し、前記共通メモリ情報に設定することで、前記処理パラメータを前記プロセッサの個別処理パラメータへ変換するステップを更に有し、
前記共通コマンド変換・メモリ管理部が、前記プロセッサ個別処理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.
前記個別実行制御部が、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させるステップと、
前記個別実行制御部が、前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックするステップと、
を更に有することを特徴とする請求項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:
前記個別実行制御登録部が、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群、前記メモリ管理情報を生成するステップを更に有することを特徴とする請求項12乃至15のいずれか1項に記載の並列処理システム制御方法。   The individual execution control registration unit further includes a step of generating the process management table group and the memory management information by an individual execution control registration command based on an execution control registration code included in the application program. Item 16. The parallel processing system control method according to any one of Items 12 to 15. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサIDを生成し、生成した前記プロセッサIDと前記プロセッサ制御用メソッド管理表IDとを、前記プロセッサ管理表に登録するステップを更に有することを特徴とする請求項16に記載の並列処理システム制御方法。   The individual execution control registration unit generates the processor control method management table and the processor ID based on the individual execution control registration command when the individual execution control registration command is registration of a processor related to the partial process. The parallel processing system control method according to claim 16, further comprising a step of registering the generated processor ID and the processor control method management table ID in the processor management table. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数へのポインタを引数として受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表を取得し、前記プロセッサ制御用メソッド管理表に前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数を登録するステップを更に有することを特徴とする請求項16又は17に記載の並列処理システム制御方法。   The individual execution control registration unit, when the individual execution control registration command is registration of a processor control method related to execution control of the processor, the processor ID and the processor control method included in the individual execution control registration command ID and a pointer to the processor control method function are received as arguments, the processor control method management table is acquired from the processor management table using the processor ID as a key, and the processor control method management table is used for the processor control 18. The parallel processing system control method according to claim 16, further comprising a step of registering a method ID and the processor control method function. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表へのポインタを取得し、そのポインタにより特定されるプロセッサ制御用メソッド管理表から前記プロセッサ個別処理ID登録関数を取得し、前記プログラム定義体を引数として前記プロセッサ個別処理ID登録関数を呼び出したときの戻り値として前記プロセッサ個別処理IDを取得し、更に、前記処理IDを生成し、前記処理ID、前記プロセッサID及び前記プロセッサ個別処理IDを前記処理ID管理表に登録するステップを更に有することを特徴とする請求項16乃至18の何れか1項に記載の並列処理システム制御方法。   The individual execution control registration unit, when the individual execution control registration command is registration of a processor individual process designating the partial process performed by the processor, the processor ID, program definition body included in the individual execution control registration command And a pointer from the processor management table to the processor control method management table using the processor ID as a key, and the processor individual process ID registration function from the processor control method management table specified by the pointer , The processor individual process ID is acquired as a return value when the processor individual process ID registration function is called with the program definition as an argument, the process ID is generated, and the process ID, the processor ID and the processor individual processing ID Parallel processing system control method according to any one of claims 16 to 18, further comprising the step of registering the serial processing ID management table. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記共有メモリの登録の場合、前記メモリアクセス用メソッド管理表及び前記メモリIDを生成し、生成した前記メモリIDと前記メモリアクセス用メソッド管理表へのポインタとを前記メモリ管理表に登録するステップを更に有することを特徴とする請求項16乃至19の何れか1項に記載の並列処理システム制御方法。   When the individual execution control registration command is registration of the shared memory, the individual execution control registration unit generates the memory access method management table and the memory ID, and generates the generated memory ID and the memory access method. The parallel processing system control method according to any one of claims 16 to 19, further comprising a step of registering a pointer to a management table in the memory management table. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記共有メモリの管理操作に係るメモリアクセス用メソッド登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数を引数として受け取り、前記メモリIDをキーとして前記メモリ管理表から前記メモリアクセス用メソッド管理表へのポインタを取得し、前記メモリアクセス用メソッド管理表に前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数へのポインタを登録するステップを更に有することを特徴とする請求項16乃至20の何れか1項に記載の並列処理システム制御方法。   When the individual execution control registration unit is a memory access method registration related to the management operation of the shared memory, the individual execution control registration unit includes the memory ID and the memory access method included in the individual execution control registration command. ID and the memory access method function are received as arguments, a pointer from the memory management table to the memory access method management table is obtained using the memory ID as a key, and the memory access method management table stores the memory access method function 21. The parallel processing system control method according to claim 16, further comprising a step of registering a method ID and a pointer to the memory access method function. 前記個別実行制御登録部が、前記個別実行制御登録コマンドが、前記ベースアドレスの登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記プロセッサID、前記ベースアドレスを引数として受け取り、前記アドレス変換表の前記メモリIDと前記プロセッサIDをキーとして指示されるエントリに前記ベースアドレスを格納するステップを更に有することを特徴とする請求項16乃至21の何れか1項に記載の並列処理システム制御方法。   When the individual execution control registration command is the registration of the base address, the individual execution control registration unit receives the memory ID, the processor ID, and the base address included in the individual execution control registration command as arguments, The parallel processing system according to any one of claims 16 to 21, further comprising a step of storing the base address in an entry designated by using the memory ID and the processor ID as keys in an address conversion table. Control method. 異なるタイプの複数のプロセッサ及び複数の共有メモリを含む並列処理システムを制御するための並列処理システム制御装置としてコンピュータを機能させるためのプログラムであって、
コンピュータを、
アプリケーションプログラムの実行要求を受けた時、その実行要求を、前記アプリケーションプログラムに含まれる複数の部分処理の各々に各々が対応する複数の共通コマンドであって、前記並列処理システムに含まれる各プロセッサの種類に依存せず、各プロセッサが扱う入出力データのバッファが前記並列処理システムに含まれるどの共通メモリに配置されているかということに依存しない複数の共通コマンドの実行要求として受け取り、各共通コマンドを解析することにより、各部分処理を実行するプロセッサを決定し、各プロセッサが扱う入出力データのバッファが配置されている共有メモリを決定し、各共通コマンドを前記決定したプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換・メモリ管理部と、
前記複数のプロセッサの各々に各々が対応し、前記プロセッサ個別コマンドで指定された前記部分処理を対応するプロセッサに実行させるための制御を行う複数の個別実行制御部と、
前記複数の共有メモリの各々に対するアクセスを制御するため関数と、前記複数の共有メモリを前記複数のプロセッサの各々が該プロセッサに固有のアドレスマップ上でアクセスするためのアドレス変換表とを含むメモリ管理情報を保持するメモリ管理情報保持部と、
前記共通コマンド変換・メモリ管理部により行われる前記部分処理を実行する前記プロセッサの決定のために用いられる情報、前記共通コマンド変換・メモリ管理部により行われる前記共通コマンドの前記プロセッサ個別コマンドへの変換のために用いられる情報、前記個別実行制御部により行われる前記プロセッサの制御で用いられるコマンド、関数及び識別子を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換・メモリ管理部及び前記個別実行制御部に登録し、前記処理管理表群を管理するとともに、前記メモリ管理情報を生成し、管理する個別実行制御登録部と、
として機能させるための並列処理システム制御プログラム。
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.
前記個別実行制御部は、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させ、
前記プロセッサ制御用メソッド管理表にそのポインタが予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項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.
前記個別実行制御登録部は、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群、前記メモリ管理情報を生成することを特徴とする請求項23乃至26のいずれか1項に記載の並列処理システム制御プログラム。   27. The individual execution control registration unit generates the process management table group and the memory management information by an individual execution control registration command based on an execution control registration code included in the application program. The parallel processing system control program according to any one of the above. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサIDを生成し、生成した前記プロセッサIDと前記プロセッサ制御用メソッド管理表IDとを、前記プロセッサ管理表に登録することを特徴とする請求項27に記載の並列処理システム制御プログラム。   The individual execution control registration unit generates the processor control method management table and the processor ID based on the individual execution control registration command when the individual execution control registration command is registration of a processor related to the partial process. 28. The parallel processing system control program according to claim 27, wherein the generated processor ID and the processor control method management table ID are registered in the processor management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数へのポインタを引数として受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表を取得し、前記プロセッサ制御用メソッド管理表に前記プロセッサ制御用メソッドID及び前記プロセッサ制御用メソッド関数を登録することを特徴とする請求項27又は28に記載の並列処理システム制御プログラム。   The individual execution control registration unit is configured to register the processor ID and the processor control method included in the individual execution control registration command when the individual execution control registration command is registration of a processor control method related to execution control of the processor. ID and a pointer to the processor control method function are received as arguments, the processor control method management table is acquired from the processor management table using the processor ID as a key, and the processor control method management table is used for the processor control 29. The parallel processing system control program according to claim 27 or 28, wherein a method ID and the processor control method function are registered. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表へのポインタを取得し、そのポインタにより特定されるプロセッサ制御用メソッド管理表から前記プロセッサ個別処理ID登録関数を取得し、前記プログラム定義体を引数として前記プロセッサ個別処理ID登録関数を呼び出したときの戻り値として前記プロセッサ個別処理IDを取得し、更に、前記処理IDを生成し、前記処理ID、前記プロセッサID及び前記プロセッサ個別処理IDを前記処理ID管理表に登録することを特徴とする請求項27乃至29の何れか1項に記載の並列処理システム制御プログラム。   The individual execution control registration unit, when the individual execution control registration command is registration of a processor individual process for designating the partial process performed by the processor, the processor ID, program definition body included in the individual execution control registration command And a pointer from the processor management table to the processor control method management table using the processor ID as a key, and the processor individual process ID registration function from the processor control method management table specified by the pointer , The processor individual process ID is acquired as a return value when the processor individual process ID registration function is called with the program definition as an argument, the process ID is generated, and the process ID, the processor ID and the processor individual processing ID Parallel processing system control program according to any one of claims 27 to 29 and registers the serial processing ID management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記共有メモリの登録の場合、前記メモリアクセス用メソッド管理表及び前記メモリIDを生成し、生成した前記メモリIDと前記メモリアクセス用メソッド管理表へのポインタとを前記メモリ管理表に登録することを特徴とする請求項27乃至30の何れか1項に記載の並列処理システム制御プログラム。   The individual execution control registration unit generates the memory access method management table and the memory ID when the individual execution control registration command is registration of the shared memory, and generates the generated memory ID and the memory access method. The parallel processing system control program according to any one of claims 27 to 30, wherein a pointer to a management table is registered in the memory management table. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記共有メモリの管理操作に係るメモリアクセス用メソッド登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数を引数として受け取り、前記メモリIDをキーとして前記メモリ管理表から前記メモリアクセス用メソッド管理表へのポインタを取得し、前記メモリアクセス用メソッド管理表に前記メモリアクセス用メソッドID及び前記メモリアクセス用メソッド関数へのポインタを登録することを特徴とする請求項27乃至31の何れか1項に記載の並列処理システム制御プログラム。   The individual execution control registration unit, when the individual execution control registration command is a memory access method registration related to a management operation of the shared memory, the memory ID and the memory access method included in the individual execution control registration command ID and the memory access method function are received as arguments, a pointer from the memory management table to the memory access method management table is obtained using the memory ID as a key, and the memory access method management table stores the memory access method function 32. The parallel processing system control program according to claim 27, wherein a method ID and a pointer to the memory access method function are registered. 前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記ベースアドレスの登録の場合、前記個別実行制御登録コマンドに含まれる前記メモリID、前記プロセッサID、前記ベースアドレスを引数として受け取り、前記アドレス変換表の前記メモリIDと前記プロセッサIDをキーとして指示されるエントリに前記ベースアドレスを格納することを特徴とする請求項27乃至32の何れか1項に記載の並列処理システム制御プログラム。   The individual execution control registration unit receives the memory ID, the processor ID, and the base address included in the individual execution control registration command as arguments when the individual execution control registration command is registration of the base address, and The parallel processing system control program according to any one of claims 27 to 32, wherein the base address is stored in an entry designated by using the memory ID and the processor ID as keys in an address conversion table.
JP2009214540A 2009-09-16 2009-09-16 Parallel processing system control apparatus, method and program thereof Active JP5541437B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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