JP4408078B2 - Sort processing apparatus, sort processing method and program - Google Patents

Sort processing apparatus, sort processing method and program Download PDF

Info

Publication number
JP4408078B2
JP4408078B2 JP2004350983A JP2004350983A JP4408078B2 JP 4408078 B2 JP4408078 B2 JP 4408078B2 JP 2004350983 A JP2004350983 A JP 2004350983A JP 2004350983 A JP2004350983 A JP 2004350983A JP 4408078 B2 JP4408078 B2 JP 4408078B2
Authority
JP
Japan
Prior art keywords
block
cache
size
data
sort
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.)
Active
Application number
JP2004350983A
Other languages
Japanese (ja)
Other versions
JP2006163565A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004350983A priority Critical patent/JP4408078B2/en
Publication of JP2006163565A publication Critical patent/JP2006163565A/en
Application granted granted Critical
Publication of JP4408078B2 publication Critical patent/JP4408078B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、主記憶装置上にある大容量のソート対象データをソートするソート処理技術に関する。   The present invention relates to a sort processing technique for sorting large-capacity sort target data on a main storage device.

従来のソート処理方式では、主記憶上に2つの領域を設け、ソート対象データ(レコード)をソートキー部分とその他の部分とに分割し、2つの領域に別々に格納してソートキーの部分だけをソートし、ソートされたソートキーと対応するソートキー以外の部分を結合して出力することにより、広範囲にメモリアクセスが入らないようにしてキャッシュヒット率の向上を行っていた(特許文献1)。
特開2000−10760号公報
In the conventional sort processing method, two areas are provided on the main memory, the data to be sorted (records) is divided into a sort key part and other parts, and stored separately in the two areas, and only the sort key part is sorted. Then, by combining and outputting the sorted sort key and the part other than the corresponding sort key, the cache hit rate is improved so that memory access does not enter in a wide range (Patent Document 1).
Japanese Patent Laid-Open No. 2000-10760

上述した従来のソート処理方式では、ソートキーのサイズが大きいときは、広範囲にメモリアクセスが入るため、キャッシュミスを頻発するという問題点があった。例えばソートキーのサイズが大きくレコードのサイズに近い値のときは、レコードを分割しても広範囲にわたりメモリアクセスが入ることになる。
この発明は上記のような問題点を解決することを目的の一つとしており、ソート処理の高速化を図るとともに、キャッシュヒット率を向上することを目的とする。
In the conventional sort processing method described above, when the size of the sort key is large, memory access is made in a wide range, so that cache misses frequently occur. For example, when the size of the sort key is large and the value is close to the size of the record, memory access can be performed over a wide range even if the record is divided.
An object of the present invention is to solve the above-described problems, and it is an object of the present invention to increase the speed of the sorting process and to improve the cache hit rate.

本実施の形態に係るソート処理装置は、
キャッシュメモリを用いて、ソート対象データのソートを行うソート処理装置であって、
前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割部と、
前記キャッシュメモリを用いて、前記ブロック分割部により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理部と、
前記キャッシュメモリを用いて、前記ブロック内ソート処理部によるソート後の各ブロックをマージして、ソート対象データのソートを行うブロック間マージ処理部とを有することを特徴とする。
The sort processing device according to the present embodiment is
A sort processing device that sorts data to be sorted using a cache memory,
A block division unit that calculates a block size based on the cache size of the cache memory, and divides the data to be sorted into a plurality of blocks based on the calculated block size;
Using the cache memory, an intra-block sort processing unit that performs intra-block sorting for each block divided by the block dividing unit;
It has an inter-block merge processing unit that uses the cache memory to merge blocks after sorting by the intra-block sort processing unit and sort the data to be sorted.

本発明によれば、キャッシュサイズに適合させたブロックサイズに分割することで、キャッシュメモリを有効に活用して高速なソート処理を実現することができ、また、キャッシュヒット率を向上させることができる。   According to the present invention, by dividing into block sizes adapted to the cache size, high-speed sort processing can be realized by effectively using the cache memory, and the cache hit rate can be improved. .

実施の形態1.
図1は本発明の一実施形態の構成を示す図である。図1において、ソート処理装置100は、主記憶装置1上のソート対象データ2のソート処理を実行し、ソート後のソート結果データ3を主記憶装置1に出力する。なお、図1に示していないが、ソート処理装置100は、キャッシュメモリ(1次キャッシュ、2次キャッシュ)を有するCPU(Central Processing Unit)を用いてソート処理を実行する。ソート処理装置100には、ブロック内ソート処理部4と、ブロック間マージ処理部5と、ブロック情報保持部6と、ブロック分割部10と、CPU ID検出部101と、CPU情報保持部102が含まれる。
Embodiment 1 FIG.
FIG. 1 is a diagram showing the configuration of an embodiment of the present invention. In FIG. 1, the sort processing device 100 executes the sort processing of the sort target data 2 on the main storage device 1, and outputs the sorted result data 3 after sorting to the main storage device 1. Although not shown in FIG. 1, the sort processing device 100 executes sort processing using a CPU (Central Processing Unit) having a cache memory (primary cache, secondary cache). The sort processing apparatus 100 includes an intra-block sort processing unit 4, an inter-block merge processing unit 5, a block information holding unit 6, a block dividing unit 10, a CPU ID detection unit 101, and a CPU information holding unit 102. It is.

ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。   The sort processing apparatus 100 may be configured by hardware, or all or part of the elements of the sort processing apparatus 100 may be configured by a program operable on the CPU. Alternatively, it may be realized by firmware stored in the ROM. Alternatively, it may be realized by a combination of software and hardware, a combination of software, hardware and firmware, or the like.

CPU ID検出部は、ソート処理に使用する(計算機に搭載されている)CPUのID(識別情報)を検出する。CPU ID検出部101は、識別情報検出部の例である。
CPU情報保持部102は、CPUが有する1次キャッシュサイズ、2次キャッシュサイズの情報(キャッシュサイズ情報)を保持する。図2は、CPU情報保持部が保持するキャッシュサイズ情報の例を示す。例えばCPU ID検出部により検出されたCPU IDが“A02”であったとすると、1次キャッシュサイズが16KB、2次キャッシュサイズが1MBという情報が抽出される。CPU情報保持部102はキャッシュサイズ情報保持部の例である。
The CPU ID detection unit detects the ID (identification information) of the CPU (mounted on the computer) used for the sort process. The CPU ID detection unit 101 is an example of an identification information detection unit.
The CPU information holding unit 102 holds primary cache size and secondary cache size information (cache size information) of the CPU. FIG. 2 shows an example of cache size information held by the CPU information holding unit. For example, if the CPU ID detected by the CPU ID detection unit is “A02”, information that the primary cache size is 16 KB and the secondary cache size is 1 MB is extracted. The CPU information holding unit 102 is an example of a cache size information holding unit.

ブロック分割部10は、CPU ID検出部101により検出されたCPU IDとCPU情報保持部102から得られるキャッシュサイズ情報によりソート対象データ2をブロック分割する際のブロックサイズを決定し、ソート対象データ2を複数のブロックに分割する。ブロックサイズの算出手順の詳細は、後述する。また、ブロック分割部10は分割したブロックのアドレス情報をブロック情報保持部6に格納する。   The block division unit 10 determines the block size when the sort target data 2 is divided into blocks based on the CPU ID detected by the CPU ID detection unit 101 and the cache size information obtained from the CPU information holding unit 102, and the sort target data 2 Is divided into a plurality of blocks. Details of the block size calculation procedure will be described later. The block dividing unit 10 stores the address information of the divided blocks in the block information holding unit 6.

ブロック内ソート処理部4はブロック情報保持部に格納されている全てのブロックにおいてソート対象データのブロック内ソートを実行する。
ブロック間マージ処理部5はソートされた各ブロックのマージを実行し、その結果をソート結果データ3として主記憶装置上に出力する。
The intra-block sort processing unit 4 performs intra-block sorting of the data to be sorted in all blocks stored in the block information holding unit.
The inter-block merge processing unit 5 executes merging of the sorted blocks, and outputs the result as sort result data 3 on the main storage device.

次に、図3〜図6を参照して、ソート処理装置100の動作について説明する。
まず、ステップS301において、CPU ID検出部101がマイクロ命令によりCPUのIDを検出する。例えばintel(登録商標)社製マイクロプロセッサのXeon(登録商標)プロセッサでは”cpuid”という命令でCPUのIDをCPUから直接読み出すことができる。
Next, the operation of the sort processing apparatus 100 will be described with reference to FIGS.
First, in step S301, the CPU ID detection unit 101 detects the CPU ID by a micro instruction. For example, in the Xeon (registered trademark) processor of the microprocessor manufactured by Intel (registered trademark), the CPU ID can be directly read from the CPU by the instruction “cpuid”.

次に、ステップS302において、ブロック分割部10がCPU ID検出部101で得たCPUのIDに基づきCPU情報保持部102から該当するCPUのキャッシュメモリの情報を取得し、取得したキャッシュメモリの情報に基づきキャッシュメモリのキャッシュサイズを判定する。   Next, in step S302, the block dividing unit 10 acquires the cache memory information of the corresponding CPU from the CPU information holding unit 102 based on the CPU ID obtained by the CPU ID detecting unit 101, and the acquired cache memory information is included in the acquired cache memory information. Based on this, the cache size of the cache memory is determined.

次に、ステップS303において、ブロック分割部10がソート対象データ2の分割のためのブロックサイズを算出する(ブロック分割ステップ)。
ブロックサイズの算出の基準は、各ブロックの最小値で構成する部分データ列のサイズがCPUの1次キャッシュにヒットするとともに、1ブロックのサイズがCPUの2次キャッシュにヒットする大きさとする。図6に示すように、ソート対象データ2を各ブロックに分割した後、各ブロックの最小値を抽出し、各ブロックの最小値で構成する部分データ列を生成する。この各ブロックの最小値で構成する部分データ列が1次キャッシュサイズに収まる範囲であって、1ブロックのサイズが2次キャッシュサイズに収まるようにブロックサイズを算出する。
Next, in step S303, the block dividing unit 10 calculates a block size for dividing the sort target data 2 (block dividing step).
The standard for calculating the block size is such that the size of the partial data string formed by the minimum value of each block hits the CPU primary cache and the size of one block hits the CPU secondary cache. As shown in FIG. 6, after the sorting target data 2 is divided into blocks, the minimum value of each block is extracted, and a partial data string composed of the minimum value of each block is generated. The block size is calculated so that the partial data string composed of the minimum value of each block is within the range of the primary cache size and the size of one block is within the secondary cache size.

CPUの1次キャッシュサイズ:C1、CPUの2次キャッシュサイズ:C2、ソート対象データの1件当たりのレコード長:RL、ソート対象データの全件のデータサイズ(1件当たりのレコード長×件数):AR、(ソート対象データ分割の際の)ブロック数:BN、(ソート対象データ分割の際の)ブロックサイズ:BSとし、BN=C1/RL、BS=AR/BNと設定する。
ここで、BS<C2を満たすことでCPUの2次キャッシュ内でのブロック内ソートを行うことができる。
CPU primary cache size: C1, CPU secondary cache size: C2, sort target data per record length: RL, data size of all sort target data (record length per record x number of records) : AR, number of blocks (when sorting target data is divided): BN, block size (when sorting target data is divided): BS, BN = C1 / RL, BS = AR / BN.
Here, by satisfying BS <C2, sorting within the block in the secondary cache of the CPU can be performed.

次に、ステップS304において、S303で算出したブロックサイズによりソート対象データ2を複数のブロックに分割する(ブロック分割ステップ)。
例えばCPU ID検出部101により検出されたCPU IDが“A02”であったとすると、図2に示すCPU情報保持部から1次キャッシュサイズが16KB、2次キャッシュサイズが1MBであることがわかる。次に図4においてレコード長が100B、1,000,000件のレコードがあったとするとソート対象データは100,000,000Bである。これを1ブロックのサイズを1,000,000B−100B(1レコード分)で分割する(401)。100B(1レコード分)減らして計算するのは、ソート実行時のデータ交換用レコードを追加するためである。1,000,000B−100Bにてソート対象データを分割すると、9,999件のレコードによるブロックが100個と、100件のレコードによるブロックが1個に分割される。各ブロックにデータ交換用の1レコード分を追加すると、サイズ1,000,000Bのブロック(9,999件のレコード(9,999件×100B=999,900B)+データ交換用1レコード(100B))100個と、サイズ10,100Bの(100件のレコード(100件×100B=10,000B)+データ交換用1レコード(100B))1個が得られる。この場合、101件のレコードによる最小値のデータ列が生成されるが、最小値のデータ列のサイズは101件となり約10KBで1次キャッシュサイズが16KBとするとソート実行時のデータ交換用の1レコード分を含めても1次キャッシュメモリにおさまるサイズである。
Next, in step S304, the sort target data 2 is divided into a plurality of blocks based on the block size calculated in S303 (block division step).
For example, if the CPU ID detected by the CPU ID detection unit 101 is “A02”, it can be seen from the CPU information holding unit shown in FIG. 2 that the primary cache size is 16 KB and the secondary cache size is 1 MB. Next, in FIG. 4, if there is a record with a record length of 100B and 1,000,000 records, the sort target data is 100,000,000B. This is divided into blocks of 1,000,000B-100B (one record) (401). The reason for calculating by reducing 100B (one record) is to add a record for data exchange at the time of sorting. When the sort target data is divided by 1,000,000B-100B, 100 blocks of 9,999 records and one block of 100 records are divided into one. When one record for data exchange is added to each block, a block of size 1,000,000B (9,999 records (9,999 records × 100B = 999,900B) + one record for data exchange (100B) ) 100 and a size of 10,100B (100 records (100 records × 100B = 10,000B) + one record for data exchange (100B)) are obtained. In this case, the minimum value data string is generated by 101 records, but the size of the minimum value data string is 101, and if the primary cache size is 16 KB when the primary cache size is 16 KB, 1 for data exchange at the time of sort execution Even if records are included, the size fits in the primary cache memory.

また、ステップS304にてブロック分割部10がブロック分割を行う際に、ブロック情報保持部6に各ブロックのアドレス情報を通知し、ブロック情報保持部6は各ブロックのアドレス情報を保持する。このため、ブロック内ソート処理部4はブロック情報保持部6により各ブロックのアドレス情報を得ることができる。ブロック内ソート処理部4は、ステップS305において、ブロック分割部10により分割された全てのブロックについて2次キャッシュを用いてブロック内ソートを実行する(ブロック内ソート処理ステップ)。例えばクイックソートを用いればデータの参照、データの交換ともキャッシュメモリ上で高速に実行することができる。   Further, when the block dividing unit 10 performs block division in step S304, the block information holding unit 6 is notified of the address information of each block, and the block information holding unit 6 holds the address information of each block. For this reason, the intra-block sort processing unit 4 can obtain the address information of each block by the block information holding unit 6. In step S305, the intra-block sort processing unit 4 performs intra-block sort using the secondary cache for all blocks divided by the block dividing unit 10 (intra-block sort processing step). For example, if quick sort is used, both data reference and data exchange can be executed at high speed on the cache memory.

全てのブロックについてブロック内ソートが完了すると、次にステップS306において、ブロック間マージ処理部5が各ブロックのマージを行う(ブロック間マージ処理ステップ)。ブロック間のマージ処理を図5のフローチャートに従って説明する。先ず、ブロック内ソートされたN個のブロックの最小値によるデータ列を生成する(S3061)。次に生成したデータ列をソートする(S3062)。このときソートされた各データはブロック情報保持部6によりどのブロックのデータであるかを判別することができる。ソートされたデータ列の最小値をソート結果データの最小値として主記憶上に出力する(S3063)。出力されたデータが属していたブロックに次の最小値のデータがあるか否かを判断し(S3064)、次の最小値のデータがあれば、これを最小値のデータ列に挿入するとともに(S3065)、最小値のデータ列をソートする処理(S3062)から繰り返して実行する。図6のケースでは、ブロック2に属していた“8”が最小値データ列内の最小値として出力されたため、ブロック2の次の最小値である“22”が最小値データ列に挿入される。   When the intra-block sorting is completed for all the blocks, the inter-block merge processing unit 5 then merges each block in step S306 (inter-block merge processing step). The merge processing between blocks will be described with reference to the flowchart of FIG. First, a data string based on the minimum value of N blocks sorted in a block is generated (S3061). Next, the generated data string is sorted (S3062). Each block sorted at this time can be identified by the block information holding unit 6 as to which block data. The minimum value of the sorted data string is output on the main memory as the minimum value of the sort result data (S3063). It is determined whether there is the next minimum value data in the block to which the output data belonged (S3064). If there is the next minimum value data, it is inserted into the minimum value data string ( S3065), the process is repeated from the process of sorting the minimum value data string (S3062). In the case of FIG. 6, since “8” belonging to block 2 is output as the minimum value in the minimum value data string, “22” that is the next minimum value of block 2 is inserted into the minimum value data string. .

このように最小値を出力したデータのブロックから次の最小値を最小値データ列に挿入していくことによりソート対象データ全体でのソートを行う。
ブロックが空になるとそのブロックはマージの対象からはずされ、残りのブロックだけでマージ処理を行っていく。出力した最小値のブロックが空の場合、出力した最小値の次に小さいデータを出力する。そして出力したデータの属するブロックから最小値のデータ列へ次に小さいデータを挿入する。
In this way, the next minimum value is inserted into the minimum value data string from the block of data that has output the minimum value, thereby sorting the entire data to be sorted.
When a block becomes empty, the block is removed from the merge target, and the merge process is performed only with the remaining blocks. When the output minimum value block is empty, the next smallest data is output after the output minimum value. Then, the next smallest data is inserted from the block to which the output data belongs to the minimum value data string.

出力したデータの属するブロックから次に小さい値の最小値のデータ列への挿入、そのデータ列の最小値の主記憶装置への出力、を繰り返して行き、全てのブロックが空になった時点でソート対象データのソートが完了する(S3066)。
以上の処理を経て、主記憶装置1には、ソート結果データ3が得られることになる。
When the block to which the output data belongs is inserted into the next smallest minimum value data string and the minimum value of the data string is output to the main memory, when all the blocks are empty Sorting of the data to be sorted is completed (S3066).
Through the above processing, sort result data 3 is obtained in the main storage device 1.

なお、以上の処理では、各ブロック内の最小値を抽出して最小値データ列を生成し、最小値データ列内の最小値を順に主記憶装置上に出力していったが、各ブロック内の最大値を抽出して最大値データ列を生成し、最大値データ列内の最大値を順に主記憶装置上に出力するようにしてもよい。   In the above processing, the minimum value in each block is extracted to generate a minimum value data string, and the minimum value in the minimum value data string is sequentially output to the main storage device. The maximum value may be extracted to generate a maximum value data string, and the maximum value in the maximum value data string may be output to the main storage device in order.

このように、本実施の形態に係るソート処理装置は、主記憶装置上にある大容量のソート対象データをソートするために、CPUのIDを検出するCPU ID検出部、CPUのIDとCPUのキャッシュメモリの情報を保持するCPU情報保持部、CPU情報保持部により得たCPUのキャッシュメモリの情報によりソート対象データを複数のブロックに分割するブロック分割部、分割したブロックの情報を保持するブロック情報保持部、分割されたブロック毎にソート対象データをソートするブロック内ソート部、ソートされた各ブロックについてマージを実行してソート対象データ全体のソート結果を得るブロック間マージ処理部を備え、ブロック分割部10が、ソート処理に用いるCPUの1次キャッシュ及び2次キャッシュのキャッシュサイズの情報をCPU情報保持部102から取得し、1次キャッシュ及び2次キャッシュのキャッシュサイズに基づきソート対象データ2を分割する際のブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割し、ブロック内ソート処理部4が、CPUの2次キャッシュを用いて、ブロック分割部10により分割されたブロック毎にブロック内のソートを行い、ブロック間マージ処理部5が、1次キャッシュを用いて、ブロック内ソート処理部4によるソート後の各ブロックをマージして、ソート対象データのソートを行い、ソート後のソート結果データ3を主記憶装置1に出力することを特徴とする。   As described above, the sort processing apparatus according to the present embodiment sorts the large-capacity sort target data on the main storage device, the CPU ID detection unit for detecting the CPU ID, the CPU ID and the CPU ID CPU information holding unit for holding cache memory information, block dividing unit for dividing sort target data into a plurality of blocks based on CPU cache memory information obtained by the CPU information holding unit, and block information for holding divided block information The block division includes a holding unit, an intra-block sort unit that sorts the sort target data for each divided block, and an inter-block merge processing unit that performs a merge on each sorted block and obtains a sort result of the entire sort target data. The CPU 10 uses the CPU's primary cache and secondary cache for the sort process. The size information is acquired from the CPU information holding unit 102, the block size for dividing the sort target data 2 is calculated based on the cache sizes of the primary cache and the secondary cache, and the sort target is calculated based on the calculated block size. The data is divided into a plurality of blocks, and the intra-block sort processing unit 4 sorts the blocks for each block divided by the block division unit 10 using the CPU secondary cache, and the inter-block merge processing unit 5 However, using the primary cache, merging each block after sorting by the intra-block sort processing unit 4 to sort the data to be sorted, and outputting the sorted result data 3 to the main storage device 1 It is characterized by.

そして、本実施の形態に係るソート処理装置は、ソート対象データの分割のためのブロックサイズを2次キャッシュサイズ以内にすることで、2次キャッシュメモリ上でブロック内ソートを高速に実行することができる。また、ソート対象データの分割のためのブロックサイズを最小値データ列のデータサイズが1次キャッシュサイズ以内となるサイズとすることで、ブロック内ソート後の最小値データ列のソートを1次キャッシュメモリ上で高速に実行することができる。これにより、主記憶上の大規模なデータを高速にソートすることができ、また、キャッシュヒット率を向上させることができる。   The sort processing device according to the present embodiment can execute the intra-block sort at high speed on the secondary cache memory by setting the block size for dividing the data to be sorted within the secondary cache size. it can. Further, by setting the block size for dividing the data to be sorted to a size in which the data size of the minimum value data string is within the primary cache size, the sorting of the minimum value data string after the intra-block sort is performed in the primary cache memory. It can be executed at high speed. Thereby, large-scale data on the main memory can be sorted at a high speed, and the cache hit rate can be improved.

実施の形態2.
以上の実施の形態1では、CPU IDを直接読み出していたが、次にこれを外部から入力する場合の実施形態を示す。
Embodiment 2. FIG.
In the first embodiment described above, the CPU ID is directly read out. Next, an embodiment in which this is input from the outside will be described.

図7は、本実施の形態の構成を示す図であり、実施の形態1のCPU ID検出部101及びCPU情報保持部102の代わりに、CPU情報読み込み部103を挿入した構成である。ソート処理装置100の他の構成要素、ブロック内ソート処理部4、ブロック間マージ処理部5、ブロック情報保持部6、ブロック分割部10は実施の形態1とである。   FIG. 7 is a diagram showing a configuration of the present embodiment, in which a CPU information reading unit 103 is inserted instead of the CPU ID detection unit 101 and the CPU information holding unit 102 of the first embodiment. Other components of the sort processing apparatus 100, the intra-block sort processing unit 4, the inter-block merge processing unit 5, the block information holding unit 6, and the block dividing unit 10 are the same as those in the first embodiment.

CPU情報読み込み部103は、ユーザからCPUのキャッシュサイズ情報を入力する。CPU情報読み込み部103は、キャッシュサイズ情報入力部の例である。
なお、本実施の形態においても、ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。
The CPU information reading unit 103 inputs CPU cache size information from the user. The CPU information reading unit 103 is an example of a cache size information input unit.
Also in this embodiment, the sort processing apparatus 100 may be configured by hardware, or all or part of the elements of the sort processing apparatus 100 may be configured by a program operable on the CPU. . Alternatively, it may be realized by firmware stored in the ROM. Alternatively, it may be realized by a combination of software and hardware, a combination of software, hardware and firmware, or the like.

次に、図8に従って本実施の形態に係るソート処理装置100の動作を説明する。
ステップS801において、CPU情報読み込み部103が、ユーザからCPUのキャッシュサイズ情報を入力する。入力するキャッシュサイズ情報には、CPUの1次キャッシュメモリのサイズと2次キャッシュメモリのサイズが示されている。次に、ステップS802において、ブロック分割部10が、CPU情報読み込み部103が読み込んだキャッシュサイズ情報によりソート対象データ2を分割する際のブロックサイズを算出する。ブロックサイズの算出方法は実施の形態1で示したものと同様である。また、以降、実施の形態1と同様にして、ソート対象データを分割し(S803)、分割後のブロック内のソートを実行し(S804)、ブロック内ソート後の各ブロックのマージを行う(S805)。
Next, the operation of the sort processing apparatus 100 according to the present embodiment will be described with reference to FIG.
In step S801, the CPU information reading unit 103 inputs CPU cache size information from the user. The input cache size information indicates the size of the primary cache memory and the size of the secondary cache memory of the CPU. Next, in step S <b> 802, the block dividing unit 10 calculates a block size when dividing the sort target data 2 based on the cache size information read by the CPU information reading unit 103. The block size calculation method is the same as that shown in the first embodiment. In the same manner as in the first embodiment, the data to be sorted is divided (S803), the divided blocks are sorted (S804), and the blocks after the intra-block sorting are merged (S805). ).

このように、本実施の形態に係るソート処理装置は、主記憶装置上にある大容量のソート対象データをソートするために、CPUのキャッシュメモリの情報を読み込むCPU情報読み込み部、CPU情報読み込み部により得たCPUのキャッシュメモリ情報によってソート対象データを複数のブロックに分割するブロック分割部、分割したブロックの情報を保持するブロック情報保持部、分割されたブロック毎にソート対象データをソートするブロック内ソート部、ソートされた各ブロックについてマージを実行してソート対象データ全体のソート結果を得るブロック間マージ処理部を備えることを特徴とする。   As described above, the sort processing device according to the present embodiment has a CPU information reading unit and a CPU information reading unit that read information in the cache memory of the CPU in order to sort a large amount of data to be sorted on the main storage device. A block division unit that divides the data to be sorted into a plurality of blocks based on the CPU cache memory information obtained by the above, a block information holding unit that holds information on the divided blocks, and a block that sorts the data to be sorted for each divided block The sorting unit includes an inter-block merge processing unit that performs merging on each sorted block and obtains a sorting result of the entire sort target data.

実施の形態1では、読み出したCPU IDのキャッシュメモリの情報がCPU情報保持部にない場合はブロック分割するための情報を得られなかったが、本実施の形態ではユーザがCPUのキャッシュメモリの情報を入力し、CPU情報読み込み部が読み込むことで、ブロック分割のサイズを決定することができる。   In the first embodiment, when the CPU information holding unit does not have the read CPU ID cache memory information, the information for dividing the block cannot be obtained. However, in this embodiment, the user does not have the CPU cache memory information. , And the CPU information reading unit reads the block division size.

実施の形態3.
以上の実施の形態1及び実施の形態2では、CPUのキャッシュメモリの使用状況にかかわらず、キャッシュメモリのメモリ容量を100%使用可能との前提に基づいてブロックサイズを算出したが、本実施の形態では、キャッシュメモリの使用状況を勘案してブロックサイズを算出する場合について説明する。
Embodiment 3 FIG.
In the first and second embodiments described above, the block size is calculated based on the assumption that the memory capacity of the cache memory can be used 100% regardless of the use state of the cache memory of the CPU. In the embodiment, a case where the block size is calculated in consideration of the usage state of the cache memory will be described.

図9は、本実施の形態の構成を示す図であり、実施の形態1に示すソート処理装置にキャッシュ使用率情報保持部104を追加した構成である。
キャッシュ使用率情報保持部104は、CPUごとに1次キャッシュ及び2次キャッシュの使用率の統計的情報を保持している。キャッシュ使用率情報保持部104は、例えば、時間帯ごとの1次キャッシュ及び2次キャッシュの平均使用率を示す情報を保持している。
FIG. 9 is a diagram showing a configuration of the present embodiment, which is a configuration in which a cache usage rate information holding unit 104 is added to the sort processing apparatus shown in the first embodiment.
The cache usage rate information holding unit 104 holds statistical information on the usage rates of the primary cache and the secondary cache for each CPU. For example, the cache usage rate information holding unit 104 holds information indicating the average usage rate of the primary cache and the secondary cache for each time period.

また、本実施の形態のブロック分割部10は、CPU情報保持部102のCPUのキャッシュサイズ情報とキャッシュ使用率情報保持部104のキャッシュ使用率の情報とを用いて、ソート対象データ分割の際のブロックサイズを算出する。例えば、図2の“A02”のCPUがCPU ID検出部101により検出された場合を想定する。このとき、キャッシュ使用率情報保持部104のキャッシュ使用率情報に、CPU “AO2”の使用率として、例えば1次キャッシュ:50%、2次キャッシュ:50%と示されていれば、ブロック分割部10は、それぞれのキャッシュサイズの50%である1次キャッシュ:8KB、2次キャッシュ:0.5MBをブロックサイズ算出のための基準値として用い、最小値データ列のサイズが1次キャッシュ:8KBの範囲内に収まるとともに、一つのブロックが2次キャッシュ:0.5MB以内となるようにブロックサイズを算出する。   In addition, the block dividing unit 10 according to the present embodiment uses the CPU cache size information of the CPU information holding unit 102 and the cache usage rate information of the cache usage rate information holding unit 104 to perform sorting target data division. Calculate the block size. For example, it is assumed that the CPU ID “A02” in FIG. 2 is detected by the CPU ID detection unit 101. At this time, if the cache usage rate information of the cache usage rate information holding unit 104 indicates the usage rate of the CPU “AO2”, for example, primary cache: 50%, secondary cache: 50%, the block dividing unit 10 is 50% of each cache size, primary cache: 8 KB, secondary cache: 0.5 MB is used as a reference value for block size calculation, and the size of the minimum value data string is primary cache: 8 KB. The block size is calculated so that it is within the range and one block is within the secondary cache: 0.5 MB.

なお、ブロックサイズ算出の際に、キャッシュ使用率情報保持部104のキャッシュ使用率情報を参照する点以外は、実施の形態1と同様である。
また、図9では、図1の構成にキャッシュ使用率情報保持部104を追加した構成としているが、図7の構成にキャッシュ使用率情報保持部104を追加した構成としてもよい。この場合は、ブロック分割部10は、CPU情報読み込み部103が読み込んだCPUのキャッシュサイズ情報とキャッシュ使用率情報保持部104のキャッシュ使用率情報とを用いて、ソート対象データ分割の際のブロックサイズを算出する。
The block size calculation is the same as that of the first embodiment except that the cache usage rate information in the cache usage rate information holding unit 104 is referred to.
In FIG. 9, the cache usage rate information holding unit 104 is added to the configuration of FIG. 1, but the cache usage rate information holding unit 104 may be added to the configuration of FIG. 7. In this case, the block dividing unit 10 uses the cache size information of the CPU read by the CPU information reading unit 103 and the cache usage rate information of the cache usage rate information holding unit 104 to block the size of the data to be sorted. Is calculated.

なお、本実施の形態においても、ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。   Also in this embodiment, the sort processing apparatus 100 may be configured by hardware, or all or part of the elements of the sort processing apparatus 100 may be configured by a program operable on the CPU. . Alternatively, it may be realized by firmware stored in the ROM. Alternatively, it may be realized by a combination of software and hardware, a combination of software, hardware and firmware, or the like.

本実施の形態よれば、キャッシュメモリの使用状況を勘案してブロックサイズを算出することができる。   According to the present embodiment, the block size can be calculated in consideration of the usage state of the cache memory.

実施の形態1の構成を示したブロック図である。1 is a block diagram showing a configuration of a first embodiment. CPU情報保持部が保持するキャッシュサイズ情報の例を示す図である。It is a figure which shows the example of the cache size information which a CPU information holding part hold | maintains. 実施の形態1に係るソート処理装置の動作例を示すフローチャート図である。FIG. 6 is a flowchart illustrating an operation example of the sort processing apparatus according to the first embodiment. ソート対象データを分割しブロック内ソートをし、マージを行う処理を示した模式図である。It is the schematic diagram which showed the process which divides sorting object data, sorts in a block, and performs a merge. ブロック内ソートが完了した後のマージ処理例を示したフローチャート図である。It is the flowchart figure which showed the example of merge processing after the sorting in a block was completed. ソート対象データを分割しブロック内ソートをした後のマージの方法を示した模式図である。It is the schematic diagram which showed the method of the merge after dividing | segmenting sorting object data and sorting in a block. 実施の形態2の構成を示したブロック図である。5 is a block diagram showing a configuration of a second embodiment. FIG. 実施の形態2に係るソート処理装置の動作例を示すフローチャート図である。FIG. 10 is a flowchart illustrating an operation example of the sort processing apparatus according to the second embodiment. 実施の形態3の構成を示したブロック図である。FIG. 6 is a block diagram showing a configuration of a third embodiment.

符号の説明Explanation of symbols

1 主記憶装置、2 ソート対象データ、3 ソート結果データ、4 ブロック内ソート処理部、5 ブロック間マージ処理部、6 ブロック情報保持部、10 ブロック分割部、100 ソート処理装置、101 CPU ID検出部、102 CPU情報保持部、103 CPU情報読み込み部、104 キャッシュ使用率情報保持部。   1 main storage device, 2 sort target data, 3 sort result data, 4 intra-block sort processing unit, 5 inter-block merge processing unit, 6 block information holding unit, 10 block dividing unit, 100 sort processing unit, 101 CPU ID detection unit , 102 CPU information holding unit, 103 CPU information reading unit, 104 Cache usage rate information holding unit.

Claims (6)

1次キャッシュと2次キャッシュを有するキャッシュメモリを用いて、ソート対象データのソートを行うソート処理装置であって、
前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割部と、
前記キャッシュメモリを用いて、前記ブロック分割部により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理部と、
前記キャッシュメモリを用いて、前記ブロック内ソート処理部によるソートが行われた後の各ブロックから、各ブロックにおける最大値のデータ又は最小値のデータを抽出し、抽出した各ブロックの最大値のデータ又は最小値のデータによるデータ列を生成し、生成したデータ列の中の最大値のデータ又は最小値のデータから順に各データを抽出して、前記ブロック内ソート処理部によるソート後の各ブロックをマージするブロック間マージ処理部とを有し、
前記ブロック分割部は
ソート対象データの分割のためのブロックサイズを、前記2次キャッシュのキャッシュサイズ以内のサイズであって、前記ブロック間マージ処理部が生成するデータ列のデータサイズが前記1次キャッシュのキャッシュサイズ以内となるサイズとすることを特徴とするソート処理装置。
A sort processing device that sorts data to be sorted using a cache memory having a primary cache and a secondary cache ,
A block division unit that calculates a block size based on the cache size of the cache memory, and divides the data to be sorted into a plurality of blocks based on the calculated block size;
Using the cache memory, an intra-block sort processing unit that performs intra-block sorting for each block divided by the block dividing unit;
Using the cache memory, the maximum value data or the minimum value data in each block is extracted from each block after being sorted by the intra-block sort processing unit, and the extracted maximum value data of each block Alternatively, a data string based on the minimum value data is generated, each data is extracted in order from the maximum value data or the minimum value data in the generated data string, and each block after sorting by the intra-block sort processing unit is extracted. possess the interblock merge processing unit for merging,
The block dividing unit
The block size for dividing the data to be sorted is a size within the cache size of the secondary cache, and the data size of the data string generated by the inter-block merge processing unit is within the cache size of the primary cache. Sort processing apparatus characterized by having a size of
前記ブロック内ソート処理部は、The intra-block sort processing unit
前記2次キャッシュを用いて、前記ブロック分割部により分割されたブロック毎にブロック内のソートを行い、Using the secondary cache, sorting within the block for each block divided by the block dividing unit,
前記ブロック間ソート処理部は、The inter-block sort processing unit
前記1次キャッシュを用いて、前記ブロック内ソート処理部によるソート後の各ブロックをマージすることを特徴とする請求項1に記載のソート処理装置。The sort processing apparatus according to claim 1, wherein each block after sorting by the intra-block sort processing unit is merged using the primary cache.
前記ソート処理装置は、更に、
ソート対象データのソートに用いるキャッシュメモリのCPU(Central Processing Unit)の識別情報を検出する識別情報検出部と、
複数種のCPUについて、それぞれのキャッシュメモリのキャッシュサイズを示すキャッシュサイズ情報を保持するキャッシュサイズ情報保持部とを有し、
前記ブロック分割部は、
前記識別情報検出部により検出されたCPUの識別情報と前記キャッシュサイズ情報保持部のキャッシュサイズ情報とに基づき、ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを判定し、判定したキャッシュサイズに基づきブロックサイズを算定することを特徴とする請求項1に記載のソート処理装置。
The sort processing device further includes:
An identification information detection unit for detecting identification information of a CPU (Central Processing Unit) of the cache memory used for sorting the data to be sorted;
A cache size information holding unit for holding cache size information indicating the cache size of each cache memory for a plurality of types of CPUs;
The block dividing unit
Based on the CPU identification information detected by the identification information detection unit and the cache size information of the cache size information holding unit, the cache size of the cache memory used for sorting the sort target data is determined, and based on the determined cache size 2. The sort processing apparatus according to claim 1, wherein a block size is calculated.
前記ソート処理装置は、更に、
ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを示すキャッシュサイズ情報を入力するキャッシュサイズ情報入力部を有し、
前記ブロック分割部は、
前記キャッシュサイズ情報入力部により入力されたキャッシュサイズ情報に基づき、ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを判定し、判定したキャッシュサイズに基づきブロックサイズを算定することを特徴とする請求項1に記載のソート処理装置。
The sort processing device further includes:
A cache size information input unit for inputting cache size information indicating the cache size of the cache memory used for sorting the data to be sorted;
The block dividing unit
The cache size of the cache memory used for sorting the sort target data is determined based on the cache size information input by the cache size information input unit, and the block size is calculated based on the determined cache size. The sort processing apparatus according to 1.
1次キャッシュと2次キャッシュを有するキャッシュメモリを用いて、ソート対象データのソートを行うソート処理方法であって、
前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割ステップと、
前記キャッシュメモリを用いて、前記ブロック分割ステップにより分割されたブロック毎にブロック内のソートを行うブロック内ソート処理ステップと、
前記キャッシュメモリを用いて、前記ブロック内ソート処理ステップによるソートが行われた後の各ブロックから、各ブロックにおける最大値のデータ又は最小値のデータを抽出し、抽出した各ブロックの最大値のデータ又は最小値のデータによるデータ列を生成し、生成したデータ列の中の最大値のデータ又は最小値のデータから順に各データを抽出して、前記ブロック内ソート処理ステップによるソート後の各ブロックをマージするブロック間マージ処理ステップとを有し、
前記ブロック分割ステップでは
ソート対象データの分割のためのブロックサイズとして、前記2次キャッシュのキャッシュサイズ以内のサイズであって、前記ブロック間マージ処理ステップにより生成されるデータ列のデータサイズが前記1次キャッシュのキャッシュサイズ以内となるサイズが算出されることを特徴とする特徴とするソート処理方法。
A sort processing method for sorting data to be sorted using a cache memory having a primary cache and a secondary cache ,
A block dividing step of calculating a block size based on the cache size of the cache memory and dividing the sort target data into a plurality of blocks based on the calculated block size;
An intra-block sorting process step that sorts the blocks for each block divided by the block dividing step using the cache memory;
Using the cache memory, the maximum value data or the minimum value data in each block is extracted from each block after the sorting by the intra-block sorting process step, and the extracted maximum value data of each block Alternatively, a data string based on the minimum value data is generated, each data is extracted in order from the maximum value data or the minimum value data in the generated data string, and each block after sorting by the intra-block sort processing step is extracted. have a merge process steps between blocks to be merged,
In the block dividing step ,
The block size for dividing the data to be sorted is within the cache size of the secondary cache, and the data size of the data string generated by the inter-block merge processing step is within the cache size of the primary cache A sort processing method characterized in that a size is calculated .
1次キャッシュと2次キャッシュを有するキャッシュメモリを用いて、ソート対象データのソートを行うためのプログラムであって、
前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割処理と、
前記キャッシュメモリを用いて、前記ブロック分割処理により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理と、
前記キャッシュメモリを用いて、前記ブロック内ソート処理によるソートが行われた後の各ブロックから、各ブロックにおける最大値のデータ又は最小値のデータを抽出し、抽出した各ブロックの最大値のデータ又は最小値のデータによるデータ列を生成し、生成したデータ列の中の最大値のデータ又は最小値のデータから順に各データを抽出して、前記ブロック内ソート処理によるソート後の各ブロックをマージするブロック間マージ処理とをコンピュータに実行させ
前記ブロック分割処理において、
前記コンピュータに、
ソート対象データの分割のためのブロックサイズとして、前記2次キャッシュのキャッシュサイズ以内のサイズであって、前記ブロック間マージ処理により生成されるデータ列のデータサイズが前記1次キャッシュのキャッシュサイズ以内となるサイズを算出させることを特徴とするプログラム。
A program for sorting data to be sorted using a cache memory having a primary cache and a secondary cache ,
A block division process for calculating a block size based on the cache size of the cache memory and dividing the sort target data into a plurality of blocks based on the calculated block size;
Using the cache memory, an intra-block sort process that performs an intra-block sort for each block divided by the block division process;
Using the cache memory, the maximum value data or the minimum value data in each block is extracted from each block after being sorted by the intra-block sort process, and the maximum value data of each extracted block or A data string based on the minimum value data is generated, each data is extracted in order from the maximum value data or the minimum value data in the generated data string, and each block after sorting by the intra-block sort processing is merged. Let the computer execute the merge process between blocks ,
In the block division process,
In the computer,
The block size for dividing the data to be sorted is a size within the cache size of the secondary cache, and the data size of the data string generated by the inter-block merge process is within the cache size of the primary cache. The program characterized by calculating the size which becomes .
JP2004350983A 2004-12-03 2004-12-03 Sort processing apparatus, sort processing method and program Active JP4408078B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004350983A JP4408078B2 (en) 2004-12-03 2004-12-03 Sort processing apparatus, sort processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004350983A JP4408078B2 (en) 2004-12-03 2004-12-03 Sort processing apparatus, sort processing method and program

Publications (2)

Publication Number Publication Date
JP2006163565A JP2006163565A (en) 2006-06-22
JP4408078B2 true JP4408078B2 (en) 2010-02-03

Family

ID=36665543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004350983A Active JP4408078B2 (en) 2004-12-03 2004-12-03 Sort processing apparatus, sort processing method and program

Country Status (1)

Country Link
JP (1) JP4408078B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4502223B2 (en) 2007-12-05 2010-07-14 株式会社エスグランツ Bit string merge sort apparatus, method, and program
JP2009199439A (en) * 2008-02-22 2009-09-03 Nec Corp Merge sort processing method, merge sort processing device, and merge sort processing program
JP5099525B2 (en) * 2009-03-27 2012-12-19 アイシン・エィ・ダブリュ株式会社 Navigation device and program
US11200056B2 (en) 2018-02-08 2021-12-14 Nec Corporation Parallel union control device, parallel union control method, and storage medium
CN114282255B (en) * 2022-03-04 2022-05-31 支付宝(杭州)信息技术有限公司 Sorting sequence merging method and system based on secret sharing

Also Published As

Publication number Publication date
JP2006163565A (en) 2006-06-22

Similar Documents

Publication Publication Date Title
US20190266193A1 (en) Data processing method for bloom filter, and bloom filter
CN104517057B (en) Software hybrid metric method based on trust computing
TWI335512B (en) Technique for using memory attributes
CN105159604A (en) Disk data read-write method and system
JPH09218731A (en) Power estimator for micro processor
KR20100069240A (en) Apparatus and method for cache control
JP4408078B2 (en) Sort processing apparatus, sort processing method and program
US7761662B2 (en) Cache memory device and microprocessor
CN112328298A (en) Code library cutting method and device for mobile terminal
JP2007527582A (en) Optimizing database access for record linking by tiling the space of record pairs
CN105095104A (en) Method and device for data caching processing
JP7528217B2 (en) GPU Packet Aggregation System
US20140244939A1 (en) Texture cache memory system of non-blocking for texture mapping pipeline and operation method of texture cache memory
WO2016122318A1 (en) A computer implemented method for generating a variant call file
US7861104B2 (en) Methods and apparatus for collapsing interrupts
CN108170837A (en) Method of Data Discretization, device, computer equipment and storage medium
US8549507B2 (en) Loop coalescing method and loop coalescing device
JP2009169171A (en) Point compression device for elliptic curve, point deployment device for elliptic curve, method therefor, and program
GB2558955A (en) An apparatus and method for generating and processing a trace stream indicative of execution of predicated vector memory access instructions by processing
CN114091384A (en) Data processing circuit, artificial intelligence chip, data processing method and device
JP2006048422A (en) Loading apparatus, loading method, loading program, and computer readable recording medium for recording loading program
JP4769755B2 (en) Profiling support program, profiling support method, and computer
JP2011150736A (en) Profiling program, profiling method and computer
CN115454983B (en) Massive Hbase data deduplication method based on bloom filter
CN113299345B (en) Virus gene classification method and device and electronic equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090828

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4408078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250