JP2017161954A - Data processing system, data processing method, and program - Google Patents

Data processing system, data processing method, and program Download PDF

Info

Publication number
JP2017161954A
JP2017161954A JP2014155806A JP2014155806A JP2017161954A JP 2017161954 A JP2017161954 A JP 2017161954A JP 2014155806 A JP2014155806 A JP 2014155806A JP 2014155806 A JP2014155806 A JP 2014155806A JP 2017161954 A JP2017161954 A JP 2017161954A
Authority
JP
Japan
Prior art keywords
node
cpu
application
processing
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014155806A
Other languages
Japanese (ja)
Inventor
明 平田
Akira Hirata
明 平田
下谷 光生
Mitsuo Shitaya
光生 下谷
伸輝 岡田
Nobuteru Okada
伸輝 岡田
洋平 ▲柳▼沢
洋平 ▲柳▼沢
Yohei Yanagisawa
龍一 佐藤
Ryuichi Sato
龍一 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014155806A priority Critical patent/JP2017161954A/en
Priority to PCT/JP2015/061849 priority patent/WO2016017219A1/en
Publication of JP2017161954A publication Critical patent/JP2017161954A/en
Pending legal-status Critical Current

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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To improve processing capacity by concurrently using a CPU configuring a multi-core.SOLUTION: A master node 201 selects, among a plurality of CPU cores, a dedicated CPU core for executing an application program as application nodes 202 and 203, and selects a dedicated CPU core for executing a device driver as a CPU core of IO nodes 206 and 207.SELECTED DRAWING: Figure 2

Description

本発明は、複数のCPU(Central Processing Unit)コアを有するマルチコアプロセッサに関する。   The present invention relates to a multi-core processor having a plurality of CPU (Central Processing Unit) cores.

複数のCPUコアを有するマルチコアプロセッサを用いて処理時間を短くする等、効率よく処理を実行するため、ソフトウェア処理モジュールを実行する際に、処理専用のCPUコアに割り当て実行させる方法(特許文献1)や、特定の処理プロセスを実行させるCPUコアを割り当てる方法(特許文献2)が示されている。   In order to execute processing efficiently, such as shortening processing time using a multi-core processor having a plurality of CPU cores, when executing a software processing module, a method for assigning and executing a processing-only CPU core (Patent Document 1) In addition, a method of assigning a CPU core for executing a specific processing process (Patent Document 2) is shown.

特開2010−218445号公報JP 2010-218445 A 特開2009−211643号公報JP 2009-211643 A

これら従来技術ではマルチコア上で複数の独立したOSを定常的に動作させるため、各OSがそれぞれメモリを消費し効率が悪い。
またマルチコアでアプリケーションプログラム(以下、単にアプリケーションともいう)を複数のCPUで動的に負荷を分散して処理を行う対象型マルチプロセッサ(SMP)を用いるシステムでは使用可能なコア数が多いほど並列度が高く、スループットが向上しやすいのに対し、マルチコアで複数の独立したOSを動作させた場合には並列動作が限定されるという課題がある。
換言すると、同じCPUがアプリケーションプログラムとデバイスドライバの双方を実行する構成の場合は、並列度が低く、スループットが低いという課題がある。
In these conventional techniques, since a plurality of independent OSs are steadily operated on a multi-core, each OS consumes a memory and is inefficient.
Furthermore, in a system using a target multiprocessor (SMP) that dynamically processes application programs (hereinafter simply referred to as applications) with multiple CPUs by dynamically distributing the load, the parallelism increases as the number of cores that can be used increases. However, there is a problem that parallel operation is limited when a plurality of independent OSs are operated with a multi-core.
In other words, when the same CPU executes both the application program and the device driver, there is a problem that the degree of parallelism is low and the throughput is low.

この発明は上記のような課題を解決することを主な目的としており、マルチコアを構成するCPUを同時並行に使用し、処理能力を向上させることを主な目的とする。   The main object of the present invention is to solve the above-described problems, and it is a main object of the present invention to improve the processing capability by simultaneously using the CPUs constituting the multi-core.

本発明に係るデータ処理システムは、
複数のCPU(Central Processing Unit)が含まれるデータ処理システムであって、
前記複数のCPUの中から、アプリケーションプログラムを実行させる専用のCPUをアプリケーションCPUとして選択し、デバイスドライバを実行させる専用のCPUをデバイスドライバCPUとして選択するCPU選択部を有することを特徴とする。
A data processing system according to the present invention includes:
A data processing system including a plurality of CPUs (Central Processing Units),
A CPU selection unit that selects a dedicated CPU that executes an application program from among the plurality of CPUs as an application CPU and selects a dedicated CPU that executes a device driver as a device driver CPU.

本発明によれば、アプリケーションプログラムを実行するCPUとデバイスドライバを実行するCPUとを別のCPUとすることができ、デバイスドライバの実行を含めて、複数のCPUを同時並行に使用させることができ、処理能力を向上させることができる。   According to the present invention, a CPU that executes an application program and a CPU that executes a device driver can be separate CPUs, and a plurality of CPUs can be used simultaneously in parallel, including the execution of a device driver. , Processing capacity can be improved.

実施の形態1に係る制御装置のハードウェア構成例を示す図。FIG. 3 is a diagram illustrating a hardware configuration example of a control device according to the first embodiment. 実施の形態1に係る制御装置のノード構成例を示す図。FIG. 3 is a diagram illustrating a node configuration example of a control device according to the first embodiment. 実施の形態1に係るノードの内部構成例を示す図。FIG. 3 is a diagram illustrating an internal configuration example of a node according to the first embodiment. 実施の形態1に係るアプリケーションノードの内部構成例を示す図。FIG. 3 is a diagram showing an internal configuration example of an application node according to the first embodiment. 実施の形態1に係る連携ノードの内部構成例を示す図。FIG. 3 is a diagram illustrating an internal configuration example of a cooperation node according to the first embodiment. 実施の形態1に係るIOノードの内部構成例を示す図。FIG. 3 is a diagram illustrating an internal configuration example of an IO node according to the first embodiment. 実施の形態1に係るマスタノードの内部構成例を示す図。FIG. 3 is a diagram illustrating an internal configuration example of a master node according to the first embodiment. 実施の形態1に係るROMに記憶されているデータの例を示す図。FIG. 3 is a diagram illustrating an example of data stored in a ROM according to the first embodiment. 実施の形態1に係るRAMの領域の例を示す図。FIG. 3 is a diagram illustrating an example of a RAM area according to the first embodiment. 実施の形態1に係る処理管理テーブルの構成例を示す図。FIG. 4 is a diagram showing a configuration example of a process management table according to the first embodiment. 実施の形態1に係る処理コマンドの例を示す図。FIG. 6 is a diagram illustrating an example of a processing command according to the first embodiment. 実施の形態1に係る処理状態の例を示す図。FIG. 6 is a diagram illustrating an example of a processing state according to the first embodiment. 実施の形態1に係るコマンドパラメータの例を示す図。FIG. 4 is a diagram illustrating an example of command parameters according to the first embodiment. 実施の形態1に係るシステム構成情報の例を示す図。FIG. 3 is a diagram showing an example of system configuration information according to the first embodiment. 実施の形態1に係るアプリケーションノードの処理フローの例を示すフローチャート図。FIG. 4 is a flowchart showing an example of a process flow of an application node according to the first embodiment. 実施の形態1に係るアプリケーションノードの処理フローの例を示すフローチャート図。FIG. 4 is a flowchart showing an example of a process flow of an application node according to the first embodiment. 実施の形態1に係るマスタノードの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a processing flow of a master node according to the first embodiment. 実施の形態1に係る連携ノードの処理フローの例を示すフローチャート図。FIG. 4 is a flowchart showing an example of a processing flow of a cooperation node according to the first embodiment. 実施の形態1に係るIOノードの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a process flow of an IO node according to the first embodiment. 実施の形態1に係るIOノードの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a process flow of an IO node according to the first embodiment. 実施の形態1に係るマスタノードの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a processing flow of a master node according to the first embodiment. 実施の形態1に係るマスタノードの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a processing flow of a master node according to the first embodiment. 実施の形態1に係るノード間割込みの処理フローの例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a process flow of an inter-node interrupt according to the first embodiment. 実施の形態1に係る要求処理のシーケンスの例を示す図。FIG. 6 is a diagram showing an example of a request processing sequence according to the first embodiment.

実施の形態1.
図1は、本実施の形態に係る制御装置(データ処理システムの例)のハードウェア構成例を示す。
図1において、マルチコアSoC(System on Chip)100は、CPUコア101を複数個搭載するマルチコアプロセッサであり、IO(Input Output)インタフェースやメモリコントローラを含む。
マルチコアSoC100には、IOデバイス111、IOデバイス112、ROM(Read Only Memory)121及びRAM(Random Access Memory)122が接続されている。
IOデバイス111及びIOデバイス112は、例えば、ディスプレイ装置等の出力装置、マウス、キーボード、スイッチ等の入力装置である。
タッチパネル式のディスプレイであってもよい。
Embodiment 1 FIG.
FIG. 1 shows a hardware configuration example of a control device (an example of a data processing system) according to the present embodiment.
In FIG. 1, a multi-core SoC (System on Chip) 100 is a multi-core processor having a plurality of CPU cores 101, and includes an IO (Input Output) interface and a memory controller.
An IO device 111, an IO device 112, a ROM (Read Only Memory) 121 and a RAM (Random Access Memory) 122 are connected to the multi-core SoC 100.
The IO device 111 and the IO device 112 are, for example, output devices such as a display device, and input devices such as a mouse, a keyboard, and a switch.
A touch panel display may be used.

図2は本実施の形態に係るマルチコアSoC100におけるノード構成例を示す。
マスタノード201は、システム起動時にシステム全体の初期設定やシステム全体を管理する。
アプリケーションノード202及びアプリケーションノード203は、アプリケーションプログラムを実行する。
連携ノード204及び連携ノード205は、アプリケーションノード202、203と後述のIOノード206、207との間の伝達制御を行う。
IOノード206及びIOノード207は、IOデバイス111及びIOデバイス112を制御する。
IOノード206はIOデバイス111の制御を専門に行い、IOノード207はIOデバイス112の制御を専門に行う。
予備CPUコア208は、マルチコアSoC100を構成するCPUコア101のうち、前述のどのノードにも割り当てられていないCPUコアである。
FIG. 2 shows a node configuration example in the multi-core SoC 100 according to the present embodiment.
The master node 201 manages initial settings of the entire system and the entire system when the system is activated.
The application node 202 and the application node 203 execute an application program.
The cooperation node 204 and the cooperation node 205 perform transmission control between the application nodes 202 and 203 and IO nodes 206 and 207 described later.
The IO node 206 and the IO node 207 control the IO device 111 and the IO device 112.
The IO node 206 specializes in controlling the IO device 111, and the IO node 207 specializes in controlling the IO device 112.
The spare CPU core 208 is a CPU core that is not assigned to any of the above-described nodes among the CPU cores 101 constituting the multi-core SoC 100.

図3は、本実施の形態に係るノードの構成例を示す。
マスタノード201、アプリケーションノード202、アプリケーションノード203、連携ノード204、連携ノード205、IOノード206及びIOノード207は、それぞれ、CPUコア101とソフトウェア303で構成される。
CPUコア101は、ソフトウェア303を実行する。
ソフトウェア303は、それぞれのノードの機能に対応するソフトウェアである。
マスタノード201、アプリケーションノード202、アプリケーションノード203、連携ノード204、連携ノード205、IOノード206及びIOノード207を区別する必要がない場合は、これらを総称してノード301という。
ソフトウェア303は、ROM121に記憶されており、RAM122にロードされ、RAM122にロードされたソフトウェア303の少なくとも一部をCPUコア101が読み込んで実行することにより、ノード301の機能(マスタノード201としての機能、アプリケーションノード202としての機能等)が実現される。
各ノードにおけるソフトウェアの詳細は後述する。
FIG. 3 shows a configuration example of a node according to the present embodiment.
The master node 201, the application node 202, the application node 203, the cooperation node 204, the cooperation node 205, the IO node 206, and the IO node 207 are configured by the CPU core 101 and software 303, respectively.
The CPU core 101 executes software 303.
The software 303 is software corresponding to the function of each node.
When it is not necessary to distinguish the master node 201, the application node 202, the application node 203, the linkage node 204, the linkage node 205, the IO node 206, and the IO node 207, these are collectively referred to as a node 301.
The software 303 is stored in the ROM 121, loaded into the RAM 122, and the CPU core 101 reads and executes at least a part of the software 303 loaded into the RAM 122, thereby causing the function of the node 301 (function as the master node 201). , A function as the application node 202) is realized.
Details of the software in each node will be described later.

図4は、本実施の形態に係るアプリケーションノード202の構成例を示す。
OS(Operating System)411は、アプリケーションノード202で動作するアプリケーションプログラム414の実行管理を行う。
アプリケーションプログラム414は、CPUコア101により実行されるアプリケーションプログラムである。
1つのアプリケーションノード202に複数のアプリケーションプログラム414が存在してもよい。
IO制御インタフェースプログラム413は、IO制御のインタフェースとして機能する。
ノード通信制御プログラム412は、ノード間の要求の伝達及び通知を行う。
OS411、ノード通信制御プログラム412、IO制御インタフェースプログラム413及びアプリケーションプログラム414が、アプリケーションノード202におけるソフトウェア303(図3)である。
アプリケーションノード202に含まれるCPUコア101は、複数のCPUコアの中からアプリケーションプログラム414の実行用に選択されたれたCPUコアであり、アプリケーションCPUの例に相当する。
FIG. 4 shows a configuration example of the application node 202 according to the present embodiment.
An OS (Operating System) 411 performs execution management of the application program 414 operating on the application node 202.
The application program 414 is an application program executed by the CPU core 101.
A plurality of application programs 414 may exist in one application node 202.
The IO control interface program 413 functions as an IO control interface.
The node communication control program 412 transmits and notifies a request between nodes.
The OS 411, the node communication control program 412, the IO control interface program 413, and the application program 414 are the software 303 (FIG. 3) in the application node 202.
The CPU core 101 included in the application node 202 is a CPU core selected for executing the application program 414 from among a plurality of CPU cores, and corresponds to an example of an application CPU.

図2のアプリケーションノード203は、アプリケーションノード202と同じ構成を持ち、処理内容が異なるアプリケーションプログラムを実行する。
つまり、アプリケーションノード203は、図4と同じ構成で、アプリケーションプログラム414の種類がアプリケーションノード202とは異なる。
また、アプリケーションノード202とアプリケーションノード203で動作するOS411は、互いに異なるOSであってもよい。
アプリケーションノード202のOS411とアプリケーションノード203のOS411が異なっていても、アプリケーションノード202及びアプリケーションノード203は、それぞれ、2つのOSで共通するフォーマットでIOデバイス111、112へのリクエスト(READリクエスト、WRITEリクエスト、IO Controlリクエスト)を連携ノード204、205を介してIOノード206、207に発行する。
IOノード206、207は、アプリケーションノード202、203のOS411が異なっていても、両アプリケーションノードからのリクエストを同じように処理することができる。
The application node 203 in FIG. 2 executes an application program having the same configuration as the application node 202 and having different processing contents.
That is, the application node 203 has the same configuration as that in FIG. 4, and the type of the application program 414 is different from the application node 202.
Further, the OS 411 operating on the application node 202 and the application node 203 may be different OSs.
Even if the OS 411 of the application node 202 is different from the OS 411 of the application node 203, each of the application node 202 and the application node 203 has a request (READ request, WRITE request) to the IO devices 111 and 112 in a format common to the two OSs. , IO Control request) is issued to the IO nodes 206 and 207 via the cooperation nodes 204 and 205.
Even if the OS nodes 411 of the application nodes 202 and 203 are different, the IO nodes 206 and 207 can process requests from both application nodes in the same way.

図5は、本実施の形態に係る連携ノード204の構成例を示す。
ノード間データ授受制御プログラム421はアプリケーションノード202及びアプリケーションノード203とIOノード206及びIOノード207の間のデータの受け渡しを管理する。
ノード間データ授受制御プログラム421が、連携ノード204におけるソフトウェア303(図3)である。
連携ノード204に含まれるCPUコア101は、アプリケーションノードのCPUコア101とIOノードのCPUコア101との間でデータ中継を行うCPUコアであり、データ中継CPUの例に相当する。
FIG. 5 shows a configuration example of the cooperation node 204 according to the present embodiment.
The inter-node data transfer control program 421 manages the data transfer between the application node 202 and the application node 203 and the IO node 206 and the IO node 207.
The inter-node data transfer control program 421 is the software 303 (FIG. 3) in the cooperation node 204.
The CPU core 101 included in the cooperation node 204 is a CPU core that relays data between the CPU core 101 of the application node and the CPU core 101 of the IO node, and corresponds to an example of a data relay CPU.

図2の連携ノード205は、連携ノード204と同じ構成を持つ。
つまり、連携ノード205は、図5と同じ構成を持つ。
The cooperation node 205 in FIG. 2 has the same configuration as the cooperation node 204.
That is, the cooperation node 205 has the same configuration as that in FIG.

図6は、本実施の形態に係るIOノード206の構成例を示す。
IOノード通信制御プログラム432は、ノード間の要求の伝達及び通知を行う。
IOデバイス制御プログラム431は、IOデバイス111の制御を行う。
IOノード通信制御プログラム432及びIOデバイス制御プログラム431が、IOノード206におけるソフトウェア303(図3)である。
なお、IOノード通信制御プログラム432及びIOデバイス制御プログラム431はデバイスドライバを構成する。
IOノード206に含まれるCPUコア101は、複数のCPUコアの中からデバイスドライバの実行用に選択されたれたCPUコアであり、デバイスドライバCPUの例に相当する。
FIG. 6 shows a configuration example of the IO node 206 according to the present embodiment.
The IO node communication control program 432 transmits and notifies a request between nodes.
The IO device control program 431 controls the IO device 111.
The IO node communication control program 432 and the IO device control program 431 are the software 303 (FIG. 3) in the IO node 206.
The IO node communication control program 432 and the IO device control program 431 constitute a device driver.
The CPU core 101 included in the IO node 206 is a CPU core selected for executing a device driver from among a plurality of CPU cores, and corresponds to an example of a device driver CPU.

なお、図2におけるIOノード207はIOノード206と同じ構成を持ち、処理内容が異なるIOノード通信制御プログラム432及びIOデバイス制御プログラム431を実行する。
つまり、IOノード207は、図6と同じ構成を持つが、IOデバイス112用のIOノード通信制御プログラム432及びIOデバイス制御プログラム431を実行する。
2 executes the IO node communication control program 432 and the IO device control program 431 having the same configuration as the IO node 206 and different processing contents.
That is, the IO node 207 has the same configuration as that in FIG. 6, but executes the IO node communication control program 432 and the IO device control program 431 for the IO device 112.

図7は、本実施の形態に係るマスタノード201の構成例を示す。   FIG. 7 shows a configuration example of the master node 201 according to the present embodiment.

起動処理プログラム441は、マルチコアSoC100を構成する各ノードの初期設定を行う。
より具体的には、起動処理プログラム441は、アプリケーションノード202、203を構成するCPUコア101を選択する。
つまり、アプリケーションノード202、203のアプリケーションプログラム414を実行させるCPUコア101を選択する。
そして、選択したCPUコア101にアプリケーションプログラム414の実行を指示する。
更に、起動処理プログラム441は、IOノード206、207を構成するCPUコア101を選択する。
つまり、IOノード206、207のデバイスドライバ(IOノード通信制御プログラム432及びIOデバイス制御プログラム431)を実行させるCPUコア101を選択する。
そして、選択したCPUコア101にデバイスドライバの実行を指示する。
連携ノード204、205についても同様に、起動処理プログラム441は、CPUコア101を選択し、選択したCPUコア101にノード間データ授受制御プログラム421の実行を指示する。
なお、CPUコア101が起動処理プログラム441を実行することにより、CPU選択部及び実行指示部の機能が実現される。
The activation processing program 441 performs initial setting of each node constituting the multicore SoC 100.
More specifically, the activation processing program 441 selects the CPU core 101 that constitutes the application nodes 202 and 203.
That is, the CPU core 101 that executes the application program 414 of the application nodes 202 and 203 is selected.
Then, the selected CPU core 101 is instructed to execute the application program 414.
Furthermore, the activation processing program 441 selects the CPU core 101 that constitutes the IO nodes 206 and 207.
That is, the CPU core 101 that executes the device drivers (IO node communication control program 432 and IO device control program 431) of the IO nodes 206 and 207 is selected.
Then, it instructs the selected CPU core 101 to execute the device driver.
Similarly, for the cooperation nodes 204 and 205, the activation processing program 441 selects the CPU core 101 and instructs the selected CPU core 101 to execute the inter-node data transfer control program 421.
The CPU core 101 executes the startup processing program 441, thereby realizing the functions of the CPU selection unit and the execution instruction unit.

ノード間通信制御プログラム442は、ノード間の要求の伝達及び通知を行う。
ノード管理プログラム443は、マルチコアSoC100中のノード全体の管理を行う。
より具体的には、ノード管理プログラム443は、ノード301ごとにCPUコア101の負荷状態を検出し、いずれかのノード301のCPUコア101の負荷状態が適正ではない場合に、当該ノード301に対して新たなCPUコア101を選択し、当該ノード301に新たなCPUコア101を追加する。
また、ノード管理プログラム443は、ノード301ごとにCPUコア101の応答状態を検出し、いずれかのノード301のCPUコア101の応答状態が適正ではない場合に、当該ノード301に対して新たなCPUコア101を選択し、当該ノード301に新たなCPUコア101を追加する。
CPUコア101が起動処理プログラム441を実行することにより、負荷状態検出部、応答状態検出部及びCPU選択部の機能が実現される。
The inter-node communication control program 442 transmits and notifies a request between nodes.
The node management program 443 manages the entire node in the multi-core SoC 100.
More specifically, the node management program 443 detects the load state of the CPU core 101 for each node 301, and when the load state of the CPU core 101 of any one of the nodes 301 is not appropriate, The new CPU core 101 is selected, and the new CPU core 101 is added to the node 301.
Further, the node management program 443 detects the response state of the CPU core 101 for each node 301, and when the response state of the CPU core 101 of any one of the nodes 301 is not appropriate, a new CPU is sent to the node 301. The core 101 is selected, and a new CPU core 101 is added to the node 301.
When the CPU core 101 executes the activation processing program 441, functions of a load state detection unit, a response state detection unit, and a CPU selection unit are realized.

なお、起動処理プログラム441、ノード間通信制御プログラム442及びノード管理プログラム443が、マスタノード201におけるソフトウェア303(図3)である。   The activation processing program 441, the inter-node communication control program 442, and the node management program 443 are the software 303 (FIG. 3) in the master node 201.

図8は、本実施の形態に係るROM121に保存されているデータの例を示す。
ブートローダイメージ511は、システム起動時にマスタノード201が実行する起動処理プログラム441のイメージファイルである。
システム構成情報512は、マルチコアSoC100全体のノード構成を記述した情報である。
アプリケーションノードイメージ513は、アプリケーションノード202、203が実行するOS411、ノード通信制御プログラム412、IO制御インタフェースプログラム413及びアプリケーションプログラム414のイメージファイルである。
連携ノードイメージ514は、連携ノード204、205が実行するノード間データ授受制御プログラム421のイメージファイルである。
IOノードイメージ515は、IOノード206、207が実行するIOノード通信制御プログラム432及びIOデバイス制御プログラム431のイメージファイルである。
FIG. 8 shows an example of data stored in the ROM 121 according to the present embodiment.
The boot loader image 511 is an image file of a start processing program 441 executed by the master node 201 when the system is started.
The system configuration information 512 is information describing the node configuration of the entire multi-core SoC 100.
The application node image 513 is an image file of the OS 411, the node communication control program 412, the IO control interface program 413, and the application program 414 executed by the application nodes 202 and 203.
The cooperation node image 514 is an image file of the inter-node data transfer control program 421 executed by the cooperation nodes 204 and 205.
The IO node image 515 is an image file of the IO node communication control program 432 and the IO device control program 431 executed by the IO nodes 206 and 207.

図9は、本実施の形態に係るRAM122の保存領域を示す。
個別メモリ領域521は、ノードごとに個別に割り当てられ、ノードごとに個別に使用されるメモリ領域である。
ノード用ワークメモリ523は、個別メモリ領域521中にある各ノードが個別に使用するメモリ領域である。
共有メモリ領域522は、全ノードに共通に使用されるメモリ領域である。
処理管理テーブル524は、共有メモリ領域522に配置され、ノード間の通信内容を管理するテーブルである。
メモリプール525は、データ転送に使用するメモリ領域を要求に従い各ノードに割り当てるために確保された領域である。
一時バッファ526は、データ転送のために各ノードに一時的に割り当てられるメモリ領域である。
メモリプール525は、処理要求を発行したときに各ノードからマスタノード201に対して要求し、マスタノード201がMMU(メモリマネジメントユニット)等でメモリ空間を管理し、各ノードに一時バッファ526を割り当てる。
FIG. 9 shows a storage area of the RAM 122 according to the present embodiment.
The individual memory area 521 is a memory area that is individually assigned to each node and used individually for each node.
The node work memory 523 is a memory area used individually by each node in the individual memory area 521.
The shared memory area 522 is a memory area used in common for all nodes.
The process management table 524 is a table that is arranged in the shared memory area 522 and manages communication contents between nodes.
The memory pool 525 is an area reserved for allocating a memory area used for data transfer to each node according to a request.
The temporary buffer 526 is a memory area temporarily allocated to each node for data transfer.
The memory pool 525 requests the master node 201 from each node when issuing a processing request, the master node 201 manages the memory space with an MMU (memory management unit) or the like, and allocates a temporary buffer 526 to each node. .

図10は、図9に示す処理管理テーブル524の構成例を示す。
処理管理テーブル524は、ノード間の通信(トランザクション)を表形式で管理する。
処理番号531の欄には、処理要求を識別するための処理番号が設定される。
要求元ID532の欄には、処理要求の発行元のノードIDが設定される。
要求先ID533の欄には、処理要求の実行対象のノードIDが設定される。
処理コマンド534の欄には、処理要求の内容が設定される。
コマンドパラメータ535の欄には、処理に付随するパラメータが設定される。
バッファオフセット536の欄には、処理に使用するデータの設定先がメモリプール上のオフセット値で設定される。
要求領域サイズ537の欄には、処理に使用するデータの領域サイズが設定される。
処理状態538の欄には、トランザクションの処理状態が設定される。
FIG. 10 shows a configuration example of the process management table 524 shown in FIG.
The process management table 524 manages communication (transactions) between nodes in a table format.
A processing number for identifying a processing request is set in the processing number 531 column.
In the request source ID 532 column, the node ID of the processing request issue source is set.
In the field of request destination ID 533, the node ID of the execution target of the processing request is set.
The content of the processing request is set in the processing command 534 column.
Parameters associated with the process are set in the command parameter 535 column.
In the column of the buffer offset 536, a setting destination of data used for processing is set as an offset value on the memory pool.
In the field of requested area size 537, the area size of data used for processing is set.
In the processing status 538 column, the processing status of the transaction is set.

図11は、図10の処理管理テーブル524の処理コマンド534の欄に設定される処理コマンドの例を示す。
READは、要求先に対してデータ読み出し操作を要求する処理コマンドである。
WRITEは、要求先に対してデータの書き込み操作を要求する処理コマンドである。
IO Controlは、要求先に対してREAD/WRITE以外の操作を要求する際の処理コマンドである。
これらREAD、WRITE、IO Controlは、主にIOノードに対する要求コマンドである。
Health Checkは、マスタノードから各ノードに対して、応答性を確認するための応用要求を発行する際に使用する処理コマンドである。
Add CPUは、ノードに対して予備CPUコア208の追加を要求するために、マスタノード201から発行される処理コマンドである。
Delete CPUは、ノードで使用するCPUの削減を要求するために、マスタノード201から発行される処理コマンドである。
FIG. 11 shows an example of processing commands set in the processing command 534 column of the processing management table 524 of FIG.
READ is a processing command for requesting a data read operation to the request destination.
WRITE is a processing command for requesting a data write operation to the request destination.
IO Control is a processing command for requesting an operation other than READ / WRITE to the request destination.
These READ, WRITE, and IO Control are request commands mainly for the IO node.
Health Check is a processing command used when issuing an application request for confirming responsiveness from the master node to each node.
The Add CPU is a processing command issued from the master node 201 in order to request the node to add the spare CPU core 208.
The Delete CPU is a processing command issued from the master node 201 in order to request reduction of the CPU used in the node.

図12は、図10の処理管理テーブル524の処理状態538の欄に設定される処理状態(各トランザクションにおける処理状態)の例を示す。
「登録中」は、処理管理テーブル524に新規レコードを追加する際に設定される状態である。
「未処理」は、要求元がトランザクション開始時に、処理管理テーブル524に登録した際に設定される状態である。
「処理中」は、要求先が処理を受け付けた際に設定される状態である。
「完了」は、要求元が処理を完了し必要なデータが共有メモリ上に用意できた時の状態である。
「エラー」は、トランザクション実行時にエラーが発生したときに設定される状態である。
この「エラー」は、IOアクセスでエラーが発生した場合や、トランザクション発行時にメモリプールから必要サイズのメモリが確保できない状況で設定される。
FIG. 12 shows an example of the processing state (processing state in each transaction) set in the processing state 538 column of the processing management table 524 in FIG.
“Registering” is a state set when a new record is added to the process management table 524.
“Unprocessed” is a state that is set when the request source is registered in the process management table 524 at the start of the transaction.
“Processing” is a state set when the request destination receives the processing.
“Completed” is a state when the request source completes the processing and necessary data is prepared in the shared memory.
“Error” is a state set when an error occurs during transaction execution.
This “error” is set when an error occurs during IO access or when a memory of the required size cannot be secured from the memory pool when a transaction is issued.

図13は、図10の処理管理テーブル524のコマンドパラメータ535の欄に設定されるコマンドパラメータの例を示す。
「READデータサイズ」は、READ操作の際にIOデバイスから実際に読み出すデータサイズである。
「READデータ保存先」は、READ操作の際に読み出したデータを保存する個別メモリ領域521内のノード用ワークメモリ523の物理アドレスである。
「WRITEデータサイズ」は、WRITE操作の際にIOデバイスへ実際に書き込むデータサイズである。
「WRITEデータ保存先」は、WRITE操作の際に書き込むデータが存際する個別メモリ領域521内のノード用ワークメモリ523の物理アドレスである。
「IO Controlパラメータ」はIO Controlコマンド実行時に必要な拡張パラメータが保管される個別メモリ領域521内のノード用ワークメモリ523の物理アドレスである。
FIG. 13 shows an example of command parameters set in the command parameter 535 column of the process management table 524 of FIG.
The “READ data size” is a data size that is actually read from the IO device during the READ operation.
The “READ data storage destination” is a physical address of the node work memory 523 in the individual memory area 521 in which the data read in the READ operation is stored.
“WRITE data size” is the data size that is actually written to the IO device during the WRITE operation.
The “WRITE data storage destination” is a physical address of the node work memory 523 in the individual memory area 521 where data to be written in the WRITE operation exists.
The “IO control parameter” is a physical address of the node work memory 523 in the individual memory area 521 in which extended parameters required when the IO control command is executed are stored.

次に、本実施の形態に係る制御装置の動作例について説明する。
図24は、アプリケーションプログラムがIOアクセスする際の、処理手順を表すシーケンス図である。
図24のシーケンス図を元に以下動作を示す。
なお、以下では、プログラム(例えばアプリケーションプログラム414)が「〜する」という説明を行うが、厳密には、CPUコア101がプログラム(例えばアプリケーションプログラム414)を実行して「〜する」という意味である。
Next, an operation example of the control device according to the present embodiment will be described.
FIG. 24 is a sequence diagram showing a processing procedure when an application program makes an IO access.
The following operation is shown based on the sequence diagram of FIG.
In the following description, the program (for example, the application program 414) will be described as “to do”, but strictly speaking, it means that the CPU core 101 executes the program (for example, the application program 414) and “to do”. .

(1)アプリケーションがIOデバイスへREAD操作を行う際の動作
[アプリケーションノード動作]
ここでは、アプリケーションノード202のアプリケーションプログラム414がIOデバイス111に対してREAD操作を行う場合を想定する。
アプリケーションプログラム414がOS411を介してIO制御インタフェースプログラム413にREAD要求を行うと(7001)、要求内容をノード通信制御プログラム412が、処理管理テーブル524のリストに追加し、要求元ID532、要求先ID533、処理コマンド534、コマンドパラメータ535、要求領域サイズ537を設定する。
更に、ノード通信制御プログラム412は、処理番号531に新規追加を示す値を設定(図10ではNEWと表記)する。
また、ノード通信制御プログラム412は、処理状態538に「登録中」を設定し、ノード通信制御プログラム412からマスタノード201へノード間割り込みを発行する(7002)。
(1) Operation when application performs READ operation to IO device [application node operation]
Here, it is assumed that the application program 414 of the application node 202 performs a READ operation on the IO device 111.
When the application program 414 makes a READ request to the IO control interface program 413 via the OS 411 (7001), the node communication control program 412 adds the request content to the list of the processing management table 524, and requests source ID 532 and request destination ID 533. , Processing command 534, command parameter 535, and requested area size 537 are set.
Further, the node communication control program 412 sets a value indicating new addition to the process number 531 (indicated as NEW in FIG. 10).
The node communication control program 412 sets “registering” in the processing state 538, and issues an inter-node interrupt from the node communication control program 412 to the master node 201 (7002).

[マスタノード動作]
マスタノード201ではノード間通信制御プログラム442が動作し、処理管理テーブル524をスキャンして、処理番号に新規追加を示す値(図10ではNEW)を見つけた場合、要求領域サイズ537で示されるメモリ領域(一時バッファ526)をメモリプール525から確保する(7003)。
一時バッファ526の確保に成功した場合に、ノード間通信制御プログラム442は、一時バッファ526のメモリプール内のアドレスオフセット値(バッファオフセット)を処理管理テーブル524のバッファオフセット536に設定する。
また、ノード間通信制御プログラム442は、処理状態538に「未処理」を設定する。
更に、ノード間通信制御プログラム442は、処理番号531にトランザクションを識別できるトランザクションID値を設定し、マスタノード201から、要求元のアプリケーションノード202にノード間割り込みを発行(7004)するととともに、転送処理を担当する連携ノードを決定し、その連携ノードにノード間割り込みを発行(7005)する。
[Master node operation]
When the master node 201 operates the inter-node communication control program 442 and scans the process management table 524 and finds a value indicating new addition (NEW in FIG. 10), the memory indicated by the requested area size 537 An area (temporary buffer 526) is secured from the memory pool 525 (7003).
When the temporary buffer 526 is successfully secured, the inter-node communication control program 442 sets the address offset value (buffer offset) in the memory pool of the temporary buffer 526 in the buffer offset 536 of the process management table 524.
The inter-node communication control program 442 sets “unprocessed” in the processing state 538.
Further, the inter-node communication control program 442 sets a transaction ID value that can identify the transaction in the process number 531, issues an inter-node interrupt from the master node 201 to the requesting application node 202 (7004), and transfers processing. The cooperative node in charge of this is determined, and an inter-node interrupt is issued to the cooperative node (7005).

[アプリケーションノード動作]
マスタノード201から割り込み(7004)を受けたアプリケーションノード202は、ノード通信制御プログラム412が処理管理テーブル524の処理番号を取得し、ノード内に保管して、ノード通信制御プログラム412の処理は割り込み待ち(7012)状態となる。
処理番号531に設定するトランザクションID値は、他のトランザクションと識別できるような、固有の値を設定し、UUID(Universally Unique Identifier)を用いてもよい。
また、マスタノード201が転送処理を担当する連携ノードを決定する方法として、複数の連携ノードに順番に処理を与えるラウンドロビン方式や、連携ノードの処理負荷から処理を担当する連携ノードを決定してもよい。
[Application node operation]
Upon receiving an interrupt (7004) from the master node 201, the node communication control program 412 acquires the process number in the process management table 524, and the application node 202 stores the process number in the node. (7012) is entered.
The transaction ID value set in the process number 531 may be set to a unique value that can be identified from other transactions, and a UUID (Universally Unique Identifier) may be used.
In addition, as a method for determining a cooperation node in which the master node 201 is in charge of transfer processing, a round robin method in which processing is sequentially performed on a plurality of cooperation nodes, or a cooperation node in charge of processing is determined from the processing load of the cooperation node. Also good.

[連携ノード動作]
マスタノード201から割り込み(7005)を受けた連携ノード(たとえば連携ノード204)では、ノード間データ授受制御プログラム421が処理管理テーブル524を参照し、処理状態538に「未処理」があることを見つけると、処理状態538に「処理中」を設定する。
また、ノード間データ授受制御プログラム421は、コマンドパラメータ543に設定されるREADデータサイズを読み出し、処理コマンド534がREADであることを判断する。
そして、ノード間データ授受制御プログラム421は、要求先ID533にあるノードに対してノード間割り込み(7007)で通知する(この場合はIOノード206)。
[Linked node operation]
In a cooperation node (for example, cooperation node 204) that has received an interrupt (7005) from the master node 201, the inter-node data transfer control program 421 refers to the process management table 524 and finds that “unprocessed” exists in the process state 538. Then, “processing in progress” is set in the processing state 538.
Further, the inter-node data transfer control program 421 reads the READ data size set in the command parameter 543 and determines that the processing command 534 is READ.
Then, the inter-node data transfer control program 421 notifies the node at the request destination ID 533 with an inter-node interrupt (7007) (in this case, the IO node 206).

[IOノード動作]
ノード間割り込み(7007)を受けたIOノード206では、IOノード通信制御プログラム432が処理管理テーブル524を参照し、自ノード宛処理で「処理中」状態のリストに記載される内容を実行する。
ここでの例では処理コマンド534に記載されるREADコマンドと、コマンドパラメータ535に設定される543で示した構造体からREADデータサイズ、バッファオフセット536を読み出し、IOデバイス制御プログラム431を起動し、IOデバイス111に対してREAD制御を行う。
IOデバイス111に対するREAD操作により読み出したデータは、一時バッファ526に保存される。
次に、IOノード通信制御プログラム432は、処理状態538に「完了」を設定してマスタノード201にノード間割り込みを発行する(7008)。
[IO node operation]
In the IO node 206 that has received the inter-node interrupt (7007), the IO node communication control program 432 refers to the process management table 524 and executes the contents described in the “processing” state list in the process directed to the own node.
In this example, the READ data size and the buffer offset 536 are read from the READ command described in the processing command 534 and the structure indicated by 543 set in the command parameter 535, the IO device control program 431 is started, and the IO READ control is performed on the device 111.
Data read by the READ operation on the IO device 111 is stored in the temporary buffer 526.
Next, the IO node communication control program 432 sets “complete” in the processing state 538 and issues an inter-node interrupt to the master node 201 (7008).

[マスタノード動作]
ノード間割り込み(7008)を受けたマスタノード201では、ノード間通信制御プログラム442が処理管理テーブル524を参照し、処理状態538が「完了」であるリストを参照し、転送処理を担当する連携ノードを決定して、その連携ノードにノード間割り込みを発行(7009)する。
[Master node operation]
In the master node 201 that has received the inter-node interrupt (7008), the inter-node communication control program 442 refers to the process management table 524, refers to the list in which the process state 538 is “completed”, and cooperates with the transfer process. And issues an inter-node interrupt to the cooperation node (7009).

[連携ノード動作]
割込み(7009)を受けた連携ノードでは、ノード間データ授受制御プログラム421が処理管理テーブル524を参照し、処理状態538が「完了」であるリストを確認する。
処理コマンド534がREADの場合、コマンドパラメータ535、バッファオフセット536の情報から、一時バッファ526とノード用ワークメモリ523の間のデータ転送(7010)を行い、データ転送完了後、要求元ID532に設定されているノードに対して割り込みを発行(7011)する。
[Linked node operation]
In the cooperation node that has received the interrupt (7009), the inter-node data transfer control program 421 refers to the process management table 524 and confirms a list in which the process state 538 is “complete”.
When the processing command 534 is READ, data transfer (7010) is performed between the temporary buffer 526 and the node work memory 523 from the information of the command parameter 535 and the buffer offset 536, and after the data transfer is completed, the request source ID 532 is set. An interrupt is issued to the current node (7011).

[アプリケーションノード動作]
割込み(7011)を受けたアプリケーションノード202では、ノード通信制御プログラム412が処理管理テーブル524を参照し、保存した処理番号のうち処理状態538が「完了」であるものを見つけ、IO制御インタフェースプログラム413へ結果を通知する。
その後、ノード通信制御プログラム412は、処理管理テーブル524からリストを削除する。
[Application node operation]
In the application node 202 that has received the interrupt (7011), the node communication control program 412 refers to the process management table 524, finds the stored process number whose process state 538 is “completed”, and the IO control interface program 413. Notify the result to.
Thereafter, the node communication control program 412 deletes the list from the process management table 524.

(2)アプリケーションがIOデバイスへWRITE操作を行う際の動作
[アプリケーションノード動作]
ここでは、アプリケーションノード202のアプリケーションプログラム414がIOデバイス111に対してWRITE操作を行う場合を想定する。
アプリケーションプログラム414は、OS411を介してIO制御インタフェースプログラム413にWRITE要求を行うと(7001)、ノード通信制御プログラム412が要求内容を処理管理テーブル524のリストに追加し、要求元ID532、要求先ID533、処理コマンド534、コマンドパラメータ535、要求領域サイズ537を設定し、更に処理番号531に新規追加を示す値を設定する。
また、ノード通信制御プログラム412は、処理状態538に「登録中」を設定する。
そして、ノード通信制御プログラム412からマスタノード201へノード間割り込みを発行する(7002)。
(2) Operation when application performs WRITE operation to IO device [application node operation]
Here, it is assumed that the application program 414 of the application node 202 performs a WRITE operation on the IO device 111.
When the application program 414 makes a WRITE request to the IO control interface program 413 via the OS 411 (7001), the node communication control program 412 adds the request content to the list of the processing management table 524, and requests source ID 532 and request destination ID 533. , A processing command 534, a command parameter 535, and a requested area size 537 are set, and a value indicating new addition is set in the processing number 531.
Further, the node communication control program 412 sets “registering” in the processing state 538.
Then, an inter-node interrupt is issued from the node communication control program 412 to the master node 201 (7002).

[マスタノード動作]
マスタノード201ではノード間通信制御プログラム442が動作し、処理管理テーブル524をスキャンして、処理番号に新規リストを見つけた場合、要求領域サイズ537で示されるメモリ領域(一時バッファ526)をメモリプール525から確保する(7003)。
一時バッファ526の確保に成功した場合に、ノード間通信制御プログラム442は、一時バッファ526のメモリプール内のアドレスオフセット値(バッファオフセット)を処理管理テーブル524のバッファオフセット536に設定する。
また、ノード間通信制御プログラム442は、処理状態538に「未処理」を設定する。
更に、ノード間通信制御プログラム442は、処理番号531にトランザクションを識別できるトランザクションID値を設定し、マスタノード201から、要求元のアプリケーションノード202にノード間割り込みを発行(7004)するととともに、転送処理を担当する連携ノードを決定し、その連携ノードにノード間割り込みを発行(7005)する。
[Master node operation]
In the master node 201, the inter-node communication control program 442 operates, and when the process management table 524 is scanned and a new list is found in the process number, the memory area (temporary buffer 526) indicated by the request area size 537 is stored in the memory pool. Secure from 525 (7003).
When the temporary buffer 526 is successfully secured, the inter-node communication control program 442 sets the address offset value (buffer offset) in the memory pool of the temporary buffer 526 in the buffer offset 536 of the process management table 524.
The inter-node communication control program 442 sets “unprocessed” in the processing state 538.
Further, the inter-node communication control program 442 sets a transaction ID value that can identify the transaction in the process number 531, issues an inter-node interrupt from the master node 201 to the requesting application node 202 (7004), and transfers processing. The cooperative node in charge of this is determined, and an inter-node interrupt is issued to the cooperative node (7005).

[アプリケーションノード動作]
マスタノード201から割り込み(7004)を受けたアプリケーションノード202は、ノード通信制御プログラム412が処理管理テーブル524の処理番号を取得し、ノード内に保管して、ノード通信制御プログラム412の処理は割込み待ち状態へ遷移(7012)する。
[Application node operation]
Upon receiving an interrupt (7004) from the master node 201, the node communication control program 412 acquires the process number of the process management table 524, and the application node 202 stores the process number in the node. The process of the node communication control program 412 waits for an interrupt. Transition to a state (7012).

[連携ノード動作]
マスタノード201から割り込み(7005)を受けた連携ノード(たとえば連携ノード204)では、ノード間データ授受制御プログラム421が処理管理テーブル524を参照し、処理状態538に「未処理」があることを見つけると、処理状態538に「処理中」を設定する。
また、ノード間データ授受制御プログラム421は、コマンドパラメータ543に設定されるWRITEデータサイズを読み出し、処理コマンド534がWRITEであることを判断する。
そして、ノード間データ授受制御プログラム421は、コマンドパラメータ543(図13)の構造体で保存されるWRITEデータ保存先から、バッファオフセット536で示される一時バッファ526の領域へデータをCOPY(7006)する。
そして、ノード間データ授受制御プログラム421は、要求先ID533にあるノードに対してノード間割り込みで処理要求(7007)を行う(この場合はIOノード206)。
[Linked node operation]
In a cooperation node (for example, cooperation node 204) that has received an interrupt (7005) from the master node 201, the inter-node data transfer control program 421 refers to the process management table 524 and finds that “unprocessed” exists in the process state 538. Then, “processing in progress” is set in the processing state 538.
The inter-node data transfer control program 421 reads the WRITE data size set in the command parameter 543, and determines that the processing command 534 is WRITE.
Then, the inter-node data transfer control program 421 copies (7006) data from the WRITE data storage destination stored in the structure of the command parameter 543 (FIG. 13) to the temporary buffer 526 area indicated by the buffer offset 536. .
Then, the inter-node data transfer control program 421 makes a processing request (7007) to the node at the request destination ID 533 with an inter-node interrupt (in this case, the IO node 206).

[IOノード動作]
ノード間割り込み(7007)を受けたIOノード206では、IOノード通信制御プログラム432が処理管理テーブル524を参照し、自ノード宛処理で「処理中」状態のリストに記載される内容を実行する。
ここでの例では処理コマンド541(図11)に記載されるWRITEコマンドと、コマンドパラメータ543(図13)の構造体のWRITEデータサイズ、バッファオフセット536を読み出し、IOデバイス制御プログラム431を起動し、IOデバイス111に対してWRITE制御を行う。
IOデバイス111へのWRITE操作を完了すると、IOノード通信制御プログラム432は、処理状態538に「完了」を設定してマスタノード201にノード間割り込みを発行(7008)する。
[IO node operation]
In the IO node 206 that has received the inter-node interrupt (7007), the IO node communication control program 432 refers to the process management table 524 and executes the contents described in the “processing” state list in the process directed to the own node.
In this example, the WRITE command described in the processing command 541 (FIG. 11), the WRITE data size of the structure of the command parameter 543 (FIG. 13), and the buffer offset 536 are read, the IO device control program 431 is started, Write control is performed on the IO device 111.
When the WRITE operation to the IO device 111 is completed, the IO node communication control program 432 sets “complete” in the processing state 538 and issues an inter-node interrupt to the master node 201 (7008).

[マスタノード動作]
ノード間割り込み(7008)を受けたマスタノード201では、ノード間通信制御プログラム442が処理管理テーブル524を参照し、処理状態538が「完了」であるリストを参照し、転送処理を担当する連携ノードを決定して、その連携ノードにノード間割り込みを発行(7009)する。
[Master node operation]
In the master node 201 that has received the inter-node interrupt (7008), the inter-node communication control program 442 refers to the process management table 524, refers to the list in which the process state 538 is “completed”, and cooperates with the transfer process. And issues an inter-node interrupt to the cooperation node (7009).

[連携ノード動作]
割込み(7009)を受けた連携ノードでは、ノード間データ授受制御プログラム421が処理管理テーブル524を参照し、処理状態538が「完了」であるリストを確認する。
処理コマンド534がWRITEである場合、要求元ID532に設定されているノードに対して割り込みを発行(7011)する。
[Linked node operation]
In the cooperation node that has received the interrupt (7009), the inter-node data transfer control program 421 refers to the process management table 524 and confirms a list in which the process state 538 is “complete”.
If the processing command 534 is WRITE, an interrupt is issued to the node set in the request source ID 532 (7011).

[アプリケーションノード動作]
割込み(7011)を受けたアプリケーションノード202では、ノード通信制御プログラム412が処理管理テーブル524を参照し、保存した処理番号のうち処理状態538が「完了」であるものを見つけ、IO制御インタフェースプログラム413へ結果を通知する。
その後、ノード通信制御プログラム412は、処理管理テーブル524からリストを削除する。
[Application node operation]
In the application node 202 that has received the interrupt (7011), the node communication control program 412 refers to the process management table 524, finds the stored process number whose process state 538 is “completed”, and the IO control interface program 413. Notify the result to.
Thereafter, the node communication control program 412 deletes the list from the process management table 524.

(3)IOノード間、アプリケーションノード間の転送
以上ではアプリケーションノードとIOノード間のコマンドの手順を示したが、IOノード間や、アプリケーションノード間でも同様の操作を行うことができる。
(3) Transfer between IO Nodes and Application Nodes Although the command procedure between the application nodes and the IO nodes has been described above, the same operation can be performed between IO nodes or between application nodes.

(4)起動処理
制御装置の起動時の動作について説明する。
前述したように、図8はROM121に保存される情報を示している。
制御装置の起動時にはマスタノード201のみが動作し、ブートローダイメージ511を実行する。
ブートローダイメージ511には、マルチコアSoC100に搭載される複数のCPUコア101を、アプリケーションノード202、203、連携ノード204、205、IOノード206、207の何れに構成するかを示すシステム構成情報512(図14)が含まれる。
マスタノード201の起動処理プログラム441は、システム構成情報512を読み出し、各ノードを構成する。
つまり、起動処理プログラム441は、システム構成情報512に従い、アプリケーションノードに対して、該当するCPUコア101を選択し、選択したCPUコア101にアプリケーションプログラム414の実行を指示し、当該CPUコア101にアプリケーションプログラム414を実行させる。
図2の例では、マルチコアSoC100には、アプリケーションノード202とアプリケーションノード203が存在するので、起動処理プログラム441は、アプリケーションノード202及びアプリケーションノード203の各々に対して、CPUコア101を選択し、選択したCPUコア101にアプリケーションプログラム414を実行させる。
また、起動処理プログラム441は、システム構成情報512に従い、連携ノードに対して、該当するCPUコア101を選択し、選択したCPUコア101にノード間データ授受制御プログラム421の実行を指示し、当該CPUコア101にノード間データ授受制御プログラム421を実行させる。
図2の例では、マルチコアSoC100には、連携ノード204と連携ノード205が存在するので、起動処理プログラム441は、連携ノード204及び連携ノード205の各々に対して、CPUコア101を選択し、選択したCPUコア101にノード間データ授受制御プログラム421を実行させる。
また、起動処理プログラム441は、システム構成情報512に従い、IOノードに対して、該当するCPUコア101を選択し、選択したCPUコア101にデバイスドライバの実行を指示し、当該CPUコア101にデバイスドライバを実行させる。
図2の例では、マルチコアSoC100には、IOノード206とIOノード207が存在するので、起動処理プログラム441は、IOノード206及びIOノード207の各々に対して、CPUコア101を選択し、選択したCPUコア101にデバイスドライバを実行させる。
(4) Start-up process The operation at the time of start-up of the control device will be described.
As described above, FIG. 8 shows information stored in the ROM 121.
Only the master node 201 operates when the control device is activated, and executes the boot loader image 511.
In the boot loader image 511, system configuration information 512 indicating whether the plurality of CPU cores 101 mounted on the multi-core SoC 100 are configured as the application nodes 202 and 203, the cooperation nodes 204 and 205, and the IO nodes 206 and 207 (FIG. 14).
The activation processing program 441 of the master node 201 reads the system configuration information 512 and configures each node.
In other words, the activation processing program 441 selects the corresponding CPU core 101 for the application node in accordance with the system configuration information 512, instructs the selected CPU core 101 to execute the application program 414, and instructs the CPU core 101 to execute the application program 414. The program 414 is executed.
In the example of FIG. 2, since the application node 202 and the application node 203 exist in the multi-core SoC 100, the activation processing program 441 selects the CPU core 101 for each of the application node 202 and the application node 203, and selects The CPU core 101 is caused to execute the application program 414.
Further, the activation processing program 441 selects the corresponding CPU core 101 for the cooperation node according to the system configuration information 512, instructs the selected CPU core 101 to execute the inter-node data transfer control program 421, and the CPU The core 101 is caused to execute the inter-node data transfer control program 421.
In the example of FIG. 2, since the cooperation node 204 and the cooperation node 205 exist in the multi-core SoC 100, the activation processing program 441 selects the CPU core 101 for each of the cooperation node 204 and the cooperation node 205, and selects them. The CPU core 101 is made to execute the inter-node data transfer control program 421.
Further, the activation processing program 441 selects the corresponding CPU core 101 for the IO node according to the system configuration information 512, instructs the selected CPU core 101 to execute the device driver, and instructs the CPU core 101 to execute the device driver. Is executed.
In the example of FIG. 2, since the multi-core SoC 100 includes the IO node 206 and the IO node 207, the activation processing program 441 selects and selects the CPU core 101 for each of the IO node 206 and the IO node 207. The CPU driver 101 executes the device driver.

アプリケーションプログラム414の実行が指示されたCPUコア101(アプリケーションノードの役割を割り当てられたCPUコア)は、アプリケーションノードイメージ513を起動してアプリケーションノード202(203)を構成する。
前述したように、アプリケーションノードイメージ513は、図4に示した、OS411やアプリケーションプログラム414等の構成要素を含む。
ノード間データ授受制御プログラム421の実行が指示されたCPUコア101(連携ノードの役割を割り当てたCPUコア)は、連携ノードイメージ514を起動して連携ノード204(205)を構成する。
前述したように、連携ノードイメージ514は、図5に示すノード間データ授受制御プログラム421を含む。
デバイスドライバの実行が指示されたCPUコア101(IOノードの役割を割り当てたCPUコア)は、IOノードイメージ515を起動して連携ノード204(205)を構成する。
前述したように、IOノードイメージ515は、図6に示すIOノード通信制御プログラム432及びIOデバイス制御プログラム431を含む。
The CPU core 101 (CPU core assigned the role of an application node) instructed to execute the application program 414 activates the application node image 513 to configure the application node 202 (203).
As described above, the application node image 513 includes components such as the OS 411 and the application program 414 shown in FIG.
The CPU core 101 (CPU core to which the role of the cooperation node is assigned) instructed to execute the inter-node data transfer control program 421 activates the cooperation node image 514 and configures the cooperation node 204 (205).
As described above, the cooperative node image 514 includes the inter-node data transfer control program 421 shown in FIG.
The CPU core 101 (CPU core to which the role of the IO node is assigned) instructed to execute the device driver activates the IO node image 515 to configure the cooperation node 204 (205).
As described above, the IO node image 515 includes the IO node communication control program 432 and the IO device control program 431 shown in FIG.

(6)健全性確保、システム負荷調整
マスタノード201のノード管理プログラム443は、アプリケーションノード202、203、連携ノード204、205やIOノード206、207に対して、一定間隔で健全性の確認のため応答要求を発行する。
そして、応答時間が規定時間から遅れる状態が続く場合は、ノード管理プログラム443は、当該ノードに対して予備CPUコア208の追加割り当てを行い、複数のCPUコア101で処理させることでスループットを向上させる。
一定間隔で応答を確認する動作において、各ノードからシステム負荷状態をマスタノード201に応答で返すことにより、ノード管理プログラム443が各ノードにおける負荷状態が確認でき、ノード管理プログラム443は、負荷状態が低い状態が続くノードから、当該ノードに割り当てているCPUコア101を分離して、予備CPUコア208とすることもできる。
(6) Ensuring soundness and system load adjustment The node management program 443 of the master node 201 is used to check the health of the application nodes 202 and 203, the cooperative nodes 204 and 205, and the IO nodes 206 and 207 at regular intervals. Issue a response request.
If the response time continues to be delayed from the specified time, the node management program 443 additionally allocates the spare CPU core 208 to the node and causes the plurality of CPU cores 101 to perform processing to improve throughput. .
In the operation of confirming the response at a fixed interval, the node management program 443 can confirm the load state in each node by returning the system load state from each node to the master node 201 as a response. It is also possible to separate the CPU core 101 assigned to the node from the node where the low state continues to be a spare CPU core 208.

また、アプリケーションノード202、203とIOノード206、207間の通信量が増え、連携ノード204、205のスループットが低下する状態をマスタノード201が検知した場合に、ノード管理プログラム443が予備CPUコア208を使用して連携ノードを新たに追加することで、アプリケーションノードとIOノード間の通信経路を増やし、スループットを向上させることもできる。
この場合、利用可能な連携ノードの一覧は、マスタノード201で管理する。
Further, when the master node 201 detects a state in which the communication amount between the application nodes 202 and 203 and the IO nodes 206 and 207 increases and the throughput of the cooperation nodes 204 and 205 decreases, the node management program 443 sets the spare CPU core 208. By adding a new cooperation node using the, it is possible to increase the communication path between the application node and the IO node and improve the throughput.
In this case, a list of available cooperation nodes is managed by the master node 201.

次に、図15〜図23にて各ノードの動作を示す。   Next, the operation of each node is shown in FIGS.

図15及び図16は、アプリケーションノード202のIO制御インタフェースプログラム413及びノード通信制御プログラム412の処理内容を示したものである。
アプリケーションノード203での処理内容も同様である。
15 and 16 show the processing contents of the IO control interface program 413 and the node communication control program 412 of the application node 202.
The processing contents in the application node 203 are the same.

アプリケーションノード202において、アプリケーションプログラム414がIOアクセスを行う場合、OS411を介して、IO制御インタフェースプログラム413が、処理要求を受け付ける(6101)。
IO制御インタフェースプログラム413は、処理要求の宛先(処理対象)を判別し(6102)、処理要求を送付する宛先ごとに、メッセージを作成する(6103〜6106)。
つまり、処理要求の宛先がIOデバイス111であれば、IOデバイス111宛のメッセージを作成する(6103)。
処理要求の宛先がIOデバイス112であれば、IOデバイス112宛のメッセージを作成する(6104)。
また、処理要求の宛先が他のアプリケーションノード203であれば、アプリケーションノード203宛のメッセージを作成する(6105)。
また、処理要求の宛先がマスタノード201であれば、マスタノード201宛のメッセージを作成する(6106)。
そして、IO制御インタフェースプログラム413は、作成したメッセージをノード通信制御プログラム412へ伝達する(6107)。
When the application program 414 performs IO access in the application node 202, the IO control interface program 413 receives a processing request via the OS 411 (6101).
The IO control interface program 413 determines the destination (processing target) of the processing request (6102), and creates a message for each destination to which the processing request is sent (6103 to 6106).
That is, if the destination of the processing request is the IO device 111, a message addressed to the IO device 111 is created (6103).
If the destination of the processing request is the IO device 112, a message addressed to the IO device 112 is created (6104).
If the destination of the processing request is another application node 203, a message addressed to the application node 203 is created (6105).
If the destination of the processing request is the master node 201, a message addressed to the master node 201 is created (6106).
Then, the IO control interface program 413 transmits the created message to the node communication control program 412 (6107).

図16において、ノード通信制御プログラム412は、IO制御インタフェースプログラム413が作成したメッセージを受付け(6201)、メッセージを元に処理管理テーブル524に新要求のエントリを作成し(6202)、マスタノード201に対して処理要求を発行し(6203)、マスタノード201からの処理受付通知を待つ(6204)。
マスタノード201から処理受付け通知を受けると、ノード通信制御プログラム412は、処理管理テーブル524からトランザクションID番号を取り出し(6205)、対象のトランザクションID番号の完了通知を待つ(6206)。
処理完了通知を受けると、ノード通信制御プログラム412は、処理6202で作成した処理要求エントリを処理管理テーブル524から削除する(6207)。
In FIG. 16, the node communication control program 412 accepts the message created by the IO control interface program 413 (6201), creates a new request entry in the processing management table 524 based on the message (6202), and sends it to the master node 201. A processing request is issued (6203), and a processing acceptance notification from the master node 201 is awaited (6204).
Upon receiving the process acceptance notification from the master node 201, the node communication control program 412 extracts the transaction ID number from the process management table 524 (6205), and waits for the completion notification of the target transaction ID number (6206).
Upon receiving the process completion notification, the node communication control program 412 deletes the process request entry created in process 6202 from the process management table 524 (6207).

図17は、マスタノード201の処理フローを示すフローチャート図である。   FIG. 17 is a flowchart showing the processing flow of the master node 201.

ノード間通信制御プログラム442は、他ノードからの割込みを受け付け(6301)、割込みがあると処理管理テーブル524を参照して処理状態を判定する(6302)。
処理状態が「登録中」の場合は、ノード間通信制御プログラム442は、処理状態を「未処理」に更新し(6304)、要求に基づくメモリ領域を確保する(6305)。
また、ノード間通信制御プログラム442は、処理番号531に新たなトランザクションID番号を設定し(6306)、要求元ノードへ通知(図24の7004)するとともに、連携ノードへの通知(図24の7005)をノード間割込みで発行する(6307)。
一方、処理状態が「完了」の場合は、ノード間通信制御プログラム442は、連携ノードに対して完了処理の要求(図24の7009)をノード間割込みで発行する(6303)。
The inter-node communication control program 442 receives an interrupt from another node (6301), and when there is an interrupt, the process management table 524 is referred to and the processing state is determined (6302).
When the processing state is “registering”, the inter-node communication control program 442 updates the processing state to “unprocessed” (6304), and secures a memory area based on the request (6305).
Further, the inter-node communication control program 442 sets a new transaction ID number in the process number 531 (6306), notifies the requesting node (7004 in FIG. 24), and notifies the cooperation node (7005 in FIG. 24). ) Is issued by an inter-node interrupt (6307).
On the other hand, when the processing state is “complete”, the inter-node communication control program 442 issues a request for completion processing (7009 in FIG. 24) to the cooperation node by an inter-node interrupt (6303).

図18は、連携ノード204の処理フローを示すフローチャート図である。
連携ノード205での処理内容も同様である。
FIG. 18 is a flowchart showing the processing flow of the cooperation node 204.
The processing contents in the cooperation node 205 are the same.

ノード間データ授受制御プログラム421は、ノード間の要求割込みを受け付けると(6900)、処理管理テーブル524を参照し(6402)、処理状態が「未処理」の場合は処理状態を「処理中」に更新し(6404)、処理内容を判定する(6405)。
処理内容がWRITE処理の場合は、ノード間データ授受制御プログラム421は、コマンドパラメータ記載のアドレスに従い、WRITEデータを固有領域からメモリプールの確保領域にコピーする(6406)。
一方、処理内容がIO Controlの場合は、ノード間データ授受制御プログラム421は、コマンドパラメータ記載のアドレスに従い、IO Control情報を固有領域からメモリプールの確保領域にコピーする(6407)。
その後、ノード間データ授受制御プログラム421は、処理要求先のノードに処理要求を発行(図24の7007)する(6408)。
なお、処理内容がREADの場合は、データ操作は行わずに、処理要求先のノードに処理要求を発行(図24の7007)する(6408)。
When the inter-node data transfer control program 421 receives a request interrupt between nodes (6900), the inter-node data transfer control program 421 refers to the processing management table 524 (6402), and when the processing state is “unprocessed”, the processing state is set to “processing”. It updates (6404) and determines the processing content (6405).
When the processing content is the WRITE processing, the inter-node data transfer control program 421 copies the WRITE data from the private area to the reserved area of the memory pool according to the address described in the command parameter (6406).
On the other hand, when the processing content is the IO control, the inter-node data transfer control program 421 copies the IO control information from the specific area to the reserved area of the memory pool according to the address described in the command parameter (6407).
Thereafter, the inter-node data transfer control program 421 issues a processing request to the processing request destination node (7007 in FIG. 24) (6408).
If the processing content is READ, a data processing is not performed and a processing request is issued to the processing request destination node (7007 in FIG. 24) (6408).

また、処理6402で処理状態が「完了」の場合は、ノード間データ授受制御プログラム421は、処理内容を判定する(6403)。
処理内容がREADの場合は、ノード間データ授受制御プログラム421は、コマンドパラメータ記載のアドレスに従い、READデータをメモリプールの確保領域から固有領域にコピーする(6409)。
一方、処理内容がIO Controlの場合は、ノード間データ授受制御プログラム421は、コマンドパラメータ記載のアドレスに従い、IO Control情報をメモリプールの確保領域から固有領域にコピーする(6410)。
その後、ノード間データ授受制御プログラム421は、処理要求元のノードに完了通知(図7の7011)を発行する(6411)。
なお、処理内容がWRITEの場合は、データ操作は行わずに、処理要求元のノードに完了通知(図7の7011)を発行する(6411)。
If the processing state is “complete” in processing 6402, the inter-node data transfer control program 421 determines the processing content (6403).
When the processing content is READ, the inter-node data transfer control program 421 copies the READ data from the reserved area of the memory pool to the unique area according to the address described in the command parameter (6409).
On the other hand, when the processing content is IO Control, the inter-node data transfer control program 421 copies the IO Control information from the reserved area of the memory pool to the private area according to the address described in the command parameter (6410).
Thereafter, the inter-node data transfer control program 421 issues a completion notification (7011 in FIG. 7) to the processing request source node (6411).
If the processing content is WRITE, the data request is not performed and a completion notification (7011 in FIG. 7) is issued to the processing request source node (6411).

図19は、IOノード206におけるIOノード通信制御プログラム432の処理フローを示す。
IOノード207のIOノード通信制御プログラム432の処理フローも同様である。
FIG. 19 shows a processing flow of the IO node communication control program 432 in the IO node 206.
The processing flow of the IO node communication control program 432 of the IO node 207 is the same.

ノード間割込みを受け付けると(6900)、IOノード通信制御プログラム432は、処理管理テーブル524から処理対象の要求を読み出し(6502)、処理内容を判定する(6503)。
処理内容がREADの場合、IOデバイス制御プログラム431へREAD要求を発行する(6504)。
処理内容がWRITEの場合、IOデバイス制御プログラム431へWRITE要求を発行する(6505)。
処理内容がIO Controlの場合、IOデバイス制御プログラム431へIO Control要求を発行する(6506)。
次に、IOノード通信制御プログラム432は、IO操作が成功したかどうかを判断し(6507)、IO操作が成功の場合は、処理管理テーブル524の処理状態538に「完了」を設定する(6508)。
一方、IO操作が失敗の場合は、処理管理テーブル524の処理状態538に「エラー」を設定する(6509)。
その後、IOノード通信制御プログラム432は、マスタノード201に対して処理終了を通知する(図24の7008)(6510)。
When an inter-node interrupt is accepted (6900), the IO node communication control program 432 reads a request to be processed from the processing management table 524 (6502), and determines the processing content (6503).
If the processing content is READ, a READ request is issued to the IO device control program 431 (6504).
If the processing content is WRITE, a WRITE request is issued to the IO device control program 431 (6505).
If the processing content is IO Control, an IO Control request is issued to the IO device control program 431 (6506).
Next, the IO node communication control program 432 determines whether or not the IO operation is successful (6507). If the IO operation is successful, “complete” is set in the process state 538 of the process management table 524 (6508). ).
On the other hand, if the IO operation has failed, “error” is set in the processing state 538 of the processing management table 524 (6509).
Thereafter, the IO node communication control program 432 notifies the master node 201 of the end of processing (7008 in FIG. 24) (6510).

図20は、IOノード206におけるIOデバイス制御プログラム431の処理フローを示す。
IOノード207のIOデバイス制御プログラム431の処理フローも同様である。
FIG. 20 shows a processing flow of the IO device control program 431 in the IO node 206.
The processing flow of the IO device control program 431 of the IO node 207 is the same.

IOデバイス制御プログラム431は、IOノード通信制御プログラム432からのコマンド(図19の処理6504のREAD要求、処理6505のWRITE要求、処理6506のIO Control要求)を受け付ける(6601)。
次に、IOデバイス制御プログラム431は、コマンド種別を判定し(6602)、コマンドがREADの場合は、IOデバイス111のREAD操作を行う(6603)。
更に、IOデバイス111から読み出したデータを共有メモリ領域522へ保存する(6604)。
また、コマンドがWRITEの場合は、IOデバイス制御プログラム431は、共有メモリ領域522からデータを読み出し(6605)、IOデバイス111に対しデータを書き込む(6606)。
また、コマンドがIO Controlの場合は、共有メモリ領域522からデータ読み出し(6607)、IOデバイス111を操作し(6608)、共有メモリ領域522へ必要なデータを保存する(6609)。
The IO device control program 431 receives commands from the IO node communication control program 432 (READ request in process 6504, WRITE request in process 6505, and IO control request in process 6506) (6601).
Next, the IO device control program 431 determines the command type (6602), and if the command is READ, performs a READ operation of the IO device 111 (6603).
Further, the data read from the IO device 111 is stored in the shared memory area 522 (6604).
If the command is WRITE, the IO device control program 431 reads data from the shared memory area 522 (6605) and writes data to the IO device 111 (6606).
If the command is IO Control, data is read from the shared memory area 522 (6607), the IO device 111 is operated (6608), and necessary data is stored in the shared memory area 522 (6609).

図21は、マスタノード201における起動処理プログラム441の処理フローを示す。   FIG. 21 shows a processing flow of the activation processing program 441 in the master node 201.

制御装置の起動後に、起動処理プログラム411は、ROM121にあるシステム構成情報512を読み出す(6713)。
起動処理プログラム441は、図14のシステム構成情報512の各行を順に読み出す。
読み出し対象のシステム構成情報512がマスタノードを構成するためのマスタノード構成情報(図14の1行目の情報)である場合(6702でYES)は、マスタノード構成情報を読み出す(6706)。
読み出し対象のシステム構成情報512がアプリケーションノードを構成するためのアプリケーションノード構成情報(図14の2行目の情報)である場合(6703でYES)は、アプリケーションノード構成情報を読み出す(6707)。
読み出し対象のシステム構成情報512が連携ノードを構成するための連携ノード構成情報(図14の3行目の情報)である場合(6704でYES)は、連携ノード構成情報を読み出す(6708)。
読み出し対象のシステム構成情報512がIOノードを構成するためのIOノード構成情報(図14の4行目の情報)である場合(6705でYES)は、IOノード構成情報を読み出す(6709)。
次に、起動処理プログラム441は、各ノードで必要な個数分のCPUコア101を確保し(6710)、各ノードで実行するイメージのアドレスを対象のCPUコア101に設定し(6711)、割り当てたCPUコア101にイメージを起動させる起動要求を発行する(6712)。
各ノードの構成起動が完了すると、ノード管理プログラム443に処理が移行する。
After the control device is activated, the activation processing program 411 reads the system configuration information 512 in the ROM 121 (6713).
The activation processing program 441 reads out each row of the system configuration information 512 in FIG. 14 in order.
If the system configuration information 512 to be read is master node configuration information (information on the first line in FIG. 14) for configuring the master node (YES in 6702), the master node configuration information is read (6706).
If the system configuration information 512 to be read is application node configuration information (information on the second line in FIG. 14) for configuring the application node (YES in 6703), the application node configuration information is read (6707).
When the system configuration information 512 to be read is the cooperative node configuration information (information on the third line in FIG. 14) for configuring the cooperative node (YES in 6704), the cooperative node configuration information is read (6708).
When the system configuration information 512 to be read is IO node configuration information (information on the fourth line in FIG. 14) for configuring the IO node (YES in 6705), the IO node configuration information is read (6709).
Next, the activation processing program 441 secures the necessary number of CPU cores 101 in each node (6710), sets the address of the image to be executed in each node in the target CPU core 101 (6711), and assigns it. An activation request for activating an image is issued to the CPU core 101 (6712).
When the configuration activation of each node is completed, the processing shifts to the node management program 443.

図22は、マスタノード201におけるノード管理プログラム433の処理フローを示す。   FIG. 22 shows a processing flow of the node management program 433 in the master node 201.

ノード管理プログラム433は、ノードnの遅延応答カウント及び負荷超過カウントを初期化する(6801)。
ノードnは、アプリケーションノード202、203、連携ノード204、205、IOノード26、207の各々である。
次に、ノード管理プログラム433は、処理コマンドとしてHealth Checkを指定したコマンドをノードnへ発行する(6802)。
次に、ノード管理プログラム433は、ノードnからの応答を待ち(6803)、所定時間内で応答が有った場合(6804)は、ノードnの遅延応答カウントを0にする(6805)。
次に、ノード管理プログラム433は、ノードnの応答として返されたシステム負荷状態を判定する(6813)。
負荷状態が規定値を超えた場合は、ノード管理プログラム433は、負荷超過カウントを+1する(6814)。
負荷超過カウントが規定数を超えた場合(6815)は、ノード管理プログラム433は、ノードnへCPUコア101の追加指示を発行する(6816)。
その後、ノード管理プログラム433は、ノードnの負荷超過カウントをクリアする(6817)。
また、処理6813において負荷状態が規定値を超えない場合も、ノード管理プログラム433は、ノードnの負荷超過カウントをクリアする(6817)。
The node management program 433 initializes the delay response count and the overload count of the node n (6801).
The node n is each of the application nodes 202 and 203, the cooperation nodes 204 and 205, and the IO nodes 26 and 207.
Next, the node management program 433 issues a command specifying Health Check as a processing command to the node n (6802).
Next, the node management program 433 waits for a response from the node n (6803), and when there is a response within a predetermined time (6804), sets the delay response count of the node n to 0 (6805).
Next, the node management program 433 determines the system load state returned as the response of the node n (6813).
When the load state exceeds the specified value, the node management program 433 increments the load excess count by 1 (6814).
If the overload count exceeds the specified number (6815), the node management program 433 issues an instruction to add the CPU core 101 to the node n (6816).
Thereafter, the node management program 433 clears the overload count of the node n (6817).
Also, in the case where the load state does not exceed the specified value in the process 6813, the node management program 433 clears the overload count of the node n (6817).

一方、処理6804において所定時間内でノードnからの応答が無い場合は、ノード管理プログラム433は、遅れて応答があるか否かを判断する(6806)。
遅れて応答が有った場合には、ノード管理プログラム433は、遅延応答カウントを+1する(6807)。
遅延応答カウントが規定値を超えた場合(6808)は、対象のノードnに対し、CPUコア101の追加指示を発行する(6809)。
その後、ノードnの遅延応答カウントをクリアする(6810)。
一方、処理6806においてノードnから全く応答がない場合は、ノード管理プログラム433は、ノードnが動作不可の状態と判断し、ノードnのCPUコア101を停止させ、CPUコア101のリセットを行い、当該CPUコア101を予備CPUコア208へ移行させる(6811)。
更に、ノード管理プログラム433は、他の予備CPUコア208を新たにノードnを構成するCPUコアとして選択し、当該CPUコアを用いてノードnの複製を生成し、新たなノードnとして起動させる(6812)。
ノード管理プログラム433は、以上の処理を、アプリケーションノード202、203、連携ノード204、205、IOノード26、207の各々に対して行う。
On the other hand, if there is no response from the node n within the predetermined time in the process 6804, the node management program 433 determines whether there is a response with a delay (6806).
If there is a response with a delay, the node management program 433 increments the delay response count by 1 (6807).
If the delay response count exceeds the specified value (6808), an instruction to add the CPU core 101 is issued to the target node n (6809).
Thereafter, the delay response count of the node n is cleared (6810).
On the other hand, if there is no response from the node n in the process 6806, the node management program 433 determines that the node n is in an inoperable state, stops the CPU core 101 of the node n, resets the CPU core 101, The CPU core 101 is transferred to the spare CPU core 208 (6811).
Further, the node management program 433 newly selects another spare CPU core 208 as a CPU core constituting the node n, generates a copy of the node n using the CPU core, and starts it as a new node n ( 6812).
The node management program 433 performs the above processing on each of the application nodes 202 and 203, the cooperation nodes 204 and 205, and the IO nodes 26 and 207.

図23は、アプリケーションノード202、203、連携ノード204、205、IOノード206、207で動作するノード間割込みハンドラの処理フローを示す。
図23は、例えば、図18の処理6900、図19の処理6900の詳細を示す。
FIG. 23 shows a processing flow of an inter-node interrupt handler that operates on the application nodes 202 and 203, the cooperation nodes 204 and 205, and the IO nodes 206 and 207.
FIG. 23 shows details of the process 6900 of FIG. 18 and the process 6900 of FIG.

ノード間割込みハンドラは、処理管理テーブル524のリストを検索し(6901)、要求先ID533が自ノード宛の場合(6902でYES)で、処理コマンドがHealth Checkの場合(6903でYES)は、自ノードのシステム負荷状態をコマンドパラメータに設定する(6910)。
一方、処理コマンドがAdd CPUの場合(6904でYES)は、予備CPUコアを自ノードに追加し、ノードを構成する(6906)。
処理コマンドがDelete CPU(6905でYES)の場合は、自ノードで稼働するCPUコアが複数である場合は、CPUコアの1つを切り離し、切り離したCPUコアを予備CPUコアへ移行させる(6907)。
処理6910、6906、6907の後、ノード間割込みハンドラは、処理管理テーブル524の処理状態538の値を「完了」に設定し(6908)、マスタノードへノード間割込みを発行する(6909)。
Health Check、 Add CPU、 Delete CPU以外のコマンドの場合は、各ノードにおける続きの処理へ移行する。
The inter-node interrupt handler searches the list of the process management table 524 (6901), and when the request destination ID 533 is addressed to the own node (YES in 6902) and the process command is Health Check (YES in 6903), The system load state of the node is set in the command parameter (6910).
On the other hand, if the processing command is Add CPU (YES in 6904), a spare CPU core is added to the own node to configure the node (6906).
When the processing command is Delete CPU (YES in 6905), if there are a plurality of CPU cores operating on the own node, one of the CPU cores is disconnected, and the disconnected CPU core is transferred to the spare CPU core (6907). .
After the processes 6910, 6906, and 6907, the inter-node interrupt handler sets the value of the processing state 538 in the process management table 524 to “complete” (6908), and issues an inter-node interrupt to the master node (6909).
In the case of a command other than Health Check, Add CPU, and Delete CPU, the process proceeds to subsequent processing in each node.

以上、本実施の形態では、IO制御に単独のノード及びCPUコアを割り当てる機能分散マルチコア制御装置を説明した。   As described above, in the present embodiment, the function distributed multi-core control device that allocates a single node and a CPU core to the IO control has been described.

また、本実施の形態では、アプリケーションを実行するノードが動作しなくなった場合に、動的に当該ノードのCPUコアを分離して、新たなCPUコアを当該ノードに割り当てて動作を回復する機能分散マルチコア制御装置を説明した。   Also, in this embodiment, when a node that executes an application stops operating, the function distribution that dynamically separates the CPU core of the node and assigns a new CPU core to the node to recover the operation. A multi-core controller has been described.

また、本実施の形態では、システム上に複数の異なるOSが存在しても、共通のIOデバイスを、競合を意識することなく利用することができる機能分散マルチコア制御装置を説明した。   Further, in the present embodiment, the function distributed multi-core control device that can use a common IO device without being aware of competition even when a plurality of different OSs exist in the system has been described.

実施の形態2.
以上の実施の形態1では、連携ノードを用いたデータ操作方法を示したが、連携ノードを省略し、アプリケーションノードとIOノードで構成することも可能である。
Embodiment 2. FIG.
In the first embodiment described above, the data operation method using the cooperation node has been described. However, the cooperation node may be omitted and the application node and the IO node may be used.

100 マルチコアSoC、101 CPUコア、111 IOデバイス、112 IOデバイス、121 ROM、122 RAM、201 マスタノード、202 アプリケーションノード、203 アプリケーションノード、204 連携ノード、205 連携ノード、206 IOノード、207 IOノード、208 予備CPUコア、301 ノード、303 ソフトウェア、411 OS、412 ノード通信制御プログラム、413 IO制御インタフェースプログラム、414 アプリケーションプログラム、421 ノード間データ授受制御プログラム、431 IOデバイス制御プログラム、432 IOノード通信制御プログラム、441 起動処理プログラム、442 ノード間通信制御プログラム、443 ノード管理プログラム、511 ブートローダイメージ、512 システム構成情報、513 アプリケーションノードイメージ、514 連携ノードイメージ、515 IOノードイメージ、521 個別メモリ領域、522 共有メモリ領域、523 ノード用ワークメモリ、524 処理管理テーブル、525 メモリプール、526 一時バッファ。
100 multi-core SoC, 101 CPU core, 111 IO device, 112 IO device, 121 ROM, 122 RAM, 201 master node, 202 application node, 203 application node, 204 cooperation node, 205 cooperation node, 206 IO node, 207 IO node, 208 spare CPU core, 301 node, 303 software, 411 OS, 412 node communication control program, 413 IO control interface program, 414 application program, 421 inter-node data transfer control program, 431 IO device control program, 432 IO node communication control program 441, startup processing program, 442 inter-node communication control program, 443 node management program, 511 Image, 512 system configuration information, 513 application node image, 514 linked node image, 515 IO node image, 521 individual memory area, 522 shared memory area, 523 work memory for node, 524 processing management table, 525 memory pool, 526 temporary buffer.

Claims (10)

複数のCPU(Central Processing Unit)が含まれるデータ処理システムであって、
前記複数のCPUの中から、アプリケーションプログラムを実行させる専用のCPUをアプリケーションCPUとして選択し、デバイスドライバを実行させる専用のCPUをデバイスドライバCPUとして選択するCPU選択部を有することを特徴とするデータ処理システム。
A data processing system including a plurality of CPUs (Central Processing Units),
A data processing system comprising: a CPU selection unit that selects, from among the plurality of CPUs, a dedicated CPU that executes an application program as an application CPU, and selects a dedicated CPU that executes a device driver as a device driver CPU. system.
前記CPU選択部は、
複数のデバイスドライバについて、デバイスドライバごとに、デバイスドライバCPUを選択することを特徴とする請求項1に記載のデータ処理システム。
The CPU selection unit
The data processing system according to claim 1, wherein a device driver CPU is selected for each of the plurality of device drivers.
前記データ処理システムは、更に、
前記アプリケーションCPUに前記アプリケーションプログラムの実行を指示し、前記デバイスドライバCPUに前記デバイスドライバの実行を指示する実行指示部を有することを特徴とする請求項1に記載のデータ処理システム。
The data processing system further includes:
The data processing system according to claim 1, further comprising: an execution instruction unit that instructs the application CPU to execute the application program and instructs the device driver CPU to execute the device driver.
前記データ処理システムには、
3つ以上のCPUが含まれ、
前記データ処理システムは、更に、
前記アプリケーションCPUの負荷状態、及び前記デバイスドライバCPUの負荷状態のうちの少なくともいずれかを検出する負荷状態検出部を有し、
前記CPU選択部は、
前記負荷状態検出部により検出された前記アプリケーションCPUの負荷状態に基づき、前記アプリケーションCPUに加えて新たなアプリケーションCPUを選択し、
前記負荷状態検出部により検出された記デバイスドライバCPUの負荷状態に基づき、前記デバイスドライバCPUに加えて新たなデバイスドライバCPUを選択することを特徴とする請求項1に記載のデータ処理システム。
The data processing system includes
3 or more CPUs are included,
The data processing system further includes:
A load state detection unit that detects at least one of a load state of the application CPU and a load state of the device driver CPU;
The CPU selection unit
Based on the load state of the application CPU detected by the load state detection unit, a new application CPU is selected in addition to the application CPU,
2. The data processing system according to claim 1, wherein a new device driver CPU is selected in addition to the device driver CPU based on the load state of the device driver CPU detected by the load state detection unit.
前記データ処理システムには、
3つ以上のCPUが含まれ、
前記データ処理システムは、更に、
前記アプリケーションCPUの応答状態、及び前記デバイスドライバCPUの応答状態のうちの少なくともいずれかを検出する応答状態検出部を有し、
前記CPU選択部は、
前記応答状態検出部により検出された前記アプリケーションCPUの応答状態に基づき、前記アプリケーションCPUに代えて新たなアプリケーションCPUを選択し、
前記応答状態検出部により検出された前記デバイスドライバCPUの応答状態に基づき、前記デバイスドライバCPUに代えて新たなデバイスドライバCPUを選択することを特徴とする請求項1に記載のデータ処理システム。
The data processing system includes
3 or more CPUs are included,
The data processing system further includes:
A response state detection unit that detects at least one of the response state of the application CPU and the response state of the device driver CPU;
The CPU selection unit
Based on the response state of the application CPU detected by the response state detection unit, a new application CPU is selected instead of the application CPU,
2. The data processing system according to claim 1, wherein a new device driver CPU is selected in place of the device driver CPU based on the response state of the device driver CPU detected by the response state detection unit.
前記アプリケーションCPUは、
複数のOS(Operating System)に共通するフォーマットでIO(Input Output)デバイスへのリクエストを生成し、生成したリクエストを前記デバイスドライバCPUに出力することを特徴とする請求項1に記載のデータ処理システム。
The application CPU is
2. The data processing system according to claim 1, wherein a request to an IO (Input Output) device is generated in a format common to a plurality of OSs (Operating System), and the generated request is output to the device driver CPU. .
前記データ処理システムには、
3つ以上のCPUが含まれ、
前記CPU選択部は、
前記アプリケーションCPUと前記デバイスドライバCPUとの間でのデータ中継を行う専用CPUをデータ中継CPUとして選択することを特徴とする請求項1に記載のデータ処理システム。
The data processing system includes
3 or more CPUs are included,
The CPU selection unit
The data processing system according to claim 1, wherein a dedicated CPU that relays data between the application CPU and the device driver CPU is selected as a data relay CPU.
前記アプリケーションCPUは、
複数のOS(Operating System)で共通するフォーマットでIO(Input Output)デバイスへのリクエストを生成し、生成したリクエストを前記データ中継CPUを介して前記デバイスドライバCPUに出力することを特徴とする請求項7に記載のデータ処理システム。
The application CPU is
A request to an IO (Input Output) device is generated in a format common to a plurality of OS (Operating System), and the generated request is output to the device driver CPU via the data relay CPU. 8. The data processing system according to 7.
データ処理システムに含まれる3つ以上のCPU(Central Processing Unit)のうちの特定のCPUが、
前記3つ以上のCPUのうちの前記特定のCPUを除く他のCPUの中から、アプリケーションプログラムを実行させる専用のCPUをアプリケーションCPUとして選択し、デバイスドライバを実行させる専用のCPUをデバイスドライバCPUとして選択することを特徴とするデータ処理方法。
A specific CPU among three or more CPUs (Central Processing Units) included in the data processing system is
Of the three or more CPUs other than the specific CPU, a dedicated CPU that executes an application program is selected as an application CPU, and a dedicated CPU that executes a device driver is selected as a device driver CPU. A data processing method characterized by selecting.
データ処理システムに含まれる3つ以上のCPU(Central Processing Unit)のうちの特定のCPUに、
前記3つ以上のCPUのうちの前記特定のCPUを除く他のCPUの中から、アプリケーションプログラムを実行させる専用のCPUをアプリケーションCPUとして選択し、デバイスドライバを実行させる専用のCPUをデバイスドライバCPUとして選択するCPU選択処理を実行させることを特徴とするプログラム。
To a specific CPU among three or more CPUs (Central Processing Units) included in the data processing system,
Of the three or more CPUs other than the specific CPU, a dedicated CPU that executes an application program is selected as an application CPU, and a dedicated CPU that executes a device driver is selected as a device driver CPU. A program for executing a CPU selection process to be selected.
JP2014155806A 2014-07-31 2014-07-31 Data processing system, data processing method, and program Pending JP2017161954A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014155806A JP2017161954A (en) 2014-07-31 2014-07-31 Data processing system, data processing method, and program
PCT/JP2015/061849 WO2016017219A1 (en) 2014-07-31 2015-04-17 Data processing system, data processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014155806A JP2017161954A (en) 2014-07-31 2014-07-31 Data processing system, data processing method, and program

Publications (1)

Publication Number Publication Date
JP2017161954A true JP2017161954A (en) 2017-09-14

Family

ID=55217123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014155806A Pending JP2017161954A (en) 2014-07-31 2014-07-31 Data processing system, data processing method, and program

Country Status (2)

Country Link
JP (1) JP2017161954A (en)
WO (1) WO2016017219A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020090009A1 (en) * 2018-10-30 2020-05-07 富士通株式会社 Arithmetic processing device and control method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019099587A2 (en) 2017-11-15 2019-05-23 Exxonmobil Chemical Patents Inc. Polymerization processes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844575A (en) * 1994-08-03 1996-02-16 Fujitsu Ltd Monitor and load control system for cpu
JP5167844B2 (en) * 2008-02-05 2013-03-21 日本電気株式会社 Processor, electronic device, interrupt control method, and interrupt control program
JP5516398B2 (en) * 2008-03-11 2014-06-11 日本電気株式会社 Multiprocessor system and method for sharing device between OS of multiprocessor system
JP5516737B2 (en) * 2010-07-30 2014-06-11 富士通株式会社 Processor system, control program, and control method
JP2012221040A (en) * 2011-04-05 2012-11-12 Nec Corp Call processing control device and call processing control method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020090009A1 (en) * 2018-10-30 2020-05-07 富士通株式会社 Arithmetic processing device and control method thereof
JPWO2020090009A1 (en) * 2018-10-30 2021-09-24 富士通株式会社 Arithmetic processing unit and its control method
JP7036226B2 (en) 2018-10-30 2022-03-15 富士通株式会社 Arithmetic processing unit and its control method

Also Published As

Publication number Publication date
WO2016017219A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
US10180843B2 (en) Resource processing method and device for a multi-core operating system
US9996401B2 (en) Task processing method and virtual machine
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
US20140082244A1 (en) Enhanced I/O Performance in a Multi-Processor System Via Interrupt Affinity Schemes
US9454397B2 (en) Data processing systems
JP6368434B2 (en) PLD management method and PLD management system
US10908998B2 (en) Managing function level reset in an IO virtualization-enabled storage device
JP5862359B2 (en) Thin client system, connection management server, connection management method, and connection management program
JP2015022553A (en) Computer control method and computer
WO2019056771A1 (en) Distributed storage system upgrade management method and device, and distributed storage system
US20160110227A1 (en) System, method of controlling to execute a job, and apparatus
JP2017503420A (en) Packet flow control method, related apparatus, and computing node
WO2016017219A1 (en) Data processing system, data processing method, and program
JP5294014B2 (en) File sharing method, computer system, and job scheduler
CN104714843B (en) More kernel operating system instances support the method and device of multiprocessor
JP5655612B2 (en) Information processing system, information processing method, and control program
JP5996110B2 (en) Computer system and control method
JP2011221634A (en) Computer system, logic section management method and logic division processing program
JP2016173741A (en) Information processing apparatus, information processing method, and program
JPWO2010050092A1 (en) Information processing system
JP5994690B2 (en) Information processing apparatus, program, and storage area acquisition method
JP6075882B2 (en) Distributed processing system and distributed processing method
US10942821B1 (en) Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system
JP2016184310A (en) Information processing system, control apparatus, and information processing system control method
KR102505996B1 (en) Apparatus for remote processing for virtual machine processor and method for the same