JP5304307B2 - ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 - Google Patents
ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 Download PDFInfo
- Publication number
- JP5304307B2 JP5304307B2 JP2009039024A JP2009039024A JP5304307B2 JP 5304307 B2 JP5304307 B2 JP 5304307B2 JP 2009039024 A JP2009039024 A JP 2009039024A JP 2009039024 A JP2009039024 A JP 2009039024A JP 5304307 B2 JP5304307 B2 JP 5304307B2
- Authority
- JP
- Japan
- Prior art keywords
- sort
- sort key
- code
- data
- key comparison
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
(1)ソートキーの比較回数を減らすアルゴリズムを利用することで、ソートキーの比較処理の呼び出し回数を減らし、ソート処理時間を短縮する。
(2)マルチCPU環境において、ソート対象のデータを複数のブロックに分け、各ブロックのソートを並列に実行することで、ソート処理実行時間を短縮する。
(3)ソートキーの比較処理そのものを高速化することにより、ソート処理時間を短縮する。
ソートキー比較コード生成装置20は、ソートキー長にあわせて動的にソートキー比較コードを生成できるため、ソートキー長分のマシン語コードを予め用意しておく必要がなく、ソートキー比較処理の内容もシンプルである。さらに、ソートキー長を指定するのみで最適なソートキー比較コードを生成可能であり、いわばフィードフォーワード処理であるため、ソート処理にエラーが生じることはない。
ソート処理装置30は、ソートキー長分のループのための比較処理が不要であり、ソートキー比較処理時の比較処理回数が減少するため、ソートキー比較処理を高速に実行でき、ソート処理全体としても高速化できる。
ソート処理前処理部1は、ソートキー比較コード生成部2を備えており、ソート処理の前処理としてソートキー比較コードを生成する。ソート処理部3は、ソート処理前処理部1が生成したソートキー比較コードを用いて実際のソート処理を行うソートキー比較処理部4と、ソートキー比較コード生成部2が動的に生成したソートキー比較コードを格納するソートキー比較コード生成領域12とを備えている。ソートキー比較コードデータ格納領域6は、ソート処理前処理部1がソートキー比較コードを生成するために用いるコードデータが格納されている。
なお、ソートキー比較コード生成部2は、図1におけるソートキー比較コード生成部21や、図2におけるソートキー比較コード生成部31に相当する。また、ソートキー比較コードデータ格納領域6は、図1におけるソートキー比較コードデータ格納領域22や図2におけるソートキー比較コードデータ格納領域32に相当する。また、ソート処理部3は、図2におけるソート処理部36に相当する。
ソート処理の前処理として、ソート処理前処理部1による処理を行う。ソート処理前処理部1内で、ソートキー比較コード生成部2を呼び出す。ソートキー比較コード生成部2は、ソートキー比較コードデータ格納領域6からコードデータを読み出し、ソートキー比較コードを生成する。
まず、残ソートキー長にソートキー長をセットし、初期処理用コードデータ7をコードデータ生成領域12にコピーする(ステップS1)。
次に、残ソートキー長がNバイト用コードデータ10の比較長(ソートキー比較コードデータ格納領域6に格納されているコードデータのうち比較長が最大もの)以下か否かを確認する。換言すると、残ソートキー長がNバイト以下であるか否かを確認する(ステップS2)。残ソートキー長がNバイト以下ではない場合(ステップS2/No)、Nバイト用コードデータ10をコードデータ生成領域12にコピーし、残ソートキー長からNバイト分減算する(ステップS3)。そして、ステップS2へ進み、ステップS2がYesとなるまで上記の処理を繰り返す。残ソートキー長がNバイト以下であるならば(ステップS2/Yes)、残ソートキー長と同じ比較長のコードデータをコードデータ生成領域12にコピーする(ステップS4)。ステップS2〜S4の処理は、残ソートキー長をNで除した場合の商と同数のNバイト用コードデータとその余りと同数のバイト用のコードデータとをコピーする処理に相当する。
最後に、終了処理用コードデータ11をコードデータ生成領域12にコピーする(ステップS5)。
上記の手順で生成したソートキー比較コードは、ソートキー比較コード生成領域12に格納される。ソートキー比較コード生成領域12にコピーされた各コードデータには、ジャンプ先のアドレスなどの可変情報がセットされて実行可能とされる。
これに対し、図7に示す一般的なソートキー比較処理では、比較位置をインクリメントしてソートキー終了位置に達したか否かの判断するという処理を繰り返すため、ループのための比較処理(図7破線枠内)がソートキー長と同数必要となり、全体としてはソートキー長の2倍の比較処理が行われることとなる。
また、ソートキー長にあわせて動的にソートキー比較コードを生成するため、ソートキー長分のマシン語コードを予め用意しておく必要がなく、ソートキー比較処理の内容もシンプルである。
さらに、ソートキー長を指定するのみで最適なソートキー比較コードを生成可能であり、いわばフィードフォーワード処理であるため、ソート処理にエラーが生じることはない。
2、21、31 ソートキー比較コード生成部
3、36 ソート処理部
4、37 ソートキー比較処理部
6 ソートキー比較コードデータ格納領域
7 初期処理用コードデータ
8、23、33 1バイト用比較コードデータ
9、24、34 2バイト用比較コードデータ
10、25、35 Nバイト用比較コードデータ
11 終了処理用コードデータ
12 ソートキー比較コード生成領域
13 入力データ
14 出力データ
20 ソートキー比較コード生成装置
30 ソート処理装置
Claims (6)
- ソート処理に使用するソートキー比較コードを生成するソートキー比較コード生成装置であって、
2以上の所定の整数Nから1までの各バイト用のコードデータを記憶する手段と、
ソート対象データのソートキー長を前記Nで除した商と同数の前記Nバイト用のコードデータと、前記ソート対象データのソートキー長を前記Nで除した場合の余りと同数のバイト用のコードデータとを用いて前記ソートキー比較コードを生成する手段とを有することを特徴とするソートキー比較コード生成装置。 - 前記Nバイト用のコードデータのデータ量は、前記ソート処理を実行するソート処理装置の演算処理装置が1回の処理で扱う最大のデータ量であることを特徴とする請求項1記載のソートキー比較コード生成装置。
- 生成した前記ソートキー比較コードを、前記ソート処理を実行するソート処理装置に出力することを特徴とする請求項1又は2記載のソートキー比較コード生成装置。
- ソートキーを用いたソートキー比較処理を含むソート処理を実行するソート処理装置であって、
2以上の所定の整数Nから1までの各バイト用のコードデータを記憶する手段と、
ソート対象データのソートキー長を前記Nで除した商と同数の前記Nバイト用のコードデータと、前記ソート対象データのソートキー長を前記Nで除した場合の余りと同数のバイト用のコードデータとを用いてソートキー比較コードを生成する手段と、
前記ソートキー比較コードと前記ソート対象データとを、前記Nバイト用のコードデータ及び、前記余りと同数のバイト用のコードデータごとに比較してソートキー比較処理を行う比較処理手段とを有することを特徴とするソート処理装置。 - 前記Nバイト用のコードデータのデータ量は、前記比較処理手段が1回の処理で扱う最大のデータ量であることを特徴とする請求項4記載のソートキー処理装置。
- ソート処理に使用するソートキー比較コードを生成するソートキー比較コード生成方法であって、
記憶手段に記憶された2以上の所定の整数Nから1までの各バイト用のコードデータのうち、ソート対象データのソートキー長を前記Nで除した商と同数の前記Nバイト用のコードデータと、前記ソート対象データのソートキー長を前記Nで除した場合の余りと同数のバイト用のコードデータとを用いて前記ソートキー比較コードを生成することを特徴とするソートキー比較コード生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009039024A JP5304307B2 (ja) | 2009-02-23 | 2009-02-23 | ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009039024A JP5304307B2 (ja) | 2009-02-23 | 2009-02-23 | ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010198070A JP2010198070A (ja) | 2010-09-09 |
JP5304307B2 true JP5304307B2 (ja) | 2013-10-02 |
Family
ID=42822771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009039024A Expired - Fee Related JP5304307B2 (ja) | 2009-02-23 | 2009-02-23 | ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5304307B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62105231A (ja) * | 1985-11-01 | 1987-05-15 | Hitachi Ltd | 任意長デ−タのソ−ト方式 |
JPH01284921A (ja) * | 1988-05-12 | 1989-11-16 | Toshiba Corp | ソート処理装置 |
JP3305767B2 (ja) * | 1992-09-08 | 2002-07-24 | 株式会社日立製作所 | ソート処理方法及びコンパイル方法 |
-
2009
- 2009-02-23 JP JP2009039024A patent/JP5304307B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010198070A (ja) | 2010-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5381710B2 (ja) | ε遷移を含まない非決定性有限オートマトン生成システムと方法およびプログラム | |
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
WO2009116646A1 (ja) | マルチバイト処理向け文字列照合用有限オートマトン生成システム | |
JPWO2019241425A5 (ja) | ||
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN110168548B (zh) | 编译设备和方法 | |
Ronquist | Fast Fitch-parsimony algorithms for large data sets | |
JP2009181446A (ja) | プログラム生成装置およびブロック線図生成装置 | |
JP5440287B2 (ja) | シンボリック実行支援プログラム、方法及び装置 | |
US11539509B2 (en) | Memory optimization for nested hash operations | |
JP2010277440A (ja) | プログラム実行時における文字列の処理を最適化する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム | |
JP5304307B2 (ja) | ソートキー比較コード生成装置、ソート処理装置及びソートキー比較コード生成方法 | |
JP5267243B2 (ja) | 動作記述変換装置、動作記述変換方法、およびプログラム | |
US8385340B1 (en) | Pipeline of a packet processor programmed to concurrently perform operations | |
US8358653B1 (en) | Generating a pipeline of a packet processor from a parsing tree | |
JP6175306B2 (ja) | 制御プログラム分割装置、制御プログラム分割方法及びその記録媒体 | |
JP6555005B2 (ja) | 最適化装置、方法およびプログラム | |
JP6547345B2 (ja) | テストケース生成プログラム、テストケース生成方法およびテストケース生成装置 | |
Ueda | New developments in FORM | |
US20050268289A1 (en) | Method for decoding instruction in architectural simulator | |
US9880873B2 (en) | Electronic official document processing method | |
US8443102B1 (en) | Pipeline of a packet processor programmed to extract packet fields | |
JP2015094964A (ja) | 悪影響検出装置 | |
JP4327533B2 (ja) | 演算処理プログラム、演算処理方法、および演算処理装置 | |
JP5325309B2 (ja) | プログラム実行時における文字列の処理を最適化する方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20110920 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130523 |
|
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: 20130528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130610 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5304307 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |