JP2006163565A - ソート処理装置及びソート処理方法及びプログラム - Google Patents

ソート処理装置及びソート処理方法及びプログラム Download PDF

Info

Publication number
JP2006163565A
JP2006163565A JP2004350983A JP2004350983A JP2006163565A JP 2006163565 A JP2006163565 A JP 2006163565A JP 2004350983 A JP2004350983 A JP 2004350983A JP 2004350983 A JP2004350983 A JP 2004350983A JP 2006163565 A JP2006163565 A JP 2006163565A
Authority
JP
Japan
Prior art keywords
block
cache
sort
size
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004350983A
Other languages
English (en)
Other versions
JP4408078B2 (ja
Inventor
Tetsuya Takeo
哲也 武尾
Koji Nishikawa
浩司 西川
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/ja
Publication of JP2006163565A publication Critical patent/JP2006163565A/ja
Application granted granted Critical
Publication of JP4408078B2 publication Critical patent/JP4408078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 主記憶上にある大容量のソート対象データに対するソート処理の高速化を図るとともに、キャッシュヒット率を向上する。
【解決手段】 ブロック分割部10が、ソート処理に用いるCPUの1次キャッシュ及び2次キャッシュのキャッシュサイズの情報をCPU情報保持部102から取得し、1次キャッシュ及び2次キャッシュのキャッシュサイズに基づきソート対象データ2を分割する際のブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割し、ブロック内ソート処理部4が、CPUの2次キャッシュを用いて、ブロック分割部10により分割されたブロック毎にブロック内のソートを行い、ブロック間マージ処理部5が、1次キャッシュを用いて、ブロック内ソート処理部4によるソート後の各ブロックをマージして、ソート対象データのソートを行い、ソート後のソート結果データ3を主記憶装置1に出力する。
【選択図】 図1

Description

本発明は、主記憶装置上にある大容量のソート対象データをソートするソート処理技術に関する。
従来のソート処理方式では、主記憶上に2つの領域を設け、ソート対象データ(レコード)をソートキー部分とその他の部分とに分割し、2つの領域に別々に格納してソートキーの部分だけをソートし、ソートされたソートキーと対応するソートキー以外の部分を結合して出力することにより、広範囲にメモリアクセスが入らないようにしてキャッシュヒット率の向上を行っていた(特許文献1)。
特開2000−10760号公報
上述した従来のソート処理方式では、ソートキーのサイズが大きいときは、広範囲にメモリアクセスが入るため、キャッシュミスを頻発するという問題点があった。例えばソートキーのサイズが大きくレコードのサイズに近い値のときは、レコードを分割しても広範囲にわたりメモリアクセスが入ることになる。
この発明は上記のような問題点を解決することを目的の一つとしており、ソート処理の高速化を図るとともに、キャッシュヒット率を向上することを目的とする。
本実施の形態に係るソート処理装置は、
キャッシュメモリを用いて、ソート対象データのソートを行うソート処理装置であって、
前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割部と、
前記キャッシュメモリを用いて、前記ブロック分割部により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理部と、
前記キャッシュメモリを用いて、前記ブロック内ソート処理部によるソート後の各ブロックをマージして、ソート対象データのソートを行うブロック間マージ処理部とを有することを特徴とする。
本発明によれば、キャッシュサイズに適合させたブロックサイズに分割することで、キャッシュメモリを有効に活用して高速なソート処理を実現することができ、また、キャッシュヒット率を向上させることができる。
実施の形態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が含まれる。
ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。
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はキャッシュサイズ情報保持部の例である。
ブロック分割部10は、CPU ID検出部101により検出されたCPU IDとCPU情報保持部102から得られるキャッシュサイズ情報によりソート対象データ2をブロック分割する際のブロックサイズを決定し、ソート対象データ2を複数のブロックに分割する。ブロックサイズの算出手順の詳細は、後述する。また、ブロック分割部10は分割したブロックのアドレス情報をブロック情報保持部6に格納する。
ブロック内ソート処理部4はブロック情報保持部に格納されている全てのブロックにおいてソート対象データのブロック内ソートを実行する。
ブロック間マージ処理部5はソートされた各ブロックのマージを実行し、その結果をソート結果データ3として主記憶装置上に出力する。
次に、図3〜図6を参照して、ソート処理装置100の動作について説明する。
まず、ステップS301において、CPU ID検出部101がマイクロ命令によりCPUのIDを検出する。例えばintel(登録商標)社製マイクロプロセッサのXeon(登録商標)プロセッサでは”cpuid”という命令でCPUのIDをCPUから直接読み出すことができる。
次に、ステップS302において、ブロック分割部10がCPU ID検出部101で得たCPUのIDに基づきCPU情報保持部102から該当するCPUのキャッシュメモリの情報を取得し、取得したキャッシュメモリの情報に基づきキャッシュメモリのキャッシュサイズを判定する。
次に、ステップS303において、ブロック分割部10がソート対象データ2の分割のためのブロックサイズを算出する(ブロック分割ステップ)。
ブロックサイズの算出の基準は、各ブロックの最小値で構成する部分データ列のサイズがCPUの1次キャッシュにヒットするとともに、1ブロックのサイズがCPUの2次キャッシュにヒットする大きさとする。図6に示すように、ソート対象データ2を各ブロックに分割した後、各ブロックの最小値を抽出し、各ブロックの最小値で構成する部分データ列を生成する。この各ブロックの最小値で構成する部分データ列が1次キャッシュサイズに収まる範囲であって、1ブロックのサイズが2次キャッシュサイズに収まるようにブロックサイズを算出する。
CPUの1次キャッシュサイズ:C1、CPUの2次キャッシュサイズ:C2、ソート対象データの1件当たりのレコード長:RL、ソート対象データの全件のデータサイズ(1件当たりのレコード長×件数):AR、(ソート対象データ分割の際の)ブロック数:BN、(ソート対象データ分割の際の)ブロックサイズ:BSとし、BN=C1/RL、BS=AR/BNと設定する。
ここで、BS<C2を満たすことでCPUの2次キャッシュ内でのブロック内ソートを行うことができる。
次に、ステップ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次キャッシュメモリにおさまるサイズである。
また、ステップS304にてブロック分割部10がブロック分割を行う際に、ブロック情報保持部6に各ブロックのアドレス情報を通知し、ブロック情報保持部6は各ブロックのアドレス情報を保持する。このため、ブロック内ソート処理部4はブロック情報保持部6により各ブロックのアドレス情報を得ることができる。ブロック内ソート処理部4は、ステップS305において、ブロック分割部10により分割された全てのブロックについて2次キャッシュを用いてブロック内ソートを実行する(ブロック内ソート処理ステップ)。例えばクイックソートを用いればデータの参照、データの交換ともキャッシュメモリ上で高速に実行することができる。
全てのブロックについてブロック内ソートが完了すると、次にステップS306において、ブロック間マージ処理部5が各ブロックのマージを行う(ブロック間マージ処理ステップ)。ブロック間のマージ処理を図5のフローチャートに従って説明する。先ず、ブロック内ソートされたN個のブロックの最小値によるデータ列を生成する(S3061)。次に生成したデータ列をソートする(S3062)。このときソートされた各データはブロック情報保持部6によりどのブロックのデータであるかを判別することができる。ソートされたデータ列の最小値をソート結果データの最小値として主記憶上に出力する(S3063)。出力されたデータが属していたブロックに次の最小値のデータがあるか否かを判断し(S3064)、次の最小値のデータがあれば、これを最小値のデータ列に挿入するとともに(S3065)、最小値のデータ列をソートする処理(S3062)から繰り返して実行する。図6のケースでは、ブロック2に属していた“8”が最小値データ列内の最小値として出力されたため、ブロック2の次の最小値である“22”が最小値データ列に挿入される。
このように最小値を出力したデータのブロックから次の最小値を最小値データ列に挿入していくことによりソート対象データ全体でのソートを行う。
ブロックが空になるとそのブロックはマージの対象からはずされ、残りのブロックだけでマージ処理を行っていく。出力した最小値のブロックが空の場合、出力した最小値の次に小さいデータを出力する。そして出力したデータの属するブロックから最小値のデータ列へ次に小さいデータを挿入する。
出力したデータの属するブロックから次に小さい値の最小値のデータ列への挿入、そのデータ列の最小値の主記憶装置への出力、を繰り返して行き、全てのブロックが空になった時点でソート対象データのソートが完了する(S3066)。
以上の処理を経て、主記憶装置1には、ソート結果データ3が得られることになる。
なお、以上の処理では、各ブロック内の最小値を抽出して最小値データ列を生成し、最小値データ列内の最小値を順に主記憶装置上に出力していったが、各ブロック内の最大値を抽出して最大値データ列を生成し、最大値データ列内の最大値を順に主記憶装置上に出力するようにしてもよい。
このように、本実施の形態に係るソート処理装置は、主記憶装置上にある大容量のソート対象データをソートするために、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に出力することを特徴とする。
そして、本実施の形態に係るソート処理装置は、ソート対象データの分割のためのブロックサイズを2次キャッシュサイズ以内にすることで、2次キャッシュメモリ上でブロック内ソートを高速に実行することができる。また、ソート対象データの分割のためのブロックサイズを最小値データ列のデータサイズが1次キャッシュサイズ以内となるサイズとすることで、ブロック内ソート後の最小値データ列のソートを1次キャッシュメモリ上で高速に実行することができる。これにより、主記憶上の大規模なデータを高速にソートすることができ、また、キャッシュヒット率を向上させることができる。
実施の形態2.
以上の実施の形態1では、CPU IDを直接読み出していたが、次にこれを外部から入力する場合の実施形態を示す。
図7は、本実施の形態の構成を示す図であり、実施の形態1のCPU ID検出部101及びCPU情報保持部102の代わりに、CPU情報読み込み部103を挿入した構成である。ソート処理装置100の他の構成要素、ブロック内ソート処理部4、ブロック間マージ処理部5、ブロック情報保持部6、ブロック分割部10は実施の形態1とである。
CPU情報読み込み部103は、ユーザからCPUのキャッシュサイズ情報を入力する。CPU情報読み込み部103は、キャッシュサイズ情報入力部の例である。
なお、本実施の形態においても、ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。
次に、図8に従って本実施の形態に係るソート処理装置100の動作を説明する。
ステップS801において、CPU情報読み込み部103が、ユーザからCPUのキャッシュサイズ情報を入力する。入力するキャッシュサイズ情報には、CPUの1次キャッシュメモリのサイズと2次キャッシュメモリのサイズが示されている。次に、ステップS802において、ブロック分割部10が、CPU情報読み込み部103が読み込んだキャッシュサイズ情報によりソート対象データ2を分割する際のブロックサイズを算出する。ブロックサイズの算出方法は実施の形態1で示したものと同様である。また、以降、実施の形態1と同様にして、ソート対象データを分割し(S803)、分割後のブロック内のソートを実行し(S804)、ブロック内ソート後の各ブロックのマージを行う(S805)。
このように、本実施の形態に係るソート処理装置は、主記憶装置上にある大容量のソート対象データをソートするために、CPUのキャッシュメモリの情報を読み込むCPU情報読み込み部、CPU情報読み込み部により得たCPUのキャッシュメモリ情報によってソート対象データを複数のブロックに分割するブロック分割部、分割したブロックの情報を保持するブロック情報保持部、分割されたブロック毎にソート対象データをソートするブロック内ソート部、ソートされた各ブロックについてマージを実行してソート対象データ全体のソート結果を得るブロック間マージ処理部を備えることを特徴とする。
実施の形態1では、読み出したCPU IDのキャッシュメモリの情報がCPU情報保持部にない場合はブロック分割するための情報を得られなかったが、本実施の形態ではユーザがCPUのキャッシュメモリの情報を入力し、CPU情報読み込み部が読み込むことで、ブロック分割のサイズを決定することができる。
実施の形態3.
以上の実施の形態1及び実施の形態2では、CPUのキャッシュメモリの使用状況にかかわらず、キャッシュメモリのメモリ容量を100%使用可能との前提に基づいてブロックサイズを算出したが、本実施の形態では、キャッシュメモリの使用状況を勘案してブロックサイズを算出する場合について説明する。
図9は、本実施の形態の構成を示す図であり、実施の形態1に示すソート処理装置にキャッシュ使用率情報保持部104を追加した構成である。
キャッシュ使用率情報保持部104は、CPUごとに1次キャッシュ及び2次キャッシュの使用率の統計的情報を保持している。キャッシュ使用率情報保持部104は、例えば、時間帯ごとの1次キャッシュ及び2次キャッシュの平均使用率を示す情報を保持している。
また、本実施の形態のブロック分割部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以内となるようにブロックサイズを算出する。
なお、ブロックサイズ算出の際に、キャッシュ使用率情報保持部104のキャッシュ使用率情報を参照する点以外は、実施の形態1と同様である。
また、図9では、図1の構成にキャッシュ使用率情報保持部104を追加した構成としているが、図7の構成にキャッシュ使用率情報保持部104を追加した構成としてもよい。この場合は、ブロック分割部10は、CPU情報読み込み部103が読み込んだCPUのキャッシュサイズ情報とキャッシュ使用率情報保持部104のキャッシュ使用率情報とを用いて、ソート対象データ分割の際のブロックサイズを算出する。
なお、本実施の形態においても、ソート処理装置100はハードウェアで構成されていてもよいし、ソート処理装置100の要素の全てあるいは一部をCPU上で動作可能なプログラムにより構成してもよい。或いは、ROMに記憶されたファームウェアで実現されていてもよい。或いは、ソフトウェアとハードウェアの組合せ、ソフトウェアとハードウェアとファームウェアとの組み合わせ等で実現されてもよい。
本実施の形態よれば、キャッシュメモリの使用状況を勘案してブロックサイズを算出することができる。
実施の形態1の構成を示したブロック図である。 CPU情報保持部が保持するキャッシュサイズ情報の例を示す図である。 実施の形態1に係るソート処理装置の動作例を示すフローチャート図である。 ソート対象データを分割しブロック内ソートをし、マージを行う処理を示した模式図である。 ブロック内ソートが完了した後のマージ処理例を示したフローチャート図である。 ソート対象データを分割しブロック内ソートをした後のマージの方法を示した模式図である。 実施の形態2の構成を示したブロック図である。 実施の形態2に係るソート処理装置の動作例を示すフローチャート図である。 実施の形態3の構成を示したブロック図である。
符号の説明
1 主記憶装置、2 ソート対象データ、3 ソート結果データ、4 ブロック内ソート処理部、5 ブロック間マージ処理部、6 ブロック情報保持部、10 ブロック分割部、100 ソート処理装置、101 CPU ID検出部、102 CPU情報保持部、103 CPU情報読み込み部、104 キャッシュ使用率情報保持部。

Claims (7)

  1. キャッシュメモリを用いて、ソート対象データのソートを行うソート処理装置であって、
    前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割部と、
    前記キャッシュメモリを用いて、前記ブロック分割部により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理部と、
    前記キャッシュメモリを用いて、前記ブロック内ソート処理部によるソート後の各ブロックをマージして、ソート対象データのソートを行うブロック間マージ処理部とを有することを特徴とするソート処理装置。
  2. 前記ブロック間マージ処理部は、
    前記ブロック内ソート処理部によるソートが行われた後の各ブロックから、各ブロックにおける最大値のデータ又は最小値のデータを抽出し、抽出した各ブロックの最大値のデータ又は最小値のデータによるデータ列を生成し、生成したデータ列の中の最大値のデータ又は最小値のデータから順に各データを抽出して、前記ブロック内ソート処理部によるソート後の各ブロックをマージすることを特徴とする請求項1に記載のソート処理装置。
  3. 前記ソート処理装置は、
    1次キャッシュと2次キャッシュを有するキャッシュメモリを用い、
    前記ブロック分割部は、
    ソート対象データの分割のためのブロックサイズを、前記2次キャッシュのキャッシュサイズ以内のサイズであって、前記ブロック間マージ処理部が生成するデータ列のデータサイズが前記1次キャッシュのキャッシュサイズ以内となるサイズとすることを特徴とする請求項2に記載のソート処理装置。
  4. 前記ソート処理装置は、更に、
    ソート対象データのソートに用いるキャッシュメモリのCPU(Central Processing Unit)の識別情報を検出する識別情報検出部と、
    複数種のCPUについて、それぞれのキャッシュメモリのキャッシュサイズを示すキャッシュサイズ情報を保持するキャッシュサイズ情報保持部とを有し、
    前記ブロック分割部は、
    前記識別情報検出部により検出されたCPUの識別情報と前記キャッシュサイズ情報保持部のキャッシュサイズ情報とに基づき、ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを判定し、判定したキャッシュサイズに基づきブロックサイズを算定することを特徴とする請求項1に記載のソート処理装置。
  5. 前記ソート処理装置は、更に、
    ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを示すキャッシュサイズ情報を入力するキャッシュサイズ情報入力部を有し、
    前記ブロック分割部は、
    前記キャッシュサイズ情報入力部により入力されたキャッシュサイズ情報に基づき、ソート対象データのソートに用いるキャッシュメモリのキャッシュサイズを判定し、判定したキャッシュサイズに基づきブロックサイズを算定することを特徴とする請求項1に記載のソート処理装置。
  6. キャッシュメモリを用いて、ソート対象データのソートを行うソート処理方法であって、
    前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割ステップと、
    前記キャッシュメモリを用いて、前記ブロック分割ステップにより分割されたブロック毎にブロック内のソートを行うブロック内ソート処理ステップと、
    前記キャッシュメモリを用いて、前記ブロック内ソート処理ステップによるソート後の各ブロックをマージして、ソート対象データのソートを行うブロック間マージ処理ステップとを有することを特徴とするソート処理方法。
  7. キャッシュメモリを用いて、ソート対象データのソートを行うプログラムであって、
    前記キャッシュメモリのキャッシュサイズに基づきブロックサイズを算定し、算定したブロックサイズに基づいてソート対象データを複数のブロックに分割するブロック分割処理と、
    前記キャッシュメモリを用いて、前記ブロック分割処理により分割されたブロック毎にブロック内のソートを行うブロック内ソート処理と、
    前記キャッシュメモリを用いて、前記ブロック内ソート処理によるソート後の各ブロックをマージして、ソート対象データのソートを行うブロック間マージ処理とをコンピュータに実行させることを特徴とするプログラム。
JP2004350983A 2004-12-03 2004-12-03 ソート処理装置及びソート処理方法及びプログラム Active JP4408078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004350983A JP4408078B2 (ja) 2004-12-03 2004-12-03 ソート処理装置及びソート処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004350983A JP4408078B2 (ja) 2004-12-03 2004-12-03 ソート処理装置及びソート処理方法及びプログラム

Publications (2)

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

Family

ID=36665543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004350983A Active JP4408078B2 (ja) 2004-12-03 2004-12-03 ソート処理装置及びソート処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4408078B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072233A1 (ja) 2007-12-05 2009-06-11 S.Grants Co., Ltd. ビット列のマージソート装置、方法及びプログラム
JP2009199439A (ja) * 2008-02-22 2009-09-03 Nec Corp マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム
JP2010230522A (ja) * 2009-03-27 2010-10-14 Aisin Aw Co Ltd ナビゲーション装置及びプログラム
US11200056B2 (en) 2018-02-08 2021-12-14 Nec Corporation Parallel union control device, parallel union control method, and storage medium
CN114282255A (zh) * 2022-03-04 2022-04-05 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序序列合并方法和系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072233A1 (ja) 2007-12-05 2009-06-11 S.Grants Co., Ltd. ビット列のマージソート装置、方法及びプログラム
JP2009140161A (ja) * 2007-12-05 2009-06-25 S Grants Co Ltd ビット列のマージソート方法及びプログラム
JP4502223B2 (ja) * 2007-12-05 2010-07-14 株式会社エスグランツ ビット列のマージソート装置、方法及びプログラム
US8332410B2 (en) 2007-12-05 2012-12-11 KOUSOKUYA, Inc. Bit string merge sort device, method, and program
JP2009199439A (ja) * 2008-02-22 2009-09-03 Nec Corp マージソート処理方法、マージソート処理装置、及びマージソート処理プログラム
JP2010230522A (ja) * 2009-03-27 2010-10-14 Aisin Aw Co Ltd ナビゲーション装置及びプログラム
US11200056B2 (en) 2018-02-08 2021-12-14 Nec Corporation Parallel union control device, parallel union control method, and storage medium
CN114282255A (zh) * 2022-03-04 2022-04-05 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序序列合并方法和系统

Also Published As

Publication number Publication date
JP4408078B2 (ja) 2010-02-03

Similar Documents

Publication Publication Date Title
JP6804668B2 (ja) ブロックデータ検証方法および装置
CN104517057B (zh) 基于可信计算的软件混合度量方法
TWI486810B (zh) 在狀態機晶格中之計數器操作
TWI335512B (en) Technique for using memory attributes
JP2005032018A (ja) 遺伝的アルゴリズムを用いたマイクロプロセッサ
KR20100069240A (ko) 캐시 컨트롤을 위한 장치 및 방법
CN112328298A (zh) 移动端的代码库裁剪方法及装置
JP4408078B2 (ja) ソート処理装置及びソート処理方法及びプログラム
US20140047221A1 (en) Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP2007527582A (ja) レコードのペアの空間のタイリングによるレコードのリンクのためのデータベース・アクセスの最適化
JP2023505783A (ja) Gpuパケット集約システム
Perrot et al. An optimized GPU‐based 2D convolution implementation
US8549507B2 (en) Loop coalescing method and loop coalescing device
JP2004264886A5 (ja)
US20150134939A1 (en) Information processing system, information processing method and memory system
JP2011141664A (ja) 文書比較装置、文書比較方法、及びプログラム
JP4769755B2 (ja) プロファイリング支援プログラム、プロファイリング支援方法、およびコンピュータ
CN115454983B (zh) 一种基于布隆过滤器的海量Hbase数据去重方法
US20180239907A1 (en) Checking method, checking system and checking device for processor security
JP2011150736A (ja) プロファイリングプログラム、プロファイリング方法、およびコンピュータ
CN112765027B (zh) 一种检测应用程序执行过程中冗余零的方法
TWI587149B (zh) 管理存取控制清單的裝置、執行裝置以及方法
JP5262898B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
CN101251811B (zh) 基于存储器调页行为关联非相关进程内线程的方法和装置
JP2006172003A (ja) プログラム実行監視装置、プログラム実行監視方法及びプログラム作成方法

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