[go: up one dir, main page]

JP2022068670A - Information processing device, process execution method, program and recording medium - Google Patents

Information processing device, process execution method, program and recording medium Download PDF

Info

Publication number
JP2022068670A
JP2022068670A JP2020177474A JP2020177474A JP2022068670A JP 2022068670 A JP2022068670 A JP 2022068670A JP 2020177474 A JP2020177474 A JP 2020177474A JP 2020177474 A JP2020177474 A JP 2020177474A JP 2022068670 A JP2022068670 A JP 2022068670A
Authority
JP
Japan
Prior art keywords
memory
processing unit
central processing
data
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020177474A
Other languages
Japanese (ja)
Other versions
JP7640066B2 (en
Inventor
善行 西村
Yoshiyuki Nishimura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2020177474A priority Critical patent/JP7640066B2/en
Publication of JP2022068670A publication Critical patent/JP2022068670A/en
Application granted granted Critical
Publication of JP7640066B2 publication Critical patent/JP7640066B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

To provide an information processing device capable of optimizing access to data on a non-volatile memory.SOLUTION: An information processing device 1 includes an operating system unit 10 and a plurality of memory access nodes 20. In the operating system unit 10, a process analysis unit 11 analyzes a process. A data identification unit 12 identifies data which are access objects of the process and an executable file of the data, based on the process. At least one of the data and the executable file is the data stored on a non-volatile memory 231 of a specific memory access node 20. An allocation unit 13 allocates a central process unit 21 which executes the process from the plurality of memory access nodes 20, depending on the time distance with regard to the access to the non-volatile memory 231, based on the data and the executable file.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置、プロセス実行方法、プログラム及び記録媒体に関する。 The present invention relates to an information processing apparatus, a process execution method, a program and a recording medium.

NUMA(Non-Uniform Memory Access)アーキテクチャを採用するシステムにおいて、I/O(Input/Output)とCPU(Central Processing Unit)、I/Oとメモリの組み合わせを、極力アクセスが短くなるように選択する技術が報告されている(例えば、特許文献1等) Technology that selects the combination of I / O (Input / Output) and CPU (Central Processing Unit), and I / O and memory so that access is as short as possible in a system that adopts a NUMA (Non-Uniform Memory Access) architecture. Has been reported (for example, Patent Document 1 etc.)

また、近年、NVDIMM(Nonvolatile Dual In Line Memory Module)等の不揮発性メモリ(ユニバーサルメモリ)の実用化が広がりつつある。 Further, in recent years, the practical use of non-volatile memory (universal memory) such as NVDIMM (Nonvolatile Dual In Line Memory Module) is spreading.

特開2012-146105号公報Japanese Unexamined Patent Publication No. 2012-146105

しかしながら、不揮発性メモリを搭載したNUMAアーキテクチャにおいて、アクセスを最適化する技術が確立していない。 However, in the NUMA architecture equipped with the non-volatile memory, the technique for optimizing the access has not been established.

そこで、本発明は、不揮発性メモリ上のデータに対するアクセスの最適化を可能にする情報処理装置、プロセス実行方法、プログラム及び記録媒体を提供することを目的とする。 Therefore, an object of the present invention is to provide an information processing apparatus, a process execution method, a program, and a recording medium that enable optimization of access to data on a non-volatile memory.

前記目的を達成するために、本発明の情報処理装置は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、装置である。
In order to achieve the above object, the information processing apparatus of the present invention is used.
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the execution file. Is.

本発明のプロセス実行方法は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
The process execution method of the present invention
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.

本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 According to the present invention, access to data on the non-volatile memory can be optimized.

図1は、実施形態1の装置の一例の構成を示す図である。FIG. 1 is a diagram showing a configuration of an example of the apparatus of the first embodiment. 図2は、実施形態1の装置における処理の一例を示すフローチャートである。FIG. 2 is a flowchart showing an example of processing in the apparatus of the first embodiment. 図3は、実施形態1の装置における割当部による処理の一例を示す図である。FIG. 3 is a diagram showing an example of processing by the allocation unit in the apparatus of the first embodiment. 図4は、実施形態2の装置における割当部による処理の一例を示す図である。FIG. 4 is a diagram showing an example of processing by the allocation unit in the apparatus of the second embodiment. 図5は、実施形態3の装置におけるスワップ処理部による処理の一例について示す図である。FIG. 5 is a diagram showing an example of processing by the swap processing unit in the apparatus of the third embodiment. 図6は、実施形態4の装置において新しいデータを作成する場合の処理の一例を示す図である。FIG. 6 is a diagram showing an example of processing when new data is created in the apparatus of the fourth embodiment.

本発明の情報処理装置において、例えば、
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the information processing apparatus of the present invention, for example,
The allocation unit may allocate a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance

本発明の情報処理装置において、例えば、
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the information processing apparatus of the present invention, for example,
The allocation unit is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. It may be in the form of allocating a processor core.

本発明の情報処理装置は、例えば、
さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The information processing apparatus of the present invention is, for example,
In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The mode may be such that the data in the memory in each of the central processing units is swapped out to the swap area.

本発明の情報処理装置は、例えば、
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The information processing apparatus of the present invention is, for example,
In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. It may be in the form of designating a new storage area.

本発明の情報処理装置において、例えば、
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the information processing apparatus of the present invention, for example,
In the allocation unit, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Depending on the number of data and at least one of the execution files, the process may be assigned to be executed by the central processing unit in the one memory access node or the other memory access node.

本発明のプロセス実行方法において、例えば、
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the process execution method of the present invention, for example,
The allocation step may be an embodiment in which a memory access node for executing the process is allocated based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. The central processing unit that is close to the distance

本発明のプロセス実行方法において、例えば、
前記割当工程は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
The allocation step is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. It may be in the form of allocating a processor core.

本発明のプロセス実行方法は、例えば、
さらに、スワップ処理工程を含み、
前記スワップ処理工程は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The process execution method of the present invention is, for example,
In addition, it includes a swap processing process
In the swap processing step, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The mode may be such that the data in the memory in each of the central processing units is swapped out to the swap area.

本発明のプロセス実行方法は、例えば、
さらに、指定工程を含み、
前記指定工程は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The process execution method of the present invention is, for example,
In addition, including designated steps,
In the designated step, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. It may be in the form of designating a new storage area.

本発明のプロセス実行方法において、例えば、
前記割当工程は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
In the allocation process, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Depending on the number of data and at least one of the execution files, the process may be assigned to be executed by the central processing unit in the one memory access node or the other memory access node.

本発明の情報処理装置、本発明のプロセス実行方法、及び本発明のプログラムの少なくとも一方において、例えば、
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、という態様であってもよい。
In at least one of the information processing apparatus of the present invention, the process execution method of the present invention, and the program of the present invention, for example,
The non-volatile memory may be an NVDIMM (Non-Volatile Dual In-Line Memory Module).

本発明のプログラムは、本発明の方法の各工程を、手順として、コンピュータに実行させるためのプログラムである。 The program of the present invention is a program for causing a computer to execute each step of the method of the present invention as a procedure.

本発明の記録媒体は、本発明のプログラムを記録しているコンピュータ読み取り可能な記録媒体である。 The recording medium of the present invention is a computer-readable recording medium on which the program of the present invention is recorded.

本発明において、「不揮発性メモリ」は、例えば、メモリコントローラに直結する不揮発性メモリを指し、ユニバーサルメモリともいう。不揮発性メモリは、例えば、CPU等の中央処理装置に直結されている揮発性メモリ(DRAM(Dynamic Random Access Memory)等)をメモリの基盤に用いている。具体的には、例えば、NVDIMM(Nonvolatile Dual In Line Memory Module)等が挙げられる。NVDIMMは、例えば、DRAM(Dynamic Random Access Memory)ワークメモリとNAND(Not AND)ストレージメモリとを統合した形態である。 In the present invention, the "nonvolatile memory" refers to, for example, a non-volatile memory directly connected to a memory controller, and is also referred to as a universal memory. As the non-volatile memory, for example, a volatile memory (DRAM (Dynamic Random Access Memory) or the like) directly connected to a central processing unit such as a CPU is used as the memory base. Specific examples thereof include NVDIMM (Nonvolatile Dual In Line Memory Module) and the like. The NVDIMM is, for example, a form in which a DRAM (Dynamic Random Access Memory) work memory and a NAND (Not AND) storage memory are integrated.

次に、本発明の実施形態について図を用いて説明する。本発明は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。 Next, an embodiment of the present invention will be described with reference to the drawings. The present invention is not limited to the following embodiments. In each of the following figures, the same parts are designated by the same reference numerals. Further, the explanations of the respective embodiments can be referred to each other unless otherwise specified, and the configurations of the respective embodiments can be combined unless otherwise specified.

[実施形態1]
図1(A)は、本実施形態の情報処理装置1の一例の構成を示す図である。図1に示すように、本装置1は、オペレーティングシステム部10、及び複数のメモリアクセスノード20(20a及び20b)を含む。本装置1は、例えば、さらに、入出力装置30(以下、IO装置30とする)(30a及び30b)を含んでもよい。本装置1の各部は、それぞれのインタフェース(I/F)により、接続部100を介して相互に接続されている。複数のメモリアクセスノード20の数は、特に制限されず、2つ以上でもよい。同様に、IO装置30の数は、特に制限されず、1つでもよいし、2つ以上でもよい。
[Embodiment 1]
FIG. 1A is a diagram showing a configuration of an example of the information processing apparatus 1 of the present embodiment. As shown in FIG. 1, the apparatus 1 includes an operating system unit 10 and a plurality of memory access nodes 20 (20a and 20b). The apparatus 1 may further include, for example, an input / output apparatus 30 (hereinafter referred to as an IO apparatus 30) (30a and 30b). Each part of the present apparatus 1 is connected to each other via the connection part 100 by each interface (I / F). The number of the plurality of memory access nodes 20 is not particularly limited, and may be two or more. Similarly, the number of IO devices 30 is not particularly limited, and may be one or two or more.

また、本装置1は、前記通信回線網を介して、後述する外部装置と接続可能である。前記通信回線網は、特に制限されず、公知のネットワークを使用でき、例えば、有線でも無線でもよい。前記通信回線網は、例えば、インターネット回線、WWW(World Wide Web)、電話回線、LAN(Local Area Network)、SAN(Storage Area Network)、DTN(Delay Tolerant Networking)、ポイントツーポイント(P2P)ネットワーク等があげられる。無線通信としては、例えば、WiFi(Wireless Fidelity)、Bluetooth(登録商標)等が挙げられる。前記無線通信としては、各装置が直接通信する形態(Ad Hoc通信)、アクセスポイントを介した間接通信のいずれであってもよい。本装置1は、例えば、本発明のプログラムがインストールされたパーソナルコンピュータ(PC、例えば、デスクトップ型、ノート型)、端末(スマートフォン、タブレット端末)等であってもよい。 Further, the present device 1 can be connected to an external device described later via the communication network. The communication network is not particularly limited, and a known network can be used, and may be wired or wireless, for example. The communication line network includes, for example, an internet line, WWW (World Wide Web), a telephone line, a LAN (Local Area Network), a SAN (Storage Area Network), a DTN (Delay Tolerant Network), a point-to-point network (P2), and the like. Can be given. Examples of wireless communication include WiFi (Wireless Fidelity), Bluetooth (registered trademark) and the like. The wireless communication may be either a form in which each device communicates directly (Ad Hoc communication) or an indirect communication via an access point. The present device 1 may be, for example, a personal computer (PC, for example, a desktop type, a notebook type), a terminal (smartphone, a tablet terminal) or the like in which the program of the present invention is installed.

接続部100は、例えば、外部装置とも接続できる。前記外部装置は、例えば、外部記憶装置(外部データベース等)、プリンター、外部入力装置、外部表示装置等があげられる。本装置1は、例えば、接続部100に接続された通信デバイスにより、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、他の装置と接続することもできる。具体的に、接続部100は、例えば、バス、シリアルリンク等である。 The connection unit 100 can also be connected to, for example, an external device. Examples of the external device include an external storage device (external database, etc.), a printer, an external input device, an external display device, and the like. The present device 1 can be connected to an external network (the communication line network) by a communication device connected to the connection unit 100, and can also be connected to another device via the external network. Specifically, the connection unit 100 is, for example, a bus, a serial link, or the like.

IO装置30は、例えば、ネットワークなどの各種デバイスとのデータのやり取りを行うためのインタフェースを備えている。 The IO device 30 includes an interface for exchanging data with various devices such as a network.

図1(B)は、本実施形態のメモリアクセスノード20の一例の構成を示す図である。図1に示すように、メモリアクセスノード20は、中央処理部21と、メモリコントローラ22と、メモリ部23とを含む。メモリアクセスノード20とは、例えば、アクセスの対象となるメモリを含むノードである。メモリアクセスノード20は、例えば、NUMAアーキテクチャを構成するNUMAノードである。以下、メモリアクセスノード20を、NUMAノード20やノード20ともいう。 FIG. 1B is a diagram showing a configuration of an example of the memory access node 20 of the present embodiment. As shown in FIG. 1, the memory access node 20 includes a central processing unit 21, a memory controller 22, and a memory unit 23. The memory access node 20 is, for example, a node including a memory to be accessed. The memory access node 20 is, for example, a NUMA node constituting a NUMA architecture. Hereinafter, the memory access node 20 is also referred to as a NUMA node 20 or a node 20.

中央処理部21は、中央処理装置211を含む。中央処理装置211は、プロセッサーコア2111及び接続コントローラ2112を含む。具体的に、中央処理部21は、例えば、複数の中央処理装置211を含むマルチプロセッサーの形態でもよいし、1つの中央処理装置211内に複数のプロセッサーコア2111を含むマルチコアプロセッサーの形態であってもよい。また、本装置1は、例えば、1つの中央処理装置211における各部を別々のNUMAノードに振り分ける形態であってもよい。具体的には、例えば、中央処理装置211を半分、メモリを半分に分けて、それぞれで1つのNUMAノードを構成してもよい。中央処理装置211としては、例えば、CPU、GPU、APU等が挙げられる。本装置1において、中央処理部21により、例えば、本発明のプログラムやその他のプログラムが実行され、また、各種情報の読み込みや書き込みが行われる。また、中央処理装置211は、接続コントローラ2112を介して、他の中央処理装置と接続する。前記他の中央処理装置とは、他のメモリアクセスノード20内の中央処理装置211であってもよいし、同一のメモリアクセスノード20内の中央処理装置211であってもよい。接続コントローラ2112は、例えば、データ伝送路を用いて各中央処理装置211間の接続を可能にする。前記データ伝送路は、特に制限されず、例えば、フロントサイドバス(FSB:Front-Side Bus)等のバス型のデータ伝送路やUPI(Ultra Path Interconnect)等のポイントツーポイント(一対一)接続のインターコネクト等がある。 The central processing unit 21 includes a central processing unit 211. The central processing unit 211 includes a processor core 2111 and a connection controller 2112. Specifically, the central processing unit 21 may be in the form of a multiprocessor including a plurality of central processing units 211, or may be in the form of a multicore processor including a plurality of processor cores 2111 in one central processing unit 211. May be good. Further, the present apparatus 1 may be in a form of allocating each part in one central processing unit 211 to different NUMA nodes, for example. Specifically, for example, the central processing unit 211 may be divided into halves and the memory may be divided into halves, and one NUMA node may be configured for each. Examples of the central processing unit 211 include a CPU, GPU, APU, and the like. In the present apparatus 1, for example, the program of the present invention and other programs are executed by the central processing unit 21, and various information is read and written. Further, the central processing unit 211 is connected to another central processing unit via the connection controller 2112. The other central processing unit may be the central processing unit 211 in another memory access node 20 or the central processing unit 211 in the same memory access node 20. The connection controller 2112 enables connection between each central processing unit 211 using, for example, a data transmission line. The data transmission line is not particularly limited, and is, for example, a bus-type data transmission line such as a front-side bus (FSB) or a point-to-point (one-to-one) connection such as a UPI (Ultra Path Interconnect). There are interconnects and the like.

メモリコントローラ22は、例えば、後述するメモリ部23へのデータの書込み及び読出しを制御する。 The memory controller 22 controls, for example, writing and reading data to and from the memory unit 23, which will be described later.

メモリ部23は、不揮発性メモリ231を含む。不揮発性メモリ231は、前述と同様である。中央処理部21が前記マルチコアの形態である場合、不揮発性メモリ231は、例えば、個々のプロセッサーコアの動作に対応して動作が可能なメモリであってもよい。また、メモリ部23は、例えば、一つ以上の不揮発性のメモリ領域を有するメモリであってもよい。メモリ部23は、メモリコントローラ22を介して、中央処理部21と高速なネットワークで接続される。また、メモリ部23は、例えば、揮発性メモリを含んでもよい。 The memory unit 23 includes a non-volatile memory 231. The non-volatile memory 231 is the same as described above. When the central processing unit 21 is in the form of the multi-core, the non-volatile memory 231 may be, for example, a memory capable of operating corresponding to the operation of each processor core. Further, the memory unit 23 may be, for example, a memory having one or more non-volatile memory areas. The memory unit 23 is connected to the central processing unit 21 via a memory controller 22 via a high-speed network. Further, the memory unit 23 may include, for example, a volatile memory.

オペレーティングシステム部10(以下、OS部10ともいう)は、プロセス解析部11、データ特定部12、及び割当部13を含む。また、オペレーティングシステム部10は、例えば、任意の構成として、スワップ処理部14、及び指定部15を含んでもよい。 The operating system unit 10 (hereinafter, also referred to as an OS unit 10) includes a process analysis unit 11, a data identification unit 12, and an allocation unit 13. Further, the operating system unit 10 may include, for example, a swap processing unit 14 and a designated unit 15 as an arbitrary configuration.

OS部10は、メモリ部23の上で動作する。さらに、OS部10の上では、アプリケーションとしてのプロセスが稼働する。前記プロセスは、特に制限されず、1つでもよいし、1つ以上であってもよい。OS部10は、本装置1内の全てのメモリアクセスノード20を制御する。 The OS unit 10 operates on the memory unit 23. Further, a process as an application runs on the OS unit 10. The process is not particularly limited, and may be one or more. The OS unit 10 controls all the memory access nodes 20 in the apparatus 1.

つぎに、本実施形態のプロセス実行方法の一例を、図2のフローチャートに基づき説明する。本実施形態のプロセス実行方法は、例えば、図1の情報処理装置1を用いて、次のように実施する。なお、本実施形態のプロセス実行方法は、図1の情報処理装置1の使用には限定されない。 Next, an example of the process execution method of the present embodiment will be described with reference to the flowchart of FIG. The process execution method of the present embodiment is carried out as follows, for example, by using the information processing apparatus 1 of FIG. The process execution method of the present embodiment is not limited to the use of the information processing apparatus 1 of FIG.

まず、プロセス解析部11により、OS部10で稼動するプロセスを解析する(S11)。次に、データ特定部12により、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定する(S12)。前記データ及び前記実行ファイルは、例えば、特定のメモリアクセスノードの不揮発性メモリ231上や揮発性メモリ上に格納されているファイル及びデータである。そして、割当部13により、前記データ及び前記実行ファイルに基づいて、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノード20から前記プロセスを実行する中央処理部21、すなわち、中央処理装置211及びプロセッサーコア2111を割り当て(S13)、終了する(END)。割当部13は、例えば、プロセススケジューラ部13ともいい、前記割り当ては、例えば、スケジューリングともいう。なお、スケジューリングとは、例えば、プロセスやスレッド等を中央処理装置211上で動作させることをいう。 First, the process analysis unit 11 analyzes the process running in the OS unit 10 (S11). Next, the data specifying unit 12 identifies the data to be accessed by the process and the executable file of the data based on the process (S12). The data and the executable file are, for example, files and data stored on the non-volatile memory 231 or the volatile memory of a specific memory access node. Then, the central processing unit 21 that executes the process from the plurality of memory access nodes 20 according to the time distance required for access to the non-volatile memory 231 based on the data and the executable file by the allocation unit 13. That is, the central processing unit 211 and the processor core 2111 are allocated (S13) and terminated (END). The allocation unit 13 is also referred to as, for example, the process scheduler unit 13, and the allocation is also referred to as, for example, scheduling. Note that scheduling means, for example, operating a process, a thread, or the like on the central processing unit 211.

具体的に、本実施形態について、図3を用いて説明する。図3は、割当部13による処理の一例を示す図である。図3に示す例では、メモリアクセスノード20として、2つのメモリアクセスノード20a及び20bを示す。図3(A)では、データ特定部12により特定した前記データ及びその実行ファイルの双方が、メモリアクセスノード20aのメモリ部23a(不揮発性メモリ231a)上に存在する。なお、不揮発性メモリ231aは、中央処理部21a(中央処理装置211a)のプロセッサーコア2111aの動作に対応して動作する不揮発性メモリであり、不揮発性メモリ231bは、中央処理部21b(中央処理装置211b)のプロセッサーコア2111bの動作に対応して動作する不揮発性メモリである(以下、同様)。そして、割当部13は、どのプロセスをどのメモリアクセスノード20の中央処理部21で実行すべきかの割り当てを決定する。図3(A)に示す例では、割当部13は、前記解析したプロセスに対し、前記データ及びその実行ファイルの双方を保存しているメモリアクセスノード20aの不揮発性メモリ231aとアクセスにかかる時間距離が最も近い中央処理部21a(中央処理装置211a及びプロセッサーコア2111a)を割り当てる。ここで、不揮発性メモリ231とのアクセスにかかる時間距離とは、例えば、物理的な距離、アクセスに用いるデータ伝送路の経路長、バンド幅(並列性)、D/A(Digital/Analog)変換効率(周波数等)、SWプロトコルの効率等の要素に基づいて、算出されるアクセス時間(アクセス速度)による距離である。具体的に、図3(A)の例では、例えば、メモリアクセスノード20aの不揮発性メモリ231aと中央処理部21a間、及びメモリアクセスノード20bの不揮発性メモリ231bと中央処理部21b間のように、同一メモリアクセスノード20内の不揮発性メモリ231と中央処理部21とのアクセスにかかる時間距離が最も近い。次にアクセスにかかる時間距離が近いのは、メモリアクセスノード20aの不揮発性メモリ231aとメモリアクセスノード20bの中央処理部21b間、及びメモリアクセスノード20bの不揮発性メモリ231bとメモリアクセスノード20aの中央処理部21a間のように、各接続コントローラ2112を介して、直接接続する一方のメモリアクセスノード20内の不揮発性メモリ231と他方のメモリアクセスノード20内の中央処理部21とのアクセスにかかる時間距離である。なお、本例では、メモリアクセスノード20が2つであり、それぞれに1つの中央処理装置211(中央処理部21)がある例を示したが、これに限定されない。メモリアクセスノード20の数及び中央処理装置211の数は、1つ以上、及び2つ以上であってもよい。すなわち、アクセスにかかる時間距離の遠近は、いくつの接続コントローラ2112を介するか、言い換えれば、他の中央処理装置211及び他のメモリアクセスノード20を経由する数によって、決定される。 Specifically, this embodiment will be described with reference to FIG. FIG. 3 is a diagram showing an example of processing by the allocation unit 13. In the example shown in FIG. 3, two memory access nodes 20a and 20b are shown as the memory access nodes 20. In FIG. 3A, both the data specified by the data specifying unit 12 and the execution file thereof exist on the memory unit 23a (nonvolatile memory 231a) of the memory access node 20a. The non-volatile memory 231a is a non-volatile memory that operates in response to the operation of the processor core 2111a of the central processing unit 21a (central processing unit 211a), and the non-volatile memory 231b is the central processing unit 21b (central processing unit 21b). It is a non-volatile memory that operates corresponding to the operation of the processor core 2111b of 211b) (hereinafter, the same applies). Then, the allocation unit 13 determines which process should be executed by the central processing unit 21 of which memory access node 20. In the example shown in FIG. 3A, the allocation unit 13 accesses the non-volatile memory 231a of the memory access node 20a storing both the data and the executable file thereof to the analyzed process, and the time distance required for access. Allocates the nearest central processing unit 21a (central processing unit 211a and processor core 2111a). Here, the time distance required for access to the non-volatile memory 231 is, for example, a physical distance, a path length of a data transmission line used for access, a bandwidth (parallelism), and a D / A (Digital / Analog) conversion. It is a distance based on an access time (access speed) calculated based on factors such as efficiency (frequency, etc.) and SW protocol efficiency. Specifically, in the example of FIG. 3A, for example, between the non-volatile memory 231a and the central processing unit 21a of the memory access node 20a, and between the non-volatile memory 231b and the central processing unit 21b of the memory access node 20b. , The time distance required for access between the non-volatile memory 231 in the same memory access node 20 and the central processing unit 21 is the shortest. The next closest access time is between the non-volatile memory 231a of the memory access node 20a and the central processing unit 21b of the memory access node 20b, and the center of the non-volatile memory 231b of the memory access node 20b and the memory access node 20a. Time required for access between the non-volatile memory 231 in one memory access node 20 and the central processing unit 21 in the other memory access node 20 which are directly connected via each connection controller 2112, such as between the processing units 21a. The distance. In this example, an example is shown in which there are two memory access nodes 20 and each has one central processing unit 211 (central processing unit 21), but the present invention is not limited to this. The number of memory access nodes 20 and the number of central processing units 211 may be one or more and two or more. That is, the perspective of the time distance required for access is determined by the number of connection controllers 2112, in other words, the number of passages via the other central processing unit 211 and the other memory access node 20.

また、図示しないが、前記プロセスが前記データを使用せずに、メモリアクセスノード20内のメモリ部23に存在する前記実行ファイルのみを使用する場合も、図3(A)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記実行ファイルを保存しているノード20の不揮発性メモリ231とアクセスにかかる時間距離が最も近い中央処理部21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。前記プロセスが前記データを使用しないとは、例えば、データ特定部12により、前記データが特定されず、且つ前記実行ファイルのみが特定されたことを意味する。 Further, although not shown, when the process does not use the data and uses only the execution file existing in the memory unit 23 in the memory access node 20, the same as the example shown in FIG. 3A. The allocation unit 13 has the closest central processing unit 21 (central processing unit 211 and processor core 2111) to the non-volatile memory 231 of the node 20 storing the execution file and the time distance required for access to the analyzed process. ) May be assigned. The fact that the process does not use the data means that, for example, the data specifying unit 12 does not specify the data and only the executable file is specified.

図3(B)では、データ特定部12により特定した前記データがメモリ部23b(不揮発性メモリ231b)上に存在し、前記データの実行ファイルがメモリ部23a(不揮発性メモリ231a)上に存在する。すなわち、データとその実行ファイルの保存場所がそれぞれ異なっている。この場合では、割当部13は、前記解析したプロセスに対し、予め設定したプロファイル条件を満たす前記データ及び前記実行ファイルのいずれか一方を保存している不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理部21を割り当てる。前記プロファイル条件は、特に制限されず、任意に設定可能である。具体的には、例えば、データサイズの大きさ(データサイズが大きい又は小さい等)等に関する条件がある。図3(B)に示す例では、不揮発性メモリ231b上のデータは、不揮発性メモリ231a上の実行ファイルよりもデータサイズが大きく、且つ予め設定したプロファイル条件が「データサイズが大きい」であるとする。そうすると、割当部13は、前記解析したプロセスに対し、データサイズが大きい前記データを保存している不揮発性メモリ231bとアクセスにかかる時間距離が最も近い中央処理部21b(中央処理装置211b及びプロセッサーコア2111b)を割り当てる。 In FIG. 3B, the data specified by the data specifying unit 12 exists on the memory unit 23b (nonvolatile memory 231b), and the execution file of the data exists on the memory unit 23a (nonvolatile memory 231a). .. That is, the storage locations of the data and its executable file are different. In this case, the allocation unit 13 is close to the non-volatile memory 231 storing either the data satisfying the preset profile condition and the execution file with respect to the analyzed process. Allocate the central processing unit 21. The profile conditions are not particularly limited and can be set arbitrarily. Specifically, for example, there are conditions regarding the size of the data size (large or small data size, etc.). In the example shown in FIG. 3B, the data on the non-volatile memory 231b has a larger data size than the executable file on the non-volatile memory 231a, and the preset profile condition is "large data size". do. Then, the allocation unit 13 has the central processing unit 21b (central processing unit 211b and processor core) whose access time is closest to the non-volatile memory 231b storing the data having a large data size with respect to the analyzed process. 2111b) is assigned.

図3(C)では、データ特定部12により特定した前記データが不揮発性メモリ231a及び231b上の双方に存在し、前記データの実行ファイルが不揮発性メモリ231a上に存在する。具体的に、図3(C)に示す例は、ハイパーバイザー、マルチプロセッサー及びマルチコアプロセッサー等に対応するデータベース、Enterprise Resource Planning等のアプリケーション等の形態における一例である。すなわち、特定した実行ファイル自身が、「複数のメモリアクセスノード20によって実行されたときに、動作する中央処理部21及びメモリ部23の少なくとも一方に応じて最適に動作する機能(NUMA最適化機能ともいう)」を有している。このように、NUMA最適機構がある場合、割当部13は、どのメモリアクセスノード20で前記実行ファイルを実行しても最適化されるため、前記実行ファイルの位置を考慮せず、前記解析したプロセスに対し、前記データが格納されている不揮発性メモリ231bとアクセスにかかる時間距離が近い中央処理装置21b(中央処理装置211b及びプロセッサーコア2111b)を割り当ててもよい。 In FIG. 3C, the data specified by the data specifying unit 12 exists on both the non-volatile memory 231a and 231b, and the execution file of the data exists on the non-volatile memory 231a. Specifically, the example shown in FIG. 3C is an example in the form of a database corresponding to a hypervisor, a multiprocessor, a multicore processor, etc., an application such as Enterprise Resource Planning, and the like. That is, the specified executable file itself "is a function that optimally operates according to at least one of the central processing unit 21 and the memory unit 23 that operates when executed by a plurality of memory access nodes 20 (also referred to as a NUMA optimization function). I say) ”. As described above, when there is a NUMA optimization mechanism, the allocation unit 13 is optimized regardless of which memory access node 20 executes the executable file. Therefore, the analyzed process is performed without considering the position of the executable file. On the other hand, a central processing unit 21b (central processing unit 211b and processor core 2111b) may be assigned, which has a short access time to the non-volatile memory 231b in which the data is stored.

また、図示しないが、特定した前記実行ファイルが不揮発性メモリ231以外のストレージ(例えば、HDD、クラウドストレージ(ネットワーク上のストレージ)等)に存在し、前記データが不揮発性メモリ231に存在する場合も、図3(B)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記データが格納されている不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理装置21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。より具体的には、例えば、実行ファイルがNVDIMMではなくHDD等から起動し、データファイルはNVDIMMから読む場合等がある。 Further, although not shown, the specified execution file may exist in a storage other than the non-volatile memory 231 (for example, HDD, cloud storage (storage on the network), etc.), and the data may exist in the non-volatile memory 231. Similar to the example shown in FIG. 3B, the allocation unit 13 has a central processing unit 21 (center) whose access time is close to that of the non-volatile memory 231 in which the data is stored for the analyzed process. Processing device 211 and processor core 2111) may be assigned. More specifically, for example, the executable file may be started from the HDD or the like instead of the NVDIMM, and the data file may be read from the NVDIMM.

中央処理装置からメモリ上のデータへのアクセス速度は、前記データが同じメモリアクセスノード内のデータであるか否かによってアクセス速度が異なることが知られている。すなわち、プロセスを実行する中央処理装置から前記中央処理装置と同じメモリアクセスノード内の不揮発性メモリへのアクセスは、高速で処理できる。しかしながら、プロセスを実行する中央処理装置から他のメモリアクセスノード内の不揮発性メモリへのアクセスは、同じメモリアクセスノード内へのアクセス速度と比較して低速で処理される。具体的に、アクセス速度の遅いハードディスク(HDD)への1回のアクセスにかかる時間を100として、他のメモリアクセスノードをまたぐのにかかる時間を0.04とすると、自メモリアクセスノードから他メモリアクセスノードへのアクセス差は、0.04%の差にしかならない。しかしながら、NVDIMM等の高速なユニバーサルメモリであれば、1回のアクセスにかかる時間が前記HDDと比較して極めて短い(例えば、アクセス速度の遅いハードディスク(HDD)への1回のアクセスにかかる時間を100とすると、0.01)であるため、前記他のメモリアクセスノードをまたぐのに必要な時間である0.04の影響が大きく、自メモリアクセスノードから他メモリアクセスノードへのアクセス差が、前記HDDと比較して極めて高くなるという問題がある。しかしながら、本実施形態によれば、プロセスの実行前に、プロセッサーコアの割り当てを行うことで、不揮発性メモリ上のデータに対するアクセスを最適化することができる。このため、本実施形態によれば、例えば、一方の中央処理装置から他方の中央処理装置に接続された不揮発性メモリにアクセスする場合においても、高速なアクセスを可能にする。 It is known that the access speed of the data on the memory from the central processing unit differs depending on whether or not the data is data in the same memory access node. That is, the access from the central processing unit that executes the process to the non-volatile memory in the same memory access node as the central processing unit can be processed at high speed. However, access to the non-volatile memory in another memory access node from the central processing unit that executes the process is processed at a slower speed than the access speed in the same memory access node. Specifically, assuming that the time required for one access to a hard disk (HDD) having a slow access speed is 100 and the time required for straddling another memory access node is 0.04, the time required for straddling another memory access node is 0.04. The access difference to the access node is only 0.04%. However, in the case of a high-speed universal memory such as NVDIMM, the time required for one access is extremely short as compared with the HDD (for example, the time required for one access to a hard disk (HDD) having a slow access speed). If it is 100, it is 0.01), so the influence of 0.04, which is the time required to straddle the other memory access nodes, is large, and the access difference from the own memory access node to the other memory access node is large. There is a problem that it is extremely expensive as compared with the HDD. However, according to the present embodiment, access to the data on the non-volatile memory can be optimized by allocating the processor core before executing the process. Therefore, according to the present embodiment, for example, even when accessing the non-volatile memory connected to the other central processing unit from one central processing unit, high-speed access is possible.

特許文献1の技術では、任意のプロセッサーコアでプロセスを実行してから、そのCPUに近いメモリを割り当てている。しかしながら、本発明は、プロセスの実行前に、前記データ及び前記実行ファイルに基づいて、前記プロセスを実行する前記プロセッサーコア(すなわち、中央処理装置)を割り当てる。これにより、本発明は、特許文献1の技術に比べて、プロセスをより高速に動作させることができる。また、本発明は、特許文献1の技術に比べて、プロセスを高速に動作させるために、必要なシステムの数(コスト)を削減することができる。 In the technique of Patent Document 1, a process is executed on an arbitrary processor core, and then a memory close to the CPU is allocated. However, the present invention allocates the processor core (ie, the central processing unit) that executes the process based on the data and the executable prior to the execution of the process. Thereby, the present invention can operate the process at a higher speed than the technique of Patent Document 1. Further, the present invention can reduce the number (cost) of systems required for operating the process at a high speed as compared with the technique of Patent Document 1.

[実施形態2]
プロセスを実行するプロセッサーコア(中央処理装置)を変更する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1の記載を援用できる。
[Embodiment 2]
An example of processing when the processor core (central processing unit) that executes a process is changed will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first embodiment.

本実施形態において、割当部13は、例えば、図2に示す前記工程(S13)の後、前記プロセスが中央処理部21のプロセッサーコア2111を変更する場合、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコア2111とは異なる他のプロセッサーコア2111を割り当てる。他のプロセッサーコア2111は、例えば、同一のメモリアクセスノード20内の他のプロセッサーコア2111であってもよいし、他のメモリアクセスノード20内のプロセッサーコア2111であってもよい。すなわち、割当部13は、例えば、前記プロセスを実行していたプロセッサーコア2111の次に前記アクセスにかかる時間距離が近い他のプロセッサーコア2111を割り当てる。このように、割当部13は、例えば、前記プロセスの実行をリスケジューリングするともいえる。なお、リスケジューリングとは、例えば、プロセスやスレッド等を中央処理装置上で再度動作させることをいう。 In the present embodiment, for example, when the process changes the processor core 2111 of the central processing unit 21 after the step (S13) shown in FIG. 2, the allocation unit 13 takes time to access the non-volatile memory 231. Depending on the distance, another processor core 2111 different from the processor core 2111 that was executing the process is assigned. The other processor core 2111 may be, for example, another processor core 2111 in the same memory access node 20 or a processor core 2111 in another memory access node 20. That is, the allocation unit 13 allocates, for example, another processor core 2111 having a short time distance for the access next to the processor core 2111 that was executing the process. In this way, the allocation unit 13 can be said to reschedul the execution of the process, for example. Note that rescheduling means, for example, re-running a process, thread, or the like on a central processing unit.

具体的に、本実施形態について、図4を用いて説明する。図4は、割当部13による処理の一例を示す図である。図4に示す例では、メモリアクセスノード20として、2つのメモリアクセスノード20a及び20bを示し、メモリアクセスノード20aにおける中央処理部21a内に2つのプロセッサーコア2111a1及び2111a2を示す。図4(A)では、データ特定部12により特定した前記データが、不揮発性メモリ231a上に存在する。そして、割当部13は、前記プロセスを実行するプロセッサーコア2111a1を変更する場合、前記割り当てたプロセッサーコア2111a1のメモリアクセスノード20aは変更せず、メモリアクセスノード20a内の他のプロセッサーコア2111a2を割り当てる。そして、前記割り当てによって、前記変更の前後で同一のメモリアクセスノード20a内で前記プロセスの実行が継続される。 Specifically, this embodiment will be described with reference to FIG. FIG. 4 is a diagram showing an example of processing by the allocation unit 13. In the example shown in FIG. 4, two memory access nodes 20a and 20b are shown as the memory access nodes 20, and two processor cores 2111a1 and 2111a2 are shown in the central processing unit 21a in the memory access node 20a. In FIG. 4A, the data specified by the data specifying unit 12 exists on the non-volatile memory 231a. Then, when the processor core 2111a1 that executes the process is changed, the allocation unit 13 does not change the memory access node 20a of the allocated processor core 2111a1 and allocates another processor core 2111a2 in the memory access node 20a. Then, by the allocation, the execution of the process is continued in the same memory access node 20a before and after the change.

一方で、例えば、図4(B)に示すように、特定した前記実行ファイル及び前記データの双方がメモリアクセスノード20b内の不揮発性メモリ231b上に存在し、前記プロセスがメモリアクセスノード20a内の中央処理部21aにより実行されている場合、割当部13は、例えば、不揮発性メモリ231bとのアクセスにかかる時間距離に応じて、前記プロセスを実行する中央処理部21aに代えて、新たにメモリアクセスノード20b内の中央処理部21bを、前記プロセスを実行する中央処理部21として割り当てる。 On the other hand, for example, as shown in FIG. 4B, both the specified execution file and the data are present on the non-volatile memory 231b in the memory access node 20b, and the process is in the memory access node 20a. When executed by the central processing unit 21a, the allocation unit 13 newly performs memory access in place of the central processing unit 21a that executes the process, for example, according to the time distance required for access to the non-volatile memory 231b. The central processing unit 21b in the node 20b is assigned as the central processing unit 21 that executes the process.

このように、本実施形態は、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合であっても、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、すなわち、前記データ及び前記実行ファイルの位置を考慮したリスケジューリングを行う。したがって、本実施形態によれば、前記実施形態1と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。なお、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合とは、例えば、プロセッサーコア2111及びプロセスが複数あるなかでスケジューリングを実行する環境下において、プロセッサーコア2111を順番に使用するように前記プロセスの実行を制御する場合等がある。 As described above, in the present embodiment, even when the processor core 2111 (central processing unit 211) for executing the process is changed, the data is determined according to the time distance required for access to the non-volatile memory 231. And rescheduling considering the position of the executable file. Therefore, according to the present embodiment, it is possible to optimize the access to the data on the non-volatile memory as in the first embodiment. When changing the processor core 2111 (central processing unit 211) that executes a process, for example, the processor core 2111 and the processor core 2111 are sequentially used in an environment where scheduling is executed in a plurality of processes. In some cases, the execution of the process is controlled as described above.

関連する技術では、キャッシュを行う際に、アクセスするデータをCPU等の中央処理装置の近くに移動させる処理が必要である。また、キャッシュの実行には、データの書き込みが実行されたときに元データへの書き戻しを行ったり、他にキャッシュしている情報のバリデーションを行ったり等の中間処理が生じる。しかしながら、本実施形態によれば、前記データを直接使用できるため、前述のような処理を行う必要がなく、キャッシュと同等の機能を効率的に実施できる。 In a related technique, when caching is performed, it is necessary to move the data to be accessed closer to a central processing unit such as a CPU. Further, in the execution of the cache, intermediate processing such as writing back to the original data when the data is written or validating other cached information occurs. However, according to the present embodiment, since the data can be used directly, it is not necessary to perform the above-mentioned processing, and the function equivalent to the cache can be efficiently performed.

[実施形態3]
スワップアウトを行う場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1及び2の記載を援用できる。
[Embodiment 3]
An example of processing in the case of swapping out will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first and second embodiments.

本実施形態において、本装置1は、さらに、スワップ処理部14を含む。図5に、スワップ処理部14による処理の一例について示す。スワップ処理部14は、図5に示すように、各メモリアクセスノード20(20a及び20b)の不揮発性メモリ231(231a及び231b)毎にスワップアウトのためのメモリ領域であるスワップ領域を作成し、且つ各中央処理部21(21a及び21b)とアクセスにかかる時間距離が近い不揮発性メモリ231のスワップ領域に、各中央処理部21(21a及び21b)におけるメモリ内のデータをスワップアウトする。「不揮発性メモリ231毎にスワップ領域を作成する」とは、すなわち、不揮発性メモリ231に対応するプロセッサーコア2111毎に、不揮発性メモリ231上にスワップ領域を作成するともいえる。スワップ処理部14は、例えば、各中央処理部21とアクセスにかかる時間距離が最も近い不揮発性メモリ231のスワップ領域に対し、前記スワップアウトを実行してもよいし、次にアクセスにかかる時間距離が近い不揮発性メモリ231のスワップ領域に対し、前記スワップアウトを実行してもよい。各プロセッサーコア2111におけるメモリとは、例えば、揮発性メモリである。 In the present embodiment, the apparatus 1 further includes a swap processing unit 14. FIG. 5 shows an example of processing by the swap processing unit 14. As shown in FIG. 5, the swap processing unit 14 creates a swap area, which is a memory area for swap-out, for each non-volatile memory 231 (231a and 231b) of each memory access node 20 (20a and 20b). Further, the data in the memory in each central processing unit 21 (21a and 21b) is swapped out to the swap area of the non-volatile memory 231 whose access time is close to that of each central processing unit 21 (21a and 21b). "Creating a swap area for each non-volatile memory 231" can be said to mean creating a swap area on the non-volatile memory 231 for each processor core 2111 corresponding to the non-volatile memory 231. For example, the swap processing unit 14 may execute the swap-out with respect to the swap area of the non-volatile memory 231 having the closest access time distance to each central processing unit 21, and the time distance required for the next access. The swap-out may be executed for the swap area of the non-volatile memory 231 close to the above. The memory in each processor core 2111 is, for example, volatile memory.

ここで、スワップアウトとは、例えば、プロセッサーコア2111のメモリに確保されているメモリ領域と同じ領域を不揮発性メモリ231に確保し、前記メモリ領域に書き込まれているデータと同じデータを不揮発性メモリ231に確保したスワップ領域(メモリ領域)に書込み、前記メモリのメモリ領域を解放することをいう。なお、「スワップアウトが必要な場合」とは、例えば、仮想メモリの機能を実現させる場合である。具体的に、例えば、メモリ容量以上の領域を有するディスクが搭載されているサーバにおいて、使わないメモリ領域のデータをディスクに一時退避して、実際に搭載されている以上のメモリ容量を実行する場合等がある。 Here, the swap-out means, for example, that the same area as the memory area reserved in the memory of the processor core 2111 is secured in the non-volatile memory 231 and the same data as the data written in the memory area is stored in the non-volatile memory. It means writing to the swap area (memory area) secured in 231 and releasing the memory area of the memory. The "case where swap-out is required" is, for example, a case where the function of virtual memory is realized. Specifically, for example, in a server equipped with a disk having an area larger than the memory capacity, data in an unused memory area is temporarily saved in the disk, and the memory capacity larger than the actual capacity is executed. And so on.

このように、本実施形態は、メモリアクセスノード20単位で、スワップアウトを実行する。本実施形態によれば、前記実施形態1及び2と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 As described above, in this embodiment, swap-out is executed in units of 20 memory access nodes. According to the present embodiment, the access to the data on the non-volatile memory can be optimized as in the first and second embodiments.

[実施形態4]
新しいデータを作成する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1~3の記載を援用できる。
[Embodiment 4]
An example of processing when creating new data will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first to third embodiments.

本実施形態において、新しいデータは、特に制限されず、例えば、新規作成されるデータでもよいし、上書きされるデータでもよい。具体的には、例えば、データを記憶する場所を示すファイルパスが決まっていないデータ、ファイルパスが既に決まっており且つ同じメモリアクセスノードに記憶されていないデータ、及びファイルパスが既に決まっており且つ他のプロセスと共有されるデータ、等がある。図6に、新しいデータを作成する場合の処理の一例を示す。図6(A)は、ファイルパスが決まっていないデータの場合における処理の一例を示し、図6(B)は、ファイルパスが既に決まっているデータの場合における処理の一例を示す。 In the present embodiment, the new data is not particularly limited, and may be, for example, newly created data or overwritten data. Specifically, for example, data in which a file path indicating a location for storing data has not been determined, data in which a file path has already been determined and is not stored in the same memory access node, and data in which a file path has already been determined. There is data shared with other processes, etc. FIG. 6 shows an example of processing when creating new data. FIG. 6A shows an example of processing in the case of data for which the file path has not been determined, and FIG. 6B shows an example of processing in the case of data for which the file path has already been determined.

まず、前記新しいデータとして、中間ファイル、テンポラリファイル、キャッシュファイル等のファイルパスが決まっていないデータの場合における処理の一例について説明する。この場合において、本装置1は、例えば、さらに、指定部15を含んでもよい。指定部15は、図6(A)に示すように、不揮発性メモリ231(231a及び231b)毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部21とアクセスにかかる時間距離が近い不揮発性メモリ231の前記新たな記憶領域を指定する。より具体的に、例えば、図6(A)に示すように、指定部15により前記新たな記憶領域を指定されたプロセスあるいはOS部10が、プロセスを実行している中央処理部21aとアクセスにかかる時間距離が最も近い揮発性メモリ231aに新しいデータ(テンポラリファイル等)を作成する。 First, as the new data, an example of processing in the case of data such as an intermediate file, a temporary file, and a cache file whose file path is not determined will be described. In this case, the apparatus 1 may further include, for example, a designated unit 15. As shown in FIG. 6A, the designation unit 15 creates a new storage area for each non-volatile memory 231 (231a and 231b), and executes the process as a memory for the newly created data. The new storage area of the non-volatile memory 231 whose access time is close to that of the processing unit 21 is designated. More specifically, for example, as shown in FIG. 6A, the process or the OS unit 10 whose new storage area is designated by the designated unit 15 accesses the central processing unit 21a executing the process. New data (temporary file, etc.) is created in the volatile memory 231a having the closest time distance.

テンポラリファイルに関しては、これまでは、temp変数などで指定された場所に保存されていた。また、ディスクキャッシュや中間ファイルに関しては、テンポラリフォルダや、特定のSSDなどに保存されていた。しかしながら、本実施形態によれば、新しいデータを作成する場合、不揮発性メモリ231毎に保存場所を作成し、プロセスを実行するプロセッサーコア2111と近い記憶領域に保存される。このため、前記実施形態1~3と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 Until now, temporary files have been saved in the location specified by the temp variable. In addition, the disk cache and intermediate files were saved in temporary folders and specific SSDs. However, according to the present embodiment, when new data is created, a storage location is created for each non-volatile memory 231 and the data is stored in a storage area close to the processor core 2111 that executes the process. Therefore, as in the first to third embodiments, the access to the data on the non-volatile memory can be optimized.

次に、前記新しいデータとして、ファイルパスが既に決まっているデータの場合における処理の一例について説明する。具体的に、本例は、ファイルパスが既に決まっており且つ同じメモリアクセスノードに記憶されていないデータ、及びファイルパスが既に決まっており且つ他のプロセスと共有されるデータの場合における処理の一例である。割当部13は、図6(B)に示すように、メモリアクセスノード20a上で実行するプロセス(アプリケーション)Aが、メモリアクセスノード20bにおける不揮発性メモリ231bにアクセスして新たなデータを作成する場合、前記プロセスの数と不揮発性メモリ231b上のデータ及び実行ファイルの少なくとも一方の数に応じて、プロセスAをメモリアクセスノード20bにおける中央処理部21bによって実行させるようにリスケジュールする。なお、プロセスBは、メモリアクセスノード20b上で実行するプロセス(アプリケーション)である。このように、割当部13は、例えば、各プロセスが、できるだけ1つのメモリアクセスノード20に集まるようにリスケジュールする。割当部13は、例えば、さらに、前記データ及び前記データに対応する実行ファイルの少なくとも一方のプロファイルに基づき、前記リスケジュールを行ってもよい。前記プロファイルは、特に制限されず、例えば、前記実行ファイルのプロファイルとしては、データサイズやワーキングセットサイズ、イメージセグメントのサイズ、データセグメントのサイズ等があり、前記データのプロファイルとしては、データのサイズ等がある。なお、本例では、プロセスの数を2、不揮発性メモリ231上のデータの数を1としたが、これに限定されない。割当部13は、例えば、M個のプロセスが、N個のデータ及び実行ファイルの少なくとも一方を共有している場合、M個のプロセスのうち1つのプロセスがアクセスするN個のデータ及び実行ファイルの少なくとも一方がどの不揮発性メモリ231上に格納されているのかを特定し、前記特定した不揮発性メモリ231の数が最も多いメモリアクセスノード20における中央処理部21によって前記プロセスが実行させるようにリスケジュールする。前記1つのプロセス以外のプロセスについても同様に処理する。このように、前記データ及び前記実行ファイルの少なくとも一方に対する前記プロセスのアクセス数に応じてリスケジュールを行う。 Next, as the new data, an example of processing in the case of data for which a file path has already been determined will be described. Specifically, this example is an example of processing in the case of data whose file path has already been determined and is not stored in the same memory access node, and data whose file path has already been determined and is shared with other processes. Is. As shown in FIG. 6B, when the process (application) A executed on the memory access node 20a accesses the non-volatile memory 231b in the memory access node 20b and creates new data in the allocation unit 13. The process A is rescheduled to be executed by the central processing unit 21b in the memory access node 20b according to the number of the processes and the number of at least one of the data and the execution file on the non-volatile memory 231b. The process B is a process (application) executed on the memory access node 20b. In this way, the allocation unit 13, for example, reschedules each process so that it gathers in one memory access node 20 as much as possible. The allocation unit 13 may further perform the reschedule based on, for example, the profile of at least one of the data and the executable file corresponding to the data. The profile is not particularly limited, and for example, the profile of the executable file includes a data size, a working set size, an image segment size, a data segment size, and the like, and the data profile includes a data size and the like. There is. In this example, the number of processes is 2, and the number of data on the non-volatile memory 231 is 1, but the number is not limited to this. For example, when the M processes share at least one of the N data and the execution file, the allocation unit 13 has the N data and the execution file accessed by one of the M processes. Identify on which non-volatile memory 231 at least one is stored, and reschedule the process to be executed by the central processing unit 21 in the memory access node 20 having the largest number of identified non-volatile memories 231. do. Processes other than the above one process are processed in the same manner. In this way, reschedule is performed according to the number of accesses of the process to at least one of the data and the executable file.

このように、本実施形態は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスを実行する中央処理部21を、不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理部21に変更することで、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 As described above, in the present embodiment, when the process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the central process for executing the process is executed. Access to the data on the non-volatile memory can be optimized by changing the unit 21 to the central processing unit 21 whose access time is close to that of the non-volatile memory 231.

[実施形態5]
本実施形態のプログラムは、本発明の方法の各工程を、手順として、コンピュータに実行させるためのプログラムである。本発明において、「手順」は、「処理」と読み替えてもよい。また、本実施形態のプログラムは、例えば、コンピュータ読み取り可能な記録媒体に記録されていてもよい。前記記録媒体としては、特に限定されず、例えば、読み出し専用メモリ(ROM)、ハードディスク(HD)、光ディスク等が挙げられる。
[Embodiment 5]
The program of the present embodiment is a program for causing a computer to execute each step of the method of the present invention as a procedure. In the present invention, "procedure" may be read as "processing". Further, the program of the present embodiment may be recorded on a computer-readable recording medium, for example. The recording medium is not particularly limited, and examples thereof include a read-only memory (ROM), a hard disk (HD), and an optical disk.

以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。 Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the structure and details of the present invention within the scope of the present invention.

<付記>
上記の実施形態の一部または全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、情報処理装置。
(付記2)
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記1記載の情報処理装置。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記3)
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記1又は2記載の情報処理装置。
(付記4)
さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記1から3のいずれかに記載の情報処理装置。
(付記5)
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記1から4のいずれかに記載の情報処理装置。
(付記6)
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、付記1から5のいずれかに記載の情報処理装置。
(付記7)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記1から6のいずれかに記載の情報処理装置。
(付記8)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
(付記9)
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記8記載のプロセス実行方法。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記10)
前記割当工程は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記8又は9記載のプロセス実行方法。
(付記11)
さらに、スワップ処理工程を含み、
前記スワップ処理工程は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記8から10のいずれかに記載のプロセス実行方法。
(付記12)
さらに、指定工程を含み、
前記指定工程は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記8から11のいずれかに記載のプロセス実行方法。
(付記13)
前記割当工程は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、付記8から12のいずれかに記載のプロセス実行方法。
(付記14)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記8から13のいずれかに記載のプロセス実行方法。
(付記15)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記NUMA各ノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部に、プロセス解析手順、データ特定手順、及び割当手順を含む手順を実行させるためのプログラム:
前記プロセス解析手順は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定手順は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当手順は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
(付記16)
前記割当手順は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記15記載のプログラム。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記17)
前記割当手順は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記15又は16記載のプログラム。
(付記18)
さらに、スワップ処理手順を含み、
前記スワップ処理手順は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記15から17のいずれかに記載のプログラム。
(付記19)
さらに、指定手順を含み、
前記指定手順は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記15から18のいずれかに記載のプログラム。
(付記20)
前記割当手順は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるようにリスケジュールする、付記15から19のいずれかに記載のプログラム。
(付記21)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記15から20のいずれかに記載のプログラム。
(付記22)
付記15から21のいずれかに記載のプログラムを記録しているコンピュータ読み取り可能な記録媒体。
<Additional Notes>
Some or all of the above embodiments may be described as, but not limited to, the following appendixes.
(Appendix 1)
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
Based on the data and the executable file, the allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory. Processing equipment.
(Appendix 2)
The information processing apparatus according to Appendix 1, wherein the allocation unit allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance (Appendix 3)
The allocation unit is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The information processing device according to Appendix 1 or 2, to which a processor core is assigned.
(Appendix 4)
In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The information processing apparatus according to any one of Supplementary note 1 to 3, wherein the data in the memory in each central processing unit is swapped out to the swap area.
(Appendix 5)
In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The information processing apparatus according to any one of Supplementary note 1 to 4, which specifies a new storage area.
(Appendix 6)
In the allocation unit, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Described in any of Appendix 1-5, which allocates the process to be executed by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. Information processing equipment.
(Appendix 7)
The information processing apparatus according to any one of Supplementary note 1 to 6, wherein the non-volatile memory is NVDIMM (Non-Volile Dual In-Line Memory Module).
(Appendix 8)
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
(Appendix 9)
The process execution method according to Appendix 8, wherein the allocation process allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. Central processing unit with a short distance (Appendix 10)
The allocation step is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The process execution method according to Appendix 8 or 9, wherein a processor core is assigned.
(Appendix 11)
In addition, it includes a swap processing process
In the swap processing step, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The process execution method according to any one of Supplementary note 8 to 10, wherein the data in the memory in each central processing unit is swapped out to the swap area.
(Appendix 12)
In addition, including designated steps,
In the designated step, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The process execution method according to any one of Supplementary note 8 to 11, which specifies a new storage area.
(Appendix 13)
In the allocation process, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Described in any of Appendix 8-12, which allocates the process to be executed by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. Process execution method.
(Appendix 14)
The process execution method according to any one of Supplementary note 8 to 13, wherein the non-volatile memory is NVDIMM (Non-Volile Dual In-Line Memory Module).
(Appendix 15)
Includes operating system section and multiple memory access nodes
Each NUMA node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
A program for causing the operating system unit to execute a procedure including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis procedure analyzes the process running in the operating system unit and analyzes the process.
The data identification procedure identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation procedure allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
(Appendix 16)
The program according to Appendix 15, wherein the allocation procedure allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. Central processing unit with short time distance (Appendix 17)
The allocation procedure is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The program according to Appendix 15 or 16, which allocates processor cores.
(Appendix 18)
In addition, including swap processing procedures,
In the swap processing procedure, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the time distance required for access is close to each central processing unit of the non-volatile memory. The program according to any one of Supplementary note 15 to 17, wherein the data in the memory in each central processing unit is swapped out to the swap area.
(Appendix 19)
In addition, including the designated procedure,
In the designation procedure, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The program according to any of appendices 15 to 18, which specifies a new storage area.
(Appendix 20)
The allocation procedure is the number of processes and on the non-volatile memory when a process running on one memory access node accesses the non-volatile memory in the other memory access node to create new data. Any of Appendix 15-19, which reschedules the process to be run by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. The program described in.
(Appendix 21)
The program according to any one of Supplementary note 15 to 20, wherein the non-volatile memory is NVDIMM (Non-Volatile Dual In-Line Memory Module).
(Appendix 22)
A computer-readable recording medium recording the program according to any one of Supplementary Notes 15 to 21.

本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。このため、本発明は、不揮発性メモリを搭載したNUMAアーキテクチャにおいて有用である。 According to the present invention, access to data on the non-volatile memory can be optimized. Therefore, the present invention is useful in NUMA architectures equipped with non-volatile memory.

1 情報処理装置
10 オペレーティングシステム部
11 プロセス解析部
12 データ特定部
13 割当部
14 スワップ処理部
15 指定部
20 メモリアクセスノード
21 中央処理部
211 中央処理装置
2111 プロセッサーコア
2112 接続コントローラ
22 リモートコントローラ
23 メモリ部
231 不揮発性メモリ
30 IO装置
100 接続部

1 Information processing device 10 Operating system unit 11 Process analysis unit 12 Data identification unit 13 Allocation unit 14 Swap processing unit 15 Designation unit 20 Memory access node 21 Central processing unit 211 Central processing unit 2111 Processor core 2112 Connection controller 22 Remote controller 23 Memory unit 231 Non-volatile memory 30 IO device 100 connection

Claims (10)

オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、情報処理装置。
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
Based on the data and the executable file, the allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory. Processing equipment.
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、請求項1記載の情報処理装置。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
The information processing apparatus according to claim 1, wherein the allocation unit allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、請求項1又は2記載の情報処理装置。 The allocation unit is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The information processing apparatus according to claim 1 or 2, to which a processor core is assigned. さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、請求項1から3のいずれか一項に記載の情報処理装置。
In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The information processing apparatus according to any one of claims 1 to 3, wherein the data in the memory in each central processing unit is swapped out to the swap area.
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、請求項1から4のいずれか一項に記載の情報処理装置。
In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The information processing apparatus according to any one of claims 1 to 4, which specifies a new storage area.
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、請求項1から5のいずれか一項に記載の情報処理装置。 In the allocation unit, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. One of claims 1-5, which allocates the process to be executed by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. The information processing device described in the section. 前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、請求項1から6のいずれか一項に記載の情報処理装置。 The information processing apparatus according to any one of claims 1 to 6, wherein the non-volatile memory is an NVDIMM (Non-Voltile Dual In-Line Memory Module). オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、請求項8記載のプロセス実行方法。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
The process execution method according to claim 8, wherein the allocation step allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. The central processing unit that is close to the distance
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部に、プロセス解析手順、データ特定手順、及び割当手順を含む手順を実行させるためのプログラム:
前記プロセス解析手順は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定手順は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当手順は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。

Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
A program for causing the operating system unit to execute a procedure including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis procedure analyzes the process running in the operating system unit and analyzes the process.
The data identification procedure identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation procedure allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.

JP2020177474A 2020-10-22 2020-10-22 Information processing device, process execution method, program, and recording medium Active JP7640066B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020177474A JP7640066B2 (en) 2020-10-22 2020-10-22 Information processing device, process execution method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020177474A JP7640066B2 (en) 2020-10-22 2020-10-22 Information processing device, process execution method, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2022068670A true JP2022068670A (en) 2022-05-10
JP7640066B2 JP7640066B2 (en) 2025-03-05

Family

ID=81459865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020177474A Active JP7640066B2 (en) 2020-10-22 2020-10-22 Information processing device, process execution method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP7640066B2 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844577A (en) * 1994-07-26 1996-02-16 Sumisho Electron Kk Data dividing method and multi-processor system
JP2012146105A (en) * 2011-01-12 2012-08-02 Hitachi Ltd Computer system
JP2014505913A (en) * 2010-12-14 2014-03-06 アマゾン テクノロジーズ インク Load balancing between general purpose and graphics processors
JP2015504541A (en) * 2011-11-30 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, program, and computing system for dynamically optimizing memory access in a multiprocessor computing system
JP2017502389A (en) * 2013-12-03 2017-01-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Control device for vehicle
US20170344283A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Data access between computing nodes
JP2018521427A (en) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド System and method for variable lane architecture
JP2019091492A (en) * 2015-01-19 2019-06-13 東芝メモリ株式会社 Memory device and method of controlling nonvolatile memory

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844577A (en) * 1994-07-26 1996-02-16 Sumisho Electron Kk Data dividing method and multi-processor system
JP2014505913A (en) * 2010-12-14 2014-03-06 アマゾン テクノロジーズ インク Load balancing between general purpose and graphics processors
JP2012146105A (en) * 2011-01-12 2012-08-02 Hitachi Ltd Computer system
JP2015504541A (en) * 2011-11-30 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, program, and computing system for dynamically optimizing memory access in a multiprocessor computing system
JP2017502389A (en) * 2013-12-03 2017-01-19 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Control device for vehicle
JP2019091492A (en) * 2015-01-19 2019-06-13 東芝メモリ株式会社 Memory device and method of controlling nonvolatile memory
JP2018521427A (en) * 2015-07-30 2018-08-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド System and method for variable lane architecture
US20170344283A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Data access between computing nodes

Also Published As

Publication number Publication date
JP7640066B2 (en) 2025-03-05

Similar Documents

Publication Publication Date Title
JP7467593B2 (en) Resource allocation method, storage device, and storage system - Patents.com
US9229779B2 (en) Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy
CN106354656B (en) Method and system for storage management
US9977618B2 (en) Pooling of memory resources across multiple nodes
EP2472398B1 (en) Memory-aware scheduling for NUMA architectures
JP2007257097A (en) Virtual computer system and method and program for reconfiguring physical resource thereof
US12242376B2 (en) Paging in thin-provisioned disaggregated memory
JP2007026094A (en) Execution device and application program
KR20100062958A (en) Technique for controlling computing resources
JP2012123556A (en) Virtual server system and control method thereof
CN115794368A (en) Service system, memory management method and device
CN120849314B (en) Cache architecture and method of AXI interconnection module, electronic equipment and storage medium
CN107528871B (en) Data analysis in storage systems
US10664393B2 (en) Storage control apparatus for managing pages of cache and computer-readable storage medium storing program
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
WO2017082323A1 (en) Distributed processing system, distributed processing device, method, and storage medium
JP7640066B2 (en) Information processing device, process execution method, program, and recording medium
CN116932196A (en) Data processing method, device, equipment and system of fusion system
CN107329798B (en) Data replication method and device and virtualization system
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium
US10824640B1 (en) Framework for scheduling concurrent replication cycles
WO2013021441A1 (en) Data processing system and data processing method
JP4872942B2 (en) Storage system, storage device, priority control device, and priority control method
JP7080698B2 (en) Information processing equipment
JP6870390B2 (en) Resource allocation method, connection management server and connection management program in a system based on a virtual infrastructure

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250213

R150 Certificate of patent or registration of utility model

Ref document number: 7640066

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150