JP4241921B2 - Computer system and its resource allocation method - Google Patents

Computer system and its resource allocation method Download PDF

Info

Publication number
JP4241921B2
JP4241921B2 JP2004315537A JP2004315537A JP4241921B2 JP 4241921 B2 JP4241921 B2 JP 4241921B2 JP 2004315537 A JP2004315537 A JP 2004315537A JP 2004315537 A JP2004315537 A JP 2004315537A JP 4241921 B2 JP4241921 B2 JP 4241921B2
Authority
JP
Japan
Prior art keywords
processor
logical
memory
performance
computer
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.)
Expired - Fee Related
Application number
JP2004315537A
Other languages
Japanese (ja)
Other versions
JP2006024180A (en
Inventor
英郎 青木
訓 大島
信二 木村
隆宏 安井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004315537A priority Critical patent/JP4241921B2/en
Publication of JP2006024180A publication Critical patent/JP2006024180A/en
Application granted granted Critical
Publication of JP4241921B2 publication Critical patent/JP4241921B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、計算機において、プロセッサ、メモリまたは入出力装置などの計算機の資源を管理する方法及び計算機の資源をアプリケーションプログラムに割り当てる方法に関する。   The present invention relates to a method for managing computer resources such as a processor, a memory, or an input / output device in a computer, and a method for allocating computer resources to an application program.

計算機の計算能力を向上する手段として、1台の計算機上に複数のプロセッサを搭載する方法がある。   As a means for improving the calculation capability of a computer, there is a method of mounting a plurality of processors on one computer.

計算機上で複数のプロセッサを稼動させる技術の一つとして、Simultaneous Multithreadingまたはハイパースレッディング(以下、ハイパースレッディング)がある。図1に示すように、ハイパースレッディングを採用するプロセッサ10は、レジスタセット(11―0及び11―1)、キャッシュメモリ(12―0及び12―1)、およびI/O割り込み制御部(14―0及び14―1)をプロセッサ内に複数個持つ。これらのハードウェア資源が演算器13、命令デコーダ16及びバスインタフェース17を共有しながら動作することによって、プロセッサが論理的に複数個存在しているようにみせる。   One of the techniques for operating a plurality of processors on a computer is a simulated multithreading or hyperthreading (hereinafter, hyperthreading). As shown in FIG. 1, the processor 10 employing hyper-threading includes a register set (11-0 and 11-1), a cache memory (12-0 and 12-1), and an I / O interrupt control unit (14- A plurality of 0 and 14-1) are provided in the processor. These hardware resources operate while sharing the arithmetic unit 13, the instruction decoder 16 and the bus interface 17, thereby making it appear that a plurality of processors exist logically.

半導体技術の進歩により、1個の物理プロセッサには、従来のプロセッサを構成する回路が複数個分構成できるようになってきた。これを利用して、従来のプロセッサをコアとし、複数個分のコアを1チップに納めたチップマルチプロセッサ又はマルチコアプロセッサ(以下、マルチコアプロセッサ)が開発されている。図2に示すように、マルチコアプロセッサ200内のコアは、キャッシュメモリ(ここでは3次キャッシュ230)及びバスインタフェース240を他のコアと共有している。   With the advance of semiconductor technology, one physical processor can be configured with a plurality of circuits constituting a conventional processor. Using this, a chip multiprocessor or a multicore processor (hereinafter referred to as a multicore processor) in which a conventional processor is used as a core and a plurality of cores are contained in one chip has been developed. As shown in FIG. 2, the core in the multi-core processor 200 shares the cache memory (here, the tertiary cache 230) and the bus interface 240 with other cores.

複数のプロセッサを搭載する計算機において、プロセッサとメモリの接続方式の一つとして対称マルチプロセッサ(以下、SMP)がある。SMPは、すべてのプロセッサを同じメモリバスに接続する。各プロセッサは、どのメモリアドレスを参照しても等しい速度でメモリにアクセスできる。   In a computer equipped with a plurality of processors, there is a symmetric multiprocessor (hereinafter referred to as SMP) as one method of connecting a processor and a memory. SMP connects all processors to the same memory bus. Each processor can access the memory at the same speed regardless of which memory address is referenced.

複数のプロセッサを搭載する計算機において、プロセッサとメモリの別の接続方式として非均一メモリアクセス(以下、NUMA)がある。NUMAでは、各プロセッサが同じメモリバスに接続される必要がない。プロセッサは、自身が接続されるメモリバスにあるメモリのアドレスを参照するときは、等しい速度でアクセスできる。しかし別のメモリバスにあるメモリを参照する場合は、自身が接続されたメモリバスにあるメモリのアクセス速度と比較して、アクセス速度が低下するか又はアドレスによっては参照できないことがある。   In a computer equipped with a plurality of processors, there is non-uniform memory access (hereinafter referred to as NUMA) as another connection method between processors and memories. In NUMA, each processor does not need to be connected to the same memory bus. A processor can access at an equal speed when referring to the address of a memory on the memory bus to which it is connected. However, when referring to a memory on another memory bus, the access speed may be lower than the access speed of the memory on the memory bus to which it is connected, or may not be referred to depending on the address.

複数のプロセッサを搭載する計算機において、プロセッサとメモリの接続方式として上記のSMPとNUMAを組み合わせる場合がある。この場合では、いくつかのプロセッサとメモリを接続してクラスタとし、クラスタを複数個接続したものを計算機とする。この接続方式では、クラスタ内のメモリ及びプロセッサはSMPとして機能し、クラスタ外にあるメモリ及びプロセッサはNUMAとして機能する。   In a computer equipped with a plurality of processors, the above-mentioned SMP and NUMA may be combined as a processor and memory connection method. In this case, a cluster is formed by connecting several processors and memories, and a computer is formed by connecting a plurality of clusters. In this connection method, the memory and processor in the cluster function as SMP, and the memory and processor outside the cluster function as NUMA.

近年の計算機は、従来型のプロセッサ、ハイパースレッディング対応プロセッサ10、マルチコアプロセッサ200、または図3に示すハイパースレッディング対応マルチコアプロセッサ300を、プロセッサとして1つ以上持つ。また計算機は、プロセッサとメモリをSMP、NUMA若しくはSMP及びNUMAの混在によって構成する。   Recent computers have one or more conventional processors, the hyperthreading-compatible processor 10, the multicore processor 200, or the hyperthreading-compatible multicore processor 300 shown in FIG. The computer configures the processor and the memory by SMP, NUMA, or a mixture of SMP and NUMA.

上記の計算機において、プログラムが効率よく実行されるためには、プログラムの実体であるプロセスを、適切なプロセッサとメモリに割り付ける必要がある。特にNUMAではプロセスが動作するプロセッサとプログラムが置かれたメモリの場所によって計算の効率が著しく異なる。計算機のハードウェア特性による実行効率の低下を避けるため、特許文献1又は非特許文献1のようにプロセスの実行においてプロセッサとメモリを固定する手段が開発されている。また特許文献2のようにプロセスの処理の一部を特定のプロセッサに固定化する手段もある。さらに特許文献3は、プロセスが物理メモリを獲得する際に適切なメモリを割り当てている。   In the above computer, in order for a program to be executed efficiently, it is necessary to allocate a process that is the substance of the program to an appropriate processor and memory. In particular, in NUMA, the calculation efficiency varies greatly depending on the processor on which the process operates and the memory location where the program is placed. In order to avoid a decrease in execution efficiency due to the hardware characteristics of the computer, as in Patent Document 1 or Non-Patent Document 1, means for fixing a processor and a memory in process execution has been developed. Further, there is a means for fixing a part of the processing of a process to a specific processor as in Patent Document 2. Furthermore, Patent Document 3 allocates an appropriate memory when a process acquires physical memory.

特開平7―325791号公報Japanese Patent Laid-Open No. 7-325791 特開2003―248666号公報JP 2003-248666 A United States Patent Application:0040019891United States Patent Application: 0040019991 「ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ」、インテル社、2002年、Intel Technology Journal Volume 6 Issue 1、p.4“Hyper-Threading Technology Architecture and Microarchitecture”, Intel, 2002, Intel Technology Journal Volume 6 Issue 1, p. 4

近年の計算機は、ハードウェア構成が複雑化しており、ユーザ又はアプリケーションプログラムがハードウェアの性能特性を把握することが困難になっている。   Computers in recent years have complicated hardware configurations, making it difficult for users or application programs to grasp the performance characteristics of the hardware.

ハイパースレッディング対応プロセッサを使用する場合、ソフトウェアが認識するのは、論理的なプロセッサであり、OS(オペレーティングシステム)はプロセスに論理プロセッサを割り付ける。論理プロセッサは、他の論理プロセッサとハードウェアを共有しているため、キャッシュの共有による性能向上が期待できる反面、演算器の競合によって性能が低下する可能性がある。性能が向上するかどうかは、1個の物理プロセッサ上に存在する各論理プロセッサがどのような処理特性を持つプロセスを実行するかに依存する。   When using a hyperthreading processor, the software recognizes a logical processor, and the OS (operating system) allocates a logical processor to the process. Since the logical processor shares hardware with other logical processors, it can be expected to improve the performance by sharing the cache, but there is a possibility that the performance may deteriorate due to the competition of the arithmetic units. Whether or not the performance is improved depends on what processing characteristics each logical processor existing on one physical processor executes.

マルチコアプロセッサは、1個の物理プロセッサ上に存在するキャッシュ及びI/O用バスをコア間で共有する。それぞれのコアで実行するプロセスの処理内容に関連がある場合、キャッシュヒットが期待できる。しかしコアで実行するプロセスの処理内容に関連がない場合、キャッシュのミスヒットを誘発し、性能が低下するという問題がある。   A multi-core processor shares a cache and an I / O bus existing on one physical processor among cores. A cache hit can be expected if there is a relationship between the processing contents of the processes executed in each core. However, if there is no relation to the processing contents of the process executed in the core, there is a problem that a cache miss is induced and the performance is lowered.

NUMAのようなハードウェアの性能特性が非均一な計算機では、OSがプロセスの実行の際に、実行プロセッサを固定し、かつ使用するメモリを特定の領域に制限する手段を持つことがある。ユーザ又はアプリケーションプログラムは、OSが持つ手段を使って、プロセスを実行するプロセッサを指定し、性能向上を図ってきた。しかし上述したように、ハイパースレッディング又はマルチコアに対応したプロセッサは、ユーザまたはアプリケーションプログラムから、正確な性能情報を得る手段がないため、実行プロセスの性能要件を満たすプロセッサを特定することが困難である。   In a computer with non-uniform hardware performance characteristics such as NUMA, the OS may have means for fixing an execution processor and limiting a memory to be used to a specific area when executing a process. A user or an application program has used a means possessed by the OS to designate a processor that executes a process, thereby improving performance. However, as described above, a processor that supports hyperthreading or multi-core has no means for obtaining accurate performance information from a user or an application program, and thus it is difficult to specify a processor that satisfies the performance requirements of the execution process.

近年のプロセッサは、消費電力の削減又は熱暴走を回避する手段として、省電力で駆動する機構を持つものがある。プロセッサの省電力機構は、プロセッサの動作周波数を低下する、又はプロセッサ内のキャッシュメモリの一部若しくは演算器の一部に対して電力の供給を停止する、といった手段を用いて実装されている。プロセッサの省電力機構が働く場合、プロセッサは本来の性能で動作できない。複数のプロセッサを持つ計算機では、消費電力の削減又は発熱の回避を目的として、状況に応じて一部のプロセッサを省電力で動作させる又は常に一部のプロセッサを省電力で動作させる場合がある。このような環境の下でプロセスを実行する場合、ユーザ又はアプリケーションが実行に最適なプロセッサとメモリを指定してプロセスを起動するのは困難である。   Some recent processors have a power-saving driving mechanism as means for reducing power consumption or avoiding thermal runaway. The power saving mechanism of the processor is implemented using means such as reducing the operating frequency of the processor or stopping the supply of power to a part of the cache memory or a part of the arithmetic unit in the processor. When the power saving mechanism of the processor works, the processor cannot operate at its original performance. In a computer having a plurality of processors, for the purpose of reducing power consumption or avoiding heat generation, some processors may be operated with power saving or always some processors may be operated with power saving depending on the situation. When executing a process under such an environment, it is difficult for a user or an application to start the process by specifying an optimal processor and memory for execution.

本発明が解決しようとする課題は、複雑なハードウェア構成の計算機においても、プログラムの実行に最適な資源割当てを実施し、計算性能を向上させることである。さらに計算機の稼動中にハードウェアの構成変更及び性能特性の変更が発生しても、最適な資源割当てを保証することである。   The problem to be solved by the present invention is to improve the calculation performance by allocating resources optimal for program execution even in a computer having a complicated hardware configuration. Furthermore, even if a hardware configuration change and a performance characteristic change occur during the operation of the computer, an optimum resource allocation is guaranteed.

本発明は、物理プロセッサを複数個有し、各物理プロセッサが複数の論理プロセッサとして機能する計算機において、新しいプロセスに論理プロセッサを割り当てる際に、このプロセスとすでに論理プロセッサを割当済のプロセスとの依存関係に応じて物理プロセッサの性能を引き出すように論理プロセッサを割り当てる。さらにプロセスが要求する実行性能で実行できるように、OSが必要な資源を割り当てる。   According to the present invention, when a logical processor is assigned to a new process in a computer having a plurality of physical processors and each physical processor functions as a plurality of logical processors, the dependence of this process on the process to which the logical processor has already been assigned is determined. A logical processor is allocated so as to extract the performance of the physical processor according to the relationship. Furthermore, the OS allocates necessary resources so that it can be executed with the execution performance required by the process.

本発明により、計算機が複雑なハードウェア構成となっていても、ユーザの実行するプログラムが常に最適な性能な性能で動作する。   According to the present invention, even if the computer has a complicated hardware configuration, the program executed by the user always operates with optimum performance.

計算機が起動する際、OSは初期化処理の中で、プロセッサの物理構成情報と論理構成情報を取得する。またOSは、これらの情報を使って、ハードウェアの性能特性を算出し、プロセッサについては演算距離テーブル、メモリについてはメモリ距離テーブルとしてメモリ上に保存する。またOSは、プロセス間の親子関係又はメモリ共有情報などからプロセスの協調関係を決めるプロセスグループ管理情報も初期化する。   When the computer is started, the OS acquires the physical configuration information and logical configuration information of the processor during the initialization process. In addition, the OS uses these pieces of information to calculate hardware performance characteristics, and stores them in the memory as a calculation distance table for the processor and a memory distance table for the memory. The OS also initializes process group management information that determines a cooperative relationship between processes based on a parent-child relationship between processes or memory sharing information.

OSは、ハードウェアの性能特性とプロセスグループから、プロセスの実行に最適な資源を割り当てる。さらにOSは、プロセスに対して性能品質を指定する資源割当インタフェースを備え、これによりプロセスが要求する性能を実現する。   The OS allocates resources optimal for process execution from the performance characteristics of the hardware and the process group. Furthermore, the OS includes a resource allocation interface for designating performance quality for the process, thereby realizing the performance required by the process.

ここでプロセスとは、複数のプログラムを並行して実行するマルチプログラミングを行う際の基本的なプログラム単位である。またプロセスは、OSが資源を割り当てて処理を行う際の仕事の単位であり、この意味ではタスクと同義に用いられる。   Here, the process is a basic program unit for performing multiprogramming in which a plurality of programs are executed in parallel. A process is a unit of work when an OS allocates resources and performs processing, and in this sense, it is used synonymously with a task.

ハードウェアの構成情報の変化がある場合、OSは構成の変化に応じて性能特性情報を更新する。   When there is a change in hardware configuration information, the OS updates the performance characteristic information according to the change in configuration.

本発明の実施例について、図4を用いて説明する。図4において計算機50は、ハイパースレッディング対応のマルチコアプロセッサ80−1及び80−2を持つ。それぞれの物理プロセッサは、図3で説明したマルチコアプロセッサであり、80−1は、81−1並びに82−1の2つのコア、3次キャッシュ83−1及びバスインタフェース84−1を主要な回路として備える。   An embodiment of the present invention will be described with reference to FIG. In FIG. 4, a computer 50 has multi-core processors 80-1 and 80-2 that support hyperthreading. Each physical processor is the multi-core processor described in FIG. 3, and 80-1 has two cores 81-1 and 82-1, a tertiary cache 83-1, and a bus interface 84-1, as main circuits. Prepare.

コア81−1は、図3におけるコア310と同様に、2つのレジスタセットを持つ。各レジスタセットは演算器および2次キャッシュメモリを共有する。これにより、コア81−1は、ソフトウェアに対して2つの論理CPU53−0及び53−1として機能する。他のコアである82−1、81−2及び82−2についても同様であり、論理CPU53−2〜53−7として機能する。コア81−1とコア82−1は、3次キャッシュ83−1とバスインタフェース84−1を共有して使用する。   The core 81-1 has two register sets, like the core 310 in FIG. Each register set shares an arithmetic unit and a secondary cache memory. As a result, the core 81-1 functions as two logical CPUs 53-0 and 53-1 for software. The same applies to the other cores 82-1, 81-2, and 82-2, which function as logical CPUs 53-2 to 53-7. The core 81-1 and the core 82-1 share and use the tertiary cache 83-1 and the bus interface 84-1.

マルチコアプロセッサ80−1及び80−2は、共有メモリバス51に接続しており、メモリコントローラ54を介して主記憶メモリ52を共有する。さらに80−1及び80−2は、入出力コントローラ55経由で、2次記憶装置56及び入出力装置57にアクセスできる。2次記憶装置56には、OS60及びアプリケーションプログラムのプロセス71〜74が格納されている。ここでは、プロセス71,72、親プロセス73は互いに独立なプロセスであり、親プロセス73と子プロセス74は依存関係のあるプロセスの例を示している。   The multi-core processors 80-1 and 80-2 are connected to the shared memory bus 51 and share the main memory 52 via the memory controller 54. Further, 80-1 and 80-2 can access the secondary storage device 56 and the input / output device 57 via the input / output controller 55. The secondary storage device 56 stores the OS 60 and application program processes 71 to 74. Here, the processes 71 and 72 and the parent process 73 are independent processes, and the parent process 73 and the child process 74 are examples of processes having a dependency relationship.

図4におけるOS60は、実施例の資源管理部61を持つ。資源管理部61は、プロセッサの性能情報を保持する演算距離テーブル90、メモリアクセスに関する性能情報を保持するメモリ距離テーブル110及びプロセス間の協調関係を保持するプロセスグループ情報120を持つ。   The OS 60 in FIG. 4 has a resource management unit 61 of the embodiment. The resource management unit 61 has a calculation distance table 90 that holds processor performance information, a memory distance table 110 that holds performance information related to memory access, and process group information 120 that holds a cooperative relationship between processes.

プロセス71〜74から資源確保要求があると、OSのプロセス管理部62は、管理する情報を参照して、適切な資源を割り付ける。   When there is a resource securing request from the processes 71 to 74, the process management unit 62 of the OS refers to information to be managed and allocates appropriate resources.

資源管理部61およびプロセス管理部62は、OS60の一部であり、主記憶メモリ52に格納され、1つ又は複数の論理CPU53によって実行される。   The resource management unit 61 and the process management unit 62 are part of the OS 60, stored in the main memory 52, and executed by one or more logical CPUs 53.

本発明を実施する際のOSの初期化手順を図4及び図5を使用して説明する。ステップ100では、計算機のBIOS(Basic Input Output System)などが、ソフトウェアが主記憶メモリ及びプロセッサを使えるようにセットアップする。この際、計算機は、計算機の初期化を実行するためのブートプロセッサを決定する。さらにステップ100では、ブートプロセッサが2次記憶装置56にアクセスし、OS60を起動するためのプログラムを主記憶メモリ52に読み込む。このブートプロセッサは、読み込まれたOS起動プログラムを実行し、OS60の起動を開始する。   An OS initialization procedure when implementing the present invention will be described with reference to FIGS. In step 100, the computer's BIOS (Basic Input Output System) or the like sets up the software so that the main memory and the processor can be used. At this time, the computer determines a boot processor for executing initialization of the computer. In step 100, the boot processor accesses the secondary storage device 56 and reads a program for starting the OS 60 into the main memory 52. The boot processor executes the read OS boot program and starts booting the OS 60.

ブートプロセッサは、図5のステップ101において、演算距離テーブルを作成するためのプログラムを実行し、性能情報をメモリに格納する。ブートプロセッサは、この情報をもとに演算距離テーブルを作成する。   In step 101 of FIG. 5, the boot processor executes a program for creating a calculation distance table and stores performance information in the memory. The boot processor creates a calculation distance table based on this information.

さらにブートプロセッサは、ステップ102において、メモリ距離テーブルを作成するためのプログラムを実行し、性能情報をメモリに格納する。ブートプロセッサは、この情報をもとにメモリ距離テーブルを作成する。ブートプロセッサは、ステップ103において計算機上の各種デバイスをセットアップする。具体的には、アプリケーションプログラムの起動、デバイスドライバの組込みを行う。ブートプロセッサは、ステップ104において、計算機稼動中に使用するプロセスグループテーブルの初期化を行う。OSは、ステップ105において、サービスに必要なプログラムを起動する。   Further, in step 102, the boot processor executes a program for creating a memory distance table and stores performance information in the memory. The boot processor creates a memory distance table based on this information. In step 103, the boot processor sets up various devices on the computer. Specifically, the application program is activated and a device driver is incorporated. In step 104, the boot processor initializes a process group table used during operation of the computer. In step 105, the OS activates a program necessary for the service.

ここで図6を用いて、ステップ101の詳細について説明する。ステップ111では、OSは、演算距離テーブルのメモリ領域及び演算距離テーブルの計算に使用する作業用メモリを主記憶メモリに確保する。   Details of step 101 will be described here with reference to FIG. In step 111, the OS secures a memory area of the calculation distance table and a working memory used for calculation of the calculation distance table in the main memory.

ステップ112では、OSは、計算機上の論理プロセッサの単体性能を計算する。計算方法としては、各論理プロセッサ(論理CPU)について、メモリ上に置いたデータの算術計算を実行する。この方法では、まず計算のためのメモリ領域を確保し、初期値を代入する。さらに計算用のレジスタを初期化する。そして次の処理を、性能指標として利用ができる十分な試行回数(例えば100回)繰り返す。   In step 112, the OS calculates the unit performance of the logical processor on the computer. As a calculation method, arithmetic calculation of data placed on the memory is executed for each logical processor (logical CPU). In this method, first, a memory area for calculation is secured and an initial value is substituted. Further, the register for calculation is initialized. Then, the next processing is repeated a sufficient number of trials (for example, 100 times) that can be used as a performance index.

(1)プロセッサのクロックカウンタを参照し、プロセッサのレジスタに保存する。(2)先に確保したメモリに対して加算などの算術演算を行う。(3)再度、プロセッサのクロックカウンタを参照し、(1)との差分を取ることによって実行クロック数を測定する。(4)(3)で求めた実行クロックと現在までの処理回数をレジスタに記録する。   (1) Refer to the clock counter of the processor and store it in the register of the processor. (2) An arithmetic operation such as addition is performed on the previously secured memory. (3) Referring again to the clock counter of the processor, the number of execution clocks is measured by taking the difference from (1). (4) The execution clock obtained in (3) and the number of processings up to the present are recorded in a register.

(1)〜(4)を十分な回数(例えば100回)繰り返した後、総クロック数と処理回数から総クロック数の平均値を求める。取得した結果は、ステップ111で確保している作業用メモリに保存する。   After repeating (1) to (4) a sufficient number of times (for example, 100 times), an average value of the total number of clocks is obtained from the total number of clocks and the number of processes. The acquired result is stored in the work memory secured in step 111.

ステップ113では、OSは、ステップ112で行ったのと同じ測定を複数のプロセッサで同時に行う。実行するプロセッサの組は、演算器の競合が考えられるプロセッサの組み合わせすべてである。計算結果は、ステップ112と同様に作業用メモリに保存する。   In step 113, the OS simultaneously performs the same measurement as that performed in step 112 on a plurality of processors. The combinations of processors to be executed are all combinations of processors that can be considered to compete with each other. The calculation result is stored in the work memory in the same manner as in step 112.

ステップ114では、OSは、ステップ112と113で計算した結果を比較する。ステップ113で実行した論理プロセッサの組において、計算結果がステップ112と比較して著しく低ければ、OSは、演算器が競合していると判定する。この場合、該当するプロセッサの組を表す演算距離テーブルに競合を示す数値(例えば−1)を設定する。   In step 114, the OS compares the results calculated in steps 112 and 113. In the set of logical processors executed in step 113, if the calculation result is significantly lower than that in step 112, the OS determines that the arithmetic units are competing. In this case, a numerical value (for example, −1) indicating competition is set in the calculation distance table representing the corresponding processor pair.

ステップ115では、OSは、ステップ113と同様に複数の論理プロセッサの組について、性能測定を行う。計算に使うアルゴリズムは、ステップ112においてメモリ上に置くデータを1ヶ所ではなく、一定範囲(たとえば64KBごと)に分散して置いて計算する。計算結果は、作業用メモリに格納する。   In step 115, the OS performs performance measurement on a set of a plurality of logical processors as in step 113. In the algorithm used for the calculation, the data to be placed on the memory in step 112 is distributed not in one place but in a certain range (for example, every 64 KB). The calculation result is stored in the working memory.

ステップ116では、OSは、ステップ115の結果を各論理プロセッサ単独のメモリアクセスを伴う性能結果と比較する。性能が向上しているか又は低下が見られない場合、プロセッサ内のキャッシュがヒットしていると判定する。この場合、該当するプロセッサの組を表す演算距離テーブルに共有を示す数値を設定する。   In step 116, the OS compares the result of step 115 with the performance result with memory access of each logical processor alone. If the performance is improved or no decrease is observed, it is determined that the cache in the processor is hit. In this case, a numerical value indicating sharing is set in the calculation distance table representing the corresponding processor set.

ステップ117では、OSは、ステップ111からステップ116までで、数値が設定されなかったプロセッサの組について標準の数値を設定する。   In step 117, the OS sets a standard numerical value for the set of processors in which the numerical value is not set in steps 111 to 116.

ステップ111を図4の計算機50で実行した場合、演算距離テーブルは、例えば図7に示すものとなる。演算距離として示される数値は例えば0を基準とする性能差を示すものであってもよい。この場合には、数値の大きい論理プロセッサは、数値0の論理プロセッサに比べて性能が低いことを示す。ステップ112では、すべての論理プロセッサについてほぼ等しい性能結果が得られる。ステップ113の実行後、ステップ114において、演算器を共有している論理プロセッサの組で競合を示す−1が設定される。ステップ115及びステップ116では、マルチコアプロセッサにおいて演算器の競合がなく3次キャッシュを共有できるプロセッサの組が検出され、演算距離テーブルに数値0が設定される。最後に、ステップ117において、残りのプロセッサの組に数値2が設定され、ステップ101を終了する。   When step 111 is executed by the computer 50 of FIG. 4, the calculation distance table is, for example, as shown in FIG. The numerical value indicated as the calculation distance may indicate a performance difference based on 0, for example. In this case, the logical processor having a large numerical value indicates lower performance than the logical processor having the numerical value 0. In step 112, approximately equal performance results are obtained for all logical processors. After execution of step 113, in step 114, -1 indicating competition is set in the set of logical processors sharing the arithmetic unit. In step 115 and step 116, a set of processors that can share the tertiary cache without any competition of arithmetic units in the multi-core processor is detected, and a numerical value 0 is set in the arithmetic distance table. Finally, in step 117, a numerical value 2 is set for the remaining processor pairs, and step 101 is terminated.

なおステップ101は、ハードウェア側があらかじめプロセッサの論理構成および物理構成の対応を通知する、全てのプロセッサは同じ性能を持つ又は過去に計算した結果が使用できるなどの条件により、計算の一部を省略することが可能である。   Note that step 101 omits a part of the calculation because the hardware side notifies the correspondence between the logical configuration and the physical configuration of the processor in advance, all the processors have the same performance, or the results calculated in the past can be used. Is possible.

図8、図9及び図10を用いてメモリ距離テーブルについて説明する。図8は、2個の物理プロセッサをSMP構成にしたハードウェアをノードとした計算機40である。ノード41−0は、コア42−1、42−2と主記憶メモリ44−0を有し、ノード41−1は、コア42−3、42−4と主記憶メモリ44−1を有する。ノード41−0及びノード41−1の2つのノードは、ノードスイッチ45につながるノードバス46と接続することによって、NUMA型計算機として構成している。   The memory distance table will be described with reference to FIGS. FIG. 8 shows a computer 40 having hardware as a node in which two physical processors have an SMP configuration. The node 41-0 has cores 42-1 and 42-2 and a main memory 44-0, and the node 41-1 has cores 42-3 and 42-4 and a main memory 44-1. The two nodes of the node 41-0 and the node 41-1 are configured as a NUMA computer by connecting to a node bus 46 connected to the node switch 45.

このような構成の場合、各プロセッサが主記憶メモリへのアクセスする速度は、参照するアドレスによって異なる。この様子を、図9を使って説明する。論理プロセッサ43−0は、ノード41−0に存在するため、ノード41−0に搭載された主記憶メモリ44−0を参照する速度は、ノード41−1に搭載された主記憶メモリ44−1を参照するよりも速い。本発明では、このアクセス速度の違いをメモリ距離として管理する。   In such a configuration, the speed at which each processor accesses the main memory differs depending on the address to be referenced. This will be described with reference to FIG. Since the logical processor 43-0 exists in the node 41-0, the speed for referring to the main memory 44-0 mounted on the node 41-0 is the main memory 44-1 mounted on the node 41-1. Faster than seeing. In the present invention, this difference in access speed is managed as a memory distance.

メモリ距離を算出するステップ102では、ブートプロセッサは、はじめに計算機の主記憶メモリのサイズを取得し、メモリ距離の測定間隔と測定サイズを決定する。次にブートプロセッサは、論理プロセッサごとに、メモリ距離を測定する。この測定では、決定した測定間隔に基づいてメモリアクセスを行い、アクセスに要したクロック数を算出する。この際、プロセッサが提供するキャッシュ未使用命令を使うことによって、必ず主記憶メモリまでアクセスする。さらにステップ102では、ブートプロセッサは、測定結果をまとめて、図10のようなメモリ距離テーブル110を作成する。メモリ距離として示される数値は例えば100を基準とする性能比を示すものであってもよい。   In step 102 for calculating the memory distance, the boot processor first obtains the size of the main memory of the computer, and determines the measurement interval and the measurement size of the memory distance. The boot processor then measures the memory distance for each logical processor. In this measurement, memory access is performed based on the determined measurement interval, and the number of clocks required for the access is calculated. At this time, the main memory is always accessed by using a cache unused instruction provided by the processor. Further, in step 102, the boot processor collects the measurement results and creates a memory distance table 110 as shown in FIG. The numerical value indicated as the memory distance may indicate a performance ratio based on 100, for example.

図4に示す計算機50は、すべての論理プロセッサのメモリ距離が同一となる。   In the computer 50 shown in FIG. 4, the memory distances of all the logical processors are the same.

なおステップ102では、上記の処理に加えて次の処理を追加することによって、キャッシュヒットを考慮したメモリ距離テーブルを作成することも可能である。具体的には、上記の処理を実行した後、キャッシュ未使用命令の代わりにキャッシュ可能命令を使用して再び同じ処理を実行する。同じメモリ領域に関して、キャッシュ未使用命令で実行した結果とキャッシュ可能命令で実行した結果を比較する。キャッシュ可能命令を使用した場合に大幅な短縮が見られる場合は、キャッシュによる効果があるとみなして、当該メモリ領域のメモリ距離をより小さな値で設定する。   In step 102, it is also possible to create a memory distance table in consideration of cache hits by adding the following processing in addition to the above processing. Specifically, after executing the above processing, the same processing is executed again using a cacheable instruction instead of the cache unused instruction. For the same memory area, the result executed by the cache unused instruction is compared with the result executed by the cacheable instruction. If a significant reduction is observed when using a cacheable instruction, it is considered that the cache is effective, and the memory distance of the memory area is set to a smaller value.

またOSは、特定のメモリ空間においてスワッピングが発生している場合、当該メモリ空間のメモリ距離を一時的に大きく設定することもできる。   In addition, when swapping occurs in a specific memory space, the OS can temporarily set the memory distance of the memory space to be large.

図11は、ステップ104で初期化を行うプロセスグループ情報120を示している。ステップ104では、OSは、プロセスグループを管理するためのテーブルを主記憶メモリ上に確保し初期化する。ここで確保するプロセスグループの管理テーブルは、プロセスグループID、当該プロセスグループが保証すべき演算距離及びメモリ距離、当該プロセスグループが期待する最大の演算距離及びメモリ距離、及び当該プロセスグループに所属するプロセスのリストを含む。この例では、親プロセス73と子プロセス74がプロセスグループを構成し、このプロセスグループに属するプロセスには演算距離が−1、メモリ距離が500になるような論理CPU53を割り当てられないことを示している。さらにプロセスが複数のプロセスグループに所属する可能性を考慮して、プロセスIDをキーとして当該プロセスの性能指標とプロセスグループIDが検索できる逆引きテーブルを用意してもよい。   FIG. 11 shows process group information 120 that is initialized in step 104. In step 104, the OS secures and initializes a table for managing process groups in the main memory. The process group management table secured here includes a process group ID, a calculation distance and a memory distance to be guaranteed by the process group, a maximum calculation distance and a memory distance expected by the process group, and a process belonging to the process group. Contains a list of In this example, a parent process 73 and a child process 74 constitute a process group, and a process belonging to this process group cannot be assigned a logical CPU 53 having an operation distance of −1 and a memory distance of 500. Yes. Further, in consideration of the possibility that the process belongs to a plurality of process groups, a reverse lookup table may be prepared in which the performance index and process group ID of the process can be searched using the process ID as a key.

またステップ104では、必要に応じてプロセスの標準性能指標又は特定のプロセス若しくはプロセスグループの性能指標を記録したファイルを2次記憶装置から読み出し、テーブルに反映することも可能である。   In step 104, a file in which a standard performance index of a process or a performance index of a specific process or process group is recorded can be read from the secondary storage device and reflected in a table as necessary.

ここで実施形態のプロセス管理について図12を用いて説明する。OSのプロセス管理部62は、各プロセスを生成する際にプロセス管理テーブルをOSの記憶領域内に作成し、そのプロセスの管理に使用する。各プロセス管理テーブルはそのプロセスの実行状態を記録しているので、OSは、プロセスの切換を行ったとき実行を再開始するプロセスのプロセス管理テーブルの実行状態を参照して中断されたプロセスの実行を再開始する。またOSは、プロセスに新たな資源(例えばメモリ、ファイル)を割り当てた際には、プロセス管理テーブル又は関連するデータ構造体にアクセスしてその資源管理情報を更新する。   Here, the process management of the embodiment will be described with reference to FIG. The OS process management unit 62 creates a process management table in the storage area of the OS when generating each process, and uses the process management table for managing the process. Since each process management table records the execution state of the process, the OS refers to the execution state of the process management table of the process whose execution is restarted when the process is switched. Restart. Further, when a new resource (for example, a memory or a file) is allocated to a process, the OS accesses the process management table or a related data structure and updates the resource management information.

プロセス管理テーブルには、通常のOSに見られるように、当該プロセスについて、プロセスID、グループID、ファイル記述子のリスト、コンテキストの格納領域、親プロセスへの参照情報、子プロセスへの参照情報、および仮想アドレス空間情報などをもつ。さらに本発明は、プロセスが割り付けられている論理プロセッサ番号、プロセスが通常使用する最小演算距離、最大演算距離、最小メモリ距離、最大メモリ距離、所属するプロセスグループIDのリストを格納する。   The process management table includes a process ID, a group ID, a file descriptor list, a context storage area, reference information for a parent process, reference information for a child process, And virtual address space information. Furthermore, the present invention stores a list of logical processor numbers to which processes are allocated, minimum calculation distances normally used by processes, maximum calculation distances, minimum memory distances, maximum memory distances, and process group IDs to which the processes belong.

プロセスは、OSが定めた仮想アドレス空間上で走行する。仮想アドレス空間は、コード領域、テキスト領域、ヒープ領域、スタック領域、カーネル領域など使用目的に応じたアドレス空間として管理されるとともに、共用メモリ、メモリマップドファイルといったメモリ属性単位でも異なる領域として管理される。仮想アドレス空間の管理には、アドレス構造体のリストが用いられる。アドレス構造体は、通常、管理対象となる仮想アドレスの範囲、属性、状態を格納する。本実施形態のOSが生成するアドレス構造体は、メモリ距離の最小値と最大値のエントリを備える。これらは、プロセスが実行される論理プロセッサに関して当該アドレス空間が満たすべきメモリ距離の範囲を示している。   The process runs on a virtual address space defined by the OS. The virtual address space is managed as an address space according to the purpose of use, such as a code area, text area, heap area, stack area, kernel area, etc., and is also managed as a different area in memory attribute units such as shared memory and memory mapped files. The A list of address structures is used for managing the virtual address space. The address structure normally stores the range, attributes, and status of virtual addresses to be managed. The address structure generated by the OS of this embodiment includes entries for the minimum value and the maximum value of the memory distance. These indicate the range of memory distances that the address space should satisfy for the logical processor on which the process is executed.

本発明のOSが提供する資源管理のためのプロセスグループは、協調する資源をもつプロセス間の関係を定義する。各々のプロセスグループは、プロセスの実行時に動的に定義される場合と、ユーザおよびプログラムが指定して定義される場合がある。前者は、OSがプロセスの資源割当要求を実行する際に、自動的に割り当てるプロセスグループである。後者のプロセスグループは、ユーザまたはプロクグラムが協調して動作するプロセスの性能指標を明示的に指定する際に、OSが割り当てる。   The process group for resource management provided by the OS of the present invention defines a relationship between processes having cooperating resources. Each process group may be dynamically defined when the process is executed, or may be defined by a user and a program. The former is a process group that is automatically allocated when the OS executes a process resource allocation request. The latter process group is assigned by the OS when a user or a program explicitly specifies a performance index of a process that operates cooperatively.

本発明のOSがプロセスに提供する資源管理のインタフェースについて説明する。ここでインタフェースとは、ソフトウェアインタフェースであり、具体的にはOSがユーザプログラムに提供するシステムコールである。資源管理インタフェースは、3種類に分類できる。第1は、性能指定のない資源管理インタフェースである。これは従来のOSと同等の資源割当を行なう。このインタフェースでは、現在プロセスに設定されている性能パラメータを基にして資源の割当を要求する。例えばどのプロセスグループにも所属しないプロセスが資源の割当を要求する場合、OSは、当該プロセスのプロセス管理テーブルに格納された演算距離とメモリ距離を満たす資源の割当を行なう。   The resource management interface provided to the process by the OS of the present invention will be described. Here, the interface is a software interface, specifically, a system call provided by the OS to the user program. The resource management interface can be classified into three types. The first is a resource management interface with no performance designation. This performs resource allocation equivalent to the conventional OS. This interface requests resource allocation based on performance parameters currently set for the process. For example, when a process that does not belong to any process group requests resource allocation, the OS allocates resources that satisfy the calculation distance and the memory distance stored in the process management table of the process.

第2は、性能指定のある資源管理インタフェースである。このインタフェースでは、プロセスが最低限満たすべき性能値と、性能を満足した際に得られる最大の性能値の組により必要とする性能値を明示的に指定する。性能値とは、CPU資源であれば演算距離、メモリであればメモリ距離である。OSは、当該プロセスに設定されている演算距離とメモリ距離、および当該プロセスが所属するプロセスグループに設定されている演算距離およびメモリ距離を加味した上で、指定された実行性能を満たす資源割当を行う。   The second is a resource management interface with performance designation. In this interface, a required performance value is explicitly specified by a set of a performance value that the process should satisfy at the minimum and a maximum performance value obtained when the performance is satisfied. The performance value is a calculation distance if it is a CPU resource, and a memory distance if it is a memory. The OS allocates resources that satisfy the specified execution performance, taking into account the calculation distance and memory distance set for the process, and the calculation distance and memory distance set for the process group to which the process belongs. Do.

第3は、すでに設定されている実行性能を変更するインタフェースである。これによりユーザ又はアプリケーションプログラムは、プロセスごとの性能指標を定義することも可能である。なお要求する演算距離の範囲及び変更する演算距離の範囲は、プロセスの実行権限に応じて制限するよう実装することも可能である。   The third is an interface for changing the already set execution performance. As a result, the user or application program can also define a performance index for each process. It should be noted that the range of the calculation distance to be requested and the range of the calculation distance to be changed can be implemented so as to be limited according to the execution authority of the process.

ここでOSがプロセスへ資源の割当、解放を行うタイミングについて説明する。まずプロセスがOSに対して明示的にシステムコールを発行して資源の獲得、解放を要求したときには、OSが要求された資源の割当、解放を行う。またOSは、プロセスが割り当てられたメモリにアクセスするまで当該メモリ用の物理ページを獲得しないことがある。この場合、OSがプロセスによるメモリアクセスを検出した時点で非明示的に物理ページを獲得する。またOSは、複数のプロセスを並行して実行するためにプロセスのスケジューリングを行う。プロセススケジューリングの際には、OSは、プロセスの性能品質を見直すことが可能であり、あるプロセスに割り当てられていた論理プロセッサを別の論理プロセッサに変更するといった見直しにより、プロセスへの資源割当を変更する。さらに後述するようにプロセス実行中にハードウェアが追加、削除された場合に、OSはこの資源の変更に伴ってプロセスへの資源割当を動的に変更する場合がある。   Here, the timing at which the OS allocates and releases resources to processes will be described. First, when a process explicitly issues a system call to the OS to request acquisition and release of a resource, the OS allocates and releases the requested resource. The OS may not acquire a physical page for the memory until the process accesses the allocated memory. In this case, a physical page is implicitly acquired when the OS detects a memory access by the process. The OS also schedules processes to execute a plurality of processes in parallel. At the time of process scheduling, the OS can review the performance quality of the process, and the resource allocation to the process is changed by reviewing the logical processor assigned to one process to another logical processor. To do. Further, as described later, when hardware is added or deleted during process execution, the OS may dynamically change the resource allocation to the process in accordance with the change of the resource.

資源を確保するときには、OSは、資源確保に伴って影響の出るプロセスのリストを検索し、該当するプロセスの演算距離及びメモリ距離をチェックし、条件の合う資源を確保する。以下にこの処理の流れを示す。   When securing a resource, the OS searches a list of processes that are affected by securing the resource, checks the calculation distance and memory distance of the corresponding process, and secures a resource that meets the conditions. The flow of this process is shown below.

まずOSは、プロセスグループ情報120を検索して、当該プロセスに関係のあるプロセスを求める。この結果から影響の生じる論理プロセッサを特定する。すでに設定されている演算距離、メモリ距離から対象資源の性能、確保する領域を決定する。最後に対象資源の管理機構に通知して資源を確保する。   First, the OS searches the process group information 120 to obtain a process related to the process. From this result, an affected logical processor is identified. The performance of the target resource and the area to be secured are determined from the already set calculation distance and memory distance. Finally, the target resource management mechanism is notified to secure the resource.

OSは、性能指定のないプロセスを生成するときに、親プロセスの性能指標を引き継いで新しいプロセスを生成する。またプロセスが共有メモリ又はロックなどを確保する場合は、他プロセスとの協調作業の可能性を考慮し、自動的に性能指標をあげる。   When creating a process with no performance specification, the OS takes over the performance index of the parent process and creates a new process. When a process secures a shared memory or lock, the performance index is automatically raised in consideration of the possibility of cooperative work with other processes.

資源を解放する際の処理の流れを示す。まずOSは、解放要求のあった資源を当該プロセスに割り付けるのをやめる。次に資源の参照カウントをチェックする。他に資源を参照するプロセスがいなければ、資源を解放する。資源解放によって、アドレス構造体又はプロセスグループ情報120のエントリを維持する必要がなくなったときは、それらを破棄する。   The flow of processing when releasing resources is shown. First, the OS stops assigning the resource requested to be released to the process. Next, the resource reference count is checked. If no other process references the resource, release the resource. When it becomes unnecessary to maintain entries in the address structure or process group information 120 due to resource release, they are discarded.

図13は、依存関係のないプロセスに論理プロセッサを割り当てる例を示す。図13に示すノード41−0は、図8で説明したNUMA型の計算機40の1ノード分で構成されている。図13において、プロセス71とプロレス72は、実行にあたり互いに独立している。   FIG. 13 shows an example of assigning logical processors to processes having no dependency relationship. The node 41-0 shown in FIG. 13 is composed of one node of the NUMA type computer 40 described in FIG. In FIG. 13, the process 71 and the professional wrestling 72 are independent from each other in execution.

このため例えばプロセス72が資源を要求した際には、要求を受けたOS60内のプロセス管理部62は、資源管理部61に資源管理情報を問い合わせる。資源管理部61は、演算距離テーブル90にプロセッサの演算に関する情報を格納しており、かつプロセスグループ情報からプロセス71とプロセス72が依存関係のないプロセスであることが分かる。この情報からプロセス管理部62は、プロセッサのキャッシュミスによる実行性能を回避するため、プロセス72にプロセス71とは物理的に異なるプロセッサ上の論理プロセッサを割り当てる。またメモリ距離については、プロセス管理部62は、できればメモリ距離が遠い関係にある論理プロセッサをプロセス72に割り当てる。   Therefore, for example, when the process 72 requests a resource, the process management unit 62 in the OS 60 that has received the request inquires the resource management unit 61 for resource management information. The resource management unit 61 stores information related to processor calculations in the calculation distance table 90, and the process group information indicates that the process 71 and the process 72 have no dependency. From this information, the process management unit 62 assigns a logical processor on a processor physically different from the process 71 to the process 72 in order to avoid execution performance due to a processor cache miss. Regarding the memory distance, the process management unit 62 assigns, to the process 72, a logical processor having a long memory distance if possible.

図14は、依存関係のあるプロセスに論理プロセッサを割り当てる例を示す。図14におけるノード41−0は、図13と同様のハードウェア特性を持つ。また図14に示す親プロセス73と子プロセス74は、少なくとも子プロセス74の生成当初は、メモリを共有している。   FIG. 14 shows an example of assigning a logical processor to a process having a dependency relationship. The node 41-0 in FIG. 14 has the same hardware characteristics as in FIG. Further, the parent process 73 and the child process 74 shown in FIG. 14 share a memory at least at the beginning of generation of the child process 74.

親プロセス73からのプロセス生成要求を受けたOS60内のプロセス管理部62は、資源管理部61に資源管理情報を問い合わせる。資源管理部61には、演算距離テーブル90が存在し、キャッシュヒットの向上が見込めるプロセッサを検出できる。プロセス管理部62は、要求内容が子プロセスの生成であること及び資源管理部61のハードウェア構成情報から、親プロセス73を実行している論理プロセッサに近い論理プロセッサを子プロセス74に割り当てる。またメモリ距離については、プロセス管理部62は、メモリ距離が親プロセス73と近い関係にある論理プロセッサを子プロセス74に割り当てる。   Upon receipt of the process generation request from the parent process 73, the process management unit 62 in the OS 60 inquires the resource management unit 61 for resource management information. The resource management unit 61 has a calculation distance table 90 and can detect a processor that can improve cache hits. The process management unit 62 assigns a logical processor close to the logical processor executing the parent process 73 to the child process 74 from the fact that the requested content is generation of a child process and the hardware configuration information of the resource management unit 61. Regarding the memory distance, the process management unit 62 assigns a logical processor having a memory distance close to that of the parent process 73 to the child process 74.

図15は、プロセスグループ情報を用いたプロセス資源の割当て変更において、依存関係のないプロセスの論理プロセッサ割当を変更する例である。図15に示す計算機40は、図8に示す計算機40と同一である。またプロセス71とプロセス72の間には、依存関係は存在しない。   FIG. 15 is an example of changing the logical processor allocation of a process having no dependency in the process resource allocation change using the process group information. The computer 40 shown in FIG. 15 is the same as the computer 40 shown in FIG. Further, there is no dependency relationship between the process 71 and the process 72.

OS60内のプロセス管理部62は、プロセスへの資源割当てを変更する際、資源管理部61に情報を問い合わせる。資源管理部61は、演算距離テーブル90、メモリ距離テーブル110及びプロセスグループ情報120を格納する。資源管理部62は、問合せによって、プロセス71とプロセス72に依存関係がないこと、両プロセスに現在割り当てているプロセッサの組は、協調処理向けであること、別ノードであるノード41−1の資源が空いていることを認識できる。以上の情報から、プロセス管理部61は、互いのプロセスのメモリアクセス効率を向上するため、1つのプロセス(ここではプロセス72)の資源割当てを変更している。   The process management unit 62 in the OS 60 inquires of the resource management unit 61 for information when changing the resource allocation to the process. The resource management unit 61 stores a calculation distance table 90, a memory distance table 110, and process group information 120. The resource management unit 62 makes an inquiry that there is no dependency between the processes 71 and 72, the processor group currently allocated to both processes is for cooperative processing, and the resource of the node 41-1 which is another node Can recognize that is empty. From the above information, the process management unit 61 changes the resource allocation of one process (here, the process 72) in order to improve the memory access efficiency of the processes.

図16は、プロセスグループ情報を用いたプロセス資源の割当てを変更する例である。図16に示す計算機40は、図15の計算機40と同一のハードウェア特性を持つ。また図16に示すプロセス71は、他のプロセスWeb75及びWeb76とは、依存関係のないプロセスである。またここでWeb75及びWeb76は、協調処理を行うプロセスである。さらにOS60内の資源管理部61のプロセスグループ情報120は、Web75及びWeb76の協調に関する情報を格納する。   FIG. 16 shows an example of changing the process resource allocation using the process group information. The computer 40 shown in FIG. 16 has the same hardware characteristics as the computer 40 of FIG. Further, the process 71 shown in FIG. 16 is a process having no dependency relationship with the other processes Web 75 and Web 76. Here, Web 75 and Web 76 are processes for performing cooperative processing. Further, the process group information 120 of the resource management unit 61 in the OS 60 stores information related to Web 75 and Web 76 cooperation.

OS60内のプロセス管理部62は、プロセスへの資源割当を変更する際、資源管理部61に情報に問い合わせる。この例では、先に述べたように、Web75及びWeb76が協調処理を行うこと、プロセス71とWeb75が同一の物理プロセッサに割り付けられていること、3つのプロセスが主記憶メモリ0を参照しており効率が悪いこと、及びノード41−1の資源が空いていることが分かる。このためプロセス管理部62は、Web75及びWeb76を現在よりも実行性能の向上が期待できるノード41−1へ割当てを変更する。これにより実効性能を維持又は向上する資源割当ての変更が実現できる。   The process management unit 62 in the OS 60 inquires of the resource management unit 61 for information when changing the resource allocation to the process. In this example, as described above, Web 75 and Web 76 perform cooperative processing, Process 71 and Web 75 are allocated to the same physical processor, and three processes refer to main memory 0. It can be seen that the efficiency is poor and the resources of the node 41-1 are free. Therefore, the process management unit 62 changes the assignment of the Web 75 and the Web 76 to the node 41-1 that can be expected to improve the execution performance compared to the current one. As a result, resource allocation can be changed to maintain or improve effective performance.

本実施例は、稼動時に性能特性が動的に変更される計算機の場合、演算距離テーブル90及びメモリ距離テーブル110を複数使用して管理する。複数の演算距離テーブル90の例について図17を用いて説明する。マスタ演算距離テーブル90−1は、計算機が最大の性能で動作するときの演算距離テーブル90である。カレント演算距離テーブル90−2は、現在の性能特性に基づく演算距離を示している。この例のカレント演算距離テーブル90−2は、論理プロセッサ53−6、53−7が使用できなくなったことを示している。   In this embodiment, in the case of a computer whose performance characteristics are dynamically changed during operation, a plurality of calculation distance tables 90 and memory distance tables 110 are used for management. An example of a plurality of calculation distance tables 90 will be described with reference to FIG. The master calculation distance table 90-1 is the calculation distance table 90 when the computer operates with the maximum performance. The current calculation distance table 90-2 shows calculation distances based on the current performance characteristics. The current calculation distance table 90-2 in this example indicates that the logical processors 53-6 and 53-7 can no longer be used.

このような計算機は、熱対策や省電力動作を目的として、一部の回路の電源を一時的に切断する機能又は動作周波数を落とす機能が動作する。この機能が動作する際に、ハードウェアの割込みが発生し、イベントがOSに通知される。またユーザの操作又は管理アプリケーションプログラムより、計算機の状態を変化させることもできる。この状態変化が発生した場合は、ソフトウェア割込みが入り、イベントがOSに通知される。   Such a computer operates with a function of temporarily turning off the power of some circuits or a function of reducing the operating frequency for the purpose of heat countermeasures and power saving operations. When this function operates, a hardware interrupt occurs and an event is notified to the OS. The state of the computer can be changed by a user operation or a management application program. When this state change occurs, a software interrupt occurs and an event is notified to the OS.

本発明は、上記のようなイベントの処理の一環として、演算距離テーブルの更新を行う。演算距離テーブルに関するイベント処理の手続きを図18に示す。   The present invention updates the calculation distance table as part of the event processing described above. FIG. 18 shows an event processing procedure related to the calculation distance table.

資源管理部61は、イベントが発生したとき、演算距離テーブル90のロックを取得する(ステップ131)。次に資源管理部61は、イベントの種類が物理プロセッサの追加又は削除であるか否か判定する(ステップ132)。イベントの種類が物理プロセッサの追加又は削除である場合、資源管理部61は、必要に応じてマスタ演算距離テーブル90−1の該当する論理プロセッサのエントリを追加又は削除し(ステップ133)、カレント演算距離テーブル90−2の該当する論理プロセッサのエントリを追加又は削除する(ステップ134)。ステップ134の処理の後に処理はステップ137に進む。イベントの種類が物理プロセッサの追加又は削除ではない場合、資源管理部61は、イベントの種類が物理プロセッサの状態変化か否か判定する(ステップ135)。イベントの種類が物理プロセッサの状態変化である場合、資源管理部61は、カレント演算距離テーブル90−2の状態変化に該当する論理プロセッサのエントリを更新する(ステップ136)。対象とする論理プロセッサの性能が低下したときには、それに応じてカレント演算距離テーブル90−2の演算距離は増加した数値となる。また対象とする論理プロセッサが最大性能に戻ったときには、マスタ演算距離テーブル90−1の演算距離に戻る。次に資源管理部61は、演算距離テーブル90のロックを解放する(ステップ137)。   When an event occurs, the resource management unit 61 acquires a lock of the calculation distance table 90 (step 131). Next, the resource management unit 61 determines whether or not the event type is addition or deletion of a physical processor (step 132). If the event type is addition or deletion of a physical processor, the resource management unit 61 adds or deletes the entry of the corresponding logical processor in the master calculation distance table 90-1 as necessary (step 133), and performs the current calculation. The entry of the corresponding logical processor in the distance table 90-2 is added or deleted (step 134). After the process of step 134, the process proceeds to step 137. If the event type is not addition or deletion of a physical processor, the resource management unit 61 determines whether the event type is a change in the state of the physical processor (step 135). If the event type is a physical processor state change, the resource management unit 61 updates the entry of the logical processor corresponding to the state change in the current calculation distance table 90-2 (step 136). When the performance of the target logical processor is lowered, the computation distance in the current computation distance table 90-2 is increased accordingly. When the target logical processor returns to the maximum performance, it returns to the calculation distance in the master calculation distance table 90-1. Next, the resource manager 61 releases the lock of the calculation distance table 90 (step 137).

プロセス管理部62は、資源管理部61を介してカレント演算距離テーブル90−2を参照し、使用不可となった論理プロセッサをプロセスに割り当てない。また性能が低下した論理プロセッサについては、プロセス管理部62は、プロセス管理テーブルに設定される最小演算距離と最大演算距離の範囲に入るプロセスがあれば、そのプロセスに当該論理プロセッサを割り当てる。   The process management unit 62 refers to the current calculation distance table 90-2 via the resource management unit 61, and does not assign an unusable logical processor to the process. For a logical processor whose performance has deteriorated, if there is a process that falls within the range of the minimum calculation distance and the maximum calculation distance set in the process management table, the process management unit 62 assigns the logical processor to that process.

図19を用いて本発明の別の実施例について述べる。本発明は、OSが非常に小さい核(カーネル)600で構成され、OSのサービスを実現する複数のサーバプロセスが設けられる場合でも実施することができる。この場合、演算距離テーブル90、メモリ距離テーブル110及びプロセスグループ情報120は、資源管理を行うサーバプロセス601によって管理される。プロセスに資源を割り当てる際は、プロセス管理サーバ602の資源管理サーバ601にプロセス間通信で資源割当に関する問合せを行う。その他ネットワークを介する通信制御を行うネットワークプロトコルサーバ603、ファイルシステムの管理を行うファイルシステムサーバ604などが存在する。   Another embodiment of the present invention will be described with reference to FIG. The present invention can be implemented even when the OS is composed of a very small kernel 600 and a plurality of server processes for realizing OS services are provided. In this case, the calculation distance table 90, the memory distance table 110, and the process group information 120 are managed by the server process 601 that performs resource management. When allocating resources to a process, an inquiry about resource allocation is made to the resource management server 601 of the process management server 602 by inter-process communication. In addition, there are a network protocol server 603 that performs communication control via a network, a file system server 604 that manages a file system, and the like.

NUMA構成の計算機の中には、図20に示すように演算に関するノードごとに入出力コントローラと入出力装置をもつ計算機構成がある。この計算機は、計算機59−0と計算機59−1とを有するハードウェア物理構成をとる。計算機59−0は、演算に関するノード41−0と入出力ノード58−0から構成される。また計算機59−1は、演算に関するノード41−1と入出力ノード58−1から構成される。演算に関するノード41−0及び40−1間には、メモリバス47があり、他ノードの主記憶メモリにアクセスすることができる。ノード41−0は、ノードバス46を介して入出力ノード58−0と入出力ノード58−1に接続され、ノード41−1は、ノードバス46を介して入出力ノード58−0と入出力ノード58−1に接続される。このような構成の計算機では、通常、入出力装置を管理する演算ノードは特定のノードに固定されているため、どの演算ノードがどの入出力装置にアクセスするかによってそのアクセス速度が異なる。図20の例では、ノード41−0から入出力ノード58−0へのアクセス速度又はノード41−1から入出力ノード58−1へのアクセス速度に比べてノード41−0から入出力ノード58−1へのアクセス速度又はノード41−1から入出力ノード58−0へのアクセス速度が遅くなる。   Among computers having a NUMA configuration, as shown in FIG. 20, there is a computer configuration having an input / output controller and an input / output device for each operation-related node. This computer has a hardware physical configuration including a computer 59-0 and a computer 59-1. The computer 59-0 includes a node 41-0 and an input / output node 58-0 related to the calculation. The computer 59-1 includes a node 41-1 and an input / output node 58-1 relating to computation. A memory bus 47 is provided between the nodes 41-0 and 40-1 relating to the operation, and the main memory of another node can be accessed. The node 41-0 is connected to the input / output node 58-0 and the input / output node 58-1 via the node bus 46, and the node 41-1 is connected to the input / output node 58-0 and the input / output node 58 via the node bus 46. -1. In a computer having such a configuration, an arithmetic node that manages an input / output device is usually fixed to a specific node, and therefore the access speed differs depending on which arithmetic node accesses which input / output device. In the example of FIG. 20, compared with the access speed from the node 41-0 to the input / output node 58-0 or the access speed from the node 41-1 to the input / output node 58-1, the input / output node 58- 1 or the access speed from the node 41-1 to the input / output node 58-0 becomes slow.

プロセスが動作するプログラムの内容によってCPU時間を多く消費するプロセス又は入出力装置を多く使用するプロセスが存在する。図20に示す計算機構成において、入出力装置を多く使用するプロセスに対してその入出力装置を直接管理していない演算ノードに属する論理プロセッサが割り当てられると、性能が低下する。   There is a process that consumes a lot of CPU time or a process that uses a lot of input / output devices depending on the contents of the program in which the process operates. In the computer configuration shown in FIG. 20, if a logical processor belonging to an operation node that does not directly manage an input / output device is assigned to a process that uses a large number of input / output devices, the performance deteriorates.

実施例3は、このような傾向をもつプロセスに対して適切な資源割当を実現するものである。実施例3の資源管理部61は、管理情報としてハードウェア構成情報140をもつ。ハードウェア構成情報140は、各演算ノードと入出力ノードとの接続関係、各入出力ノードに属する2次記憶装置や入出力装置(以下、入出力装置と総称する)の識別子、及び各演算ノードから各入出力ノードの入出力装置にアクセスするときのアクセス速度についての情報を保持する。OS60は、BIOSなどを介して入出力装置の構成情報を取得し、この情報を基にしてハードウェア構成情報140を作成する。   The third embodiment realizes appropriate resource allocation for a process having such a tendency. The resource management unit 61 according to the third embodiment has hardware configuration information 140 as management information. The hardware configuration information 140 includes a connection relationship between each operation node and an input / output node, an identifier of a secondary storage device or an input / output device (hereinafter collectively referred to as an input / output device) belonging to each input / output node, and each operation node. Holds information about the access speed when accessing the input / output device of each input / output node. The OS 60 acquires the configuration information of the input / output device via the BIOS or the like, and creates the hardware configuration information 140 based on this information.

ハードウェア構成情報140の例を、図22を用いて説明する。図22は、図20の計算機のハードウェア構成を表現している。図22では、計算機のハードウェア構成を表現するために、演算ノード及び入出力ノードの情報を格納するデータ構造をそれぞれ持つ。   An example of the hardware configuration information 140 will be described with reference to FIG. FIG. 22 represents the hardware configuration of the computer of FIG. In FIG. 22, in order to express the hardware configuration of a computer, each has a data structure for storing information of operation nodes and input / output nodes.

演算ノードのデータ構造は、当該演算ノードに搭載されているCPU及びメモリに関する構成情報、並びに、管理している入出力ノード情報へのリンクリストを設定する。   The data structure of the calculation node sets configuration information related to the CPU and memory mounted on the calculation node, and a link list to the managed input / output node information.

入出力ノード情報からは、当該入出力ノード上に搭載されている入出力コントローラ情報へのリンクリストが設定される。入出力コントローラ情報からは、当該入出力コントローラを介して接続されている装置の装置情報のリンクリストが設定される。   From the input / output node information, a link list to the input / output controller information mounted on the input / output node is set. From the input / output controller information, a link list of device information of devices connected via the input / output controller is set.

図22のそれぞれのデータ構造は、性能情報及び統計情報を格納することができる。例えば、入出力の帯域、一定時間内における入力及び出力の量、並びにスループットがある。スループットの求め方については、ハードウェアに登録された性能情報を参照する方法、デバイスの初期化時に試験の入出力を実施しその結果を利用する方法、又は実際の入出力データから一定時間ごとにOSが計算する方法がある。   Each data structure of FIG. 22 can store performance information and statistical information. For example, there are input / output bandwidths, the amount of input and output within a certain time, and throughput. Regarding how to obtain the throughput, refer to the performance information registered in the hardware, use the test input / output at device initialization and use the result, or from the actual input / output data at regular intervals. There is a method for the OS to calculate.

プロセス管理部62がメモリ上に保持するプロセス構造体621は、図12に示すプロセス管理テーブルの集合である。図12に図示している通り、各プロセス管理テーブルは、そのプロセスが使用しているファイル記述子のリストを持つ。プロセス管理テーブルを参照すると、使用している入出力に関する情報がわかる。また、各入出力を実行する際に、実際の入出力頻度情報を記録することによって、入出力ごとの性能及び統計情報を計算できる。   The process structure 621 held in the memory by the process management unit 62 is a set of process management tables shown in FIG. As shown in FIG. 12, each process management table has a list of file descriptors used by the process. By referring to the process management table, you can find information about the input and output being used. Also, when each input / output is executed, the performance and statistical information for each input / output can be calculated by recording the actual input / output frequency information.

図4のOS60は、プロセスが使用するファイルや入出力が、実際にどの入出力装置を使用するかを対応付けることができる。図19のネットワークプロトコルサーバ603及びファイルシステムサーバ604、並びに図20のOS60についても同様である。本発明では、この対応付けを入出力割当て情報と呼ぶ。またOS60は、各論理プロセッサの現在の利用率などの計算負荷についての性能情報及び各入出力装置に対して発行される単位時間当たりの入出力要求の回数についての性能情報をメモリに保持する。プロセスの性能情報を保持する別の例として、ファイルシステムを使う方法も存在する。OSは、プロセスの性能情報や状態をファイルシステムと同様の木構造で表現する擬似ファイルシステムを持つ場合がある。このときOSは、擬似ファイルシステム上にこのような入出力の頻度情報を格納しておき、このデータを必要に応じて参照することによって各プロセスの入出力の頻度情報を知ることができる。   The OS 60 in FIG. 4 can associate which input / output device is actually used by the file and input / output used by the process. The same applies to the network protocol server 603 and the file system server 604 in FIG. 19 and the OS 60 in FIG. In the present invention, this association is called input / output allocation information. In addition, the OS 60 retains in the memory performance information about the calculation load such as the current usage rate of each logical processor and performance information about the number of input / output requests per unit time issued to each input / output device. As another example of storing process performance information, there is a method using a file system. The OS may have a pseudo file system that expresses process performance information and status in the same tree structure as the file system. At this time, the OS stores such input / output frequency information on the pseudo file system, and can refer to this data as necessary to know the input / output frequency information of each process.

OSは、これらの情報を利用して、プロセスが入出力を頻繁に行う又は入出力処理待ちが長時間発生している場合に、そのプロセスは入出力に強く依存したプロセスと決める。そうでない場合は、CPUに強く依存したプロセスと決める。   Using this information, the OS determines that the process is strongly dependent on input / output when the process frequently performs input / output or when waiting for input / output processing has occurred for a long time. Otherwise, it is determined that the process strongly depends on the CPU.

また図11には図示してないが、プロセスグループ情報120は、各プロセスグループあるいはプロセスがCPU依存のプロセスか入出力依存のプロセスかの区分情報をもつ。この区分情報をプロセスグループ情報120以外のテーブルに保持し、別の決定手段としてもよい。上記のように、プロセスの実行によって得られた性能値又はプロセスに設定された情報より、OSは、各プロセスが入出力に強く依存した処理を行うか、CPUに強く依存した処理を行うかを判定できる。   Although not shown in FIG. 11, the process group information 120 includes classification information indicating whether each process group or process is a CPU-dependent process or an input / output-dependent process. This classification information may be held in a table other than the process group information 120 and used as another determining means. As described above, based on the performance value obtained by executing the process or the information set in the process, the OS determines whether each process performs processing strongly dependent on input / output or processing strongly dependent on CPU. Can be judged.

OS60は、演算ノード41−0に割り当てられたプロセスについて、プロセス管理テーブルと入出力割当て情報を参照し、そのプロセスに割り当てられている入出力装置を特定する。次にOS60は、その入出力装置の性能情報を参照し、その入出力装置の使用頻度が所定値以上であれば、入出力情報140を参照し、当該プロセスが割り当てられている演算ノード41−0が属する計算機59−0とは別の計算機59−1に属する入出力ノード58−1の入出力装置を使用しているか否か判定する。当該プロセスがアクセス速度の遅い入出力ノード58−1の入出力装置を使用している場合に、OS60は、ノード41−1に空きの論理プロセッサがあるとき、演算ノード41−1の性能情報を参照し、ノード41−1の計算負荷が所定値以上か否か判定する。   The OS 60 refers to the process management table and the input / output assignment information for the process assigned to the computation node 41-0, and identifies the input / output device assigned to the process. Next, the OS 60 refers to the performance information of the input / output device. If the frequency of use of the input / output device is equal to or greater than a predetermined value, the OS 60 refers to the input / output information 140 and calculates the operation node 41-to which the process is assigned. It is determined whether or not an input / output device of an input / output node 58-1 belonging to a computer 59-1 different from the computer 59-0 to which 0 belongs is used. When the process uses the input / output device of the input / output node 58-1 having a low access speed, the OS 60 displays the performance information of the operation node 41-1 when there is an empty logical processor in the node 41-1. It is determined whether or not the calculation load of the node 41-1 is greater than or equal to a predetermined value.

ノード41−1の計算負荷が低く所定値に達しないときは、OS60は、当該プロセスに割り当てられている論理プロセッサを、ノード41−0に属する論理プロセッサからノード41−1に属する論理プロセッサに割当変更する。   When the calculation load of the node 41-1 is low and does not reach the predetermined value, the OS 60 assigns the logical processor assigned to the process from the logical processor belonging to the node 41-0 to the logical processor belonging to the node 41-1. change.

ノード41−1の計算負荷が高く所定値以上のときは、OS60は、プロセス構造体621のプロセス管理テーブルとプロセスグループ情報120を検索し、ノード41−1に属する論理プロセッサが割り当てられているプロセスの中でCPU依存のプロセスが存在するか否か判定する。CPU依存のプロセスが存在する場合には、OS60は、そのプロセスのプロセス管理テーブルを参照して最小演算距離、最大演算距離、最小メモリ距離および最大メモリ距離を取得する。次にOS60は、演算距離テーブル90及びメモリ距離テーブル110を参照し、ノード41−1以外のノードに属する論理プロセッサの中で演算距離及びメモリ距離の条件を満たし使用可能なノード41及び論理プロセッサがあるか否か判定する。条件を満たすノード41が存在する場合には、OS60は、ノード41−1の論理プロセッサが割り当てられていたCPU依存のプロセスを該当するノード41の論理プロセッサに割当変更する。次にOS60は、上記処理手順に従って入出力依存のプロセスに割り当てられている論理プロセッサをノード41−0からノード41−1に割当変更可能か否か判定する。   When the calculation load of the node 41-1 is high and exceeds a predetermined value, the OS 60 searches the process management table of the process structure 621 and the process group information 120, and the process to which the logical processor belonging to the node 41-1 is assigned. It is determined whether or not there is a CPU dependent process. When there is a CPU-dependent process, the OS 60 refers to the process management table of the process and acquires the minimum calculation distance, the maximum calculation distance, the minimum memory distance, and the maximum memory distance. Next, the OS 60 refers to the calculation distance table 90 and the memory distance table 110, and among the logical processors belonging to the nodes other than the node 41-1, the usable nodes 41 and logical processors satisfying the calculation distance and memory distance conditions are used. Judge whether there is. When there is a node 41 that satisfies the condition, the OS 60 changes the allocation of the CPU-dependent process to which the logical processor of the node 41-1 has been allocated to the logical processor of the corresponding node 41. Next, the OS 60 determines whether it is possible to change the assignment of the logical processor assigned to the input / output dependent process from the node 41-0 to the node 41-1, according to the above processing procedure.

ノード41−1の論理プロセッサが割り当てられているプロセスの中でCPU依存のプロセスが存在しない場合、またはそのCPU依存のプロセスの条件に合う他のノード41が見つからない場合には、OS60は、上記の論理プロセッサの割当変更を行わない。   If there is no CPU-dependent process among the processes to which the logical processor of the node 41-1 is assigned, or if no other node 41 matching the CPU-dependent process condition is found, the OS 60 Do not change the allocation of logical processors.

図21は、他のNUMA構成の計算機の構成を示す。この計算機の物理構成は、演算に関するノード41と、入出力ノード58とが分割されており、各ノード41がアクセスする入出力ノード58は、ノードスイッチ45によって切り替えられる構成をとる。   FIG. 21 shows the configuration of a computer having another NUMA configuration. The physical configuration of this computer is such that a node 41 related to computation and an input / output node 58 are divided, and the input / output node 58 accessed by each node 41 is switched by a node switch 45.

この計算機は、ノード41−0と入出力ノード58−0、及びノード41−1と入出力ノード58−1は、各々組を構成する。ノード41−0上で動作するプロセスが入出力ノード58−1に強く依存した処理を行い、ノード41−1上で動作するプロセスが入出力ノード58−0に強く依存した処理をする場合には、OS60は、ノードスイッチ45の設定を切り替え、ノード41−0と入出力ノード58−1、及びノード41−1と入出力ノード58−0を各々組とする。逆にノード41−0上で動作するプロセスが入出力ノード58−0に強く依存した処理を行い、ノード41−1上で動作するプロセスが入出力ノード58−1に強く依存した処理をする場合には、OS60は、ノードスイッチ45の設定を切り替え、ノード41−0と入出力ノード58−0、及びノード41−1と入出力ノード58−1を各々組とする。このような変更によって両プロセスの処理性能を上げることができる。なお、スイッチの切替を行うとき、OSは、ハードウェア構成情報140内のリンクの設定変更と、各入出力装置の性能情報のリセットを必要に応じて実行する。   In this computer, the node 41-0 and the input / output node 58-0, and the node 41-1 and the input / output node 58-1 constitute a set. When a process operating on the node 41-0 performs processing strongly dependent on the input / output node 58-1, and a process operating on the node 41-1 performs processing highly dependent on the input / output node 58-0 The OS 60 switches the setting of the node switch 45, and sets the node 41-0 and the input / output node 58-1 and the node 41-1 and the input / output node 58-0 as a set. Conversely, when a process operating on the node 41-0 performs processing strongly dependent on the input / output node 58-0, and a process operating on the node 41-1 performs processing highly dependent on the input / output node 58-1. In other words, the OS 60 switches the setting of the node switch 45, and sets the node 41-0 and the input / output node 58-0, and the node 41-1 and the input / output node 58-1 as a set. Such changes can improve the processing performance of both processes. When switching the switch, the OS executes link setting change in the hardware configuration information 140 and reset of performance information of each input / output device as necessary.

ハイパースレッディング対応プロセッサの構成図である。It is a block diagram of a processor corresponding to hyperthreading. 従来のプロセッサをコアとしたマルチコアプロセッサの構成図である。It is a block diagram of the multi-core processor which made the conventional processor a core. ハイパースレッディング対応プロセッサをコアとしたマルチコアプロセッサの構成図である。It is a block diagram of a multi-core processor having a hyper-threading compatible processor as a core. 実施例1の計算機システムの構成図である。1 is a configuration diagram of a computer system according to Embodiment 1. FIG. 実施例のOSの初期化手順を示す図である。It is a figure which shows the initialization procedure of OS of an Example. 実施例の演算距離テーブルの作成処理手順を示すフローチャートである。It is a flowchart which shows the creation processing procedure of the calculation distance table of an Example. 演算距離テーブルの例を示す図である。It is a figure which shows the example of a calculation distance table. 実施例のSMP構成をもつ計算機の構成図である。It is a block diagram of the computer with the SMP structure of an Example. メモリのアクセス速度を説明する図である。It is a figure explaining the access speed of a memory. メモリ距離テーブルの例を示す図である。It is a figure which shows the example of a memory distance table. プロセスグループ情報の例を示す図である。It is a figure which shows the example of process group information. プロセス管理に関連するテーブルの例を示す図である。It is a figure which shows the example of the table relevant to process management. 独立したプロセスの資源割当を説明する図である。It is a figure explaining the resource allocation of an independent process. 依存関係のあるプロセスの資源割当を説明する図である。It is a figure explaining the resource allocation of the process with a dependency. 依存関係のないプロセスの資源割当て変更を説明する図である。It is a figure explaining the resource allocation change of the process without a dependency. プロセスグループ情報を利用した資源割当て変更を説明する図である。It is a figure explaining the resource allocation change using process group information. 性能特性の変更に対応する演算距離テーブルの例を示す図である。It is a figure which shows the example of the calculation distance table corresponding to the change of a performance characteristic. 性能特性の変更に伴って演算距離テーブルを更新する処理のフローチャート例を示す図である。It is a figure which shows the example of a flowchart of a process which updates a calculation distance table with the change of a performance characteristic. 実施例2の計算機システムの構成図である。FIG. 6 is a configuration diagram of a computer system according to a second embodiment. 実施例3の計算機システムの構成図である。FIG. 10 is a configuration diagram of a computer system according to a third embodiment. 実施例3の他の計算機システムの構成図である。FIG. 10 is a configuration diagram of another computer system according to the third embodiment. 実施例3のハードウェア構成情報のデータ構成図である。FIG. 10 is a data configuration diagram of hardware configuration information according to a third embodiment.

符号の説明Explanation of symbols

40:計算機、41−0〜1:ノード、42−1〜4:物理プロセッサ、43−0〜7:論理CPU(プロセッサ)、44−0〜1:主記憶メモリ、50:計算機、52:主記憶メモリ、53−0〜7:論理CPU(プロセッサ)、60:オペレーティングシステム、61:資源管理部、62:プロセス管理部、71,72:プロセス、73:親プロセス、74:子プロセス、80−1〜2:マルチコアプロセッサ、81−1〜2、82−1〜2:コア、90:演算距離テーブル、110:メモリ距離テーブル、120:プロセスグループ情報。   40: Computer, 41-0 to 1: Node, 42-1 to 4: Physical processor, 43-0 to 7: Logical CPU (processor), 44-0 to 1: Main memory, 50: Computer, 52: Main Storage memory, 53-0 to 7: Logical CPU (processor), 60: Operating system, 61: Resource management unit, 62: Process management unit, 71, 72: Process, 73: Parent process, 74: Child process, 80- 1-2: multi-core processor, 81-1 and 2, 82-1 and 2: core, 90: calculation distance table, 110: memory distance table, 120: process group information.

Claims (18)

少なくとも1つの演算器と、複数のレジスタセットと、主記憶メモリの情報を一時的に格納するキャッシュメモリとを備える物理プロセッサを複数個有し、前記物理プロセッサの各々はオペレーティングシステムの下で前記演算器と前記キャッシュメモリを共有する複数の論理プロセッサとして機能し、プロセスに前記論理プロセッサを割り当てる計算機の資源割当方法において、
すでに前記論理プロセッサを割当済の第1のプロセスが存在するときに、新たに第2のプロセスを割り当てるに際して、
前記第2のプロセスが前記第1のプロセスと依存関係がない場合には、前記第1のプロセスを割り当て済みの前記物理プロセッサとは別の前記物理プロセッサ上にある前記論理プロセッサのうち、前記第1のプロセスと前記キャッシュメモリを共有しない前記論理プロセッサを割り当てるステップと、
前記第2のプロセスが前記第1のプロセスと依存関係がある場合には、前記第1のプロセスを割り当て済みの前記物理プロセッサとは別の前記物理プロセッサ上にある前記論理プロセッサのうち、前記第1のプロセスと前記キャッシュメモリを共有する前記論理プロセッサを割り当てるステップとを有することを特徴とする計算機の資源割当方法。
At least one computing unit, a plurality a plurality of register sets, a physical processor and a cache memory for temporarily storing the information of the main storage memory, each of said physical processor is the arithmetic under an operating system A resource allocation method for a computer that functions as a plurality of logical processors that share a storage device and the cache memory and allocates the logical processors to a process;
When there is a first process to which the logical processor has already been assigned, when assigning a new second process,
If the second process has no dependency relationship with the first process, the first of the logical processors on the physical processor different from the physical processor to which the first process has been assigned. Assigning the logical processor not sharing the cache memory with one process ;
If the second process has a dependency relationship with the first process, the second of the logical processors on the physical processor different from the physical processor to which the first process has been assigned. A method for allocating computer resources, comprising the step of allocating the logical processor sharing the cache memory with one process .
前記計算機は、同一の前記主記憶メモリを共有する複数の前記物理プロセッサをノードとして、複数の前記ノードから構成されることを特徴とする請求項1に記載の計算機の資源割当方法。   2. The computer resource allocation method according to claim 1, wherein the computer is configured by a plurality of the nodes with a plurality of the physical processors sharing the same main memory as nodes. 前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がない場合には、割当済の第1のプロセスと前記主記憶メモリを共有しないように別の前記ノード上の前記論理プロセッサを割り当てるステップと、
前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がある場合には、依存関係のある第1のプロセスと前記主記憶メモリを共有するように同一の前記ノード上の前記論理プロセッサを割り当てるステップとを有することを特徴とする請求項2に記載の計算機の資源割当方法。
If the second process is not dependent on the first process that has already assigned the logical processor, the second process on another node so as not to share the main memory with the assigned first process. Assigning the logical processor;
When the second process has a dependency relationship with the first process to which the logical processor has already been assigned, the same process is performed on the same node so as to share the main memory with the first process having the dependency relationship. 3. The computer resource allocating method according to claim 2, further comprising the step of allocating said logical processor.
前記主記憶メモリにアクセスする計算を前記論理プロセッサ単独と前記論理プロセッサの組について実行して性能測定し、2つの前記論理プロセッサの間で前記演算器の競合がある場合の演算性能に関する情報を取得することを特徴とする請求項1に記載の計算機の資源割当方法。 Executes a calculation for accessing the main storage memory for the logical processor alone and the set of the logical processors to measure performance, and obtains information on the arithmetic performance when there is contention between the arithmetic units between the two logical processors The computer resource allocation method according to claim 1, wherein: 前記論理プロセッサの各々から前記ノードの前記主記憶メモリの各々にアクセスする計算を実行して性能測定し、同一の前記主記憶メモリを共有する前記論理プロセッサのグループについての情報を取得することを特徴とする請求項3に記載の計算機の資源割当方法。   Performing a calculation to access each of the main memory of the node from each of the logical processors to measure performance, and obtaining information about the group of logical processors sharing the same main memory. The computer resource allocation method according to claim 3. 前記物理プロセッサが使用不可となるイベントが発生したとき、該使用不可となった物理プロセッサ上の前記論理プロセッサを資源割当の対象から除外することを特徴とする請求項1に記載の計算機の資源割当方法。 2. The computer resource allocation according to claim 1, wherein, when an event in which the physical processor becomes unusable occurs, the logical processor on the unusable physical processor is excluded from a resource allocation target. Method. 前記物理プロセッサが性能変更となるイベントが発生したとき、該性能変更となった物理プロセッサ上の前記論理プロセッサの性能情報を修正し、修正された性能を満足するプロセスに当該論理プロセッサを割り当てることを特徴とする請求項1に記載の計算機の資源割当方法。 When an event that changes the performance of the physical processor occurs, the performance information of the logical processor on the physical processor that has changed the performance is corrected, and the logical processor is allocated to a process that satisfies the corrected performance. The computer resource allocation method according to claim 1, wherein: 少なくとも1つの演算器と、複数のレジスタセットと、主記憶メモリの情報を一時的に格納するキャッシュメモリとを備える物理プロセッサを複数個有し、前記物理プロセッサの各々はオペレーティングシステムの下で前記演算器と前記キャッシュメモリを共有する複数の論理プロセッサとして機能し、プロセスに前記論理プロセッサを割り当てる計算機
すでに前記論理プロセッサを割当済の第1のプロセスが存在するときに、新たに第2のプロセスを割り当てるに際して、
前記第2のプロセスが前記第1のプロセスと依存関係がない場合には、前記第1のプロセスを割り当て済みの前記物理プロセッサとは別の前記物理プロセッサ上にある前記論理プロセッサのうち、前記第1のプロセスと前記キャッシュメモリを共有しない前記論理プロセッサを割り当てる手段、及び
前記第2のプロセスが前記第1のプロセスと依存関係がある場合には、前記第1のプロセスが割り当てられている前記物理プロセッサとは別の前記物理プロセッサ上にある前記論理プロセッサのうち、前記第1のプロセスと前記キャッシュメモリを共有する前記論理プロセッサを割り当てる手段として機能させるためのオペレーティングシステム。
At least one computing unit, a plurality a plurality of register sets, a physical processor and a cache memory for temporarily storing the information of the main storage memory, each of said physical processor is the arithmetic under an operating system function as multiple logical processors sharing the vessel and said cache memory, the computer assigns the logical processor to process,
When there is a first process to which the logical processor has already been assigned, when assigning a new second process,
If the second process has no dependency relationship with the first process, the first of the logical processors on the physical processor different from the physical processor to which the first process has been assigned. Means for allocating the logical processor not sharing the cache memory with one process ; and
If the second process has a dependency relationship with the first process, the logical processors on the physical processor different from the physical processor to which the first process is assigned, An operating system for functioning as means for assigning the logical processor sharing the cache memory with a first process .
前記計算機は、同一の前記主記憶メモリを共有する複数の前記物理プロセッサをノードとして、複数の前記ノードから構成されることを特徴とする請求項8に記載のオペレーティングシステム。   9. The operating system according to claim 8, wherein the computer includes a plurality of the physical processors sharing the same main storage memory as a node, and the plurality of nodes. 前記計算機
前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がない場合には、割当済の第1のプロセスと前記主記憶メモリを共有しないように別の前記ノード上の前記論理プロセッサを割り当てる手段、及び
前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がある場合には、依存関係のある第1のプロセスと前記主記憶メモリを共有するように同一の前記ノード上の前記論理プロセッサを割り当てる手段として機能させるための請求項9に記載のオペレーティングシステム。
The computer,
If the second process is not dependent on the first process that has already assigned the logical processor, the second process on another node so as not to share the main memory with the assigned first process. Means for allocating the logical processor and, if the second process has a dependency relationship with the first process to which the logical processor has already been allocated, shares the main memory with the first process having the dependency relationship 10. The operating system according to claim 9, wherein the operating system is configured to function as means for assigning the logical processors on the same node.
さらに前記計算機を、前記主記憶メモリにアクセスする計算を前記論理プロセッサ単独と前記論理プロセッサの組について実行して性能測定し、2つの前記論理プロセッサの間で前記演算器の競合がある場合の演算性能に関する情報を取得する手段として機能させるための請求項8に記載のオペレーティングシステム。 Further, the computer executes a calculation for accessing the main memory for the logical processor alone and the set of the logical processors to measure performance, and an operation in the case where there is contention between the arithmetic units between the two logical processors. The operating system according to claim 8, which functions as means for acquiring information related to performance . さらに前記計算機に、前記論理プロセッサの各々から前記ノードの前記主記憶メモリにアクセスする計算を実行して性能測定し、同一の前記主記憶メモリを共有する前記論理プロセッサのグループについての情報を取得する手段として機能させるための請求項9に記載のオペレーティングシステム。 Further, the computer executes a calculation for accessing the main storage memory of the node from each of the logical processors to measure performance, and obtains information about the group of the logical processors sharing the same main storage memory. The operating system according to claim 9 for functioning as a means . 前記計算機において、
プロセスが最低限満たすべき性能値と、期待する最大の性能値との範囲により、必要とする性能値を明示的に指定可能なインタフェースを備え、前記計算機を、資源割当を行う手段として機能させるための請求項8又は請求項10に記載のオペレーティングシステム。
In the calculator,
In order to allow the computer to function as a means for allocating resources, provided with an interface that can explicitly specify the required performance value according to the range of the performance value that the process should satisfy at least and the maximum expected performance value The operating system according to claim 8 or 10.
少なくとも1つの演算器と、複数のレジスタセットと、主記憶メモリの情報を一時的に格納するキャッシュメモリとを備える物理プロセッサを複数個有し、前記物理プロセッサの各々はオペレーティングシステムの下で前記演算器と前記キャッシュメモリを共有する複数の論理プロセッサとして機能し、プロセスに前記論理プロセッサを割り当てる計算機システムにおいて、前記計算機システムは、
前記プロセスが要求する演算性能に関する情報と、前記論理プロセッサ単独の演算性能及び論理プロセッサ間に前記演算器の競合がある場合の演算性能に関する情報とを格納する記憶手段と、
すでに前記論理プロセッサを割当済の第1のプロセスが存在するときに、新たに第2のプロセスを割り当てるに際して、前記第2のプロセスが前記第1のプロセスと依存関係がない場合には、前記記憶手段上の前記情報を参照し、前記第1のプロセスとは別の前記物理プロセッサ上の前記第2のプロセスが要求する演算性能を満足する前記論理プロセッサを割り当て、前記第2のプロセスがすでに前記論理プロセッサを割当済の前記第1のプロセスと依存関係がある場合には、前記記憶手段上の前記情報を参照し、前記第1のプロセスと前記キャッシュメモリを共有する別の前記物理プロセッサ上の前記第2のプロセスが要求する演算性能を満足する前記論理プロセッサを割り当てるプロセス管理部と、
前記プロセス管理部に前記キャッシュメモリを共有する前記論理プロセッサについての情報を伝達する資源管理部とを有し、
前記プロセス管理部と前記資源管理部は、オペレーティングシステムの一部であり、前記主記憶メモリに格納され、前記論理プロセッサによって実行されることを特徴とする計算機システム。
At least one computing unit, a plurality a plurality of register sets, a physical processor and a cache memory for temporarily storing the information of the main storage memory, each of said physical processor is the arithmetic under an operating system In a computer system that functions as a plurality of logical processors that share a storage device and the cache memory and assigns the logical processors to processes, the computer system includes:
Storage means for storing information related to calculation performance required by the process, calculation performance of the logical processor alone, and information related to calculation performance when there is competition between the arithmetic units between the logical processors;
When there is a first process to which the logical processor has already been allocated, when the second process is newly allocated and the second process has no dependency relationship with the first process , the storage The logical processor satisfying the calculation performance required by the second process on the physical processor different from the first process is allocated with reference to the information on the means, and the second process has already been executed. If there is a dependency relationship with the first process to which a logical processor has been assigned, the information on the storage means is referred to and on the other physical processor sharing the cache memory with the first process. A process management unit that allocates the logical processor that satisfies the computing performance required by the second process ;
A resource management unit for transmitting information about the logical processor sharing the cache memory to the process management unit;
The computer system, wherein the process management unit and the resource management unit are part of an operating system, are stored in the main storage memory, and are executed by the logical processor.
前記計算機システムは、同一の前記主記憶メモリを共有する複数の前記物理プロセッサをノードとして、複数の前記ノードから構成されることを特徴とする請求項14に記載の計算機システム。   15. The computer system according to claim 14, wherein the computer system is configured from a plurality of the nodes, with a plurality of physical processors sharing the same main storage memory as nodes. 前記プロセス管理部は、さらに前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がない場合には、割当済の第1のプロセスと前記主記憶メモリを共有しないように別の前記ノード上の前記論理プロセッサを割り当て、前記第2のプロセスがすでに前記論理プロセッサを割当済の第1のプロセスと依存関係がある場合には、依存関係のある第1のプロセスと前記主記憶メモリを共有するように同一の前記ノード上の前記論理プロセッサを割り当てることを特徴とする請求項15に記載の計算機システム。 If the second process has no dependency relationship with the first process to which the logical processor has already been assigned, the process management unit does not share the main storage memory with the assigned first process. allocating the logical processor on another of said nodes, said a when there are dependencies second process is already a first process already allocated to the logical processor, wherein the first process a dependent 16. The computer system according to claim 15, wherein the logical processors on the same node are allocated so as to share main memory. 記憶手段上の前記第2のプロセスが要求する演算性能に関する情報と、前記論理プロセッサ単独の演算性能と、前記論理プロセッサ間に前記演算器の競合がある場合の演算性能に関する情報とを参照して、前記第2のプロセスの要求を満足する前記論理プロセッサを割り当てることを特徴とする請求項4に記載の計算機の資源割当方法 Refer to the information related to the calculation performance required by the second process on the storage means, the calculation performance of the logical processor alone, and the information related to the calculation performance when there is a competition between the arithmetic units between the logical processors. 5. The computer resource allocation method according to claim 4, wherein the logical processor satisfying the request of the second process is allocated . さらに前記計算機を、記憶手段上の前記第2のプロセスが要求する演算性能に関する情報と、前記論理プロセッサ単独の演算性能と、前記論理プロセッサ間に前記演算器の競合がある場合の演算性能に関する情報とを参照して、前記第2のプロセスの要求を満足する前記論理プロセッサを割り当てる手段として機能させるための請求項11に記載のオペレーティングシステム Further, the computer includes information related to the calculation performance required by the second process on the storage means, the calculation performance of the logical processor alone, and information related to the calculation performance when there is competition between the arithmetic units between the logical processors. 12. The operating system according to claim 11, wherein the operating system is configured to function as means for assigning the logical processor that satisfies the request of the second process .
JP2004315537A 2004-06-10 2004-10-29 Computer system and its resource allocation method Expired - Fee Related JP4241921B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004315537A JP4241921B2 (en) 2004-06-10 2004-10-29 Computer system and its resource allocation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004172007 2004-06-10
JP2004315537A JP4241921B2 (en) 2004-06-10 2004-10-29 Computer system and its resource allocation method

Publications (2)

Publication Number Publication Date
JP2006024180A JP2006024180A (en) 2006-01-26
JP4241921B2 true JP4241921B2 (en) 2009-03-18

Family

ID=35797380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004315537A Expired - Fee Related JP4241921B2 (en) 2004-06-10 2004-10-29 Computer system and its resource allocation method

Country Status (1)

Country Link
JP (1) JP4241921B2 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
JP4961833B2 (en) * 2006-05-19 2012-06-27 日本電気株式会社 Cluster system, load balancing method, optimization client program, and arbitration server program
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
JP2008191949A (en) * 2007-02-05 2008-08-21 Nec Corp Multi-core system, and method for distributing load of the same
JP2008262340A (en) * 2007-04-11 2008-10-30 Denso Corp Automatic code generating device for dual core
JP2009020692A (en) * 2007-07-11 2009-01-29 Toshiba Corp Task management device, task management method, and task management program
JP5205888B2 (en) * 2007-09-14 2013-06-05 富士通株式会社 Load test program, load test method, and information processing apparatus for executing the load test program
JP4691153B2 (en) * 2008-12-10 2011-06-01 富士通株式会社 Multi-core processor, control method, and information processing apparatus
JP5241550B2 (en) * 2009-02-12 2013-07-17 株式会社日立製作所 File input / output method
JP5433676B2 (en) 2009-02-24 2014-03-05 パナソニック株式会社 Processor device, multi-thread processor device
JP5504651B2 (en) * 2009-03-06 2014-05-28 日本電気株式会社 Virtual machine system, information processing apparatus, resource management method, program, and recording medium
JPWO2011114478A1 (en) * 2010-03-17 2013-06-27 富士通株式会社 Generating method, scheduling method, generating program, scheduling program, generating apparatus, and information processing apparatus
JP5659780B2 (en) * 2010-12-22 2015-01-28 日本電気株式会社 Computer, core allocation method and program
WO2013132741A1 (en) * 2012-03-06 2013-09-12 パナソニック株式会社 Multiprocessor system
JP6551069B2 (en) * 2015-09-02 2019-07-31 富士ゼロックス株式会社 INFORMATION PROCESSING APPARATUS AND IMAGE FORMING APPARATUS
JP6823251B2 (en) 2016-10-13 2021-02-03 富士通株式会社 Information processing equipment, information processing methods and programs
JP7457589B2 (en) * 2020-07-01 2024-03-28 日立Astemo株式会社 Information processing device, information processing method, and information processing system
JP7188472B2 (en) * 2021-02-03 2022-12-13 日本電気株式会社 Computer, scheduling method and program

Also Published As

Publication number Publication date
JP2006024180A (en) 2006-01-26

Similar Documents

Publication Publication Date Title
JP4241921B2 (en) Computer system and its resource allocation method
US11513836B2 (en) Scheduling resuming of ready to run virtual processors in a distributed system
EP2411915B1 (en) Virtual non-uniform memory architecture for virtual machines
US7552293B2 (en) Kernel and application cooperative memory management
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8312201B2 (en) Managing memory allocations loans
US10248175B2 (en) Off-line affinity-aware parallel zeroing of memory in non-uniform memory access (NUMA) servers
WO2015169145A1 (en) Memory management method and device
WO2012066640A1 (en) Computer system, migration method, and management server
JP2004326754A (en) Management of virtual computer for utilizing shared resource
US8209683B2 (en) System and method for probing hypervisor tasks in an asynchronous environment
Gracioli et al. An experimental evaluation of the cache partitioning impact on multicore real-time schedulers
Min et al. Vmmb: Virtual machine memory balancing for unmodified operating systems
Pi et al. Memory at your service: Fast memory allocation for latency-critical services
Bielski et al. Dynamic Guest Memory Resizing-Paravirtualized Approach
US11836525B2 (en) Dynamic last level cache allocation for cloud real-time workloads
Maruf et al. Memtrade: Marketplace for Disaggregated Memory Clouds
US11914512B2 (en) Writeback overhead reduction for workloads
US11947992B2 (en) Methods and apparatuses for managing TLB cache in virtualization platform
JP5847313B2 (en) Information processing device
JP2014157476A (en) Measurement device and measurement method
Scolari Partitioning Deep Cache Hierarchies in Software for Predictable Performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061129

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

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: 20081202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081223

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees