WO2009131167A1 - Multiprocessor control apparatus, method therefor, and program therefor - Google Patents

Multiprocessor control apparatus, method therefor, and program therefor Download PDF

Info

Publication number
WO2009131167A1
WO2009131167A1 PCT/JP2009/058049 JP2009058049W WO2009131167A1 WO 2009131167 A1 WO2009131167 A1 WO 2009131167A1 JP 2009058049 W JP2009058049 W JP 2009058049W WO 2009131167 A1 WO2009131167 A1 WO 2009131167A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
individual
management table
command
registration
Prior art date
Application number
PCT/JP2009/058049
Other languages
French (fr)
Japanese (ja)
Inventor
信樹 梶原
賢悟 西野
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010509211A priority Critical patent/JP5382624B2/en
Publication of WO2009131167A1 publication Critical patent/WO2009131167A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Definitions

  • the present invention relates to a multiprocessor control device in a parallel processing system including a plurality of different types of processors, a method thereof, and a program thereof.
  • 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 process is assigned to a processor such as a CPU, a DSP, a dedicated processor, a reconfigurable processor, or a dedicated accelerator.
  • a processor such as a CPU, a DSP, a dedicated processor, a reconfigurable processor, or a dedicated accelerator.
  • 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.
  • the second method is an interpreter method used in servers including different models.
  • Each different processor executes an interpretation program called an interpreter of a common language (for example, Java (registered trademark)), and a program written in the common language is executed by the interpreter interpreting.
  • a common language for example, Java (registered trademark)
  • a program written in the common language is executed by the interpreter interpreting.
  • the entire application is described in a common language, and each partial process is assigned to a different processor for execution.
  • the device driver conceals the unique characteristics of each peripheral device. For example, in the case of a peripheral device functioning as a file system, different devices can be accessed from an application program by a unified procedure provided by a device driver.
  • Patent Document 3 Patent Document 4
  • Patent Document 5 Patent Document 6
  • Patent Document 10 execute a unique execution control procedure according to each processor from an application program to a function call or the like.
  • the method of calling when the configuration of the apparatus changes according to changes in the required specifications and performance of the application, the software such as the application program needs to be changed accordingly.
  • the third problem is that when the device-specific characteristics are concealed by the device driver as disclosed in Patent Document 2, it is difficult to support a programmable processor.
  • 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.
  • the present invention has been made in view of the above problems, and in a parallel processing system including a plurality of different types of processors, the differences between the processors are concealed, and the functions of the different processors are abstracted from a higher-level application program.
  • An object of the present invention is to provide a multiprocessor control device, a method thereof, and a program thereof that can control each processor in a unified manner and have high execution efficiency.
  • a multiprocessor control device in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes.
  • a plurality of common commands that do not depend on a specific processor, each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command
  • a common command conversion unit that converts a processor command into a processor individual command that is an individual command corresponding to the specified processor, and the partial processing that corresponds to each of the plurality of processors and that is designated by the processor individual command.
  • a plurality of controls to be executed by the processor A command used in the separate execution control unit, the identification of the processor that executes the partial processing by the common command conversion unit, the conversion of the common command into the processor individual command, and the control of the processor by the individual execution control unit, A process management table group describing information including a function and an identifier (ID) is generated, the process management table group is registered in the common command conversion unit and the individual execution control unit, and the process management table group is managed. And an individual execution control registration unit.
  • a multiprocessor control method is a multiprocessor control method in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes.
  • a plurality of common commands that do not depend on a specific processor each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command
  • a common command conversion procedure for converting each of the plurality of processors to the partial processing specified by the processor individual command and a common command conversion procedure for converting the command to a processor individual command that is an individual command corresponding to the specified processor.
  • a multiprocessor control program is a multiprocessor control program in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes.
  • a plurality of common commands that do not depend on a specific processor each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command
  • System to be executed by the processor A plurality of times of individual execution control processing, identification of the processor executing the partial processing in the common command conversion processing, conversion of the common command into the processor individual command, and control of the processor in the individual execution control processing
  • An individual execution control registration that generates a process management table group in which information including commands, functions, and identifiers (IDs) used in is written, and uses the process management table group in the common command conversion process and the individual execution control process And causing the computer to execute the processing.
  • IDs information including commands, functions, and identifiers
  • the individual execution control registration unit in a parallel processing system including a plurality of different types of processors, the individual execution control registration unit generates a process management table group in which information including a command, a function, and an identifier (ID) is described.
  • the common command conversion unit converts a common command independent of a specific processor into a processor individual command that is an individual command to each processor, and the individual execution control unit is specified by the processor individual command.
  • mapping of the application which embodiment of this invention makes object, and the partial process to a parallel processing system 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. In an embodiment of the present invention, it is a management table 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. 6 is a flowchart illustrating a processing procedure in an individual execution control registration unit in the embodiment of the present invention.
  • 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.
  • an application 10 includes a partial process 11 and a communication channel 12, and the entire application includes a plurality of partial processes 11. Data transfer between these partial processes 11 is performed via the communication channel 12.
  • the parallel processing system 30 includes a plurality of different processors 31, a shared memory 33 shared by these processors 31, data transfer between each processor 31 and the shared memory 33, And a communication path 32 used for notification of an event such as an interrupt.
  • 1 includes, as an example, four partial processes 11 (P1, P2, P3, and P4). Further, it is assumed that there are N processors 31 (Proc1, Proc2,..., ProcN).
  • 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 processor 31 suitable for the processing executes each partial process 11 by the mapping unit 20, it becomes possible to optimize the performance per power consumption in the entire application 10.
  • the parallel processing system 30 is configured as a single chip as a SoC (System OnhipChip)
  • SoC System OnhipChip
  • FIG. 2 is a block diagram showing the relationship between the application program 40, the execution control unit 50, and the parallel processing system 30.
  • the application program 40 includes an application execution control code 41 and an execution control registration code 42.
  • the application execution control code 41 defines in what manner each partial process 11 of the application 10 in FIG.
  • the execution control registration code 42 is a code for registering a program necessary for the parallel processing system 30 to execute processing based on the application execution control code 41 on a plurality of processors. This code is the basis of the command 113.
  • each partial process 11 is described using a common command 110 having a unified structure that does not depend on the unique processor 31.
  • the execution control unit 50 includes a common command conversion unit 51, an individual execution control registration unit 52, and a plurality of individual execution control units 53.
  • An execution instruction of the partial process 11 from the application execution control code 41 is passed to the common command conversion unit 51 as a common command 110.
  • 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 of each partial process 11.
  • the common command conversion unit 51 specifies the processor 31 that should 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.
  • the processor individual command 111 includes the processor individual processing ID 116 and the processing parameter 115. This processor individual command 111 instructs the individual execution control unit 53 for controlling the processor 31 to execute the partial process 11.
  • the program registration method generally requires a specific procedure for each processor 31. For example, if the processor 31 is a CPU or DSP, a pointer to a function for the partial process 11 may be received and the association with the processor individual process ID 116 may be managed. For example, if the processor 31 is a reconfigurable processor that can repeatedly change the circuit, it receives reconfiguration data for partial processing and manages the association with the processor individual processing ID 116.
  • the processor individual process ID registration function 102 (see FIG. 4) is registered in advance according to the type of the processor 31, and the processor individual process ID 116 is registered. Function 102 is used.
  • the program for the processor 31 for executing the partial process 11 registered using the processor individual process ID registration function 102 can be specified by the processor individual process ID 116.
  • the processor individual command 111 includes the processor individual process ID 116 and the process parameter 115.
  • 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 process parameter 115.
  • a processor individual command execution function 103 (see FIG. 4) is registered in advance according to 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 processing parameter 115 as arguments.
  • 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 a function necessary for controlling the processor and the like and registration of the processor individual process ID 116 using the processor individual process ID registration function 102 are performed.
  • FIG. 3 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.
  • FIG. 3 shows an example in which the partial processing 11 has two sets of input data and one set of output data.
  • the processing parameter 115 is, for example, a pointer to the processing parameter body 16.
  • the processing parameter 115 is, for example, a pointer to the processing parameter body 16.
  • the number of input data sets and the number of output data sets 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.
  • the number of input / output sets is also determined. Therefore, the number of input / output sets specific to the program that executes the partial process 11 is set in the processing parameter body 16. Is also possible.
  • FIG. 4 is a management table in which information including a command, a function, and an identifier (ID) 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 80, and a processor control method management table 90.
  • 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 responsible for the process of the partial process 11 corresponding to the process ID 114 and the processor 31 specified by the processor ID 117 are assigned. The unique processor individual ID 116 can be searched. When adding the partial process 11, an entry is added to the process ID management table 70.
  • the processor management table 80 is a table for managing a processor control method necessary for execution control of each processor 31 of the parallel processing system.
  • the processor control method management table 90 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 80.
  • the processor control method management table 90 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.
  • 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 necessary processor control method function 101 by designating the method ID 100 corresponding to the operation and searching the processor control method management table 90.
  • FIG. 5 shows the procedure from when the application control code 41 common command 110 is issued until the processing in the predetermined processor 31 is actually started.
  • FIG. 6 shows a procedure from when the application execution control registration code 42 issues the individual execution control registration command 113 to when various registrations are performed.
  • step S100 the common command conversion 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.
  • step S110 the common command conversion unit 51 obtains the processor control method management table 90 from the processor management table 80 using the processor ID 117 as a key.
  • step S120 the common command conversion unit 51 searches the processor control method management table 90 using the method ID 100 indicating the execution of the processor individual command 111 as a key, and obtains the processor individual command execution function 103.
  • step S130 the common command conversion unit 51 calls the processor individual command execution function 103 using the processor individual process ID 116 and the process parameter 115 as arguments.
  • the called processor individual command execution function 103 operates as a part of the individual execution control unit 53.
  • the processor individual command execution function 103 generally performs different processing for each processor 31.
  • 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.
  • the program is called by giving a processing parameter 115 as an argument.
  • the processor 31 loads the program and then passes the processing parameters 115 to the processor 31 in a manner specific to the processor 31. Start running the program.
  • 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 can be registered in advance by the individual execution control registration unit 52.
  • processor registration steps S200, S210, S220
  • method registration steps S300, S310, S320, S330
  • processor individual process registration steps S400, S410, S420, S430, S440, S450
  • 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 90 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 90 are registered in the processor management table 80.
  • 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 method ID 100, and the processor control method definition function 101 are individually used as arguments. It is given by the execution control registration command 113 (step S310).
  • step S320 the processor control method management table 90 is obtained from the processor management table 80 using the processor ID 117 given as an argument as a key.
  • step S330 the method ID 100 and the processor control method definition function 101 are registered in the processor control method management table 90.
  • step S400 if the individual execution control registration command 113 is registered for processor individual processing (True), the processor ID 117 as a parameter and a program definition for performing predetermined processing by the designated processor 31 are the individual execution control registration command. 113 (step S410).
  • the processor control method management table 90 is obtained from the processor management table 80 using the processor ID 117 as a key.
  • step S430 the processor individual process ID registration function 102 is obtained from the processor control method management table 90.
  • 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.
  • 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.
  • execution control independent of the hardware configuration becomes possible.
  • execution control of the partial processing 11 included in the application can be performed with a common command having a unified structure that does not depend on which processor is executed.
  • 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.
  • 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.
  • optimum control can be performed for each different processor.
  • the individual execution control unit 53 can be optimally configured according to the characteristics of each processor.
  • the individual execution control unit may be a function call of a function that executes partial processing.
  • 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.
  • the application program is described for the reason described in the next paragraph. It is possible to respond flexibly without changing the control structure.
  • the individual execution control registration unit 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.
  • the present invention can be used for a parallel processing system including a plurality of different types of processors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

A multiprocessor parallel processing system conceals differences in respective processors and performs unified control on the processors with an application program. The system includes a common command converter (51), an individual execution control registering section (52), and an individual execution control section (53). The common command converter (51) analyzes a common command (110), which does not depend on a specific processor, to specify respective processors (31) which execute respective partial processes of an application program (40), and converts the common command (110) to processor specific commands (111) for the individual processors (31). The individual execution control section (53) causes the processors (31) to execute the partial processes designated by the processor specific commands (111). The individual execution control registering section (52) generates a process management table describing information including commands, functions and identifiers (ID) which are used in the common command converter (51) and the individual execution control section (53), registers the process management table in the common command converter (51) and the individual execution control section (53), and manages the process management table.

Description

マルチプロセッサ制御装置、その方法及びそのプログラムMultiprocessor control device, method and program thereof
 本発明は、複数の異なるタイプのプロセッサを含む並列処理システムにおけるマルチプロセッサ制御装置、その方法及びそのプログラムに関する。 The present invention relates to a multiprocessor control device in a parallel processing system including a plurality of different types of processors, 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 power consumption restrictions such as embedded systems have different 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 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 including different models. Each different processor executes an interpretation program called an interpreter of a common language (for example, Java (registered trademark)), and a program written in the common language is executed by the interpreter interpreting. 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等の周辺装置であれば、デバイスドライバで各周辺装置の固有の特性を隠蔽するものである。例えば、ファイルシステムとして機能する周辺装置であれば、アプリケーションプログラムからは、デバイスドライバの提供する統一的な手順で異なる装置をアクセスすることが可能である。 In the third method, if the peripheral device is an I / O or the like, the device driver conceals the unique characteristics of each peripheral device. For example, in the case of a peripheral device functioning as a file system, different devices can be accessed from an application program by a unified procedure provided by a device driver.
 これらの方式に準拠した技術は、下記の文献で開示されている。 The technology conforming to these methods is 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 特開平06-161720号公報Japanese Patent Laid-Open No. 06-161720 特開平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
 しかしながら、上述の手法には以下のように幾つかの問題点がある。 However, the above method has some problems as follows.
 第1の問題点は、特許文献3、特許文献4、特許文献5、特許文献6及び特許文献10にあるCPU等が各プロセッサに応じて固有の実行制御手順をアプリケーションプログラムから関数コール等の手段で呼び出す手法では、アプリケーションに対する、要求仕様、性能の変化に応じて、装置の構成が変化した場合、アプリケーションプログラム等のソフトウェアもそれに応じて変更が必要になっていた。 The first problem is that the CPUs disclosed in Patent Document 3, Patent Document 4, Patent Document 5, Patent Document 6, and Patent Document 10 execute a unique execution control procedure according to each processor from an application program to a function call or the like. In the method of calling, when the configuration of the apparatus changes according to changes in the required specifications and performance of the application, the software such as the application program needs to be changed accordingly.
 第2の問題点は、特許文献1、特許文献7、特許文献8及び特許文献9にあるインタープリター方式では、異なるプロセッサ間の差違はインタープリターによって隠蔽できるが、インタープリター方式はアプリケーションコードを随時解釈しながらの実行のため、実行速度が非常に遅くなり、要求性能を達成するためには、電力、コストの関係で組込み等の制限の強い装置には適用が困難であった。 The second problem is that in the interpreter systems disclosed in Patent Document 1, Patent Document 7, Patent Document 8 and Patent Document 9, the difference between different processors can be concealed by the interpreter. Due to the execution while interpreting, the execution speed becomes very slow, and in order to achieve the required performance, it is difficult to apply it to a device with a strong limit such as built-in due to power and cost.
 第3の問題点は、特許文献2にあるようにデバイスドライバで装置固有の特性を隠蔽する場合は、プログラマブルなプロセッサには対応しにくいということである。DSPや専用プロセッサ、再構成可能プロセッサのようにプログラムに応じてその機能が大きく変化するプロセッサや、専用アクセラレータでも、パラメータの設定に応じて機能が変化するようなプロセッサでは、デバイスドライバのように統一的な制御手順を予め定義することが困難である。 The third problem is that when the device-specific characteristics are concealed by the device driver as disclosed in Patent Document 2, 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.
 本発明は上記の問題点に鑑みてなされたもので、複数の異なるタイプのプロセッサを含む並列処理システムにおいて、各プロセッサの差異を隠蔽し、異なるプロセッサの機能を抽象化して上位レベルのアプリケーションプログラムから統一的に各プロセッサを制御でき、かつ実行効率の高いマルチプロセッサ制御装置、その方法及びそのプログラムを提供することを目的とする。 The present invention has been made in view of the above problems, and in a parallel processing system including a plurality of different types of processors, the differences between the processors are concealed, and the functions of the different processors are abstracted from a higher-level application program. An object of the present invention is to provide a multiprocessor control device, a method thereof, and a program thereof that can control each processor in a unified manner and have high execution efficiency.
 上述の課題を解決するため、本発明に係るマルチプロセッサ制御装置は、異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御装置であって、複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換部と、前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数の個別実行制御部と、前記共通コマンド変換部による前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御部による前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換部及び前記個別実行制御部に登録し、前記処理管理表群を管理する個別実行制御登録部と、を備えることを特徴とする。 In order to solve the above-described problems, a multiprocessor control device according to the present invention is a multiprocessor control device in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes. , A plurality of common commands that do not depend on a specific processor, each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command A common command conversion unit that converts a processor command into a processor individual command that is an individual command corresponding to the specified processor, and the partial processing that corresponds to each of the plurality of processors and that is designated by the processor individual command. A plurality of controls to be executed by the processor; A command used in the separate execution control unit, the identification of the processor that executes the partial processing by the common command conversion unit, the conversion of the common command into the processor individual command, and the control of the processor by the individual execution control unit, A process management table group describing information including a function and an identifier (ID) is generated, the process management table group is registered in the common command conversion unit and the individual execution control unit, and the process management table group is managed. And an individual execution control registration unit.
 上述の課題を解決するため、本発明に係るマルチプロセッサ制御方法は、異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御方法であって、複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換手順と、前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数回の個別実行制御手順と、前記共通コマンド変換手順における前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御手順における前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換手順及び前記個別実行制御手順で使用させる個別実行制御登録手順と、を備えることを特徴とする。 In order to solve the above-described problem, a multiprocessor control method according to the present invention is a multiprocessor control method in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes. , A plurality of common commands that do not depend on a specific processor, each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command A common command conversion procedure for converting each of the plurality of processors to the partial processing specified by the processor individual command, and a common command conversion procedure for converting the command to a processor individual command that is an individual command corresponding to the specified processor. A plurality of controls for causing the processor to execute Individual execution control procedure, identification of the processor that executes the partial processing in the common command conversion procedure, conversion of the common command into the processor individual command, and commands used in the control of the processor in the individual execution control procedure An individual execution control registration procedure for generating a process management table group in which information including a function and an identifier (ID) is described, and causing the process management table group to be used in the common command conversion procedure and the individual execution control procedure; It is characterized by providing.
 上述の課題を解決するため、本発明に係るマルチプロセッサ制御プログラムは、異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御プログラムであって、複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換処理と、前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数回の個別実行制御処理と、前記共通コマンド変換処理における前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御処理における前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換処理及び前記個別実行制御処理で使用させる個別実行制御登録処理と、をコンピュータに実行させることを特徴とする。 In order to solve the above-described problem, a multiprocessor control program according to the present invention is a multiprocessor control program in a parallel processing system including a plurality of processors of different types, and requests execution of an application program including a plurality of partial processes. , A plurality of common commands that do not depend on a specific processor, each common command is received as corresponding to each common command, each common command is analyzed to identify a processor that executes each partial process, and each common command A common command conversion process for converting a command into a processor individual command that is an individual command corresponding to the specified processor, and a partial process specified by the processor individual command, each corresponding to each of the plurality of processors. System to be executed by the processor A plurality of times of individual execution control processing, identification of the processor executing the partial processing in the common command conversion processing, conversion of the common command into the processor individual command, and control of the processor in the individual execution control processing An individual execution control registration that generates a process management table group in which information including commands, functions, and identifiers (IDs) used in is written, and uses the process management table group in the common command conversion process and the individual execution control process And causing the computer to execute the processing.
 本発明によれば、複数の異なるタイプのプロセッサを含む並列処理システムにおいて、個別実行制御登録手段が、コマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、この処理管理表群に基づいて、共通コマンド変換部が、固有のプロセッサに依存しない共通コマンドを各プロセッサへの個別のコマンドであるプロセッサ個別コマンドに変換し、個別実行制御部がプロセッサ個別コマンドで指定された処理を前記プロセッサに実行させることによって、各プロセッサの差異を隠蔽し、異なるプロセッサの機能を抽象化して上位レベルのアプリケーションプログラムからプロセッサを統一的に制御できる。 According to the present invention, in a parallel processing system including a plurality of different types of processors, the individual execution control registration unit generates a process management table group in which information including a command, a function, and an identifier (ID) is described. Based on the processing management table group, the common command conversion unit converts a common command independent of a specific processor into a processor individual command that is an individual command to each processor, and the individual execution control unit is specified by the processor individual command. By causing the processor to execute the processes described above, it is possible to conceal the differences between the processors, abstract the functions of the different processors, and control the processors uniformly from a higher-level application program.
本発明の実施の形態が対象としているアプリケーションと、並列処理システムへの部分処理のマッピング例である。It is an example of mapping of the application which embodiment of this invention makes object, and the partial process to a parallel processing system. 本発明の実施の形態の構成を示すブロック図である。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. 本発明の実施の形態において、共通コマンドから実際にプロセッサを制御するために必要となる管理表である。In an embodiment of the present invention, it is a management table 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. 本発明の実施の形態において、個別実行制御登録部での処理手順を示すフローチャートである。6 is a flowchart illustrating a processing procedure in an individual execution control registration unit in the embodiment of the present invention.
 以下、図面を参照して本発明を実施するための形態について詳細に説明する。 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.
 図1において、アプリケーション10は、部分処理11、通信用チャネル12を含み、アプリケーション全体は複数の部分処理11を含んでいる。これらの部分処理11間のデータ転送は、通信チャネル12を介して行なわれる。 1, an application 10 includes a partial process 11 and a communication channel 12, and the entire application includes a plurality of partial processes 11. Data transfer between these partial processes 11 is performed via the communication channel 12.
 また、図1において、並列処理システム30は、複数の異なるプロセッサ31と、これらのプロセッサ31で共有される共有メモリ33と、各プロセッサ31と、共有メモリ33との間でのデータの転送や、割込み等のイベントの通知に使われる通信路32と、を含む。 In FIG. 1, the parallel processing system 30 includes a plurality of different processors 31, a shared memory 33 shared by these processors 31, data transfer between each processor 31 and the shared memory 33, And a communication path 32 used for notification of an event such as an interrupt.
 図1のアプリケーション10は、一例として、4つの部分処理11(、P1、P2、P3及びP4)を含む。又、N個のプロセッサ31(Proc1、Proc2、…、ProcN)が存在するものとする。 1 includes, as an example, four partial processes 11 (P1, P2, P3, and P4). Further, it is assumed that there are N processors 31 (Proc1, Proc2,..., ProcN).
 図1の例では、マッピング部20は、部分処理P1及びP2をプロセッサProc1にマッピングし、部分処理P3をプロセッサProc2にマッピングし、部分処理P4をプロセッサProcNにマッピングする。 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.
 マッピング部20により、それぞれの部分処理11を、その処理に適したプロセッサ31が実行するようにすることにより、アプリケーション10全体で、消費電力あたりの性能を最適化することが可能となる。また、そうすることにより、並列処理システム30をSoC(System On Chip)として1つのチップで構成する場合には、チップ面積あたりの性能を最適化することが可能である。 By allowing the processor 31 suitable for the processing to execute each partial process 11 by the mapping unit 20, it becomes possible to optimize the performance per power consumption in the entire application 10. In addition, by doing so, when the parallel processing system 30 is configured as a single chip as a SoC (System OnhipChip), the performance per chip area can be optimized.
 図2は、アプリケーションプログラム40、実行制御部50及び並列処理システム30の関係を示すブロック図である。 FIG. 2 is a block diagram showing the relationship between the application program 40, the execution control unit 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は、並列処理システム30がアプリケーション実行制御用コード41に基づく処理を複数のプロセッサに実行させるために必要なプログラムを登録するためのコードであり、個別実行制御登録コマンド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 code for registering a program necessary for the parallel processing system 30 to execute processing based on the application execution control code 41 on a plurality of processors. This code is the basis of the command 113.
 また、各部分処理11は、固有のプロセッサ31に依存しない統一した構造を持つ共通コマンド110を用いて記述されている。 Also, each partial process 11 is described using a common command 110 having a unified structure that does not depend on the unique processor 31.
 実行制御部50は、共通コマンド変換部51、個別実行制御登録部52及び複数の個別実行制御部53を含む。共通コマンド変換部51には、アプリケーション実行制御用コード41からの部分処理11の実行指示が、共通コマンド110として渡される。 The execution control unit 50 includes a common command conversion unit 51, an individual execution control registration unit 52, and a plurality of individual execution control units 53. An execution instruction of the partial process 11 from the application execution control code 41 is passed to the common command conversion unit 51 as a common command 110.
 共通コマンド110は、アプリケーションプログラムの個々の部分処理11を識別するための処理ID114と、個々の部分処理11の入出力データ等を指定するための処理パラメータ115を含む。 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 of each partial process 11.
 共通コマンド変換部51は、共通コマンド110により指定された部分処理11を実行するべきプロセッサ31を特定し、そのプロセッサ31が行なう部分処理を識別するためのプロセッサ個別処理ID116を特定する。 The common command conversion unit 51 specifies the processor 31 that should 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.
 このプロセッサ個別処理ID116と処理パラメータ115とをプロセッサ個別コマンド111は含む。このプロセッサ個別コマンド111によりプロセッサ31を制御するための個別実行制御部53へ部分処理11の実行指示を行なう。 The processor individual command 111 includes the processor individual processing ID 116 and the processing parameter 115. This processor individual command 111 instructs the individual execution control unit 53 for controlling the processor 31 to execute the partial process 11.
 個別実行制御部53には、それに対応するプロセッサ31に固有の実行制御に必要な関数が登録されている。対応するプロセッサ31に割り当てられた部分処理11を実行するためには、それぞれの部分処理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 to execute the partial process 11 assigned to the corresponding processor 31, it is necessary to register a program for executing each partial process 11 by the corresponding processor 31 as the processor individual process ID 116.
 プログラムの登録方法は一般的には各プロセッサ31毎に固有の手順が必要となる。例えば、プロセッサ31がCPUやDSPであれば、部分処理11用の関数へのポインタを受け取り、プロセッサ個別処理ID116との対応付けを管理すればよい。また、例えば、プロセッサ31が回路を繰り返し変更することのできる再構成可能プロセッサであれば、部分処理用の再構成データを受け取り、プロセッサ個別処理ID116との対応付けを管理する。 The program registration method generally requires a specific procedure for each processor 31. For example, if the processor 31 is a CPU or DSP, a pointer to a function for the partial process 11 may be received and the association with the processor individual process ID 116 may be managed. For example, if the processor 31 is a reconfigurable processor that can repeatedly change the circuit, it receives reconfiguration data for partial processing and manages the association with the processor individual processing ID 116.
 このため、個別実行制御部53では、プロセッサ31の種類に応じて、プロセッサ個別処理ID登録関数102(図4参照)を予め登録しておき、プロセッサ個別処理ID116の登録はこのプロセッサ個別処理ID登録関数102を用いて行なう。 Therefore, in the individual execution control unit 53, the processor individual process ID registration function 102 (see FIG. 4) is registered in advance according to the type of the processor 31, and the processor individual process ID 116 is registered. 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 specified by the processor individual process ID 116.
 上述したように、プロセッサ個別コマンド111はプロセッサ個別処理ID116と、処理パラメータ115とを含む。プロセッサ個別処理ID116は、例えば、プロセッサがCPUであれば登録されている実行関数を特定し、プロセッサが再構成プロセッサであれば再構成データを特定する。プロセッサ個別処理ID116は、処理パラメータ115とともにプロセッサ31に与えられる。 As described above, the processor individual command 111 includes the processor individual process ID 116 and the process parameter 115. 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 process parameter 115.
 個別実行制御部53には、それに対応するプロセッサ31に応じて、プロセッサ個別コマンド実行関数103(図4参照)が予め登録されている。プロセッサ個別コマンド実行関数103をプロセッサ個別処理ID116と処理パラメータ115とを引数として呼び出すことにより実行されるプロセッサ個別実行制御コマンド112によって、個別実行制御部53に対応するプロセッサ31が制御される。 In the individual execution control unit 53, a processor individual command execution function 103 (see FIG. 4) is registered in advance according to 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 processing parameter 115 as arguments.
 プロセッサ31の実行状況の確認の手順等も、各プロセッサ31毎に異なるため、各プロセッサ31毎に予め登録しておいたプロセッサ状態チェック関数104(図4参照)を用いて、その確認等を行なう。 Since the procedure for checking the execution status of the processor 31 is also different for each processor 31, it is checked using the processor state check function 104 (see FIG. 4) registered in advance for each processor 31. .
 個別実行制御登録部52は、個別実行制御登録コマンド113に基づき、各プロセッサ31毎の個別実行制御部53の登録、プロセッサ個別処理ID登録関数102、プロセッサ個別コマンド実行関数103、プロセッサ状態チェック関数104等のプロセッサの制御に必要な関数の登録及びプロセッサ個別処理ID登録関数102を用いたプロセッサ個別処理ID116の登録を行なう。 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 a function necessary for controlling the processor and the like and registration of the processor individual process ID 116 using the processor individual process ID registration function 102 are performed.
 図3は、共通コマンド110の構成例を示す。共通コマンド110は、アプリケーションプログラムの部分処理11を指定する処理ID114と、部分処理11に処理の対象となる入出力データ等を指定する処理パラメータ115とを含む。 FIG. 3 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.
 図3は、部分処理11に入力データが2セット、出力データが1セットある場合の例を示している。 FIG. 3 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へのポインタを格納することにより、処理の対象となる入力データや処理の結果である出力データのある場所を指定できる。 The processing parameter 115 is, for example, a pointer to the processing parameter body 16. By storing pointers to the input data buffer 13 and the output data buffer 14 in the processing parameter main body 16, it is possible to specify the location of the input data to be processed and the output data that is the result of the processing.
 処理パラメータ本体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 specific to the program that executes the partial process 11 is set in the processing parameter body 16. Is also possible.
 図4は共通コマンド110から実際にプロセッサ31を制御するために必要となるコマンド、関数及び識別子(ID)を含む情報が記載された管理表である。この管理表には、処理ID管理表70、プロセッサ管理表80及びプロセッサ制御用メソッド管理表90が含まれる。 FIG. 4 is a management table in which information including a command, a function, and an identifier (ID) 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 80, and a processor control method management table 90.
 処理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 responsible for the process of the partial process 11 corresponding to the process ID 114 and the processor 31 specified by the processor ID 117 are assigned. The unique processor individual ID 116 can be searched. When adding the partial process 11, an entry is added to the process ID management table 70.
 プロセッサ管理表80は、並列処理システムの各プロセッサ31の実行制御に必要なプロセッサ制御用メソッドを管理するための表である。 The processor management table 80 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のプロセッサ制御用メソッド管理表90を検索できる。プロセッサ31を登録する場合には、このプロセッサ管理表80にエントリが追加される。 The processor control method management table 90 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 80.
 プロセッサ制御用メソッド管理表90は、プロセッサ31の実行制御に必要なメソッド群を関数として管理している。プロセッサ31の実行制御に必要な操作は幾つか考えられるが、ここでは、プロセッサ31に部分処理11に対応したプログラムを登録し、プロセッサ個別処理ID116と対応付けるためのプロセッサ個別処理ID登録関数102、プロセッサ個別コマンド111が与えられたときにプロセッサ個別コマンド111で指定される処理をプロセッサ31で行なうためのプロセッサ個別コマンド実行関数103及び必要に応じてプロセッサ31の状態を確認するためのプロセッサ状態チェック関数104が示されている。プロセッサ31への操作は、その操作に対応するメソッドID100を指定して、プロセッサ制御用メソッド管理表90を検索することで、必要なプロセッサ制御用メソッド関数101を得ることができる。 The processor control method management table 90 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 necessary processor control method function 101 by designating the method ID 100 corresponding to the operation and searching the processor control method management table 90.
 次に、図5及び図6のフローチャートを用いて、本実施の形態に係る実行制御部50の動作について説明する。ここで、図5はアプリケーション制御用コード41共通コマンド110を発行してから実際に所定のプロセッサ31での処理が起動されるまでの手順を示している。図6はアプリケーションの実行制御登録用コード42が個別実行制御登録コマンド113を発行してから各種登録を行なうまでの手順を示している。 Next, the operation of the execution control unit 50 according to the present embodiment will be described using the flowcharts of FIGS. Here, FIG. 5 shows the procedure from when the application control code 41 common command 110 is issued until the processing in the predetermined processor 31 is actually started. FIG. 6 shows a procedure from when the application execution control registration code 42 issues the individual execution control registration command 113 to when various registrations are performed.
 図5の処理は共通コマンド変換部51で実行される。 5 is executed by the common command conversion unit 51.
 まず、ステップS100では、共通コマンド変換部51は、受け取った共通コマンド110から処理ID114を抽出し、その処理ID114をキーにして処理ID管理表70からプロセッサID117及びプロセッサ個別処理ID116を得る。 First, in step S100, the common command conversion 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をキーにしてプロセッサ管理表80からプロセッサ制御用メソッド管理表90を得る。 Subsequently, in step S110, the common command conversion unit 51 obtains the processor control method management table 90 from the processor management table 80 using the processor ID 117 as a key.
 ステップS120では、共通コマンド変換部51は、プロセッサ制御用メソッド管理表90をプロセッサ個別コマンド111の実行を示すメソッドID100をキーとして検索し、プロセッサ個別コマンド実行関数103を得る。 In step S120, the common command conversion unit 51 searches the processor control method management table 90 using the method ID 100 indicating the execution of the processor individual command 111 as a key, and obtains the processor individual command execution function 103.
 ステップS130では、共通コマンド変換部51は、プロセッサ個別処理ID116と処理パラメータ115を引数として、プロセッサ個別コマンド実行関数103を呼び出す。 In step S130, the common command conversion unit 51 calls the processor individual command execution function 103 using the processor individual process ID 116 and the process parameter 115 as arguments.
 呼び出されたプロセッサ個別コマンド実行関数103は個別実行制御部53の一部として動作する。 The called processor individual command execution function 103 operates as a part of the individual execution control unit 53.
 プロセッサ個別コマンド実行関数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であれば、引数として処理パラメータ115を与えてプログラムを呼び出す。 If the processor 31 is a CPU, the program is called by giving a processing parameter 115 as an argument.
 一方で、プロセッサ31が実行に先だってプログラムのロードが必要となるものであれば、プロセッサ31にプログラムをロードさせた後に、プロセッサ31に固有の方法で処理パラメータ115をプロセッサ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 processing parameters 115 to the processor 31 in a manner specific to the processor 31. Start running the program.
 プロセッサ31がプログラムのロードに時間がかかるものであれば、同じプログラムで処理可能な処理要求を幾つか溜めて、それらの処理要求に対応する処理をまとめてプロセッサ31に実行させることも可能である。これらのプロセッサ31に固有の制御手順は予め個別実行制御登録部52により登録することができる。 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 can be registered in advance by the individual execution control registration unit 52.
 図6の処理は、個別実行制御登録部52で実行される。 6 is executed by the individual execution control registration unit 52.
 まず、個別実行制御登録コマンド113の内容に応じてプロセッサの登録(ステップS200、S210、S220)、メソッドの登録(ステップS300、S310、S320、S330)、プロセッサ個別処理の登録(ステップS400、S410、S420、S430、S440、S450)が行なわれる。 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) are performed.
 ステップS200において、個別実行制御登録コマンド113が部分処理11に係るプロセッサ登録であれば(True)、ステップS210でプロセッサ制御用メソッド管理表90を生成し、ステップS220でプロセッサID117を生成し、生成したプロセッサID117とプロセッサ制御用メソッド管理表90へのポインタをプロセッサ管理表80に登録する。 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 90 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 90 are registered in the processor management table 80.
 ステップ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 method ID 100, and the processor control method definition function 101 are individually used as arguments. It is given by the execution control registration command 113 (step S310).
 続くステップS320では、引数として与えられたプロセッサID117をキーとしてプロセッサ管理表80からプロセッサ制御用メソッド管理表90を得る。 In subsequent step S320, the processor control method management table 90 is obtained from the processor management table 80 using the processor ID 117 given as an argument as a key.
 ステップS330では、プロセッサ制御用メソッド管理表90にメソッドID100及びプロセッサ制御用メソッド定義関数101を登録する。 In step S330, the method ID 100 and the processor control method definition function 101 are registered in the processor control method management table 90.
 ステップS400において、個別実行制御登録コマンド113がプロセッサ個別処理の登録であれば(True)、引数として、プロセッサID117、指定したプロセッサ31で所定の処理を行なうためのプログラム定義体が個別実行制御登録コマンド113により与えられている(ステップS410)。 In step S400, if the individual execution control registration command 113 is registered for processor individual processing (True), the processor ID 117 as a parameter and a program definition for performing predetermined processing by the designated processor 31 are the individual execution control registration command. 113 (step S410).
 続くステップS420では、プロセッサID117をキーとしてプロセッサ管理表80からプロセッサ制御用メソッド管理表90を得る。 In the subsequent step S420, the processor control method management table 90 is obtained from the processor management table 80 using the processor ID 117 as a key.
 ステップS430では、プロセッサ制御用メソッド管理表90からプロセッサ個別処理ID登録関数102を得る。 In step S430, the processor individual process ID registration function 102 is obtained from the processor control method management table 90.
 ステップ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.
 以上説明したように、本実施形態によれば、まず第1に、ハードウェアの構成に依存しない実行制御が可能となる。共通コマンド変換部51により、アプリケーションに含まれる部分処理11の実行制御は、どのプロセッサで実行するかに依存しない、統一した構造を持つ共通コマンドで行なうことが可能となる。 As described above, according to the present embodiment, firstly, execution control independent of the hardware configuration becomes possible. With the common command conversion unit 51, execution control of the partial processing 11 included in the application can 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 are conceivable. 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つの処理内ではジョブに含まれる部分処理は逐次的に実行するが、複数のジョブを並列に処理をするという方法も考えられる。これらの並列処理を制御するためにはそれぞれ異なる制御構造が必要であるが、各プロセッサの実行制御は共通コマンドで行なえるため、本質的な並列処理の制御構造を変更するだけで、異なる並列処理に対応することが可能となる。 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は、各プロセッサの特性に合わせて最適に構成することが可能である。 Second, according to the present embodiment, optimum 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.
 なお、本実施形態は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。 Note that this embodiment can be realized by hardware, software, or a combination thereof.
 本発明は、複数の異なるタイプのプロセッサを含む並列処理システムに利用できる。 The present invention can be used for a parallel processing system including a plurality of different types of processors.
 10 アプリケーション
 11 部分処理
 12 通信用チャネル
 13 入力データバッファ
 14 出力データバッファ
 16 処理パラメータ本体
 20 マッピング部
 30 並列処理システム
 31 プロセッサ
 32 通信路
 33 共有メモリ
 40 アプリケーションプログラム
 41 アプリケーションプログラム実行制御用コード
 42 実行制御登録用コード
 50 実行制御部
 51 共通コマンド変換部
 52 個別実行制御登録部
 53 個別実行制御部
 70 処理ID管理表
 80 プロセッサ管理表
 90 プロセッサ制御用メソッド管理表
 100 メソッドID
 101 プロセッサ制御用メソッド関数
 102 プロセッサ個別処理ID登録関数
 103 プロセッサ個別コマンド実行関数
 104 プロセッサ状態チェック関数
 110 共通コマンド
 111 プロセッサ個別コマンド
 112 プロセッサ個別実行制御コマンド
 113 個別実行制御登録コマンド
 114 処理ID
 115 処理パラメータ
 116 プロセッサ個別処理ID
 117 プロセッサID
DESCRIPTION OF SYMBOLS 10 Application 11 Partial process 12 Communication channel 13 Input data buffer 14 Output data buffer 16 Processing parameter main body 20 Mapping part 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 Execution Control Unit 51 Common Command Conversion Unit 52 Individual Execution Control Registration Unit 53 Individual Execution Control Unit 70 Process ID Management Table 80 Processor Management Table 90 Processor Control Method Management Table 100 Method ID
101 Processor control method function 102 Processor individual process ID registration function 103 Processor individual command execution function 104 Processor state 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

Claims (24)

  1.  異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御装置であって、
     複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換部と、
     前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数の個別実行制御部と、
     前記共通コマンド変換部による前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御部による前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換部及び前記個別実行制御部に登録し、前記処理管理表群を管理する個別実行制御登録部と、
     を備えることを特徴とするマルチプロセッサ制御装置。
    A multiprocessor controller in a parallel processing system including a plurality of processors of different types,
    Application program execution requests that include multiple partial processes are received as multiple common commands that do not depend on a specific processor, and each partial command corresponds to each partial process. A common command conversion unit that identifies a processor that executes processing and converts each common command into a processor individual command that is an individual command corresponding to the specified processor;
    A plurality of individual execution control units, each corresponding to each of the plurality of processors, for controlling the processor to execute the partial process specified by the processor individual command;
    A command, function, and identifier (ID) used for specifying the processor that executes the partial processing by the common command conversion unit, converting the common command to the processor individual command, and controlling the processor by the individual execution control unit A process management table group in which information including the process management table group is generated, the process management table group is registered in the common command conversion unit and the individual execution control unit, and the process management table group is managed. ,
    A multiprocessor control device comprising:
  2.  前記個別実行制御登録部は、
     前記処理IDと前記プロセッサIDと前記プロセッサ個別処理IDとの対応を記載した処理ID管理表と、
     メソッドIDと、前記プロセッサ個別コマンド実行関数、前記プロセッサ個別処理IDを登録するためのプロセッサ個別処理ID登録関数及び前記プロセッサ状態チェック関数を含む前記プロセッサ制御用メソッド関数との対応を記載したプロセッサ制御用メソッド管理表と、
     前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、
     を、前記処理管理表群として生成することを特徴とする請求項1に記載のマルチプロセッサ制御装置。
    The individual execution control registration unit
    A process ID management table describing the correspondence between the process ID, the processor ID, and the processor individual process ID;
    For processor control that describes correspondence between a method ID, the processor individual command execution function, a processor individual process ID registration function for registering the processor individual process ID, and the processor control method function including the processor state check function A method management table;
    A processor management table describing the correspondence between the processor ID and a pointer to the processor control method management table;
    The multiprocessor control device according to claim 1, wherein the processing management table group is generated.
  3.  前記共通コマンド変換部は、
     前記共通コマンドを、前記部分処理を識別する処理IDと、前記部分処理に係る入出力データを含むデータを指定する処理パラメータと、を含む形式で受け取り、
     前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索し、
     前記プロセッサ個別処理IDと、前記処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得ることを特徴とする請求項2に記載のマルチプロセッサ制御装置。
    The common command conversion 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;
    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
    3. The multiprocessor control apparatus according to claim 2, wherein the processor individual command is obtained by combining the processor individual processing ID and the processing parameter.
  4.  前記個別実行制御部は、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させ、
     前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項2又は3に記載のマルチプロセッサ制御装置。
    The individual execution control unit is executed by calling a processor individual command execution function registered in advance in the processor control method management table using the processor individual process ID and the process parameter as arguments. The control process causes the processor to execute the partial processing,
    4. The multiprocessor control apparatus according to claim 2, wherein an operation state of the processor is checked by a processor state check function registered in advance in the processor control method management table.
  5.  前記個別実行制御登録部は、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群を生成することを特徴とする請求項1乃至4のいずれか1項に記載のマルチプロセッサ制御装置。 The said individual execution control registration part produces | generates the said process management table group by the individual execution control registration command based on the code for execution control registration which the said application program has, The any one of Claim 1 thru | or 4 characterized by the above-mentioned. A multiprocessor control device according to claim 1.
  6.  前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサ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 multiprocessor control apparatus according to claim 5, wherein the generated processor ID and the processor control method management table ID are registered in the processor management table.
  7.  前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッド管理表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. The management table ID and the processor control method definition function are received as arguments, the processor control method management table ID is acquired from the processor management table using the processor ID as a key, and the processor control is stored in the processor control method management table 7. The multiprocessor control apparatus according to claim 5, wherein a method management table ID for the processor and a method definition function for controlling the processor are registered.
  8.  前記個別実行制御登録部は、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表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 The processor control method management table ID is obtained from the processor management table using the processor ID as a key, and the processor individual process ID registration function is obtained from the processor control method management table specified by the ID. 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, and the process ID is generated, and the process ID, the processor ID, and The processor individual process ID is set as the process I. Multiprocessor control apparatus according to any one of claims 5 to 7, characterized in that registered in the management table.
  9.  異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御方法であって、
     複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換手順と、
     前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数回の個別実行制御手順と、
     前記共通コマンド変換手順における前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御手順における前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換手順及び前記個別実行制御手順で使用させる個別実行制御登録手順と、
     を備えることを特徴とするマルチプロセッサ制御方法。
    A multiprocessor control method in a parallel processing system including a plurality of processors of different types,
    Application program execution requests that include multiple partial processes are received as multiple common commands that do not depend on a specific processor, and each partial command corresponds to each partial process. A common command conversion procedure for identifying a processor that executes processing and converting each common command into a processor individual command that is an individual command corresponding to the identified processor;
    A plurality of individual execution control procedures each corresponding to each of the plurality of processors and performing control to cause the processor to execute the partial processing specified by the processor individual command;
    A command, function, and identifier (ID) used for specifying the processor that executes the partial processing in the common command conversion procedure, converting the common command into the processor individual command, and controlling the processor in the individual execution control procedure An individual execution control registration procedure for generating a process management table group in which information including information is generated and using the process management table group in the common command conversion procedure and the individual execution control procedure;
    A multiprocessor control method comprising:
  10.  前記個別実行制御登録手順は、
     前記処理IDと前記プロセッサIDと前記プロセッサ個別処理IDとの対応を記載した処理ID管理表と、
     メソッドIDと、前記プロセッサ個別コマンド実行関数、前記プロセッサ個別処理IDを登録するためのプロセッサ個別処理ID登録関数及び前記プロセッサ状態チェック関数を含む前記プロセッサ制御用メソッド関数との対応を記載したプロセッサ制御用メソッド管理表と、
     前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、
     を前記処理管理表群として生成することを特徴とする請求項9に記載のマルチプロセッサ制御方法。
    The individual execution control registration procedure includes:
    A process ID management table describing the correspondence between the process ID, the processor ID, and the processor individual process ID;
    For processor control that describes correspondence between a method ID, the processor individual command execution function, a processor individual process ID registration function for registering the processor individual process ID, and the processor control method function including the processor state check function A method management table;
    A processor management table describing the correspondence between the processor ID and a pointer to the processor control method management table;
    10. The multiprocessor control method according to claim 9, wherein the processing management table group is generated.
  11.  前記共通コマンド変換手順は、
     前記共通コマンドを、前記部分処理を識別する処理IDと、前記部分処理に係る入出力データを含むデータを指定する処理パラメータと、を含む形式で受け取る手順と、
     前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索する手順と、
     前記プロセッサ個別処理IDと、前記処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得る手順と、
     を有することを特徴とする請求項9に記載のマルチプロセッサ制御方法。
    The common command conversion procedure is:
    A procedure for 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.
    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 the steps to
    A procedure for obtaining the processor individual command by combining the processor individual processing ID and the processing parameter;
    The multiprocessor control method according to claim 9, further comprising:
  12.  前記個別実行制御手順は、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させ、
     前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項10又は11に記載のマルチプロセッサ制御方法。
    The individual execution control procedure is executed by calling a processor individual command execution function registered in advance in the processor control method management table with the processor individual process ID and the process parameter as arguments. The control process causes the processor to execute the partial processing,
    The multiprocessor control method according to claim 10 or 11, wherein an operation state of the processor is checked by a processor state check function registered in advance in the processor control method management table.
  13.  前記個別実行制御登録手順は、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群を生成することを特徴とする請求項9乃至12のいずれか1項に記載のマルチプロセッサ制御方法。 13. The individual execution control registration procedure generates the process management table group by an individual execution control registration command based on an execution control registration code included in the application program. A multiprocessor control method according to claim 1.
  14.  前記個別実行制御登録手順は、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサIDを生成し、生成した前記プロセッサIDと前記プロセッサ制御用メソッド管理表IDとを、前記プロセッサ管理表に登録することを特徴とする請求項13に記載のマルチプロセッサ制御方法。 The individual execution control registration procedure 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. 14. The multiprocessor control method according to claim 13, wherein the generated processor ID and the processor control method management table ID are registered in the processor management table.
  15.  前記個別実行制御登録手順は、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッド管理表ID及び前記プロセッサ制御用メソッド定義関数を引数として受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表IDを取得し、前記プロセッサ制御用メソッド管理表に前記プロセッサ制御用メソッド管理表ID及び前記プロセッサ制御用メソッド定義関数を登録することを特徴とする請求項13又は14に記載のマルチプロセッサ制御方法。 The individual execution control registration procedure includes the processor ID and the processor control method included in the individual execution control registration command when the individual execution control registration command is a registration of a processor control method related to execution control of the processor. The management table ID and the processor control method definition function are received as arguments, the processor control method management table ID is acquired from the processor management table using the processor ID as a key, and the processor control is stored in the processor control method management table 15. The multiprocessor control method according to claim 13, wherein a method management table ID for a processor and a method definition function for processor control are registered.
  16.  前記個別実行制御登録手順は、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表IDを取得し、そのIDにより特定されるプロセッサ制御用メソッド管理表から前記プロセッサ個別処理ID登録関数を取得し、前記プログラム定義体を引数として前記プロセッサ個別処理ID登録関数を呼び出したときの戻り値として前記プロセッサ個別処理IDを取得し、更に、前記処理IDを生成し、前記処理ID、前記プロセッサID及び前記プロセッサ個別処理IDを前記処理ID管理表に登録することを特徴とする請求項13乃至15の何れか1項に記載のマルチプロセッサ制御方法。 In the individual execution control registration procedure, when the individual execution control registration command is registration of a processor individual process specifying the partial process performed by the processor, the processor ID, program definition body included in the individual execution control registration command The processor control method management table ID is obtained from the processor management table using the processor ID as a key, and the processor individual process ID registration function is obtained from the processor control method management table specified by the ID. 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, and the process ID is generated, and the process ID, the processor ID, and The processor individual process ID is changed to the process Multiprocessor control method according to any one of claims 13 to 15, characterized in that to register the D management table.
  17.  異なるタイプの複数のプロセッサを含む並列処理システムにおけるマルチプロセッサ制御プログラムであって、
     複数の部分処理を含むアプリケーションプログラムの実行要求を、固有のプロセッサに依存しない複数の共通コマンドであって、各部分処理に各共通コマンドが対応するものとして受け取り、各共通コマンドを解析して各部分処理を実行するプロセッサを特定し、各共通コマンドを前記特定されたプロセッサに対応する個別のコマンドであるプロセッサ個別コマンドに変換する共通コマンド変換処理と、
     前記複数のプロセッサのそれぞれにそれぞれが対応し、前記プロセッサ個別コマンドで指定された前記部分処理を前記プロセッサに実行させる制御をする複数回の個別実行制御処理と、
     前記共通コマンド変換処理における前記部分処理を実行する前記プロセッサの特定及び前記共通コマンドの前記プロセッサ個別コマンドへの変換並びに前記個別実行制御処理における前記プロセッサの制御で用いられるコマンド、関数及び識別子(ID)を含む情報が記載された処理管理表群を生成し、前記処理管理表群を前記共通コマンド変換処理及び前記個別実行制御処理で使用させる個別実行制御登録処理と、
     をコンピュータに実行させることを特徴とするマルチプロセッサ制御プログラム。
    A multiprocessor control program in a parallel processing system including a plurality of processors of different types,
    Application program execution requests that include multiple partial processes are received as multiple common commands that do not depend on a specific processor, and each partial command corresponds to each partial process. A common command conversion process that identifies a processor that executes processing and converts each common command into a processor individual command that is an individual command corresponding to the identified processor;
    A plurality of individual execution control processes, each corresponding to each of the plurality of processors, for controlling the processor to execute the partial processing specified by the processor individual command;
    A command, function, and identifier (ID) used for specifying the processor that executes the partial process in the common command conversion process, converting the common command into the processor individual command, and controlling the processor in the individual execution control process An individual execution control registration process for generating a process management table group in which information including information is generated and causing the process management table group to be used in the common command conversion process and the individual execution control process;
    A multiprocessor control program for causing a computer to execute.
  18.  前記個別実行制御登録処理は、
     前記処理IDと前記プロセッサIDと前記プロセッサ個別処理IDとの対応を記載した処理ID管理表と、
     メソッドIDと、前記プロセッサ個別コマンド実行関数、前記プロセッサ個別処理IDを登録するためのプロセッサ個別処理ID登録関数及び前記プロセッサ状態チェック関数を含む前記プロセッサ制御用メソッド関数との対応を記載したプロセッサ制御用メソッド管理表と、
     前記プロセッサIDと前記プロセッサ制御用メソッド管理表へのポインタとの対応を記載したプロセッサ管理表と、
    を前記処理管理表群として生成することを特徴とする請求項17に記載のマルチプロセッサ制御プログラム。
    The individual execution control registration process includes:
    A process ID management table describing the correspondence between the process ID, the processor ID, and the processor individual process ID;
    For processor control that describes correspondence between a method ID, the processor individual command execution function, a processor individual process ID registration function for registering the processor individual process ID, and the processor control method function including the processor state check function A method management table;
    A processor management table describing the correspondence between the processor ID and a pointer to the processor control method management table;
    The multiprocessor control program according to claim 17, wherein the processing management table group is generated.
  19.  前記共通コマンド変換処理は、
     前記共通コマンドを、前記部分処理を識別する処理IDと、前記部分処理に係る入出力データを含むデータを指定する処理パラメータと、を含む形式で受け取る処理と、
     前記共通コマンドに含まれる前記処理IDをキーとして前記処理ID管理表から、前記部分処理を実行する前記プロセッサのプロセッサIDと、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理IDと、を検索する処理と、
     前記プロセッサ個別処理IDと、前記処理パラメータとを合わせることにより前記プロセッサ個別コマンドを得る処理と、
     をコンピュータに実行させることを特徴とする請求項17に記載のマルチプロセッサ制御プログラム。
    The common command conversion process includes:
    A process of 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;
    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 Processing to
    Processing for obtaining the processor individual command by combining the processor individual processing ID and the processing parameter;
    The multiprocessor control program according to claim 17, wherein the program is executed by a computer.
  20.  前記個別実行制御処理は、前記プロセッサ個別処理IDと前記処理パラメータとを引数にして、前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ個別コマンド実行関数を呼び出すことにより実行されるプロセッサ個別実行制御コマンドによって、前記部分処理を前記プロセッサに実行させ、
     前記プロセッサ制御用メソッド管理表に予め登録されているプロセッサ状態チェック関数によって、前記プロセッサの動作状態をチェックすることを特徴とする請求項18又は19に記載のマルチプロセッサ制御プログラム。
    The individual execution control process is executed by calling a processor individual command execution function registered in advance in the processor control method management table using the processor individual process ID and the process parameter as arguments. The control process causes the processor to execute the partial processing,
    20. The multiprocessor control program according to claim 18 or 19, wherein an operation state of the processor is checked by a processor state check function registered in advance in the processor control method management table.
  21.  前記個別実行制御登録処理は、前記アプリケーションプログラムが有する実行制御登録用コードに基づく個別実行制御登録コマンドによって、前記処理管理表群を生成することを特徴とする請求項17乃至20のいずれか1項に記載のマルチプロセッサ制御プログラム。 21. The individual execution control registration process generates the process management table group by an individual execution control registration command based on an execution control registration code included in the application program. The multiprocessor control program described in 1.
  22.  前記個別実行制御登録処理は、前記個別実行制御登録コマンドが、前記部分処理に係るプロセッサの登録の場合、前記個別実行制御登録コマンドに基づいて前記プロセッサ制御用メソッド管理表及び前記プロセッサIDを生成し、生成した前記プロセッサIDと前記プロセッサ制御用メソッド管理表IDとを、前記プロセッサ管理表に登録することを特徴とする請求項21に記載のマルチプロセッサ制御プログラム。 The individual execution control registration process 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 multiprocessor control program according to claim 21, wherein the generated processor ID and the processor control method management table ID are registered in the processor management table.
  23.  前記個別実行制御登録処理は、前記個別実行制御登録コマンドが、前記プロセッサの実行制御に係るプロセッサ制御用メソッドの登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、前記プロセッサ制御用メソッド管理表ID及び前記プロセッサ制御用メソッド定義関数を引数として受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表IDを取得し、前記プロセッサ制御用メソッド管理表に前記プロセッサ制御用メソッド管理表ID及び前記プロセッサ制御用メソッド定義関数を登録することを特徴とする請求項21に記載のマルチプロセッサ制御プログラム。 The individual execution control registration process includes 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. The management table ID and the processor control method definition function are received as arguments, the processor control method management table ID is acquired from the processor management table using the processor ID as a key, and the processor control is stored in the processor control method management table 22. The multiprocessor control program according to claim 21, wherein a method management table ID for a processor and a method definition function for processor control are registered.
  24.  前記個別実行制御登録処理は、前記個別実行制御登録コマンドが、前記プロセッサが行なう前記部分処理を指定するプロセッサ個別処理の登録の場合、前記個別実行制御登録コマンドに含まれる前記プロセッサID、プログラム定義体を引数を受け取り、前記プロセッサIDをキーとして前記プロセッサ管理表から前記プロセッサ制御用メソッド管理表IDを取得し、そのIDにより特定されるプロセッサ制御用メソッド管理表から前記プロセッサ個別処理ID登録関数を取得し、前記プログラム定義体を引数として前記プロセッサ個別処理ID登録関数を呼び出したときの戻り値として前記プロセッサ個別処理IDを取得し、更に、前記処理IDを生成し、前記処理ID、前記プロセッサID及び前記プロセッサ個別処理IDを前記処理ID管理表に登録することを特徴とする請求項21乃至23の何れか1項に記載のマルチプロセッサ制御プログラム。 In the individual execution control registration process, when the individual execution control registration command is a registration of a processor individual process for designating the partial process performed by the processor, the processor ID and program definition body included in the individual execution control registration command The processor control method management table ID is obtained from the processor management table using the processor ID as a key, and the processor individual process ID registration function is obtained from the processor control method management table specified by the ID. 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, and the process ID is generated, and the process ID, the processor ID, and The processor individual process ID is changed to the process Multiprocessor control program according to any one of claims 21 to 23, characterized in that to register the D management table.
PCT/JP2009/058049 2008-04-23 2009-04-23 Multiprocessor control apparatus, method therefor, and program therefor WO2009131167A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010509211A JP5382624B2 (en) 2008-04-23 2009-04-23 Multiprocessor control device, method and program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-112473 2008-04-23
JP2008112473 2008-04-23

Publications (1)

Publication Number Publication Date
WO2009131167A1 true WO2009131167A1 (en) 2009-10-29

Family

ID=41216896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/058049 WO2009131167A1 (en) 2008-04-23 2009-04-23 Multiprocessor control apparatus, method therefor, and program therefor

Country Status (2)

Country Link
JP (1) JP5382624B2 (en)
WO (1) WO2009131167A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065353A (en) * 2009-09-16 2011-03-31 Nec Corp Parallel processing system control device, method and program
WO2012039216A1 (en) * 2010-09-24 2012-03-29 日本電気株式会社 Information processing device, method therefor and program therefor
JP2013045219A (en) * 2011-08-23 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> Data processing system, data processing method, resource manager device, accelerator device, and program

Citations (4)

* 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
JP2002163238A (en) * 2000-11-28 2002-06-07 Fujitsu Ltd Information processing method and recording medium
JP2004264957A (en) * 2003-02-28 2004-09-24 Hitachi Ltd Job execution method in different computer environment and its program

Patent Citations (4)

* 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
JP2002163238A (en) * 2000-11-28 2002-06-07 Fujitsu Ltd Information processing method and recording medium
JP2004264957A (en) * 2003-02-28 2004-09-24 Hitachi Ltd Job execution method in different computer environment and its program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065353A (en) * 2009-09-16 2011-03-31 Nec Corp Parallel processing system control device, method and program
WO2012039216A1 (en) * 2010-09-24 2012-03-29 日本電気株式会社 Information processing device, method therefor and program therefor
JPWO2012039216A1 (en) * 2010-09-24 2014-02-03 日本電気株式会社 Information processing apparatus, method and program thereof
JP5825261B2 (en) * 2010-09-24 2015-12-02 日本電気株式会社 Information processing apparatus, method and program thereof
JP2013045219A (en) * 2011-08-23 2013-03-04 Nippon Telegr & Teleph Corp <Ntt> Data processing system, data processing method, resource manager device, accelerator device, and program

Also Published As

Publication number Publication date
JPWO2009131167A1 (en) 2011-08-18
JP5382624B2 (en) 2014-01-08

Similar Documents

Publication Publication Date Title
US9703603B1 (en) System and method for executing accelerator call
WO2013165459A1 (en) Control flow graph operating system configuration
US9164799B2 (en) Multiprocessor system
CN107203465B (en) System interface testing method and device
WO2015032311A1 (en) Code generation method, compiler, scheduling method, apparatus and scheduling system
US20220414052A1 (en) Multi-Core Processor, Multi-Core Processor Processing Method, and Related Device
CN111666210A (en) Chip verification method and device
CN111158756A (en) Method and apparatus for processing information
JP5382624B2 (en) Multiprocessor control device, method and program thereof
WO2021098257A1 (en) Service processing method based on heterogeneous computing platform
JP6817827B2 (en) Accelerator processing management device, host device, accelerator processing execution system, method and program
CN113220436A (en) Universal batch operation execution method and device under distributed environment
JP2018180706A (en) Support device and program
CN113485894A (en) Data acquisition method, device and equipment and readable storage medium
JP7112058B2 (en) REAL-TIME PROCESSING APPARATUS AND MANUFACTURING METHOD THEREOF
JP2011059787A (en) Digital signal processor system and starting method for digital signal processor
JP2012155515A (en) Source device driver and method for creating execution module
US7167908B2 (en) Facilitating operation of a multi-processor system via a resolved symbolic constant
JP5541437B2 (en) Parallel processing system control apparatus, method and program thereof
CN111788555B (en) Data processing apparatus and method
JPH0877118A (en) Distributed processor and process execution method
JP4967555B2 (en) Multiprocessor system
KR101269024B1 (en) Apparatus and method of coordinating an operation action of robot software component
JPH0863421A (en) Centralized management system for hardware constitution information
CN116266113A (en) Request processing method, device, electronic equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09734276

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010509211

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09734276

Country of ref document: EP

Kind code of ref document: A1