JPH0437455B2 - - Google Patents

Info

Publication number
JPH0437455B2
JPH0437455B2 JP1270888A JP1270888A JPH0437455B2 JP H0437455 B2 JPH0437455 B2 JP H0437455B2 JP 1270888 A JP1270888 A JP 1270888A JP 1270888 A JP1270888 A JP 1270888A JP H0437455 B2 JPH0437455 B2 JP H0437455B2
Authority
JP
Japan
Prior art keywords
string
input
strings
cell
merge
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 - Lifetime
Application number
JP1270888A
Other languages
English (en)
Other versions
JPH01189723A (ja
Inventor
Kazuhide Iwata
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP1270888A priority Critical patent/JPH01189723A/ja
Publication of JPH01189723A publication Critical patent/JPH01189723A/ja
Publication of JPH0437455B2 publication Critical patent/JPH0437455B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明はデータベース処理に代表される非数
値処理分野における基本演算の1つであるソート
処理を高速に効率良く実行し得るようにしたマー
ジ・ソートに関する。
(従来の技術) データを特定の順序に並び換えるソート処理は
非数値処理分野における基本演算の1つであり、
古くから数多くのソストウエアのアルゴリズム
(単純選択法、単純交換法、ヒープソート法、分
割ソート法、クイツクソート法、マージソート法
等)が提案されて、目的に応じた使い分けが行わ
れてきた。
1970年代に入ると、ホスト計算機のソート処理
ルーチンを付加プロセツサのフアームウエアで実
行して、ホスト計算機の負荷を軽減する方式が提
案された。その後、VLSI技術の進歩により、ソ
ータと呼ばれるソート処理専門のハードウエアの
提案が活発になつた。
これまでに提案されたソータの主要なものに
は、磁気バルブメモリのループ構造を利用したソ
ータ、n個のレコードをn個のセルを用いてソー
トするバイトニツク・ソータや並列計数ソータ、
logn個のセルを用いてn個数のレコードをソート
するパイプライン方式のソータ等がある。これら
の現状の技術を用いて実現するという観点からみ
ると、ハードウエアの小型化が可能という利点か
ら、logn個のセルを用いてn個のレコードをソー
トするパイプライン方式のソータが実用的である
とされている。
パイプライン方式のソータで実用化されたもの
1つに、2ウエイ・マージ・ソータがある。この
ソータは、2つのソートされたレコード列(以
下、ストリングと呼ぶ)を突き合せて1つのソー
トされたストリングを生成するマージ操作を、1
次元に多数個配置したセルにより連続的に行うも
のである。第5図に3段の2ウエイ・マージ・ソ
ータを用いて昇順に並んだ5個のレコード(1、
2、…の順に入力されるとする)を降順に並び換
える時のこのソータの動作原理を示し、第6図に
そのパイプライン処理動作の様子を示す。ソータ
の各段は、2つのストリングを格納するメモリ1
i(i=1、2、3)とセル2iとで構成されて
いる。メモリ1iには、奇数番目の入力ストリン
グがUMに、偶数番目の入力ストリングがLMに
交互に格納される。ソータは、入力レコード列
(以下、ストリームと呼ぶ)を長さ1のストリン
グが並んだものと見なして、これを入力順に2個
ずつマージし、各段でストリング長(ストリング
のレコード数)を倍々にしていく。即ち、第5図
に示されるように、セル2iに入力されるストリ
ング長は1であるから、セル21は、長さlのス
トリング1、2、3、4、5を入力順にUMと
LMに交互に格納しつつUMとLMのレコードの
マージ操作を行い、長さが2つのストリング
[2、1][4、3][5、−]を生成し、セル22
に出力する動作を行なう。セル22は、セル21
り送られてくる長さ2のストリングを入力順に
UMとLMに交互に格納しつつUMとLMのレコー
ドのマージ操作を行い、長さ4のストリング
[4、3、2、1][5、−、−、−]を生成し、セ
ル23に出力する動作を行う。このようにセル2
i(i=1、2…)はセル2i―1より送られて
くる長さ2i−1のストリングを入力順にメモリ1
iのUMとLMに交互に格納しつつUMとLMのレ
コードのマージ操作を行い、長さ2iのストリン
グを生成し、セル2i+1に出力する。この時、
各段は偶数番目のストリングの先頭データが入力
される毎に処理を開始し、第6図に示すようなパ
イプライン動作を行う。第6図より本ソータの処
理時間T(1)を求めると、 T(1)=ti+d1+d2+t0 ……(1) となる。ここで、tiとt0はそれぞれ5個のレコー
ドからなるストリームを入力する時間と出力する
時間、d1はストリームのレコード数が2つの累
乗値からずれたために生じた遅れ時間を、d2は
ストリームがセルを通過するための遅れ時間を示
す。ストリームのレコード数をC、セル数をN、
1ステツプの処理時間をTとする(1)式は次のよう
に表わさせる。
T(1)=CT+(2a−C)T+(N−1)T+CT
……(2) ただし、a=〈log2c〉(〈〉は小数点以下を切り
上げた整数値)、ti=t0=CT、d1=(2a−C)T、
d2=(N−1)Tである。上述の例の場合、C=
5、N=3であるからa=3となり、T(1)は15T
となる。
(1)の式において、ti、t0、d2はハードウエアの
仕様により定まる値であるが、d1はストリーム
のレコード数により決まる値であるため、制御方
式を工夫することにより除去することが可能であ
る。
そこで、従来より、上記d1を取り除く方式と
して、疑似レコード追加方式マージ・ソータ
(Todd、S.:Algorithm and Hardware for a
Merge Sort Using Multiple Processors.
IBM J.RES.DEVELOP.、Vol.22、No.5、
PP.509―517(1978))やダイナミツク・マージ方
式マージ・ソータ(林、他:パイプラインマージ
ソートアルゴリズムの改良によるソート時間の短
縮 情報処理学会第29回全国大会PP―763―764
―(1984))が提案されている。
疑似レコード追加方式マージ・ソータは、第7
図に示すように、ストリームのレコード数が2の
累乗値になるように、入力ストリームの先頭に疑
似レコード(+)を追加して仮想的な動作を考
え、第8図に示すステツプ4より実際にソータを
動作させることにより遅れ時間(d1)を除去し
ようとするものである。しかし、ソータをステツ
プ4より動作させるためには、ステツプ1、2、
3の処理が終了したものとしてセル21〜23に制
御パラメータの初期値をセツトする必要があるの
で、レコード数とレコード長がたえず変化するデ
ータベースの処理では制御パラメータの作成が難
しくなる欠点を有している。
一方、ダイナミツク・マージ方式マージ・ソー
タは第9図に示すように、ストリング数が奇数と
なるセルで最後のストリングが入力されてきた時
に、その時のマージ動作を中断して最後にストリ
ングが先にマージされるようにストリームのダイ
ナミツクな切換を行うことにより、遅れ時間
(d1)を除去するものである。この方式の処理例
を第10に示す。第10図ではステツプ5と6で
ダイナミツク・マージ動作が行なわれている。即
ち、ステツプ5において、セル41は[5]が最
後のストリングで奇数番目であることを検出し、
ストリング[3]と[4]をマージしてストリン
グ[4、3]を出力する動作を、[4]を出力し
た時点でストリング[3]と[5]をマージする
動作に切換える。また、セル42は、ステツプ6
において、ストリング[2、1]と[4]をマー
ジしてストリング[4、2、1]を出力する動作
を、4を出力した時点でストリング[2、1]と
[5、3]をマージする動作に切換える。この方
法はストリームの長さを数値ではなくデリミタ
(ストリームの最後に終りであるというマークを
入れる)等を用いて表現する場合には有効である
と考えられるが、第10図から明らかなように、
各セルは処理ストリングのダイナミツクな変更と
種々の長さのストリングを扱う必要があるので制
御が複雑になる欠点を有している。
(発明が解決しようとする問題点) 上述の如く、従来のパイプライン方式マージ・
ソートの入力ストリングのレコード数が2の累乗
でない場合、遅れ時間(d1)が生ずる欠点を有
していた。この原因は、2ウエイ・マージ・ソー
タの場合、各セルが2つのストリングをマージし
て1つのストリングを出力する動作を繰返すた
め、セルで扱うストリング数が偶数であれば良い
が奇数の場合にはマージする相手のストリングが
無くなる場合があるためである。この対策とし
て、ストリームのレコード数が2つの累乗になる
ように疑似レコードを追加する方法やダイナミク
ツ・マージを行う方法が提案されていた。しか
し、これらの方法はアルゴリズムとしは正しいも
のの、実現性に欠ける欠点を有していた。
本発明の目的は、複雑な制御を用いることな
く、上記入力ストリングのレコード数の2の累乗
値からのずれに基因する遅れ時間(d1)を除去
しようとするものである。
[発明の構成] (問題点を解決するための手段) 本発明に係るマージ・ソータは、各段のセル
に、次のようなソート・モードによる処理機能
と、パス・モードによる処理機能と、これらモー
ドを選択する機能と持たせ、これらの機能を組合
わせることにより、各セルでマージ操作を行なう
ストリング数が常に偶数になるようにしたもので
ある。
ソート・モードは、前段から連続的に入力され
る2つの入力ストリングをメモリに格納しつつ、
後の上記入力ストリングの先頭のレコードが入力
される毎に、前記両ストリングを構成するレコー
ドの大小関係を比較しその比較結果から決定され
る順序に並び変えつつ前記両ストリングをマージ
して新たな1つのストリングとして次段に出力す
るモードである。
パス・モードは、前記入力ストリングを前記メ
モリを介さずにそのまま次段に転送するモードで
ある。
各セルは、当該セルで処理するストリング数が
奇数の時は、最初のストリングが入力された直ち
に該ストリングだけを前記パス・モードで処理
し、その他のストリングについては前記ソート・
モードで処理するものとなつている。
(作用) 本発明によれば、入力ストリング数が奇数の場
合には、最初のストリングを直ちに次段に転送す
るので、通常のマージ操作を行なう場合に比べて
処理ステツプ数を削減する作用を呈する。また、
各セルでは、マージ操作を行なうストリング数が
常に偶数となるため無駄のない処理が行われ、入
力レコード数の2の累乗値からのずれに起因する
遅れ時間(d1)を除去することができる。
(実施例) 本発明の一実施例に係るマージ・ソータの動作
原因図を第1図に、そのパイプライン処理動作の
様子を第2図に示す。
このマージ・ソータは、3つの処理ユニツト5
,52,53を縦続接続して構成され、各処理ユ
ニツト5i(i=1〜3)は、メモリ1iとセル
6iとで構成されたものとなつている。各セル6
iは、ソート・モードとパス・モードとを持ち、
自身が処理するストリング数が奇数の時に最初の
ストリングだけをパス・モードで処理して残りを
ソート・モードで処理する手段を有する。この手
段により、本ソータでは前項の入力ストリームの
レコード数が2の累乗値からずれた場合には生ず
る遅れ時間(d1)が生じない。以下、第1図と
第2図を用いてその理由を説明する。
セル6iは長さ1のストリングを5個、即ち、
奇数個のストリングを処理しなければならないの
で、まずパス・モードで最初のストリング[1]
をメモリを介さずにそのままセル62に転送し、
以後ソート・モードでストリング[2]をUM
に、[3]をLMに格納しつつこれら2つのスト
リングのマージ操作を行い、長さ2のストリング
[3、2]を、同様にして[5、4]をセル62
出力する。次に、セル62の長さ2のストリング
を3個処理しなければならないので、セル1と同
様に最初のストリング[1、−]をパス・モード
でセル63に転送し、以後ソート・モードでスト
リング[3、2]をUMに、[5、4]をLMに格
納しつつこれら2つのストリングのマージ操作を
行い、長さ4のストリング[5、4、3、2]を
セル63に出力する。セル63は長さ4のストリン
グを2個処理すればよいので、2番目のストリン
グの最初のレコードが入力されると直ちにマージ
操作を開始し、結果を出力する。
次に各セル6iの具体的な構成例について第3
図に基づき説明する。セル6iは、前段セルから
のデータ若しくは入力レコード3を格納する入力
レジスタ11とメモリ1iのUM部とLM部から
読み出されたデータを格納するUレジスタ12及
びLレジスタ13と、Uレジスタ12とLレジス
タ13の内容を比較する比較器14と、この比較
器14と比較結果によりUレジスタ12又はLレ
ジスタ13のデータを選択するセレクト15と、
選択されたデータを最終結果として、又は次段の
セルに出力するため一時保持する出力レジスタ1
6とメモリ1iのリードアドレス及びライトアド
レスを生成するアドレル制御回路17と、外部か
ら制御情報を保持する制御情報保持レジスタ18
と、制御情報保持レジスタ18の値により動作モ
ードの切換信号を生成する動作モード制御回路1
9と、モードの切換を行う切換器20と、ソー
ト・モード動作のシークエンス発生器21および
パス・モード動作シークエンス発生器22とより
構成される。
セル6iは3サイクルで第4図に示すようなソ
ート・モード動作またはパス・モード動作の1処
理ステツプを実行する。
即ち、ソート・モードでは、最初のストリング
をUM部に格納して次のストリングをLM部に格
納しはじめると、第4図に示すように、サイクル
1で入力データの入力レジスタ11へのセツトと
メモリ1iのUM部のデータのUレジスタ12へ
の読み出し動作を、サイクル2でメモリ1iの
LM部のデータのLレジスタ13への読み出し動
作を、サイクル3で両者の比較を行つて所定のデ
ータを出力レジスタにセツトする動作と入力レジ
スタ11の内容をメモリ1iに格納する動作とを
行う。
一方、パス・モードでは、入力データをサイク
ル1で入力レジスタ11に受け取り、サイクル2
でそれをUレジスタ12に転送し、サイクル3で
それを出力レジスタ16に転送する動作を行う。
これらの動作モードは、動作モード制御回路1
9で、制御情報として与えられるストリームのレ
コード数と当該セル処理できるストリング長(ス
トリングのレコード数)から当該セルが実際に処
理するストリング数を求めることにより次のよう
に使い分けられる。即ち、動作モード制御回路1
9は、求めたストリング数の値が奇数の時は、入
力されてくる最初のストリングだけをパス・モー
ドで、残りのストリングをソート・モードで処理
し、偶数の時はパス・モードだけで処理するよう
に切換器20を制御する。
このように、当該セルで処理すべきストリング
数が奇数の時は最初のストリングをメモリに格納
しないで直接次段のセルに転送するパス・モード
機能を導入することにより、遅れ時間(d1)を
除去してソート処理時間を短縮することができ
る。
なお、上記実施例では2ウエイ・マージ・ソー
タについて述べたが、本発明は2ウエイ・マー
ジ・ソータに限定されるものでなくマルチウエ
イ・マージ・ソータにも適用可能である。
[発明の効果] 本発明によれば、マージ・ソータの各セルは、
ソート・モード動作とパス・モード動作を行う2
つの機能を持ち、自身が処理するストリング数が
奇数の時に最初のストリングをパス・モードで処
理し残りをソート・モードで処理するという極め
て簡単な制御によつて、各セルでの操作を行うス
トリング数をいつも偶数にすることができるの
で、上記入力ストリングのレコード数の2の累乗
値からのずれに起因する遅れ時間(d1)を簡単
な制御回路で除去することができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係るマージ・ソー
タの動作原理、第2図は同マージ・ソータのパイ
プライン処理動作の様子を示す図、第3図は同マ
ージ・ソータを構成するセルの更に詳細な構成
図、第4図は同マージ・ソータの各セルにおける
ソート・モード動作とパス・モード動作を説明
図、第5図は従来方式のマージ・ソータの動作原
理図、第6図は同マージ・ソータのパイプライン
処理動作の様子を示す図、第7図は擬似レコード
追加方式マージ・ソータの動作原理図、第8図は
同マージ・ソータのパイプライン処理動作の様子
を示す図、第9図はダイナミツク・マージ方式の
マージ・ソータの動作原理図、第10図は同マー
ジ・ソータのパイプライン処理動作の様子を示す
図である。 11〜13……メモリ、21〜23,31〜33,41
〜43,61〜63……セル、51〜53……処理ユニ
ツト、211……入力レジスタ、12……Uレジス
タ、13……Lレジスタ、14……比較器、15
……セレクタ、16……出力レジスタ、17……
アドレス制御回路、18……制御情報保持レジス
タ、19……動作モード制御回路、20……切換
器、21……ソート・モード動作シークエンス発
生器、22……パス・モード動作シークエンス発
生器。

Claims (1)

  1. 【特許請求の範囲】 1 複数のストリングからなるレコード列を格納
    するメモリと、連続的に入力される前記複数のス
    トリングを所定の順序で前記メモリに格納すると
    ともに、所定の規則に従つてマージして出力する
    セルとからなる処理ユニツトを複数段接続して構
    成され、これら処理ユニツトによるパイプライン
    処理によつて入力レコード列をソーテイングする
    マージ・ソータにおいて、 前記各セルは、前段から連続的に入力される2
    つの入力ストリングを前記メモリに格納しつつ、
    後の上記入力ストリングの先頭のレコードが入力
    される毎に、前記両ストリングを構成するレコー
    ドの大小関係を比較しその比較結果から決定され
    る順序に並び変えながら前記両ストリングをマー
    ジして新たな1つのストリングとして次段に出力
    するソート・モードと、前記入力ストリングを前
    記メモリを介さずにそのまま次段に転送するパ
    ス・モードとを有し、当該セルで処理するストリ
    ング数が奇数の時は、最初のストリングが入力さ
    れたら直ちに該ストリングだけを前記パス・モー
    ドで処理し、その他のストリングについては前記
    ソート・モードで処理するものであることを特徴
    とするマージ・ソータ。
JP1270888A 1988-01-25 1988-01-25 マージ・ソータ Granted JPH01189723A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1270888A JPH01189723A (ja) 1988-01-25 1988-01-25 マージ・ソータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1270888A JPH01189723A (ja) 1988-01-25 1988-01-25 マージ・ソータ

Publications (2)

Publication Number Publication Date
JPH01189723A JPH01189723A (ja) 1989-07-28
JPH0437455B2 true JPH0437455B2 (ja) 1992-06-19

Family

ID=11812913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1270888A Granted JPH01189723A (ja) 1988-01-25 1988-01-25 マージ・ソータ

Country Status (1)

Country Link
JP (1) JPH01189723A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3238939B2 (ja) * 1992-03-25 2001-12-17 優 喜連川 ソート処理装置

Also Published As

Publication number Publication date
JPH01189723A (ja) 1989-07-28

Similar Documents

Publication Publication Date Title
US5319651A (en) Data integrity features for a sort accelerator
US5142687A (en) Sort accelerator with rebound sorter repeatedly merging sorted strings
JP2752634B2 (ja) ソート処理装置
US5511189A (en) Data sorting apparatus capable of detecting completion of data sorting early and sorting method therefor
JPS6142031A (ja) ソ−ト処理装置
US5659733A (en) Sort processing method and apparatus for sorting data blocks using work buffer merge data records while sequentially transferring data records from work buffers
JPH0437455B2 (ja)
US5542080A (en) Method for controlling execution of data driven type information processor
JP3151820B2 (ja) 相対キーを利用したカウント分類法によるソート方式
JP2984507B2 (ja) ファイル複写方式
JP3264114B2 (ja) ソート装置
JPH0926872A (ja) パイプラインマージソータ
JP2001357395A (ja) 画像処理装置およびその方法
JPH03196257A (ja) ベクトル処理装置
JP3320767B2 (ja) データ処理装置及びその制御方法
JPH1021053A (ja) データ処理装置
JP3447180B2 (ja) データ演算回路
JP3549113B2 (ja) ソート処理装置
JPH01188933A (ja) データ処理装置
JPH01288920A (ja) データソート装置
JPH0271327A (ja) ソート処理装置
JPS62251923A (ja) ソ−ト処理方法
JPS61110233A (ja) デ−タ処理装置
JPH01284921A (ja) ソート処理装置
JPH06204884A (ja) データ復元回路

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term